Index: c/src/exec/libcsupport/src/utsname.c
===================================================================
--- c/src/exec/libcsupport/src/utsname.c	(revision 165fe39ff2a08d0212da586a3e3802cdc69b0b1d)
+++ c/src/exec/libcsupport/src/utsname.c	(revision 31473b7107617f08cea7d7efdf5e0cfc1dfa8e83)
@@ -6,8 +6,13 @@
 #include <string.h>
 
+#include <errno.h>
 #include <sys/utsname.h>
+
 
 #include <rtems/system.h>
 #include <rtems/score/object.h>
+#include <rtems/sptables.h>
+
+#include <rtems/posix/seterr.h>
 
 /*PAGE
@@ -28,29 +33,17 @@
   */
 
+  if ( !name )
+    set_errno_and_return_minus_one( EFAULT );
+
   strcpy( name->sysname, "RTEMS" );
 
-  sprintf( name->nodename, "Node %d\n", _Objects_Local_node );
+  sprintf( name->nodename, "Node %d", _Objects_Local_node );
 
-  /* XXX release string is in BAD format for this routine!!! */ 
-  strcpy( name->release, "4.0.0+" );
+  strcpy( name->release, RTEMS_VERSION );
+
+  strcpy( name->version, "" );
  
-  /* XXX does this have any meaning for RTEMS */
-   
-  strcpy( name->release, "" );
-
   sprintf( name->machine, "%s/%s", CPU_NAME, CPU_MODEL_NAME );
 
   return 0;
 }
-
-/*PAGE
- *
- *  4.5.2 Get Process Times, P1003.1b-1993, p. 92
- */
-
-clock_t times(
-  struct tms   *buffer
-)
-{
-  return POSIX_NOT_IMPLEMENTED();
-}
Index: c/src/exec/posix/src/utsname.c
===================================================================
--- c/src/exec/posix/src/utsname.c	(revision 165fe39ff2a08d0212da586a3e3802cdc69b0b1d)
+++ c/src/exec/posix/src/utsname.c	(revision 31473b7107617f08cea7d7efdf5e0cfc1dfa8e83)
@@ -6,8 +6,13 @@
 #include <string.h>
 
+#include <errno.h>
 #include <sys/utsname.h>
+
 
 #include <rtems/system.h>
 #include <rtems/score/object.h>
+#include <rtems/sptables.h>
+
+#include <rtems/posix/seterr.h>
 
 /*PAGE
@@ -28,29 +33,17 @@
   */
 
+  if ( !name )
+    set_errno_and_return_minus_one( EFAULT );
+
   strcpy( name->sysname, "RTEMS" );
 
-  sprintf( name->nodename, "Node %d\n", _Objects_Local_node );
+  sprintf( name->nodename, "Node %d", _Objects_Local_node );
 
-  /* XXX release string is in BAD format for this routine!!! */ 
-  strcpy( name->release, "4.0.0+" );
+  strcpy( name->release, RTEMS_VERSION );
+
+  strcpy( name->version, "" );
  
-  /* XXX does this have any meaning for RTEMS */
-   
-  strcpy( name->release, "" );
-
   sprintf( name->machine, "%s/%s", CPU_NAME, CPU_MODEL_NAME );
 
   return 0;
 }
-
-/*PAGE
- *
- *  4.5.2 Get Process Times, P1003.1b-1993, p. 92
- */
-
-clock_t times(
-  struct tms   *buffer
-)
-{
-  return POSIX_NOT_IMPLEMENTED();
-}
Index: c/src/lib/libc/utsname.c
===================================================================
--- c/src/lib/libc/utsname.c	(revision 165fe39ff2a08d0212da586a3e3802cdc69b0b1d)
+++ c/src/lib/libc/utsname.c	(revision 31473b7107617f08cea7d7efdf5e0cfc1dfa8e83)
@@ -6,8 +6,13 @@
 #include <string.h>
 
+#include <errno.h>
 #include <sys/utsname.h>
+
 
 #include <rtems/system.h>
 #include <rtems/score/object.h>
+#include <rtems/sptables.h>
+
+#include <rtems/posix/seterr.h>
 
 /*PAGE
@@ -28,29 +33,17 @@
   */
 
+  if ( !name )
+    set_errno_and_return_minus_one( EFAULT );
+
   strcpy( name->sysname, "RTEMS" );
 
-  sprintf( name->nodename, "Node %d\n", _Objects_Local_node );
+  sprintf( name->nodename, "Node %d", _Objects_Local_node );
 
-  /* XXX release string is in BAD format for this routine!!! */ 
-  strcpy( name->release, "4.0.0+" );
+  strcpy( name->release, RTEMS_VERSION );
+
+  strcpy( name->version, "" );
  
-  /* XXX does this have any meaning for RTEMS */
-   
-  strcpy( name->release, "" );
-
   sprintf( name->machine, "%s/%s", CPU_NAME, CPU_MODEL_NAME );
 
   return 0;
 }
-
-/*PAGE
- *
- *  4.5.2 Get Process Times, P1003.1b-1993, p. 92
- */
-
-clock_t times(
-  struct tms   *buffer
-)
-{
-  return POSIX_NOT_IMPLEMENTED();
-}
Index: cpukit/libcsupport/src/utsname.c
===================================================================
--- cpukit/libcsupport/src/utsname.c	(revision 165fe39ff2a08d0212da586a3e3802cdc69b0b1d)
+++ cpukit/libcsupport/src/utsname.c	(revision 31473b7107617f08cea7d7efdf5e0cfc1dfa8e83)
@@ -6,8 +6,13 @@
 #include <string.h>
 
+#include <errno.h>
 #include <sys/utsname.h>
+
 
 #include <rtems/system.h>
 #include <rtems/score/object.h>
+#include <rtems/sptables.h>
+
+#include <rtems/posix/seterr.h>
 
 /*PAGE
@@ -28,29 +33,17 @@
   */
 
+  if ( !name )
+    set_errno_and_return_minus_one( EFAULT );
+
   strcpy( name->sysname, "RTEMS" );
 
-  sprintf( name->nodename, "Node %d\n", _Objects_Local_node );
+  sprintf( name->nodename, "Node %d", _Objects_Local_node );
 
-  /* XXX release string is in BAD format for this routine!!! */ 
-  strcpy( name->release, "4.0.0+" );
+  strcpy( name->release, RTEMS_VERSION );
+
+  strcpy( name->version, "" );
  
-  /* XXX does this have any meaning for RTEMS */
-   
-  strcpy( name->release, "" );
-
   sprintf( name->machine, "%s/%s", CPU_NAME, CPU_MODEL_NAME );
 
   return 0;
 }
-
-/*PAGE
- *
- *  4.5.2 Get Process Times, P1003.1b-1993, p. 92
- */
-
-clock_t times(
-  struct tms   *buffer
-)
-{
-  return POSIX_NOT_IMPLEMENTED();
-}
