[ksh93-integration-discuss] Re: uname
April Chin
April.Chin at eng.sun.com
Fri May 12 16:17:45 PDT 2006
> X-Original-To: ksh93-integration-discuss at opensolaris.org
> Delivered-To: ksh93-integration-discuss at opensolaris.org
> Date: Fri, 12 May 2006 17:50:22 -0400 (EDT)
> From: David Korn <dgk at research.att.com>
> Mime-Version: 1.0
> Content-Transfer-Encoding: 7bit
> To: ksh93-integration-discuss at opensolaris.org
> Subject: [ksh93-integration-discuss] Re: uname
> X-BeenThere: ksh93-integration-discuss at opensolaris.org
> X-Mailman-Version: 2.1.4
> List-Id: Korn Shell 93 integration/migration project discussion
<ksh93-integration-discuss.opensolaris.org>
> List-Unsubscribe:
<http://mail.opensolaris.org/mailman/listinfo/ksh93-integration-discuss>,
<mailto:ksh93-integration-discuss-request at opensolaris.org?subject=unsubscribe>
> List-Archive:
<http://mail.opensolaris.org/pipermail/ksh93-integration-discuss>
> List-Post: <mailto:ksh93-integration-discuss at opensolaris.org>
> List-Help:
<mailto:ksh93-integration-discuss-request at opensolaris.org?subject=help>
> List-Subscribe:
<http://mail.opensolaris.org/mailman/listinfo/ksh93-integration-discuss>,
<mailto:ksh93-integration-discuss-request at opensolaris.org?subject=subscribe>
>
>
> > Hi!
> >
> > ----
> >
> > While looking for incompatibilities between Solaris commands and ksh93's
> > builtin commands I found a difference in the output of "uname -a"
> >
> > The difference looks like this:
> > -- snip --
> > # use native Solaris "uname"
> > $ /usr/bin/uname -a
> > SunOS s10test001 5.10 Generic_118844-26 i86pc i386 i86pc
> > $ builtin | fgrep uname
> > /bin/uname
> > # use ksh93 builtin "uname"
> > $ export PATH=/bin:$PATH
> > $ uname -a
> > SunOS s10test001 5.10 Generic_118844-26 i86pc
> > -- snip --
> > Neither /usr/xpg4/bin/ nor /usr/xpg6/bin/ contain a "uname" variant so I
> > assume there is no standard, right ?
> >
> > The builtin "uname" results the following help:
> > -- snip --
> > uname --help
> > Usage: uname [ options ]
> > OPTIONS
> > -a, --all Equivalent to -snrvm.
> > -d, --domain The domain name returned by getdomainname(2).
> > -f, --list List all sysinfo(2) names and values, one per line.
> > -h, --host-id|id
> > The host id in hex.
> > -i, --implementation|platform
> > The hardware implementation (platform); this is
> > --host-id on some systems.
> > -m, --machine The name of the hardware type the system is running
> > on.
> > -n, --nodename The hostname or nodename.
> > -p, --processor The name of the processor instruction set
> > architecture.
> > -r, --release The release level of the operating system
> > implementation.
> > -s, --os|system|sysname
> > The operating system name. This is the default.
> > -v, --version The operating system implementation version level.
> > -A, --everything
> > Equivalent to -snrvmphCdtbiRX.
> > -R, --extended-release
> > The extended release name.
> > -S, --sethost=name
> > Set the hostname or nodename to name. No output is
> > written to standard output.
> > -- snip --
> >
> > Calling the Solaris /usr/bin/uname command with the "-snrvm" option
> > listed in the builtin commands help returns the same output then:
> > -- snip --
> > % /usr/bin/uname -snrvm
> > SunOS s10test001 5.10 Generic_118844-26 i86pc
> > -- snip --
> >
> > Based on that it simply seems that the Solaris command's "-a" option is
> > the equivalent to "uname -snrvmpi":
> > -- snip --
> > % /usr/bin/uname -snrvmpi
> > SunOS s10test001 5.10 Generic_118844-26 i86pc i386 i86pc
> > % /usr/bin/uname -a
> > SunOS s10test001 5.10 Generic_118844-26 i86pc i386 i86pc
> > % uname -snrvmpi
> > SunOS s10test001 5.10 Generic_118844-26 i86pc i386 i86pc
> > -- snip --
> >
> > David/Glenn:
> > I have attached a patch
> > ("ksh93_solaris_uname_all_output_fix001.diff.txt") which syncs the
> > output of the ksh93 builtin command with the Solaris version in
> > /usr/bin/ - is that change Ok for you ?
> >
> > ----
> >
> > Bye,
> > Roland
> >
> > --
> > __ . . __
> > (o.\ \/ /.o) roland.mainz at nrubsig.org
> > \__\/\/__/ MPEG specialist, C&&JAVA&&Sun&&Unix programmer
> > /O /==\ O\ TEL +49 641 7950090
> > (;O/ \/ \O;)
> > Index: libcmd/common/uname.c
> > ===================================================================
> > --- libcmd/common/uname.c (revision 222)
> > +++ libcmd/common/uname.c (working copy)
> > @@ -43,7 +43,7 @@
> > " \bgetconf\b(1), a pre-existing \astandard\a interface, provides"
> > " access to the same information; do vendors read standards or just"
> > " worry about making new ones?]"
> > -"[a:all?Equivalent to \b-snrvm\b.]"
> > +"[a:all?Equivalent to \b-snrvmpi\b.]"
> > "[d:domain?The domain name returned by \agetdomainname\a(2).]"
> > "[f:list?List all \bsysinfo\b(2) names and values, one per line.]"
> > "[h:host-id|id?The host id in hex.]"
> > @@ -185,16 +185,16 @@
> > #define OPT_release (1<<2)
> > #define OPT_version (1<<3)
> > #define OPT_machine (1<<4)
> > +#define OPT_processor (1<<5)
> > +#define OPT_implementation (1<<6)
> >
> > -#define OPT_ALL 5
> > +#define OPT_ALL 7
> >
> > -#define OPT_processor (1<<5)
> > -#define OPT_hostid (1<<6)
> > -#define OPT_vendor (1<<7)
> > -#define OPT_domain (1<<8)
> > -#define OPT_machine_type (1<<9)
> > -#define OPT_base (1<<10)
> > -#define OPT_implementation (1<<11)
> > +#define OPT_hostid (1<<7)
> > +#define OPT_vendor (1<<8)
> > +#define OPT_domain (1<<9)
> > +#define OPT_machine_type (1<<10)
> > +#define OPT_base (1<<11)
> > #define OPT_extended_release (1<<12)
> > #define OPT_extra (1<<13)
> >
> > @@ -256,7 +256,7 @@
> > {
> > switch (optget(argv, usage))
> > {
> > - case 'a':
> > + case 'a': /* -snrvmpi */
> > flags |= OPT_all|((1L<<OPT_ALL)-1);
> > continue;
> > case 'b':
> >
> >
>
> The uname utility is defined by the POSIX standard which says that
> -a is equivalent to mnrsv.
POSIX also says that additional implementation-defined symbols may
be written at the end of the output but before the newline,
so although Solaris uname includes -nmrsv output followed
by Solaris uname -p and -i output, it is still POSIX conforming.
The conformance tests allow for additional text after
the required uname -a output.
--April
>
> Since ksh93 is POSIX conforming, it cannot chaange this behavior
> and still be conforming.
>
> If solaris has a non-conforming uname that they must maintain,
> then there are two options.
>
> 1. Create a sun universe and make this the default.
> getconf UNIVERSE -- sun
> will set the UNIVERSE to sun but commands like cat and echo
> need to be patched so that att and ucb universes are also
> conforming.
>
> 2. Do you build uname into ksh93 and put it in a PATH that
> will be used by people who want ast conformance.
>
>
>
> David Korn
> dgk at research.att.com
> _______________________________________________
> ksh93-integration-discuss mailing list
> ksh93-integration-discuss at opensolaris.org
> http://mail.opensolaris.org/mailman/listinfo/ksh93-integration-discuss
More information about the ksh93-integration-discuss
mailing list