summaryrefslogtreecommitdiff
path: root/usr/src/lib/libshell/sparc
diff options
context:
space:
mode:
authorchin <none@none>2007-08-17 12:01:52 -0700
committerchin <none@none>2007-08-17 12:01:52 -0700
commitda2e3ebdc1edfbc5028edf1354e7dd2fa69a7968 (patch)
tree5280d3b78e289fe9551371ab6e7f15ef9944ea14 /usr/src/lib/libshell/sparc
parent073dbf9103ef2a2b05d8a16e2d26db04e0374b0e (diff)
downloadillumos-gate-da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968.tar.gz
6437624 RFE: Add ksh93 (as /usr/bin/ksh93) and libshell.so to OS/Net
6505835 AST tools and library (libpp) required for creating l10n messages for ksh93 PSARC/2006/550 Korn Shell 93 Integration PSARC/2006/587 /etc/ksh.kshrc for ksh93 PSARC/2007/035 ksh93 Amendments Contributed by Roland Mainz <roland.mainz@nrubsig.org> --HG-- rename : usr/src/lib/libcmd/common/mapfile-vers => deleted_files/usr/src/lib/libcmd/common/mapfile-vers rename : usr/src/lib/libcmd/common/placeholder.c => deleted_files/usr/src/lib/libcmd/common/placeholder.c
Diffstat (limited to 'usr/src/lib/libshell/sparc')
-rw-r--r--usr/src/lib/libshell/sparc/Makefile30
-rw-r--r--usr/src/lib/libshell/sparc/include/ast/history.h84
-rw-r--r--usr/src/lib/libshell/sparc/include/ast/nval.h317
-rw-r--r--usr/src/lib/libshell/sparc/include/ast/shell.h256
-rw-r--r--usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/acct12
-rw-r--r--usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/cmds36
-rw-r--r--usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/dynamic23
-rw-r--r--usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/execargs10
-rw-r--r--usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/externs81
-rw-r--r--usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/locale38
-rw-r--r--usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/math162
-rw-r--r--usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/options26
-rw-r--r--usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/poll119
-rw-r--r--usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/pstat10
-rw-r--r--usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/rlimits19
-rw-r--r--usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/setjmp35
-rw-r--r--usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/sigfeatures54
-rw-r--r--usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/time28
-rw-r--r--usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/ttys19
19 files changed, 1359 insertions, 0 deletions
diff --git a/usr/src/lib/libshell/sparc/Makefile b/usr/src/lib/libshell/sparc/Makefile
new file mode 100644
index 0000000000..f91f0270e9
--- /dev/null
+++ b/usr/src/lib/libshell/sparc/Makefile
@@ -0,0 +1,30 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+# ident "%Z%%M% %I% %E% SMI"
+#
+
+include ../Makefile.com
+
+install: all $(ROOTLIBS) $(ROOTLINKS) $(ROOTLINT)
diff --git a/usr/src/lib/libshell/sparc/include/ast/history.h b/usr/src/lib/libshell/sparc/include/ast/history.h
new file mode 100644
index 0000000000..55ead66f9e
--- /dev/null
+++ b/usr/src/lib/libshell/sparc/include/ast/history.h
@@ -0,0 +1,84 @@
+
+/* : : generated by proto : : */
+/***********************************************************************
+* *
+* This software is part of the ast package *
+* Copyright (c) 1982-2007 AT&T Knowledge Ventures *
+* and is licensed under the *
+* Common Public License, Version 1.0 *
+* by AT&T Knowledge Ventures *
+* *
+* A copy of the License is available at *
+* http://www.opensource.org/licenses/cpl1.0.txt *
+* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
+* *
+* Information and Software Systems Research *
+* AT&T Research *
+* Florham Park NJ *
+* *
+* David Korn <dgk@research.att.com> *
+* *
+***********************************************************************/
+
+#ifndef HIST_VERSION
+#if !defined(__PROTO__)
+#include <prototyped.h>
+#endif
+#if !defined(__LINKAGE__)
+#define __LINKAGE__ /* 2004-08-11 transition */
+#endif
+
+/*
+ * Interface for history mechanism
+ * written by David Korn
+ *
+ */
+
+#include <ast.h>
+
+#define HIST_CHAR '!'
+#define HIST_VERSION 1 /* history file format version no. */
+
+typedef struct
+{
+ Sfdisc_t histdisc; /* discipline for history */
+ Sfio_t *histfp; /* history file stream pointer */
+ char *histname; /* name of history file */
+ int32_t histind; /* current command number index */
+ int histsize; /* number of accessible history lines */
+#ifdef _HIST_PRIVATE
+ _HIST_PRIVATE
+#endif /* _HIST_PRIVATE */
+} History_t;
+
+typedef struct
+{
+ int hist_command;
+ int hist_line;
+ int hist_char;
+} Histloc_t;
+
+/* the following are readonly */
+extern __MANGLE__ const char hist_fname[];
+
+extern __MANGLE__ int _Hist;
+#define hist_min(hp) ((_Hist=((int)((hp)->histind-(hp)->histsize)))>=0?_Hist:0)
+#define hist_max(hp) ((int)((hp)->histind))
+/* these are the history interface routines */
+extern __MANGLE__ int sh_histinit __PROTO__((void));
+extern __MANGLE__ void hist_cancel __PROTO__((History_t*));
+extern __MANGLE__ void hist_close __PROTO__((History_t*));
+extern __MANGLE__ int hist_copy __PROTO__((char*, int, int, int));
+extern __MANGLE__ void hist_eof __PROTO__((History_t*));
+extern __MANGLE__ Histloc_t hist_find __PROTO__((History_t*,char*,int, int, int));
+extern __MANGLE__ void hist_flush __PROTO__((History_t*));
+extern __MANGLE__ void hist_list __PROTO__((History_t*,Sfio_t*, off_t, int, char*));
+extern __MANGLE__ int hist_match __PROTO__((History_t*,off_t, char*, int*));
+extern __MANGLE__ off_t hist_tell __PROTO__((History_t*,int));
+extern __MANGLE__ off_t hist_seek __PROTO__((History_t*,int));
+extern __MANGLE__ char *hist_word __PROTO__((char*, int, int));
+#if SHOPT_ESH
+ extern __MANGLE__ Histloc_t hist_locate __PROTO__((History_t*,int, int, int));
+#endif /* SHOPT_ESH */
+
+#endif /* HIST_VERSION */
diff --git a/usr/src/lib/libshell/sparc/include/ast/nval.h b/usr/src/lib/libshell/sparc/include/ast/nval.h
new file mode 100644
index 0000000000..06b18217b7
--- /dev/null
+++ b/usr/src/lib/libshell/sparc/include/ast/nval.h
@@ -0,0 +1,317 @@
+
+/* : : generated by proto : : */
+/***********************************************************************
+* *
+* This software is part of the ast package *
+* Copyright (c) 1982-2007 AT&T Knowledge Ventures *
+* and is licensed under the *
+* Common Public License, Version 1.0 *
+* by AT&T Knowledge Ventures *
+* *
+* A copy of the License is available at *
+* http://www.opensource.org/licenses/cpl1.0.txt *
+* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
+* *
+* Information and Software Systems Research *
+* AT&T Research *
+* Florham Park NJ *
+* *
+* David Korn <dgk@research.att.com> *
+* *
+***********************************************************************/
+
+#ifndef NV_DEFAULT
+#if !defined(__PROTO__)
+#include <prototyped.h>
+#endif
+#if !defined(__LINKAGE__)
+#define __LINKAGE__ /* 2004-08-11 transition */
+#endif
+
+/*
+ * David Korn
+ * AT&T Labs
+ *
+ * Interface definitions of structures for name-value pairs
+ * These structures are used for named variables, functions and aliases
+ *
+ */
+
+
+#include <ast.h>
+#include <cdt.h>
+
+/* for compatibility with old hash library */
+#define Hashtab_t Dt_t
+#define HASH_BUCKET 1
+#define HASH_NOSCOPE 2
+#define HASH_SCOPE 4
+#define hashscope(x) dtvnext(x)
+
+typedef struct Namval Namval_t;
+typedef struct Namfun Namfun_t;
+typedef struct Namdisc Namdisc_t;
+typedef struct Nambfun Nambfun_t;
+typedef struct Namarray Namarr_t;
+typedef struct Nambltin Nambltin_t;
+typedef struct Namtype Namtype_t;
+
+/*
+ * This defines the template for nodes that have their own assignment
+ * and or lookup functions
+ */
+struct Namdisc
+{
+ size_t dsize;
+ void (*putval) __PROTO__((Namval_t*, const char*, int, Namfun_t*));
+ char *(*getval) __PROTO__((Namval_t*, Namfun_t*));
+ Sfdouble_t (*getnum) __PROTO__((Namval_t*, Namfun_t*));
+ char *(*setdisc) __PROTO__((Namval_t*, const char*, Namval_t*, Namfun_t*));
+ Namval_t *(*createf) __PROTO__((Namval_t*, const char*, int, Namfun_t*));
+ Namfun_t *(*clonef) __PROTO__((Namval_t*, Namval_t*, int, Namfun_t*));
+ char *(*namef) __PROTO__((Namval_t*, Namfun_t*));
+ Namval_t *(*nextf) __PROTO__((Namval_t*, Dt_t*, Namfun_t*));
+ Namval_t *(*typef) __PROTO__((Namval_t*, Namfun_t*));
+ int (*readf) __PROTO__((Namval_t*, Sfio_t*, int, Namfun_t*));
+};
+
+struct Namfun
+{
+ const Namdisc_t *disc;
+ char nofree;
+ char funs;
+ unsigned short dsize;
+ Namfun_t *next;
+ char *last;
+ Namval_t *type;
+};
+
+struct Nambfun
+{
+ Namfun_t fun;
+ int num;
+ const char **bnames;
+ Namval_t *bltins[1];
+};
+
+/* This is an array template header */
+struct Namarray
+{
+ Namfun_t hdr;
+ long nelem; /* number of elements */
+ __V_ *(*fun) __PROTO__((Namval_t*,const char*,int)); /* associative arrays */
+ Namval_t *parent; /* for multi-dimensional */
+};
+
+/* Passed as third argument to a builtin when NV_BLTINOPT is set on node */
+struct Nambltin
+{
+ __V_ *shp;
+ Namval_t *np;
+ __V_ *ptr;
+ __V_ *data;
+ int flags;
+};
+
+struct Namtype
+{
+ __V_ *shp;
+ Namval_t *np;
+ const char *optstring;
+ __V_ *optinfof;
+};
+
+/* attributes of name-value node attribute flags */
+
+#define NV_DEFAULT 0
+/* This defines the attributes for an attributed name-value pair node */
+struct Namval
+{
+ Dtlink_t nvlink; /* space for cdt links */
+ char *nvname; /* pointer to name of the node */
+ unsigned short nvflag; /* attributes */
+ unsigned short nvsize; /* size or base */
+#ifdef _NV_PRIVATE
+ _NV_PRIVATE
+#else
+ Namfun_t *nvfun;
+ char *nvalue;
+ char *nvprivate;
+#endif /* _NV_PRIVATE */
+};
+
+#define NV_CLASS ".sh.type"
+#define NV_MINSZ (sizeof(struct Namval)-sizeof(Dtlink_t)-sizeof(char*))
+#define nv_namptr(p,n) ((Namval_t*)((char*)(p)+(n)*NV_MINSZ-sizeof(Dtlink_t)))
+
+/* The following attributes are for internal use */
+#define NV_NOFREE 0x200 /* don't free the space when releasing value */
+#define NV_ARRAY 0x400 /* node is an array */
+#define NV_REF 0x4000 /* reference bit */
+#define NV_TABLE 0x800 /* node is a dictionary table */
+#define NV_IMPORT 0x1000 /* value imported from environment */
+#define NV_MINIMAL NV_IMPORT /* node does not contain all fields */
+
+#define NV_INTEGER 0x2 /* integer attribute */
+/* The following attributes are valid only when NV_INTEGER is off */
+#define NV_LTOU 0x4 /* convert to uppercase */
+#define NV_UTOL 0x8 /* convert to lowercase */
+#define NV_ZFILL 0x10 /* right justify and fill with leading zeros */
+#define NV_RJUST 0x20 /* right justify and blank fill */
+#define NV_LJUST 0x40 /* left justify and blank fill */
+#define NV_BINARY 0x100 /* fixed size data buffer */
+#define NV_RAW NV_LJUST /* used only with NV_BINARY */
+#define NV_HOST (NV_RJUST|NV_LJUST) /* map to host filename */
+
+/* The following attributes do not effect the value */
+#define NV_RDONLY 0x1 /* readonly bit */
+#define NV_EXPORT 0x2000 /* export bit */
+#define NV_TAGGED 0x8000 /* user define tag bit */
+
+/* The following are used with NV_INTEGER */
+#define NV_SHORT (NV_RJUST) /* when integers are not long */
+#define NV_LONG (NV_UTOL) /* for long long and long double */
+#define NV_UNSIGN (NV_LTOU) /* for unsigned quantities */
+#define NV_DOUBLE (NV_ZFILL) /* for floating point */
+#define NV_EXPNOTE (NV_LJUST) /* for scientific notation */
+
+/* options for nv_open */
+
+#define NV_APPEND 0x10000 /* append value */
+#define NV_MOVE 0x20000 /* for use with nv_clone */
+#define NV_ADD 8
+ /* add node if not found */
+#define NV_ASSIGN NV_NOFREE /* assignment is possible */
+#define NV_NOASSIGN 0 /* backward compatibility */
+#define NV_NOARRAY 0x200000 /* array name not possible */
+#define NV_IARRAY 0x400000 /* for indexed array */
+#define NV_NOREF NV_REF /* don't follow reference */
+#define NV_IDENT 0x80 /* name must be identifier */
+#define NV_VARNAME 0x20000 /* name must be ?(.)id*(.id) */
+#define NV_NOADD 0x40000 /* do not add node */
+#define NV_NOSCOPE 0x80000 /* look only in current scope */
+#define NV_NOFAIL 0x100000 /* return 0 on failure, no msg */
+#define NV_NODISC NV_IDENT /* ignore disciplines */
+
+#define NV_FUNCT NV_IDENT /* option for nv_create */
+#define NV_BLTINOPT NV_ZFILL /* save state for optimization*/
+
+#define NV_PUBLIC (~(NV_NOSCOPE|NV_ASSIGN|NV_IDENT|NV_VARNAME|NV_NOADD))
+
+/* numeric types */
+#define NV_INT16 (NV_SHORT|NV_INTEGER)
+#define NV_UINT16 (NV_UNSIGN|NV_SHORT|NV_INTEGER)
+#define NV_INT32 (NV_INTEGER)
+#define NV_UNT32 (NV_UNSIGN|NV_INTEGER)
+#define NV_INT64 (NV_LONG|NV_INTEGER)
+#define NV_UINT64 (NV_UNSIGN|NV_LONG|NV_INTEGER)
+#define NV_FLOAT (NV_SHORT|NV_DOUBLE|NV_INTEGER)
+#define NV_LDOUBLE (NV_LONG|NV_DOUBLE|NV_INTEGER)
+
+/* name-value pair macros */
+#define nv_isattr(np,f) ((np)->nvflag & (f))
+#define nv_onattr(n,f) ((n)->nvflag |= (f))
+#define nv_offattr(n,f) ((n)->nvflag &= ~(f))
+#define nv_isarray(np) (nv_isattr((np),NV_ARRAY))
+
+/* The following are operations for associative arrays */
+#define NV_AINIT 1 /* initialize */
+#define NV_AFREE 2 /* free array */
+#define NV_ANEXT 3 /* advance to next subscript */
+#define NV_ANAME 4 /* return subscript name */
+#define NV_ADELETE 5 /* delete current subscript */
+#define NV_AADD 6 /* add subscript if not found */
+#define NV_ACURRENT 7 /* return current subscript Namval_t* */
+
+/* The following are for nv_disc */
+#define NV_FIRST 1
+#define NV_LAST 2
+#define NV_POP 3
+#define NV_CLONE 4
+
+/* The following are operations for nv_putsub() */
+#define ARRAY_BITS 24
+#define ARRAY_ADD (1L<<ARRAY_BITS) /* add subscript if not found */
+#define ARRAY_SCAN (2L<<ARRAY_BITS) /* For ${array[@]} */
+#define ARRAY_UNDEF (4L<<ARRAY_BITS) /* For ${array} */
+
+
+/* These are disciplines provided by the library for use with nv_discfun */
+#define NV_DCADD 0 /* used to add named disciplines */
+#define NV_DCRESTRICT 1 /* variable that are restricted in rsh */
+
+#if defined(__EXPORT__) && defined(_DLL)
+# ifdef _BLD_shell
+#undef __MANGLE__
+#define __MANGLE__ __LINKAGE__ __EXPORT__
+# else
+#undef __MANGLE__
+#define __MANGLE__ __LINKAGE__ __IMPORT__
+# endif /* _BLD_shell */
+#endif /* _DLL */
+/* prototype for array interface*/
+extern __MANGLE__ Namarr_t *nv_setarray __PROTO__((Namval_t*,__V_*(*)(Namval_t*,const char*,int)));
+extern __MANGLE__ __V_ *nv_associative __PROTO__((Namval_t*,const char*,int));
+extern __MANGLE__ int nv_aindex __PROTO__((Namval_t*));
+extern __MANGLE__ int nv_nextsub __PROTO__((Namval_t*));
+extern __MANGLE__ char *nv_getsub __PROTO__((Namval_t*));
+extern __MANGLE__ Namval_t *nv_putsub __PROTO__((Namval_t*, char*, long));
+extern __MANGLE__ Namval_t *nv_opensub __PROTO__((Namval_t*));
+
+/* name-value pair function prototypes */
+extern __MANGLE__ int nv_adddisc __PROTO__((Namval_t*, const char**, Namval_t**));
+extern __MANGLE__ int nv_clone __PROTO__((Namval_t*, Namval_t*, int));
+extern __MANGLE__ void nv_close __PROTO__((Namval_t*));
+extern __MANGLE__ __V_ *nv_context __PROTO__((Namval_t*));
+extern __MANGLE__ Namval_t *nv_create __PROTO__((const char*, Dt_t*, int,Namfun_t*));
+extern __MANGLE__ Dt_t *nv_dict __PROTO__((Namval_t*));
+extern __MANGLE__ Sfdouble_t nv_getn __PROTO__((Namval_t*, Namfun_t*));
+extern __MANGLE__ Sfdouble_t nv_getnum __PROTO__((Namval_t*));
+extern __MANGLE__ char *nv_getv __PROTO__((Namval_t*, Namfun_t*));
+extern __MANGLE__ char *nv_getval __PROTO__((Namval_t*));
+extern __MANGLE__ Namfun_t *nv_hasdisc __PROTO__((Namval_t*, const Namdisc_t*));
+extern __MANGLE__ int nv_isnull __PROTO__((Namval_t*));
+extern __MANGLE__ Namval_t *nv_lastdict __PROTO__((void));
+extern __MANGLE__ void nv_newattr __PROTO__((Namval_t*,unsigned,int));
+extern __MANGLE__ Namval_t *nv_open __PROTO__((const char*,Dt_t*,int));
+extern __MANGLE__ void nv_putval __PROTO__((Namval_t*,const char*,int));
+extern __MANGLE__ void nv_putv __PROTO__((Namval_t*,const char*,int,Namfun_t*));
+extern __MANGLE__ int nv_scan __PROTO__((Dt_t*,void(*)(Namval_t*,__V_*),__V_*,int,int));
+extern __MANGLE__ Namval_t *nv_scoped __PROTO__((Namval_t*));
+extern __MANGLE__ char *nv_setdisc __PROTO__((Namval_t*,const char*,Namval_t*,Namfun_t*));
+extern __MANGLE__ void nv_setref __PROTO__((Namval_t*, Dt_t*,int));
+extern __MANGLE__ int nv_settype __PROTO__((Namval_t*, Namval_t*, int));
+extern __MANGLE__ void nv_setvec __PROTO__((Namval_t*,int,int,char*[]));
+extern __MANGLE__ void nv_setvtree __PROTO__((Namval_t*));
+extern __MANGLE__ int nv_setsize __PROTO__((Namval_t*,int));
+extern __MANGLE__ Namfun_t *nv_disc __PROTO__((Namval_t*,Namfun_t*,int));
+extern __MANGLE__ void nv_unset __PROTO__((Namval_t*));
+extern __MANGLE__ Namval_t *nv_search __PROTO__((const char *, Dt_t*, int));
+extern __MANGLE__ void nv_unscope __PROTO__((void));
+extern __MANGLE__ char *nv_name __PROTO__((Namval_t*));
+extern __MANGLE__ Namval_t *nv_type __PROTO__((Namval_t*));
+extern __MANGLE__ const Namdisc_t *nv_discfun __PROTO__((int));
+
+#ifdef _DLL
+#undef __MANGLE__
+#define __MANGLE__ __LINKAGE__
+#endif /* _DLL */
+
+#define nv_size(np) nv_setsize((np),-1)
+#define nv_stack(np,nf) nv_disc(np,nf,0)
+
+#if 0
+/*
+ * The names of many functions were changed in early '95
+ * Here is a mapping to the old names
+ */
+# define nv_istype(np) nv_isattr(np)
+# define nv_newtype(np) nv_newattr(np)
+# define nv_namset(np,a,b) nv_open(np,a,b)
+# define nv_free(np) nv_unset(np)
+# define nv_settype(np,a,b,c) nv_setdisc(np,a,b,c)
+# define nv_search(np,a,b) nv_open(np,a,((b)?0:NV_NOADD))
+# define settype setdisc
+#endif
+
+#endif /* NV_DEFAULT */
diff --git a/usr/src/lib/libshell/sparc/include/ast/shell.h b/usr/src/lib/libshell/sparc/include/ast/shell.h
new file mode 100644
index 0000000000..37cafa932b
--- /dev/null
+++ b/usr/src/lib/libshell/sparc/include/ast/shell.h
@@ -0,0 +1,256 @@
+
+/* : : generated by proto : : */
+/***********************************************************************
+* *
+* This software is part of the ast package *
+* Copyright (c) 1982-2007 AT&T Knowledge Ventures *
+* and is licensed under the *
+* Common Public License, Version 1.0 *
+* by AT&T Knowledge Ventures *
+* *
+* A copy of the License is available at *
+* http://www.opensource.org/licenses/cpl1.0.txt *
+* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
+* *
+* Information and Software Systems Research *
+* AT&T Research *
+* Florham Park NJ *
+* *
+* David Korn <dgk@research.att.com> *
+* *
+***********************************************************************/
+
+#ifndef SH_INTERACTIVE
+#if !defined(__PROTO__)
+#include <prototyped.h>
+#endif
+#if !defined(__LINKAGE__)
+#define __LINKAGE__ /* 2004-08-11 transition */
+#endif
+
+/*
+ * David Korn
+ * AT&T Labs
+ *
+ * Interface definitions for shell command language
+ *
+ */
+
+#include <cmd.h>
+#include <cdt.h>
+#ifdef _SH_PRIVATE
+# include "name.h"
+#else
+# include <nval.h>
+#endif /* _SH_PRIVATE */
+
+#define SH_VERSION 20060510
+
+#undef NOT_USED
+#define NOT_USED(x) (&x,1)
+
+/* options */
+typedef struct
+{
+ unsigned long v[4];
+}
+Shopt_t;
+
+typedef void (*Shinit_f) __PROTO__((int));
+typedef int (*Shbltin_f) __PROTO__((int, char*[], __V_*));
+typedef int (*Shwait_f) __PROTO__((int, long, int));
+
+union Shnode_u;
+typedef union Shnode_u Shnode_t;
+
+#define SH_CFLAG 0
+#define SH_HISTORY 1 /* used also as a state */
+#define SH_ERREXIT 2 /* used also as a state */
+#define SH_VERBOSE 3 /* used also as a state */
+#define SH_MONITOR 4 /* used also as a state */
+#define SH_INTERACTIVE 5 /* used also as a state */
+#define SH_RESTRICTED 6
+#define SH_XTRACE 7
+#define SH_KEYWORD 8
+#define SH_NOUNSET 9
+#define SH_NOGLOB 10
+#define SH_ALLEXPORT 11
+#define SH_PFSH 12
+#define SH_IGNOREEOF 13
+#define SH_NOCLOBBER 14
+#define SH_MARKDIRS 15
+#define SH_BGNICE 16
+#define SH_VI 17
+#define SH_VIRAW 18
+#define SH_TFLAG 19
+#define SH_TRACKALL 20
+#define SH_SFLAG 21
+#define SH_NOEXEC 22
+#define SH_GMACS 24
+#define SH_EMACS 25
+#define SH_PRIVILEGED 26
+#define SH_SUBSHARE 27 /* subshell shares state with parent */
+#define SH_NOLOG 28
+#define SH_NOTIFY 29
+#define SH_DICTIONARY 30
+#define SH_PIPEFAIL 32
+#define SH_GLOBSTARS 33
+#define SH_XARGS 34
+#define SH_RC 35
+#define SH_SHOWME 36
+
+/*
+ * passed as flags to builtins in Nambltin_t struct when BLT_OPTIM is on
+ */
+#define SH_BEGIN_OPTIM 0x1
+#define SH_END_OPTIM 0x2
+
+/* The following type is used for error messages */
+
+/* error messages */
+extern __MANGLE__ const char e_defpath[];
+extern __MANGLE__ const char e_found[];
+extern __MANGLE__ const char e_nospace[];
+extern __MANGLE__ const char e_format[];
+extern __MANGLE__ const char e_number[];
+extern __MANGLE__ const char e_restricted[];
+extern __MANGLE__ const char e_recursive[];
+extern __MANGLE__ char e_version[];
+
+typedef struct sh_scope
+{
+ struct sh_scope *par_scope;
+ int argc;
+ char **argv;
+ char *cmdname;
+ char *filename;
+ int lineno;
+ Dt_t *var_tree;
+ struct sh_scope *self;
+} Shscope_t;
+
+/*
+ * Saves the state of the shell
+ */
+
+typedef struct sh_static
+{
+ Shopt_t options; /* set -o options */
+ Dt_t *var_tree; /* for shell variables */
+ Dt_t *fun_tree; /* for shell functions */
+ Dt_t *alias_tree; /* for alias names */
+ Dt_t *bltin_tree; /* for builtin commands */
+ Shscope_t *topscope; /* pointer to top-level scope */
+ int inlineno; /* line number of current input file */
+ int exitval; /* most recent exit value */
+ unsigned char trapnote; /* set when trap/signal is pending */
+ char subshell; /* set for virtual subshell */
+#ifdef _SH_PRIVATE
+ _SH_PRIVATE
+#endif /* _SH_PRIVATE */
+} Shell_t;
+
+/* flags for sh_parse */
+#define SH_NL 1 /* Treat new-lines as ; */
+#define SH_EOF 2 /* EOF causes syntax error */
+
+/* symbolic values for sh_iogetiop */
+#define SH_IOCOPROCESS (-2)
+#define SH_IOHISTFILE (-3)
+
+/* symbolic value for sh_fdnotify */
+#define SH_FDCLOSE (-1)
+
+#if defined(__EXPORT__) && defined(_DLL)
+# ifdef _BLD_shell
+#undef __MANGLE__
+#define __MANGLE__ __LINKAGE__ __EXPORT__
+# endif /* _BLD_shell */
+#endif /* _DLL */
+
+extern __MANGLE__ Dt_t *sh_bltin_tree __PROTO__((void));
+extern __MANGLE__ void sh_subfork __PROTO__((void));
+extern __MANGLE__ Shell_t *sh_init __PROTO__((int,char*[],Shinit_f));
+extern __MANGLE__ int sh_reinit __PROTO__((char*[]));
+extern __MANGLE__ int sh_eval __PROTO__((Sfio_t*,int));
+extern __MANGLE__ void sh_delay __PROTO__((double));
+extern __MANGLE__ __V_ *sh_parse __PROTO__((Shell_t*, Sfio_t*,int));
+extern __MANGLE__ int sh_trap __PROTO__((const char*,int));
+extern __MANGLE__ int sh_fun __PROTO__((Namval_t*,Namval_t*, char*[]));
+extern __MANGLE__ int sh_funscope __PROTO__((int,char*[],int(*)(__V_*),__V_*,int));
+extern __MANGLE__ Sfio_t *sh_iogetiop __PROTO__((int,int));
+extern __MANGLE__ int sh_main __PROTO__((int, char*[], void(*)(int)));
+extern __MANGLE__ void sh_menu __PROTO__((Sfio_t*, int, char*[]));
+extern __MANGLE__ Namval_t *sh_addbuiltin __PROTO__((const char*, int(*)(int, char*[],__V_*), __V_*));
+extern __MANGLE__ char *sh_fmtq __PROTO__((const char*));
+extern __MANGLE__ char *sh_fmtqf __PROTO__((const char*, int, int));
+extern __MANGLE__ Sfdouble_t sh_strnum __PROTO__((const char*, char**, int));
+extern __MANGLE__ int sh_access __PROTO__((const char*,int));
+extern __MANGLE__ int sh_close __PROTO__((int));
+extern __MANGLE__ int sh_dup __PROTO__((int));
+extern __MANGLE__ void sh_exit __PROTO__((int));
+extern __MANGLE__ int sh_fcntl __PROTO__((int, int, ...));
+extern __MANGLE__ Sfio_t *sh_fd2sfio __PROTO__((int));
+extern __MANGLE__ int (*sh_fdnotify __PROTO__((int(*)(int,int)))) __PROTO__((int,int));
+extern __MANGLE__ Shell_t *sh_getinterp __PROTO__((void));
+extern __MANGLE__ int sh_open __PROTO__((const char*, int, ...));
+extern __MANGLE__ int sh_openmax __PROTO__((void));
+extern __MANGLE__ Sfio_t *sh_pathopen __PROTO__((const char*));
+extern __MANGLE__ ssize_t sh_read __PROTO__((int, __V_*, size_t));
+extern __MANGLE__ ssize_t sh_write __PROTO__((int, const __V_*, size_t));
+extern __MANGLE__ off_t sh_seek __PROTO__((int, off_t, int));
+extern __MANGLE__ int sh_pipe __PROTO__((int[]));
+extern __MANGLE__ mode_t sh_umask __PROTO__((mode_t));
+extern __MANGLE__ __V_ *sh_waitnotify __PROTO__((Shwait_f));
+extern __MANGLE__ Shscope_t *sh_getscope __PROTO__((int,int));
+extern __MANGLE__ Shscope_t *sh_setscope __PROTO__((Shscope_t*));
+extern __MANGLE__ void sh_sigcheck __PROTO__((void));
+extern __MANGLE__ unsigned long sh_isoption __PROTO__((int));
+extern __MANGLE__ unsigned long sh_onoption __PROTO__((int));
+extern __MANGLE__ unsigned long sh_offoption __PROTO__((int));
+extern __MANGLE__ int sh_waitsafe __PROTO__((void));
+extern __MANGLE__ int sh_exec __PROTO__((const Shnode_t*,int));
+
+#if SHOPT_DYNAMIC
+ extern __MANGLE__ __V_ **sh_getliblist __PROTO__((void));
+#endif /* SHOPT_DYNAMIC */
+
+/*
+ * direct access to sh is obsolete, use sh_getinterp() instead
+ */
+#if !defined(_SH_PRIVATE) && defined(__IMPORT__) && !defined(_BLD_shell)
+ extern __MANGLE__ __IMPORT__ Shell_t sh;
+#else
+ extern __MANGLE__ Shell_t sh;
+#endif
+
+#ifdef _DLL
+#undef __MANGLE__
+#define __MANGLE__ __LINKAGE__
+#endif /* _DLL */
+
+#ifndef _SH_PRIVATE
+# define access(a,b) sh_access(a,b)
+# define close(a) sh_close(a)
+# define exit(a) sh_exit(a)
+# define fcntl(a,b,c) sh_fcntl(a,b,c)
+# define pipe(a) sh_pipe(a)
+# define read(a,b,c) sh_read(a,b,c)
+# define write(a,b,c) sh_write(a,b,c)
+# define umask(a) sh_umask(a)
+# define dup sh_dup
+# if _lib_lseek64
+# define open64 sh_open
+# define lseek64 sh_seek
+# else
+# define open sh_open
+# define lseek sh_seek
+# endif
+#endif /* !_SH_PRIVATE */
+
+#define SH_SIGSET 4
+#define SH_EXITSIG 0400 /* signal exit bit */
+#define SH_EXITMASK (SH_EXITSIG-1) /* normal exit status bits */
+#define SH_RUNPROG -1022 /* needs to be negative and < 256 */
+
+#endif /* SH_INTERACTIVE */
diff --git a/usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/acct b/usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/acct
new file mode 100644
index 0000000000..3224ea4e85
--- /dev/null
+++ b/usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/acct
@@ -0,0 +1,12 @@
+/* : : generated by iffe version 2007-04-04 : : */
+#ifndef _def_acct_ksh93
+#define _def_acct_ksh93 1
+#define _sys_types 1 /* #include <sys/types.h> ok */
+#define _LIB_dll 1 /* /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/arch/sol11.sun4/lib/libdll.a is a library */
+#define _LIB_ast 1 /* /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/arch/sol11.sun4/lib/libast.a is a library */
+#define _LIB_m 1 /* -lm is a library */
+#define _LIB_cmd 1 /* /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/arch/sol11.sun4/lib/libcmd.a is a library */
+#define _LIB_nsl 1 /* -lnsl is a library */
+#define _lib_acct 1 /* acct() in default lib(s) */
+#define _sys_acct 1 /* #include <sys/acct.h> ok */
+#endif
diff --git a/usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/cmds b/usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/cmds
new file mode 100644
index 0000000000..eb6f529a3d
--- /dev/null
+++ b/usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/cmds
@@ -0,0 +1,36 @@
+/* : : generated from /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/src/cmd/ksh93/features/cmds by iffe version 2007-04-04 : : */
+#ifndef _def_cmds_ksh93
+#define _def_cmds_ksh93 1
+#define _sys_types 1 /* #include <sys/types.h> ok */
+#define _LIB_dll 1 /* /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/arch/sol11.sun4/lib/libdll.a is a library */
+#define _LIB_ast 1 /* /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/arch/sol11.sun4/lib/libast.a is a library */
+#define _LIB_m 1 /* -lm is a library */
+#define _LIB_cmd 1 /* /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/arch/sol11.sun4/lib/libcmd.a is a library */
+#define _LIB_nsl 1 /* -lnsl is a library */
+#define _cmd_newgrp 1 /* newgrp in ?(/usr)/(bin|etc|ucb) */
+#define _bin_newgrp 1 /* /bin/newgrp found */
+#define _usr_bin_newgrp 1 /* /usr/bin/newgrp found */
+#define _cmd_test 1 /* test in ?(/usr)/(bin|etc|ucb) */
+#define _bin_test 1 /* /bin/test found */
+#define _usr_bin_test 1 /* /usr/bin/test found */
+#define _usr_ucb_test 1 /* /usr/ucb/test found */
+#define _cmd_id 1 /* id in ?(/usr)/(bin|etc|ucb) */
+#define _bin_id 1 /* /bin/id found */
+#define _usr_bin_id 1 /* /usr/bin/id found */
+#define _cmd_wc 1 /* wc in ?(/usr)/(bin|etc|ucb) */
+#define _bin_wc 1 /* /bin/wc found */
+#define _usr_bin_wc 1 /* /usr/bin/wc found */
+#define _usr_ucb_wc 1 /* /usr/ucb/wc found */
+#define _cmd_cut 1 /* cut in ?(/usr)/(bin|etc|ucb) */
+#define _bin_cut 1 /* /bin/cut found */
+#define _usr_bin_cut 1 /* /usr/bin/cut found */
+#define _cmd_logname 1 /* logname in ?(/usr)/(bin|etc|ucb) */
+#define _bin_logname 1 /* /bin/logname found */
+#define _usr_bin_logname 1 /* /usr/bin/logname found */
+#define _cmd_pfexec 1 /* pfexec in ?(/usr)/(bin|etc|ucb) */
+#define _bin_pfexec 1 /* /bin/pfexec found */
+#define _usr_bin_pfexec 1 /* /usr/bin/pfexec found */
+#define _cmd_tput 1 /* tput in ?(/usr)/(bin|etc|ucb) */
+#define _bin_tput 1 /* /bin/tput found */
+#define _usr_bin_tput 1 /* /usr/bin/tput found */
+#endif
diff --git a/usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/dynamic b/usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/dynamic
new file mode 100644
index 0000000000..5bc10f4878
--- /dev/null
+++ b/usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/dynamic
@@ -0,0 +1,23 @@
+/* : : generated from /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/src/cmd/ksh93/features/dynamic by iffe version 2007-04-04 : : */
+#ifndef _def_dynamic_ksh93
+#define _def_dynamic_ksh93 1
+#define _sys_types 1 /* #include <sys/types.h> ok */
+#define _LIB_dll 1 /* /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/arch/sol11.sun4/lib/libdll.a is a library */
+#define _LIB_ast 1 /* /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/arch/sol11.sun4/lib/libast.a is a library */
+#define _LIB_m 1 /* -lm is a library */
+#define _LIB_cmd 1 /* /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/arch/sol11.sun4/lib/libcmd.a is a library */
+#define _LIB_nsl 1 /* -lnsl is a library */
+#define _hdr_dlfcn 1 /* #include <dlfcn.h> ok */
+#define _sys_dl 1 /* #include <sys/dl.h> ok */
+#define _hdr_dlldefs 1 /* #include <dlldefs.h> ok */
+#define _lib_dlopen 1 /* dlopen() in default lib(s) */
+#define _lib_dllfind 1 /* dllfind() in default lib(s) */
+#if !defined(SHOPT_FS_3D) && ( _lib_dllfind || _lib_dlopen || _lib_shl_load || _lib_loadbind )
+# define SHOPT_FS_3D 1
+#endif /* !SHOPT_FS_3D */
+#if SHOPT_FS_3D
+# undef mount
+# include <fs3d.h>
+#endif /* SHOPT_FS_3D */
+
+#endif
diff --git a/usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/execargs b/usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/execargs
new file mode 100644
index 0000000000..bcb8d730d9
--- /dev/null
+++ b/usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/execargs
@@ -0,0 +1,10 @@
+/* : : generated by iffe version 2007-04-04 : : */
+#ifndef _def_execargs_ksh93
+#define _def_execargs_ksh93 1
+#define _sys_types 1 /* #include <sys/types.h> ok */
+#define _LIB_dll 1 /* /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/arch/sol11.sun4/lib/libdll.a is a library */
+#define _LIB_ast 1 /* /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/arch/sol11.sun4/lib/libast.a is a library */
+#define _LIB_m 1 /* -lm is a library */
+#define _LIB_cmd 1 /* /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/arch/sol11.sun4/lib/libcmd.a is a library */
+#define _LIB_nsl 1 /* -lnsl is a library */
+#endif
diff --git a/usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/externs b/usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/externs
new file mode 100644
index 0000000000..989fc9ca71
--- /dev/null
+++ b/usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/externs
@@ -0,0 +1,81 @@
+
+/* : : generated by proto : : */
+/* : : generated from /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/src/cmd/ksh93/features/externs by iffe version 2007-04-04 : : */
+
+#ifndef _def_externs_ksh93
+#if !defined(__PROTO__)
+# if defined(__STDC__) || defined(__cplusplus) || defined(_proto) || defined(c_plusplus)
+# if defined(__cplusplus)
+# define __LINKAGE__ "C"
+# else
+# define __LINKAGE__
+# endif
+# define __STDARG__
+# define __PROTO__(x) x
+# define __OTORP__(x)
+# define __PARAM__(n,o) n
+# if !defined(__STDC__) && !defined(__cplusplus)
+# if !defined(c_plusplus)
+# define const
+# endif
+# define signed
+# define void int
+# define volatile
+# define __V_ char
+# else
+# define __V_ void
+# endif
+# else
+# define __PROTO__(x) ()
+# define __OTORP__(x) x
+# define __PARAM__(n,o) o
+# define __LINKAGE__
+# define __V_ char
+# define const
+# define signed
+# define void int
+# define volatile
+# endif
+# define __MANGLE__ __LINKAGE__
+# if defined(__cplusplus) || defined(c_plusplus)
+# define __VARARG__ ...
+# else
+# define __VARARG__
+# endif
+# if defined(__STDARG__)
+# define __VA_START__(p,a) va_start(p,a)
+# else
+# define __VA_START__(p,a) va_start(p)
+# endif
+# if !defined(__INLINE__)
+# if defined(__cplusplus)
+# define __INLINE__ extern __MANGLE__ inline
+# else
+# if defined(_WIN32) && !defined(__GNUC__)
+# define __INLINE__ __inline
+# endif
+# endif
+# endif
+#endif
+#if !defined(__LINKAGE__)
+#define __LINKAGE__ /* 2004-08-11 transition */
+#endif
+
+#define _def_externs_ksh93 1
+#define _sys_types 1 /* #include <sys/types.h> ok */
+#define _LIB_dll 1 /* /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/arch/sol11.sun4/lib/libdll.a is a library */
+#define _LIB_ast 1 /* /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/arch/sol11.sun4/lib/libast.a is a library */
+#define _LIB_m 1 /* -lm is a library */
+#define _LIB_cmd 1 /* /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/arch/sol11.sun4/lib/libcmd.a is a library */
+#define _LIB_nsl 1 /* -lnsl is a library */
+#define _hdr_exec_attr 1 /* #include <exec_attr.h> ok */
+#define _hdr_math 1 /* #include <math.h> ok */
+#define _mem_name_exception 1 /* name is a member of struct exception */
+#define _lib_setreuid 1 /* setreuid() in default lib(s) */
+#define _lib_setregid 1 /* setregid() in default lib(s) */
+#define _lib_nice 1 /* nice() in default lib(s) */
+#define _lib_sigflag 1 /* sigflag() in default lib(s) */
+#define _lib_fork 1 /* fork() in default lib(s) */
+#define _lib_spawnveg 1 /* spawnveg() in default lib(s) */
+#define _lib_fchdir 1 /* fchdir() in default lib(s) */
+#endif
diff --git a/usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/locale b/usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/locale
new file mode 100644
index 0000000000..787bb2740e
--- /dev/null
+++ b/usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/locale
@@ -0,0 +1,38 @@
+/* : : generated from /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/src/cmd/ksh93/features/locale by iffe version 2007-04-04 : : */
+#ifndef _def_locale_ksh93
+#define _def_locale_ksh93 1
+#define _sys_types 1 /* #include <sys/types.h> ok */
+#define _LIB_dll 1 /* /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/arch/sol11.sun4/lib/libdll.a is a library */
+#define _LIB_ast 1 /* /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/arch/sol11.sun4/lib/libast.a is a library */
+#define _LIB_m 1 /* -lm is a library */
+#define _LIB_cmd 1 /* /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/arch/sol11.sun4/lib/libcmd.a is a library */
+#define _LIB_nsl 1 /* -lnsl is a library */
+#define _hdr_locale 1 /* #include <locale.h> ok */
+#define _hdr_wchar 1 /* #include <wchar.h> ok */
+#define _lib_localeconv 1 /* localeconv() in default lib(s) */
+#define _lib_wctype 1 /* wctype() in default lib(s) */
+#define _lib_iswctype 1 /* iswctype() in default lib(s) */
+#define _lib_iswblank 1 /* iswblank() in default lib(s) */
+#if _PACKAGE_ast
+# undef _hdr_locale
+# define _hdr_locale 1
+#else
+# ifdef _hdr_locale
+# include <locale.h>
+# ifndef LC_MESSAGES
+# define LC_MESSAGES LC_ALL
+# endif /* LC_MESSAGES */
+# endif /* _hdr_locale */
+#endif /* _PACKAGE_ast */
+#ifdef _hdr_locale
+# ifdef _lib_localeconv
+ static struct lconv *lp;
+# define GETDECIMAL(x) (((lp=localeconv()) && lp->decimal_point && *lp->decimal_point) ? *lp->decimal_point : '.' )
+# else
+# define GETDECIMAL(x) ('.')
+# endif /* _lib_localeconv */
+#else
+# define GETDECIMAL(x) ('.')
+#endif /* _hdr_locale */
+
+#endif
diff --git a/usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/math b/usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/math
new file mode 100644
index 0000000000..44f582aa7a
--- /dev/null
+++ b/usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/math
@@ -0,0 +1,162 @@
+
+/* : : generated by proto : : */
+/* : : generated from /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/src/cmd/ksh93/features/math.sh by iffe version 2007-04-04 : : */
+#ifndef _def_math_ksh93
+#if !defined(__PROTO__)
+# if defined(__STDC__) || defined(__cplusplus) || defined(_proto) || defined(c_plusplus)
+# if defined(__cplusplus)
+# define __LINKAGE__ "C"
+# else
+# define __LINKAGE__
+# endif
+# define __STDARG__
+# define __PROTO__(x) x
+# define __OTORP__(x)
+# define __PARAM__(n,o) n
+# if !defined(__STDC__) && !defined(__cplusplus)
+# if !defined(c_plusplus)
+# define const
+# endif
+# define signed
+# define void int
+# define volatile
+# define __V_ char
+# else
+# define __V_ void
+# endif
+# else
+# define __PROTO__(x) ()
+# define __OTORP__(x) x
+# define __PARAM__(n,o) o
+# define __LINKAGE__
+# define __V_ char
+# define const
+# define signed
+# define void int
+# define volatile
+# endif
+# define __MANGLE__ __LINKAGE__
+# if defined(__cplusplus) || defined(c_plusplus)
+# define __VARARG__ ...
+# else
+# define __VARARG__
+# endif
+# if defined(__STDARG__)
+# define __VA_START__(p,a) va_start(p,a)
+# else
+# define __VA_START__(p,a) va_start(p)
+# endif
+# if !defined(__INLINE__)
+# if defined(__cplusplus)
+# define __INLINE__ extern __MANGLE__ inline
+# else
+# if defined(_WIN32) && !defined(__GNUC__)
+# define __INLINE__ __inline
+# endif
+# endif
+# endif
+#endif
+#if !defined(__LINKAGE__)
+#define __LINKAGE__ /* 2004-08-11 transition */
+#endif
+
+#define _def_math_ksh93 1
+#define _sys_types 1 /* #include <sys/types.h> ok */
+#define _LIB_dll 1 /* /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/arch/sol11.sun4/lib/libdll.a is a library */
+#define _LIB_ast 1 /* /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/arch/sol11.sun4/lib/libast.a is a library */
+#define _LIB_m 1 /* -lm is a library */
+#define _LIB_cmd 1 /* /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/arch/sol11.sun4/lib/libcmd.a is a library */
+#define _LIB_nsl 1 /* -lnsl is a library */
+
+
+/* : : generated by iffe from /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/src/cmd/ksh93/data/math.tab : : */
+
+typedef Sfdouble_t (*Math_f) __PROTO__((Sfdouble_t,...));
+
+#include <ast_standards.h>
+#include <math.h>
+#include <ieeefp.h>
+
+static Sfdouble_t local_finite __PARAM__((Sfdouble_t a1), (a1)) __OTORP__(Sfdouble_t a1;){return finite(a1);}
+static int local_fpclassify __PARAM__((Sfdouble_t a1), (a1)) __OTORP__(Sfdouble_t a1;){return fpclassify(a1);}
+static int local_isfinite __PARAM__((Sfdouble_t a1), (a1)) __OTORP__(Sfdouble_t a1;){return isfinite(a1);}
+static int local_isgreater __PARAM__((Sfdouble_t a1,Sfdouble_t a2), (a1, a2)) __OTORP__(Sfdouble_t a1;Sfdouble_t a2;){return isgreater(a1,a2);}
+static int local_isgreaterequal __PARAM__((Sfdouble_t a1,Sfdouble_t a2), (a1, a2)) __OTORP__(Sfdouble_t a1;Sfdouble_t a2;){return isgreaterequal(a1,a2);}
+static int local_isinf __PARAM__((Sfdouble_t a1), (a1)) __OTORP__(Sfdouble_t a1;){return isinf(a1);}
+static int local_isless __PARAM__((Sfdouble_t a1,Sfdouble_t a2), (a1, a2)) __OTORP__(Sfdouble_t a1;Sfdouble_t a2;){return isless(a1,a2);}
+static int local_islessequal __PARAM__((Sfdouble_t a1,Sfdouble_t a2), (a1, a2)) __OTORP__(Sfdouble_t a1;Sfdouble_t a2;){return islessequal(a1,a2);}
+static int local_islessgreater __PARAM__((Sfdouble_t a1,Sfdouble_t a2), (a1, a2)) __OTORP__(Sfdouble_t a1;Sfdouble_t a2;){return islessgreater(a1,a2);}
+static int local_isnormal __PARAM__((Sfdouble_t a1), (a1)) __OTORP__(Sfdouble_t a1;){return isnormal(a1);}
+static int local_isunordered __PARAM__((Sfdouble_t a1,Sfdouble_t a2), (a1, a2)) __OTORP__(Sfdouble_t a1;Sfdouble_t a2;){return isunordered(a1,a2);}
+static int local_signbit __PARAM__((Sfdouble_t a1), (a1)) __OTORP__(Sfdouble_t a1;){return signbit(a1);}
+
+/*
+ * first byte is two-digit octal number. Last digit is number of args
+ * first digit is 0 if return value is double, 1 for integer
+ */
+const struct mathtab shtab_math[] =
+{
+ "\001acos", (Math_f)acosl,
+ "\001acosh", (Math_f)acoshl,
+ "\001asin", (Math_f)asinl,
+ "\001asinh", (Math_f)asinhl,
+ "\001atan", (Math_f)atanl,
+ "\002atan2", (Math_f)atan2l,
+ "\001atanh", (Math_f)atanhl,
+ "\001cbrt", (Math_f)cbrtl,
+ "\002copysign", (Math_f)copysignl,
+ "\001cos", (Math_f)cosl,
+ "\001cosh", (Math_f)coshl,
+ "\001erf", (Math_f)erfl,
+ "\001erfc", (Math_f)erfcl,
+ "\001exp", (Math_f)expl,
+ "\001exp2", (Math_f)exp2l,
+ "\001expm1", (Math_f)expm1l,
+ "\001fabs", (Math_f)fabsl,
+ "\001abs", (Math_f)fabsl,
+ "\002fdim", (Math_f)fdiml,
+ "\001finite", (Math_f)local_finite,
+ "\001floor", (Math_f)floorl,
+ "\001int", (Math_f)floorl,
+ "\003fma", (Math_f)fmal,
+ "\002fmax", (Math_f)fmaxl,
+ "\002fmin", (Math_f)fminl,
+ "\002fmod", (Math_f)fmodl,
+ "\011fpclassify", (Math_f)local_fpclassify,
+ "\002hypot", (Math_f)hypotl,
+ "\011ilogb", (Math_f)ilogbl,
+ "\011isfinite", (Math_f)local_isfinite,
+ "\012isgreater", (Math_f)local_isgreater,
+ "\012isgreaterequal", (Math_f)local_isgreaterequal,
+ "\011isinf", (Math_f)local_isinf,
+ "\012isless", (Math_f)local_isless,
+ "\012islessequal", (Math_f)local_islessequal,
+ "\012islessgreater", (Math_f)local_islessgreater,
+ "\011isnan", (Math_f)isnanl,
+ "\011isnormal", (Math_f)local_isnormal,
+ "\012isunordered", (Math_f)local_isunordered,
+ "\001lgamma", (Math_f)lgammal,
+ "\001log", (Math_f)logl,
+ "\001log1p", (Math_f)log1pl,
+ "\001log2", (Math_f)log2l,
+ "\001logb", (Math_f)logbl,
+ "\001nearbyint", (Math_f)nearbyintl,
+ "\002nextafter", (Math_f)nextafterl,
+ "\002nexttoward", (Math_f)nexttowardl,
+ "\002pow", (Math_f)powl,
+ "\002remainder", (Math_f)remainderl,
+ "\001rint", (Math_f)rintl,
+ "\001round", (Math_f)roundl,
+ "\002scalb", (Math_f)scalbl,
+ "\002scalbn", (Math_f)scalbnl,
+ "\011signbit", (Math_f)local_signbit,
+ "\001sin", (Math_f)sinl,
+ "\001sinh", (Math_f)sinhl,
+ "\001sqrt", (Math_f)sqrtl,
+ "\001tan", (Math_f)tanl,
+ "\001tanh", (Math_f)tanhl,
+ "\001tgamma", (Math_f)tgammal,
+ "\001trunc", (Math_f)truncl,
+ "", (Math_f)0
+};
+#endif
diff --git a/usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/options b/usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/options
new file mode 100644
index 0000000000..2ef857884d
--- /dev/null
+++ b/usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/options
@@ -0,0 +1,26 @@
+/* : : generated from /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/src/cmd/ksh93/features/options by iffe version 2007-04-04 : : */
+#ifndef _def_options_ksh93
+#define _def_options_ksh93 1
+#define _sys_types 1 /* #include <sys/types.h> ok */
+#define _LIB_dll 1 /* /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/arch/sol11.sun4/lib/libdll.a is a library */
+#define _LIB_ast 1 /* /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/arch/sol11.sun4/lib/libast.a is a library */
+#define _LIB_m 1 /* -lm is a library */
+#define _LIB_cmd 1 /* /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/arch/sol11.sun4/lib/libcmd.a is a library */
+#define _LIB_nsl 1 /* -lnsl is a library */
+#define SHELLMAGIC 1
+#ifndef SHOPT_DEVFD
+# define SHOPT_DEVFD 1
+#endif
+#ifndef SHOPT_PFSH
+# define SHOPT_PFSH 1
+#endif
+#undef SHOPT_TEST_L
+#ifndef SHOPT_SYSRC
+# define SHOPT_SYSRC 1
+#endif
+#undef SHOPT_UCB
+#if !_PACKAGE_ast && ( (MB_LEN_MAX-1)<=0 || !defined(_lib_mbtowc) )
+# undef SHOPT_MULTIBYTE
+#endif
+
+#endif
diff --git a/usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/poll b/usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/poll
new file mode 100644
index 0000000000..35c699486f
--- /dev/null
+++ b/usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/poll
@@ -0,0 +1,119 @@
+
+/* : : generated by proto : : */
+/* : : generated from /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/src/cmd/ksh93/features/poll by iffe version 2007-04-04 : : */
+#ifndef _def_poll_ksh93
+#if !defined(__PROTO__)
+# if defined(__STDC__) || defined(__cplusplus) || defined(_proto) || defined(c_plusplus)
+# if defined(__cplusplus)
+# define __LINKAGE__ "C"
+# else
+# define __LINKAGE__
+# endif
+# define __STDARG__
+# define __PROTO__(x) x
+# define __OTORP__(x)
+# define __PARAM__(n,o) n
+# if !defined(__STDC__) && !defined(__cplusplus)
+# if !defined(c_plusplus)
+# define const
+# endif
+# define signed
+# define void int
+# define volatile
+# define __V_ char
+# else
+# define __V_ void
+# endif
+# else
+# define __PROTO__(x) ()
+# define __OTORP__(x) x
+# define __PARAM__(n,o) o
+# define __LINKAGE__
+# define __V_ char
+# define const
+# define signed
+# define void int
+# define volatile
+# endif
+# define __MANGLE__ __LINKAGE__
+# if defined(__cplusplus) || defined(c_plusplus)
+# define __VARARG__ ...
+# else
+# define __VARARG__
+# endif
+# if defined(__STDARG__)
+# define __VA_START__(p,a) va_start(p,a)
+# else
+# define __VA_START__(p,a) va_start(p)
+# endif
+# if !defined(__INLINE__)
+# if defined(__cplusplus)
+# define __INLINE__ extern __MANGLE__ inline
+# else
+# if defined(_WIN32) && !defined(__GNUC__)
+# define __INLINE__ __inline
+# endif
+# endif
+# endif
+#endif
+#if !defined(__LINKAGE__)
+#define __LINKAGE__ /* 2004-08-11 transition */
+#endif
+
+#define _def_poll_ksh93 1
+#define _sys_types 1 /* #include <sys/types.h> ok */
+#define _LIB_dll 1 /* /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/arch/sol11.sun4/lib/libdll.a is a library */
+#define _LIB_ast 1 /* /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/arch/sol11.sun4/lib/libast.a is a library */
+#define _LIB_m 1 /* -lm is a library */
+#define _LIB_cmd 1 /* /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/arch/sol11.sun4/lib/libcmd.a is a library */
+#define _LIB_nsl 1 /* -lnsl is a library */
+#define _hdr_poll 1 /* #include <poll.h> ok */
+#define _hdr_netinet_in 1 /* #include <netinet/in.h> ok */
+#define _sys_poll 1 /* #include <sys/poll.h> ok */
+#define _sys_socket 1 /* #include <sys/socket.h> ok */
+#define _lib_select 1 /* select() in default lib(s) */
+#define _lib_poll 1 /* poll() in default lib(s) */
+#define _lib_socket 1 /* socket() in default lib(s) */
+#define _lib_htons 1 /* htons() in default lib(s) */
+#define _lib_htonl 1 /* htonl() in default lib(s) */
+#define _hdr_netdb 1 /* #include <netdb.h> ok */
+#define _lib_getaddrinfo 1 /* getaddrinfo() in default lib(s) */
+#define _hdr_time 1 /* #include <time.h> ok */
+#define _sys_time 1 /* #include <sys/time.h> ok */
+#define _sys_times 1 /* #include <sys/times.h> ok */
+#define _hdr_stddef 1 /* #include <stddef.h> ok */
+#define _hdr_stdlib 1 /* #include <stdlib.h> ok */
+#define _sys_select 1 /* #include <sys/select.h> ok */
+#define _typ_fd_set 1 /* fd_set is a type */
+#define _socketpair_devfd 1 /* /dev/fd/N handles socketpair() */
+
+#ifdef _lib_poll
+# define poll _SYS_poll
+#else
+# undef _hdr_poll
+# undef _sys_poll
+#endif /* _lib_poll */
+#ifdef _hdr_poll
+# include <poll.h>
+#else
+# ifdef _sys_poll
+# include <sys/poll.h>
+# endif /* _sys_poll */
+#endif /* _hdr_poll */
+#ifdef _lib_poll
+# undef poll
+ extern __MANGLE__ int poll __PROTO__((struct pollfd*,unsigned long,int));
+#endif /* _lib_poll */
+#ifdef _lib_select
+# ifndef FD_ZERO
+# define FD_ZERO(x) (*(x)=0)
+# endif /* FD_ZERO */
+# ifndef FD_SET
+# define FD_SET(n,x) (*(x)|=(1L<<(n)))
+# endif /* FD_SET */
+# ifndef _typ_fd_set
+ typedef long fd_set;
+# endif /*_typ_fd_set */
+#endif /* _lib_select */
+
+#endif
diff --git a/usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/pstat b/usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/pstat
new file mode 100644
index 0000000000..ce6e94896f
--- /dev/null
+++ b/usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/pstat
@@ -0,0 +1,10 @@
+/* : : generated by iffe version 2007-04-04 : : */
+#ifndef _def_pstat_ksh93
+#define _def_pstat_ksh93 1
+#define _sys_types 1 /* #include <sys/types.h> ok */
+#define _LIB_dll 1 /* /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/arch/sol11.sun4/lib/libdll.a is a library */
+#define _LIB_ast 1 /* /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/arch/sol11.sun4/lib/libast.a is a library */
+#define _LIB_m 1 /* -lm is a library */
+#define _LIB_cmd 1 /* /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/arch/sol11.sun4/lib/libcmd.a is a library */
+#define _LIB_nsl 1 /* -lnsl is a library */
+#endif
diff --git a/usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/rlimits b/usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/rlimits
new file mode 100644
index 0000000000..41eb6091a6
--- /dev/null
+++ b/usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/rlimits
@@ -0,0 +1,19 @@
+/* : : generated from /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/src/cmd/ksh93/features/rlimits by iffe version 2007-04-04 : : */
+#ifndef _def_rlimits_ksh93
+#define _def_rlimits_ksh93 1
+#define _sys_types 1 /* #include <sys/types.h> ok */
+#define _LIB_dll 1 /* /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/arch/sol11.sun4/lib/libdll.a is a library */
+#define _LIB_ast 1 /* /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/arch/sol11.sun4/lib/libast.a is a library */
+#define _LIB_m 1 /* -lm is a library */
+#define _LIB_cmd 1 /* /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/arch/sol11.sun4/lib/libcmd.a is a library */
+#define _LIB_nsl 1 /* -lnsl is a library */
+#define _sys_resource 1 /* #include <sys/resource.h> ok */
+#define _lib_getrlimit 1 /* getrlimit() in default lib(s) */
+#define _lib_ulimit 1 /* ulimit() in default lib(s) */
+#define _hdr_time 1 /* #include <time.h> ok */
+#define _sys_time 1 /* #include <sys/time.h> ok */
+#define _sys_times 1 /* #include <sys/times.h> ok */
+#define _hdr_stddef 1 /* #include <stddef.h> ok */
+#define _hdr_stdlib 1 /* #include <stdlib.h> ok */
+#define _typ_rlim_t 1 /* rlim_t is a type */
+#endif
diff --git a/usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/setjmp b/usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/setjmp
new file mode 100644
index 0000000000..76daa91aca
--- /dev/null
+++ b/usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/setjmp
@@ -0,0 +1,35 @@
+/* : : generated from /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/src/cmd/ksh93/features/setjmp by iffe version 2007-04-04 : : */
+#ifndef _def_setjmp_ksh93
+#define _def_setjmp_ksh93 1
+#define _sys_types 1 /* #include <sys/types.h> ok */
+#define _LIB_dll 1 /* /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/arch/sol11.sun4/lib/libdll.a is a library */
+#define _LIB_ast 1 /* /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/arch/sol11.sun4/lib/libast.a is a library */
+#define _LIB_m 1 /* -lm is a library */
+#define _LIB_cmd 1 /* /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/arch/sol11.sun4/lib/libcmd.a is a library */
+#define _LIB_nsl 1 /* -lnsl is a library */
+#define _lib_sigsetjmp 1 /* sigsetjmp() in default lib(s) */
+#define _lib__setjmp 1 /* _setjmp() in default lib(s) */
+#define _lib__longjmp 1 /* _longjmp() in default lib(s) */
+#define _hdr_time 1 /* #include <time.h> ok */
+#define _sys_time 1 /* #include <sys/time.h> ok */
+#define _sys_times 1 /* #include <sys/times.h> ok */
+#define _hdr_stddef 1 /* #include <stddef.h> ok */
+#define _hdr_stdlib 1 /* #include <stdlib.h> ok */
+#define _hdr_setjmp 1 /* #include <setjmp.h> ok */
+#define _typ_sigjmp_buf 1 /* sigjmp_buf is a type */
+#undef sigsetjmp
+#undef siglongjmp
+#undef sigjmp_buf
+#define sigjmp_buf jmp_buf
+#ifdef _lib__setjmp
+# define sigsetjmp(a,b) _setjmp(a)
+#else
+# define sigsetjmp(a,b) setjmp(a)
+#endif /* _lib__setjmp */
+#ifdef _lib__longjmp
+# define siglongjmp(a,b) _longjmp(a,b)
+#else
+# define siglongjmp(a,b) longjmp(a,b)
+#endif /* _lib__longjmp */
+
+#endif
diff --git a/usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/sigfeatures b/usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/sigfeatures
new file mode 100644
index 0000000000..b862dffb5e
--- /dev/null
+++ b/usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/sigfeatures
@@ -0,0 +1,54 @@
+/* : : generated from /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/src/cmd/ksh93/features/sigfeatures by iffe version 2007-04-04 : : */
+#ifndef _def_sigfeatures_ksh93
+#define _def_sigfeatures_ksh93 1
+#define _sys_types 1 /* #include <sys/types.h> ok */
+#define _LIB_dll 1 /* /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/arch/sol11.sun4/lib/libdll.a is a library */
+#define _LIB_ast 1 /* /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/arch/sol11.sun4/lib/libast.a is a library */
+#define _LIB_m 1 /* -lm is a library */
+#define _LIB_cmd 1 /* /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/arch/sol11.sun4/lib/libcmd.a is a library */
+#define _LIB_nsl 1 /* -lnsl is a library */
+#define _lib_sigrelse 1 /* sigrelse() in default lib(s) */
+#define _lib_sigprocmask 1 /* sigprocmask() in default lib(s) */
+#define _hdr_time 1 /* #include <time.h> ok */
+#define _sys_time 1 /* #include <sys/time.h> ok */
+#define _sys_times 1 /* #include <sys/times.h> ok */
+#define _hdr_stddef 1 /* #include <stddef.h> ok */
+#define _hdr_stdlib 1 /* #include <stdlib.h> ok */
+#define _hdr_ast 1 /* #include <ast.h> ok */
+#define _hdr_signal 1 /* #include <signal.h> ok */
+#define _typ_sigset_t 1 /* sigset_t is a type */
+#ifndef _mem_sigvec_sv_mask
+# undef _lib_sigvec
+#endif
+#ifdef _lib_sigprocmask
+# define sh_sigaction(s,action) do { sigset_t ss;\
+ sigemptyset(&ss);\
+ sigaddset(&ss,(s));\
+ sigprocmask(action,&ss,0); \
+ }while(0)
+# define sigrelease(s) sh_sigaction(s,SIG_UNBLOCK)
+# define sigblock(s) sh_sigaction(s,SIG_BLOCK)
+# define sig_begin() sh_sigaction(0,SIG_SETMASK)
+#else
+# ifndef _lib_sigblock
+# define sigblock(s)
+# endif
+# ifdef _lib_sigsetmask
+# define sigrelease(s) sigsetmask(0)
+# define sig_begin() sigsetmask(0)
+# else
+# ifdef _lib_sigrelse
+# define sigrelease sigrelse
+# define sig_begin()
+# else
+# define sig_begin() (0)
+# define sigrelease(s) (0)
+# endif /* _lib_sigrelse */
+# endif /* _lib_sigsetmask */
+#endif /* _lib_sigprocmask */
+
+#undef _SIGRTMIN
+#define _SIGRTMIN 41
+#undef _SIGRTMAX
+#define _SIGRTMAX 48
+#endif
diff --git a/usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/time b/usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/time
new file mode 100644
index 0000000000..5117dbe7c8
--- /dev/null
+++ b/usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/time
@@ -0,0 +1,28 @@
+/* : : generated from /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/src/cmd/ksh93/features/time by iffe version 2007-04-04 : : */
+#ifndef _def_time_ksh93
+#define _def_time_ksh93 1
+#define _sys_types 1 /* #include <sys/types.h> ok */
+#define _LIB_dll 1 /* /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/arch/sol11.sun4/lib/libdll.a is a library */
+#define _LIB_ast 1 /* /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/arch/sol11.sun4/lib/libast.a is a library */
+#define _LIB_m 1 /* -lm is a library */
+#define _LIB_cmd 1 /* /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/arch/sol11.sun4/lib/libcmd.a is a library */
+#define _LIB_nsl 1 /* -lnsl is a library */
+#define _hdr_utime 1 /* #include <utime.h> ok */
+#define _lib_gettimeofday 1 /* gettimeofday() in default lib(s) */
+#define _lib_setitimer 1 /* setitimer() in default lib(s) */
+#define _sys_time 1 /* #include <sys/time.h> ok */
+#define _mem_tv_usec_timeval 1 /* tv_usec is a member of struct timeval */
+#define _lib_2_timeofday 1 /* 2 arg gettimeofday() */
+#undef _def_time
+#include <times.h>
+#define _def_time 1
+#undef timeofday
+#if _lib_2_timeofday
+#define timeofday(p) gettimeofday(p,(struct timezone*)0)
+#else
+#if _lib_1_timeofday
+#define timeofday(p) gettimeofday(p)
+#endif
+#endif
+
+#endif
diff --git a/usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/ttys b/usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/ttys
new file mode 100644
index 0000000000..39d165bbf9
--- /dev/null
+++ b/usr/src/lib/libshell/sparc/src/cmd/ksh93/FEATURE/ttys
@@ -0,0 +1,19 @@
+/* : : generated from /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/src/cmd/ksh93/features/ttys by iffe version 2007-04-04 : : */
+#ifndef _def_ttys_ksh93
+#define _def_ttys_ksh93 1
+#define _sys_types 1 /* #include <sys/types.h> ok */
+#define _LIB_dll 1 /* /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/arch/sol11.sun4/lib/libdll.a is a library */
+#define _LIB_ast 1 /* /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/arch/sol11.sun4/lib/libast.a is a library */
+#define _LIB_m 1 /* -lm is a library */
+#define _LIB_cmd 1 /* /home/gisburn/ksh93/ast_ksh_20070418/build_sparc_32bit/arch/sol11.sun4/lib/libcmd.a is a library */
+#define _LIB_nsl 1 /* -lnsl is a library */
+#define _hdr_termios 1 /* #include <termios.h> ok */
+#define _hdr_termio 1 /* #include <termio.h> ok */
+#define _hdr_sgtty 1 /* #include <sgtty.h> ok */
+#define _sys_termios 1 /* #include <sys/termios.h> ok */
+#define _sys_termio 1 /* #include <sys/termio.h> ok */
+#define _sys_ioctl 1 /* #include <sys/ioctl.h> ok */
+#define _sys_filio 1 /* #include <sys/filio.h> ok */
+#define _lib_tcgetattr 1 /* tcgetattr() in default lib(s) */
+#define _lib_tcgetpgrp 1 /* tcgetpgrp() in default lib(s) */
+#endif