changeset 12848:0d0733997434

PSARC 2010/233 EOF SYSV3 SCO compatibility environment variable 6961744 EOF SYSV3 SCO compatibility environment variable
author Rich Burridge <rich.burridge@oracle.com>
date Thu, 15 Jul 2010 13:45:49 -0700
parents e5b18d290ac6
children 331f69c36b0a
files usr/src/cmd/Makefile.cmd usr/src/cmd/echo/Makefile usr/src/cmd/echo/echo.c usr/src/cmd/eject/Makefile usr/src/cmd/expr/Makefile usr/src/cmd/expr/expr.c usr/src/cmd/fs.d/Makefile usr/src/cmd/fs.d/df.c usr/src/cmd/fstyp/Makefile usr/src/cmd/sh/Makefile usr/src/cmd/sh/echo.c usr/src/cmd/tar/Makefile usr/src/cmd/tar/tar.c usr/src/cmd/uname/Makefile usr/src/cmd/uname/uname.c
diffstat 15 files changed, 69 insertions(+), 608 deletions(-) [+]
line wrap: on
line diff
--- a/usr/src/cmd/Makefile.cmd	Thu Jul 15 13:02:24 2010 -0700
+++ b/usr/src/cmd/Makefile.cmd	Thu Jul 15 13:45:49 2010 -0700
@@ -19,8 +19,7 @@
 # CDDL HEADER END
 #
 #
-# Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
-# Use is subject to license terms.
+# Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
 #
 # Definitions common to command source.
 #
@@ -501,12 +500,6 @@
 
 CLOBBERFILES += $(XPG4) $(XPG6) $(DCFILE)
 
-# This flag is being added only for SCO (x86) compatibility
-i386_SPFLAG=    -D_iBCS2
-sparc_SPFLAG=
-
-iBCS2FLAG = $($(MACH)_SPFLAG)
-
 # This flag is for programs which should not build a 32-bit binary
 sparc_64ONLY= $(POUND_SIGN)
 64ONLY=	 $($(MACH)_64ONLY)
--- a/usr/src/cmd/echo/Makefile	Thu Jul 15 13:02:24 2010 -0700
+++ b/usr/src/cmd/echo/Makefile	Thu Jul 15 13:45:49 2010 -0700
@@ -2,9 +2,8 @@
 # CDDL HEADER START
 #
 # The contents of this file are subject to the terms of the
-# Common Development and Distribution License, Version 1.0 only
-# (the "License").  You may not use this file except in compliance
-# with the License.
+# 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.
@@ -19,11 +18,7 @@
 #
 # CDDL HEADER END
 #
-#
-#ident	"%Z%%M%	%I%	%E% SMI"
-#
-# Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
-# Use is subject to license terms.
+# Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
 #
 
 PROG= echo
@@ -32,9 +27,6 @@
 
 CFLAGS += $(CCVERBOSE)
 
-# This flag is being added only for SCO (x86) compatibility  
-CFLAGS += $(iBCS2FLAG)
-
 .KEEP_STATE:
 
 all: $(PROG) 
--- a/usr/src/cmd/echo/echo.c	Thu Jul 15 13:02:24 2010 -0700
+++ b/usr/src/cmd/echo/echo.c	Thu Jul 15 13:45:49 2010 -0700
@@ -2,9 +2,8 @@
  * CDDL HEADER START
  *
  * The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License").  You may not use this file except in compliance
- * with the License.
+ * 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.
@@ -20,12 +19,9 @@
  * CDDL HEADER END
  */
 /*
- * Copyright 2003 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
 /*	  All Rights Reserved  	*/
 
@@ -47,9 +43,6 @@
 	int		b_len;
 	char		*ep;
 
-#ifdef	_iBCS2
-	int		no_nl = 0;
-#endif
 	(void) setlocale(LC_ALL, "");
 
 	if (--argc == 0) {
@@ -59,18 +52,9 @@
 		return (0);
 	}
 
-#ifdef	_iBCS2
-	/* If SYSV3 is set, check for ISC/SCO style -n option parsing. */
-	if (getenv("SYSV3")) {
-		if (strcmp(argv[1], "-n") == 0)
-			no_nl ++;
-	}
-	for (i = 1 + no_nl; i <= argc; i++) {
-#else
 	for (i = 1; i <= argc; i++) {
-#endif	/*  _iBCS2 */
 		for (cp = argv[i], ep = cp + (int)strlen(cp);
-			cp < ep; cp += b_len) {
+		    cp < ep; cp += b_len) {
 		if ((b_len = mbtowc(&wc, cp, MB_CUR_MAX)) <= 0) {
 			(void) putchar(*cp);
 			b_len = 1;
@@ -124,7 +108,7 @@
 				case '0':
 					j = wd = 0;
 					while ((*++cp >= '0' && *cp <= '7') &&
-						j++ < 3) {
+					    j++ < 3) {
 						wd <<= 3;
 						wd |= (*cp - '0');
 					}
@@ -137,12 +121,9 @@
 					(void) putchar(*cp);
 			}
 		}
-#ifdef	_iBCS2
-		if (!(no_nl && i == argc))
-#endif	/* _iBCS2 */
-			(void) putchar(i == argc? '\n': ' ');
-			if (fflush(stdout) != 0)
-				return (1);
+		(void) putchar(i == argc? '\n': ' ');
+		if (fflush(stdout) != 0)
+			return (1);
 	}
 	return (0);
 }
--- a/usr/src/cmd/eject/Makefile	Thu Jul 15 13:02:24 2010 -0700
+++ b/usr/src/cmd/eject/Makefile	Thu Jul 15 13:45:49 2010 -0700
@@ -19,10 +19,7 @@
 # CDDL HEADER END
 #
 #
-# Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
-# Use is subject to license terms.
-#
-# ident	"%Z%%M%	%I%	%E% SMI"
+# Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
 #
 
 PROG=		eject
@@ -33,9 +30,6 @@
 
 CFLAGS += $(CCVERBOSE)
 
-# This flag is being added only for SCO (x86) compatibility  
-CFLAGS += $(iBCS2FLAG)
-
 LINTFLAGS += -um
 
 .KEEP_STATE:
--- a/usr/src/cmd/expr/Makefile	Thu Jul 15 13:02:24 2010 -0700
+++ b/usr/src/cmd/expr/Makefile	Thu Jul 15 13:45:49 2010 -0700
@@ -19,10 +19,8 @@
 # CDDL HEADER END
 #
 #
-# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
-# Use is subject to license terms.
+# Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
 #
-# ident	"%Z%%M%	%I%	%E% SMI"
 
 PROG= expr
 XPG4PROG= expr
@@ -41,9 +39,6 @@
 $(XPG4) := CFLAGS += -DXPG4
 $(XPG6) := CFLAGS += -DXPG6
 
-# This flag is being added only for SCO (x86) compatibility
-CFLAGS += $(iBCS2FLAG)
-
 XGETFLAGS += -a -x expr.xcl
 
 LDLIBS += -lgen
--- a/usr/src/cmd/expr/expr.c	Thu Jul 15 13:02:24 2010 -0700
+++ b/usr/src/cmd/expr/expr.c	Thu Jul 15 13:45:49 2010 -0700
@@ -2,9 +2,8 @@
  * CDDL HEADER START
  *
  * The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License").  You may not use this file except in compliance
- * with the License.
+ * 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.
@@ -24,12 +23,9 @@
 
 
 /*
- * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 1988, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
 #include <stdlib.h>
 #include <regexpr.h>
 #include <locale.h>
@@ -58,11 +54,9 @@
 #define	REM 272
 #define	MCH 273
 #define	MATCH 274
-#ifdef  _iBCS2
-#define	SUBSTR 276
-#define	LENGTH 277
-#define	INDEX  278
-#endif  /* _iBCS2 */
+#define	SUBSTR 275
+#define	LENGTH 276
+#define	INDEX  277
 
 /* size of subexpression array */
 #define	MSIZE	LINE_MAX
@@ -88,9 +82,6 @@
 static int	Argi;
 static int noarg;
 static int paren;
-#ifdef  _iBCS2
-char    *sysv3_set;
-#endif  /* _iBCS2 */
 /*
  *	Array used to store subexpressions in regular expressions
  *	Only one subexpression allowed per regular expression currently
@@ -102,23 +93,17 @@
 	"|", "&", "+", "-", "*", "/", "%", ":",
 	"=", "==", "<", "<=", ">", ">=", "!=",
 	"match",
-#ifdef	_iBCS2
 	"substr", "length", "index",
-#endif	/* _iBCS2 */
 	"\0" };
 static	int op[] = {
 	OR, AND, ADD,  SUBT, MULT, DIV, REM, MCH,
 	EQ, EQ, LT, LEQ, GT, GEQ, NEQ,
-	MATCH
-#ifdef	_iBCS2
-, SUBSTR, LENGTH, INDEX
-#endif	/* _iBCS2 */
+	MATCH,
+	SUBSTR, LENGTH, INDEX
 	};
 static	int pri[] = {
-	1, 2, 3, 3, 3, 3, 3, 3, 4, 4, 5, 5, 5, 6, 7
-#ifdef	_iBCS2
-, 7, 7, 7
-#endif	/* _iBCS2 */
+	1, 2, 3, 3, 3, 3, 3, 3, 4, 4, 5, 5, 5, 6, 7,
+	7, 7, 7
 	};
 
 
@@ -339,7 +324,6 @@
 	return (rv);
 }
 
-#ifdef	_iBCS2
 char *
 substr(char *v, char *s, char *w)
 {
@@ -387,7 +371,6 @@
 	(void) strcpy(rv, ltoa(i));
 	return (rv);
 }
-#endif	/* _iBCS2 */
 
 static char *
 match(char *s, char *p)
@@ -612,11 +595,7 @@
 		return (r1);
 	}
 	ylex = yylex();
-#ifdef	_iBCS2
-	if (ylex > MCH && ((sysv3_set && ylex <= INDEX) || ylex <= MATCH)) {
-#else
-	if (ylex > MCH && ylex <= MATCH) {
-#endif	/* _iBCS2 */
+	if (ylex > MCH && ylex <= INDEX) {
 		if (Argi == temp) {
 			return (r1);
 		}
@@ -627,7 +606,6 @@
 			rb = expres(pri[op1-OR], 0);
 			ra = expres(pri[op1-OR], 0);
 			break;
-#ifdef	_iBCS2
 		case SUBSTR:
 			rc = expres(pri[op1-OR], 0);
 			rb = expres(pri[op1-OR], 0);
@@ -640,13 +618,11 @@
 			rb = expres(pri[op1-OR], 0);
 			ra = expres(pri[op1-OR], 0);
 			break;
-#endif	/* _iBCS2 */
 		}
 		switch (op1) {
 		case MATCH:
 			r1 = match(rb, ra);
 			break;
-#ifdef	_iBCS2
 		case SUBSTR:
 			r1 = substr(rc, rb, ra);
 			break;
@@ -656,7 +632,6 @@
 		case INDEX:
 			r1 = index(rb, ra);
 			break;
-#endif	/* _iBCS2 */
 		}
 		if (noarg == 1) {
 			return (r1);
@@ -711,9 +686,6 @@
 	noarg = 0;
 	paren = 0;
 	Av = argv;
-#ifdef	_iBCS2
-	sysv3_set = getenv("SYSV3");
-#endif	/* _iBCS2 */
 
 	(void) setlocale(LC_ALL, "");
 #if !defined(TEXT_DOMAIN)	/* Should be defined by cc -D */
--- a/usr/src/cmd/fs.d/Makefile	Thu Jul 15 13:02:24 2010 -0700
+++ b/usr/src/cmd/fs.d/Makefile	Thu Jul 15 13:45:49 2010 -0700
@@ -18,10 +18,8 @@
 #
 # CDDL HEADER END
 #
-# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
-# Use is subject to license terms.
+# Copyright (c) 1990, 2010, Oracle and/or its affiliates. All rights reserved.
 #
-# cmd/fs.d/Makefile
 
 # The filesystem independent utilities clri, fsdb, dcopy, labelit, and mkfs
 # are all built from the source file switchout.c. They are all then links
@@ -78,9 +76,6 @@
 SYMUSRBIN2USRSBIN=	$(USRBIN2USRSBIN:%=$(ROOTBIN)/%)
 SYMDEVNM=		$(ROOTUSRSBIN)/devnm
 
-# This flag is being added only for SCO (x86) compatibility
-df.o := CFLAGS += $(iBCS2FLAG)
-
 CPPFLAGS += -D_LARGEFILE64_SOURCE
 %.xpg4.o := CPPFLAGS += -DXPG4
 $(SPPROG) :=	LDLIBS += -lkstat
--- a/usr/src/cmd/fs.d/df.c	Thu Jul 15 13:02:24 2010 -0700
+++ b/usr/src/cmd/fs.d/df.c	Thu Jul 15 13:45:49 2010 -0700
@@ -210,9 +210,6 @@
 static bool_int		P_option;	/* Added for XCU4 compliance */
 static bool_int		Z_option;
 static bool_int		v_option;
-#ifdef	_iBCS2
-char			*sysv3_set;
-#endif /* _iBCS2 */
 static bool_int		a_option;
 static bool_int		b_option;
 static bool_int		e_option;
@@ -285,10 +282,6 @@
 
 	program_name = basename(argv[0]);
 
-#ifdef	_iBCS2
-	sysv3_set = getenv("SYSV3");
-#endif	/* _iBCS2 */
-
 	if (EQ(program_name, DEVNM_CMD))
 		do_devnm(argc, argv);
 
@@ -1572,13 +1565,7 @@
 strings_init(void)
 {
 	total_str = TRANSLATE("total");
-#ifdef	_iBCS2
-	/* ISC/SCO print i-nodes instead of files */
-	if (sysv3_set)
-		files_str = TRANSLATE("i-nodes");
-	else
-#endif	/* _iBCS2 */
-		files_str = TRANSLATE("files");
+	files_str = TRANSLATE("files");
 	blocks_str = TRANSLATE("blocks");
 	kilobytes_str = TRANSLATE("kilobytes");
 	strings_initialized = TRUE;
--- a/usr/src/cmd/fstyp/Makefile	Thu Jul 15 13:02:24 2010 -0700
+++ b/usr/src/cmd/fstyp/Makefile	Thu Jul 15 13:45:49 2010 -0700
@@ -19,8 +19,7 @@
 # CDDL HEADER END
 #
 #
-# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
-# Use is subject to license terms.
+# Copyright (c) 1990, 2010, Oracle and/or its affiliates. All rights reserved.
 #
 
 PROG=		fstyp
@@ -34,9 +33,6 @@
 
 CFLAGS += $(CCVERBOSE)
 
-# This flag is being added only for SCO (x86) compatibility  
-CFLAGS += $(iBCS2FLAG)
-
 .KEEP_STATE:
 
 all: $(PROG)
--- a/usr/src/cmd/sh/Makefile	Thu Jul 15 13:02:24 2010 -0700
+++ b/usr/src/cmd/sh/Makefile	Thu Jul 15 13:45:49 2010 -0700
@@ -33,9 +33,6 @@
 
 include ../Makefile.cmd
 
-# This flag is being added only for SCO (x86) compatibility  
-CFLAGS += $(iBCS2FLAG)
-
 #
 # for message cataloge
 #
--- a/usr/src/cmd/sh/echo.c	Thu Jul 15 13:02:24 2010 -0700
+++ b/usr/src/cmd/sh/echo.c	Thu Jul 15 13:45:49 2010 -0700
@@ -47,19 +47,7 @@
 	int	len;
 	wchar_t	wc;
 
-#ifdef	_iBCS2		/* SCO compatibility support */
-	struct namnod   *sysv3;
-	int	do_sysv3 = 0;
-
-	sysv3 = findnam("SYSV3");
-	if (sysv3 && (sysv3->namflg & (N_EXPORT | N_ENVNAM)))
-		do_sysv3 = 1;
-
-	/* Do the -n parsing if sysv3 is set or if ucb_builtsin is set */
-	if (ucb_builtins && !do_sysv3) {
-#else
 	if (ucb_builtins) {
-#endif /* _iBCS2 */
 
 		nflg = 0;
 		if (argc > 1 && argv[1][0] == '-' &&
@@ -88,17 +76,6 @@
 			prc_buff('\n');
 			exit(0);
 		}
-#ifdef  _iBCS2
-		if (do_sysv3) {
-			if (argc > 1 && argv[1][0] == '-' &&
-			    argv[1][1] == 'n' && !argv[1][2]) {
-				nflg++;
-				/* Step past the -n */
-				argc--;
-				argv++;
-			}
-		}
-#endif /* _iBCS2 */
 
 		for (i = 1; i <= argc; i++) {
 			sigchk();
@@ -163,11 +140,7 @@
 					continue;
 				}
 			}
-#ifdef	_iBCS2
-			/* Don't do if don't want newlines & out of args */
-			if (!(nflg && i == argc))
-#endif /* _iBCS2 */
-				prc_buff(i == argc? '\n': ' ');
+			prc_buff(i == argc? '\n': ' ');
 		}
 		exit(0);
 	}
--- a/usr/src/cmd/tar/Makefile	Thu Jul 15 13:02:24 2010 -0700
+++ b/usr/src/cmd/tar/Makefile	Thu Jul 15 13:45:49 2010 -0700
@@ -19,12 +19,8 @@
 # CDDL HEADER END
 #
 #
-# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
-# Use is subject to license terms.
+# Copyright (c) 1988, 2010, Oracle and/or its affiliates. All rights reserved.
 #
-# ident	"%Z%%M%	%I%	%E% SMI"
-#
-# cmd/tar/Makefile
 
 PROG= tar
 DEFAULTFILES= tar.dfl
@@ -42,9 +38,6 @@
 
 CFLAGS += $(CCVERBOSE)
 
-# This flag is being added only for SCO (x86) compatibility  
-CFLAGS += $(iBCS2FLAG)
-
 CPPFLAGS += -DEUC
 
 ROOTSYMLINK=	$(ROOTPROG)
--- a/usr/src/cmd/tar/tar.c	Thu Jul 15 13:02:24 2010 -0700
+++ b/usr/src/cmd/tar/tar.c	Thu Jul 15 13:45:49 2010 -0700
@@ -438,13 +438,8 @@
 static void doDirTimes(char *name, timestruc_t modTime);
 static void done(int n);
 static void dorep(char *argv[]);
-#ifdef	_iBCS2
-static void dotable(char *argv[], int cnt);
-static void doxtract(char *argv[], int cnt);
-#else
 static void dotable(char *argv[]);
 static void doxtract(char *argv[]);
-#endif
 static int tar_chdir(const char *path);
 static int is_directory(char *name);
 static int has_dot_dot(char *name);
@@ -494,10 +489,6 @@
 	const int filetype, const struct stat *, const dev_t, const char *);
 static unsigned int hash(char *str);
 
-#ifdef	_iBCS2
-static void initarg(char *argv[], char *file);
-static char *nextarg();
-#endif
 static blkcnt_t kcheck(char *kstr);
 static off_t bsrch(char *s, int n, off_t l, off_t h);
 static void onintr(int sig);
@@ -567,16 +558,12 @@
 
 static	char	*myname;
 static	int	checkflag = 0;
-#ifdef	_iBCS2
-static	int	Fileflag;
-char    *sysv3_env;
-#endif
 static	int	Xflag, Fflag, iflag, hflag, Bflag, Iflag;
 static	int	rflag, xflag, vflag, tflag, mt, svmt, cflag, mflag, pflag;
 static	int	uflag;
-static	int	eflag, errflag, qflag;
+static	int	errflag;
 static	int	oflag;
-static	int	bflag, kflag, Aflag;
+static	int	bflag, Aflag;
 static 	int	Pflag;			/* POSIX conformant archive */
 static	int	Eflag;			/* Allow files greater than 8GB */
 static	int	atflag;			/* traverse extended attributes */
@@ -628,7 +615,6 @@
 static	char	*Xfile;
 static	char	*usefile;
 static	char	tfname[1024];
-static	char	*Filefile;
 
 static	int	mulvol;		/* multi-volume option selected */
 static	blkcnt_t	blocklim; /* number of blocks to accept per volume */
@@ -730,10 +716,6 @@
 	pid_t		pid;
 	int		wstat;
 
-#ifdef	_iBCS2
-	int	tbl_cnt = 0;
-	sysv3_env = getenv("SYSV3");
-#endif
 	(void) setlocale(LC_ALL, "");
 #if !defined(TEXT_DOMAIN)	/* Should be defined by cc -D */
 #define	TEXT_DOMAIN "SYS_TEST"	/* Use this only if it weren't */
@@ -809,15 +791,7 @@
 			usefile = *argv++;
 			break;
 		case 'F':
-#ifdef	_iBCS2
-			if (sysv3_env) {
-				assert_string(*argv, gettext(
-				    "tar: 'F' requires a file name\n"));
-				Filefile = *argv++;
-				Fileflag++;
-			} else
-#endif	/*  _iBCS2 */
-				Fflag++;
+			Fflag++;
 			break;
 		case 'c':
 			cflag++;
@@ -891,16 +865,6 @@
 			bflag++;
 			nblock = bcheck(*argv++);
 			break;
-		case 'q':
-			qflag++;
-			break;
-		case 'k':
-			assert_string(*argv, gettext(
-			    "tar: size value must be specified with 'k' "
-			    "function modifier\n"));
-			kflag++;
-			blocklim = kcheck(*argv++);
-			break;
 		case 'n':		/* not a magtape (instead of 'k') */
 			NotTape++;	/* assume non-magtape */
 			break;
@@ -908,13 +872,7 @@
 			linkerrok++;
 			break;
 		case 'e':
-#ifdef	_iBCS2
-			/* If sysv3 IS set, don't be as verbose */
-			if (!sysv3_env)
-#endif	/* _iBCS2 */
-				errflag++;
-			eflag++;
-			break;
+			errflag++;
 		case 'o':
 			oflag++;
 			break;
@@ -953,14 +911,6 @@
 			usage();
 		}
 
-#ifdef	_iBCS2
-	if (Xflag && Fileflag) {
-		(void) fprintf(stderr, gettext(
-		"tar: specify only one of X or F.\n"));
-		usage();
-	}
-#endif	/*  _iBCS2 */
-
 	if (!rflag && !xflag && !tflag)
 		usage();
 	if ((rflag && xflag) || (xflag && tflag) || (rflag && tflag)) {
@@ -986,7 +936,7 @@
 		    "the global zone.\n"));
 		usage();
 	}
-	if (cflag && *argv == NULL && Filefile == NULL)
+	if (cflag && *argv == NULL)
 		fatal(gettext("Missing filenames"));
 	if (usefile == NULL)
 		fatal(gettext("device argument required"));
@@ -1166,14 +1116,6 @@
 					Iflag = 1;
 					argv[argc] = argv[argc+2];
 					build_table(include_tbl, argv[++argc]);
-#ifdef	_iBCS2
-					if (Fileflag) {
-						(void) fprintf(stderr, gettext(
-						"tar: only one of I or F.\n"));
-						usage();
-					}
-#endif	/*  _iBCS2 */
-
 				}
 			}
 		}
@@ -1199,18 +1141,9 @@
 				(void) printf(gettext(
 				    "Suppressing absolute pathnames.\n"));
 
-#ifdef	_iBCS2
-			doxtract(argv, tbl_cnt);
-#else
 			doxtract(argv);
-#endif
 		} else if (tflag)
-
-#ifdef	_iBCS2
-			dotable(argv, tbl_cnt);
-#else
 			dotable(argv);
-#endif
 	}
 	else
 		usage();
@@ -1224,39 +1157,19 @@
 static void
 usage(void)
 {
-
-#ifdef	_iBCS2
-	if (sysv3_env) {
-		(void) fprintf(stderr, gettext(
+	(void) fprintf(stderr, gettext(
 #if defined(O_XATTR)
 #if defined(_PC_SATTR_ENABLED)
-		"Usage: tar {c|r|t|u|x}[BDeEhilmnopPqTvw@/[0-7]][bfFk][X...] "
+	    "Usage: tar {c|r|t|u|x}[BDeEFhilmnopPTvw@/[0-7]][bf][X...] "
 #else
-		"Usage: tar {c|r|t|u|x}[BDeEhilmnopPqTvw@[0-7]][bfFk][X...] "
+	    "Usage: tar {c|r|t|u|x}[BDeEFhilmnopPTvw@[0-7]][bf][X...] "
 #endif	/* _PC_SATTR_ENABLED */
 #else
-		"Usage: tar {c|r|t|u|x}[BDeEhilmnopPqTvw[0-7]][bfFk][X...] "
+	    "Usage: tar {c|r|t|u|x}[BDeEFhilmnopPTvw[0-7]][bf][X...] "
 #endif	/* O_XATTR */
-		"[j|z|Z] "
-		"[blocksize] [tarfile] [filename] [size] [exclude-file...] "
-		"{file | -I include-file | -C directory file}...\n"));
-	} else
-#endif	/* _iBCS2 */
-	{
-		(void) fprintf(stderr, gettext(
-#if defined(O_XATTR)
-#if defined(_PC_SATTR_ENABLED)
-		"Usage: tar {c|r|t|u|x}[BDeEFhilmnopPqTvw@/[0-7]][bfk][X...] "
-#else
-		"Usage: tar {c|r|t|u|x}[BDeEFhilmnopPqTvw@[0-7]][bfk][X...] "
-#endif	/* _PC_SATTR_ENABLED */
-#else
-		"Usage: tar {c|r|t|u|x}[BDeEFhilmnopPqTvw[0-7]][bfk][X...] "
-#endif	/* O_XATTR */
-		"[j|z|Z] "
-		"[blocksize] [tarfile] [size] [exclude-file...] "
-		"{file | -I include-file | -C directory file}...\n"));
-	}
+	    "[j|z|Z] "
+	    "[blocksize] [tarfile] [size] [exclude-file...] "
+	    "{file | -I include-file | -C directory file}...\n"));
 	done(1);
 }
 
@@ -1274,7 +1187,6 @@
 	char wdir[PATH_MAX+2], tempdir[PATH_MAX+2], *parent;
 	char file[PATH_MAX*2], origdir[PATH_MAX+1];
 	FILE *fp = (FILE *)NULL;
-	FILE *ff = (FILE *)NULL;
 	int archtype;
 	int ret;
 
@@ -1352,19 +1264,6 @@
 			    K((blocklim - 1)), K(nblock));
 	}
 
-#ifdef	_iBCS2
-	if (Fileflag) {
-		if (Filefile != NULL) {
-			if ((ff = fopen(Filefile, "r")) == NULL)
-				vperror(0, "%s", Filefile);
-		} else {
-			(void) fprintf(stderr, gettext(
-			    "tar: F requires a file name.\n"));
-			usage();
-		}
-	}
-#endif	/*  _iBCS2 */
-
 	/*
 	 * Save the original directory before it gets
 	 * changed.
@@ -1376,15 +1275,8 @@
 
 	(void) strcpy(wdir, origdir);
 
-	while ((*argv || fp || ff) && !term) {
+	while ((*argv || fp) && !term) {
 		if (fp || (strcmp(*argv, "-I") == 0)) {
-#ifdef	_iBCS2
-			if (Fileflag) {
-				(void) fprintf(stderr, gettext(
-				"tar: only one of I or F.\n"));
-				usage();
-			}
-#endif	/*  _iBCS2 */
 			if (fp == NULL) {
 				if (*++argv == NULL)
 					fatal(gettext(
@@ -1402,14 +1294,6 @@
 					*p = 0;
 			}
 		} else if ((strcmp(*argv, "-C") == 0) && argv[1]) {
-#ifdef	_iBCS2
-			if (Fileflag) {
-				(void) fprintf(stderr, gettext(
-				"tar: only one of F or C\n"));
-				usage();
-			}
-#endif	/*  _iBCS2 */
-
 			if (tar_chdir(*++argv) < 0)
 				vperror(0, gettext(
 				    "can't change directories to %s"), *argv);
@@ -1417,18 +1301,6 @@
 				(void) getcwd(wdir, (sizeof (wdir)));
 			argv++;
 			continue;
-#ifdef	_iBCS2
-		} else if (Fileflag && (ff != NULL)) {
-			if ((fgets(file, PATH_MAX-1, ff)) == NULL) {
-				(void) fclose(ff);
-				ff = NULL;
-				continue;
-			} else {
-				cp = cp2 = file;
-				if (p = strchr(cp2, '\n'))
-					*p = 0;
-			}
-#endif	/*  _iBCS2 */
 		} else
 			cp = cp2 = strcpy(file, *argv++);
 
@@ -2348,16 +2220,6 @@
 
 		/* correctly handle end of volume */
 		while (mulvol && tapepos + blocks + 1 > blocklim) {
-			/* file won't fit */
-			if (eflag) {
-				if (blocks <= blocklim) {
-					newvol();
-					break;
-				}
-				(void) fprintf(stderr, gettext(
-				    "tar: Single file cannot fit on volume\n"));
-				done(3);
-			}
 			/* split if floppy has some room and file is large */
 			if (((blocklim - tapepos) >= EXTMIN) &&
 			    ((blocks + 1) >= blocklim/10)) {
@@ -2456,16 +2318,6 @@
 		tomodes(&stbuf);
 
 		while (mulvol && tapepos + blocks + 1 > blocklim) {
-			if (eflag) {
-				if (blocks <= blocklim) {
-					newvol();
-					break;
-				}
-				(void) fprintf(stderr, gettext(
-				    "tar: Single file cannot fit on volume\n"));
-				done(3);
-			}
-
 			if (((blocklim - tapepos) >= EXTMIN) &&
 			    ((blocks + 1) >= blocklim/10)) {
 				splitfile(longname, infile, name,
@@ -2518,16 +2370,6 @@
 		tomodes(&stbuf);
 
 		while (mulvol && tapepos + blocks + 1 > blocklim) {
-			if (eflag) {
-				if (blocks <= blocklim) {
-					newvol();
-					break;
-				}
-				(void) fprintf(stderr, gettext(
-				    "tar: Single file cannot fit on volume\n"));
-				done(3);
-			}
-
 			if (((blocklim - tapepos) >= EXTMIN) &&
 			    ((blocks + 1) >= blocklim/10)) {
 				splitfile(longname, infile, name,
@@ -2579,16 +2421,6 @@
 		tomodes(&stbuf);
 
 		while (mulvol && tapepos + blocks + 1 > blocklim) {
-			if (eflag) {
-				if (blocks <= blocklim) {
-					newvol();
-					break;
-				}
-				(void) fprintf(stderr, gettext(
-				    "tar: Single file cannot fit on volume\n"));
-				done(3);
-			}
-
 			if (((blocklim - tapepos) >= EXTMIN) &&
 			    ((blocks + 1) >= blocklim/10)) {
 				splitfile(longname, infile,
@@ -2997,11 +2829,7 @@
 #endif
 
 static void
-#ifdef	_iBCS2
-doxtract(char *argv[], int tbl_cnt)
-#else
 doxtract(char *argv[])
-#endif
 {
 	struct	stat	xtractbuf;	/* stat on file after extracting */
 	blkcnt_t blocks;
@@ -3044,18 +2872,8 @@
 
 	dumping = 0;	/* for newvol(), et al:  we are not writing */
 
-	/*
-	 * Count the number of files that are to be extracted
-	 */
 	Uid = getuid();
 
-#ifdef	_iBCS2
-	initarg(argv, Filefile);
-	while (nextarg() != NULL)
-		++fcnt;
-	fcnt += tbl_cnt;
-#endif	/*  _iBCS2 */
-
 	for (;;) {
 		convflag = 0;
 		symflag = 0;
@@ -3732,7 +3550,8 @@
 		}
 
 		if (!oflag)
-		    resugname(dirfd, comp, symflag); /* set file ownership */
+			/* set file ownership */
+			resugname(dirfd, comp, symflag);
 
 		if (pflag && newfile == TRUE && !dir &&
 		    (dblock.dbuf.typeflag == '0' ||
@@ -3936,7 +3755,7 @@
 	if (fcnt > xcnt) {
 		(void) fprintf(stderr,
 		    gettext("tar: %d file(s) not extracted\n"),
-		fcnt-xcnt);
+		    fcnt-xcnt);
 		Errflg = 1;
 	}
 }
@@ -4224,15 +4043,10 @@
 }
 
 static void
-#ifdef	_iBCS2
-dotable(char *argv[], int tbl_cnt)
-#else
 dotable(char *argv[])
-#endif
-
-{
-	int tcnt;			/* count # files tabled */
-	int fcnt;			/* count # files in argv list */
+{
+	int tcnt = 0;			/* count # files tabled */
+	int fcnt = 0;			/* count # files in argv list */
 	char *namep, *dirp, *comp;
 	int want;
 	char aclchar = ' ';			/* either blank or '+' */
@@ -4249,17 +4063,6 @@
 		nblock = 1;
 #endif
 	}
-	/*
-	 * Count the number of files that are to be tabled
-	 */
-	fcnt = tcnt = 0;
-
-#ifdef	_iBCS2
-	initarg(argv, Filefile);
-	while (nextarg() != NULL)
-		++fcnt;
-	fcnt += tbl_cnt;
-#endif	/*  _iBCS2 */
 
 	for (;;) {
 
@@ -5474,118 +5277,6 @@
 	(void) memcpy(dst, src, TBLOCK);
 }
 
-#ifdef	_iBCS2
-/*
- *	initarg -- initialize things for nextarg.
- *
- *	argv		filename list, a la argv.
- *	filefile	name of file containing filenames.  Unless doing
- *		a create, seeks must be allowable (e.g. no named pipes).
- *
- *	- if filefile is non-NULL, it will be used first, and argv will
- *	be used when the data in filefile are exhausted.
- *	- otherwise argv will be used.
- */
-static char **Cmdargv = NULL;
-static FILE *FILEFile = NULL;
-static long seekFile = -1;
-static char *ptrtoFile, *begofFile, *endofFile;
-
-static	void
-initarg(char *argv[], char *filefile)
-{
-	struct stat statbuf;
-	char *p;
-	int nbytes;
-
-	Cmdargv = argv;
-	if (filefile == NULL)
-		return;		/* no -F file */
-	if (FILEFile != NULL) {
-		/*
-		 * need to REinitialize
-		 */
-		if (seekFile != -1)
-			(void) fseek(FILEFile, seekFile, 0);
-		ptrtoFile = begofFile;
-		return;
-	}
-	/*
-	 * first time initialization
-	 */
-	if ((FILEFile = fopen(filefile, "r")) == NULL)
-		fatal(gettext("cannot open (%s)"), filefile);
-	(void) fstat(fileno(FILEFile), &statbuf);
-	if ((statbuf.st_mode & S_IFMT) != S_IFREG) {
-		(void) fprintf(stderr, gettext(
-		    "tar: %s is not a regular file\n"), filefile);
-		(void) fclose(FILEFile);
-		done(1);
-	}
-	ptrtoFile = begofFile = endofFile;
-	seekFile = 0;
-	if (!xflag)
-		return;		/* the file will be read only once anyway */
-	nbytes = statbuf.st_size;
-	while ((begofFile = calloc(nbytes, sizeof (char))) == NULL)
-		nbytes -= 20;
-	if (nbytes < 50) {
-		free(begofFile);
-		begofFile = endofFile;
-		return;		/* no room so just do plain reads */
-	}
-	if (fread(begofFile, 1, nbytes, FILEFile) != nbytes)
-		fatal(gettext("could not read %s"), filefile);
-	ptrtoFile = begofFile;
-	endofFile = begofFile + nbytes;
-	for (p = begofFile; p < endofFile; ++p)
-		if (*p == '\n')
-			*p = '\0';
-	if (nbytes != statbuf.st_size)
-		seekFile = nbytes + 1;
-	else
-		(void) fclose(FILEFile);
-}
-
-/*
- *	nextarg -- get next argument of arglist.
- *
- *	The argument is taken from wherever is appropriate.
- *
- *	If the 'F file' function modifier has been specified, the argument
- *	will be taken from the file, unless EOF has been reached.
- *	Otherwise the argument will be taken from argv.
- *
- *	WARNING:
- *	  Return value may point to static data, whose contents are over-
- *	  written on each call.
- */
-static	char  *
-nextarg(void)
-{
-	static char nameFile[PATH_MAX + 1];
-	int n;
-	char *p;
-
-	if (FILEFile) {
-		if (ptrtoFile < endofFile) {
-			p = ptrtoFile;
-			while (*ptrtoFile)
-				++ptrtoFile;
-			++ptrtoFile;
-			return (p);
-		}
-		if (fgets(nameFile, PATH_MAX + 1, FILEFile) != NULL) {
-			n = strlen(nameFile);
-			if (n > 0 && nameFile[n-1] == '\n')
-				nameFile[n-1] = '\0';
-			return (nameFile);
-		}
-	}
-	return (*Cmdargv++);
-}
-#endif	/*  _iBCS2 */
-
 /*
  * kcheck()
  *	- checks the validity of size values for non-tape devices
@@ -5608,10 +5299,9 @@
 		(void) fprintf(stderr, gettext(
 		    "tar: sizes below %luK not supported (%" FMT_blkcnt_t
 		    ").\n"), (ulong_t)MINSIZE, kval);
-		if (!kflag)
-			(void) fprintf(stderr, gettext(
-			    "bad size entry for %s in %s.\n"),
-			    archive, DEF_FILE);
+		(void) fprintf(stderr, gettext(
+		    "bad size entry for %s in %s.\n"),
+		    archive, DEF_FILE);
 		done(1);
 	}
 	mulvol++;
--- a/usr/src/cmd/uname/Makefile	Thu Jul 15 13:02:24 2010 -0700
+++ b/usr/src/cmd/uname/Makefile	Thu Jul 15 13:45:49 2010 -0700
@@ -2,9 +2,8 @@
 # CDDL HEADER START
 #
 # The contents of this file are subject to the terms of the
-# Common Development and Distribution License, Version 1.0 only
-# (the "License").  You may not use this file except in compliance
-# with the License.
+# 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.
@@ -20,10 +19,7 @@
 # CDDL HEADER END
 #
 #
-# Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
-# Use is subject to license terms.
-#
-# ident	"%Z%%M%	%I%	%E% SMI"
+# Copyright (c) 1990, 2010, Oracle and/or its affiliates. All rights reserved.
 #
 
 PROG=		uname
@@ -33,9 +29,6 @@
 
 CFLAGS += $(CCVERBOSE)
 
-# This flag is being added only for SCO (x86) compatibility  
-CFLAGS += $(iBCS2FLAG)
-
 .KEEP_STATE:
 
 all: $(ROOTFS_PROG)
--- a/usr/src/cmd/uname/uname.c	Thu Jul 15 13:02:24 2010 -0700
+++ b/usr/src/cmd/uname/uname.c	Thu Jul 15 13:45:49 2010 -0700
@@ -2,9 +2,8 @@
  * CDDL HEADER START
  *
  * The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License").  You may not use this file except in compliance
- * with the License.
+ * 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.
@@ -20,8 +19,7 @@
  * CDDL HEADER END
  */
 /*
- * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 1988, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
@@ -37,8 +35,6 @@
  * contributors.
  */
 
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
 #define	__EXTENSIONS__
 #include <sys/types.h>
 #include <stdio.h>
@@ -55,10 +51,6 @@
 
 static void usage(void);
 
-#ifdef	_iBCS2
-char *sysv3_env;
-#endif	/* _iBCS2 */
-
 /* ARGSUSED */
 int
 main(int argc, char *argv[], char *envp[])
@@ -69,12 +61,6 @@
 	int pflg = 0, iflg = 0, Sflg = 0;
 	int errflg = 0, optlet;
 	int Xflg = 0;
-#ifdef	_iBCS2
-	char *ptr;
-	char *newptr;
-	int cnt;
-	int done;
-#endif /* _iBCS2 */
 	struct utsname  unstr, *un;
 	char fmt_string[] = " %.*s";
 	char *fs = &fmt_string[1];
@@ -84,73 +70,6 @@
 	un = &unstr;
 	(void) uname(un);
 
-#ifdef	_iBCS2
-	/* Find out if user wants SYS V behavior */
-	if (sysv3_env = getenv("SYSV3")) {
-
-		/*
-		 * Now figure out what values are encoded in sysv3
-		 * Tokens are comma separated:
-		 * os, sysname, nodename, release, version, machtype
-		 */
-		cnt = 0;
-		ptr = sysv3_env;
-		done = 0;
-		while (!done && *ptr) {
-			if ((newptr = strchr(ptr, ',')) == (char *)0)
-				done = 1;
-			else
-				/* Null out the comma */
-				*newptr = '\0';
-
-			/* If ptr == newptr, there was no data for this token */
-			if (ptr == newptr) {
-				/* Step over null token and go around again */
-				ptr = newptr + 1;
-				cnt ++;
-				continue;
-			}
-
-			switch (cnt++) {
-			case 0:
-				/* Ignore the os token for now. */
-				break;
-			case 1:
-				strcpy(un->sysname, ptr);
-				break;
-			case 2:
-				strcpy(un->nodename, ptr);
-				break;
-			case 3:
-				strcpy(un->release, ptr);
-				break;
-			case 4:
-				strcpy(un->version, ptr);
-				break;
-			case 5:
-				strcpy(un->machine, ptr);
-				break;
-			default:
-				done = 1;
-				break;
-			}
-			ptr = newptr + 1;
-		}
-
-		/*
-		 * If SYSV3 is set to an empty string, fill in the structure
-		 * with reasonable default values.
-		 */
-		if (!cnt) {
-			strcpy(un->sysname, un->nodename);
-			strcpy(un->release, "3.2");
-			strcpy(un->version, "2");
-			strcpy(un->machine, "i386");
-		}
-	}
-
-#endif /* _iBCS2 */
-
 	(void) setlocale(LC_ALL, "");
 #if !defined(TEXT_DOMAIN)
 #define	TEXT_DOMAIN "SYS_TEST"
@@ -161,17 +80,8 @@
 		switch (optlet) {
 		case 'a':
 			sflg++; nflg++; rflg++; vflg++; mflg++;
-#ifdef	_iBCS2
-			/*
-			 * If compat mode, don't print things ISC
-			 * doesn't have
-			 */
-			if (!sysv3_env)
-#endif /* _iBCS2 */
-			{
-				pflg++;
-				iflg++;
-			}
+			pflg++;
+			iflg++;
 			break;
 		case 's':
 			sflg++;
@@ -211,7 +121,7 @@
 
 	if ((Sflg > 1) ||
 	    (Sflg && (sflg || nflg || rflg || vflg || mflg || pflg || iflg ||
-		Xflg))) {
+	    Xflg))) {
 		usage();
 	}
 
@@ -221,15 +131,15 @@
 
 		if (len > SYS_NMLN - 1) {
 			(void) fprintf(stderr, gettext(
-				"uname: name must be <= %d letters\n"),
-				SYS_NMLN-1);
+			    "uname: name must be <= %d letters\n"),
+			    SYS_NMLN-1);
 			exit(1);
 		}
 		if (sysinfo(SI_SET_HOSTNAME, nodename, len) < 0) {
 			int err = errno;
 			(void) fprintf(stderr, gettext(
-				"uname: error in setting name: %s\n"),
-				strerror(err));
+			    "uname: error in setting name: %s\n"),
+			    strerror(err));
 			exit(1);
 		}
 		return (0);
@@ -264,7 +174,7 @@
 	if (pflg) {
 		if (sysinfo(SI_ARCHITECTURE, procbuf, sizeof (procbuf)) == -1) {
 			(void) fprintf(stderr, gettext(
-				"uname: sysinfo failed\n"));
+			    "uname: sysinfo failed\n"));
 			exit(1);
 		}
 		(void) fprintf(stdout, fs, strlen(procbuf), procbuf);
@@ -273,7 +183,7 @@
 	if (iflg) {
 		if (sysinfo(SI_PLATFORM, procbuf, sizeof (procbuf)) == -1) {
 			(void) fprintf(stderr, gettext(
-				"uname: sysinfo failed\n"));
+			    "uname: sysinfo failed\n"));
 			exit(1);
 		}
 		(void) fprintf(stdout, fs, strlen(procbuf), procbuf);
@@ -314,8 +224,8 @@
 {
 	{
 		(void) fprintf(stderr, gettext(
-			"usage:	uname [-snrvmapiX]\n"
-			"	uname [-S system_name]\n"));
+		    "usage:	uname [-snrvmapiX]\n"
+		    "	uname [-S system_name]\n"));
 	}
 	exit(1);
 }