svn commit: r198336 - in projects/capabilities8: . bin/csh bin/sh cddl/compat/opensolaris cddl/contrib/opensolaris cddl/lib/libnvpair contrib/bind9 contrib/bzip2 contrib/cpio contrib/csup contrib/e...

Robert Watson rwatson at FreeBSD.org
Wed Oct 21 17:08:36 UTC 2009


Author: rwatson
Date: Wed Oct 21 17:08:35 2009
New Revision: 198336
URL: http://svn.freebsd.org/changeset/base/198336

Log:
  Merge through r198334 from stable/8 to capabilities8.

Added:
  projects/capabilities8/tools/regression/bin/sh/execution/func1.0
     - copied unchanged from r198334, stable/8/tools/regression/bin/sh/execution/func1.0
  projects/capabilities8/tools/regression/bin/sh/execution/func2.0
     - copied unchanged from r198334, stable/8/tools/regression/bin/sh/execution/func2.0
Modified:
  projects/capabilities8/   (props changed)
  projects/capabilities8/Makefile.inc1
  projects/capabilities8/ObsoleteFiles.inc   (props changed)
  projects/capabilities8/UPDATING   (props changed)
  projects/capabilities8/bin/csh/   (props changed)
  projects/capabilities8/bin/csh/iconv_stub.c
  projects/capabilities8/bin/sh/   (props changed)
  projects/capabilities8/bin/sh/eval.c
  projects/capabilities8/bin/sh/exec.c
  projects/capabilities8/bin/sh/exec.h
  projects/capabilities8/bin/sh/mknodes.c
  projects/capabilities8/bin/sh/nodes.c.pat
  projects/capabilities8/cddl/compat/opensolaris/   (props changed)
  projects/capabilities8/cddl/contrib/opensolaris/   (props changed)
  projects/capabilities8/cddl/lib/libnvpair/   (props changed)
  projects/capabilities8/contrib/bind9/   (props changed)
  projects/capabilities8/contrib/bzip2/   (props changed)
  projects/capabilities8/contrib/cpio/   (props changed)
  projects/capabilities8/contrib/csup/   (props changed)
  projects/capabilities8/contrib/ee/   (props changed)
  projects/capabilities8/contrib/file/   (props changed)
  projects/capabilities8/contrib/gdb/   (props changed)
  projects/capabilities8/contrib/gdtoa/   (props changed)
  projects/capabilities8/contrib/less/   (props changed)
  projects/capabilities8/contrib/libpcap/   (props changed)
  projects/capabilities8/contrib/ncurses/   (props changed)
  projects/capabilities8/contrib/netcat/   (props changed)
  projects/capabilities8/contrib/ntp/   (props changed)
  projects/capabilities8/contrib/openbsm/   (props changed)
  projects/capabilities8/contrib/openpam/   (props changed)
  projects/capabilities8/contrib/pf/   (props changed)
  projects/capabilities8/contrib/sendmail/   (props changed)
  projects/capabilities8/contrib/tcpdump/   (props changed)
  projects/capabilities8/contrib/tcsh/   (props changed)
  projects/capabilities8/contrib/tcsh/sh.c
  projects/capabilities8/contrib/top/   (props changed)
  projects/capabilities8/contrib/top/install-sh   (props changed)
  projects/capabilities8/contrib/traceroute/   (props changed)
  projects/capabilities8/contrib/wpa/   (props changed)
  projects/capabilities8/crypto/openssh/   (props changed)
  projects/capabilities8/crypto/openssl/   (props changed)
  projects/capabilities8/etc/   (props changed)
  projects/capabilities8/etc/rc.d/bgfsck
  projects/capabilities8/etc/rc.d/cleartmp
  projects/capabilities8/etc/rc.d/fsck
  projects/capabilities8/etc/rc.d/hostid
  projects/capabilities8/etc/rc.d/hostname
  projects/capabilities8/etc/rc.d/ipsec
  projects/capabilities8/etc/rc.d/ldconfig
  projects/capabilities8/etc/rc.d/motd
  projects/capabilities8/etc/rc.d/mountcritlocal
  projects/capabilities8/etc/rc.d/moused
  projects/capabilities8/etc/rc.d/netif
  projects/capabilities8/etc/rc.d/newsyslog
  projects/capabilities8/etc/rc.d/nfsclient
  projects/capabilities8/etc/rc.d/pf
  projects/capabilities8/etc/rc.d/savecore
  projects/capabilities8/etc/rc.subr
  projects/capabilities8/gnu/usr.bin/patch/   (props changed)
  projects/capabilities8/include/   (props changed)
  projects/capabilities8/kerberos5/lib/libgssapi_krb5/   (props changed)
  projects/capabilities8/kerberos5/lib/libgssapi_krb5/Makefile
  projects/capabilities8/kerberos5/lib/libgssapi_spnego/   (props changed)
  projects/capabilities8/kerberos5/lib/libgssapi_spnego/Makefile
  projects/capabilities8/lib/libarchive/   (props changed)
  projects/capabilities8/lib/libc/   (props changed)
  projects/capabilities8/lib/libc/gen/   (props changed)
  projects/capabilities8/lib/libc/stdio/asprintf.c   (props changed)
  projects/capabilities8/lib/libc/stdtime/   (props changed)
  projects/capabilities8/lib/libc/string/ffsll.c   (props changed)
  projects/capabilities8/lib/libc/string/flsll.c   (props changed)
  projects/capabilities8/lib/libc/string/wcpcpy.c   (props changed)
  projects/capabilities8/lib/libc/string/wcpncpy.c   (props changed)
  projects/capabilities8/lib/libc/sys/nanosleep.2
  projects/capabilities8/lib/libc/sys/setfib.2
  projects/capabilities8/lib/libc/sys/stack_protector.c
  projects/capabilities8/lib/libdevinfo/   (props changed)
  projects/capabilities8/lib/libdisk/   (props changed)
  projects/capabilities8/lib/libkvm/   (props changed)
  projects/capabilities8/lib/libthr/   (props changed)
  projects/capabilities8/lib/libusb/   (props changed)
  projects/capabilities8/lib/libusb/libusb20.3   (props changed)
  projects/capabilities8/lib/libusb/usb.h   (props changed)
  projects/capabilities8/lib/libutil/   (props changed)
  projects/capabilities8/libexec/rtld-elf/   (props changed)
  projects/capabilities8/libexec/rtld-elf/rtld.c
  projects/capabilities8/release/   (props changed)
  projects/capabilities8/release/Makefile
  projects/capabilities8/release/doc/   (props changed)
  projects/capabilities8/release/doc/en_US.ISO8859-1/hardware/   (props changed)
  projects/capabilities8/sbin/   (props changed)
  projects/capabilities8/sbin/bsdlabel/   (props changed)
  projects/capabilities8/sbin/camcontrol/   (props changed)
  projects/capabilities8/sbin/geom/   (props changed)
  projects/capabilities8/sbin/geom/class/nop/gnop.8
  projects/capabilities8/sbin/ifconfig/   (props changed)
  projects/capabilities8/sbin/ifconfig/ifconfig.8
  projects/capabilities8/sbin/ifconfig/ifieee80211.c
  projects/capabilities8/sbin/ipfw/   (props changed)
  projects/capabilities8/sbin/ipfw/ipfw.8
  projects/capabilities8/sbin/mksnap_ffs/   (props changed)
  projects/capabilities8/sbin/mksnap_ffs/mksnap_ffs.8
  projects/capabilities8/sbin/mount/   (props changed)
  projects/capabilities8/sbin/mount_nfs/   (props changed)
  projects/capabilities8/sbin/mount_nfs/mount_nfs.c
  projects/capabilities8/sbin/umount/   (props changed)
  projects/capabilities8/share/man/man4/   (props changed)
  projects/capabilities8/share/man/man4/acpi_panasonic.4
  projects/capabilities8/share/man/man4/bce.4
  projects/capabilities8/share/man/man4/bge.4
  projects/capabilities8/share/man/man4/mfi.4
  projects/capabilities8/share/man/man4/sbp_targ.4
  projects/capabilities8/share/man/man4/targ.4
  projects/capabilities8/share/man/man5/   (props changed)
  projects/capabilities8/share/man/man7/   (props changed)
  projects/capabilities8/share/man/man9/   (props changed)
  projects/capabilities8/share/man/man9/fail.9
  projects/capabilities8/share/man/man9/ieee80211.9
  projects/capabilities8/share/man/man9/ieee80211_amrr.9
  projects/capabilities8/share/man/man9/ieee80211_beacon.9
  projects/capabilities8/share/man/man9/ieee80211_bmiss.9
  projects/capabilities8/share/man/man9/ieee80211_crypto.9
  projects/capabilities8/share/man/man9/ieee80211_ddb.9
  projects/capabilities8/share/man/man9/ieee80211_input.9
  projects/capabilities8/share/man/man9/ieee80211_node.9
  projects/capabilities8/share/man/man9/ieee80211_output.9
  projects/capabilities8/share/man/man9/ieee80211_proto.9
  projects/capabilities8/share/man/man9/ieee80211_radiotap.9
  projects/capabilities8/share/man/man9/ieee80211_regdomain.9
  projects/capabilities8/share/man/man9/ieee80211_scan.9
  projects/capabilities8/share/man/man9/ieee80211_vap.9
  projects/capabilities8/share/timedef/   (props changed)
  projects/capabilities8/share/zoneinfo/   (props changed)
  projects/capabilities8/sys/   (props changed)
  projects/capabilities8/sys/amd64/include/atomic.h
  projects/capabilities8/sys/amd64/include/elf.h
  projects/capabilities8/sys/amd64/include/xen/   (props changed)
  projects/capabilities8/sys/arm/include/elf.h
  projects/capabilities8/sys/boot/i386/zfsboot/zfsboot.c
  projects/capabilities8/sys/cam/ata/ata_da.c
  projects/capabilities8/sys/cddl/compat/opensolaris/kern/opensolaris_policy.c
  projects/capabilities8/sys/cddl/compat/opensolaris/sys/policy.h
  projects/capabilities8/sys/cddl/contrib/opensolaris/   (props changed)
  projects/capabilities8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c
  projects/capabilities8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c
  projects/capabilities8/sys/contrib/dev/acpica/   (props changed)
  projects/capabilities8/sys/contrib/pf/   (props changed)
  projects/capabilities8/sys/dev/bge/if_bge.c
  projects/capabilities8/sys/dev/uart/uart_bus.h
  projects/capabilities8/sys/dev/uart/uart_core.c
  projects/capabilities8/sys/dev/uart/uart_tty.c
  projects/capabilities8/sys/dev/usb/wlan/if_rum.c
  projects/capabilities8/sys/dev/usb/wlan/if_uath.c
  projects/capabilities8/sys/dev/usb/wlan/if_upgt.c
  projects/capabilities8/sys/dev/usb/wlan/if_ural.c
  projects/capabilities8/sys/dev/usb/wlan/if_urtw.c
  projects/capabilities8/sys/dev/usb/wlan/if_zyd.c
  projects/capabilities8/sys/dev/xen/xenpci/   (props changed)
  projects/capabilities8/sys/geom/concat/g_concat.c
  projects/capabilities8/sys/geom/label/g_label.c
  projects/capabilities8/sys/geom/part/g_part.c
  projects/capabilities8/sys/geom/shsec/g_shsec.c
  projects/capabilities8/sys/geom/stripe/g_stripe.c
  projects/capabilities8/sys/geom/uzip/g_uzip.c
  projects/capabilities8/sys/i386/include/atomic.h
  projects/capabilities8/sys/i386/include/elf.h
  projects/capabilities8/sys/ia64/include/elf.h
  projects/capabilities8/sys/kern/imgact_elf.c
  projects/capabilities8/sys/kern/kern_exit.c
  projects/capabilities8/sys/kern/kern_lock.c
  projects/capabilities8/sys/kern/kern_rwlock.c
  projects/capabilities8/sys/kern/kern_sx.c
  projects/capabilities8/sys/kern/kern_umtx.c
  projects/capabilities8/sys/kern/sched_ule.c
  projects/capabilities8/sys/kern/uipc_syscalls.c
  projects/capabilities8/sys/mips/include/elf.h
  projects/capabilities8/sys/modules/pf/Makefile
  projects/capabilities8/sys/net/pfil.c
  projects/capabilities8/sys/net/pfil.h
  projects/capabilities8/sys/net/route.c
  projects/capabilities8/sys/net80211/ieee80211_hwmp.c
  projects/capabilities8/sys/net80211/ieee80211_mesh.c
  projects/capabilities8/sys/net80211/ieee80211_mesh.h
  projects/capabilities8/sys/netinet/if_ether.c
  projects/capabilities8/sys/netinet/in.c
  projects/capabilities8/sys/netinet/ip_input.c
  projects/capabilities8/sys/netinet/sctp_output.c
  projects/capabilities8/sys/netinet/tcp_input.c
  projects/capabilities8/sys/nfsclient/nfs_kdtrace.c
  projects/capabilities8/sys/powerpc/include/elf.h
  projects/capabilities8/sys/sparc64/include/elf.h
  projects/capabilities8/sys/sun4v/include/elf.h
  projects/capabilities8/sys/sys/rwlock.h
  projects/capabilities8/sys/sys/sx.h
  projects/capabilities8/sys/vm/swap_pager.c
  projects/capabilities8/tools/regression/bin/sh/   (props changed)
  projects/capabilities8/tools/regression/lib/msun/test-conj.t   (props changed)
  projects/capabilities8/tools/regression/poll/   (props changed)
  projects/capabilities8/tools/regression/priv/   (props changed)
  projects/capabilities8/tools/regression/usr.bin/pkill/pgrep-_g.t   (props changed)
  projects/capabilities8/tools/regression/usr.bin/pkill/pgrep-_s.t   (props changed)
  projects/capabilities8/tools/regression/usr.bin/pkill/pkill-_g.t   (props changed)
  projects/capabilities8/tools/tools/ath/common/dumpregs.h   (props changed)
  projects/capabilities8/tools/tools/ath/common/dumpregs_5210.c   (props changed)
  projects/capabilities8/tools/tools/ath/common/dumpregs_5211.c   (props changed)
  projects/capabilities8/tools/tools/ath/common/dumpregs_5212.c   (props changed)
  projects/capabilities8/tools/tools/ath/common/dumpregs_5416.c   (props changed)
  projects/capabilities8/tools/tools/termcap/termcap.pl   (props changed)
  projects/capabilities8/tools/tools/vimage/   (props changed)
  projects/capabilities8/usr.bin/calendar/calendars/calendar.freebsd   (props changed)
  projects/capabilities8/usr.bin/csup/   (props changed)
  projects/capabilities8/usr.bin/fstat/   (props changed)
  projects/capabilities8/usr.bin/look/   (props changed)
  projects/capabilities8/usr.bin/netstat/   (props changed)
  projects/capabilities8/usr.bin/netstat/route.c
  projects/capabilities8/usr.bin/procstat/   (props changed)
  projects/capabilities8/usr.bin/w/   (props changed)
  projects/capabilities8/usr.bin/whois/   (props changed)
  projects/capabilities8/usr.sbin/   (props changed)
  projects/capabilities8/usr.sbin/arp/   (props changed)
  projects/capabilities8/usr.sbin/dumpcis/cardinfo.h   (props changed)
  projects/capabilities8/usr.sbin/dumpcis/cis.h   (props changed)
  projects/capabilities8/usr.sbin/freebsd-update/   (props changed)
  projects/capabilities8/usr.sbin/iostat/   (props changed)
  projects/capabilities8/usr.sbin/jls/   (props changed)
  projects/capabilities8/usr.sbin/lpr/   (props changed)
  projects/capabilities8/usr.sbin/makefs/ffs/ffs_bswap.c   (props changed)
  projects/capabilities8/usr.sbin/makefs/ffs/ffs_subr.c   (props changed)
  projects/capabilities8/usr.sbin/makefs/ffs/ufs_bswap.h   (props changed)
  projects/capabilities8/usr.sbin/makefs/getid.c   (props changed)
  projects/capabilities8/usr.sbin/mfiutil/README   (props changed)
  projects/capabilities8/usr.sbin/mfiutil/mfiutil.1   (props changed)
  projects/capabilities8/usr.sbin/mfiutil/mfiutil.8   (props changed)
  projects/capabilities8/usr.sbin/ndp/   (props changed)
  projects/capabilities8/usr.sbin/ntp/   (props changed)
  projects/capabilities8/usr.sbin/ppp/   (props changed)
  projects/capabilities8/usr.sbin/pstat/   (props changed)
  projects/capabilities8/usr.sbin/sysinstall/   (props changed)
  projects/capabilities8/usr.sbin/traceroute6/   (props changed)
  projects/capabilities8/usr.sbin/wpa/   (props changed)
  projects/capabilities8/usr.sbin/zic/   (props changed)

Modified: projects/capabilities8/Makefile.inc1
==============================================================================
--- projects/capabilities8/Makefile.inc1	Wed Oct 21 17:07:46 2009	(r198335)
+++ projects/capabilities8/Makefile.inc1	Wed Oct 21 17:08:35 2009	(r198336)
@@ -1122,7 +1122,7 @@ lib/libradius__L secure/lib/libssl__L: s
 _secure_lib_libssh= secure/lib/libssh
 secure/lib/libssh__L: lib/libz__L secure/lib/libcrypto__L lib/libcrypt__L
 .if ${MK_KERBEROS} != "no"
-kerberos5/lib/libgssapi_krb5__L: kerberos5/lib/libkrb5__L \
+kerberos5/lib/libgssapi_krb5__L: lib/libgssapi__L kerberos5/lib/libkrb5__L \
     kerberos5/lib/libhx509__L kerberos5/lib/libasn1__L lib/libcom_err__L \
     lib/libmd__L kerberos5/lib/libroken__L secure/lib/libcrypto__L \
     lib/libcrypt__L

Modified: projects/capabilities8/bin/csh/iconv_stub.c
==============================================================================
--- projects/capabilities8/bin/csh/iconv_stub.c	Wed Oct 21 17:07:46 2009	(r198335)
+++ projects/capabilities8/bin/csh/iconv_stub.c	Wed Oct 21 17:08:35 2009	(r198336)
@@ -61,9 +61,20 @@ dl_iconv_open(const char *tocode, const 
 		if (iconvlib == NULL)
 			return (iconv_t)-1;
 		iconv_open = (iconv_open_t *)dlfunc(iconvlib, ICONV_OPEN);
+		if (iconv_open == NULL)
+			goto dlfunc_err;
 		dl_iconv = (dl_iconv_t *)dlfunc(iconvlib, ICONV_ENGINE);
+		if (dl_iconv == NULL)
+			goto dlfunc_err;
 		dl_iconv_close = (dl_iconv_close_t *)dlfunc(iconvlib,
 		    ICONV_CLOSE);
+		if (dl_iconv_close == NULL)
+			goto dlfunc_err;
 	}
 	return iconv_open(tocode, fromcode);
+
+dlfunc_err:
+	dlclose(iconvlib);
+	iconvlib = NULL;
+	return (iconv_t)-1;
 }

Modified: projects/capabilities8/bin/sh/eval.c
==============================================================================
--- projects/capabilities8/bin/sh/eval.c	Wed Oct 21 17:07:46 2009	(r198335)
+++ projects/capabilities8/bin/sh/eval.c	Wed Oct 21 17:08:35 2009	(r198336)
@@ -785,6 +785,7 @@ evalcommand(union node *cmd, int flags, 
 		INTOFF;
 		savelocalvars = localvars;
 		localvars = NULL;
+		reffunc(cmdentry.u.func);
 		INTON;
 		savehandler = handler;
 		if (setjmp(jmploc.loc)) {
@@ -794,6 +795,7 @@ evalcommand(union node *cmd, int flags, 
 				freeparam(&shellparam);
 				shellparam = saveparam;
 			}
+			unreffunc(cmdentry.u.func);
 			poplocalvars();
 			localvars = savelocalvars;
 			handler = savehandler;
@@ -805,11 +807,12 @@ evalcommand(union node *cmd, int flags, 
 		funcnest++;
 		exitstatus = oexitstatus;
 		if (flags & EV_TESTED)
-			evaltree(cmdentry.u.func, EV_TESTED);
+			evaltree(getfuncnode(cmdentry.u.func), EV_TESTED);
 		else
-			evaltree(cmdentry.u.func, 0);
+			evaltree(getfuncnode(cmdentry.u.func), 0);
 		funcnest--;
 		INTOFF;
+		unreffunc(cmdentry.u.func);
 		poplocalvars();
 		localvars = savelocalvars;
 		freeparam(&shellparam);

Modified: projects/capabilities8/bin/sh/exec.c
==============================================================================
--- projects/capabilities8/bin/sh/exec.c	Wed Oct 21 17:07:46 2009	(r198335)
+++ projects/capabilities8/bin/sh/exec.c	Wed Oct 21 17:08:35 2009	(r198336)
@@ -286,7 +286,7 @@ printentry(struct tblentry *cmdp, int ve
 		out1fmt("function %s", cmdp->cmdname);
 		if (verbose) {
 			INTOFF;
-			name = commandtext(cmdp->param.func);
+			name = commandtext(getfuncnode(cmdp->param.func));
 			out1c(' ');
 			out1str(name);
 			ckfree(name);
@@ -583,7 +583,7 @@ deletefuncs(void)
 		while ((cmdp = *pp) != NULL) {
 			if (cmdp->cmdtype == CMDFUNCTION) {
 				*pp = cmdp->next;
-				freefunc(cmdp->param.func);
+				unreffunc(cmdp->param.func);
 				ckfree(cmdp);
 			} else {
 				pp = &cmdp->next;
@@ -670,7 +670,7 @@ addcmdentry(char *name, struct cmdentry 
 	INTOFF;
 	cmdp = cmdlookup(name, 1);
 	if (cmdp->cmdtype == CMDFUNCTION) {
-		freefunc(cmdp->param.func);
+		unreffunc(cmdp->param.func);
 	}
 	cmdp->cmdtype = entry->cmdtype;
 	cmdp->param = entry->u;
@@ -705,7 +705,7 @@ unsetfunc(char *name)
 	struct tblentry *cmdp;
 
 	if ((cmdp = cmdlookup(name, 0)) != NULL && cmdp->cmdtype == CMDFUNCTION) {
-		freefunc(cmdp->param.func);
+		unreffunc(cmdp->param.func);
 		delete_cmd_entry();
 		return (0);
 	}

Modified: projects/capabilities8/bin/sh/exec.h
==============================================================================
--- projects/capabilities8/bin/sh/exec.h	Wed Oct 21 17:07:46 2009	(r198335)
+++ projects/capabilities8/bin/sh/exec.h	Wed Oct 21 17:08:35 2009	(r198336)
@@ -46,11 +46,12 @@ enum {
 	TYPECMD_TYPE		/* type */
 };
 
+union node;
 struct cmdentry {
 	int cmdtype;
 	union param {
 		int index;
-		union node *func;
+		struct funcdef *func;
 	} u;
 	int special;
 };

Modified: projects/capabilities8/bin/sh/mknodes.c
==============================================================================
--- projects/capabilities8/bin/sh/mknodes.c	Wed Oct 21 17:07:46 2009	(r198335)
+++ projects/capabilities8/bin/sh/mknodes.c	Wed Oct 21 17:08:35 2009	(r198336)
@@ -248,8 +248,11 @@ output(char *file)
 	fputs("\tstruct nodelist *next;\n", hfile);
 	fputs("\tunion node *n;\n", hfile);
 	fputs("};\n\n\n", hfile);
-	fputs("union node *copyfunc(union node *);\n", hfile);
-	fputs("void freefunc(union node *);\n", hfile);
+	fputs("struct funcdef;\n", hfile);
+	fputs("struct funcdef *copyfunc(union node *);\n", hfile);
+	fputs("union node *getfuncnode(struct funcdef *);\n", hfile);
+	fputs("void reffunc(struct funcdef *);\n", hfile);
+	fputs("void unreffunc(struct funcdef *);\n", hfile);
 
 	fputs(writer, cfile);
 	while (fgets(line, sizeof line, patfile) != NULL) {

Modified: projects/capabilities8/bin/sh/nodes.c.pat
==============================================================================
--- projects/capabilities8/bin/sh/nodes.c.pat	Wed Oct 21 17:07:46 2009	(r198335)
+++ projects/capabilities8/bin/sh/nodes.c.pat	Wed Oct 21 17:08:35 2009	(r198336)
@@ -35,6 +35,7 @@
 
 #include <sys/param.h>
 #include <stdlib.h>
+#include <stddef.h>
 /*
  * Routine for dealing with parsed shell commands.
  */
@@ -60,25 +61,40 @@ STATIC struct nodelist *copynodelist(str
 STATIC char *nodesavestr(char *);
 
 
+struct funcdef {
+	unsigned int refcount;
+	union node n;
+};
 
 /*
  * Make a copy of a parse tree.
  */
 
-union node *
+struct funcdef *
 copyfunc(union node *n)
 {
+	struct funcdef *fn;
+
 	if (n == NULL)
 		return NULL;
-	funcblocksize = 0;
+	funcblocksize = offsetof(struct funcdef, n);
 	funcstringsize = 0;
 	calcsize(n);
-	funcblock = ckmalloc(funcblocksize + funcstringsize);
-	funcstring = (char *)funcblock + funcblocksize;
-	return copynode(n);
+	fn = ckmalloc(funcblocksize + funcstringsize);
+	fn->refcount = 1;
+	funcblock = (char *)fn + offsetof(struct funcdef, n);
+	funcstring = (char *)fn + funcblocksize;
+	copynode(n);
+	return fn;
 }
 
 
+union node *
+getfuncnode(struct funcdef *fn)
+{
+	return fn == NULL ? NULL : &fn->n;
+}
+
 
 STATIC void
 calcsize(union node *n)
@@ -144,14 +160,26 @@ nodesavestr(char *s)
 }
 
 
+void
+reffunc(struct funcdef *fn)
+{
+	if (fn)
+		fn->refcount++;
+}
+
 
 /*
- * Free a parse tree.
+ * Decrement the reference count of a function definition, freeing it
+ * if it falls to 0.
  */
 
 void
-freefunc(union node *n)
+unreffunc(struct funcdef *fn)
 {
-	if (n)
-		ckfree(n);
+	if (fn) {
+		fn->refcount--;
+		if (fn->refcount > 0)
+			return;
+		ckfree(fn);
+	}
 }

Modified: projects/capabilities8/contrib/tcsh/sh.c
==============================================================================
--- projects/capabilities8/contrib/tcsh/sh.c	Wed Oct 21 17:07:46 2009	(r198335)
+++ projects/capabilities8/contrib/tcsh/sh.c	Wed Oct 21 17:08:35 2009	(r198336)
@@ -1291,6 +1291,8 @@ main(int argc, char **argv)
     /*
      * Mop-up.
      */
+    /* Take care of these (especially HUP) here instead of inside flush. */
+    handle_pending_signals();
     if (intty) {
 	if (loginsh) {
 	    xprintf("logout\n");

Modified: projects/capabilities8/etc/rc.d/bgfsck
==============================================================================
--- projects/capabilities8/etc/rc.d/bgfsck	Wed Oct 21 17:07:46 2009	(r198335)
+++ projects/capabilities8/etc/rc.d/bgfsck	Wed Oct 21 17:08:35 2009	(r198336)
@@ -31,7 +31,7 @@ bgfsck_start ()
 		bgfsck_msg="${bgfsck_msg} in ${background_fsck_delay} seconds"
 	fi
 	if [ -z "${rc_force}" ]; then
-		[ -z "${rc_quiet}" ] && echo "${bgfsck_msg}."
+		check_startmsgs && echo "${bgfsck_msg}."
 	fi
 
 	(sleep ${background_fsck_delay}; nice -4 fsck -B -p) 2>&1 | \

Modified: projects/capabilities8/etc/rc.d/cleartmp
==============================================================================
--- projects/capabilities8/etc/rc.d/cleartmp	Wed Oct 21 17:07:46 2009	(r198335)
+++ projects/capabilities8/etc/rc.d/cleartmp	Wed Oct 21 17:08:35 2009	(r198336)
@@ -25,7 +25,7 @@ cleartmp_start()
 			       ${tmp}/.ICE-unix ${tmp}/.font-unix"
 
 	if checkyesno ${rcvar1}; then
-		[ -z "${rc_quiet}" ] && echo "Clearing ${tmp}."
+		check_startmsgs && echo "Clearing ${tmp}."
 
 		# This is not needed for mfs, but doesn't hurt anything.
 		# Things to note:
@@ -44,7 +44,7 @@ cleartmp_start()
 	elif checkyesno clear_tmp_X; then
 		# Remove X lock files, since they will prevent you from
 		# restarting X.  Remove other X related directories.
-		[ -z "${rc_quiet}" ] && echo "Clearing ${tmp} (X related)."
+		check_startmsgs && echo "Clearing ${tmp} (X related)."
 		rm -rf ${tmp}/.X[0-9]-lock ${x11_socket_dirs}
 	fi
 	if checkyesno clear_tmp_X; then

Modified: projects/capabilities8/etc/rc.d/fsck
==============================================================================
--- projects/capabilities8/etc/rc.d/fsck	Wed Oct 21 17:07:46 2009	(r198335)
+++ projects/capabilities8/etc/rc.d/fsck	Wed Oct 21 17:08:35 2009	(r198336)
@@ -23,7 +23,7 @@ fsck_start()
 					# During fsck ignore SIGQUIT
 		trap : 3
 
-		[ -z "${rc_quiet}" ] && echo "Starting file system checks:"
+		check_startmsgs && echo "Starting file system checks:"
 		if checkyesno background_fsck; then
 			fsck -F -p
 		else

Modified: projects/capabilities8/etc/rc.d/hostid
==============================================================================
--- projects/capabilities8/etc/rc.d/hostid	Wed Oct 21 17:07:46 2009	(r198335)
+++ projects/capabilities8/etc/rc.d/hostid	Wed Oct 21 17:08:35 2009	(r198336)
@@ -49,9 +49,9 @@ hostid_set()
 
 	# Set both kern.hostuuid and kern.hostid.
 	#
-	[ -z "${rc_quiet}" ] && echo "Setting hostuuid: ${uuid}."
+	check_startmsgs && echo "Setting hostuuid: ${uuid}."
 	${SYSCTL_W} kern.hostuuid="${uuid}" >/dev/null
-	[ -z "${rc_quiet}" ] && echo "Setting hostid: ${id}."
+	check_startmsgs && echo "Setting hostid: ${id}."
 	${SYSCTL_W} kern.hostid=${id} >/dev/null
 }
 

Modified: projects/capabilities8/etc/rc.d/hostname
==============================================================================
--- projects/capabilities8/etc/rc.d/hostname	Wed Oct 21 17:07:46 2009	(r198335)
+++ projects/capabilities8/etc/rc.d/hostname	Wed Oct 21 17:08:35 2009	(r198336)
@@ -72,8 +72,9 @@ hostname_start()
 
 	# All right, it is safe to invoke hostname(1) now.
 	#
-	[ -z "${rc_quiet}" ] && echo "Setting hostname: ${hostname}."
+	check_startmsgs && echo -n "Setting hostname: ${hostname}"
 	/bin/hostname "${hostname}"
+	check_startmsgs && echo '.'
 }
 
 load_rc_config $name

Modified: projects/capabilities8/etc/rc.d/ipsec
==============================================================================
--- projects/capabilities8/etc/rc.d/ipsec	Wed Oct 21 17:07:46 2009	(r198335)
+++ projects/capabilities8/etc/rc.d/ipsec	Wed Oct 21 17:08:35 2009	(r198336)
@@ -41,9 +41,9 @@ ipsec_stop()
 {
 	echo "Clearing ipsec manual keys/policies."
 
-	# still not 100% sure if we would like to do this.
-	# it is very questionable to do this during shutdown session, since
-	# it can hang any of remaining IPv4/v6 session.
+	# Still not 100% sure if we would like to do this.
+	# It is very questionable to do this during shutdown session
+	# since it can hang any of the remaining IPv4/v6 sessions.
 	#
 	${ipsec_program} -F
 	${ipsec_program} -FP

Modified: projects/capabilities8/etc/rc.d/ldconfig
==============================================================================
--- projects/capabilities8/etc/rc.d/ldconfig	Wed Oct 21 17:07:46 2009	(r198335)
+++ projects/capabilities8/etc/rc.d/ldconfig	Wed Oct 21 17:08:35 2009	(r198336)
@@ -36,7 +36,7 @@ ldconfig_start()
 				_LDC="${_LDC} ${i}"
 			fi
 		done
-		[ -z "${rc_quiet}" ] && echo 'ELF ldconfig path:' ${_LDC}
+		check_startmsgs && echo 'ELF ldconfig path:' ${_LDC}
 		${ldconfig} -elf ${_ins} ${_LDC}
 
 		case `sysctl -n hw.machine_arch` in
@@ -55,7 +55,7 @@ ldconfig_start()
 					_LDC="${_LDC} ${i}"
 				fi
 			done
-			[ -z "${rc_quiet}" ] &&
+			check_startmsgs &&
 			    echo '32-bit compatibility ldconfig path:' ${_LDC}
 			${ldconfig} -32 -m ${_ins} ${_LDC}
 			;;
@@ -72,8 +72,7 @@ ldconfig_start()
 					_LDC="${_LDC} ${i}"
 				fi
 			done
-			[ -z "${rc_quiet}" ] &&
-			    echo 'a.out ldconfig path:' ${_LDC}
+			check_startmsgs && echo 'a.out ldconfig path:' ${_LDC}
 			${ldconfig} -aout ${_ins} ${_LDC}
 			;;
 		esac

Modified: projects/capabilities8/etc/rc.d/motd
==============================================================================
--- projects/capabilities8/etc/rc.d/motd	Wed Oct 21 17:07:46 2009	(r198335)
+++ projects/capabilities8/etc/rc.d/motd	Wed Oct 21 17:08:35 2009	(r198336)
@@ -22,7 +22,7 @@ motd_start()
 	#	Must be done *before* interactive logins are possible
 	#	to prevent possible race conditions.
 	#
-	[ -z "${rc_quiet}" ] && echo -n 'Updating motd:'
+	check_startmsgs && echo -n 'Updating motd:'
 	if [ ! -f /etc/motd ]; then
 		install -c -o root -g wheel -m ${PERMS} /dev/null /etc/motd
 	fi
@@ -42,7 +42,7 @@ motd_start()
 	}
 	rm -f $T
 
-	[ -z "${rc_quiet}" ] && echo .
+	check_startmsgs && echo '.'
 }
 
 load_rc_config $name

Modified: projects/capabilities8/etc/rc.d/mountcritlocal
==============================================================================
--- projects/capabilities8/etc/rc.d/mountcritlocal	Wed Oct 21 17:07:46 2009	(r198335)
+++ projects/capabilities8/etc/rc.d/mountcritlocal	Wed Oct 21 17:08:35 2009	(r198336)
@@ -28,7 +28,7 @@ mountcritlocal_start()
 	esac
 
 	# Mount everything except nfs filesystems.
-	[ -z "${rc_quiet}" ] && echo -n 'Mounting local file systems:'
+	check_startmsgs && echo -n 'Mounting local file systems:'
 	mount_excludes='no'
 	for i in ${netfs_types}; do
 		fstype=${i%:*}
@@ -37,7 +37,7 @@ mountcritlocal_start()
 	mount_excludes=${mount_excludes%,}
 	mount -a -t ${mount_excludes}
 	err=$?
-	[ -z "${rc_quiet}" ] && echo '.'
+	check_startmsgs && echo '.'
 
 	case ${err} in
 	0)

Modified: projects/capabilities8/etc/rc.d/moused
==============================================================================
--- projects/capabilities8/etc/rc.d/moused	Wed Oct 21 17:07:46 2009	(r198335)
+++ projects/capabilities8/etc/rc.d/moused	Wed Oct 21 17:08:35 2009	(r198336)
@@ -51,8 +51,9 @@ moused_start()
 		mytype="$moused_type"
 	fi
 
-	[ -z "${rc_quiet}" ] && echo -n "Starting ${ms} moused."
+	check_startmsgs && echo -n "Starting ${ms} moused"
 	/usr/sbin/moused ${myflags} -p ${myport} -t ${mytype} ${pidarg}
+	check_startmsgs && echo '.'
 
 	mousechar_arg=
 	case ${mousechar_start} in

Modified: projects/capabilities8/etc/rc.d/netif
==============================================================================
--- projects/capabilities8/etc/rc.d/netif	Wed Oct 21 17:07:46 2009	(r198335)
+++ projects/capabilities8/etc/rc.d/netif	Wed Oct 21 17:08:35 2009	(r198336)
@@ -141,7 +141,7 @@ network_common()
 			;;
 		esac
 		echo "${_str} Network:${_ok}."
-		if [ -z "${rc_quiet}" ]; then
+		if check_startmsgs; then
 			for ifn in ${_ok}; do
 				/sbin/ifconfig ${ifn}
 			done

Modified: projects/capabilities8/etc/rc.d/newsyslog
==============================================================================
--- projects/capabilities8/etc/rc.d/newsyslog	Wed Oct 21 17:07:46 2009	(r198335)
+++ projects/capabilities8/etc/rc.d/newsyslog	Wed Oct 21 17:08:35 2009	(r198336)
@@ -17,9 +17,9 @@ stop_cmd=":"
 
 newsyslog_start()
 {
-	[ -z "${rc_quiet}" ] && echo -n "Creating and/or trimming log files:"
+	check_startmsgs && echo -n 'Creating and/or trimming log files'
 	${command} ${rc_flags}
-	[ -z "${rc_quiet}" ] && echo "."
+	check_startmsgs && echo '.'
 }
 
 load_rc_config $name

Modified: projects/capabilities8/etc/rc.d/nfsclient
==============================================================================
--- projects/capabilities8/etc/rc.d/nfsclient	Wed Oct 21 17:07:46 2009	(r198335)
+++ projects/capabilities8/etc/rc.d/nfsclient	Wed Oct 21 17:08:35 2009	(r198336)
@@ -22,7 +22,8 @@ nfsclient_start()
 	#
 
 	if [ -n "${nfs_access_cache}" ]; then
-		[ -z "${rc_quiet}" ] && echo "NFS access cache time=${nfs_access_cache}"
+		check_startmsgs &&
+			echo "NFS access cache time=${nfs_access_cache}"
 		if ! sysctl vfs.nfs.access_cache_timeout=${nfs_access_cache} >/dev/null; then
 			warn "failed to set access cache timeout"
 		fi

Modified: projects/capabilities8/etc/rc.d/pf
==============================================================================
--- projects/capabilities8/etc/rc.d/pf	Wed Oct 21 17:07:46 2009	(r198335)
+++ projects/capabilities8/etc/rc.d/pf	Wed Oct 21 17:08:35 2009	(r198336)
@@ -25,19 +25,21 @@ required_modules="pf"
 
 pf_start()
 {
-	[ -z "${rc_quiet}" ] && echo "Enabling pf."
+	check_startmsgs && echo -n 'Enabling pf'
 	$pf_program -F all > /dev/null 2>&1
 	$pf_program -f "$pf_rules" $pf_flags
 	if ! $pf_program -s info | grep -q "Enabled" ; then
 		$pf_program -e
 	fi
+	check_startmsgs && echo '.'
 }
 
 pf_stop()
 {
 	if $pf_program -s info | grep -q "Enabled" ; then
-		[ -z "${rc_quiet}" ] && echo "Disabling pf."
+		echo -n 'Disabling pf'
 		$pf_program -d
+		echo '.'
 	fi
 }
 

Modified: projects/capabilities8/etc/rc.d/savecore
==============================================================================
--- projects/capabilities8/etc/rc.d/savecore	Wed Oct 21 17:07:46 2009	(r198335)
+++ projects/capabilities8/etc/rc.d/savecore	Wed Oct 21 17:08:35 2009	(r198336)
@@ -69,7 +69,7 @@ savecore_start()
 			${crashinfo_program} -d ${dumpdir}
 		fi
 	else
-		[ -z "${rc_quiet}" ] && echo "No core dumps found"
+		check_startmsgs && echo 'No core dumps found.'
 	fi
 }
 

Modified: projects/capabilities8/etc/rc.subr
==============================================================================
--- projects/capabilities8/etc/rc.subr	Wed Oct 21 17:07:46 2009	(r198335)
+++ projects/capabilities8/etc/rc.subr	Wed Oct 21 17:08:35 2009	(r198336)
@@ -372,6 +372,20 @@ wait_for_pids()
 }
 
 #
+# check_startmsgs
+#	If rc_quiet is set (usually as a result of using faststart at
+#	boot time) check if rc_startmsgs is enabled.
+#
+check_startmsgs()
+{
+	if [ -n "$rc_quiet" ]; then
+		checkyesno rc_startmsgs
+	else
+		return 0
+	fi
+}
+
+#
 # run_rc_command argument
 #	Search for argument in the list of supported commands, which is:
 #		"start stop restart rcvar status poll ${extra_commands}"
@@ -680,13 +694,7 @@ run_rc_command()
 
 					# setup the full command to run
 					#
-			_show_startmsgs=1
-			if [ -n "${rc_quiet}" ]; then
-				if ! checkyesno rc_startmsgs; then
-					unset _show_startmsgs
-				fi
-			fi
-			[ -n "$_show_startmsgs" ] && echo "Starting ${name}."
+			check_startmsgs && echo "Starting ${name}."
 			if [ -n "$_chroot" ]; then
 				_doit="\
 ${_nice:+nice -n $_nice }\

Modified: projects/capabilities8/kerberos5/lib/libgssapi_krb5/Makefile
==============================================================================
--- projects/capabilities8/kerberos5/lib/libgssapi_krb5/Makefile	Wed Oct 21 17:07:46 2009	(r198335)
+++ projects/capabilities8/kerberos5/lib/libgssapi_krb5/Makefile	Wed Oct 21 17:08:35 2009	(r198336)
@@ -2,8 +2,8 @@
 
 LIB=	gssapi_krb5
 LDFLAGS= -Wl,-Bsymbolic
-LDADD=	-lkrb5 -lhx509 -lcrypto -lroken -lasn1 -lcom_err -lcrypt
-DPADD=	${LIBKRB5} ${LIBHX509} ${LIBCRYPTO} ${LIBROKEN} ${LIBASN1} \
+LDADD=	-lgssapi -lkrb5 -lhx509 -lcrypto -lroken -lasn1 -lcom_err -lcrypt
+DPADD=	${LIBGSSAPI} ${LIBKRB5} ${LIBHX509} ${LIBCRYPTO} ${LIBROKEN} ${LIBASN1} \
 	${LIBCOM_ERR} ${LIBCRYPT}
 
 INCS=	${KRB5DIR}/lib/gssapi/gssapi/gssapi_krb5.h

Modified: projects/capabilities8/kerberos5/lib/libgssapi_spnego/Makefile
==============================================================================
--- projects/capabilities8/kerberos5/lib/libgssapi_spnego/Makefile	Wed Oct 21 17:07:46 2009	(r198335)
+++ projects/capabilities8/kerberos5/lib/libgssapi_spnego/Makefile	Wed Oct 21 17:08:35 2009	(r198336)
@@ -2,8 +2,8 @@
 
 LIB=	gssapi_spnego
 LDFLAGS= -Wl,-Bsymbolic
-LDADD=	-lasn1
-DPADD=	${LIBASN1}
+LDADD=	-lgssapi -lasn1
+DPADD=	${LIBGSSAPI} ${LIBASN1}
 
 SRCS=	accept_sec_context.c \
 	compat.c \

Modified: projects/capabilities8/lib/libc/sys/nanosleep.2
==============================================================================
--- projects/capabilities8/lib/libc/sys/nanosleep.2	Wed Oct 21 17:07:46 2009	(r198335)
+++ projects/capabilities8/lib/libc/sys/nanosleep.2	Wed Oct 21 17:08:35 2009	(r198336)
@@ -47,7 +47,9 @@
 The
 .Fn nanosleep
 system call
-causes the process to sleep for the specified time.
+causes the calling thread to sleep until the time interval specified by
+.Fa rqtp
+has elapsed.
 An unmasked signal will
 cause it to terminate the sleep early, regardless of the
 .Dv SA_RESTART

Modified: projects/capabilities8/lib/libc/sys/setfib.2
==============================================================================
--- projects/capabilities8/lib/libc/sys/setfib.2	Wed Oct 21 17:07:46 2009	(r198335)
+++ projects/capabilities8/lib/libc/sys/setfib.2	Wed Oct 21 17:08:35 2009	(r198336)
@@ -67,8 +67,8 @@ if the
 .Fa fib
 argument is greater than the current system maximum.
 .Sh SEE ALSO
-.Xr setsockopt 2 ,
-.Xr setfib 8 
+.Xr setfib 1 ,
+.Xr setsockopt 2
 .Sh STANDARDS
 The
 .Fn setfib

Modified: projects/capabilities8/lib/libc/sys/stack_protector.c
==============================================================================
--- projects/capabilities8/lib/libc/sys/stack_protector.c	Wed Oct 21 17:07:46 2009	(r198335)
+++ projects/capabilities8/lib/libc/sys/stack_protector.c	Wed Oct 21 17:08:35 2009	(r198336)
@@ -108,4 +108,8 @@ __chk_fail(void)
 	__fail("buffer overflow detected; terminated");
 }
 
+#ifdef PIC
 __sym_compat(__stack_chk_fail_local, __stack_chk_fail, FBSD_1.0);
+#else
+__weak_reference(__stack_chk_fail, __stack_chk_fail_local);
+#endif

Modified: projects/capabilities8/libexec/rtld-elf/rtld.c
==============================================================================
--- projects/capabilities8/libexec/rtld-elf/rtld.c	Wed Oct 21 17:07:46 2009	(r198335)
+++ projects/capabilities8/libexec/rtld-elf/rtld.c	Wed Oct 21 17:08:35 2009	(r198336)
@@ -555,6 +555,7 @@ _rtld(Elf_Addr *sp, func_ptr_type *exit_
     /* Initialize a fake symbol for resolving undefined weak references. */
     sym_zero.st_info = ELF_ST_INFO(STB_GLOBAL, STT_NOTYPE);
     sym_zero.st_shndx = SHN_UNDEF;
+    sym_zero.st_value = -(uintptr_t)obj_main->relocbase;
 
 #ifdef IN_RTLD_CAP
     if (ld_caplibindex != NULL)
@@ -1114,26 +1115,26 @@ digest_phdr(const Elf_Phdr *phdr, int ph
 
     obj = obj_new();
     for (ph = phdr;  ph < phlimit;  ph++) {
-	switch (ph->p_type) {
+	if (ph->p_type != PT_PHDR)
+	    continue;
 
-	case PT_PHDR:
-	    if ((const Elf_Phdr *)ph->p_vaddr != phdr) {
-		_rtld_error("%s: invalid PT_PHDR", path);
-		return NULL;
-	    }
-	    obj->phdr = (const Elf_Phdr *) ph->p_vaddr;
-	    obj->phsize = ph->p_memsz;
-	    break;
+	obj->phdr = phdr;
+	obj->phsize = ph->p_memsz;
+	obj->relocbase = (caddr_t)phdr - ph->p_vaddr;
+	break;
+    }
+
+    for (ph = phdr;  ph < phlimit;  ph++) {
+	switch (ph->p_type) {
 
 	case PT_INTERP:
-	    obj->interp = (const char *) ph->p_vaddr;
+	    obj->interp = (const char *)(ph->p_vaddr + obj->relocbase);
 	    break;
 
 	case PT_LOAD:
 	    if (nsegs == 0) {	/* First load segment */
 		obj->vaddrbase = trunc_page(ph->p_vaddr);
-		obj->mapbase = (caddr_t) obj->vaddrbase;
-		obj->relocbase = obj->mapbase - obj->vaddrbase;
+		obj->mapbase = obj->vaddrbase + obj->relocbase;
 		obj->textsize = round_page(ph->p_vaddr + ph->p_memsz) -
 		  obj->vaddrbase;
 	    } else {		/* Last load segment */
@@ -1144,7 +1145,7 @@ digest_phdr(const Elf_Phdr *phdr, int ph
 	    break;
 
 	case PT_DYNAMIC:
-	    obj->dynamic = (const Elf_Dyn *) ph->p_vaddr;
+	    obj->dynamic = (const Elf_Dyn *)(ph->p_vaddr + obj->relocbase);
 	    break;
 
 	case PT_TLS:
@@ -1152,7 +1153,7 @@ digest_phdr(const Elf_Phdr *phdr, int ph
 	    obj->tlssize = ph->p_memsz;
 	    obj->tlsalign = ph->p_align;
 	    obj->tlsinitsize = ph->p_filesz;
-	    obj->tlsinit = (void*) ph->p_vaddr;
+	    obj->tlsinit = (void*)(ph->p_vaddr + obj->relocbase);
 	    break;
 	}
     }

Modified: projects/capabilities8/release/Makefile
==============================================================================
--- projects/capabilities8/release/Makefile	Wed Oct 21 17:07:46 2009	(r198335)
+++ projects/capabilities8/release/Makefile	Wed Oct 21 17:08:35 2009	(r198336)
@@ -242,6 +242,7 @@ MFSSIZE=		4096
 MFSINODE=		8192
 MFSLABEL=		auto
 MINIROOT=
+SEPARATE_LIVEFS=
 .elif ${TARGET_ARCH} == "ia64"
 DISKLABEL=		""
 MAKE_DVD=

Modified: projects/capabilities8/sbin/geom/class/nop/gnop.8
==============================================================================
--- projects/capabilities8/sbin/geom/class/nop/gnop.8	Wed Oct 21 17:07:46 2009	(r198335)
+++ projects/capabilities8/sbin/geom/class/nop/gnop.8	Wed Oct 21 17:08:35 2009	(r198336)
@@ -24,7 +24,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd September 8, 2006
+.Dd September 17, 2009
 .Dt GNOP 8
 .Os
 .Sh NAME
@@ -147,9 +147,9 @@ Exit status is 0 on success, and 1 if th
 .Sh EXAMPLES
 The following example shows how to create a transparent provider for disk
 .Pa /dev/da0
-with 50% failure probability, and how to destroy it.
+with 50% write failure probability, and how to destroy it.
 .Bd -literal -offset indent
-gnop create -v -f 50 da0
+gnop create -v -w 50 da0
 gnop destroy -v da0.nop
 .Ed
 .Pp

Modified: projects/capabilities8/sbin/ifconfig/ifconfig.8
==============================================================================
--- projects/capabilities8/sbin/ifconfig/ifconfig.8	Wed Oct 21 17:07:46 2009	(r198335)
+++ projects/capabilities8/sbin/ifconfig/ifconfig.8	Wed Oct 21 17:08:35 2009	(r198336)
@@ -2197,6 +2197,24 @@ interfaces previously configured with
 Another name for the
 .Fl tunnel
 parameter.
+.It Cm accept_rev_ethip_ver
+Set a flag to acccept both correct EtherIP packets and ones
+with reversed version field.  Enabled by default.
+This is for backward compatibility with
+.Fx 6.1 ,
+6.2, 6.3, 7.0, and 7.1.
+.It Cm -accept_rev_ethip_ver
+Clear a flag
+.Cm accept_rev_ethip_ver .
+.It Cm send_rev_ethip_ver
+Set a flag to send EtherIP packets with reversed version
+field intentionally.  Disabled by default.
+This is for backward compatibility with
+.Fx 6.1 ,
+6.2, 6.3, 7.0, and 7.1.
+.It Cm -send_rev_ethip_ver
+Clear a flag
+.Cm send_rev_ethip_ver .
 .El
 .Pp
 The following parameters are specific to GRE tunnel interfaces,
@@ -2457,6 +2475,7 @@ tried to alter an interface's configurat
 .Sh SEE ALSO
 .Xr netstat 1 ,
 .Xr carp 4 ,
+.Xr gif 4 ,
 .Xr netintro 4 ,
 .Xr pfsync 4 ,
 .Xr polling 4 ,

Modified: projects/capabilities8/sbin/ifconfig/ifieee80211.c
==============================================================================
--- projects/capabilities8/sbin/ifconfig/ifieee80211.c	Wed Oct 21 17:07:46 2009	(r198335)
+++ projects/capabilities8/sbin/ifconfig/ifieee80211.c	Wed Oct 21 17:08:35 2009	(r198336)
@@ -2624,25 +2624,31 @@ do {									\
 	if (verbose) {
 		const struct ieee80211_meshconf_ie *mconf =
 			(const struct ieee80211_meshconf_ie *)ie;
-		const uint8_t null[4] = IEEE80211_MESHCONF_NULL;
-		const uint8_t hwmp[4] = IEEE80211_MESHCONF_HWMP;
-		const uint8_t airtime[4] = IEEE80211_MESHCONF_AIRTIME;
-		const uint8_t ccsig[4] = IEEE80211_MESHCONF_CCSIG;
-		const uint8_t sae[4] = IEEE80211_MESHCONF_SAE;
-		const uint8_t neighoff[4] = IEEE80211_MESHCONF_SAE;
-		printf("<v%d PATH:", mconf->conf_ver);
-		MATCHOUI(mconf->conf_pselid, hwmp, "HWMP");
+		printf("<PATH:");
+		if (mconf->conf_pselid == IEEE80211_MESHCONF_PATH_HWMP)
+			printf("HWMP");
+		else
+			printf("UNKNOWN");
 		printf(" LINK:");
-		MATCHOUI(mconf->conf_pmetid, airtime, "AIRTIME");
+		if (mconf->conf_pmetid == IEEE80211_MESHCONF_METRIC_AIRTIME)
+			printf("AIRTIME");
+		else
+			printf("UNKNOWN");
 		printf(" CONGESTION:");
-		MATCHOUI(mconf->conf_ccid, ccsig, "SIG");
-		MATCHOUI(mconf->conf_ccid, null, "NULL");
+		if (mconf->conf_ccid == IEEE80211_MESHCONF_CC_DISABLED)
+			printf("DISABLED");
+		else
+			printf("UNKNOWN");
 		printf(" SYNC:");
-		MATCHOUI(mconf->conf_syncid, neighoff, "NEIGHOFF");
-		MATCHOUI(mconf->conf_syncid, null, "NULL");
+		if (mconf->conf_syncid == IEEE80211_MESHCONF_SYNC_NEIGHOFF)
+			printf("NEIGHOFF");
+		else
+			printf("UNKNOWN");
 		printf(" AUTH:");
-		MATCHOUI(mconf->conf_authid, sae, "SAE");
-		MATCHOUI(mconf->conf_authid, null, "NULL");
+		if (mconf->conf_authid == IEEE80211_MESHCONF_AUTH_DISABLED)
+			printf("DISABLED");
+		else
+			printf("UNKNOWN");
 		printf(" FORM:0x%x CAPS:0x%x>", mconf->conf_form,
 		    mconf->conf_cap);
 	}

Modified: projects/capabilities8/sbin/ipfw/ipfw.8
==============================================================================
--- projects/capabilities8/sbin/ipfw/ipfw.8	Wed Oct 21 17:07:46 2009	(r198335)
+++ projects/capabilities8/sbin/ipfw/ipfw.8	Wed Oct 21 17:08:35 2009	(r198336)
@@ -869,7 +869,7 @@ The packet is tagged so as to use the FI
 .Ar fibnum
 in any subsequent forwarding decisions.
 Initially this is limited to the values 0 through 15, see
-.Xr setfib 8 .
+.Xr setfib 1 .
 Processing continues at the next rule.
 .It Cm reass
 Queue and reassemble ip fragments.

Modified: projects/capabilities8/sbin/mksnap_ffs/mksnap_ffs.8
==============================================================================
--- projects/capabilities8/sbin/mksnap_ffs/mksnap_ffs.8	Wed Oct 21 17:07:46 2009	(r198335)
+++ projects/capabilities8/sbin/mksnap_ffs/mksnap_ffs.8	Wed Oct 21 17:08:35 2009	(r198336)
@@ -69,7 +69,7 @@ mount -o ro /dev/md0 /mnt/
 .Sh SEE ALSO
 .Xr chmod 2 ,
 .Xr chown 8 ,
-.Xr mdconfig 8,
+.Xr mdconfig 8 ,
 .Xr mount 8
 .Sh CAVEATS
 The disk full situation is not handled gracefully and may

Modified: projects/capabilities8/sbin/mount_nfs/mount_nfs.c
==============================================================================
--- projects/capabilities8/sbin/mount_nfs/mount_nfs.c	Wed Oct 21 17:07:46 2009	(r198335)
+++ projects/capabilities8/sbin/mount_nfs/mount_nfs.c	Wed Oct 21 17:08:35 2009	(r198336)
@@ -104,7 +104,7 @@ struct nfhret {
 #define	OF_NOINET6	8
 int retrycnt = -1;
 int opflags = 0;
-int nfsproto = IPPROTO_UDP;
+int nfsproto = IPPROTO_TCP;
 int mnttcp_ok = 1;
 int noconn = 0;
 char *portspec = NULL;	/* Server nfs port; NULL means look up via rpcbind. */

Modified: projects/capabilities8/share/man/man4/acpi_panasonic.4
==============================================================================
--- projects/capabilities8/share/man/man4/acpi_panasonic.4	Wed Oct 21 17:07:46 2009	(r198335)
+++ projects/capabilities8/share/man/man4/acpi_panasonic.4	Wed Oct 21 17:08:35 2009	(r198336)
@@ -25,7 +25,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd July 11, 2004
+.Dd September 17, 2009
 .Dt ACPI_PANASONIC 4 i386
 .Os
 .Sh NAME
@@ -144,7 +144,7 @@ The following MIBs are available:
 The maximum level of brightness.
 The value is read only and
 automatically set according to hardware model.
-.It Va hw.acpi.panasonic.lcd_brightness_max
+.It Va hw.acpi.panasonic.lcd_brightness_min
 The minimum level of brightness.
 The value is read only and
 automatically set according to hardware model.

Modified: projects/capabilities8/share/man/man4/bce.4
==============================================================================
--- projects/capabilities8/share/man/man4/bce.4	Wed Oct 21 17:07:46 2009	(r198335)
+++ projects/capabilities8/share/man/man4/bce.4	Wed Oct 21 17:08:35 2009	(r198336)
@@ -28,7 +28,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd April 7, 2009
+.Dd October 7, 2009
 .Dt BCE 4
 .Os
 .Sh NAME
@@ -165,6 +165,8 @@ Dell PowerEdge 1950 integrated BCM5708 N
 .It
 Dell PowerEdge 2950 integrated BCM5708 NIC
 .It
+Dell PowerEdge R710 integrated BCM5709 NIC
+.It
 HP NC370F Multifunction Gigabit Server Adapter
 .It
 HP NC370T Multifunction Gigabit Server Adapter

Modified: projects/capabilities8/share/man/man4/bge.4
==============================================================================
--- projects/capabilities8/share/man/man4/bge.4	Wed Oct 21 17:07:46 2009	(r198335)
+++ projects/capabilities8/share/man/man4/bge.4	Wed Oct 21 17:08:35 2009	(r198336)
@@ -31,7 +31,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd May 19, 2009
+.Dd Oct 21, 2009
 .Dt BGE 4
 .Os
 .Sh NAME
@@ -217,7 +217,7 @@ prompt before booting the kernel, or sto
 .It Va hw.bge.allow_asf
 Allow the ASF feature for cooperating with IPMI.
 Can cause system lockup problems on a small number of systems.
-Enabled by default.
+Disabled by default.
 .El
 .Sh DIAGNOSTICS
 .Bl -diag

Modified: projects/capabilities8/share/man/man4/mfi.4
==============================================================================
--- projects/capabilities8/share/man/man4/mfi.4	Wed Oct 21 17:07:46 2009	(r198335)
+++ projects/capabilities8/share/man/man4/mfi.4	Wed Oct 21 17:08:35 2009	(r198336)
@@ -102,9 +102,9 @@ management interface
 An attempt was made to remove a mounted volume.
 .El
 .Sh SEE ALSO
-.Xr mfiutil 1 ,
 .Xr amr 4 ,
-.Xr pci 4
+.Xr pci 4 ,
+.Xr mfiutil 8
 .Sh HISTORY
 The
 .Nm

Modified: projects/capabilities8/share/man/man4/sbp_targ.4
==============================================================================
--- projects/capabilities8/share/man/man4/sbp_targ.4	Wed Oct 21 17:07:46 2009	(r198335)
+++ projects/capabilities8/share/man/man4/sbp_targ.4	Wed Oct 21 17:08:35 2009	(r198336)
@@ -38,16 +38,24 @@
 .Nm sbp_targ
 .Nd Serial Bus Protocol 2 (SBP-2) Target Mode devices driver
 .Sh SYNOPSIS
-.Cd "kldload firewire"
-.Cd "kldload cam"
-.Cd "kldload sbp_targ"
-.Pp
-or
-.Pp
+To compile this driver into the kernel,
+place the following lines in your
+kernel configuration file:
+.Bd -ragged -offset indent
 .Cd "device sbp_targ"
 .Cd "device firewire"
 .Cd "device scbus"
 .Cd "device targ"
+.Ed
+.Pp
+Alternatively, to load the driver as a
+module at boot time, place the following lines in
+.Xr loader.conf 5 :
+.Bd -literal -offset indent
+firewire_load="YES"
+cam_load="YES"
+sbp_targ_load"YES"
+.Ed
 .Sh DESCRIPTION
 The
 .Nm

Modified: projects/capabilities8/share/man/man4/targ.4
==============================================================================
--- projects/capabilities8/share/man/man4/targ.4	Wed Oct 21 17:07:46 2009	(r198335)
+++ projects/capabilities8/share/man/man4/targ.4	Wed Oct 21 17:08:35 2009	(r198336)
@@ -31,7 +31,12 @@
 .Nm targ
 .Nd SCSI target emulator driver
 .Sh SYNOPSIS
-.Cd device targ
+To compile this driver into the kernel,
+place the following line in your
+kernel configuration file:
+.Bd -ragged -offset indent
+.Cd "device targ"
+.Ed
 .Sh DESCRIPTION
 The
 .Nm

Modified: projects/capabilities8/share/man/man9/fail.9
==============================================================================
--- projects/capabilities8/share/man/man9/fail.9	Wed Oct 21 17:07:46 2009	(r198335)
+++ projects/capabilities8/share/man/man9/fail.9	Wed Oct 21 17:08:35 2009	(r198336)
@@ -37,7 +37,6 @@
 .Nm KFAIL_POINT_GOTO ,
 .Nm fail_point ,
 .Nm DEBUG_FP
-.
 .Nd fail points
 .Sh SYNOPSIS
 .In sys/fail.h
@@ -79,7 +78,7 @@ is derived from the
 .Fn return
 value set in the sysctl MIB.
 See
-.Sx SYSCTL SETTINGS
+.Sx SYSCTL VARIABLES
 below.
 .Pp
 The remaining
@@ -100,7 +99,6 @@ is the equivalent of
 .Sy KFAIL_POINT_CODE(...,
   { error_var = RETURN_VALUE; goto label;})
 .El
-.Pp
 .Sh SYSCTL VARIABLES
 The
 .Fn KFAIL_POINT_*
@@ -108,28 +106,28 @@ macros add sysctl MIBs where specified.
 Many base kernel MIBs can be found in the
 .Sy debug.fail_point
 tree (referenced in code by
-.Sy DEBUG_FP
-).
+.Sy DEBUG_FP ) .
 .Pp
 The sysctl variable may be set using the following grammar:
 .Pp
+.Bd -literal
   <fail_point> ::
       <term> ( "->" <term> )*
-.Pp
+
   <term> ::
       ( (<float> "%") | (<integer> "*" ) )*
       <type>
       [ "(" <integer> ")" ]
-.Pp
+
   <float> ::
       <integer> [ "." <integer> ] |
       "." <integer>
-.Pp
+
   <type> ::
       "off" | "return" | "sleep" | "panic" | "break" | "print"
+.Ed
 .Pp
-The <type>
-argument specifies which action to take:
+The <type> argument specifies which action to take:
 .Bl -tag -width ".Dv return"
 .It Sy off
 Take no action (does not trigger fail point code)
@@ -158,13 +156,13 @@ is evaluated before the count, i.e. "2%5
 but only 5 times total".
 .Pp
 The operator -> can be used to express cascading terms.
-If you specify <term1>-><term2>, it means that if <term1> doesn't
-'execute', <term2> is evaluated.
+If you specify <term1>-><term2>, it means that if <term1> does not
+.Ql execute ,
+<term2> is evaluated.
 For the purpose of this operator, the return() and print() operators
 are the only types that cascade.
 A return() term only cascades if the code executes, and a print()
 term only cascades when passed a non-zero argument.
-.Pp
 .Sh EXAMPLES
 .Bl -tag
 .It Sy sysctl debug.fail_point.foobar="2.1%return(5)"
@@ -175,7 +173,7 @@ with RETURN_VALUE set to 5.
 2/100ths of the time, execute
 .Fa code

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***


More information about the svn-src-projects mailing list