PSARC/2014/162 ksh93 update to 2012-08-01
authorLijo George<lijo.x.george@oracle.com>
Sun, 10 May 2015 11:59:46 -0700
changeset 4268 d723f8ed85fe
parent 4266 bcfdeff915c4
child 4271 7552f305c5fb
PSARC/2014/162 ksh93 update to 2012-08-01 17533968 ksh93 uprev to latest community version 17817727 ksh93: Right shift arithmetic substitution error for shifts of 64 bits or more 17699248 ksh93 double associative array handling bugs 17777549 "kill %%" with no background jobs , coredumps 18119738 ksh93 crashes in sfio area 18229654 ksh93 read not reentrant in alarm context dumps core 16169978 ksh93 memory corruption with redirection 18302723 ksh93 segv in sh_setmatch 16507675 external command in double-nested here-document hangs ksh93 18920300 remove pkglint Warnings in ksh93 build 18355790 /usr/bin/sh and /usr/sbin/sh should point to /usr/bin/ksh93 19907453 Session drop can cause ksh93 to become a fork bomb 18426052 SPARC /usr/bin/ksh is not an XPG6 executable 20808157 attpackagemake.mk test target needs the same environment as the build 20948390 ksh93 should have some master test results to compare against 20948350 attpackagemake.mk tested-and-compared target has mis-matched parentheses
components/ksh93/Makefile
components/ksh93/developer-astdev93.p5m
components/ksh93/ksh93.license
components/ksh93/ksh93.p5m
components/ksh93/patches/005-compiler.patch
components/ksh93/patches/015-solaris_alias.patch
components/ksh93/patches/025-CR7033181.patch
components/ksh93/patches/030-CR7071431.patch
components/ksh93/patches/035-CR7036535.patch
components/ksh93/patches/040-CRXXX_Error_Catalog.patch
components/ksh93/patches/065-CR7110983.patch
components/ksh93/patches/070-CR7105086.patch
components/ksh93/patches/085-CR7046434.patch
components/ksh93/patches/090-CR7032821.patch
components/ksh93/patches/095-CR7009897.patch
components/ksh93/patches/100-CR6964621.patch
components/ksh93/patches/105-CR7032068.patch
components/ksh93/patches/120-CR7089799.patch
components/ksh93/patches/145-CR7167466.patch
components/ksh93/patches/155-CR7178717.patch
components/ksh93/patches/170-CR7128313.patch
components/ksh93/patches/175-Bug15794787,15819673.patch
components/ksh93/patches/205-17851169.patch
components/ksh93/patches/215-17777549.patch
components/ksh93/patches/220-17699248.patch
components/ksh93/patches/225-17817727.patch
components/ksh93/patches/230-18229654.patch
components/ksh93/patches/235-19907453.patch
components/ksh93/source-demo-ksh93.p5m
components/ksh93/test/results-32.i386.master
components/ksh93/test/results-32.sparc.master
components/ksh93/test/results-64.i386.master
components/ksh93/test/results-64.sparc.master
make-rules/attpackagemake.mk
--- a/components/ksh93/Makefile	Sat May 09 12:45:23 2015 -0700
+++ b/components/ksh93/Makefile	Sun May 10 11:59:46 2015 -0700
@@ -28,22 +28,42 @@
 COMPONENT_PROJECT_URL= http://www2.research.att.com/sw/download/
 
 # These are required if retrieving packages from the AT&T website.
-ATT_USERNAME= "I accept www.opensource.org/licenses/cpl"
+ATT_USERNAME= "I accept www.opensource.org/licenses/eclipse"
 ATT_PASSWD= "."
 
+COMPONENT_TEST_MASTER = \
+	$(COMPONENT_TEST_RESULTS_DIR)/results-$(BITS).$(MACH).master 
+
+COMPONENT_TEST_TRANSFORMS += \
+	'-e "s|\(^$(CC)\).*|\\$$(CC)|"' \
+	'-e "s|\(temporary directory\).*|\1|"' \
+	'-e "1,/package: test start/d"' \
+	'-e "s|\(begins\).*|\1|"' \
+	'-e "s|\(passed\).*\(\[\)|\1 \2|"' \
+	'-e "s|\(failed\).*\(with exit code\)|\1 \2|"' \
+	'-e "s|\(package: test done\).*|\1|"'\
+	'-e "/usage: sleep/d"' \
+	'-e "/invalid interval/d"' \
+	'-e "s|\(took\).*\(expected\)|\1 x secs \2|"' \
+	'-e "s|\(expected .* sec\).*\(got\).*|\1 \2 x secs|"' \
+	'-e "s|^.*\(shcomp-.*\).*|\1|"'
+
+# Enable ASLR for this component
+ASLR_MODE = $(ASLR_ENABLE)
+
 # This flag controls the prep.mk behaviour to patch each archive individually
 PATCH_EACH_ARCHIVE = 1
 
 COMPONENT_NAME = ksh93
 COMPONENT_SRC_NAME = INIT
-COMPONENT_VERSION = 2011-02-08
+COMPONENT_VERSION = 2012-08-01
 COMPONENT_SRC = $(COMPONENT_SRC_NAME).$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE =	$(COMPONENT_SRC).tgz
 COMPONENT_ARCHIVE_HASH = \
-    sha256:d692d476fe4bb933e7b6459c0cc99a2e9f428bfd81a495ed4201ec197e070f57
-COMPONENT_ARCHIVE_URL = http://www2.research.att.com/~gsf/download/tgz/$(COMPONENT_ARCHIVE) 
+    sha256:c40cf57e9b2186271a9c362a560aa4a6e25ba911a8258ab931d2bbdbce44cfe5
+COMPONENT_ARCHIVE_URL = http://www2.research.att.com/~astopen/download/tgz/$(COMPONENT_ARCHIVE)
 
-TPNO=		9000
+TPNO=		16530
 
 # Patch only required if building ksh93 only and not ast-base
 # package-pax-suid.patch
@@ -53,12 +73,12 @@
 
 NUM_EXTRA_ARCHIVES= 1
 COMPONENT_NAME_1= ast-base
-COMPONENT_VERSION_1= 2011-02-08
+COMPONENT_VERSION_1= 2012-08-01
 COMPONENT_SRC_1= $(COMPONENT_NAME_1).$(COMPONENT_VERSION_1)
 COMPONENT_ARCHIVE_1= $(COMPONENT_NAME_1).$(COMPONENT_VERSION_1).tgz
 COMPONENT_ARCHIVE_HASH_1= \
-    sha256:44ae3913e6c0c8992c6c3cba16864fd4c4a18c6da8e7d87c85a23060cea7cd1a
-COMPONENT_ARCHIVE_URL_1= http://www2.research.att.com/~gsf/download/tgz/$(COMPONENT_ARCHIVE_1)
+    sha256:3bd668dbd922790f1d24c78e3522ef4816501e9cf80abf3c480f554c74f4dbac
+COMPONENT_ARCHIVE_URL_1= http://www2.research.att.com/~astopen/download/tgz/$(COMPONENT_ARCHIVE_1)
 
 # Fixup HOSTTYPE to match uname output and bits
 HOSTTYPE32=sol11.$(shell uname -p)
@@ -122,14 +142,18 @@
 # IPS Version number: 93.21.1.20110208
 #
 IPS_PKG_NAME= ksh93
-IPS_COMPONENT_VERSION= 93.21.0.20110208
-IPS_HUMAN_VERSION= "93u 2011-02-08"
+IPS_COMPONENT_VERSION= 93.21.1.20120801
+IPS_HUMAN_VERSION= "93u+ 2012-08-01"
 
 # common targets
 build:		$(BUILD_32_and_64)
 	
 install:	$(INSTALL_32_and_64)	
-		
+	(for binary in msgcvt msgcpp msgget msggen ksh shcomp alias; do \
+		/usr/bin/elfedit -e 'dyn:delete RPATH' -e 'dyn:delete RUNPATH' \
+		    "$(PROTO_DIR)/$(MACH64)/bin/$$binary" ; \
+	done )
+
 test:		$(TEST_32_and_64)
 
 PKG_PROTO_DIRS +=   $(COMPONENT_DIR)/files
--- a/components/ksh93/developer-astdev93.p5m	Sat May 09 12:45:23 2015 -0700
+++ b/components/ksh93/developer-astdev93.p5m	Sun May 10 11:59:46 2015 -0700
@@ -56,7 +56,7 @@
 file path=usr/share/man/man1/msgget.1
 legacy pkg=SUNWastdev desc="AT&T AST development utilities" \
     name="AT&T AST development utilities"
-license ksh93.license license=CPL
+license ksh93.license license=EPL1.0
 # Ensure that we upgrade the old package to the version where it's
 # renamed.
 depend type=optional fmri=pkg:/developer/[email protected]
--- a/components/ksh93/ksh93.license	Sat May 09 12:45:23 2015 -0700
+++ b/components/ksh93/ksh93.license	Sun May 10 11:59:46 2015 -0700
@@ -1,5 +1,5 @@
-1. The following files are available in source code form under the Common
-Public License at: http://www2.research.att.com/~astopen/download. (The CPL
+1. The follow files are available in source code form under the Eclipse 
+Public License at: http://www2.research.att.com/~astopen/download. (The EPL
 license is reproduced below).
 
 2. All past Contributors to the Korn Shell 93 (ksh 93) disclaim all warranties
@@ -9,23 +9,27 @@
 Contributors are not liable for any damages, including direct, indirect,
 special, incidental and consequential damages, such as lost profits.
 
-3. Any provisions of the Oracle license agreement that differ from the Common
+3. Any provisions of the Oracle license agreement that differ from the Eclipse
 Public License are offered by Oracle alone and not by any other party.
 
 4. Oracle has modified the following files: lib/package/ast-base.pkg
 src/cmd/alias/alias.c src/cmd/alias/alias.h src/cmd/alias/Makefile
 src/cmd/builtin/asa.c src/cmd/INIT/cc.sol11.i386 src/cmd/INIT/cc.sol11.i386-64
-src/cmd/INIT/cc.sol11.sun4 src/cmd/INIT/cc.sol11.sun4-64
-src/cmd/INIT/regress.sh src/cmd/ksh93/bltins/cd_pwd.c
-src/cmd/ksh93/bltins/typeset.c src/cmd/ksh93/data/builtins.c
+src/cmd/INIT/cc.sol11.sparc src/cmd/INIT/cc.sol11.sparc-64
+src/cmd/INIT/regress.sh src/cmd/ksh93/bltins/alarm.c
+src/cmd/ksh93/bltins/cd_pwd.c src/cmd/ksh93/data/builtins.c
 src/cmd/ksh93/edit/edit.c src/cmd/ksh93/include/defs.h
 src/cmd/ksh93/include/edit.h src/cmd/ksh93/include/io.h
-src/cmd/ksh93/include/ulimit.h src/cmd/ksh93/Makefile src/cmd/ksh93/sh/args.c
-src/cmd/ksh93/sh/init.c src/cmd/ksh93/sh/io.c src/cmd/ksh93/sh/jobs.c
-src/cmd/ksh93/sh/lex.c src/cmd/ksh93/sh/macro.c src/cmd/ksh93/sh/main.c
-src/cmd/ksh93/sh/name.c src/cmd/ksh93/sh/nvdisc.c src/cmd/ksh93/sh/nvtree.c
-src/cmd/ksh93/sh/nvtype.c src/cmd/ksh93/sh/path.c src/cmd/ksh93/sh/subshell.c
-src/cmd/ksh93/sh/xec.c src/cmd/ss/ssd.c src/lib/libast/comp/mkdir.c
+src/cmd/ksh93/Makefile src/cmd/ksh93/sh/args.c
+src/cmd/ksh93/sh/array.c src/cmd/ksh93/sh/fault.c
+src/cmd/ksh93/sh/init.c src/cmd/ksh93/sh/io.c
+src/cmd/ksh93/sh/jobs.c src/cmd/ksh93/sh/lex.c
+src/cmd/ksh93/sh/macro.c src/cmd/ksh93/sh/main.c
+src/cmd/ksh93/sh/name.c src/cmd/ksh93/sh/nvdisc.c
+src/cmd/ksh93/sh/nvtree.c src/cmd/ksh93/sh/nvtype.c
+src/cmd/ksh93/sh/path.c src/cmd/ksh93/sh/streval.c
+src/cmd/ksh93/sh/subshell.c src/cmd/ksh93/sh/xec.c
+src/cmd/ss/ssd.c src/lib/libast/comp/mkdir.c
 src/lib/libast/comp/rmdir.c src/lib/libast/comp/setlocale.c
 src/lib/libast/port/astconf.c src/lib/libast/port/mnt.c
 src/lib/libast/sfio/sfmode.c src/lib/libast/sfio/sfstrtof.h
@@ -35,287 +39,49 @@
 agreement. Oracle is solely responsible for any representations and warranties
 contained therein.
 
-6. 
 
-+------------------------------------------------------------------------------+
-|          This license covers all software that refers to the URL             |
-|            http://www.opensource.org/licenses/bsd-license.php                |
-+------------------------------------------------------------------------------+
-
-The BSD License
-
-Copyright (c) <YEAR>, <OWNER>
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in the
-      documentation and/or other materials provided with the
-      distribution.
-    * Neither the name of the <ORGANIZATION> nor the names of its
-      contributors may be used to endorse or promote products derived
-      from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
-IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
-TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-+------------------------------------------------------------------------------+
-|          This license covers all software that refers to the URL             |
-|               http://www.opensource.org/licenses/cpl1.0.txt                  |
-+------------------------------------------------------------------------------+
-
-Common Public License Version 1.0
 
-   THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON
-   PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF
-   THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
-   
-   1. DEFINITIONS 
-   
-   "Contribution" means:
-   
-     a) in the case of the initial Contributor, the initial code and
-     documentation distributed under this Agreement, and
-     
-     b) in the case of each subsequent Contributor:
-     
-     i) changes to the Program, and
-     
-     ii) additions to the Program;
-     
-     where such changes and/or additions to the Program originate from
-     and are distributed by that particular Contributor. A Contribution
-     'originates' from a Contributor if it was added to the Program by
-     such Contributor itself or anyone acting on such Contributor's
-     behalf. Contributions do not include additions to the Program
-     which: (i) are separate modules of software distributed in
-     conjunction with the Program under their own license agreement, and
-     (ii) are not derivative works of the Program.
-     
-   "Contributor" means any person or entity that distributes the Program.
-   
-   "Licensed Patents " mean patent claims licensable by a Contributor
-   which are necessarily infringed by the use or sale of its Contribution
-   alone or when combined with the Program.
-   
-   "Program" means the Contributions distributed in accordance with this
-   Agreement.
-   
-   "Recipient" means anyone who receives the Program under this
-   Agreement, including all Contributors.
-   
-   2. GRANT OF RIGHTS
-   
-     a) Subject to the terms of this Agreement, each Contributor hereby
-     grants Recipient a non-exclusive, worldwide, royalty-free copyright
-     license to reproduce, prepare derivative works of, publicly
-     display, publicly perform, distribute and sublicense the
-     Contribution of such Contributor, if any, and such derivative
-     works, in source code and object code form.
-     
-     b) Subject to the terms of this Agreement, each Contributor hereby
-     grants Recipient a non-exclusive, worldwide, royalty-free patent
-     license under Licensed Patents to make, use, sell, offer to sell,
-     import and otherwise transfer the Contribution of such Contributor,
-     if any, in source code and object code form. This patent license
-     shall apply to the combination of the Contribution and the Program
-     if, at the time the Contribution is added by the Contributor, such
-     addition of the Contribution causes such combination to be covered
-     by the Licensed Patents. The patent license shall not apply to any
-     other combinations which include the Contribution. No hardware per
-     se is licensed hereunder.
-     
-     c) Recipient understands that although each Contributor grants the
-     licenses to its Contributions set forth herein, no assurances are
-     provided by any Contributor that the Program does not infringe the
-     patent or other intellectual property rights of any other entity.
-     Each Contributor disclaims any liability to Recipient for claims
-     brought by any other entity based on infringement of intellectual
-     property rights or otherwise. As a condition to exercising the
-     rights and licenses granted hereunder, each Recipient hereby
-     assumes sole responsibility to secure any other intellectual
-     property rights needed, if any. For example, if a third party
-     patent license is required to allow Recipient to distribute the
-     Program, it is Recipient's responsibility to acquire that license
-     before distributing the Program.
-     
-     d) Each Contributor represents that to its knowledge it has
-     sufficient copyright rights in its Contribution, if any, to grant
-     the copyright license set forth in this Agreement.
-     
-   3. REQUIREMENTS
-   
-   A Contributor may choose to distribute the Program in object code form
-   under its own license agreement, provided that:
-   
-     a) it complies with the terms and conditions of this Agreement; and
-     
-     b) its license agreement:
-     
-     i) effectively disclaims on behalf of all Contributors all
-     warranties and conditions, express and implied, including
-     warranties or conditions of title and non-infringement, and implied
-     warranties or conditions of merchantability and fitness for a
-     particular purpose;
-     
-     ii) effectively excludes on behalf of all Contributors all
-     liability for damages, including direct, indirect, special,
-     incidental and consequential damages, such as lost profits;
-     
-     iii) states that any provisions which differ from this Agreement
-     are offered by that Contributor alone and not by any other party;
-     and
-     
-     iv) states that source code for the Program is available from such
-     Contributor, and informs licensees how to obtain it in a reasonable
-     manner on or through a medium customarily used for software
-     exchange.
-     
-   When the Program is made available in source code form:
-   
-     a) it must be made available under this Agreement; and
-     
-     b) a copy of this Agreement must be included with each copy of the
-     Program.
-     
-   Contributors may not remove or alter any copyright notices contained
-   within the Program.
-   
-   Each Contributor must identify itself as the originator of its
-   Contribution, if any, in a manner that reasonably allows subsequent
-   Recipients to identify the originator of the Contribution.
-   
-   4. COMMERCIAL DISTRIBUTION
-   
-   Commercial distributors of software may accept certain
-   responsibilities with respect to end users, business partners and the
-   like. While this license is intended to facilitate the commercial use
-   of the Program, the Contributor who includes the Program in a
-   commercial product offering should do so in a manner which does not
-   create potential liability for other Contributors. Therefore, if a
-   Contributor includes the Program in a commercial product offering,
-   such Contributor ("Commercial Contributor") hereby agrees to defend
-   and indemnify every other Contributor ("Indemnified Contributor")
-   against any losses, damages and costs (collectively "Losses") arising
-   from claims, lawsuits and other legal actions brought by a third party
-   against the Indemnified Contributor to the extent caused by the acts
-   or omissions of such Commercial Contributor in connection with its
-   distribution of the Program in a commercial product offering. The
-   obligations in this section do not apply to any claims or Losses
-   relating to any actual or alleged intellectual property infringement.
-   In order to qualify, an Indemnified Contributor must: a) promptly
-   notify the Commercial Contributor in writing of such claim, and b)
-   allow the Commercial Contributor to control, and cooperate with the
-   Commercial Contributor in, the defense and any related settlement
-   negotiations. The Indemnified Contributor may participate in any such
-   claim at its own expense.
-   
-   For example, a Contributor might include the Program in a commercial
-   product offering, Product X. That Contributor is then a Commercial
-   Contributor. If that Commercial Contributor then makes performance
-   claims, or offers warranties related to Product X, those performance
-   claims and warranties are such Commercial Contributor's responsibility
-   alone. Under this section, the Commercial Contributor would have to
-   defend claims against the other Contributors related to those
-   performance claims and warranties, and if a court requires any other
-   Contributor to pay any damages as a result, the Commercial Contributor
-   must pay those damages.
-   
-   5. NO WARRANTY
-   
-   EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS
-   PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-   KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY
-   WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY
-   OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
-   responsible for determining the appropriateness of using and
-   distributing the Program and assumes all risks associated with its
-   exercise of rights under this Agreement, including but not limited to
-   the risks and costs of program errors, compliance with applicable
-   laws, damage to or loss of data, programs or equipment, and
-   unavailability or interruption of operations.
-   
-   6. DISCLAIMER OF LIABILITY 
-   
-   EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR
-   ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,
-   INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING
-   WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF
-   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR
-   DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
-   HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-   
-   7. GENERAL
-   
-   If any provision of this Agreement is invalid or unenforceable under
-   applicable law, it shall not affect the validity or enforceability of
-   the remainder of the terms of this Agreement, and without further
-   action by the parties hereto, such provision shall be reformed to the
-   minimum extent necessary to make such provision valid and enforceable.
-   
-   If Recipient institutes patent litigation against a Contributor with
-   respect to a patent applicable to software (including a cross-claim or
-   counterclaim in a lawsuit), then any patent licenses granted by that
-   Contributor to such Recipient under this Agreement shall terminate as
-   of the date such litigation is filed. In addition, if Recipient
-   institutes patent litigation against any entity (including a
-   cross-claim or counterclaim in a lawsuit) alleging that the Program
-   itself (excluding combinations of the Program with other software or
-   hardware) infringes such Recipient's patent(s), then such Recipient's
-   rights granted under Section 2(b) shall terminate as of the date such
-   litigation is filed.
-   
-   All Recipient's rights under this Agreement shall terminate if it
-   fails to comply with any of the material terms or conditions of this
-   Agreement and does not cure such failure in a reasonable period of
-   time after becoming aware of such noncompliance. If all Recipient's
-   rights under this Agreement terminate, Recipient agrees to cease use
-   and distribution of the Program as soon as reasonably practicable.
-   However, Recipient's obligations under this Agreement and any licenses
-   granted by Recipient relating to the Program shall continue and
-   survive.
-   
-   Everyone is permitted to copy and distribute copies of this Agreement,
-   but in order to avoid inconsistency the Agreement is copyrighted and
-   may only be modified in the following manner. The Agreement Steward
-   reserves the right to publish new versions (including revisions) of
-   this Agreement from time to time. No one other than the Agreement
-   Steward has the right to modify this Agreement. IBM is the initial
-   Agreement Steward. IBM may assign the responsibility to serve as the
-   Agreement Steward to a suitable separate entity. Each new version of
-   the Agreement will be given a distinguishing version number. The
-   Program (including Contributions) may always be distributed subject to
-   the version of the Agreement under which it was received. In addition,
-   after a new version of the Agreement is published, Contributor may
-   elect to distribute the Program (including its Contributions) under
-   the new version. Except as expressly stated in Sections 2(a) and 2(b)
-   above, Recipient receives no rights or licenses to the intellectual
-   property of any Contributor under this Agreement, whether expressly,
-   by implication, estoppel or otherwise. All rights in the Program not
-   expressly granted under this Agreement are reserved.
-   
-   This Agreement is governed by the laws of the State of New York and
-   the intellectual property laws of the United States of America. No
-   party to this Agreement will bring a legal action under this Agreement
-   more than one year after the cause of action arose. Each party waives
-   its rights to a jury trial in any resulting litigation.
-
-Copyright (c) 2004 by the Open Source Initiative
-This is a copy of the license posted on 2004-10-06 at:
-   http://www.opensource.org/licenses/cpl
-
+Eclipse Public License - v 1.0 
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. 
+1. DEFINITIONS 
+"Contribution" means: 
+a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and
+b) in the case of each subsequent Contributor:
+i) changes to the Program, and
+ii) additions to the Program;
+where such changes and/or additions to the Program originate from and are distributed by that particular Contributor. A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not derivative works of the Program. 
+"Contributor" means any person or entity that distributes the Program. 
+"Licensed Patents " mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program. 
+"Program" means the Contributions distributed in accordance with this Agreement. 
+"Recipient" means anyone who receives the Program under this Agreement, including all Contributors. 
+2. GRANT OF RIGHTS 
+a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code form.
+b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder. 
+c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the Program, it is Recipient's responsibility to acquire that license before distributing the Program.
+d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement. 
+3. REQUIREMENTS 
+A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that: 
+a) it complies with the terms and conditions of this Agreement; and
+b) its license agreement:
+i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose; 
+ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits; 
+iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and
+iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange. 
+When the Program is made available in source code form: 
+a) it must be made available under this Agreement; and 
+b) a copy of this Agreement must be included with each copy of the Program. 
+Contributors may not remove or alter any copyright notices contained within the Program. 
+Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows subsequent Recipients to identify the originator of the Contribution. 
+4. COMMERCIAL DISTRIBUTION 
+Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor ("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor") against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense. 
+For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone. Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages. 
+5. NO WARRANTY 
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement , including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. 
+6. DISCLAIMER OF LIABILITY 
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 
+7. GENERAL 
+If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. 
+If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed. 
+All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive. 
+Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved. 
+This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation. 
--- a/components/ksh93/ksh93.p5m	Sat May 09 12:45:23 2015 -0700
+++ b/components/ksh93/ksh93.p5m	Sun May 10 11:59:46 2015 -0700
@@ -46,16 +46,6 @@
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
 file path=etc/ksh.kshrc group=sys original_name=SUNWcs:etc/ksh.kshrc \
     preserve=renameold
-file $(MACH32)/bin/ksh path=usr/bin/$(MACH32)/ksh mode=0555
-hardlink path=usr/bin/$(MACH32)/ksh93 target=ksh
-hardlink path=usr/bin/$(MACH32)/rksh target=ksh
-hardlink path=usr/bin/$(MACH32)/rksh93 target=ksh
-file $(MACH32)/bin/shcomp path=usr/bin/$(MACH32)/shcomp mode=0555
-file $(MACH64)/bin/ksh path=usr/bin/$(MACH64)/ksh mode=0555
-hardlink path=usr/bin/$(MACH64)/ksh93 target=ksh
-hardlink path=usr/bin/$(MACH64)/rksh target=ksh
-hardlink path=usr/bin/$(MACH64)/rksh93 target=ksh
-file $(MACH64)/bin/shcomp path=usr/bin/$(MACH64)/shcomp mode=0555
 file $(MACH64)/bin/alias path=usr/bin/alias mode=0555
 hardlink path=usr/bin/bg target=alias
 hardlink path=usr/bin/cd target=alias
@@ -67,18 +57,18 @@
 hardlink path=usr/bin/jobs target=alias
 link path=usr/bin/jsh target=ksh93
 hardlink path=usr/bin/kill target=alias
-hardlink path=usr/bin/ksh target=$(MACH64)/ksh
-hardlink path=usr/bin/ksh93 target=$(MACH64)/ksh
+file $(MACH64)/bin/ksh path=usr/bin/ksh mode=0555
+hardlink path=usr/bin/ksh93 target=ksh
 hardlink path=usr/bin/pfksh target=pfexec
 hardlink path=usr/bin/pfksh93 target=pfexec
 hardlink path=usr/bin/pfrksh target=pfexec
 hardlink path=usr/bin/pfrksh93 target=pfexec
 hardlink path=usr/bin/print target=alias
 hardlink path=usr/bin/read target=alias
-hardlink path=usr/bin/rksh target=$(MACH64)/ksh
-hardlink path=usr/bin/rksh93 target=$(MACH64)/ksh
-link path=usr/bin/sh target=$(MACH64)/ksh93
-hardlink path=usr/bin/shcomp target=$(MACH64)/shcomp
+hardlink path=usr/bin/rksh target=ksh
+hardlink path=usr/bin/rksh93 target=ksh
+hardlink path=usr/bin/sh target=ksh
+file $(MACH64)/bin/shcomp path=usr/bin/shcomp mode=0555
 hardlink path=usr/bin/test target=alias
 hardlink path=usr/bin/type target=alias
 hardlink path=usr/bin/ulimit target=alias
@@ -87,7 +77,7 @@
 hardlink path=usr/bin/wait target=alias
 link path=usr/lib/rsh target=../bin/ksh93
 link path=usr/sbin/jsh target=../bin/ksh93
-link path=usr/sbin/sh target=../bin/$(MACH64)/ksh93
+link path=usr/sbin/sh target=../bin/ksh93
 file src/cmd/ksh93/COMPATIBILITY path=usr/share/doc/ksh/COMPATIBILITY
 file src/cmd/ksh93/OBSOLETE path=usr/share/doc/ksh/OBSOLETE
 file src/cmd/ksh93/TYPES path=usr/share/doc/ksh/TYPES
@@ -109,7 +99,7 @@
 file ksh93.1.zh_CN.UTF-8 path=usr/share/man/zh_CN.UTF-8/man1/ksh93.1
 file rksh.1.zh_CN.UTF-8 path=usr/share/man/zh_CN.UTF-8/man1/rksh.1
 file shcomp.1.zh_CN.UTF-8 path=usr/share/man/zh_CN.UTF-8/man1/shcomp.1
-license ksh93.license license=CPL
+license ksh93.license license=EPL1.0
 # Ensure that we upgrade the old package to the version where it's
 # renamed.
 depend type=optional fmri=pkg:/shell/[email protected]
--- a/components/ksh93/patches/005-compiler.patch	Sat May 09 12:45:23 2015 -0700
+++ b/components/ksh93/patches/005-compiler.patch	Sun May 10 11:59:46 2015 -0700
@@ -1,3 +1,5 @@
+# This patch has been developed inhouse. This is needed for some Solaris specific build 
+# tasks and has not been submitted to the community.
 diff -rupN INIT.2011-02-08/src/cmd/INIT/cc.sol11.i386-64 INIT.2011-02-08.patched/src/cmd/INIT/cc.sol11.i386-64
 diff -rupN INIT.2011-02-08/src/cmd/INIT/cc.sol11.i386-64 INIT.2011-02-08.patched/src/cmd/INIT/cc.sol11.i386-64
 --- INIT.2011-02-08/src/cmd/INIT/cc.sol11.i386-64	1970-01-01 01:00:00.000000000 +0100
@@ -24,26 +26,26 @@
 +esac
 +
 +$CC_EXPLICIT -m32 -xc99 -D_XPG6 "[email protected]"
-diff -rupN INIT.2011-02-08/src/cmd/INIT/cc.sol11.sun4-64 INIT.2011-02-08.patched/src/cmd/INIT/cc.sol11.sun4-64
---- INIT.2011-02-08/src/cmd/INIT/cc.sol11.sun4-64	1970-01-01 01:00:00.000000000 +0100
-+++ INIT.2011-02-08.patched/src/cmd/INIT/cc.sol11.sun4-64	2012-05-18 10:49:20.339537677 +0100
+diff -rupN INIT.2011-02-08/src/cmd/INIT/cc.sol11.sparc-64 INIT.2011-02-08.patched/src/cmd/INIT/cc.sol11.sparc-64
+--- INIT.2011-02-08/src/cmd/INIT/cc.sol11.sparc-64	1970-01-01 01:00:00.000000000 +0100
++++ INIT.2011-02-08.patched/src/cmd/INIT/cc.sol11.sparc-64	2012-05-18 10:49:20.339537677 +0100
 @@ -0,0 +1,9 @@
-+: solaris.sun4-64 cc wrapper for reasonable ansi C defaults and 64 bit : 2012-05-18 :
++: solaris.sparc-64 cc wrapper for reasonable ansi C defaults and 64 bit : 2012-05-18 :
 +
-+HOSTTYPE=sol11.sun4-64
++HOSTTYPE=sol11.sparc-64
 +
 +case " $* " in
 +*" -dumpmachine "*) echo $HOSTTYPE; exit ;;
 +esac
 +
 +$CC_EXPLICIT -m64 -xc99 -D_XPG6 "[email protected]"
-diff -rupN INIT.2011-02-08/src/cmd/INIT/cc.sol11.sun4 INIT.2011-02-08.patched/src/cmd/INIT/cc.sol11.sun4-64
---- INIT.2011-02-08/src/cmd/INIT/cc.sol11.sun4	1970-01-01 01:00:00.000000000 +0100
-+++ INIT.2011-02-08.patched/src/cmd/INIT/cc.sol11.sun4	2012-05-18 10:49:20.339537677 +0100
+diff -rupN INIT.2011-02-08/src/cmd/INIT/cc.sol11.sparc INIT.2011-02-08.patched/src/cmd/INIT/cc.sol11.sparc-64
+--- INIT.2011-02-08/src/cmd/INIT/cc.sol11.sparc	1970-01-01 01:00:00.000000000 +0100
++++ INIT.2011-02-08.patched/src/cmd/INIT/cc.sol11.sparc	2012-05-18 10:49:20.339537677 +0100
 @@ -0,0 +1,9 @@
-+: solaris.sun4 cc wrapper for reasonable ansi C defaults and 32 bit : 2012-05-18 :
++: solaris.sparc cc wrapper for reasonable ansi C defaults and 32 bit : 2012-05-18 :
 +
-+HOSTTYPE=sol11.sun4
++HOSTTYPE=sol11.sparc
 +
 +case " $* " in
 +*" -dumpmachine "*) echo $HOSTTYPE; exit ;;
--- a/components/ksh93/patches/015-solaris_alias.patch	Sat May 09 12:45:23 2015 -0700
+++ b/components/ksh93/patches/015-solaris_alias.patch	Sun May 10 11:59:46 2015 -0700
@@ -1,3 +1,6 @@
+# This patch has been developed inhouse and has not been submitted
+# to the community. This is a Solaris specific patch which is needed
+# to implement the /usr/bin/alias Solaris functionality.
 diff -rupN b/lib/package/ast-base.pkg a/lib/package/ast-base.pkg
 --- b/lib/package/ast-base.pkg	2009-09-21 20:35:51.000000000 +0000
 +++ a/lib/package/ast-base.pkg	2011-11-10 16:24:52.515495613 +0000
@@ -5,15 +8,15 @@
  		libdll libexpr libodelta librecsort libsum libuu libvdelta \
  		libbz libz tests 3d coshell cpp cs mam msgcc nmake probe ss \
  		libcoshell libcs libmam libpp libcodex paxlib codexlib \
--		libdss libpz dsslib
-+		libdss libpz dsslib alias
+-		libdss libpz dsslib libtaso
++		libdss libpz dsslib libtaso alias
  
  :COVERS: ast-make ast-ksh ast-ast
  
 diff -rupN b/src/cmd/alias/alias.c a/src/cmd/alias/alias.c
 --- b/src/cmd/alias/alias.c	1970-01-01 00:00:00.000000000 +0000
 +++ a/src/cmd/alias/alias.c	2011-11-10 16:24:28.356925339 +0000
[email protected]@ -0,0 +1,255 @@
[email protected]@ -0,0 +1,256 @@
 +/*
 + * CDDL HEADER START
 + *
@@ -36,7 +39,7 @@
 + */
 +
 +/*
-+ * Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2009, 2015, Oracle and/or its affiliates. All rights reserved.
 + */
 +
 +/*
@@ -53,7 +56,7 @@
 +
 +typedef struct {
 +	const char *name;
-+	int (* func)(int, char **, void *);
++	int (* func)(int, char **, Shbltin_t *);
 +} bfastpathrec;
 +
 +/*
@@ -128,8 +131,9 @@
 +	{ "tty",	b_tty		},
 +	{ "uname",	b_uname		},
 +	{ "uniq",	b_uniq		},
++	{ "vmstate",	b_vmstate		},
 +	{ "wc",		b_wc		},
-+	{ NULL, 	(int (*)(int, char **, void *))NULL }
++	{ NULL, 	(int (*)(int, char **, Shbltin_t *))NULL }
 +};
 +
 +static inline
@@ -272,86 +276,87 @@
 diff -rupN b/src/cmd/alias/alias.h a/src/cmd/alias/alias.h
 --- b/src/cmd/alias/alias.h	1970-01-01 00:00:00.000000000 +0000
 +++ a/src/cmd/alias/alias.h	2011-11-10 16:24:28.357387725 +0000
[email protected]@ -0,0 +1,79 @@
[email protected]@ -0,0 +1,67 @@
 +/***********************************************************************
 +*                                                                      *
 +*               This software is part of the ast package               *
-+*          Copyright (c) 1992-2011 AT&T Intellectual Property          *
++*          Copyright (c) 1982-2012 AT&T Intellectual Property          *
 +*                      and is licensed under the                       *
-+*                  Common Public License, Version 1.0                  *
++*                 Eclipse Public License, Version 1.0                  *
 +*                    by AT&T Intellectual Property                     *
 +*                                                                      *
 +*                A copy of the License is available at                 *
-+*            http://www.opensource.org/licenses/cpl1.0.txt             *
-+*         (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9)         *
++*          http://www.eclipse.org/org/documents/epl-v10.html           *
++*         (with md5 checksum b35adb5213ca9657e911e9befb180842)         *
 +*                                                                      *
 +*              Information and Software Systems Research               *
 +*                            AT&T Research                             *
 +*                           Florham Park NJ                            *
 +*                                                                      *
-+*                 Glenn Fowler <[email protected]>                  *
 +*                  David Korn <[email protected]>                   *
 +*                                                                      *
 +***********************************************************************/
 +
-+extern int b_asa (int, char**, void *);
-+extern int b_basename (int, char**, void *);
-+extern int b_cat (int, char**, void *);
-+extern int b_chgrp (int, char**, void *);
-+extern int b_chmod (int, char**, void *);
-+extern int b_chown (int, char**, void *);
-+extern int b_cksum (int, char**, void *);
-+extern int b_cmp (int, char**, void *);
-+extern int b_comm (int, char**, void *);
-+extern int b_cp (int, char**, void *);
-+extern int b_cut (int, char**, void *);
-+extern int b_date (int, char**, void *);
-+extern int b_dirname (int, char**, void *);
-+extern int b_egrep (int, char**, void *);
-+extern int b_expr (int, char**, void *);
-+extern int b_fds (int, char**, void *);
-+extern int b_fgrep (int, char**, void *);
-+extern int b_find (int, char**, void *);
-+extern int b_fmt (int, char**, void *);
-+extern int b_fold (int, char**, void *);
-+extern int b_getconf (int, char**, void *);
-+extern int b_grep (int, char**, void *);
-+extern int b_head (int, char**, void *);
-+extern int b_id (int, char**, void *);
-+extern int b_join (int, char**, void *);
-+extern int b_line (int, char**, void *);
-+extern int b_ln (int, char**, void *);
-+extern int b_logname (int, char**, void *);
-+extern int b_ls (int, char**, void *);
-+extern int b_md5sum (int, char**, void *);
-+extern int b_mkdir (int, char**, void *);
-+extern int b_mkfifo (int, char**, void *);
-+extern int b_mktemp (int, char**, void *);
-+extern int b_mv (int, char**, void *);
-+extern int b_paste (int, char**, void *);
-+extern int b_od (int, char**, void *);
-+extern int b_pathchk (int, char**, void *);
-+extern int b_pids (int, char**, void *);
-+extern int b_pr (int, char**, void *);
-+extern int b_rev (int, char**, void *);
-+extern int b_readlink (int, char**, void *);
-+extern int b_rm (int, char**, void *);
-+extern int b_rmdir (int, char**, void *);
-+extern int b_stty (int, char**, void *);
-+extern int b_sum (int, char**, void *);
-+extern int b_sync (int, char**, void *);
-+extern int b_strings (int, char**, void *);
-+extern int b_tail (int, char**, void *);
-+extern int b_tee (int, char**, void *);
-+extern int b_tr (int, char**, void *);
-+extern int b_tty (int, char**, void *);
-+extern int b_uname (int, char**, void *);
-+extern int b_uniq (int, char**, void *);
-+extern int b_vmstate (int, char**, void *);
-+extern int b_wc (int, char**, void *);
-+extern int b_who (int, char**, void *);
-+extern int b_xgrep (int, char**, void *);
-+extern int b_xargs (int, char**, void *);
++#include <shcmd.h>
++
++extern int b_asa (int, char**, Shbltin_t *);
++extern int b_basename (int, char**, Shbltin_t *);
++extern int b_cat (int, char**, Shbltin_t *);
++extern int b_chgrp (int, char**, Shbltin_t *);
++extern int b_chmod (int, char**, Shbltin_t *);
++extern int b_chown (int, char**, Shbltin_t *);
++extern int b_cksum (int, char**, Shbltin_t *);
++extern int b_cmp (int, char**, Shbltin_t *);
++extern int b_comm (int, char**, Shbltin_t *);
++extern int b_cp (int, char**, Shbltin_t *);
++extern int b_cut (int, char**, Shbltin_t *);
++extern int b_date (int, char**, Shbltin_t *);
++extern int b_dirname (int, char**, Shbltin_t *);
++extern int b_egrep (int, char**, Shbltin_t *);
++extern int b_expr (int, char**, Shbltin_t *);
++extern int b_fds (int, char**, Shbltin_t *);
++extern int b_fgrep (int, char**, Shbltin_t *);
++extern int b_find (int, char**, Shbltin_t *);
++extern int b_fmt (int, char**, Shbltin_t *);
++extern int b_fold (int, char**, Shbltin_t *);
++extern int b_getconf (int, char**, Shbltin_t *);
++extern int b_grep (int, char**, Shbltin_t *);
++extern int b_head (int, char**, Shbltin_t *);
++extern int b_id (int, char**, Shbltin_t *);
++extern int b_join (int, char**, Shbltin_t *);
++extern int b_line (int, char**, Shbltin_t *);
++extern int b_ln (int, char**, Shbltin_t *);
++extern int b_logname (int, char**, Shbltin_t *);
++extern int b_ls (int, char**, Shbltin_t *);
++extern int b_md5sum (int, char**, Shbltin_t *);
++extern int b_mkdir (int, char**, Shbltin_t *);
++extern int b_mkfifo (int, char**, Shbltin_t *);
++extern int b_mktemp (int, char**, Shbltin_t *);
++extern int b_mv (int, char**, Shbltin_t *);
++extern int b_paste (int, char**, Shbltin_t *);
++extern int b_od (int, char**, Shbltin_t *);
++extern int b_pathchk (int, char**, Shbltin_t *);
++extern int b_pids (int, char**, Shbltin_t *);
++extern int b_pr (int, char**, Shbltin_t *);
++extern int b_rev (int, char**, Shbltin_t *);
++extern int b_readlink (int, char**, Shbltin_t *);
++extern int b_rm (int, char**, Shbltin_t *);
++extern int b_rmdir (int, char**, Shbltin_t *);
++extern int b_stty (int, char**, Shbltin_t *);
++extern int b_sum (int, char**, Shbltin_t *);
++extern int b_sync (int, char**, Shbltin_t *);
++extern int b_strings (int, char**, Shbltin_t *);
++extern int b_tail (int, char**, Shbltin_t *);
++extern int b_tee (int, char**, Shbltin_t *);
++extern int b_tr (int, char**, Shbltin_t *);
++extern int b_tty (int, char**, Shbltin_t *);
++extern int b_uname (int, char**, Shbltin_t *);
++extern int b_uniq (int, char**, Shbltin_t *);
++extern int b_vmstate (int, char**, Shbltin_t *);
++extern int b_wc (int, char**, Shbltin_t *);
++extern int b_who (int, char**, Shbltin_t *);
++extern int b_xgrep (int, char**, Shbltin_t *);
++extern int b_xargs (int, char**, Shbltin_t *);
 diff -rupN b/src/cmd/alias/Makefile a/src/cmd/alias/Makefile
 --- b/src/cmd/alias/Makefile	1970-01-01 00:00:00.000000000 +0000
 +++ a/src/cmd/alias/Makefile	2011-11-10 16:24:28.357746164 +0000
--- a/components/ksh93/patches/025-CR7033181.patch	Sat May 09 12:45:23 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
---- a/src/cmd/ksh93/bltins/typeset.c	Fri Dec 31 00:15:57 2010
-+++ b/src/cmd/ksh93/bltins/typeset.c	Tue Jun 28 13:59:53 2011
[email protected]@ -608,7 +608,7 @@
- 			}
- 			if(!nv_isarray(np) && !strchr(name,'=') && !(shp->envlist  && nv_onlist(shp->envlist,name)))
- 			{
--				if(comvar || (shp->last_root==shp->var_tree && (tp->tp || (!shp->st.real_fun && (nvflags&NV_STATIC)) || (!(flag&NV_EXPORT) && nv_isattr(np,(NV_EXPORT|NV_IMPORT))==(NV_EXPORT|NV_IMPORT)))))
-+				if(comvar || (shp->last_root==shp->var_tree && (tp->tp || (!shp->st.real_fun && (nvflags&NV_STATIC)) || (!(flag&(NV_EXPORT|NV_RDONLY)) && nv_isattr(np,(NV_EXPORT|NV_IMPORT))==(NV_EXPORT|NV_IMPORT)))))
- {
- 					_nv_unset(np,0);
- }
--- a/components/ksh93/patches/030-CR7071431.patch	Sat May 09 12:45:23 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
---- a/src/cmd/ksh93/include/ulimit.h	Tue Oct 26 16:25:26 2010
-+++ b/src/cmd/ksh93/include/ulimit.h	Thu Aug 25 10:19:37 2011
[email protected]@ -157,7 +157,7 @@
- 
- typedef struct Limit_s
- {
--	const char	name[8];
-+	const char*	name;
- 	const char*	description;
- 	int		index;
- 	const char*	conf;
--- a/components/ksh93/patches/035-CR7036535.patch	Sat May 09 12:45:23 2015 -0700
+++ b/components/ksh93/patches/035-CR7036535.patch	Sun May 10 11:59:46 2015 -0700
@@ -1,15 +1,16 @@
---- a/src/cmd/ksh93/sh/path.c	Mon Nov 22 20:55:38 2010
-+++ b/src/cmd/ksh93/sh/path.c	Tue Sep 27 10:48:45 2011
[email protected]@ -1430,7 +1435,7 @@
+# Solaris specific issue. Not submitted to the community.
+--- a/src/cmd/ksh93/sh/path.c	2015-02-24 13:25:19.360898415 -0800
++++ b/src/cmd/ksh93/sh/path.c	2015-02-25 00:54:42.168155178 -0800
[email protected]@ -1463,7 +1463,7 @@
  		len = strlen(name);
  	for(pp=first; pp; pp=pp->next)
  	{
--		if(memcmp(name,pp->name,len)==0 && (pp->name[len]==':' || pp->name[len]==0))
-+		if(strncmp(name,pp->name,len)==0 && (pp->name[len]==':' || pp->name[len]==0))
+-		if(len == pp->len && memcmp(name,pp->name,len)==0)
++		if(len == pp->len && strncmp(name,pp->name,len)==0)
  		{
  			pp->flags |= flag;
  			return(first);
[email protected]@ -1740,7 +1745,7 @@
[email protected]@ -1751,7 +1751,7 @@
  	register Pathcomp_t *pp=first;
  	while(pp)
  	{
@@ -66,3 +67,4 @@
  			{
  				int	k=1;
  				Namarr_t *ap=0;
+
--- a/components/ksh93/patches/040-CRXXX_Error_Catalog.patch	Sat May 09 12:45:23 2015 -0700
+++ b/components/ksh93/patches/040-CRXXX_Error_Catalog.patch	Sun May 10 11:59:46 2015 -0700
@@ -1,10 +1,12 @@
---- a/src/cmd/builtin/asa.c	Wed Nov  1 16:47:27 2006
-+++ b/src/cmd/builtin/asa.c	Tue Jun 28 13:59:47 2011
[email protected]@ -110,7 +110,7 @@
+# This patch developed inhouse fixes some Solaris specific issues
+# and has not been submitted to the community.
+--- a/src/cmd/builtin/asa.c	2014-07-14 00:38:14.796528534 -0700
++++ b/src/cmd/builtin/asa.c	2014-07-14 00:38:58.469687039 -0700
[email protected]@ -111,7 +111,7 @@
  	register Sfio_t	*fp;
  	register int	n, reclen=0;
  
--	cmdinit(argc, argv,(void*)0,(const char*)0,0);
+-	cmdinit(argc, argv, (void*)0, (const char*)0, 0);
 +	cmdinit(argc, argv, context, ERROR_CATALOG, 0);
  	while (n = optget(argv, usage)) switch (n)
  	{
--- a/components/ksh93/patches/065-CR7110983.patch	Sat May 09 12:45:23 2015 -0700
+++ b/components/ksh93/patches/065-CR7110983.patch	Sun May 10 11:59:46 2015 -0700
@@ -1,6 +1,8 @@
+# This patch has been developed inhouse. This fixes a Solaris specific
+# issue and has not been submitted to the community.
 diff -r bb8978c251cb -r 6fbea5c30b60 usr/src/cmd/ast/lib/libshell/common/sh/name.c
---- a/src/cmd/ksh93/sh/name.c	Sun Mar 25 23:19:46 2012 -0700
-+++ b/src/cmd/ksh93/sh/name.c	Mon Mar 26 05:09:19 2012 -0700
+--- a/src/cmd/ksh93/sh/name.c   Sun Mar 25 23:19:46 2012 -0700
++++ b/src/cmd/ksh93/sh/name.c   Mon Mar 26 05:09:19 2012 -0700
 @@ -22,6 +22,9 @@
   * AT&T Labs
   *
@@ -9,16 +11,16 @@
 + * Copyright (c) 2007, 2012, Oracle and/or its affiliates. All rights reserved.
 + */
  
- #define putenv	___putenv
+ #define putenv ___putenv
  
[email protected]@ -1832,7 +1835,10 @@
- 			else
[email protected]@ -1926,7 +1923,10 @@
  #endif
- 			if(size==0 && nv_isattr(np,NV_HOST)!=NV_HOST &&nv_isattr(np,NV_LJUST|NV_RJUST|NV_ZFILL))
-+			{
- 				nv_setsize(np,size=dot);
-+				tofree = up->cp;
-+			}
- 			else if(size > dot)
- 				dot = size;
- 			else if(nv_isattr(np,NV_LJUST|NV_RJUST)==NV_LJUST && dot>size)
+ 			{
+ 				if(size==0 && nv_isattr(np,NV_HOST)!=NV_HOST &&nv_isattr(np,NV_LJUST|NV_RJUST|NV_ZFILL))
++				{
+ 					nv_setsize(np,size=dot);
++					tofree = up->cp;
++				}
+ 				else if(size > dot)
+ 					dot = size;
+ 				else if(nv_isattr(np,NV_LJUST|NV_RJUST)==NV_LJUST && dot>size)
--- a/components/ksh93/patches/070-CR7105086.patch	Sat May 09 12:45:23 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-diff -r bb8978c251cb -r 6fbea5c30b60 usr/src/cmd/ast/lib/libshell/common/sh/jobs.c
---- a/src/cmd/ksh93/sh/jobs.c	Sun Mar 25 23:19:46 2012 -0700
-+++ b/src/cmd/ksh93/sh/jobs.c	Mon Mar 26 05:09:19 2012 -0700
[email protected]@ -28,6 +28,9 @@
-  *  Rewritten April, 1988
-  *  Revised January, 1992
-  */
-+/*
-+ * Copyright (c) 2007, 2012, Oracle and/or its affiliates. All rights reserved.
-+ */
- 
- #include	"defs.h"
- #include	<wait.h>
[email protected]@ -57,6 +60,7 @@
- {
- 	struct jobsave	*next;
- 	pid_t		pid;
-+	short		curenv;
- 	unsigned short	exitval;
- };
- 
[email protected]@ -232,6 +236,7 @@
- 		jp->pid = pid;
- 		jp->next = bck.list;
- 		bck.list = jp;
-+		jp->curenv = 0;
- 		jp->exitval = 0;
- 	}
- 	return(jp);
[email protected]@ -1790,6 +1795,7 @@
- 			/* save status for future wait */
- 			if(jp = jobsave_create(pw->p_pid))
- 			{
-+				jp->curenv = pw->p_env;
- 				jp->exitval = pw->p_exit;
- 				if(pw->p_flag&P_SIGNALLED)
- 					jp->exitval |= SH_EXITSIG;
[email protected]@ -1967,7 +1973,7 @@
- 	for(jp=bck.list; jp; jp=jpnext)
- 	{
- 		jpnext = jp->next;
--		if(jp->pid==sh.spid)
-+		if(jp->curenv != sh.curenv || jp->pid==sh.spid)
- 		{
- 			jp->next = bp->list;
- 			bp->list = jp;
--- a/components/ksh93/patches/085-CR7046434.patch	Sat May 09 12:45:23 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-diff -rupN INIT.2011-02-08/src/cmd/ksh93/sh/subshell.c INIT.2011-02-08.clean/src/cmd/ksh93/sh/subshell.c
---- INIT.2011-02-08/src/cmd/ksh93/sh/subshell.c	2012-05-01 10:06:04.621554775 -0700
-+++ INIT.2011-02-08.clean/src/cmd/ksh93/sh/subshell.c	2012-05-01 10:05:25.139965959 -0700
[email protected]@ -241,9 +241,6 @@ Namval_t *sh_assignok(register Namval_t 
- 	/* don't bother with this */
- 	if(!sp->shpwd || np==SH_LEVELNOD || np==L_ARGNOD || np==SH_SUBSCRNOD || np==SH_NAMENOD)
- 		return(np);
--	/* don't bother to save if in newer scope */
--	if(sp->var!=shp->var_tree && shp->last_root==shp->var_tree)
--		return(np);
- 	if((ap=nv_arrayptr(np)) && (mp=nv_opensub(np)))
- 	{
- 		shp->last_root = ap->table;
--- a/components/ksh93/patches/090-CR7032821.patch	Sat May 09 12:45:23 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-diff -rupN INIT.2011-02-08.clean/src/cmd/ksh93/sh/jobs.c INIT.2011-02-08/src/cmd/ksh93/sh/jobs.c
---- INIT.2011-02-08.clean/src/cmd/ksh93/sh/jobs.c	2012-05-08 12:44:12.309610229 +0100
-+++ INIT.2011-02-08/src/cmd/ksh93/sh/jobs.c	2012-05-08 12:48:34.559797683 +0100
[email protected]@ -950,6 +950,7 @@ int job_walk(Sfio_t *file,int (*fun)(str
- 			if(!(pw = job_bypid(pid)))
- 			{
- 				pw = &dummy;
-+				pw->p_shp = sh_getinterp();
- 				pw->p_pid = pid;
- 				pw->p_pgrp = pid;
- 			}
--- a/components/ksh93/patches/095-CR7009897.patch	Sat May 09 12:45:23 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-diff -rupN INIT.2011-02-08.clean/src/cmd/ksh93/sh/macro.c INIT.2011-02-08/src/cmd/ksh93/sh/macro.c
---- INIT.2011-02-08.clean/src/cmd/ksh93/sh/macro.c	2012-05-02 01:59:48.571110152 -0700
-+++ INIT.2011-02-08/src/cmd/ksh93/sh/macro.c	2012-05-02 02:05:56.082206972 -0700
[email protected]@ -1262,7 +1262,7 @@ retry1:
- 				stkseek(stkp,stktell(stkp)-2);
- 				nv_local = 1;
- 			}
--			else
-+			else if (type != M_VNAME)
- 			{
- 				stkseek(stkp,stktell(stkp)-1);
- 				type = M_TREE;
-diff -rupN INIT.2011-02-08.clean/src/cmd/ksh93/sh/nvtree.c INIT.2011-02-08/src/cmd/ksh93/sh/nvtree.c
---- INIT.2011-02-08.clean/src/cmd/ksh93/sh/nvtree.c	2012-05-02 01:59:52.497548227 -0700
-+++ INIT.2011-02-08/src/cmd/ksh93/sh/nvtree.c	2012-05-02 02:07:16.084944399 -0700
[email protected]@ -1069,7 +1069,7 @@ Namfun_t *nv_isvtree(Namval_t *np)
-  */
- char *nv_getvtree(register Namval_t *np, Namfun_t *fp)
- {
--	int flags=0, dsize=fp->dsize;
-+	int flags=0;
- 	for(; fp && fp->next; fp=fp->next)
- 	{
- 		if(fp->next->disc && (fp->next->disc->getnum || fp->next->disc->getval))
[email protected]@ -1083,7 +1083,7 @@ char *nv_getvtree(register Namval_t *np,
- 		nv_offattr(np,NV_EXPORT);
- 	if(flags |= nv_isattr(np,NV_TABLE))
- 		nv_offattr(np,NV_TABLE);
--	if(dsize && (flags&NV_EXPORT))
-+	if( (fp) && (fp->dsize) && (flags&NV_EXPORT))
- 		return("()");
- 	return(walk_tree(np,(Namval_t*)0,flags));
- }
--- a/components/ksh93/patches/100-CR6964621.patch	Sat May 09 12:45:23 2015 -0700
+++ b/components/ksh93/patches/100-CR6964621.patch	Sun May 10 11:59:46 2015 -0700
@@ -1,6 +1,7 @@
-diff -rupN INIT.2011-02-08.clean/src/cmd/ksh93/include/io.h INIT.2011-02-08/src/cmd/ksh93/include/io.h
---- INIT.2011-02-08.clean/src/cmd/ksh93/include/io.h	2012-05-02 03:16:17.383778774 -0700
-+++ INIT.2011-02-08/src/cmd/ksh93/include/io.h	2012-05-02 03:17:53.562408338 -0700
+# This patch has been developed inhouse. This fixes a Solaris specific
+# issue and has not been submitted to the community.
+--- INIT.2012-08-01.old/src/cmd/ksh93/include/io.h	2015-02-24 13:25:19.331558350 -0800
++++ INIT.2012-08-01/src/cmd/ksh93/include/io.h	2015-03-04 13:27:49.205782578 -0800
 @@ -23,6 +23,9 @@
   *	David Korn
   *
@@ -11,7 +12,7 @@
  
  #include	<ast.h>
  #include	<sfio.h>
[email protected]@ -84,6 +87,12 @@ extern int	sh_devtofd(const char*);
[email protected]@ -87,6 +90,12 @@ extern int	sh_devtofd(const char*);
  extern int	sh_isdevfd(const char*);
  extern int	sh_source(Shell_t*, Sfio_t*, const char*);
  
@@ -24,16 +25,15 @@
  /* the following are readonly */
  extern const char	e_pexists[];
  extern const char	e_query[];
[email protected]@ -123,4 +132,5 @@ extern const char	e_bash_profile[];
[email protected]@ -126,4 +135,5 @@ extern const char	e_bash_profile[];
  extern const char	e_stdprompt[];
  extern const char	e_supprompt[];
  extern const char	e_ambiguous[];
 +
  #endif /* KSHELL */
-diff -rupN INIT.2011-02-08.clean/src/cmd/ksh93/sh/io.c INIT.2011-02-08/src/cmd/ksh93/sh/io.c
---- INIT.2011-02-08.clean/src/cmd/ksh93/sh/io.c	2012-05-02 03:16:17.389917698 -0700
-+++ INIT.2011-02-08/src/cmd/ksh93/sh/io.c	2012-05-02 03:19:12.669621809 -0700
[email protected]@ -596,8 +596,10 @@ static void io_preserve(Shell_t* shp, re
+--- INIT.2012-08-01.old/src/cmd/ksh93/sh/io.c	2015-02-24 13:25:19.362427732 -0800
++++ INIT.2012-08-01/src/cmd/ksh93/sh/io.c	2015-03-04 14:04:54.981280201 -0800
[email protected]@ -605,8 +605,10 @@ static void io_preserve(Shell_t* shp, re
  		((struct checkpt*)shp->jmplist)->mode = SH_JMPERREXIT;
  		errormsg(SH_DICT,ERROR_system(1),e_toomany);
  	}
@@ -46,7 +46,7 @@
  	if(shp->fdptrs[fd]=shp->fdptrs[f2])
  	{
  		if(f2==job.fd)
[email protected]@ -623,7 +625,12 @@ static void io_preserve(Shell_t* shp, re
[email protected]@ -632,7 +634,12 @@ static void io_preserve(Shell_t* shp, re
   */
  int sh_iorenumber(Shell_t *shp, register int f1,register int f2)
  {
@@ -60,7 +60,7 @@
  	if(f1!=f2)
  	{
  		/* see whether file descriptor is in use */
[email protected]@ -663,8 +670,7 @@ int sh_iorenumber(Shell_t *shp, register
[email protected]@ -672,8 +679,7 @@ int sh_iorenumber(Shell_t *shp, register
  		if(f2<=2)
  			sfset(sp,SF_SHARE|SF_PUBLIC,1);
  	}
@@ -70,7 +70,7 @@
  	return(f2);
  }
  
[email protected]@ -678,8 +684,9 @@ int sh_close(register int fd)
[email protected]@ -687,8 +693,9 @@ int sh_close(register int fd)
  	register int r = 0;
  	if(fd<0)
  		return(-1);
@@ -81,18 +81,18 @@
 +
  	if(!(sp=shp->sftable[fd]) || sfclose(sp) < 0)
  	{
- 		if(fdnotify)
[email protected]@ -835,6 +842,9 @@ int sh_open(register const char *path, i
+ 		int err=errno;
[email protected]@ -846,8 +853,7 @@ int sh_open(register const char *path, i
  		mode = (IOREAD|IOWRITE);
  	else
  		mode = IOREAD;
-+
+-	if(fd >= shp->gd->lim.open_max)
+-		sh_iovalidfd(shp,fd);
 +	VALIDATE_FD(shp, fd);
-+
  	shp->fdstatus[fd] = mode;
  	return(fd);
  }
[email protected]@ -861,6 +871,8 @@ int sh_iomovefd(register int fdold)
[email protected]@ -876,6 +882,8 @@ int sh_iomovefd(register int fdold)
  	if(fdold<0 || fdold>2)
  		return(fdold);
  	fdnew = sh_iomovefd(dup(fdold));
@@ -101,7 +101,7 @@
  	shp->fdstatus[fdnew] = (shp->fdstatus[fdold]&~IOCLEX);
  	close(fdold);
  	shp->fdstatus[fdold] = IOCLOSE;
[email protected]@ -897,6 +909,9 @@ int	sh_pipe(register int pv[])
[email protected]@ -936,6 +944,9 @@ int	sh_pipe(register int pv[])
  		sh_close(fd);
  	else
  		pv[out] = sh_iomovefd(fd);
@@ -111,7 +111,7 @@
  	if(fcntl(pv[out],F_SETFD,FD_CLOEXEC) >=0)
  		shp->fdstatus[pv[out]] |= IOCLEX;
  	shp->fdstatus[pv[out]] = (out?IOWRITE:IOREAD);
[email protected]@ -929,6 +944,9 @@ int	sh_pipe(register int pv[])
[email protected]@ -968,6 +979,9 @@ int	sh_pipe(register int pv[])
  		errormsg(SH_DICT,ERROR_system(1),e_pipe);
  	}
  	fcntl(pv[out],F_SETFD,FD_CLOEXEC);
@@ -121,7 +121,7 @@
  	shp->fdstatus[pv[out]] |= IOCLEX;
  	pv[1-out] = -1;
  	pv[2] = port;
[email protected]@ -958,9 +976,13 @@ static int pat_line(const regex_t* rp, c
[email protected]@ -997,9 +1011,13 @@ static int pat_line(const regex_t* rp, c
  static int io_patseek(Shell_t *shp, regex_t *rp, Sfio_t* sp, int flags)
  {
  	char	*cp, *match;
@@ -136,7 +136,7 @@
  	shp->fdstatus[sffileno(sp)] |= IOCLEX;
  	if(fd==0)
  		was_share = sfset(sp,SF_SHARE,1);
[email protected]@ -994,12 +1016,17 @@ static int io_patseek(Shell_t *shp, rege
[email protected]@ -1033,12 +1051,17 @@ static int io_patseek(Shell_t *shp, rege
  
  static Sfoff_t	file_offset(Shell_t *shp, int fn, char *fname)
  {
@@ -155,7 +155,7 @@
  	memset(&endf,0,sizeof(struct Eof));
  	endf.fd = fn;
  	endf.hdr.disc = &EOF_disc;
[email protected]@ -1169,7 +1196,7 @@ int	sh_redirect(Shell_t *shp,struct iono
[email protected]@ -1216,7 +1239,7 @@ int	sh_redirect(Shell_t *shp,struct iono
  			if((iof&IOLSEEK) || ((iof&IOMOV) && *fname=='-'))
  				fn = nv_getnum(np);
  		}
@@ -164,7 +164,7 @@
  			errormsg(SH_DICT,ERROR_system(1),e_file+4);
  		if(iof&IOLSEEK)
  		{
[email protected]@ -1212,6 +1239,7 @@ int	sh_redirect(Shell_t *shp,struct iono
[email protected]@ -1259,6 +1282,7 @@ int	sh_redirect(Shell_t *shp,struct iono
  						message = e_file;
  						goto fail;
  					}
@@ -172,7 +172,7 @@
  					if(shp->subshell && dupfd==1)
  					{
  						if(sfset(sfstdout,0,0)&SF_STRING)
[email protected]@ -1248,8 +1276,7 @@ int	sh_redirect(Shell_t *shp,struct iono
[email protected]@ -1295,8 +1319,7 @@ int	sh_redirect(Shell_t *shp,struct iono
  					goto traceit;
  				if((fd=sh_fcntl(dupfd,F_DUPFD,3))<0)
  					goto fail;
@@ -182,7 +182,7 @@
  				sh_iocheckfd(shp,dupfd);
  				shp->fdstatus[fd] = (shp->fdstatus[dupfd]&~IOCLEX);
  				if(toclose<0 && shp->fdstatus[fd]&IOREAD)
[email protected]@ -1362,7 +1389,11 @@ int	sh_redirect(Shell_t *shp,struct iono
[email protected]@ -1410,7 +1433,11 @@ int	sh_redirect(Shell_t *shp,struct iono
  			}
  			if(iof&IOLSEEK)
  			{
@@ -195,7 +195,7 @@
  				r = shp->fdstatus[fn];
  				if(!(r&(IOSEEK|IONOSEEK)))
  					r = sh_iocheckfd(shp,fn);
[email protected]@ -1443,6 +1474,7 @@ int	sh_redirect(Shell_t *shp,struct iono
[email protected]@ -1491,6 +1518,7 @@ int	sh_redirect(Shell_t *shp,struct iono
  			}
  			if(fd<0)
  			{
@@ -203,16 +203,16 @@
  				if(sh_inuse(shp,fn) || (fn && fn==shp->infd))
  				{
  					if(fn>9 || !(shp->inuse_bits&(1<<fn)))
[email protected]@ -1462,7 +1494,7 @@ int	sh_redirect(Shell_t *shp,struct iono
[email protected]@ -1510,7 +1538,7 @@ int	sh_redirect(Shell_t *shp,struct iono
  					{
  						if((fn=fcntl(fd,F_DUPFD,10)) < 0)
  							goto fail;
 -						if(fn>=shp->gd->lim.open_max && !sh_iovalidfd(shp,fn))
 +						if (!VALIDATE_FD(shp, fn))
  							goto fail;
- 						shp->fdstatus[fn] = shp->fdstatus[fd];
- 						sh_close(fd);
[email protected]@ -1622,7 +1654,12 @@ void sh_iosave(Shell_t *shp, register in
+ 						if(flag!=2 || shp->subshell)
+ 							sh_iosave(shp,fn,indx|0x10000,tname?fname:(trunc?Empty:0));
[email protected]@ -1701,7 +1729,12 @@ void sh_iosave(Shell_t *shp, register in
  	filemap[shp->topfd++].save_fd = savefd;
  	if(savefd >=0)
  	{
@@ -226,7 +226,7 @@
  		/* make saved file close-on-exec */
  		sh_fcntl(savefd,F_SETFD,FD_CLOEXEC);
  		if(origfd==job.fd)
[email protected]@ -1655,6 +1692,7 @@ void	sh_iounsave(Shell_t* shp)
[email protected]@ -1734,6 +1767,7 @@ void	sh_iounsave(Shell_t* shp)
  			filemap[newfd++] = filemap[fd];
  		else
  		{
@@ -234,7 +234,7 @@
  			shp->sftable[savefd] = 0;
  			sh_close(savefd);
  		}
[email protected]@ -1678,16 +1716,19 @@ void	sh_iorestore(Shell_t *shp, int last
[email protected]@ -1757,16 +1791,19 @@ void	sh_iorestore(Shell_t *shp, int last
  		{
  			if ((savefd = filemap[fd].save_fd) >= 0)
  			{
@@ -254,7 +254,7 @@
  			shp->sftable[savefd] = 0;
  			sh_close(savefd);
  			return;
[email protected]@ -1699,6 +1740,7 @@ void	sh_iorestore(Shell_t *shp, int last
[email protected]@ -1778,6 +1815,7 @@ void	sh_iorestore(Shell_t *shp, int last
  		sh_close(origfd);
  		if ((savefd = filemap[fd].save_fd) >= 0)
  		{
@@ -262,7 +262,7 @@
  			sh_fcntl(savefd, F_DUPFD, origfd);
  			if(savefd==job.fd)
  				job.fd=origfd;
[email protected]@ -1954,6 +1996,9 @@ static ssize_t slowread(Sfio_t *iop,void
[email protected]@ -2035,6 +2073,9 @@ static ssize_t slowread(Sfio_t *iop,void
  int sh_iocheckfd(Shell_t *shp, register int fd)
  {
  	register int flags, n;
@@ -272,16 +272,16 @@
  	if((n=shp->fdstatus[fd])&IOCLOSE)
  		return(n);
  	if(!(n&(IOREAD|IOWRITE)))
[email protected]@ -2145,7 +2190,7 @@ static void	sftrack(Sfio_t* sp, int flag
[email protected]@ -2226,7 +2267,7 @@ static void	sftrack(Sfio_t* sp, int flag
  		return;
  	}
  #endif
--	if(fd<0 || (fd>=shp->gd->lim.open_max && !sh_iovalidfd(shp,fd)))
-+	if (fd < 0 || !VALIDATE_FD(shp, fd))
+-	if(fd<0 || fd==PSEUDOFD || (fd>=shp->gd->lim.open_max && !sh_iovalidfd(shp,fd)))
++	if(fd<0 || fd==PSEUDOFD || !VALIDATE_FD(shp, fd))
  		return;
  	if(sh_isstate(SH_NOTRACK))
  		return;
[email protected]@ -2413,6 +2458,8 @@ ssize_t sh_read(register int fd, void* b
[email protected]@ -2495,6 +2536,8 @@ ssize_t sh_read(register int fd, void* b
  {
  	Shell_t *shp = sh_getinterp();
  	register Sfio_t *sp;
@@ -290,7 +290,7 @@
  	if(sp=shp->sftable[fd])
  		return(sfread(sp,buff,n));
  	else
[email protected]@ -2427,6 +2474,8 @@ ssize_t sh_write(register int fd, const 
[email protected]@ -2509,6 +2552,8 @@ ssize_t sh_write(register int fd, const
  {
  	Shell_t *shp = sh_getinterp();
  	register Sfio_t *sp;
@@ -299,7 +299,7 @@
  	if(sp=shp->sftable[fd])
  		return(sfwrite(sp,buff,n));
  	else
[email protected]@ -2441,6 +2490,8 @@ off_t sh_seek(register int fd, off_t off
[email protected]@ -2523,6 +2568,8 @@ off_t sh_seek(register int fd, off_t off
  {
  	Shell_t *shp = sh_getinterp();
  	register Sfio_t *sp;
@@ -308,7 +308,7 @@
  	if((sp=shp->sftable[fd]) && (sfset(sp,0,0)&(SF_READ|SF_WRITE)))
  		return(sfseek(sp,offset,whence));
  	else
[email protected]@ -2452,6 +2503,9 @@ int sh_dup(register int old)
[email protected]@ -2534,6 +2581,9 @@ int sh_dup(register int old)
  {
  	Shell_t *shp = sh_getinterp();
  	register int fd = dup(old);
@@ -318,7 +318,7 @@
  	if(fd>=0)
  	{
  		if(shp->fdstatus[old] == IOCLOSE)
[email protected]@ -2473,13 +2527,15 @@ int sh_fcntl(register int fd, int op, ..
[email protected]@ -2555,13 +2605,15 @@ int sh_fcntl(register int fd, int op, ..
  	arg =  va_arg(ap, int) ;
  	va_end(ap);
  	newfd = fcntl(fd,op,arg);
@@ -336,7 +336,7 @@
  		shp->fdstatus[newfd] = (shp->fdstatus[fd]&~IOCLEX);
  		if(fdnotify)
  			(*fdnotify)(fd,newfd);
[email protected]@ -2548,6 +2604,7 @@ Sfio_t *sh_iogetiop(int fd, int mode)
[email protected]@ -2630,6 +2682,7 @@ Sfio_t *sh_iogetiop(int fd, int mode)
  		return(iop);
  	if(mode==SF_READ && !(n&IOREAD))
  		return(iop);
@@ -344,7 +344,7 @@
  	if(!(iop = shp->sftable[fd]))
  		iop=sh_iostream(shp,fd);
  	return(iop);
[email protected]@ -2567,7 +2624,10 @@ Sfio_t	*sh_fd2sfio(int fd)
[email protected]@ -2649,7 +2702,10 @@ Sfio_t	*sh_fd2sfio(int fd)
  {
  	Shell_t	*shp = sh_getinterp();
  	register int status;
@@ -356,9 +356,8 @@
  	if(!sp  && (status = sh_iocheckfd(shp,fd))!=IOCLOSE)
  	{
  		register int flags=0;
-diff -rupN INIT.2011-02-08.clean/src/cmd/ksh93/sh/lex.c INIT.2011-02-08/src/cmd/ksh93/sh/lex.c
---- INIT.2011-02-08.clean/src/cmd/ksh93/sh/lex.c	2012-05-02 03:16:17.388010187 -0700
-+++ INIT.2011-02-08/src/cmd/ksh93/sh/lex.c	2012-05-02 03:17:53.567785551 -0700
+--- INIT.2012-08-01.old/src/cmd/ksh93/sh/lex.c	2015-02-24 13:25:19.370183959 -0800
++++ INIT.2012-08-01/src/cmd/ksh93/sh/lex.c	2015-03-04 13:27:49.211457345 -0800
 @@ -25,6 +25,9 @@
   * AT&T Labs
   *
@@ -369,7 +368,7 @@
  
  #include	<ast.h>
  #include	<stak.h>
[email protected]@ -2053,6 +2056,7 @@ void	sh_syntax(Lex_t *lp)
[email protected]@ -2122,6 +2125,7 @@ void	sh_syntax(Lex_t *lp)
  	else
  		lp->lastline = shp->inlineno;
  	tokstr = fmttoken(lp,tok,tokbuf);
@@ -377,10 +376,9 @@
  	if((sp=fcfile()) || (shp->infd>=0 && (sp=shp->sftable[shp->infd])))
  	{
  		/* clear out any pending input */
-diff -rupN INIT.2011-02-08.clean/src/cmd/ksh93/sh/macro.c INIT.2011-02-08/src/cmd/ksh93/sh/macro.c
---- INIT.2011-02-08.clean/src/cmd/ksh93/sh/macro.c	2012-05-02 03:16:26.100861446 -0700
-+++ INIT.2011-02-08/src/cmd/ksh93/sh/macro.c	2012-05-02 03:17:53.569195199 -0700
[email protected]@ -2086,6 +2086,7 @@ static void comsubst(Mac_t *mp,register 
+--- INIT.2012-08-01.old/src/cmd/ksh93/sh/macro.c	2015-02-24 13:25:19.363200741 -0800
++++ INIT.2012-08-01/src/cmd/ksh93/sh/macro.c	2015-03-04 13:27:49.212566247 -0800
[email protected]@ -2121,6 +2121,7 @@ static void comsubst(Mac_t *mp,register
  			sh_popcontext(mp->shp,&buff);
  			if(r==0 && ip && (ip->iofile&IOLSEEK))
  			{
@@ -388,9 +386,8 @@
  				if(sp=mp->shp->sftable[fd])
  					num = sftell(sp);
  				else
-diff -rupN INIT.2011-02-08.clean/src/cmd/ksh93/sh/main.c INIT.2011-02-08/src/cmd/ksh93/sh/main.c
---- INIT.2011-02-08.clean/src/cmd/ksh93/sh/main.c	2012-05-02 03:16:17.389138504 -0700
-+++ INIT.2011-02-08/src/cmd/ksh93/sh/main.c	2012-05-02 03:17:53.570027033 -0700
+--- INIT.2012-08-01.old/src/cmd/ksh93/sh/main.c	2015-02-24 13:25:19.364162232 -0800
++++ INIT.2012-08-01/src/cmd/ksh93/sh/main.c	2015-03-04 13:27:49.213386462 -0800
 @@ -26,6 +26,9 @@
   * AT&T Labs
   *
@@ -401,7 +398,7 @@
  
  #include	<ast.h>
  #include	<sfio.h>
[email protected]@ -396,8 +399,10 @@ static void	exfile(register Shell_t *shp
[email protected]@ -376,8 +379,10 @@ static void	exfile(register Shell_t *shp
  		if(fno > 0)
  		{
  			int r;
@@ -412,9 +409,8 @@
  				shp->fdstatus[r] = shp->fdstatus[fno];
  				sh_close(fno);
  				fno = r;
-diff -rupN INIT.2011-02-08.clean/src/cmd/ksh93/sh/path.c INIT.2011-02-08/src/cmd/ksh93/sh/path.c
---- INIT.2011-02-08.clean/src/cmd/ksh93/sh/path.c	2012-05-02 03:16:20.752378905 -0700
-+++ INIT.2011-02-08/src/cmd/ksh93/sh/path.c	2012-05-02 03:17:53.571078341 -0700
+--- INIT.2012-08-01.old/src/cmd/ksh93/sh/path.c	2015-02-24 13:25:19.360898415 -0800
++++ INIT.2012-08-01/src/cmd/ksh93/sh/path.c	2015-03-04 13:27:49.214381188 -0800
 @@ -23,6 +23,9 @@
   * AT&T Labs
   *
@@ -425,7 +421,7 @@
  
  #include	"defs.h"
  #include	<fcin.h>
[email protected]@ -1239,6 +1242,7 @@ static void exscript(Shell_t *shp,regist
[email protected]@ -1272,6 +1275,7 @@ static void exscript(Shell_t *shp,regist
  	if(sp=fcfile())
  		while(sfstack(sp,SF_POPSTACK));
  	job_clear();
@@ -433,10 +429,9 @@
  	if(shp->infd>0 && (shp->fdstatus[shp->infd]&IOCLEX))
  		sh_close(shp->infd);
  	sh_setstate(sh_state(SH_FORKED));
-diff -rupN INIT.2011-02-08.clean/src/cmd/ksh93/sh/subshell.c INIT.2011-02-08/src/cmd/ksh93/sh/subshell.c
---- INIT.2011-02-08.clean/src/cmd/ksh93/sh/subshell.c	2012-05-02 03:16:25.241021529 -0700
-+++ INIT.2011-02-08/src/cmd/ksh93/sh/subshell.c	2012-05-02 03:17:53.571942019 -0700
[email protected]@ -115,6 +115,7 @@ void	sh_subtmpfile(Shell_t *shp)
+--- INIT.2012-08-01.old/src/cmd/ksh93/sh/subshell.c	2015-02-24 13:25:19.363479570 -0800
++++ INIT.2012-08-01/src/cmd/ksh93/sh/subshell.c	2015-03-04 14:05:03.665801329 -0800
[email protected]@ -125,6 +125,7 @@ void	sh_subtmpfile(Shell_t *shp)
  		if((sp->tmpfd = fd = fcntl(1,F_DUPFD,10)) >= 0)
  		{
  			fcntl(fd,F_SETFD,FD_CLOEXEC);
@@ -444,7 +439,7 @@
  			shp->fdstatus[fd] = shp->fdstatus[1]|IOCLEX;
  			close(1);
  		}
[email protected]@ -141,6 +142,7 @@ void	sh_subtmpfile(Shell_t *shp)
[email protected]@ -151,6 +152,7 @@ void	sh_subtmpfile(Shell_t *shp)
  		}
  		else
  		{
@@ -452,35 +447,36 @@
  			shp->fdstatus[fd] = IOREAD|IOWRITE;
  			sfsync(sfstdout);
  			if(fd==1)
[email protected]@ -627,6 +629,7 @@ Sfio_t *sh_subshell(Shell_t *shp,Shnode_
[email protected]@ -679,8 +681,7 @@ Sfio_t *sh_subshell(Shell_t *shp,Shnode_
  					((struct checkpt*)shp->jmplist)->mode = SH_JMPERREXIT;
  					errormsg(SH_DICT,ERROR_system(1),e_toomany);
  				}
+-				if(fd >= shp->gd->lim.open_max)
+-					sh_iovalidfd(shp,fd);
 +				VALIDATE_FD(shp, fd);
  				shp->sftable[fd] = iop;
  				fcntl(fd,F_SETFD,FD_CLOEXEC);
  				shp->fdstatus[fd] = (shp->fdstatus[1]|IOCLEX);
-diff -rupN INIT.2011-02-08.clean/src/cmd/ksh93/sh/xec.c INIT.2011-02-08/src/cmd/ksh93/sh/xec.c
---- INIT.2011-02-08.clean/src/cmd/ksh93/sh/xec.c	2012-05-02 03:16:17.393286735 -0700
-+++ INIT.2011-02-08/src/cmd/ksh93/sh/xec.c	2012-05-02 03:17:53.574535124 -0700
[email protected]@ -94,6 +94,8 @@ static void iousepipe(Shell_t *shp)
+--- INIT.2012-08-01.old/src/cmd/ksh93/sh/xec.c	2015-02-24 13:25:19.365424099 -0800
++++ INIT.2012-08-01/src/cmd/ksh93/sh/xec.c	2015-03-04 14:05:12.823587666 -0800
[email protected]@ -117,6 +117,8 @@ static int iousepipe(Shell_t *shp)
  	usepipe++;
  	fcntl(subpipe[0],F_SETFD,FD_CLOEXEC);
  	subpipe[2] = fcntl(1,F_DUPFD,10);
 +	VALIDATE_FD(shp, subpipe[1]);
-+	VALIDATE_FD(shp, subpipe[2]);
++	VALIDATE_FD(shp, subpipe[2]);	
+ 	fcntl(subpipe[2],F_SETFD,FD_CLOEXEC);
  	shp->fdstatus[subpipe[2]] = shp->fdstatus[1];
  	close(1);
- 	fcntl(subpipe[1],F_DUPFD,1);
[email protected]@ -117,6 +119,7 @@ static void iounpipe(Shell_t *shp)
- 	usepipe = 0;
[email protected]@ -141,6 +143,7 @@ static void iounpipe(Shell_t *shp)
+ 	char buff[SF_BUFSIZE];
  	close(1);
  	fcntl(subpipe[2], F_DUPFD, 1);
 +	VALIDATE_FD(shp, subpipe[2]);
  	shp->fdstatus[1] = shp->fdstatus[subpipe[2]];
+ 	--usepipe;
  	if(subdup) for(n=0; n < 10; n++)
- 	{
[email protected]@ -844,6 +847,7 @@ static int sh_coexec(Shell_t *shp,const 
[email protected]@ -886,6 +889,7 @@ static int sh_coexec(Shell_t *shp,const
  			if(filt > 2)
  			{
  				shp->coutpipe = shp->inpipe[1];
@@ -488,7 +484,7 @@
  				shp->fdptrs[shp->coutpipe] = &shp->coutpipe;
  			}
  		}
[email protected]@ -1487,6 +1491,7 @@ int sh_exec(register const Shnode_t *t, 
[email protected]@ -1646,6 +1650,7 @@ int sh_exec(register const Shnode_t *t,
  						if(shp->cpipe[0]<0 || shp->cpipe[1] < 0)
  						{
  							sh_copipe(shp,shp->outpipe=shp->cpipe,0);
@@ -496,7 +492,7 @@
  							shp->fdptrs[shp->cpipe[0]] = shp->cpipe;
  						}
  						sh_copipe(shp,shp->inpipe=pipes,0);
[email protected]@ -3419,6 +3424,8 @@ static void coproc_init(Shell_t *shp, in
[email protected]@ -3623,6 +3628,8 @@ static void coproc_init(Shell_t *shp, in
  		if((outfd=shp->cpipe[1]) < 10) 
  		{
  		        int fd=fcntl(shp->cpipe[1],F_DUPFD,10);
@@ -505,7 +501,7 @@
  			if(fd>=10)
  			{
  			        shp->fdstatus[fd] = (shp->fdstatus[outfd]&~IOCLEX);
[email protected]@ -3427,6 +3434,9 @@ static void coproc_init(Shell_t *shp, in
[email protected]@ -3631,6 +3638,9 @@ static void coproc_init(Shell_t *shp, in
  				shp->cpipe[1] = fd;
  			}
  		}
@@ -515,7 +511,7 @@
  		if(fcntl(*shp->cpipe,F_SETFD,FD_CLOEXEC)>=0)
  			shp->fdstatus[shp->cpipe[0]] |= IOCLEX;
  		shp->fdptrs[shp->cpipe[0]] = shp->cpipe;
[email protected]@ -3437,7 +3447,9 @@ static void coproc_init(Shell_t *shp, in
[email protected]@ -3641,7 +3651,9 @@ static void coproc_init(Shell_t *shp, in
  	shp->outpipe = shp->cpipe;
  	sh_pipe(shp->inpipe=pipes);
  	shp->coutpipe = shp->inpipe[1];
@@ -525,23 +521,23 @@
  	if(fcntl(shp->outpipe[0],F_SETFD,FD_CLOEXEC)>=0)
  		shp->fdstatus[shp->outpipe[0]] |= IOCLEX;
  }
[email protected]@ -3608,6 +3620,7 @@ static pid_t sh_ntfork(Shell_t *shp,cons
[email protected]@ -3812,6 +3824,7 @@ static pid_t sh_ntfork(Shell_t *shp,cons
  				int fd = shp->inpipe[1];
- 				sh_iosave(shp,0,buff.topfd,(char*)0);
+ 				sh_iosave(shp,0,buffp->topfd,(char*)0);
  				sh_iorenumber(shp,shp->inpipe[0],0);
 +				VALIDATE_FD(shp, fd);
  				if(fd>=0 && (!(otype&FPOU) || (otype&FCOOP)) && fcntl(fd,F_SETFD,FD_CLOEXEC)>=0)
  					shp->fdstatus[fd] |= IOCLEX;
  			}
[email protected]@ -3619,6 +3632,7 @@ static pid_t sh_ntfork(Shell_t *shp,cons
[email protected]@ -3823,6 +3836,7 @@ static pid_t sh_ntfork(Shell_t *shp,cons
  #endif /* SHOPT_COSHELL */
- 				sh_iosave(shp,1,buff.topfd,(char*)0);
+ 				sh_iosave(shp,1,buffp->topfd,(char*)0);
  				sh_iorenumber(shp,sh_dup(shp->outpipe[1]),1);
 +				VALIDATE_FD(shp, shp->outpipe[0]);
  				if(fcntl(shp->outpipe[0],F_SETFD,FD_CLOEXEC)>=0)
  					shp->fdstatus[shp->outpipe[0]] |= IOCLEX;
  			}
[email protected]@ -3658,6 +3672,7 @@ static pid_t sh_ntfork(Shell_t *shp,cons
[email protected]@ -3862,6 +3876,7 @@ static pid_t sh_ntfork(Shell_t *shp,cons
  			signal(SIGQUIT,sh_fault);
  			signal(SIGINT,sh_fault);
  		}
--- a/components/ksh93/patches/105-CR7032068.patch	Sat May 09 12:45:23 2015 -0700
+++ b/components/ksh93/patches/105-CR7032068.patch	Sun May 10 11:59:46 2015 -0700
@@ -1,7 +1,8 @@
-diff -rupN INIT.2011-02-08.clean/src/cmd/ksh93/sh/macro.c INIT.2011-02-08/src/cmd/ksh93/sh/macro.c
---- INIT.2011-02-08.clean/src/cmd/ksh93/sh/macro.c	2012-05-02 03:34:48.830258020 -0700
-+++ INIT.2011-02-08/src/cmd/ksh93/sh/macro.c	2012-05-02 03:42:51.584924888 -0700
[email protected]@ -1084,7 +1084,7 @@ static int varsub(Mac_t *mp)
+This patch has been developed inhouse. This fixes a Solaris
+specific issue and has not been submitted to the community.
+--- INIT.2012-08-01.old/src/cmd/ksh93/sh/macro.c	2015-02-24 13:25:19.363200741 -0800
++++ INIT.2012-08-01/src/cmd/ksh93/sh/macro.c	2015-03-05 11:11:46.044880541 -0800
[email protected]@ -1086,7 +1086,7 @@ static int varsub(Mac_t *mp)
  {
  	register int	c;
  	register int	type=0; /* M_xxx */
@@ -10,20 +11,25 @@
  	register Namval_t	*np = NIL(Namval_t*);
  	register int 	dolg=0, mode=0;
  	Lex_t		*lp = (Lex_t*)mp->shp->lex_context;
[email protected]@ -1436,6 +1436,7 @@ retry1:
- 				if( (mp->arith||mp->let) && (np->nvfun || nv_isattr(np,(NV_LJUST|NV_RJUST|NV_ZFILL))) && !nv_isattr(np,NV_INTEGER) && (offset==0 || !isalnum(c)))
[email protected]@ -1439,6 +1439,7 @@ retry1:
+ 				if((mp->let || (mp->arith&&nv_isattr(np,(NV_LJUST|NV_RJUST|NV_ZFILL)))) && !nv_isattr(np,NV_INTEGER) && (offset==0 || isspace(c) || strchr(",.+-*/=%&|^?!<>",c)))
  					mp->zeros = 1;
  			}
 +			new_v = v = strdup(v);
  			if(savptr==stakptr(0))
  				stkseek(stkp,offset);
  			else
[email protected]@ -1963,8 +1964,12 @@ retry2:
[email protected]@ -1989,6 +1990,8 @@ retry2:
  	}
  	if(np)
  		nv_close(np);
-+ 	if (new_v)
++	if (new_v)
 +		free(new_v);
+ 	if(pattern)
+ 		free(pattern);
+ 	if(repstr)
[email protected]@ -1997,6 +2000,8 @@ retry2:
+ 		free(idx);
  	return(1);
  nosub:
 +	if (new_v)
--- a/components/ksh93/patches/120-CR7089799.patch	Sat May 09 12:45:23 2015 -0700
+++ b/components/ksh93/patches/120-CR7089799.patch	Sun May 10 11:59:46 2015 -0700
@@ -1,19 +1,18 @@
-diff -rupN INIT.2011-02-08.clean/src/cmd/ksh93/sh/io.c INIT.2011-02-08/src/cmd/ksh93/sh/io.c
---- INIT.2011-02-08.clean/src/cmd/ksh93/sh/io.c	2012-05-07 14:33:37.179788579 +0100
-+++ INIT.2011-02-08/src/cmd/ksh93/sh/io.c	2012-05-07 14:39:11.089877123 +0100
[email protected]@ -868,10 +868,10 @@ int sh_iomovefd(register int fdold)
+# This patch has been developed inhouse. This fixes a Solaris specific
+# issue and has not been submitted to the community.
+--- INIT.2012-08-01.old/src/cmd/ksh93/sh/io.c	2015-02-24 13:25:19.362427732 -0800
++++ INIT.2012-08-01/src/cmd/ksh93/sh/io.c	2015-03-05 12:11:01.233941923 -0800
[email protected]@ -871,7 +877,6 @@ int sh_iomovefd(register int fdold)
  {
  	Shell_t *shp = sh_getinterp();
  	register int fdnew;
+-	if(fdold >= shp->gd->lim.open_max)
+-		sh_iovalidfd(shp,fdold);
 +	VALIDATE_FD(shp, fdold);
  	if(fdold<0 || fdold>2)
  		return(fdold);
  	fdnew = sh_iomovefd(dup(fdold));
--	VALIDATE_FD(shp, fdold);
- 	VALIDATE_FD(shp, fdnew);
- 	shp->fdstatus[fdnew] = (shp->fdstatus[fdold]&~IOCLEX);
- 	close(fdold);
[email protected]@ -890,6 +890,8 @@ int	sh_pipe(register int pv[])
[email protected]@ -893,6 +899,8 @@ int	sh_pipe(register int pv[])
  		errormsg(SH_DICT,ERROR_system(1),e_pipe);
  	pv[0] = sh_iomovefd(pv[0]);
  	pv[1] = sh_iomovefd(pv[1]);
@@ -22,10 +21,9 @@
  	shp->fdstatus[pv[0]] = IONOSEEK|IOREAD;
  	shp->fdstatus[pv[1]] = IONOSEEK|IOWRITE;
  	sh_subsavefd(pv[0]);
-diff -rupN INIT.2011-02-08.clean/src/cmd/ksh93/sh/path.c INIT.2011-02-08/src/cmd/ksh93/sh/path.c
---- INIT.2011-02-08.clean/src/cmd/ksh93/sh/path.c	2012-05-07 14:33:37.182443770 +0100
-+++ INIT.2011-02-08/src/cmd/ksh93/sh/path.c	2012-05-07 14:40:06.256096054 +0100
[email protected]@ -565,6 +565,7 @@ static int	path_opentype(Shell_t *shp,co
+--- INIT.2012-08-01.old/src/cmd/ksh93/sh/path.c	2015-02-24 13:25:19.360898415 -0800
++++ INIT.2012-08-01/src/cmd/ksh93/sh/path.c	2015-03-05 11:17:55.650549374 -0800
[email protected]@ -534,6 +537,7 @@ static int	path_opentype(Shell_t *shp,co
  	if(fd>=0 && (fd = sh_iomovefd(fd)) > 0)
  	{
  		fcntl(fd,F_SETFD,FD_CLOEXEC);
--- a/components/ksh93/patches/145-CR7167466.patch	Sat May 09 12:45:23 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-diff -rupN INIT.2011-02-08.clean/src/cmd/ksh93/edit/edit.c INIT.2011-02-08/src/cmd/ksh93/edit/edit.c
---- INIT.2011-02-08.clean/src/cmd/ksh93/edit/edit.c	2012-05-10 12:44:32.651317787 +0100
-+++ INIT.2011-02-08/src/cmd/ksh93/edit/edit.c	2012-05-10 12:49:00.804744460 +0100
[email protected]@ -1652,7 +1652,7 @@ int ed_histgen(Edit_t *ep,const char *pa
- 	History_t	*hp;
- 	off_t		offset;
- 	int 		ac=0,l,m,n,index1,index2;
--	char		*cp, **argv, **av, **ar;
-+	char		*cp, **argv=NULL, **av, **ar;
- 	if(!(hp=ep->sh->gd->hist_ptr))
- 		return(0);
- 	if(*pattern=='#')
[email protected]@ -1731,7 +1731,7 @@ int ed_histgen(Edit_t *ep,const char *pa
- 		mplast->next = 0;
- 	}
- 	ep->hlist = (Histmatch_t**)argv;
--	ep->hfirst = ep->hlist[0];
-+	ep->hfirst = ep->hlist ? ep->hlist[0] : NULL;
- 	return(ep->hmax=ac);
- }
- 
--- a/components/ksh93/patches/155-CR7178717.patch	Sat May 09 12:45:23 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-*** INIT.2011-02-08/src/cmd/ksh93/sh/jobs.c	Tue Jul 10 17:37:30 2012
---- ./jobs.c	Tue Jul 10 18:59:39 2012
-***************
-*** 1969,1985 ****
-  	register struct back_save *bp = (struct back_save*)ptr;
-  	register struct process *pw, *px, *pwnext;
-  	struct jobsave *jpnext;
-  	job_lock();
-! 	for(jp=bck.list; jp; jp=jpnext)
-! 	{
-  		jpnext = jp->next;
-! 		if(jp->curenv != sh.curenv || jp->pid==sh.spid)
-! 		{
-! 			jp->next = bp->list;
-! 			bp->list = jp;
-! 			bp->count++;
-! 		}
-! 		else
-  			job_chksave(jp->pid);
-  	}
-  	for(pw=job.pwlist; pw; pw=pwnext)
---- 1969,2000 ----
-  	register struct back_save *bp = (struct back_save*)ptr;
-  	register struct process *pw, *px, *pwnext;
-  	struct jobsave *jpnext;
-+ 
-  	job_lock();
-! 	for(jp = bck.list; jp != NULL; jp = jpnext) {
-  		jpnext = jp->next;
-! 		if (jp->curenv != sh.curenv || jp->pid == sh.spid) {
-! 			struct jobsave *jp2, *jp2next;
-! 			/*
-! 			 * We may have same pid in both saved list and current
-! 			 * list. We discard the old jobsave by copying the new
-! 			 * one.
-! 			 */
-! 			for (jp2 = bp->list; jp2 != NULL; jp2 = jp2->next) {
-! 				if (jp->pid == jp2->pid)
-! 					break;
-! 			}
-! 			if (jp2 != NULL) {
-! 				jp2next = jp2->next;
-! 				*jp2 = *jp;
-! 				jp2->next = jp2next;
-! 				job_chksave(jp2->pid);
-! 			} else {
-! 				jp->next = bp->list;
-! 				bp->list = jp;
-! 				bp->count++;
-! 			}
-! 		} else
-  			job_chksave(jp->pid);
-  	}
-  	for(pw=job.pwlist; pw; pw=pwnext)
--- a/components/ksh93/patches/170-CR7128313.patch	Sat May 09 12:45:23 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
---- a/src/cmd/ksh93/sh/path.c
-+++ b/src/cmd/ksh93/sh/path.c
[email protected]@ -1761,6 +1761,7 @@
- 	char *ptr;
- 	if(!pp)
- 		return(NULL);
-+	pp->shp->last_table = 0;
- 	path_nextcomp(pp->shp,pp,nv_name(np),pp);
- 	ptr = stakfreeze(0);
- 	return(ptr+PATH_OFFSET);
--- a/components/ksh93/patches/175-Bug15794787,15819673.patch	Sat May 09 12:45:23 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
---- a/src/cmd/ksh93/sh/xec.c	Thu Nov 29 22:06:17 2012
-+++ b/src/cmd/ksh93/sh/xec.c	Fri Nov 30 00:45:30 2012
[email protected]@ -540,8 +540,10 @@
- 	static Sfio_t *io_save;
- 	volatile int traceon=0, lineno=0;
- 	int binscript=shp->binscript;
-+	char comsub = shp->comsub;
- 	io_save = iop; /* preserve correct value across longjmp */
- 	shp->binscript = 0;
-+	shp->comsub = 0;
- #define SH_TOPFUN	0x8000	/* this is a temporary tksh hack */
- 	if (mode & SH_TOPFUN)
- 	{
[email protected]@ -581,6 +583,7 @@
- 	}
- 	sh_popcontext(shp,&buff);
- 	shp->binscript = binscript;
-+	shp->comsub = comsub;
- 	if(traceon)
- 		sh_onoption(SH_XTRACE);
- 	if(lineno)
[email protected]@ -3281,7 +3284,8 @@
- 	struct funenv fun;
- 	char *fname = nv_getval(SH_FUNNAMENOD);
- 	struct Level	*lp =(struct Level*)(SH_LEVELNOD->nvfun);
--	int		level, pipepid=shp->pipepid;
-+	int		level, pipepid=shp->pipepid, comsub=shp->comsub;
-+	shp->comsub = 0;
- 	shp->pipepid = 0;
- 	sh_stats(STAT_FUNCT);
- 	if(!lp->hdr.disc)
[email protected]@ -3323,6 +3327,7 @@
- 	lp->maxlevel = level;
- 	SH_LEVELNOD->nvalue.s = lp->maxlevel;
- 	shp->last_root = nv_dict(DOTSHNOD);
-+	shp->comsub = comsub;
- #if 0
- 	nv_putval(SH_FUNNAMENOD,shp->st.funname,NV_NOFREE);
- #else
--- a/components/ksh93/patches/205-17851169.patch	Sat May 09 12:45:23 2015 -0700
+++ b/components/ksh93/patches/205-17851169.patch	Sun May 10 11:59:46 2015 -0700
@@ -1,8 +1,9 @@
-http://lists.research.att.com/pipermail/ast-developers/2014q1/003809.html
----
---- a/src/cmd/ksh93/sh/subshell.c
-+++ b/src/cmd/ksh93/sh/subshell.c
[email protected]@ -234,15 +234,22 @@ Namval_t *sh_assignok(register Namval_t *np,int add)
+#	This has been submitted to the community but has not been accepted yet.
+#	The details can be found at the following location.
+#	http://lists.research.att.com/pipermail/ast-developers/2014q1/003809.html
+--- INIT.2012-08-01.old/src/cmd/ksh93/sh/subshell.c	2015-02-24 13:25:19.363479570 -0800
++++ INIT.2012-08-01/src/cmd/ksh93/sh/subshell.c	2015-03-05 13:02:10.389323525 -0800
[email protected]@ -242,15 +244,22 @@ Namval_t *sh_assignok(register Namval_t
  {
  	register Namval_t	*mp;
  	register struct Link	*lp;
@@ -16,7 +17,7 @@
  	Namarr_t		*ap;
  	int			save;
 +
-+        sp = (struct subshell*)subshell_data;
++	sp = (struct subshell*)subshell_data;
 +
  	/* don't bother with this */
 -	if(!sp->shpwd || np==SH_LEVELNOD || np==L_ARGNOD || np==SH_SUBSCRNOD || np==SH_NAMENOD)
@@ -26,7 +27,6 @@
 +	shp = sp->shp;
 +	dp = shp->var_tree;
 +
- 	if((ap=nv_arrayptr(np)) && (mp=nv_opensub(np)))
- 	{
- 		shp->last_root = ap->table;
-
+ 	/* don't bother to save if in newer scope */
+ 	if(sp->var!=shp->var_tree && sp->var!=shp->var_base && shp->last_root==shp->var_tree)
+ 		return(np);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/ksh93/patches/215-17777549.patch	Sun May 10 11:59:46 2015 -0700
@@ -0,0 +1,21 @@
+This issue has been fixed in community version: 2013-10-10
+---
+--- a/src/cmd/ksh93/sh/jobs.c	2013-11-12 10:32:35.378209600 -0800
++++ b/src/cmd/ksh93/sh/jobs.c	2013-11-12 10:35:10.458987800 -0800
[email protected]@ -1100,7 +1100,7 @@
+ 
+ int job_kill(register struct process *pw,register int sig)
+ {
+-	Shell_t	*shp = pw->p_shp;
++	Shell_t	*shp;
+ 	register pid_t pid;
+ 	register int r;
+ 	const char *msg;
[email protected]@ -1113,6 +1113,7 @@
+ 	errno = ECHILD;
+ 	if(pw==0)
+ 		goto error;
++	shp = pw->p_shp;
+ 	pid = pw->p_pid;
+ #if SHOPT_COSHELL
+ 	if(pw->p_cojob)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/ksh93/patches/220-17699248.patch	Sun May 10 11:59:46 2015 -0700
@@ -0,0 +1,14 @@
+This fix is from the community, details in the following location.
+http://lists.research.att.com/pipermail/ast-developers/2013q4/003716.html
+---
+--- a/src/cmd/ksh93/sh/array.c 	2013-11-15 12:39:50.632526510 +0100
++++ b/src/cmd/ksh93/sh/array.c	2013-11-15 12:45:53.420869610 +0100
[email protected]@ -963,7 +963,7 @@
+ 		ap->nelem = nelem;
+ 		ap->fun = fun;
+ 		nv_onattr(np,NV_ARRAY);
+-		if(fp || value)
++		if(fp || (value && value!=Empty))
+ 		{
+ 			nv_putsub(np, "0", ARRAY_ADD);
+ 			if(value)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/ksh93/patches/225-17817727.patch	Sun May 10 11:59:46 2015 -0700
@@ -0,0 +1,25 @@
+This fix is from the community, details in the following location.
+http://lists.research.att.com/pipermail/ast-users/2013q4/004481.html
+---
+--- a/src/cmd/ksh93/sh/streval.c	2014-01-22 10:39:11.075964500 +0100
++++ b/src/cmd/ksh93/sh/streval.c	2014-01-22 13:21:35.999184260 +0100
[email protected]@ -366,13 +366,17 @@
+ 				num = (Sflong_t)(sp[-1]) / (Sflong_t)(num);
+ 			break;
+ 		    case A_LSHIFT:
+-			if(tp[-1]==2)
++			if((long)num >= CHAR_BIT*sizeof(Sfulong_t))
++				num = 0;
++			else if(tp[-1]==2)
+ 				num = U2F((Sfulong_t)(sp[-1]) << (long)(num));
+ 			else
+ 				num = (Sflong_t)(sp[-1]) << (long)(num);
+ 			break;
+ 		    case A_RSHIFT:
+-			if(tp[-1]==2)
++			if((long)num >= CHAR_BIT*sizeof(Sfulong_t))
++				num = 0;
++			else if(tp[-1]==2)
+ 				num = U2F((Sfulong_t)(sp[-1]) >> (long)(num));
+ 			else
+ 				num = (Sflong_t)(sp[-1]) >> (long)(num);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/ksh93/patches/230-18229654.patch	Sun May 10 11:59:46 2015 -0700
@@ -0,0 +1,28 @@
+This fix is from the community, details in the following location.
+http://lists.research.att.com/pipermail/ast-developers/2014q1/003846.html
+---
+--- a/src/cmd/ksh93/bltins/alarm.c_org	Tue Mar 25 13:42:56 2014
++++ b/src/cmd/ksh93/bltins/alarm.c	Tue Mar 25 13:43:07 2014
[email protected]@ -122,7 +122,7 @@
+ 		tp->timeout = 0;
+ 	tp->flags |= L_FLAG;
+ 	tp->sh->sigflag[SIGALRM] |= SH_SIGALRM;
+-	if(sh_isstate(SH_TTYWAIT))
++	if(sh_isstate(SH_TTYWAIT) && !tp->sh->bltinfun)
+ 		sh_timetraps(tp->sh);
+ }
+ 
+--- a/src/cmd/ksh93/sh/xec.c_org	Tue Mar 25 13:46:48 2014
++++ b/src/cmd/ksh93/sh/xec.c	Tue Mar 25 13:48:18 2014
[email protected]@ -2720,6 +2720,11 @@
+ 			break;
+ 		    }
+ 		}
++		if(shp->trapnote&SH_SIGALRM)
++		{
++			shp->trapnote &= ~SH_SIGALRM;
++			sh_timetraps(shp);
++		}
+ 		if(shp->trapnote || (shp->exitval && sh_isstate(SH_ERREXIT)) &&
+ 			t && echeck) 
+ 			sh_chktrap(shp);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/ksh93/patches/235-19907453.patch	Sun May 10 11:59:46 2015 -0700
@@ -0,0 +1,14 @@
+This fix is from the community, details in the following location.
+http://lists.research.att.com/pipermail/ast-developers/2013q1/002323.html
+
+--- INIT.2011-02-08.old/src/cmd/ksh93/sh/fault.c	2014-10-29 12:41:23.239718243 -0700
++++ INIT.2011-02-08/src/cmd/ksh93/sh/fault.c	2014-10-29 14:03:09.196910448 -0700
[email protected]@ -519,7 +519,7 @@ void sh_exit(register int xno)
+ 	if(pp && pp->mode>1)
+ 		cursig = -1;
+ #ifdef SIGTSTP
+-	if(shp->trapnote&SH_SIGTSTP)
++	if(shp->trapnote&SH_SIGTSTP && job.jobcontrol)
+ 	{
+ 		/* ^Z detected by the shell */
+ 		shp->trapnote = 0;
--- a/components/ksh93/source-demo-ksh93.p5m	Sat May 09 12:45:23 2015 -0700
+++ b/components/ksh93/source-demo-ksh93.p5m	Sun May 10 11:59:46 2015 -0700
@@ -55,7 +55,7 @@
 file path=usr/share/man/man1/dirs.1
 file path=usr/share/man/man1/popd.1
 file path=usr/share/man/man1/pushd.1
-license ksh93.license license=CPL
+license ksh93.license license=EPL1.0
 # Ensure that we upgrade the old package to the version where it's
 # renamed.
 depend type=optional fmri=pkg:/source/demo/[email protected]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/ksh93/test/results-32.i386.master	Sun May 10 11:59:46 2015 -0700
@@ -0,0 +1,539 @@
+cmd/INIT:
++ regress $(@D)/src/cmd/INIT/iffe.tst iffe
+TEST	iffe
+01	command line basics
+01:5	-r -v - hdr stdio                                                     
+01:15	-r -v -s bsh - hdr stdio                                              
+01:17	-r -v - hdr stdio,limits                                              
+01:29	-r -v -s bsh - hdr stdio,limits                                       
+01:31	-r -v - hdr,lib no_foo_bar,no_bar_foo stdio.h                         
+01:45	-r -v -s bsh - hdr,lib no_foo_bar,no_bar_foo stdio.h                  
+01:47	-r -v - hdr no_foo_bar,no_bar_foo stdio.h : lib no_foo_bar,no_bar_foo 
+01:49	-r -v -s bsh - hdr no_foo_bar,no_bar_foo stdio.h : lib no_foo_bar,no_b
+02	file input basics
+02:53	-r -v - t1.iffe                                                       
+02:64	-r -v -s bsh - t1.iffe                                                
+02:66	-r -v - t2.iffe                                                       
+02:79	-r -v -s bsh - t2.iffe                                                
+02:81	-r -v - t3.iffe                                                       
+02:96	-r -v -s bsh - t3.iffe                                                
+02:98	-r -v - t3.iffe                                                       
+02:102	-r -v -s bsh - t3.iffe                                                
+03	nested if
+03:106	-r -v - t.iffe                                                        
+03:139	-r -v -s bsh - t.iffe                                                 
+03:141	-r -v - t.iffe                                                        
+03:173	-r -v -s bsh - t.iffe                                                 
+03:175	-r -v - t.iffe                                                        
+03:206	-r -v -s bsh - t.iffe                                                 
+03:208	-r -v - t.iffe                                                        
+03:242	-r -v -s bsh - t.iffe                                                 
+03:244	-r -v - t.iffe                                                        
+03:277	-r -v -s bsh - t.iffe                                                 
+03:279	-r -v - t.iffe                                                        
+03:315	-r -v -s bsh - t.iffe                                                 
+03:317	-r -v - t.iffe                                                        
+03:355	-r -v -s bsh - t.iffe                                                 
+03:357	-r -v - t.iffe                                                        
+03:396	-r -v -s bsh - t.iffe                                                 
+03:398	-r -v - t.iffe                                                        
+03:433	-r -v -s bsh - t.iffe                                                 
+03:435	-r -v - t.iffe                                                        
+03:456	-r -v -s bsh - t.iffe                                                 
+04	test variable/macro override
+04:460	-r -v - t.iffe                                                        
+04:472	-r -v -s bsh - t.iffe                                                 
+04:474	-r -v - t.iffe                                                        
+04:488	-r -v -s bsh - t.iffe                                                 
+04:490	-r -v - t.iffe                                                        
+04:497	-r -v -s bsh - t.iffe                                                 
+04:499	-r -v - t.iffe                                                        
+04:506	-r -v -s bsh - t.iffe                                                 
+04:508	-r -v - t.iffe                                                        
+04:515	-r -v -s bsh - t.iffe                                                 
+04:517	-r -v - t.iffe                                                        
+04:541	-r -v -s bsh - t.iffe                                                 
+04:543	-r -v - t.iffe                                                        
+04:563	-r -v -s bsh - t.iffe                                                 
+04:565	-r -v - t.iffe                                                        
+04:585	-r -v -s bsh - t.iffe                                                 
+05	test code option sequence
+05:589	-r -v - t.iffe                                                        
+05:608	-r -v -s bsh - t.iffe                                                 
+05:610	-r -v - t.iffe                                                        
+05:621	-r -v -s bsh - t.iffe                                                 
+05:623	-r -v - t.iffe                                                        
+05:637	-r -v -s bsh - t.iffe                                                 
+05:639	-r -v - t.iffe                                                        
+05:650	-r -v -s bsh - t.iffe                                                 
+05:652	-r -v - t.iffe                                                        
+05:671	-r -v -s bsh - t.iffe                                                 
+05:673	-r -v - t.iffe                                                        
+05:684	-r -v -s bsh - t.iffe                                                 
+05:686	-r -v - t.iffe                                                        
+05:710	-r -v -s bsh - t.iffe                                                 
+05:712	-r -v - t.iffe                                                        
+05:726	-r -v -s bsh - t.iffe                                                 
+05:728	-r -v - t.iffe                                                        
+05:745	-r -v -s bsh - t.iffe                                                 
+05:747	-r -v - t.iffe                                                        
+05:761	-r -v -s bsh - t.iffe                                                 
+05:763	-r -v - t.iffe                                                        
+05:785	-r -v -s bsh - t.iffe                                                 
+05:787	-r -v - t.iffe                                                        
+05:801	-r -v -s bsh - t.iffe                                                 
+05:803	-r -v - t.iffe                                                        
+05:827	-r -v -s bsh - t.iffe                                                 
+05:829	-r -v - t.iffe                                                        
+05:846	-r -v -s bsh - t.iffe                                                 
+05:848	-r -v - t.iffe                                                        
+05:866	-r -v -s bsh - t.iffe                                                 
+05:868	-r -v - t.iffe                                                        
+05:891	-r -v -s bsh - t.iffe                                                 
+06	block side effects
+06:895	-r - t.iffe                                                           
+06:909	-r -s bsh - t.iffe                                                    
+06:911	-r - t.iffe                                                           
+06:922	-r -s bsh - t.iffe                                                    
+06:924	-r - t.iffe                                                           
+06:937	-r -s bsh - t.iffe                                                    
+06:939	-r - t.iffe                                                           
+06:953	-r -s bsh - t.iffe                                                    
+07	diagnostics
+07:957	-r - t.iffe                                                           
+07:967	-r -s bsh - t.iffe                                                    
+07:969	-r - t.iffe                                                           
+07:978	-r -s bsh - t.iffe                                                    
+07:980	-r - t.iffe                                                           
+07:988	-r -s bsh - t.iffe                                                    
+07:990	-r - t.iffe                                                           
+07:994	-r -s bsh - t.iffe                                                    
+07:996	-r - t.iffe                                                           
+07:1001	-r -s bsh - t.iffe                                                    
+08	negation consternation
+08:1005	-r - t.iffe                                                           
+08:1017	-r -u - t.iffe                                                        
+08:1029	-r -a - t.iffe                                                        
+08:1041	-r -C - t.iffe                                                        
+08:1053	-r - t.iffe                                                           
+08:1069	-r -u - t.iffe                                                        
+08:1083	-r -C - t.iffe                                                        
+09	exp vs. if
+09:1099	-r - t.iffe                                                           
+09:1124	-r -s bsh - t.iffe                                                    
+09:1126	-r - t.iffe                                                           
+09:1149	-r -s bsh - t.iffe                                                    
+09:1151	-r - t.iffe                                                           
+09:1176	-r -s bsh - t.iffe                                                    
+09:1178	-r - t.iffe                                                           
+09:1199	-r -s bsh - t.iffe                                                    
+09:1201	-r - t.iffe                                                           
+09:1226	-r -s bsh - t.iffe                                                    
+09:1228	-r - t.iffe                                                           
+09:1251	-r -s bsh - t.iffe                                                    
+09:1253	-r - t.iffe                                                           
+09:1278	-r -s bsh - t.iffe                                                    
+09:1280	-r - t.iffe                                                           
+09:1301	-r -s bsh - t.iffe                                                    
+09:1303	-r - t.iffe                                                           
+09:1327	-r -s bsh - t.iffe                                                    
+09:1329	-r - t.iffe                                                           
+09:1352	-r -s bsh - t.iffe                                                    
+09:1354	-r - t.iffe                                                           
+09:1378	-r -s bsh - t.iffe                                                    
+09:1380	-r - t.iffe                                                           
+09:1397	-r -s bsh - t.iffe                                                    
+09:1399	-r - t.iffe                                                           
+09:1421	-r -s bsh - t.iffe                                                    
+09:1423	-r - t.iffe                                                           
+09:1437	-r -s bsh - t.iffe                                                    
+10	exp details
+10:1441	-r -v - t.iffe                                                        
+10:1474	-r -v -s bsh - t.iffe                                                 
+11	set [no]define
+11:1478	-r -v - t.iffe                                                        
+11:1508	-r -v -s bsh - t.iffe                                                 
+12	non-opaque mem
+12:1512	-r -v - mem OPAQUE -I. t.h                                            
+12:1525	-r -v - mem NONOPAQUE -I. t.h                                         
+13	key states
+13:1542	-r -v - t.iffe                                                        
+13:1570	-r -v -s bsh - t.iffe                                                 
+13:1572	-u -r -v - t.iffe                                                     
+13:1588	-u -r -v -s bsh - t.iffe                                              
+13:1590	-a -r -v - t.iffe                                                     
+13:1606	-a -r -v -s bsh - t.iffe                                              
+13:1608	-C -r -v - t.iffe                                                     
+13:1624	-C -r -v -s bsh - t.iffe                                              
+14	inc file
+14:1628	-r -v - t.iffe                                                        
+14:1650	-r -v - t.iffe                                                        
+14:1669	-r -v - t.iffe                                                        
+14:1682	-r -v - t.iffe                                                        
+14:1692	-r -v - t.iffe                                                        
+15	KnR compatibility
+15:1699	-r -v - t.iffe                                                        
+15:1742	-r -v -s bsh - t.iffe                                                 
+15:1744	-r -v -s osh - t.iffe                                                 
+16	{ define extern include print }
+16:1748	-r -v - t.iffe                                                        
+17	features/* => FEATURE/*
+17:1780	-r -v run features/stdio                                              
+18	api + ver
+18:1854	-r -v - t.iffe                                                        
+TEST	iffe, 162 tests, 0 errors
++ [[ -n '' ]]
++ [[ $(@D)/src/cmd/INIT/mamake.rt -nt $(@D)/src/cmd/INIT/mamake.tst ]]
++ regress $(@D)/src/cmd/INIT/mamake.tst mamake
+TEST	mamake
+01	macros
+01:9	-n                                                                    
+TEST	mamake, 1 test, 0 errors
+lib/libast:
+lib/libsum:
+lib/libcmd:
+lib/libcoshell:
+lib/libcs:
+cmd/coshell:
+lib/libdll:
+cmd/ksh93:
++ cd $(@D)/src/cmd/ksh93/tests
++ $(@D)/arch/sol11.i386/bin/ksh shtests
++ SHELL=$(@D)/arch/sol11.i386/bin/ksh
+test alias begins
+test alias passed [ 22 tests 0 errors ]
+test alias(C.UTF-8) begins
+test alias(C.UTF-8) passed [ 22 tests 0 errors ]
+test alias(shcomp) begins
+test alias(shcomp) passed [ 22 tests 0 errors ]
+test append begins
+test append passed [ 17 tests 0 errors ]
+test append(C.UTF-8) begins
+test append(C.UTF-8) passed [ 17 tests 0 errors ]
+test append(shcomp) begins
+test append(shcomp) passed [ 17 tests 0 errors ]
+test arith begins
+arith.sh[600]: color_t: pants:  invalid value blue
+test arith failed with exit code 1 [ 201 tests 1 error ]
+test arith(C.UTF-8) begins
+arith.sh[600]: color_t: pants:  invalid value blue
+test arith(C.UTF-8) failed with exit code 1 [ 201 tests 1 error ]
+test arith(shcomp) begins
+shcomp-arith.ksh[600]: color_t: pants:  invalid value blue
+test arith(shcomp) failed with exit code 1 [ 201 tests 1 error ]
+test arrays begins
+test arrays passed [ 145 tests 0 errors ]
+test arrays(C.UTF-8) begins
+test arrays(C.UTF-8) passed [ 145 tests 0 errors ]
+test arrays(shcomp) begins
+test arrays(shcomp) passed [ 145 tests 0 errors ]
+test arrays2 begins
+test arrays2 passed [ 42 tests 0 errors ]
+test arrays2(C.UTF-8) begins
+test arrays2(C.UTF-8) passed [ 42 tests 0 errors ]
+test arrays2(shcomp) begins
+test arrays2(shcomp) passed [ 42 tests 0 errors ]
+test attributes begins
+test attributes passed [ 109 tests 0 errors ]
+test attributes(C.UTF-8) begins
+test attributes(C.UTF-8) passed [ 109 tests 0 errors ]
+test attributes(shcomp) begins
+test attributes(shcomp) passed [ 109 tests 0 errors ]
+test basic begins
+	basic.sh[320]: ALRM signal not working
+test basic failed with exit code 1 [ 102 tests 1 error ]
+test basic(C.UTF-8) begins
+	basic.sh[320]: ALRM signal not working
+test basic(C.UTF-8) failed with exit code 1 [ 102 tests 1 error ]
+test basic(shcomp) begins
+shcomp-basic.ksh[320]: ALRM signal not working
+test basic(shcomp) failed with exit code 1 [ 102 tests 1 error ]
+test bracket begins
+test bracket passed [ 118 tests 0 errors ]
+test bracket(C.UTF-8) begins
+test bracket(C.UTF-8) passed [ 118 tests 0 errors ]
+test bracket(shcomp) begins
+test bracket(shcomp) passed [ 118 tests 0 errors ]
+test builtins begins
+	builtins.sh[529]: ALRM signal causes sleep to terminate prematurely -- expected 3 sec got x secs
+test builtins failed with exit code 1 [ 157 tests 1 error ]
+test builtins(C.UTF-8) begins
+	builtins.sh[529]: ALRM signal causes sleep to terminate prematurely -- expected 3 sec got x secs
+test builtins(C.UTF-8) failed with exit code 1 [ 157 tests 1 error ]
+test builtins(shcomp) begins
+shcomp-builtins.ksh[529]: ALRM signal causes sleep to terminate prematurely -- expected 3 sec got x secs
+test builtins(shcomp) failed with exit code 1 [ 157 tests 1 error ]
+test case begins
+test case passed [ 6 tests 0 errors ]
+test case(C.UTF-8) begins
+test case(C.UTF-8) passed [ 6 tests 0 errors ]
+test case(shcomp) begins
+test case(shcomp) passed [ 6 tests 0 errors ]
+test comvar begins
+test comvar passed [ 98 tests 0 errors ]
+test comvar(C.UTF-8) begins
+test comvar(C.UTF-8) passed [ 98 tests 0 errors ]
+test comvar(shcomp) begins
+test comvar(shcomp) passed [ 98 tests 0 errors ]
+test comvario begins
+test comvario passed [ 72 tests 0 errors ]
+test comvario(C.UTF-8) begins
+test comvario(C.UTF-8) passed [ 72 tests 0 errors ]
+test comvario(shcomp) begins
+test comvario(shcomp) passed [ 72 tests 0 errors ]
+test coprocess begins
+test coprocess passed [ 35 tests 0 errors ]
+test coprocess(C.UTF-8) begins
+test coprocess(C.UTF-8) passed [ 35 tests 0 errors ]
+test coprocess(shcomp) begins
+test coprocess(shcomp) passed [ 35 tests 0 errors ]
+test cubetype begins
+test cubetype passed [ 68 tests 0 errors ]
+test cubetype(C.UTF-8) begins
+test cubetype(C.UTF-8) passed [ 68 tests 0 errors ]
+test cubetype(shcomp) begins
+test cubetype(shcomp) passed [ 68 tests 0 errors ]
+test enum begins
+enum.sh: line 36: x:  invalid value orange
+test enum failed with exit code 1 [ 17 tests 1 error ]
+test enum(C.UTF-8) begins
+enum.sh: line 36: x:  invalid value orange
+test enum(C.UTF-8) failed with exit code 1 [ 17 tests 1 error ]
+test enum(shcomp) begins
+shcomp-enum.ksh: line 36: x:  invalid value orange
+test enum(shcomp) failed with exit code 1 [ 17 tests 1 error ]
+test exit begins
+test exit passed [ 8 tests 0 errors ]
+test exit(C.UTF-8) begins
+test exit(C.UTF-8) passed [ 8 tests 0 errors ]
+test exit(shcomp) begins
+test exit(shcomp) passed [ 8 tests 0 errors ]
+test expand begins
+test expand passed [ 6 tests 0 errors ]
+test expand(C.UTF-8) begins
+test expand(C.UTF-8) passed [ 6 tests 0 errors ]
+test expand(shcomp) begins
+test expand(shcomp) passed [ 6 tests 0 errors ]
+test functions begins
+ps: no controlling terminal
+test functions passed [ 108 tests 0 errors ]
+test functions(C.UTF-8) begins
+ps: no controlling terminal
+test functions(C.UTF-8) passed [ 108 tests 0 errors ]
+test functions(shcomp) begins
+ps: no controlling terminal
+test functions(shcomp) passed [ 108 tests 0 errors ]
+test glob begins
+test glob passed [ 5 tests 0 errors ]
+test glob(C.UTF-8) begins
+test glob(C.UTF-8) passed [ 5 tests 0 errors ]
+test glob(shcomp) begins
+test glob(shcomp) passed [ 5 tests 0 errors ]
+test grep begins
+test grep passed [ 2 tests 0 errors ]
+test grep(C.UTF-8) begins
+test grep(C.UTF-8) passed [ 2 tests 0 errors ]
+test grep(shcomp) begins
+test grep(shcomp) passed [ 2 tests 0 errors ]
+test heredoc begins
+test heredoc passed [ 39 tests 0 errors ]
+test heredoc(C.UTF-8) begins
+test heredoc(C.UTF-8) passed [ 39 tests 0 errors ]
+test heredoc(shcomp) begins
+test heredoc(shcomp) passed [ 39 tests 0 errors ]
+test io begins
+test io passed [ 93 tests 0 errors ]
+test io(C.UTF-8) begins
+test io(C.UTF-8) passed [ 93 tests 0 errors ]
+test io(shcomp) begins
+test io(shcomp) passed [ 93 tests 0 errors ]
+test leaks begins
+test leaks passed [ 4 tests 0 errors ]
+test leaks(C.UTF-8) begins
+test leaks(C.UTF-8) passed [ 4 tests 0 errors ]
+test leaks(shcomp) begins
+test leaks(shcomp) passed [ 4 tests 0 errors ]
+test locale begins
+sort: cannot stat temporary directory
+sort: cannot stat temporary directory
+test locale passed [ 34 tests 0 errors ]
+test locale(shcomp) begins
+sort: cannot stat temporary directory
+sort: cannot stat temporary directory
+test locale(shcomp) passed [ 34 tests 0 errors ]
+test math begins
+test math passed [ 7 tests 0 errors ]
+test math(C.UTF-8) begins
+test math(C.UTF-8) passed [ 7 tests 0 errors ]
+test math(shcomp) begins
+test math(shcomp) passed [ 7 tests 0 errors ]
+test nameref begins
+test nameref passed [ 93 tests 0 errors ]
+test nameref(C.UTF-8) begins
+test nameref(C.UTF-8) passed [ 93 tests 0 errors ]
+test nameref(shcomp) begins
+test nameref(shcomp) passed [ 93 tests 0 errors ]
+test namespace begins
+test namespace passed [ 18 tests 0 errors ]
+test namespace(C.UTF-8) begins
+test namespace(C.UTF-8) passed [ 18 tests 0 errors ]
+test namespace(shcomp) begins
+test namespace(shcomp) passed [ 18 tests 0 errors ]
+test options begins
+	options.sh[537]: pipefail should not wait for background processes
+test options failed with exit code 1 [ 143 tests 1 error ]
+test options(C.UTF-8) begins
+test options(C.UTF-8) passed [ 143 tests 0 errors ]
+test options(shcomp) begins
+test options(shcomp) passed [ 143 tests 0 errors ]
+test path begins
+test path passed [ 72 tests 0 errors ]
+test path(C.UTF-8) begins
+test path(C.UTF-8) passed [ 72 tests 0 errors ]
+test path(shcomp) begins
+test path(shcomp) passed [ 72 tests 0 errors ]
+test pointtype begins
+test pointtype passed [ 34 tests 0 errors ]
+test pointtype(C.UTF-8) begins
+test pointtype(C.UTF-8) passed [ 34 tests 0 errors ]
+test pointtype(shcomp) begins
+test pointtype(shcomp) passed [ 34 tests 0 errors ]
+test pty begins
+	pty.sh[366]: POSIX sh 137(C): line 379: expected "/tmp/", got EOF
+	pty.sh[431]: process/terminal group exercise: line 435: expected ":$|:\E|lines", got EOF
+test pty failed with exit code 1 [ 20 tests 1 error ]
+test pty(C.UTF-8) begins
+	pty.sh[366]: POSIX sh 137(C): line 379: expected "/tmp/", got EOF
+	pty.sh[431]: process/terminal group exercise: line 435: expected ":$|:\E|lines", got EOF
+test pty(C.UTF-8) failed with exit code 1 [ 20 tests 1 error ]
+test pty(shcomp) begins
+shcomp-pty.ksh[366]: POSIX sh 137(C): line 379: expected "/tmp/", got EOF
+shcomp-pty.ksh[431]: process/terminal group exercise: line 435: expected ":$|:\E|lines", got EOF
+test pty(shcomp) failed with exit code 2 [ 20 tests 2 errors ]
+test quoting begins
+test quoting passed [ 94 tests 0 errors ]
+test quoting(C.UTF-8) begins
+test quoting(C.UTF-8) passed [ 94 tests 0 errors ]
+test quoting(shcomp) begins
+test quoting(shcomp) passed [ 94 tests 0 errors ]
+test quoting2 begins
+test quoting2 passed [ 54 tests 0 errors ]
+test quoting2(C.UTF-8) begins
+test quoting2(C.UTF-8) passed [ 54 tests 0 errors ]
+test quoting2(shcomp) begins
+test quoting2(shcomp) passed [ 54 tests 0 errors ]
+test readcsv begins
+test readcsv passed [ 4 tests 0 errors ]
+test readcsv(C.UTF-8) begins
+test readcsv(C.UTF-8) passed [ 4 tests 0 errors ]
+test readcsv(shcomp) begins
+test readcsv(shcomp) passed [ 4 tests 0 errors ]
+test recttype begins
+test recttype passed [ 8 tests 0 errors ]
+test recttype(C.UTF-8) begins
+test recttype(C.UTF-8) passed [ 8 tests 0 errors ]
+test recttype(shcomp) begins
+test recttype(shcomp) passed [ 8 tests 0 errors ]
+test restricted begins
+test restricted passed [ 20 tests 0 errors ]
+test restricted(C.UTF-8) begins
+test restricted(C.UTF-8) passed [ 20 tests 0 errors ]
+test restricted(shcomp) begins
+test restricted(shcomp) passed [ 20 tests 0 errors ]
+test return begins
+test return passed [ 25 tests 0 errors ]
+test return(C.UTF-8) begins
+test return(C.UTF-8) passed [ 25 tests 0 errors ]
+test return(shcomp) begins
+test return(shcomp) passed [ 25 tests 0 errors ]
+test select begins
+test select passed [ 5 tests 0 errors ]
+test select(C.UTF-8) begins
+test select(C.UTF-8) passed [ 5 tests 0 errors ]
+test select(shcomp) begins
+test select(shcomp) passed [ 5 tests 0 errors ]
+test sigchld begins
+test sigchld passed [ 14 tests 0 errors ]
+test sigchld(C.UTF-8) begins
+	[85]: SIGCHLD trap queueing failed -- expected 'running=0 maxrunning=4', got 'running=0 maxrunning=3'
+test sigchld(C.UTF-8) failed with exit code 1 [ 14 tests 1 error ]
+test sigchld(shcomp) begins
+test sigchld(shcomp) passed [ 14 tests 0 errors ]
+test signal begins
+	signal.sh[338]: took x secs expected around 2
+	signal.sh[345]: took x secs expected around 2
+test signal failed with exit code 1 [ 42 tests 1 error ]
+test signal(C.UTF-8) begins
+	signal.sh[338]: took x secs expected around 2
+	signal.sh[345]: took x secs expected around 2
+test signal(C.UTF-8) failed with exit code 1 [ 42 tests 1 error ]
+test signal(shcomp) begins
+shcomp-signal.ksh[338]: took x secs expected around 2
+shcomp-signal.ksh[345]: took x secs expected around 2
+test signal(shcomp) failed with exit code 2 [ 42 tests 2 errors ]
+test statics begins
+test statics passed [ 7 tests 0 errors ]
+test statics(C.UTF-8) begins
+test statics(C.UTF-8) passed [ 7 tests 0 errors ]
+test statics(shcomp) begins
+test statics(shcomp) passed [ 7 tests 0 errors ]
+test subshell begins
+test subshell passed [ 60 tests 0 errors ]
+test subshell(C.UTF-8) begins
+test subshell(C.UTF-8) passed [ 60 tests 0 errors ]
+test subshell(shcomp) begins
+test subshell(shcomp) passed [ 60 tests 0 errors ]
+test substring begins
+test substring passed [ 220 tests 0 errors ]
+test substring(C.UTF-8) begins
+test substring(C.UTF-8) passed [ 220 tests 0 errors ]
+test substring(shcomp) begins
+test substring(shcomp) passed [ 220 tests 0 errors ]
+test tilde begins
+test tilde passed [ 15 tests 0 errors ]
+test tilde(C.UTF-8) begins
+test tilde(C.UTF-8) passed [ 15 tests 0 errors ]
+test tilde(shcomp) begins
+test tilde(shcomp) passed [ 15 tests 0 errors ]
+test timetype begins
+test timetype passed [ 18 tests 0 errors ]
+test timetype(C.UTF-8) begins
+test timetype(C.UTF-8) passed [ 18 tests 0 errors ]
+test timetype(shcomp) begins
+test timetype(shcomp) passed [ 18 tests 0 errors ]
+test treemove begins
+test treemove passed [ 9 tests 0 errors ]
+test treemove(C.UTF-8) begins
+test treemove(C.UTF-8) passed [ 9 tests 0 errors ]
+test treemove(shcomp) begins
+test treemove(shcomp) passed [ 9 tests 0 errors ]
+test types begins
+test types passed [ 84 tests 0 errors ]
+test types(C.UTF-8) begins
+test types(C.UTF-8) passed [ 84 tests 0 errors ]
+test types(shcomp) begins
+test types(shcomp) passed [ 84 tests 0 errors ]
+test variables begins
+test variables passed [ 113 tests 0 errors ]
+test variables(C.UTF-8) begins
+test variables(C.UTF-8) passed [ 113 tests 0 errors ]
+test variables(shcomp) begins
+test variables(shcomp) passed [ 113 tests 0 errors ]
+test vartree1 begins
+test vartree1 passed [ 9 tests 0 errors ]
+test vartree1(C.UTF-8) begins
+test vartree1(C.UTF-8) passed [ 9 tests 0 errors ]
+test vartree1(shcomp) begins
+test vartree1(shcomp) passed [ 9 tests 0 errors ]
+test vartree2 begins
+test vartree2 passed [ 21 tests 0 errors ]
+test vartree2(C.UTF-8) begins
+test vartree2(C.UTF-8) passed [ 21 tests 0 errors ]
+test vartree2(shcomp) begins
+test vartree2(shcomp) passed [ 21 tests 0 errors ]
+lib:
+cmd/paxlib:
+cmd/dsslib:
+cmd/codexlib:
+cmd:
+package: test done
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/ksh93/test/results-32.sparc.master	Sun May 10 11:59:46 2015 -0700
@@ -0,0 +1,533 @@
+cmd/INIT:
++ regress $(@D)/src/cmd/INIT/iffe.tst iffe
+TEST	iffe
+01	command line basics
+01:5	-r -v - hdr stdio                                                     
+01:15	-r -v -s bsh - hdr stdio                                              
+01:17	-r -v - hdr stdio,limits                                              
+01:29	-r -v -s bsh - hdr stdio,limits                                       
+01:31	-r -v - hdr,lib no_foo_bar,no_bar_foo stdio.h                         
+01:45	-r -v -s bsh - hdr,lib no_foo_bar,no_bar_foo stdio.h                  
+01:47	-r -v - hdr no_foo_bar,no_bar_foo stdio.h : lib no_foo_bar,no_bar_foo 
+01:49	-r -v -s bsh - hdr no_foo_bar,no_bar_foo stdio.h : lib no_foo_bar,no_b
+02	file input basics
+02:53	-r -v - t1.iffe                                                       
+02:64	-r -v -s bsh - t1.iffe                                                
+02:66	-r -v - t2.iffe                                                       
+02:79	-r -v -s bsh - t2.iffe                                                
+02:81	-r -v - t3.iffe                                                       
+02:96	-r -v -s bsh - t3.iffe                                                
+02:98	-r -v - t3.iffe                                                       
+02:102	-r -v -s bsh - t3.iffe                                                
+03	nested if
+03:106	-r -v - t.iffe                                                        
+03:139	-r -v -s bsh - t.iffe                                                 
+03:141	-r -v - t.iffe                                                        
+03:173	-r -v -s bsh - t.iffe                                                 
+03:175	-r -v - t.iffe                                                        
+03:206	-r -v -s bsh - t.iffe                                                 
+03:208	-r -v - t.iffe                                                        
+03:242	-r -v -s bsh - t.iffe                                                 
+03:244	-r -v - t.iffe                                                        
+03:277	-r -v -s bsh - t.iffe                                                 
+03:279	-r -v - t.iffe                                                        
+03:315	-r -v -s bsh - t.iffe                                                 
+03:317	-r -v - t.iffe                                                        
+03:355	-r -v -s bsh - t.iffe                                                 
+03:357	-r -v - t.iffe                                                        
+03:396	-r -v -s bsh - t.iffe                                                 
+03:398	-r -v - t.iffe                                                        
+03:433	-r -v -s bsh - t.iffe                                                 
+03:435	-r -v - t.iffe                                                        
+03:456	-r -v -s bsh - t.iffe                                                 
+04	test variable/macro override
+04:460	-r -v - t.iffe                                                        
+04:472	-r -v -s bsh - t.iffe                                                 
+04:474	-r -v - t.iffe                                                        
+04:488	-r -v -s bsh - t.iffe                                                 
+04:490	-r -v - t.iffe                                                        
+04:497	-r -v -s bsh - t.iffe                                                 
+04:499	-r -v - t.iffe                                                        
+04:506	-r -v -s bsh - t.iffe                                                 
+04:508	-r -v - t.iffe                                                        
+04:515	-r -v -s bsh - t.iffe                                                 
+04:517	-r -v - t.iffe                                                        
+04:541	-r -v -s bsh - t.iffe                                                 
+04:543	-r -v - t.iffe                                                        
+04:563	-r -v -s bsh - t.iffe                                                 
+04:565	-r -v - t.iffe                                                        
+04:585	-r -v -s bsh - t.iffe                                                 
+05	test code option sequence
+05:589	-r -v - t.iffe                                                        
+05:608	-r -v -s bsh - t.iffe                                                 
+05:610	-r -v - t.iffe                                                        
+05:621	-r -v -s bsh - t.iffe                                                 
+05:623	-r -v - t.iffe                                                        
+05:637	-r -v -s bsh - t.iffe                                                 
+05:639	-r -v - t.iffe                                                        
+05:650	-r -v -s bsh - t.iffe                                                 
+05:652	-r -v - t.iffe                                                        
+05:671	-r -v -s bsh - t.iffe                                                 
+05:673	-r -v - t.iffe                                                        
+05:684	-r -v -s bsh - t.iffe                                                 
+05:686	-r -v - t.iffe                                                        
+05:710	-r -v -s bsh - t.iffe                                                 
+05:712	-r -v - t.iffe                                                        
+05:726	-r -v -s bsh - t.iffe                                                 
+05:728	-r -v - t.iffe                                                        
+05:745	-r -v -s bsh - t.iffe                                                 
+05:747	-r -v - t.iffe                                                        
+05:761	-r -v -s bsh - t.iffe                                                 
+05:763	-r -v - t.iffe                                                        
+05:785	-r -v -s bsh - t.iffe                                                 
+05:787	-r -v - t.iffe                                                        
+05:801	-r -v -s bsh - t.iffe                                                 
+05:803	-r -v - t.iffe                                                        
+05:827	-r -v -s bsh - t.iffe                                                 
+05:829	-r -v - t.iffe                                                        
+05:846	-r -v -s bsh - t.iffe                                                 
+05:848	-r -v - t.iffe                                                        
+05:866	-r -v -s bsh - t.iffe                                                 
+05:868	-r -v - t.iffe                                                        
+05:891	-r -v -s bsh - t.iffe                                                 
+06	block side effects
+06:895	-r - t.iffe                                                           
+06:909	-r -s bsh - t.iffe                                                    
+06:911	-r - t.iffe                                                           
+06:922	-r -s bsh - t.iffe                                                    
+06:924	-r - t.iffe                                                           
+06:937	-r -s bsh - t.iffe                                                    
+06:939	-r - t.iffe                                                           
+06:953	-r -s bsh - t.iffe                                                    
+07	diagnostics
+07:957	-r - t.iffe                                                           
+07:967	-r -s bsh - t.iffe                                                    
+07:969	-r - t.iffe                                                           
+07:978	-r -s bsh - t.iffe                                                    
+07:980	-r - t.iffe                                                           
+07:988	-r -s bsh - t.iffe                                                    
+07:990	-r - t.iffe                                                           
+07:994	-r -s bsh - t.iffe                                                    
+07:996	-r - t.iffe                                                           
+07:1001	-r -s bsh - t.iffe                                                    
+08	negation consternation
+08:1005	-r - t.iffe                                                           
+08:1017	-r -u - t.iffe                                                        
+08:1029	-r -a - t.iffe                                                        
+08:1041	-r -C - t.iffe                                                        
+08:1053	-r - t.iffe                                                           
+08:1069	-r -u - t.iffe                                                        
+08:1083	-r -C - t.iffe                                                        
+09	exp vs. if
+09:1099	-r - t.iffe                                                           
+09:1124	-r -s bsh - t.iffe                                                    
+09:1126	-r - t.iffe                                                           
+09:1149	-r -s bsh - t.iffe                                                    
+09:1151	-r - t.iffe                                                           
+09:1176	-r -s bsh - t.iffe                                                    
+09:1178	-r - t.iffe                                                           
+09:1199	-r -s bsh - t.iffe                                                    
+09:1201	-r - t.iffe                                                           
+09:1226	-r -s bsh - t.iffe                                                    
+09:1228	-r - t.iffe                                                           
+09:1251	-r -s bsh - t.iffe                                                    
+09:1253	-r - t.iffe                                                           
+09:1278	-r -s bsh - t.iffe                                                    
+09:1280	-r - t.iffe                                                           
+09:1301	-r -s bsh - t.iffe                                                    
+09:1303	-r - t.iffe                                                           
+09:1327	-r -s bsh - t.iffe                                                    
+09:1329	-r - t.iffe                                                           
+09:1352	-r -s bsh - t.iffe                                                    
+09:1354	-r - t.iffe                                                           
+09:1378	-r -s bsh - t.iffe                                                    
+09:1380	-r - t.iffe                                                           
+09:1397	-r -s bsh - t.iffe                                                    
+09:1399	-r - t.iffe                                                           
+09:1421	-r -s bsh - t.iffe                                                    
+09:1423	-r - t.iffe                                                           
+09:1437	-r -s bsh - t.iffe                                                    
+10	exp details
+10:1441	-r -v - t.iffe                                                        
+10:1474	-r -v -s bsh - t.iffe                                                 
+11	set [no]define
+11:1478	-r -v - t.iffe                                                        
+11:1508	-r -v -s bsh - t.iffe                                                 
+12	non-opaque mem
+12:1512	-r -v - mem OPAQUE -I. t.h                                            
+12:1525	-r -v - mem NONOPAQUE -I. t.h                                         
+13	key states
+13:1542	-r -v - t.iffe                                                        
+13:1570	-r -v -s bsh - t.iffe                                                 
+13:1572	-u -r -v - t.iffe                                                     
+13:1588	-u -r -v -s bsh - t.iffe                                              
+13:1590	-a -r -v - t.iffe                                                     
+13:1606	-a -r -v -s bsh - t.iffe                                              
+13:1608	-C -r -v - t.iffe                                                     
+13:1624	-C -r -v -s bsh - t.iffe                                              
+14	inc file
+14:1628	-r -v - t.iffe                                                        
+14:1650	-r -v - t.iffe                                                        
+14:1669	-r -v - t.iffe                                                        
+14:1682	-r -v - t.iffe                                                        
+14:1692	-r -v - t.iffe                                                        
+15	KnR compatibility
+15:1699	-r -v - t.iffe                                                        
+15:1742	-r -v -s bsh - t.iffe                                                 
+15:1744	-r -v -s osh - t.iffe                                                 
+16	{ define extern include print }
+16:1748	-r -v - t.iffe                                                        
+17	features/* => FEATURE/*
+17:1780	-r -v run features/stdio                                              
+18	api + ver
+18:1854	-r -v - t.iffe                                                        
+TEST	iffe, 162 tests, 0 errors
++ [[ -n '' ]]
++ [[ $(@D)/src/cmd/INIT/mamake.rt -nt $(@D)/src/cmd/INIT/mamake.tst ]]
++ regress $(@D)/src/cmd/INIT/mamake.tst mamake
+TEST	mamake
+01	macros
+01:9	-n                                                                    
+TEST	mamake, 1 test, 0 errors
+lib/libast:
+lib/libsum:
+lib/libcmd:
+lib/libcoshell:
+lib/libcs:
+cmd/coshell:
+lib/libdll:
+cmd/ksh93:
++ cd $(@D)/src/cmd/ksh93/tests
++ $(@D)/arch/sol11.sparc/bin/ksh shtests
++ SHELL=$(@D)/arch/sol11.sparc/bin/ksh
+test alias begins
+test alias passed [ 22 tests 0 errors ]
+test alias(C.UTF-8) begins
+test alias(C.UTF-8) passed [ 22 tests 0 errors ]
+test alias(shcomp) begins
+test alias(shcomp) passed [ 22 tests 0 errors ]
+test append begins
+test append passed [ 17 tests 0 errors ]
+test append(C.UTF-8) begins
+test append(C.UTF-8) passed [ 17 tests 0 errors ]
+test append(shcomp) begins
+test append(shcomp) passed [ 17 tests 0 errors ]
+test arith begins
+arith.sh[600]: color_t: pants:  invalid value blue
+test arith failed with exit code 1 [ 201 tests 1 error ]
+test arith(C.UTF-8) begins
+arith.sh[600]: color_t: pants:  invalid value blue
+test arith(C.UTF-8) failed with exit code 1 [ 201 tests 1 error ]
+test arith(shcomp) begins
+shcomp-arith.ksh[600]: color_t: pants:  invalid value blue
+test arith(shcomp) failed with exit code 1 [ 201 tests 1 error ]
+test arrays begins
+test arrays passed [ 145 tests 0 errors ]
+test arrays(C.UTF-8) begins
+test arrays(C.UTF-8) passed [ 145 tests 0 errors ]
+test arrays(shcomp) begins
+test arrays(shcomp) passed [ 145 tests 0 errors ]
+test arrays2 begins
+test arrays2 passed [ 42 tests 0 errors ]
+test arrays2(C.UTF-8) begins
+test arrays2(C.UTF-8) passed [ 42 tests 0 errors ]
+test arrays2(shcomp) begins
+test arrays2(shcomp) passed [ 42 tests 0 errors ]
+test attributes begins
+test attributes passed [ 109 tests 0 errors ]
+test attributes(C.UTF-8) begins
+test attributes(C.UTF-8) passed [ 109 tests 0 errors ]
+test attributes(shcomp) begins
+test attributes(shcomp) passed [ 109 tests 0 errors ]
+test basic begins
+	basic.sh[320]: ALRM signal not working
+test basic failed with exit code 1 [ 102 tests 1 error ]
+test basic(C.UTF-8) begins
+	basic.sh[320]: ALRM signal not working
+test basic(C.UTF-8) failed with exit code 1 [ 102 tests 1 error ]
+test basic(shcomp) begins
+shcomp-basic.ksh[320]: ALRM signal not working
+test basic(shcomp) failed with exit code 1 [ 102 tests 1 error ]
+test bracket begins
+test bracket passed [ 118 tests 0 errors ]
+test bracket(C.UTF-8) begins
+test bracket(C.UTF-8) passed [ 118 tests 0 errors ]
+test bracket(shcomp) begins
+test bracket(shcomp) passed [ 118 tests 0 errors ]
+test builtins begins
+	builtins.sh[529]: ALRM signal causes sleep to terminate prematurely -- expected 3 sec got x secs
+test builtins failed with exit code 1 [ 157 tests 1 error ]
+test builtins(C.UTF-8) begins
+	builtins.sh[529]: ALRM signal causes sleep to terminate prematurely -- expected 3 sec got x secs
+test builtins(C.UTF-8) failed with exit code 1 [ 157 tests 1 error ]
+test builtins(shcomp) begins
+shcomp-builtins.ksh[529]: ALRM signal causes sleep to terminate prematurely -- expected 3 sec got x secs
+test builtins(shcomp) failed with exit code 1 [ 157 tests 1 error ]
+test case begins
+test case passed [ 6 tests 0 errors ]
+test case(C.UTF-8) begins
+test case(C.UTF-8) passed [ 6 tests 0 errors ]
+test case(shcomp) begins
+test case(shcomp) passed [ 6 tests 0 errors ]
+test comvar begins
+test comvar passed [ 98 tests 0 errors ]
+test comvar(C.UTF-8) begins
+test comvar(C.UTF-8) passed [ 98 tests 0 errors ]
+test comvar(shcomp) begins
+test comvar(shcomp) passed [ 98 tests 0 errors ]
+test comvario begins
+test comvario passed [ 72 tests 0 errors ]
+test comvario(C.UTF-8) begins
+test comvario(C.UTF-8) passed [ 72 tests 0 errors ]
+test comvario(shcomp) begins
+test comvario(shcomp) passed [ 72 tests 0 errors ]
+test coprocess begins
+	coprocess.sh[236]: $(@D)/arch/sol11.sparc/bin/cat coprocess 2 hung
+test coprocess failed with exit code 1 [ 35 tests 1 error ]
+test coprocess(C.UTF-8) begins
+test coprocess(C.UTF-8) passed [ 35 tests 0 errors ]
+test coprocess(shcomp) begins
+shcomp-coprocess.ksh[236]: $(@D)/arch/sol11.sparc/bin/cat coprocess 2 hung
+test coprocess(shcomp) failed with exit code 1 [ 35 tests 1 error ]
+test cubetype begins
+test cubetype passed [ 68 tests 0 errors ]
+test cubetype(C.UTF-8) begins
+test cubetype(C.UTF-8) passed [ 68 tests 0 errors ]
+test cubetype(shcomp) begins
+test cubetype(shcomp) passed [ 68 tests 0 errors ]
+test enum begins
+enum.sh: line 36: x:  invalid value orange
+test enum failed with exit code 1 [ 17 tests 1 error ]
+test enum(C.UTF-8) begins
+enum.sh: line 36: x:  invalid value orange
+test enum(C.UTF-8) failed with exit code 1 [ 17 tests 1 error ]
+test enum(shcomp) begins
+shcomp-enum.ksh: line 36: x:  invalid value orange
+test enum(shcomp) failed with exit code 1 [ 17 tests 1 error ]
+test exit begins
+test exit passed [ 8 tests 0 errors ]
+test exit(C.UTF-8) begins
+test exit(C.UTF-8) passed [ 8 tests 0 errors ]
+test exit(shcomp) begins
+test exit(shcomp) passed [ 8 tests 0 errors ]
+test expand begins
+test expand passed [ 6 tests 0 errors ]
+test expand(C.UTF-8) begins
+test expand(C.UTF-8) passed [ 6 tests 0 errors ]
+test expand(shcomp) begins
+test expand(shcomp) passed [ 6 tests 0 errors ]
+test functions begins
+ps: no controlling terminal
+test functions passed [ 108 tests 0 errors ]
+test functions(C.UTF-8) begins
+ps: no controlling terminal
+test functions(C.UTF-8) passed [ 108 tests 0 errors ]
+test functions(shcomp) begins
+ps: no controlling terminal
+test functions(shcomp) passed [ 108 tests 0 errors ]
+test glob begins
+test glob passed [ 5 tests 0 errors ]
+test glob(C.UTF-8) begins
+test glob(C.UTF-8) passed [ 5 tests 0 errors ]
+test glob(shcomp) begins
+test glob(shcomp) passed [ 5 tests 0 errors ]
+test grep begins
+test grep passed [ 2 tests 0 errors ]
+test grep(C.UTF-8) begins
+test grep(C.UTF-8) passed [ 2 tests 0 errors ]
+test grep(shcomp) begins
+test grep(shcomp) passed [ 2 tests 0 errors ]
+test heredoc begins
+test heredoc passed [ 39 tests 0 errors ]
+test heredoc(C.UTF-8) begins
+test heredoc(C.UTF-8) passed [ 39 tests 0 errors ]
+test heredoc(shcomp) begins
+test heredoc(shcomp) passed [ 39 tests 0 errors ]
+test io begins
+test io passed [ 93 tests 0 errors ]
+test io(C.UTF-8) begins
+test io(C.UTF-8) passed [ 93 tests 0 errors ]
+test io(shcomp) begins
+test io(shcomp) passed [ 93 tests 0 errors ]
+test leaks begins
+test leaks passed [ 4 tests 0 errors ]
+test leaks(C.UTF-8) begins
+test leaks(C.UTF-8) passed [ 4 tests 0 errors ]
+test leaks(shcomp) begins
+test leaks(shcomp) passed [ 4 tests 0 errors ]
+test locale begins
+test locale passed [ 34 tests 0 errors ]
+test locale(shcomp) begins
+test locale(shcomp) passed [ 34 tests 0 errors ]
+test math begins
+test math passed [ 7 tests 0 errors ]
+test math(C.UTF-8) begins
+test math(C.UTF-8) passed [ 7 tests 0 errors ]
+test math(shcomp) begins
+test math(shcomp) passed [ 7 tests 0 errors ]
+test nameref begins
+test nameref passed [ 93 tests 0 errors ]
+test nameref(C.UTF-8) begins
+test nameref(C.UTF-8) passed [ 93 tests 0 errors ]
+test nameref(shcomp) begins
+test nameref(shcomp) passed [ 93 tests 0 errors ]
+test namespace begins
+test namespace passed [ 18 tests 0 errors ]
+test namespace(C.UTF-8) begins
+test namespace(C.UTF-8) passed [ 18 tests 0 errors ]
+test namespace(shcomp) begins
+test namespace(shcomp) passed [ 18 tests 0 errors ]
+test options begins
+test options passed [ 143 tests 0 errors ]
+test options(C.UTF-8) begins
+test options(C.UTF-8) passed [ 143 tests 0 errors ]
+test options(shcomp) begins
+test options(shcomp) passed [ 143 tests 0 errors ]
+test path begins
+test path passed [ 72 tests 0 errors ]
+test path(C.UTF-8) begins
+test path(C.UTF-8) passed [ 72 tests 0 errors ]
+test path(shcomp) begins
+test path(shcomp) passed [ 72 tests 0 errors ]
+test pointtype begins
+test pointtype passed [ 34 tests 0 errors ]
+test pointtype(C.UTF-8) begins
+test pointtype(C.UTF-8) passed [ 34 tests 0 errors ]
+test pointtype(shcomp) begins
+test pointtype(shcomp) passed [ 34 tests 0 errors ]
+test pty begins
+	pty.sh[366]: POSIX sh 137(C): line 379: expected "/tmp/", got EOF
+test pty failed with exit code 1 [ 20 tests 1 error ]
+test pty(C.UTF-8) begins
+	pty.sh[366]: POSIX sh 137(C): line 379: expected "/tmp/", got EOF
+test pty(C.UTF-8) failed with exit code 1 [ 20 tests 1 error ]
+test pty(shcomp) begins
+shcomp-pty.ksh[366]: POSIX sh 137(C): line 379: expected "/tmp/", got EOF
+shcomp-pty.ksh[431]: process/terminal group exercise: line 435: expected ":$|:\E|lines", got EOF
+test pty(shcomp) failed with exit code 2 [ 20 tests 2 errors ]
+test quoting begins
+test quoting passed [ 94 tests 0 errors ]
+test quoting(C.UTF-8) begins
+test quoting(C.UTF-8) passed [ 94 tests 0 errors ]
+test quoting(shcomp) begins
+test quoting(shcomp) passed [ 94 tests 0 errors ]
+test quoting2 begins
+test quoting2 passed [ 54 tests 0 errors ]
+test quoting2(C.UTF-8) begins
+test quoting2(C.UTF-8) passed [ 54 tests 0 errors ]
+test quoting2(shcomp) begins
+test quoting2(shcomp) passed [ 54 tests 0 errors ]
+test readcsv begins
+test readcsv passed [ 4 tests 0 errors ]
+test readcsv(C.UTF-8) begins
+test readcsv(C.UTF-8) passed [ 4 tests 0 errors ]
+test readcsv(shcomp) begins
+test readcsv(shcomp) passed [ 4 tests 0 errors ]
+test recttype begins
+test recttype passed [ 8 tests 0 errors ]
+test recttype(C.UTF-8) begins
+test recttype(C.UTF-8) passed [ 8 tests 0 errors ]
+test recttype(shcomp) begins
+test recttype(shcomp) passed [ 8 tests 0 errors ]
+test restricted begins
+test restricted passed [ 20 tests 0 errors ]
+test restricted(C.UTF-8) begins
+test restricted(C.UTF-8) passed [ 20 tests 0 errors ]
+test restricted(shcomp) begins
+test restricted(shcomp) passed [ 20 tests 0 errors ]
+test return begins
+test return passed [ 25 tests 0 errors ]
+test return(C.UTF-8) begins
+test return(C.UTF-8) passed [ 25 tests 0 errors ]
+test return(shcomp) begins
+test return(shcomp) passed [ 25 tests 0 errors ]
+test select begins
+test select passed [ 5 tests 0 errors ]
+test select(C.UTF-8) begins
+test select(C.UTF-8) passed [ 5 tests 0 errors ]
+test select(shcomp) begins
+test select(shcomp) passed [ 5 tests 0 errors ]
+test sigchld begins
+test sigchld passed [ 14 tests 0 errors ]
+test sigchld(C.UTF-8) begins
+test sigchld(C.UTF-8) passed [ 14 tests 0 errors ]
+test sigchld(shcomp) begins
+test sigchld(shcomp) passed [ 14 tests 0 errors ]
+test signal begins
+	signal.sh[338]: took x secs expected around 2
+	signal.sh[345]: took x secs expected around 2
+test signal failed with exit code 1 [ 42 tests 1 error ]
+test signal(C.UTF-8) begins
+	signal.sh[338]: took x secs expected around 2
+	signal.sh[345]: took x secs expected around 2
+test signal(C.UTF-8) failed with exit code 1 [ 42 tests 1 error ]
+test signal(shcomp) begins
+shcomp-signal.ksh[338]: took x secs expected around 2
+shcomp-signal.ksh[345]: took x secs expected around 2
+test signal(shcomp) failed with exit code 2 [ 42 tests 2 errors ]
+test statics begins
+test statics passed [ 7 tests 0 errors ]
+test statics(C.UTF-8) begins
+test statics(C.UTF-8) passed [ 7 tests 0 errors ]
+test statics(shcomp) begins
+test statics(shcomp) passed [ 7 tests 0 errors ]
+test subshell begins
+test subshell passed [ 60 tests 0 errors ]
+test subshell(C.UTF-8) begins
+test subshell(C.UTF-8) passed [ 60 tests 0 errors ]
+test subshell(shcomp) begins
+test subshell(shcomp) passed [ 60 tests 0 errors ]
+test substring begins
+test substring passed [ 220 tests 0 errors ]
+test substring(C.UTF-8) begins
+test substring(C.UTF-8) passed [ 220 tests 0 errors ]
+test substring(shcomp) begins
+test substring(shcomp) passed [ 220 tests 0 errors ]
+test tilde begins
+test tilde passed [ 15 tests 0 errors ]
+test tilde(C.UTF-8) begins
+test tilde(C.UTF-8) passed [ 15 tests 0 errors ]
+test tilde(shcomp) begins
+test tilde(shcomp) passed [ 15 tests 0 errors ]
+test timetype begins
+test timetype passed [ 18 tests 0 errors ]
+test timetype(C.UTF-8) begins
+test timetype(C.UTF-8) passed [ 18 tests 0 errors ]
+test timetype(shcomp) begins
+test timetype(shcomp) passed [ 18 tests 0 errors ]
+test treemove begins
+test treemove passed [ 9 tests 0 errors ]
+test treemove(C.UTF-8) begins
+test treemove(C.UTF-8) passed [ 9 tests 0 errors ]
+test treemove(shcomp) begins
+test treemove(shcomp) passed [ 9 tests 0 errors ]
+test types begins
+test types passed [ 84 tests 0 errors ]
+test types(C.UTF-8) begins
+test types(C.UTF-8) passed [ 84 tests 0 errors ]
+test types(shcomp) begins
+test types(shcomp) passed [ 84 tests 0 errors ]
+test variables begins
+test variables passed [ 113 tests 0 errors ]
+test variables(C.UTF-8) begins
+test variables(C.UTF-8) passed [ 113 tests 0 errors ]
+test variables(shcomp) begins
+test variables(shcomp) passed [ 113 tests 0 errors ]
+test vartree1 begins
+test vartree1 passed [ 9 tests 0 errors ]
+test vartree1(C.UTF-8) begins
+test vartree1(C.UTF-8) passed [ 9 tests 0 errors ]
+test vartree1(shcomp) begins
+test vartree1(shcomp) passed [ 9 tests 0 errors ]
+test vartree2 begins
+test vartree2 passed [ 21 tests 0 errors ]
+test vartree2(C.UTF-8) begins
+test vartree2(C.UTF-8) passed [ 21 tests 0 errors ]
+test vartree2(shcomp) begins
+test vartree2(shcomp) passed [ 21 tests 0 errors ]
+lib:
+cmd/paxlib:
+cmd/dsslib:
+cmd/codexlib:
+cmd:
+package: test done
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/ksh93/test/results-64.i386.master	Sun May 10 11:59:46 2015 -0700
@@ -0,0 +1,540 @@
+cmd/INIT:
++ regress $(@D)/src/cmd/INIT/iffe.tst iffe
+TEST	iffe
+01	command line basics
+01:5	-r -v - hdr stdio                                                     
+01:15	-r -v -s bsh - hdr stdio                                              
+01:17	-r -v - hdr stdio,limits                                              
+01:29	-r -v -s bsh - hdr stdio,limits                                       
+01:31	-r -v - hdr,lib no_foo_bar,no_bar_foo stdio.h                         
+01:45	-r -v -s bsh - hdr,lib no_foo_bar,no_bar_foo stdio.h                  
+01:47	-r -v - hdr no_foo_bar,no_bar_foo stdio.h : lib no_foo_bar,no_bar_foo 
+01:49	-r -v -s bsh - hdr no_foo_bar,no_bar_foo stdio.h : lib no_foo_bar,no_b
+02	file input basics
+02:53	-r -v - t1.iffe                                                       
+02:64	-r -v -s bsh - t1.iffe                                                
+02:66	-r -v - t2.iffe                                                       
+02:79	-r -v -s bsh - t2.iffe                                                
+02:81	-r -v - t3.iffe                                                       
+02:96	-r -v -s bsh - t3.iffe                                                
+02:98	-r -v - t3.iffe                                                       
+02:102	-r -v -s bsh - t3.iffe                                                
+03	nested if
+03:106	-r -v - t.iffe                                                        
+03:139	-r -v -s bsh - t.iffe                                                 
+03:141	-r -v - t.iffe                                                        
+03:173	-r -v -s bsh - t.iffe                                                 
+03:175	-r -v - t.iffe                                                        
+03:206	-r -v -s bsh - t.iffe                                                 
+03:208	-r -v - t.iffe                                                        
+03:242	-r -v -s bsh - t.iffe                                                 
+03:244	-r -v - t.iffe                                                        
+03:277	-r -v -s bsh - t.iffe                                                 
+03:279	-r -v - t.iffe                                                        
+03:315	-r -v -s bsh - t.iffe                                                 
+03:317	-r -v - t.iffe                                                        
+03:355	-r -v -s bsh - t.iffe                                                 
+03:357	-r -v - t.iffe                                                        
+03:396	-r -v -s bsh - t.iffe                                                 
+03:398	-r -v - t.iffe                                                        
+03:433	-r -v -s bsh - t.iffe                                                 
+03:435	-r -v - t.iffe                                                        
+03:456	-r -v -s bsh - t.iffe                                                 
+04	test variable/macro override
+04:460	-r -v - t.iffe                                                        
+04:472	-r -v -s bsh - t.iffe                                                 
+04:474	-r -v - t.iffe                                                        
+04:488	-r -v -s bsh - t.iffe                                                 
+04:490	-r -v - t.iffe                                                        
+04:497	-r -v -s bsh - t.iffe                                                 
+04:499	-r -v - t.iffe                                                        
+04:506	-r -v -s bsh - t.iffe                                                 
+04:508	-r -v - t.iffe                                                        
+04:515	-r -v -s bsh - t.iffe                                                 
+04:517	-r -v - t.iffe                                                        
+04:541	-r -v -s bsh - t.iffe                                                 
+04:543	-r -v - t.iffe                                                        
+04:563	-r -v -s bsh - t.iffe                                                 
+04:565	-r -v - t.iffe                                                        
+04:585	-r -v -s bsh - t.iffe                                                 
+05	test code option sequence
+05:589	-r -v - t.iffe                                                        
+05:608	-r -v -s bsh - t.iffe                                                 
+05:610	-r -v - t.iffe                                                        
+05:621	-r -v -s bsh - t.iffe                                                 
+05:623	-r -v - t.iffe                                                        
+05:637	-r -v -s bsh - t.iffe                                                 
+05:639	-r -v - t.iffe                                                        
+05:650	-r -v -s bsh - t.iffe                                                 
+05:652	-r -v - t.iffe                                                        
+05:671	-r -v -s bsh - t.iffe                                                 
+05:673	-r -v - t.iffe                                                        
+05:684	-r -v -s bsh - t.iffe                                                 
+05:686	-r -v - t.iffe                                                        
+05:710	-r -v -s bsh - t.iffe                                                 
+05:712	-r -v - t.iffe                                                        
+05:726	-r -v -s bsh - t.iffe                                                 
+05:728	-r -v - t.iffe                                                        
+05:745	-r -v -s bsh - t.iffe                                                 
+05:747	-r -v - t.iffe                                                        
+05:761	-r -v -s bsh - t.iffe                                                 
+05:763	-r -v - t.iffe                                                        
+05:785	-r -v -s bsh - t.iffe                                                 
+05:787	-r -v - t.iffe                                                        
+05:801	-r -v -s bsh - t.iffe                                                 
+05:803	-r -v - t.iffe                                                        
+05:827	-r -v -s bsh - t.iffe                                                 
+05:829	-r -v - t.iffe                                                        
+05:846	-r -v -s bsh - t.iffe                                                 
+05:848	-r -v - t.iffe                                                        
+05:866	-r -v -s bsh - t.iffe                                                 
+05:868	-r -v - t.iffe                                                        
+05:891	-r -v -s bsh - t.iffe                                                 
+06	block side effects
+06:895	-r - t.iffe                                                           
+06:909	-r -s bsh - t.iffe                                                    
+06:911	-r - t.iffe                                                           
+06:922	-r -s bsh - t.iffe                                                    
+06:924	-r - t.iffe                                                           
+06:937	-r -s bsh - t.iffe                                                    
+06:939	-r - t.iffe                                                           
+06:953	-r -s bsh - t.iffe                                                    
+07	diagnostics
+07:957	-r - t.iffe                                                           
+07:967	-r -s bsh - t.iffe                                                    
+07:969	-r - t.iffe                                                           
+07:978	-r -s bsh - t.iffe                                                    
+07:980	-r - t.iffe                                                           
+07:988	-r -s bsh - t.iffe                                                    
+07:990	-r - t.iffe                                                           
+07:994	-r -s bsh - t.iffe                                                    
+07:996	-r - t.iffe                                                           
+07:1001	-r -s bsh - t.iffe                                                    
+08	negation consternation
+08:1005	-r - t.iffe                                                           
+08:1017	-r -u - t.iffe                                                        
+08:1029	-r -a - t.iffe                                                        
+08:1041	-r -C - t.iffe                                                        
+08:1053	-r - t.iffe                                                           
+08:1069	-r -u - t.iffe                                                        
+08:1083	-r -C - t.iffe                                                        
+09	exp vs. if
+09:1099	-r - t.iffe                                                           
+09:1124	-r -s bsh - t.iffe                                                    
+09:1126	-r - t.iffe                                                           
+09:1149	-r -s bsh - t.iffe                                                    
+09:1151	-r - t.iffe                                                           
+09:1176	-r -s bsh - t.iffe                                                    
+09:1178	-r - t.iffe                                                           
+09:1199	-r -s bsh - t.iffe                                                    
+09:1201	-r - t.iffe                                                           
+09:1226	-r -s bsh - t.iffe                                                    
+09:1228	-r - t.iffe                                                           
+09:1251	-r -s bsh - t.iffe                                                    
+09:1253	-r - t.iffe                                                           
+09:1278	-r -s bsh - t.iffe                                                    
+09:1280	-r - t.iffe                                                           
+09:1301	-r -s bsh - t.iffe                                                    
+09:1303	-r - t.iffe                                                           
+09:1327	-r -s bsh - t.iffe                                                    
+09:1329	-r - t.iffe                                                           
+09:1352	-r -s bsh - t.iffe                                                    
+09:1354	-r - t.iffe                                                           
+09:1378	-r -s bsh - t.iffe                                                    
+09:1380	-r - t.iffe                                                           
+09:1397	-r -s bsh - t.iffe                                                    
+09:1399	-r - t.iffe                                                           
+09:1421	-r -s bsh - t.iffe                                                    
+09:1423	-r - t.iffe                                                           
+09:1437	-r -s bsh - t.iffe                                                    
+10	exp details
+10:1441	-r -v - t.iffe                                                        
+10:1474	-r -v -s bsh - t.iffe                                                 
+11	set [no]define
+11:1478	-r -v - t.iffe                                                        
+11:1508	-r -v -s bsh - t.iffe                                                 
+12	non-opaque mem
+12:1512	-r -v - mem OPAQUE -I. t.h                                            
+12:1525	-r -v - mem NONOPAQUE -I. t.h                                         
+13	key states
+13:1542	-r -v - t.iffe                                                        
+13:1570	-r -v -s bsh - t.iffe                                                 
+13:1572	-u -r -v - t.iffe                                                     
+13:1588	-u -r -v -s bsh - t.iffe                                              
+13:1590	-a -r -v - t.iffe                                                     
+13:1606	-a -r -v -s bsh - t.iffe                                              
+13:1608	-C -r -v - t.iffe                                                     
+13:1624	-C -r -v -s bsh - t.iffe                                              
+14	inc file
+14:1628	-r -v - t.iffe                                                        
+14:1650	-r -v - t.iffe                                                        
+14:1669	-r -v - t.iffe                                                        
+14:1682	-r -v - t.iffe                                                        
+14:1692	-r -v - t.iffe                                                        
+15	KnR compatibility
+15:1699	-r -v - t.iffe                                                        
+15:1742	-r -v -s bsh - t.iffe                                                 
+15:1744	-r -v -s osh - t.iffe                                                 
+16	{ define extern include print }
+16:1748	-r -v - t.iffe                                                        
+17	features/* => FEATURE/*
+17:1780	-r -v run features/stdio                                              
+18	api + ver
+18:1854	-r -v - t.iffe                                                        
+TEST	iffe, 162 tests, 0 errors
++ [[ -n '' ]]
++ [[ $(@D)/src/cmd/INIT/mamake.rt -nt $(@D)/src/cmd/INIT/mamake.tst ]]
++ regress $(@D)/src/cmd/INIT/mamake.tst mamake
+TEST	mamake
+01	macros
+01:9	-n                                                                    
+TEST	mamake, 1 test, 0 errors
+lib/libast:
+lib/libsum:
+lib/libcmd:
+lib/libcoshell:
+lib/libcs:
+cmd/coshell:
+lib/libdll:
+cmd/ksh93:
++ cd $(@D)/src/cmd/ksh93/tests
++ $(@D)/arch/sol11.i386-64/bin/ksh shtests
++ SHELL=$(@D)/arch/sol11.i386-64/bin/ksh
+test alias begins
+test alias passed [ 22 tests 0 errors ]
+test alias(C.UTF-8) begins
+test alias(C.UTF-8) passed [ 22 tests 0 errors ]
+test alias(shcomp) begins
+test alias(shcomp) passed [ 22 tests 0 errors ]
+test append begins
+test append passed [ 17 tests 0 errors ]
+test append(C.UTF-8) begins
+test append(C.UTF-8) passed [ 17 tests 0 errors ]
+test append(shcomp) begins
+test append(shcomp) passed [ 17 tests 0 errors ]
+test arith begins
+arith.sh[600]: color_t: pants:  invalid value blue
+test arith failed with exit code 1 [ 201 tests 1 error ]
+test arith(C.UTF-8) begins
+arith.sh[600]: color_t: pants:  invalid value blue
+test arith(C.UTF-8) failed with exit code 1 [ 201 tests 1 error ]
+test arith(shcomp) begins
+shcomp-arith.ksh[600]: color_t: pants:  invalid value blue
+test arith(shcomp) failed with exit code 1 [ 201 tests 1 error ]
+test arrays begins
+test arrays passed [ 145 tests 0 errors ]
+test arrays(C.UTF-8) begins
+test arrays(C.UTF-8) passed [ 145 tests 0 errors ]
+test arrays(shcomp) begins
+test arrays(shcomp) passed [ 145 tests 0 errors ]
+test arrays2 begins
+test arrays2 passed [ 42 tests 0 errors ]
+test arrays2(C.UTF-8) begins
+test arrays2(C.UTF-8) passed [ 42 tests 0 errors ]
+test arrays2(shcomp) begins
+test arrays2(shcomp) passed [ 42 tests 0 errors ]
+test attributes begins
+test attributes passed [ 109 tests 0 errors ]
+test attributes(C.UTF-8) begins
+test attributes(C.UTF-8) passed [ 109 tests 0 errors ]
+test attributes(shcomp) begins
+test attributes(shcomp) passed [ 109 tests 0 errors ]
+test basic begins
+	basic.sh[320]: ALRM signal not working
+test basic failed with exit code 1 [ 102 tests 1 error ]
+test basic(C.UTF-8) begins
+	basic.sh[320]: ALRM signal not working
+test basic(C.UTF-8) failed with exit code 1 [ 102 tests 1 error ]
+test basic(shcomp) begins
+shcomp-basic.ksh[320]: ALRM signal not working
+test basic(shcomp) failed with exit code 1 [ 102 tests 1 error ]
+test bracket begins
+test bracket passed [ 118 tests 0 errors ]
+test bracket(C.UTF-8) begins
+test bracket(C.UTF-8) passed [ 118 tests 0 errors ]
+test bracket(shcomp) begins
+test bracket(shcomp) passed [ 118 tests 0 errors ]
+test builtins begins
+	builtins.sh[529]: ALRM signal causes sleep to terminate prematurely -- expected 3 sec got x secs
+test builtins failed with exit code 1 [ 157 tests 1 error ]
+test builtins(C.UTF-8) begins
+	builtins.sh[529]: ALRM signal causes sleep to terminate prematurely -- expected 3 sec got x secs
+test builtins(C.UTF-8) failed with exit code 1 [ 157 tests 1 error ]
+test builtins(shcomp) begins
+shcomp-builtins.ksh[529]: ALRM signal causes sleep to terminate prematurely -- expected 3 sec got x secs
+test builtins(shcomp) failed with exit code 1 [ 157 tests 1 error ]
+test case begins
+test case passed [ 6 tests 0 errors ]
+test case(C.UTF-8) begins
+test case(C.UTF-8) passed [ 6 tests 0 errors ]
+test case(shcomp) begins
+test case(shcomp) passed [ 6 tests 0 errors ]
+test comvar begins
+test comvar passed [ 98 tests 0 errors ]
+test comvar(C.UTF-8) begins
+test comvar(C.UTF-8) passed [ 98 tests 0 errors ]
+test comvar(shcomp) begins
+test comvar(shcomp) passed [ 98 tests 0 errors ]
+test comvario begins
+test comvario passed [ 72 tests 0 errors ]
+test comvario(C.UTF-8) begins
+test comvario(C.UTF-8) passed [ 72 tests 0 errors ]
+test comvario(shcomp) begins
+shtests: line 352: 9327: Memory fault
+test comvario(shcomp) failed with exit code 267 [ 72 tests 267 errors ]
+test coprocess begins
+test coprocess passed [ 35 tests 0 errors ]
+test coprocess(C.UTF-8) begins
+test coprocess(C.UTF-8) passed [ 35 tests 0 errors ]
+test coprocess(shcomp) begins
+test coprocess(shcomp) passed [ 35 tests 0 errors ]
+test cubetype begins
+test cubetype passed [ 68 tests 0 errors ]
+test cubetype(C.UTF-8) begins
+test cubetype(C.UTF-8) passed [ 68 tests 0 errors ]
+test cubetype(shcomp) begins
+test cubetype(shcomp) passed [ 68 tests 0 errors ]
+test enum begins
+enum.sh: line 36: x:  invalid value orange
+test enum failed with exit code 1 [ 17 tests 1 error ]
+test enum(C.UTF-8) begins
+enum.sh: line 36: x:  invalid value orange
+test enum(C.UTF-8) failed with exit code 1 [ 17 tests 1 error ]
+test enum(shcomp) begins
+shcomp-enum.ksh: line 36: x:  invalid value orange
+test enum(shcomp) failed with exit code 1 [ 17 tests 1 error ]
+test exit begins
+test exit passed [ 8 tests 0 errors ]
+test exit(C.UTF-8) begins
+test exit(C.UTF-8) passed [ 8 tests 0 errors ]
+test exit(shcomp) begins
+test exit(shcomp) passed [ 8 tests 0 errors ]
+test expand begins
+test expand passed [ 6 tests 0 errors ]
+test expand(C.UTF-8) begins
+test expand(C.UTF-8) passed [ 6 tests 0 errors ]
+test expand(shcomp) begins
+test expand(shcomp) passed [ 6 tests 0 errors ]
+test functions begins
+ps: no controlling terminal
+test functions passed [ 108 tests 0 errors ]
+test functions(C.UTF-8) begins
+ps: no controlling terminal
+test functions(C.UTF-8) passed [ 108 tests 0 errors ]
+test functions(shcomp) begins
+ps: no controlling terminal
+test functions(shcomp) passed [ 108 tests 0 errors ]
+test glob begins
+test glob passed [ 5 tests 0 errors ]
+test glob(C.UTF-8) begins
+test glob(C.UTF-8) passed [ 5 tests 0 errors ]
+test glob(shcomp) begins
+test glob(shcomp) passed [ 5 tests 0 errors ]
+test grep begins
+test grep passed [ 2 tests 0 errors ]
+test grep(C.UTF-8) begins
+test grep(C.UTF-8) passed [ 2 tests 0 errors ]
+test grep(shcomp) begins
+test grep(shcomp) passed [ 2 tests 0 errors ]
+test heredoc begins
+test heredoc passed [ 39 tests 0 errors ]
+test heredoc(C.UTF-8) begins
+test heredoc(C.UTF-8) passed [ 39 tests 0 errors ]
+test heredoc(shcomp) begins
+test heredoc(shcomp) passed [ 39 tests 0 errors ]
+test io begins
+test io passed [ 93 tests 0 errors ]
+test io(C.UTF-8) begins
+test io(C.UTF-8) passed [ 93 tests 0 errors ]
+test io(shcomp) begins
+test io(shcomp) passed [ 93 tests 0 errors ]
+test leaks begins
+test leaks passed [ 4 tests 0 errors ]
+test leaks(C.UTF-8) begins
+test leaks(C.UTF-8) passed [ 4 tests 0 errors ]
+test leaks(shcomp) begins
+test leaks(shcomp) passed [ 4 tests 0 errors ]
+test locale begins
+sort: cannot stat temporary directory
+sort: cannot stat temporary directory
+test locale passed [ 34 tests 0 errors ]
+test locale(shcomp) begins
+sort: cannot stat temporary directory
+sort: cannot stat temporary directory
+test locale(shcomp) passed [ 34 tests 0 errors ]
+test math begins
+test math passed [ 7 tests 0 errors ]
+test math(C.UTF-8) begins
+test math(C.UTF-8) passed [ 7 tests 0 errors ]
+test math(shcomp) begins
+test math(shcomp) passed [ 7 tests 0 errors ]
+test nameref begins
+test nameref passed [ 93 tests 0 errors ]
+test nameref(C.UTF-8) begins
+test nameref(C.UTF-8) passed [ 93 tests 0 errors ]
+test nameref(shcomp) begins
+test nameref(shcomp) passed [ 93 tests 0 errors ]
+test namespace begins
+test namespace passed [ 18 tests 0 errors ]
+test namespace(C.UTF-8) begins
+test namespace(C.UTF-8) passed [ 18 tests 0 errors ]
+test namespace(shcomp) begins
+test namespace(shcomp) passed [ 18 tests 0 errors ]
+test options begins
+test options passed [ 143 tests 0 errors ]
+test options(C.UTF-8) begins
+test options(C.UTF-8) passed [ 143 tests 0 errors ]
+test options(shcomp) begins
+test options(shcomp) passed [ 143 tests 0 errors ]
+test path begins
+test path passed [ 72 tests 0 errors ]
+test path(C.UTF-8) begins
+test path(C.UTF-8) passed [ 72 tests 0 errors ]
+test path(shcomp) begins
+test path(shcomp) passed [ 72 tests 0 errors ]
+test pointtype begins
+test pointtype passed [ 34 tests 0 errors ]
+test pointtype(C.UTF-8) begins
+test pointtype(C.UTF-8) passed [ 34 tests 0 errors ]
+test pointtype(shcomp) begins
+test pointtype(shcomp) passed [ 34 tests 0 errors ]
+test pty begins
+	pty.sh[366]: POSIX sh 137(C): line 379: expected "/tmp/", got EOF
+	pty.sh[431]: process/terminal group exercise: line 435: expected ":$|:\E|lines", got EOF
+test pty failed with exit code 1 [ 20 tests 1 error ]
+test pty(C.UTF-8) begins
+	pty.sh[366]: POSIX sh 137(C): line 379: expected "/tmp/", got EOF
+	pty.sh[431]: process/terminal group exercise: line 435: expected ":$|:\E|lines", got EOF
+test pty(C.UTF-8) failed with exit code 1 [ 20 tests 1 error ]
+test pty(shcomp) begins
+shcomp-pty.ksh[129]: POSIX sh 029(C): line 144: expected "(Stopped|Suspended) \(SIGTTOU\)", got EOF
+shcomp-pty.ksh[366]: POSIX sh 137(C): line 379: expected "/tmp/", got EOF
+shcomp-pty.ksh[431]: process/terminal group exercise: line 435: expected ":$|:\E|lines", got EOF
+test pty(shcomp) failed with exit code 3 [ 20 tests 3 errors ]
+test quoting begins
+test quoting passed [ 94 tests 0 errors ]
+test quoting(C.UTF-8) begins
+test quoting(C.UTF-8) passed [ 94 tests 0 errors ]
+test quoting(shcomp) begins
+test quoting(shcomp) passed [ 94 tests 0 errors ]
+test quoting2 begins
+test quoting2 passed [ 54 tests 0 errors ]
+test quoting2(C.UTF-8) begins
+test quoting2(C.UTF-8) passed [ 54 tests 0 errors ]
+test quoting2(shcomp) begins
+test quoting2(shcomp) passed [ 54 tests 0 errors ]
+test readcsv begins
+test readcsv passed [ 4 tests 0 errors ]
+test readcsv(C.UTF-8) begins
+test readcsv(C.UTF-8) passed [ 4 tests 0 errors ]
+test readcsv(shcomp) begins
+test readcsv(shcomp) passed [ 4 tests 0 errors ]
+test recttype begins
+test recttype passed [ 8 tests 0 errors ]
+test recttype(C.UTF-8) begins
+test recttype(C.UTF-8) passed [ 8 tests 0 errors ]
+test recttype(shcomp) begins
+test recttype(shcomp) passed [ 8 tests 0 errors ]
+test restricted begins
+test restricted passed [ 20 tests 0 errors ]
+test restricted(C.UTF-8) begins
+test restricted(C.UTF-8) passed [ 20 tests 0 errors ]
+test restricted(shcomp) begins
+test restricted(shcomp) passed [ 20 tests 0 errors ]
+test return begins
+test return passed [ 25 tests 0 errors ]
+test return(C.UTF-8) begins
+test return(C.UTF-8) passed [ 25 tests 0 errors ]
+test return(shcomp) begins
+test return(shcomp) passed [ 25 tests 0 errors ]
+test select begins
+test select passed [ 5 tests 0 errors ]
+test select(C.UTF-8) begins
+test select(C.UTF-8) passed [ 5 tests 0 errors ]
+test select(shcomp) begins
+test select(shcomp) passed [ 5 tests 0 errors ]
+test sigchld begins
+	[85]: SIGCHLD trap queueing failed -- expected 'running=0 maxrunning=4', got 'running=0 maxrunning=3'
+test sigchld failed with exit code 1 [ 14 tests 1 error ]
+test sigchld(C.UTF-8) begins
+test sigchld(C.UTF-8) passed [ 14 tests 0 errors ]
+test sigchld(shcomp) begins
+test sigchld(shcomp) passed [ 14 tests 0 errors ]
+test signal begins
+	signal.sh[338]: took x secs expected around 2
+	signal.sh[345]: took x secs expected around 2
+test signal failed with exit code 1 [ 42 tests 1 error ]
+test signal(C.UTF-8) begins
+	signal.sh[338]: took x secs expected around 2
+	signal.sh[345]: took x secs expected around 2
+test signal(C.UTF-8) failed with exit code 1 [ 42 tests 1 error ]
+test signal(shcomp) begins
+shcomp-signal.ksh[338]: took x secs expected around 2
+shcomp-signal.ksh[345]: took x secs expected around 2
+test signal(shcomp) failed with exit code 2 [ 42 tests 2 errors ]
+test statics begins
+test statics passed [ 7 tests 0 errors ]
+test statics(C.UTF-8) begins
+test statics(C.UTF-8) passed [ 7 tests 0 errors ]
+test statics(shcomp) begins
+test statics(shcomp) passed [ 7 tests 0 errors ]
+test subshell begins
+test subshell passed [ 60 tests 0 errors ]
+test subshell(C.UTF-8) begins
+test subshell(C.UTF-8) passed [ 60 tests 0 errors ]
+test subshell(shcomp) begins
+test subshell(shcomp) passed [ 60 tests 0 errors ]
+test substring begins
+test substring passed [ 220 tests 0 errors ]
+test substring(C.UTF-8) begins
+test substring(C.UTF-8) passed [ 220 tests 0 errors ]
+test substring(shcomp) begins
+test substring(shcomp) passed [ 220 tests 0 errors ]
+test tilde begins
+test tilde passed [ 15 tests 0 errors ]
+test tilde(C.UTF-8) begins
+test tilde(C.UTF-8) passed [ 15 tests 0 errors ]
+test tilde(shcomp) begins
+test tilde(shcomp) passed [ 15 tests 0 errors ]
+test timetype begins
+test timetype passed [ 18 tests 0 errors ]
+test timetype(C.UTF-8) begins
+test timetype(C.UTF-8) passed [ 18 tests 0 errors ]
+test timetype(shcomp) begins
+test timetype(shcomp) passed [ 18 tests 0 errors ]
+test treemove begins
+test treemove passed [ 9 tests 0 errors ]
+test treemove(C.UTF-8) begins
+test treemove(C.UTF-8) passed [ 9 tests 0 errors ]
+test treemove(shcomp) begins
+test treemove(shcomp) passed [ 9 tests 0 errors ]
+test types begins
+test types passed [ 84 tests 0 errors ]
+test types(C.UTF-8) begins
+test types(C.UTF-8) passed [ 84 tests 0 errors ]
+test types(shcomp) begins
+test types(shcomp) passed [ 84 tests 0 errors ]
+test variables begins
+test variables passed [ 113 tests 0 errors ]
+test variables(C.UTF-8) begins
+test variables(C.UTF-8) passed [ 113 tests 0 errors ]
+test variables(shcomp) begins
+test variables(shcomp) passed [ 113 tests 0 errors ]
+test vartree1 begins
+test vartree1 passed [ 9 tests 0 errors ]
+test vartree1(C.UTF-8) begins
+test vartree1(C.UTF-8) passed [ 9 tests 0 errors ]
+test vartree1(shcomp) begins
+test vartree1(shcomp) passed [ 9 tests 0 errors ]
+test vartree2 begins
+test vartree2 passed [ 21 tests 0 errors ]
+test vartree2(C.UTF-8) begins
+test vartree2(C.UTF-8) passed [ 21 tests 0 errors ]
+test vartree2(shcomp) begins
+test vartree2(shcomp) passed [ 21 tests 0 errors ]
+lib:
+cmd/paxlib:
+cmd/dsslib:
+cmd/codexlib:
+cmd:
+package: test done
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/ksh93/test/results-64.sparc.master	Sun May 10 11:59:46 2015 -0700
@@ -0,0 +1,536 @@
+cmd/INIT:
++ regress $(@D)/src/cmd/INIT/iffe.tst iffe
+TEST	iffe
+01	command line basics
+01:5	-r -v - hdr stdio                                                     
+01:15	-r -v -s bsh - hdr stdio                                              
+01:17	-r -v - hdr stdio,limits                                              
+01:29	-r -v -s bsh - hdr stdio,limits                                       
+01:31	-r -v - hdr,lib no_foo_bar,no_bar_foo stdio.h                         
+01:45	-r -v -s bsh - hdr,lib no_foo_bar,no_bar_foo stdio.h                  
+01:47	-r -v - hdr no_foo_bar,no_bar_foo stdio.h : lib no_foo_bar,no_bar_foo 
+01:49	-r -v -s bsh - hdr no_foo_bar,no_bar_foo stdio.h : lib no_foo_bar,no_b
+02	file input basics
+02:53	-r -v - t1.iffe                                                       
+02:64	-r -v -s bsh - t1.iffe                                                
+02:66	-r -v - t2.iffe                                                       
+02:79	-r -v -s bsh - t2.iffe                                                
+02:81	-r -v - t3.iffe                                                       
+02:96	-r -v -s bsh - t3.iffe                                                
+02:98	-r -v - t3.iffe                                                       
+02:102	-r -v -s bsh - t3.iffe                                                
+03	nested if
+03:106	-r -v - t.iffe                                                        
+03:139	-r -v -s bsh - t.iffe                                                 
+03:141	-r -v - t.iffe                                                        
+03:173	-r -v -s bsh - t.iffe                                                 
+03:175	-r -v - t.iffe                                                        
+03:206	-r -v -s bsh - t.iffe                                                 
+03:208	-r -v - t.iffe                                                        
+03:242	-r -v -s bsh - t.iffe                                                 
+03:244	-r -v - t.iffe                                                        
+03:277	-r -v -s bsh - t.iffe                                                 
+03:279	-r -v - t.iffe                                                        
+03:315	-r -v -s bsh - t.iffe                                                 
+03:317	-r -v - t.iffe                                                        
+03:355	-r -v -s bsh - t.iffe                                                 
+03:357	-r -v - t.iffe                                                        
+03:396	-r -v -s bsh - t.iffe                                                 
+03:398	-r -v - t.iffe                                                        
+03:433	-r -v -s bsh - t.iffe                                                 
+03:435	-r -v - t.iffe                                                        
+03:456	-r -v -s bsh - t.iffe                                                 
+04	test variable/macro override
+04:460	-r -v - t.iffe                                                        
+04:472	-r -v -s bsh - t.iffe                                                 
+04:474	-r -v - t.iffe                                                        
+04:488	-r -v -s bsh - t.iffe                                                 
+04:490	-r -v - t.iffe                                                        
+04:497	-r -v -s bsh - t.iffe                                                 
+04:499	-r -v - t.iffe                                                        
+04:506	-r -v -s bsh - t.iffe                                                 
+04:508	-r -v - t.iffe                                                        
+04:515	-r -v -s bsh - t.iffe                                                 
+04:517	-r -v - t.iffe                                                        
+04:541	-r -v -s bsh - t.iffe                                                 
+04:543	-r -v - t.iffe                                                        
+04:563	-r -v -s bsh - t.iffe                                                 
+04:565	-r -v - t.iffe                                                        
+04:585	-r -v -s bsh - t.iffe                                                 
+05	test code option sequence
+05:589	-r -v - t.iffe                                                        
+05:608	-r -v -s bsh - t.iffe                                                 
+05:610	-r -v - t.iffe                                                        
+05:621	-r -v -s bsh - t.iffe                                                 
+05:623	-r -v - t.iffe                                                        
+05:637	-r -v -s bsh - t.iffe                                                 
+05:639	-r -v - t.iffe                                                        
+05:650	-r -v -s bsh - t.iffe                                                 
+05:652	-r -v - t.iffe                                                        
+05:671	-r -v -s bsh - t.iffe                                                 
+05:673	-r -v - t.iffe                                                        
+05:684	-r -v -s bsh - t.iffe                                                 
+05:686	-r -v - t.iffe                                                        
+05:710	-r -v -s bsh - t.iffe                                                 
+05:712	-r -v - t.iffe                                                        
+05:726	-r -v -s bsh - t.iffe                                                 
+05:728	-r -v - t.iffe                                                        
+05:745	-r -v -s bsh - t.iffe                                                 
+05:747	-r -v - t.iffe                                                        
+05:761	-r -v -s bsh - t.iffe                                                 
+05:763	-r -v - t.iffe                                                        
+05:785	-r -v -s bsh - t.iffe                                                 
+05:787	-r -v - t.iffe                                                        
+05:801	-r -v -s bsh - t.iffe                                                 
+05:803	-r -v - t.iffe                                                        
+05:827	-r -v -s bsh - t.iffe                                                 
+05:829	-r -v - t.iffe                                                        
+05:846	-r -v -s bsh - t.iffe                                                 
+05:848	-r -v - t.iffe                                                        
+05:866	-r -v -s bsh - t.iffe                                                 
+05:868	-r -v - t.iffe                                                        
+05:891	-r -v -s bsh - t.iffe                                                 
+06	block side effects
+06:895	-r - t.iffe                                                           
+06:909	-r -s bsh - t.iffe                                                    
+06:911	-r - t.iffe                                                           
+06:922	-r -s bsh - t.iffe                                                    
+06:924	-r - t.iffe                                                           
+06:937	-r -s bsh - t.iffe                                                    
+06:939	-r - t.iffe                                                           
+06:953	-r -s bsh - t.iffe                                                    
+07	diagnostics
+07:957	-r - t.iffe                                                           
+07:967	-r -s bsh - t.iffe                                                    
+07:969	-r - t.iffe                                                           
+07:978	-r -s bsh - t.iffe                                                    
+07:980	-r - t.iffe                                                           
+07:988	-r -s bsh - t.iffe                                                    
+07:990	-r - t.iffe                                                           
+07:994	-r -s bsh - t.iffe                                                    
+07:996	-r - t.iffe                                                           
+07:1001	-r -s bsh - t.iffe                                                    
+08	negation consternation
+08:1005	-r - t.iffe                                                           
+08:1017	-r -u - t.iffe                                                        
+08:1029	-r -a - t.iffe                                                        
+08:1041	-r -C - t.iffe                                                        
+08:1053	-r - t.iffe                                                           
+08:1069	-r -u - t.iffe                                                        
+08:1083	-r -C - t.iffe                                                        
+09	exp vs. if
+09:1099	-r - t.iffe                                                           
+09:1124	-r -s bsh - t.iffe                                                    
+09:1126	-r - t.iffe                                                           
+09:1149	-r -s bsh - t.iffe                                                    
+09:1151	-r - t.iffe                                                           
+09:1176	-r -s bsh - t.iffe                                                    
+09:1178	-r - t.iffe                                                           
+09:1199	-r -s bsh - t.iffe                                                    
+09:1201	-r - t.iffe                                                           
+09:1226	-r -s bsh - t.iffe                                                    
+09:1228	-r - t.iffe                                                           
+09:1251	-r -s bsh - t.iffe                                                    
+09:1253	-r - t.iffe                                                           
+09:1278	-r -s bsh - t.iffe                                                    
+09:1280	-r - t.iffe                                                           
+09:1301	-r -s bsh - t.iffe                                                    
+09:1303	-r - t.iffe                                                           
+09:1327	-r -s bsh - t.iffe                                                    
+09:1329	-r - t.iffe                                                           
+09:1352	-r -s bsh - t.iffe                                                    
+09:1354	-r - t.iffe                                                           
+09:1378	-r -s bsh - t.iffe                                                    
+09:1380	-r - t.iffe                                                           
+09:1397	-r -s bsh - t.iffe                                                    
+09:1399	-r - t.iffe                                                           
+09:1421	-r -s bsh - t.iffe                                                    
+09:1423	-r - t.iffe                                                           
+09:1437	-r -s bsh - t.iffe                                                    
+10	exp details
+10:1441	-r -v - t.iffe                                                        
+10:1474	-r -v -s bsh - t.iffe                                                 
+11	set [no]define
+11:1478	-r -v - t.iffe                                                        
+11:1508	-r -v -s bsh - t.iffe                                                 
+12	non-opaque mem
+12:1512	-r -v - mem OPAQUE -I. t.h                                            
+12:1525	-r -v - mem NONOPAQUE -I. t.h                                         
+13	key states
+13:1542	-r -v - t.iffe                                                        
+13:1570	-r -v -s bsh - t.iffe                                                 
+13:1572	-u -r -v - t.iffe                                                     
+13:1588	-u -r -v -s bsh - t.iffe                                              
+13:1590	-a -r -v - t.iffe                                                     
+13:1606	-a -r -v -s bsh - t.iffe                                              
+13:1608	-C -r -v - t.iffe                                                     
+13:1624	-C -r -v -s bsh - t.iffe                                              
+14	inc file
+14:1628	-r -v - t.iffe                                                        
+14:1650	-r -v - t.iffe                                                        
+14:1669	-r -v - t.iffe                                                        
+14:1682	-r -v - t.iffe                                                        
+14:1692	-r -v - t.iffe                                                        
+15	KnR compatibility
+15:1699	-r -v - t.iffe                                                        
+15:1742	-r -v -s bsh - t.iffe                                                 
+15:1744	-r -v -s osh - t.iffe                                                 
+16	{ define extern include print }
+16:1748	-r -v - t.iffe                                                        
+17	features/* => FEATURE/*
+17:1780	-r -v run features/stdio                                              
+18	api + ver
+18:1854	-r -v - t.iffe                                                        
+TEST	iffe, 162 tests, 0 errors
++ [[ -n '' ]]
++ [[ $(@D)/src/cmd/INIT/mamake.rt -nt $(@D)/src/cmd/INIT/mamake.tst ]]
++ regress $(@D)/src/cmd/INIT/mamake.tst mamake
+TEST	mamake
+01	macros
+01:9	-n                                                                    
+TEST	mamake, 1 test, 0 errors
+lib/libast:
+lib/libsum:
+lib/libcmd:
+lib/libcoshell:
+lib/libcs:
+cmd/coshell:
+lib/libdll:
+cmd/ksh93:
++ cd $(@D)/src/cmd/ksh93/tests
++ $(@D)/arch/sol11.sparc-64/bin/ksh shtests
++ SHELL=$(@D)/arch/sol11.sparc-64/bin/ksh
+test alias begins
+test alias passed [ 22 tests 0 errors ]
+test alias(C.UTF-8) begins
+test alias(C.UTF-8) passed [ 22 tests 0 errors ]
+test alias(shcomp) begins
+test alias(shcomp) passed [ 22 tests 0 errors ]
+test append begins
+test append passed [ 17 tests 0 errors ]
+test append(C.UTF-8) begins
+test append(C.UTF-8) passed [ 17 tests 0 errors ]
+test append(shcomp) begins
+test append(shcomp) passed [ 17 tests 0 errors ]
+test arith begins
+arith.sh[600]: color_t: pants:  invalid value blue
+test arith failed with exit code 1 [ 201 tests 1 error ]
+test arith(C.UTF-8) begins
+arith.sh[600]: color_t: pants:  invalid value blue
+test arith(C.UTF-8) failed with exit code 1 [ 201 tests 1 error ]
+test arith(shcomp) begins
+shcomp-arith.ksh[600]: color_t: pants:  invalid value blue
+test arith(shcomp) failed with exit code 1 [ 201 tests 1 error ]
+test arrays begins
+test arrays passed [ 145 tests 0 errors ]
+test arrays(C.UTF-8) begins
+test arrays(C.UTF-8) passed [ 145 tests 0 errors ]
+test arrays(shcomp) begins
+test arrays(shcomp) passed [ 145 tests 0 errors ]
+test arrays2 begins
+test arrays2 passed [ 42 tests 0 errors ]
+test arrays2(C.UTF-8) begins
+test arrays2(C.UTF-8) passed [ 42 tests 0 errors ]
+test arrays2(shcomp) begins
+test arrays2(shcomp) passed [ 42 tests 0 errors ]
+test attributes begins
+test attributes passed [ 109 tests 0 errors ]
+test attributes(C.UTF-8) begins
+test attributes(C.UTF-8) passed [ 109 tests 0 errors ]
+test attributes(shcomp) begins
+test attributes(shcomp) passed [ 109 tests 0 errors ]
+test basic begins
+	basic.sh[320]: ALRM signal not working
+test basic failed with exit code 1 [ 102 tests 1 error ]
+test basic(C.UTF-8) begins
+	basic.sh[320]: ALRM signal not working
+test basic(C.UTF-8) failed with exit code 1 [ 102 tests 1 error ]
+test basic(shcomp) begins
+shcomp-basic.ksh[320]: ALRM signal not working
+test basic(shcomp) failed with exit code 1 [ 102 tests 1 error ]
+test bracket begins
+test bracket passed [ 118 tests 0 errors ]
+test bracket(C.UTF-8) begins
+test bracket(C.UTF-8) passed [ 118 tests 0 errors ]
+test bracket(shcomp) begins
+test bracket(shcomp) passed [ 118 tests 0 errors ]
+test builtins begins
+	builtins.sh[529]: ALRM signal causes sleep to terminate prematurely -- expected 3 sec got x secs
+test builtins failed with exit code 1 [ 157 tests 1 error ]
+test builtins(C.UTF-8) begins
+	builtins.sh[529]: ALRM signal causes sleep to terminate prematurely -- expected 3 sec got x secs
+test builtins(C.UTF-8) failed with exit code 1 [ 157 tests 1 error ]
+test builtins(shcomp) begins
+shcomp-builtins.ksh[529]: ALRM signal causes sleep to terminate prematurely -- expected 3 sec got x secs
+test builtins(shcomp) failed with exit code 1 [ 157 tests 1 error ]
+test case begins
+test case passed [ 6 tests 0 errors ]
+test case(C.UTF-8) begins
+test case(C.UTF-8) passed [ 6 tests 0 errors ]
+test case(shcomp) begins
+test case(shcomp) passed [ 6 tests 0 errors ]
+test comvar begins
+test comvar passed [ 98 tests 0 errors ]
+test comvar(C.UTF-8) begins
+test comvar(C.UTF-8) passed [ 98 tests 0 errors ]
+test comvar(shcomp) begins
+test comvar(shcomp) passed [ 98 tests 0 errors ]
+test comvario begins
+test comvario passed [ 72 tests 0 errors ]
+test comvario(C.UTF-8) begins
+test comvario(C.UTF-8) passed [ 72 tests 0 errors ]
+test comvario(shcomp) begins
+test comvario(shcomp) passed [ 72 tests 0 errors ]
+test coprocess begins
+shcomp-coprocess.ksh[236]: $(@D)/arch/sol11.sparc-64/bin/cat coprocess 2 hung
+test coprocess(shcomp) failed with exit code 1 [ 35 tests 1 error ]
+test coprocess(C.UTF-8) begins
+	coprocess.sh[236]: $(@D)/arch/sol11.sparc-64/bin/cat coprocess 2 hung
+test coprocess(C.UTF-8) failed with exit code 1 [ 35 tests 1 error ]
+test coprocess(shcomp) begins
+test coprocess(shcomp) passed [ 35 tests 0 errors ]
+test cubetype begins
+test cubetype passed [ 68 tests 0 errors ]
+test cubetype(C.UTF-8) begins
+test cubetype(C.UTF-8) passed [ 68 tests 0 errors ]
+test cubetype(shcomp) begins
+test cubetype(shcomp) passed [ 68 tests 0 errors ]
+test enum begins
+enum.sh: line 36: x:  invalid value orange
+test enum failed with exit code 1 [ 17 tests 1 error ]
+test enum(C.UTF-8) begins
+enum.sh: line 36: x:  invalid value orange
+test enum(C.UTF-8) failed with exit code 1 [ 17 tests 1 error ]
+test enum(shcomp) begins
+shcomp-enum.ksh: line 36: x:  invalid value orange
+test enum(shcomp) failed with exit code 1 [ 17 tests 1 error ]
+test exit begins
+test exit passed [ 8 tests 0 errors ]
+test exit(C.UTF-8) begins
+test exit(C.UTF-8) passed [ 8 tests 0 errors ]
+test exit(shcomp) begins
+test exit(shcomp) passed [ 8 tests 0 errors ]
+test expand begins
+test expand passed [ 6 tests 0 errors ]
+test expand(C.UTF-8) begins
+test expand(C.UTF-8) passed [ 6 tests 0 errors ]
+test expand(shcomp) begins
+test expand(shcomp) passed [ 6 tests 0 errors ]
+test functions begins
+ps: no controlling terminal
+test functions passed [ 108 tests 0 errors ]
+test functions(C.UTF-8) begins
+ps: no controlling terminal
+test functions(C.UTF-8) passed [ 108 tests 0 errors ]
+test functions(shcomp) begins
+ps: no controlling terminal
+test functions(shcomp) passed [ 108 tests 0 errors ]
+test glob begins
+test glob passed [ 5 tests 0 errors ]
+test glob(C.UTF-8) begins
+test glob(C.UTF-8) passed [ 5 tests 0 errors ]
+test glob(shcomp) begins
+test glob(shcomp) passed [ 5 tests 0 errors ]
+test grep begins
+test grep passed [ 2 tests 0 errors ]
+test grep(C.UTF-8) begins
+test grep(C.UTF-8) passed [ 2 tests 0 errors ]
+test grep(shcomp) begins
+test grep(shcomp) passed [ 2 tests 0 errors ]
+test heredoc begins
+test heredoc passed [ 39 tests 0 errors ]
+test heredoc(C.UTF-8) begins
+test heredoc(C.UTF-8) passed [ 39 tests 0 errors ]
+test heredoc(shcomp) begins
+test heredoc(shcomp) passed [ 39 tests 0 errors ]
+test io begins
+test io passed [ 93 tests 0 errors ]
+test io(C.UTF-8) begins
+test io(C.UTF-8) passed [ 93 tests 0 errors ]
+test io(shcomp) begins
+test io(shcomp) passed [ 93 tests 0 errors ]
+test leaks begins
+test leaks passed [ 4 tests 0 errors ]
+test leaks(C.UTF-8) begins
+test leaks(C.UTF-8) passed [ 4 tests 0 errors ]
+test leaks(shcomp) begins
+test leaks(shcomp) passed [ 4 tests 0 errors ]
+test locale begins
+test locale passed [ 34 tests 0 errors ]
+test locale(shcomp) begins
+test locale(shcomp) passed [ 34 tests 0 errors ]
+test math begins
+test math passed [ 7 tests 0 errors ]
+test math(C.UTF-8) begins
+test math(C.UTF-8) passed [ 7 tests 0 errors ]
+test math(shcomp) begins
+test math(shcomp) passed [ 7 tests 0 errors ]
+test nameref begins
+test nameref passed [ 93 tests 0 errors ]
+test nameref(C.UTF-8) begins
+test nameref(C.UTF-8) passed [ 93 tests 0 errors ]
+test nameref(shcomp) begins
+test nameref(shcomp) passed [ 93 tests 0 errors ]
+test namespace begins
+test namespace passed [ 18 tests 0 errors ]
+test namespace(C.UTF-8) begins
+test namespace(C.UTF-8) passed [ 18 tests 0 errors ]
+test namespace(shcomp) begins
+test namespace(shcomp) passed [ 18 tests 0 errors ]
+test options begins
+test options passed [ 143 tests 0 errors ]
+test options(C.UTF-8) begins
+test options(C.UTF-8) passed [ 143 tests 0 errors ]
+test options(shcomp) begins
+test options(shcomp) passed [ 143 tests 0 errors ]
+test path begins
+test path passed [ 72 tests 0 errors ]
+test path(C.UTF-8) begins
+test path(C.UTF-8) passed [ 72 tests 0 errors ]
+test path(shcomp) begins
+test path(shcomp) passed [ 72 tests 0 errors ]
+test pointtype begins
+test pointtype passed [ 34 tests 0 errors ]
+test pointtype(C.UTF-8) begins
+test pointtype(C.UTF-8) passed [ 34 tests 0 errors ]
+test pointtype(shcomp) begins
+test pointtype(shcomp) passed [ 34 tests 0 errors ]
+test pty begins
+	pty.sh[366]: POSIX sh 137(C): line 379: expected "/tmp/", got EOF
+	pty.sh[431]: process/terminal group exercise: line 435: expected ":$|:\E|lines", got EOF
+test pty failed with exit code 1 [ 20 tests 1 error ]
+test pty(C.UTF-8) begins
+	pty.sh[366]: POSIX sh 137(C): line 379: expected "/tmp/", got EOF
+	pty.sh[431]: process/terminal group exercise: line 435: expected ":$|:\E|lines", got EOF
+test pty(C.UTF-8) failed with exit code 1 [ 20 tests 1 error ]
+test pty(shcomp) begins
+shcomp-pty.ksh[239]: POSIX sh 099(C): line 259: read timeout
+shcomp-pty.ksh[366]: POSIX sh 137(C): line 379: expected "/tmp/", got EOF
+shcomp-pty.ksh[431]: process/terminal group exercise: line 435: expected ":$|:\E|lines", got EOF
+test pty(shcomp) failed with exit code 3 [ 20 tests 3 errors ]
+test quoting begins
+test quoting passed [ 94 tests 0 errors ]
+test quoting(C.UTF-8) begins
+test quoting(C.UTF-8) passed [ 94 tests 0 errors ]
+test quoting(shcomp) begins
+test quoting(shcomp) passed [ 94 tests 0 errors ]
+test quoting2 begins
+test quoting2 passed [ 54 tests 0 errors ]
+test quoting2(C.UTF-8) begins
+test quoting2(C.UTF-8) passed [ 54 tests 0 errors ]
+test quoting2(shcomp) begins
+test quoting2(shcomp) passed [ 54 tests 0 errors ]
+test readcsv begins
+test readcsv passed [ 4 tests 0 errors ]
+test readcsv(C.UTF-8) begins
+test readcsv(C.UTF-8) passed [ 4 tests 0 errors ]
+test readcsv(shcomp) begins
+test readcsv(shcomp) passed [ 4 tests 0 errors ]
+test recttype begins
+test recttype passed [ 8 tests 0 errors ]
+test recttype(C.UTF-8) begins
+test recttype(C.UTF-8) passed [ 8 tests 0 errors ]
+test recttype(shcomp) begins
+test recttype(shcomp) passed [ 8 tests 0 errors ]
+test restricted begins
+test restricted passed [ 20 tests 0 errors ]
+test restricted(C.UTF-8) begins
+test restricted(C.UTF-8) passed [ 20 tests 0 errors ]
+test restricted(shcomp) begins
+test restricted(shcomp) passed [ 20 tests 0 errors ]
+test return begins
+test return passed [ 25 tests 0 errors ]
+test return(C.UTF-8) begins
+test return(C.UTF-8) passed [ 25 tests 0 errors ]
+test return(shcomp) begins
+test return(shcomp) passed [ 25 tests 0 errors ]
+test select begins
+test select passed [ 5 tests 0 errors ]
+test select(C.UTF-8) begins
+test select(C.UTF-8) passed [ 5 tests 0 errors ]
+test select(shcomp) begins
+test select(shcomp) passed [ 5 tests 0 errors ]
+test sigchld begins
+test sigchld passed [ 14 tests 0 errors ]
+test sigchld(C.UTF-8) begins
+test sigchld(C.UTF-8) passed [ 14 tests 0 errors ]
+test sigchld(shcomp) begins
+test sigchld(shcomp) passed [ 14 tests 0 errors ]
+test signal begins
+	signal.sh[338]: took x secs expected around 2
+	signal.sh[345]: took x secs expected around 2
+test signal failed with exit code 1 [ 42 tests 1 error ]
+test signal(C.UTF-8) begins
+	signal.sh[338]: took x secs expected around 2
+	signal.sh[345]: took x secs expected around 2
+test signal(C.UTF-8) failed with exit code 1 [ 42 tests 1 error ]
+test signal(shcomp) begins
+shcomp-signal.ksh[338]: took x secs expected around 2
+shcomp-signal.ksh[345]: took x secs expected around 2
+test signal(shcomp) failed with exit code 2 [ 42 tests 2 errors ]
+test statics begins
+test statics passed [ 7 tests 0 errors ]
+test statics(C.UTF-8) begins
+test statics(C.UTF-8) passed [ 7 tests 0 errors ]
+test statics(shcomp) begins
+test statics(shcomp) passed [ 7 tests 0 errors ]
+test subshell begins
+test subshell passed [ 60 tests 0 errors ]
+test subshell(C.UTF-8) begins
+test subshell(C.UTF-8) passed [ 60 tests 0 errors ]
+test subshell(shcomp) begins
+test subshell(shcomp) passed [ 60 tests 0 errors ]
+test substring begins
+test substring passed [ 220 tests 0 errors ]
+test substring(C.UTF-8) begins
+test substring(C.UTF-8) passed [ 220 tests 0 errors ]
+test substring(shcomp) begins
+test substring(shcomp) passed [ 220 tests 0 errors ]
+test tilde begins
+test tilde passed [ 15 tests 0 errors ]
+test tilde(C.UTF-8) begins
+test tilde(C.UTF-8) passed [ 15 tests 0 errors ]
+test tilde(shcomp) begins
+test tilde(shcomp) passed [ 15 tests 0 errors ]
+test timetype begins
+test timetype passed [ 18 tests 0 errors ]
+test timetype(C.UTF-8) begins
+test timetype(C.UTF-8) passed [ 18 tests 0 errors ]
+test timetype(shcomp) begins
+test timetype(shcomp) passed [ 18 tests 0 errors ]
+test treemove begins
+test treemove passed [ 9 tests 0 errors ]
+test treemove(C.UTF-8) begins
+test treemove(C.UTF-8) passed [ 9 tests 0 errors ]
+test treemove(shcomp) begins
+test treemove(shcomp) passed [ 9 tests 0 errors ]
+test types begins
+test types passed [ 84 tests 0 errors ]
+test types(C.UTF-8) begins
+test types(C.UTF-8) passed [ 84 tests 0 errors ]
+test types(shcomp) begins
+test types(shcomp) passed [ 84 tests 0 errors ]
+test variables begins
+test variables passed [ 113 tests 0 errors ]
+test variables(C.UTF-8) begins
+test variables(C.UTF-8) passed [ 113 tests 0 errors ]
+test variables(shcomp) begins
+test variables(shcomp) passed [ 113 tests 0 errors ]
+test vartree1 begins
+test vartree1 passed [ 9 tests 0 errors ]
+test vartree1(C.UTF-8) begins
+test vartree1(C.UTF-8) passed [ 9 tests 0 errors ]
+test vartree1(shcomp) begins
+test vartree1(shcomp) passed [ 9 tests 0 errors ]
+test vartree2 begins
+test vartree2 passed [ 21 tests 0 errors ]
+test vartree2(C.UTF-8) begins
+test vartree2(C.UTF-8) passed [ 21 tests 0 errors ]
+test vartree2(shcomp) begins
+test vartree2(shcomp) passed [ 21 tests 0 errors ]
+lib:
+cmd/paxlib:
+cmd/dsslib:
+cmd/codexlib:
+cmd:
+package: test done
--- a/make-rules/attpackagemake.mk	Sat May 09 12:45:23 2015 -0700
+++ b/make-rules/attpackagemake.mk	Sun May 10 11:59:46 2015 -0700
@@ -62,9 +62,9 @@
 COMPONENT_INSTALL_ENV = $(COMPONENT_BUILD_ENV)
 COMPONENT_INSTALL_ARGS = HOSTTYPE="$(HOSTTYPE$(BITS))"
 COMPONENT_TEST_ENV = $(COMPONENT_BUILD_ENV)
-COMPONENT_TEST_ARGS = HOSTTYPE="$(HOSTTYPE$(BITS))"
+COMPONENT_TEST_ARGS = $(COMPONENT_BUILD_ARGS)
 COMPONENT_SYSTEM_TEST_ENV = $(COMPONENT_BUILD_ENV)
-COMPONENT_SYSTEM_TEST_ARGS = HOSTTYPE="$(HOSTTYPE$(BITS))"
+COMPONENT_SYSTEM_TEST_ARGS = $(COMPONENT_BUILD_ARGS) 
 
 # build the configured source
 $(BUILD_DIR)/%/.built:	$(SOURCE_DIR)/.prep
@@ -98,7 +98,7 @@
 	-(cd $(COMPONENT_TEST_DIR) ; \
 		$(COMPONENT_TEST_ENV_CMD) $(COMPONENT_TEST_ENV) \
 		bin/package test $(COMPONENT_TEST_TARGETS) \
-		$(COMPONENT_TEST_ARGS) \
+		$(COMPONENT_TEST_ARGS)) \
 		&> $(COMPONENT_TEST_OUTPUT)
 	$(COMPONENT_POST_TEST_ACTION)
 	$(COMPONENT_TEST_CREATE_TRANSFORMS)
@@ -125,7 +125,7 @@
 	-(cd $(COMPONENT_SYSTEM_TEST_DIR) ; \
 		$(COMPONENT_SYSTEM_TEST_ENV_CMD) $(COMPONENT_SYSTEM_TEST_ENV) \
 		bin/package test $(COMPONENT_SYSTEM_TEST_TARGETS) \
-		$(COMPONENT_SYSTEM_TEST_ARGS) \
+		$(COMPONENT_SYSTEM_TEST_ARGS)) \
 		&> $(COMPONENT_TEST_OUTPUT)
 	$(COMPONENT_POST_SYSTEM_TEST_ACTION)
 	$(COMPONENT_TEST_CREATE_TRANSFORMS)