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;)
-------------- next part --------------
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':