Index: freebsd-userspace/Makefile
===================================================================
--- freebsd-userspace/Makefile	(revision e9aaadb911140e21c79b621ce63f1f5991498d3d)
+++ freebsd-userspace/Makefile	(revision 0fa7dabe89f31a61899f1fd2527e1e89a9fdf0d4)
@@ -143,4 +143,5 @@
 C_FILES += lib/libutil/expand_number.c
 C_FILES += lib/libutil/humanize_number.c
+C_FILES += lib/libutil/trimdomain.c
 
 # libipsec files
Index: freebsd-userspace/commands/usr.bin/netstat/if.c
===================================================================
--- freebsd-userspace/commands/usr.bin/netstat/if.c	(revision e9aaadb911140e21c79b621ce63f1f5991498d3d)
+++ freebsd-userspace/commands/usr.bin/netstat/if.c	(revision 0fa7dabe89f31a61899f1fd2527e1e89a9fdf0d4)
@@ -399,8 +399,10 @@
 #endif
 
+#ifndef __rtems__
 			case AF_APPLETALK:
 				printf("atalk:%-12.12s ",atalk_print(sa,0x10) );
 				printf("%-11.11s  ",atalk_print(sa,0x0b) );
 				break;
+#endif
 			case AF_LINK:
 				{
@@ -711,4 +713,5 @@
 	if ((noutputs != 0) && (--noutputs == 0))
 		exit(0);
+#ifndef __rtems__
 	oldmask = sigblock(sigmask(SIGALRM));
 	while (!signalled)
@@ -716,4 +719,7 @@
 	signalled = NO;
 	sigsetmask(oldmask);
+#else
+	#warning "Add BSD Signals wrapper"
+#endif
 	line++;
 	first = 0;
Index: freebsd-userspace/commands/usr.bin/netstat/main.c
===================================================================
--- freebsd-userspace/commands/usr.bin/netstat/main.c	(revision e9aaadb911140e21c79b621ce63f1f5991498d3d)
+++ freebsd-userspace/commands/usr.bin/netstat/main.c	(revision 0fa7dabe89f31a61899f1fd2527e1e89a9fdf0d4)
@@ -70,7 +70,5 @@
 #include <err.h>
 #include <errno.h>
-#ifndef __rtems__
 #include <kvm.h>
-#endif
 #include <limits.h>
 #include <netdb.h>
@@ -285,4 +283,5 @@
 #endif
 
+#ifndef __rtems__
 struct protox atalkprotox[] = {
 	{ N_DDPCB,	N_DDPSTAT,	1,	atalkprotopr,
@@ -291,4 +290,5 @@
 	  NULL,		NULL,		NULL,	0,	0 }
 };
+#endif
 #ifdef NETGRAPH
 struct protox netgraphprotox[] = {
@@ -323,5 +323,9 @@
 					 ipxprotox,
 #endif
+#ifndef __rtems__
 					 atalkprotox, NULL };
+#else
+				};
+#endif
 
 static void printproto(struct protox *, const char *);
@@ -330,7 +334,5 @@
 static struct protox *knownname(const char *);
 
-#ifndef __rtems__
 static kvm_t *kvmd;
-#endif
 static char *nlistf = NULL, *memf = NULL;
 
@@ -529,5 +531,4 @@
 #endif
 
-#ifndef __rtems__
 	/*
 	 * Discard setgid privileges if not the running kernel so that bad
@@ -552,5 +553,4 @@
 		exit(0);
 	}
-#endif
 #if 0
 	/*
@@ -567,7 +567,5 @@
 	 */
 #endif
-#ifndef __rtems__
 	kread(0, NULL, 0);
-#endif
 	if (iflag && !sflag) {
 		intpr(interval, nl[N_IFNET].n_value, NULL);
@@ -626,7 +624,9 @@
 	}
 #endif /* IPX */
+#ifndef __rtems__
 	if (af == AF_APPLETALK || af == AF_UNSPEC)
 		for (tp = atalkprotox; tp->pr_name; tp++)
 			printproto(tp, tp->pr_name);
+#endif
 #ifdef NETGRAPH
 	if (af == AF_NETGRAPH || af == AF_UNSPEC)
@@ -634,7 +634,9 @@
 			printproto(tp, tp->pr_name);
 #endif /* NETGRAPH */
+#ifndef __rtems__
 	if ((af == AF_UNIX || af == AF_UNSPEC) && !sflag)
 		unixpr(nl[N_UNP_COUNT].n_value, nl[N_UNP_GENCNT].n_value,
 		    nl[N_UNP_DHEAD].n_value, nl[N_UNP_SHEAD].n_value);
+#endif
 	exit(0);
 }
@@ -704,4 +706,8 @@
 }
 
+#ifdef __rtems__
+#define _POSIX2_LINE_MAX 128
+#endif
+
 #ifndef __rtems__
 /*
Index: freebsd-userspace/commands/usr.bin/netstat/mbuf.c
===================================================================
--- freebsd-userspace/commands/usr.bin/netstat/mbuf.c	(revision e9aaadb911140e21c79b621ce63f1f5991498d3d)
+++ freebsd-userspace/commands/usr.bin/netstat/mbuf.c	(revision 0fa7dabe89f31a61899f1fd2527e1e89a9fdf0d4)
@@ -57,7 +57,5 @@
 
 #include <err.h>
-#ifndef __rtems__
 #include <kvm.h>
-#endif
 #include <memstat.h>
 #include <stdint.h>
@@ -120,4 +118,6 @@
 			goto out;
 		}
+#else
+		;
 #endif
 	}
Index: freebsd-userspace/commands/usr.bin/netstat/netstat.h
===================================================================
--- freebsd-userspace/commands/usr.bin/netstat/netstat.h	(revision e9aaadb911140e21c79b621ce63f1f5991498d3d)
+++ freebsd-userspace/commands/usr.bin/netstat/netstat.h	(revision 0fa7dabe89f31a61899f1fd2527e1e89a9fdf0d4)
@@ -36,4 +36,8 @@
 
 #include <sys/cdefs.h>
+#ifdef __rtems__
+#define __BSD_VISIBLE 1
+#include <freebsd/sys/types.h>
+#endif
 
 extern int	Aflag;	/* show addresses of protocol control block */
@@ -64,5 +68,9 @@
 extern int	live;	/* true if we are examining a live system */
 
+#ifdef __rtems__
+#define kread(_x, _y, _z) (0)
+#else
 int	kread(u_long addr, void *buf, size_t size);
+#endif
 const char *plural(uintmax_t);
 const char *plurales(uintmax_t);
@@ -127,4 +135,10 @@
 void	upHex(char *);
 
+#ifdef __rtems__
+#define routename rtems_shell_netstats_routername
+#define netname rtems_shell_netstats_netname
+#define sotoxsocket rtems_shell_netstats_sotoxsocket
+#endif
+
 char	*routename(in_addr_t);
 char	*netname(in_addr_t, u_long);
Index: freebsd-userspace/commands/usr.bin/netstat/unix.c
===================================================================
--- freebsd-userspace/commands/usr.bin/netstat/unix.c	(revision e9aaadb911140e21c79b621ce63f1f5991498d3d)
+++ freebsd-userspace/commands/usr.bin/netstat/unix.c	(revision 0fa7dabe89f31a61899f1fd2527e1e89a9fdf0d4)
@@ -73,7 +73,5 @@
 #include <stdlib.h>
 #include <strings.h>
-#ifndef __rtems__
 #include <kvm.h>
-#endif
 #include "netstat.h"
 
@@ -205,5 +203,7 @@
 #undef KREAD
 }
-
+#endif
+
+#ifndef __rtems__
 void
 unixpr(u_long count_off, u_long gencnt_off, u_long dhead_off, u_long shead_off)
@@ -254,5 +254,7 @@
 	}
 }
-
+#endif
+
+#ifndef __rtems__
 static void
 unixdomainpr(struct xunpcb *xunp, struct xsocket *so)
