Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 11 Sep 2015 17:20:04 +0000 (UTC)
From:      Dimitry Andric <dim@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r287681 - in projects/clang370-import: etc/rc.d games/fortune/datfiles lib/libc/gen lib/libc/net lib/libc/posix1e lib/libc/tests/sys lib/libthr/thread release/amd64 release/i386 release...
Message-ID:  <201509111720.t8BHK4mP047674@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dim
Date: Fri Sep 11 17:20:03 2015
New Revision: 287681
URL: https://svnweb.freebsd.org/changeset/base/287681

Log:
  Merge ^/head r287527 through r287679.

Added:
  projects/clang370-import/sys/cam/ctl/ctl_ha.c
     - copied unchanged from r287679, head/sys/cam/ctl/ctl_ha.c
  projects/clang370-import/sys/x86/include/stack.h
     - copied unchanged from r287679, head/sys/x86/include/stack.h
  projects/clang370-import/sys/x86/x86/stack_machdep.c
     - copied unchanged from r287679, head/sys/x86/x86/stack_machdep.c
Replaced:
     - copied from r287679, head/contrib/libc++/
Directory Properties:
  projects/clang370-import/contrib/libc++/   (props changed)
Deleted:
  projects/clang370-import/sys/amd64/amd64/stack_machdep.c
  projects/clang370-import/sys/i386/i386/stack_machdep.c
Modified:
  projects/clang370-import/etc/rc.d/bgfsck
  projects/clang370-import/etc/rc.d/jail
  projects/clang370-import/etc/rc.d/netif
  projects/clang370-import/games/fortune/datfiles/freebsd-tips
  projects/clang370-import/lib/libc/gen/sysctl.3
  projects/clang370-import/lib/libc/net/getnameinfo.c
  projects/clang370-import/lib/libc/net/if_nametoindex.c
  projects/clang370-import/lib/libc/posix1e/acl_entry.c
  projects/clang370-import/lib/libc/tests/sys/Makefile
  projects/clang370-import/lib/libthr/thread/thr_once.c
  projects/clang370-import/release/amd64/mkisoimages.sh
  projects/clang370-import/release/i386/mkisoimages.sh
  projects/clang370-import/release/pc98/mkisoimages.sh
  projects/clang370-import/release/powerpc/mkisoimages.sh
  projects/clang370-import/release/sparc64/mkisoimages.sh
  projects/clang370-import/sbin/ifconfig/ifgif.c
  projects/clang370-import/sbin/rtsol/Makefile
  projects/clang370-import/share/dtrace/nfsattrstats
  projects/clang370-import/share/dtrace/nfsclienttime
  projects/clang370-import/share/man/man4/blackhole.4
  projects/clang370-import/share/man/man4/gif.4
  projects/clang370-import/share/man/man9/stack.9
  projects/clang370-import/share/mk/local.meta.sys.mk
  projects/clang370-import/sys/amd64/amd64/trap.c
  projects/clang370-import/sys/amd64/include/stack.h
  projects/clang370-import/sys/arm/arm/stack_machdep.c
  projects/clang370-import/sys/arm/arm/trap-v6.c
  projects/clang370-import/sys/arm/arm/trap.c
  projects/clang370-import/sys/arm64/arm64/copyinout.S
  projects/clang370-import/sys/arm64/arm64/locore.S
  projects/clang370-import/sys/arm64/arm64/pmap.c
  projects/clang370-import/sys/arm64/arm64/stack_machdep.c
  projects/clang370-import/sys/arm64/arm64/swtch.S
  projects/clang370-import/sys/arm64/arm64/trap.c
  projects/clang370-import/sys/boot/efi/loader/arch/amd64/framebuffer.c
  projects/clang370-import/sys/cam/ctl/README.ctl.txt
  projects/clang370-import/sys/cam/ctl/ctl.c
  projects/clang370-import/sys/cam/ctl/ctl.h
  projects/clang370-import/sys/cam/ctl/ctl_backend.h
  projects/clang370-import/sys/cam/ctl/ctl_backend_block.c
  projects/clang370-import/sys/cam/ctl/ctl_backend_ramdisk.c
  projects/clang370-import/sys/cam/ctl/ctl_cmd_table.c
  projects/clang370-import/sys/cam/ctl/ctl_error.c
  projects/clang370-import/sys/cam/ctl/ctl_error.h
  projects/clang370-import/sys/cam/ctl/ctl_frontend.c
  projects/clang370-import/sys/cam/ctl/ctl_frontend.h
  projects/clang370-import/sys/cam/ctl/ctl_frontend_cam_sim.c
  projects/clang370-import/sys/cam/ctl/ctl_frontend_ioctl.c
  projects/clang370-import/sys/cam/ctl/ctl_frontend_iscsi.c
  projects/clang370-import/sys/cam/ctl/ctl_ha.h
  projects/clang370-import/sys/cam/ctl/ctl_io.h
  projects/clang370-import/sys/cam/ctl/ctl_ioctl.h
  projects/clang370-import/sys/cam/ctl/ctl_private.h
  projects/clang370-import/sys/cam/ctl/ctl_scsi_all.c
  projects/clang370-import/sys/cam/ctl/ctl_tpc.c
  projects/clang370-import/sys/cam/ctl/ctl_tpc_local.c
  projects/clang370-import/sys/cam/ctl/ctl_util.c
  projects/clang370-import/sys/cam/ctl/ctl_util.h
  projects/clang370-import/sys/cam/ctl/scsi_ctl.c
  projects/clang370-import/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c
  projects/clang370-import/sys/cddl/contrib/opensolaris/uts/common/dtrace/fasttrap.c
  projects/clang370-import/sys/cddl/dev/dtrace/amd64/dtrace_isa.c
  projects/clang370-import/sys/conf/files
  projects/clang370-import/sys/conf/files.amd64
  projects/clang370-import/sys/conf/files.i386
  projects/clang370-import/sys/conf/files.pc98
  projects/clang370-import/sys/conf/options
  projects/clang370-import/sys/contrib/ipfilter/netinet/ip_state.c
  projects/clang370-import/sys/dev/cxgbe/tom/t4_ddp.c
  projects/clang370-import/sys/dev/drm2/radeon/radeon_device.c
  projects/clang370-import/sys/dev/drm2/ttm/ttm_bo.c
  projects/clang370-import/sys/dev/isci/isci.c
  projects/clang370-import/sys/dev/isci/isci_interrupt.c
  projects/clang370-import/sys/dev/netmap/netmap.c
  projects/clang370-import/sys/dev/rccgpio/rccgpio.c
  projects/clang370-import/sys/dev/uart/uart_cpu_fdt.c
  projects/clang370-import/sys/dev/usb/serial/u3g.c
  projects/clang370-import/sys/dev/usb/usbdevs
  projects/clang370-import/sys/dev/usb/wlan/if_run.c
  projects/clang370-import/sys/dev/usb/wlan/if_runvar.h
  projects/clang370-import/sys/dev/usb/wlan/if_urtwnreg.h
  projects/clang370-import/sys/i386/i386/trap.c
  projects/clang370-import/sys/i386/include/stack.h
  projects/clang370-import/sys/kern/imgact_elf.c
  projects/clang370-import/sys/kern/kern_descrip.c
  projects/clang370-import/sys/kern/kern_exec.c
  projects/clang370-import/sys/kern/kern_proc.c
  projects/clang370-import/sys/kern/subr_param.c
  projects/clang370-import/sys/kern/uipc_usrreq.c
  projects/clang370-import/sys/kern/vfs_bio.c
  projects/clang370-import/sys/kern/vfs_vnops.c
  projects/clang370-import/sys/mips/mips/stack_machdep.c
  projects/clang370-import/sys/mips/mips/trap.c
  projects/clang370-import/sys/modules/ctl/Makefile
  projects/clang370-import/sys/modules/zfs/Makefile
  projects/clang370-import/sys/net/if_gif.c
  projects/clang370-import/sys/net/if_gif.h
  projects/clang370-import/sys/netgraph/ng_pppoe.c
  projects/clang370-import/sys/netgraph/ng_pppoe.h
  projects/clang370-import/sys/netinet/sctp_constants.h
  projects/clang370-import/sys/netinet/sctp_indata.c
  projects/clang370-import/sys/netinet/sctp_input.c
  projects/clang370-import/sys/netinet/sctp_output.c
  projects/clang370-import/sys/netinet/sctp_sysctl.h
  projects/clang370-import/sys/netinet6/in6.c
  projects/clang370-import/sys/netinet6/in6_ifattach.c
  projects/clang370-import/sys/netinet6/in6_var.h
  projects/clang370-import/sys/netinet6/nd6.c
  projects/clang370-import/sys/powerpc/include/spr.h
  projects/clang370-import/sys/powerpc/powerpc/stack_machdep.c
  projects/clang370-import/sys/powerpc/powerpc/trap.c
  projects/clang370-import/sys/sparc64/sparc64/stack_machdep.c
  projects/clang370-import/sys/sparc64/sparc64/trap.c
  projects/clang370-import/sys/sys/conf.h
  projects/clang370-import/sys/sys/exec.h
  projects/clang370-import/sys/sys/filedesc.h
  projects/clang370-import/sys/sys/random.h
  projects/clang370-import/sys/sys/stack.h
  projects/clang370-import/sys/sys/vmmeter.h
  projects/clang370-import/sys/vm/swap_pager.c
  projects/clang370-import/sys/vm/vm_map.c
  projects/clang370-import/sys/vm/vm_meter.c
  projects/clang370-import/sys/vm/vm_page.c
  projects/clang370-import/sys/vm/vm_pageout.c
  projects/clang370-import/sys/vm/vm_param.h
  projects/clang370-import/sys/x86/include/apicvar.h
  projects/clang370-import/sys/x86/x86/local_apic.c
  projects/clang370-import/sys/x86/x86/mp_x86.c
  projects/clang370-import/tests/sys/kern/ptrace_test.c
  projects/clang370-import/usr.bin/login/login.c
  projects/clang370-import/usr.bin/login/login_fbtab.c
  projects/clang370-import/usr.bin/netstat/flowtable.c
  projects/clang370-import/usr.bin/netstat/if.c
  projects/clang370-import/usr.bin/netstat/inet.c
  projects/clang370-import/usr.bin/netstat/inet6.c
  projects/clang370-import/usr.bin/netstat/main.c
  projects/clang370-import/usr.bin/netstat/mbuf.c
  projects/clang370-import/usr.bin/netstat/mroute.c
  projects/clang370-import/usr.bin/netstat/mroute6.c
  projects/clang370-import/usr.bin/netstat/netstat.h
  projects/clang370-import/usr.bin/netstat/sctp.c
  projects/clang370-import/usr.bin/systat/iostat.c
  projects/clang370-import/usr.bin/systat/netstat.c
  projects/clang370-import/usr.bin/systat/pigs.c
  projects/clang370-import/usr.bin/systat/vmstat.c
  projects/clang370-import/usr.bin/vmstat/vmstat.c
  projects/clang370-import/usr.bin/w/Makefile
  projects/clang370-import/usr.bin/w/w.c
  projects/clang370-import/usr.sbin/bluetooth/hccontrol/le.c
  projects/clang370-import/usr.sbin/ctladm/ctladm.8
  projects/clang370-import/usr.sbin/ctladm/ctladm.c
  projects/clang370-import/usr.sbin/ctld/ctl.conf.5
  projects/clang370-import/usr.sbin/ctld/ctld.c
  projects/clang370-import/usr.sbin/ctld/ctld.h
  projects/clang370-import/usr.sbin/ctld/parse.y
  projects/clang370-import/usr.sbin/ctld/token.l
  projects/clang370-import/usr.sbin/gstat/gstat.c
  projects/clang370-import/usr.sbin/pkg/Makefile
  projects/clang370-import/usr.sbin/pkg/config.c
  projects/clang370-import/usr.sbin/pkg/config.h
  projects/clang370-import/usr.sbin/pkg/pkg.c
  projects/clang370-import/usr.sbin/rtsold/Makefile
  projects/clang370-import/usr.sbin/rtsold/if.c
  projects/clang370-import/usr.sbin/rtsold/rtsold.c
  projects/clang370-import/usr.sbin/service/service.sh
  projects/clang370-import/usr.sbin/wpa/hostapd/Makefile
  projects/clang370-import/usr.sbin/wpa/wpa_supplicant/Makefile
Directory Properties:
  projects/clang370-import/   (props changed)
  projects/clang370-import/etc/   (props changed)
  projects/clang370-import/lib/libc/   (props changed)
  projects/clang370-import/sbin/   (props changed)
  projects/clang370-import/share/   (props changed)
  projects/clang370-import/share/man/man4/   (props changed)
  projects/clang370-import/sys/   (props changed)
  projects/clang370-import/sys/boot/   (props changed)
  projects/clang370-import/sys/cddl/contrib/opensolaris/   (props changed)
  projects/clang370-import/sys/conf/   (props changed)
  projects/clang370-import/sys/contrib/ipfilter/   (props changed)
  projects/clang370-import/usr.sbin/rtsold/   (props changed)

Modified: projects/clang370-import/etc/rc.d/bgfsck
==============================================================================
--- projects/clang370-import/etc/rc.d/bgfsck	Fri Sep 11 17:19:24 2015	(r287680)
+++ projects/clang370-import/etc/rc.d/bgfsck	Fri Sep 11 17:20:03 2015	(r287681)
@@ -12,17 +12,24 @@
 name="background_fsck"
 rcvar="background_fsck"
 start_cmd="bgfsck_start"
+start_precmd="bgfsck_start_precmd"
 stop_cmd=":"
 
+bgfsck_start_precmd()
+{
+	if [ $($ID -u) != 0 ]; then
+		err 1 "Must be root."
+	fi
+}
+
 bgfsck_start()
 {
-	if [ -z "${rc_force}" ]; then
-		background_fsck_delay=${background_fsck_delay:-0}
-	else
+	: ${background_fsck_delay=0}
+	if [ -n "${rc_force}" ]; then
 		background_fsck_delay=0
 	fi
 	if [ ${background_fsck_delay} -lt 0 ]; then
-		echo "Background file system checks delayed indefinitely"
+		warn "Background file system checks delayed indefinitely"
 		return 0
 	fi
 

Modified: projects/clang370-import/etc/rc.d/jail
==============================================================================
--- projects/clang370-import/etc/rc.d/jail	Fri Sep 11 17:19:24 2015	(r287680)
+++ projects/clang370-import/etc/rc.d/jail	Fri Sep 11 17:20:03 2015	(r287681)
@@ -419,7 +419,7 @@ jail_status()
 
 jail_start()
 {
-	local _j _jid _jl
+	local _j _jid _jl _id _name
 
 	if [ $# = 0 ]; then
 		return
@@ -432,10 +432,9 @@ jail_start()
 		command_args="-f $jail_conf -c"
 		_tmp=`mktemp -t jail` || exit 3
 		if $command $rc_flags $command_args >> $_tmp 2>&1; then
-			$jail_jls jid name | while read IN; do
-				set -- $IN
-				echo -n " $2"
-				echo $1 > /var/run/jail_$2.id
+			$jail_jls jid name | while read _id _name; do
+				echo -n " $_name"
+				echo $_id > /var/run/jail_${_name}.id
 			done
 		else
 			tail -1 $_tmp

Modified: projects/clang370-import/etc/rc.d/netif
==============================================================================
--- projects/clang370-import/etc/rc.d/netif	Fri Sep 11 17:19:24 2015	(r287680)
+++ projects/clang370-import/etc/rc.d/netif	Fri Sep 11 17:20:03 2015	(r287681)
@@ -88,7 +88,7 @@ netif_start()
 	fi
 	if [ -f /etc/rc.d/routing -a -n "$cmdifn" ] ; then
 		for _if in $cmdifn; do
-			/etc/rc.d/routing start any $_if
+			/etc/rc.d/routing static any $_if
 		done
 	fi
 }

Modified: projects/clang370-import/games/fortune/datfiles/freebsd-tips
==============================================================================
--- projects/clang370-import/games/fortune/datfiles/freebsd-tips	Fri Sep 11 17:19:24 2015	(r287680)
+++ projects/clang370-import/games/fortune/datfiles/freebsd-tips	Fri Sep 11 17:20:03 2015	(r287681)
@@ -234,7 +234,7 @@ To erase a line you've written at the co
 To find the hostname associated with an IP address, use
 
 	drill -x IP_address
-		-- Allan Jude <allanjude@freebsd.org>
+		-- Allan Jude <allanjude@FreeBSD.org>
 %
 To obtain a neat PostScript rendering of a manual page, use ``-t'' switch
 of the man(1) utility: ``man -t <topic>''.  For example:

Modified: projects/clang370-import/lib/libc/gen/sysctl.3
==============================================================================
--- projects/clang370-import/lib/libc/gen/sysctl.3	Fri Sep 11 17:19:24 2015	(r287680)
+++ projects/clang370-import/lib/libc/gen/sysctl.3	Fri Sep 11 17:20:03 2015	(r287681)
@@ -28,7 +28,7 @@
 .\"	@(#)sysctl.3	8.4 (Berkeley) 5/9/95
 .\" $FreeBSD$
 .\"
-.Dd May 17, 2013
+.Dd September 10, 2015
 .Dt SYSCTL 3
 .Os
 .Sh NAME
@@ -736,8 +736,6 @@ privilege may change the value.
 .It "VM_LOADAVG	struct loadavg	no"
 .It "VM_TOTAL	struct vmtotal	no"
 .It "VM_SWAPPING_ENABLED	integer	maybe"
-.It "VM_V_CACHE_MAX	integer	yes"
-.It "VM_V_CACHE_MIN	integer	yes"
 .It "VM_V_FREE_MIN	integer	yes"
 .It "VM_V_FREE_RESERVED	integer	yes"
 .It "VM_V_FREE_TARGET	integer	yes"
@@ -757,12 +755,6 @@ The returned data consists of a
 1 if process swapping is enabled or 0 if disabled.
 This variable is
 permanently set to 0 if the kernel was built with swapping disabled.
-.It Li VM_V_CACHE_MAX
-Maximum desired size of the cache queue.
-.It Li VM_V_CACHE_MIN
-Minimum desired size of the cache queue.
-If the cache queue size
-falls very far below this value, the pageout daemon is awakened.
 .It Li VM_V_FREE_MIN
 Minimum amount of memory (cache memory plus free memory)
 required to be available before a process waiting on memory will be

Modified: projects/clang370-import/lib/libc/net/getnameinfo.c
==============================================================================
--- projects/clang370-import/lib/libc/net/getnameinfo.c	Fri Sep 11 17:19:24 2015	(r287680)
+++ projects/clang370-import/lib/libc/net/getnameinfo.c	Fri Sep 11 17:20:03 2015	(r287681)
@@ -78,6 +78,8 @@ getnameinfo(const struct sockaddr *sa, s
     char *host, size_t hostlen, char *serv, size_t servlen,
     int flags)
 {
+	if (sa == NULL)
+		return (EAI_FAIL);
 
 	switch (sa->sa_family) {
 	case AF_INET:
@@ -124,25 +126,19 @@ getnameinfo_inet(const struct sockaddr *
 	struct servent *sp;
 	struct hostent *hp;
 	u_short port;
-	int family, i;
 	const char *addr;
 	u_int32_t v4a;
 	int h_error;
 	char numserv[512];
 	char numaddr[512];
 
-	if (sa == NULL)
-		return EAI_FAIL;
-
-	family = sa->sa_family;
-	for (i = 0; afdl[i].a_af; i++)
-		if (afdl[i].a_af == family) {
-			afd = &afdl[i];
-			goto found;
-		}
-	return EAI_FAMILY;
+	for (afd = &afdl[0]; afd->a_af > 0; afd++) {
+		if (afd->a_af == sa->sa_family)
+			break;
+	}
+	if (afd->a_af == 0)
+		return (EAI_FAMILY);
 
- found:
 	if (salen != afd->a_socklen)
 		return EAI_FAIL;
 

Modified: projects/clang370-import/lib/libc/net/if_nametoindex.c
==============================================================================
--- projects/clang370-import/lib/libc/net/if_nametoindex.c	Fri Sep 11 17:19:24 2015	(r287680)
+++ projects/clang370-import/lib/libc/net/if_nametoindex.c	Fri Sep 11 17:20:03 2015	(r287681)
@@ -70,9 +70,7 @@ if_nametoindex(const char *ifname)
 
 	s = _socket(AF_INET, SOCK_DGRAM | SOCK_CLOEXEC, 0);
 	if (s != -1) {
-#ifdef PURIFY
 		memset(&ifr, 0, sizeof(ifr));
-#endif
 		strlcpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
 		if (_ioctl(s, SIOCGIFINDEX, &ifr) != -1) {
 			_close(s);

Modified: projects/clang370-import/lib/libc/posix1e/acl_entry.c
==============================================================================
--- projects/clang370-import/lib/libc/posix1e/acl_entry.c	Fri Sep 11 17:19:24 2015	(r287680)
+++ projects/clang370-import/lib/libc/posix1e/acl_entry.c	Fri Sep 11 17:20:03 2015	(r287681)
@@ -91,7 +91,7 @@ acl_create_entry_np(acl_t *acl_p, acl_en
 		return (-1);
 	}
 
-	if (offset < 0 || offset >= acl_int->acl_cnt) {
+	if (offset < 0 || offset > acl_int->acl_cnt) {
 		errno = EINVAL;
 		return (-1);
 	}

Modified: projects/clang370-import/lib/libc/tests/sys/Makefile
==============================================================================
--- projects/clang370-import/lib/libc/tests/sys/Makefile	Fri Sep 11 17:19:24 2015	(r287680)
+++ projects/clang370-import/lib/libc/tests/sys/Makefile	Fri Sep 11 17:20:03 2015	(r287681)
@@ -25,10 +25,7 @@ NETBSD_ATF_TESTS_C+=		kevent_test
 NETBSD_ATF_TESTS_C+=		kill_test
 NETBSD_ATF_TESTS_C+=		link_test
 NETBSD_ATF_TESTS_C+=		listen_test
-# On arm64 triggers panic ARM64TODO: pmap_mincore (PR202307).
-.if ${MACHINE_CPUARCH} != "aarch64"
 NETBSD_ATF_TESTS_C+=		mincore_test
-.endif
 NETBSD_ATF_TESTS_C+=		mkdir_test
 NETBSD_ATF_TESTS_C+=		mkfifo_test
 NETBSD_ATF_TESTS_C+=		mknod_test

Modified: projects/clang370-import/lib/libthr/thread/thr_once.c
==============================================================================
--- projects/clang370-import/lib/libthr/thread/thr_once.c	Fri Sep 11 17:19:24 2015	(r287680)
+++ projects/clang370-import/lib/libthr/thread/thr_once.c	Fri Sep 11 17:20:03 2015	(r287681)
@@ -50,9 +50,11 @@ __weak_reference(_pthread_once, pthread_
 static void
 once_cancel_handler(void *arg)
 {
-	pthread_once_t *once_control = arg;
+	pthread_once_t *once_control;
 
-	if (atomic_cmpset_rel_int(&once_control->state, ONCE_IN_PROGRESS, ONCE_NEVER_DONE))
+	once_control = arg;
+	if (atomic_cmpset_rel_int(&once_control->state, ONCE_IN_PROGRESS,
+	    ONCE_NEVER_DONE))
 		return;
 	atomic_store_rel_int(&once_control->state, ONCE_NEVER_DONE);
 	_thr_umtx_wake(&once_control->state, INT_MAX, 0);
@@ -68,16 +70,22 @@ _pthread_once(pthread_once_t *once_contr
 
 	for (;;) {
 		state = once_control->state;
-		if (state == ONCE_DONE)
+		if (state == ONCE_DONE) {
+			atomic_thread_fence_acq();
 			return (0);
+		}
 		if (state == ONCE_NEVER_DONE) {
-			if (atomic_cmpset_acq_int(&once_control->state, state, ONCE_IN_PROGRESS))
+			if (atomic_cmpset_int(&once_control->state, state,
+			    ONCE_IN_PROGRESS))
 				break;
 		} else if (state == ONCE_IN_PROGRESS) {
-			if (atomic_cmpset_acq_int(&once_control->state, state, ONCE_WAIT))
-				_thr_umtx_wait_uint(&once_control->state, ONCE_WAIT, NULL, 0);
+			if (atomic_cmpset_int(&once_control->state, state,
+			    ONCE_WAIT))
+				_thr_umtx_wait_uint(&once_control->state,
+				    ONCE_WAIT, NULL, 0);
 		} else if (state == ONCE_WAIT) {
-			_thr_umtx_wait_uint(&once_control->state, state, NULL, 0);
+			_thr_umtx_wait_uint(&once_control->state, state,
+			    NULL, 0);
 		} else
 			return (EINVAL);
         }
@@ -86,7 +94,8 @@ _pthread_once(pthread_once_t *once_contr
 	THR_CLEANUP_PUSH(curthread, once_cancel_handler, once_control);
 	init_routine();
 	THR_CLEANUP_POP(curthread, 0);
-	if (atomic_cmpset_rel_int(&once_control->state, ONCE_IN_PROGRESS, ONCE_DONE))
+	if (atomic_cmpset_rel_int(&once_control->state, ONCE_IN_PROGRESS,
+	    ONCE_DONE))
 		return (0);
 	atomic_store_rel_int(&once_control->state, ONCE_DONE);
 	_thr_umtx_wake(&once_control->state, INT_MAX, 0);
@@ -94,6 +103,6 @@ _pthread_once(pthread_once_t *once_contr
 }
 
 void
-_thr_once_init()
+_thr_once_init(void)
 {
 }

Modified: projects/clang370-import/release/amd64/mkisoimages.sh
==============================================================================
--- projects/clang370-import/release/amd64/mkisoimages.sh	Fri Sep 11 17:19:24 2015	(r287680)
+++ projects/clang370-import/release/amd64/mkisoimages.sh	Fri Sep 11 17:20:03 2015	(r287681)
@@ -34,7 +34,7 @@ if [ "x$1" = "x-b" ]; then
 	mkdir efi
 	mount -t msdosfs /dev/$device efi
 	mkdir -p efi/efi/boot
-	cp ${4}/boot/loader.efi efi/efi/boot/bootx64.efi
+	cp "$4/boot/loader.efi" efi/efi/boot/bootx64.efi
 	umount efi
 	rmdir efi
 	mdconfig -d -u $device
@@ -46,15 +46,15 @@ else
 fi
 
 if [ $# -lt 3 ]; then
-	echo Usage: $0 '[-b] image-label image-name base-bits-dir [extra-bits-dir]'
+	echo "Usage: $0 [-b] image-label image-name base-bits-dir [extra-bits-dir]"
 	exit 1
 fi
 
-LABEL=`echo $1 | tr '[:lower:]' '[:upper:]'`; shift
-NAME=$1; shift
+LABEL=`echo "$1" | tr '[:lower:]' '[:upper:]'`; shift
+NAME="$1"; shift
 
 publisher="The FreeBSD Project.  http://www.FreeBSD.org/"
-echo "/dev/iso9660/$LABEL / cd9660 ro 0 0" > $1/etc/fstab
-makefs -t cd9660 $bootable -o rockridge -o label=$LABEL -o publisher="$publisher" $NAME $*
-rm $1/etc/fstab
+echo "/dev/iso9660/$LABEL / cd9660 ro 0 0" > "$1/etc/fstab"
+makefs -t cd9660 $bootable -o rockridge -o label="$LABEL" -o publisher="$publisher" "$NAME" "$@"
+rm "$1/etc/fstab"
 rm -f efiboot.img

Modified: projects/clang370-import/release/i386/mkisoimages.sh
==============================================================================
--- projects/clang370-import/release/i386/mkisoimages.sh	Fri Sep 11 17:19:24 2015	(r287680)
+++ projects/clang370-import/release/i386/mkisoimages.sh	Fri Sep 11 17:20:03 2015	(r287681)
@@ -32,14 +32,14 @@ else
 fi
 
 if [ $# -lt 3 ]; then
-	echo Usage: $0 '[-b] image-label image-name base-bits-dir [extra-bits-dir]'
+	echo "Usage: $0 [-b] image-label image-name base-bits-dir [extra-bits-dir]"
 	exit 1
 fi
 
-LABEL=`echo $1 | tr '[:lower:]' '[:upper:]'`; shift
-NAME=$1; shift
+LABEL=`echo "$1" | tr '[:lower:]' '[:upper:]'`; shift
+NAME="$1"; shift
 
 publisher="The FreeBSD Project.  http://www.FreeBSD.org/"
-echo "/dev/iso9660/$LABEL / cd9660 ro 0 0" > $1/etc/fstab
-makefs -t cd9660 $bootable -o rockridge -o label=$LABEL -o publisher="$publisher" $NAME $*
-rm $1/etc/fstab
+echo "/dev/iso9660/$LABEL / cd9660 ro 0 0" > "$1/etc/fstab"
+makefs -t cd9660 $bootable -o rockridge -o label="$LABEL" -o publisher="$publisher" "$NAME" "$@"
+rm "$1/etc/fstab"

Modified: projects/clang370-import/release/pc98/mkisoimages.sh
==============================================================================
--- projects/clang370-import/release/pc98/mkisoimages.sh	Fri Sep 11 17:19:24 2015	(r287680)
+++ projects/clang370-import/release/pc98/mkisoimages.sh	Fri Sep 11 17:20:03 2015	(r287681)
@@ -32,14 +32,14 @@ else
 fi
 
 if [ $# -lt 3 ]; then
-	echo Usage: $0 '[-b] image-label image-name base-bits-dir [extra-bits-dir]'
+	echo "Usage: $0 [-b] image-label image-name base-bits-dir [extra-bits-dir]"
 	exit 1
 fi
 
-LABEL=`echo $1 | tr '[:lower:]' '[:upper:]'`; shift
-NAME=$1; shift
+LABEL=`echo "$1" | tr '[:lower:]' '[:upper:]'`; shift
+NAME="$1"; shift
 
 publisher="The FreeBSD Project.  http://www.FreeBSD.org/"
-echo "/dev/iso9660/$LABEL / cd9660 ro 0 0" > $1/etc/fstab
-makefs -t cd9660 $bootable -o rockridge -o label=$LABEL -o publisher="$publisher" $NAME $*
-rm $1/etc/fstab
+echo "/dev/iso9660/$LABEL / cd9660 ro 0 0" > "$1/etc/fstab"
+makefs -t cd9660 $bootable -o rockridge -o label="$LABEL" -o publisher="$publisher" "$NAME" "$@"
+rm "$1/etc/fstab"

Modified: projects/clang370-import/release/powerpc/mkisoimages.sh
==============================================================================
--- projects/clang370-import/release/powerpc/mkisoimages.sh	Fri Sep 11 17:19:24 2015	(r287680)
+++ projects/clang370-import/release/powerpc/mkisoimages.sh	Fri Sep 11 17:20:03 2015	(r287681)
@@ -25,18 +25,18 @@
 
 if [ "x$1" = "x-b" ]; then
 	# Apple boot code
-	uudecode -o /tmp/hfs-boot-block.bz2 `dirname $0`/hfs-boot.bz2.uu
+	uudecode -o /tmp/hfs-boot-block.bz2 "`dirname "$0"`/hfs-boot.bz2.uu"
 	bzip2 -d /tmp/hfs-boot-block.bz2
 	OFFSET=$(hd /tmp/hfs-boot-block | grep 'Loader START' | cut -f 1 -d ' ')
 	OFFSET=0x$(echo 0x$OFFSET | awk '{printf("%x\n",$1/512);}')
-	dd if=$4/boot/loader of=/tmp/hfs-boot-block seek=$OFFSET conv=notrunc
+	dd if="$4/boot/loader" of=/tmp/hfs-boot-block seek=$OFFSET conv=notrunc
 
 	bootable="-o bootimage=macppc;/tmp/hfs-boot-block -o no-emul-boot"
 
 	# pSeries/PAPR boot code
-	mkdir -p $4/ppc/chrp
-	cp $4/boot/loader $4/ppc/chrp
-	cat > $4/ppc/bootinfo.txt << EOF
+	mkdir -p "$4/ppc/chrp"
+	cp "$4/boot/loader" "$4/ppc/chrp"
+	cat > "$4/ppc/bootinfo.txt" << EOF
 <chrp-boot>
 <description>FreeBSD Install</description>
 <os-name>FreeBSD</os-name>
@@ -46,7 +46,7 @@ EOF
 	bootable="$bootable -o chrp-boot"
 
 	# Playstation 3 boot code
-	echo "FreeBSD Install='/boot/loader.ps3'" > $4/etc/kboot.conf
+	echo "FreeBSD Install='/boot/loader.ps3'" > "$4/etc/kboot.conf"
 
 	shift
 else
@@ -54,16 +54,16 @@ else
 fi
 
 if [ $# -lt 3 ]; then
-	echo Usage: $0 '[-b] image-label image-name base-bits-dir [extra-bits-dir]'
+	echo "Usage: $0 [-b] image-label image-name base-bits-dir [extra-bits-dir]"
 	exit 1
 fi
 
-LABEL=`echo $1 | tr '[:lower:]' '[:upper:]'`; shift
-NAME=$1; shift
+LABEL=`echo "$1" | tr '[:lower:]' '[:upper:]'`; shift
+NAME="$1"; shift
 
 publisher="The FreeBSD Project.  http://www.FreeBSD.org/"
-echo "/dev/iso9660/$LABEL / cd9660 ro 0 0" > $1/etc/fstab
-makefs -t cd9660 $bootable -o rockridge -o label=$LABEL -o publisher="$publisher" $NAME $*
-rm $1/etc/fstab
+echo "/dev/iso9660/$LABEL / cd9660 ro 0 0" > "$1/etc/fstab"
+makefs -t cd9660 $bootable -o rockridge -o label="$LABEL" -o publisher="$publisher" "$NAME" "$@"
+rm "$1/etc/fstab"
 rm /tmp/hfs-boot-block
-rm -rf $1/ppc
+rm -rf "$1/ppc"

Modified: projects/clang370-import/release/sparc64/mkisoimages.sh
==============================================================================
--- projects/clang370-import/release/sparc64/mkisoimages.sh	Fri Sep 11 17:19:24 2015	(r287680)
+++ projects/clang370-import/release/sparc64/mkisoimages.sh	Fri Sep 11 17:20:03 2015	(r287681)
@@ -23,62 +23,62 @@
 # extra-bits-dir, if provided, contains additional files to be merged
 # into base-bits-dir as part of making the image.
 if [ $# -lt 3 ]; then
-	echo Usage: $0 '[-b] image-label image-name base-bits-dir [extra-bits-dir]' > /dev/stderr
+	echo "Usage: $0 [-b] image-label image-name base-bits-dir [extra-bits-dir]" > /dev/stderr
 	exit 1
 fi
 
-case $1 in
--b)	BOPT=$1; shift ;;
+case "$1" in
+-b)	BOPT="$1"; shift ;;
 esac
-LABEL=`echo $1 | tr '[:lower:]' '[:upper:]'`; shift
-NAME=$1; shift
-BASEBITSDIR=$1
+LABEL=`echo "$1" | tr '[:lower:]' '[:upper:]'`; shift
+NAME="$1"; shift
+BASEBITSDIR="$1"
 
 # Create an ISO image
 publisher="The FreeBSD Project.  http://www.FreeBSD.org/"
-echo "/dev/iso9660/$LABEL / cd9660 ro 0 0" > "${BASEBITSDIR}/etc/fstab"
-makefs -t cd9660 -o rockridge -o label="$LABEL" -o publisher="$publisher" ${NAME}.tmp $*
-rm "${BASEBITSDIR}/etc/fstab"
+echo "/dev/iso9660/$LABEL / cd9660 ro 0 0" > "$BASEBITSDIR/etc/fstab"
+makefs -t cd9660 -o rockridge -o label="$LABEL" -o publisher="$publisher" "$NAME.tmp" "$@"
+rm "$BASEBITSDIR/etc/fstab"
 
 if [ "x$BOPT" != "x-b" ]; then
-	mv ${NAME}.tmp ${NAME}
+	mv "$NAME.tmp" "$NAME"
 	exit 0
 fi
 
 TMPIMGDIR=`mktemp -d /tmp/bootfs.XXXXXXXX` || exit 1
-BOOTFSDIR="${TMPIMGDIR}/bootfs"
-BOOTFSIMG="${TMPIMGDIR}/bootfs.img"
+BOOTFSDIR="$TMPIMGDIR/bootfs"
+BOOTFSIMG="$TMPIMGDIR/bootfs.img"
 
 # Create a boot filesystem
-mkdir -p "${BOOTFSDIR}/boot"
-cp -p "${BASEBITSDIR}/boot/loader" "${BOOTFSDIR}/boot"
-makefs -t ffs -B be -M 512k "${BOOTFSIMG}" "${BOOTFSDIR}"
-dd if="${BASEBITSDIR}/boot/boot1" of="${BOOTFSIMG}" bs=512 conv=notrunc,sync
+mkdir -p "$BOOTFSDIR/boot"
+cp -p "$BASEBITSDIR/boot/loader" "$BOOTFSDIR/boot"
+makefs -t ffs -B be -M 512k "$BOOTFSIMG" "$BOOTFSDIR"
+dd if="$BASEBITSDIR/boot/boot1" of="$BOOTFSIMG" bs=512 conv=notrunc,sync
 
 # Create a boot ISO image
 : ${CYLSIZE:=640}
-ISOSIZE=$(stat -f %z ${NAME}.tmp)
-ISOBLKS=$(((${ISOSIZE} + 511) / 512))
-ISOCYLS=$(((${ISOBLKS} + (${CYLSIZE} - 1)) / ${CYLSIZE}))
-
-BOOTFSSIZE=$(stat -f %z "${BOOTFSIMG}")
-BOOTFSBLKS=$(((${BOOTFSSIZE} + 511) / 512))
-BOOTFSCYLS=$(((${BOOTFSBLKS} + (${CYLSIZE} - 1)) / ${CYLSIZE}))
+ISOSIZE=$(stat -f %z "$NAME.tmp")
+ISOBLKS=$((($ISOSIZE + 511) / 512))
+ISOCYLS=$((($ISOBLKS + ($CYLSIZE - 1)) / $CYLSIZE))
+
+BOOTFSSIZE=$(stat -f %z "$BOOTFSIMG")
+BOOTFSBLKS=$((($BOOTFSSIZE + 511) / 512))
+BOOTFSCYLS=$((($BOOTFSBLKS + ($CYLSIZE - 1)) / $CYLSIZE))
 
-ENDCYL=$((${ISOCYLS} + ${BOOTFSCYLS}))
-NSECTS=$((${ENDCYL} * 1 * ${CYLSIZE}))
+ENDCYL=$(($ISOCYLS + $BOOTFSCYLS))
+NSECTS=$(($ENDCYL * 1 * $CYLSIZE))
 
-dd if=${NAME}.tmp of=${NAME} bs=${CYLSIZE}b conv=notrunc,sync
-dd if=${BOOTFSIMG} of=${NAME} bs=${CYLSIZE}b seek=${ISOCYLS} conv=notrunc,sync
+dd if="$NAME.tmp" of="$NAME" bs="${CYLSIZE}b" conv=notrunc,sync
+dd if="$BOOTFSIMG" of="$NAME" bs="${CYLSIZE}b" seek=$ISOCYLS conv=notrunc,sync
 # The number of alternative cylinders is always 2.
-dd if=/dev/zero of=${NAME} bs=${CYLSIZE}b seek=${ENDCYL} count=2 conv=notrunc,sync
-rm -rf ${NAME}.tmp ${TMPIMGDIR}
+dd if=/dev/zero of="$NAME" bs="${CYLSIZE}b" seek=$ENDCYL count=2 conv=notrunc,sync
+rm -rf "$NAME.tmp" "$TMPIMGDIR"
 
 # Write VTOC8 label to boot ISO image
-MD=`mdconfig -a -t vnode -S 512 -y 1 -x ${CYLSIZE} -f ${NAME}`
-gpart create -s VTOC8 ${MD}
+MD=`mdconfig -a -t vnode -S 512 -y 1 -x "$CYLSIZE" -f "$NAME"`
+gpart create -s VTOC8 $MD
 # !4: usr, for ISO image part
-gpart add -i 1 -s $((${ISOCYLS} * ${CYLSIZE} * 512))b -t \!4 ${MD}
+gpart add -i 1 -s "$(($ISOCYLS * $CYLSIZE * 512))b" -t \!4 $MD
 # !2: root, for bootfs part.
-gpart add -i 6 -s $((${BOOTFSCYLS} * ${CYLSIZE} * 512))b -t \!2 ${MD}
+gpart add -i 6 -s "$(($BOOTFSCYLS * $CYLSIZE * 512))b" -t \!2 $MD
 mdconfig -d -u ${MD#md}

Modified: projects/clang370-import/sbin/ifconfig/ifgif.c
==============================================================================
--- projects/clang370-import/sbin/ifconfig/ifgif.c	Fri Sep 11 17:19:24 2015	(r287680)
+++ projects/clang370-import/sbin/ifconfig/ifgif.c	Fri Sep 11 17:20:03 2015	(r287681)
@@ -51,7 +51,7 @@ static const char rcsid[] =
 
 #include "ifconfig.h"
 
-#define	GIFBITS	"\020\1ACCEPT_REV_ETHIP_VER\2IGNORE_SOURCE\5SEND_REV_ETHIP_VER"
+#define	GIFBITS	"\020\2IGNORE_SOURCE"
 
 static void	gif_status(int);
 
@@ -70,8 +70,7 @@ gif_status(int s)
 }
 
 static void
-setgifopts(const char *val,
-	int d, int s, const struct afswtch *afp)
+setgifopts(const char *val, int d, int s, const struct afswtch *afp)
 {
 	int opts;
 
@@ -93,12 +92,8 @@ setgifopts(const char *val,
 }
 
 static struct cmd gif_cmds[] = {
-	DEF_CMD("accept_rev_ethip_ver",	GIF_ACCEPT_REVETHIP,	setgifopts),
-	DEF_CMD("-accept_rev_ethip_ver",-GIF_ACCEPT_REVETHIP,	setgifopts),
 	DEF_CMD("ignore_source",	GIF_IGNORE_SOURCE,	setgifopts),
 	DEF_CMD("-ignore_source",	-GIF_IGNORE_SOURCE,	setgifopts),
-	DEF_CMD("send_rev_ethip_ver",	GIF_SEND_REVETHIP,	setgifopts),
-	DEF_CMD("-send_rev_ethip_ver",	-GIF_SEND_REVETHIP,	setgifopts),
 };
 
 static struct afswtch af_gif = {
@@ -110,11 +105,9 @@ static struct afswtch af_gif = {
 static __constructor void
 gif_ctor(void)
 {
-#define	N(a)	(sizeof(a) / sizeof(a[0]))
 	size_t i;
 
-	for (i = 0; i < N(gif_cmds); i++)
+	for (i = 0; i < nitems(gif_cmds); i++)
 		cmd_register(&gif_cmds[i]);
 	af_register(&af_gif);
-#undef N
 }

Modified: projects/clang370-import/sbin/rtsol/Makefile
==============================================================================
--- projects/clang370-import/sbin/rtsol/Makefile	Fri Sep 11 17:19:24 2015	(r287680)
+++ projects/clang370-import/sbin/rtsol/Makefile	Fri Sep 11 17:20:03 2015	(r287681)
@@ -14,15 +14,13 @@
 #
 # $FreeBSD$
 
-SRCDIR=	${.CURDIR}/../../usr.sbin/rtsold
-
-.PATH:	${SRCDIR}
+.PATH:	${.CURDIR}/../../usr.sbin/rtsold
 
 PROG=	rtsol
 SRCS=	rtsold.c rtsol.c if.c probe.c dump.c rtsock.c
 MAN=
 
 WARNS?=	3
-CFLAGS+= -DHAVE_ARC4RANDOM -DHAVE_POLL_H -DSMALL
+CFLAGS+= -DHAVE_ARC4RANDOM -DSMALL
 
 .include <bsd.prog.mk>

Modified: projects/clang370-import/share/dtrace/nfsattrstats
==============================================================================
--- projects/clang370-import/share/dtrace/nfsattrstats	Fri Sep 11 17:19:24 2015	(r287680)
+++ projects/clang370-import/share/dtrace/nfsattrstats	Fri Sep 11 17:20:03 2015	(r287681)
@@ -56,7 +56,7 @@ syscall:::return
         self->syscallname = "";
 }
 
-nfsclient:::
+nfscl:::
 /self->syscallname != 0 && self->syscallname != ""/
 {
 
@@ -64,7 +64,7 @@ nfsclient:::
 	    self->syscallname);
 }
 
-nfsclient:::
+nfscl:::
 /self->syscallname == 0 || self->syscallname == ""/
 {
 

Modified: projects/clang370-import/share/dtrace/nfsclienttime
==============================================================================
--- projects/clang370-import/share/dtrace/nfsclienttime	Fri Sep 11 17:19:24 2015	(r287680)
+++ projects/clang370-import/share/dtrace/nfsclienttime	Fri Sep 11 17:20:03 2015	(r287681)
@@ -53,13 +53,13 @@ syscall:::entry
         self->count = 0;
 }
 
-nfsclient:nfs3::start
+nfscl:nfs3::start
 {
 
         self->timestamp = timestamp;
 }
 
-nfsclient:nfs3::done
+nfscl:nfs3::done
 {
 
         self->count += (timestamp - self->timestamp);

Modified: projects/clang370-import/share/man/man4/blackhole.4
==============================================================================
--- projects/clang370-import/share/man/man4/blackhole.4	Fri Sep 11 17:19:24 2015	(r287680)
+++ projects/clang370-import/share/man/man4/blackhole.4	Fri Sep 11 17:20:03 2015	(r287681)
@@ -12,25 +12,35 @@
 .\"
 .\"
 .\" $FreeBSD$
-.Dd January 1, 2007
+.Dd September 6, 2015
 .Dt BLACKHOLE 4
 .Os
 .Sh NAME
 .Nm blackhole
 .Nd a
 .Xr sysctl 8
-MIB for manipulating behaviour in respect of refused TCP or UDP connection
+MIB for manipulating behaviour in respect of refused SCTP, TCP, or UDP connection
 attempts
 .Sh SYNOPSIS
-.Cd sysctl net.inet.tcp.blackhole[=[0 | 1 | 2]]
-.Cd sysctl net.inet.udp.blackhole[=[0 | 1]]
+.Cd sysctl net.inet.sctp.blackhole Ns Op = Ns Brq "0 | 1 | 2"
+.Cd sysctl net.inet.tcp.blackhole Ns Op = Ns Brq "0 | 1 | 2"
+.Cd sysctl net.inet.udp.blackhole Ns Op = Ns Brq "0 | 1"
 .Sh DESCRIPTION
 The
 .Nm
 .Xr sysctl 8
 MIB is used to control system behaviour when connection requests
-are received on TCP or UDP ports where there is no socket listening.
+are received on SCTP, TCP, or UDP ports where there is no socket listening.
 .Pp
+The blackhole behaviour is useful to slow down an attacker who is port-scanning
+a system in an attempt to detect vulnerable services.
+It might also slow down an attempted denial of service attack.
+.Ss SCTP
+Setting the SCTP blackhole MIB to a numeric value of one
+will prevent sending an ABORT packet in response to an incoming INIT.
+A MIB value of two will do the same, but will also prevent sending an ABORT packet
+when unexpected packets are received.
+.Ss TCP
 Normal behaviour, when a TCP SYN segment is received on a port where
 there is no socket accepting connections, is for the system to return
 a RST segment, and drop the connection.
@@ -44,20 +54,15 @@ as a blackhole.
 By setting the MIB value to two, any segment arriving
 on a closed port is dropped without returning a RST.
 This provides some degree of protection against stealth port scans.
-.Pp
-In the UDP instance, enabling blackhole behaviour turns off the sending
+.Ss UDP
+Enabling blackhole behaviour turns off the sending
 of an ICMP port unreachable message in response to a UDP datagram which
 arrives on a port where there is no socket listening.
 It must be noted that this behaviour will prevent remote systems from running
 .Xr traceroute 8
 to a system.
-.Pp
-The blackhole behaviour is useful to slow down anyone who is port scanning
-a system, attempting to detect vulnerable services on a system.
-It could potentially also slow down someone who is attempting a denial
-of service attack.
 .Sh WARNING
-The TCP and UDP blackhole features should not be regarded as a replacement
+The SCTP, TCP, and UDP blackhole features should not be regarded as a replacement
 for firewall solutions.
 Better security would consist of the
 .Nm
@@ -68,6 +73,7 @@ This mechanism is not a substitute for s
 It should be used together with other security mechanisms.
 .Sh SEE ALSO
 .Xr ip 4 ,
+.Xr sctp 4 ,
 .Xr tcp 4 ,
 .Xr udp 4 ,
 .Xr ipf 8 ,
@@ -80,5 +86,10 @@ The TCP and UDP
 MIBs
 first appeared in
 .Fx 4.0 .
+.Pp
+The SCTP 
+.Nm 
+MIB first appeared in
+.Fx 9.1 .
 .Sh AUTHORS
 .An Geoffrey M. Rehmet

Modified: projects/clang370-import/share/man/man4/gif.4
==============================================================================
--- projects/clang370-import/share/man/man4/gif.4	Fri Sep 11 17:19:24 2015	(r287680)
+++ projects/clang370-import/share/man/man4/gif.4	Fri Sep 11 17:20:03 2015	(r287681)
@@ -29,7 +29,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd October 14, 2014
+.Dd September 10, 2015
 .Dt GIF 4
 .Os
 .Sh NAME
@@ -246,32 +246,3 @@ had a multi-destination behavior, config
 .Dv IFF_LINK0
 flag.
 The behavior is obsolete and is no longer supported.
-.Pp
-On
-.Fx
-6.1, 6.2, 6.3, 7.0, 7.1, and 7.2
-the
-.Nm
-sends and receives incorrect EtherIP packets with reversed version
-field when
-.Xr if_bridge 4
-is used together.  As a workaround on this interoperability issue, the
-following two
-.Xr ifconfig 8
-flags can be used:
-.Bl -tag -width "accept_rev_ethip_ver" -offset indent
-.It accept_rev_ethip_ver
-accepts both correct EtherIP packets and ones with reversed version
-field, if enabled.  If disabled, the
-.Nm
-accepts the correct packets only.  This flag is enabled by default.
-.It send_rev_ethip_ver
-sends EtherIP packets with reversed version field intentionally, if
-enabled.  If disabled, the
-.Nm
-sends the correct packets only.  This flag is disabled by default.
-.El
-.Pp
-If interoperability with the older
-.Fx
-machines is needed, both of these two flags must be enabled.

Modified: projects/clang370-import/share/man/man9/stack.9
==============================================================================
--- projects/clang370-import/share/man/man9/stack.9	Fri Sep 11 17:19:24 2015	(r287680)
+++ projects/clang370-import/share/man/man9/stack.9	Fri Sep 11 17:20:03 2015	(r287681)
@@ -27,7 +27,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd November 16, 2011
+.Dd September 10, 2015
 .Dt STACK 9
 .Os
 .Sh NAME
@@ -36,9 +36,11 @@
 .Sh SYNOPSIS
 .In sys/param.h
 .In sys/stack.h
+.Pp
 In the kernel configuration file:
 .Cd "options DDB"
 .Cd "options STACK"
+.Pp
 .Ft struct stack *
 .Fn stack_create "void"
 .Ft void
@@ -63,6 +65,10 @@ In the kernel configuration file:
 .Fn stack_sbuf_print_ddb "struct sbuf sb*" "const struct stack *st"
 .Ft void
 .Fn stack_save "struct stack *st"
+.Ft void
+.Fn stack_save_td "struct stack *st" "struct thread *td"
+.Ft int
+.Fn stack_save_td_running "struct stack *st" "struct thread *td"
 .Sh DESCRIPTION
 The
 .Nm
@@ -86,6 +92,16 @@ Memory associated with a trace is freed 
 .Pp
 A trace of the current kernel thread's call stack may be captured using
 .Fn stack_save .
+.Fn stack_save_td
+and
+.Fn stack_save_td_running
+can also be used to capture the stack of a caller-specified thread.
+Callers of these functions must own the thread lock of the specified thread.
+.Fn stack_save_td
+can capture the stack of a kernel thread that is not running or
+swapped out at the time of the call.
+.Fn stack_save_td_running
+can capture the stack of a running kernel thread.
 .Pp
 .Fn stack_print
 and
@@ -130,6 +146,23 @@ The utility functions
 and
 .Nm stack_put
 may be used to manipulate stack data structures directly.
+.Sh RETURN VALUES
+.Fn stack_put
+returns 0 on success.
+Otherwise the
+.Dv struct stack
+does not contain space to record additional frames, and a non-zero value is
+returned.
+.Pp
+.Fn stack_save_td_running
+returns 0 when the stack capture was successful and a non-zero error number
+otherwise.
+In particular,
+.Er EAGAIN
+is returned if the thread was running in user mode at the time that the
+capture was attempted, and
+.Er EOPNOTSUPP
+is returned if the operation is not implemented.
 .Sh SEE ALSO
 .Xr ddb 4 ,
 .Xr printf 9 ,

Modified: projects/clang370-import/share/mk/local.meta.sys.mk
==============================================================================
--- projects/clang370-import/share/mk/local.meta.sys.mk	Fri Sep 11 17:19:24 2015	(r287680)
+++ projects/clang370-import/share/mk/local.meta.sys.mk	Fri Sep 11 17:20:03 2015	(r287681)
@@ -13,11 +13,14 @@ MK_INSTALL_AS_USER= yes
 .warning MAKEOBJDIRPREFIX not supported; setting MAKEOBJDIR...
 # put things approximately where they want
 OBJROOT:=${MAKEOBJDIRPREFIX}${SRCTOP:S,/src,,}/
+MAKEOBJDIRPREFIX=
+.export MAKEOBJDIRPREFIX
+.endif
+.if empty(MAKEOBJDIR) || ${MAKEOBJDIR:M*/*} == ""
 # OBJTOP set below
 MAKEOBJDIR=$${.CURDIR:S,$${SRCTOP},$${OBJTOP},}
-MAKEOBJDIRPREFIX=
 # export but do not track
-.export-env MAKEOBJDIRPREFIX MAKEOBJDIR
+.export-env MAKEOBJDIR
 # now for our own use
 MAKEOBJDIR= ${.CURDIR:S,${SRCTOP},${OBJTOP},}
 .endif

Modified: projects/clang370-import/sys/amd64/amd64/trap.c
==============================================================================
--- projects/clang370-import/sys/amd64/amd64/trap.c	Fri Sep 11 17:19:24 2015	(r287680)
+++ projects/clang370-import/sys/amd64/amd64/trap.c	Fri Sep 11 17:20:03 2015	(r287681)
@@ -49,6 +49,7 @@ __FBSDID("$FreeBSD$");
 #include "opt_hwpmc_hooks.h"
 #include "opt_isa.h"
 #include "opt_kdb.h"
+#include "opt_stack.h"
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -91,6 +92,7 @@ PMC_SOFT_DEFINE( , , page_fault, write);
 #ifdef SMP
 #include <machine/smp.h>
 #endif
+#include <machine/stack.h>
 #include <machine/tss.h>
 
 #ifdef KDTRACE_HOOKS
@@ -202,17 +204,24 @@ trap(struct trapframe *frame)
 		goto out;
 	}
 
-#ifdef	HWPMC_HOOKS
-	/*
-	 * CPU PMCs interrupt using an NMI.  If the PMC module is
-	 * active, pass the 'rip' value to the PMC module's interrupt
-	 * handler.  A return value of '1' from the handler means that
-	 * the NMI was handled by it and we can return immediately.
-	 */
-	if (type == T_NMI && pmc_intr &&
-	    (*pmc_intr)(PCPU_GET(cpuid), frame))
-		goto out;
+	if (type == T_NMI) {
+#ifdef HWPMC_HOOKS
+		/*
+		 * CPU PMCs interrupt using an NMI.  If the PMC module is
+		 * active, pass the 'rip' value to the PMC module's interrupt
+		 * handler.  A non-zero return value from the handler means that
+		 * the NMI was consumed by it and we can return immediately.
+		 */
+		if (pmc_intr != NULL &&
+		    (*pmc_intr)(PCPU_GET(cpuid), frame) != 0)
+			goto out;
+#endif
+
+#ifdef STACK
+		if (stack_nmi_handler(frame) != 0)
+			goto out;
 #endif
+	}
 
 	if (type == T_MCHK) {
 		mca_intr();
@@ -625,7 +634,6 @@ trap_pfault(frame, usermode)
 	int usermode;
 {
 	vm_offset_t va;
-	struct vmspace *vm;
 	vm_map_t map;
 	int rv = 0;
 	vm_prot_t ftype;
@@ -687,14 +695,7 @@ trap_pfault(frame, usermode)
 
 		map = kernel_map;
 	} else {
-		/*
-		 * This is a fault on non-kernel virtual memory.  If either
-		 * p or p->p_vmspace is NULL, then the fault is fatal.
-		 */
-		if (p == NULL || (vm = p->p_vmspace) == NULL)
-			goto nogo;
-
-		map = &vm->vm_map;
+		map = &p->p_vmspace->vm_map;
 
 		/*
 		 * When accessing a usermode address, kernel must be
@@ -729,28 +730,8 @@ trap_pfault(frame, usermode)
 	else
 		ftype = VM_PROT_READ;
 
-	if (map != kernel_map) {
-		/*
-		 * Keep swapout from messing with us during this
-		 *	critical time.
-		 */
-		PROC_LOCK(p);
-		++p->p_lock;
-		PROC_UNLOCK(p);
-
-		/* Fault in the user page: */
-		rv = vm_fault(map, va, ftype, VM_FAULT_NORMAL);
-
-		PROC_LOCK(p);
-		--p->p_lock;
-		PROC_UNLOCK(p);
-	} else {
-		/*
-		 * Don't have to worry about process locking or stacks in the
-		 * kernel.
-		 */
-		rv = vm_fault(map, va, ftype, VM_FAULT_NORMAL);
-	}
+	/* Fault in the page. */
+	rv = vm_fault(map, va, ftype, VM_FAULT_NORMAL);
 	if (rv == KERN_SUCCESS) {
 #ifdef HWPMC_HOOKS
 		if (ftype == VM_PROT_READ || ftype == VM_PROT_WRITE) {

Modified: projects/clang370-import/sys/amd64/include/stack.h
==============================================================================
--- projects/clang370-import/sys/amd64/include/stack.h	Fri Sep 11 17:19:24 2015	(r287680)
+++ projects/clang370-import/sys/amd64/include/stack.h	Fri Sep 11 17:20:03 2015	(r287681)
@@ -1,42 +1,6 @@
-/*-
- * Mach Operating System
- * Copyright (c) 1991,1990 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie the
- * rights to redistribute these changes.
- *
- * $FreeBSD$
- */
-
-#ifndef _MACHINE_STACK_H_
-#define	_MACHINE_STACK_H_
-
 /*
- * Stack trace.
+ * This file is in the public domain.
  */
+/* $FreeBSD$ */
 
-struct amd64_frame {
-	struct amd64_frame	*f_frame;
-	long			f_retaddr;
-	long			f_arg0;
-};
-
-#endif /* !_MACHINE_STACK_H_ */
+#include <x86/stack.h>

Modified: projects/clang370-import/sys/arm/arm/stack_machdep.c
==============================================================================
--- projects/clang370-import/sys/arm/arm/stack_machdep.c	Fri Sep 11 17:19:24 2015	(r287680)
+++ projects/clang370-import/sys/arm/arm/stack_machdep.c	Fri Sep 11 17:20:03 2015	(r287681)
@@ -71,6 +71,13 @@ stack_save_td(struct stack *st, struct t
 	stack_capture(st, frame);
 }
 
+int
+stack_save_td_running(struct stack *st, struct thread *td)
+{
+
+	return (EOPNOTSUPP);
+}
+
 void
 stack_save(struct stack *st)
 {

Modified: projects/clang370-import/sys/arm/arm/trap-v6.c
==============================================================================
--- projects/clang370-import/sys/arm/arm/trap-v6.c	Fri Sep 11 17:19:24 2015	(r287680)
+++ projects/clang370-import/sys/arm/arm/trap-v6.c	Fri Sep 11 17:20:03 2015	(r287681)
@@ -500,28 +500,9 @@ abort_handler(struct trapframe *tf, int 
 	onfault = pcb->pcb_onfault;
 	pcb->pcb_onfault = NULL;
 #endif
-	if (map != kernel_map) {
-		/*
-		 * Keep swapout from messing with us during this
-		 *	critical time.
-		 */

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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201509111720.t8BHK4mP047674>