From owner-svn-src-projects@freebsd.org  Sun Feb  5 02:49:45 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 79F7ECD1AA3
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Sun,  5 Feb 2017 02:49:45 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 1691D15F3;
 Sun,  5 Feb 2017 02:49:45 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v152ni87018647;
 Sun, 5 Feb 2017 02:49:44 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v152ng2N018631;
 Sun, 5 Feb 2017 02:49:42 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201702050249.v152ng2N018631@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Sun, 5 Feb 2017 02:49:42 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r313267 - in projects/netbsd-tests-upstream-01-2017:
 cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt
 cddl/contrib/opensolaris/lib/libdtrace/common sbin/ifconfig
 sbin/nvmecontro...
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sun, 05 Feb 2017 02:49:45 -0000

Author: ngie
Date: Sun Feb  5 02:49:42 2017
New Revision: 313267
URL: https://svnweb.freebsd.org/changeset/base/313267

Log:
  MFhead@r313266

Modified:
  projects/netbsd-tests-upstream-01-2017/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.enabled2.ksh
  projects/netbsd-tests-upstream-01-2017/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.include.ksh
  projects/netbsd-tests-upstream-01-2017/cddl/contrib/opensolaris/lib/libdtrace/common/dt_dof.c
  projects/netbsd-tests-upstream-01-2017/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c
  projects/netbsd-tests-upstream-01-2017/cddl/contrib/opensolaris/lib/libdtrace/common/dt_provider.c
  projects/netbsd-tests-upstream-01-2017/sbin/ifconfig/ifieee80211.c
  projects/netbsd-tests-upstream-01-2017/sbin/nvmecontrol/logpage.c
  projects/netbsd-tests-upstream-01-2017/sbin/nvmecontrol/nvmecontrol.8
  projects/netbsd-tests-upstream-01-2017/sbin/nvmecontrol/wdc.c
  projects/netbsd-tests-upstream-01-2017/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c
  projects/netbsd-tests-upstream-01-2017/sys/cddl/contrib/opensolaris/uts/common/sys/dtrace.h
  projects/netbsd-tests-upstream-01-2017/sys/cddl/dev/dtrace/dtrace_ioctl.c
  projects/netbsd-tests-upstream-01-2017/sys/dev/mmc/mmc.c
  projects/netbsd-tests-upstream-01-2017/sys/dev/mmc/mmcreg.h
  projects/netbsd-tests-upstream-01-2017/sys/dev/sdhci/sdhci.c
  projects/netbsd-tests-upstream-01-2017/sys/dev/sdhci/sdhci.h
  projects/netbsd-tests-upstream-01-2017/sys/dev/sdhci/sdhci_fdt.c
  projects/netbsd-tests-upstream-01-2017/sys/dev/sdhci/sdhci_pci.c
  projects/netbsd-tests-upstream-01-2017/sys/kern/kern_descrip.c
  projects/netbsd-tests-upstream-01-2017/sys/kern/subr_witness.c
  projects/netbsd-tests-upstream-01-2017/sys/net/iflib.c
  projects/netbsd-tests-upstream-01-2017/sys/riscv/include/atomic.h
  projects/netbsd-tests-upstream-01-2017/sys/vm/vm_object.h
Directory Properties:
  projects/netbsd-tests-upstream-01-2017/   (props changed)
  projects/netbsd-tests-upstream-01-2017/cddl/   (props changed)
  projects/netbsd-tests-upstream-01-2017/cddl/contrib/opensolaris/   (props changed)
  projects/netbsd-tests-upstream-01-2017/sys/cddl/contrib/opensolaris/   (props changed)

Modified: projects/netbsd-tests-upstream-01-2017/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.enabled2.ksh
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.enabled2.ksh	Sun Feb  5 02:47:34 2017	(r313266)
+++ projects/netbsd-tests-upstream-01-2017/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.enabled2.ksh	Sun Feb  5 02:49:42 2017	(r313267)
@@ -77,7 +77,7 @@ main(int argc, char **argv)
 }
 EOF
 
-cc -c -xO2 test.c
+cc -c -O2 test.c
 if [ $? -ne 0 ]; then
 	print -u2 "failed to compile test.c"
 	exit 1

Modified: projects/netbsd-tests-upstream-01-2017/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.include.ksh
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.include.ksh	Sun Feb  5 02:47:34 2017	(r313266)
+++ projects/netbsd-tests-upstream-01-2017/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.include.ksh	Sun Feb  5 02:49:42 2017	(r313267)
@@ -25,7 +25,7 @@
 #
 # ident	"%Z%%M%	%I%	%E% SMI"
 
-# Make sure <unistd.h> defines _DTRACE_VERSION
+# Make sure <sys/sdt.h> defines _DTRACE_VERSION
 
 DIR=/var/tmp/dtest.$$
 
@@ -33,7 +33,7 @@ mkdir $DIR
 cd $DIR
 
 cat > test.c <<EOF
-#include <unistd.h>
+#include <sys/sdt.h>
 
 int
 main(int argc, char **argv)
@@ -46,7 +46,7 @@ main(int argc, char **argv)
 }
 EOF
 
-cc -xarch=generic -o test test.c
+cc -o test test.c
 if [ $? -ne 0 ]; then
 	print -u2 "failed to compile test.c"
 	exit 1

Modified: projects/netbsd-tests-upstream-01-2017/cddl/contrib/opensolaris/lib/libdtrace/common/dt_dof.c
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/cddl/contrib/opensolaris/lib/libdtrace/common/dt_dof.c	Sun Feb  5 02:47:34 2017	(r313266)
+++ projects/netbsd-tests-upstream-01-2017/cddl/contrib/opensolaris/lib/libdtrace/common/dt_dof.c	Sun Feb  5 02:49:42 2017	(r313267)
@@ -462,18 +462,8 @@ dof_add_probe(dt_idhash_t *dhp, dt_ident
 		dt_buf_write(dtp, &ddo->ddo_enoffs, pip->pi_enoffs,
 		    pip->pi_nenoffs * sizeof (uint32_t), sizeof (uint32_t));
 
-		/*
-		 * If pi_rname isn't set, the relocation will be against the
-		 * function name. If it is, the relocation will be against
-		 * pi_rname. This will be used if the function is scoped
-		 * locally so an alternate symbol is added for the purpose
-		 * of this relocation.
-		 */
-		if (pip->pi_rname == NULL)
-			dofr.dofr_name = dofpr.dofpr_func;
-		else
-			dofr.dofr_name = dof_add_string(ddo, pip->pi_rname);
-		dofr.dofr_type = DOF_RELO_SETX;
+		dofr.dofr_name = dof_add_string(ddo, pip->pi_rname);
+		dofr.dofr_type = DOF_RELO_DOFREL;
 		dofr.dofr_offset = dt_buf_len(&ddo->ddo_probes);
 		dofr.dofr_data = 0;
 

Modified: projects/netbsd-tests-upstream-01-2017/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c	Sun Feb  5 02:47:34 2017	(r313266)
+++ projects/netbsd-tests-upstream-01-2017/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c	Sun Feb  5 02:49:42 2017	(r313267)
@@ -237,7 +237,7 @@ printf("%s:%s(%d): DOODAD\n",__FUNCTION_
 			rel->r_offset = s->dofs_offset +
 			    dofr[j].dofr_offset;
 			rel->r_info = ELF32_R_INFO(count + dep->de_global,
-			    R_386_32);
+			    R_386_PC32);
 #elif defined(__mips__)
 /* XXX */
 printf("%s:%s(%d): DOODAD\n",__FUNCTION__,__FILE__,__LINE__);
@@ -253,15 +253,6 @@ printf("%s:%s(%d): DOODAD\n",__FUNCTION_
 #elif defined(__riscv__)
 /* XXX */
 printf("%s:%s(%d): DOODAD\n",__FUNCTION__,__FILE__,__LINE__);
-#elif defined(__sparc)
-			/*
-			 * Add 4 bytes to hit the low half of this 64-bit
-			 * big-endian address.
-			 */
-			rel->r_offset = s->dofs_offset +
-			    dofr[j].dofr_offset + 4;
-			rel->r_info = ELF32_R_INFO(count + dep->de_global,
-			    R_SPARC_32);
 #else
 #error unknown ISA
 #endif
@@ -270,7 +261,7 @@ printf("%s:%s(%d): DOODAD\n",__FUNCTION_
 			sym->st_value = 0;
 			sym->st_size = 0;
 			sym->st_info = ELF32_ST_INFO(STB_GLOBAL, STT_FUNC);
-			sym->st_other = 0;
+			sym->st_other = ELF32_ST_VISIBILITY(STV_HIDDEN);
 			sym->st_shndx = SHN_UNDEF;
 
 			rel++;
@@ -287,11 +278,7 @@ printf("%s:%s(%d): DOODAD\n",__FUNCTION_
 	sym->st_value = 0;
 	sym->st_size = dof->dofh_filesz;
 	sym->st_info = ELF32_ST_INFO(STB_GLOBAL, STT_OBJECT);
-#ifdef illumos
-	sym->st_other = 0;
-#else
 	sym->st_other = ELF32_ST_VISIBILITY(STV_HIDDEN);
-#endif
 	sym->st_shndx = ESHDR_DOF;
 	sym++;
 
@@ -448,18 +435,8 @@ prepare_elf64(dtrace_hdl_t *dtp, const d
 #elif defined(__i386) || defined(__amd64)
 			rel->r_offset = s->dofs_offset +
 			    dofr[j].dofr_offset;
-#ifdef illumos
 			rel->r_info = ELF64_R_INFO(count + dep->de_global,
-			    R_AMD64_64);
-#else
-			rel->r_info = ELF64_R_INFO(count + dep->de_global,
-			    R_X86_64_RELATIVE);
-#endif
-#elif defined(__sparc)
-			rel->r_offset = s->dofs_offset +
-			    dofr[j].dofr_offset;
-			rel->r_info = ELF64_R_INFO(count + dep->de_global,
-			    R_SPARC_64);
+			    R_X86_64_PC64);
 #else
 #error unknown ISA
 #endif
@@ -468,7 +445,7 @@ prepare_elf64(dtrace_hdl_t *dtp, const d
 			sym->st_value = 0;
 			sym->st_size = 0;
 			sym->st_info = GELF_ST_INFO(STB_GLOBAL, STT_FUNC);
-			sym->st_other = 0;
+			sym->st_other = ELF64_ST_VISIBILITY(STV_HIDDEN);
 			sym->st_shndx = SHN_UNDEF;
 
 			rel++;
@@ -485,11 +462,7 @@ prepare_elf64(dtrace_hdl_t *dtp, const d
 	sym->st_value = 0;
 	sym->st_size = dof->dofh_filesz;
 	sym->st_info = GELF_ST_INFO(STB_GLOBAL, STT_OBJECT);
-#ifdef illumos
-	sym->st_other = 0;
-#else
 	sym->st_other = ELF64_ST_VISIBILITY(STV_HIDDEN);
-#endif
 	sym->st_shndx = ESHDR_DOF;
 	sym++;
 
@@ -797,16 +770,15 @@ dump_elf64(dtrace_hdl_t *dtp, const dof_
 }
 
 static int
-dt_symtab_lookup(Elf_Data *data_sym, int nsym, uintptr_t addr, uint_t shn,
-    GElf_Sym *sym, int uses_funcdesc, Elf *elf)
+dt_symtab_lookup(Elf_Data *data_sym, int start, int end, uintptr_t addr,
+    uint_t shn, GElf_Sym *sym, int uses_funcdesc, Elf *elf)
 {
-	int i, ret = -1;
 	Elf64_Addr symval;
 	Elf_Scn *opd_scn;
 	Elf_Data *opd_desc;
-	GElf_Sym s;
+	int i;
 
-	for (i = 0; i < nsym && gelf_getsym(data_sym, i, sym) != NULL; i++) {
+	for (i = start; i < end && gelf_getsym(data_sym, i, sym) != NULL; i++) {
 		if (GELF_ST_TYPE(sym->st_info) == STT_FUNC) {
 			symval = sym->st_value;
 			if (uses_funcdesc) {
@@ -816,20 +788,12 @@ dt_symtab_lookup(Elf_Data *data_sym, int
 				    *(uint64_t*)((char *)opd_desc->d_buf + symval);
 			}
 			if ((uses_funcdesc || shn == sym->st_shndx) &&
-			    symval <= addr &&
-			    addr < symval + sym->st_size) {
-				if (GELF_ST_BIND(sym->st_info) == STB_GLOBAL)
-					return (0);
-
-				ret = 0;
-				s = *sym;
-			}
+			    symval <= addr && addr < symval + sym->st_size)
+				return (0);
 		}
 	}
 
-	if (ret == 0)
-		*sym = s;
-	return (ret);
+	return (-1);
 }
 
 #if defined(__aarch64__)
@@ -1237,10 +1201,11 @@ process_obj(dtrace_hdl_t *dtp, const cha
 	dt_provider_t *pvp;
 	dt_probe_t *prp;
 	uint32_t off, eclass, emachine1, emachine2;
-	size_t symsize, nsym, isym, istr, len;
+	size_t symsize, osym, nsym, isym, istr, len;
 	key_t objkey;
 	dt_link_pair_t *pair, *bufs = NULL;
 	dt_strtab_t *strtab;
+	void *tmp;
 
 	if ((fd = open64(obj, O_RDWR)) == -1) {
 		return (dt_link_error(dtp, elf, fd, bufs,
@@ -1374,12 +1339,13 @@ process_obj(dtrace_hdl_t *dtp, const cha
 		 * target (text) section to replace the call instruction with
 		 * one or more nops.
 		 *
-		 * If the function containing the probe is locally scoped
-		 * (static), we create an alias used by the relocation in the
-		 * generated object. The alias, a new symbol, will be global
-		 * (so that the relocation from the generated object can be
-		 * resolved), and hidden (so that it is converted to a local
-		 * symbol at link time). Such aliases have this form:
+		 * To avoid runtime overhead, the relocations added to the
+		 * generated object should be resolved at static link time. We
+		 * therefore create aliases for the functions that contain
+		 * probes. An alias is global (so that the relocation from the
+		 * generated object can be resolved), and hidden (so that its
+		 * address is known at static link time). Such aliases have this
+		 * form:
 		 *
 		 *   $dtrace<key>.<function>
 		 *
@@ -1417,16 +1383,13 @@ process_obj(dtrace_hdl_t *dtp, const cha
 			if (strncmp(s, dt_prefix, sizeof (dt_prefix) - 1) != 0)
 				continue;
 
-			if (dt_symtab_lookup(data_sym, isym, rela.r_offset,
-			    shdr_rel.sh_info, &fsym,
-			    (emachine1 == EM_PPC64), elf) != 0) {
+			if (dt_symtab_lookup(data_sym, 0, isym, rela.r_offset,
+			    shdr_rel.sh_info, &fsym, (emachine1 == EM_PPC64),
+			    elf) != 0) {
 				dt_strtab_destroy(strtab);
 				goto err;
 			}
 
-			if (GELF_ST_BIND(fsym.st_info) != STB_LOCAL)
-				continue;
-
 			if (fsym.st_name > data_str->d_size) {
 				dt_strtab_destroy(strtab);
 				goto err;
@@ -1462,12 +1425,12 @@ process_obj(dtrace_hdl_t *dtp, const cha
 		}
 
 		/*
-		 * If needed, allocate the additional space for the symbol
-		 * table and string table copying the old data into the new
-		 * buffers, and marking the buffers as dirty. We inject those
-		 * newly allocated buffers into the libelf data structures, but
-		 * are still responsible for freeing them once we're done with
-		 * the elf handle.
+		 * If any probes were found, allocate the additional space for
+		 * the symbol table and string table, copying the old data into
+		 * the new buffers, and marking the buffers as dirty. We inject
+		 * those newly allocated buffers into the libelf data
+		 * structures, but are still responsible for freeing them once
+		 * we're done with the elf handle.
 		 */
 		if (nsym > 0) {
 			/*
@@ -1501,7 +1464,9 @@ process_obj(dtrace_hdl_t *dtp, const cha
 			bufs = pair;
 
 			bcopy(data_str->d_buf, pair->dlp_str, data_str->d_size);
+			tmp = data_str->d_buf;
 			data_str->d_buf = pair->dlp_str;
+			pair->dlp_str = tmp;
 			data_str->d_size += len;
 			(void) elf_flagdata(data_str, ELF_C_SET, ELF_F_DIRTY);
 
@@ -1509,16 +1474,20 @@ process_obj(dtrace_hdl_t *dtp, const cha
 			(void) gelf_update_shdr(scn_str, &shdr_str);
 
 			bcopy(data_sym->d_buf, pair->dlp_sym, data_sym->d_size);
+			tmp = data_sym->d_buf;
 			data_sym->d_buf = pair->dlp_sym;
+			pair->dlp_sym = tmp;
 			data_sym->d_size += nsym * symsize;
 			(void) elf_flagdata(data_sym, ELF_C_SET, ELF_F_DIRTY);
 
 			shdr_sym.sh_size += nsym * symsize;
 			(void) gelf_update_shdr(scn_sym, &shdr_sym);
 
+			osym = isym;
 			nsym += isym;
 		} else {
 			dt_strtab_destroy(strtab);
+			continue;
 		}
 
 		/*
@@ -1577,8 +1546,11 @@ process_obj(dtrace_hdl_t *dtp, const cha
 			bcopy(s, pname, p - s);
 			pname[p - s] = '\0';
 
-			if (dt_symtab_lookup(data_sym, isym, rela.r_offset,
-			    shdr_rel.sh_info, &fsym,
+			if (dt_symtab_lookup(data_sym, osym, isym,
+			    rela.r_offset, shdr_rel.sh_info, &fsym,
+			    (emachine1 == EM_PPC64), elf) != 0 &&
+			    dt_symtab_lookup(data_sym, 0, osym,
+			    rela.r_offset, shdr_rel.sh_info, &fsym,
 			    (emachine1 == EM_PPC64), elf) != 0)
 				goto err;
 
@@ -1588,37 +1560,30 @@ process_obj(dtrace_hdl_t *dtp, const cha
 			assert(GELF_ST_TYPE(fsym.st_info) == STT_FUNC);
 
 			/*
-			 * If a NULL relocation name is passed to
-			 * dt_probe_define(), the function name is used for the
-			 * relocation. The relocation needs to use a mangled
-			 * name if the symbol is locally scoped; the function
-			 * name may need to change if we've found the global
-			 * alias for the locally scoped symbol (we prefer
-			 * global symbols to locals in dt_symtab_lookup()).
+			 * If this is our first time encountering this symbol,
+			 * emit an alias.
 			 */
 			s = (char *)data_str->d_buf + fsym.st_name;
-			r = NULL;
 
-			if (GELF_ST_BIND(fsym.st_info) == STB_LOCAL) {
+			if (strncmp(s, dt_symprefix,
+			    sizeof (dt_symprefix) - 1) != 0) {
+				u_int bind = GELF_ST_BIND(fsym.st_info);
+
 				dsym = fsym;
 				dsym.st_name = istr;
-				dsym.st_info = GELF_ST_INFO(STB_GLOBAL,
-				    STT_FUNC);
-				dsym.st_other =
-				    ELF64_ST_VISIBILITY(STV_ELIMINATE);
+				dsym.st_info = GELF_ST_INFO(bind == STB_LOCAL ?
+				    STB_GLOBAL : bind, STT_FUNC);
+				dsym.st_other = GELF_ST_VISIBILITY(STV_HIDDEN);
 				(void) gelf_update_sym(data_sym, isym, &dsym);
-
-				r = (char *)data_str->d_buf + istr;
-				istr += 1 + sprintf(r, dt_symfmt,
-				    dt_symprefix, objkey, s);
+				r = (char *) data_str->d_buf + istr;
+				istr += 1 + sprintf(r, dt_symfmt, dt_symprefix, objkey,
+				    s);
 				isym++;
 				assert(isym <= nsym);
-
-			} else if (strncmp(s, dt_symprefix,
-			    strlen(dt_symprefix)) == 0) {
+			} else {
 				r = s;
-				if ((s = strchr(s, '.')) == NULL)
-					goto err;
+				s = strchr(s, '.');
+				assert(s != NULL);
 				s++;
 			}
 
@@ -1697,9 +1662,6 @@ process_obj(dtrace_hdl_t *dtp, const cha
 	(void) elf_end(elf);
 	(void) close(fd);
 
-#ifndef illumos
-	if (nsym > 0)
-#endif
 	while ((pair = bufs) != NULL) {
 		bufs = pair->dlp_next;
 		dt_free(dtp, pair->dlp_str);

Modified: projects/netbsd-tests-upstream-01-2017/cddl/contrib/opensolaris/lib/libdtrace/common/dt_provider.c
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/cddl/contrib/opensolaris/lib/libdtrace/common/dt_provider.c	Sun Feb  5 02:47:34 2017	(r313266)
+++ projects/netbsd-tests-upstream-01-2017/cddl/contrib/opensolaris/lib/libdtrace/common/dt_provider.c	Sun Feb  5 02:49:42 2017	(r313267)
@@ -545,9 +545,7 @@ dt_probe_define(dt_provider_t *pvp, dt_p
 
 	for (pip = prp->pr_inst; pip != NULL; pip = pip->pi_next) {
 		if (strcmp(pip->pi_fname, fname) == 0 &&
-		    ((rname == NULL && pip->pi_rname == NULL) ||
-		    (rname != NULL && pip->pi_rname != NULL &&
-		    strcmp(pip->pi_rname, rname) == 0)))
+		    strcmp(pip->pi_rname, rname) == 0)
 			break;
 	}
 
@@ -565,7 +563,7 @@ dt_probe_define(dt_provider_t *pvp, dt_p
 		if ((pip->pi_fname = strdup(fname)) == NULL)
 			goto nomem;
 
-		if (rname != NULL && (pip->pi_rname = strdup(rname)) == NULL)
+		if ((pip->pi_rname = strdup(rname)) == NULL)
 			goto nomem;
 
 		pip->pi_noffs = 0;
@@ -605,7 +603,7 @@ dt_probe_define(dt_provider_t *pvp, dt_p
 	dt_dprintf("defined probe %s %s:%s %s() +0x%x (%s)\n",
 	    isenabled ? "(is-enabled)" : "",
 	    pvp->pv_desc.dtvd_name, prp->pr_ident->di_name, fname, offset,
-	    rname != NULL ? rname : fname);
+	    rname);
 
 	assert(*noffs < *maxoffs);
 	(*offs)[(*noffs)++] = offset;

Modified: projects/netbsd-tests-upstream-01-2017/sbin/ifconfig/ifieee80211.c
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/sbin/ifconfig/ifieee80211.c	Sun Feb  5 02:47:34 2017	(r313266)
+++ projects/netbsd-tests-upstream-01-2017/sbin/ifconfig/ifieee80211.c	Sun Feb  5 02:49:42 2017	(r313267)
@@ -5594,12 +5594,12 @@ static struct cmd ieee80211_cmds[] = {
 	DEF_CMD_ARG("bgscanidle",	set80211bgscanidle),
 	DEF_CMD_ARG("bgscanintvl",	set80211bgscanintvl),
 	DEF_CMD_ARG("scanvalid",	set80211scanvalid),
-	DEF_CMD("quiet",        1,      set80211quiet),
-	DEF_CMD("-quiet",       0,      set80211quiet),
-	DEF_CMD_ARG("quiet_count",      set80211quietcount),
-	DEF_CMD_ARG("quiet_period",     set80211quietperiod),
-	DEF_CMD_ARG("quiet_dur",        set80211quietduration),
-	DEF_CMD_ARG("quiet_offset",     set80211quietoffset),
+	DEF_CMD("quiet",	1,	set80211quiet),
+	DEF_CMD("-quiet",	0,	set80211quiet),
+	DEF_CMD_ARG("quiet_count",	set80211quietcount),
+	DEF_CMD_ARG("quiet_period",	set80211quietperiod),
+	DEF_CMD_ARG("quiet_duration",	set80211quietduration),
+	DEF_CMD_ARG("quiet_offset",	set80211quietoffset),
 	DEF_CMD_ARG("roam:rssi",	set80211roamrssi),
 	DEF_CMD_ARG("roam:rate",	set80211roamrate),
 	DEF_CMD_ARG("mcastrate",	set80211mcastrate),

Modified: projects/netbsd-tests-upstream-01-2017/sbin/nvmecontrol/logpage.c
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/sbin/nvmecontrol/logpage.c	Sun Feb  5 02:47:34 2017	(r313266)
+++ projects/netbsd-tests-upstream-01-2017/sbin/nvmecontrol/logpage.c	Sun Feb  5 02:49:42 2017	(r313267)
@@ -74,6 +74,12 @@ kv_lookup(const struct kv_name *kv, size
 	return bad;
 }
 
+static void
+print_bin(void *data, uint32_t length)
+{
+	write(STDOUT_FILENO, data, length);
+}
+
 /*
  * 128-bit integer augments to standard values. On i386 this
  * doesn't exist, so we use 64-bit values. The 128-bit counters
@@ -846,6 +852,8 @@ static struct logpage_function {
 	 sizeof(struct nvme_firmware_page)},
 	{HGST_INFO_LOG,			"hgst",	print_hgst_info_log,
 	 DEFAULT_SIZE},
+	{HGST_INFO_LOG,			"wdc",	print_hgst_info_log,
+	 DEFAULT_SIZE},
 	{INTEL_LOG_TEMP_STATS,		"intel", print_intel_temp_stats,
 	 sizeof(struct intel_log_temp_stats)},
 	{INTEL_LOG_READ_LAT_LOG,	"intel", print_intel_read_lat_log,
@@ -870,7 +878,7 @@ logpage(int argc, char *argv[])
 {
 	int				fd, nsid;
 	int				log_page = 0, pageflag = false;
-	int				hexflag = false, ns_specified;
+	int				binflag = false, hexflag = false, ns_specified;
 	char				ch, *p;
 	char				cname[64];
 	uint32_t			size;
@@ -880,8 +888,11 @@ logpage(int argc, char *argv[])
 	struct nvme_controller_data	cdata;
 	print_fn_t			print_fn;
 
-	while ((ch = getopt(argc, argv, "p:xv:")) != -1) {
+	while ((ch = getopt(argc, argv, "bp:xv:")) != -1) {
 		switch (ch) {
+		case 'b':
+			binflag = true;
+			break;
 		case 'p':
 			/* TODO: Add human-readable ASCII page IDs */
 			log_page = strtol(optarg, &p, 0);
@@ -940,7 +951,9 @@ logpage(int argc, char *argv[])
 
 	print_fn = print_hex;
 	size = DEFAULT_SIZE;
-	if (!hexflag) {
+	if (binflag)
+		print_fn = print_bin;
+	if (!binflag && !hexflag) {
 		/*
 		 * See if there is a pretty print function for the specified log
 		 * page.  If one isn't found, we just revert to the default

Modified: projects/netbsd-tests-upstream-01-2017/sbin/nvmecontrol/nvmecontrol.8
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/sbin/nvmecontrol/nvmecontrol.8	Sun Feb  5 02:47:34 2017	(r313266)
+++ projects/netbsd-tests-upstream-01-2017/sbin/nvmecontrol/nvmecontrol.8	Sun Feb  5 02:49:42 2017	(r313267)
@@ -33,7 +33,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd September 10, 2016
+.Dd February 4, 2017
 .Dt NVMECONTROL 8
 .Os
 .Sh NAME
@@ -62,6 +62,8 @@
 .Ic logpage
 .Aq Fl p Ar page_id
 .Op Fl x
+.Op Fl v Ar vendor-string
+.Op Fl b
 .Aq device id
 .Aq namespace id
 .Nm
@@ -74,7 +76,7 @@
 .Ic power
 .Op Fl l
 .Op Fl p power_state
-.Op fl w workload_hint
+.Op Fl w workload_hint
 .Nm
 .Ic wdc cap-diag
 .Op Fl o path_template
@@ -96,6 +98,26 @@
 .Sh DESCRIPTION
 NVM Express (NVMe) is a storage protocol standard, for SSDs and other
 high-speed storage devices over PCI Express.
+.Pp
+.Ss logpage
+The logpage command knows how to print log pages of various types.
+It also knows about vendor specific log pages from hgst/wdc and intel.
+Page 0xc1 for hgst/wdc contains the advanced smart information about
+the drive.
+Page 0xc1 is read latency stats for intel.
+Page 0xc2 is write latency stats for intel.
+Page 0xc5 is temperature stats for intel.
+Page 0xca is advanced smart information for intel.
+.Ss wdc
+The various wdc command retrieve log data from the wdc/hgst drives.
+The
+.Fl o
+flag specifies a path template to use to output the files.
+Each file takes the path template (which defaults to nothing), appends
+the drive's serial number and the type of dump it is followed
+by .bin.
+These logs must be sent to the vendor for analysis.
+This tool only provides a way to extract them.
 .Sh EXAMPLES
 .Dl nvmecontrol devlist
 .Pp
@@ -126,10 +148,21 @@ Display a human-readable summary of the 
 Log pages defined by the NVMe specification include Error Information Log (ID=1),
 SMART/Health Information Log (ID=2), and Firmware Slot Log (ID=3).
 .Pp
+.Dl nvmecontrol logpage -p 0xc1 -v wdc nvme0
+.Pp
+Display a human-readable summary of the nvme0's wdc-specific advanced
+SMART data.
+.Pp
 .Dl nvmecontrol logpage -p 1 -x nvme0
 .Pp
 Display a hexadecimal dump of the nvme0 controller's Error Information Log.
 .Pp
+.Dl nvmecontrol logpage -p 0xcb -b nvme0 > /tmp/page-cb.bin
+.Pp
+Print the contents of vendor specific page 0xcb as binary data on
+standard out.
+Redirect it to a temporary file.
+.Pp
 .Dl nvmecontrol firmware -s 2 -f /tmp/nvme_firmware nvme0
 .Pp
 Download the firmware image contained in "/tmp/nvme_firmware" to slot 2 of the

Modified: projects/netbsd-tests-upstream-01-2017/sbin/nvmecontrol/wdc.c
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/sbin/nvmecontrol/wdc.c	Sun Feb  5 02:47:34 2017	(r313266)
+++ projects/netbsd-tests-upstream-01-2017/sbin/nvmecontrol/wdc.c	Sun Feb  5 02:49:42 2017	(r313267)
@@ -69,7 +69,7 @@ static void wdc_purge_monitor(int argc, 
 #define WDC_DRIVE_LOG_USAGE	"\tnvmecontrol wdc drive-log [-o path-template]\n"
 #define WDC_GET_CRASH_DUMP_USAGE "\tnvmecontrol wdc get-crash-dump [-o path-template]\n"
 #define WDC_PURGE_USAGE		"\tnvmecontrol wdc purge [-o path-template]\n"
-#define WDC_PURGE_MONITOR_USAGE	"\tnvmecontrol wdc purge-montor\n"
+#define WDC_PURGE_MONITOR_USAGE	"\tnvmecontrol wdc purge-monitor\n"
 
 static struct nvme_function wdc_funcs[] = {
 	{"cap-diag",		wdc_cap_diag,		WDC_CAP_DIAG_USAGE},
@@ -94,7 +94,7 @@ wdc_append_serial_name(int fd, char *buf
 	walker = sn + NVME_SERIAL_NUMBER_LENGTH - 1;
 	while (walker > sn && *walker == ' ')
 		walker--;
-	*walker = '\0';
+	*++walker = '\0';
 	snprintf(buf, len, "%s%s.bin", sn, suffix);
 }
 
@@ -127,7 +127,8 @@ wdc_do_dump(int fd, char *tmpl, const ch
 {
 	int fd2;
 	uint8_t *buf;
-	uint32_t len, resid, offset;
+	uint32_t len, offset;
+	ssize_t resid;
 
 	wdc_append_serial_name(fd, tmpl, MAXPATHLEN, suffix);
 

Modified: projects/netbsd-tests-upstream-01-2017/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c	Sun Feb  5 02:47:34 2017	(r313266)
+++ projects/netbsd-tests-upstream-01-2017/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c	Sun Feb  5 02:49:42 2017	(r313267)
@@ -13346,8 +13346,11 @@ dtrace_dof_property(const char *name)
 
 	data += strlen(name) + 1; /* skip past the '=' */
 	len = eol - data;
+	if (len % 2 != 0) {
+		dtrace_dof_error(NULL, "invalid DOF encoding length");
+		goto doferr;
+	}
 	bytes = len / 2;
-
 	if (bytes < sizeof(dof_hdr_t)) {
 		dtrace_dof_error(NULL, "truncated header");
 		goto doferr;
@@ -13917,12 +13920,13 @@ err:
 
 /*
  * Apply the relocations from the specified 'sec' (a DOF_SECT_URELHDR) to the
- * specified DOF.  At present, this amounts to simply adding 'ubase' to the
- * site of any user SETX relocations to account for load object base address.
- * In the future, if we need other relocations, this function can be extended.
+ * specified DOF.  SETX relocations are computed using 'ubase', the base load
+ * address of the object containing the DOF, and DOFREL relocations are relative
+ * to the relocation offset within the DOF.
  */
 static int
-dtrace_dof_relocate(dof_hdr_t *dof, dof_sec_t *sec, uint64_t ubase)
+dtrace_dof_relocate(dof_hdr_t *dof, dof_sec_t *sec, uint64_t ubase,
+    uint64_t udaddr)
 {
 	uintptr_t daddr = (uintptr_t)dof;
 	dof_relohdr_t *dofr =
@@ -13960,6 +13964,7 @@ dtrace_dof_relocate(dof_hdr_t *dof, dof_
 		case DOF_RELO_NONE:
 			break;
 		case DOF_RELO_SETX:
+		case DOF_RELO_DOFREL:
 			if (r->dofr_offset >= ts->dofs_size || r->dofr_offset +
 			    sizeof (uint64_t) > ts->dofs_size) {
 				dtrace_dof_error(dof, "bad relocation offset");
@@ -13971,7 +13976,11 @@ dtrace_dof_relocate(dof_hdr_t *dof, dof_
 				return (-1);
 			}
 
-			*(uint64_t *)taddr += ubase;
+			if (r->dofr_type == DOF_RELO_SETX)
+				*(uint64_t *)taddr += ubase;
+			else
+				*(uint64_t *)taddr +=
+				    udaddr + ts->dofs_offset + r->dofr_offset;
 			break;
 		default:
 			dtrace_dof_error(dof, "invalid relocation type");
@@ -13992,7 +14001,7 @@ dtrace_dof_relocate(dof_hdr_t *dof, dof_
  */
 static int
 dtrace_dof_slurp(dof_hdr_t *dof, dtrace_vstate_t *vstate, cred_t *cr,
-    dtrace_enabling_t **enabp, uint64_t ubase, int noprobes)
+    dtrace_enabling_t **enabp, uint64_t ubase, uint64_t udaddr, int noprobes)
 {
 	uint64_t len = dof->dofh_loadsz, seclen;
 	uintptr_t daddr = (uintptr_t)dof;
@@ -14154,7 +14163,7 @@ dtrace_dof_slurp(dof_hdr_t *dof, dtrace_
 
 		switch (sec->dofs_type) {
 		case DOF_SECT_URELHDR:
-			if (dtrace_dof_relocate(dof, sec, ubase) != 0)
+			if (dtrace_dof_relocate(dof, sec, ubase, udaddr) != 0)
 				return (-1);
 			break;
 		}
@@ -15519,7 +15528,7 @@ dtrace_anon_property(void)
 		}
 
 		rv = dtrace_dof_slurp(dof, &state->dts_vstate, CRED(),
-		    &dtrace_anon.dta_enabling, 0, B_TRUE);
+		    &dtrace_anon.dta_enabling, 0, 0, B_TRUE);
 
 		if (rv == 0)
 			rv = dtrace_dof_options(dof, state);
@@ -16290,7 +16299,7 @@ dtrace_helper_slurp(dof_hdr_t *dof, dof_
 	vstate = &help->dthps_vstate;
 
 	if ((rv = dtrace_dof_slurp(dof, vstate, NULL, &enab, dhp->dofhp_addr,
-	    B_FALSE)) != 0) {
+	    dhp->dofhp_dof, B_FALSE)) != 0) {
 		dtrace_dof_destroy(dof);
 		return (rv);
 	}

Modified: projects/netbsd-tests-upstream-01-2017/sys/cddl/contrib/opensolaris/uts/common/sys/dtrace.h
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/sys/cddl/contrib/opensolaris/uts/common/sys/dtrace.h	Sun Feb  5 02:47:34 2017	(r313266)
+++ projects/netbsd-tests-upstream-01-2017/sys/cddl/contrib/opensolaris/uts/common/sys/dtrace.h	Sun Feb  5 02:49:42 2017	(r313267)
@@ -784,6 +784,7 @@ typedef struct dof_relodesc {
 
 #define	DOF_RELO_NONE	0		/* empty relocation entry */
 #define	DOF_RELO_SETX	1		/* relocate setx value */
+#define	DOF_RELO_DOFREL	2		/* relocate DOF-relative value */
 
 typedef struct dof_optdesc {
 	uint32_t dofo_option;		/* option identifier */

Modified: projects/netbsd-tests-upstream-01-2017/sys/cddl/dev/dtrace/dtrace_ioctl.c
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/sys/cddl/dev/dtrace/dtrace_ioctl.c	Sun Feb  5 02:47:34 2017	(r313266)
+++ projects/netbsd-tests-upstream-01-2017/sys/cddl/dev/dtrace/dtrace_ioctl.c	Sun Feb  5 02:49:42 2017	(r313267)
@@ -429,7 +429,8 @@ dtrace_ioctl(struct cdev *dev, u_long cm
 			return (EBUSY);
 		}
 
-		if (dtrace_dof_slurp(dof, vstate, td->td_ucred, &enab, 0, B_TRUE) != 0) {
+		if (dtrace_dof_slurp(dof, vstate, td->td_ucred, &enab, 0, 0,
+		    B_TRUE) != 0) {
 			mutex_exit(&dtrace_lock);
 			mutex_exit(&cpu_lock);
 			dtrace_dof_destroy(dof);

Modified: projects/netbsd-tests-upstream-01-2017/sys/dev/mmc/mmc.c
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/sys/dev/mmc/mmc.c	Sun Feb  5 02:47:34 2017	(r313266)
+++ projects/netbsd-tests-upstream-01-2017/sys/dev/mmc/mmc.c	Sun Feb  5 02:49:42 2017	(r313267)
@@ -111,14 +111,15 @@ struct mmc_ivars {
 	char card_sn_string[16];/* Formatted serial # for disk->d_ident */
 };
 
-#define CMD_RETRIES	3
+#define	CMD_RETRIES	3
 
 #define	CARD_ID_FREQUENCY 400000 /* Spec requires 400kHz max during ID phase. */
 
 static SYSCTL_NODE(_hw, OID_AUTO, mmc, CTLFLAG_RD, NULL, "mmc driver");
 
 static int mmc_debug;
-SYSCTL_INT(_hw_mmc, OID_AUTO, debug, CTLFLAG_RWTUN, &mmc_debug, 0, "Debug level");
+SYSCTL_INT(_hw_mmc, OID_AUTO, debug, CTLFLAG_RWTUN, &mmc_debug, 0,
+    "Debug level");
 
 /* bus entry points */
 static int mmc_acquire_bus(device_t busdev, device_t dev);
@@ -137,14 +138,14 @@ static int mmc_wait_for_request(device_t
 static int mmc_write_ivar(device_t bus, device_t child, int which,
     uintptr_t value);
 
-#define MMC_LOCK(_sc)		mtx_lock(&(_sc)->sc_mtx)
+#define	MMC_LOCK(_sc)		mtx_lock(&(_sc)->sc_mtx)
 #define	MMC_UNLOCK(_sc)		mtx_unlock(&(_sc)->sc_mtx)
-#define MMC_LOCK_INIT(_sc)					\
-	mtx_init(&_sc->sc_mtx, device_get_nameunit(_sc->dev),	\
+#define	MMC_LOCK_INIT(_sc)						\
+	mtx_init(&(_sc)->sc_mtx, device_get_nameunit((_sc)->dev),	\
 	    "mmc", MTX_DEF)
-#define MMC_LOCK_DESTROY(_sc)	mtx_destroy(&_sc->sc_mtx);
-#define MMC_ASSERT_LOCKED(_sc)	mtx_assert(&_sc->sc_mtx, MA_OWNED);
-#define MMC_ASSERT_UNLOCKED(_sc) mtx_assert(&_sc->sc_mtx, MA_NOTOWNED);
+#define	MMC_LOCK_DESTROY(_sc)	mtx_destroy(&(_sc)->sc_mtx);
+#define	MMC_ASSERT_LOCKED(_sc)	mtx_assert(&(_sc)->sc_mtx, MA_OWNED);
+#define	MMC_ASSERT_UNLOCKED(_sc) mtx_assert(&(_sc)->sc_mtx, MA_NOTOWNED);
 
 static int mmc_all_send_cid(struct mmc_softc *sc, uint32_t *rawcid);
 static void mmc_app_decode_scr(uint32_t *raw_scr, struct mmc_scr *scr);
@@ -744,9 +745,9 @@ mmc_set_card_bus_width(struct mmc_softc 
 static int
 mmc_set_timing(struct mmc_softc *sc, int timing)
 {
+	u_char switch_res[64];
 	int err;
 	uint8_t	value;
-	u_char switch_res[64];
 
 	switch (timing) {
 	case bus_timing_normal:
@@ -1161,9 +1162,9 @@ mmc_app_send_scr(struct mmc_softc *sc, u
 static int
 mmc_send_ext_csd(struct mmc_softc *sc, uint8_t *rawextcsd)
 {
-	int err;
 	struct mmc_command cmd;
 	struct mmc_data data;
+	int err;
 
 	memset(&cmd, 0, sizeof(cmd));
 	memset(&data, 0, sizeof(data));
@@ -1185,9 +1186,9 @@ mmc_send_ext_csd(struct mmc_softc *sc, u
 static int
 mmc_app_sd_status(struct mmc_softc *sc, uint16_t rca, uint32_t *rawsdstatus)
 {
-	int err, i;
 	struct mmc_command cmd;
 	struct mmc_data data;
+	int err, i;
 
 	memset(&cmd, 0, sizeof(cmd));
 	memset(&data, 0, sizeof(data));
@@ -1393,7 +1394,7 @@ mmc_discover_cards(struct mmc_softc *sc)
 			 * commands, although the state tables / diagrams in the
 			 * standard suggest they go back to the transfer state.
 			 * Other cards don't become deselected, and if we
-			 * atttempt to blindly re-select them, we get timeout
+			 * attempt to blindly re-select them, we get timeout
 			 * errors from some controllers.  So we deselect then
 			 * reselect to handle all situations.  The only thing we
 			 * use from the sd_status is the erase sector size, but
@@ -1534,7 +1535,7 @@ mmc_discover_cards(struct mmc_softc *sc)
 static void
 mmc_rescan_cards(struct mmc_softc *sc)
 {
-	struct mmc_ivars *ivar = NULL;
+	struct mmc_ivars *ivar;
 	device_t *devlist;
 	int err, i, devcount;
 
@@ -1664,14 +1665,13 @@ mmc_go_discovery(struct mmc_softc *sc)
 static int
 mmc_calculate_clock(struct mmc_softc *sc)
 {
-	int max_dtr, max_hs_dtr, max_timing;
-	int nkid, i, f_max;
 	device_t *kids;
 	struct mmc_ivars *ivar;
+	int i, f_max, max_dtr, max_hs_dtr, max_timing, nkid;
 
 	f_max = mmcbr_get_f_max(sc->dev);
 	max_dtr = max_hs_dtr = f_max;
-	if ((mmcbr_get_caps(sc->dev) & MMC_CAP_HSPEED))
+	if (mmcbr_get_caps(sc->dev) & MMC_CAP_HSPEED)
 		max_timing = bus_timing_hs;
 	else
 		max_timing = bus_timing_normal;

Modified: projects/netbsd-tests-upstream-01-2017/sys/dev/mmc/mmcreg.h
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/sys/dev/mmc/mmcreg.h	Sun Feb  5 02:47:34 2017	(r313266)
+++ projects/netbsd-tests-upstream-01-2017/sys/dev/mmc/mmcreg.h	Sun Feb  5 02:49:42 2017	(r313267)
@@ -100,7 +100,7 @@ struct mmc_command {
 #define	MMC_ERR_FAILED	4
 #define	MMC_ERR_INVALID	5
 #define	MMC_ERR_NO_MEMORY 6
-#define MMC_ERR_MAX	6
+#define	MMC_ERR_MAX	6
 	struct mmc_data	*data;		/* Data segment with cmd */
 	struct mmc_request *mrq;	/* backpointer to request */
 };
@@ -291,47 +291,47 @@ struct mmc_request {
 /*
  * EXT_CSD fields
  */
-#define EXT_CSD_ERASE_GRP_DEF	175	/* R/W */
-#define EXT_CSD_BUS_WIDTH	183	/* R/W */
-#define EXT_CSD_HS_TIMING	185	/* R/W */
-#define EXT_CSD_CARD_TYPE	196	/* RO */
-#define EXT_CSD_REV		192	/* RO */
-#define EXT_CSD_SEC_CNT		212	/* RO, 4 bytes */
-#define EXT_CSD_ERASE_TO_MULT	223	/* RO */
-#define EXT_CSD_ERASE_GRP_SIZE	224	/* RO */
+#define	EXT_CSD_ERASE_GRP_DEF	175	/* R/W */
+#define	EXT_CSD_BUS_WIDTH	183	/* R/W */
+#define	EXT_CSD_HS_TIMING	185	/* R/W */
+#define	EXT_CSD_CARD_TYPE	196	/* RO */
+#define	EXT_CSD_REV		192	/* RO */
+#define	EXT_CSD_SEC_CNT		212	/* RO, 4 bytes */
+#define	EXT_CSD_ERASE_TO_MULT	223	/* RO */
+#define	EXT_CSD_ERASE_GRP_SIZE	224	/* RO */
 
 /*
  * EXT_CSD field definitions
  */
-#define EXT_CSD_CMD_SET_NORMAL		1
-#define EXT_CSD_CMD_SET_SECURE		2
-#define EXT_CSD_CMD_SET_CPSECURE	4
-
-#define EXT_CSD_CARD_TYPE_26	1
-#define EXT_CSD_CARD_TYPE_52	2
-
-#define EXT_CSD_BUS_WIDTH_1	0
-#define EXT_CSD_BUS_WIDTH_4	1
-#define EXT_CSD_BUS_WIDTH_8	2
+#define	EXT_CSD_CMD_SET_NORMAL		1
+#define	EXT_CSD_CMD_SET_SECURE		2
+#define	EXT_CSD_CMD_SET_CPSECURE	4
+
+#define	EXT_CSD_CARD_TYPE_26	1
+#define	EXT_CSD_CARD_TYPE_52	2
+
+#define	EXT_CSD_BUS_WIDTH_1	0
+#define	EXT_CSD_BUS_WIDTH_4	1
+#define	EXT_CSD_BUS_WIDTH_8	2
 
-#define MMC_TYPE_26_MAX_HS	26000000
-#define MMC_TYPE_52_MAX_HS	52000000
+#define	MMC_TYPE_26_MAX_HS	26000000
+#define	MMC_TYPE_52_MAX_HS	52000000
 
 /*
  * SD bus widths
  */
-#define SD_BUS_WIDTH_1		0
-#define SD_BUS_WIDTH_4		2
+#define	SD_BUS_WIDTH_1		0
+#define	SD_BUS_WIDTH_4		2
 
 /*
  * SD Switch
  */
-#define SD_SWITCH_MODE_CHECK	0
-#define SD_SWITCH_MODE_SET	1
-#define SD_SWITCH_GROUP1	0
-#define SD_SWITCH_NORMAL_MODE	0
-#define SD_SWITCH_HS_MODE	1
-#define SD_SWITCH_NOCHANGE	0xF
+#define	SD_SWITCH_MODE_CHECK	0
+#define	SD_SWITCH_MODE_SET	1
+#define	SD_SWITCH_GROUP1	0
+#define	SD_SWITCH_NORMAL_MODE	0
+#define	SD_SWITCH_HS_MODE	1
+#define	SD_SWITCH_NOCHANGE	0xF
 
 #define	SD_CLR_CARD_DETECT	0
 #define	SD_SET_CARD_DETECT	1
@@ -419,8 +419,8 @@ struct mmc_scr
 {
 	unsigned char		sda_vsn;
 	unsigned char		bus_widths;
-#define SD_SCR_BUS_WIDTH_1	(1<<0)
-#define SD_SCR_BUS_WIDTH_4	(1<<2)
+#define	SD_SCR_BUS_WIDTH_1	(1 << 0)
+#define	SD_SCR_BUS_WIDTH_4	(1 << 2)
 };
 
 struct mmc_sd_status
@@ -443,6 +443,6 @@ struct mmc_sd_status
  * byte sector size anywhere, so we assume that such cards are very rare
  * and only note their existence in passing here...
  */
-#define MMC_SECTOR_SIZE	512
+#define	MMC_SECTOR_SIZE	512
 
 #endif /* DEV_MMCREG_H */

Modified: projects/netbsd-tests-upstream-01-2017/sys/dev/sdhci/sdhci.c
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/sys/dev/sdhci/sdhci.c	Sun Feb  5 02:47:34 2017	(r313266)
+++ projects/netbsd-tests-upstream-01-2017/sys/dev/sdhci/sdhci.c	Sun Feb  5 02:49:42 2017	(r313267)
@@ -55,18 +55,19 @@ __FBSDID("$FreeBSD$");
 SYSCTL_NODE(_hw, OID_AUTO, sdhci, CTLFLAG_RD, 0, "sdhci driver");
 
 static int sdhci_debug;
-SYSCTL_INT(_hw_sdhci, OID_AUTO, debug, CTLFLAG_RWTUN, &sdhci_debug, 0, "Debug level");
+SYSCTL_INT(_hw_sdhci, OID_AUTO, debug, CTLFLAG_RWTUN, &sdhci_debug, 0,
+    "Debug level");
 
-#define RD1(slot, off)	SDHCI_READ_1((slot)->bus, (slot), (off))
-#define RD2(slot, off)	SDHCI_READ_2((slot)->bus, (slot), (off))
-#define RD4(slot, off)	SDHCI_READ_4((slot)->bus, (slot), (off))
-#define RD_MULTI_4(slot, off, ptr, count)	\
+#define	RD1(slot, off)	SDHCI_READ_1((slot)->bus, (slot), (off))
+#define	RD2(slot, off)	SDHCI_READ_2((slot)->bus, (slot), (off))
+#define	RD4(slot, off)	SDHCI_READ_4((slot)->bus, (slot), (off))
+#define	RD_MULTI_4(slot, off, ptr, count)	\
     SDHCI_READ_MULTI_4((slot)->bus, (slot), (off), (ptr), (count))
 
-#define WR1(slot, off, val)	SDHCI_WRITE_1((slot)->bus, (slot), (off), (val))
-#define WR2(slot, off, val)	SDHCI_WRITE_2((slot)->bus, (slot), (off), (val))
-#define WR4(slot, off, val)	SDHCI_WRITE_4((slot)->bus, (slot), (off), (val))
-#define WR_MULTI_4(slot, off, ptr, count)	\
+#define	WR1(slot, off, val)	SDHCI_WRITE_1((slot)->bus, (slot), (off), (val))
+#define	WR2(slot, off, val)	SDHCI_WRITE_2((slot)->bus, (slot), (off), (val))
+#define	WR4(slot, off, val)	SDHCI_WRITE_4((slot)->bus, (slot), (off), (val))
+#define	WR_MULTI_4(slot, off, ptr, count)	\
     SDHCI_WRITE_MULTI_4((slot)->bus, (slot), (off), (ptr), (count))
 
 static void sdhci_set_clock(struct sdhci_slot *slot, uint32_t clock);
@@ -77,13 +78,13 @@ static void sdhci_card_poll(void *);
 static void sdhci_card_task(void *, int);
 
 /* helper routines */
-#define SDHCI_LOCK(_slot)		mtx_lock(&(_slot)->mtx)
+#define	SDHCI_LOCK(_slot)		mtx_lock(&(_slot)->mtx)
 #define	SDHCI_UNLOCK(_slot)		mtx_unlock(&(_slot)->mtx)
-#define SDHCI_LOCK_INIT(_slot) \
+#define	SDHCI_LOCK_INIT(_slot) \
 	mtx_init(&_slot->mtx, "SD slot mtx", "sdhci", MTX_DEF)
-#define SDHCI_LOCK_DESTROY(_slot)	mtx_destroy(&_slot->mtx);
-#define SDHCI_ASSERT_LOCKED(_slot)	mtx_assert(&_slot->mtx, MA_OWNED);
-#define SDHCI_ASSERT_UNLOCKED(_slot)	mtx_assert(&_slot->mtx, MA_NOTOWNED);
+#define	SDHCI_LOCK_DESTROY(_slot)	mtx_destroy(&_slot->mtx);
+#define	SDHCI_ASSERT_LOCKED(_slot)	mtx_assert(&_slot->mtx, MA_OWNED);
+#define	SDHCI_ASSERT_UNLOCKED(_slot)	mtx_assert(&_slot->mtx, MA_NOTOWNED);
 
 #define	SDHCI_DEFAULT_MAX_FREQ	50
 
@@ -97,20 +98,20 @@ static void sdhci_card_task(void *, int)
  * Broadcom BCM577xx Controller Constants
  */
 /* Maximum divider supported by the default clock source. */
-#define BCM577XX_DEFAULT_MAX_DIVIDER	256
+#define	BCM577XX_DEFAULT_MAX_DIVIDER	256
 /* Alternative clock's base frequency. */
-#define BCM577XX_ALT_CLOCK_BASE		63000000
-
-#define BCM577XX_HOST_CONTROL		0x198
-#define BCM577XX_CTRL_CLKSEL_MASK	0xFFFFCFFF
-#define BCM577XX_CTRL_CLKSEL_SHIFT	12
-#define BCM577XX_CTRL_CLKSEL_DEFAULT	0x0
-#define BCM577XX_CTRL_CLKSEL_64MHZ	0x3
+#define	BCM577XX_ALT_CLOCK_BASE		63000000
 
+#define	BCM577XX_HOST_CONTROL		0x198
+#define	BCM577XX_CTRL_CLKSEL_MASK	0xFFFFCFFF
+#define	BCM577XX_CTRL_CLKSEL_SHIFT	12
+#define	BCM577XX_CTRL_CLKSEL_DEFAULT	0x0
+#define	BCM577XX_CTRL_CLKSEL_64MHZ	0x3
 
 static void
 sdhci_getaddr(void *arg, bus_dma_segment_t *segs, int nsegs, int error)
 {
+
 	if (error != 0) {
 		printf("getaddr: error %d\n", error);
 		return;

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

From owner-svn-src-projects@freebsd.org  Sun Feb  5 19:57:45 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 15BA0CD2AAF
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Sun,  5 Feb 2017 19:57:45 +0000 (UTC) (envelope-from dim@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id C7E271013;
 Sun,  5 Feb 2017 19:57:44 +0000 (UTC) (envelope-from dim@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v15Jvhpq047407;
 Sun, 5 Feb 2017 19:57:43 GMT (envelope-from dim@FreeBSD.org)
Received: (from dim@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v15JvgSt047389;
 Sun, 5 Feb 2017 19:57:42 GMT (envelope-from dim@FreeBSD.org)
Message-Id: <201702051957.v15JvgSt047389@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org
 using -f
From: Dimitry Andric <dim@FreeBSD.org>
Date: Sun, 5 Feb 2017 19:57:42 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r313300 - in projects/clang400-import:
 contrib/libc++/include contrib/llvm/lib/CodeGen/SelectionDAG
 contrib/llvm/lib/Transforms/InstCombine contrib/llvm/lib/Transforms/Scalar
 contrib/ll...
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sun, 05 Feb 2017 19:57:45 -0000

Author: dim
Date: Sun Feb  5 19:57:41 2017
New Revision: 313300
URL: https://svnweb.freebsd.org/changeset/base/313300

Log:
  Merge llvm, clang, compiler-rt, libc++, lld and lldb release_40 branch
  r294123, and update build glue.

Modified:
  projects/clang400-import/contrib/libc++/include/__tree
  projects/clang400-import/contrib/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
  projects/clang400-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
  projects/clang400-import/contrib/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
  projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/SemaExprCXX.cpp
  projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/TreeTransform.h
  projects/clang400-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MacOSXAPIChecker.cpp
  projects/clang400-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/MemRegion.cpp
  projects/clang400-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/RegionStore.cpp
  projects/clang400-import/contrib/llvm/tools/lld/ELF/Config.h
  projects/clang400-import/contrib/llvm/tools/lld/ELF/Driver.cpp
  projects/clang400-import/contrib/llvm/tools/lld/ELF/Options.td
  projects/clang400-import/contrib/llvm/tools/lld/ELF/Symbols.cpp
  projects/clang400-import/contrib/llvm/tools/lld/ELF/SyntheticSections.cpp
  projects/clang400-import/contrib/llvm/tools/lld/ELF/Writer.cpp
  projects/clang400-import/contrib/llvm/tools/llvm-objdump/ELFDump.cpp
  projects/clang400-import/lib/clang/include/clang/Basic/Version.inc
  projects/clang400-import/lib/clang/include/lld/Config/Version.inc
Directory Properties:
  projects/clang400-import/contrib/compiler-rt/   (props changed)
  projects/clang400-import/contrib/libc++/   (props changed)
  projects/clang400-import/contrib/llvm/   (props changed)
  projects/clang400-import/contrib/llvm/tools/clang/   (props changed)
  projects/clang400-import/contrib/llvm/tools/lld/   (props changed)
  projects/clang400-import/contrib/llvm/tools/lldb/   (props changed)

Modified: projects/clang400-import/contrib/libc++/include/__tree
==============================================================================
--- projects/clang400-import/contrib/libc++/include/__tree	Sun Feb  5 19:38:10 2017	(r313299)
+++ projects/clang400-import/contrib/libc++/include/__tree	Sun Feb  5 19:57:41 2017	(r313300)
@@ -17,6 +17,8 @@
 #include <stdexcept>
 #include <algorithm>
 
+#include <__undef_min_max>
+
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #pragma GCC system_header
 #endif

Modified: projects/clang400-import/contrib/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp	Sun Feb  5 19:38:10 2017	(r313299)
+++ projects/clang400-import/contrib/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp	Sun Feb  5 19:57:41 2017	(r313300)
@@ -8123,9 +8123,12 @@ SDValue DAGCombiner::visitFADDForFMAComb
   }
 
   // More folding opportunities when target permits.
-  if ((AllowFusion || HasFMAD)  && Aggressive) {
+  if (Aggressive) {
     // fold (fadd (fma x, y, (fmul u, v)), z) -> (fma x, y (fma u, v, z))
-    if (N0.getOpcode() == PreferredFusedOpcode &&
+    // FIXME: The UnsafeAlgebra flag should be propagated to FMA/FMAD, but FMF
+    // are currently only supported on binary nodes.
+    if (Options.UnsafeFPMath &&
+        N0.getOpcode() == PreferredFusedOpcode &&
         N0.getOperand(2).getOpcode() == ISD::FMUL &&
         N0->hasOneUse() && N0.getOperand(2)->hasOneUse()) {
       return DAG.getNode(PreferredFusedOpcode, SL, VT,
@@ -8137,7 +8140,10 @@ SDValue DAGCombiner::visitFADDForFMAComb
     }
 
     // fold (fadd x, (fma y, z, (fmul u, v)) -> (fma y, z (fma u, v, x))
-    if (N1->getOpcode() == PreferredFusedOpcode &&
+    // FIXME: The UnsafeAlgebra flag should be propagated to FMA/FMAD, but FMF
+    // are currently only supported on binary nodes.
+    if (Options.UnsafeFPMath &&
+        N1->getOpcode() == PreferredFusedOpcode &&
         N1.getOperand(2).getOpcode() == ISD::FMUL &&
         N1->hasOneUse() && N1.getOperand(2)->hasOneUse()) {
       return DAG.getNode(PreferredFusedOpcode, SL, VT,
@@ -8367,10 +8373,13 @@ SDValue DAGCombiner::visitFSUBForFMAComb
   }
 
   // More folding opportunities when target permits.
-  if ((AllowFusion || HasFMAD) && Aggressive) {
+  if (Aggressive) {
     // fold (fsub (fma x, y, (fmul u, v)), z)
     //   -> (fma x, y (fma u, v, (fneg z)))
-    if (N0.getOpcode() == PreferredFusedOpcode &&
+    // FIXME: The UnsafeAlgebra flag should be propagated to FMA/FMAD, but FMF
+    // are currently only supported on binary nodes.
+    if (Options.UnsafeFPMath &&
+        N0.getOpcode() == PreferredFusedOpcode &&
         N0.getOperand(2).getOpcode() == ISD::FMUL &&
         N0->hasOneUse() && N0.getOperand(2)->hasOneUse()) {
       return DAG.getNode(PreferredFusedOpcode, SL, VT,
@@ -8384,7 +8393,10 @@ SDValue DAGCombiner::visitFSUBForFMAComb
 
     // fold (fsub x, (fma y, z, (fmul u, v)))
     //   -> (fma (fneg y), z, (fma (fneg u), v, x))
-    if (N1.getOpcode() == PreferredFusedOpcode &&
+    // FIXME: The UnsafeAlgebra flag should be propagated to FMA/FMAD, but FMF
+    // are currently only supported on binary nodes.
+    if (Options.UnsafeFPMath &&
+        N1.getOpcode() == PreferredFusedOpcode &&
         N1.getOperand(2).getOpcode() == ISD::FMUL) {
       SDValue N20 = N1.getOperand(2).getOperand(0);
       SDValue N21 = N1.getOperand(2).getOperand(1);

Modified: projects/clang400-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp	Sun Feb  5 19:38:10 2017	(r313299)
+++ projects/clang400-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp	Sun Feb  5 19:57:41 2017	(r313300)
@@ -4039,11 +4039,6 @@ Instruction *InstCombiner::foldICmpUsing
         Constant *CMinus1 = ConstantInt::get(Op0->getType(), *CmpC - 1);
         return new ICmpInst(ICmpInst::ICMP_EQ, Op0, CMinus1);
       }
-      // (x <u 2147483648) -> (x >s -1)  -> true if sign bit clear
-      if (CmpC->isMinSignedValue()) {
-        Constant *AllOnes = Constant::getAllOnesValue(Op0->getType());
-        return new ICmpInst(ICmpInst::ICMP_SGT, Op0, AllOnes);
-      }
     }
     break;
   }
@@ -4063,11 +4058,6 @@ Instruction *InstCombiner::foldICmpUsing
       if (*CmpC == Op0Max - 1)
         return new ICmpInst(ICmpInst::ICMP_EQ, Op0,
                             ConstantInt::get(Op1->getType(), *CmpC + 1));
-
-      // (x >u 2147483647) -> (x <s 0)  -> true if sign bit set
-      if (CmpC->isMaxSignedValue())
-        return new ICmpInst(ICmpInst::ICMP_SLT, Op0,
-                            Constant::getNullValue(Op0->getType()));
     }
     break;
   }
@@ -4299,6 +4289,27 @@ Instruction *InstCombiner::visitICmpInst
           (SI->getOperand(2) == Op0 && SI->getOperand(1) == Op1))
         return nullptr;
 
+  // FIXME: We only do this after checking for min/max to prevent infinite
+  // looping caused by a reverse canonicalization of these patterns for min/max.
+  // FIXME: The organization of folds is a mess. These would naturally go into
+  // canonicalizeCmpWithConstant(), but we can't move all of the above folds
+  // down here after the min/max restriction.
+  ICmpInst::Predicate Pred = I.getPredicate();
+  const APInt *C;
+  if (match(Op1, m_APInt(C))) {
+    // For i32: x >u 2147483647 -> x <s 0  -> true if sign bit set
+    if (Pred == ICmpInst::ICMP_UGT && C->isMaxSignedValue()) {
+      Constant *Zero = Constant::getNullValue(Op0->getType());
+      return new ICmpInst(ICmpInst::ICMP_SLT, Op0, Zero);
+    }
+
+    // For i32: x <u 2147483648 -> x >s -1  -> true if sign bit clear
+    if (Pred == ICmpInst::ICMP_ULT && C->isMinSignedValue()) {
+      Constant *AllOnes = Constant::getAllOnesValue(Op0->getType());
+      return new ICmpInst(ICmpInst::ICMP_SGT, Op0, AllOnes);
+    }
+  }
+
   if (Instruction *Res = foldICmpInstWithConstant(I))
     return Res;
 

Modified: projects/clang400-import/contrib/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp	Sun Feb  5 19:38:10 2017	(r313299)
+++ projects/clang400-import/contrib/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp	Sun Feb  5 19:57:41 2017	(r313300)
@@ -158,8 +158,9 @@ struct MemAccessTy {
 
   bool operator!=(MemAccessTy Other) const { return !(*this == Other); }
 
-  static MemAccessTy getUnknown(LLVMContext &Ctx) {
-    return MemAccessTy(Type::getVoidTy(Ctx), UnknownAddressSpace);
+  static MemAccessTy getUnknown(LLVMContext &Ctx,
+                                unsigned AS = UnknownAddressSpace) {
+    return MemAccessTy(Type::getVoidTy(Ctx), AS);
   }
 };
 
@@ -2279,8 +2280,10 @@ bool LSRInstance::reconcileNewOffset(LSR
   // TODO: Be less conservative when the type is similar and can use the same
   // addressing modes.
   if (Kind == LSRUse::Address) {
-    if (AccessTy != LU.AccessTy)
-      NewAccessTy = MemAccessTy::getUnknown(AccessTy.MemTy->getContext());
+    if (AccessTy.MemTy != LU.AccessTy.MemTy) {
+      NewAccessTy = MemAccessTy::getUnknown(AccessTy.MemTy->getContext(),
+                                            AccessTy.AddrSpace);
+    }
   }
 
   // Conservatively assume HasBaseReg is true for now.

Modified: projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/SemaExprCXX.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/SemaExprCXX.cpp	Sun Feb  5 19:38:10 2017	(r313299)
+++ projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/SemaExprCXX.cpp	Sun Feb  5 19:57:41 2017	(r313300)
@@ -7190,14 +7190,6 @@ public:
 
   ExprResult TransformBlockExpr(BlockExpr *E) { return Owned(E); }
 
-  ExprResult TransformObjCPropertyRefExpr(ObjCPropertyRefExpr *E) {
-    return Owned(E);
-  }
-
-  ExprResult TransformObjCIvarRefExpr(ObjCIvarRefExpr *E) {
-    return Owned(E);
-  }
-
   ExprResult Transform(Expr *E) {
     ExprResult Res;
     while (true) {

Modified: projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/TreeTransform.h
==============================================================================
--- projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/TreeTransform.h	Sun Feb  5 19:38:10 2017	(r313299)
+++ projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/TreeTransform.h	Sun Feb  5 19:57:41 2017	(r313300)
@@ -2932,16 +2932,17 @@ public:
   ExprResult RebuildObjCIvarRefExpr(Expr *BaseArg, ObjCIvarDecl *Ivar,
                                           SourceLocation IvarLoc,
                                           bool IsArrow, bool IsFreeIvar) {
-    // FIXME: We lose track of the IsFreeIvar bit.
     CXXScopeSpec SS;
     DeclarationNameInfo NameInfo(Ivar->getDeclName(), IvarLoc);
-    return getSema().BuildMemberReferenceExpr(BaseArg, BaseArg->getType(),
-                                              /*FIXME:*/IvarLoc, IsArrow,
-                                              SS, SourceLocation(),
-                                              /*FirstQualifierInScope=*/nullptr,
-                                              NameInfo,
-                                              /*TemplateArgs=*/nullptr,
-                                              /*S=*/nullptr);
+    ExprResult Result = getSema().BuildMemberReferenceExpr(
+        BaseArg, BaseArg->getType(),
+        /*FIXME:*/ IvarLoc, IsArrow, SS, SourceLocation(),
+        /*FirstQualifierInScope=*/nullptr, NameInfo,
+        /*TemplateArgs=*/nullptr,
+        /*S=*/nullptr);
+    if (IsFreeIvar && Result.isUsable())
+      cast<ObjCIvarRefExpr>(Result.get())->setIsFreeIvar(IsFreeIvar);
+    return Result;
   }
 
   /// \brief Build a new Objective-C property reference expression.

Modified: projects/clang400-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MacOSXAPIChecker.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MacOSXAPIChecker.cpp	Sun Feb  5 19:38:10 2017	(r313299)
+++ projects/clang400-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MacOSXAPIChecker.cpp	Sun Feb  5 19:57:41 2017	(r313300)
@@ -94,11 +94,18 @@ void MacOSXAPIChecker::CheckDispatchOnce
   bool SuggestStatic = false;
   os << "Call to '" << FName << "' uses";
   if (const VarRegion *VR = dyn_cast<VarRegion>(RB)) {
+    const VarDecl *VD = VR->getDecl();
+    // FIXME: These should have correct memory space and thus should be filtered
+    // out earlier. This branch only fires when we're looking from a block,
+    // which we analyze as a top-level declaration, onto a static local
+    // in a function that contains the block.
+    if (VD->isStaticLocal())
+      return;
     // We filtered out globals earlier, so it must be a local variable
     // or a block variable which is under UnknownSpaceRegion.
     if (VR != R)
       os << " memory within";
-    if (VR->getDecl()->hasAttr<BlocksAttr>())
+    if (VD->hasAttr<BlocksAttr>())
       os << " the block variable '";
     else
       os << " the local variable '";

Modified: projects/clang400-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/MemRegion.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/MemRegion.cpp	Sun Feb  5 19:38:10 2017	(r313299)
+++ projects/clang400-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/MemRegion.cpp	Sun Feb  5 19:57:41 2017	(r313300)
@@ -816,9 +816,11 @@ const VarRegion* MemRegionManager::getVa
 
     const StackFrameContext *STC = V.get<const StackFrameContext*>();
 
-    if (!STC)
+    if (!STC) {
+      // FIXME: Assign a more sensible memory space to static locals
+      // we see from within blocks that we analyze as top-level declarations.
       sReg = getUnknownRegion();
-    else {
+    } else {
       if (D->hasLocalStorage()) {
         sReg = isa<ParmVarDecl>(D) || isa<ImplicitParamDecl>(D)
                ? static_cast<const MemRegion*>(getStackArgumentsRegion(STC))

Modified: projects/clang400-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/RegionStore.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/RegionStore.cpp	Sun Feb  5 19:38:10 2017	(r313299)
+++ projects/clang400-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/RegionStore.cpp	Sun Feb  5 19:57:41 2017	(r313300)
@@ -1849,6 +1849,8 @@ SVal RegionStoreManager::getBindingForVa
 
     // Function-scoped static variables are default-initialized to 0; if they
     // have an initializer, it would have been processed by now.
+    // FIXME: This is only true when we're starting analysis from main().
+    // We're losing a lot of coverage here.
     if (isa<StaticGlobalSpaceRegion>(MS))
       return svalBuilder.makeZeroVal(T);
 

Modified: projects/clang400-import/contrib/llvm/tools/lld/ELF/Config.h
==============================================================================
--- projects/clang400-import/contrib/llvm/tools/lld/ELF/Config.h	Sun Feb  5 19:38:10 2017	(r313299)
+++ projects/clang400-import/contrib/llvm/tools/lld/ELF/Config.h	Sun Feb  5 19:57:41 2017	(r313300)
@@ -98,6 +98,7 @@ struct Configuration {
   bool Bsymbolic;
   bool BsymbolicFunctions;
   bool ColorDiagnostics = false;
+  bool DefineCommon;
   bool Demangle = true;
   bool DisableVerify;
   bool EhFrameHdr;

Modified: projects/clang400-import/contrib/llvm/tools/lld/ELF/Driver.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/tools/lld/ELF/Driver.cpp	Sun Feb  5 19:38:10 2017	(r313299)
+++ projects/clang400-import/contrib/llvm/tools/lld/ELF/Driver.cpp	Sun Feb  5 19:57:41 2017	(r313300)
@@ -496,6 +496,8 @@ void LinkerDriver::readConfigs(opt::Inpu
   Config->Pie = getArg(Args, OPT_pie, OPT_nopie, false);
   Config->PrintGcSections = Args.hasArg(OPT_print_gc_sections);
   Config->Relocatable = Args.hasArg(OPT_relocatable);
+  Config->DefineCommon = getArg(Args, OPT_define_common, OPT_no_define_common,
+                                !Config->Relocatable);
   Config->Discard = getDiscardOption(Args);
   Config->SaveTemps = Args.hasArg(OPT_save_temps);
   Config->SingleRoRx = Args.hasArg(OPT_no_rosegment);

Modified: projects/clang400-import/contrib/llvm/tools/lld/ELF/Options.td
==============================================================================
--- projects/clang400-import/contrib/llvm/tools/lld/ELF/Options.td	Sun Feb  5 19:38:10 2017	(r313299)
+++ projects/clang400-import/contrib/llvm/tools/lld/ELF/Options.td	Sun Feb  5 19:57:41 2017	(r313300)
@@ -45,6 +45,9 @@ def color_diagnostics: F<"color-diagnost
 def color_diagnostics_eq: J<"color-diagnostics=">,
   HelpText<"Use colors in diagnostics">;
 
+def define_common: F<"define-common">,
+  HelpText<"Assign space to common symbols">;
+
 def disable_new_dtags: F<"disable-new-dtags">,
   HelpText<"Disable new dynamic tags">;
 
@@ -130,6 +133,9 @@ def no_as_needed: F<"no-as-needed">,
 def no_color_diagnostics: F<"no-color-diagnostics">,
   HelpText<"Do not use colors in diagnostics">;
 
+def no_define_common: F<"no-define-common">,
+  HelpText<"Do not assign space to common symbols">;
+
 def no_demangle: F<"no-demangle">,
   HelpText<"Do not demangle symbol names">;
 
@@ -255,6 +261,9 @@ def alias_Bstatic_dn: F<"dn">, Alias<Bst
 def alias_Bstatic_non_shared: F<"non_shared">, Alias<Bstatic>;
 def alias_Bstatic_static: F<"static">, Alias<Bstatic>;
 def alias_L__library_path: J<"library-path=">, Alias<L>;
+def alias_define_common_d: Flag<["-"], "d">, Alias<define_common>;
+def alias_define_common_dc: F<"dc">, Alias<define_common>;
+def alias_define_common_dp: F<"dp">, Alias<define_common>;
 def alias_discard_all_x: Flag<["-"], "x">, Alias<discard_all>;
 def alias_discard_locals_X: Flag<["-"], "X">, Alias<discard_locals>;
 def alias_dynamic_list: J<"dynamic-list=">, Alias<dynamic_list>;
@@ -320,7 +329,6 @@ def plugin_opt_eq: J<"plugin-opt=">;
 // Options listed below are silently ignored for now for compatibility.
 def allow_shlib_undefined: F<"allow-shlib-undefined">;
 def cref: Flag<["--"], "cref">;
-def define_common: F<"define-common">;
 def demangle: F<"demangle">;
 def detect_odr_violations: F<"detect-odr-violations">;
 def g: Flag<["-"], "g">;
@@ -347,9 +355,6 @@ def G: JoinedOrSeparate<["-"], "G">;
 def Qy : F<"Qy">;
 
 // Aliases for ignored options
-def alias_define_common_d: Flag<["-"], "d">, Alias<define_common>;
-def alias_define_common_dc: F<"dc">, Alias<define_common>;
-def alias_define_common_dp: F<"dp">, Alias<define_common>;
 def alias_Map_eq: J<"Map=">, Alias<Map>;
 def alias_version_script_version_script: J<"version-script=">,
   Alias<version_script>;

Modified: projects/clang400-import/contrib/llvm/tools/lld/ELF/Symbols.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/tools/lld/ELF/Symbols.cpp	Sun Feb  5 19:38:10 2017	(r313299)
+++ projects/clang400-import/contrib/llvm/tools/lld/ELF/Symbols.cpp	Sun Feb  5 19:57:41 2017	(r313300)
@@ -73,6 +73,8 @@ static typename ELFT::uint getSymVA(cons
     return VA;
   }
   case SymbolBody::DefinedCommonKind:
+    if (!Config->DefineCommon)
+      return 0;
     return In<ELFT>::Common->OutSec->Addr + In<ELFT>::Common->OutSecOff +
            cast<DefinedCommon>(Body).Offset;
   case SymbolBody::SharedKind: {

Modified: projects/clang400-import/contrib/llvm/tools/lld/ELF/SyntheticSections.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/tools/lld/ELF/SyntheticSections.cpp	Sun Feb  5 19:38:10 2017	(r313299)
+++ projects/clang400-import/contrib/llvm/tools/lld/ELF/SyntheticSections.cpp	Sun Feb  5 19:57:41 2017	(r313300)
@@ -59,6 +59,9 @@ template <class ELFT> InputSection<ELFT>
                                        ArrayRef<uint8_t>(), "COMMON");
   Ret->Live = true;
 
+  if (!Config->DefineCommon)
+    return Ret;
+
   // Sort the common symbols by alignment as an heuristic to pack them better.
   std::vector<DefinedCommon *> Syms = getCommonSymbols<ELFT>();
   std::stable_sort(Syms.begin(), Syms.end(),
@@ -434,7 +437,7 @@ template <class ELFT> void GotSection<EL
 template <class ELFT>
 MipsGotSection<ELFT>::MipsGotSection()
     : SyntheticSection<ELFT>(SHF_ALLOC | SHF_WRITE | SHF_MIPS_GPREL,
-                             SHT_PROGBITS, Target->GotEntrySize, ".got") {}
+                             SHT_PROGBITS, 16, ".got") {}
 
 template <class ELFT>
 void MipsGotSection<ELFT>::addEntry(SymbolBody &Sym, uintX_t Addend,
@@ -1168,10 +1171,14 @@ void SymbolTableSection<ELFT>::writeGlob
     ESym->setVisibility(Body->symbol()->Visibility);
     ESym->st_value = Body->getVA<ELFT>();
 
-    if (const OutputSectionBase *OutSec = getOutputSection(Body))
+    if (const OutputSectionBase *OutSec = getOutputSection(Body)) {
       ESym->st_shndx = OutSec->SectionIndex;
-    else if (isa<DefinedRegular<ELFT>>(Body))
+    } else if (isa<DefinedRegular<ELFT>>(Body)) {
       ESym->st_shndx = SHN_ABS;
+    } else if (isa<DefinedCommon>(Body)) {
+      ESym->st_shndx = SHN_COMMON;
+      ESym->st_value = cast<DefinedCommon>(Body)->Alignment;
+    }
 
     if (Config->EMachine == EM_MIPS) {
       // On MIPS we need to mark symbol which has a PLT entry and requires
@@ -1203,6 +1210,8 @@ SymbolTableSection<ELFT>::getOutputSecti
     break;
   }
   case SymbolBody::DefinedCommonKind:
+    if (!Config->DefineCommon)
+      return nullptr;
     return In<ELFT>::Common->OutSec;
   case SymbolBody::SharedKind: {
     auto &SS = cast<SharedSymbol<ELFT>>(*Sym);

Modified: projects/clang400-import/contrib/llvm/tools/lld/ELF/Writer.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/tools/lld/ELF/Writer.cpp	Sun Feb  5 19:38:10 2017	(r313299)
+++ projects/clang400-import/contrib/llvm/tools/lld/ELF/Writer.cpp	Sun Feb  5 19:57:41 2017	(r313300)
@@ -476,6 +476,16 @@ static int getPPC64SectionRank(StringRef
       .Default(1);
 }
 
+// All sections with SHF_MIPS_GPREL flag should be grouped together
+// because data in these sections is addressable with a gp relative address.
+static int getMipsSectionRank(const OutputSectionBase *S) {
+  if ((S->Flags & SHF_MIPS_GPREL) == 0)
+    return 0;
+  if (S->getName() == ".got")
+    return 1;
+  return 2;
+}
+
 template <class ELFT> bool elf::isRelroSection(const OutputSectionBase *Sec) {
   if (!Config->ZRelro)
     return false;
@@ -494,8 +504,6 @@ template <class ELFT> bool elf::isRelroS
     return true;
   if (In<ELFT>::Got && Sec == In<ELFT>::Got->OutSec)
     return true;
-  if (In<ELFT>::MipsGot && Sec == In<ELFT>::MipsGot->OutSec)
-    return true;
   if (Sec == Out<ELFT>::BssRelRo)
     return true;
   StringRef S = Sec->getName();
@@ -595,6 +603,8 @@ static bool compareSectionsNonScript(con
   if (Config->EMachine == EM_PPC64)
     return getPPC64SectionRank(A->getName()) <
            getPPC64SectionRank(B->getName());
+  if (Config->EMachine == EM_MIPS)
+    return getMipsSectionRank(A) < getMipsSectionRank(B);
 
   return false;
 }

Modified: projects/clang400-import/contrib/llvm/tools/llvm-objdump/ELFDump.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/tools/llvm-objdump/ELFDump.cpp	Sun Feb  5 19:38:10 2017	(r313299)
+++ projects/clang400-import/contrib/llvm/tools/llvm-objdump/ELFDump.cpp	Sun Feb  5 19:57:41 2017	(r313300)
@@ -36,6 +36,9 @@ template <class ELFT> void printProgramH
     case ELF::PT_GNU_EH_FRAME:
       outs() << "EH_FRAME ";
       break;
+    case ELF::PT_GNU_RELRO:
+      outs() << "   RELRO ";
+      break;
     case ELF::PT_GNU_STACK:
       outs() << "   STACK ";
       break;
@@ -45,6 +48,18 @@ template <class ELFT> void printProgramH
     case ELF::PT_LOAD:
       outs() << "    LOAD ";
       break;
+    case ELF::PT_NOTE:
+      outs() << "    NOTE ";
+      break;
+    case ELF::PT_OPENBSD_BOOTDATA:
+      outs() << "    OPENBSD_BOOTDATA ";
+      break;
+    case ELF::PT_OPENBSD_RANDOMIZE:
+      outs() << "    OPENBSD_RANDOMIZE ";
+      break;
+    case ELF::PT_OPENBSD_WXNEEDED:
+      outs() << "    OPENBSD_WXNEEDED ";
+      break;
     case ELF::PT_PHDR:
       outs() << "    PHDR ";
       break;

Modified: projects/clang400-import/lib/clang/include/clang/Basic/Version.inc
==============================================================================
--- projects/clang400-import/lib/clang/include/clang/Basic/Version.inc	Sun Feb  5 19:38:10 2017	(r313299)
+++ projects/clang400-import/lib/clang/include/clang/Basic/Version.inc	Sun Feb  5 19:57:41 2017	(r313300)
@@ -8,4 +8,4 @@
 
 #define	CLANG_VENDOR			"FreeBSD "
 
-#define	SVN_REVISION			"293807"
+#define	SVN_REVISION			"294123"

Modified: projects/clang400-import/lib/clang/include/lld/Config/Version.inc
==============================================================================
--- projects/clang400-import/lib/clang/include/lld/Config/Version.inc	Sun Feb  5 19:38:10 2017	(r313299)
+++ projects/clang400-import/lib/clang/include/lld/Config/Version.inc	Sun Feb  5 19:57:41 2017	(r313300)
@@ -4,5 +4,5 @@
 #define LLD_VERSION_STRING "4.0.0"
 #define LLD_VERSION_MAJOR 4
 #define LLD_VERSION_MINOR 0
-#define LLD_REVISION_STRING "293807"
+#define LLD_REVISION_STRING "294123"
 #define LLD_REPOSITORY_STRING "FreeBSD"

From owner-svn-src-projects@freebsd.org  Sun Feb  5 20:03:08 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id D692FCD2C39
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Sun,  5 Feb 2017 20:03:08 +0000 (UTC) (envelope-from dim@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 746751446;
 Sun,  5 Feb 2017 20:03:08 +0000 (UTC) (envelope-from dim@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v15K37KT051375;
 Sun, 5 Feb 2017 20:03:07 GMT (envelope-from dim@FreeBSD.org)
Received: (from dim@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v15K36MV051361;
 Sun, 5 Feb 2017 20:03:06 GMT (envelope-from dim@FreeBSD.org)
Message-Id: <201702052003.v15K36MV051361@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org
 using -f
From: Dimitry Andric <dim@FreeBSD.org>
Date: Sun, 5 Feb 2017 20:03:06 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r313301 - in projects/clang400-import: .
 cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt
 cddl/contrib/opensolaris/lib/libdtrace/common contrib/byacc
 contrib/byacc/package contr...
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sun, 05 Feb 2017 20:03:08 -0000

Author: dim
Date: Sun Feb  5 20:03:05 2017
New Revision: 313301
URL: https://svnweb.freebsd.org/changeset/base/313301

Log:
  Merge ^/head r313055 through r313300.

Added:
  projects/clang400-import/contrib/byacc/test/btyacc/expr.oxout.error
     - copied unchanged from r313300, head/contrib/byacc/test/btyacc/expr.oxout.error
  projects/clang400-import/contrib/byacc/test/btyacc/expr.oxout.output
     - copied unchanged from r313300, head/contrib/byacc/test/btyacc/expr.oxout.output
  projects/clang400-import/contrib/byacc/test/btyacc/expr.oxout.tab.c
     - copied unchanged from r313300, head/contrib/byacc/test/btyacc/expr.oxout.tab.c
  projects/clang400-import/contrib/byacc/test/btyacc/expr.oxout.tab.h
     - copied unchanged from r313300, head/contrib/byacc/test/btyacc/expr.oxout.tab.h
  projects/clang400-import/contrib/byacc/test/expr.oxout.y
     - copied unchanged from r313300, head/contrib/byacc/test/expr.oxout.y
  projects/clang400-import/contrib/byacc/test/yacc/expr.oxout.error
     - copied unchanged from r313300, head/contrib/byacc/test/yacc/expr.oxout.error
  projects/clang400-import/contrib/byacc/test/yacc/expr.oxout.output
     - copied unchanged from r313300, head/contrib/byacc/test/yacc/expr.oxout.output
  projects/clang400-import/contrib/byacc/test/yacc/expr.oxout.tab.c
     - copied unchanged from r313300, head/contrib/byacc/test/yacc/expr.oxout.tab.c
  projects/clang400-import/contrib/byacc/test/yacc/expr.oxout.tab.h
     - copied unchanged from r313300, head/contrib/byacc/test/yacc/expr.oxout.tab.h
  projects/clang400-import/contrib/libarchive/libarchive/test/test_acl_platform_nfs4.c
     - copied unchanged from r313300, head/contrib/libarchive/libarchive/test/test_acl_platform_nfs4.c
  projects/clang400-import/contrib/libarchive/libarchive/test/test_acl_platform_posix1e.c
     - copied unchanged from r313300, head/contrib/libarchive/libarchive/test/test_acl_platform_posix1e.c
  projects/clang400-import/sbin/nvmecontrol/wdc.c
     - copied unchanged from r313300, head/sbin/nvmecontrol/wdc.c
  projects/clang400-import/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace_xoroshiro128_plus.c
     - copied unchanged from r313300, head/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace_xoroshiro128_plus.c
  projects/clang400-import/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace_xoroshiro128_plus.h
     - copied unchanged from r313300, head/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace_xoroshiro128_plus.h
Deleted:
  projects/clang400-import/contrib/libarchive/libarchive/test/test_acl_freebsd_nfs4.c
  projects/clang400-import/contrib/libarchive/libarchive/test/test_acl_freebsd_posix1e.c
Modified:
  projects/clang400-import/Makefile.inc1
  projects/clang400-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.enabled2.ksh
  projects/clang400-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.include.ksh
  projects/clang400-import/cddl/contrib/opensolaris/lib/libdtrace/common/dt_dof.c
  projects/clang400-import/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c
  projects/clang400-import/cddl/contrib/opensolaris/lib/libdtrace/common/dt_provider.c
  projects/clang400-import/contrib/byacc/CHANGES
  projects/clang400-import/contrib/byacc/MANIFEST
  projects/clang400-import/contrib/byacc/VERSION
  projects/clang400-import/contrib/byacc/aclocal.m4
  projects/clang400-import/contrib/byacc/config.guess
  projects/clang400-import/contrib/byacc/config.sub
  projects/clang400-import/contrib/byacc/configure
  projects/clang400-import/contrib/byacc/defs.h
  projects/clang400-import/contrib/byacc/main.c
  projects/clang400-import/contrib/byacc/package/byacc.spec
  projects/clang400-import/contrib/byacc/package/debian/changelog
  projects/clang400-import/contrib/byacc/package/debian/copyright
  projects/clang400-import/contrib/byacc/package/mingw-byacc.spec
  projects/clang400-import/contrib/byacc/package/pkgsrc/Makefile
  projects/clang400-import/contrib/byacc/reader.c
  projects/clang400-import/contrib/libarchive/NEWS
  projects/clang400-import/contrib/libarchive/libarchive/archive_acl.c
  projects/clang400-import/contrib/libarchive/libarchive/archive_acl_private.h
  projects/clang400-import/contrib/libarchive/libarchive/archive_entry.c
  projects/clang400-import/contrib/libarchive/libarchive/archive_entry_strmode.c
  projects/clang400-import/contrib/libarchive/libarchive/archive_platform.h
  projects/clang400-import/contrib/libarchive/libarchive/archive_random.c
  projects/clang400-import/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c
  projects/clang400-import/contrib/libarchive/libarchive/archive_read_open_filename.c
  projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_filter_lz4.c
  projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_filter_program.c
  projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_cab.c
  projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_cpio.c
  projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_iso9660.c
  projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_lha.c
  projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_mtree.c
  projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_tar.c
  projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_warc.c
  projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_xar.c
  projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_zip.c
  projects/clang400-import/contrib/libarchive/libarchive/archive_write_add_filter_program.c
  projects/clang400-import/contrib/libarchive/libarchive/archive_write_disk_acl.c
  projects/clang400-import/contrib/libarchive/libarchive/archive_write_disk_posix.c
  projects/clang400-import/contrib/libarchive/libarchive/archive_write_open.3
  projects/clang400-import/contrib/libarchive/libarchive/archive_write_set_format_gnutar.c
  projects/clang400-import/contrib/libarchive/libarchive/archive_write_set_format_iso9660.c
  projects/clang400-import/contrib/libarchive/libarchive/archive_write_set_format_xar.c
  projects/clang400-import/contrib/libarchive/libarchive/test/main.c
  projects/clang400-import/contrib/libarchive/libarchive/test/test.h
  projects/clang400-import/contrib/libarchive/libarchive/test/test_acl_text.c
  projects/clang400-import/contrib/libarchive/libarchive/test/test_archive_string.c
  projects/clang400-import/contrib/libarchive/libarchive/test/test_compat_gtar.c
  projects/clang400-import/contrib/libarchive/libarchive/test/test_compat_solaris_tar_acl.c
  projects/clang400-import/contrib/libarchive/libarchive/test/test_compat_solaris_tar_acl.tar.uu
  projects/clang400-import/contrib/libarchive/libarchive/test/test_fuzz.c
  projects/clang400-import/contrib/libarchive/libarchive/test/test_read_disk_directory_traversals.c
  projects/clang400-import/contrib/libarchive/libarchive/test/test_read_filter_lzop.c
  projects/clang400-import/contrib/libarchive/libarchive/test/test_read_filter_lzop_multiple_parts.c
  projects/clang400-import/contrib/libarchive/libarchive/test/test_read_format_zip.c
  projects/clang400-import/contrib/libarchive/libarchive/test/test_read_format_zip_comment_stored.c
  projects/clang400-import/contrib/libarchive/libarchive/test/test_read_format_zip_mac_metadata.c
  projects/clang400-import/contrib/libarchive/libarchive/test/test_read_format_zip_malformed.c
  projects/clang400-import/contrib/libarchive/libarchive/test/test_read_format_zip_nested.c
  projects/clang400-import/contrib/libarchive/libarchive/test/test_read_format_zip_padded.c
  projects/clang400-import/contrib/libarchive/libarchive/test/test_read_format_zip_sfx.c
  projects/clang400-import/contrib/libarchive/libarchive/test/test_write_disk_secure746.c
  projects/clang400-import/contrib/libarchive/libarchive/test/test_write_filter_lz4.c
  projects/clang400-import/contrib/libarchive/libarchive/test/test_write_filter_lzop.c
  projects/clang400-import/contrib/libarchive/libarchive/test/test_write_format_zip_large.c
  projects/clang400-import/contrib/libarchive/libarchive/test/test_write_format_zip_zip64.c
  projects/clang400-import/contrib/libarchive/tar/test/test_option_uid_uname.c
  projects/clang400-import/contrib/libarchive/tar/util.c
  projects/clang400-import/contrib/tcpdump/config.h.in
  projects/clang400-import/contrib/tcpdump/configure
  projects/clang400-import/contrib/tcpdump/configure.in
  projects/clang400-import/contrib/tcpdump/tcpdump.c
  projects/clang400-import/etc/devd.conf
  projects/clang400-import/etc/periodic/daily/999.local
  projects/clang400-import/etc/periodic/monthly/999.local
  projects/clang400-import/etc/periodic/weekly/999.local
  projects/clang400-import/lib/libarchive/config_freebsd.h
  projects/clang400-import/lib/libarchive/tests/Makefile
  projects/clang400-import/lib/libc/aarch64/gen/setjmp.S
  projects/clang400-import/lib/libc/gen/getpeereid.3
  projects/clang400-import/lib/libc/sys/recv.2
  projects/clang400-import/libexec/getty/gettytab.5
  projects/clang400-import/libexec/getty/subr.c
  projects/clang400-import/sbin/decryptcore/decryptcore.c
  projects/clang400-import/sbin/hastctl/Makefile
  projects/clang400-import/sbin/hastd/Makefile
  projects/clang400-import/sbin/hastd/hast_checksum.c
  projects/clang400-import/sbin/hastd/hast_proto.c
  projects/clang400-import/sbin/ifconfig/ifieee80211.c
  projects/clang400-import/sbin/kldload/kldload.c
  projects/clang400-import/sbin/nvmecontrol/Makefile
  projects/clang400-import/sbin/nvmecontrol/firmware.c
  projects/clang400-import/sbin/nvmecontrol/logpage.c
  projects/clang400-import/sbin/nvmecontrol/nvmecontrol.8
  projects/clang400-import/sbin/nvmecontrol/nvmecontrol.c
  projects/clang400-import/sbin/nvmecontrol/nvmecontrol.h
  projects/clang400-import/sbin/resolvconf/Makefile
  projects/clang400-import/sbin/savecore/savecore.c
  projects/clang400-import/share/man/man4/unix.4
  projects/clang400-import/sys/amd64/include/pcpu.h
  projects/clang400-import/sys/amd64/linux/linux_dummy.c
  projects/clang400-import/sys/amd64/linux/linux_proto.h
  projects/clang400-import/sys/amd64/linux/linux_syscall.h
  projects/clang400-import/sys/amd64/linux/linux_syscalls.c
  projects/clang400-import/sys/amd64/linux/linux_sysent.c
  projects/clang400-import/sys/amd64/linux/linux_systrace_args.c
  projects/clang400-import/sys/amd64/linux/syscalls.master
  projects/clang400-import/sys/amd64/linux32/linux32_dummy.c
  projects/clang400-import/sys/amd64/linux32/linux32_proto.h
  projects/clang400-import/sys/amd64/linux32/linux32_syscall.h
  projects/clang400-import/sys/amd64/linux32/linux32_syscalls.c
  projects/clang400-import/sys/amd64/linux32/linux32_sysent.c
  projects/clang400-import/sys/amd64/linux32/linux32_systrace_args.c
  projects/clang400-import/sys/amd64/linux32/syscalls.master
  projects/clang400-import/sys/arm/allwinner/std.allwinner
  projects/clang400-import/sys/arm/allwinner/std.allwinner_up
  projects/clang400-import/sys/arm/altera/socfpga/std.socfpga
  projects/clang400-import/sys/arm/amlogic/aml8726/std.aml8726
  projects/clang400-import/sys/arm/annapurna/alpine/std.alpine
  projects/clang400-import/sys/arm/arm/cpufunc.c
  projects/clang400-import/sys/arm/arm/pmap-v6.c
  projects/clang400-import/sys/arm/broadcom/bcm2835/std.bcm2836
  projects/clang400-import/sys/arm/conf/GENERIC
  projects/clang400-import/sys/arm/freescale/imx/std.imx51
  projects/clang400-import/sys/arm/freescale/imx/std.imx53
  projects/clang400-import/sys/arm/freescale/imx/std.imx6
  projects/clang400-import/sys/arm/freescale/vybrid/std.vybrid
  projects/clang400-import/sys/arm/include/_types.h
  projects/clang400-import/sys/arm/include/asmacros.h
  projects/clang400-import/sys/arm/include/atomic-v4.h
  projects/clang400-import/sys/arm/include/cpu-v6.h
  projects/clang400-import/sys/arm/include/cpufunc.h
  projects/clang400-import/sys/arm/include/intr.h
  projects/clang400-import/sys/arm/include/sysreg.h
  projects/clang400-import/sys/arm/mv/armada38x/std.armada38x
  projects/clang400-import/sys/arm/nvidia/tegra124/std.tegra124
  projects/clang400-import/sys/arm/qemu/std.virt
  projects/clang400-import/sys/arm/rockchip/std.rk30xx
  projects/clang400-import/sys/arm/samsung/exynos/std.exynos5250
  projects/clang400-import/sys/arm/samsung/exynos/std.exynos5420
  projects/clang400-import/sys/arm/ti/am335x/am335x_lcd.c
  projects/clang400-import/sys/arm/ti/am335x/std.am335x
  projects/clang400-import/sys/arm/ti/omap4/std.omap4
  projects/clang400-import/sys/arm/xilinx/std.zynq7
  projects/clang400-import/sys/arm64/include/_types.h
  projects/clang400-import/sys/boot/efi/libefi/Makefile
  projects/clang400-import/sys/boot/efi/libefi/env.c
  projects/clang400-import/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c
  projects/clang400-import/sys/cddl/contrib/opensolaris/uts/common/sys/dtrace.h
  projects/clang400-import/sys/cddl/contrib/opensolaris/uts/common/sys/dtrace_impl.h
  projects/clang400-import/sys/cddl/dev/dtrace/dtrace_ioctl.c
  projects/clang400-import/sys/cddl/dev/dtrace/x86/dis_tables.c
  projects/clang400-import/sys/cddl/dev/dtrace/x86/dis_tables.h
  projects/clang400-import/sys/compat/freebsd32/freebsd32_misc.c
  projects/clang400-import/sys/compat/linux/linux_file.c
  projects/clang400-import/sys/compat/linux/linux_misc.c
  projects/clang400-import/sys/compat/linux/linux_socket.h
  projects/clang400-import/sys/conf/files.arm
  projects/clang400-import/sys/conf/files.i386
  projects/clang400-import/sys/conf/options.arm
  projects/clang400-import/sys/conf/options.i386
  projects/clang400-import/sys/contrib/dev/ath/ath_hal/ar9300/ar9300.h
  projects/clang400-import/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_freebsd.c
  projects/clang400-import/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_misc.c
  projects/clang400-import/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_radar.c
  projects/clang400-import/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_reset.c
  projects/clang400-import/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_spectral.c
  projects/clang400-import/sys/contrib/dev/ath/ath_hal/ar9300/ar9300phy.h
  projects/clang400-import/sys/dev/ath/ath_hal/ah.c
  projects/clang400-import/sys/dev/ath/ath_hal/ah.h
  projects/clang400-import/sys/dev/ath/ath_hal/ah_debug.h
  projects/clang400-import/sys/dev/ath/if_ath_spectral.c
  projects/clang400-import/sys/dev/ath/if_athioctl.h
  projects/clang400-import/sys/dev/cesa/cesa.h
  projects/clang400-import/sys/dev/de/dc21040reg.h
  projects/clang400-import/sys/dev/mmc/mmc.c
  projects/clang400-import/sys/dev/mmc/mmcreg.h
  projects/clang400-import/sys/dev/nvme/nvme_ctrlr.c
  projects/clang400-import/sys/dev/pci/pci_pci.c
  projects/clang400-import/sys/dev/pci/pcib_private.h
  projects/clang400-import/sys/dev/sdhci/sdhci.c
  projects/clang400-import/sys/dev/sdhci/sdhci.h
  projects/clang400-import/sys/dev/sdhci/sdhci_fdt.c
  projects/clang400-import/sys/dev/sdhci/sdhci_pci.c
  projects/clang400-import/sys/dev/usb/serial/uftdi.c
  projects/clang400-import/sys/dev/usb/serial/usb_serial.c
  projects/clang400-import/sys/dev/usb/serial/usb_serial.h
  projects/clang400-import/sys/geom/part/g_part_gpt.c
  projects/clang400-import/sys/i386/conf/DEFAULTS
  projects/clang400-import/sys/i386/conf/NOTES
  projects/clang400-import/sys/i386/i386/elf_machdep.c
  projects/clang400-import/sys/i386/i386/exception.s
  projects/clang400-import/sys/i386/i386/initcpu.c
  projects/clang400-import/sys/i386/i386/machdep.c
  projects/clang400-import/sys/i386/i386/mp_machdep.c
  projects/clang400-import/sys/i386/i386/pmap.c
  projects/clang400-import/sys/i386/i386/ptrace_machdep.c
  projects/clang400-import/sys/i386/i386/support.s
  projects/clang400-import/sys/i386/i386/swtch.s
  projects/clang400-import/sys/i386/i386/trap.c
  projects/clang400-import/sys/i386/i386/vm86bios.s
  projects/clang400-import/sys/i386/i386/vm_machdep.c
  projects/clang400-import/sys/i386/include/atomic.h
  projects/clang400-import/sys/i386/isa/npx.c
  projects/clang400-import/sys/i386/linux/linux_dummy.c
  projects/clang400-import/sys/i386/linux/linux_proto.h
  projects/clang400-import/sys/i386/linux/linux_ptrace.c
  projects/clang400-import/sys/i386/linux/linux_syscall.h
  projects/clang400-import/sys/i386/linux/linux_syscalls.c
  projects/clang400-import/sys/i386/linux/linux_sysent.c
  projects/clang400-import/sys/i386/linux/linux_systrace_args.c
  projects/clang400-import/sys/i386/linux/syscalls.master
  projects/clang400-import/sys/kern/kern_cpuset.c
  projects/clang400-import/sys/kern/kern_descrip.c
  projects/clang400-import/sys/kern/kern_mutex.c
  projects/clang400-import/sys/kern/kern_rmlock.c
  projects/clang400-import/sys/kern/kern_rwlock.c
  projects/clang400-import/sys/kern/kern_sx.c
  projects/clang400-import/sys/kern/subr_witness.c
  projects/clang400-import/sys/kern/vfs_subr.c
  projects/clang400-import/sys/mips/include/_types.h
  projects/clang400-import/sys/mips/include/pcpu.h
  projects/clang400-import/sys/modules/Makefile
  projects/clang400-import/sys/modules/dtrace/dtrace/Makefile
  projects/clang400-import/sys/modules/dtrace/fasttrap/Makefile
  projects/clang400-import/sys/modules/dtrace/systrace/Makefile
  projects/clang400-import/sys/net/iflib.c
  projects/clang400-import/sys/net/netisr.c
  projects/clang400-import/sys/net80211/ieee80211_output.c
  projects/clang400-import/sys/netinet/tcp_fastopen.c
  projects/clang400-import/sys/netinet/tcp_subr.c
  projects/clang400-import/sys/powerpc/include/_types.h
  projects/clang400-import/sys/powerpc/include/cpufunc.h
  projects/clang400-import/sys/powerpc/include/pcpu.h
  projects/clang400-import/sys/riscv/include/_types.h
  projects/clang400-import/sys/riscv/include/atomic.h
  projects/clang400-import/sys/sparc64/include/_types.h
  projects/clang400-import/sys/sparc64/include/pcpu.h
  projects/clang400-import/sys/sys/lockstat.h
  projects/clang400-import/sys/sys/mutex.h
  projects/clang400-import/sys/sys/rwlock.h
  projects/clang400-import/sys/sys/sdt.h
  projects/clang400-import/sys/sys/sx.h
  projects/clang400-import/sys/sys/syscallsubr.h
  projects/clang400-import/sys/sys/types.h
  projects/clang400-import/sys/vm/vm_object.h
  projects/clang400-import/sys/vm/vm_page.c
  projects/clang400-import/sys/vm/vm_phys.c
  projects/clang400-import/sys/x86/acpica/acpi_wakeup.c
  projects/clang400-import/sys/x86/include/_types.h
  projects/clang400-import/sys/x86/x86/cpu_machdep.c
  projects/clang400-import/sys/x86/x86/identcpu.c
  projects/clang400-import/tests/sys/geom/class/gate/ggate_test.sh
  projects/clang400-import/tools/build/options/WITHOUT_BLACKLIST
  projects/clang400-import/tools/build/options/WITHOUT_CLANG_BOOTSTRAP
  projects/clang400-import/tools/build/options/WITHOUT_CROSS_COMPILER
  projects/clang400-import/tools/build/options/WITHOUT_DIALOG
  projects/clang400-import/tools/build/options/WITHOUT_DMAGENT
  projects/clang400-import/tools/build/options/WITHOUT_DOCCOMPRESS
  projects/clang400-import/tools/build/options/WITHOUT_GPL_DTC
  projects/clang400-import/tools/build/options/WITHOUT_INSTALLLIB
  projects/clang400-import/tools/build/options/WITHOUT_KERBEROS
  projects/clang400-import/tools/build/options/WITH_CCACHE_BUILD
  projects/clang400-import/tools/build/options/WITH_DIRDEPS_BUILD
  projects/clang400-import/tools/build/options/WITH_INSTALL_AS_USER
  projects/clang400-import/tools/build/options/WITH_META_MODE
  projects/clang400-import/tools/build/options/WITH_STAGING_MAN
  projects/clang400-import/tools/build/options/makeman
  projects/clang400-import/tools/tools/ath/athspectral/athspectral.c
  projects/clang400-import/tools/tools/nanobsd/embedded/rpi2.cfg
  projects/clang400-import/usr.bin/sed/main.c
  projects/clang400-import/usr.bin/yacc/tests/Makefile
  projects/clang400-import/usr.sbin/ctladm/ctladm.8
  projects/clang400-import/usr.sbin/tcpdump/tcpdump/Makefile
  projects/clang400-import/usr.sbin/tcpdump/tcpdump/config.h
Directory Properties:
  projects/clang400-import/   (props changed)
  projects/clang400-import/cddl/   (props changed)
  projects/clang400-import/cddl/contrib/opensolaris/   (props changed)
  projects/clang400-import/contrib/byacc/   (props changed)
  projects/clang400-import/contrib/libarchive/   (props changed)
  projects/clang400-import/contrib/tcpdump/   (props changed)
  projects/clang400-import/sys/cddl/contrib/opensolaris/   (props changed)

Modified: projects/clang400-import/Makefile.inc1
==============================================================================
--- projects/clang400-import/Makefile.inc1	Sun Feb  5 19:57:41 2017	(r313300)
+++ projects/clang400-import/Makefile.inc1	Sun Feb  5 20:03:05 2017	(r313301)
@@ -242,13 +242,11 @@ SUBDIR+=	${_DIR}
 # of a LOCAL_DIRS directory.  This allows LOCAL_DIRS=foo and
 # LOCAL_LIB_DIRS=foo/lib to behave as expected.
 .for _DIR in ${LOCAL_DIRS:M*/} ${LOCAL_DIRS:N*/:S|$|/|}
-_REDUNDENT_LIB_DIRS+=    ${LOCAL_LIB_DIRS:M${_DIR}*}
+_REDUNDANT_LIB_DIRS+=    ${LOCAL_LIB_DIRS:M${_DIR}*}
 .endfor
 .for _DIR in ${LOCAL_LIB_DIRS}
-.if empty(_REDUNDENT_LIB_DIRS:M${_DIR}) && exists(${.CURDIR}/${_DIR}/Makefile)
+.if empty(_REDUNDANT_LIB_DIRS:M${_DIR}) && exists(${.CURDIR}/${_DIR}/Makefile)
 SUBDIR+=	${_DIR}
-.else
-.warning ${_DIR} not added to SUBDIR list.  See UPDATING 20141121.
 .endif
 .endfor
 
@@ -1954,6 +1952,7 @@ native-xtools: .PHONY
     usr.bin/mktemp \
     usr.bin/mt \
     usr.bin/patch \
+    usr.bin/readelf \
     usr.bin/sed \
     usr.bin/sort \
     usr.bin/tar \

Modified: projects/clang400-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.enabled2.ksh
==============================================================================
--- projects/clang400-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.enabled2.ksh	Sun Feb  5 19:57:41 2017	(r313300)
+++ projects/clang400-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.enabled2.ksh	Sun Feb  5 20:03:05 2017	(r313301)
@@ -77,7 +77,7 @@ main(int argc, char **argv)
 }
 EOF
 
-cc -c -xO2 test.c
+cc -c -O2 test.c
 if [ $? -ne 0 ]; then
 	print -u2 "failed to compile test.c"
 	exit 1

Modified: projects/clang400-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.include.ksh
==============================================================================
--- projects/clang400-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.include.ksh	Sun Feb  5 19:57:41 2017	(r313300)
+++ projects/clang400-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.include.ksh	Sun Feb  5 20:03:05 2017	(r313301)
@@ -25,7 +25,7 @@
 #
 # ident	"%Z%%M%	%I%	%E% SMI"
 
-# Make sure <unistd.h> defines _DTRACE_VERSION
+# Make sure <sys/sdt.h> defines _DTRACE_VERSION
 
 DIR=/var/tmp/dtest.$$
 
@@ -33,7 +33,7 @@ mkdir $DIR
 cd $DIR
 
 cat > test.c <<EOF
-#include <unistd.h>
+#include <sys/sdt.h>
 
 int
 main(int argc, char **argv)
@@ -46,7 +46,7 @@ main(int argc, char **argv)
 }
 EOF
 
-cc -xarch=generic -o test test.c
+cc -o test test.c
 if [ $? -ne 0 ]; then
 	print -u2 "failed to compile test.c"
 	exit 1

Modified: projects/clang400-import/cddl/contrib/opensolaris/lib/libdtrace/common/dt_dof.c
==============================================================================
--- projects/clang400-import/cddl/contrib/opensolaris/lib/libdtrace/common/dt_dof.c	Sun Feb  5 19:57:41 2017	(r313300)
+++ projects/clang400-import/cddl/contrib/opensolaris/lib/libdtrace/common/dt_dof.c	Sun Feb  5 20:03:05 2017	(r313301)
@@ -462,18 +462,8 @@ dof_add_probe(dt_idhash_t *dhp, dt_ident
 		dt_buf_write(dtp, &ddo->ddo_enoffs, pip->pi_enoffs,
 		    pip->pi_nenoffs * sizeof (uint32_t), sizeof (uint32_t));
 
-		/*
-		 * If pi_rname isn't set, the relocation will be against the
-		 * function name. If it is, the relocation will be against
-		 * pi_rname. This will be used if the function is scoped
-		 * locally so an alternate symbol is added for the purpose
-		 * of this relocation.
-		 */
-		if (pip->pi_rname == NULL)
-			dofr.dofr_name = dofpr.dofpr_func;
-		else
-			dofr.dofr_name = dof_add_string(ddo, pip->pi_rname);
-		dofr.dofr_type = DOF_RELO_SETX;
+		dofr.dofr_name = dof_add_string(ddo, pip->pi_rname);
+		dofr.dofr_type = DOF_RELO_DOFREL;
 		dofr.dofr_offset = dt_buf_len(&ddo->ddo_probes);
 		dofr.dofr_data = 0;
 

Modified: projects/clang400-import/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c
==============================================================================
--- projects/clang400-import/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c	Sun Feb  5 19:57:41 2017	(r313300)
+++ projects/clang400-import/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c	Sun Feb  5 20:03:05 2017	(r313301)
@@ -237,7 +237,7 @@ printf("%s:%s(%d): DOODAD\n",__FUNCTION_
 			rel->r_offset = s->dofs_offset +
 			    dofr[j].dofr_offset;
 			rel->r_info = ELF32_R_INFO(count + dep->de_global,
-			    R_386_32);
+			    R_386_PC32);
 #elif defined(__mips__)
 /* XXX */
 printf("%s:%s(%d): DOODAD\n",__FUNCTION__,__FILE__,__LINE__);
@@ -253,15 +253,6 @@ printf("%s:%s(%d): DOODAD\n",__FUNCTION_
 #elif defined(__riscv__)
 /* XXX */
 printf("%s:%s(%d): DOODAD\n",__FUNCTION__,__FILE__,__LINE__);
-#elif defined(__sparc)
-			/*
-			 * Add 4 bytes to hit the low half of this 64-bit
-			 * big-endian address.
-			 */
-			rel->r_offset = s->dofs_offset +
-			    dofr[j].dofr_offset + 4;
-			rel->r_info = ELF32_R_INFO(count + dep->de_global,
-			    R_SPARC_32);
 #else
 #error unknown ISA
 #endif
@@ -270,7 +261,7 @@ printf("%s:%s(%d): DOODAD\n",__FUNCTION_
 			sym->st_value = 0;
 			sym->st_size = 0;
 			sym->st_info = ELF32_ST_INFO(STB_GLOBAL, STT_FUNC);
-			sym->st_other = 0;
+			sym->st_other = ELF32_ST_VISIBILITY(STV_HIDDEN);
 			sym->st_shndx = SHN_UNDEF;
 
 			rel++;
@@ -287,11 +278,7 @@ printf("%s:%s(%d): DOODAD\n",__FUNCTION_
 	sym->st_value = 0;
 	sym->st_size = dof->dofh_filesz;
 	sym->st_info = ELF32_ST_INFO(STB_GLOBAL, STT_OBJECT);
-#ifdef illumos
-	sym->st_other = 0;
-#else
 	sym->st_other = ELF32_ST_VISIBILITY(STV_HIDDEN);
-#endif
 	sym->st_shndx = ESHDR_DOF;
 	sym++;
 
@@ -448,18 +435,8 @@ prepare_elf64(dtrace_hdl_t *dtp, const d
 #elif defined(__i386) || defined(__amd64)
 			rel->r_offset = s->dofs_offset +
 			    dofr[j].dofr_offset;
-#ifdef illumos
 			rel->r_info = ELF64_R_INFO(count + dep->de_global,
-			    R_AMD64_64);
-#else
-			rel->r_info = ELF64_R_INFO(count + dep->de_global,
-			    R_X86_64_RELATIVE);
-#endif
-#elif defined(__sparc)
-			rel->r_offset = s->dofs_offset +
-			    dofr[j].dofr_offset;
-			rel->r_info = ELF64_R_INFO(count + dep->de_global,
-			    R_SPARC_64);
+			    R_X86_64_PC64);
 #else
 #error unknown ISA
 #endif
@@ -468,7 +445,7 @@ prepare_elf64(dtrace_hdl_t *dtp, const d
 			sym->st_value = 0;
 			sym->st_size = 0;
 			sym->st_info = GELF_ST_INFO(STB_GLOBAL, STT_FUNC);
-			sym->st_other = 0;
+			sym->st_other = ELF64_ST_VISIBILITY(STV_HIDDEN);
 			sym->st_shndx = SHN_UNDEF;
 
 			rel++;
@@ -485,11 +462,7 @@ prepare_elf64(dtrace_hdl_t *dtp, const d
 	sym->st_value = 0;
 	sym->st_size = dof->dofh_filesz;
 	sym->st_info = GELF_ST_INFO(STB_GLOBAL, STT_OBJECT);
-#ifdef illumos
-	sym->st_other = 0;
-#else
 	sym->st_other = ELF64_ST_VISIBILITY(STV_HIDDEN);
-#endif
 	sym->st_shndx = ESHDR_DOF;
 	sym++;
 
@@ -797,16 +770,15 @@ dump_elf64(dtrace_hdl_t *dtp, const dof_
 }
 
 static int
-dt_symtab_lookup(Elf_Data *data_sym, int nsym, uintptr_t addr, uint_t shn,
-    GElf_Sym *sym, int uses_funcdesc, Elf *elf)
+dt_symtab_lookup(Elf_Data *data_sym, int start, int end, uintptr_t addr,
+    uint_t shn, GElf_Sym *sym, int uses_funcdesc, Elf *elf)
 {
-	int i, ret = -1;
 	Elf64_Addr symval;
 	Elf_Scn *opd_scn;
 	Elf_Data *opd_desc;
-	GElf_Sym s;
+	int i;
 
-	for (i = 0; i < nsym && gelf_getsym(data_sym, i, sym) != NULL; i++) {
+	for (i = start; i < end && gelf_getsym(data_sym, i, sym) != NULL; i++) {
 		if (GELF_ST_TYPE(sym->st_info) == STT_FUNC) {
 			symval = sym->st_value;
 			if (uses_funcdesc) {
@@ -816,20 +788,12 @@ dt_symtab_lookup(Elf_Data *data_sym, int
 				    *(uint64_t*)((char *)opd_desc->d_buf + symval);
 			}
 			if ((uses_funcdesc || shn == sym->st_shndx) &&
-			    symval <= addr &&
-			    addr < symval + sym->st_size) {
-				if (GELF_ST_BIND(sym->st_info) == STB_GLOBAL)
-					return (0);
-
-				ret = 0;
-				s = *sym;
-			}
+			    symval <= addr && addr < symval + sym->st_size)
+				return (0);
 		}
 	}
 
-	if (ret == 0)
-		*sym = s;
-	return (ret);
+	return (-1);
 }
 
 #if defined(__aarch64__)
@@ -1237,10 +1201,11 @@ process_obj(dtrace_hdl_t *dtp, const cha
 	dt_provider_t *pvp;
 	dt_probe_t *prp;
 	uint32_t off, eclass, emachine1, emachine2;
-	size_t symsize, nsym, isym, istr, len;
+	size_t symsize, osym, nsym, isym, istr, len;
 	key_t objkey;
 	dt_link_pair_t *pair, *bufs = NULL;
 	dt_strtab_t *strtab;
+	void *tmp;
 
 	if ((fd = open64(obj, O_RDWR)) == -1) {
 		return (dt_link_error(dtp, elf, fd, bufs,
@@ -1374,12 +1339,13 @@ process_obj(dtrace_hdl_t *dtp, const cha
 		 * target (text) section to replace the call instruction with
 		 * one or more nops.
 		 *
-		 * If the function containing the probe is locally scoped
-		 * (static), we create an alias used by the relocation in the
-		 * generated object. The alias, a new symbol, will be global
-		 * (so that the relocation from the generated object can be
-		 * resolved), and hidden (so that it is converted to a local
-		 * symbol at link time). Such aliases have this form:
+		 * To avoid runtime overhead, the relocations added to the
+		 * generated object should be resolved at static link time. We
+		 * therefore create aliases for the functions that contain
+		 * probes. An alias is global (so that the relocation from the
+		 * generated object can be resolved), and hidden (so that its
+		 * address is known at static link time). Such aliases have this
+		 * form:
 		 *
 		 *   $dtrace<key>.<function>
 		 *
@@ -1417,16 +1383,13 @@ process_obj(dtrace_hdl_t *dtp, const cha
 			if (strncmp(s, dt_prefix, sizeof (dt_prefix) - 1) != 0)
 				continue;
 
-			if (dt_symtab_lookup(data_sym, isym, rela.r_offset,
-			    shdr_rel.sh_info, &fsym,
-			    (emachine1 == EM_PPC64), elf) != 0) {
+			if (dt_symtab_lookup(data_sym, 0, isym, rela.r_offset,
+			    shdr_rel.sh_info, &fsym, (emachine1 == EM_PPC64),
+			    elf) != 0) {
 				dt_strtab_destroy(strtab);
 				goto err;
 			}
 
-			if (GELF_ST_BIND(fsym.st_info) != STB_LOCAL)
-				continue;
-
 			if (fsym.st_name > data_str->d_size) {
 				dt_strtab_destroy(strtab);
 				goto err;
@@ -1462,12 +1425,12 @@ process_obj(dtrace_hdl_t *dtp, const cha
 		}
 
 		/*
-		 * If needed, allocate the additional space for the symbol
-		 * table and string table copying the old data into the new
-		 * buffers, and marking the buffers as dirty. We inject those
-		 * newly allocated buffers into the libelf data structures, but
-		 * are still responsible for freeing them once we're done with
-		 * the elf handle.
+		 * If any probes were found, allocate the additional space for
+		 * the symbol table and string table, copying the old data into
+		 * the new buffers, and marking the buffers as dirty. We inject
+		 * those newly allocated buffers into the libelf data
+		 * structures, but are still responsible for freeing them once
+		 * we're done with the elf handle.
 		 */
 		if (nsym > 0) {
 			/*
@@ -1501,7 +1464,9 @@ process_obj(dtrace_hdl_t *dtp, const cha
 			bufs = pair;
 
 			bcopy(data_str->d_buf, pair->dlp_str, data_str->d_size);
+			tmp = data_str->d_buf;
 			data_str->d_buf = pair->dlp_str;
+			pair->dlp_str = tmp;
 			data_str->d_size += len;
 			(void) elf_flagdata(data_str, ELF_C_SET, ELF_F_DIRTY);
 
@@ -1509,16 +1474,20 @@ process_obj(dtrace_hdl_t *dtp, const cha
 			(void) gelf_update_shdr(scn_str, &shdr_str);
 
 			bcopy(data_sym->d_buf, pair->dlp_sym, data_sym->d_size);
+			tmp = data_sym->d_buf;
 			data_sym->d_buf = pair->dlp_sym;
+			pair->dlp_sym = tmp;
 			data_sym->d_size += nsym * symsize;
 			(void) elf_flagdata(data_sym, ELF_C_SET, ELF_F_DIRTY);
 
 			shdr_sym.sh_size += nsym * symsize;
 			(void) gelf_update_shdr(scn_sym, &shdr_sym);
 
+			osym = isym;
 			nsym += isym;
 		} else {
 			dt_strtab_destroy(strtab);
+			continue;
 		}
 
 		/*
@@ -1577,8 +1546,11 @@ process_obj(dtrace_hdl_t *dtp, const cha
 			bcopy(s, pname, p - s);
 			pname[p - s] = '\0';
 
-			if (dt_symtab_lookup(data_sym, isym, rela.r_offset,
-			    shdr_rel.sh_info, &fsym,
+			if (dt_symtab_lookup(data_sym, osym, isym,
+			    rela.r_offset, shdr_rel.sh_info, &fsym,
+			    (emachine1 == EM_PPC64), elf) != 0 &&
+			    dt_symtab_lookup(data_sym, 0, osym,
+			    rela.r_offset, shdr_rel.sh_info, &fsym,
 			    (emachine1 == EM_PPC64), elf) != 0)
 				goto err;
 
@@ -1588,37 +1560,30 @@ process_obj(dtrace_hdl_t *dtp, const cha
 			assert(GELF_ST_TYPE(fsym.st_info) == STT_FUNC);
 
 			/*
-			 * If a NULL relocation name is passed to
-			 * dt_probe_define(), the function name is used for the
-			 * relocation. The relocation needs to use a mangled
-			 * name if the symbol is locally scoped; the function
-			 * name may need to change if we've found the global
-			 * alias for the locally scoped symbol (we prefer
-			 * global symbols to locals in dt_symtab_lookup()).
+			 * If this is our first time encountering this symbol,
+			 * emit an alias.
 			 */
 			s = (char *)data_str->d_buf + fsym.st_name;
-			r = NULL;
 
-			if (GELF_ST_BIND(fsym.st_info) == STB_LOCAL) {
+			if (strncmp(s, dt_symprefix,
+			    sizeof (dt_symprefix) - 1) != 0) {
+				u_int bind = GELF_ST_BIND(fsym.st_info);
+
 				dsym = fsym;
 				dsym.st_name = istr;
-				dsym.st_info = GELF_ST_INFO(STB_GLOBAL,
-				    STT_FUNC);
-				dsym.st_other =
-				    ELF64_ST_VISIBILITY(STV_ELIMINATE);
+				dsym.st_info = GELF_ST_INFO(bind == STB_LOCAL ?
+				    STB_GLOBAL : bind, STT_FUNC);
+				dsym.st_other = GELF_ST_VISIBILITY(STV_HIDDEN);
 				(void) gelf_update_sym(data_sym, isym, &dsym);
-
-				r = (char *)data_str->d_buf + istr;
-				istr += 1 + sprintf(r, dt_symfmt,
-				    dt_symprefix, objkey, s);
+				r = (char *) data_str->d_buf + istr;
+				istr += 1 + sprintf(r, dt_symfmt, dt_symprefix, objkey,
+				    s);
 				isym++;
 				assert(isym <= nsym);
-
-			} else if (strncmp(s, dt_symprefix,
-			    strlen(dt_symprefix)) == 0) {
+			} else {
 				r = s;
-				if ((s = strchr(s, '.')) == NULL)
-					goto err;
+				s = strchr(s, '.');
+				assert(s != NULL);
 				s++;
 			}
 
@@ -1697,9 +1662,6 @@ process_obj(dtrace_hdl_t *dtp, const cha
 	(void) elf_end(elf);
 	(void) close(fd);
 
-#ifndef illumos
-	if (nsym > 0)
-#endif
 	while ((pair = bufs) != NULL) {
 		bufs = pair->dlp_next;
 		dt_free(dtp, pair->dlp_str);

Modified: projects/clang400-import/cddl/contrib/opensolaris/lib/libdtrace/common/dt_provider.c
==============================================================================
--- projects/clang400-import/cddl/contrib/opensolaris/lib/libdtrace/common/dt_provider.c	Sun Feb  5 19:57:41 2017	(r313300)
+++ projects/clang400-import/cddl/contrib/opensolaris/lib/libdtrace/common/dt_provider.c	Sun Feb  5 20:03:05 2017	(r313301)
@@ -545,9 +545,7 @@ dt_probe_define(dt_provider_t *pvp, dt_p
 
 	for (pip = prp->pr_inst; pip != NULL; pip = pip->pi_next) {
 		if (strcmp(pip->pi_fname, fname) == 0 &&
-		    ((rname == NULL && pip->pi_rname == NULL) ||
-		    (rname != NULL && pip->pi_rname != NULL &&
-		    strcmp(pip->pi_rname, rname) == 0)))
+		    strcmp(pip->pi_rname, rname) == 0)
 			break;
 	}
 
@@ -565,7 +563,7 @@ dt_probe_define(dt_provider_t *pvp, dt_p
 		if ((pip->pi_fname = strdup(fname)) == NULL)
 			goto nomem;
 
-		if (rname != NULL && (pip->pi_rname = strdup(rname)) == NULL)
+		if ((pip->pi_rname = strdup(rname)) == NULL)
 			goto nomem;
 
 		pip->pi_noffs = 0;
@@ -605,7 +603,7 @@ dt_probe_define(dt_provider_t *pvp, dt_p
 	dt_dprintf("defined probe %s %s:%s %s() +0x%x (%s)\n",
 	    isenabled ? "(is-enabled)" : "",
 	    pvp->pv_desc.dtvd_name, prp->pr_ident->di_name, fname, offset,
-	    rname != NULL ? rname : fname);
+	    rname);
 
 	assert(*noffs < *maxoffs);
 	(*offs)[(*noffs)++] = offset;

Modified: projects/clang400-import/contrib/byacc/CHANGES
==============================================================================
--- projects/clang400-import/contrib/byacc/CHANGES	Sun Feb  5 19:57:41 2017	(r313300)
+++ projects/clang400-import/contrib/byacc/CHANGES	Sun Feb  5 20:03:05 2017	(r313301)
@@ -1,3 +1,33 @@
+2017-02-01  Thomas E. Dickey  <dickey@invisible-island.net>
+
+	* test/btyacc/expr.oxout.error, test/btyacc/expr.oxout.output, test/btyacc/expr.oxout.tab.c, test/btyacc/expr.oxout.tab.h, test/yacc/expr.oxout.error, test/yacc/expr.oxout.output, test/yacc/expr.oxout.tab.c, test/yacc/expr.oxout.tab.h:
+	RCS_BASE
+
+	* package/debian/copyright: update copyright
+
+	* reader.c, defs.h, main.c:
+	avoid using regex.h since some low-end platforms do not have this
+
+	* test/expr.oxout.y: RCS_BASE
+
+	* configure: regen
+
+	* aclocal.m4: quiet a strict gcc warning in CF_MKSTEMP
+
+2017-02-01  Tom.Shields
+
+	* main.c, reader.c, defs.h:
+	process #line directives, like bison and flex
+
+2017-02-01  Thomas E. Dickey  <dickey@invisible-island.net>
+
+	* VERSION, package/byacc.spec, package/debian/changelog, package/mingw-byacc.spec, package/pkgsrc/Makefile:
+	bump
+
+2016-12-31  Thomas E. Dickey  <dickey@invisible-island.net>
+
+	* config.guess, config.sub: 2017-01-01
+
 2016-12-02  Thomas E. Dickey  <dickey@invisible-island.net>
 
 	* test/btyacc/quote_calc4-s.tab.c, test/btyacc/varsyntax_calc1.tab.c, test/btyacc/error.tab.c, test/btyacc/grammar.tab.c, test/btyacc/inherit0.tab.c, test/btyacc/inherit1.tab.c, test/btyacc/inherit2.tab.c, test/btyacc/ok_syntax1.tab.c, test/btyacc/pure_calc.tab.c, test/btyacc/pure_error.tab.c, test/btyacc/quote_calc-s.tab.c, test/btyacc/quote_calc.tab.c, test/btyacc/quote_calc2-s.tab.c, test/btyacc/quote_calc2.tab.c, test/btyacc/quote_calc3-s.tab.c, test/btyacc/quote_calc3.tab.c, test/btyacc/quote_calc4.tab.c, test/btyacc/calc.tab.c, test/btyacc/calc1.tab.c, test/btyacc/calc2.tab.c, test/btyacc/calc3.tab.c, test/btyacc/code_calc.code.c, test/btyacc/code_error.code.c, test/btyacc/empty.tab.c, test/btyacc/err_inherit3.tab.c, test/btyacc/err_inherit4.tab.c, test/btyacc/err_syntax10.tab.c, test/btyacc/err_syntax11.tab.c, test/btyacc/err_syntax12.tab.c, test/btyacc/err_syntax18.tab.c, test/btyacc/err_syntax20.tab.c, test/btyacc/rename_debug.c, test/btyacc/btyacc_calc1.tab.c, test/btyacc
 /btyacc_demo.tab.c, test/btyacc/btyacc_destroy1.tab.c, test/btyacc/btyacc_destroy2.tab.c, test/btyacc/btyacc_destroy3.tab.c, btyaccpar.c:

Modified: projects/clang400-import/contrib/byacc/MANIFEST
==============================================================================
--- projects/clang400-import/contrib/byacc/MANIFEST	Sun Feb  5 19:57:41 2017	(r313300)
+++ projects/clang400-import/contrib/byacc/MANIFEST	Sun Feb  5 20:03:05 2017	(r313301)
@@ -1,4 +1,4 @@
-MANIFEST for byacc-20161202, version t20161202
+MANIFEST for byacc-20170201, version t20170201
 --------------------------------------------------------------------------------
 MANIFEST                        this file
 ACKNOWLEDGEMENTS                original version of byacc - 1993
@@ -77,6 +77,22 @@ test/btyacc/btyacc_demo.error   referenc
 test/btyacc/btyacc_demo.output  reference output for testing
 test/btyacc/btyacc_demo.tab.c   reference output for testing
 test/btyacc/btyacc_demo.tab.h   reference output for testing
+test/btyacc/btyacc_demo2.error  reference output for testing
+test/btyacc/btyacc_demo2.output reference output for testing
+test/btyacc/btyacc_demo2.tab.c  reference output for testing
+test/btyacc/btyacc_demo2.tab.h  reference output for testing
+test/btyacc/btyacc_destroy1.error  reference output for testing
+test/btyacc/btyacc_destroy1.output  reference output for testing
+test/btyacc/btyacc_destroy1.tab.c  reference output for testing
+test/btyacc/btyacc_destroy1.tab.h  reference output for testing
+test/btyacc/btyacc_destroy2.error  reference output for testing
+test/btyacc/btyacc_destroy2.output  reference output for testing
+test/btyacc/btyacc_destroy2.tab.c  reference output for testing
+test/btyacc/btyacc_destroy2.tab.h  reference output for testing
+test/btyacc/btyacc_destroy3.error  reference output for testing
+test/btyacc/btyacc_destroy3.output  reference output for testing
+test/btyacc/btyacc_destroy3.tab.c  reference output for testing
+test/btyacc/btyacc_destroy3.tab.h  reference output for testing
 test/btyacc/calc.error          reference output for testing
 test/btyacc/calc.output         reference output for testing
 test/btyacc/calc.tab.c          reference output for testing
@@ -256,6 +272,10 @@ test/btyacc/error.error         referenc
 test/btyacc/error.output        reference output for testing
 test/btyacc/error.tab.c         reference output for testing
 test/btyacc/error.tab.h         reference output for testing
+test/btyacc/expr.oxout.error    reference output for testing
+test/btyacc/expr.oxout.output   reference output for testing
+test/btyacc/expr.oxout.tab.c    reference output for testing
+test/btyacc/expr.oxout.tab.h    reference output for testing
 test/btyacc/grammar.dot         reference output for testing
 test/btyacc/grammar.error       reference output for testing
 test/btyacc/grammar.output      reference output for testing
@@ -359,6 +379,9 @@ test/btyacc/varsyntax_calc1.tab.h  refer
 test                            subdirectory
 test/btyacc_calc1.y             testcase for btyacc
 test/btyacc_demo.y              testcase for btyacc
+test/btyacc_destroy1.y          btyacc test-case for %parse-param
+test/btyacc_destroy2.y          btyacc test-case for %parse-param
+test/btyacc_destroy3.y          btyacc test-case for %parse-param
 test/calc.y                     example from VMS freeware version of byacc
 test/calc1.y                    advanced example from Steve Johnson's paper.
 test/calc2.y                    test-cases and reference files for %lex-param / %parse-param
@@ -403,6 +426,7 @@ test/err_syntax8.y              testcase
 test/err_syntax8a.y             testcase for used_reserved()
 test/err_syntax9.y              testcase for tokenized_start()
 test/error.y                    original version of byacc - 1993
+test/expr.oxout.y               test-case for "#line" feature
 test/grammar.y                  grammar from cproto
 test/inherit0.y                 testcase for btyacc
 test/inherit1.y                 testcase for btyacc
@@ -577,6 +601,10 @@ test/yacc/error.error           referenc
 test/yacc/error.output          reference output for testing
 test/yacc/error.tab.c           reference output for testing
 test/yacc/error.tab.h           reference output for testing
+test/yacc/expr.oxout.error      reference output for testing
+test/yacc/expr.oxout.output     reference output for testing
+test/yacc/expr.oxout.tab.c      reference output for testing
+test/yacc/expr.oxout.tab.h      reference output for testing
 test/yacc/grammar.dot           reference output for testing
 test/yacc/grammar.error         reference output for testing
 test/yacc/grammar.output        reference output for testing

Modified: projects/clang400-import/contrib/byacc/VERSION
==============================================================================
--- projects/clang400-import/contrib/byacc/VERSION	Sun Feb  5 19:57:41 2017	(r313300)
+++ projects/clang400-import/contrib/byacc/VERSION	Sun Feb  5 20:03:05 2017	(r313301)
@@ -1 +1 @@
-20161202
+20170201

Modified: projects/clang400-import/contrib/byacc/aclocal.m4
==============================================================================
--- projects/clang400-import/contrib/byacc/aclocal.m4	Sun Feb  5 19:57:41 2017	(r313300)
+++ projects/clang400-import/contrib/byacc/aclocal.m4	Sun Feb  5 20:03:05 2017	(r313301)
@@ -1,7 +1,7 @@
-dnl $Id: aclocal.m4,v 1.41 2016/12/02 13:03:06 tom Exp $
+dnl $Id: aclocal.m4,v 1.42 2017/02/01 10:12:21 tom Exp $
 dnl Macros for byacc configure script (Thomas E. Dickey)
 dnl ---------------------------------------------------------------------------
-dnl Copyright 2004-2015,2016 Thomas E. Dickey
+dnl Copyright 2004-2016,2017 Thomas E. Dickey
 dnl 
 dnl Permission is hereby granted, free of charge, to any person obtaining a
 dnl copy of this software and associated documentation files (the
@@ -803,20 +803,26 @@ fi
 test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES,1,[Define to 1 if filesystem supports mixed-case filenames.])
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_MKSTEMP version: 9 updated: 2012/10/03 04:34:49
+dnl CF_MKSTEMP version: 10 updated: 2017/01/21 11:12:16
 dnl ----------
 dnl Check for a working mkstemp.  This creates two files, checks that they are
 dnl successfully created and distinct (AmigaOS apparently fails on the last).
 AC_DEFUN([CF_MKSTEMP],[
+AC_CHECK_HEADERS( \
+unistd.h \
+)
 AC_CACHE_CHECK(for working mkstemp, cf_cv_func_mkstemp,[
 rm -rf conftest*
 AC_TRY_RUN([
 #include <sys/types.h>
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
 #include <sys/stat.h>
-int main()
+int main(void)
 {
 	char *tmpl = "conftestXXXXXX";
 	char name[2][80];

Modified: projects/clang400-import/contrib/byacc/config.guess
==============================================================================
--- projects/clang400-import/contrib/byacc/config.guess	Sun Feb  5 19:57:41 2017	(r313300)
+++ projects/clang400-import/contrib/byacc/config.guess	Sun Feb  5 20:03:05 2017	(r313301)
@@ -1,8 +1,8 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
-#   Copyright 1992-2016 Free Software Foundation, Inc.
+#   Copyright 1992-2017 Free Software Foundation, Inc.
 
-timestamp='2016-10-02'
+timestamp='2017-01-01'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -50,7 +50,7 @@ version="\
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright 1992-2016 Free Software Foundation, Inc.
+Copyright 1992-2017 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."

Modified: projects/clang400-import/contrib/byacc/config.sub
==============================================================================
--- projects/clang400-import/contrib/byacc/config.sub	Sun Feb  5 19:57:41 2017	(r313300)
+++ projects/clang400-import/contrib/byacc/config.sub	Sun Feb  5 20:03:05 2017	(r313301)
@@ -1,8 +1,8 @@
 #! /bin/sh
 # Configuration validation subroutine script.
-#   Copyright 1992-2016 Free Software Foundation, Inc.
+#   Copyright 1992-2017 Free Software Foundation, Inc.
 
-timestamp='2016-11-19'
+timestamp='2017-01-01'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -67,7 +67,7 @@ Report bugs and patches to <config-patch
 version="\
 GNU config.sub ($timestamp)
 
-Copyright 1992-2016 Free Software Foundation, Inc.
+Copyright 1992-2017 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -1409,7 +1409,7 @@ case $os in
 	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
 	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
 	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
-	      | -onefs* | -tirtos* | -phoenix* | -fuchsia*)
+	      | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox*)
 	# Remember, each alternative MUST END IN *, to match a version number.
 		;;
 	-qnx*)
@@ -1638,6 +1638,9 @@ case $basic_machine in
 	sparc-* | *-sun)
 		os=-sunos4.1.1
 		;;
+	pru-*)
+		os=-elf
+		;;
 	*-be)
 		os=-beos
 		;;

Modified: projects/clang400-import/contrib/byacc/configure
==============================================================================
--- projects/clang400-import/contrib/byacc/configure	Sun Feb  5 19:57:41 2017	(r313300)
+++ projects/clang400-import/contrib/byacc/configure	Sun Feb  5 20:03:05 2017	(r313301)
@@ -3911,7 +3911,57 @@ EOF
 fi
 done
 
-echo "$as_me:3914: checking for working mkstemp" >&5
+for ac_header in \
+unistd.h \
+
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+echo "$as_me:3919: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line 3925 "configure"
+#include "confdefs.h"
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:3929: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  egrep -v '^ *\+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:3935: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  eval "$as_ac_Header=yes"
+else
+  echo "$as_me: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  eval "$as_ac_Header=no"
+fi
+rm -f conftest.err conftest.$ac_ext
+fi
+echo "$as_me:3954: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<EOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+EOF
+
+fi
+done
+
+echo "$as_me:3964: checking for working mkstemp" >&5
 echo $ECHO_N "checking for working mkstemp... $ECHO_C" >&6
 if test "${cf_cv_func_mkstemp+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3922,15 +3972,18 @@ if test "$cross_compiling" = yes; then
   cf_cv_func_mkstemp=maybe
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 3925 "configure"
+#line 3975 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
 #include <sys/stat.h>
-int main()
+int main(void)
 {
 	char *tmpl = "conftestXXXXXX";
 	char name[2][80];
@@ -3960,15 +4013,15 @@ int main()
 
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:3963: \"$ac_link\"") >&5
+if { (eval echo "$as_me:4016: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:3966: \$? = $ac_status" >&5
+  echo "$as_me:4019: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:3968: \"$ac_try\"") >&5
+  { (eval echo "$as_me:4021: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:3971: \$? = $ac_status" >&5
+  echo "$as_me:4024: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_func_mkstemp=yes
 
@@ -3983,16 +4036,16 @@ rm -f core core.* *.core conftest$ac_exe
 fi
 
 fi
-echo "$as_me:3986: result: $cf_cv_func_mkstemp" >&5
+echo "$as_me:4039: result: $cf_cv_func_mkstemp" >&5
 echo "${ECHO_T}$cf_cv_func_mkstemp" >&6
 if test "x$cf_cv_func_mkstemp" = xmaybe ; then
-	echo "$as_me:3989: checking for mkstemp" >&5
+	echo "$as_me:4042: checking for mkstemp" >&5
 echo $ECHO_N "checking for mkstemp... $ECHO_C" >&6
 if test "${ac_cv_func_mkstemp+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 3995 "configure"
+#line 4048 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char mkstemp (); below.  */
@@ -4023,16 +4076,16 @@ f = mkstemp; /* workaround for ICC 12.0.
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:4026: \"$ac_link\"") >&5
+if { (eval echo "$as_me:4079: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:4029: \$? = $ac_status" >&5
+  echo "$as_me:4082: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:4032: \"$ac_try\"") >&5
+  { (eval echo "$as_me:4085: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:4035: \$? = $ac_status" >&5
+  echo "$as_me:4088: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_func_mkstemp=yes
 else
@@ -4042,7 +4095,7 @@ ac_cv_func_mkstemp=no
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:4045: result: $ac_cv_func_mkstemp" >&5
+echo "$as_me:4098: result: $ac_cv_func_mkstemp" >&5
 echo "${ECHO_T}$ac_cv_func_mkstemp" >&6
 
 fi
@@ -4057,13 +4110,13 @@ fi
 for ac_func in vsnprintf
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:4060: checking for $ac_func" >&5
+echo "$as_me:4113: checking for $ac_func" >&5
 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
 if eval "test \"\${$as_ac_var+set}\" = set"; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 4066 "configure"
+#line 4119 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func (); below.  */
@@ -4094,16 +4147,16 @@ f = $ac_func; /* workaround for ICC 12.0
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:4097: \"$ac_link\"") >&5
+if { (eval echo "$as_me:4150: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:4100: \$? = $ac_status" >&5
+  echo "$as_me:4153: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:4103: \"$ac_try\"") >&5
+  { (eval echo "$as_me:4156: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:4106: \$? = $ac_status" >&5
+  echo "$as_me:4159: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   eval "$as_ac_var=yes"
 else
@@ -4113,7 +4166,7 @@ eval "$as_ac_var=no"
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:4116: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "$as_me:4169: result: `eval echo '${'$as_ac_var'}'`" >&5
 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
 if test `eval echo '${'$as_ac_var'}'` = yes; then
   cat >>confdefs.h <<EOF
@@ -4123,7 +4176,7 @@ EOF
 fi
 done
 
-echo "$as_me:4126: checking for maximum table size" >&5
+echo "$as_me:4179: checking for maximum table size" >&5
 echo $ECHO_N "checking for maximum table size... $ECHO_C" >&6
 
 # Check whether --with-max-table-size or --without-max-table-size was given.
@@ -4133,12 +4186,12 @@ if test "${with_max_table_size+set}" = s
 fi;
 if test -n "$with_max_table_size"
 then
-	echo "$as_me:4136: result: $with_max_table_size" >&5
+	echo "$as_me:4189: result: $with_max_table_size" >&5
 echo "${ECHO_T}$with_max_table_size" >&6
 	check=`expr "$with_max_table_size" + 0`
 	if test "x$check" != "x$with_max_table_size"
 	then
-		{ { echo "$as_me:4141: error: invalid value for --with-max-table-size: $with_max_table_size" >&5
+		{ { echo "$as_me:4194: error: invalid value for --with-max-table-size: $with_max_table_size" >&5
 echo "$as_me: error: invalid value for --with-max-table-size: $with_max_table_size" >&2;}
    { (exit 1); exit 1; }; }
 	fi
@@ -4148,11 +4201,11 @@ cat >>confdefs.h <<EOF
 EOF
 
 else
-	echo "$as_me:4151: result: default" >&5
+	echo "$as_me:4204: result: default" >&5
 echo "${ECHO_T}default" >&6
 fi
 
-echo "$as_me:4155: checking if backtracking extension is wanted" >&5
+echo "$as_me:4208: checking if backtracking extension is wanted" >&5
 echo $ECHO_N "checking if backtracking extension is wanted... $ECHO_C" >&6
 
 # Check whether --enable-btyacc or --disable-btyacc was given.
@@ -4160,7 +4213,7 @@ if test "${enable_btyacc+set}" = set; th
   enableval="$enable_btyacc"
 
 fi;
-echo "$as_me:4163: result: $enable_btyacc" >&5
+echo "$as_me:4216: result: $enable_btyacc" >&5
 echo "${ECHO_T}$enable_btyacc" >&6
 if test "$enable_btyacc" = "yes"; then
 
@@ -4175,7 +4228,7 @@ fi
 
 if ( test "$GCC" = yes || test "$GXX" = yes )
 then
-echo "$as_me:4178: checking if you want to check for gcc warnings" >&5
+echo "$as_me:4231: checking if you want to check for gcc warnings" >&5
 echo $ECHO_N "checking if you want to check for gcc warnings... $ECHO_C" >&6
 
 # Check whether --with-warnings or --without-warnings was given.
@@ -4185,7 +4238,7 @@ if test "${with_warnings+set}" = set; th
 else
   cf_opt_with_warnings=no
 fi;
-echo "$as_me:4188: result: $cf_opt_with_warnings" >&5
+echo "$as_me:4241: result: $cf_opt_with_warnings" >&5
 echo "${ECHO_T}$cf_opt_with_warnings" >&6
 if test "$cf_opt_with_warnings" != no ; then
 
@@ -4207,10 +4260,10 @@ cat > conftest.i <<EOF
 EOF
 if test "$GCC" = yes
 then
-	{ echo "$as_me:4210: checking for $CC __attribute__ directives..." >&5
+	{ echo "$as_me:4263: checking for $CC __attribute__ directives..." >&5
 echo "$as_me: checking for $CC __attribute__ directives..." >&6;}
 cat > conftest.$ac_ext <<EOF
-#line 4213 "${as_me:-configure}"
+#line 4266 "${as_me:-configure}"
 #include "confdefs.h"
 #include "conftest.h"
 #include "conftest.i"
@@ -4259,12 +4312,12 @@ EOF
 			;;
 		esac
 
-		if { (eval echo "$as_me:4262: \"$ac_compile\"") >&5
+		if { (eval echo "$as_me:4315: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:4265: \$? = $ac_status" >&5
+  echo "$as_me:4318: \$? = $ac_status" >&5
   (exit $ac_status); }; then
-			test -n "$verbose" && echo "$as_me:4267: result: ... $cf_attribute" >&5
+			test -n "$verbose" && echo "$as_me:4320: result: ... $cf_attribute" >&5
 echo "${ECHO_T}... $cf_attribute" >&6
 			cat conftest.h >>confdefs.h
 			case $cf_attribute in
@@ -4328,12 +4381,12 @@ INTEL_COMPILER=no
 if test "$GCC" = yes ; then
 	case $host_os in
 	(linux*|gnu*)
-		echo "$as_me:4331: checking if this is really Intel C compiler" >&5
+		echo "$as_me:4384: checking if this is really Intel C compiler" >&5
 echo $ECHO_N "checking if this is really Intel C compiler... $ECHO_C" >&6
 		cf_save_CFLAGS="$CFLAGS"
 		CFLAGS="$CFLAGS -no-gcc"
 		cat >conftest.$ac_ext <<_ACEOF
-#line 4336 "configure"
+#line 4389 "configure"
 #include "confdefs.h"
 
 int
@@ -4350,16 +4403,16 @@ make an error
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:4353: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:4406: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:4356: \$? = $ac_status" >&5
+  echo "$as_me:4409: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:4359: \"$ac_try\"") >&5
+  { (eval echo "$as_me:4412: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:4362: \$? = $ac_status" >&5
+  echo "$as_me:4415: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   INTEL_COMPILER=yes
 cf_save_CFLAGS="$cf_save_CFLAGS -we147"
@@ -4370,7 +4423,7 @@ cat conftest.$ac_ext >&5
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 		CFLAGS="$cf_save_CFLAGS"
-		echo "$as_me:4373: result: $INTEL_COMPILER" >&5
+		echo "$as_me:4426: result: $INTEL_COMPILER" >&5
 echo "${ECHO_T}$INTEL_COMPILER" >&6
 		;;
 	esac
@@ -4379,12 +4432,12 @@ fi
 CLANG_COMPILER=no
 
 if test "$GCC" = yes ; then
-	echo "$as_me:4382: checking if this is really Clang C compiler" >&5
+	echo "$as_me:4435: checking if this is really Clang C compiler" >&5
 echo $ECHO_N "checking if this is really Clang C compiler... $ECHO_C" >&6
 	cf_save_CFLAGS="$CFLAGS"
 	CFLAGS="$CFLAGS -Qunused-arguments"
 	cat >conftest.$ac_ext <<_ACEOF
-#line 4387 "configure"
+#line 4440 "configure"
 #include "confdefs.h"

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

From owner-svn-src-projects@freebsd.org  Mon Feb  6 04:30:21 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 827A8CD1D1D
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Mon,  6 Feb 2017 04:30:21 +0000 (UTC) (envelope-from ae@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 4AC99E48;
 Mon,  6 Feb 2017 04:30:21 +0000 (UTC) (envelope-from ae@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v164UKbY059033;
 Mon, 6 Feb 2017 04:30:20 GMT (envelope-from ae@FreeBSD.org)
Received: (from ae@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v164UIRt059014;
 Mon, 6 Feb 2017 04:30:18 GMT (envelope-from ae@FreeBSD.org)
Message-Id: <201702060430.v164UIRt059014@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org
 using -f
From: "Andrey V. Elsukov" <ae@FreeBSD.org>
Date: Mon, 6 Feb 2017 04:30:18 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r313313 - in projects/ipsec:
 cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt
 cddl/contrib/opensolaris/lib/libdtrace/common etc sbin/decryptcore
 sbin/hastctl sbin/hastd sbin/ifc...
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 06 Feb 2017 04:30:21 -0000

Author: ae
Date: Mon Feb  6 04:30:18 2017
New Revision: 313313
URL: https://svnweb.freebsd.org/changeset/base/313313

Log:
  Merge from head/.

Added:
  projects/ipsec/sbin/nvmecontrol/wdc.c
     - copied unchanged from r313312, head/sbin/nvmecontrol/wdc.c
Modified:
  projects/ipsec/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.enabled2.ksh
  projects/ipsec/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.include.ksh
  projects/ipsec/cddl/contrib/opensolaris/lib/libdtrace/common/dt_dof.c
  projects/ipsec/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c
  projects/ipsec/cddl/contrib/opensolaris/lib/libdtrace/common/dt_provider.c
  projects/ipsec/etc/devd.conf
  projects/ipsec/sbin/decryptcore/decryptcore.c
  projects/ipsec/sbin/hastctl/Makefile
  projects/ipsec/sbin/hastd/Makefile
  projects/ipsec/sbin/hastd/hast_checksum.c
  projects/ipsec/sbin/hastd/hast_proto.c
  projects/ipsec/sbin/ifconfig/ifieee80211.c
  projects/ipsec/sbin/kldload/kldload.c
  projects/ipsec/sbin/nvmecontrol/Makefile
  projects/ipsec/sbin/nvmecontrol/firmware.c
  projects/ipsec/sbin/nvmecontrol/logpage.c
  projects/ipsec/sbin/nvmecontrol/nvmecontrol.8
  projects/ipsec/sbin/nvmecontrol/nvmecontrol.c
  projects/ipsec/sbin/nvmecontrol/nvmecontrol.h
  projects/ipsec/sbin/savecore/savecore.c
  projects/ipsec/sys/amd64/include/pcpu.h
  projects/ipsec/sys/amd64/linux/linux_dummy.c
  projects/ipsec/sys/amd64/linux/linux_proto.h
  projects/ipsec/sys/amd64/linux/linux_syscall.h
  projects/ipsec/sys/amd64/linux/linux_syscalls.c
  projects/ipsec/sys/amd64/linux/linux_sysent.c
  projects/ipsec/sys/amd64/linux/linux_systrace_args.c
  projects/ipsec/sys/amd64/linux/syscalls.master
  projects/ipsec/sys/amd64/linux32/linux32_dummy.c
  projects/ipsec/sys/amd64/linux32/linux32_proto.h
  projects/ipsec/sys/amd64/linux32/linux32_syscall.h
  projects/ipsec/sys/amd64/linux32/linux32_syscalls.c
  projects/ipsec/sys/amd64/linux32/linux32_sysent.c
  projects/ipsec/sys/amd64/linux32/linux32_systrace_args.c
  projects/ipsec/sys/amd64/linux32/syscalls.master
  projects/ipsec/sys/arm/include/_types.h
  projects/ipsec/sys/arm64/include/_types.h
  projects/ipsec/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c
  projects/ipsec/sys/cddl/contrib/opensolaris/uts/common/sys/dtrace.h
  projects/ipsec/sys/cddl/dev/dtrace/dtrace_ioctl.c
  projects/ipsec/sys/compat/freebsd32/freebsd32_misc.c
  projects/ipsec/sys/compat/linux/linux_file.c
  projects/ipsec/sys/compat/linux/linux_misc.c
  projects/ipsec/sys/compat/linux/linux_socket.h
  projects/ipsec/sys/dev/iwm/if_iwm.c
  projects/ipsec/sys/dev/iwm/if_iwm_mac_ctxt.c
  projects/ipsec/sys/dev/iwm/if_iwm_pcie_trans.c
  projects/ipsec/sys/dev/iwm/if_iwm_phy_db.c
  projects/ipsec/sys/dev/iwm/if_iwm_phy_db.h
  projects/ipsec/sys/dev/iwm/if_iwm_scan.c
  projects/ipsec/sys/dev/iwm/if_iwm_util.c
  projects/ipsec/sys/dev/iwm/if_iwmreg.h
  projects/ipsec/sys/dev/iwm/if_iwmvar.h
  projects/ipsec/sys/dev/mmc/mmc.c
  projects/ipsec/sys/dev/mmc/mmcreg.h
  projects/ipsec/sys/dev/sdhci/sdhci.c
  projects/ipsec/sys/dev/sdhci/sdhci.h
  projects/ipsec/sys/dev/sdhci/sdhci_fdt.c
  projects/ipsec/sys/dev/sdhci/sdhci_pci.c
  projects/ipsec/sys/dev/usb/serial/uftdi.c
  projects/ipsec/sys/dev/usb/serial/usb_serial.c
  projects/ipsec/sys/dev/usb/serial/usb_serial.h
  projects/ipsec/sys/i386/linux/linux_dummy.c
  projects/ipsec/sys/i386/linux/linux_proto.h
  projects/ipsec/sys/i386/linux/linux_syscall.h
  projects/ipsec/sys/i386/linux/linux_syscalls.c
  projects/ipsec/sys/i386/linux/linux_sysent.c
  projects/ipsec/sys/i386/linux/linux_systrace_args.c
  projects/ipsec/sys/i386/linux/syscalls.master
  projects/ipsec/sys/kern/kern_cpuset.c
  projects/ipsec/sys/kern/kern_descrip.c
  projects/ipsec/sys/kern/kern_mutex.c
  projects/ipsec/sys/kern/kern_rmlock.c
  projects/ipsec/sys/kern/kern_rwlock.c
  projects/ipsec/sys/kern/kern_sx.c
  projects/ipsec/sys/kern/subr_witness.c
  projects/ipsec/sys/kern/vfs_subr.c
  projects/ipsec/sys/mips/include/_types.h
  projects/ipsec/sys/mips/include/pcpu.h
  projects/ipsec/sys/net/iflib.c
  projects/ipsec/sys/net/netisr.c
  projects/ipsec/sys/powerpc/include/_types.h
  projects/ipsec/sys/powerpc/include/cpufunc.h
  projects/ipsec/sys/powerpc/include/pcpu.h
  projects/ipsec/sys/riscv/include/_types.h
  projects/ipsec/sys/riscv/include/atomic.h
  projects/ipsec/sys/sparc64/include/_types.h
  projects/ipsec/sys/sparc64/include/pcpu.h
  projects/ipsec/sys/sys/lockstat.h
  projects/ipsec/sys/sys/mutex.h
  projects/ipsec/sys/sys/rwlock.h
  projects/ipsec/sys/sys/sdt.h
  projects/ipsec/sys/sys/sx.h
  projects/ipsec/sys/sys/syscallsubr.h
  projects/ipsec/sys/sys/types.h
  projects/ipsec/sys/vm/vm_object.h
  projects/ipsec/sys/x86/include/_types.h
  projects/ipsec/tools/tools/nanobsd/embedded/rpi2.cfg
  projects/ipsec/usr.bin/sed/main.c
Directory Properties:
  projects/ipsec/   (props changed)
  projects/ipsec/cddl/   (props changed)
  projects/ipsec/cddl/contrib/opensolaris/   (props changed)
  projects/ipsec/sys/cddl/contrib/opensolaris/   (props changed)

Modified: projects/ipsec/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.enabled2.ksh
==============================================================================
--- projects/ipsec/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.enabled2.ksh	Mon Feb  6 03:29:50 2017	(r313312)
+++ projects/ipsec/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.enabled2.ksh	Mon Feb  6 04:30:18 2017	(r313313)
@@ -77,7 +77,7 @@ main(int argc, char **argv)
 }
 EOF
 
-cc -c -xO2 test.c
+cc -c -O2 test.c
 if [ $? -ne 0 ]; then
 	print -u2 "failed to compile test.c"
 	exit 1

Modified: projects/ipsec/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.include.ksh
==============================================================================
--- projects/ipsec/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.include.ksh	Mon Feb  6 03:29:50 2017	(r313312)
+++ projects/ipsec/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.include.ksh	Mon Feb  6 04:30:18 2017	(r313313)
@@ -25,7 +25,7 @@
 #
 # ident	"%Z%%M%	%I%	%E% SMI"
 
-# Make sure <unistd.h> defines _DTRACE_VERSION
+# Make sure <sys/sdt.h> defines _DTRACE_VERSION
 
 DIR=/var/tmp/dtest.$$
 
@@ -33,7 +33,7 @@ mkdir $DIR
 cd $DIR
 
 cat > test.c <<EOF
-#include <unistd.h>
+#include <sys/sdt.h>
 
 int
 main(int argc, char **argv)
@@ -46,7 +46,7 @@ main(int argc, char **argv)
 }
 EOF
 
-cc -xarch=generic -o test test.c
+cc -o test test.c
 if [ $? -ne 0 ]; then
 	print -u2 "failed to compile test.c"
 	exit 1

Modified: projects/ipsec/cddl/contrib/opensolaris/lib/libdtrace/common/dt_dof.c
==============================================================================
--- projects/ipsec/cddl/contrib/opensolaris/lib/libdtrace/common/dt_dof.c	Mon Feb  6 03:29:50 2017	(r313312)
+++ projects/ipsec/cddl/contrib/opensolaris/lib/libdtrace/common/dt_dof.c	Mon Feb  6 04:30:18 2017	(r313313)
@@ -462,18 +462,8 @@ dof_add_probe(dt_idhash_t *dhp, dt_ident
 		dt_buf_write(dtp, &ddo->ddo_enoffs, pip->pi_enoffs,
 		    pip->pi_nenoffs * sizeof (uint32_t), sizeof (uint32_t));
 
-		/*
-		 * If pi_rname isn't set, the relocation will be against the
-		 * function name. If it is, the relocation will be against
-		 * pi_rname. This will be used if the function is scoped
-		 * locally so an alternate symbol is added for the purpose
-		 * of this relocation.
-		 */
-		if (pip->pi_rname == NULL)
-			dofr.dofr_name = dofpr.dofpr_func;
-		else
-			dofr.dofr_name = dof_add_string(ddo, pip->pi_rname);
-		dofr.dofr_type = DOF_RELO_SETX;
+		dofr.dofr_name = dof_add_string(ddo, pip->pi_rname);
+		dofr.dofr_type = DOF_RELO_DOFREL;
 		dofr.dofr_offset = dt_buf_len(&ddo->ddo_probes);
 		dofr.dofr_data = 0;
 

Modified: projects/ipsec/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c
==============================================================================
--- projects/ipsec/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c	Mon Feb  6 03:29:50 2017	(r313312)
+++ projects/ipsec/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c	Mon Feb  6 04:30:18 2017	(r313313)
@@ -237,7 +237,7 @@ printf("%s:%s(%d): DOODAD\n",__FUNCTION_
 			rel->r_offset = s->dofs_offset +
 			    dofr[j].dofr_offset;
 			rel->r_info = ELF32_R_INFO(count + dep->de_global,
-			    R_386_32);
+			    R_386_PC32);
 #elif defined(__mips__)
 /* XXX */
 printf("%s:%s(%d): DOODAD\n",__FUNCTION__,__FILE__,__LINE__);
@@ -253,15 +253,6 @@ printf("%s:%s(%d): DOODAD\n",__FUNCTION_
 #elif defined(__riscv__)
 /* XXX */
 printf("%s:%s(%d): DOODAD\n",__FUNCTION__,__FILE__,__LINE__);
-#elif defined(__sparc)
-			/*
-			 * Add 4 bytes to hit the low half of this 64-bit
-			 * big-endian address.
-			 */
-			rel->r_offset = s->dofs_offset +
-			    dofr[j].dofr_offset + 4;
-			rel->r_info = ELF32_R_INFO(count + dep->de_global,
-			    R_SPARC_32);
 #else
 #error unknown ISA
 #endif
@@ -270,7 +261,7 @@ printf("%s:%s(%d): DOODAD\n",__FUNCTION_
 			sym->st_value = 0;
 			sym->st_size = 0;
 			sym->st_info = ELF32_ST_INFO(STB_GLOBAL, STT_FUNC);
-			sym->st_other = 0;
+			sym->st_other = ELF32_ST_VISIBILITY(STV_HIDDEN);
 			sym->st_shndx = SHN_UNDEF;
 
 			rel++;
@@ -287,11 +278,7 @@ printf("%s:%s(%d): DOODAD\n",__FUNCTION_
 	sym->st_value = 0;
 	sym->st_size = dof->dofh_filesz;
 	sym->st_info = ELF32_ST_INFO(STB_GLOBAL, STT_OBJECT);
-#ifdef illumos
-	sym->st_other = 0;
-#else
 	sym->st_other = ELF32_ST_VISIBILITY(STV_HIDDEN);
-#endif
 	sym->st_shndx = ESHDR_DOF;
 	sym++;
 
@@ -448,18 +435,8 @@ prepare_elf64(dtrace_hdl_t *dtp, const d
 #elif defined(__i386) || defined(__amd64)
 			rel->r_offset = s->dofs_offset +
 			    dofr[j].dofr_offset;
-#ifdef illumos
 			rel->r_info = ELF64_R_INFO(count + dep->de_global,
-			    R_AMD64_64);
-#else
-			rel->r_info = ELF64_R_INFO(count + dep->de_global,
-			    R_X86_64_RELATIVE);
-#endif
-#elif defined(__sparc)
-			rel->r_offset = s->dofs_offset +
-			    dofr[j].dofr_offset;
-			rel->r_info = ELF64_R_INFO(count + dep->de_global,
-			    R_SPARC_64);
+			    R_X86_64_PC64);
 #else
 #error unknown ISA
 #endif
@@ -468,7 +445,7 @@ prepare_elf64(dtrace_hdl_t *dtp, const d
 			sym->st_value = 0;
 			sym->st_size = 0;
 			sym->st_info = GELF_ST_INFO(STB_GLOBAL, STT_FUNC);
-			sym->st_other = 0;
+			sym->st_other = ELF64_ST_VISIBILITY(STV_HIDDEN);
 			sym->st_shndx = SHN_UNDEF;
 
 			rel++;
@@ -485,11 +462,7 @@ prepare_elf64(dtrace_hdl_t *dtp, const d
 	sym->st_value = 0;
 	sym->st_size = dof->dofh_filesz;
 	sym->st_info = GELF_ST_INFO(STB_GLOBAL, STT_OBJECT);
-#ifdef illumos
-	sym->st_other = 0;
-#else
 	sym->st_other = ELF64_ST_VISIBILITY(STV_HIDDEN);
-#endif
 	sym->st_shndx = ESHDR_DOF;
 	sym++;
 
@@ -797,16 +770,15 @@ dump_elf64(dtrace_hdl_t *dtp, const dof_
 }
 
 static int
-dt_symtab_lookup(Elf_Data *data_sym, int nsym, uintptr_t addr, uint_t shn,
-    GElf_Sym *sym, int uses_funcdesc, Elf *elf)
+dt_symtab_lookup(Elf_Data *data_sym, int start, int end, uintptr_t addr,
+    uint_t shn, GElf_Sym *sym, int uses_funcdesc, Elf *elf)
 {
-	int i, ret = -1;
 	Elf64_Addr symval;
 	Elf_Scn *opd_scn;
 	Elf_Data *opd_desc;
-	GElf_Sym s;
+	int i;
 
-	for (i = 0; i < nsym && gelf_getsym(data_sym, i, sym) != NULL; i++) {
+	for (i = start; i < end && gelf_getsym(data_sym, i, sym) != NULL; i++) {
 		if (GELF_ST_TYPE(sym->st_info) == STT_FUNC) {
 			symval = sym->st_value;
 			if (uses_funcdesc) {
@@ -816,20 +788,12 @@ dt_symtab_lookup(Elf_Data *data_sym, int
 				    *(uint64_t*)((char *)opd_desc->d_buf + symval);
 			}
 			if ((uses_funcdesc || shn == sym->st_shndx) &&
-			    symval <= addr &&
-			    addr < symval + sym->st_size) {
-				if (GELF_ST_BIND(sym->st_info) == STB_GLOBAL)
-					return (0);
-
-				ret = 0;
-				s = *sym;
-			}
+			    symval <= addr && addr < symval + sym->st_size)
+				return (0);
 		}
 	}
 
-	if (ret == 0)
-		*sym = s;
-	return (ret);
+	return (-1);
 }
 
 #if defined(__aarch64__)
@@ -1237,10 +1201,11 @@ process_obj(dtrace_hdl_t *dtp, const cha
 	dt_provider_t *pvp;
 	dt_probe_t *prp;
 	uint32_t off, eclass, emachine1, emachine2;
-	size_t symsize, nsym, isym, istr, len;
+	size_t symsize, osym, nsym, isym, istr, len;
 	key_t objkey;
 	dt_link_pair_t *pair, *bufs = NULL;
 	dt_strtab_t *strtab;
+	void *tmp;
 
 	if ((fd = open64(obj, O_RDWR)) == -1) {
 		return (dt_link_error(dtp, elf, fd, bufs,
@@ -1374,12 +1339,13 @@ process_obj(dtrace_hdl_t *dtp, const cha
 		 * target (text) section to replace the call instruction with
 		 * one or more nops.
 		 *
-		 * If the function containing the probe is locally scoped
-		 * (static), we create an alias used by the relocation in the
-		 * generated object. The alias, a new symbol, will be global
-		 * (so that the relocation from the generated object can be
-		 * resolved), and hidden (so that it is converted to a local
-		 * symbol at link time). Such aliases have this form:
+		 * To avoid runtime overhead, the relocations added to the
+		 * generated object should be resolved at static link time. We
+		 * therefore create aliases for the functions that contain
+		 * probes. An alias is global (so that the relocation from the
+		 * generated object can be resolved), and hidden (so that its
+		 * address is known at static link time). Such aliases have this
+		 * form:
 		 *
 		 *   $dtrace<key>.<function>
 		 *
@@ -1417,16 +1383,13 @@ process_obj(dtrace_hdl_t *dtp, const cha
 			if (strncmp(s, dt_prefix, sizeof (dt_prefix) - 1) != 0)
 				continue;
 
-			if (dt_symtab_lookup(data_sym, isym, rela.r_offset,
-			    shdr_rel.sh_info, &fsym,
-			    (emachine1 == EM_PPC64), elf) != 0) {
+			if (dt_symtab_lookup(data_sym, 0, isym, rela.r_offset,
+			    shdr_rel.sh_info, &fsym, (emachine1 == EM_PPC64),
+			    elf) != 0) {
 				dt_strtab_destroy(strtab);
 				goto err;
 			}
 
-			if (GELF_ST_BIND(fsym.st_info) != STB_LOCAL)
-				continue;
-
 			if (fsym.st_name > data_str->d_size) {
 				dt_strtab_destroy(strtab);
 				goto err;
@@ -1462,12 +1425,12 @@ process_obj(dtrace_hdl_t *dtp, const cha
 		}
 
 		/*
-		 * If needed, allocate the additional space for the symbol
-		 * table and string table copying the old data into the new
-		 * buffers, and marking the buffers as dirty. We inject those
-		 * newly allocated buffers into the libelf data structures, but
-		 * are still responsible for freeing them once we're done with
-		 * the elf handle.
+		 * If any probes were found, allocate the additional space for
+		 * the symbol table and string table, copying the old data into
+		 * the new buffers, and marking the buffers as dirty. We inject
+		 * those newly allocated buffers into the libelf data
+		 * structures, but are still responsible for freeing them once
+		 * we're done with the elf handle.
 		 */
 		if (nsym > 0) {
 			/*
@@ -1501,7 +1464,9 @@ process_obj(dtrace_hdl_t *dtp, const cha
 			bufs = pair;
 
 			bcopy(data_str->d_buf, pair->dlp_str, data_str->d_size);
+			tmp = data_str->d_buf;
 			data_str->d_buf = pair->dlp_str;
+			pair->dlp_str = tmp;
 			data_str->d_size += len;
 			(void) elf_flagdata(data_str, ELF_C_SET, ELF_F_DIRTY);
 
@@ -1509,16 +1474,20 @@ process_obj(dtrace_hdl_t *dtp, const cha
 			(void) gelf_update_shdr(scn_str, &shdr_str);
 
 			bcopy(data_sym->d_buf, pair->dlp_sym, data_sym->d_size);
+			tmp = data_sym->d_buf;
 			data_sym->d_buf = pair->dlp_sym;
+			pair->dlp_sym = tmp;
 			data_sym->d_size += nsym * symsize;
 			(void) elf_flagdata(data_sym, ELF_C_SET, ELF_F_DIRTY);
 
 			shdr_sym.sh_size += nsym * symsize;
 			(void) gelf_update_shdr(scn_sym, &shdr_sym);
 
+			osym = isym;
 			nsym += isym;
 		} else {
 			dt_strtab_destroy(strtab);
+			continue;
 		}
 
 		/*
@@ -1577,8 +1546,11 @@ process_obj(dtrace_hdl_t *dtp, const cha
 			bcopy(s, pname, p - s);
 			pname[p - s] = '\0';
 
-			if (dt_symtab_lookup(data_sym, isym, rela.r_offset,
-			    shdr_rel.sh_info, &fsym,
+			if (dt_symtab_lookup(data_sym, osym, isym,
+			    rela.r_offset, shdr_rel.sh_info, &fsym,
+			    (emachine1 == EM_PPC64), elf) != 0 &&
+			    dt_symtab_lookup(data_sym, 0, osym,
+			    rela.r_offset, shdr_rel.sh_info, &fsym,
 			    (emachine1 == EM_PPC64), elf) != 0)
 				goto err;
 
@@ -1588,37 +1560,30 @@ process_obj(dtrace_hdl_t *dtp, const cha
 			assert(GELF_ST_TYPE(fsym.st_info) == STT_FUNC);
 
 			/*
-			 * If a NULL relocation name is passed to
-			 * dt_probe_define(), the function name is used for the
-			 * relocation. The relocation needs to use a mangled
-			 * name if the symbol is locally scoped; the function
-			 * name may need to change if we've found the global
-			 * alias for the locally scoped symbol (we prefer
-			 * global symbols to locals in dt_symtab_lookup()).
+			 * If this is our first time encountering this symbol,
+			 * emit an alias.
 			 */
 			s = (char *)data_str->d_buf + fsym.st_name;
-			r = NULL;
 
-			if (GELF_ST_BIND(fsym.st_info) == STB_LOCAL) {
+			if (strncmp(s, dt_symprefix,
+			    sizeof (dt_symprefix) - 1) != 0) {
+				u_int bind = GELF_ST_BIND(fsym.st_info);
+
 				dsym = fsym;
 				dsym.st_name = istr;
-				dsym.st_info = GELF_ST_INFO(STB_GLOBAL,
-				    STT_FUNC);
-				dsym.st_other =
-				    ELF64_ST_VISIBILITY(STV_ELIMINATE);
+				dsym.st_info = GELF_ST_INFO(bind == STB_LOCAL ?
+				    STB_GLOBAL : bind, STT_FUNC);
+				dsym.st_other = GELF_ST_VISIBILITY(STV_HIDDEN);
 				(void) gelf_update_sym(data_sym, isym, &dsym);
-
-				r = (char *)data_str->d_buf + istr;
-				istr += 1 + sprintf(r, dt_symfmt,
-				    dt_symprefix, objkey, s);
+				r = (char *) data_str->d_buf + istr;
+				istr += 1 + sprintf(r, dt_symfmt, dt_symprefix, objkey,
+				    s);
 				isym++;
 				assert(isym <= nsym);
-
-			} else if (strncmp(s, dt_symprefix,
-			    strlen(dt_symprefix)) == 0) {
+			} else {
 				r = s;
-				if ((s = strchr(s, '.')) == NULL)
-					goto err;
+				s = strchr(s, '.');
+				assert(s != NULL);
 				s++;
 			}
 
@@ -1697,9 +1662,6 @@ process_obj(dtrace_hdl_t *dtp, const cha
 	(void) elf_end(elf);
 	(void) close(fd);
 
-#ifndef illumos
-	if (nsym > 0)
-#endif
 	while ((pair = bufs) != NULL) {
 		bufs = pair->dlp_next;
 		dt_free(dtp, pair->dlp_str);

Modified: projects/ipsec/cddl/contrib/opensolaris/lib/libdtrace/common/dt_provider.c
==============================================================================
--- projects/ipsec/cddl/contrib/opensolaris/lib/libdtrace/common/dt_provider.c	Mon Feb  6 03:29:50 2017	(r313312)
+++ projects/ipsec/cddl/contrib/opensolaris/lib/libdtrace/common/dt_provider.c	Mon Feb  6 04:30:18 2017	(r313313)
@@ -545,9 +545,7 @@ dt_probe_define(dt_provider_t *pvp, dt_p
 
 	for (pip = prp->pr_inst; pip != NULL; pip = pip->pi_next) {
 		if (strcmp(pip->pi_fname, fname) == 0 &&
-		    ((rname == NULL && pip->pi_rname == NULL) ||
-		    (rname != NULL && pip->pi_rname != NULL &&
-		    strcmp(pip->pi_rname, rname) == 0)))
+		    strcmp(pip->pi_rname, rname) == 0)
 			break;
 	}
 
@@ -565,7 +563,7 @@ dt_probe_define(dt_provider_t *pvp, dt_p
 		if ((pip->pi_fname = strdup(fname)) == NULL)
 			goto nomem;
 
-		if (rname != NULL && (pip->pi_rname = strdup(rname)) == NULL)
+		if ((pip->pi_rname = strdup(rname)) == NULL)
 			goto nomem;
 
 		pip->pi_noffs = 0;
@@ -605,7 +603,7 @@ dt_probe_define(dt_provider_t *pvp, dt_p
 	dt_dprintf("defined probe %s %s:%s %s() +0x%x (%s)\n",
 	    isenabled ? "(is-enabled)" : "",
 	    pvp->pv_desc.dtvd_name, prp->pr_ident->di_name, fname, offset,
-	    rname != NULL ? rname : fname);
+	    rname);
 
 	assert(*noffs < *maxoffs);
 	(*offs)[(*noffs)++] = offset;

Modified: projects/ipsec/etc/devd.conf
==============================================================================
--- projects/ipsec/etc/devd.conf	Mon Feb  6 03:29:50 2017	(r313312)
+++ projects/ipsec/etc/devd.conf	Mon Feb  6 04:30:18 2017	(r313313)
@@ -272,7 +272,7 @@ nomatch 10 {
 	match "bus" "pccard[0-9]+";
 	match "manufacturer" "0x1234";
 	match "product" "0x2323";
-	action "kldload if_deqna";
+	action "kldload -n if_deqna";
 };
 attach 10 {
 	device-name "deqna[0-9]+";

Modified: projects/ipsec/sbin/decryptcore/decryptcore.c
==============================================================================
--- projects/ipsec/sbin/decryptcore/decryptcore.c	Mon Feb  6 03:29:50 2017	(r313312)
+++ projects/ipsec/sbin/decryptcore/decryptcore.c	Mon Feb  6 04:30:18 2017	(r313313)
@@ -31,7 +31,6 @@ __FBSDID("$FreeBSD$");
 #include <sys/capsicum.h>
 #include <sys/endian.h>
 #include <sys/kerneldump.h>
-#include <sys/stat.h>
 #include <sys/sysctl.h>
 #include <sys/wait.h>
 
@@ -232,8 +231,6 @@ decrypt(const char *privkeyfile, const c
 			pjdlog_errno(LOG_ERR, "Unable to read data from %s",
 			    input);
 			goto failed;
-		} else if (bytes == 0) {
-			break;
 		}
 
 		if (bytes > 0) {
@@ -249,10 +246,7 @@ decrypt(const char *privkeyfile, const c
 			}
 		}
 
-		if (olen == 0)
-			continue;
-
-		if (write(ofd, buf, olen) != olen) {
+		if (olen > 0 && write(ofd, buf, olen) != olen) {
 			pjdlog_errno(LOG_ERR, "Unable to write data to %s",
 			    output);
 			goto failed;
@@ -274,7 +268,6 @@ int
 main(int argc, char **argv)
 {
 	char core[PATH_MAX], encryptedcore[PATH_MAX], keyfile[PATH_MAX];
-	struct stat sb;
 	const char *crashdir, *dumpnr, *privatekey;
 	int ch, debug;
 	size_t ii;
@@ -297,16 +290,23 @@ main(int argc, char **argv)
 			usesyslog = true;
 			break;
 		case 'c':
-			strncpy(core, optarg, sizeof(core));
+			if (strlcpy(core, optarg, sizeof(core)) >= sizeof(core))
+				pjdlog_exitx(1, "Core file path is too long.");
 			break;
 		case 'd':
 			crashdir = optarg;
 			break;
 		case 'e':
-			strncpy(encryptedcore, optarg, sizeof(encryptedcore));
+			if (strlcpy(encryptedcore, optarg,
+			    sizeof(encryptedcore)) >= sizeof(encryptedcore)) {
+				pjdlog_exitx(1, "Encrypted core file path is too long.");
+			}
 			break;
 		case 'k':
-			strncpy(keyfile, optarg, sizeof(keyfile));
+			if (strlcpy(keyfile, optarg, sizeof(keyfile)) >=
+			    sizeof(keyfile)) {
+				pjdlog_exitx(1, "Key file path is too long.");
+			}
 			break;
 		case 'n':
 			dumpnr = optarg;
@@ -362,7 +362,7 @@ main(int argc, char **argv)
 	pjdlog_debug_set(debug);
 
 	if (!decrypt(privatekey, keyfile, encryptedcore, core)) {
-		if (stat(core, &sb) == 0 && unlink(core) != 0)
+		if (unlink(core) == -1 && errno != ENOENT)
 			pjdlog_exit(1, "Unable to remove core");
 		exit(1);
 	}

Modified: projects/ipsec/sbin/hastctl/Makefile
==============================================================================
--- projects/ipsec/sbin/hastctl/Makefile	Mon Feb  6 03:29:50 2017	(r313312)
+++ projects/ipsec/sbin/hastctl/Makefile	Mon Feb  6 04:30:18 2017	(r313313)
@@ -33,11 +33,7 @@ CFLAGS+=-DINET6
 CFLAGS+=-DYY_NO_UNPUT
 CFLAGS+=-DYY_NO_INPUT
 
-LIBADD=	util
-.if ${MK_OPENSSL} != "no"
-LIBADD+=	crypto
-CFLAGS+=-DHAVE_CRYPTO
-.endif
+LIBADD=	md util
 
 YFLAGS+=-v
 

Modified: projects/ipsec/sbin/hastd/Makefile
==============================================================================
--- projects/ipsec/sbin/hastd/Makefile	Mon Feb  6 03:29:50 2017	(r313312)
+++ projects/ipsec/sbin/hastd/Makefile	Mon Feb  6 04:30:18 2017	(r313313)
@@ -31,11 +31,7 @@ CFLAGS+=-DINET
 CFLAGS+=-DINET6
 .endif
 
-LIBADD=	geom pthread util
-.if ${MK_OPENSSL} != "no"
-LIBADD+=	crypto
-CFLAGS+=-DHAVE_CRYPTO
-.endif
+LIBADD=	geom md pthread util
 
 YFLAGS+=-v
 

Modified: projects/ipsec/sbin/hastd/hast_checksum.c
==============================================================================
--- projects/ipsec/sbin/hastd/hast_checksum.c	Mon Feb  6 03:29:50 2017	(r313312)
+++ projects/ipsec/sbin/hastd/hast_checksum.c	Mon Feb  6 04:30:18 2017	(r313313)
@@ -31,22 +31,15 @@ __FBSDID("$FreeBSD$");
 #include <string.h>
 #include <strings.h>
 
-#ifdef HAVE_CRYPTO
-#include <openssl/sha.h>
-#endif
-
 #include <crc32.h>
 #include <hast.h>
 #include <nv.h>
+#include <sha256.h>
 #include <pjdlog.h>
 
 #include "hast_checksum.h"
 
-#ifdef HAVE_CRYPTO
 #define	MAX_HASH_SIZE	SHA256_DIGEST_LENGTH
-#else
-#define	MAX_HASH_SIZE	4
-#endif
 
 static void
 hast_crc32_checksum(const unsigned char *data, size_t size,
@@ -60,7 +53,6 @@ hast_crc32_checksum(const unsigned char 
 	*hsizep = sizeof(crc);
 }
 
-#ifdef HAVE_CRYPTO
 static void
 hast_sha256_checksum(const unsigned char *data, size_t size,
     unsigned char *hash, size_t *hsizep)
@@ -72,7 +64,6 @@ hast_sha256_checksum(const unsigned char
 	SHA256_Final(hash, &ctx);
 	*hsizep = SHA256_DIGEST_LENGTH;
 }
-#endif	/* HAVE_CRYPTO */
 
 const char *
 checksum_name(int num)
@@ -102,11 +93,9 @@ checksum_send(const struct hast_resource
 	case HAST_CHECKSUM_CRC32:
 		hast_crc32_checksum(*datap, *sizep, hash, &hsize);
 		break;
-#ifdef HAVE_CRYPTO
 	case HAST_CHECKSUM_SHA256:
 		hast_sha256_checksum(*datap, *sizep, hash, &hsize);
 		break;
-#endif
 	default:
 		PJDLOG_ABORT("Invalid checksum: %d.", res->hr_checksum);
 	}
@@ -138,10 +127,8 @@ checksum_recv(const struct hast_resource
 	}
 	if (strcmp(algo, "crc32") == 0)
 		hast_crc32_checksum(*datap, *sizep, chash, &chsize);
-#ifdef HAVE_CRYPTO
 	else if (strcmp(algo, "sha256") == 0)
 		hast_sha256_checksum(*datap, *sizep, chash, &chsize);
-#endif
 	else {
 		pjdlog_error("Unknown checksum algorithm '%s'.", algo);
 		return (-1);	/* Unknown checksum algorithm. */

Modified: projects/ipsec/sbin/hastd/hast_proto.c
==============================================================================
--- projects/ipsec/sbin/hastd/hast_proto.c	Mon Feb  6 03:29:50 2017	(r313312)
+++ projects/ipsec/sbin/hastd/hast_proto.c	Mon Feb  6 04:30:18 2017	(r313313)
@@ -42,9 +42,7 @@ __FBSDID("$FreeBSD$");
 #include <pjdlog.h>
 #include <proto.h>
 
-#ifdef HAVE_CRYPTO
 #include "hast_checksum.h"
-#endif
 #include "hast_compression.h"
 #include "hast_proto.h"
 
@@ -68,9 +66,7 @@ struct hast_pipe_stage {
 
 static struct hast_pipe_stage pipeline[] = {
 	{ "compression", compression_send, compression_recv },
-#ifdef HAVE_CRYPTO
 	{ "checksum", checksum_send, checksum_recv }
-#endif
 };
 
 /*

Modified: projects/ipsec/sbin/ifconfig/ifieee80211.c
==============================================================================
--- projects/ipsec/sbin/ifconfig/ifieee80211.c	Mon Feb  6 03:29:50 2017	(r313312)
+++ projects/ipsec/sbin/ifconfig/ifieee80211.c	Mon Feb  6 04:30:18 2017	(r313313)
@@ -5594,12 +5594,12 @@ static struct cmd ieee80211_cmds[] = {
 	DEF_CMD_ARG("bgscanidle",	set80211bgscanidle),
 	DEF_CMD_ARG("bgscanintvl",	set80211bgscanintvl),
 	DEF_CMD_ARG("scanvalid",	set80211scanvalid),
-	DEF_CMD("quiet",        1,      set80211quiet),
-	DEF_CMD("-quiet",       0,      set80211quiet),
-	DEF_CMD_ARG("quiet_count",      set80211quietcount),
-	DEF_CMD_ARG("quiet_period",     set80211quietperiod),
-	DEF_CMD_ARG("quiet_dur",        set80211quietduration),
-	DEF_CMD_ARG("quiet_offset",     set80211quietoffset),
+	DEF_CMD("quiet",	1,	set80211quiet),
+	DEF_CMD("-quiet",	0,	set80211quiet),
+	DEF_CMD_ARG("quiet_count",	set80211quietcount),
+	DEF_CMD_ARG("quiet_period",	set80211quietperiod),
+	DEF_CMD_ARG("quiet_duration",	set80211quietduration),
+	DEF_CMD_ARG("quiet_offset",	set80211quietoffset),
 	DEF_CMD_ARG("roam:rssi",	set80211roamrssi),
 	DEF_CMD_ARG("roam:rate",	set80211roamrate),
 	DEF_CMD_ARG("mcastrate",	set80211mcastrate),

Modified: projects/ipsec/sbin/kldload/kldload.c
==============================================================================
--- projects/ipsec/sbin/kldload/kldload.c	Mon Feb  6 03:29:50 2017	(r313312)
+++ projects/ipsec/sbin/kldload/kldload.c	Mon Feb  6 04:30:18 2017	(r313313)
@@ -41,9 +41,6 @@ __FBSDID("$FreeBSD$");
 
 #define	PATHCTL	"kern.module_path"
 
-static int	path_check(const char *, int);
-static void	usage(void);
-
 /*
  * Check to see if the requested module is specified as a filename with no
  * path.  If so and if a file by the same name exists in the module path,
@@ -52,43 +49,37 @@ static void	usage(void);
 static int
 path_check(const char *kldname, int quiet)
 {
-	int	mib[5], found;
-	size_t	miblen, pathlen;
-	char	kldpath[MAXPATHLEN];
 	char	*path, *tmppath, *element;
 	struct	stat sb;
+	int	mib[5];
+	char	kldpath[MAXPATHLEN];
+	size_t	miblen, pathlen;
 	dev_t	dev;
 	ino_t	ino;
+	int	found;
 
-	if (strchr(kldname, '/') != NULL) {
+	if (strchr(kldname, '/') != NULL)
 		return (0);
-	}
-	if (strstr(kldname, ".ko") == NULL) {
+	if (strstr(kldname, ".ko") == NULL)
 		return (0);
-	}
-	if (stat(kldname, &sb) != 0) {
+	if (stat(kldname, &sb) != 0)
 		return (0);
-	}
 
 	found = 0;
 	dev = sb.st_dev;
 	ino = sb.st_ino;
 
 	miblen = nitems(mib);
-	if (sysctlnametomib(PATHCTL, mib, &miblen) != 0) {
+	if (sysctlnametomib(PATHCTL, mib, &miblen) != 0)
 		err(1, "sysctlnametomib(%s)", PATHCTL);
-	}
-	if (sysctl(mib, miblen, NULL, &pathlen, NULL, 0) == -1) {
+	if (sysctl(mib, miblen, NULL, &pathlen, NULL, 0) == -1)
 		err(1, "getting path: sysctl(%s) - size only", PATHCTL);
-	}
 	path = malloc(pathlen + 1);
-	if (path == NULL) {
+	if (path == NULL)
 		err(1, "allocating %lu bytes for the path",
 		    (unsigned long)pathlen + 1);
-	}
-	if (sysctl(mib, miblen, path, &pathlen, NULL, 0) == -1) {
+	if (sysctl(mib, miblen, path, &pathlen, NULL, 0) == -1)
 		err(1, "getting path: sysctl(%s)", PATHCTL);
-	}
 	tmppath = path;
 
 	while ((element = strsep(&tmppath, ";")) != NULL) {
@@ -97,39 +88,36 @@ path_check(const char *kldname, int quie
 			strlcat(kldpath, "/", MAXPATHLEN);
 		}
 		strlcat(kldpath, kldname, MAXPATHLEN);
-				
-		if (stat(kldpath, &sb) == -1) {
+
+		if (stat(kldpath, &sb) == -1)
 			continue;
-		}	
 
 		found = 1;
 
 		if (sb.st_dev != dev || sb.st_ino != ino) {
-			if (!quiet) {
+			if (!quiet)
 				warnx("%s will be loaded from %s, not the "
 				    "current directory", kldname, element);
-			}
 			break;
-		} else if (sb.st_dev == dev && sb.st_ino == ino) {
+		} else if (sb.st_dev == dev && sb.st_ino == ino)
 			break;
-		}
 	}
 
 	free(path);
-	
+
 	if (!found) {
-		if (!quiet) {
+		if (!quiet)
 			warnx("%s is not in the module path", kldname);
-		}
 		return (-1);
 	}
-	
+
 	return (0);
 }
 
 static void
 usage(void)
 {
+
 	fprintf(stderr, "usage: kldload [-nqv] file ...\n");
 	exit(1);
 }
@@ -138,17 +126,17 @@ int
 main(int argc, char** argv)
 {
 	int c;
+	int check_loaded;
 	int errors;
 	int fileid;
-	int verbose;
 	int quiet;
-	int check_loaded;
+	int verbose;
 
 	errors = 0;
 	verbose = 0;
 	quiet = 0;
 	check_loaded = 0;
-    
+
 	while ((c = getopt(argc, argv, "nqv")) != -1) {
 		switch (c) {
 		case 'q':
@@ -204,9 +192,8 @@ main(int argc, char** argv)
 					printf("Loaded %s, id=%d\n", argv[0],
 					    fileid);
 			}
-		} else {
+		} else
 			errors++;
-		}
 		argv++;
 	}
 

Modified: projects/ipsec/sbin/nvmecontrol/Makefile
==============================================================================
--- projects/ipsec/sbin/nvmecontrol/Makefile	Mon Feb  6 03:29:50 2017	(r313312)
+++ projects/ipsec/sbin/nvmecontrol/Makefile	Mon Feb  6 04:30:18 2017	(r313313)
@@ -3,7 +3,7 @@
 PACKAGE=runtime
 PROG=	nvmecontrol
 SRCS=	nvmecontrol.c devlist.c firmware.c identify.c logpage.c	\
-	perftest.c reset.c nvme_util.c power.c
+	perftest.c reset.c nvme_util.c power.c wdc.c
 MAN=	nvmecontrol.8
 
 .PATH:	${.CURDIR}/../../sys/dev/nvme

Modified: projects/ipsec/sbin/nvmecontrol/firmware.c
==============================================================================
--- projects/ipsec/sbin/nvmecontrol/firmware.c	Mon Feb  6 03:29:50 2017	(r313312)
+++ projects/ipsec/sbin/nvmecontrol/firmware.c	Mon Feb  6 04:30:18 2017	(r313313)
@@ -114,7 +114,7 @@ update_firmware(int fd, uint8_t *payload
 	off = 0;
 	resid = payload_size;
 
-	if ((chunk = aligned_alloc(NVME_MAX_XFER_SIZE, PAGE_SIZE)) == NULL)
+	if ((chunk = aligned_alloc(PAGE_SIZE, NVME_MAX_XFER_SIZE)) == NULL)
 		errx(1, "unable to malloc %d bytes", NVME_MAX_XFER_SIZE);
 
 	while (resid > 0) {

Modified: projects/ipsec/sbin/nvmecontrol/logpage.c
==============================================================================
--- projects/ipsec/sbin/nvmecontrol/logpage.c	Mon Feb  6 03:29:50 2017	(r313312)
+++ projects/ipsec/sbin/nvmecontrol/logpage.c	Mon Feb  6 04:30:18 2017	(r313313)
@@ -74,6 +74,12 @@ kv_lookup(const struct kv_name *kv, size
 	return bad;
 }
 
+static void
+print_bin(void *data, uint32_t length)
+{
+	write(STDOUT_FILENO, data, length);
+}
+
 /*
  * 128-bit integer augments to standard values. On i386 this
  * doesn't exist, so we use 64-bit values. The 128-bit counters
@@ -846,6 +852,8 @@ static struct logpage_function {
 	 sizeof(struct nvme_firmware_page)},
 	{HGST_INFO_LOG,			"hgst",	print_hgst_info_log,
 	 DEFAULT_SIZE},
+	{HGST_INFO_LOG,			"wdc",	print_hgst_info_log,
+	 DEFAULT_SIZE},
 	{INTEL_LOG_TEMP_STATS,		"intel", print_intel_temp_stats,
 	 sizeof(struct intel_log_temp_stats)},
 	{INTEL_LOG_READ_LAT_LOG,	"intel", print_intel_read_lat_log,
@@ -870,7 +878,7 @@ logpage(int argc, char *argv[])
 {
 	int				fd, nsid;
 	int				log_page = 0, pageflag = false;
-	int				hexflag = false, ns_specified;
+	int				binflag = false, hexflag = false, ns_specified;
 	char				ch, *p;
 	char				cname[64];
 	uint32_t			size;
@@ -880,8 +888,11 @@ logpage(int argc, char *argv[])
 	struct nvme_controller_data	cdata;
 	print_fn_t			print_fn;
 
-	while ((ch = getopt(argc, argv, "p:xv:")) != -1) {
+	while ((ch = getopt(argc, argv, "bp:xv:")) != -1) {
 		switch (ch) {
+		case 'b':
+			binflag = true;
+			break;
 		case 'p':
 			/* TODO: Add human-readable ASCII page IDs */
 			log_page = strtol(optarg, &p, 0);
@@ -940,7 +951,9 @@ logpage(int argc, char *argv[])
 
 	print_fn = print_hex;
 	size = DEFAULT_SIZE;
-	if (!hexflag) {
+	if (binflag)
+		print_fn = print_bin;
+	if (!binflag && !hexflag) {
 		/*
 		 * See if there is a pretty print function for the specified log
 		 * page.  If one isn't found, we just revert to the default

Modified: projects/ipsec/sbin/nvmecontrol/nvmecontrol.8
==============================================================================
--- projects/ipsec/sbin/nvmecontrol/nvmecontrol.8	Mon Feb  6 03:29:50 2017	(r313312)
+++ projects/ipsec/sbin/nvmecontrol/nvmecontrol.8	Mon Feb  6 04:30:18 2017	(r313313)
@@ -33,7 +33,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd September 10, 2016
+.Dd February 4, 2017
 .Dt NVMECONTROL 8
 .Os
 .Sh NAME
@@ -62,6 +62,8 @@
 .Ic logpage
 .Aq Fl p Ar page_id
 .Op Fl x
+.Op Fl v Ar vendor-string
+.Op Fl b
 .Aq device id
 .Aq namespace id
 .Nm
@@ -74,10 +76,48 @@
 .Ic power
 .Op Fl l
 .Op Fl p power_state
-.Op fl w workload_hint
+.Op Fl w workload_hint
+.Nm
+.Ic wdc cap-diag
+.Op Fl o path_template
+.Aq device id
+.Nm
+.Ic wdc drive-log
+.Op Fl o path_template
+.Aq device id
+.Nm
+.Ic wdc get-crash-dump
+.Op Fl o path_template
+.Aq device id
+.\" .Nm
+.\" .Ic wdc purge
+.\" .Aq device id
+.\" .Nm
+.\" .Ic wdc purge-monitor
+.\" .Aq device id
 .Sh DESCRIPTION
 NVM Express (NVMe) is a storage protocol standard, for SSDs and other
 high-speed storage devices over PCI Express.
+.Pp
+.Ss logpage
+The logpage command knows how to print log pages of various types.
+It also knows about vendor specific log pages from hgst/wdc and intel.
+Page 0xc1 for hgst/wdc contains the advanced smart information about
+the drive.
+Page 0xc1 is read latency stats for intel.
+Page 0xc2 is write latency stats for intel.
+Page 0xc5 is temperature stats for intel.
+Page 0xca is advanced smart information for intel.
+.Ss wdc
+The various wdc command retrieve log data from the wdc/hgst drives.
+The
+.Fl o
+flag specifies a path template to use to output the files.
+Each file takes the path template (which defaults to nothing), appends
+the drive's serial number and the type of dump it is followed
+by .bin.
+These logs must be sent to the vendor for analysis.
+This tool only provides a way to extract them.
 .Sh EXAMPLES
 .Dl nvmecontrol devlist
 .Pp
@@ -108,10 +148,21 @@ Display a human-readable summary of the 
 Log pages defined by the NVMe specification include Error Information Log (ID=1),
 SMART/Health Information Log (ID=2), and Firmware Slot Log (ID=3).
 .Pp
+.Dl nvmecontrol logpage -p 0xc1 -v wdc nvme0
+.Pp
+Display a human-readable summary of the nvme0's wdc-specific advanced
+SMART data.
+.Pp
 .Dl nvmecontrol logpage -p 1 -x nvme0
 .Pp
 Display a hexadecimal dump of the nvme0 controller's Error Information Log.
 .Pp
+.Dl nvmecontrol logpage -p 0xcb -b nvme0 > /tmp/page-cb.bin
+.Pp
+Print the contents of vendor specific page 0xcb as binary data on
+standard out.
+Redirect it to a temporary file.
+.Pp
 .Dl nvmecontrol firmware -s 2 -f /tmp/nvme_firmware nvme0
 .Pp
 Download the firmware image contained in "/tmp/nvme_firmware" to slot 2 of the

Modified: projects/ipsec/sbin/nvmecontrol/nvmecontrol.c
==============================================================================
--- projects/ipsec/sbin/nvmecontrol/nvmecontrol.c	Mon Feb  6 03:29:50 2017	(r313312)
+++ projects/ipsec/sbin/nvmecontrol/nvmecontrol.c	Mon Feb  6 04:30:18 2017	(r313313)
@@ -45,13 +45,8 @@ __FBSDID("$FreeBSD$");
 
 #include "nvmecontrol.h"
 
-typedef void (*nvme_fn_t)(int argc, char *argv[]);
 
-static struct nvme_function {
-	const char	*name;
-	nvme_fn_t	fn;
-	const char	*usage;
-} funcs[] = {
+static struct nvme_function funcs[] = {
 	{"devlist",	devlist,	DEVLIST_USAGE},
 	{"identify",	identify,	IDENTIFY_USAGE},
 	{"perftest",	perftest,	PERFTEST_USAGE},
@@ -59,15 +54,14 @@ static struct nvme_function {
 	{"logpage",	logpage,	LOGPAGE_USAGE},
 	{"firmware",	firmware,	FIRMWARE_USAGE},
 	{"power",	power,		POWER_USAGE},
+	{"wdc",		wdc,		WDC_USAGE},
 	{NULL,		NULL,		NULL},
 };
 
-static void
-usage(void)
+void
+gen_usage(struct nvme_function *f)
 {
-	struct nvme_function *f;
 
-	f = funcs;
 	fprintf(stderr, "usage:\n");
 	while (f->name != NULL) {
 		fprintf(stderr, "%s", f->usage);
@@ -76,6 +70,21 @@ usage(void)
 	exit(1);
 }
 
+void
+dispatch(int argc, char *argv[], struct nvme_function *tbl)
+{
+	struct nvme_function *f = tbl;
+
+	while (f->name != NULL) {
+		if (strcmp(argv[1], f->name) == 0)
+			f->fn(argc-1, &argv[1]);
+		f++;
+	}

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

From owner-svn-src-projects@freebsd.org  Tue Feb  7 01:33:43 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 127A3CD35A3
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Tue,  7 Feb 2017 01:33:43 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id A1E06DD1;
 Tue,  7 Feb 2017 01:33:42 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v171Xf3A091183;
 Tue, 7 Feb 2017 01:33:41 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v171XdHq091162;
 Tue, 7 Feb 2017 01:33:39 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201702070133.v171XdHq091162@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Tue, 7 Feb 2017 01:33:39 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r313361 - in projects/netbsd-tests-upstream-01-2017: .
 bin/ed contrib/netcat etc lib/libipsec lib/libstand sbin/ifconfig
 sbin/kldload sbin/setkey secure/usr.bin secure/usr.bin/bdes shar...
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 07 Feb 2017 01:33:43 -0000

Author: ngie
Date: Tue Feb  7 01:33:39 2017
New Revision: 313361
URL: https://svnweb.freebsd.org/changeset/base/313361

Log:
  MFhead@r313360

Added:
  projects/netbsd-tests-upstream-01-2017/sbin/ifconfig/ifipsec.c
     - copied unchanged from r313360, head/sbin/ifconfig/ifipsec.c
  projects/netbsd-tests-upstream-01-2017/share/man/man4/if_ipsec.4
     - copied unchanged from r313360, head/share/man/man4/if_ipsec.4
  projects/netbsd-tests-upstream-01-2017/sys/dev/iwm/if_iwm_notif_wait.c
     - copied unchanged from r313360, head/sys/dev/iwm/if_iwm_notif_wait.c
  projects/netbsd-tests-upstream-01-2017/sys/dev/iwm/if_iwm_notif_wait.h
     - copied unchanged from r313360, head/sys/dev/iwm/if_iwm_notif_wait.h
  projects/netbsd-tests-upstream-01-2017/sys/modules/ipsec/
     - copied from r313360, head/sys/modules/ipsec/
  projects/netbsd-tests-upstream-01-2017/sys/modules/tcp/tcpmd5/
     - copied from r313360, head/sys/modules/tcp/tcpmd5/
  projects/netbsd-tests-upstream-01-2017/sys/net/if_ipsec.c
     - copied unchanged from r313360, head/sys/net/if_ipsec.c
  projects/netbsd-tests-upstream-01-2017/sys/net/if_ipsec.h
     - copied unchanged from r313360, head/sys/net/if_ipsec.h
  projects/netbsd-tests-upstream-01-2017/sys/netipsec/ipsec_mod.c
     - copied unchanged from r313360, head/sys/netipsec/ipsec_mod.c
  projects/netbsd-tests-upstream-01-2017/sys/netipsec/ipsec_pcb.c
     - copied unchanged from r313360, head/sys/netipsec/ipsec_pcb.c
  projects/netbsd-tests-upstream-01-2017/sys/netipsec/ipsec_support.h
     - copied unchanged from r313360, head/sys/netipsec/ipsec_support.h
  projects/netbsd-tests-upstream-01-2017/sys/netipsec/subr_ipsec.c
     - copied unchanged from r313360, head/sys/netipsec/subr_ipsec.c
  projects/netbsd-tests-upstream-01-2017/sys/netipsec/udpencap.c
     - copied unchanged from r313360, head/sys/netipsec/udpencap.c
Deleted:
  projects/netbsd-tests-upstream-01-2017/secure/usr.bin/bdes/
  projects/netbsd-tests-upstream-01-2017/sys/netinet/ip_ipsec.c
  projects/netbsd-tests-upstream-01-2017/sys/netinet/ip_ipsec.h
  projects/netbsd-tests-upstream-01-2017/sys/netinet6/ip6_ipsec.c
  projects/netbsd-tests-upstream-01-2017/sys/netinet6/ip6_ipsec.h
Modified:
  projects/netbsd-tests-upstream-01-2017/ObsoleteFiles.inc
  projects/netbsd-tests-upstream-01-2017/bin/ed/ed.1
  projects/netbsd-tests-upstream-01-2017/contrib/netcat/netcat.c
  projects/netbsd-tests-upstream-01-2017/etc/devd.conf
  projects/netbsd-tests-upstream-01-2017/lib/libipsec/pfkey.c
  projects/netbsd-tests-upstream-01-2017/lib/libipsec/pfkey_dump.c
  projects/netbsd-tests-upstream-01-2017/lib/libstand/stand.h
  projects/netbsd-tests-upstream-01-2017/sbin/ifconfig/Makefile
  projects/netbsd-tests-upstream-01-2017/sbin/kldload/kldload.c
  projects/netbsd-tests-upstream-01-2017/sbin/setkey/setkey.8
  projects/netbsd-tests-upstream-01-2017/secure/usr.bin/Makefile
  projects/netbsd-tests-upstream-01-2017/share/man/man4/Makefile
  projects/netbsd-tests-upstream-01-2017/share/man/man4/cxgbe.4
  projects/netbsd-tests-upstream-01-2017/share/man/man4/ipsec.4
  projects/netbsd-tests-upstream-01-2017/share/man/man4/tcp.4
  projects/netbsd-tests-upstream-01-2017/share/man/man4/udp.4
  projects/netbsd-tests-upstream-01-2017/sys/amd64/linux/linux_dummy.c
  projects/netbsd-tests-upstream-01-2017/sys/amd64/linux/linux_proto.h
  projects/netbsd-tests-upstream-01-2017/sys/amd64/linux/linux_syscall.h
  projects/netbsd-tests-upstream-01-2017/sys/amd64/linux/linux_syscalls.c
  projects/netbsd-tests-upstream-01-2017/sys/amd64/linux/linux_sysent.c
  projects/netbsd-tests-upstream-01-2017/sys/amd64/linux/linux_systrace_args.c
  projects/netbsd-tests-upstream-01-2017/sys/amd64/linux/syscalls.master
  projects/netbsd-tests-upstream-01-2017/sys/amd64/linux32/linux32_dummy.c
  projects/netbsd-tests-upstream-01-2017/sys/amd64/linux32/linux32_proto.h
  projects/netbsd-tests-upstream-01-2017/sys/amd64/linux32/linux32_syscall.h
  projects/netbsd-tests-upstream-01-2017/sys/amd64/linux32/linux32_syscalls.c
  projects/netbsd-tests-upstream-01-2017/sys/amd64/linux32/linux32_sysent.c
  projects/netbsd-tests-upstream-01-2017/sys/amd64/linux32/linux32_systrace_args.c
  projects/netbsd-tests-upstream-01-2017/sys/amd64/linux32/syscalls.master
  projects/netbsd-tests-upstream-01-2017/sys/arm/arm/identcpu-v4.c
  projects/netbsd-tests-upstream-01-2017/sys/arm/include/counter.h
  projects/netbsd-tests-upstream-01-2017/sys/arm64/arm64/cpufunc_asm.S
  projects/netbsd-tests-upstream-01-2017/sys/arm64/include/counter.h
  projects/netbsd-tests-upstream-01-2017/sys/arm64/include/cpufunc.h
  projects/netbsd-tests-upstream-01-2017/sys/boot/common/bcache.c
  projects/netbsd-tests-upstream-01-2017/sys/boot/common/bootstrap.h
  projects/netbsd-tests-upstream-01-2017/sys/boot/common/disk.c
  projects/netbsd-tests-upstream-01-2017/sys/boot/common/part.c
  projects/netbsd-tests-upstream-01-2017/sys/boot/common/part.h
  projects/netbsd-tests-upstream-01-2017/sys/boot/efi/include/efilib.h
  projects/netbsd-tests-upstream-01-2017/sys/boot/efi/libefi/devpath.c
  projects/netbsd-tests-upstream-01-2017/sys/boot/efi/libefi/efipart.c
  projects/netbsd-tests-upstream-01-2017/sys/boot/efi/loader/conf.c
  projects/netbsd-tests-upstream-01-2017/sys/boot/efi/loader/devicename.c
  projects/netbsd-tests-upstream-01-2017/sys/boot/efi/loader/main.c
  projects/netbsd-tests-upstream-01-2017/sys/boot/i386/btx/lib/btxv86.h
  projects/netbsd-tests-upstream-01-2017/sys/boot/i386/libi386/bioscd.c
  projects/netbsd-tests-upstream-01-2017/sys/boot/i386/libi386/biosdisk.c
  projects/netbsd-tests-upstream-01-2017/sys/boot/usb/storage/umass_loader.c
  projects/netbsd-tests-upstream-01-2017/sys/boot/zfs/zfs.c
  projects/netbsd-tests-upstream-01-2017/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace_xoroshiro128_plus.h
  projects/netbsd-tests-upstream-01-2017/sys/compat/cloudabi/cloudabi_mem.c
  projects/netbsd-tests-upstream-01-2017/sys/compat/freebsd32/freebsd32_misc.c
  projects/netbsd-tests-upstream-01-2017/sys/compat/linux/linux_file.c
  projects/netbsd-tests-upstream-01-2017/sys/compat/linux/linux_misc.c
  projects/netbsd-tests-upstream-01-2017/sys/compat/linux/linux_mmap.c
  projects/netbsd-tests-upstream-01-2017/sys/compat/linux/linux_socket.h
  projects/netbsd-tests-upstream-01-2017/sys/conf/NOTES
  projects/netbsd-tests-upstream-01-2017/sys/conf/files
  projects/netbsd-tests-upstream-01-2017/sys/conf/files.amd64
  projects/netbsd-tests-upstream-01-2017/sys/conf/files.arm
  projects/netbsd-tests-upstream-01-2017/sys/conf/files.arm64
  projects/netbsd-tests-upstream-01-2017/sys/conf/files.i386
  projects/netbsd-tests-upstream-01-2017/sys/conf/files.mips
  projects/netbsd-tests-upstream-01-2017/sys/conf/files.powerpc
  projects/netbsd-tests-upstream-01-2017/sys/conf/files.riscv
  projects/netbsd-tests-upstream-01-2017/sys/conf/files.sparc64
  projects/netbsd-tests-upstream-01-2017/sys/conf/kern.opts.mk
  projects/netbsd-tests-upstream-01-2017/sys/conf/options
  projects/netbsd-tests-upstream-01-2017/sys/dev/cxgbe/t4_main.c
  projects/netbsd-tests-upstream-01-2017/sys/dev/cxgbe/tom/t4_connect.c
  projects/netbsd-tests-upstream-01-2017/sys/dev/cxgbe/tom/t4_listen.c
  projects/netbsd-tests-upstream-01-2017/sys/dev/cxgbe/tom/t4_tom.c
  projects/netbsd-tests-upstream-01-2017/sys/dev/cxgbe/tom/t4_tom.h
  projects/netbsd-tests-upstream-01-2017/sys/dev/gxemul/disk/gxemul_disk.c
  projects/netbsd-tests-upstream-01-2017/sys/dev/iwm/if_iwm.c
  projects/netbsd-tests-upstream-01-2017/sys/dev/iwm/if_iwm_mac_ctxt.c
  projects/netbsd-tests-upstream-01-2017/sys/dev/iwm/if_iwm_pcie_trans.c
  projects/netbsd-tests-upstream-01-2017/sys/dev/iwm/if_iwm_phy_ctxt.c
  projects/netbsd-tests-upstream-01-2017/sys/dev/iwm/if_iwm_phy_db.c
  projects/netbsd-tests-upstream-01-2017/sys/dev/iwm/if_iwm_phy_db.h
  projects/netbsd-tests-upstream-01-2017/sys/dev/iwm/if_iwm_scan.c
  projects/netbsd-tests-upstream-01-2017/sys/dev/iwm/if_iwm_util.c
  projects/netbsd-tests-upstream-01-2017/sys/dev/iwm/if_iwm_util.h
  projects/netbsd-tests-upstream-01-2017/sys/dev/iwm/if_iwmreg.h
  projects/netbsd-tests-upstream-01-2017/sys/dev/iwm/if_iwmvar.h
  projects/netbsd-tests-upstream-01-2017/sys/dev/usb/serial/uftdi.c
  projects/netbsd-tests-upstream-01-2017/sys/dev/usb/serial/usb_serial.c
  projects/netbsd-tests-upstream-01-2017/sys/dev/usb/serial/usb_serial.h
  projects/netbsd-tests-upstream-01-2017/sys/i386/linux/linux_dummy.c
  projects/netbsd-tests-upstream-01-2017/sys/i386/linux/linux_proto.h
  projects/netbsd-tests-upstream-01-2017/sys/i386/linux/linux_syscall.h
  projects/netbsd-tests-upstream-01-2017/sys/i386/linux/linux_syscalls.c
  projects/netbsd-tests-upstream-01-2017/sys/i386/linux/linux_sysent.c
  projects/netbsd-tests-upstream-01-2017/sys/i386/linux/linux_systrace_args.c
  projects/netbsd-tests-upstream-01-2017/sys/i386/linux/syscalls.master
  projects/netbsd-tests-upstream-01-2017/sys/kern/kern_cpuset.c
  projects/netbsd-tests-upstream-01-2017/sys/kern/kern_mutex.c
  projects/netbsd-tests-upstream-01-2017/sys/kern/kern_rwlock.c
  projects/netbsd-tests-upstream-01-2017/sys/kern/kern_sx.c
  projects/netbsd-tests-upstream-01-2017/sys/kern/subr_intr.c
  projects/netbsd-tests-upstream-01-2017/sys/kern/vfs_mountroot.c
  projects/netbsd-tests-upstream-01-2017/sys/kern/vfs_subr.c
  projects/netbsd-tests-upstream-01-2017/sys/mips/include/atomic.h
  projects/netbsd-tests-upstream-01-2017/sys/modules/Makefile
  projects/netbsd-tests-upstream-01-2017/sys/modules/iwm/Makefile
  projects/netbsd-tests-upstream-01-2017/sys/net/pfkeyv2.h
  projects/netbsd-tests-upstream-01-2017/sys/netinet/in_pcb.c
  projects/netbsd-tests-upstream-01-2017/sys/netinet/in_proto.c
  projects/netbsd-tests-upstream-01-2017/sys/netinet/ip_input.c
  projects/netbsd-tests-upstream-01-2017/sys/netinet/ip_output.c
  projects/netbsd-tests-upstream-01-2017/sys/netinet/raw_ip.c
  projects/netbsd-tests-upstream-01-2017/sys/netinet/sctp_input.c
  projects/netbsd-tests-upstream-01-2017/sys/netinet/sctp_os_bsd.h
  projects/netbsd-tests-upstream-01-2017/sys/netinet/sctp_pcb.c
  projects/netbsd-tests-upstream-01-2017/sys/netinet/tcp_input.c
  projects/netbsd-tests-upstream-01-2017/sys/netinet/tcp_output.c
  projects/netbsd-tests-upstream-01-2017/sys/netinet/tcp_stacks/fastpath.c
  projects/netbsd-tests-upstream-01-2017/sys/netinet/tcp_subr.c
  projects/netbsd-tests-upstream-01-2017/sys/netinet/tcp_syncache.c
  projects/netbsd-tests-upstream-01-2017/sys/netinet/tcp_usrreq.c
  projects/netbsd-tests-upstream-01-2017/sys/netinet/tcp_var.h
  projects/netbsd-tests-upstream-01-2017/sys/netinet/udp.h
  projects/netbsd-tests-upstream-01-2017/sys/netinet/udp_usrreq.c
  projects/netbsd-tests-upstream-01-2017/sys/netinet6/in6.h
  projects/netbsd-tests-upstream-01-2017/sys/netinet6/in6_proto.c
  projects/netbsd-tests-upstream-01-2017/sys/netinet6/ip6_forward.c
  projects/netbsd-tests-upstream-01-2017/sys/netinet6/ip6_input.c
  projects/netbsd-tests-upstream-01-2017/sys/netinet6/ip6_output.c
  projects/netbsd-tests-upstream-01-2017/sys/netinet6/raw_ip6.c
  projects/netbsd-tests-upstream-01-2017/sys/netinet6/sctp6_usrreq.c
  projects/netbsd-tests-upstream-01-2017/sys/netinet6/udp6_usrreq.c
  projects/netbsd-tests-upstream-01-2017/sys/netipsec/ipsec.c
  projects/netbsd-tests-upstream-01-2017/sys/netipsec/ipsec.h
  projects/netbsd-tests-upstream-01-2017/sys/netipsec/ipsec6.h
  projects/netbsd-tests-upstream-01-2017/sys/netipsec/ipsec_input.c
  projects/netbsd-tests-upstream-01-2017/sys/netipsec/ipsec_mbuf.c
  projects/netbsd-tests-upstream-01-2017/sys/netipsec/ipsec_output.c
  projects/netbsd-tests-upstream-01-2017/sys/netipsec/key.c
  projects/netbsd-tests-upstream-01-2017/sys/netipsec/key.h
  projects/netbsd-tests-upstream-01-2017/sys/netipsec/key_debug.c
  projects/netbsd-tests-upstream-01-2017/sys/netipsec/key_debug.h
  projects/netbsd-tests-upstream-01-2017/sys/netipsec/keydb.h
  projects/netbsd-tests-upstream-01-2017/sys/netipsec/keysock.c
  projects/netbsd-tests-upstream-01-2017/sys/netipsec/xform.h
  projects/netbsd-tests-upstream-01-2017/sys/netipsec/xform_ah.c
  projects/netbsd-tests-upstream-01-2017/sys/netipsec/xform_esp.c
  projects/netbsd-tests-upstream-01-2017/sys/netipsec/xform_ipcomp.c
  projects/netbsd-tests-upstream-01-2017/sys/netipsec/xform_tcp.c
  projects/netbsd-tests-upstream-01-2017/sys/netpfil/ipfw/dn_heap.h
  projects/netbsd-tests-upstream-01-2017/sys/sys/lockstat.h
  projects/netbsd-tests-upstream-01-2017/sys/sys/mutex.h
  projects/netbsd-tests-upstream-01-2017/sys/sys/rwlock.h
  projects/netbsd-tests-upstream-01-2017/sys/sys/sdt.h
  projects/netbsd-tests-upstream-01-2017/sys/sys/sx.h
  projects/netbsd-tests-upstream-01-2017/sys/sys/syscallsubr.h
  projects/netbsd-tests-upstream-01-2017/sys/vm/vm_extern.h
  projects/netbsd-tests-upstream-01-2017/sys/vm/vm_mmap.c
  projects/netbsd-tests-upstream-01-2017/tools/tools/nanobsd/embedded/common
  projects/netbsd-tests-upstream-01-2017/usr.bin/Makefile
  projects/netbsd-tests-upstream-01-2017/usr.bin/enigma/enigma.1
  projects/netbsd-tests-upstream-01-2017/usr.bin/gzip/unxz.c
  projects/netbsd-tests-upstream-01-2017/usr.bin/netstat/inet.c
  projects/netbsd-tests-upstream-01-2017/usr.bin/sed/main.c
  projects/netbsd-tests-upstream-01-2017/usr.sbin/syslogd/syslogd.c
Directory Properties:
  projects/netbsd-tests-upstream-01-2017/   (props changed)
  projects/netbsd-tests-upstream-01-2017/contrib/netcat/   (props changed)
  projects/netbsd-tests-upstream-01-2017/sys/cddl/contrib/opensolaris/   (props changed)

Modified: projects/netbsd-tests-upstream-01-2017/ObsoleteFiles.inc
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/ObsoleteFiles.inc	Tue Feb  7 01:28:55 2017	(r313360)
+++ projects/netbsd-tests-upstream-01-2017/ObsoleteFiles.inc	Tue Feb  7 01:33:39 2017	(r313361)
@@ -38,6 +38,13 @@
 #   xargs -n1 | sort | uniq -d;
 # done
 
+# 20170206: remove bdes(1)
+OLD_FILES+=usr/bin/bdes
+OLD_FILES+=usr/lib/debug/usr/bin/bdes.debug
+OLD_FILES+=usr/share/man/man1/bdes.1.gz
+# 20170206: merged projects/ipsec
+OLD_FILES+=usr/include/netinet/ip_ipsec.h
+OLD_FILES+=usr/include/netinet6/ip6_ipsec.h
 # 20170128: remove pc98 support
 OLD_FILES+=usr/include/dev/ic/i8251.h
 OLD_FILES+=usr/include/dev/ic/i8255.h

Modified: projects/netbsd-tests-upstream-01-2017/bin/ed/ed.1
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/bin/ed/ed.1	Tue Feb  7 01:28:55 2017	(r313360)
+++ projects/netbsd-tests-upstream-01-2017/bin/ed/ed.1	Tue Feb  7 01:33:39 2017	(r313361)
@@ -1,5 +1,5 @@
 .\" $FreeBSD$
-.Dd October 2, 2016
+.Dd February 5, 2017
 .Dt ED 1
 .Os
 .Sh NAME
@@ -871,9 +871,6 @@ writes.
 If a newline alone is entered as the key, then encryption is
 turned off.
 Otherwise, echoing is disabled while a key is read.
-Encryption/decryption is done using the
-.Xr bdes 1
-algorithm.
 .It Pf (.+1)z n
 Scroll
 .Ar n
@@ -962,7 +959,6 @@ results in an error.
 If the command is entered a second time, it succeeds,
 but any changes to the buffer are lost.
 .Sh SEE ALSO
-.Xr bdes 1 ,
 .Xr sed 1 ,
 .Xr sh 1 ,
 .Xr vi 1 ,

Modified: projects/netbsd-tests-upstream-01-2017/contrib/netcat/netcat.c
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/contrib/netcat/netcat.c	Tue Feb  7 01:28:55 2017	(r313360)
+++ projects/netbsd-tests-upstream-01-2017/contrib/netcat/netcat.c	Tue Feb  7 01:33:39 2017	(r313361)
@@ -131,7 +131,7 @@ ssize_t drainbuf(int, unsigned char *, s
 ssize_t fillbuf(int, unsigned char *, size_t *);
 
 #ifdef IPSEC
-void	add_ipsec_policy(int, char *);
+void	add_ipsec_policy(int, int, char *);
 
 char	*ipsec_policy[2];
 #endif
@@ -642,12 +642,6 @@ remote_connect(const char *host, const c
 		if ((s = socket(res0->ai_family, res0->ai_socktype,
 		    res0->ai_protocol)) < 0)
 			continue;
-#ifdef IPSEC
-		if (ipsec_policy[0] != NULL)
-			add_ipsec_policy(s, ipsec_policy[0]);
-		if (ipsec_policy[1] != NULL)
-			add_ipsec_policy(s, ipsec_policy[1]);
-#endif
 
 		if (rtableid >= 0 && (setsockopt(s, SOL_SOCKET, SO_SETFIB,
 		    &rtableid, sizeof(rtableid)) == -1))
@@ -765,12 +759,7 @@ local_listen(char *host, char *port, str
 		ret = setsockopt(s, SOL_SOCKET, SO_REUSEPORT, &x, sizeof(x));
 		if (ret == -1)
 			err(1, NULL);
-#ifdef IPSEC
-		if (ipsec_policy[0] != NULL)
-			add_ipsec_policy(s, ipsec_policy[0]);
-		if (ipsec_policy[1] != NULL)
-			add_ipsec_policy(s, ipsec_policy[1]);
-#endif
+
 		if (FreeBSD_Oflag) {
 			if (setsockopt(s, IPPROTO_TCP, TCP_NOOPT,
 			    &FreeBSD_Oflag, sizeof(FreeBSD_Oflag)) == -1)
@@ -1235,6 +1224,12 @@ set_common_sockopts(int s, int af)
 		    &FreeBSD_Oflag, sizeof(FreeBSD_Oflag)) == -1)
 			err(1, "disable TCP options");
 	}
+#ifdef IPSEC
+	if (ipsec_policy[0] != NULL)
+		add_ipsec_policy(s, af, ipsec_policy[0]);
+	if (ipsec_policy[1] != NULL)
+		add_ipsec_policy(s, af, ipsec_policy[1]);
+#endif
 }
 
 int
@@ -1360,7 +1355,7 @@ help(void)
 
 #ifdef IPSEC
 void
-add_ipsec_policy(int s, char *policy)
+add_ipsec_policy(int s, int af, char *policy)
 {
 	char *raw;
 	int e;
@@ -1369,8 +1364,12 @@ add_ipsec_policy(int s, char *policy)
 	if (raw == NULL)
 		errx(1, "ipsec_set_policy `%s': %s", policy,
 		     ipsec_strerror());
-	e = setsockopt(s, IPPROTO_IP, IP_IPSEC_POLICY, raw,
-			ipsec_get_policylen(raw));
+	if (af == AF_INET)
+		e = setsockopt(s, IPPROTO_IP, IP_IPSEC_POLICY, raw,
+		    ipsec_get_policylen(raw));
+	if (af == AF_INET6)
+		e = setsockopt(s, IPPROTO_IPV6, IPV6_IPSEC_POLICY, raw,
+		    ipsec_get_policylen(raw));
 	if (e < 0)
 		err(1, "ipsec policy cannot be configured");
 	free(raw);

Modified: projects/netbsd-tests-upstream-01-2017/etc/devd.conf
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/etc/devd.conf	Tue Feb  7 01:28:55 2017	(r313360)
+++ projects/netbsd-tests-upstream-01-2017/etc/devd.conf	Tue Feb  7 01:33:39 2017	(r313361)
@@ -272,7 +272,7 @@ nomatch 10 {
 	match "bus" "pccard[0-9]+";
 	match "manufacturer" "0x1234";
 	match "product" "0x2323";
-	action "kldload if_deqna";
+	action "kldload -n if_deqna";
 };
 attach 10 {
 	device-name "deqna[0-9]+";

Modified: projects/netbsd-tests-upstream-01-2017/lib/libipsec/pfkey.c
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/lib/libipsec/pfkey.c	Tue Feb  7 01:28:55 2017	(r313360)
+++ projects/netbsd-tests-upstream-01-2017/lib/libipsec/pfkey.c	Tue Feb  7 01:33:39 2017	(r313361)
@@ -1776,21 +1776,17 @@ pfkey_align(msg, mhp)
 		case SADB_EXT_SPIRANGE:
 		case SADB_X_EXT_POLICY:
 		case SADB_X_EXT_SA2:
-		case SADB_X_EXT_SA_REPLAY:
-			mhp[ext->sadb_ext_type] = (caddr_t)ext;
-			break;
 		case SADB_X_EXT_NAT_T_TYPE:
 		case SADB_X_EXT_NAT_T_SPORT:
 		case SADB_X_EXT_NAT_T_DPORT:
-		/* case SADB_X_EXT_NAT_T_OA: is OAI */
 		case SADB_X_EXT_NAT_T_OAI:
 		case SADB_X_EXT_NAT_T_OAR:
 		case SADB_X_EXT_NAT_T_FRAG:
-			if (feature_present("ipsec_natt")) {
-				mhp[ext->sadb_ext_type] = (caddr_t)ext;
-				break;
-			}
-			/* FALLTHROUGH */
+		case SADB_X_EXT_SA_REPLAY:
+		case SADB_X_EXT_NEW_ADDRESS_SRC:
+		case SADB_X_EXT_NEW_ADDRESS_DST:
+			mhp[ext->sadb_ext_type] = (caddr_t)ext;
+			break;
 		default:
 			__ipsec_errcode = EIPSEC_INVAL_EXTTYPE;
 			return -1;

Modified: projects/netbsd-tests-upstream-01-2017/lib/libipsec/pfkey_dump.c
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/lib/libipsec/pfkey_dump.c	Tue Feb  7 01:28:55 2017	(r313360)
+++ projects/netbsd-tests-upstream-01-2017/lib/libipsec/pfkey_dump.c	Tue Feb  7 01:33:39 2017	(r313361)
@@ -220,6 +220,9 @@ pfkey_sadump(m)
 	struct sadb_ident *m_sid, *m_did;
 	struct sadb_sens *m_sens;
 	struct sadb_x_sa_replay *m_sa_replay;
+	struct sadb_x_nat_t_type *natt_type;
+	struct sadb_x_nat_t_port *natt_sport, *natt_dport;
+	struct sadb_address *natt_oai, *natt_oar;
 
 	/* check pfkey message. */
 	if (pfkey_align(m, mhp)) {
@@ -245,33 +248,46 @@ pfkey_sadump(m)
 	m_did = (struct sadb_ident *)mhp[SADB_EXT_IDENTITY_DST];
 	m_sens = (struct sadb_sens *)mhp[SADB_EXT_SENSITIVITY];
 	m_sa_replay = (struct sadb_x_sa_replay *)mhp[SADB_X_EXT_SA_REPLAY];
+	natt_type = (struct sadb_x_nat_t_type *)mhp[SADB_X_EXT_NAT_T_TYPE];
+	natt_sport = (struct sadb_x_nat_t_port *)mhp[SADB_X_EXT_NAT_T_SPORT];
+	natt_dport = (struct sadb_x_nat_t_port *)mhp[SADB_X_EXT_NAT_T_DPORT];
+	natt_oai = (struct sadb_address *)mhp[SADB_X_EXT_NAT_T_OAI];
+	natt_oar = (struct sadb_address *)mhp[SADB_X_EXT_NAT_T_OAR];
+
 
 	/* source address */
 	if (m_saddr == NULL) {
 		printf("no ADDRESS_SRC extension.\n");
 		return;
 	}
-	printf("%s ", str_ipaddr((struct sockaddr *)(m_saddr + 1)));
+	printf("%s", str_ipaddr((struct sockaddr *)(m_saddr + 1)));
+	if (natt_type != NULL && natt_sport != NULL)
+		printf("[%u]", ntohs(natt_sport->sadb_x_nat_t_port_port));
 
 	/* destination address */
 	if (m_daddr == NULL) {
-		printf("no ADDRESS_DST extension.\n");
+		printf("\nno ADDRESS_DST extension.\n");
 		return;
 	}
-	printf("%s ", str_ipaddr((struct sockaddr *)(m_daddr + 1)));
+	printf(" %s", str_ipaddr((struct sockaddr *)(m_daddr + 1)));
+	if (natt_type != NULL && natt_dport != NULL)
+		printf("[%u]", ntohs(natt_dport->sadb_x_nat_t_port_port));
 
 	/* SA type */
 	if (m_sa == NULL) {
-		printf("no SA extension.\n");
+		printf("\nno SA extension.\n");
 		return;
 	}
 	if (m_sa2 == NULL) {
-		printf("no SA2 extension.\n");
+		printf("\nno SA2 extension.\n");
 		return;
 	}
 	printf("\n\t");
 
-	GETMSGSTR(str_satype, m->sadb_msg_satype);
+	if (m->sadb_msg_satype == SADB_SATYPE_ESP && natt_type != NULL)
+		printf("esp-udp ");
+	else
+		GETMSGSTR(str_satype, m->sadb_msg_satype);
 
 	printf("mode=");
 	GETMSGSTR(str_mode, m_sa2->sadb_x_sa2_mode);
@@ -282,6 +298,18 @@ pfkey_sadump(m)
 		(u_int32_t)m_sa2->sadb_x_sa2_reqid,
 		(u_int32_t)m_sa2->sadb_x_sa2_reqid);
 
+	/* other NAT-T information */
+	if (natt_type != NULL && (natt_oai != NULL || natt_oar != NULL)) {
+		printf("\tNAT:");
+		if (natt_oai != NULL)
+			printf(" OAI=%s",
+			    str_ipaddr((struct sockaddr *)(natt_oai + 1)));
+		if (natt_oar != NULL)
+			printf(" OAR=%s",
+			    str_ipaddr((struct sockaddr *)(natt_oar + 1)));
+		printf("\n");
+	}
+
 	/* encryption key */
 	if (m->sadb_msg_satype == SADB_X_SATYPE_IPCOMP) {
 		printf("\tC: ");

Modified: projects/netbsd-tests-upstream-01-2017/lib/libstand/stand.h
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/lib/libstand/stand.h	Tue Feb  7 01:28:55 2017	(r313360)
+++ projects/netbsd-tests-upstream-01-2017/lib/libstand/stand.h	Tue Feb  7 01:33:39 2017	(r313361)
@@ -168,6 +168,7 @@ struct devdesc
 #define DEVT_NET	2
 #define DEVT_CD		3
 #define DEVT_ZFS	4
+#define DEVT_FD		5
     int			d_unit;
     void		*d_opendata;
 };

Modified: projects/netbsd-tests-upstream-01-2017/sbin/ifconfig/Makefile
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/sbin/ifconfig/Makefile	Tue Feb  7 01:28:55 2017	(r313360)
+++ projects/netbsd-tests-upstream-01-2017/sbin/ifconfig/Makefile	Tue Feb  7 01:33:39 2017	(r313361)
@@ -34,6 +34,7 @@ SRCS+=	ifvlan.c		# SIOC[GS]ETVLAN suppor
 SRCS+=	ifvxlan.c		# VXLAN support
 SRCS+=	ifgre.c			# GRE keys etc
 SRCS+=	ifgif.c			# GIF reversed header workaround
+SRCS+=	ifipsec.c		# IPsec VTI
 
 SRCS+=	sfp.c			# SFP/SFP+ information
 LIBADD+=	m

Copied: projects/netbsd-tests-upstream-01-2017/sbin/ifconfig/ifipsec.c (from r313360, head/sbin/ifconfig/ifipsec.c)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/netbsd-tests-upstream-01-2017/sbin/ifconfig/ifipsec.c	Tue Feb  7 01:33:39 2017	(r313361, copy of r313360, head/sbin/ifconfig/ifipsec.c)
@@ -0,0 +1,101 @@
+/*-
+ * Copyright (c) 2016 Yandex LLC
+ * Copyright (c) 2016 Andrey V. Elsukov <ae@FreeBSD.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/param.h>
+#include <sys/ioctl.h>
+#include <sys/socket.h>
+#include <sys/sockio.h>
+#include <sys/stdint.h>
+
+#include <stdlib.h>
+#include <unistd.h>
+
+#include <net/ethernet.h>
+#include <net/if.h>
+#include <net/if_ipsec.h>
+#include <net/route.h>
+
+#include <ctype.h>
+#include <stdio.h>
+#include <string.h>
+#include <err.h>
+#include <errno.h>
+
+#include "ifconfig.h"
+
+static void
+ipsec_status(int s)
+{
+	uint32_t reqid;
+
+	ifr.ifr_data = (caddr_t)&reqid;
+	if (ioctl(s, IPSECGREQID, &ifr) == -1)
+		return;
+	printf("\treqid: %u\n", reqid);
+}
+
+static
+DECL_CMD_FUNC(setreqid, val, arg)
+{
+	char *ep;
+	uint32_t v;
+
+	v = strtoul(val, &ep, 0);
+	if (*ep != '\0') {
+		warn("Invalid reqid value %s", val);
+		return;
+	}
+	ifr.ifr_data = (char *)&v;
+	if (ioctl(s, IPSECSREQID, &ifr) == -1) {
+		warn("ioctl(IPSECSREQID)");
+		return;
+	}
+}
+
+static struct cmd ipsec_cmds[] = {
+	DEF_CMD_ARG("reqid",		setreqid),
+};
+
+static struct afswtch af_ipsec = {
+	.af_name	= "af_ipsec",
+	.af_af		= AF_UNSPEC,
+	.af_other_status = ipsec_status,
+};
+
+static __constructor void
+ipsec_ctor(void)
+{
+	size_t i;
+
+	for (i = 0; i < nitems(ipsec_cmds); i++)
+		cmd_register(&ipsec_cmds[i]);
+	af_register(&af_ipsec);
+#undef N
+}

Modified: projects/netbsd-tests-upstream-01-2017/sbin/kldload/kldload.c
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/sbin/kldload/kldload.c	Tue Feb  7 01:28:55 2017	(r313360)
+++ projects/netbsd-tests-upstream-01-2017/sbin/kldload/kldload.c	Tue Feb  7 01:33:39 2017	(r313361)
@@ -41,9 +41,6 @@ __FBSDID("$FreeBSD$");
 
 #define	PATHCTL	"kern.module_path"
 
-static int	path_check(const char *, int);
-static void	usage(void);
-
 /*
  * Check to see if the requested module is specified as a filename with no
  * path.  If so and if a file by the same name exists in the module path,
@@ -52,43 +49,37 @@ static void	usage(void);
 static int
 path_check(const char *kldname, int quiet)
 {
-	int	mib[5], found;
-	size_t	miblen, pathlen;
-	char	kldpath[MAXPATHLEN];
 	char	*path, *tmppath, *element;
 	struct	stat sb;
+	int	mib[5];
+	char	kldpath[MAXPATHLEN];
+	size_t	miblen, pathlen;
 	dev_t	dev;
 	ino_t	ino;
+	int	found;
 
-	if (strchr(kldname, '/') != NULL) {
+	if (strchr(kldname, '/') != NULL)
 		return (0);
-	}
-	if (strstr(kldname, ".ko") == NULL) {
+	if (strstr(kldname, ".ko") == NULL)
 		return (0);
-	}
-	if (stat(kldname, &sb) != 0) {
+	if (stat(kldname, &sb) != 0)
 		return (0);
-	}
 
 	found = 0;
 	dev = sb.st_dev;
 	ino = sb.st_ino;
 
 	miblen = nitems(mib);
-	if (sysctlnametomib(PATHCTL, mib, &miblen) != 0) {
+	if (sysctlnametomib(PATHCTL, mib, &miblen) != 0)
 		err(1, "sysctlnametomib(%s)", PATHCTL);
-	}
-	if (sysctl(mib, miblen, NULL, &pathlen, NULL, 0) == -1) {
+	if (sysctl(mib, miblen, NULL, &pathlen, NULL, 0) == -1)
 		err(1, "getting path: sysctl(%s) - size only", PATHCTL);
-	}
 	path = malloc(pathlen + 1);
-	if (path == NULL) {
+	if (path == NULL)
 		err(1, "allocating %lu bytes for the path",
 		    (unsigned long)pathlen + 1);
-	}
-	if (sysctl(mib, miblen, path, &pathlen, NULL, 0) == -1) {
+	if (sysctl(mib, miblen, path, &pathlen, NULL, 0) == -1)
 		err(1, "getting path: sysctl(%s)", PATHCTL);
-	}
 	tmppath = path;
 
 	while ((element = strsep(&tmppath, ";")) != NULL) {
@@ -97,39 +88,36 @@ path_check(const char *kldname, int quie
 			strlcat(kldpath, "/", MAXPATHLEN);
 		}
 		strlcat(kldpath, kldname, MAXPATHLEN);
-				
-		if (stat(kldpath, &sb) == -1) {
+
+		if (stat(kldpath, &sb) == -1)
 			continue;
-		}	
 
 		found = 1;
 
 		if (sb.st_dev != dev || sb.st_ino != ino) {
-			if (!quiet) {
+			if (!quiet)
 				warnx("%s will be loaded from %s, not the "
 				    "current directory", kldname, element);
-			}
 			break;
-		} else if (sb.st_dev == dev && sb.st_ino == ino) {
+		} else if (sb.st_dev == dev && sb.st_ino == ino)
 			break;
-		}
 	}
 
 	free(path);
-	
+
 	if (!found) {
-		if (!quiet) {
+		if (!quiet)
 			warnx("%s is not in the module path", kldname);
-		}
 		return (-1);
 	}
-	
+
 	return (0);
 }
 
 static void
 usage(void)
 {
+
 	fprintf(stderr, "usage: kldload [-nqv] file ...\n");
 	exit(1);
 }
@@ -138,17 +126,17 @@ int
 main(int argc, char** argv)
 {
 	int c;
+	int check_loaded;
 	int errors;
 	int fileid;
-	int verbose;
 	int quiet;
-	int check_loaded;
+	int verbose;
 
 	errors = 0;
 	verbose = 0;
 	quiet = 0;
 	check_loaded = 0;
-    
+
 	while ((c = getopt(argc, argv, "nqv")) != -1) {
 		switch (c) {
 		case 'q':
@@ -204,9 +192,8 @@ main(int argc, char** argv)
 					printf("Loaded %s, id=%d\n", argv[0],
 					    fileid);
 			}
-		} else {
+		} else
 			errors++;
-		}
 		argv++;
 	}
 

Modified: projects/netbsd-tests-upstream-01-2017/sbin/setkey/setkey.8
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/sbin/setkey/setkey.8	Tue Feb  7 01:28:55 2017	(r313360)
+++ projects/netbsd-tests-upstream-01-2017/sbin/setkey/setkey.8	Tue Feb  7 01:33:39 2017	(r313361)
@@ -29,7 +29,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd October 3, 2016
+.Dd February 6, 2017
 .Dt SETKEY 8
 .Os
 .\"
@@ -270,8 +270,6 @@ must be a decimal number, or a hexadecim
 prefix.
 SPI values between 0 and 255 are reserved for future use by IANA
 and they cannot be used.
-TCP-MD5 associations must use 0x1000 and therefore only have per-host
-granularity at this time.
 .\"
 .Pp
 .It Ar extensions

Modified: projects/netbsd-tests-upstream-01-2017/secure/usr.bin/Makefile
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/secure/usr.bin/Makefile	Tue Feb  7 01:28:55 2017	(r313360)
+++ projects/netbsd-tests-upstream-01-2017/secure/usr.bin/Makefile	Tue Feb  7 01:33:39 2017	(r313361)
@@ -4,7 +4,7 @@
 
 SUBDIR=
 .if ${MK_OPENSSL} != "no"
-SUBDIR+=bdes openssl
+SUBDIR+=openssl
 .if ${MK_OPENSSH} != "no"
 SUBDIR+=scp sftp ssh ssh-add ssh-agent ssh-keygen ssh-keyscan
 .endif

Modified: projects/netbsd-tests-upstream-01-2017/share/man/man4/Makefile
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/share/man/man4/Makefile	Tue Feb  7 01:28:55 2017	(r313360)
+++ projects/netbsd-tests-upstream-01-2017/share/man/man4/Makefile	Tue Feb  7 01:33:39 2017	(r313361)
@@ -201,6 +201,7 @@ MAN=	aac.4 \
 	icmp.4 \
 	icmp6.4 \
 	ida.4 \
+	if_ipsec.4 \
 	ifmib.4 \
 	ig4.4 \
 	igb.4 \

Modified: projects/netbsd-tests-upstream-01-2017/share/man/man4/cxgbe.4
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/share/man/man4/cxgbe.4	Tue Feb  7 01:28:55 2017	(r313360)
+++ projects/netbsd-tests-upstream-01-2017/share/man/man4/cxgbe.4	Tue Feb  7 01:33:39 2017	(r313361)
@@ -167,6 +167,10 @@ Tunables can be set at the
 .Xr loader 8
 prompt before booting the kernel or stored in
 .Xr loader.conf 5 .
+There are multiple tunables that control the number of queues of various
+types.
+A negative value for such a tunable instructs the driver to create
+up to that many queues if there are enough CPU cores available.
 .Bl -tag -width indent
 .It Va hw.cxgbe.ntxq10g
 Number of tx queues used for a 10Gb or higher-speed port.

Copied: projects/netbsd-tests-upstream-01-2017/share/man/man4/if_ipsec.4 (from r313360, head/share/man/man4/if_ipsec.4)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/netbsd-tests-upstream-01-2017/share/man/man4/if_ipsec.4	Tue Feb  7 01:33:39 2017	(r313361, copy of r313360, head/share/man/man4/if_ipsec.4)
@@ -0,0 +1,141 @@
+.\" Copyright (c) 2017 Andrey V. Elsukov <ae@FreeBSD.org>
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd February 6, 2017
+.Dt if_ipsec 4
+.Os
+.Sh NAME
+.Nm if_ipsec
+.Nd IPsec virtual tunneling interface
+.Sh SYNOPSIS
+The
+.Cm if_ipsec
+network interface is a part of the
+.Fx
+IPsec implementation.
+To compile it into the kernel, place this line in the kernel
+configuration file:
+.Bd -ragged -offset indent
+.Cd "options IPSEC"
+.Ed
+.Pp
+It can also be loaded as part of the
+.Cm ipsec
+kernel module if the kernel was compiled with
+.Bd -ragged -offset indent
+.Cd "options IPSEC_SUPPORT"
+.Ed
+.Sh DESCRIPTION
+The
+.Nm
+network interface is targeted for creating route-based VPNs.
+It can tunnel IPv4 and IPv6 traffic over either IPv4 or IPv6 and secure
+it with ESP.
+.Pp
+.Nm
+interfaces are dynamically created and destroyed with the
+.Xr ifconfig 8
+.Cm create
+and
+.Cm destroy
+subcommands.
+The administrator must configure IPsec
+.Cm tunnel
+endpoint addresses.
+These addresses will be used for the outer IP header of ESP packets.
+The administrator can also configure the protocol and addresses for the inner
+IP header with
+.Xr ifconfig 8 ,
+and modify the routing table to route the packets through the
+.Nm
+interface.
+.Pp
+When the
+.Nm
+interface is configured, it automatically creates special security policies.
+These policies can be used to acquire security associations from the IKE daemon,
+which are needed for establishing an IPsec tunnel.
+It is also possible to create needed security associations manually with the
+.Xr setkey 8
+utility.
+.Pp
+Each
+.Nm
+interface has an additional numeric configuration option
+.Cm reqid Ar id .
+This
+.Ar id
+is used to distinguish traffic and security policies between several
+.Nm
+interfaces.
+The
+.Cm reqid
+can be specified on interface creation and changed later.
+If not specified, it is automatically assigned.
+Note that changing
+.Cm reqid
+will lead to generation of new security policies, and this
+may require creating new security associations.
+.Sh EXAMPLES
+The example below shows manual configuration of an IPsec tunnel
+between two FreeBSD hosts.
+Host A has the IP address 192.168.0.3, and host B has the IP address
+192.168.0.5.
+.Pp
+On host A:
+.Bd -literal -offset indent
+ifconfig ipsec0 create reqid 100
+ifconfig ipsec0 inet tunnel 192.168.0.3 192.168.0.5
+ifconfig ipsec0 inet 172.16.0.3/16 172.16.0.5
+setkey -c
+add 192.168.0.3 192.168.0.5 esp 10000 -m tunnel -u 100 -E rijndael-cbc "VerySecureKey!!1";
+add 192.168.0.5 192.168.0.3 esp 10001 -m tunnel -u 100 -E rijndael-cbc "VerySecureKey!!2";
+^D
+.Ed
+.Pp
+On host B:
+.Bd -literal -offset indent
+ifconfig ipsec0 create reqid 200
+ifconfig ipsec0 inet tunnel 192.168.0.5 192.168.0.3
+ifconfig ipsec0 inet 172.16.0.5/16 172.16.0.3
+setkey -c
+add 192.168.0.3 192.168.0.5 esp 10000 -m tunnel -u 200 -E rijndael-cbc "VerySecureKey!!1";
+add 192.168.0.5 192.168.0.3 esp 10001 -m tunnel -u 200 -E rijndael-cbc "VerySecureKey!!2";
+^D
+.Ed
+.Pp
+Note the value 100 on host A and value 200 on host B are used as reqid.
+The same value must be used as identifier of the policy entry in the
+.Xr setkey 8
+command.
+.Sh SEE ALSO
+.Xr gif 4 ,
+.Xr gre 4 ,
+.Xr ipsec 4 ,
+.Xr ifconfig 8 ,
+.Xr setkey 8
+.Sh AUTHORS
+.An Andrey V. Elsukov Aq Mt ae@FreeBSD.org

Modified: projects/netbsd-tests-upstream-01-2017/share/man/man4/ipsec.4
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/share/man/man4/ipsec.4	Tue Feb  7 01:28:55 2017	(r313360)
+++ projects/netbsd-tests-upstream-01-2017/share/man/man4/ipsec.4	Tue Feb  7 01:33:39 2017	(r313361)
@@ -29,7 +29,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd November 29, 2009
+.Dd February 6, 2017
 .Dt IPSEC 4
 .Os
 .Sh NAME
@@ -37,6 +37,7 @@
 .Nd Internet Protocol Security protocol
 .Sh SYNOPSIS
 .Cd "options IPSEC"
+.Cd "options IPSEC_SUPPORT"
 .Cd "device crypto"
 .Pp
 .In sys/types.h
@@ -151,6 +152,16 @@ Refer to
 .Xr setkey 8
 on how to use it.
 .Pp
+Depending on the socket's address family, IPPROTO_IP or IPPROTO_IPV6
+transport level and IP_IPSEC_POLICY or IPV6_IPSEC_POLICY socket options
+may be used to configure per-socket security policies.
+A properly-formed IPsec policy specification structure can be
+created using
+.Xr ipsec_set_policy 3
+function and used as socket option value for the
+.Xr setsockopt 2
+call.
+.Pp
 When setting policies using the
 .Xr setkey 8
 command, the
@@ -228,6 +239,8 @@ for tweaking the kernel's IPsec behavior
 .It "net.inet.ipsec.dfbit	integer	yes"
 .It "net.inet.ipsec.ecn	integer	yes"
 .It "net.inet.ipsec.debug	integer	yes"
+.It "net.inet.ipsec.natt_cksum_policy	integer	yes"
+.It "net.inet.ipsec.check_policy_history	integer	yes"
 .It "net.inet6.ipsec6.ecn	integer	yes"
 .It "net.inet6.ipsec6.debug	integer	yes"
 .El
@@ -270,6 +283,23 @@ talks more about the behavior.
 .It Li ipsec.debug
 If set to non-zero, debug messages will be generated via
 .Xr syslog 3 .
+.It Li ipsec.natt_cksum_policy
+Controls how the kernel handles TCP and UDP checksums when ESP in UDP
+encapsulation is used for IPsec transport mode.
+If set to a non-zero value, the kernel fully recomputes checksums for
+inbound TCP segments and UDP datagrams after they are decapsulated and
+decrypted.
+If set to 0 and original addresses were configured for corresponding SA
+by the IKE daemon, the kernel incrementally recomputes checksums for
+inbound TCP segments and UDP datagrams.
+If addresses were not configured, the checksums are ignored.
+.It Li ipsec.check_policy_history
+Enables strict policy checking for inbound packets.
+By default, inbound security policies check that packets handled by IPsec
+have been decrypted and authenticated.
+If this variable is set to a non-zero value, each packet handled by IPsec
+is checked against the history of IPsec security associations.
+The IPsec security protocol, mode, and SA addresses must match.
 .El
 .Pp
 Variables under the
@@ -305,6 +335,7 @@ routines from looking into the IP payloa
 .Xr ipsec_set_policy 3 ,
 .Xr crypto 4 ,
 .Xr enc 4 ,
+.Xr if_ipsec 4 ,
 .Xr icmp6 4 ,
 .Xr intro 4 ,
 .Xr ip6 4 ,

Modified: projects/netbsd-tests-upstream-01-2017/share/man/man4/tcp.4
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/share/man/man4/tcp.4	Tue Feb  7 01:28:55 2017	(r313360)
+++ projects/netbsd-tests-upstream-01-2017/share/man/man4/tcp.4	Tue Feb  7 01:33:39 2017	(r313361)
@@ -34,7 +34,7 @@
 .\"     From: @(#)tcp.4	8.1 (Berkeley) 6/5/93
 .\" $FreeBSD$
 .\"
-.Dd Jan 29, 2017
+.Dd February 6, 2017
 .Dt TCP 4
 .Os
 .Sh NAME
@@ -272,33 +272,27 @@ or the internal send buffer is filled.
 This option enables the use of MD5 digests (also known as TCP-MD5)
 on writes to the specified socket.
 Outgoing traffic is digested;
-digests on incoming traffic are verified if the
-.Va net.inet.tcp.signature_verify_input
-sysctl is nonzero.
-The current default behavior for the system is to respond to a system
-advertising this option with TCP-MD5; this may change.
+digests on incoming traffic are verified.
+When this option is enabled on a socket, all inbound and outgoing
+TCP segments must be signed with MD5 digests.
 .Pp
 One common use for this in a
 .Fx
 router deployment is to enable
 based routers to interwork with Cisco equipment at peering points.
 Support for this feature conforms to RFC 2385.
-Only IPv4
-.Pq Dv AF_INET
-sessions are supported.
 .Pp
 In order for this option to function correctly, it is necessary for the
 administrator to add a tcp-md5 key entry to the system's security
 associations database (SADB) using the
 .Xr setkey 8
 utility.
-This entry must have an SPI of 0x1000 and can therefore only be specified
-on a per-host basis at this time.
+This entry can only be specified on a per-host basis at this time.
 .Pp
-If an SADB entry cannot be found for the destination, the outgoing traffic
-will have an invalid digest option prepended, and the following error message
-will be visible on the system console:
-.Em "tcp_signature_compute: SADB lookup failed for %d.%d.%d.%d" .
+If an SADB entry cannot be found for the destination,
+the system does not send any outgoing segments and drops any inbound segments.
+.Pp
+Each dropped segment is taken into account in the TCP protocol statistics.
 .El
 .Pp
 The option level for the

Modified: projects/netbsd-tests-upstream-01-2017/share/man/man4/udp.4
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/share/man/man4/udp.4	Tue Feb  7 01:28:55 2017	(r313360)
+++ projects/netbsd-tests-upstream-01-2017/share/man/man4/udp.4	Tue Feb  7 01:33:39 2017	(r313361)
@@ -28,7 +28,7 @@
 .\"     @(#)udp.4	8.1 (Berkeley) 6/5/93
 .\" $FreeBSD$
 .\"
-.Dd June 5, 1993
+.Dd February 6, 2017
 .Dt UDP 4
 .Os
 .Sh NAME
@@ -99,6 +99,17 @@ transport level may be used with
 .Tn UDP ;
 see
 .Xr ip 4 .
+.Tn UDP_ENCAP
+socket option may be used at the
+.Tn IPPROTO_UDP
+level to encapsulate
+.Tn ESP
+packets in
+.Tn UDP .
+Only one value is supported for this option:
+.Tn UDP_ENCAP_ESPINUDP
+from RFC 3948, defined in
+.In netinet/udp.h .
 .Sh MIB VARIABLES
 The
 .Nm
@@ -158,7 +169,8 @@ exists.
 .Xr blackhole 4 ,
 .Xr inet 4 ,
 .Xr intro 4 ,
-.Xr ip 4
+.Xr ip 4 ,
+.Xr udplite 4
 .Sh HISTORY
 The
 .Nm

Modified: projects/netbsd-tests-upstream-01-2017/sys/amd64/linux/linux_dummy.c
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/sys/amd64/linux/linux_dummy.c	Tue Feb  7 01:28:55 2017	(r313360)
+++ projects/netbsd-tests-upstream-01-2017/sys/amd64/linux/linux_dummy.c	Tue Feb  7 01:33:39 2017	(r313361)
@@ -82,41 +82,86 @@ DUMMY(mq_timedreceive);
 DUMMY(mq_notify);
 DUMMY(mq_getsetattr);
 DUMMY(kexec_load);
+/* linux 2.6.11: */
 DUMMY(add_key);
 DUMMY(request_key);
 DUMMY(keyctl);
+/* linux 2.6.13: */
 DUMMY(ioprio_set);
 DUMMY(ioprio_get);
 DUMMY(inotify_init);
 DUMMY(inotify_add_watch);
 DUMMY(inotify_rm_watch);
+/* linux 2.6.16: */
 DUMMY(migrate_pages);
 DUMMY(unshare);
+/* linux 2.6.17: */
 DUMMY(splice);
 DUMMY(tee);
 DUMMY(sync_file_range);
 DUMMY(vmsplice);
+/* linux 2.6.18: */
 DUMMY(move_pages);
+/* linux 2.6.22: */
 DUMMY(signalfd);
-DUMMY(timerfd);
+DUMMY(timerfd_create);
+/* linux 2.6.25: */
 DUMMY(timerfd_settime);
 DUMMY(timerfd_gettime);
+/* linux 2.6.27: */
 DUMMY(signalfd4);
 DUMMY(inotify_init1);
+/* linux 2.6.30: */
 DUMMY(preadv);
 DUMMY(pwritev);
-DUMMY(rt_tsigqueueinfo);
+/* linux 2.6.31: */
+DUMMY(rt_tgsigqueueinfo);
 DUMMY(perf_event_open);
+/* linux 2.6.38: */
 DUMMY(fanotify_init);
 DUMMY(fanotify_mark);
+/* linux 2.6.39: */
 DUMMY(name_to_handle_at);
 DUMMY(open_by_handle_at);
 DUMMY(clock_adjtime);
+/* linux 3.0: */
 DUMMY(setns);
+DUMMY(getcpu);
+/* linux 3.2: */
 DUMMY(process_vm_readv);
 DUMMY(process_vm_writev);
+/* linux 3.5: */
 DUMMY(kcmp);
+/* linux 3.8: */
 DUMMY(finit_module);
+DUMMY(sched_setattr);
+DUMMY(sched_getattr);
+/* linux 3.14: */
+DUMMY(renameat2);
+/* linux 3.15: */
+DUMMY(seccomp);
+DUMMY(getrandom);
+DUMMY(memfd_create);
+DUMMY(kexec_file_load);
+/* linux 3.18: */
+DUMMY(bpf);
+/* linux 3.19: */
+DUMMY(execveat);
+/* linux 4.2: */
+DUMMY(userfaultfd);
+/* linux 4.3: */
+DUMMY(membarrier);
+/* linux 4.4: */
+DUMMY(mlock2);
+/* linux 4.5: */
+DUMMY(copy_file_range);
+/* linux 4.6: */
+DUMMY(preadv2);
+DUMMY(pwritev2);
+/* linux 4.8: */
+DUMMY(pkey_mprotect);
+DUMMY(pkey_alloc);
+DUMMY(pkey_free);
 
 #define DUMMY_XATTR(s)						\
 int								\

Modified: projects/netbsd-tests-upstream-01-2017/sys/amd64/linux/linux_proto.h
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/sys/amd64/linux/linux_proto.h	Tue Feb  7 01:28:55 2017	(r313360)
+++ projects/netbsd-tests-upstream-01-2017/sys/amd64/linux/linux_proto.h	Tue Feb  7 01:33:39 2017	(r313361)
@@ -3,7 +3,7 @@
  *
  * DO NOT EDIT-- this file is automatically generated.
  * $FreeBSD$
- * created from FreeBSD: head/sys/amd64/linux/syscalls.master 302515 2016-07-10 08:15:50Z dchagin 
+ * created from FreeBSD: head/sys/amd64/linux/syscalls.master 313284 2017-02-05 14:17:09Z dchagin
  */
 
 #ifndef _LINUX_SYSPROTO_H_
@@ -1000,7 +1000,7 @@ struct linux_epoll_pwait_args {
 struct linux_signalfd_args {
 	register_t dummy;
 };
-struct linux_timerfd_args {
+struct linux_timerfd_create_args {
 	register_t dummy;
 };
 struct linux_eventfd_args {
@@ -1044,16 +1044,27 @@ struct linux_pipe2_args {
 	char flags_l_[PADL_(l_int)]; l_int flags; char flags_r_[PADR_(l_int)];
 };
 struct linux_inotify_init1_args {
-	register_t dummy;
+	char flags_l_[PADL_(l_int)]; l_int flags; char flags_r_[PADR_(l_int)];
 };
 struct linux_preadv_args {
-	register_t dummy;

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

From owner-svn-src-projects@freebsd.org  Tue Feb  7 02:00:15 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id B8D81CD3BF1
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Tue,  7 Feb 2017 02:00:15 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 6E879BB6;
 Tue,  7 Feb 2017 02:00:15 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1720EU4000141;
 Tue, 7 Feb 2017 02:00:14 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1720EcZ000140;
 Tue, 7 Feb 2017 02:00:14 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201702070200.v1720EcZ000140@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Tue, 7 Feb 2017 02:00:14 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r313372 -
 projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/stdlib
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 07 Feb 2017 02:00:15 -0000

Author: ngie
Date: Tue Feb  7 02:00:14 2017
New Revision: 313372
URL: https://svnweb.freebsd.org/changeset/base/313372

Log:
  Uncomment more of the hsearch_r testcases
  
  Call hdestroy/hdestroy_r on FreeBSD instead of hdestroy(1?)(_r).
  
  All but hdestroy_r_nonexistent pass as-is.

Modified:
  projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/stdlib/t_hsearch.c

Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/stdlib/t_hsearch.c
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/stdlib/t_hsearch.c	Tue Feb  7 01:58:02 2017	(r313371)
+++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/stdlib/t_hsearch.c	Tue Feb  7 02:00:14 2017	(r313372)
@@ -75,7 +75,6 @@ __RCSID("$NetBSD: t_hsearch.c,v 1.4 2014
 
 #define REQUIRE_ERRNO(x) ATF_REQUIRE_MSG(x, "%s", strerror(errno))
 
-#ifdef __NetBSD__
 ATF_TC(hsearch_basic);
 ATF_TC_HEAD(hsearch_basic, tc)
 {
@@ -122,9 +121,12 @@ ATF_TC_BODY(hsearch_basic, tc)
 		ATF_REQUIRE_EQ((intptr_t)ep->data, i);
 	}
 
+#ifdef __NetBSD__
 	hdestroy1(free, NULL);
-}
+#else
+	hdestroy();
 #endif
+}
 
 ATF_TC(hsearch_duplicate);
 ATF_TC_HEAD(hsearch_duplicate, tc)
@@ -232,7 +234,6 @@ ATF_TC_BODY(hsearch_two, tc)
 }
 
 #if defined(__FreeBSD__) && 1100027 <= __FreeBSD_version
-#ifdef __NetBSD__
 ATF_TC(hsearch_r_basic);
 ATF_TC_HEAD(hsearch_r_basic, tc)
 {
@@ -278,7 +279,11 @@ ATF_TC_BODY(hsearch_r_basic, tc)
 		ATF_REQUIRE_EQ((intptr_t)ep->data, i);
 	}
 
+#ifdef __NetBSD__
 	hdestroy1_r(&t, free, NULL);
+#else
+	hdestroy_r(&t);
+#endif
 }
 #endif
 
@@ -386,22 +391,17 @@ ATF_TC_BODY(hsearch_r_two, tc)
 
 	hdestroy_r(&t);
 }
-#endif
 
 ATF_TP_ADD_TCS(tp)
 {
 
-#ifdef __NetBSD__
 	ATF_TP_ADD_TC(tp, hsearch_basic);
-#endif
 	ATF_TP_ADD_TC(tp, hsearch_duplicate);
 	ATF_TP_ADD_TC(tp, hsearch_nonexistent);
 	ATF_TP_ADD_TC(tp, hsearch_two);
- 
+
 #if defined(__FreeBSD__) && 1100027 <= __FreeBSD_version
-#ifdef __NetBSD__
 	ATF_TP_ADD_TC(tp, hsearch_r_basic);
-#endif
 	ATF_TP_ADD_TC(tp, hsearch_r_duplicate);
 	ATF_TP_ADD_TC(tp, hsearch_r_nonexistent);
 	ATF_TP_ADD_TC(tp, hsearch_r_two);

From owner-svn-src-projects@freebsd.org  Tue Feb  7 02:57:13 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1124CCD42F8
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Tue,  7 Feb 2017 02:57:13 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id D1F07CEE;
 Tue,  7 Feb 2017 02:57:12 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v172vBMv024043;
 Tue, 7 Feb 2017 02:57:11 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v172vBek024042;
 Tue, 7 Feb 2017 02:57:11 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201702070257.v172vBek024042@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Tue, 7 Feb 2017 02:57:11 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r313375 -
 projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/stdlib
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 07 Feb 2017 02:57:13 -0000

Author: ngie
Date: Tue Feb  7 02:57:11 2017
New Revision: 313375
URL: https://svnweb.freebsd.org/changeset/base/313375

Log:
  Expect :hsearch_r_nonexistent to fail on FreeBSD
  
  The docs and the behavior mismatch; as noted in the bug, the behavior
  for hsearch_r matches Linux, whereas the docs seem to match NetBSD
  requirements wise.
  
  PR:	216872

Modified:
  projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/stdlib/t_hsearch.c

Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/stdlib/t_hsearch.c
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/stdlib/t_hsearch.c	Tue Feb  7 02:32:49 2017	(r313374)
+++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/stdlib/t_hsearch.c	Tue Feb  7 02:57:11 2017	(r313375)
@@ -337,6 +337,9 @@ ATF_TC_BODY(hsearch_r_nonexistent, tc)
 
 	REQUIRE_ERRNO(hcreate_r(16, &t));
 
+#ifdef __FreeBSD__
+	atf_tc_expect_fail("behavior doesn't match docs; see bug # 216872");
+#endif
 	e.key = __UNCONST("A");
 	ATF_REQUIRE(hsearch_r(e, FIND, &ep, &t) == 1);
 	ATF_REQUIRE_EQ(ep, NULL);

From owner-svn-src-projects@freebsd.org  Tue Feb  7 06:04:15 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 586FDCD2B56
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Tue,  7 Feb 2017 06:04:15 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 3077B16B8;
 Tue,  7 Feb 2017 06:04:15 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1764Ebt001022;
 Tue, 7 Feb 2017 06:04:14 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1764Dbd001017;
 Tue, 7 Feb 2017 06:04:13 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201702070604.v1764Dbd001017@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Tue, 7 Feb 2017 06:04:13 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r313381 - in projects/netbsd-tests-upstream-01-2017:
 contrib/netbsd-tests/lib/libc/gen lib/libc/stdlib lib/libc/tests/stdio
 sys/dev/ath
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 07 Feb 2017 06:04:15 -0000

Author: ngie
Date: Tue Feb  7 06:04:13 2017
New Revision: 313381
URL: https://svnweb.freebsd.org/changeset/base/313381

Log:
  MFhead@r313380

Modified:
  projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/gen/t_floatunditf.c
  projects/netbsd-tests-upstream-01-2017/lib/libc/stdlib/hcreate.3
  projects/netbsd-tests-upstream-01-2017/lib/libc/tests/stdio/printbasic_test.c
  projects/netbsd-tests-upstream-01-2017/lib/libc/tests/stdio/printfloat_test.c
  projects/netbsd-tests-upstream-01-2017/sys/dev/ath/if_athvar.h
Directory Properties:
  projects/netbsd-tests-upstream-01-2017/   (props changed)
  projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/   (props changed)

Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/gen/t_floatunditf.c
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/gen/t_floatunditf.c	Tue Feb  7 05:44:13 2017	(r313380)
+++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/gen/t_floatunditf.c	Tue Feb  7 06:04:13 2017	(r313381)
@@ -119,6 +119,11 @@ ATF_TC_BODY(floatunditf, tc)
 #else
 	size_t i;
 
+#if defined(__FreeBSD__) && defined(__i386__)
+	atf_tc_expect_fail("the floating point error on FreeBSD/i386 doesn't "
+	    "match the expected floating point error on NetBSD");
+#endif
+
 	for (i = 0; i < __arraycount(testcases); ++i)
 		ATF_CHECK_MSG(
 		    testcases[i].ld == (long double)testcases[i].u64,

Modified: projects/netbsd-tests-upstream-01-2017/lib/libc/stdlib/hcreate.3
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/lib/libc/stdlib/hcreate.3	Tue Feb  7 05:44:13 2017	(r313380)
+++ projects/netbsd-tests-upstream-01-2017/lib/libc/stdlib/hcreate.3	Tue Feb  7 06:04:13 2017	(r313381)
@@ -28,7 +28,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd December 26, 2015
+.Dd February 6, 2017
 .Dt HCREATE 3
 .Os
 .Sh NAME
@@ -265,9 +265,9 @@ main(void)
 .Ed
 .Sh ERRORS
 The
-.Fn hcreate
+.Fn hcreate ,
 .Fn hcreate_r ,
-.Fn hsearch
+.Fn hsearch ,
 and
 .Fn hsearch_r
 functions will fail if:
@@ -281,7 +281,7 @@ The
 and
 .Fn hsearch_r
 functions will also fail if the action is
-.Dv SEARCH
+.Dv FIND
 and the element is not found:
 .Bl -tag -width Er
 .It Bq Er ESRCH

Modified: projects/netbsd-tests-upstream-01-2017/lib/libc/tests/stdio/printbasic_test.c
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/lib/libc/tests/stdio/printbasic_test.c	Tue Feb  7 05:44:13 2017	(r313380)
+++ projects/netbsd-tests-upstream-01-2017/lib/libc/tests/stdio/printbasic_test.c	Tue Feb  7 06:04:13 2017	(r313381)
@@ -78,22 +78,19 @@ _testfmt(const char *result, const char 
 	va_copy(ap2, ap);
 	smash_stack();
 	vsnprintf(s, sizeof(s), fmt, ap);
-	if (strcmp(result, s) != 0) {
-		atf_tc_fail(
-		    "printf(\"%s\", %s) ==> [%s], expected [%s]",
-		    fmt, argstr, s, result);
-	}
+	ATF_CHECK_MSG(strcmp(result, s) == 0,
+	    "printf(\"%s\", %s) ==> [%s], expected [%s]",
+	    fmt, argstr, s, result);
 
 	smash_stack();
 	mbstowcs(ws, s, BUF - 1);
 	mbstowcs(wfmt, fmt, BUF - 1);
 	mbstowcs(wresult, result, BUF - 1);
 	vswprintf(ws, sizeof(ws) / sizeof(ws[0]), wfmt, ap2);
-	if (wcscmp(wresult, ws) != 0) {
-		atf_tc_fail(
-		    "wprintf(\"%ls\", %s) ==> [%ls], expected [%ls]",
-		    wfmt, argstr, ws, wresult);
-	}
+	ATF_CHECK_MSG(wcscmp(wresult, ws) == 0,
+	    "wprintf(\"%ls\", %s) ==> [%ls], expected [%ls]",
+	    wfmt, argstr, ws, wresult);
+
 	va_end(ap);
 	va_end(ap2);
 }
@@ -114,6 +111,11 @@ ATF_TC_BODY(int_within_limits, tc)
 	testfmt("-1", "%jd", (intmax_t)-1);
 	testfmt(S_UINT64MAX, "%ju", UINT64_MAX);
 
+	if (sizeof(ptrdiff_t) != sizeof(uintmax_t))
+		atf_tc_expect_fail("the %%t qualifier is broken on 32-bit "
+		    "platforms where there's a mismatch between ptrdiff_t and "
+		    "uintmax_t's type width; bug # 191674");
+
 	testfmt("-1", "%td", (ptrdiff_t)-1);
 	testfmt(S_SIZEMAX, "%tu", (size_t)-1);
 

Modified: projects/netbsd-tests-upstream-01-2017/lib/libc/tests/stdio/printfloat_test.c
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/lib/libc/tests/stdio/printfloat_test.c	Tue Feb  7 05:44:13 2017	(r313380)
+++ projects/netbsd-tests-upstream-01-2017/lib/libc/tests/stdio/printfloat_test.c	Tue Feb  7 06:04:13 2017	(r313381)
@@ -70,22 +70,19 @@ _testfmt(const char *result, const char 
 	va_copy(ap2, ap);
 	smash_stack();
 	vsnprintf(s, sizeof(s), fmt, ap);
-	if (strcmp(result, s) != 0) {
-		atf_tc_fail(
-		    "printf(\"%s\", %s) ==> [%s], expected [%s]",
-		    fmt, argstr, s, result);
-	}
+	ATF_CHECK_MSG(strcmp(result, s) == 0,
+	    "printf(\"%s\", %s) ==> [%s], expected [%s]",
+	    fmt, argstr, s, result);
 
 	smash_stack();
 	mbstowcs(ws, s, BUF - 1);
 	mbstowcs(wfmt, fmt, BUF - 1);
 	mbstowcs(wresult, result, BUF - 1);
 	vswprintf(ws, sizeof(ws) / sizeof(ws[0]), wfmt, ap2);
-	if (wcscmp(wresult, ws) != 0) {
-		atf_tc_fail(
-		    "wprintf(\"%ls\", %s) ==> [%ls], expected [%ls]",
-		    wfmt, argstr, ws, wresult);
-	}
+	ATF_CHECK_MSG(wcscmp(wresult, ws) == 0,
+	    "wprintf(\"%ls\", %s) ==> [%ls], expected [%ls]",
+	    wfmt, argstr, ws, wresult);
+
 	va_end(ap);
 	va_end(ap2);
 }
@@ -318,7 +315,7 @@ ATF_TC_BODY(hexadecimal_floating_point, 
 	testfmt("0x1p-1074", "%a", 0x1p-1074);
 	testfmt("0x1.2345p-1024", "%a", 0x1.2345p-1024);
 
-#if (LDBL_MANT_DIG == 64) && !defined(__i386__)
+#if (LDBL_MANT_DIG == 64)
 	testfmt("0x1.921fb54442d18468p+1", "%La", 0x3.243f6a8885a308dp0L);
 	testfmt("0x1p-16445", "%La", 0x1p-16445L);
 	testfmt("0x1.30ecap-16381", "%La", 0x9.8765p-16384L);

Modified: projects/netbsd-tests-upstream-01-2017/sys/dev/ath/if_athvar.h
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/sys/dev/ath/if_athvar.h	Tue Feb  7 05:44:13 2017	(r313380)
+++ projects/netbsd-tests-upstream-01-2017/sys/dev/ath/if_athvar.h	Tue Feb  7 06:04:13 2017	(r313381)
@@ -490,6 +490,7 @@ struct ath_vap {
 	int		(*av_set_tim)(struct ieee80211_node *, int);
 	void		(*av_recv_pspoll)(struct ieee80211_node *,
 				struct mbuf *);
+	struct ieee80211_quiet_ie	quiet_ie;
 };
 #define	ATH_VAP(vap)	((struct ath_vap *)(vap))
 
@@ -1484,6 +1485,8 @@ void	ath_intr(void *);
 	((*(_ah)->ah_get11nExtBusy)((_ah)))
 #define	ath_hal_setchainmasks(_ah, _txchainmask, _rxchainmask) \
 	((*(_ah)->ah_setChainMasks)((_ah), (_txchainmask), (_rxchainmask)))
+#define	ath_hal_set_quiet(_ah, _p, _d, _o, _f) \
+	((*(_ah)->ah_setQuiet)((_ah), (_p), (_d), (_o), (_f)))
 
 #define	ath_hal_spectral_supported(_ah) \
 	(ath_hal_getcapability(_ah, HAL_CAP_SPECTRAL_SCAN, 0, NULL) == HAL_OK)

From owner-svn-src-projects@freebsd.org  Tue Feb  7 06:34:04 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3981ECD44F5
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Tue,  7 Feb 2017 06:34:04 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 06798796;
 Tue,  7 Feb 2017 06:34:03 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v176Y3aH012977;
 Tue, 7 Feb 2017 06:34:03 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v176Y3Ek012976;
 Tue, 7 Feb 2017 06:34:03 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201702070634.v176Y3Ek012976@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Tue, 7 Feb 2017 06:34:03 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r313382 -
 projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 07 Feb 2017 06:34:04 -0000

Author: ngie
Date: Tue Feb  7 06:34:02 2017
New Revision: 313382
URL: https://svnweb.freebsd.org/changeset/base/313382

Log:
  Add #else case in run(..) to fix test on non-{amd64,arm64,mips} after
  recent refactoring to the test

Modified:
  projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_getcontext.c

Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_getcontext.c
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_getcontext.c	Tue Feb  7 06:04:13 2017	(r313381)
+++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_getcontext.c	Tue Feb  7 06:34:02 2017	(r313382)
@@ -133,6 +133,9 @@ ATF_TC_BODY(setcontext_link, tc)
 		/* FreeBSD/mips only permits up to 6 arguments. */
 		makecontext(&uc[i], (void *)run, 6, i,
 			0, 1, 2, 3, 4);
+#else
+		makecontext(&uc[i], (void *)run, 10, i,
+			0, 1, 2, 3, 4, 5, 6, 7, 8);
 #endif
 #else
 		makecontext(&uc[i], (void *)run, 10, i,

From owner-svn-src-projects@freebsd.org  Tue Feb  7 18:47:20 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4F2CFCD4203
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Tue,  7 Feb 2017 18:47:20 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 1739E1681;
 Tue,  7 Feb 2017 18:47:20 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v17IlJ6D014156;
 Tue, 7 Feb 2017 18:47:19 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v17IlGMO014131;
 Tue, 7 Feb 2017 18:47:16 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201702071847.v17IlGMO014131@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Tue, 7 Feb 2017 18:47:16 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r313399 - in projects/netbsd-tests-upstream-01-2017:
 contrib/byacc/test/yacc sys/arm/altera/socfpga sys/arm/conf sys/arm64/arm64
 sys/arm64/include sys/boot/efi/libefi sys/kern sys/modul...
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 07 Feb 2017 18:47:20 -0000

Author: ngie
Date: Tue Feb  7 18:47:16 2017
New Revision: 313399
URL: https://svnweb.freebsd.org/changeset/base/313399

Log:
  MFhead@r313398

Added:
  projects/netbsd-tests-upstream-01-2017/sys/arm/altera/socfpga/socfpga_mp.h
     - copied unchanged from r313398, head/sys/arm/altera/socfpga/socfpga_mp.h
Modified:
  projects/netbsd-tests-upstream-01-2017/contrib/byacc/test/yacc/expr.oxout.tab.c
  projects/netbsd-tests-upstream-01-2017/sys/arm/altera/socfpga/socfpga_common.c
  projects/netbsd-tests-upstream-01-2017/sys/arm/altera/socfpga/socfpga_machdep.c
  projects/netbsd-tests-upstream-01-2017/sys/arm/altera/socfpga/socfpga_mp.c
  projects/netbsd-tests-upstream-01-2017/sys/arm/conf/SOCKIT.common
  projects/netbsd-tests-upstream-01-2017/sys/arm64/arm64/exception.S
  projects/netbsd-tests-upstream-01-2017/sys/arm64/arm64/genassym.c
  projects/netbsd-tests-upstream-01-2017/sys/arm64/arm64/trap.c
  projects/netbsd-tests-upstream-01-2017/sys/arm64/include/frame.h
  projects/netbsd-tests-upstream-01-2017/sys/boot/efi/libefi/Makefile
  projects/netbsd-tests-upstream-01-2017/sys/kern/init_main.c
  projects/netbsd-tests-upstream-01-2017/sys/kern/kern_mutex.c
  projects/netbsd-tests-upstream-01-2017/sys/kern/kern_rwlock.c
  projects/netbsd-tests-upstream-01-2017/sys/kern/kern_sx.c
  projects/netbsd-tests-upstream-01-2017/sys/kern/kern_thread.c
  projects/netbsd-tests-upstream-01-2017/sys/kern/subr_lock.c
  projects/netbsd-tests-upstream-01-2017/sys/kern/subr_sfbuf.c
  projects/netbsd-tests-upstream-01-2017/sys/modules/dtb/allwinner/Makefile
  projects/netbsd-tests-upstream-01-2017/sys/sys/lock.h
  projects/netbsd-tests-upstream-01-2017/sys/sys/rwlock.h
  projects/netbsd-tests-upstream-01-2017/tests/sys/netinet/fibs_test.sh
  projects/netbsd-tests-upstream-01-2017/tests/sys/netinet/udp_dontroute.c
  projects/netbsd-tests-upstream-01-2017/usr.bin/sed/tests/sed2_test.sh
Directory Properties:
  projects/netbsd-tests-upstream-01-2017/   (props changed)
  projects/netbsd-tests-upstream-01-2017/contrib/byacc/   (props changed)

Modified: projects/netbsd-tests-upstream-01-2017/contrib/byacc/test/yacc/expr.oxout.tab.c
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/contrib/byacc/test/yacc/expr.oxout.tab.c	Tue Feb  7 18:37:46 2017	(r313398)
+++ projects/netbsd-tests-upstream-01-2017/contrib/byacc/test/yacc/expr.oxout.tab.c	Tue Feb  7 18:47:16 2017	(r313399)
@@ -178,7 +178,7 @@ extern int YYPARSE_DECL();
 #define ID 257
 #define CONST 258
 #define YYERRCODE 256
-typedef short YYINT;
+typedef int YYINT;
 static const YYINT expr.oxout_lhs[] = {                  -1,
     2,    0,    1,    3,    3,    3,    3,    3,    3,    3,
 };

Modified: projects/netbsd-tests-upstream-01-2017/sys/arm/altera/socfpga/socfpga_common.c
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/sys/arm/altera/socfpga/socfpga_common.c	Tue Feb  7 18:37:46 2017	(r313398)
+++ projects/netbsd-tests-upstream-01-2017/sys/arm/altera/socfpga/socfpga_common.c	Tue Feb  7 18:47:16 2017	(r313399)
@@ -43,27 +43,3 @@ __FBSDID("$FreeBSD$");
 
 #include <arm/altera/socfpga/socfpga_rstmgr.h>
 
-void
-cpu_reset(void)
-{
-	uint32_t paddr;
-	bus_addr_t vaddr;
-	phandle_t node;
-
-	if (rstmgr_warmreset() == 0)
-		goto end;
-
-	node = OF_finddevice("rstmgr");
-	if (node == -1)
-		goto end;
-
-	if ((OF_getencprop(node, "reg", &paddr, sizeof(paddr))) > 0) {
-		if (bus_space_map(fdtbus_bs_tag, paddr, 0x8, 0, &vaddr) == 0) {
-			bus_space_write_4(fdtbus_bs_tag, vaddr,
-			    RSTMGR_CTRL, CTRL_SWWARMRSTREQ);
-		}
-	}
-
-end:
-	while (1);
-}

Modified: projects/netbsd-tests-upstream-01-2017/sys/arm/altera/socfpga/socfpga_machdep.c
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/sys/arm/altera/socfpga/socfpga_machdep.c	Tue Feb  7 18:37:46 2017	(r313398)
+++ projects/netbsd-tests-upstream-01-2017/sys/arm/altera/socfpga/socfpga_machdep.c	Tue Feb  7 18:47:16 2017	(r313399)
@@ -28,7 +28,6 @@
  * SUCH DAMAGE.
  */
 
-#include "opt_ddb.h"
 #include "opt_platform.h"
 
 #include <sys/cdefs.h>
@@ -41,38 +40,22 @@ __FBSDID("$FreeBSD$");
 
 #include <vm/vm.h>
 
+#include <dev/ofw/openfirm.h>
+
 #include <machine/armreg.h>
 #include <machine/bus.h>
+#include <machine/fdt.h>
 #include <machine/machdep.h>
 #include <machine/platform.h>
+#include <machine/platformvar.h>
 
-vm_offset_t
-platform_lastaddr(void)
-{
-
-	return (devmap_lastaddr());
-}
-
-void
-platform_probe_and_attach(void)
-{
-
-}
-
-void
-platform_gpio_init(void)
-{
-
-}
-
-void
-platform_late_init(void)
-{
+#include <arm/altera/socfpga/socfpga_mp.h>
+#include <arm/altera/socfpga/socfpga_rstmgr.h>
 
-}
+#include "platform_if.h"
 
-int
-platform_devmap_init(void)
+static int
+socfpga_devmap_init(platform_t plat)
 {
 
 	/* UART */
@@ -99,3 +82,42 @@ platform_devmap_init(void)
 
 	return (0);
 }
+
+static void
+socfpga_cpu_reset(platform_t plat)
+{
+	uint32_t paddr;
+	bus_addr_t vaddr;
+	phandle_t node;
+
+	if (rstmgr_warmreset() == 0)
+		goto end;
+
+	node = OF_finddevice("rstmgr");
+	if (node == -1)
+		goto end;
+
+	if ((OF_getencprop(node, "reg", &paddr, sizeof(paddr))) > 0) {
+		if (bus_space_map(fdtbus_bs_tag, paddr, 0x8, 0, &vaddr) == 0) {
+			bus_space_write_4(fdtbus_bs_tag, vaddr,
+			    RSTMGR_CTRL, CTRL_SWWARMRSTREQ);
+		}
+	}
+
+end:
+	while (1);
+}
+
+static platform_method_t socfpga_methods[] = {
+	PLATFORMMETHOD(platform_devmap_init,	socfpga_devmap_init),
+	PLATFORMMETHOD(platform_cpu_reset,	socfpga_cpu_reset),
+
+#ifdef SMP
+	PLATFORMMETHOD(platform_mp_setmaxid,	socfpga_mp_setmaxid),
+	PLATFORMMETHOD(platform_mp_start_ap,	socfpga_mp_start_ap),
+#endif
+
+	PLATFORMMETHOD_END,
+};
+
+FDT_PLATFORM_DEF(socfpga, "socfpga", 0, "altr,socfpga", 0);

Modified: projects/netbsd-tests-upstream-01-2017/sys/arm/altera/socfpga/socfpga_mp.c
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/sys/arm/altera/socfpga/socfpga_mp.c	Tue Feb  7 18:37:46 2017	(r313398)
+++ projects/netbsd-tests-upstream-01-2017/sys/arm/altera/socfpga/socfpga_mp.c	Tue Feb  7 18:47:16 2017	(r313399)
@@ -28,6 +28,8 @@
  * SUCH DAMAGE.
  */
 
+#include "opt_platform.h"
+
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
 #include <sys/param.h>
@@ -45,6 +47,9 @@ __FBSDID("$FreeBSD$");
 #include <machine/smp.h>
 #include <machine/fdt.h>
 #include <machine/intr.h>
+#include <machine/platformvar.h>
+
+#include <arm/altera/socfpga/socfpga_mp.h>
 
 #define	SCU_PHYSBASE			0xFFFEC000
 #define	SCU_SIZE			0x100
@@ -85,7 +90,7 @@ socfpga_trampoline(void)
 }
 
 void
-platform_mp_setmaxid(void)
+socfpga_mp_setmaxid(platform_t plat)
 {
 	int hwcpu, ncpu;
 
@@ -105,7 +110,7 @@ platform_mp_setmaxid(void)
 }
 
 void
-platform_mp_start_ap(void)
+socfpga_mp_start_ap(platform_t plat)
 {
 	bus_space_handle_t scu, rst, ram;
 	int reg;

Copied: projects/netbsd-tests-upstream-01-2017/sys/arm/altera/socfpga/socfpga_mp.h (from r313398, head/sys/arm/altera/socfpga/socfpga_mp.h)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/netbsd-tests-upstream-01-2017/sys/arm/altera/socfpga/socfpga_mp.h	Tue Feb  7 18:47:16 2017	(r313399, copy of r313398, head/sys/arm/altera/socfpga/socfpga_mp.h)
@@ -0,0 +1,34 @@
+/*-
+ * Copyright (c) 2017 Andrew Turner <andrew@FreeBSD.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * $FreeBSD$
+ */
+
+#ifndef _SOCFPGA_MP_H_
+#define	_SOCFPGA_MP_H_
+
+void socfpga_mp_setmaxid(platform_t);
+void socfpga_mp_start_ap(platform_t);
+
+#endif /* _SOCFPGA_MP_H_ */

Modified: projects/netbsd-tests-upstream-01-2017/sys/arm/conf/SOCKIT.common
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/sys/arm/conf/SOCKIT.common	Tue Feb  7 18:37:46 2017	(r313398)
+++ projects/netbsd-tests-upstream-01-2017/sys/arm/conf/SOCKIT.common	Tue Feb  7 18:47:16 2017	(r313399)
@@ -26,6 +26,8 @@ makeoptions	MODULES_OVERRIDE=""
 makeoptions	WERROR="-Werror"
 
 options 	SCHED_ULE		# ULE scheduler
+options 	PLATFORM		# Platform based SoC
+options 	PLATFORM_SMP
 options 	SMP			# Enable multiple cores
 
 # NFS root from boopt/dhcp

Modified: projects/netbsd-tests-upstream-01-2017/sys/arm64/arm64/exception.S
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/sys/arm64/arm64/exception.S	Tue Feb  7 18:37:46 2017	(r313398)
+++ projects/netbsd-tests-upstream-01-2017/sys/arm64/arm64/exception.S	Tue Feb  7 18:47:16 2017	(r313399)
@@ -56,10 +56,12 @@ __FBSDID("$FreeBSD$");
 	stp	x0,  x1,  [sp, #(TF_X + 0  * 8)]
 	mrs	x10, elr_el1
 	mrs	x11, spsr_el1
+	mrs	x12, esr_el1
 .if \el == 0
 	mrs	x18, sp_el0
 .endif
-	stp	x10, x11, [sp, #(TF_ELR)]
+	str	x10, [sp, #(TF_ELR)]
+	stp	w11, w12, [sp, #(TF_SPSR)]
 	stp	x18,  lr, [sp, #(TF_SP)]
 	mrs	x18, tpidr_el1
 	add	x29, sp, #(TF_SIZE)

Modified: projects/netbsd-tests-upstream-01-2017/sys/arm64/arm64/genassym.c
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/sys/arm64/arm64/genassym.c	Tue Feb  7 18:37:46 2017	(r313398)
+++ projects/netbsd-tests-upstream-01-2017/sys/arm64/arm64/genassym.c	Tue Feb  7 18:47:16 2017	(r313399)
@@ -62,4 +62,5 @@ ASSYM(TD_LOCK, offsetof(struct thread, t
 ASSYM(TF_SIZE, sizeof(struct trapframe));
 ASSYM(TF_SP, offsetof(struct trapframe, tf_sp));
 ASSYM(TF_ELR, offsetof(struct trapframe, tf_elr));
+ASSYM(TF_SPSR, offsetof(struct trapframe, tf_spsr));
 ASSYM(TF_X, offsetof(struct trapframe, tf_x));

Modified: projects/netbsd-tests-upstream-01-2017/sys/arm64/arm64/trap.c
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/sys/arm64/arm64/trap.c	Tue Feb  7 18:37:46 2017	(r313398)
+++ projects/netbsd-tests-upstream-01-2017/sys/arm64/arm64/trap.c	Tue Feb  7 18:47:16 2017	(r313399)
@@ -257,7 +257,7 @@ print_registers(struct trapframe *frame)
 	printf("  sp: %16lx\n", frame->tf_sp);
 	printf("  lr: %16lx\n", frame->tf_lr);
 	printf(" elr: %16lx\n", frame->tf_elr);
-	printf("spsr: %16lx\n", frame->tf_spsr);
+	printf("spsr:         %8x\n", frame->tf_spsr);
 }
 
 void
@@ -267,7 +267,7 @@ do_el1h_sync(struct trapframe *frame)
 	uint64_t esr, far;
 
 	/* Read the esr register to get the exception details */
-	esr = READ_SPECIALREG(esr_el1);
+	esr = frame->tf_esr;
 	exception = ESR_ELx_EXCEPTION(esr);
 
 #ifdef KDTRACE_HOOKS
@@ -352,7 +352,7 @@ do_el0_sync(struct trapframe *frame)
 	td = curthread;
 	td->td_frame = frame;
 
-	esr = READ_SPECIALREG(esr_el1);
+	esr = frame->tf_esr;
 	exception = ESR_ELx_EXCEPTION(esr);
 	switch (exception) {
 	case EXCP_UNKNOWN:

Modified: projects/netbsd-tests-upstream-01-2017/sys/arm64/include/frame.h
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/sys/arm64/include/frame.h	Tue Feb  7 18:37:46 2017	(r313398)
+++ projects/netbsd-tests-upstream-01-2017/sys/arm64/include/frame.h	Tue Feb  7 18:47:16 2017	(r313399)
@@ -45,7 +45,8 @@ struct trapframe {
 	uint64_t tf_sp;
 	uint64_t tf_lr;
 	uint64_t tf_elr;
-	uint64_t tf_spsr;
+	uint32_t tf_spsr;
+	uint32_t tf_esr;
 	uint64_t tf_x[30];
 };
 

Modified: projects/netbsd-tests-upstream-01-2017/sys/boot/efi/libefi/Makefile
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/sys/boot/efi/libefi/Makefile	Tue Feb  7 18:37:46 2017	(r313398)
+++ projects/netbsd-tests-upstream-01-2017/sys/boot/efi/libefi/Makefile	Tue Feb  7 18:47:16 2017	(r313399)
@@ -26,6 +26,7 @@ SRCS+=	time_event.c
 # of a short. There's no good cast to use here so just ignore the
 # warnings for now.
 CWARNFLAGS.efinet.c+=	-Wno-format
+CWARNFLAGS.efipart.c+=	-Wno-format
 CWARNFLAGS.env.c+=	-Wno-format
 
 .if ${MACHINE_CPUARCH} == "aarch64"

Modified: projects/netbsd-tests-upstream-01-2017/sys/kern/init_main.c
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/sys/kern/init_main.c	Tue Feb  7 18:37:46 2017	(r313398)
+++ projects/netbsd-tests-upstream-01-2017/sys/kern/init_main.c	Tue Feb  7 18:47:16 2017	(r313399)
@@ -99,7 +99,7 @@ void mi_startup(void);				/* Should be e
 static struct session session0;
 static struct pgrp pgrp0;
 struct	proc proc0;
-struct thread0_storage thread0_st __aligned(16);
+struct thread0_storage thread0_st __aligned(32);
 struct	vmspace vmspace0;
 struct	proc *initproc;
 

Modified: projects/netbsd-tests-upstream-01-2017/sys/kern/kern_mutex.c
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/sys/kern/kern_mutex.c	Tue Feb  7 18:37:46 2017	(r313398)
+++ projects/netbsd-tests-upstream-01-2017/sys/kern/kern_mutex.c	Tue Feb  7 18:47:16 2017	(r313399)
@@ -140,63 +140,27 @@ struct lock_class lock_class_mtx_spin = 
 #ifdef ADAPTIVE_MUTEXES
 static SYSCTL_NODE(_debug, OID_AUTO, mtx, CTLFLAG_RD, NULL, "mtx debugging");
 
-static struct lock_delay_config __read_mostly mtx_delay = {
-	.initial	= 1000,
-	.step		= 500,
-	.min		= 100,
-	.max		= 5000,
-};
+static struct lock_delay_config __read_mostly mtx_delay;
 
-SYSCTL_INT(_debug_mtx, OID_AUTO, delay_initial, CTLFLAG_RW, &mtx_delay.initial,
-    0, "");
-SYSCTL_INT(_debug_mtx, OID_AUTO, delay_step, CTLFLAG_RW, &mtx_delay.step,
-    0, "");
-SYSCTL_INT(_debug_mtx, OID_AUTO, delay_min, CTLFLAG_RW, &mtx_delay.min,
+SYSCTL_INT(_debug_mtx, OID_AUTO, delay_base, CTLFLAG_RW, &mtx_delay.base,
     0, "");
 SYSCTL_INT(_debug_mtx, OID_AUTO, delay_max, CTLFLAG_RW, &mtx_delay.max,
     0, "");
 
-static void
-mtx_delay_sysinit(void *dummy)
-{
-
-	mtx_delay.initial = mp_ncpus * 25;
-	mtx_delay.step = (mp_ncpus * 25) / 2;
-	mtx_delay.min = mp_ncpus * 5;
-	mtx_delay.max = mp_ncpus * 25 * 10;
-}
-LOCK_DELAY_SYSINIT(mtx_delay_sysinit);
+LOCK_DELAY_SYSINIT_DEFAULT(mtx_delay);
 #endif
 
 static SYSCTL_NODE(_debug, OID_AUTO, mtx_spin, CTLFLAG_RD, NULL,
     "mtx spin debugging");
 
-static struct lock_delay_config __read_mostly mtx_spin_delay = {
-	.initial        = 1000,
-	.step           = 500,
-	.min            = 100,
-	.max            = 5000,
-};
-
-SYSCTL_INT(_debug_mtx_spin, OID_AUTO, delay_initial, CTLFLAG_RW,
-    &mtx_spin_delay.initial, 0, "");
-SYSCTL_INT(_debug_mtx_spin, OID_AUTO, delay_step, CTLFLAG_RW, &mtx_spin_delay.step,
-    0, "");
-SYSCTL_INT(_debug_mtx_spin, OID_AUTO, delay_min, CTLFLAG_RW, &mtx_spin_delay.min,
-    0, "");
-SYSCTL_INT(_debug_mtx_spin, OID_AUTO, delay_max, CTLFLAG_RW, &mtx_spin_delay.max,
-    0, "");
+static struct lock_delay_config __read_mostly mtx_spin_delay;
 
-static void
-mtx_spin_delay_sysinit(void *dummy)
-{
+SYSCTL_INT(_debug_mtx_spin, OID_AUTO, delay_base, CTLFLAG_RW,
+    &mtx_spin_delay.base, 0, "");
+SYSCTL_INT(_debug_mtx_spin, OID_AUTO, delay_max, CTLFLAG_RW,
+    &mtx_spin_delay.max, 0, "");
 
-	mtx_spin_delay.initial = mp_ncpus * 25;
-	mtx_spin_delay.step = (mp_ncpus * 25) / 2;
-	mtx_spin_delay.min = mp_ncpus * 5;
-	mtx_spin_delay.max = mp_ncpus * 25 * 10;
-}
-LOCK_DELAY_SYSINIT(mtx_spin_delay_sysinit);
+LOCK_DELAY_SYSINIT_DEFAULT(mtx_spin_delay);
 
 /*
  * System-wide mutexes

Modified: projects/netbsd-tests-upstream-01-2017/sys/kern/kern_rwlock.c
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/sys/kern/kern_rwlock.c	Tue Feb  7 18:37:46 2017	(r313398)
+++ projects/netbsd-tests-upstream-01-2017/sys/kern/kern_rwlock.c	Tue Feb  7 18:47:16 2017	(r313399)
@@ -100,32 +100,14 @@ static SYSCTL_NODE(_debug, OID_AUTO, rwl
 SYSCTL_INT(_debug_rwlock, OID_AUTO, retry, CTLFLAG_RW, &rowner_retries, 0, "");
 SYSCTL_INT(_debug_rwlock, OID_AUTO, loops, CTLFLAG_RW, &rowner_loops, 0, "");
 
-static struct lock_delay_config __read_mostly rw_delay = {
-	.initial	= 1000,
-	.step		= 500,
-	.min		= 100,
-	.max		= 5000,
-};
+static struct lock_delay_config __read_mostly rw_delay;
 
-SYSCTL_INT(_debug_rwlock, OID_AUTO, delay_initial, CTLFLAG_RW, &rw_delay.initial,
-    0, "");
-SYSCTL_INT(_debug_rwlock, OID_AUTO, delay_step, CTLFLAG_RW, &rw_delay.step,
-    0, "");
-SYSCTL_INT(_debug_rwlock, OID_AUTO, delay_min, CTLFLAG_RW, &rw_delay.min,
+SYSCTL_INT(_debug_rwlock, OID_AUTO, delay_base, CTLFLAG_RW, &rw_delay.base,
     0, "");
 SYSCTL_INT(_debug_rwlock, OID_AUTO, delay_max, CTLFLAG_RW, &rw_delay.max,
     0, "");
 
-static void
-rw_delay_sysinit(void *dummy)
-{
-
-	rw_delay.initial = mp_ncpus * 25;
-	rw_delay.step = (mp_ncpus * 25) / 2;
-	rw_delay.min = mp_ncpus * 5;
-	rw_delay.max = mp_ncpus * 25 * 10;
-}
-LOCK_DELAY_SYSINIT(rw_delay_sysinit);
+LOCK_DELAY_SYSINIT_DEFAULT(rw_delay);
 #endif
 
 /*
@@ -330,6 +312,7 @@ __rw_try_wlock(volatile uintptr_t *c, co
 	if (rw_wlocked(rw) &&
 	    (rw->lock_object.lo_flags & LO_RECURSABLE) != 0) {
 		rw->rw_recurse++;
+		atomic_set_ptr(&rw->rw_lock, RW_LOCK_WRITER_RECURSED);
 		rval = 1;
 	} else
 		rval = atomic_cmpset_acq_ptr(&rw->rw_lock, RW_UNLOCKED,
@@ -363,10 +346,8 @@ _rw_wunlock_cookie(volatile uintptr_t *c
 	WITNESS_UNLOCK(&rw->lock_object, LOP_EXCLUSIVE, file, line);
 	LOCK_LOG_LOCK("WUNLOCK", &rw->lock_object, 0, rw->rw_recurse, file,
 	    line);
-	if (rw->rw_recurse)
-		rw->rw_recurse--;
-	else
-		_rw_wunlock_hard(rw, (uintptr_t)curthread, file, line);
+
+	_rw_wunlock_hard(rw, (uintptr_t)curthread, file, line);
 
 	TD_LOCKS_DEC(curthread);
 }
@@ -820,6 +801,7 @@ __rw_wlock_hard(volatile uintptr_t *c, u
 		    ("%s: recursing but non-recursive rw %s @ %s:%d\n",
 		    __func__, rw->lock_object.lo_name, file, line));
 		rw->rw_recurse++;
+		atomic_set_ptr(&rw->rw_lock, RW_LOCK_WRITER_RECURSED);
 		if (LOCK_LOG_TEST(&rw->lock_object, 0))
 			CTR2(KTR_LOCK, "%s: %p recursing", __func__, rw);
 		return;
@@ -1012,12 +994,17 @@ __rw_wunlock_hard(volatile uintptr_t *c,
 		return;
 
 	rw = rwlock2rw(c);
-	MPASS(!rw_recursed(rw));
 
-	LOCKSTAT_PROFILE_RELEASE_RWLOCK(rw__release, rw,
-	    LOCKSTAT_WRITER);
-	if (_rw_write_unlock(rw, tid))
+	if (!rw_recursed(rw)) {
+		LOCKSTAT_PROFILE_RELEASE_RWLOCK(rw__release, rw,
+		    LOCKSTAT_WRITER);
+		if (_rw_write_unlock(rw, tid))
+			return;
+	} else {
+		if (--(rw->rw_recurse) == 0)
+			atomic_clear_ptr(&rw->rw_lock, RW_LOCK_WRITER_RECURSED);
 		return;
+	}
 
 	KASSERT(rw->rw_lock & (RW_LOCK_READ_WAITERS | RW_LOCK_WRITE_WAITERS),
 	    ("%s: neither of the waiter flags are set", __func__));

Modified: projects/netbsd-tests-upstream-01-2017/sys/kern/kern_sx.c
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/sys/kern/kern_sx.c	Tue Feb  7 18:37:46 2017	(r313398)
+++ projects/netbsd-tests-upstream-01-2017/sys/kern/kern_sx.c	Tue Feb  7 18:47:16 2017	(r313399)
@@ -148,32 +148,14 @@ static SYSCTL_NODE(_debug, OID_AUTO, sx,
 SYSCTL_UINT(_debug_sx, OID_AUTO, retries, CTLFLAG_RW, &asx_retries, 0, "");
 SYSCTL_UINT(_debug_sx, OID_AUTO, loops, CTLFLAG_RW, &asx_loops, 0, "");
 
-static struct lock_delay_config __read_mostly sx_delay = {
-	.initial	= 1000,
-	.step           = 500,
-	.min		= 100,
-	.max		= 5000,
-};
+static struct lock_delay_config __read_mostly sx_delay;
 
-SYSCTL_INT(_debug_sx, OID_AUTO, delay_initial, CTLFLAG_RW, &sx_delay.initial,
-    0, "");
-SYSCTL_INT(_debug_sx, OID_AUTO, delay_step, CTLFLAG_RW, &sx_delay.step,
-    0, "");
-SYSCTL_INT(_debug_sx, OID_AUTO, delay_min, CTLFLAG_RW, &sx_delay.min,
+SYSCTL_INT(_debug_sx, OID_AUTO, delay_base, CTLFLAG_RW, &sx_delay.base,
     0, "");
 SYSCTL_INT(_debug_sx, OID_AUTO, delay_max, CTLFLAG_RW, &sx_delay.max,
     0, "");
 
-static void
-sx_delay_sysinit(void *dummy)
-{
-
-	sx_delay.initial = mp_ncpus * 25;
-	sx_delay.step = (mp_ncpus * 25) / 2;
-	sx_delay.min = mp_ncpus * 5;
-	sx_delay.max = mp_ncpus * 25 * 10;
-}
-LOCK_DELAY_SYSINIT(sx_delay_sysinit);
+LOCK_DELAY_SYSINIT_DEFAULT(sx_delay);
 #endif
 
 void

Modified: projects/netbsd-tests-upstream-01-2017/sys/kern/kern_thread.c
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/sys/kern/kern_thread.c	Tue Feb  7 18:37:46 2017	(r313398)
+++ projects/netbsd-tests-upstream-01-2017/sys/kern/kern_thread.c	Tue Feb  7 18:47:16 2017	(r313399)
@@ -281,7 +281,7 @@ threadinit(void)
 
 	thread_zone = uma_zcreate("THREAD", sched_sizeof_thread(),
 	    thread_ctor, thread_dtor, thread_init, thread_fini,
-	    16 - 1, UMA_ZONE_NOFREE);
+	    32 - 1, UMA_ZONE_NOFREE);
 	tidhashtbl = hashinit(maxproc / 2, M_TIDHASH, &tidhash);
 	rw_init(&tidhash_lock, "tidhash");
 }

Modified: projects/netbsd-tests-upstream-01-2017/sys/kern/subr_lock.c
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/sys/kern/subr_lock.c	Tue Feb  7 18:37:46 2017	(r313398)
+++ projects/netbsd-tests-upstream-01-2017/sys/kern/subr_lock.c	Tue Feb  7 18:47:16 2017	(r313399)
@@ -56,6 +56,9 @@ __FBSDID("$FreeBSD$");
 
 #include <machine/cpufunc.h>
 
+SDT_PROVIDER_DEFINE(lock);
+SDT_PROBE_DEFINE1(lock, , , starvation, "u_int");
+
 CTASSERT(LOCK_CLASS_MAX == 15);
 
 struct lock_class *lock_classes[LOCK_CLASS_MAX + 1] = {
@@ -103,32 +106,56 @@ lock_destroy(struct lock_object *lock)
 	lock->lo_flags &= ~LO_INITIALIZED;
 }
 
+static SYSCTL_NODE(_debug, OID_AUTO, lock, CTLFLAG_RD, NULL, "lock debugging");
+static SYSCTL_NODE(_debug_lock, OID_AUTO, delay, CTLFLAG_RD, NULL,
+    "lock delay");
+
+static u_int __read_mostly starvation_limit = 131072;
+SYSCTL_INT(_debug_lock_delay, OID_AUTO, starvation_limit, CTLFLAG_RW,
+    &starvation_limit, 0, "");
+
+static u_int __read_mostly restrict_starvation = 0;
+SYSCTL_INT(_debug_lock_delay, OID_AUTO, restrict_starvation, CTLFLAG_RW,
+    &restrict_starvation, 0, "");
+
 void
 lock_delay(struct lock_delay_arg *la)
 {
-	u_int i, delay, backoff, min, max;
 	struct lock_delay_config *lc = la->config;
+	u_int i;
 
-	delay = la->delay;
+	la->delay <<= 1;
+	if (__predict_false(la->delay > lc->max))
+		la->delay = lc->max;
 
-	if (delay == 0)
-		delay = lc->initial;
-	else {
-		delay += lc->step;
-		max = lc->max;
-		if (delay > max)
-			delay = max;
-	}
-
-	backoff = cpu_ticks() % delay;
-	min = lc->min;
-	if (backoff < min)
-		backoff = min;
-	for (i = 0; i < backoff; i++)
+	for (i = la->delay; i > 0; i--)
 		cpu_spinwait();
 
-	la->delay = delay;
-	la->spin_cnt += backoff;
+	la->spin_cnt += la->delay;
+	if (__predict_false(la->spin_cnt > starvation_limit)) {
+		SDT_PROBE1(lock, , , starvation, la->delay);
+		if (restrict_starvation)
+			la->delay = lc->base;
+	}
+}
+
+static u_int
+lock_roundup_2(u_int val)
+{
+	u_int res;
+
+	for (res = 1; res <= val; res <<= 1)
+		continue;
+
+	return (res);
+}
+
+void
+lock_delay_default_init(struct lock_delay_config *lc)
+{
+
+	lc->base = lock_roundup_2(mp_ncpus) / 4;
+	lc->max = lc->base * 1024;
 }
 
 #ifdef DDB
@@ -655,7 +682,6 @@ out:
 	critical_exit();
 }
 
-static SYSCTL_NODE(_debug, OID_AUTO, lock, CTLFLAG_RD, NULL, "lock debugging");
 static SYSCTL_NODE(_debug_lock, OID_AUTO, prof, CTLFLAG_RD, NULL,
     "lock profiling");
 SYSCTL_INT(_debug_lock_prof, OID_AUTO, skipspin, CTLFLAG_RW,

Modified: projects/netbsd-tests-upstream-01-2017/sys/kern/subr_sfbuf.c
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/sys/kern/subr_sfbuf.c	Tue Feb  7 18:37:46 2017	(r313398)
+++ projects/netbsd-tests-upstream-01-2017/sys/kern/subr_sfbuf.c	Tue Feb  7 18:47:16 2017	(r313399)
@@ -33,6 +33,7 @@ __FBSDID("$FreeBSD$");
 #include <sys/lock.h>
 #include <sys/malloc.h>
 #include <sys/mutex.h>
+#include <sys/proc.h>
 #include <sys/sf_buf.h>
 #include <sys/smp.h>
 #include <sys/sysctl.h>

Modified: projects/netbsd-tests-upstream-01-2017/sys/modules/dtb/allwinner/Makefile
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/sys/modules/dtb/allwinner/Makefile	Tue Feb  7 18:37:46 2017	(r313398)
+++ projects/netbsd-tests-upstream-01-2017/sys/modules/dtb/allwinner/Makefile	Tue Feb  7 18:47:16 2017	(r313399)
@@ -1,17 +1,26 @@
 # $FreeBSD$
 # All the dts files for allwinner systems we support.
 DTS=	\
-	bananapi.dts \
-	bananapim2.dts \
-	cubieboard.dts \
-	cubieboard2.dts \
 	nanopi-neo.dts \
-	olimex-a20-som-evb.dts \
-	olinuxino-lime.dts \
 	orangepi-plus-2e.dts \
-	pcduino3.dts \
 	sinovoip-bpi-m3.dts \
+	sun4i-a10-cubieboard.dts \
+	sun4i-a10-olinuxino-lime.dts \
+	sun6i-a31s-sinovoip-bpi-m2.dts \
 	sun5i-a13-olinuxino.dts \
-	sun5i-r8-chip.dts
+	sun5i-r8-chip.dts \
+	sun7i-a20-bananapi.dts \
+	sun7i-a20-cubieboard2.dts \
+	sun7i-a20-olimex-som-evb.dts \
+	sun7i-a20-pcduino3.dts
+
+LINKS= \
+	${DTBDIR}/sun4i-a10-cubieboard.dtb ${DTBDIR}/cubieboard.dtb \
+	${DTBDIR}/sun4i-a10-olinuxino-lime.dtb ${DTBDIR}/olinuxino-lime.dtb \
+	${DTBDIR}/sun6i-a31s-sinovoip-bpi-m2.dtb ${DTBDIR}/bananapim2.dtb \
+	${DTBDIR}/sun7i-a20-bananapi.dtb ${DTBDIR}/bananapi.dtb \
+	${DTBDIR}/sun7i-a20-cubieboard2.dtb ${DTBDIR}/cubieboard2.dtb \
+	${DTBDIR}/sun7i-a20-olimex-som-evb.dtb ${DTBDIR}/olimex-a20-som-evb.dtb \
+	${DTBDIR}/sun7i-a20-pcduino3.dtb ${DTBDIR}/pcduino3.dtb
 
 .include <bsd.dtb.mk>

Modified: projects/netbsd-tests-upstream-01-2017/sys/sys/lock.h
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/sys/sys/lock.h	Tue Feb  7 18:37:46 2017	(r313398)
+++ projects/netbsd-tests-upstream-01-2017/sys/sys/lock.h	Tue Feb  7 18:47:16 2017	(r313399)
@@ -202,9 +202,7 @@ extern struct lock_class lock_class_lock
 extern struct lock_class *lock_classes[];
 
 struct lock_delay_config {
-	u_int initial;
-	u_int step;
-	u_int min;
+	u_int base;
 	u_int max;
 };
 
@@ -215,19 +213,25 @@ struct lock_delay_arg {
 };
 
 static inline void
-lock_delay_arg_init(struct lock_delay_arg *la, struct lock_delay_config *lc) {
+lock_delay_arg_init(struct lock_delay_arg *la, struct lock_delay_config *lc)
+{
 	la->config = lc;
-	la->delay = 0;
+	la->delay = lc->base;
 	la->spin_cnt = 0;
 }
 
 #define	LOCK_DELAY_SYSINIT(func) \
 	SYSINIT(func##_ld, SI_SUB_LOCK, SI_ORDER_ANY, func, NULL)
 
+#define	LOCK_DELAY_SYSINIT_DEFAULT(lc) \
+	SYSINIT(lock_delay_##lc##_ld, SI_SUB_LOCK, SI_ORDER_ANY, \
+	    lock_delay_default_init, &lc)
+
 void	lock_init(struct lock_object *, struct lock_class *,
 	    const char *, const char *, int);
 void	lock_destroy(struct lock_object *);
 void	lock_delay(struct lock_delay_arg *);
+void	lock_delay_default_init(struct lock_delay_config *);
 void	spinlock_enter(void);
 void	spinlock_exit(void);
 void	witness_init(struct lock_object *, const char *);

Modified: projects/netbsd-tests-upstream-01-2017/sys/sys/rwlock.h
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/sys/sys/rwlock.h	Tue Feb  7 18:37:46 2017	(r313398)
+++ projects/netbsd-tests-upstream-01-2017/sys/sys/rwlock.h	Tue Feb  7 18:47:16 2017	(r313399)
@@ -58,9 +58,10 @@
 #define	RW_LOCK_READ_WAITERS	0x02
 #define	RW_LOCK_WRITE_WAITERS	0x04
 #define	RW_LOCK_WRITE_SPINNER	0x08
+#define	RW_LOCK_WRITER_RECURSED	0x10
 #define	RW_LOCK_FLAGMASK						\
 	(RW_LOCK_READ | RW_LOCK_READ_WAITERS | RW_LOCK_WRITE_WAITERS |	\
-	RW_LOCK_WRITE_SPINNER)
+	RW_LOCK_WRITE_SPINNER | RW_LOCK_WRITER_RECURSED)
 #define	RW_LOCK_WAITERS		(RW_LOCK_READ_WAITERS | RW_LOCK_WRITE_WAITERS)
 
 #define	RW_OWNER(x)		((x) & ~RW_LOCK_FLAGMASK)
@@ -111,13 +112,9 @@
 #define	__rw_wunlock(rw, tid, file, line) do {				\
 	uintptr_t _tid = (uintptr_t)(tid);				\
 									\
-	if ((rw)->rw_recurse)						\
-		(rw)->rw_recurse--;					\
-	else {								\
-		if (__predict_false(LOCKSTAT_PROFILE_ENABLED(rw__release) ||\
-		    !_rw_write_unlock((rw), _tid)))			\
-			_rw_wunlock_hard((rw), _tid, (file), (line));	\
-	}								\
+	if (__predict_false(LOCKSTAT_PROFILE_ENABLED(rw__release) ||	\
+	    !_rw_write_unlock((rw), _tid)))				\
+		_rw_wunlock_hard((rw), _tid, (file), (line));		\
 } while (0)
 
 /*

Modified: projects/netbsd-tests-upstream-01-2017/tests/sys/netinet/fibs_test.sh
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/tests/sys/netinet/fibs_test.sh	Tue Feb  7 18:37:46 2017	(r313398)
+++ projects/netbsd-tests-upstream-01-2017/tests/sys/netinet/fibs_test.sh	Tue Feb  7 18:47:16 2017	(r313399)
@@ -595,6 +595,61 @@ udp_dontroute_cleanup()
 	cleanup_tap
 }
 
+atf_test_case udp_dontroute6 cleanup
+udp_dontroute6_head()
+{
+	atf_set "descr" "Source address selection for UDP IPv6 packets with SO_DONTROUTE on non-default FIBs works"
+	atf_set "require.user" "root"
+	atf_set "require.config" "fibs"
+}
+
+udp_dontroute6_body()
+{
+	# Configure the TAP interface to use an RFC3849 nonrouteable address
+	# and a non-default fib
+	ADDR0="2001:db8::2"
+	ADDR1="2001:db8::3"
+	SUBNET="2001:db8::"
+	MASK="64"
+	# Use a different IP on the same subnet as the target
+	TARGET="2001:db8::100"
+	SRCDIR=`atf_get_srcdir`
+
+	atf_expect_fail "PR196361 IPv6 network routes don't respect net.add_addr_allfibs=0"
+
+	# Check system configuration
+	if [ 0 != `sysctl -n net.add_addr_allfibs` ]; then
+		atf_skip "This test requires net.add_addr_allfibs=0"
+	fi
+	get_fibs 2
+
+	# Configure the TAP interfaces.  Use no_dad so the addresses will be
+	# ready right away and won't be marked as tentative until DAD
+	# completes.
+	setup_tap ${FIB0} inet6 ${ADDR0} ${MASK} no_dad
+	TARGET_TAP=${TAP}
+	setup_tap ${FIB1} inet6 ${ADDR1} ${MASK} no_dad
+
+	# Send a UDP packet with SO_DONTROUTE.  In the failure case, it will
+	# return ENETUNREACH, or send the packet to the wrong tap
+	atf_check -o ignore setfib ${FIB0} \
+		${SRCDIR}/udp_dontroute -6 ${TARGET} /dev/${TARGET_TAP}
+	cleanup_tap
+
+	# Repeat, but this time target the other tap
+	setup_tap ${FIB0} inet6 ${ADDR0} ${MASK} no_dad
+	setup_tap ${FIB1} inet6 ${ADDR1} ${MASK} no_dad
+	TARGET_TAP=${TAP}
+
+	atf_check -o ignore setfib ${FIB1} \
+		${SRCDIR}/udp_dontroute -6 ${TARGET} /dev/${TARGET_TAP}
+}
+
+udp_dontroute6_cleanup()
+{
+	cleanup_tap
+}
+
 
 atf_init_test_cases()
 {
@@ -609,6 +664,7 @@ atf_init_test_cases()
 	atf_add_test_case subnet_route_with_multiple_fibs_on_same_subnet
 	atf_add_test_case subnet_route_with_multiple_fibs_on_same_subnet_inet6
 	atf_add_test_case udp_dontroute
+	atf_add_test_case udp_dontroute6
 }
 
 # Looks up one or more fibs from the configuration data and validates them.
@@ -656,6 +712,7 @@ get_tap()
 # Protocol (inet or inet6)
 # IP address
 # Netmask in number of bits (eg 24 or 8)
+# Extra flags
 # Return: the tap interface name as the env variable TAP
 setup_tap()
 {
@@ -663,9 +720,10 @@ setup_tap()
 	local PROTO=$2
 	local ADDR=$3
 	local MASK=$4
+	local FLAGS=$5
 	get_tap
-	echo setfib ${FIB} ifconfig $TAP ${PROTO} ${ADDR}/${MASK} fib $FIB
-	setfib ${FIB} ifconfig $TAP ${PROTO} ${ADDR}/${MASK} fib $FIB
+	echo setfib ${FIB} ifconfig $TAP ${PROTO} ${ADDR}/${MASK} fib $FIB $FLAGS
+	setfib ${FIB} ifconfig $TAP ${PROTO} ${ADDR}/${MASK} fib $FIB $FLAGS
 }
 
 cleanup_tap()

Modified: projects/netbsd-tests-upstream-01-2017/tests/sys/netinet/udp_dontroute.c
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/tests/sys/netinet/udp_dontroute.c	Tue Feb  7 18:37:46 2017	(r313398)
+++ projects/netbsd-tests-upstream-01-2017/tests/sys/netinet/udp_dontroute.c	Tue Feb  7 18:47:16 2017	(r313399)
@@ -41,6 +41,7 @@
 #include <errno.h>
 #include <fcntl.h>
 #include <stdio.h>
+#include <stdbool.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
@@ -52,7 +53,7 @@
 int
 main(int argc, char **argv)
 {
-	struct sockaddr_in dst;
+	struct sockaddr_storage dst;
 	int s, t;
 	int opt;
 	int ret;
@@ -60,17 +61,33 @@ main(int argc, char **argv)
 	const char* sendbuf = "Hello, World!";
 	const size_t buflen = 80;
 	char recvbuf[buflen];
-
-	if (argc != 3) {
-		fprintf(stderr, "Usage: %s ip_address tapdev\n", argv[0]);
+	bool v6 = false;
+	const char *addr, *tapdev;
+	const uint16_t port = 46120;
+
+	bzero(&dst, sizeof(dst));
+	if (argc < 3 || argc > 4) {
+		fprintf(stderr, "Usage: %s [-6] ip_address tapdev\n", argv[0]);
 		exit(2);
 	}
 
-	t = open(argv[2], O_RDWR | O_NONBLOCK);
+	if (strcmp("-6", argv[1]) == 0) {
+		v6 = true;
+		addr = argv[2];
+		tapdev = argv[3];
+	} else {
+		addr = argv[1];
+		tapdev = argv[2];
+	}
+
+	t = open(tapdev, O_RDWR | O_NONBLOCK);
 	if (t < 0)
 		err(EXIT_FAILURE, "open");
 
-	s = socket(PF_INET, SOCK_DGRAM, 0);
+	if (v6)
+		s = socket(PF_INET6, SOCK_DGRAM, 0);
+	else
+		s = socket(PF_INET, SOCK_DGRAM, 0);
 	if (s < 0)
 		err(EXIT_FAILURE, "socket");
 	opt = 1;
@@ -79,16 +96,26 @@ main(int argc, char **argv)
 	if (ret == -1)
 		err(EXIT_FAILURE, "setsockopt(SO_DONTROUTE)");
 
-	dst.sin_len = sizeof(dst);
-	dst.sin_family = AF_INET;
-	dst.sin_port = htons(46120);
-	dst.sin_addr.s_addr = inet_addr(argv[1]);
-	if (dst.sin_addr.s_addr == htonl(INADDR_NONE)) {
-		fprintf(stderr, "Invalid address: %s\n", argv[1]);
-		exit(2);
+	if (v6) {
+		struct sockaddr_in6 *dst6 = ((struct sockaddr_in6*)&dst);
+
+		dst.ss_len = sizeof(struct sockaddr_in6);
+		dst.ss_family = AF_INET6;
+		dst6->sin6_port = htons(port);
+		ret = inet_pton(AF_INET6, addr, &dst6->sin6_addr);
+	} else {
+		struct sockaddr_in *dst4 = ((struct sockaddr_in*)&dst);
+
+		dst.ss_len = sizeof(struct sockaddr_in);
+		dst.ss_family = AF_INET;
+		dst4->sin_port = htons(port);
+		ret = inet_pton(AF_INET, addr, &dst4->sin_addr);
 	}
+	if (ret != 1)
+		err(EXIT_FAILURE, "inet_pton returned %d", ret);
+
 	ret = sendto(s, sendbuf, strlen(sendbuf), 0, (struct sockaddr*)&dst,
-	    dst.sin_len);
+	    dst.ss_len);
 	if (ret == -1)
 		err(EXIT_FAILURE, "sendto");
 

Modified: projects/netbsd-tests-upstream-01-2017/usr.bin/sed/tests/sed2_test.sh
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/usr.bin/sed/tests/sed2_test.sh	Tue Feb  7 18:37:46 2017	(r313398)
+++ projects/netbsd-tests-upstream-01-2017/usr.bin/sed/tests/sed2_test.sh	Tue Feb  7 18:47:16 2017	(r313399)
@@ -47,8 +47,6 @@ inplace_symlink_src_head()
 }
 inplace_symlink_src_body()
 {
-	atf_expect_fail "Check for S_IFREG reverted in r312404"
-
 	echo foo > a
 	atf_check ln -s a b
 	atf_check -e not-empty -s not-exit:0 sed -i '' -e 's,foo,bar,g' b

From owner-svn-src-projects@freebsd.org  Tue Feb  7 18:57:53 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 52CF6CD448A
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Tue,  7 Feb 2017 18:57:53 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 225341C84;
 Tue,  7 Feb 2017 18:57:53 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v17IvqTt018242;
 Tue, 7 Feb 2017 18:57:52 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v17IvqLg018241;
 Tue, 7 Feb 2017 18:57:52 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201702071857.v17IvqLg018241@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Tue, 7 Feb 2017 18:57:52 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r313400 -
 projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libm
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 07 Feb 2017 18:57:53 -0000

Author: ngie
Date: Tue Feb  7 18:57:52 2017
New Revision: 313400
URL: https://svnweb.freebsd.org/changeset/base/313400

Log:
  Expect the t_precision long double checks to fail on FreeBSD/i386
  
  There are some potential issues with the test (as brd@ has pointed out
  elsewhere) with precision, etc not being set before the test, but as
  always, more research is required.

Modified:
  projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libm/t_precision.c

Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libm/t_precision.c
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libm/t_precision.c	Tue Feb  7 18:47:16 2017	(r313399)
+++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libm/t_precision.c	Tue Feb  7 18:57:52 2017	(r313400)
@@ -73,6 +73,11 @@ ATF_TC_BODY(t_precision, tc)
 
 ATF_TP_ADD_TCS(tp)
 {
+#ifdef	__FreeBSD__
+#ifdef	__i386__
+	atf_tc_expect_fail("the __HAVE_LONG_DOUBLE checks fail on i386");
+#endif
+#endif
 	ATF_TP_ADD_TC(tp, t_precision);
 
 	return atf_no_error();

From owner-svn-src-projects@freebsd.org  Tue Feb  7 19:03:01 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 049ADCD47A5
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Tue,  7 Feb 2017 19:03:01 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id C86702C3;
 Tue,  7 Feb 2017 19:03:00 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v17J2xYP022028;
 Tue, 7 Feb 2017 19:02:59 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v17J2xBb022027;
 Tue, 7 Feb 2017 19:02:59 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201702071902.v17J2xBb022027@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Tue, 7 Feb 2017 19:02:59 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r313402 -
 projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libm
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 07 Feb 2017 19:03:01 -0000

Author: ngie
Date: Tue Feb  7 19:02:59 2017
New Revision: 313402
URL: https://svnweb.freebsd.org/changeset/base/313402

Log:
  Oops... put the atf_tc_expect_fail in the testcase definition, not the
  test suite definition

Modified:
  projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libm/t_precision.c

Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libm/t_precision.c
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libm/t_precision.c	Tue Feb  7 18:57:57 2017	(r313401)
+++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libm/t_precision.c	Tue Feb  7 19:02:59 2017	(r313402)
@@ -51,6 +51,11 @@ volatile long double y = 1;
 
 ATF_TC_BODY(t_precision, tc)
 {
+#ifdef	__FreeBSD__
+#ifdef	__i386__
+	atf_tc_expect_fail("the __HAVE_LONG_DOUBLE checks fail on i386");
+#endif
+#endif
 	x += DBL_EPSILON;
 	ATF_CHECK(x != 1.0);
 	x -= 1;
@@ -73,11 +78,6 @@ ATF_TC_BODY(t_precision, tc)
 
 ATF_TP_ADD_TCS(tp)
 {
-#ifdef	__FreeBSD__
-#ifdef	__i386__
-	atf_tc_expect_fail("the __HAVE_LONG_DOUBLE checks fail on i386");
-#endif
-#endif
 	ATF_TP_ADD_TC(tp, t_precision);
 
 	return atf_no_error();

From owner-svn-src-projects@freebsd.org  Tue Feb  7 19:47:06 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 37CAECD55F8
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Tue,  7 Feb 2017 19:47:06 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id DF228E8;
 Tue,  7 Feb 2017 19:47:05 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v17Jl4Zk038949;
 Tue, 7 Feb 2017 19:47:04 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v17Jl4ci038948;
 Tue, 7 Feb 2017 19:47:04 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201702071947.v17Jl4ci038948@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Tue, 7 Feb 2017 19:47:04 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r313405 -
 projects/netbsd-tests-upstream-01-2017/lib/libnetbsd
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 07 Feb 2017 19:47:06 -0000

Author: ngie
Date: Tue Feb  7 19:47:04 2017
New Revision: 313405
URL: https://svnweb.freebsd.org/changeset/base/313405

Log:
  Remove placeholder compat header for stdio.h
  
  In the end, dealing with fparseln was more bikeshed worthy than I
  anticipated, and polling stdio.h with libutil.h caused me more
  grief than necessary. Keeping the compat header around for no
  reason other than include_next'ing the stdio.h header in FreeBSD
  makes no sense.

Deleted:
  projects/netbsd-tests-upstream-01-2017/lib/libnetbsd/stdio.h

From owner-svn-src-projects@freebsd.org  Tue Feb  7 19:47:32 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4AA6BCD5611
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Tue,  7 Feb 2017 19:47:32 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 198E8211;
 Tue,  7 Feb 2017 19:47:32 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v17JlVTV039016;
 Tue, 7 Feb 2017 19:47:31 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v17JlULF039013;
 Tue, 7 Feb 2017 19:47:30 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201702071947.v17JlULF039013@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Tue, 7 Feb 2017 19:47:30 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r313406 - in projects/netbsd-tests-upstream-01-2017:
 lib/libnetbsd sys/arm/allwinner sys/netinet
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 07 Feb 2017 19:47:32 -0000

Author: ngie
Date: Tue Feb  7 19:47:30 2017
New Revision: 313406
URL: https://svnweb.freebsd.org/changeset/base/313406

Log:
  MFhead@r313404

Added:
  projects/netbsd-tests-upstream-01-2017/sys/arm/allwinner/a10_timer.c
     - copied unchanged from r313404, head/sys/arm/allwinner/a10_timer.c
Deleted:
  projects/netbsd-tests-upstream-01-2017/sys/arm/allwinner/timer.c
Modified:
  projects/netbsd-tests-upstream-01-2017/lib/libnetbsd/util.h
  projects/netbsd-tests-upstream-01-2017/sys/arm/allwinner/files.allwinner_up
  projects/netbsd-tests-upstream-01-2017/sys/netinet/udp_usrreq.c
Directory Properties:
  projects/netbsd-tests-upstream-01-2017/   (props changed)

Modified: projects/netbsd-tests-upstream-01-2017/lib/libnetbsd/util.h
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/lib/libnetbsd/util.h	Tue Feb  7 19:47:04 2017	(r313405)
+++ projects/netbsd-tests-upstream-01-2017/lib/libnetbsd/util.h	Tue Feb  7 19:47:30 2017	(r313406)
@@ -39,4 +39,4 @@
 char	*flags_to_string(u_long flags, const char *def);
 int	 string_to_flags(char **stringp, u_long *setp, u_long *clrp);
 
-#endif	/* _UTIL_H_ */
+#endif

Copied: projects/netbsd-tests-upstream-01-2017/sys/arm/allwinner/a10_timer.c (from r313404, head/sys/arm/allwinner/a10_timer.c)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/netbsd-tests-upstream-01-2017/sys/arm/allwinner/a10_timer.c	Tue Feb  7 19:47:30 2017	(r313406, copy of r313404, head/sys/arm/allwinner/a10_timer.c)
@@ -0,0 +1,367 @@
+/*-
+ * Copyright (c) 2012 Ganbold Tsagaankhuu <ganbold@freebsd.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/bus.h>
+#include <sys/kernel.h>
+#include <sys/module.h>
+#include <sys/malloc.h>
+#include <sys/rman.h>
+#include <sys/timeet.h>
+#include <sys/timetc.h>
+#include <sys/watchdog.h>
+#include <machine/bus.h>
+#include <machine/cpu.h>
+#include <machine/intr.h>
+#include <machine/machdep.h>
+
+#include <dev/ofw/openfirm.h>
+#include <dev/ofw/ofw_bus.h>
+#include <dev/ofw/ofw_bus_subr.h>
+
+#include <machine/bus.h>
+
+#include <sys/kdb.h>
+
+#include <arm/allwinner/aw_machdep.h>
+
+/**
+ * Timer registers addr
+ *
+ */
+#define SW_TIMER_IRQ_EN_REG 	0x00
+#define SW_TIMER_IRQ_STA_REG 	0x04
+#define SW_TIMER0_CTRL_REG 	0x10
+#define SW_TIMER0_INT_VALUE_REG	0x14
+#define SW_TIMER0_CUR_VALUE_REG	0x18
+
+#define SW_COUNTER64LO_REG	0xa4
+#define SW_COUNTER64HI_REG	0xa8
+#define CNT64_CTRL_REG		0xa0
+
+#define CNT64_RL_EN		0x02 /* read latch enable */
+
+#define TIMER_ENABLE		(1<<0)
+#define TIMER_AUTORELOAD	(1<<1)
+#define TIMER_OSC24M		(1<<2) /* oscillator = 24mhz */
+#define TIMER_PRESCALAR		(0<<4) /* prescalar = 1 */
+
+#define SYS_TIMER_CLKSRC	24000000 /* clock source */
+
+struct a10_timer_softc {
+	device_t 	sc_dev;
+	struct resource *res[2];
+	bus_space_tag_t sc_bst;
+	bus_space_handle_t sc_bsh;
+	void 		*sc_ih;		/* interrupt handler */
+	uint32_t 	sc_period;
+	uint32_t 	timer0_freq;
+	struct eventtimer et;
+};
+
+int a10_timer_get_timerfreq(struct a10_timer_softc *);
+
+#define timer_read_4(sc, reg)	\
+	bus_space_read_4(sc->sc_bst, sc->sc_bsh, reg)
+#define timer_write_4(sc, reg, val)	\
+	bus_space_write_4(sc->sc_bst, sc->sc_bsh, reg, val)
+
+static u_int	a10_timer_get_timecount(struct timecounter *);
+static int	a10_timer_timer_start(struct eventtimer *,
+    sbintime_t first, sbintime_t period);
+static int	a10_timer_timer_stop(struct eventtimer *);
+
+static uint64_t timer_read_counter64(void);
+
+static int a10_timer_hardclock(void *);
+static int a10_timer_probe(device_t);
+static int a10_timer_attach(device_t);
+
+static delay_func a10_timer_delay;
+
+static struct timecounter a10_timer_timecounter = {
+	.tc_name           = "a10_timer timer0",
+	.tc_get_timecount  = a10_timer_get_timecount,
+	.tc_counter_mask   = ~0u,
+	.tc_frequency      = 0,
+	.tc_quality        = 1000,
+};
+
+struct a10_timer_softc *a10_timer_sc = NULL;
+
+static struct resource_spec a10_timer_spec[] = {
+	{ SYS_RES_MEMORY,	0,	RF_ACTIVE },
+	{ SYS_RES_IRQ,		0,	RF_ACTIVE },
+	{ -1, 0 }
+};
+
+static uint64_t
+timer_read_counter64(void)
+{
+	uint32_t lo, hi;
+
+	/* Latch counter, wait for it to be ready to read. */
+	timer_write_4(a10_timer_sc, CNT64_CTRL_REG, CNT64_RL_EN);
+	while (timer_read_4(a10_timer_sc, CNT64_CTRL_REG) & CNT64_RL_EN)
+		continue;
+
+	hi = timer_read_4(a10_timer_sc, SW_COUNTER64HI_REG);
+	lo = timer_read_4(a10_timer_sc, SW_COUNTER64LO_REG);
+
+	return (((uint64_t)hi << 32) | lo);
+}
+
+static int
+a10_timer_probe(device_t dev)
+{
+	struct a10_timer_softc *sc;
+	u_int soc_family;
+
+	sc = device_get_softc(dev);
+
+	if (!ofw_bus_is_compatible(dev, "allwinner,sun4i-a10-timer"))
+		return (ENXIO);
+
+	soc_family = allwinner_soc_family();
+	if (soc_family != ALLWINNERSOC_SUN4I &&
+	    soc_family != ALLWINNERSOC_SUN5I)
+		return (ENXIO);
+
+	device_set_desc(dev, "Allwinner A10/A20 timer");
+	return (BUS_PROBE_DEFAULT);
+}
+
+static int
+a10_timer_attach(device_t dev)
+{
+	struct a10_timer_softc *sc;
+	int err;
+	uint32_t val;
+
+	sc = device_get_softc(dev);
+
+	if (bus_alloc_resources(dev, a10_timer_spec, sc->res)) {
+		device_printf(dev, "could not allocate resources\n");
+		return (ENXIO);
+	}
+
+	sc->sc_dev = dev;
+	sc->sc_bst = rman_get_bustag(sc->res[0]);
+	sc->sc_bsh = rman_get_bushandle(sc->res[0]);
+
+	/* Setup and enable the timer interrupt */
+	err = bus_setup_intr(dev, sc->res[1], INTR_TYPE_CLK, a10_timer_hardclock,
+	    NULL, sc, &sc->sc_ih);
+	if (err != 0) {
+		bus_release_resources(dev, a10_timer_spec, sc->res);
+		device_printf(dev, "Unable to setup the clock irq handler, "
+		    "err = %d\n", err);
+		return (ENXIO);
+	}
+
+	/* Set clock source to OSC24M, 16 pre-division */
+	val = timer_read_4(sc, SW_TIMER0_CTRL_REG);
+	val |= TIMER_PRESCALAR | TIMER_OSC24M;
+	timer_write_4(sc, SW_TIMER0_CTRL_REG, val);
+
+	/* Enable timer0 */
+	val = timer_read_4(sc, SW_TIMER_IRQ_EN_REG);
+	val |= TIMER_ENABLE;
+	timer_write_4(sc, SW_TIMER_IRQ_EN_REG, val);
+
+	sc->timer0_freq = SYS_TIMER_CLKSRC;
+
+	/* Set desired frequency in event timer and timecounter */
+	sc->et.et_frequency = sc->timer0_freq;
+	sc->et.et_name = "a10_timer Eventtimer";
+	sc->et.et_flags = ET_FLAGS_ONESHOT | ET_FLAGS_PERIODIC;
+	sc->et.et_quality = 1000;
+	sc->et.et_min_period = (0x00000005LLU << 32) / sc->et.et_frequency;
+	sc->et.et_max_period = (0xfffffffeLLU << 32) / sc->et.et_frequency;
+	sc->et.et_start = a10_timer_timer_start;
+	sc->et.et_stop = a10_timer_timer_stop;
+	sc->et.et_priv = sc;
+	et_register(&sc->et);
+
+	if (device_get_unit(dev) == 0) {
+		arm_set_delay(a10_timer_delay, sc);
+		a10_timer_sc = sc;
+	}
+
+	a10_timer_timecounter.tc_frequency = sc->timer0_freq;
+	tc_init(&a10_timer_timecounter);
+
+	if (bootverbose) {
+		device_printf(sc->sc_dev, "clock: hz=%d stathz = %d\n", hz, stathz);
+
+		device_printf(sc->sc_dev, "event timer clock frequency %u\n", 
+		    sc->timer0_freq);
+		device_printf(sc->sc_dev, "timecounter clock frequency %lld\n", 
+		    a10_timer_timecounter.tc_frequency);
+	}
+
+	return (0);
+}
+
+static int
+a10_timer_timer_start(struct eventtimer *et, sbintime_t first,
+    sbintime_t period)
+{
+	struct a10_timer_softc *sc;
+	uint32_t count;
+	uint32_t val;
+
+	sc = (struct a10_timer_softc *)et->et_priv;
+
+	if (period != 0)
+		sc->sc_period = ((uint32_t)et->et_frequency * period) >> 32;
+	else
+		sc->sc_period = 0;
+	if (first != 0)
+		count = ((uint32_t)et->et_frequency * first) >> 32;
+	else
+		count = sc->sc_period;
+
+	/* Update timer values */
+	timer_write_4(sc, SW_TIMER0_INT_VALUE_REG, sc->sc_period);
+	timer_write_4(sc, SW_TIMER0_CUR_VALUE_REG, count);
+
+	val = timer_read_4(sc, SW_TIMER0_CTRL_REG);
+	if (period != 0) {
+		/* periodic */
+		val |= TIMER_AUTORELOAD;
+	} else {
+		/* oneshot */
+		val &= ~TIMER_AUTORELOAD;
+	}
+	/* Enable timer0 */
+	val |= TIMER_ENABLE;
+	timer_write_4(sc, SW_TIMER0_CTRL_REG, val);
+
+	return (0);
+}
+
+static int
+a10_timer_timer_stop(struct eventtimer *et)
+{
+	struct a10_timer_softc *sc;
+	uint32_t val;
+
+	sc = (struct a10_timer_softc *)et->et_priv;
+
+	/* Disable timer0 */
+	val = timer_read_4(sc, SW_TIMER0_CTRL_REG);
+	val &= ~TIMER_ENABLE;
+	timer_write_4(sc, SW_TIMER0_CTRL_REG, val);
+
+	sc->sc_period = 0;
+
+	return (0);
+}
+
+int
+a10_timer_get_timerfreq(struct a10_timer_softc *sc)
+{
+	return (sc->timer0_freq);
+}
+
+static int
+a10_timer_hardclock(void *arg)
+{
+	struct a10_timer_softc *sc;
+	uint32_t val;
+
+	sc = (struct a10_timer_softc *)arg;
+
+	/* Clear interrupt pending bit. */
+	timer_write_4(sc, SW_TIMER_IRQ_STA_REG, 0x1);
+
+	val = timer_read_4(sc, SW_TIMER0_CTRL_REG);
+	/*
+	 * Disabled autoreload and sc_period > 0 means 
+	 * timer_start was called with non NULL first value.
+	 * Now we will set periodic timer with the given period 
+	 * value.
+	 */
+	if ((val & (1<<1)) == 0 && sc->sc_period > 0) {
+		/* Update timer */
+		timer_write_4(sc, SW_TIMER0_CUR_VALUE_REG, sc->sc_period);
+
+		/* Make periodic and enable */
+		val |= TIMER_AUTORELOAD | TIMER_ENABLE;
+		timer_write_4(sc, SW_TIMER0_CTRL_REG, val);
+	}
+
+	if (sc->et.et_active)
+		sc->et.et_event_cb(&sc->et, sc->et.et_arg);
+
+	return (FILTER_HANDLED);
+}
+
+u_int
+a10_timer_get_timecount(struct timecounter *tc)
+{
+
+	if (a10_timer_sc == NULL)
+		return (0);
+
+	return ((u_int)timer_read_counter64());
+}
+
+static device_method_t a10_timer_methods[] = {
+	DEVMETHOD(device_probe,		a10_timer_probe),
+	DEVMETHOD(device_attach,	a10_timer_attach),
+
+	DEVMETHOD_END
+};
+
+static driver_t a10_timer_driver = {
+	"a10_timer",
+	a10_timer_methods,
+	sizeof(struct a10_timer_softc),
+};
+
+static devclass_t a10_timer_devclass;
+
+EARLY_DRIVER_MODULE(a10_timer, simplebus, a10_timer_driver, a10_timer_devclass, 0, 0,
+    BUS_PASS_TIMER + BUS_PASS_ORDER_MIDDLE);
+
+static void
+a10_timer_delay(int usec, void *arg)
+{
+	struct a10_timer_softc *sc = arg;
+	uint64_t end, now;
+
+	now = timer_read_counter64();
+	end = now + (sc->timer0_freq / 1000000) * (usec + 1);
+
+	while (now < end)
+		now = timer_read_counter64();
+}

Modified: projects/netbsd-tests-upstream-01-2017/sys/arm/allwinner/files.allwinner_up
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/sys/arm/allwinner/files.allwinner_up	Tue Feb  7 19:47:04 2017	(r313405)
+++ projects/netbsd-tests-upstream-01-2017/sys/arm/allwinner/files.allwinner_up	Tue Feb  7 19:47:30 2017	(r313406)
@@ -1,3 +1,3 @@
 # $FreeBSD$
 
-arm/allwinner/timer.c			standard
+arm/allwinner/a10_timer.c		standard

Modified: projects/netbsd-tests-upstream-01-2017/sys/netinet/udp_usrreq.c
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/sys/netinet/udp_usrreq.c	Tue Feb  7 19:47:04 2017	(r313405)
+++ projects/netbsd-tests-upstream-01-2017/sys/netinet/udp_usrreq.c	Tue Feb  7 19:47:30 2017	(r313406)
@@ -667,13 +667,13 @@ udp_input(struct mbuf **mp, int *offp, i
 		    INPLOOKUP_RLOCKPCB, ifp, m);
 	if (inp == NULL) {
 		if (udp_log_in_vain) {
-			char buf[4*sizeof "123"];
+			char src[INET_ADDRSTRLEN];
+			char dst[INET_ADDRSTRLEN];
 
-			strcpy(buf, inet_ntoa(ip->ip_dst));
 			log(LOG_INFO,
 			    "Connection attempt to UDP %s:%d from %s:%d\n",
-			    buf, ntohs(uh->uh_dport), inet_ntoa(ip->ip_src),
-			    ntohs(uh->uh_sport));
+			    inet_ntoa_r(ip->ip_dst, dst), ntohs(uh->uh_dport),
+			    inet_ntoa_r(ip->ip_src, src), ntohs(uh->uh_sport));
 		}
 		UDPSTAT_INC(udps_noport);
 		if (m->m_flags & (M_BCAST | M_MCAST)) {

From owner-svn-src-projects@freebsd.org  Tue Feb  7 19:48:29 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0CB2DCD5630
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Tue,  7 Feb 2017 19:48:29 +0000 (UTC)
 (envelope-from yaneurabeya@gmail.com)
Received: from mail-pf0-x241.google.com (mail-pf0-x241.google.com
 [IPv6:2607:f8b0:400e:c00::241])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (Client CN "smtp.gmail.com",
 Issuer "Google Internet Authority G2" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id CEA9B32A;
 Tue,  7 Feb 2017 19:48:28 +0000 (UTC)
 (envelope-from yaneurabeya@gmail.com)
Received: by mail-pf0-x241.google.com with SMTP id y143so9909908pfb.1;
 Tue, 07 Feb 2017 11:48:28 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=subject:mime-version:from:in-reply-to:date:cc:message-id:references
 :to; bh=LjN0KL+GKaB5cQeRp/1x8DOiHFLXw3Z1rtZH2x3Si8g=;
 b=kFWxG4RINt+33aNm8Kn+dbeYC57fnE0yG2tjTCWobrMN156XXR8coZRUEStmZ7BQCJ
 1oOrOQWKgRWfCC8LiXn0MGSNWeoEL70Wb9ROZUSttJ+s9YxEt5W6G3pAqIt7fHPDqSvf
 ZLc7fffNJJpRbI8d0gdO6JVVU3vg89ns/2WDqJneSiZ9lMbKQAw7iZJo523RfTL2nVlU
 4+ON5hVaGYPTb8UvsJ4wZ0sqCkryMruliuBFDXdjpXZNUL8J1sMtJO8tOlfxrgjWAKnC
 I1flnknlsyjfA6NnKICaOvadY3axXeoIc0OufdkQXpZsEjbedC6kbtyyjTAZsFQtN6xG
 vPew==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:subject:mime-version:from:in-reply-to:date:cc
 :message-id:references:to;
 bh=LjN0KL+GKaB5cQeRp/1x8DOiHFLXw3Z1rtZH2x3Si8g=;
 b=SNqtsTr2jO3Ry5Csg+kwKB1glP3aAoLP1FBW1L/vFGiOSiazGIJU5UHVLAJL2FGvv2
 Af7Ouum3e1dFgcS/AeWGYCFNThK8CC7AHOhgFoTgoM5kXykfk2JTidYpq1XfSJ3Pvi1Y
 OEsg48SOiOqmNTQxAjOIFRdsv2ik5SKYIkGRfayVE/IPCBWJvJK5z4BiaFhnhQtz3IOk
 mUJtkbtiRR5O+NT7ion6AkGiRzI9ODYNg+8t782hcx3hIqA9b+giM60nL3HNLj5NL8cq
 T7dTdky4bAL3NW3x4vAuWhgkoSToXu+cnM8we/5oZ+HQ/rLoT3R4+WGCMk+m06KjOKAZ
 ckTg==
X-Gm-Message-State: AIkVDXLjwv7uJ2hbX6eZyLuC+g6uO+7Jm5GBW+5s9Zdq95yt7KrygvVQirPK4HjnCrZeUw==
X-Received: by 10.99.98.132 with SMTP id w126mr22146246pgb.59.1486496908311;
 Tue, 07 Feb 2017 11:48:28 -0800 (PST)
Received: from pinklady.local (c-73-19-52-228.hsd1.wa.comcast.net.
 [73.19.52.228])
 by smtp.gmail.com with ESMTPSA id r8sm13501705pfi.82.2017.02.07.11.48.27
 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
 Tue, 07 Feb 2017 11:48:27 -0800 (PST)
Subject: Re: svn commit: r313405 -
 projects/netbsd-tests-upstream-01-2017/lib/libnetbsd
Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\))
Content-Type: multipart/signed;
 boundary="Apple-Mail=_3C318CFE-19D6-4254-8E59-A3BCAE9DB85E";
 protocol="application/pgp-signature"; micalg=pgp-sha512
X-Pgp-Agent: GPGMail
From: "Ngie Cooper (yaneurabeya)" <yaneurabeya@gmail.com>
In-Reply-To: <201702071947.v17Jl4ci038948@repo.freebsd.org>
Date: Tue, 7 Feb 2017 11:48:26 -0800
Cc: src-committers@freebsd.org,
 svn-src-projects@freebsd.org
Message-Id: <3FB75A32-6144-48F2-AD90-40A6206698EC@gmail.com>
References: <201702071947.v17Jl4ci038948@repo.freebsd.org>
To: Ngie Cooper <ngie@FreeBSD.org>
X-Mailer: Apple Mail (2.3124)
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 07 Feb 2017 19:48:29 -0000


--Apple-Mail=_3C318CFE-19D6-4254-8E59-A3BCAE9DB85E
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8


> On Feb 7, 2017, at 11:47, Ngie Cooper <ngie@FreeBSD.org> wrote:
>=20
> Author: ngie
> Date: Tue Feb  7 19:47:04 2017
> New Revision: 313405
> URL: https://svnweb.freebsd.org/changeset/base/313405
>=20
> Log:
>  Remove placeholder compat header for stdio.h
>=20
>  In the end, dealing with fparseln was more bikeshed worthy than I
>  anticipated, and polling stdio.h with libutil.h caused me more

polling -> pulling in

=E2=80=A6 hah. An amusing brain fart.

-Ngie

--Apple-Mail=_3C318CFE-19D6-4254-8E59-A3BCAE9DB85E
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename=signature.asc
Content-Type: application/pgp-signature;
	name=signature.asc
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJYmiSKAAoJEPWDqSZpMIYVPhgQAJJqJEQ4rwvk4Joho1+M2SA9
fIdHsOj7hwzGgm1Hqtoqq0NI6pFQwZjtmNyrCKxbImrkAMchVAuzTwEjUulcZOJp
3sEMKuBLQTwLP0b2TN09OdpTYX9+mksEErUMx08l1O8Xnu6hnuA6bx2WlLrEL+o0
U0msId8myM6W52dgYK91OMa9c8csMyZnXJGIyDdNLG2qdopWlXzVt2+6ZYat2Z3g
oCSqsS0dHQCBjNTnxZ8itKHfPLEK+EiH0K/pvuEHsdi3/0zpfNmTVsg0a/9Scd7y
oHL9vxG3U2nKGiC13svcWIRGd1ROHNF7vlvmHT7XjEFcoooy1jcYEftJcVqIAkOM
oDTQPzVVO3onuHdP8a4g66YBkhhYOTrX5ZzPU1nSEJpUnKtu9ZKt8MHOisKj2VT+
3XevQao9kOAigjESMDDvNNonyMhhFb342S45nwOiY7QIH7pKolaXeXJxJIb6DkOA
tdH6ZT3zylEFllC1zbx4InmL62+mf4jMBKWxKEQ5SKgfw3che2mBKLBW3LIdw/Ys
VLboYqOoTjZ8ek5uBphQViRFp3L0pdmTgsX0Fje4KM0eo8hzSW6UFBaJtCV6T8tR
HQIlzffDI+KaK48ensx6Vbt8/4oX31tSXvREA+jhVWXMy19oVQYmc749N/8k7xVy
cLjd46a09k8FfRYznetT
=q5lL
-----END PGP SIGNATURE-----

--Apple-Mail=_3C318CFE-19D6-4254-8E59-A3BCAE9DB85E--

From owner-svn-src-projects@freebsd.org  Wed Feb  8 08:55:07 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8D78ECD4DD3
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Wed,  8 Feb 2017 08:55:07 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 31E00D4E;
 Wed,  8 Feb 2017 08:55:07 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v188t6NO063484;
 Wed, 8 Feb 2017 08:55:06 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v188t6kZ063480;
 Wed, 8 Feb 2017 08:55:06 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201702080855.v188t6kZ063480@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Wed, 8 Feb 2017 08:55:06 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r313434 - in projects/netbsd-tests-upstream-01-2017:
 contrib/elftoolchain/libelftc sys/conf sys/contrib/dev/iwm sys/dev/iwm
 sys/geom/journal sys/kern sys/modules/iwmfw/iwm3160fw sys/mod...
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 08 Feb 2017 08:55:07 -0000

Author: ngie
Date: Wed Feb  8 08:55:05 2017
New Revision: 313434
URL: https://svnweb.freebsd.org/changeset/base/313434

Log:
  MFhead@r313433

Added:
  projects/netbsd-tests-upstream-01-2017/sys/contrib/dev/iwm/iwm-3160-17.fw.uu
     - copied unchanged from r313433, head/sys/contrib/dev/iwm/iwm-3160-17.fw.uu
  projects/netbsd-tests-upstream-01-2017/sys/contrib/dev/iwm/iwm-7260-17.fw.uu
     - copied unchanged from r313433, head/sys/contrib/dev/iwm/iwm-7260-17.fw.uu
  projects/netbsd-tests-upstream-01-2017/sys/contrib/dev/iwm/iwm-7265-17.fw.uu
     - copied unchanged from r313433, head/sys/contrib/dev/iwm/iwm-7265-17.fw.uu
  projects/netbsd-tests-upstream-01-2017/sys/contrib/dev/iwm/iwm-8000C-17.fw.uu
     - copied unchanged from r313433, head/sys/contrib/dev/iwm/iwm-8000C-17.fw.uu
Modified:
  projects/netbsd-tests-upstream-01-2017/contrib/elftoolchain/libelftc/libelftc_bfdtarget.c
  projects/netbsd-tests-upstream-01-2017/sys/conf/files
  projects/netbsd-tests-upstream-01-2017/sys/dev/iwm/if_iwm.c
  projects/netbsd-tests-upstream-01-2017/sys/dev/iwm/if_iwm_debug.h
  projects/netbsd-tests-upstream-01-2017/sys/dev/iwm/if_iwm_pcie_trans.c
  projects/netbsd-tests-upstream-01-2017/sys/dev/iwm/if_iwm_pcie_trans.h
  projects/netbsd-tests-upstream-01-2017/sys/dev/iwm/if_iwm_scan.c
  projects/netbsd-tests-upstream-01-2017/sys/dev/iwm/if_iwm_scan.h
  projects/netbsd-tests-upstream-01-2017/sys/dev/iwm/if_iwm_util.c
  projects/netbsd-tests-upstream-01-2017/sys/dev/iwm/if_iwmreg.h
  projects/netbsd-tests-upstream-01-2017/sys/dev/iwm/if_iwmvar.h
  projects/netbsd-tests-upstream-01-2017/sys/geom/journal/g_journal.c
  projects/netbsd-tests-upstream-01-2017/sys/kern/imgact_elf.c
  projects/netbsd-tests-upstream-01-2017/sys/modules/iwmfw/iwm3160fw/Makefile
  projects/netbsd-tests-upstream-01-2017/sys/modules/iwmfw/iwm7260fw/Makefile
  projects/netbsd-tests-upstream-01-2017/sys/modules/iwmfw/iwm7265fw/Makefile
  projects/netbsd-tests-upstream-01-2017/sys/sys/proc.h
  projects/netbsd-tests-upstream-01-2017/usr.bin/gcore/elfcore.c
  projects/netbsd-tests-upstream-01-2017/usr.sbin/bsdinstall/partedit/scripted.c
Directory Properties:
  projects/netbsd-tests-upstream-01-2017/   (props changed)
  projects/netbsd-tests-upstream-01-2017/contrib/elftoolchain/   (props changed)

Modified: projects/netbsd-tests-upstream-01-2017/contrib/elftoolchain/libelftc/libelftc_bfdtarget.c
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/contrib/elftoolchain/libelftc/libelftc_bfdtarget.c	Wed Feb  8 08:37:43 2017	(r313433)
+++ projects/netbsd-tests-upstream-01-2017/contrib/elftoolchain/libelftc/libelftc_bfdtarget.c	Wed Feb  8 08:55:05 2017	(r313434)
@@ -127,6 +127,15 @@ struct _Elftc_Bfd_Target _libelftc_targe
 	},
 
 	{
+		.bt_name      = "elf32-powerpc-freebsd",
+		.bt_type      = ETF_ELF,
+		.bt_byteorder = ELFDATA2MSB,
+		.bt_elfclass  = ELFCLASS32,
+		.bt_machine   = EM_PPC,
+		.bt_osabi     = ELFOSABI_FREEBSD,
+	},
+
+	{
 		.bt_name      = "elf32-powerpcle",
 		.bt_type      = ETF_ELF,
 		.bt_byteorder = ELFDATA2LSB,
@@ -290,6 +299,15 @@ struct _Elftc_Bfd_Target _libelftc_targe
 	},
 
 	{
+		.bt_name      = "elf64-powerpc-freebsd",
+		.bt_type      = ETF_ELF,
+		.bt_byteorder = ELFDATA2MSB,
+		.bt_elfclass  = ELFCLASS64,
+		.bt_machine   = EM_PPC64,
+		.bt_osabi     = ELFOSABI_FREEBSD,
+	},
+
+	{
 		.bt_name      = "elf64-powerpcle",
 		.bt_type      = ETF_ELF,
 		.bt_byteorder = ELFDATA2LSB,

Modified: projects/netbsd-tests-upstream-01-2017/sys/conf/files
==============================================================================
--- projects/netbsd-tests-upstream-01-2017/sys/conf/files	Wed Feb  8 08:37:43 2017	(r313433)
+++ projects/netbsd-tests-upstream-01-2017/sys/conf/files	Wed Feb  8 08:55:05 2017	(r313434)
@@ -1897,7 +1897,7 @@ iwm3160fw.fwo			optional iwm3160fw | iwm
 	no-implicit-rule						\
 	clean		"iwm3160fw.fwo"
 iwm3160.fw			optional iwm3160fw | iwmfw		\
-	dependency	"$S/contrib/dev/iwm/iwm-3160-16.fw.uu" \
+	dependency	"$S/contrib/dev/iwm/iwm-3160-17.fw.uu" \
 	compile-with	"${NORMAL_FW}"					\
 	no-obj no-implicit-rule						\
 	clean		"iwm3160.fw"
@@ -1911,7 +1911,7 @@ iwm7260fw.fwo			optional iwm7260fw | iwm
 	no-implicit-rule						\
 	clean		"iwm7260fw.fwo"
 iwm7260.fw			optional iwm7260fw | iwmfw		\
-	dependency	"$S/contrib/dev/iwm/iwm-7260-16.fw.uu" \
+	dependency	"$S/contrib/dev/iwm/iwm-7260-17.fw.uu" \
 	compile-with	"${NORMAL_FW}"					\
 	no-obj no-implicit-rule						\
 	clean		"iwm7260.fw"
@@ -1925,7 +1925,7 @@ iwm7265fw.fwo			optional iwm7265fw | iwm
 	no-implicit-rule						\
 	clean		"iwm7265fw.fwo"
 iwm7265.fw			optional iwm7265fw | iwmfw		\
-	dependency	"$S/contrib/dev/iwm/iwm-7265-16.fw.uu" \
+	dependency	"$S/contrib/dev/iwm/iwm-7265-17.fw.uu" \
 	compile-with	"${NORMAL_FW}"					\
 	no-obj no-implicit-rule						\
 	clean		"iwm7265.fw"

Copied: projects/netbsd-tests-upstream-01-2017/sys/contrib/dev/iwm/iwm-3160-17.fw.uu (from r313433, head/sys/contrib/dev/iwm/iwm-3160-17.fw.uu)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/netbsd-tests-upstream-01-2017/sys/contrib/dev/iwm/iwm-3160-17.fw.uu	Wed Feb  8 08:55:05 2017	(r313434, copy of r313433, head/sys/contrib/dev/iwm/iwm-3160-17.fw.uu)
@@ -0,0 +1,20409 @@
+begin 644 iwm-3160-17.fw
+M`````$E73`IS=')E86TZ3&EN=7A?0V]R94-Y8VQE,31?<W1A8D`S-3(W,S@`
+M````````````````````````````````````$0```.)A!0````````````8`
+M```$``````(```<`````````$@````0```#_R_I8'0````@`````````^_R:
+M#1X````(`````````)"0```>````"`````(`````````'````!``````````
+M````````````````&P````0````!````$P````0``0```(```````!$```#B
+M804```$```````"$?(``,"B``(RF@`#,F8``Z!.``(";@```````````````
+M``````````````````!L(,`0#QL)(MP=P!`*`!M`(``;;@0``&$0`!MN`0``
+M810``&$/``!A```;)"``&R7D'<`1W`3`$@$`&W`(``!A#QP=(@0`'2;H'<`0
+M`0`;,.@=P!&"!!LD"``;)00HP!'I#P!A```;)0`!&R1<',`1````8=P=P!``
+M`!TD````(0$`6#$/10`B`%P`.?0EP!`!`1,R`0$3,P$`$V+O_P`R!```8@-@
+M`&(``%@X`@!8,6,``&'D!,`2Z!W`$0$`4B2T'\`0`@`3<`,``&$(`%@P"`!D
+M,0<``&$/$U(B@@03)`@`$R4!`%)N`0``80$``&$```!A"`!8;NL/`&$``!,E
+M```3)"00P!$`@!,D```3)3@<P!$/`!,B`0`3,`0HP!$/<Q,B@@$3,`0HP!$/
+M<A,B"`#,$0``$R4!`!,D&`#,$0``$R08`,P1#Q05(@$`%28/1``B"@``0`!`
+M`'`-``!A0``3)0<!$R0$*,`1```3)0(`$R3L',`1#W83(BQ(QQ$/>!,B!`#*
+M$0```20```$E"0``84``$R4&`1,D!"C`$0]V$R(L2,<1#W@3(@``QA$#``$D
+M```!)0]%`"(`7``Y[_\`,AD``&0`@!,D`0`3)3@<P!$/=Q,BX!S`$0(``6(/
+M`1,B!`C`$>P'P!($*,`1\`?`$LA)QQ$/<!,B`0`3,`0HP!'X!\`2&"C`$0\3
+M`R((`%@Q`P`3)```$R4$",`1```3)#A%P!$%``!A``!8.`0`6#$``!,D`0`3
+M)3@<P!$``!4D````(>@=P!`/$P<B#V0!(@H``4`(``%P&```80@`6&X&``!A
+M"``'<`(``&$``EPQ`@``80`@6#````!A`4(3)```$R4$*,`1Z!W`$.;_$S+_
+M_Q,SZ!W`$0```20(``$E#P%C(@$`4B0(``=N`@``80``%20````A#@``8=P$
+MP!+H'<`1`0!2)+0?P!`"`!-P`@``80@`9#'F#P!A#Q-2(@\34B(!`%)N`0``
+M80$``&$```!AQ"F`@0``P!8"`1-D0@$3)`0HP!%$?X"!``#`%@8!$V($",`0
+M!``39`]<`"(*``!```8`<!H``&$``!,D```3)0``P!<@`%@QR"#`$'!%P!`0
+M",`0```3)0,`$R0<",`1'`C`$0``$R0$",`1#Q05(@0`%28/,"`B^_\P,@,`
+M$R08",`1#Q05(@(`%28/(#`B```3)!!%P!$8",`1$`!8,0\`$R(!`!,P!"C`
+M$0]\$R((`,P1```3)0``$R0T2,<10``3)0<!$R0$*,`1#WL3(@$`$S`$*,`1
+M#Q05(@(`%28/31,B!!#%$0(`$R3P',`1`0`3).P<P!$``!,D<``3)1`<P!$`
+M`!,E```3).`<P!$T?X"!``#`%@(!$V(/%!4B&P`5)@``$R4!`!,D)!#`$0``
+M$R0``,`7```5)````"$``!LE```;)`$`9&X!`!LD`@!D;@(`&R0$`&1N!``;
+M)`P`&V(/&PLB#PMC(@$`&T`"`!M!````80``&R48"("!`!L:*```P!8``!LE
+M`@`;0```&W$/9&,B```=)````"$```````````@`````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M``````````````````````````````````````````````````!$`(``````
+M```````````````$`,P#`0`.`.P&!0#$`$@$!@!```P%!P#8`&0%"`!H`#P&
+M"0!``*0&"@`\`-`#"P`\``P$#P`(`.0&$0`8`$P%$@"D`0``$P`,`/P&%``#
+M``@'%0`$``P'````````````````````````````````````````````````
+M````````'@```!Z('HA:````5@```%:(5H@"`0``J@```*J(JHC^`0``C`H`
+M`%2,5(RD'P```````````````/X```$`_P`"`?\!`/\!`0#^`@$#`O\!`0#_
+M`0$!_P(`_P,"`/X$`@,"_P("`/\"`@'_`P#_!0,`_@8#``/_`P,`_P,#`?\`
+M``````````````"L10``"@````0```!<?H``````````````````#$8```4`
+M```$````7'Z``````````````0```##N``"P[@``2.X``(SN``!LZP``:.L`
+M`+`S``!@,@``L#(```````````````$+_P``!0,```0"```&_P```/\```S_
+M```'_P``"/\```G_```*_P```O\!`/\``0(`$0$!`@$!`0/_`0$$`@$!!0,!
+M`08$`0$'!0$!"`8!`0D/`0$*$`$`#/\!`/[_`@#_!P(!`?\"`@((`@(#"0("
+M!`H"`@4+`@(&#`("!PT"`@@.`@()#@(""@T"``S_`@#^_P``````````````
+M`````````/\'````_P``!_\``0D(```*_P$"```!`P'_`0,"_P$#`_\!`03_
+M`0(%``$!"_\!`@S_`00&!@$!!_\!``C_`0`*_P("`/\"`P'_`@,"_P(#`_\"
+M`00!`@(%``(!"P$"`@P!`@0&!@("!P`"``@!`@`*`0,`_P(#`P#_`P,!_P,#
+M`O\#`P,$`P$$!0,"!0`#`0L%`P(,!0,$!@8#`P?_`P`(!0,`"@4#`/X#!`0`
+M_P0$`?\$!`+_!`0#_P0$!/\$!`7_!`0+_P0$#/\$!`8&!`0'!@0`"/\$``K_
+M`````````````/\````!`P`"`@(``P`"```%_P``!O\```3_```'!```"/\!
+M`/\!`0$``P$"`0(!`@("`0`$_P$!!P0!``C_`@,`!@("`@8"``7_`@`&_P(`
+M!/\"``<'`@`(!P,#``8#``$%`P("!@,!!?\#``;_`P`$!P,`!P<#``@'````
+M```!`/\!`/\``0`!_P$"`O\"`/\!`@`!_P(!`_\"`P3_`@(*_P(""?\"`@C_
+M`P`!_P,!`PH#!04*`P0&_P,&"@@#`PG_!`#_`P0``?\$`0,+!`('"P0""`0$
+M`P3_!`(*"00$"?\$!`;_!0#_`@4$!O\%`0,&!0`!_P4%"O\%!0D%!@#__P8$
+M!O\&`0,&!@`!_P8#!/\&!@D'!@8*_P``````````````````````"`0,`@H&
+M#@$)!0T#"P</`9$```$_```"D0``/CT```.1```]/0``!)$``#\#```%D0``
+M"1````:1```6'```!Y$``!\?```(D0``'!8```F1```0"0``"I$```,_```+
+MD0``/3T```R1```]/@``#9$``#\!```1$#Y(2$C@$`0````-(`0````@0SD`
+M````X(0!``#A$`$````"$)?+!0`P8`L````/T@0````8TOS__Q\)X(F&A(0*
+MX(2$```+X*95UR`,X"*++#(-X*J)AR(.X!Y[[#$7X)*,BXH8X(J*```9X'Y)
+MYR`:X"*++#(;X)--MR$<X!Y[[#$D8``````"<P`````1(!2%`0`"8/X4```#
+M8!$4```&8!$4```9$`0````!<S`!``!A$"`````2()0#``#6$!QC``#7$!QC
+M``#8$!QC``#9$'J`@`#:$'B`@`#;$'B`@``)$&Y?```:$``````Q$(8!```R
+M$)`!```S$,@````T$%`````U$(`````Z$&D````[$,````#!$``````JX/GE
+MYR8KX"*++#(LX'/.:2LMX!Y[[#$HX(N+B8DIX(F)```"1P$``````%)*"0!2
+MR@@`$4((`!!""`#OO0<`[[T'`.\Y!P#..0<`SCD'`*ZU!@"M-0<`#T8)`'/.
+M"0!32@D`4DH)`%)*"0`RQ@@`,<8(`#'&"``QQ@@`$$((`!!""``00@@`$$((
+M`!!""``00@@`$$((`.^]!P#OO0<`[[T'`.^]!P#OO0<`[[T'`.^]!P#OO0<`
+M[[T'`.^]!P`/0@@`$$((`!!""``00@@`$$((`!!""``00@@`,,8(`#'&"``Q
+MQ@@`,<8(`%)*"0!22@D`4DH)`'/."0!31@@`S[4&`*VU!@#..0<`SCD'`,ZY
+M!P#OO0<`[[T'``]""``00@@`,4H)`%)*"0#OO0<`[ST'`,ZU!@"M-08`C#$&
+M`,T]"``QQ@@`,<8(`%%*"0!22@D`4DH)`#+&"``QQ@@`,48(`!!""``00@@`
+M$$((`!!""``0Q@@`,<8(`#'&"`!22@D`4DH)`%)*"0`QQ@@`,<8(`/"Y!@",
+M,08`C+4&`*TU!P#.O0<`[[T'`#'&"``Q0@@`$,('`.^]!P#O00@`$$((`!!"
+M"``QQ@@`,<8(`!%""``00@@`$,('`.^]!P#O00@`$,((`#'&"``>'AX>'AL7
+M%!(*'AX>'AX>'AL7%!(*'AX>'AX>'AL7%!(*'AX````````````````8M@$`
+M!0```@0```!<?H``````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````-`R@`$`,H`!4#*``4`R@`$P,H``<'*``0""@`"@DH`!L$*``
+M&"2@`'@DH`!\)*``@"2@`(0DH`!0$*``2":@`&`0H`!,)J``9!"@`&@0H`!8
+M$*``,!"@`#P0H``T$*``+`R@``"!I``!@:0``X&D`(@DH`",)*``D"2@`)0D
+MH`"8)*``G"2@`*`DH`"D)*```````````````````````'$;#0#@@0$`%I\"
+M`````````````````'$!"=\``.@``.(``#X!5S\!9D`!=T$!F$(!!S8!`*H`
+M`%\!JF`!JMX`^,X``KX`%L\`"-,`"-``"-0`"-$`"-4`"-(`&-8``#$`)`0`
+M3#@``.4!<^8!!(\!_X,!:8X!#Y`!`)$!?9(!?9,!?5D`!OT``?X`$_\`!FX`
+M!'P!#8`!#;D!!<X!`KT!"<<!'\@!%J0!$*4!$*L!$*H!$+(!$[,!$]\!`=<!
+M`'H!`````````P$%`!``!``1`!(``P`*`#0!-0$V`24`"@`$``\``P$X`!``
+M$@````<,$P`8$H```!*``#P2@`#\$8```P$"`04`!``0``H`!@!\`8`!<P%W
+M`9<!F0&6`9@!W`$E`)H!G`$`````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M```````````````````!`````@`````````N$2\7,!`Q*#(1,_(V(C@1.1<Z
+M$#LH/!$]\D`B00%(.$DX2BY++E0<51Q6'%<<6CA;.%PX73A@6&%8>#AY.(@<
+MB1R*'(L<CCB/.)`XD3B46)58J`\M$#<0#@++1`````````````````````#_
+M````_____P``````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M`````````````````$!%`0`\10$`/$4!````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````*(P```4```($````7'Z`````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M``````````````````````````````````"H/0```````)#3```!````/%$!
+M``(````@9P$``P```,1V`0`$````U$(!``4```"8K@``!@```'A'`0`'````
+M3'("``@```!(<@(`"0```(CK```*````>)P```L```!TH@$`#````/3_`0`-
+M````6%("``X```"<A0$`#P```.2"```0````V+\!`!$````,M`$`$@```!@K
+M`@`3````6.@!`!0```"8U```%0````!D`0`6````C.P``!<```#(\```&```
+M``RC`0`9````D#T``!H```````````````````````````$#_P```/\"`/\`
+M`@$#_P(#!/\"`@H!`@(+_P(%!0("`@#_`@#^`P$`_P0!`0(%`0(!_P$"`/\!
+M`/X&`P#_!P,#"@@#`PL(`P(!_P,%!0(#`P+_`P,)_P,"`/\#`/X)!`#_"@0$
+M"@L$!`L+!`0(#`0"`?\$`P3_!`4%#00$`O\$`@`.!04*#P4%"P\%!@80!04"
+M$04"`!(&`/\3!@8*%`8&"Q0&!`?_!@0"%08&"?\&`@#_!@#^%@``````````
+M`````$QR```*````!````%Q^@`"H0@``'$,``%P7```40P``[$\``/Q/``#X
+M3P``@'$``.1Q``#,<0``L!<``)`8```,&```D!<``(P8``"(%P``?!<``(`7
+M``"$%P``Q&8``!QG``#T9@``[&8``/____________________\$````____
+M____________`P```/____\``````````/____\``````````/____\`````
+M``````,````0`````P````````````````````````#_``````````````#_
+M```````````````````````````!``````'_```"_P```P$```7_```&_P``
+M"/\```?_```)_P``"O\```O_```,_P$`_P,!`0```0$""@$"!00!`0;_`0$'
+M_P$#"@<!`0O_`0$,_P,`_P(#`P```P0%!`,%!O\#`PH'`P$+_P,##/\"`/\#
+M`@(```("!`8"`@7_`@(&_P("!_\"!`H'`@(+_P(!#`4$`/\"!`0```0!`0D$
+M!`0&!`0%_P0%!O\$!`H'!`(+_P0!#`4%`/\#!04```4$"/\%!0<(!0,)_P4%
+M!O\%!03_``````````````````````4``````````````!X````0````$```
+M```B`")1(A$1`/``\,#`P,#\_/S\_O[^_JJJJJJJJJJJJJJJKJJJJJHH_P#,
+MJJH``*JJ`,RJJ@```$``P```````4`#P`%``\*JJJJJJJJJJJJJJJJJJJJHH
+M_P#,JJH``*JJ`,RJJ@``````````````4`#P`%``\*JJJJJJJJJJJJJJ[JJJ
+MJJHH_P#,JJH``*JJ`,RJJ@```$``P`!``,``4`#P`%``\`<````/````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M``````````#__P``__\`````````````__\``/__`````````````/__``#_
+M__`A``!T(@``."(``#0B```<(@``_"$``-PB```@(P``_"(``%PB```\(@``
+M```````````````````````````````````````````````````````````'
+M!P$!R`#(````80!0`)$`@`#H`%(`>@"6`+X`4````"!.````````````````
+M```$`````0`````````!`````0```!X```````````````$!#@X````````R
+M"`(/`P`!``````````$!#@X````````C!`(*`````````````/0!````````
+M````````````````.%"`````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M```````````````````````````````````````````````0`````)`!````
+MH``0)P``Z`,``.@#```0(X``$".``/R$@`#XA(``^(2``/"$@`#\A(``^(2`
+M`/B$@`#PA(``\(2``/R$@`#\A(``\(2``/R$@`#TA(```````/__```!`0``
+M``````````$`````L!T!`+`=`0"P'0$`!/\``+`=`0"P'0$`.`$!`+`=`0``
+M]```P/T``+`=`0"P'0$`L!T!`+`=`0"P'0$`L!T!`+`=`0"P'0$`L!T!`+`=
+M`0"P'0$`L!T!`+`=`0!D&`$`7!4!`+P8`0"P'0$`L!T!`+`=`0#`#@$`/!T!
+M`%`1`0`$$@$`"!$!`+@%`0`(!0$`;`H!`)@4`0#0'0$`L!T!``3R``"<]```
+ML!T!`)CX``#@]@``>`8!`!`"`0"P'0$`L!T!`+`=`0"P'0$`L!T!`+`=`0"P
+M'0$`L!T!`+`=`0"P'0$`L!T!`+`=`0"P'0$`L!T!`+`=`0"P'0$`L!T!``#_
+M``#\_@``^/X``+`=`0"P'0$`L!T!`+`=`0"P'0$`\`$!`+`=`0"P'0$`L!T!
+M`+`=`0"P'0$`P!H!`+`=`0"P'0$`-`X!`,`-`0"P'0$`L!T!`+`=`0``#@$`
+ML!T!`+`=`0"P'0$`L!T!`+`=`0#(_```W/L``+`=`0"P'0$`L!T!`'0(`0#L
+M'P$`L!T!`+`=`0"P'0$`L!T!`+`=`0"P'0$`L!T!`$@4`0"P'0$`%`D!`+`=
+M`0#H#0$`L!T!``C_``"P'0$`L!T!`+`=`0"P'0$`L!T!`+`=`0!L_@``L!T!
+M`+`=`0"P'0$`L!T!`+`=`0"P'0$`'!H!`/0,`0"P'0$`L!T!`+`=`0"8_0``
+ML!T!`/C\``!T!@$`L!T!`-@&`0"P'0$`L!T!`+`=`0!X_0``L!T!`+`=`0`T
+M_P``L!T!`(P:`0!P`@$`L!T!`+`=`0#<``$`Z!\!`+`=`0`\&@$`L!T!``@,
+M`0`H_```G!D!`+`=`0"P'0$`@`P!`+`=`0"P'0$`L!T!`%P&`0"P'0$`L!T!
+M`+`=`0"P'0$`L!T!`#P#`0"P'0$`L!T!`+`=`0"P'0$`L!T!`/@3`0"P'0$`
+ML!T!`+`=`0"P'0$`L!T!`+`=`0"P'0$`L!T!`+`=`0"P'0$`L!T!`+`=`0"P
+M'0$`L!T!`#0(`0#P'P$`L!T!`+`=`0"P'0$`L!T!`+`=`0"P'0$`//8``+`=
+M`0"P'0$`L!T!`*0?`0"``P$`L!T!`+`=`0"P'0$`L!T!`,P#`0`$%0$`2/8`
+M`+`=`0"P'0$`L!T!`+`=`0"P'0$`Y!\!`+`=`0#<!@$`0``!`+P$`0"P'0$`
+ML!T!`'@4`0"P'0$`L!T!`+`=`0"P'0$`L!T!`+`=`0"P'0$`L!T!`+`=`0"P
+M'0$`L!T!`'P3`0"P'0$`L!T!`*@"`0#$&0$`E/T``+`=`0#@_0``1!\!`+`=
+M`0"P'0$`0`$!`+`=`0!T`@$`L!T!`#0:`0"P'0$`L!T!`+`=`0"P'0$`L!T!
+M`$1'``#<1@``V$8``#!'```$=@$`M'4!`#QV`0#H=0$`+'4!`&1U`0#X=`$`
+M\'4!``$````````````````````````````````````#0```%``````!````
+M````<">```````````````````````````````````````#T*@$`!0```@0`
+M``!<?H``)$"``````````````0`````````"`````````&=%(P$%`````@("
+M`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("
+M`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`0("`@("`@(!
+M`0("`@("`@("`@("`@("`O\``!`"````````````````````````````````
+M```HS(``````````````````````````````````````````````````"0``
+M````````````````````````````````````````````````````````````
+M````````````````````````````````____________________________
+M______________\`````````````````````````````````````"](.T@W2
+M"-()T@K2$M(3TA32&](<T@""$=(0TAC2#](-TA+2$](4T@S2%=(+T@+2$=()
+M$`%`&](<T@#2`435$!$0%!!PT@```````!,0$!@`````&"F``/@H@`!D*8``
+MA"F``/0H@`!`*8``"](-TA+2$](4T@C2"=(*TA'2$-(;TAS2&-(/TG#2U1`-
+MTA'2$-("T@/2&](+T@"`!=(2TA/2%-($0PC2"=(*TAS2!M('TAW2<-($TAC2
+M#](```````````$`````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M```````````````````````````````````````````4````Z(.``/"!@`"8
+M@H``0(.`````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M``````````````````````````````````````````````````````````$`
+M``````````````````"0!@```/\#`(@'````_P4`"`<```#_+0#D!@```/\]
+M`#@&````_P0`7`8```#_)0"P!@```/\\`#1+`0``_]T`,`<```#_3`"$!P``
+M`/\B`"P'````_R8`@`<```#_*`!$2@$``"```'Q)`0``_S``>`8```#_!P!8
+M!P```/\@``P0$``$`1`.$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0#Q`)$!`%
+M"A`+$!`0$`(0$`T0$!`0$!`0$!`0$`8#$!`0$!`0$!`0$!`0$!`($!`0$!`0
+M$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0
+M$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0
+M$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0
+M$!`0!Q`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!``````!(6`
+M````````````````````````````````````````````````````````````
+M`````/\```#__________________________P``````````````````````
+M`````````````````````````````````````````````````````````"BP
+M`0`@-@$`"+8!`"`V`0#0;@(`(#8!`#PC`0!,3@(`D%8!`"`V`0`@-@$`7%("
+M`%Q2`@!<4@(`7%("`%Q2`@!<4@(`7%("`"`V`0`@-@$`(#8!`"`V`0`HD@``
+M(#8!`"`V`0`@-@$`(#8!`"`V`0!@5@$`2%8!`"`V`0`@-@$`````````````
+M`````````````````````````````````````0````$`````````````````
+M````````````````````````````````````````````````````````````
+M``````````````````$````"`````P````````#_````_P```/\```#_````
+M````````````````````````````````_P```(@3````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M``````````````````````````#_____````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M``````"``````````````````````````/____\`````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M`````````````(``````````````````````````_____P``````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````@`````````````````````````#_____````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M``````````````````````````"``````````````````````````/____\`
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M`````````````````````````````````(``````````````````````````
+M``````````````````````````#_````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````_____P````#_____`````/____\`````_____P``````````#P`_
+M``$````/`#\``0````\`/P`!````#P`_``$````/`#\``0`````````/`#\`
+M`0````\`/P`!````#P`_``$````/`#\``0````\`/P`!``````````\`/P`!
+M````#P`_``$````/`#\``0````\`/P`!````#P`_``$`````````#P`_``$`
+M```/`#\``0````\`/P`!````#P`_``$````/`#\``0`````````/`#\``0``
+M``\`/P`!````#P`_``$````/`#\``0````\`/P`!``````````````"K````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M``#J"J(*7@H="N`)I0EM"3<)!`G3"*0(=PA+""((^@?3!ZX'B@<`````````
+M````````````````````````````````````````````````````````````
+M``````````````````````````!42````@````0```!<?H``````````````
+M````L$@```4````$````7'Z```````````````4```,)`PD%"0P1````````
+M````````````````````````````````````````````````````````````
+M`&9F#@``````9F8*`&9F!@!F9@8`9F8"`&9F`@!F9CX`9F8^`&9F.@!F9CH`
+M`````&9F-@``````9F8R``````!F9@X```````````!F9@8`````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````"0`)"0D)"0D)"0D`"0`)``D```D`
+M````````````````````````````````````````````````````````````
+M`````````````````````````$P(H`!("*``S`6`````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````^QV,`#,1```````````1````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M``````````````````````````````````````````0%!@<("0H+#`T.#Q`J
+M*RPM+B]*2TQ-3D]0:FML;6YO<(J+C(V.CY"JJZRMKJ^PR\S-SL_0T=+3U-76
+MU]C9VMO<W=W=W=W=W=W=W=W=W=W=W=T`000%!08'"`D*#`T.#Q`J*RPM+B\P
+M2DQ-3D]046ML;6YO<'&*BXR-CH^0JJNLK:ZORLO,S<[/T-'2T]35UM?8V=K:
+MVMK:VMK:VMK:VMK:VMK:VMH`/P```0(#!`4&!P@)"@L,#0X/*BLL+2Y*2DM,
+M34Y/:FIK;&UNBHJ+C(V0DJJKK*VNK\K+S,W.S]#1TM/4U=;7U]G:V]S=W=W=
+MW=W=W=W=W=W=W=T`0P`!`@,#!`4&!P@)"@L,#0XJ*RPM+B]*2TQ-3D]J:VQM
+M;F^*BXR-CH^JJZNLK:ZORLO,S<[/T-'1TM35U]C9VMK:VMK:VMK:VMK:VMK:
+MVMK:VMH`/@("`P0%!@<("0H+#`T.#RHK+"TN+TI+3$U.3U!J:VQM;W"*BXR-
+MCH^0D*JLK:ZOL,O,S<[/S]#1TM/4U=;7U]?7U]?7U]?7U]?7U]?7U]?7U]<`
+M/0``````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M``````````````````````````#_?_]__W__?_]_````````````````````
+M`````````````````(Z.``#_````_P```/\```#_````_P```/\```#_````
+M_P```/\```#_````_P```/\```#_````_P```/\```#`#P(`P`\"`,`/`@#`
+M#P(`P`\"`,`/`@#`#P(`P`\"`,`/`@#`#P(`P`\"`,`/`@!```$`0``!`$``
+M`0````````````````````````````````````````````````!_?W]_?W]_
+M?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_
+M?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_
+M?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_
+M?W]_?W]_?W]_?W]_?W]_?W]_````````````````O@````$``````````0``
+M`%\````"``````````(````O`````P`````````#````&```````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````"@```````````````````/\`_P``````-```````
+M`````````````/\`_P``````<````````````````````/\`_P``````F0``
+M`````````````````/\`_P```````````````````````0`````````!````
+M``````$````````````````````!``````````$``````````0``````````
+M````C`H```````````````````````````````````P#"````````````/\`
+M``````````````````#_````````````````````_P``````````````````
+M`/\```````````````````#_````````````````````_P``````````````
+M`````/\`````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````R,2`````````````````````````````````
+M```````````````````````!#!Y;#C("$1Y=#C(#%AY>#C($&QY?#C(%(!Y@
+M#C(&)1YB#C('*AYC#C((+QYD#C()-!YE#C(*.1YG#C(+/AYH#C(,0QYI#C(-
+M2!YJ#C(.31YL#C(B4$`-(``D8$`/(#$F<$`2(#0H`$$4(#$J$$$7(#$L($$9
+M(#$N,$$<(#,P0$$>(#$R4$$A(#$T8$$C(#$V<$$F(#,X`$(H(#$Z$$(K(#$\
+M($(M(#$^,$(P(#-`0$(R(#%D8$1?(C!F<$1B(C)H`$5D(B]J$$5G(B]L($5I
+M(B]N,$5L(C)P0$5N(B]R4$5Q(B]T8$5S(B]V<$5V(C)X`$9X(B]Z$$9[(B]\
+M($9](B]^,$:`(C&`0$:"(B^"4$:%(@"$8$:'(BZ&<$:*(C&(`$>,(BZ*$$>/
+M(BZ,($>1(BZ.,$>4(C"00$>6(BV12$>8(@"5:$>=(BV7>$>?(C"9"$BB)"V;
+M&$BD)"V=*$BG)"V?.$BI)#"A2$BL)"VE:$BQ)"T`````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M```````````````````````````````````````````````````/``\`#P`/
+M``\`#P`/``\`````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M`````````````0`!``````#``)``T```````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M`````````#QB```*````!````%Q^@```````````````````````````````
+M````````````````````````_____Z#%@````````````$!"#P!`0@\`0$(/
+M`$!"#P!`0@\`0$(/`$!"#P!`0@\`0$(/`$!"#P#@!P``0`$``.`'``!``0``
+M("<``.`'``#@!P``0`$``.`'``!``0```@`````````"````````````````
+M`````````````````````````````````````````-1M@`!\XX``&```````
+M``````````````````#_____````````````````````````````````````
+M`````````````````````````````````````````````````.`3`@`$%`(`
+M%!0"`.P3`@#<$P(`&!0"`,03`@```````%`````P````````````````````
+M``````````!```"`,0``@`X``````````````````````````````"X````R
+M````(```````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M``````````````````"0'@(`[!H"`(`>`@!T'0(`8!X"`."H`0`8'@(`'!L"
+M`*`<`@#0&@(`U!H"````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M`(````````````````````"`````@("`@("`@("`@("`@("`@("`@("`@("`
+M@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`
+M@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`
+M@("`@("`@("`@("`@(```@```````````````````````````````(``````
+M`/\```````````(```````````````````````````````"```````#_````
+M```````"````````````````````````````````@```````_P``````````
+M`@```````````````````````````````(```````/\```````````(`````
+M``````````````````````````"```````#_```````````"````````````
+M````````````````````@```````_P```````````@``````````````````
+M`````````````(```````/\```````````(`````````````````````````
+M``````"```````#_```````````"````````````````````````````````
+M@```````_P```````````@```````````````````````````````(``````
+M`/\```````````(```````````````````````````````"```````#_````
+M```````"````````````````````````````````@```````_P``````````
+M`@```````````````````````````````(```````/\```````````(`````
+M``````````````````````````"```````#_```````````"````````````
+M````````````````````@```````_P```````````@``````````````````
+M`````````````(```````/\``````````````````($`````````@@``````
+M``"#`````````(0`````````A0````````"&`````````(<`````````B```
+M``````")`````````(H`````````BP````````",`````````(T`````````
+MC@````````"/`````````,`!````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M`,!G``"09P``%&@``*AG```8:```B&<``,1G``#_````_P```/\```#_````
+M_P```/\```#_````_P```/\```#_````_P```/\```#_````_P```/\```#_
+M````_P```/\```#_````_P```/\```#_````_P```/\```#_````_P```/\`
+M``#_````_P```/\```#_````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````&""@`!P@H``H(*``+""@`#@@H``@
+M(*``)""@`#`@H``T(*``/""@`$`AH`!$(:``:"&@`&PAH`!X(:``2"&@`$PA
+MH`!P(:``="&@`'PAH```````_P``````````````````````````````````
+M```````````````````````T+0(`!0```@0```!<?H``````````````````
+M)&@```8````$````7'Z``````````````````*`G`0`*````!````%Q^@```
+M```````````````H8@``!0```@0```!<?H``````````````````E'H!``4`
+M``($````7'Z``````````````````&![`0`%```"!````%Q^@```````````
+M```````@+0(`!@````````!<?H````````````!<?H``7'Z``+0@H`!L(*``
+M`#```/^/__\``````````'Q^@`!\?H``I""@`#@@H``!````^/___P``````
+M````G'Z``)Q^@`"H(*``/""@`!````#'____``````````"\?H``O'Z``*P@
+MH`!X(:``0`$``#_^__\``````````-Q^@`#<?H``L""@`'PAH```#```__'_
+M_P``````````_P```/\`````````````````````````````````````````
+M``````````````$`_P```````````````````````````````````-@K@```
+MU8``&``````````!``````````````#X*H``R-2``!@``````````0``````
+M````````+&V```#C@``8``````````$`````````````````````````````
+M````````````````````````````;$&``,C:@``8``````````$`````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M`````````````````````````````````````````````````/__``#__P``
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M```````````````````````````````````````````````````/`#\``0``
+M``\`/P`!````#P`_``$````/`#\``0````\`/P`!````#P`_``$````/`#\`
+M`0````\`/P`"``````L`$``+``L`"@`+``:``0`(``@`"``(````"``&@`$`
+M"``(``@`"`````@`!H`!````````````````2$@\/```````````````````
+M`````````````$A(/#P`````````````````````_W\```````#_?P``````
+M`/]_````````_W\```````#_?P```````/]_``#_?P``````````````````
+M?7EV>6]Y:7E]=W9W;W=I=WUU=G5O=6EU?7-V<V]S:7-]<79Q;W%I<7UO=F]O
+M;VEO?6UV;6]M:6U]:W9K;VMI:WUI=FEO:6EI?6=V9V]G:6=]979E;V5I97UC
+M=F-O8VEC?6%V86]A:6&$17U%=D5O181#?4-V0V]#A$%]079!;T&*)8(E>R5T
+M)8HC@B-[(W0CBB&"(7LA="&/!8<%?P5X!8\#AP-_`W@#?7EV>6]Y:7E]=W9W
+M;W=I=WUU=G5O=6EU?7-V<V]S:7-]<79Q;W%I<7UO=F]O;VEO?6UV;6]M:6U]
+M:W9K;VMI:WUI=FEO:6EI?6=V9V]G:6=]979E;V5I97UC=F-O8VEC?6%V86]A
+M:6%Y17)%;$5F17E#<D-L0V9#>4%R06Q!9D%Z)7,E;25G)7HC<R-M(V<C>B%S
+M(6TA9R%]!78%;P5I!7T#=@-O`VD#?7EV>6]Y:7E]=W9W;W=I=WUU=G5O=6EU
+M?7-V<V]S:7-]<79Q;W%I<7UO=F]O;VEO?6UV;6]M:6U]:W9K;VMI:WUI=FEO
+M:6EI?6=V9V]G:6=]979E;V5I97UC=F-O8VEC?6%V86]A:6%V16]%:45C179#
+M;T-I0V-#=D%O06E!8T%U)6XE:"5B)70C;B-H(V(C="%N(6@A8B%U!6X%:`5B
+M!70#;@-H`V(#@'EY>7)Y;'F`=WEW<G=L=X!U>75R=6QU@'-Y<W)S;'.`<7EQ
+M<G%L<8!O>6]R;VQO@&UY;7)M;&V`:WEK<FML:X!I>6ER:6QI@&=Y9W)G;&>`
+M97EE<F5L98!C>6-R8VQC@&%Y87)A;&%_17A%<45K17]#>$-Q0VM#?T%X07%!
+M:T&$)7TE=B5O)80C?2-V(V\CA"%](78A;R&'!7\%>`5R!8<#?P-X`W(#````
+M``````#^````T-"ZN;>WN+>X`````````````````````````.^^K=[OOJW>
+M[[ZMWN^^K=X``````````````````````````%1Q```*````!````%Q^@```
+M````S/X``+`=`0"\!`$``````/\````$````````````````````__\``(0U
+M``"8-0``K#4``#@U```P-0``0#4``*PT``"D-```<.(``'S>``"$WP``X-\`
+M``3?``!DWP``O-\``+CB``#,Z```%.D``,3I```<Z@``>.D``+#I```4Z@``
+M3-\``##?``!PW@`````````````"`@7_`@,```(!`0$#`P#_`P$!`0,``@(#
+M`@4&```"_P````,```$#``$$!``#`P4``@4&`0$!_P$``@(!`P`%`0(%!@``
+M```````````````````8+0(`!@````0```!<?H``````````````````."T"
+M``8````$````7'Z`````````````,30Z,S(Z,SD`````R0`````````%`@T`
+M"`0Z%#H``#HD.@`0#!`Z.AP8.B``"B`YET)@=SPX-#`L*"0@'!@4$`P(!``$
+M!04$`@(``!T%&0`3`````$1`1Q0````#`P,#`P,```3>W]\$W@```P4'"0L5
+M#0\1$P```P`&!@8&!@8```````````,-+XF)-T.)B8F)B7.)66$`58)K38F)
+MB8F)0TT<B7EY:````&<:>"T`````!A04%`04%!0"%!04``````0&``8$!@8&
+M!@8&!@8&!@8&!@(&!``````+!P,`.S<S+RLG(Q\;%Q,/"P<#`#LW,R\K)R,?
+M&Q<3#PL'`P``````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M``````````````````````````````(`````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M`````````````````````!<+"@D%!`````$!`@$"`@/_``$"`P0%!@<("0H+
+M#`W___________________________\.____#____Q#___\1____$O___Q/_
+M__\4____%?______________________________________________%O__
+M_Q?___\8____&?___QK___\;____'/___QW___\>____'____R#___\A____
+M_R+___\C____)/___R7___\F`````````````````````````````,`L````
+M````P"P``````````````@````(````L@0$`Z((`````````````````````
+M```````````````````/`#\``@````\`/P`"````#P`_``(````/`#\``@``
+M``\`/P`"(`````````$```"JJJJJJJJJJJJJJNZJJJJJ*/\`S*JJ``"JJ@#,
+MJJH```!``,``0`#``%``\`!0`/``````````````````````````````````
+M``````````````````````````````"JJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
+MJJJJJJJJJJJJJ@``````````````````````;&UN;W!Q<G-T=78P<(29!P``
+M`#H!`@'5`-\`.@&B`'4`?P#*`4H!X@#Y`,H!Z@""`)D``0,/!PH4-VYJ`1H!
+MV0#H`&H!N@!Y`(@`=-%%%^BBBRX0&*``#!B@``@0$`(0"```````````````
+M```!`@,$!`0$!04%!08&!@8&!@8&!@8&!@<'!P<(``T%!PD+`0,#`P,```$%
+M`P$(`@@(`0,!`P,"!0$$````F"6@`)PEH`"H):``K"6@`*`EH`"D):``Q"6@
+M`,@EH`#4):``V"6@`-PEH`#@):``Y"6@`.@EH`#L):``\"6@```!`@$#!@``
+M`````````````````````/!%`0"HV0```````*C9``#XD`$`````````````
+M`````````/RA`0!$10$`\-4``$B'`0#PU0``F(<!````````````````````
+M```0H@$`R$4!`````````````````#2)`0``````````````````````````
+M```````TUP```````#37`````````````%!V`0#$B```4'8!`%!V`0!0=@$`
+M`-@``%!V`0``V```V)`!`!0M`@````````````````````````````#:````
+M`````-H``.B1`0``````='8!`!R)``!T=@$`='8!`!Q'`0`HV@``='8!`"C:
+M``"<D@$`='8!````````````````````````````G-L```````"<VP``````
+M``````````````````````!4H@$`1$<!`!S<``"`AP$`'-P``-B2`0``````
+M``````\`/P`!````#P`_``$````/`#\``0````\`/P`!````#P`_``$`````
+M`````````````````````````+3N``"(AP$`M.X``+R3`0``````````````
+M``````````````````#@\0```````.#Q``#TE@$````````$"`00$```*``H
+M`#``+``L`"@`/``T`"P`+``\`#0`,``L`%0`1`!__P</'S\!`P4`!P(#!`8&
+M#04%"0D)"0D)"0```0</'S]______P``_____P```(!55555````0-!>0GMH
+M+Z$]FA\6*;27T!XXCN,X',=Q'+V$]A*.XS@.',=Q'([C.`Y>0GL)QW$<!P$!
+M`0$!`0$!0<$!`0$!`0$!`4'!`0$!`0$!`0%!00$!`0$!`0$!0<$!`0$!`0$!
+M`4%!`0$!`0$!`0%!00$!`0$!`0$!04$!`0$!`0$!`4)"04%!04%!04%!04%!
+M04%!04%"0D)!04%!04+"0D)#04%!04)"0D-#0T%!04%!04%"0D)!04%!0D)"
+M0T-#04%!0D)#0T1$Q$%!0D)#1$3$1D8!`@,$F9D#`)W8B9U.[,1.-$B#-"=V
+M8B<:I$$:$SNQ$Q$8@1$/_,`/#=(@#0N]T`L:`#0`3@!H`)P`T`#J``0!.`%;
+M`38`;`"B`-@`1`&P`>8!'`*(`M`"=0#J`%\!U`&^`J@#'022!'P%&`;J`-0!
+MO@*H`WP%4`<Z""0)^`HP#`D)!04)"0T-!08!`@,$```-#P4'"0L!`R@`*``T
+M`#``+``L`$0`/`!5554!2V@O`555507C.(X#JJJJ`G$<QP&JJJH*QW$<!U55
+M555Q'`$`!`P```#3`-4!````!@````X````W````[,L!``````#LRP$`````
+M`.S+`0``````[,L!``````#LRP$`$0```)S$`0`3````[,L!``````#LRP$`
+M`````##%`0`4````S,8!`!P````@S0$`$````-#-`0`0````A,H!``H```!T
+MR0$`"@```&#*`0`0````8,H!`!```````````0```/\```#!````P0```$$`
+M````````00```!$```````````@``!48"PL+#P,+````````````````````
+M`,Q<``#<7`````````````!87```5%P``)Q<````````G%P``/Q;``#\6P``
+M`````*3W`0!@^@$`Q``"`/P!`@`$````'!$``!PR```<,P``'!0```0````<
+M````I<:$^)GNC?8-_[W6L=Y4D5!@`P*ISGU6&>=BM>9-FNQ%CYT?0(F'^A7O
+MZ[+)C@O[[$%GL_U?ZD6_(_=3EN1;F\)U'.&N/6I,6FQ!?@+U3X-<:/11--$(
+M^9/B<ZM38C\J#`A2E65&7ITH,*$W#PJU+PD.-B2;&SW?)LUI3LU_G^H;$IX=
+M=%@N-"TVLMSNM/M;]J1-=F&WSGU[4C[=<5Z7$_6F:+D``"S!8$`?X\AY[;:^
+MU$:-V6=+<MZ4U)CHL$J%:[LJQ>5/%NW%AM>:56:4$<^*$.D&!('^\*!$>+HE
+MXTOSHOY=P("*!:T_O"%(<`3QWV/!=W6O8T(P(!KE#OUMOTR!%!@U)B_#X;ZB
+M-<R(.2Y7D_)5@OQ'>JS(Y[HK,I7FH,"8&=&>?Z-F1'Y4JSN#"\J,*<?3:SPH
+M>:?BO!T6=JT[VU9D3G0>%-N2"@QL2.2X79]NO>]#IL2H.:0Q-].+\C+50XM9
+M;K?:C`%DL=*<X$FTV/JL!_,ESZ_*CO3I1Q@0U6^(\&]*<EPD./%7QW-1ER/+
+M?*&<Z"$^W9;<888-A0^0X$)\Q'&JS-B0!08!]Q(<H\)?:OFNT&F1%UB9)SJY
+M)SC9$^NS*S,BN])PJ8D'IS.V+2(\DA4@R4F'_ZIX4'JECP/X68`)%QK:93'7
+MQH2XT,."L"EW6A$>RWO\J-9M.BP``0($!`8&"`@````1````````````````
+M````9````!````#_``P@"````!(````````````````````L`0``$````/\`
+M#"`"````$P```````````````````"P!```0````_P`,(`<````4````````
+M`$`&`````````0```!`````!``Q`!````!4`````````0`8````````!````
+M$`````$`#$`#````%@````````!`!@````````$````0`````0`,0`,````7
+M`````````````````````0```!````#_``0`!````!@`````````0`8`````
+M```R````,@````$!S$`#````&0````````````````````$````!`````0$`
+M@`$````:`````````````````````0````$```#__P"@!0```!L`````````
+M$``````````!````$`````$"!``&````'``````````$``````````$````!
+M`````0`,``$````=``````````0``````````0````$````!``P``0```!X`
+M````````!``````````!`````0````$``(`!````'P``````````````````
+M``$````(````_P`,(`8````@`````````````````````0````@```#_``P@
+M`@```"$````````````````````!`````0```/\`#*`#````(@``````````
+M``````````$````!`````0(,@`$````C`````````````````````0````$`
+M``#_``"@!@```"0````````````````````!`````0````$"1``"````)0``
+M``````````````````$````0````_P`,(`,````F`````````-@`````````
+M`0```&0````!``@``@```"<`````````+`$````````!`````0````$`#$`$
+M````*``````````L`0````````$````!````_P`,0`0````I`````````"P!
+M`````````0````$````!``Q`!````"H`````````+`$````````!`````0``
+M``$`#$`#````*P`````````L`0````````$````!`````0`,0`4````L````
+M``````(``````````0````$````!``0`!0```"T`````````!``````````!
+M`````0````$`#$`!````+@`````````L`0````````$```!I`````0`,0`,`
+M```O``````````````````````(``!(```#_``Q@`@```#``````````,@``
+M``````!D````$````/\`#&`&````,0`````````L`0````````$```!N````
+M`0`,0`0````$#`P(%!0$!$````"```````$````"````!````$```$````!`
+M````_T%5514`````@(B("`````$``!S_____`!````0!`!C^__]_``@```0"
+M`1C_____`!````$!`1C_____`!````,``!S\_U+550T```(``!S\_Z?JJPX`
+M``4"`1C\_U+550T```(!`1C\_Z?JJPX```,!`1C\_U+550T```4!`!C\_ZEJ
+MJP8```!````7````>*X``!0``````````0```(1\`0``````>-,```,```!`
+MLP``!`````C.```(````N,L```P```"LO@``$0`````````3````!*\``!8`
+M```\<`(``````##3```$````4&X"``4```"LN0``"````+S+```,````8,$`
+M``T`````````$0```````````````````-#2```<K@``O+@``'S+````````
+MM+H``,RZ``"(K0``D+T``"#.``!8LP````````$"!/\($/__``(`````!?\`
+M``'_`@#_`@(#!?\"``8!`@`!`0,`_P,#`P4$`P0#_P,"`@4#``8!`P`!`00`
+M_P8$!`7_!`$'_P0`!@$$``$!`0#_!P$!!?\!!0'_`0,("`4`_PD%!07_!0`(
+M"@4%`_\$`@0"``````$"$`0(`````A`$"``````!`0`!`@$!`0``````````
+M``````````````````````````````````````````"4N(``````````````
+M`````````````(``````````````````````````````````````````````
+M`````````````````````````````!`````0````````````````````````
+M`,P9```*````!````%Q^@```````````````````````````````````````
+M`0``````T/X``````````````````````````````````````````!``````
+M````$```````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````

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

From owner-svn-src-projects@freebsd.org  Wed Feb  8 09:03:32 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9080CCD5156
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Wed,  8 Feb 2017 09:03:32 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 43DA411E0;
 Wed,  8 Feb 2017 09:03:32 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1893V3K067636;
 Wed, 8 Feb 2017 09:03:31 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1893Vsg067635;
 Wed, 8 Feb 2017 09:03:31 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201702080903.v1893Vsg067635@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Wed, 8 Feb 2017 09:03:31 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r313435 -
 projects/netbsd-tests-upstream-01-2017/contrib/dma
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 08 Feb 2017 09:03:32 -0000

Author: ngie
Date: Wed Feb  8 09:03:31 2017
New Revision: 313435
URL: https://svnweb.freebsd.org/changeset/base/313435

Log:
  Merge bogus svn:mergeinfo to allow me to merge this branch
  
  I'll prune unnecessary mergeinfo on merge

Modified:
Directory Properties:
  projects/netbsd-tests-upstream-01-2017/contrib/dma/   (props changed)

From owner-svn-src-projects@freebsd.org  Wed Feb  8 09:47:39 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id AF067CD5E07
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Wed,  8 Feb 2017 09:47:39 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 63F0BFC5;
 Wed,  8 Feb 2017 09:47:39 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v189lc9U084594;
 Wed, 8 Feb 2017 09:47:38 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v189lcxc084593;
 Wed, 8 Feb 2017 09:47:38 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201702080947.v189lcxc084593@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Wed, 8 Feb 2017 09:47:38 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r313440 - projects/netbsd-tests-upstream-01-2017
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 08 Feb 2017 09:47:39 -0000

Author: ngie
Date: Wed Feb  8 09:47:38 2017
New Revision: 313440
URL: https://svnweb.freebsd.org/changeset/base/313440

Log:
  Prune project reintegrated as ^/head@r313439.

Deleted:
  projects/netbsd-tests-upstream-01-2017/

From owner-svn-src-projects@freebsd.org  Thu Feb  9 08:03:08 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 96E3BCD70AE
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Thu,  9 Feb 2017 08:03:08 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 5EDA71BD2;
 Thu,  9 Feb 2017 08:03:08 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v19837Rq036950;
 Thu, 9 Feb 2017 08:03:07 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v198375C036949;
 Thu, 9 Feb 2017 08:03:07 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201702090803.v198375C036949@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Thu, 9 Feb 2017 08:03:07 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r313466 - projects/stable-10-backport-test-changes
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 09 Feb 2017 08:03:08 -0000

Author: ngie
Date: Thu Feb  9 08:03:07 2017
New Revision: 313466
URL: https://svnweb.freebsd.org/changeset/base/313466

Log:
  Branch ^/stable/10 to ^/projects/stable-10-backport-test-changes
  
  This branch exists for the purpose of backporting the following:
  - contrib/netbsd-tests changes (and supporting changes)
  - test glue improvements (checkworld, etc)
  - documentation improvements
  - make glue to support test glue improvements

Added:
     - copied from r313465, stable/10/
Directory Properties:
  projects/stable-10-backport-test-changes/   (props changed)

From owner-svn-src-projects@freebsd.org  Thu Feb  9 08:25:32 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 95E78CD7A2F
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Thu,  9 Feb 2017 08:25:32 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 5F0D8BBE;
 Thu,  9 Feb 2017 08:25:32 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v198PVqX045891;
 Thu, 9 Feb 2017 08:25:31 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v198PVS1045887;
 Thu, 9 Feb 2017 08:25:31 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201702090825.v198PVS1045887@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Thu, 9 Feb 2017 08:25:31 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r313468 - in projects/stable-10-backport-test-changes:
 contrib/netbsd-tests/lib/libc/c063 contrib/netbsd-tests/lib/libc/ssp
 lib/libc/tests/c063 lib/libc/tests/ssp
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 09 Feb 2017 08:25:32 -0000

Author: ngie
Date: Thu Feb  9 08:25:30 2017
New Revision: 313468
URL: https://svnweb.freebsd.org/changeset/base/313468

Log:
  MFC r276527,r277648:
  
  r276527:
  
  Don't install h_raw if dealing with clang 3.5.0+ to unbreak the tests2 Jenkins
  job
  
  The h_raw application doesn't do proper bounds checking without the option
  being supplied via the build, which means that it doesn't throw signals and
  fail as expected
  
  PR: 196430
  
  r277648 (by jilles):
  
  Enable utimensat tests from NetBSD.
  
  As with other tests from c063, a required #include <sys/stat.h> was missing.

Modified:
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/c063/t_utimensat.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/ssp/t_ssp.sh
  projects/stable-10-backport-test-changes/lib/libc/tests/c063/Makefile
  projects/stable-10-backport-test-changes/lib/libc/tests/ssp/Makefile
Directory Properties:
  projects/stable-10-backport-test-changes/   (props changed)

Modified: projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/c063/t_utimensat.c
==============================================================================
--- projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/c063/t_utimensat.c	Thu Feb  9 08:19:30 2017	(r313467)
+++ projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/c063/t_utimensat.c	Thu Feb  9 08:25:30 2017	(r313468)
@@ -40,6 +40,9 @@ __RCSID("$NetBSD: t_utimensat.c,v 1.5 20
 #include <string.h>
 #include <unistd.h>
 #include <sys/param.h>
+#ifdef __FreeBSD__
+#include <sys/stat.h>
+#endif
 #include <sys/time.h>
 
 #define DIR "dir"

Modified: projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/ssp/t_ssp.sh
==============================================================================
--- projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/ssp/t_ssp.sh	Thu Feb  9 08:19:30 2017	(r313467)
+++ projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/ssp/t_ssp.sh	Thu Feb  9 08:25:30 2017	(r313468)
@@ -361,6 +361,9 @@ raw_head()
 raw_body()
 {
 	prog="$(atf_get_srcdir)/h_raw"
+	# Begin FreeBSD
+	[ -x $prog ] || atf_skip "$prog is missing; skipping testcase"
+	# End FreeBSD
 
 	h_pass "$prog 9"
 	# Begin FreeBSD

Modified: projects/stable-10-backport-test-changes/lib/libc/tests/c063/Makefile
==============================================================================
--- projects/stable-10-backport-test-changes/lib/libc/tests/c063/Makefile	Thu Feb  9 08:19:30 2017	(r313467)
+++ projects/stable-10-backport-test-changes/lib/libc/tests/c063/Makefile	Thu Feb  9 08:25:30 2017	(r313468)
@@ -2,7 +2,7 @@
 
 TESTSDIR=	${TESTSBASE}/lib/libc/c063
 
-#TODO: t_o_search, t_utimensat
+#TODO: t_o_search
 
 NETBSD_ATF_TESTS_C=	faccessat_test
 NETBSD_ATF_TESTS_C+=	fchmodat_test
@@ -18,6 +18,7 @@ NETBSD_ATF_TESTS_C+=	readlinkat_test
 NETBSD_ATF_TESTS_C+=	renameat_test
 NETBSD_ATF_TESTS_C+=	symlinkat_test
 NETBSD_ATF_TESTS_C+=	unlinkat_test
+NETBSD_ATF_TESTS_C+=	utimensat
 
 CFLAGS+= -D_INCOMPLETE_XOPEN_C063
 

Modified: projects/stable-10-backport-test-changes/lib/libc/tests/ssp/Makefile
==============================================================================
--- projects/stable-10-backport-test-changes/lib/libc/tests/ssp/Makefile	Thu Feb  9 08:19:30 2017	(r313467)
+++ projects/stable-10-backport-test-changes/lib/libc/tests/ssp/Makefile	Thu Feb  9 08:25:30 2017	(r313468)
@@ -26,7 +26,11 @@ PROGS+=		h_getcwd
 PROGS+=		h_memcpy
 PROGS+=		h_memmove
 PROGS+=		h_memset
+# This testcase doesn't run properly when not compiled with -fsantize=bounds
+# with clang, which is currently contingent on a compiler_rt update
+.if ${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} < 30500
 PROGS+=		h_raw
+.endif
 PROGS+=		h_read
 PROGS+=		h_readlink
 PROGS+=		h_snprintf

From owner-svn-src-projects@freebsd.org  Thu Feb  9 08:39:09 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 85F5FCD722E
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Thu,  9 Feb 2017 08:39:09 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 46D6814B4;
 Thu,  9 Feb 2017 08:39:09 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v198d8Uh050116;
 Thu, 9 Feb 2017 08:39:08 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v198d7r1050110;
 Thu, 9 Feb 2017 08:39:07 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201702090839.v198d7r1050110@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Thu, 9 Feb 2017 08:39:07 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r313469 - in projects/stable-10-backport-test-changes:
 contrib/netbsd-tests/lib/libc/gen contrib/netbsd-tests/lib/libc/string
 lib/libc/gen lib/libc/string
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 09 Feb 2017 08:39:09 -0000

Author: ngie
Date: Thu Feb  9 08:39:07 2017
New Revision: 313469
URL: https://svnweb.freebsd.org/changeset/base/313469

Log:
  MFC r276527,r277648,r279154,r279397,r283584:
  
  r276527:
  
  Don't install h_raw if dealing with clang 3.5.0+ to unbreak the tests2 Jenkins
  job
  
  The h_raw application doesn't do proper bounds checking without the option
  being supplied via the build, which means that it doesn't throw signals and
  fail as expected
  
  PR: 196430
  
  r277648 (by jilles):
  
  Enable utimensat tests from NetBSD.
  
  As with other tests from c063, a required #include <sys/stat.h> was missing.
  
  r279154 (by jilles):
  
  nice(): Correct return value and [EPERM] error.
  
  PR:		189821
  Obtained from:	NetBSD
  Relnotes:	yes
  
  r279397 (by jilles):
  
  nice(): Put back old return value, keeping [EPERM] error.
  
  Commit r279154 changed the API and ABI significantly, and {NZERO} is still
  wrong.
  
  Also, preserve errno on success instead of setting it to 0.
  
  PR:		189821
  Relnotes:	yes
  
  r283584 (by emaste):
  
  memmem(3): empty little string matches the beginning of the big string
  
  This function originated in glibc, and this matches their behaviour
  (and NetBSD, OpenBSD, and musl).
  
  An empty big string (arg "l") is handled by the existing
  l_len < s_len test.

Modified:
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/gen/t_nice.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/string/t_memmem.c
  projects/stable-10-backport-test-changes/lib/libc/gen/nice.3
  projects/stable-10-backport-test-changes/lib/libc/gen/nice.c
  projects/stable-10-backport-test-changes/lib/libc/string/memmem.3
  projects/stable-10-backport-test-changes/lib/libc/string/memmem.c
Directory Properties:
  projects/stable-10-backport-test-changes/   (props changed)

Modified: projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/gen/t_nice.c
==============================================================================
--- projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/gen/t_nice.c	Thu Feb  9 08:25:30 2017	(r313468)
+++ projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/gen/t_nice.c	Thu Feb  9 08:39:07 2017	(r313469)
@@ -72,11 +72,6 @@ ATF_TC_BODY(nice_err, tc)
 {
 	int i;
 
-#ifdef __FreeBSD__
-	atf_tc_expect_fail("nice(incr) with incr < 0 fails with unprivileged "
-	   "users and sets errno == EPERM; see PR # 189821 for more details");
-#endif
-
 	/*
 	 * The call should fail with EPERM if the
 	 * supplied parameter is negative and the

Modified: projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/string/t_memmem.c
==============================================================================
--- projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/string/t_memmem.c	Thu Feb  9 08:25:30 2017	(r313468)
+++ projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/string/t_memmem.c	Thu Feb  9 08:39:07 2017	(r313469)
@@ -75,7 +75,7 @@ ATF_TC_HEAD(memmem_basic, tc)
 ATF_TC_BODY(memmem_basic, tc)
 {
 
-#if defined(__darwin__) || defined(__FreeBSD__)
+#if defined(__darwin__)
 	expect(memmem(b2, lb2, p0, lp0) == NULL);
 	expect(memmem(b0, lb0, p0, lp0) == NULL);
 #else

Modified: projects/stable-10-backport-test-changes/lib/libc/gen/nice.3
==============================================================================
--- projects/stable-10-backport-test-changes/lib/libc/gen/nice.3	Thu Feb  9 08:25:30 2017	(r313468)
+++ projects/stable-10-backport-test-changes/lib/libc/gen/nice.3	Thu Feb  9 08:39:07 2017	(r313469)
@@ -28,7 +28,7 @@
 .\"     @(#)nice.3	8.1 (Berkeley) 6/4/93
 .\" $FreeBSD$
 .\"
-.Dd June 4, 1993
+.Dd February 28, 2015
 .Dt NICE 3
 .Os
 .Sh NAME
@@ -48,20 +48,48 @@ This interface is obsoleted by
 .Pp
 The
 .Fn nice
-function obtains the scheduling priority of the process
-from the system and sets it to the priority value specified in
-.Fa incr .
+function adds
+.Fa incr
+to the scheduling priority of the process.
 The priority is a value in the range -20 to 20.
 The default priority is 0; lower priorities cause more favorable scheduling.
 Only the super-user may lower priorities.
 .Pp
 Children inherit the priority of their parent processes via
 .Xr fork 2 .
+.Sh RETURN VALUES
+Upon successful completion,
+.Fn nice
+returns 0, and
+.Va errno
+is unchanged.
+Otherwise, \-1 is returned, the process' nice value is not changed, and
+.Va errno
+is set to indicate the error.
+.Sh ERRORS
+The
+.Fn nice
+function will fail if:
+.Bl -tag -width Er
+.It Bq Er EPERM
+The
+.Fa incr
+argument is negative and the caller does not have appropriate privileges.
+.El
 .Sh SEE ALSO
 .Xr nice 1 ,
 .Xr fork 2 ,
 .Xr setpriority 2 ,
 .Xr renice 8
+.Sh STANDARDS
+The
+.Fn nice
+function conforms to
+.St -p1003.1-2008
+except for the return value.
+This implementation returns 0 upon successful completion but 
+the standard requires returning the new nice value,
+which could be \-1.
 .Sh HISTORY
 A
 .Fn nice

Modified: projects/stable-10-backport-test-changes/lib/libc/gen/nice.c
==============================================================================
--- projects/stable-10-backport-test-changes/lib/libc/gen/nice.c	Thu Feb  9 08:25:30 2017	(r313468)
+++ projects/stable-10-backport-test-changes/lib/libc/gen/nice.c	Thu Feb  9 08:39:07 2017	(r313469)
@@ -43,14 +43,20 @@ __FBSDID("$FreeBSD$");
  * Backwards compatible nice.
  */
 int
-nice(incr)
-	int incr;
+nice(int incr)
 {
-	int prio;
+	int saverrno, prio;
 
+	saverrno = errno;
 	errno = 0;
 	prio = getpriority(PRIO_PROCESS, 0);
-	if (prio == -1 && errno)
+	if (prio == -1 && errno != 0)
 		return (-1);
-	return (setpriority(PRIO_PROCESS, 0, prio + incr));
+	if (setpriority(PRIO_PROCESS, 0, prio + incr) == -1) {
+		if (errno == EACCES)
+			errno = EPERM;
+		return (-1);
+	}
+	errno = saverrno;
+	return (0);
 }

Modified: projects/stable-10-backport-test-changes/lib/libc/string/memmem.3
==============================================================================
--- projects/stable-10-backport-test-changes/lib/libc/string/memmem.3	Thu Feb  9 08:25:30 2017	(r313468)
+++ projects/stable-10-backport-test-changes/lib/libc/string/memmem.3	Thu Feb  9 08:39:07 2017	(r313469)
@@ -26,7 +26,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd August 24, 2005
+.Dd May 26, 2015
 .Dt MEMMEM 3
 .Os
 .Sh NAME
@@ -51,14 +51,12 @@ in the byte string
 .Fa big .
 .Sh RETURN VALUES
 If
-.Fa big_len
-is smaller than
-.Fa little_len ,
-if
 .Fa little_len
-is 0, if
-.Fa big_len
-is 0 or if
+is zero
+.Fa big
+is returned (that is, an empty little is deemed to match at the beginning of
+big);
+if
 .Fa little
 occurs nowhere in
 .Fa big ,
@@ -84,3 +82,11 @@ function first appeared in
 .Sh BUGS
 This function was broken in Linux libc up to and including version 5.0.9
 and in GNU libc prior to version 2.1.
+Prior to
+.Fx 11.0
+.Nm
+returned
+.Dv NULL
+when
+.Fa little_len
+equals 0.

Modified: projects/stable-10-backport-test-changes/lib/libc/string/memmem.c
==============================================================================
--- projects/stable-10-backport-test-changes/lib/libc/string/memmem.c	Thu Feb  9 08:25:30 2017	(r313468)
+++ projects/stable-10-backport-test-changes/lib/libc/string/memmem.c	Thu Feb  9 08:39:07 2017	(r313469)
@@ -42,9 +42,9 @@ memmem(const void *l, size_t l_len, cons
 	const char *cl = (const char *)l;
 	const char *cs = (const char *)s;
 
-	/* we need something to compare */
-	if (l_len == 0 || s_len == 0)
-		return NULL;
+	/* empty "s" matches the beginning of "l" */
+	if (s_len == 0)
+		return (void *)cl;
 
 	/* "s" must be smaller or equal to "l" */
 	if (l_len < s_len)

From owner-svn-src-projects@freebsd.org  Thu Feb  9 08:41:05 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id B41CCCD7460
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Thu,  9 Feb 2017 08:41:05 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 6A4E91847;
 Thu,  9 Feb 2017 08:41:05 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v198f4F1051092;
 Thu, 9 Feb 2017 08:41:04 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v198f4x2051091;
 Thu, 9 Feb 2017 08:41:04 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201702090841.v198f4x2051091@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Thu, 9 Feb 2017 08:41:04 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r313470 - projects/stable-10-backport-test-changes
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 09 Feb 2017 08:41:05 -0000

Author: ngie
Date: Thu Feb  9 08:41:04 2017
New Revision: 313470
URL: https://svnweb.freebsd.org/changeset/base/313470

Log:
  MFC r286620,r286638:
  
  r286620 (by bapt):
  
  Disable broken test until we have time ti actually fix the test
  
  r286638 (by bapt):
  
  Reenable the test.
  
  Sorry I was testing on the wrong branch.

Modified:
Directory Properties:
  projects/stable-10-backport-test-changes/   (props changed)

From owner-svn-src-projects@freebsd.org  Thu Feb  9 09:02:47 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 80F66CD7C65
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Thu,  9 Feb 2017 09:02:47 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 4C09B7D8;
 Thu,  9 Feb 2017 09:02:47 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1992ksr063008;
 Thu, 9 Feb 2017 09:02:46 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1992jT7063000;
 Thu, 9 Feb 2017 09:02:45 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201702090902.v1992jT7063000@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Thu, 9 Feb 2017 09:02:45 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r313471 - in projects/stable-10-backport-test-changes:
 contrib/netbsd-tests/lib/libc/db contrib/netbsd-tests/lib/libc/gen
 contrib/netbsd-tests/lib/libc/setjmp contrib/netbsd-tests/lib/l...
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 09 Feb 2017 09:02:47 -0000

Author: ngie
Date: Thu Feb  9 09:02:45 2017
New Revision: 313471
URL: https://svnweb.freebsd.org/changeset/base/313471

Log:
  MFC r288444,r296586,r301753,r303840,r304175:
  
  r288444 (by andrew):
  
  Pass 8 arguments to makecontext on arm64 as this is all we support.
  
  Obtained from:	EuroBSDCon Devsummit
  
  r296586 (by bdrewery):
  
  Fix and connect setjmp test.
  
  r301753:
  
  Fix up r274061
  
  Detect /usr/share/dict/words the "right way" by using require.files instead of
  the hacked up attempt in the dict(..) function, which didn't work properly on
  systems where MK_DICT == no.
  
  r303840 (by jhb):
  
  Add timer_settime tests using SIGEV_THREAD.
  
  Note that these tests should work fine on NetBSD and other systems as
  SIGEV_THREAD is POSIX.
  
  r304175 (by ed):
  
  Disable tests for non-standard behaviour of dirname(3)/basename(3).
  
  The NetBSD ATF tests explicitly check that these functions do not modify
  their input. These tests are NetBSD-specific. They test for something
  that is not part of POSIX.
  
  PR:		211873

Modified:
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/db/t_db.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/gen/t_basedirname.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/setjmp/t_setjmp.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/setjmp/t_threadjmp.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/sys/t_getcontext.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/sys/t_timer_create.c
  projects/stable-10-backport-test-changes/etc/mtree/BSD.tests.dist
  projects/stable-10-backport-test-changes/lib/libc/tests/Makefile
Directory Properties:
  projects/stable-10-backport-test-changes/   (props changed)

Modified: projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/db/t_db.sh
==============================================================================
--- projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/db/t_db.sh	Thu Feb  9 08:41:04 2017	(r313470)
+++ projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/db/t_db.sh	Thu Feb  9 09:02:45 2017	(r313471)
@@ -37,6 +37,7 @@ dict()
 	elif [ -f /usr/dict/words ]; then
 		echo /usr/dict/words
 	else
+		echo ""
 		atf_fail "no dictionary found"
 	fi
 }
@@ -44,12 +45,7 @@ dict()
 # Begin FreeBSD
 dict()
 {
-	if [ -f /usr/share/dict/words ]; then
-		echo /usr/share/dict/words
-	else
-		echo /nonexistent
-		atf_skip "Test requires dict/words"
-	fi
+	echo /usr/share/dict/words
 }
 # End FreeBSD
 
@@ -62,6 +58,9 @@ small_btree_head()
 		"Checks btree database using small keys and small data" \
 		"pairs: takes the first hundred entries in the dictionary," \
 		"and makes them be key/data pairs."
+	# Begin FreeBSD
+	atf_set "require.files" /usr/share/dict/words
+	# End FreeBSD
 }
 small_btree_body()
 {
@@ -88,6 +87,9 @@ small_hash_head()
 		"Checks hash database using small keys and small data" \
 		"pairs: takes the first hundred entries in the dictionary," \
 		"and makes them be key/data pairs."
+	# Begin FreeBSD
+	atf_set "require.files" /usr/share/dict/words
+	# End FreeBSD
 }
 small_hash_body()
 {
@@ -114,6 +116,9 @@ small_recno_head()
 		"Checks recno database using small keys and small data" \
 		"pairs: takes the first hundred entries in the dictionary," \
 		"and makes them be key/data pairs."
+	# Begin FreeBSD
+	atf_set "require.files" /usr/share/dict/words
+	# End FreeBSD
 }
 small_recno_body()
 {
@@ -138,6 +143,9 @@ medium_btree_head()
 		"Checks btree database using small keys and medium" \
 		"data pairs: takes the first 200 entries in the" \
 		"dictionary, and gives them each a medium size data entry."
+	# Begin FreeBSD
+	atf_set "require.files" /usr/share/dict/words
+	# End FreeBSD
 }
 medium_btree_body()
 {
@@ -166,6 +174,9 @@ medium_hash_head()
 		"Checks hash database using small keys and medium" \
 		"data pairs: takes the first 200 entries in the" \
 		"dictionary, and gives them each a medium size data entry."
+	# Begin FreeBSD
+	atf_set "require.files" /usr/share/dict/words
+	# End FreeBSD
 }
 medium_hash_body()
 {
@@ -731,6 +742,9 @@ small_page_btree_head()
 		"reverses them, and gives them each a small size data" \
 		"entry. Uses a small page size to make sure the btree" \
 		"split code gets hammered."
+	# Begin FreeBSD
+	atf_set "require.files" /usr/share/dict/words
+	# End FreeBSD
 }
 small_page_btree_body()
 {
@@ -784,6 +798,9 @@ atf_test_case byte_orders_btree
 byte_orders_btree_head()
 {
 	atf_set "descr" "Checks btree database using differing byte orders"
+	# Begin FreeBSD
+	atf_set "require.files" /usr/share/dict/words
+	# End FreeBSD
 }
 byte_orders_btree_body()
 {
@@ -816,6 +833,9 @@ bsize_ffactor_head()
 	atf_set "timeout" "480"
 	atf_set "descr" "Checks hash database with various" \
 					"bucketsizes and fill factors"
+	# Begin FreeBSD
+	atf_set "require.files" /usr/share/dict/words
+	# End FreeBSD
 }
 bsize_ffactor_body()
 {

Modified: projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/gen/t_basedirname.c
==============================================================================
--- projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/gen/t_basedirname.c	Thu Feb  9 08:41:04 2017	(r313470)
+++ projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/gen/t_basedirname.c	Thu Feb  9 09:02:45 2017	(r313471)
@@ -111,6 +111,7 @@ ATF_TC_BODY(basename_posix, tc)
 		} else
 			base = basename(NULL);
 
+#ifdef __NetBSD__
 		/*
 		 * basename(3) is allowed to modify the input buffer.
 		 * However, that is considered hostile by some programs,
@@ -127,6 +128,7 @@ ATF_TC_BODY(basename_posix, tc)
 			    test_basename_table[i].input);
 			atf_tc_fail("Input buffer was modified.");
 		}
+#endif
 
 		/* Make sure the result is correct. */
 		if (strcmp(test_basename_table[i].output, base) != 0) {
@@ -162,6 +164,7 @@ ATF_TC_BODY(dirname_posix, tc)
 		} else
 			base = dirname(NULL);
 
+#ifdef __NetBSD__
 		/*
 		 * dirname(3) is allowed to modify the input buffer.
 		 * However, that is considered hostile by some programs,
@@ -178,6 +181,7 @@ ATF_TC_BODY(dirname_posix, tc)
 			    test_dirname_table[i].input);
 			atf_tc_fail("Input buffer was modified.");
 		}
+#endif
 
 		/* Make sure the result is correct. */
 		if (strcmp(test_dirname_table[i].output, base) != 0) {

Modified: projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/setjmp/t_setjmp.c
==============================================================================
--- projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/setjmp/t_setjmp.c	Thu Feb  9 08:41:04 2017	(r313470)
+++ projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/setjmp/t_setjmp.c	Thu Feb  9 09:02:45 2017	(r313471)
@@ -87,7 +87,7 @@ __RCSID("$NetBSD: t_setjmp.c,v 1.1 2010/
 static int expectsignal;
 
 static void
-aborthandler(int signo)
+aborthandler(int signo __unused)
 {
 	ATF_REQUIRE_MSG(expectsignal, "kill(SIGABRT) succeeded");
 	atf_tc_pass();

Modified: projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/setjmp/t_threadjmp.c
==============================================================================
--- projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/setjmp/t_threadjmp.c	Thu Feb  9 08:41:04 2017	(r313470)
+++ projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/setjmp/t_threadjmp.c	Thu Feb  9 09:02:45 2017	(r313471)
@@ -91,7 +91,7 @@ static pthread_t myself = NULL;
 static int expectsignal;
 
 static void
-aborthandler(int signo)
+aborthandler(int signo __unused)
 {
 	ATF_REQUIRE(myself == pthread_self());
 	ATF_REQUIRE_MSG(expectsignal, "kill(SIGABRT) succeeded");

Modified: projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/sys/t_getcontext.c
==============================================================================
--- projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/sys/t_getcontext.c	Thu Feb  9 08:41:04 2017	(r313470)
+++ projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/sys/t_getcontext.c	Thu Feb  9 09:02:45 2017	(r313471)
@@ -53,6 +53,8 @@ run(int n, ...)
 	va_start(va, n);
 #if defined(__FreeBSD__) && defined(__amd64__)
 	for (i = 0; i < 5; i++) {
+#elif defined(__FreeBSD__) && defined(__aarch64__)
+	for (i = 0; i < 7; i++) {
 #else
 	for (i = 0; i < 9; i++) {
 #endif
@@ -116,6 +118,10 @@ ATF_TC_BODY(setcontext_link, tc)
 		/* FreeBSD/amd64 only permits up to 6 arguments. */
 		makecontext(&uc[i], (void *)run, 6, i,
 			0, 1, 2, 3, 4);
+#elif defined(__FreeBSD__) && defined(__aarch64__)
+		/* FreeBSD/arm64 only permits up to 8 arguments. */
+		makecontext(&uc[i], (void *)run, 8, i,
+			0, 1, 2, 3, 4, 5, 6);
 #else
 		makecontext(&uc[i], (void *)run, 10, i,
 			0, 1, 2, 3, 4, 5, 6, 7, 8);

Modified: projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/sys/t_timer_create.c
==============================================================================
--- projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/sys/t_timer_create.c	Thu Feb  9 08:41:04 2017	(r313470)
+++ projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/sys/t_timer_create.c	Thu Feb  9 09:02:45 2017	(r313471)
@@ -116,6 +116,61 @@ timer_signal_create(clockid_t cid, bool 
 	ATF_REQUIRE(timer_delete(t) == 0);
 }
 
+#ifdef __FreeBSD__
+static void
+timer_callback(union sigval value)
+{
+	timer_t *tp;
+
+	tp = value.sival_ptr;
+
+	if (*tp == t)
+		fail = false;
+}
+
+static void
+timer_thread_create(clockid_t cid, bool expire)
+{
+	struct itimerspec tim;
+	struct sigevent evt;
+
+	t = 0;
+	fail = true;
+
+	(void)memset(&evt, 0, sizeof(struct sigevent));
+	(void)memset(&tim, 0, sizeof(struct itimerspec));
+
+	/*
+	 * Create the timer (SIGEV_THREAD).
+	 */
+	evt.sigev_notify_function = timer_callback;
+	evt.sigev_value.sival_ptr = &t;
+	evt.sigev_notify = SIGEV_THREAD;
+
+	ATF_REQUIRE(timer_create(cid, &evt, &t) == 0);
+
+	/*
+	 * Start the timer.
+	 */
+	tim.it_value.tv_sec = expire ? 5 : 1;
+	tim.it_value.tv_nsec = 0;
+
+	ATF_REQUIRE(timer_settime(t, 0, &tim, NULL) == 0);
+
+	(void)sleep(2);
+
+	if (expire) {
+		if (!fail)
+			atf_tc_fail("timer fired too soon");
+	} else {
+		if (fail)
+			atf_tc_fail("timer failed to fire");
+	}
+
+	ATF_REQUIRE(timer_delete(t) == 0);
+}
+#endif
+
 ATF_TC(timer_create_err);
 ATF_TC_HEAD(timer_create_err, tc)
 {
@@ -198,6 +253,64 @@ ATF_TC_BODY(timer_create_mono_expire, tc
 	timer_signal_create(CLOCK_MONOTONIC, true);
 }
 
+ATF_TC(timer_thread_create_real);
+ATF_TC_HEAD(timer_thread_create_real, tc)
+{
+
+	atf_tc_set_md_var(tc, "descr",
+	    "Checks timer_create(2) with CLOCK_REALTIME and sigevent(3), "
+	    "SIGEV_THREAD");
+}
+
+#ifdef __FreeBSD__
+ATF_TC_BODY(timer_thread_create_real, tc)
+{
+	timer_thread_create(CLOCK_REALTIME, false);
+}
+
+ATF_TC(timer_thread_create_mono);
+ATF_TC_HEAD(timer_thread_create_mono, tc)
+{
+
+	atf_tc_set_md_var(tc, "descr",
+	    "Checks timer_create(2) with CLOCK_MONOTONIC and sigevent(3), "
+	    "SIGEV_THREAD");
+}
+
+ATF_TC_BODY(timer_thread_create_mono, tc)
+{
+	timer_thread_create(CLOCK_MONOTONIC, false);
+}
+
+ATF_TC(timer_thread_create_real_expire);
+ATF_TC_HEAD(timer_thread_create_real_expire, tc)
+{
+
+	atf_tc_set_md_var(tc, "descr",
+	    "Checks timer_create(2) with CLOCK_REALTIME and sigevent(3), "
+	    "SIGEV_THREAD, with expiration");
+}
+
+ATF_TC_BODY(timer_thread_create_real_expire, tc)
+{
+	timer_thread_create(CLOCK_REALTIME, true);
+}
+
+ATF_TC(timer_thread_create_mono_expire);
+ATF_TC_HEAD(timer_thread_create_mono_expire, tc)
+{
+
+	atf_tc_set_md_var(tc, "descr",
+	    "Checks timer_create(2) with CLOCK_MONOTONIC and sigevent(3), "
+	    "SIGEV_THREAD, with expiration");
+}
+
+ATF_TC_BODY(timer_thread_create_mono_expire, tc)
+{
+	timer_thread_create(CLOCK_MONOTONIC, true);
+}
+#endif
+
 ATF_TP_ADD_TCS(tp)
 {
 
@@ -206,6 +319,12 @@ ATF_TP_ADD_TCS(tp)
 	ATF_TP_ADD_TC(tp, timer_create_mono);
 	ATF_TP_ADD_TC(tp, timer_create_real_expire);
 	ATF_TP_ADD_TC(tp, timer_create_mono_expire);
+#ifdef __FreeBSD__
+	ATF_TP_ADD_TC(tp, timer_thread_create_real);
+	ATF_TP_ADD_TC(tp, timer_thread_create_mono);
+	ATF_TP_ADD_TC(tp, timer_thread_create_real_expire);
+	ATF_TP_ADD_TC(tp, timer_thread_create_mono_expire);
+#endif
 
 	return atf_no_error();
 }

Modified: projects/stable-10-backport-test-changes/etc/mtree/BSD.tests.dist
==============================================================================
--- projects/stable-10-backport-test-changes/etc/mtree/BSD.tests.dist	Thu Feb  9 08:41:04 2017	(r313470)
+++ projects/stable-10-backport-test-changes/etc/mtree/BSD.tests.dist	Thu Feb  9 09:02:45 2017	(r313471)
@@ -123,6 +123,8 @@
             ..
             ssp
             ..
+            setjmp
+            ..
             stdio
             ..
             stdlib

Modified: projects/stable-10-backport-test-changes/lib/libc/tests/Makefile
==============================================================================
--- projects/stable-10-backport-test-changes/lib/libc/tests/Makefile	Thu Feb  9 08:41:04 2017	(r313470)
+++ projects/stable-10-backport-test-changes/lib/libc/tests/Makefile	Thu Feb  9 09:02:45 2017	(r313471)
@@ -17,6 +17,7 @@ TESTS_SUBDIRS+=	nss
 TESTS_SUBDIRS+=	regex
 TESTS_SUBDIRS+=	resolv
 TESTS_SUBDIRS+=	rpc
+TESTS_SUBDIRS+=	setjmp
 TESTS_SUBDIRS+=	stdio
 TESTS_SUBDIRS+=	stdlib
 TESTS_SUBDIRS+=	string

From owner-svn-src-projects@freebsd.org  Thu Feb  9 14:47:35 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 95216CD651C
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Thu,  9 Feb 2017 14:47:35 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 623F0A43;
 Thu,  9 Feb 2017 14:47:35 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v19ElY5Q004410;
 Thu, 9 Feb 2017 14:47:34 GMT (envelope-from emaste@FreeBSD.org)
Received: (from emaste@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v19ElYID004409;
 Thu, 9 Feb 2017 14:47:34 GMT (envelope-from emaste@FreeBSD.org)
Message-Id: <201702091447.v19ElYID004409@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: emaste set sender to
 emaste@FreeBSD.org using -f
From: Ed Maste <emaste@FreeBSD.org>
Date: Thu, 9 Feb 2017 14:47:34 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r313473 - projects/clang400-import/share/mk
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 09 Feb 2017 14:47:35 -0000

Author: emaste
Date: Thu Feb  9 14:47:34 2017
New Revision: 313473
URL: https://svnweb.freebsd.org/changeset/base/313473

Log:
  Disable LLD_IS_LD option combinations that fail
  
  If WITH_LLD is disabled LLD is not built and cannot be installed as
  /usr/bin/ld, so disable WITH_LLD_IS_LD.
  
  Currently we do not compare the LLD host/in-tree version and LLD
  requires the LLVM libraries to be built, so force WITH_SYSTEM_COMPILER
  off when WITH_LLD_IS_LD is set.
  
  The logic for bootstrapping LLD requires some tidying later. We should
  be able to detect that the host linker is the same version and avoid
  building LLD in the same way that WITH_SYSTEM_COMPILER handles Clang.
  We also may be able to extend libllvmminimal to meet LLD's needs.  For
  now this change unbreaks buildworld with default settings except for
  WITH_LLD_IS_LD.
  
  Reported by:	Shawn Webb
  Reviewed by:	bdrewery
  Tested by:	Shawn Webb
  Sponsored by:	The FreeBSD Foundation
  Differential Revision:	https://reviews.freebsd.org/D9487

Modified:
  projects/clang400-import/share/mk/src.opts.mk

Modified: projects/clang400-import/share/mk/src.opts.mk
==============================================================================
--- projects/clang400-import/share/mk/src.opts.mk	Thu Feb  9 13:32:19 2017	(r313472)
+++ projects/clang400-import/share/mk/src.opts.mk	Thu Feb  9 14:47:34 2017	(r313473)
@@ -325,6 +325,16 @@ MK_LDNS_UTILS:=	no
 MK_UNBOUND:= no
 .endif
 
+.if ${MK_LLD} == "no"
+MK_LLD_IS_LD:=	no
+.endif
+
+# LLD requires LLVM libraries, and we do not yet compare in-tree and host LLD
+# versions to avoid building it if they are identical.
+.if ${MK_LLD_IS_LD} != "no"
+MK_SYSTEM_COMPILER:=	no
+.endif
+
 .if ${MK_SOURCELESS} == "no"
 MK_SOURCELESS_HOST:=	no
 MK_SOURCELESS_UCODE:= no

From owner-svn-src-projects@freebsd.org  Fri Feb 10 01:44:25 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id A762FCD8217
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Fri, 10 Feb 2017 01:44:25 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 007C11EA5;
 Fri, 10 Feb 2017 01:44:24 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1A1iOAv079897;
 Fri, 10 Feb 2017 01:44:24 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1A1iJN5079846;
 Fri, 10 Feb 2017 01:44:19 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201702100144.v1A1iJN5079846@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Fri, 10 Feb 2017 01:44:19 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r313501 - in projects/stable-10-backport-test-changes:
 bin/cat/tests bin/date/tests bin/expr/tests bin/ls/tests bin/mv/tests
 bin/pax/tests bin/pkill/tests bin/sh/tests bin/sleep/tests b...
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 10 Feb 2017 01:44:25 -0000

Author: ngie
Date: Fri Feb 10 01:44:18 2017
New Revision: 313501
URL: https://svnweb.freebsd.org/changeset/base/313501

Log:
  MFstable/10@313500

Added:
  projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/privs/tst.kpriv.ksh
     - copied unchanged from r313500, stable/10/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/privs/tst.kpriv.ksh
  projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scalars/err.bigglobal.d
     - copied unchanged from r313500, stable/10/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scalars/err.bigglobal.d
  projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scalars/err.biglocal.d
     - copied unchanged from r313500, stable/10/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scalars/err.biglocal.d
  projects/stable-10-backport-test-changes/cddl/usr.sbin/dtrace/tests/
     - copied from r313500, stable/10/cddl/usr.sbin/dtrace/tests/
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/bin/cat/d_se_output.in
     - copied unchanged from r313500, stable/10/contrib/netbsd-tests/bin/cat/d_se_output.in
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/bin/cat/d_se_output.out
     - copied unchanged from r313500, stable/10/contrib/netbsd-tests/bin/cat/d_se_output.out
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/bin/sh/t_arith.sh
     - copied unchanged from r313500, stable/10/contrib/netbsd-tests/bin/sh/t_arith.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/bin/sh/t_cmdsub.sh
     - copied unchanged from r313500, stable/10/contrib/netbsd-tests/bin/sh/t_cmdsub.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/bin/sh/t_option.sh
     - copied unchanged from r313500, stable/10/contrib/netbsd-tests/bin/sh/t_option.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/bin/sh/t_redir.sh
     - copied unchanged from r313500, stable/10/contrib/netbsd-tests/bin/sh/t_redir.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/bin/sh/t_redircloexec.sh
     - copied unchanged from r313500, stable/10/contrib/netbsd-tests/bin/sh/t_redircloexec.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/bin/sh/t_shift.sh
     - copied unchanged from r313500, stable/10/contrib/netbsd-tests/bin/sh/t_shift.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/bin/sh/t_varval.sh
     - copied unchanged from r313500, stable/10/contrib/netbsd-tests/bin/sh/t_varval.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/dev/fss/
     - copied from r313500, stable/10/contrib/netbsd-tests/dev/fss/
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/dev/usb/
     - copied from r313500, stable/10/contrib/netbsd-tests/dev/usb/
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/include/sys/t_pslist.c
     - copied unchanged from r313500, stable/10/contrib/netbsd-tests/include/sys/t_pslist.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/kernel/kqueue/t_vnode.c
     - copied unchanged from r313500, stable/10/contrib/netbsd-tests/kernel/kqueue/t_vnode.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/db/h_lfsr.c
     - copied unchanged from r313500, stable/10/contrib/netbsd-tests/lib/libc/db/h_lfsr.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/db/t_db_hash_seq.c
     - copied unchanged from r313500, stable/10/contrib/netbsd-tests/lib/libc/db/t_db_hash_seq.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/inet/t_inet_addr.c
     - copied unchanged from r313500, stable/10/contrib/netbsd-tests/lib/libc/inet/t_inet_addr.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/stdio/t_open_memstream.c
     - copied unchanged from r313500, stable/10/contrib/netbsd-tests/lib/libc/stdio/t_open_memstream.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/stdlib/t_strtoi.c
     - copied unchanged from r313500, stable/10/contrib/netbsd-tests/lib/libc/stdlib/t_strtoi.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/sync/cpp_atomic_ops_linkable.cc
     - copied unchanged from r313500, stable/10/contrib/netbsd-tests/lib/libc/sync/cpp_atomic_ops_linkable.cc
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/sys/t_bind.c
     - copied unchanged from r313500, stable/10/contrib/netbsd-tests/lib/libc/sys/t_bind.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/sys/t_getsockname.c
     - copied unchanged from r313500, stable/10/contrib/netbsd-tests/lib/libc/sys/t_getsockname.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/sys/t_posix_fallocate.c
     - copied unchanged from r313500, stable/10/contrib/netbsd-tests/lib/libc/sys/t_posix_fallocate.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/sys/t_wait.c
     - copied unchanged from r313500, stable/10/contrib/netbsd-tests/lib/libc/sys/t_wait.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libm/t_fenv.c
     - copied unchanged from r313500, stable/10/contrib/netbsd-tests/lib/libm/t_fenv.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libm/t_hypot.c
     - copied unchanged from r313500, stable/10/contrib/netbsd-tests/lib/libm/t_hypot.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libusbhid/
     - copied from r313500, stable/10/contrib/netbsd-tests/lib/libusbhid/
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/net/arp/
     - copied from r313500, stable/10/contrib/netbsd-tests/net/arp/
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/net/icmp/t_icmp6_redirect.sh
     - copied unchanged from r313500, stable/10/contrib/netbsd-tests/net/icmp/t_icmp6_redirect.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/net/icmp/t_icmp_redirect.sh
     - copied unchanged from r313500, stable/10/contrib/netbsd-tests/net/icmp/t_icmp_redirect.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/net/if/ifconf.c
     - copied unchanged from r313500, stable/10/contrib/netbsd-tests/net/if/ifconf.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/net/if/t_ifconf.sh
     - copied unchanged from r313500, stable/10/contrib/netbsd-tests/net/if/t_ifconf.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/net/if/t_ifconfig.sh
     - copied unchanged from r313500, stable/10/contrib/netbsd-tests/net/if/t_ifconfig.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/net/if_gif/
     - copied from r313500, stable/10/contrib/netbsd-tests/net/if_gif/
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/net/if_pppoe/
     - copied from r313500, stable/10/contrib/netbsd-tests/net/if_pppoe/
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/net/if_tap/
     - copied from r313500, stable/10/contrib/netbsd-tests/net/if_tap/
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/net/in_cksum/
     - copied from r313500, stable/10/contrib/netbsd-tests/net/in_cksum/
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/net/mcast/
     - copied from r313500, stable/10/contrib/netbsd-tests/net/mcast/
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/net/mpls/t_mpls_fw6.sh
     - copied unchanged from r313500, stable/10/contrib/netbsd-tests/net/mpls/t_mpls_fw6.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/net/mpls/t_mpls_fw64.sh
     - copied unchanged from r313500, stable/10/contrib/netbsd-tests/net/mpls/t_mpls_fw64.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/net/ndp/
     - copied from r313500, stable/10/contrib/netbsd-tests/net/ndp/
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/net/net/t_forwarding.sh
     - copied unchanged from r313500, stable/10/contrib/netbsd-tests/net/net/t_forwarding.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/net/net/t_ipaddress.sh
     - copied unchanged from r313500, stable/10/contrib/netbsd-tests/net/net/t_ipaddress.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/net/net/t_ipv6_lifetime.sh
     - copied unchanged from r313500, stable/10/contrib/netbsd-tests/net/net/t_ipv6_lifetime.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/net/net/t_ipv6address.sh
     - copied unchanged from r313500, stable/10/contrib/netbsd-tests/net/net/t_ipv6address.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/net/route/t_flags.sh
     - copied unchanged from r313500, stable/10/contrib/netbsd-tests/net/route/t_flags.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/net/route/t_flags6.sh
     - copied unchanged from r313500, stable/10/contrib/netbsd-tests/net/route/t_flags6.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/net/route/t_route.sh
     - copied unchanged from r313500, stable/10/contrib/netbsd-tests/net/route/t_route.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/sbin/gpt/
     - copied from r313500, stable/10/contrib/netbsd-tests/sbin/gpt/
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/sbin/resize_ffs/t_check.sh
     - copied unchanged from r313500, stable/10/contrib/netbsd-tests/sbin/resize_ffs/t_check.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/sys/net/
     - copied from r313500, stable/10/contrib/netbsd-tests/sys/net/
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/sys/netatalk/
     - copied from r313500, stable/10/contrib/netbsd-tests/sys/netatalk/
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/sys/netinet/
     - copied from r313500, stable/10/contrib/netbsd-tests/sys/netinet/
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/sys/netinet6/
     - copied from r313500, stable/10/contrib/netbsd-tests/sys/netinet6/
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/usr.bin/config/d_min
     - copied unchanged from r313500, stable/10/contrib/netbsd-tests/usr.bin/config/d_min
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/usr.bin/gdb/
     - copied from r313500, stable/10/contrib/netbsd-tests/usr.bin/gdb/
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/usr.bin/ld/
     - copied from r313500, stable/10/contrib/netbsd-tests/usr.bin/ld/
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/usr.bin/netpgpverify/Testspec
     - copied unchanged from r313500, stable/10/contrib/netbsd-tests/usr.bin/netpgpverify/Testspec
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/usr.bin/xlint/lint1/d_c99_anon_struct.c
     - copied unchanged from r313500, stable/10/contrib/netbsd-tests/usr.bin/xlint/lint1/d_c99_anon_struct.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/usr.bin/xlint/lint1/d_c99_compound_literal_comma.c
     - copied unchanged from r313500, stable/10/contrib/netbsd-tests/usr.bin/xlint/lint1/d_c99_compound_literal_comma.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/usr.bin/xlint/lint1/d_c99_flex_array_packed.c
     - copied unchanged from r313500, stable/10/contrib/netbsd-tests/usr.bin/xlint/lint1/d_c99_flex_array_packed.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/usr.bin/xlint/lint1/d_c99_nested_struct.c
     - copied unchanged from r313500, stable/10/contrib/netbsd-tests/usr.bin/xlint/lint1/d_c99_nested_struct.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/usr.bin/xlint/lint1/d_c99_union_init4.c
     - copied unchanged from r313500, stable/10/contrib/netbsd-tests/usr.bin/xlint/lint1/d_c99_union_init4.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/usr.bin/xlint/lint1/d_cast_fun_array_param.c
     - copied unchanged from r313500, stable/10/contrib/netbsd-tests/usr.bin/xlint/lint1/d_cast_fun_array_param.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/usr.bin/xlint/lint1/d_type_question_colon.c
     - copied unchanged from r313500, stable/10/contrib/netbsd-tests/usr.bin/xlint/lint1/d_type_question_colon.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/usr.bin/xlint/lint1/d_typefun.c
     - copied unchanged from r313500, stable/10/contrib/netbsd-tests/usr.bin/xlint/lint1/d_typefun.c
  projects/stable-10-backport-test-changes/lib/libc/tests/stdio/open_memstream2_test.c
     - copied unchanged from r313500, stable/10/lib/libc/tests/stdio/open_memstream2_test.c
  projects/stable-10-backport-test-changes/lib/libpam/libpam/tests/
     - copied from r313500, stable/10/lib/libpam/libpam/tests/
Deleted:
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/bin/sh/t_compexit.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/fs/nfs/nfsservice/mountd.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/fs/nfs/nfsservice/nfsd.c
  projects/stable-10-backport-test-changes/lib/libc/tests/stdio/open_memstream_test.c
Modified:
  projects/stable-10-backport-test-changes/bin/cat/tests/Makefile
  projects/stable-10-backport-test-changes/bin/date/tests/Makefile
  projects/stable-10-backport-test-changes/bin/expr/tests/Makefile
  projects/stable-10-backport-test-changes/bin/ls/tests/Makefile
  projects/stable-10-backport-test-changes/bin/mv/tests/Makefile
  projects/stable-10-backport-test-changes/bin/pax/tests/Makefile
  projects/stable-10-backport-test-changes/bin/pkill/tests/Makefile
  projects/stable-10-backport-test-changes/bin/sh/tests/Makefile
  projects/stable-10-backport-test-changes/bin/sleep/tests/Makefile
  projects/stable-10-backport-test-changes/bin/test/tests/Makefile
  projects/stable-10-backport-test-changes/bin/tests/Makefile
  projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/io/tst.fds.c
  projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/io/tst.fds.d
  projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/json/tst.usdt.c
  projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/nfs/tst.call3.c
  projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.args1.c
  projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.gcc.c
  projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.ret1.c
  projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.ret2.c
  projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.weak1.c
  projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.weak2.c
  projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/printf/tst.basics.d
  projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/printf/tst.basics.d.out
  projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/printf/tst.str.d
  projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/printf/tst.str.d.out
  projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/printf/tst.sym.d
  projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/printf/tst.sym.d.out
  projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/profile-n/tst.ufunc.ksh
  projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/profile-n/tst.umod.ksh
  projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/profile-n/tst.usym.ksh
  projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/syscall/tst.args.c
  projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.forker.c
  projects/stable-10-backport-test-changes/cddl/lib/tests/Makefile
  projects/stable-10-backport-test-changes/cddl/sbin/tests/Makefile
  projects/stable-10-backport-test-changes/cddl/tests/Makefile
  projects/stable-10-backport-test-changes/cddl/usr.bin/tests/Makefile
  projects/stable-10-backport-test-changes/cddl/usr.sbin/tests/Makefile
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/bin/cat/d_align.in
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/bin/cat/d_align.out
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/bin/cat/t_cat.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/bin/sh/dotcmd/scoped_command
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/bin/sh/dotcmd/t_dotcmd.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/bin/sh/t_evaltested.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/bin/sh/t_exit.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/bin/sh/t_expand.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/bin/sh/t_fsplit.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/bin/sh/t_here.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/bin/sh/t_set_e.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/bin/sh/t_ulimit.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/bin/sh/t_varquote.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/bin/sh/t_wait.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/crypto/opencrypto/t_opencrypto.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/dev/audio/t_pad_output.bz2.uue
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/dev/dm/h_dm.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/dev/sysmon/t_swsensor.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/dev/sysmon/t_swwdog.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/fs/common/fstest_lfs.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/fs/common/h_fsmacros.h
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/fs/h_funcs.subr
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/fs/nfs/nfsservice/rumpnfsd.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/fs/nfs/t_rquotad.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/fs/tmpfs/t_mknod.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/fs/tmpfs/t_readdir.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/fs/tmpfs/t_sizes.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/fs/tmpfs/t_statvfs.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/fs/tmpfs/t_vnd.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/fs/tmpfs/t_vnode_leak.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/fs/vfs/t_io.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/fs/vfs/t_renamerace.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/fs/vfs/t_unpriv.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/fs/vfs/t_vnops.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/games/t_factor.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/h_macros.h
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/include/sys/t_bitops.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/include/sys/t_cdefs.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/include/sys/t_socket.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/include/t_paths.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/ipf/expected/n14
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/ipf/expected/n14_6
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/ipf/t_filter_parse.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/ipf/t_nat_exec.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/kernel/kqueue/read/t_fifo.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/kernel/kqueue/read/t_file.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/kernel/kqueue/read/t_pipe.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/kernel/kqueue/read/t_ttypty.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/kernel/kqueue/t_ioctl.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/kernel/kqueue/t_proc1.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/kernel/kqueue/t_proc2.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/kernel/kqueue/t_proc3.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/kernel/kqueue/t_sig.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/kernel/t_rnd.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libbpfjit/t_bpfjit.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/arch/ia64/return_one.S
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/arch/powerpc/return_one.S
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/arch/riscv/return_one.S
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/db/t_db.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/gen/execve/t_execve.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/gen/isqemu.h
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/gen/posix_spawn/t_spawn.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/gen/t_fnmatch.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/gen/t_fpsetmask.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/gen/t_nice.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/gen/t_randomid.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/gen/t_siginfo.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/gen/t_sleep.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/gen/t_time.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/gen/t_vis.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/inet/t_inet_network.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/net/t_servent.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/rpc/t_rpc.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/stdlib/t_getenv.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/stdlib/t_posix_memalign.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/stdlib/t_strtod.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/stdlib/t_strtol.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/string/t_memset.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/sys/t_connect.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/sys/t_getcontext.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/sys/t_getrusage.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/sys/t_kevent.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/sys/t_mlock.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/sys/t_mmap.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/sys/t_mprotect.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/sys/t_setrlimit.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/sys/t_sigqueue.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libc/time/t_strptime.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libcurses/director/testlang_parse.y
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libm/t_exp.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libm/t_fmod.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libm/t_log.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libm/t_pow.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libpthread/t_cond.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libpthread/t_mutex.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libpthread/t_rwlock.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/librumpclient/t_exec.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/librumpclient/t_fd.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/librumphijack/t_tcpip.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/lib/libutil/t_parsedate.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/net/bpfilter/t_bpfilter.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/net/bpfjit/t_bpfjit.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/net/icmp/t_forward.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/net/icmp/t_ping.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/net/icmp/t_ping2.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/net/if_bridge/t_bridge.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/net/mpls/t_ldp_regen.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/net/mpls/t_mpls_fw.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/net/mpls/t_rfc4182.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/net/net/t_tcp.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/net/route/t_change.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/rump/modautoload/t_modautoload.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/rump/rumpkern/h_server/h_simpleserver.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/rump/rumpkern/t_lwproc.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/rump/rumpkern/t_sp.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/rump/rumpnet/t_shmif.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/rump/rumpvfs/t_p2kifs.c
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/sbin/resize_ffs/common.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/sbin/resize_ffs/t_grow.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/sbin/resize_ffs/t_grow_swapped.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/sbin/resize_ffs/t_shrink.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/sbin/resize_ffs/t_shrink_swapped.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/sbin/sysctl/t_perm.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/share/mk/t_lib.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/share/mk/t_prog.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/share/mk/t_test.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/usr.bin/cc/t_hello.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/usr.bin/config/support/conf/files
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/usr.bin/config/t_config.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/usr.bin/make/t_make.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/usr.bin/netpgpverify/t_netpgpverify.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/usr.bin/sed/t_sed.sh
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/usr.bin/sort/d_any_char_dflag_out.txt   (contents, props changed)
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/usr.bin/sort/d_any_char_fflag_out.txt   (contents, props changed)
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/usr.bin/sort/d_any_char_iflag_out.txt   (contents, props changed)
  projects/stable-10-backport-test-changes/contrib/netbsd-tests/usr.sbin/traceroute/t_traceroute.sh
  projects/stable-10-backport-test-changes/etc/mtree/BSD.tests.dist
  projects/stable-10-backport-test-changes/gnu/lib/tests/Makefile
  projects/stable-10-backport-test-changes/gnu/tests/Makefile
  projects/stable-10-backport-test-changes/gnu/usr.bin/diff/tests/Makefile
  projects/stable-10-backport-test-changes/gnu/usr.bin/tests/Makefile
  projects/stable-10-backport-test-changes/lib/atf/libatf-c++/tests/Makefile
  projects/stable-10-backport-test-changes/lib/atf/libatf-c++/tests/detail/Makefile
  projects/stable-10-backport-test-changes/lib/atf/libatf-c/tests/Makefile
  projects/stable-10-backport-test-changes/lib/atf/libatf-c/tests/detail/Makefile
  projects/stable-10-backport-test-changes/lib/atf/tests/Makefile
  projects/stable-10-backport-test-changes/lib/atf/tests/test-programs/Makefile
  projects/stable-10-backport-test-changes/lib/libc/tests/Makefile
  projects/stable-10-backport-test-changes/lib/libc/tests/Makefile.netbsd-tests
  projects/stable-10-backport-test-changes/lib/libc/tests/c063/Makefile
  projects/stable-10-backport-test-changes/lib/libc/tests/db/Makefile
  projects/stable-10-backport-test-changes/lib/libc/tests/gen/Makefile
  projects/stable-10-backport-test-changes/lib/libc/tests/gen/execve/Makefile
  projects/stable-10-backport-test-changes/lib/libc/tests/gen/posix_spawn/Makefile
  projects/stable-10-backport-test-changes/lib/libc/tests/hash/Makefile
  projects/stable-10-backport-test-changes/lib/libc/tests/inet/Makefile
  projects/stable-10-backport-test-changes/lib/libc/tests/locale/Makefile
  projects/stable-10-backport-test-changes/lib/libc/tests/net/Makefile
  projects/stable-10-backport-test-changes/lib/libc/tests/net/getaddrinfo/Makefile
  projects/stable-10-backport-test-changes/lib/libc/tests/regex/Makefile
  projects/stable-10-backport-test-changes/lib/libc/tests/rpc/Makefile
  projects/stable-10-backport-test-changes/lib/libc/tests/setjmp/Makefile
  projects/stable-10-backport-test-changes/lib/libc/tests/ssp/Makefile
  projects/stable-10-backport-test-changes/lib/libc/tests/stdio/Makefile
  projects/stable-10-backport-test-changes/lib/libc/tests/stdlib/Makefile
  projects/stable-10-backport-test-changes/lib/libc/tests/string/Makefile
  projects/stable-10-backport-test-changes/lib/libc/tests/sys/Makefile
  projects/stable-10-backport-test-changes/lib/libc/tests/termios/Makefile
  projects/stable-10-backport-test-changes/lib/libc/tests/time/Makefile
  projects/stable-10-backport-test-changes/lib/libc/tests/tls/Makefile
  projects/stable-10-backport-test-changes/lib/libc/tests/tls/dso/Makefile
  projects/stable-10-backport-test-changes/lib/libc/tests/ttyio/Makefile
  projects/stable-10-backport-test-changes/lib/libcrypt/tests/Makefile
  projects/stable-10-backport-test-changes/lib/libmp/tests/Makefile
  projects/stable-10-backport-test-changes/lib/libnv/tests/Makefile
  projects/stable-10-backport-test-changes/lib/libpam/libpam/Makefile
  projects/stable-10-backport-test-changes/lib/librt/tests/Makefile
  projects/stable-10-backport-test-changes/lib/libthr/tests/Makefile
  projects/stable-10-backport-test-changes/lib/libthr/tests/dlopen/Makefile
  projects/stable-10-backport-test-changes/lib/libthr/tests/dlopen/dso/Makefile
  projects/stable-10-backport-test-changes/lib/libutil/tests/Makefile
  projects/stable-10-backport-test-changes/lib/msun/tests/Makefile
  projects/stable-10-backport-test-changes/lib/tests/Makefile
  projects/stable-10-backport-test-changes/libexec/atf/atf-check/tests/Makefile
  projects/stable-10-backport-test-changes/libexec/atf/atf-sh/tests/Makefile
  projects/stable-10-backport-test-changes/libexec/atf/tests/Makefile
  projects/stable-10-backport-test-changes/libexec/tests/Makefile
  projects/stable-10-backport-test-changes/sbin/devd/tests/Makefile
  projects/stable-10-backport-test-changes/sbin/dhclient/tests/Makefile
  projects/stable-10-backport-test-changes/sbin/growfs/tests/Makefile
  projects/stable-10-backport-test-changes/sbin/mdconfig/tests/Makefile
  projects/stable-10-backport-test-changes/sbin/tests/Makefile
  projects/stable-10-backport-test-changes/secure/lib/tests/Makefile
  projects/stable-10-backport-test-changes/secure/libexec/tests/Makefile
  projects/stable-10-backport-test-changes/secure/tests/Makefile
  projects/stable-10-backport-test-changes/secure/usr.bin/tests/Makefile
  projects/stable-10-backport-test-changes/secure/usr.sbin/tests/Makefile
  projects/stable-10-backport-test-changes/share/examples/tests/Makefile
  projects/stable-10-backport-test-changes/share/tests/Makefile
  projects/stable-10-backport-test-changes/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c
  projects/stable-10-backport-test-changes/sys/cddl/contrib/opensolaris/uts/common/sys/dtrace_impl.h
  projects/stable-10-backport-test-changes/tests/etc/Makefile
  projects/stable-10-backport-test-changes/tests/sys/mqueue/Makefile
  projects/stable-10-backport-test-changes/tests/sys/pjdfstest/tests/Makefile
  projects/stable-10-backport-test-changes/tools/test/dtrace/Makefile
  projects/stable-10-backport-test-changes/usr.bin/apply/tests/Makefile
  projects/stable-10-backport-test-changes/usr.bin/basename/tests/Makefile
  projects/stable-10-backport-test-changes/usr.bin/calendar/tests/Makefile
  projects/stable-10-backport-test-changes/usr.bin/cmp/tests/Makefile
  projects/stable-10-backport-test-changes/usr.bin/col/tests/Makefile
  projects/stable-10-backport-test-changes/usr.bin/comm/tests/Makefile
  projects/stable-10-backport-test-changes/usr.bin/cut/tests/Makefile
  projects/stable-10-backport-test-changes/usr.bin/dirname/tests/Makefile
  projects/stable-10-backport-test-changes/usr.bin/file2c/tests/Makefile
  projects/stable-10-backport-test-changes/usr.bin/grep/tests/Makefile
  projects/stable-10-backport-test-changes/usr.bin/gzip/tests/Makefile
  projects/stable-10-backport-test-changes/usr.bin/join/tests/Makefile
  projects/stable-10-backport-test-changes/usr.bin/jot/tests/Makefile
  projects/stable-10-backport-test-changes/usr.bin/lastcomm/tests/Makefile
  projects/stable-10-backport-test-changes/usr.bin/m4/tests/Makefile
  projects/stable-10-backport-test-changes/usr.bin/ncal/tests/Makefile
  projects/stable-10-backport-test-changes/usr.bin/printf/tests/Makefile
  projects/stable-10-backport-test-changes/usr.bin/sed/tests/Makefile
  projects/stable-10-backport-test-changes/usr.bin/tests/Makefile
  projects/stable-10-backport-test-changes/usr.bin/truncate/tests/Makefile
  projects/stable-10-backport-test-changes/usr.bin/uudecode/tests/Makefile
  projects/stable-10-backport-test-changes/usr.bin/uuencode/tests/Makefile
  projects/stable-10-backport-test-changes/usr.bin/xargs/tests/Makefile
  projects/stable-10-backport-test-changes/usr.bin/yacc/tests/Makefile
  projects/stable-10-backport-test-changes/usr.sbin/etcupdate/tests/Makefile
  projects/stable-10-backport-test-changes/usr.sbin/fstyp/tests/Makefile
  projects/stable-10-backport-test-changes/usr.sbin/newsyslog/tests/Makefile
  projects/stable-10-backport-test-changes/usr.sbin/nmtree/tests/Makefile
  projects/stable-10-backport-test-changes/usr.sbin/pw/tests/Makefile
  projects/stable-10-backport-test-changes/usr.sbin/sa/tests/Makefile
  projects/stable-10-backport-test-changes/usr.sbin/tests/Makefile
Directory Properties:
  projects/stable-10-backport-test-changes/   (props changed)

Modified: projects/stable-10-backport-test-changes/bin/cat/tests/Makefile
==============================================================================
--- projects/stable-10-backport-test-changes/bin/cat/tests/Makefile	Fri Feb 10 01:26:49 2017	(r313500)
+++ projects/stable-10-backport-test-changes/bin/cat/tests/Makefile	Fri Feb 10 01:44:18 2017	(r313501)
@@ -1,18 +1,20 @@
 # $FreeBSD$
 
-OBJTOP=		${.OBJDIR}/../../..
-SRCTOP=		${.CURDIR}/../../..
-TESTSRC=	${SRCTOP}/contrib/netbsd-tests/bin/cat
-
-TESTSDIR=	${TESTSBASE}/bin/cat
-
 NETBSD_ATF_TESTS_SH=		cat_test
 
 FILESDIR=	${TESTSDIR}
 
-FILES=		d_align.in
+FILES+=		d_align.in
 FILES+=		d_align.out
+FILES+=		d_se_output.in
+FILES+=		d_se_output.out
 
 .include <netbsd-tests.test.mk>
 
+d_align.out: ${TESTSRC}/d_align.out
+	sed -E -e 's,^[[:space:]]{7}\$$$$,\$$,' < ${.ALLSRC} > ${.TARGET}.tmp
+	mv ${.TARGET}.tmp ${.TARGET}
+
+CLEANFILES+=			d_align.out d_align.out.tmp
+
 .include <bsd.test.mk>

Modified: projects/stable-10-backport-test-changes/bin/date/tests/Makefile
==============================================================================
--- projects/stable-10-backport-test-changes/bin/date/tests/Makefile	Fri Feb 10 01:26:49 2017	(r313500)
+++ projects/stable-10-backport-test-changes/bin/date/tests/Makefile	Fri Feb 10 01:44:18 2017	(r313501)
@@ -2,8 +2,6 @@
 
 .include <bsd.own.mk>
 
-TESTSDIR=	${TESTSBASE}/bin/date
-
 ATF_TESTS_SH=	format_string_test
 
 .include <bsd.test.mk>

Modified: projects/stable-10-backport-test-changes/bin/expr/tests/Makefile
==============================================================================
--- projects/stable-10-backport-test-changes/bin/expr/tests/Makefile	Fri Feb 10 01:26:49 2017	(r313500)
+++ projects/stable-10-backport-test-changes/bin/expr/tests/Makefile	Fri Feb 10 01:44:18 2017	(r313501)
@@ -1,11 +1,5 @@
 # $FreeBSD$
 
-OBJTOP=		${.OBJDIR}/../../..
-SRCTOP=		${.CURDIR}/../../..
-TESTSRC=	${SRCTOP}/contrib/netbsd-tests/bin/expr
-
-TESTSDIR=	${TESTSBASE}/bin/expr
-
 NETBSD_ATF_TESTS_SH=	expr_test
 
 ATF_TESTS_SH_SED_expr_test+=	-e 's/eval expr/eval expr --/g'

Modified: projects/stable-10-backport-test-changes/bin/ls/tests/Makefile
==============================================================================
--- projects/stable-10-backport-test-changes/bin/ls/tests/Makefile	Fri Feb 10 01:26:49 2017	(r313500)
+++ projects/stable-10-backport-test-changes/bin/ls/tests/Makefile	Fri Feb 10 01:44:18 2017	(r313501)
@@ -1,7 +1,5 @@
 # $FreeBSD$
 
-TESTSDIR=	${TESTSBASE}/bin/ls
-
 ATF_TESTS_SH+=	ls_tests
 # This seems like overkill, but the idea in mind is that all of the testcases
 # should be runnable as !root

Modified: projects/stable-10-backport-test-changes/bin/mv/tests/Makefile
==============================================================================
--- projects/stable-10-backport-test-changes/bin/mv/tests/Makefile	Fri Feb 10 01:26:49 2017	(r313500)
+++ projects/stable-10-backport-test-changes/bin/mv/tests/Makefile	Fri Feb 10 01:44:18 2017	(r313501)
@@ -2,8 +2,6 @@
 
 .include <bsd.own.mk>
 
-TESTSDIR=	${TESTSBASE}/bin/mv
-
 TAP_TESTS_SH=	legacy_test
 
 .include <bsd.test.mk>

Modified: projects/stable-10-backport-test-changes/bin/pax/tests/Makefile
==============================================================================
--- projects/stable-10-backport-test-changes/bin/pax/tests/Makefile	Fri Feb 10 01:26:49 2017	(r313500)
+++ projects/stable-10-backport-test-changes/bin/pax/tests/Makefile	Fri Feb 10 01:44:18 2017	(r313501)
@@ -2,8 +2,6 @@
 
 .include <bsd.own.mk>
 
-TESTSDIR=	${TESTSBASE}/bin/pax
-
 TAP_TESTS_PERL=	legacy_test
 
 .include <bsd.test.mk>

Modified: projects/stable-10-backport-test-changes/bin/pkill/tests/Makefile
==============================================================================
--- projects/stable-10-backport-test-changes/bin/pkill/tests/Makefile	Fri Feb 10 01:26:49 2017	(r313500)
+++ projects/stable-10-backport-test-changes/bin/pkill/tests/Makefile	Fri Feb 10 01:44:18 2017	(r313501)
@@ -2,8 +2,6 @@
 
 .include <bsd.own.mk>
 
-TESTSDIR=	${TESTSBASE}/bin/pkill
-
 TAP_TESTS_SH=			pgrep-F_test
 TAP_TESTS_SH+=			pgrep-LF_test
 TAP_TESTS_SH+=			pgrep-P_test

Modified: projects/stable-10-backport-test-changes/bin/sh/tests/Makefile
==============================================================================
--- projects/stable-10-backport-test-changes/bin/sh/tests/Makefile	Fri Feb 10 01:26:49 2017	(r313500)
+++ projects/stable-10-backport-test-changes/bin/sh/tests/Makefile	Fri Feb 10 01:44:18 2017	(r313501)
@@ -2,8 +2,6 @@
 
 .include <bsd.own.mk>
 
-TESTSDIR=	${TESTSBASE}/bin/sh
-
 TESTS_SUBDIRS+=	builtins
 TESTS_SUBDIRS+=	errors
 TESTS_SUBDIRS+=	execution

Modified: projects/stable-10-backport-test-changes/bin/sleep/tests/Makefile
==============================================================================
--- projects/stable-10-backport-test-changes/bin/sleep/tests/Makefile	Fri Feb 10 01:26:49 2017	(r313500)
+++ projects/stable-10-backport-test-changes/bin/sleep/tests/Makefile	Fri Feb 10 01:44:18 2017	(r313501)
@@ -1,12 +1,7 @@
 # $FreeBSD$
 
-TESTSRC=	${.CURDIR}/../../../contrib/netbsd-tests/bin/sleep
-.PATH: ${TESTSRC}
-
 .include <bsd.own.mk>
 
-TESTSDIR=	${TESTSBASE}/bin/sleep
-ATF_TESTS_SH=	sleep_test
-ATF_TESTS_SH_SRC_sleep_test=	t_sleep.sh
+NETBSD_ATF_TESTS_SH=	sleep_test
 
 .include <bsd.test.mk>

Modified: projects/stable-10-backport-test-changes/bin/test/tests/Makefile
==============================================================================
--- projects/stable-10-backport-test-changes/bin/test/tests/Makefile	Fri Feb 10 01:26:49 2017	(r313500)
+++ projects/stable-10-backport-test-changes/bin/test/tests/Makefile	Fri Feb 10 01:44:18 2017	(r313501)
@@ -2,8 +2,6 @@
 
 .include <bsd.own.mk>
 
-TESTSDIR=	${TESTSBASE}/bin/test
-
 TAP_TESTS_SH=	legacy_test
 # Some tests in here are silently not run when the tests are executed as
 # root.  Explicitly tell Kyua to drop privileges.

Modified: projects/stable-10-backport-test-changes/bin/tests/Makefile
==============================================================================
--- projects/stable-10-backport-test-changes/bin/tests/Makefile	Fri Feb 10 01:26:49 2017	(r313500)
+++ projects/stable-10-backport-test-changes/bin/tests/Makefile	Fri Feb 10 01:44:18 2017	(r313501)
@@ -2,9 +2,7 @@
 
 .include <bsd.own.mk>
 
-TESTSDIR=	${TESTSBASE}/bin
-
-.PATH:		${.CURDIR:H:H}/tests
+.PATH:		${SRCTOP}/tests
 KYUAFILE=	yes
 
 .include <bsd.test.mk>

Modified: projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/io/tst.fds.c
==============================================================================
--- projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/io/tst.fds.c	Fri Feb 10 01:26:49 2017	(r313500)
+++ projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/io/tst.fds.c	Fri Feb 10 01:44:18 2017	(r313501)
@@ -26,6 +26,8 @@
 
 #pragma ident	"%Z%%M%	%I%	%E% SMI"
 
+#include <sys/ioctl.h>
+
 #include <assert.h>
 #include <setjmp.h>
 #include <signal.h>
@@ -69,7 +71,7 @@ main(int argc, char *argv[])
 	 */
 	if (sigsetjmp(env, 1) == 0) {
 		for (;;)
-			(void) ioctl(-1, -1, NULL);
+			(void) ioctl(-1, 0, NULL);
 	}
 
 	/*
@@ -80,20 +82,19 @@ main(int argc, char *argv[])
 	fds[n++] = open(file, O_WRONLY);
 	fds[n++] = open(file, O_RDWR);
 
-	fds[n++] = open(file, O_RDWR | O_APPEND | O_CREAT | O_DSYNC |
-	    O_LARGEFILE | O_NOCTTY | O_NONBLOCK | O_NDELAY | O_RSYNC |
-	    O_SYNC | O_TRUNC | O_XATTR, 0666);
+	fds[n++] = open(file, O_RDWR | O_APPEND | O_CREAT |
+	    O_NOCTTY | O_NONBLOCK | O_NDELAY | O_SYNC | O_TRUNC | 0666);
 
 	fds[n++] = open(file, O_RDWR);
 	(void) lseek(fds[n - 1], 123, SEEK_SET);
 
 	/*
 	 * Once we have all the file descriptors in the state we want to test,
-	 * issue a bogus ioctl() on each fd with cmd -1 and arg NULL to whack
+	 * issue a bogus ioctl() on each fd with cmd 0 and arg NULL to whack
 	 * our DTrace script into recording the content of the fds[] array.
 	 */
 	for (i = 0; i < n; i++)
-		(void) ioctl(fds[i], -1, NULL);
+		(void) ioctl(fds[i], 0, NULL);
 
 	assert(n <= sizeof (fds) / sizeof (fds[0]));
 	exit(0);

Modified: projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/io/tst.fds.d
==============================================================================
--- projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/io/tst.fds.d	Fri Feb 10 01:26:49 2017	(r313500)
+++ projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/io/tst.fds.d	Fri Feb 10 01:44:18 2017	(r313501)
@@ -36,7 +36,7 @@ syscall::ioctl:entry
 }
 
 syscall::ioctl:entry
-/pid == $1 && arg0 != -1u && arg1 == -1u && arg2 == NULL/
+/pid == $1 && arg0 != -1u && arg1 == 0 && arg2 == NULL/
 {
 	printf("fds[%d] fi_name = %s\n", arg0, fds[arg0].fi_name);
 	printf("fds[%d] fi_dirname = %s\n", arg0, fds[arg0].fi_dirname);

Modified: projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/json/tst.usdt.c
==============================================================================
--- projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/json/tst.usdt.c	Fri Feb 10 01:26:49 2017	(r313500)
+++ projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/json/tst.usdt.c	Fri Feb 10 01:44:18 2017	(r313501)
@@ -14,6 +14,8 @@
  */
 
 #include <sys/sdt.h>
+#include <stdio.h>
+#include <stdlib.h>
 #include "usdt.h"
 
 #define	FMT	"{" \

Modified: projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/nfs/tst.call3.c
==============================================================================
--- projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/nfs/tst.call3.c	Fri Feb 10 01:26:49 2017	(r313500)
+++ projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/nfs/tst.call3.c	Fri Feb 10 01:44:18 2017	(r313501)
@@ -28,6 +28,7 @@
 
 #include <strings.h>
 #include <rpc/rpc.h>
+#include <stdio.h>
 #include <stdlib.h>
 #include <sys/param.h>
 #include <rpcsvc/mount.h>

Modified: projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.args1.c
==============================================================================
--- projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.args1.c	Fri Feb 10 01:26:49 2017	(r313500)
+++ projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.args1.c	Fri Feb 10 01:44:18 2017	(r313501)
@@ -27,6 +27,7 @@
 #pragma ident	"%Z%%M%	%I%	%E% SMI"
 
 #include <signal.h>
+#include <stdlib.h>
 #include <unistd.h>
 
 int

Modified: projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.gcc.c
==============================================================================
--- projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.gcc.c	Fri Feb 10 01:26:49 2017	(r313500)
+++ projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.gcc.c	Fri Feb 10 01:44:18 2017	(r313501)
@@ -26,6 +26,8 @@
 
 #pragma ident	"%Z%%M%	%I%	%E% SMI"
 
+#include <sys/types.h>
+#include <sys/wait.h>
 #include <spawn.h>
 #include <signal.h>
 #include <stdio.h>

Modified: projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.ret1.c
==============================================================================
--- projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.ret1.c	Fri Feb 10 01:26:49 2017	(r313500)
+++ projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.ret1.c	Fri Feb 10 01:44:18 2017	(r313501)
@@ -27,6 +27,7 @@
 #pragma ident	"%Z%%M%	%I%	%E% SMI"
 
 #include <signal.h>
+#include <stdlib.h>
 #include <unistd.h>
 
 /*

Modified: projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.ret2.c
==============================================================================
--- projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.ret2.c	Fri Feb 10 01:26:49 2017	(r313500)
+++ projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.ret2.c	Fri Feb 10 01:44:18 2017	(r313501)
@@ -27,6 +27,7 @@
 #pragma ident	"%Z%%M%	%I%	%E% SMI"
 
 #include <signal.h>
+#include <stdlib.h>
 #include <unistd.h>
 
 /*

Modified: projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.weak1.c
==============================================================================
--- projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.weak1.c	Fri Feb 10 01:26:49 2017	(r313500)
+++ projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.weak1.c	Fri Feb 10 01:44:18 2017	(r313501)
@@ -27,6 +27,7 @@
 #pragma ident	"%Z%%M%	%I%	%E% SMI"
 
 #include <signal.h>
+#include <stdlib.h>
 #include <unistd.h>
 
 /*

Modified: projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.weak2.c
==============================================================================
--- projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.weak2.c	Fri Feb 10 01:26:49 2017	(r313500)
+++ projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.weak2.c	Fri Feb 10 01:44:18 2017	(r313501)
@@ -27,6 +27,7 @@
 #pragma ident	"%Z%%M%	%I%	%E% SMI"
 
 #include <signal.h>
+#include <stdlib.h>
 #include <unistd.h>
 
 /*
@@ -34,14 +35,14 @@
  * leading underscores.
  */
 
-#pragma weak _go = go
-
 static int
 go(int a)
 {
 	return (a + 1);
 }
 
+#pragma weak _go = go
+
 static void
 handle(int sig)
 {

Modified: projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/printf/tst.basics.d
==============================================================================
--- projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/printf/tst.basics.d	Fri Feb 10 01:26:49 2017	(r313500)
+++ projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/printf/tst.basics.d	Fri Feb 10 01:44:18 2017	(r313501)
@@ -44,7 +44,7 @@ BEGIN
 
 	printf("\n");
 
-	printf("%%a = %a\n", &`kmem_alloc);
+	printf("%%a = %a\n", &`malloc);
 	printf("%%c = %c\n", i);
 	printf("%%d = %d\n", i);
 	printf("%%hd = %hd\n", (short)i);

Modified: projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/printf/tst.basics.d.out
==============================================================================
--- projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/printf/tst.basics.d.out	Fri Feb 10 01:26:49 2017	(r313500)
+++ projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/printf/tst.basics.d.out	Fri Feb 10 01:44:18 2017	(r313501)
@@ -1,5 +1,5 @@
 
-%a = genunix`kmem_alloc
+%a = kernel`malloc
 %c = a
 %d = 97
 %hd = 97

Modified: projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/printf/tst.str.d
==============================================================================
--- projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/printf/tst.str.d	Fri Feb 10 01:26:49 2017	(r313500)
+++ projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/printf/tst.str.d	Fri Feb 10 01:44:18 2017	(r313501)
@@ -36,6 +36,6 @@
 
 BEGIN
 {
-	printf("sysname = %s", `utsname.sysname);
+	printf("sysname = %s", `ostype);
 	exit(0);
 }

Modified: projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/printf/tst.str.d.out
==============================================================================
--- projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/printf/tst.str.d.out	Fri Feb 10 01:26:49 2017	(r313500)
+++ projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/printf/tst.str.d.out	Fri Feb 10 01:44:18 2017	(r313501)
@@ -1 +1 @@
-sysname = SunOS
+sysname = FreeBSD

Modified: projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/printf/tst.sym.d
==============================================================================
--- projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/printf/tst.sym.d	Fri Feb 10 01:26:49 2017	(r313500)
+++ projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/printf/tst.sym.d	Fri Feb 10 01:44:18 2017	(r313501)
@@ -38,6 +38,6 @@
 
 BEGIN
 {
-	printf("symbol = %a", &`kmem_alloc);
+	printf("symbol = %a", &`malloc);
 	exit(0);
 }

Modified: projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/printf/tst.sym.d.out
==============================================================================
--- projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/printf/tst.sym.d.out	Fri Feb 10 01:26:49 2017	(r313500)
+++ projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/printf/tst.sym.d.out	Fri Feb 10 01:44:18 2017	(r313501)
@@ -1 +1 @@
-symbol = kernel`kmem_alloc
+symbol = kernel`malloc

Copied: projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/privs/tst.kpriv.ksh (from r313500, stable/10/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/privs/tst.kpriv.ksh)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/privs/tst.kpriv.ksh	Fri Feb 10 01:44:18 2017	(r313501, copy of r313500, stable/10/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/privs/tst.kpriv.ksh)
@@ -0,0 +1,112 @@
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL"), version 1.0.
+# You may only use this file in accordance with the terms of version
+# 1.0 of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source.  A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+
+#
+# Copyright (c) 2015, Joyent, Inc. All rights reserved.
+#
+
+err=/tmp/err.$$
+
+ppriv -s A=basic,dtrace_user $$
+
+#
+# When we lack dtrace_kernel, we expect to not be able to get at kernel memory
+# via any subroutine or other vector.
+#
+#	trace(func((void *)&\`utsname)); }
+/usr/sbin/dtrace -wq -Cs /dev/stdin 2> $err <<EOF
+
+#define FAIL \
+	printf("able to read kernel memory via %s!\n", badsubr); \
+	exit(2);
+
+#define CANTREAD1(func) \
+    BEGIN { badsubr = "func()"; func((void *)&\`utsname); FAIL }
+
+#define CANTREAD2(func, arg1) \
+    BEGIN { badsubr = "func()"; func((void *)&\`utsname, arg1); FAIL }
+
+#define CANTREAD2ARG1(func, arg0) \
+    BEGIN { badsubr = "func() (arg1)"; func(arg0, (void *)&\`utsname); FAIL }
+
+#define CANTREAD3(func, arg1, arg2) \
+    BEGIN { badsubr = "func()"; func((void *)&\`utsname, arg1, arg2); FAIL }
+
+CANTREAD1(mutex_owned)
+CANTREAD1(mutex_owner)
+CANTREAD1(mutex_type_adaptive)
+CANTREAD1(mutex_type_spin)
+CANTREAD1(rw_read_held)
+CANTREAD1(rw_write_held)
+CANTREAD1(rw_iswriter)
+CANTREAD3(bcopy, alloca(1), 1)
+CANTREAD1(msgsize)
+CANTREAD1(msgdsize)
+CANTREAD1(strlen)
+CANTREAD2(strchr, '!')
+CANTREAD2(strrchr, '!')
+CANTREAD2(strstr, "doogle")
+CANTREAD2ARG1(strstr, "doogle")
+CANTREAD2(index, "bagnoogle")
+CANTREAD2ARG1(index, "bagnoogle")
+CANTREAD2(rindex, "bagnoogle")
+CANTREAD2ARG1(rindex, "bagnoogle")
+CANTREAD2(strtok, "doogle")
+CANTREAD2ARG1(strtok, "doogle")
+CANTREAD2(json, "doogle")
+CANTREAD2ARG1(json, "doogle")
+CANTREAD1(toupper)
+CANTREAD1(tolower)
+CANTREAD2(ddi_pathname, 1)
+CANTREAD2(strjoin, "doogle")
+CANTREAD2ARG1(strjoin, "doogle")
+CANTREAD1(strtoll)
+CANTREAD1(dirname)
+CANTREAD1(basename)
+CANTREAD1(cleanpath)
+
+#if defined(__amd64)
+CANTREAD3(copyout, uregs[R_R9], 1)
+CANTREAD3(copyoutstr, uregs[R_R9], 1)
+#else
+#if defined(__i386)
+CANTREAD3(copyout, uregs[R_ESP], 1)
+CANTREAD3(copyoutstr, uregs[R_ESP], 1)
+#endif
+#endif
+
+BEGIN
+{
+	exit(0);
+}
+
+ERROR
+/arg4 != DTRACEFLT_KPRIV/
+{
+	printf("bad error code via %s (expected %d, found %d)\n",
+	    badsubr, DTRACEFLT_KPRIV, arg4);
+	exit(3);
+}
+
+ERROR
+/arg4 == DTRACEFLT_KPRIV/
+{
+	printf("illegal kernel access properly prevented from %s\n", badsubr);
+}
+EOF
+
+status=$?
+
+if [[ $status -eq 1 ]]; then
+	cat $err
+fi
+
+exit $status

Modified: projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/profile-n/tst.ufunc.ksh
==============================================================================
--- projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/profile-n/tst.ufunc.ksh	Fri Feb 10 01:26:49 2017	(r313500)
+++ projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/profile-n/tst.ufunc.ksh	Fri Feb 10 01:44:18 2017	(r313501)
@@ -64,7 +64,7 @@ child=$!
 # ksh doing work.  (This actually goes one step further and assumes that we
 # catch some non-static function in ksh.)
 #
-script | tee /dev/fd/2 | grep 'ksh`[a-zA-Z_]' > /dev/null
+script | tee /dev/fd/2 | egrep 'ksh(93)?`[a-zA-Z_]' > /dev/null
 status=$? 
 
 kill $child

Modified: projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/profile-n/tst.umod.ksh
==============================================================================
--- projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/profile-n/tst.umod.ksh	Fri Feb 10 01:26:49 2017	(r313500)
+++ projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/profile-n/tst.umod.ksh	Fri Feb 10 01:44:18 2017	(r313501)
@@ -62,7 +62,7 @@ child=$!
 #
 # The only thing we can be sure of here is that ksh is doing some work.
 #
-script | tee /dev/fd/2 | grep -w ksh > /dev/null
+script | tee /dev/fd/2 | egrep -w 'ksh(93)?' > /dev/null
 status=$? 
 
 kill $child

Modified: projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/profile-n/tst.usym.ksh
==============================================================================
--- projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/profile-n/tst.usym.ksh	Fri Feb 10 01:26:49 2017	(r313500)
+++ projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/profile-n/tst.usym.ksh	Fri Feb 10 01:44:18 2017	(r313501)
@@ -63,7 +63,7 @@ child=$!
 # This test is essentially the same as that in the ufunc test; see that
 # test for the rationale.
 #
-script | tee /dev/fd/2 | grep 'ksh`[a-zA-Z_]' > /dev/null
+script | tee /dev/fd/2 | egrep 'ksh(93)?`[a-zA-Z_]' > /dev/null
 status=$? 
 
 kill $child

Copied: projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scalars/err.bigglobal.d (from r313500, stable/10/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scalars/err.bigglobal.d)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scalars/err.bigglobal.d	Fri Feb 10 01:44:18 2017	(r313501, copy of r313500, stable/10/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scalars/err.bigglobal.d)
@@ -0,0 +1,26 @@
+/*
+ * This file and its contents are supplied under the terms of the
+ * Common Development and Distribution License ("CDDL"), version 1.0.
+ * You may only use this file in accordance with the terms of version
+ * 1.0 of the CDDL.
+ *
+ * A full copy of the text of the CDDL should have accompanied this
+ * source.  A copy of the CDDL is also available via the Internet at
+ * http://www.illumos.org/license/CDDL.
+ */
+
+/*
+ * Copyright (c) 2015, Joyent, Inc. All rights reserved.
+ */
+
+struct mrbig {
+	char toomany[100000];
+};
+
+struct mrbig mrbig;
+
+BEGIN
+{
+	mrbig.toomany[0] = '!';
+	exit(0);
+}

Copied: projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scalars/err.biglocal.d (from r313500, stable/10/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scalars/err.biglocal.d)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scalars/err.biglocal.d	Fri Feb 10 01:44:18 2017	(r313501, copy of r313500, stable/10/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scalars/err.biglocal.d)
@@ -0,0 +1,26 @@
+/*
+ * This file and its contents are supplied under the terms of the
+ * Common Development and Distribution License ("CDDL"), version 1.0.
+ * You may only use this file in accordance with the terms of version
+ * 1.0 of the CDDL.
+ *
+ * A full copy of the text of the CDDL should have accompanied this
+ * source.  A copy of the CDDL is also available via the Internet at
+ * http://www.illumos.org/license/CDDL.
+ */
+
+/*
+ * Copyright (c) 2015, Joyent, Inc. All rights reserved.
+ */
+
+struct mrbig {
+	char toomany[100000];
+};
+
+this struct mrbig mrbig;
+
+BEGIN
+{
+	this->mrbig.toomany[0] = '!';
+	exit(0);
+}

Modified: projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/syscall/tst.args.c
==============================================================================
--- projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/syscall/tst.args.c	Fri Feb 10 01:26:49 2017	(r313500)
+++ projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/syscall/tst.args.c	Fri Feb 10 01:44:18 2017	(r313501)
@@ -28,6 +28,7 @@
 
 #include <stdio.h>
 #include <sys/syscall.h>
+#include <unistd.h>
 
 /*ARGSUSED*/
 int

Modified: projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.forker.c
==============================================================================
--- projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.forker.c	Fri Feb 10 01:26:49 2017	(r313500)
+++ projects/stable-10-backport-test-changes/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.forker.c	Fri Feb 10 01:44:18 2017	(r313501)
@@ -26,6 +26,10 @@
 
 #pragma ident	"%Z%%M%	%I%	%E% SMI"
 
+#include <sys/types.h>
+#include <sys/wait.h>
+
+#include <stdlib.h>
 #include <unistd.h>
 
 #include "forker.h"

Modified: projects/stable-10-backport-test-changes/cddl/lib/tests/Makefile
==============================================================================
--- projects/stable-10-backport-test-changes/cddl/lib/tests/Makefile	Fri Feb 10 01:26:49 2017	(r313500)
+++ projects/stable-10-backport-test-changes/cddl/lib/tests/Makefile	Fri Feb 10 01:44:18 2017	(r313501)
@@ -2,9 +2,7 @@
 
 .include <bsd.own.mk>
 
-TESTSDIR=	${TESTSBASE}/cddl/lib
-
-.PATH:		${.CURDIR:H:H:H}/tests
+.PATH:		${SRCTOP}/tests
 KYUAFILE=	yes
 
 .include <bsd.test.mk>

Modified: projects/stable-10-backport-test-changes/cddl/sbin/tests/Makefile
==============================================================================
--- projects/stable-10-backport-test-changes/cddl/sbin/tests/Makefile	Fri Feb 10 01:26:49 2017	(r313500)
+++ projects/stable-10-backport-test-changes/cddl/sbin/tests/Makefile	Fri Feb 10 01:44:18 2017	(r313501)
@@ -2,9 +2,7 @@
 
 .include <bsd.own.mk>
 
-TESTSDIR=	${TESTSBASE}/cddl/sbin
-
-.PATH:		${.CURDIR:H:H:H}/tests
+.PATH:		${SRCTOP}/tests
 KYUAFILE=	yes
 
 .include <bsd.test.mk>

Modified: projects/stable-10-backport-test-changes/cddl/tests/Makefile
==============================================================================
--- projects/stable-10-backport-test-changes/cddl/tests/Makefile	Fri Feb 10 01:26:49 2017	(r313500)
+++ projects/stable-10-backport-test-changes/cddl/tests/Makefile	Fri Feb 10 01:44:18 2017	(r313501)
@@ -2,9 +2,7 @@
 
 .include <bsd.own.mk>
 
-TESTSDIR=	${TESTSBASE}/cddl
-
-.PATH:		${.CURDIR:H:H}/tests
+.PATH:		${SRCTOP}/tests
 KYUAFILE=	yes
 
 .include <bsd.test.mk>

Modified: projects/stable-10-backport-test-changes/cddl/usr.bin/tests/Makefile
==============================================================================
--- projects/stable-10-backport-test-changes/cddl/usr.bin/tests/Makefile	Fri Feb 10 01:26:49 2017	(r313500)
+++ projects/stable-10-backport-test-changes/cddl/usr.bin/tests/Makefile	Fri Feb 10 01:44:18 2017	(r313501)
@@ -2,9 +2,7 @@
 
 .include <bsd.own.mk>
 
-TESTSDIR=	${TESTSBASE}/cddl/usr.bin
-
-.PATH:		${.CURDIR:H:H:H}/tests
+.PATH:		${SRCTOP}/tests
 KYUAFILE=	yes
 
 .include <bsd.test.mk>

Modified: projects/stable-10-backport-test-changes/cddl/usr.sbin/tests/Makefile
==============================================================================
--- projects/stable-10-backport-test-changes/cddl/usr.sbin/tests/Makefile	Fri Feb 10 01:26:49 2017	(r313500)
+++ projects/stable-10-backport-test-changes/cddl/usr.sbin/tests/Makefile	Fri Feb 10 01:44:18 2017	(r313501)
@@ -2,9 +2,7 @@
 
 .include <bsd.own.mk>
 
-TESTSDIR=	${TESTSBASE}/cddl/usr.sbin
-
-.PATH:		${.CURDIR:H:H:H}/tests
+.PATH:		${SRCTOP}/tests
 KYUAFILE=	yes
 
 .include <bsd.test.mk>

Modified: projects/stable-10-backport-test-changes/contrib/netbsd-tests/bin/cat/d_align.in
==============================================================================
--- projects/stable-10-backport-test-changes/contrib/netbsd-tests/bin/cat/d_align.in	Fri Feb 10 01:26:49 2017	(r313500)
+++ projects/stable-10-backport-test-changes/contrib/netbsd-tests/bin/cat/d_align.in	Fri Feb 10 01:44:18 2017	(r313501)
@@ -1,3 +1,5 @@
 a b c
+
 1 2 3
+
 x y z

Modified: projects/stable-10-backport-test-changes/contrib/netbsd-tests/bin/cat/d_align.out
==============================================================================
--- projects/stable-10-backport-test-changes/contrib/netbsd-tests/bin/cat/d_align.out	Fri Feb 10 01:26:49 2017	(r313500)
+++ projects/stable-10-backport-test-changes/contrib/netbsd-tests/bin/cat/d_align.out	Fri Feb 10 01:44:18 2017	(r313501)
@@ -1,3 +1,5 @@
      1	a b c$
+      	$
      2	1 2 3$
+      	$
      3	x y z$

Copied: projects/stable-10-backport-test-changes/contrib/netbsd-tests/bin/cat/d_se_output.in (from r313500, stable/10/contrib/netbsd-tests/bin/cat/d_se_output.in)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/stable-10-backport-test-changes/contrib/netbsd-tests/bin/cat/d_se_output.in	Fri Feb 10 01:44:18 2017	(r313501, copy of r313500, stable/10/contrib/netbsd-tests/bin/cat/d_se_output.in)
@@ -0,0 +1,3 @@
+
+Of course it runs NetBSD
+

Copied: projects/stable-10-backport-test-changes/contrib/netbsd-tests/bin/cat/d_se_output.out (from r313500, stable/10/contrib/netbsd-tests/bin/cat/d_se_output.out)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/stable-10-backport-test-changes/contrib/netbsd-tests/bin/cat/d_se_output.out	Fri Feb 10 01:44:18 2017	(r313501, copy of r313500, stable/10/contrib/netbsd-tests/bin/cat/d_se_output.out)
@@ -0,0 +1,3 @@
+$
+Of course it runs NetBSD$
+$

Modified: projects/stable-10-backport-test-changes/contrib/netbsd-tests/bin/cat/t_cat.sh
==============================================================================
--- projects/stable-10-backport-test-changes/contrib/netbsd-tests/bin/cat/t_cat.sh	Fri Feb 10 01:26:49 2017	(r313500)
+++ projects/stable-10-backport-test-changes/contrib/netbsd-tests/bin/cat/t_cat.sh	Fri Feb 10 01:44:18 2017	(r313501)
@@ -1,4 +1,4 @@
-# $NetBSD: t_cat.sh,v 1.2 2012/03/27 17:57:02 jruoho Exp $
+# $NetBSD: t_cat.sh,v 1.3 2016/06/16 01:04:58 sevan Exp $
 #
 # Copyright (c) 2012 The NetBSD Foundation, Inc.
 # All rights reserved.
@@ -52,8 +52,20 @@ nonexistent_body() {
 		-x "cat /some/name/that/does/not/exist"
 }
 
+atf_test_case se_output
+se_output_head() {
+	atf_set "descr" "Test that cat(1) prints a $ sign " \
+			"on blank lines with options '-se' (PR bin/51250)"
+}
+
+se_output_body() {
+	atf_check -s ignore -o file:$(atf_get_srcdir)/d_se_output.out \
+		-x "cat -se $(atf_get_srcdir)/d_se_output.in"
+}
+
 atf_init_test_cases()
 {
 	atf_add_test_case align
 	atf_add_test_case nonexistent
+	atf_add_test_case se_output
 }

Modified: projects/stable-10-backport-test-changes/contrib/netbsd-tests/bin/sh/dotcmd/scoped_command
==============================================================================
--- projects/stable-10-backport-test-changes/contrib/netbsd-tests/bin/sh/dotcmd/scoped_command	Fri Feb 10 01:26:49 2017	(r313500)
+++ projects/stable-10-backport-test-changes/contrib/netbsd-tests/bin/sh/dotcmd/scoped_command	Fri Feb 10 01:44:18 2017	(r313501)
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-# $NetBSD: scoped_command,v 1.1 2014/05/31 14:29:06 christos Exp $
+# $NetBSD: scoped_command,v 1.2 2016/03/27 14:57:50 christos Exp $
 #
 # Copyright (c) 2014 The NetBSD Foundation, Inc.
 # All rights reserved.
@@ -30,6 +30,27 @@
 # POSSIBILITY OF SUCH DAMAGE.
 #
 
+: ${TEST_SH:=/bin/sh}
+
+sane_sh()
+{
+	set -- ${TEST_SH}
+	case "$#" in
+	(0)   set /bin/sh;;
+	(1|2) ;;
+	(*)   set "$1";;   # Just ignore options if we cannot make them work
+	esac
+
+	case "$1" in
+	/*)	TEST_SH="$1${2+ }$2";;
+	./*)	TEST_SH="${PWD}${1#.}${2+ }$2";;
+	*/*)	TEST_SH="${PWD}/$1${2+ }$2";;
+	*)	TEST_SH="$( command -v "$1" )${2+ }$2";;
+	esac
+}
+
+sane_sh
+
 set -e
 
 # USAGE:
@@ -52,7 +73,7 @@ cmd="echo 'before ${3}'
 ${2}
 echo 'after ${3}, return value:' ${?}"
 
-echo "#!/bin/sh"
+echo "#!${TEST_SH}"
 
 [ 'func' = "${1}" ] && cat <<EOF
 func()

Modified: projects/stable-10-backport-test-changes/contrib/netbsd-tests/bin/sh/dotcmd/t_dotcmd.sh
==============================================================================
--- projects/stable-10-backport-test-changes/contrib/netbsd-tests/bin/sh/dotcmd/t_dotcmd.sh	Fri Feb 10 01:26:49 2017	(r313500)
+++ projects/stable-10-backport-test-changes/contrib/netbsd-tests/bin/sh/dotcmd/t_dotcmd.sh	Fri Feb 10 01:44:18 2017	(r313501)
@@ -1,4 +1,4 @@
-# $NetBSD: t_dotcmd.sh,v 1.1 2014/05/31 14:29:06 christos Exp $
+# $NetBSD: t_dotcmd.sh,v 1.2 2016/03/27 14:57:50 christos Exp $
 #
 # Copyright (c) 2014 The NetBSD Foundation, Inc.
 # All rights reserved.
@@ -33,6 +33,10 @@
 # in C/C++ so, for example, if the dotcmd is in a loop's body, a break in
 # the sourced file can be used to break out of that loop.
 
+# Note that the standard does not require this, and allows lexically
+# scoped interpretation of break/continue (and permits dynamic scope
+# as an optional extension.)
+
 cmds='return break continue'
 scopes='case compound file for func subshell until while'
 

Copied: projects/stable-10-backport-test-changes/contrib/netbsd-tests/bin/sh/t_arith.sh (from r313500, stable/10/contrib/netbsd-tests/bin/sh/t_arith.sh)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/stable-10-backport-test-changes/contrib/netbsd-tests/bin/sh/t_arith.sh	Fri Feb 10 01:44:18 2017	(r313501, copy of r313500, stable/10/contrib/netbsd-tests/bin/sh/t_arith.sh)
@@ -0,0 +1,1035 @@
+# $NetBSD: t_arith.sh,v 1.5 2016/05/12 14:25:11 kre Exp $
+#
+# Copyright (c) 2016 The NetBSD Foundation, Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+# the implementation of "sh" to test
+: ${TEST_SH:="/bin/sh"}
+
+# Requirement is to support at least "signed long" whatever that means
+# (number of bits in "long" is not specified - but should be at least 32).
+
+# These tests use -o inline:"..." rather than -o match:'...' as we have
+# only digits to examine, and it is good to be sure that 1 + 1 really gives 2
+# and that 42 or 123 don't look like success because there is a 2 in them.
+
+ARITH_BITS='?'
+discover_range()
+{
+	# cannot use arithmetic "test" operators, range of test in
+	# ATF_SHELL (or even TEST_SH) might not be as big as that
+	# supported by $(( )) in TEST_SH
+
+	if ! ${TEST_SH} -c ': $(( 0x10000 ))' 2>/dev/null
+	then
+		# 16 bits or less, or hex unsupported, just give up...
+		return
+	fi
+	test $( ${TEST_SH} -c 'echo $(( 0x1FFFF ))' ) = 131071 || return
+
+	# when attempting to exceed the number of available bits
+	# the shell may react in any of 3 (rational) ways
+	# 1. syntax error (maybe even core dump...) and fail
+	# 2. represent a positive number input as negative value
+	# 3. keep the number positive, but not the value expected
+	#    (perhaps pegged at the max possible value)
+	# any of those may be accompanied by a message to stderr
+
+	# Must check all 3 possibilities for each plausible size
+	# Tests do not use 0x8000... because that value can have weird
+	# other side effects that are not relevant to discover here.
+	# But we do want to try and force the sign bit set.
+
+	if ! ${TEST_SH} -c ': $(( 0xC0000000 ))' 2>/dev/null
+	then
+		# proobably shell detected overflow and complained
+		ARITH_BITS=32
+		return
+	fi
+	if ${TEST_SH} 2>/dev/null \
+	    -c 'case $(( 0xC0000000 )); in (-*) exit 0;; esac; exit 1'
+	then
+		ARITH_BITS=32
+		return
+	fi
+	if ${TEST_SH} -c '[ $(( 0xC0000000 )) != 3221225472 ]' 2>/dev/null
+	then
+		ARITH_BITS=32
+		return
+	fi
+
+	if ! ${TEST_SH} -c ': $(( 0xC000000000000000 ))' 2>/dev/null
+	then
+		ARITH_BITS=64
+		return
+	fi
+	if ${TEST_SH} 2>/dev/null \
+	    -c 'case $(( 0xC000000000000000 )); in (-*) exit 0;; esac; exit 1'
+	then
+		ARITH_BITS=64
+		return
+	fi
+	if ${TEST_SH} 2>/dev/null \
+	    -c '[ $((0xC000000000000000)) != 13835058055282163712 ]'
+	then
+		ARITH_BITS=64
+		return
+	fi
+
+	if ${TEST_SH} 2>/dev/null -c \
+	   '[ $((0x123456781234567812345678)) = 5634002657842756053938493048 ]'
+	then
+		# just assume... (for now anyway, revisit when it happens...)
+		ARITH_BITS=96
+		return
+	fi
+}
+
+atf_test_case constants
+constants_head()
+{
+        atf_set "descr" "Tests that arithmetic expansion can handle constants"
+}
+constants_body()
+{
+	atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \
+		'echo $(( 1 ))'
+	atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \
+		'echo $(( 0 ))'
+	atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \
+		'echo $((0x0))'
+
+	# atf_expect_fail "PR bin/50959"
+	atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \
+		'echo $((0X0))'
+	# atf_expect_pass
+
+	atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \
+		'echo $((000))'
+
+	atf_check -s exit:0 -o inline:'1\n' -e empty \
+		${TEST_SH} -c 'echo $(( 000000001 ))'
+	atf_check -s exit:0 -o inline:'0\n' -e empty \
+		${TEST_SH} -c 'echo $(( 0x000000 ))'
+
+	atf_check -s exit:0 -o inline:'99999\n' -e empty \
+		${TEST_SH} -c 'echo $((99999))'
+
+	[ ${ARITH_BITS} -gt 44 ] &&
+		atf_check -s exit:0 -o inline:'9191919191919\n' -e empty \
+			${TEST_SH} -c 'echo $((9191919191919))'
+
+	atf_check -s exit:0 -o inline:'13\n' -e empty ${TEST_SH} -c \
+		'echo $(( 0xD ))'
+	atf_check -s exit:0 -o inline:'11\n' -e empty ${TEST_SH} -c \
+		'echo $(( 013 ))'
+	atf_check -s exit:0 -o inline:'7\n' -e empty ${TEST_SH} -c \
+		'x=7;echo $(($x))'
+	atf_check -s exit:0 -o inline:'9\n' -e empty ${TEST_SH} -c \
+		'x=9;echo $((x))'
+
+	atf_check -s exit:0 -o inline:'11\n' -e empty \
+		${TEST_SH} -c 'x=0xB; echo $(( $x ))'
+	atf_check -s exit:0 -o inline:'27\n' -e empty \
+		${TEST_SH} -c 'x=0X1B; echo $(( x ))'
+	atf_check -s exit:0 -o inline:'27\n' -e empty \
+		${TEST_SH} -c 'X=033; echo $(( $X ))'
+	atf_check -s exit:0 -o inline:'219\n' -e empty \
+		${TEST_SH} -c 'X=0333; echo $(( X ))'
+	atf_check -s exit:0 -o inline:'0\n' -e empty \
+		${TEST_SH} -c 'NULL=; echo $(( NULL ))'
+
+	# Not clear if this is 0, nothing, or an error, so omit for now
+	# atf_check -s exit:0 -o inline:'0\n' -e empty \
+	# 	${TEST_SH} -c 'echo $(( ))'
+
+	# not clear whether this should return 0 or an error, so omit for now
+	# atf_check -s exit:0 -o inline:'0\n' -e empty \
+	# 	${TEST_SH} -c 'echo $(( UNDEFINED_VAR ))'
+}
+
+
+atf_test_case do_unary_plus
+do_unary_plus_head()
+{
+        atf_set "descr" "Tests that unary plus works as expected"
+}
+do_unary_plus_body()
+{
+	atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \
+		'echo $(( +0 ))'
+	atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \
+		'echo $(( +1 ))'
+	atf_check -s exit:0 -o inline:'6\n' -e empty ${TEST_SH} -c \
+		'echo $(( + 6 ))'
+	atf_check -s exit:0 -o inline:'4321\n' -e empty ${TEST_SH} -c \
+		'echo $(( + 4321 ))'
+	atf_check -s exit:0 -o inline:'17185\n' -e empty ${TEST_SH} -c \
+		'echo $(( + 0x4321 ))'
+}
+
+atf_test_case do_unary_minus
+do_unary_minus_head()
+{
+        atf_set "descr" "Tests that unary minus works as expected"
+}
+do_unary_minus_body()
+{
+	atf_check -s exit:0 -o inline:'-1\n' -e empty ${TEST_SH} -c \
+		'echo $(( -1 ))'
+	atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \
+		'echo $(( - 0 ))'
+	atf_check -s exit:0 -o inline:'-1\n' -e empty ${TEST_SH} -c \
+		'echo $(( - 1 ))'
+	atf_check -s exit:0 -o inline:'-6\n' -e empty ${TEST_SH} -c \
+		'echo $(( - 6 ))'
+	atf_check -s exit:0 -o inline:'-4321\n' -e empty ${TEST_SH} -c \
+		'echo $(( - 4321 ))'
+	atf_check -s exit:0 -o inline:'-2257\n' -e empty ${TEST_SH} -c \
+		'echo $(( - 04321 ))'
+	atf_check -s exit:0 -o inline:'-7\n' -e empty ${TEST_SH} -c \
+		'echo $((-7))'
+}
+
+atf_test_case do_unary_not
+do_unary_not_head()
+{
+        atf_set "descr" "Tests that unary not (boolean) works as expected"
+}
+do_unary_not_body()
+{
+	atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \
+		'echo $(( ! 1 ))'
+	atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \
+		'echo $(( ! 0 ))'
+

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

From owner-svn-src-projects@freebsd.org  Fri Feb 10 01:52:41 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2D338CD8525
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Fri, 10 Feb 2017 01:52:41 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id D75256C2;
 Fri, 10 Feb 2017 01:52:40 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1A1qd8b084279;
 Fri, 10 Feb 2017 01:52:39 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1A1qdKs084278;
 Fri, 10 Feb 2017 01:52:39 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201702100152.v1A1qdKs084278@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Fri, 10 Feb 2017 01:52:39 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r313502 - projects/stable-10-backport-test-changes
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 10 Feb 2017 01:52:41 -0000

Author: ngie
Date: Fri Feb 10 01:52:39 2017
New Revision: 313502
URL: https://svnweb.freebsd.org/changeset/base/313502

Log:
  Nuke scratch branch; will revive when I need to test larger changes

Deleted:
  projects/stable-10-backport-test-changes/

From owner-svn-src-projects@freebsd.org  Sat Feb 11 13:58:08 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id BF9F5CDBDE3
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Sat, 11 Feb 2017 13:58:08 +0000 (UTC) (envelope-from dim@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 5C4D8896;
 Sat, 11 Feb 2017 13:58:08 +0000 (UTC) (envelope-from dim@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1BDw7dH088915;
 Sat, 11 Feb 2017 13:58:07 GMT (envelope-from dim@FreeBSD.org)
Received: (from dim@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1BDw5Oj088895;
 Sat, 11 Feb 2017 13:58:05 GMT (envelope-from dim@FreeBSD.org)
Message-Id: <201702111358.v1BDw5Oj088895@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org
 using -f
From: Dimitry Andric <dim@FreeBSD.org>
Date: Sat, 11 Feb 2017 13:58:05 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r313643 - in projects/clang400-import:
 contrib/libc++/include contrib/libc++/src contrib/llvm/include/llvm/ADT
 contrib/llvm/include/llvm/CodeGen contrib/llvm/include/llvm/IR contrib/llv...
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 11 Feb 2017 13:58:08 -0000

Author: dim
Date: Sat Feb 11 13:58:05 2017
New Revision: 313643
URL: https://svnweb.freebsd.org/changeset/base/313643

Log:
  Merge llvm, clang, compiler-rt, libc++, lld and lldb release_40 branch
  r294803, and update build glue.

Modified:
  projects/clang400-import/contrib/libc++/include/optional
  projects/clang400-import/contrib/libc++/include/variant
  projects/clang400-import/contrib/libc++/src/optional.cpp
  projects/clang400-import/contrib/llvm/include/llvm/ADT/ilist_iterator.h
  projects/clang400-import/contrib/llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h
  projects/clang400-import/contrib/llvm/include/llvm/IR/PassManager.h
  projects/clang400-import/contrib/llvm/include/llvm/Target/TargetInstrInfo.h
  projects/clang400-import/contrib/llvm/lib/Bitcode/Reader/MetadataLoader.cpp
  projects/clang400-import/contrib/llvm/lib/CodeGen/BranchFolding.cpp
  projects/clang400-import/contrib/llvm/lib/CodeGen/MachineCopyPropagation.cpp
  projects/clang400-import/contrib/llvm/lib/CodeGen/RegisterCoalescer.cpp
  projects/clang400-import/contrib/llvm/lib/MC/MCCodeView.cpp
  projects/clang400-import/contrib/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
  projects/clang400-import/contrib/llvm/lib/Target/X86/X86ExpandPseudo.cpp
  projects/clang400-import/contrib/llvm/lib/Target/X86/X86InstrControl.td
  projects/clang400-import/contrib/llvm/lib/Target/X86/X86InstrInfo.cpp
  projects/clang400-import/contrib/llvm/lib/Target/X86/X86InstrInfo.h
  projects/clang400-import/contrib/llvm/lib/Target/X86/X86MCInstLower.cpp
  projects/clang400-import/lib/clang/include/clang/Basic/Version.inc
  projects/clang400-import/lib/clang/include/lld/Config/Version.inc
Directory Properties:
  projects/clang400-import/contrib/compiler-rt/   (props changed)
  projects/clang400-import/contrib/libc++/   (props changed)
  projects/clang400-import/contrib/llvm/   (props changed)
  projects/clang400-import/contrib/llvm/tools/clang/   (props changed)
  projects/clang400-import/contrib/llvm/tools/lld/   (props changed)
  projects/clang400-import/contrib/llvm/tools/lldb/   (props changed)

Modified: projects/clang400-import/contrib/libc++/include/optional
==============================================================================
--- projects/clang400-import/contrib/libc++/include/optional	Sat Feb 11 13:25:57 2017	(r313642)
+++ projects/clang400-import/contrib/libc++/include/optional	Sat Feb 11 13:58:05 2017	(r313643)
@@ -160,14 +160,12 @@ namespace std  // purposefully not using
 {
 
 class _LIBCPP_EXCEPTION_ABI bad_optional_access
-    : public logic_error
+    : public exception
 {
 public:
-    _LIBCPP_INLINE_VISIBILITY
-    bad_optional_access() : logic_error("bad optional access") {}
-
     // Get the key function ~bad_optional_access() into the dylib
     virtual ~bad_optional_access() _NOEXCEPT;
+    virtual const char* what() const _NOEXCEPT;
 };
 
 }  // std

Modified: projects/clang400-import/contrib/libc++/include/variant
==============================================================================
--- projects/clang400-import/contrib/libc++/include/variant	Sat Feb 11 13:25:57 2017	(r313642)
+++ projects/clang400-import/contrib/libc++/include/variant	Sat Feb 11 13:58:05 2017	(r313643)
@@ -574,7 +574,7 @@ private:
     constexpr decltype(auto) operator()(_Alts&&... __alts) const {
       __std_visit_exhaustive_visitor_check<
           _Visitor,
-          decltype(_VSTD::forward<_Alts>(__alts).__value)...>();
+          decltype((_VSTD::forward<_Alts>(__alts).__value))...>();
       return __invoke_constexpr(_VSTD::forward<_Visitor>(__visitor),
                                 _VSTD::forward<_Alts>(__alts).__value...);
     }

Modified: projects/clang400-import/contrib/libc++/src/optional.cpp
==============================================================================
--- projects/clang400-import/contrib/libc++/src/optional.cpp	Sat Feb 11 13:25:57 2017	(r313642)
+++ projects/clang400-import/contrib/libc++/src/optional.cpp	Sat Feb 11 13:58:05 2017	(r313643)
@@ -15,6 +15,10 @@ namespace std
 
 bad_optional_access::~bad_optional_access() _NOEXCEPT = default;
 
+const char* bad_optional_access::what() const _NOEXCEPT {
+  return "bad_optional_access";
+  }
+
 } // std
 
 _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL

Modified: projects/clang400-import/contrib/llvm/include/llvm/ADT/ilist_iterator.h
==============================================================================
--- projects/clang400-import/contrib/llvm/include/llvm/ADT/ilist_iterator.h	Sat Feb 11 13:25:57 2017	(r313642)
+++ projects/clang400-import/contrib/llvm/include/llvm/ADT/ilist_iterator.h	Sat Feb 11 13:58:05 2017	(r313643)
@@ -102,10 +102,23 @@ public:
     return *this;
   }
 
-  /// Convert from an iterator to its reverse.
+  /// Explicit conversion between forward/reverse iterators.
   ///
-  /// TODO: Roll this into the implicit constructor once we're sure that no one
-  /// is relying on the std::reverse_iterator off-by-one semantics.
+  /// Translate between forward and reverse iterators without changing range
+  /// boundaries.  The resulting iterator will dereference (and have a handle)
+  /// to the previous node, which is somewhat unexpected; but converting the
+  /// two endpoints in a range will give the same range in reverse.
+  ///
+  /// This matches std::reverse_iterator conversions.
+  explicit ilist_iterator(
+      const ilist_iterator<OptionsT, !IsReverse, IsConst> &RHS)
+      : ilist_iterator(++RHS.getReverse()) {}
+
+  /// Get a reverse iterator to the same node.
+  ///
+  /// Gives a reverse iterator that will dereference (and have a handle) to the
+  /// same node.  Converting the endpoint iterators in a range will give a
+  /// different range; for range operations, use the explicit conversions.
   ilist_iterator<OptionsT, !IsReverse, IsConst> getReverse() const {
     if (NodePtr)
       return ilist_iterator<OptionsT, !IsReverse, IsConst>(*NodePtr);

Modified: projects/clang400-import/contrib/llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h
==============================================================================
--- projects/clang400-import/contrib/llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h	Sat Feb 11 13:25:57 2017	(r313642)
+++ projects/clang400-import/contrib/llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h	Sat Feb 11 13:58:05 2017	(r313643)
@@ -153,6 +153,18 @@ public:
       : MII(I.getInstrIterator()) {}
   MachineInstrBundleIterator() : MII(nullptr) {}
 
+  /// Explicit conversion between forward/reverse iterators.
+  ///
+  /// Translate between forward and reverse iterators without changing range
+  /// boundaries.  The resulting iterator will dereference (and have a handle)
+  /// to the previous node, which is somewhat unexpected; but converting the
+  /// two endpoints in a range will give the same range in reverse.
+  ///
+  /// This matches std::reverse_iterator conversions.
+  explicit MachineInstrBundleIterator(
+      const MachineInstrBundleIterator<Ty, !IsReverse> &I)
+      : MachineInstrBundleIterator(++I.getReverse()) {}
+
   /// Get the bundle iterator for the given instruction's bundle.
   static MachineInstrBundleIterator getAtBundleBegin(instr_iterator MI) {
     return MachineInstrBundleIteratorHelper<IsReverse>::getBundleBegin(MI);
@@ -258,6 +270,11 @@ public:
 
   nonconst_iterator getNonConstIterator() const { return MII.getNonConst(); }
 
+  /// Get a reverse iterator to the same node.
+  ///
+  /// Gives a reverse iterator that will dereference (and have a handle) to the
+  /// same node.  Converting the endpoint iterators in a range will give a
+  /// different range; for range operations, use the explicit conversions.
   reverse_iterator getReverse() const { return MII.getReverse(); }
 };
 

Modified: projects/clang400-import/contrib/llvm/include/llvm/IR/PassManager.h
==============================================================================
--- projects/clang400-import/contrib/llvm/include/llvm/IR/PassManager.h	Sat Feb 11 13:25:57 2017	(r313642)
+++ projects/clang400-import/contrib/llvm/include/llvm/IR/PassManager.h	Sat Feb 11 13:58:05 2017	(r313643)
@@ -311,6 +311,8 @@ template <typename IRUnitT, typename... 
 template <typename DerivedT> struct PassInfoMixin {
   /// Gets the name of the pass we are mixed into.
   static StringRef name() {
+    static_assert(std::is_base_of<PassInfoMixin, DerivedT>::value,
+                  "Must pass the derived type as the template argument!");
     StringRef Name = getTypeName<DerivedT>();
     if (Name.startswith("llvm::"))
       Name = Name.drop_front(strlen("llvm::"));
@@ -339,7 +341,11 @@ struct AnalysisInfoMixin : PassInfoMixin
   /// known platform with this limitation is Windows DLL builds, specifically
   /// building each part of LLVM as a DLL. If we ever remove that build
   /// configuration, this mixin can provide the static key as well.
-  static AnalysisKey *ID() { return &DerivedT::Key; }
+  static AnalysisKey *ID() {
+    static_assert(std::is_base_of<AnalysisInfoMixin, DerivedT>::value,
+                  "Must pass the derived type as the template argument!");
+    return &DerivedT::Key;
+  }
 };
 
 /// This templated class represents "all analyses that operate over \<a
@@ -1010,7 +1016,7 @@ extern template class InnerAnalysisManag
 template <typename AnalysisManagerT, typename IRUnitT, typename... ExtraArgTs>
 class OuterAnalysisManagerProxy
     : public AnalysisInfoMixin<
-          OuterAnalysisManagerProxy<AnalysisManagerT, IRUnitT>> {
+          OuterAnalysisManagerProxy<AnalysisManagerT, IRUnitT, ExtraArgTs...>> {
 public:
   /// \brief Result proxy object for \c OuterAnalysisManagerProxy.
   class Result {
@@ -1072,7 +1078,7 @@ public:
 
 private:
   friend AnalysisInfoMixin<
-      OuterAnalysisManagerProxy<AnalysisManagerT, IRUnitT>>;
+      OuterAnalysisManagerProxy<AnalysisManagerT, IRUnitT, ExtraArgTs...>>;
   static AnalysisKey Key;
 
   const AnalysisManagerT *AM;

Modified: projects/clang400-import/contrib/llvm/include/llvm/Target/TargetInstrInfo.h
==============================================================================
--- projects/clang400-import/contrib/llvm/include/llvm/Target/TargetInstrInfo.h	Sat Feb 11 13:25:57 2017	(r313642)
+++ projects/clang400-import/contrib/llvm/include/llvm/Target/TargetInstrInfo.h	Sat Feb 11 13:58:05 2017	(r313643)
@@ -1108,25 +1108,6 @@ public:
   /// terminator instruction that has not been predicated.
   virtual bool isUnpredicatedTerminator(const MachineInstr &MI) const;
 
-  /// Returns true if MI is an unconditional tail call.
-  virtual bool isUnconditionalTailCall(const MachineInstr &MI) const {
-    return false;
-  }
-
-  /// Returns true if the tail call can be made conditional on BranchCond.
-  virtual bool
-  canMakeTailCallConditional(SmallVectorImpl<MachineOperand> &Cond,
-                             const MachineInstr &TailCall) const {
-    return false;
-  }
-
-  /// Replace the conditional branch in MBB with a conditional tail call.
-  virtual void replaceBranchWithTailCall(MachineBasicBlock &MBB,
-                                         SmallVectorImpl<MachineOperand> &Cond,
-                                         const MachineInstr &TailCall) const {
-    llvm_unreachable("Target didn't implement replaceBranchWithTailCall!");
-  }
-
   /// Convert the instruction into a predicated instruction.
   /// It returns true if the operation was successful.
   virtual bool PredicateInstruction(MachineInstr &MI,

Modified: projects/clang400-import/contrib/llvm/lib/Bitcode/Reader/MetadataLoader.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/lib/Bitcode/Reader/MetadataLoader.cpp	Sat Feb 11 13:25:57 2017	(r313642)
+++ projects/clang400-import/contrib/llvm/lib/Bitcode/Reader/MetadataLoader.cpp	Sat Feb 11 13:58:05 2017	(r313643)
@@ -448,6 +448,7 @@ class MetadataLoader::MetadataLoaderImpl
 
   bool StripTBAA = false;
   bool HasSeenOldLoopTags = false;
+  bool NeedUpgradeToDIGlobalVariableExpression = false;
 
   /// True if metadata is being parsed for a module being ThinLTO imported.
   bool IsImporting = false;
@@ -473,6 +474,45 @@ class MetadataLoader::MetadataLoaderImpl
     CUSubprograms.clear();
   }
 
+  /// Upgrade old-style bare DIGlobalVariables to DIGlobalVariableExpressions.
+  void upgradeCUVariables() {
+    if (!NeedUpgradeToDIGlobalVariableExpression)
+      return;
+
+    // Upgrade list of variables attached to the CUs.
+    if (NamedMDNode *CUNodes = TheModule.getNamedMetadata("llvm.dbg.cu"))
+      for (unsigned I = 0, E = CUNodes->getNumOperands(); I != E; ++I) {
+        auto *CU = cast<DICompileUnit>(CUNodes->getOperand(I));
+        if (auto *GVs = dyn_cast_or_null<MDTuple>(CU->getRawGlobalVariables()))
+          for (unsigned I = 0; I < GVs->getNumOperands(); I++)
+            if (auto *GV =
+                    dyn_cast_or_null<DIGlobalVariable>(GVs->getOperand(I))) {
+              auto *DGVE =
+                  DIGlobalVariableExpression::getDistinct(Context, GV, nullptr);
+              GVs->replaceOperandWith(I, DGVE);
+            }
+      }
+
+    // Upgrade variables attached to globals.
+    for (auto &GV : TheModule.globals()) {
+      SmallVector<MDNode *, 1> MDs, NewMDs;
+      GV.getMetadata(LLVMContext::MD_dbg, MDs);
+      GV.eraseMetadata(LLVMContext::MD_dbg);
+      for (auto *MD : MDs)
+        if (auto *DGV = dyn_cast_or_null<DIGlobalVariable>(MD)) {
+          auto *DGVE =
+              DIGlobalVariableExpression::getDistinct(Context, DGV, nullptr);
+          GV.addMetadata(LLVMContext::MD_dbg, *DGVE);
+        } else
+          GV.addMetadata(LLVMContext::MD_dbg, *MD);
+    }
+  }
+
+  void upgradeDebugInfo() {
+    upgradeCUSubprograms();
+    upgradeCUVariables();
+  }
+
 public:
   MetadataLoaderImpl(BitstreamCursor &Stream, Module &TheModule,
                      BitcodeReaderValueList &ValueList,
@@ -726,7 +766,7 @@ Error MetadataLoader::MetadataLoaderImpl
       // Reading the named metadata created forward references and/or
       // placeholders, that we flush here.
       resolveForwardRefsAndPlaceholders(Placeholders);
-      upgradeCUSubprograms();
+      upgradeDebugInfo();
       // Return at the beginning of the block, since it is easy to skip it
       // entirely from there.
       Stream.ReadBlockEnd(); // Pop the abbrev block context.
@@ -750,7 +790,7 @@ Error MetadataLoader::MetadataLoaderImpl
       return error("Malformed block");
     case BitstreamEntry::EndBlock:
       resolveForwardRefsAndPlaceholders(Placeholders);
-      upgradeCUSubprograms();
+      upgradeDebugInfo();
       return Error::success();
     case BitstreamEntry::Record:
       // The interesting case.
@@ -1420,11 +1460,17 @@ Error MetadataLoader::MetadataLoaderImpl
            getDITypeRefOrNull(Record[6]), Record[7], Record[8],
            getMDOrNull(Record[10]), AlignInBits));
 
-      auto *DGVE = DIGlobalVariableExpression::getDistinct(Context, DGV, Expr);
-      MetadataList.assignValue(DGVE, NextMetadataNo);
-      NextMetadataNo++;
+      DIGlobalVariableExpression *DGVE = nullptr;
+      if (Attach || Expr)
+        DGVE = DIGlobalVariableExpression::getDistinct(Context, DGV, Expr);
+      else
+        NeedUpgradeToDIGlobalVariableExpression = true;
       if (Attach)
         Attach->addDebugInfo(DGVE);
+
+      auto *MDNode = Expr ? cast<Metadata>(DGVE) : cast<Metadata>(DGV);
+      MetadataList.assignValue(MDNode, NextMetadataNo);
+      NextMetadataNo++;
     } else
       return error("Invalid record");
 

Modified: projects/clang400-import/contrib/llvm/lib/CodeGen/BranchFolding.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/lib/CodeGen/BranchFolding.cpp	Sat Feb 11 13:25:57 2017	(r313642)
+++ projects/clang400-import/contrib/llvm/lib/CodeGen/BranchFolding.cpp	Sat Feb 11 13:58:05 2017	(r313643)
@@ -49,7 +49,6 @@ STATISTIC(NumDeadBlocks, "Number of dead
 STATISTIC(NumBranchOpts, "Number of branches optimized");
 STATISTIC(NumTailMerge , "Number of block tails merged");
 STATISTIC(NumHoist     , "Number of times common instructions are hoisted");
-STATISTIC(NumTailCalls,  "Number of tail calls optimized");
 
 static cl::opt<cl::boolOrDefault> FlagEnableTailMerge("enable-tail-merge",
                               cl::init(cl::BOU_UNSET), cl::Hidden);
@@ -1387,42 +1386,6 @@ ReoptimizeBlock:
     }
   }
 
-  if (!IsEmptyBlock(MBB) && MBB->pred_size() == 1 &&
-      MF.getFunction()->optForSize()) {
-    // Changing "Jcc foo; foo: jmp bar;" into "Jcc bar;" might change the branch
-    // direction, thereby defeating careful block placement and regressing
-    // performance. Therefore, only consider this for optsize functions.
-    MachineInstr &TailCall = *MBB->getFirstNonDebugInstr();
-    if (TII->isUnconditionalTailCall(TailCall)) {
-      MachineBasicBlock *Pred = *MBB->pred_begin();
-      MachineBasicBlock *PredTBB = nullptr, *PredFBB = nullptr;
-      SmallVector<MachineOperand, 4> PredCond;
-      bool PredAnalyzable =
-          !TII->analyzeBranch(*Pred, PredTBB, PredFBB, PredCond, true);
-
-      if (PredAnalyzable && !PredCond.empty() && PredTBB == MBB) {
-        // The predecessor has a conditional branch to this block which consists
-        // of only a tail call. Try to fold the tail call into the conditional
-        // branch.
-        if (TII->canMakeTailCallConditional(PredCond, TailCall)) {
-          // TODO: It would be nice if analyzeBranch() could provide a pointer
-          // to the branch insturction so replaceBranchWithTailCall() doesn't
-          // have to search for it.
-          TII->replaceBranchWithTailCall(*Pred, PredCond, TailCall);
-          ++NumTailCalls;
-          Pred->removeSuccessor(MBB);
-          MadeChange = true;
-          return MadeChange;
-        }
-      }
-      // If the predecessor is falling through to this block, we could reverse
-      // the branch condition and fold the tail call into that. However, after
-      // that we might have to re-arrange the CFG to fall through to the other
-      // block and there is a high risk of regressing code size rather than
-      // improving it.
-    }
-  }
-
   // Analyze the branch in the current block.
   MachineBasicBlock *CurTBB = nullptr, *CurFBB = nullptr;
   SmallVector<MachineOperand, 4> CurCond;

Modified: projects/clang400-import/contrib/llvm/lib/CodeGen/MachineCopyPropagation.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/lib/CodeGen/MachineCopyPropagation.cpp	Sat Feb 11 13:25:57 2017	(r313642)
+++ projects/clang400-import/contrib/llvm/lib/CodeGen/MachineCopyPropagation.cpp	Sat Feb 11 13:58:05 2017	(r313643)
@@ -61,6 +61,7 @@ namespace {
 
   private:
     void ClobberRegister(unsigned Reg);
+    void ReadRegister(unsigned Reg);
     void CopyPropagateBlock(MachineBasicBlock &MBB);
     bool eraseIfRedundant(MachineInstr &Copy, unsigned Src, unsigned Def);
 
@@ -120,6 +121,18 @@ void MachineCopyPropagation::ClobberRegi
   }
 }
 
+void MachineCopyPropagation::ReadRegister(unsigned Reg) {
+  // If 'Reg' is defined by a copy, the copy is no longer a candidate
+  // for elimination.
+  for (MCRegAliasIterator AI(Reg, TRI, true); AI.isValid(); ++AI) {
+    Reg2MIMap::iterator CI = CopyMap.find(*AI);
+    if (CI != CopyMap.end()) {
+      DEBUG(dbgs() << "MCP: Copy is used - not dead: "; CI->second->dump());
+      MaybeDeadCopies.remove(CI->second);
+    }
+  }
+}
+
 /// Return true if \p PreviousCopy did copy register \p Src to register \p Def.
 /// This fact may have been obscured by sub register usage or may not be true at
 /// all even though Src and Def are subregisters of the registers used in
@@ -212,12 +225,14 @@ void MachineCopyPropagation::CopyPropaga
 
       // If Src is defined by a previous copy, the previous copy cannot be
       // eliminated.
-      for (MCRegAliasIterator AI(Src, TRI, true); AI.isValid(); ++AI) {
-        Reg2MIMap::iterator CI = CopyMap.find(*AI);
-        if (CI != CopyMap.end()) {
-          DEBUG(dbgs() << "MCP: Copy is no longer dead: "; CI->second->dump());
-          MaybeDeadCopies.remove(CI->second);
-        }
+      ReadRegister(Src);
+      for (const MachineOperand &MO : MI->implicit_operands()) {
+        if (!MO.isReg() || !MO.readsReg())
+          continue;
+        unsigned Reg = MO.getReg();
+        if (!Reg)
+          continue;
+        ReadRegister(Reg);
       }
 
       DEBUG(dbgs() << "MCP: Copy is a deletion candidate: "; MI->dump());
@@ -234,6 +249,14 @@ void MachineCopyPropagation::CopyPropaga
       // ...
       // %xmm2<def> = copy %xmm9
       ClobberRegister(Def);
+      for (const MachineOperand &MO : MI->implicit_operands()) {
+        if (!MO.isReg() || !MO.isDef())
+          continue;
+        unsigned Reg = MO.getReg();
+        if (!Reg)
+          continue;
+        ClobberRegister(Reg);
+      }
 
       // Remember Def is defined by the copy.
       for (MCSubRegIterator SR(Def, TRI, /*IncludeSelf=*/true); SR.isValid();
@@ -268,17 +291,8 @@ void MachineCopyPropagation::CopyPropaga
 
       if (MO.isDef()) {
         Defs.push_back(Reg);
-        continue;
-      }
-
-      // If 'Reg' is defined by a copy, the copy is no longer a candidate
-      // for elimination.
-      for (MCRegAliasIterator AI(Reg, TRI, true); AI.isValid(); ++AI) {
-        Reg2MIMap::iterator CI = CopyMap.find(*AI);
-        if (CI != CopyMap.end()) {
-          DEBUG(dbgs() << "MCP: Copy is used - not dead: "; CI->second->dump());
-          MaybeDeadCopies.remove(CI->second);
-        }
+      } else {
+        ReadRegister(Reg);
       }
       // Treat undef use like defs for copy propagation but not for
       // dead copy. We would need to do a liveness check to be sure the copy

Modified: projects/clang400-import/contrib/llvm/lib/CodeGen/RegisterCoalescer.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/lib/CodeGen/RegisterCoalescer.cpp	Sat Feb 11 13:25:57 2017	(r313642)
+++ projects/clang400-import/contrib/llvm/lib/CodeGen/RegisterCoalescer.cpp	Sat Feb 11 13:58:05 2017	(r313643)
@@ -1556,9 +1556,10 @@ bool RegisterCoalescer::joinCopy(Machine
 
 bool RegisterCoalescer::joinReservedPhysReg(CoalescerPair &CP) {
   unsigned DstReg = CP.getDstReg();
+  unsigned SrcReg = CP.getSrcReg();
   assert(CP.isPhys() && "Must be a physreg copy");
   assert(MRI->isReserved(DstReg) && "Not a reserved register");
-  LiveInterval &RHS = LIS->getInterval(CP.getSrcReg());
+  LiveInterval &RHS = LIS->getInterval(SrcReg);
   DEBUG(dbgs() << "\t\tRHS = " << RHS << '\n');
 
   assert(RHS.containsOneValue() && "Invalid join with reserved register");
@@ -1592,17 +1593,36 @@ bool RegisterCoalescer::joinReservedPhys
   // Delete the identity copy.
   MachineInstr *CopyMI;
   if (CP.isFlipped()) {
-    CopyMI = MRI->getVRegDef(RHS.reg);
+    // Physreg is copied into vreg
+    //   %vregY = COPY %X
+    //   ...  //< no other def of %X here
+    //   use %vregY
+    // =>
+    //   ...
+    //   use %X
+    CopyMI = MRI->getVRegDef(SrcReg);
   } else {
-    if (!MRI->hasOneNonDBGUse(RHS.reg)) {
+    // VReg is copied into physreg:
+    //   %vregX = def
+    //   ... //< no other def or use of %Y here
+    //   %Y = COPY %vregX
+    // =>
+    //   %Y = def
+    //   ...
+    if (!MRI->hasOneNonDBGUse(SrcReg)) {
       DEBUG(dbgs() << "\t\tMultiple vreg uses!\n");
       return false;
     }
 
-    MachineInstr *DestMI = MRI->getVRegDef(RHS.reg);
-    CopyMI = &*MRI->use_instr_nodbg_begin(RHS.reg);
-    const SlotIndex CopyRegIdx = LIS->getInstructionIndex(*CopyMI).getRegSlot();
-    const SlotIndex DestRegIdx = LIS->getInstructionIndex(*DestMI).getRegSlot();
+    if (!LIS->intervalIsInOneMBB(RHS)) {
+      DEBUG(dbgs() << "\t\tComplex control flow!\n");
+      return false;
+    }
+
+    MachineInstr &DestMI = *MRI->getVRegDef(SrcReg);
+    CopyMI = &*MRI->use_instr_nodbg_begin(SrcReg);
+    SlotIndex CopyRegIdx = LIS->getInstructionIndex(*CopyMI).getRegSlot();
+    SlotIndex DestRegIdx = LIS->getInstructionIndex(DestMI).getRegSlot();
 
     if (!MRI->isConstantPhysReg(DstReg)) {
       // We checked above that there are no interfering defs of the physical
@@ -1629,8 +1649,8 @@ bool RegisterCoalescer::joinReservedPhys
 
     // We're going to remove the copy which defines a physical reserved
     // register, so remove its valno, etc.
-    DEBUG(dbgs() << "\t\tRemoving phys reg def of " << DstReg << " at "
-          << CopyRegIdx << "\n");
+    DEBUG(dbgs() << "\t\tRemoving phys reg def of " << PrintReg(DstReg, TRI)
+          << " at " << CopyRegIdx << "\n");
 
     LIS->removePhysRegDefAt(DstReg, CopyRegIdx);
     // Create a new dead def at the new def location.

Modified: projects/clang400-import/contrib/llvm/lib/MC/MCCodeView.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/lib/MC/MCCodeView.cpp	Sat Feb 11 13:25:57 2017	(r313642)
+++ projects/clang400-import/contrib/llvm/lib/MC/MCCodeView.cpp	Sat Feb 11 13:58:05 2017	(r313643)
@@ -509,17 +509,17 @@ void CodeViewContext::encodeDefRange(MCA
       // are artificially constructing.
       size_t RecordSize = FixedSizePortion.size() +
                           sizeof(LocalVariableAddrRange) + 4 * NumGaps;
-      // Write out the recrod size.
-      support::endian::Writer<support::little>(OS).write<uint16_t>(RecordSize);
+      // Write out the record size.
+      LEWriter.write<uint16_t>(RecordSize);
       // Write out the fixed size prefix.
       OS << FixedSizePortion;
       // Make space for a fixup that will eventually have a section relative
       // relocation pointing at the offset where the variable becomes live.
       Fixups.push_back(MCFixup::create(Contents.size(), BE, FK_SecRel_4));
-      Contents.resize(Contents.size() + 4); // Fixup for code start.
+      LEWriter.write<uint32_t>(0); // Fixup for code start.
       // Make space for a fixup that will record the section index for the code.
       Fixups.push_back(MCFixup::create(Contents.size(), BE, FK_SecRel_2));
-      Contents.resize(Contents.size() + 2); // Fixup for section index.
+      LEWriter.write<uint16_t>(0); // Fixup for section index.
       // Write down the range's extent.
       LEWriter.write<uint16_t>(Chunk);
 
@@ -529,7 +529,7 @@ void CodeViewContext::encodeDefRange(MCA
     } while (RangeSize > 0);
 
     // Emit the gaps afterwards.
-    assert((NumGaps == 0 || Bias < MaxDefRange) &&
+    assert((NumGaps == 0 || Bias <= MaxDefRange) &&
            "large ranges should not have gaps");
     unsigned GapStartOffset = GapAndRangeSizes[I].second;
     for (++I; I != J; ++I) {
@@ -537,7 +537,7 @@ void CodeViewContext::encodeDefRange(MCA
       assert(I < GapAndRangeSizes.size());
       std::tie(GapSize, RangeSize) = GapAndRangeSizes[I];
       LEWriter.write<uint16_t>(GapStartOffset);
-      LEWriter.write<uint16_t>(RangeSize);
+      LEWriter.write<uint16_t>(GapSize);
       GapStartOffset += GapSize + RangeSize;
     }
   }

Modified: projects/clang400-import/contrib/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp	Sat Feb 11 13:25:57 2017	(r313642)
+++ projects/clang400-import/contrib/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp	Sat Feb 11 13:58:05 2017	(r313643)
@@ -8934,8 +8934,9 @@ static SDValue splitStoreSplat(Selection
   // instructions (stp).
   SDLoc DL(&St);
   SDValue BasePtr = St.getBasePtr();
+  const MachinePointerInfo &PtrInfo = St.getPointerInfo();
   SDValue NewST1 =
-      DAG.getStore(St.getChain(), DL, SplatVal, BasePtr, St.getPointerInfo(),
+      DAG.getStore(St.getChain(), DL, SplatVal, BasePtr, PtrInfo,
                    OrigAlignment, St.getMemOperand()->getFlags());
 
   unsigned Offset = EltOffset;
@@ -8944,7 +8945,7 @@ static SDValue splitStoreSplat(Selection
     SDValue OffsetPtr = DAG.getNode(ISD::ADD, DL, MVT::i64, BasePtr,
                                     DAG.getConstant(Offset, DL, MVT::i64));
     NewST1 = DAG.getStore(NewST1.getValue(0), DL, SplatVal, OffsetPtr,
-                          St.getPointerInfo(), Alignment,
+                          PtrInfo.getWithOffset(Offset), Alignment,
                           St.getMemOperand()->getFlags());
     Offset += EltOffset;
   }

Modified: projects/clang400-import/contrib/llvm/lib/Target/X86/X86ExpandPseudo.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/lib/Target/X86/X86ExpandPseudo.cpp	Sat Feb 11 13:25:57 2017	(r313642)
+++ projects/clang400-import/contrib/llvm/lib/Target/X86/X86ExpandPseudo.cpp	Sat Feb 11 13:58:05 2017	(r313643)
@@ -77,11 +77,9 @@ bool X86ExpandPseudo::ExpandMI(MachineBa
   default:
     return false;
   case X86::TCRETURNdi:
-  case X86::TCRETURNdicc:
   case X86::TCRETURNri:
   case X86::TCRETURNmi:
   case X86::TCRETURNdi64:
-  case X86::TCRETURNdi64cc:
   case X86::TCRETURNri64:
   case X86::TCRETURNmi64: {
     bool isMem = Opcode == X86::TCRETURNmi || Opcode == X86::TCRETURNmi64;
@@ -99,10 +97,6 @@ bool X86ExpandPseudo::ExpandMI(MachineBa
     Offset = StackAdj - MaxTCDelta;
     assert(Offset >= 0 && "Offset should never be negative");
 
-    if (Opcode == X86::TCRETURNdicc || Opcode == X86::TCRETURNdi64cc) {
-      assert(Offset == 0 && "Conditional tail call cannot adjust the stack.");
-    }
-
     if (Offset) {
       // Check for possible merge with preceding ADD instruction.
       Offset += X86FL->mergeSPUpdates(MBB, MBBI, true);
@@ -111,21 +105,12 @@ bool X86ExpandPseudo::ExpandMI(MachineBa
 
     // Jump to label or value in register.
     bool IsWin64 = STI->isTargetWin64();
-    if (Opcode == X86::TCRETURNdi || Opcode == X86::TCRETURNdicc ||
-        Opcode == X86::TCRETURNdi64 || Opcode == X86::TCRETURNdi64cc) {
+    if (Opcode == X86::TCRETURNdi || Opcode == X86::TCRETURNdi64) {
       unsigned Op;
       switch (Opcode) {
       case X86::TCRETURNdi:
         Op = X86::TAILJMPd;
         break;
-      case X86::TCRETURNdicc:
-        Op = X86::TAILJMPd_CC;
-        break;
-      case X86::TCRETURNdi64cc:
-        assert(!IsWin64 && "Conditional tail calls confuse the Win64 unwinder.");
-        // TODO: We could do it for Win64 "leaf" functions though; PR30337.
-        Op = X86::TAILJMPd64_CC;
-        break;
       default:
         // Note: Win64 uses REX prefixes indirect jumps out of functions, but
         // not direct ones.
@@ -141,10 +126,6 @@ bool X86ExpandPseudo::ExpandMI(MachineBa
         MIB.addExternalSymbol(JumpTarget.getSymbolName(),
                               JumpTarget.getTargetFlags());
       }
-      if (Op == X86::TAILJMPd_CC || Op == X86::TAILJMPd64_CC) {
-        MIB.addImm(MBBI->getOperand(2).getImm());
-      }
-
     } else if (Opcode == X86::TCRETURNmi || Opcode == X86::TCRETURNmi64) {
       unsigned Op = (Opcode == X86::TCRETURNmi)
                         ? X86::TAILJMPm

Modified: projects/clang400-import/contrib/llvm/lib/Target/X86/X86InstrControl.td
==============================================================================
--- projects/clang400-import/contrib/llvm/lib/Target/X86/X86InstrControl.td	Sat Feb 11 13:25:57 2017	(r313642)
+++ projects/clang400-import/contrib/llvm/lib/Target/X86/X86InstrControl.td	Sat Feb 11 13:58:05 2017	(r313643)
@@ -264,21 +264,6 @@ let isCall = 1, isTerminator = 1, isRetu
                    "jmp{l}\t{*}$dst", [], IIC_JMP_MEM>;
 }
 
-// Conditional tail calls are similar to the above, but they are branches
-// rather than barriers, and they use EFLAGS.
-let isCall = 1, isTerminator = 1, isReturn = 1, isBranch = 1,
-    isCodeGenOnly = 1, SchedRW = [WriteJumpLd] in
-  let Uses = [ESP, EFLAGS] in {
-  def TCRETURNdicc : PseudoI<(outs),
-                     (ins i32imm_pcrel:$dst, i32imm:$offset, i32imm:$cond), []>;
-
-  // This gets substituted to a conditional jump instruction in MC lowering.
-  def TAILJMPd_CC : Ii32PCRel<0x80, RawFrm, (outs),
-                           (ins i32imm_pcrel:$dst, i32imm:$cond),
-                           "",
-                           [], IIC_JMP_REL>;
-}
-
 
 //===----------------------------------------------------------------------===//
 //  Call Instructions...
@@ -340,19 +325,3 @@ let isCall = 1, isTerminator = 1, isRetu
                            "rex64 jmp{q}\t{*}$dst", [], IIC_JMP_MEM>;
   }
 }
-
-// Conditional tail calls are similar to the above, but they are branches
-// rather than barriers, and they use EFLAGS.
-let isCall = 1, isTerminator = 1, isReturn = 1, isBranch = 1,
-    isCodeGenOnly = 1, SchedRW = [WriteJumpLd] in
-  let Uses = [RSP, EFLAGS] in {
-  def TCRETURNdi64cc : PseudoI<(outs),
-                           (ins i64i32imm_pcrel:$dst, i32imm:$offset,
-                            i32imm:$cond), []>;
-
-  // This gets substituted to a conditional jump instruction in MC lowering.
-  def TAILJMPd64_CC : Ii32PCRel<0x80, RawFrm, (outs),
-                           (ins i64i32imm_pcrel:$dst, i32imm:$cond),
-                           "",
-                           [], IIC_JMP_REL>;
-}

Modified: projects/clang400-import/contrib/llvm/lib/Target/X86/X86InstrInfo.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/lib/Target/X86/X86InstrInfo.cpp	Sat Feb 11 13:25:57 2017	(r313642)
+++ projects/clang400-import/contrib/llvm/lib/Target/X86/X86InstrInfo.cpp	Sat Feb 11 13:58:05 2017	(r313643)
@@ -5108,85 +5108,6 @@ bool X86InstrInfo::isUnpredicatedTermina
   return !isPredicated(MI);
 }
 
-bool X86InstrInfo::isUnconditionalTailCall(const MachineInstr &MI) const {
-  switch (MI.getOpcode()) {
-  case X86::TCRETURNdi:
-  case X86::TCRETURNri:
-  case X86::TCRETURNmi:
-  case X86::TCRETURNdi64:
-  case X86::TCRETURNri64:
-  case X86::TCRETURNmi64:
-    return true;
-  default:
-    return false;
-  }
-}
-
-bool X86InstrInfo::canMakeTailCallConditional(
-    SmallVectorImpl<MachineOperand> &BranchCond,
-    const MachineInstr &TailCall) const {
-  if (TailCall.getOpcode() != X86::TCRETURNdi &&
-      TailCall.getOpcode() != X86::TCRETURNdi64) {
-    // Only direct calls can be done with a conditional branch.
-    return false;
-  }
-
-  if (Subtarget.isTargetWin64()) {
-    // Conditional tail calls confuse the Win64 unwinder.
-    // TODO: Allow them for "leaf" functions; PR30337.
-    return false;
-  }
-
-  assert(BranchCond.size() == 1);
-  if (BranchCond[0].getImm() > X86::LAST_VALID_COND) {
-    // Can't make a conditional tail call with this condition.
-    return false;
-  }
-
-  const X86MachineFunctionInfo *X86FI =
-      TailCall.getParent()->getParent()->getInfo<X86MachineFunctionInfo>();
-  if (X86FI->getTCReturnAddrDelta() != 0 ||
-      TailCall.getOperand(1).getImm() != 0) {
-    // A conditional tail call cannot do any stack adjustment.
-    return false;
-  }
-
-  return true;
-}
-
-void X86InstrInfo::replaceBranchWithTailCall(
-    MachineBasicBlock &MBB, SmallVectorImpl<MachineOperand> &BranchCond,
-    const MachineInstr &TailCall) const {
-  assert(canMakeTailCallConditional(BranchCond, TailCall));
-
-  MachineBasicBlock::iterator I = MBB.end();
-  while (I != MBB.begin()) {
-    --I;
-    if (I->isDebugValue())
-      continue;
-    if (!I->isBranch())
-      assert(0 && "Can't find the branch to replace!");
-
-    X86::CondCode CC = getCondFromBranchOpc(I->getOpcode());
-    assert(BranchCond.size() == 1);
-    if (CC != BranchCond[0].getImm())
-      continue;
-
-    break;
-  }
-
-  unsigned Opc = TailCall.getOpcode() == X86::TCRETURNdi ? X86::TCRETURNdicc
-                                                         : X86::TCRETURNdi64cc;
-
-  auto MIB = BuildMI(MBB, I, MBB.findDebugLoc(I), get(Opc));
-  MIB->addOperand(TailCall.getOperand(0)); // Destination.
-  MIB.addImm(0); // Stack offset (not used).
-  MIB->addOperand(BranchCond[0]); // Condition.
-  MIB.copyImplicitOps(TailCall); // Regmask and (imp-used) parameters.
-
-  I->eraseFromParent();
-}
-
 // Given a MBB and its TBB, find the FBB which was a fallthrough MBB (it may
 // not be a fallthrough MBB now due to layout changes). Return nullptr if the
 // fallthrough MBB cannot be identified.

Modified: projects/clang400-import/contrib/llvm/lib/Target/X86/X86InstrInfo.h
==============================================================================
--- projects/clang400-import/contrib/llvm/lib/Target/X86/X86InstrInfo.h	Sat Feb 11 13:25:57 2017	(r313642)
+++ projects/clang400-import/contrib/llvm/lib/Target/X86/X86InstrInfo.h	Sat Feb 11 13:58:05 2017	(r313643)
@@ -316,13 +316,6 @@ public:
 
   // Branch analysis.
   bool isUnpredicatedTerminator(const MachineInstr &MI) const override;
-  bool isUnconditionalTailCall(const MachineInstr &MI) const override;
-  bool canMakeTailCallConditional(SmallVectorImpl<MachineOperand> &Cond,
-                                  const MachineInstr &TailCall) const override;
-  void replaceBranchWithTailCall(MachineBasicBlock &MBB,
-                                 SmallVectorImpl<MachineOperand> &Cond,
-                                 const MachineInstr &TailCall) const override;
-
   bool analyzeBranch(MachineBasicBlock &MBB, MachineBasicBlock *&TBB,
                      MachineBasicBlock *&FBB,
                      SmallVectorImpl<MachineOperand> &Cond,

Modified: projects/clang400-import/contrib/llvm/lib/Target/X86/X86MCInstLower.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/lib/Target/X86/X86MCInstLower.cpp	Sat Feb 11 13:25:57 2017	(r313642)
+++ projects/clang400-import/contrib/llvm/lib/Target/X86/X86MCInstLower.cpp	Sat Feb 11 13:58:05 2017	(r313643)
@@ -498,16 +498,11 @@ ReSimplify:
     break;
   }
 
-  // TAILJMPd, TAILJMPd64, TailJMPd_cc - Lower to the correct jump instruction.
+  // TAILJMPd, TAILJMPd64 - Lower to the correct jump instruction.
   { unsigned Opcode;
   case X86::TAILJMPr:   Opcode = X86::JMP32r; goto SetTailJmpOpcode;
   case X86::TAILJMPd:
   case X86::TAILJMPd64: Opcode = X86::JMP_1;  goto SetTailJmpOpcode;
-  case X86::TAILJMPd_CC:
-  case X86::TAILJMPd64_CC:
-    Opcode = X86::GetCondBranchFromCond(
-        static_cast<X86::CondCode>(MI->getOperand(1).getImm()));
-    goto SetTailJmpOpcode;
 
   SetTailJmpOpcode:
     MCOperand Saved = OutMI.getOperand(0);
@@ -1281,11 +1276,9 @@ void X86AsmPrinter::EmitInstruction(cons
   case X86::TAILJMPr:
   case X86::TAILJMPm:
   case X86::TAILJMPd:
-  case X86::TAILJMPd_CC:
   case X86::TAILJMPr64:
   case X86::TAILJMPm64:
   case X86::TAILJMPd64:
-  case X86::TAILJMPd64_CC:
   case X86::TAILJMPr64_REX:
   case X86::TAILJMPm64_REX:
     // Lower these as normal, but add some comments.

Modified: projects/clang400-import/lib/clang/include/clang/Basic/Version.inc
==============================================================================
--- projects/clang400-import/lib/clang/include/clang/Basic/Version.inc	Sat Feb 11 13:25:57 2017	(r313642)
+++ projects/clang400-import/lib/clang/include/clang/Basic/Version.inc	Sat Feb 11 13:58:05 2017	(r313643)
@@ -8,4 +8,4 @@
 
 #define	CLANG_VENDOR			"FreeBSD "
 
-#define	SVN_REVISION			"294123"
+#define	SVN_REVISION			"294803"

Modified: projects/clang400-import/lib/clang/include/lld/Config/Version.inc
==============================================================================
--- projects/clang400-import/lib/clang/include/lld/Config/Version.inc	Sat Feb 11 13:25:57 2017	(r313642)
+++ projects/clang400-import/lib/clang/include/lld/Config/Version.inc	Sat Feb 11 13:58:05 2017	(r313643)
@@ -4,5 +4,5 @@
 #define LLD_VERSION_STRING "4.0.0"
 #define LLD_VERSION_MAJOR 4
 #define LLD_VERSION_MINOR 0
-#define LLD_REVISION_STRING "294123"
+#define LLD_REVISION_STRING "294803"
 #define LLD_REPOSITORY_STRING "FreeBSD"

From owner-svn-src-projects@freebsd.org  Sat Feb 11 14:04:21 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 252C3CDA015
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Sat, 11 Feb 2017 14:04:21 +0000 (UTC) (envelope-from dim@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id ABB7DCF6;
 Sat, 11 Feb 2017 14:04:20 +0000 (UTC) (envelope-from dim@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1BE4J4m092935;
 Sat, 11 Feb 2017 14:04:19 GMT (envelope-from dim@FreeBSD.org)
Received: (from dim@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1BE4Imn092923;
 Sat, 11 Feb 2017 14:04:18 GMT (envelope-from dim@FreeBSD.org)
Message-Id: <201702111404.v1BE4Imn092923@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org
 using -f
From: Dimitry Andric <dim@FreeBSD.org>
Date: Sat, 11 Feb 2017 14:04:18 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r313644 - in projects/clang400-import: . bin/ed
 cddl/contrib/opensolaris/lib/libdtrace/common contrib/byacc/test/yacc
 contrib/compiler-rt/lib/sanitizer_common contrib/elftoolchain/libel...
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 11 Feb 2017 14:04:21 -0000

Author: dim
Date: Sat Feb 11 14:04:18 2017
New Revision: 313644
URL: https://svnweb.freebsd.org/changeset/base/313644

Log:
  Merge ^/head r313301 through r313643.

Added:
  projects/clang400-import/contrib/netbsd-tests/dev/clock_subr/
     - copied from r313643, head/contrib/netbsd-tests/dev/clock_subr/
  projects/clang400-import/contrib/netbsd-tests/fs/vfs/t_mtime_otrunc.c
     - copied unchanged from r313643, head/contrib/netbsd-tests/fs/vfs/t_mtime_otrunc.c
  projects/clang400-import/contrib/netbsd-tests/fs/vfs/t_rwtoro.c
     - copied unchanged from r313643, head/contrib/netbsd-tests/fs/vfs/t_rwtoro.c
  projects/clang400-import/contrib/netbsd-tests/kernel/arch/
     - copied from r313643, head/contrib/netbsd-tests/kernel/arch/
  projects/clang400-import/contrib/netbsd-tests/lib/libc/gen/exect/
     - copied from r313643, head/contrib/netbsd-tests/lib/libc/gen/exect/
  projects/clang400-import/contrib/netbsd-tests/lib/libc/hash/t_hmac.c
     - copied unchanged from r313643, head/contrib/netbsd-tests/lib/libc/hash/t_hmac.c
  projects/clang400-import/contrib/netbsd-tests/lib/libpthread_dbg/
     - copied from r313643, head/contrib/netbsd-tests/lib/libpthread_dbg/
  projects/clang400-import/contrib/netbsd-tests/lib/librefuse/
     - copied from r313643, head/contrib/netbsd-tests/lib/librefuse/
  projects/clang400-import/contrib/netbsd-tests/net/carp/t_basic.sh
     - copied unchanged from r313643, head/contrib/netbsd-tests/net/carp/t_basic.sh
  projects/clang400-import/contrib/netbsd-tests/net/if_tun/
     - copied from r313643, head/contrib/netbsd-tests/net/if_tun/
  projects/clang400-import/contrib/netbsd-tests/net/if_vlan/
     - copied from r313643, head/contrib/netbsd-tests/net/if_vlan/
  projects/clang400-import/contrib/netbsd-tests/sys/uvm/
     - copied from r313643, head/contrib/netbsd-tests/sys/uvm/
  projects/clang400-import/contrib/netbsd-tests/usr.bin/mixerctl/
     - copied from r313643, head/contrib/netbsd-tests/usr.bin/mixerctl/
  projects/clang400-import/contrib/netbsd-tests/usr.bin/uniq/
     - copied from r313643, head/contrib/netbsd-tests/usr.bin/uniq/
  projects/clang400-import/lib/libnetbsd/glob.h
     - copied unchanged from r313643, head/lib/libnetbsd/glob.h
  projects/clang400-import/lib/libnetbsd/pthread.h
     - copied unchanged from r313643, head/lib/libnetbsd/pthread.h
  projects/clang400-import/lib/libnetbsd/sys/event.h
     - copied unchanged from r313643, head/lib/libnetbsd/sys/event.h
  projects/clang400-import/lib/libnetbsd/sys/types.h
     - copied unchanged from r313643, head/lib/libnetbsd/sys/types.h
  projects/clang400-import/lib/libnetbsd/sys/wait.h
     - copied unchanged from r313643, head/lib/libnetbsd/sys/wait.h
  projects/clang400-import/sbin/ifconfig/ifipsec.c
     - copied unchanged from r313643, head/sbin/ifconfig/ifipsec.c
  projects/clang400-import/share/man/man4/if_ipsec.4
     - copied unchanged from r313643, head/share/man/man4/if_ipsec.4
  projects/clang400-import/sys/arm/allwinner/a10_timer.c
     - copied unchanged from r313643, head/sys/arm/allwinner/a10_timer.c
  projects/clang400-import/sys/arm/altera/socfpga/socfpga_mp.h
     - copied unchanged from r313643, head/sys/arm/altera/socfpga/socfpga_mp.h
  projects/clang400-import/sys/contrib/dev/iwm/iwm-3160-17.fw.uu
     - copied unchanged from r313643, head/sys/contrib/dev/iwm/iwm-3160-17.fw.uu
  projects/clang400-import/sys/contrib/dev/iwm/iwm-7260-17.fw.uu
     - copied unchanged from r313643, head/sys/contrib/dev/iwm/iwm-7260-17.fw.uu
  projects/clang400-import/sys/contrib/dev/iwm/iwm-7265-17.fw.uu
     - copied unchanged from r313643, head/sys/contrib/dev/iwm/iwm-7265-17.fw.uu
  projects/clang400-import/sys/contrib/dev/iwm/iwm-8000C-17.fw.uu
     - copied unchanged from r313643, head/sys/contrib/dev/iwm/iwm-8000C-17.fw.uu
  projects/clang400-import/sys/dev/iwm/if_iwm_notif_wait.c
     - copied unchanged from r313643, head/sys/dev/iwm/if_iwm_notif_wait.c
  projects/clang400-import/sys/dev/iwm/if_iwm_notif_wait.h
     - copied unchanged from r313643, head/sys/dev/iwm/if_iwm_notif_wait.h
  projects/clang400-import/sys/dev/ixl/ixl_iw.c
     - copied unchanged from r313643, head/sys/dev/ixl/ixl_iw.c
  projects/clang400-import/sys/dev/ixl/ixl_iw.h
     - copied unchanged from r313643, head/sys/dev/ixl/ixl_iw.h
  projects/clang400-import/sys/dev/ixl/ixl_iw_int.h
     - copied unchanged from r313643, head/sys/dev/ixl/ixl_iw_int.h
  projects/clang400-import/sys/dev/ixl/ixl_pf_i2c.c
     - copied unchanged from r313643, head/sys/dev/ixl/ixl_pf_i2c.c
  projects/clang400-import/sys/modules/ipsec/
     - copied from r313643, head/sys/modules/ipsec/
  projects/clang400-import/sys/modules/tcp/tcpmd5/
     - copied from r313643, head/sys/modules/tcp/tcpmd5/
  projects/clang400-import/sys/net/if_ipsec.c
     - copied unchanged from r313643, head/sys/net/if_ipsec.c
  projects/clang400-import/sys/net/if_ipsec.h
     - copied unchanged from r313643, head/sys/net/if_ipsec.h
  projects/clang400-import/sys/netipsec/ipsec_mod.c
     - copied unchanged from r313643, head/sys/netipsec/ipsec_mod.c
  projects/clang400-import/sys/netipsec/ipsec_pcb.c
     - copied unchanged from r313643, head/sys/netipsec/ipsec_pcb.c
  projects/clang400-import/sys/netipsec/ipsec_support.h
     - copied unchanged from r313643, head/sys/netipsec/ipsec_support.h
  projects/clang400-import/sys/netipsec/subr_ipsec.c
     - copied unchanged from r313643, head/sys/netipsec/subr_ipsec.c
  projects/clang400-import/sys/netipsec/udpencap.c
     - copied unchanged from r313643, head/sys/netipsec/udpencap.c
  projects/clang400-import/usr.bin/indent/tests/
     - copied from r313643, head/usr.bin/indent/tests/
  projects/clang400-import/usr.bin/uniq/tests/
     - copied from r313643, head/usr.bin/uniq/tests/
Deleted:
  projects/clang400-import/contrib/netbsd-tests/net/carp/t_basic.c
  projects/clang400-import/secure/usr.bin/bdes/
  projects/clang400-import/sys/arm/allwinner/timer.c
  projects/clang400-import/sys/netinet/ip_ipsec.c
  projects/clang400-import/sys/netinet/ip_ipsec.h
  projects/clang400-import/sys/netinet6/ip6_ipsec.c
  projects/clang400-import/sys/netinet6/ip6_ipsec.h
Modified:
  projects/clang400-import/ObsoleteFiles.inc
  projects/clang400-import/bin/ed/ed.1
  projects/clang400-import/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c
  projects/clang400-import/contrib/byacc/test/yacc/expr.oxout.tab.c
  projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
  projects/clang400-import/contrib/elftoolchain/libelftc/libelftc_bfdtarget.c
  projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_cpio.c
  projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_mtree.c
  projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_warc.c
  projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_xar.c
  projects/clang400-import/contrib/netbsd-tests/dev/audio/t_pad_output.bz2.uue
  projects/clang400-import/contrib/netbsd-tests/dev/cgd/t_cgd_3des.c
  projects/clang400-import/contrib/netbsd-tests/dev/cgd/t_cgd_aes.c
  projects/clang400-import/contrib/netbsd-tests/dev/cgd/t_cgd_blowfish.c
  projects/clang400-import/contrib/netbsd-tests/dev/scsipi/t_cd.c
  projects/clang400-import/contrib/netbsd-tests/dev/sysmon/t_swwdog.c
  projects/clang400-import/contrib/netbsd-tests/fs/common/h_fsmacros.h
  projects/clang400-import/contrib/netbsd-tests/fs/ffs/h_quota2_tests.c
  projects/clang400-import/contrib/netbsd-tests/fs/ffs/t_fifos.c
  projects/clang400-import/contrib/netbsd-tests/fs/ffs/t_mount.c
  projects/clang400-import/contrib/netbsd-tests/fs/ffs/t_quota2_1.c
  projects/clang400-import/contrib/netbsd-tests/fs/ffs/t_quota2_remount.c
  projects/clang400-import/contrib/netbsd-tests/fs/ffs/t_snapshot.c
  projects/clang400-import/contrib/netbsd-tests/fs/ffs/t_snapshot_log.c
  projects/clang400-import/contrib/netbsd-tests/fs/ffs/t_snapshot_v2.c
  projects/clang400-import/contrib/netbsd-tests/fs/hfs/t_pathconvert.c
  projects/clang400-import/contrib/netbsd-tests/fs/kernfs/t_basic.c
  projects/clang400-import/contrib/netbsd-tests/fs/lfs/t_pr.c
  projects/clang400-import/contrib/netbsd-tests/fs/msdosfs/t_snapshot.c
  projects/clang400-import/contrib/netbsd-tests/fs/nfs/t_mountd.c
  projects/clang400-import/contrib/netbsd-tests/fs/nullfs/t_basic.c
  projects/clang400-import/contrib/netbsd-tests/fs/ptyfs/t_nullpts.c
  projects/clang400-import/contrib/netbsd-tests/fs/ptyfs/t_ptyfs.c
  projects/clang400-import/contrib/netbsd-tests/fs/puffs/t_basic.c
  projects/clang400-import/contrib/netbsd-tests/fs/puffs/t_fuzz.c
  projects/clang400-import/contrib/netbsd-tests/fs/puffs/t_io.c
  projects/clang400-import/contrib/netbsd-tests/fs/tmpfs/t_mknod.sh
  projects/clang400-import/contrib/netbsd-tests/fs/tmpfs/t_readdir.sh
  projects/clang400-import/contrib/netbsd-tests/fs/tmpfs/t_renamerace.c
  projects/clang400-import/contrib/netbsd-tests/fs/umapfs/t_basic.c
  projects/clang400-import/contrib/netbsd-tests/fs/union/t_pr.c
  projects/clang400-import/contrib/netbsd-tests/fs/vfs/t_full.c
  projects/clang400-import/contrib/netbsd-tests/fs/vfs/t_io.c
  projects/clang400-import/contrib/netbsd-tests/fs/vfs/t_renamerace.c
  projects/clang400-import/contrib/netbsd-tests/fs/vfs/t_ro.c
  projects/clang400-import/contrib/netbsd-tests/fs/vfs/t_union.c
  projects/clang400-import/contrib/netbsd-tests/fs/vfs/t_unpriv.c
  projects/clang400-import/contrib/netbsd-tests/fs/vfs/t_vfsops.c
  projects/clang400-import/contrib/netbsd-tests/fs/vfs/t_vnops.c
  projects/clang400-import/contrib/netbsd-tests/include/sys/t_socket.c
  projects/clang400-import/contrib/netbsd-tests/kernel/kqueue/read/t_fifo.c
  projects/clang400-import/contrib/netbsd-tests/kernel/kqueue/read/t_file.c
  projects/clang400-import/contrib/netbsd-tests/kernel/kqueue/read/t_file2.c
  projects/clang400-import/contrib/netbsd-tests/kernel/kqueue/read/t_pipe.c
  projects/clang400-import/contrib/netbsd-tests/kernel/kqueue/read/t_ttypty.c
  projects/clang400-import/contrib/netbsd-tests/kernel/kqueue/t_ioctl.c
  projects/clang400-import/contrib/netbsd-tests/kernel/kqueue/t_proc1.c
  projects/clang400-import/contrib/netbsd-tests/kernel/kqueue/t_proc2.c
  projects/clang400-import/contrib/netbsd-tests/kernel/kqueue/t_proc3.c
  projects/clang400-import/contrib/netbsd-tests/kernel/kqueue/t_sig.c
  projects/clang400-import/contrib/netbsd-tests/kernel/kqueue/t_vnode.c
  projects/clang400-import/contrib/netbsd-tests/kernel/kqueue/write/t_fifo.c
  projects/clang400-import/contrib/netbsd-tests/kernel/kqueue/write/t_pipe.c
  projects/clang400-import/contrib/netbsd-tests/kernel/kqueue/write/t_ttypty.c
  projects/clang400-import/contrib/netbsd-tests/kernel/t_extent.c
  projects/clang400-import/contrib/netbsd-tests/kernel/t_filedesc.c
  projects/clang400-import/contrib/netbsd-tests/kernel/t_lock.c
  projects/clang400-import/contrib/netbsd-tests/kernel/t_mqueue.c
  projects/clang400-import/contrib/netbsd-tests/kernel/t_ptrace.c
  projects/clang400-import/contrib/netbsd-tests/kernel/t_ptrace_wait.c
  projects/clang400-import/contrib/netbsd-tests/kernel/t_pty.c
  projects/clang400-import/contrib/netbsd-tests/kernel/t_rnd.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/c063/t_mkfifoat.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/db/t_db.sh
  projects/clang400-import/contrib/netbsd-tests/lib/libc/gen/posix_spawn/t_spawnattr.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/gen/t_floatunditf.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/gen/t_glob.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/gen/t_humanize_number.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/gen/t_sleep.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/hash/h_hash.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/hash/t_sha2.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/locale/t_io.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/locale/t_mbtowc.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/regex/debug.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/regex/t_exhaust.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/regex/t_regex_att.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/rpc/t_rpc.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/setjmp/t_setjmp.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/setjmp/t_threadjmp.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/ssp/h_memset.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/ssp/h_read.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/stdlib/h_getopt.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/stdlib/h_getopt_long.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/stdlib/t_hsearch.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/stdlib/t_strtod.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/string/t_strlen.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/sys/t_clock_gettime.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/sys/t_connect.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/sys/t_dup.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/sys/t_getcontext.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/sys/t_getrusage.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/sys/t_kevent.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/sys/t_link.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/sys/t_listen.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/sys/t_mincore.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/sys/t_mlock.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/sys/t_mmap.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/sys/t_msgctl.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/sys/t_msgrcv.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/sys/t_msgsnd.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/sys/t_msync.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/sys/t_nanosleep.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/sys/t_pipe.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/sys/t_pipe2.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/sys/t_posix_fadvise.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/sys/t_revoke.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/sys/t_select.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/sys/t_setrlimit.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/sys/t_sigaction.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/sys/t_sigqueue.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/sys/t_socketpair.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/sys/t_stat.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/sys/t_timer_create.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/sys/t_truncate.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/sys/t_umask.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/sys/t_unlink.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/sys/t_wait.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/sys/t_wait_noproc.c
  projects/clang400-import/contrib/netbsd-tests/lib/libc/sys/t_write.c
  projects/clang400-import/contrib/netbsd-tests/lib/libm/t_ilogb.c
  projects/clang400-import/contrib/netbsd-tests/lib/libm/t_pow.c
  projects/clang400-import/contrib/netbsd-tests/lib/libm/t_precision.c
  projects/clang400-import/contrib/netbsd-tests/lib/libm/t_scalbn.c
  projects/clang400-import/contrib/netbsd-tests/lib/libposix/t_rename.c
  projects/clang400-import/contrib/netbsd-tests/lib/libpthread/h_common.h
  projects/clang400-import/contrib/netbsd-tests/lib/libpthread/t_condwait.c
  projects/clang400-import/contrib/netbsd-tests/lib/libpthread/t_detach.c
  projects/clang400-import/contrib/netbsd-tests/lib/libpthread/t_fork.c
  projects/clang400-import/contrib/netbsd-tests/lib/libpthread/t_fpu.c
  projects/clang400-import/contrib/netbsd-tests/lib/libpthread/t_join.c
  projects/clang400-import/contrib/netbsd-tests/lib/libpthread/t_mutex.c
  projects/clang400-import/contrib/netbsd-tests/lib/libpthread/t_once.c
  projects/clang400-import/contrib/netbsd-tests/lib/libpthread/t_sem.c
  projects/clang400-import/contrib/netbsd-tests/lib/libpthread/t_swapcontext.c
  projects/clang400-import/contrib/netbsd-tests/lib/librt/t_sem.c
  projects/clang400-import/contrib/netbsd-tests/lib/librumpclient/t_fd.c
  projects/clang400-import/contrib/netbsd-tests/lib/semaphore/sem.c
  projects/clang400-import/contrib/netbsd-tests/libexec/ld.elf_so/t_dlerror-cleared.c
  projects/clang400-import/contrib/netbsd-tests/libexec/ld.elf_so/t_dlerror-false.c
  projects/clang400-import/contrib/netbsd-tests/libexec/ld.elf_so/t_dlinfo.c
  projects/clang400-import/contrib/netbsd-tests/libexec/ld.elf_so/t_ifunc.c
  projects/clang400-import/contrib/netbsd-tests/modules/t_builtin.c
  projects/clang400-import/contrib/netbsd-tests/net/bpf/t_bpf.c
  projects/clang400-import/contrib/netbsd-tests/net/bpf/t_mbuf.c
  projects/clang400-import/contrib/netbsd-tests/net/bpfilter/t_bpfilter.c
  projects/clang400-import/contrib/netbsd-tests/net/bpfjit/t_bpfjit.c
  projects/clang400-import/contrib/netbsd-tests/net/bpfjit/t_cop.c
  projects/clang400-import/contrib/netbsd-tests/net/bpfjit/t_extmem.c
  projects/clang400-import/contrib/netbsd-tests/net/bpfjit/t_mbuf.c
  projects/clang400-import/contrib/netbsd-tests/net/config/netconfig.c
  projects/clang400-import/contrib/netbsd-tests/net/icmp/t_forward.c
  projects/clang400-import/contrib/netbsd-tests/net/icmp/t_ping.c
  projects/clang400-import/contrib/netbsd-tests/net/if/t_ifconfig.sh
  projects/clang400-import/contrib/netbsd-tests/net/if_loop/t_pr.c
  projects/clang400-import/contrib/netbsd-tests/net/ndp/t_ra.sh
  projects/clang400-import/contrib/netbsd-tests/net/net/t_raw.c
  projects/clang400-import/contrib/netbsd-tests/rump/modautoload/t_modautoload.c
  projects/clang400-import/contrib/netbsd-tests/rump/rumpkern/t_kern.c
  projects/clang400-import/contrib/netbsd-tests/rump/rumpkern/t_lwproc.c
  projects/clang400-import/contrib/netbsd-tests/rump/rumpkern/t_modcmd.c
  projects/clang400-import/contrib/netbsd-tests/rump/rumpkern/t_modlinkset.c
  projects/clang400-import/contrib/netbsd-tests/rump/rumpkern/t_signals.c
  projects/clang400-import/contrib/netbsd-tests/rump/rumpkern/t_threads.c
  projects/clang400-import/contrib/netbsd-tests/rump/rumpkern/t_tsleep.c
  projects/clang400-import/contrib/netbsd-tests/rump/rumpkern/t_vm.c
  projects/clang400-import/contrib/netbsd-tests/rump/rumpvfs/t_basic.c
  projects/clang400-import/contrib/netbsd-tests/rump/rumpvfs/t_etfs.c
  projects/clang400-import/contrib/netbsd-tests/rump/rumpvfs/t_p2kifs.c
  projects/clang400-import/contrib/netbsd-tests/usr.bin/grep/t_grep.sh
  projects/clang400-import/contrib/netbsd-tests/usr.sbin/mtree/t_mtree.sh
  projects/clang400-import/contrib/netcat/netcat.c
  projects/clang400-import/etc/mtree/BSD.tests.dist
  projects/clang400-import/lib/libc/stdlib/hcreate.3
  projects/clang400-import/lib/libc/tests/hash/Makefile
  projects/clang400-import/lib/libc/tests/regex/Makefile
  projects/clang400-import/lib/libc/tests/stdio/printbasic_test.c
  projects/clang400-import/lib/libc/tests/stdio/printfloat_test.c
  projects/clang400-import/lib/libipsec/pfkey.c
  projects/clang400-import/lib/libipsec/pfkey_dump.c
  projects/clang400-import/lib/libnetbsd/sha1.h
  projects/clang400-import/lib/libnetbsd/sha2.h
  projects/clang400-import/lib/libnetbsd/util.h
  projects/clang400-import/lib/libstand/stand.h
  projects/clang400-import/lib/libstand/ufs.c
  projects/clang400-import/lib/libutil/Makefile
  projects/clang400-import/lib/libutil/hexdump.3
  projects/clang400-import/libexec/rtld-elf/rtld.c
  projects/clang400-import/sbin/decryptcore/decryptcore.8
  projects/clang400-import/sbin/decryptcore/decryptcore.c
  projects/clang400-import/sbin/fsck_ffs/fsutil.c
  projects/clang400-import/sbin/fsck_ffs/pass3.c
  projects/clang400-import/sbin/ifconfig/Makefile
  projects/clang400-import/sbin/setkey/setkey.8
  projects/clang400-import/secure/usr.bin/Makefile
  projects/clang400-import/share/man/man4/Makefile
  projects/clang400-import/share/man/man4/cxgbe.4
  projects/clang400-import/share/man/man4/ipsec.4
  projects/clang400-import/share/man/man4/tcp.4
  projects/clang400-import/share/man/man4/udp.4
  projects/clang400-import/share/misc/committers-ports.dot
  projects/clang400-import/sys/amd64/conf/GENERIC
  projects/clang400-import/sys/amd64/conf/NOTES
  projects/clang400-import/sys/amd64/linux/linux_proto.h
  projects/clang400-import/sys/amd64/linux/linux_syscall.h
  projects/clang400-import/sys/amd64/linux/linux_syscalls.c
  projects/clang400-import/sys/amd64/linux/linux_sysent.c
  projects/clang400-import/sys/amd64/linux32/linux32_proto.h
  projects/clang400-import/sys/amd64/linux32/linux32_syscall.h
  projects/clang400-import/sys/amd64/linux32/linux32_syscalls.c
  projects/clang400-import/sys/amd64/linux32/linux32_sysent.c
  projects/clang400-import/sys/arm/allwinner/files.allwinner_up
  projects/clang400-import/sys/arm/altera/socfpga/socfpga_common.c
  projects/clang400-import/sys/arm/altera/socfpga/socfpga_machdep.c
  projects/clang400-import/sys/arm/altera/socfpga/socfpga_mp.c
  projects/clang400-import/sys/arm/arm/identcpu-v4.c
  projects/clang400-import/sys/arm/arm/identcpu-v6.c
  projects/clang400-import/sys/arm/arm/stack_machdep.c
  projects/clang400-import/sys/arm/conf/SOCKIT.common
  projects/clang400-import/sys/arm/include/atomic.h
  projects/clang400-import/sys/arm/include/counter.h
  projects/clang400-import/sys/arm64/arm64/cpufunc_asm.S
  projects/clang400-import/sys/arm64/arm64/exception.S
  projects/clang400-import/sys/arm64/arm64/genassym.c
  projects/clang400-import/sys/arm64/arm64/trap.c
  projects/clang400-import/sys/arm64/include/counter.h
  projects/clang400-import/sys/arm64/include/cpufunc.h
  projects/clang400-import/sys/arm64/include/frame.h
  projects/clang400-import/sys/boot/common/bcache.c
  projects/clang400-import/sys/boot/common/bootstrap.h
  projects/clang400-import/sys/boot/common/disk.c
  projects/clang400-import/sys/boot/common/part.c
  projects/clang400-import/sys/boot/common/part.h
  projects/clang400-import/sys/boot/efi/include/efilib.h
  projects/clang400-import/sys/boot/efi/libefi/Makefile
  projects/clang400-import/sys/boot/efi/libefi/devpath.c
  projects/clang400-import/sys/boot/efi/libefi/efipart.c
  projects/clang400-import/sys/boot/efi/loader/conf.c
  projects/clang400-import/sys/boot/efi/loader/devicename.c
  projects/clang400-import/sys/boot/efi/loader/main.c
  projects/clang400-import/sys/boot/i386/btx/lib/btxv86.h
  projects/clang400-import/sys/boot/i386/libi386/bioscd.c
  projects/clang400-import/sys/boot/i386/libi386/biosdisk.c
  projects/clang400-import/sys/boot/usb/storage/umass_loader.c
  projects/clang400-import/sys/boot/zfs/zfs.c
  projects/clang400-import/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace_xoroshiro128_plus.h
  projects/clang400-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c
  projects/clang400-import/sys/cddl/contrib/opensolaris/uts/common/sys/vnode.h
  projects/clang400-import/sys/compat/cloudabi/cloudabi_mem.c
  projects/clang400-import/sys/compat/cloudabi32/cloudabi32_proto.h
  projects/clang400-import/sys/compat/cloudabi32/cloudabi32_syscall.h
  projects/clang400-import/sys/compat/cloudabi32/cloudabi32_syscalls.c
  projects/clang400-import/sys/compat/cloudabi32/cloudabi32_sysent.c
  projects/clang400-import/sys/compat/cloudabi64/cloudabi64_proto.h
  projects/clang400-import/sys/compat/cloudabi64/cloudabi64_syscall.h
  projects/clang400-import/sys/compat/cloudabi64/cloudabi64_syscalls.c
  projects/clang400-import/sys/compat/cloudabi64/cloudabi64_sysent.c
  projects/clang400-import/sys/compat/freebsd32/freebsd32_misc.c
  projects/clang400-import/sys/compat/freebsd32/freebsd32_proto.h
  projects/clang400-import/sys/compat/freebsd32/freebsd32_syscall.h
  projects/clang400-import/sys/compat/freebsd32/freebsd32_syscalls.c
  projects/clang400-import/sys/compat/freebsd32/freebsd32_sysent.c
  projects/clang400-import/sys/compat/linux/linux_misc.c
  projects/clang400-import/sys/compat/linux/linux_mmap.c
  projects/clang400-import/sys/compat/svr4/svr4_proto.h
  projects/clang400-import/sys/compat/svr4/svr4_syscall.h
  projects/clang400-import/sys/compat/svr4/svr4_syscallnames.c
  projects/clang400-import/sys/compat/svr4/svr4_sysent.c
  projects/clang400-import/sys/conf/NOTES
  projects/clang400-import/sys/conf/files
  projects/clang400-import/sys/conf/files.amd64
  projects/clang400-import/sys/conf/files.arm
  projects/clang400-import/sys/conf/files.arm64
  projects/clang400-import/sys/conf/files.i386
  projects/clang400-import/sys/conf/files.mips
  projects/clang400-import/sys/conf/files.powerpc
  projects/clang400-import/sys/conf/files.riscv
  projects/clang400-import/sys/conf/files.sparc64
  projects/clang400-import/sys/conf/kern.opts.mk
  projects/clang400-import/sys/conf/options
  projects/clang400-import/sys/conf/options.amd64
  projects/clang400-import/sys/contrib/vchiq/interface/compat/vchi_bsd.h
  projects/clang400-import/sys/dev/acpica/acpi_cpu.c
  projects/clang400-import/sys/dev/ath/ath_hal/ar5210/ar5210.h
  projects/clang400-import/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c
  projects/clang400-import/sys/dev/ath/ath_hal/ar5210/ar5210_misc.c
  projects/clang400-import/sys/dev/ath/ath_hal/ar5211/ar5211.h
  projects/clang400-import/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c
  projects/clang400-import/sys/dev/ath/ath_hal/ar5211/ar5211_misc.c
  projects/clang400-import/sys/dev/ath/if_ath.c
  projects/clang400-import/sys/dev/ath/if_ath_beacon.c
  projects/clang400-import/sys/dev/ath/if_ath_debug.h
  projects/clang400-import/sys/dev/ath/if_athvar.h
  projects/clang400-import/sys/dev/cxgbe/t4_main.c
  projects/clang400-import/sys/dev/cxgbe/tom/t4_connect.c
  projects/clang400-import/sys/dev/cxgbe/tom/t4_listen.c
  projects/clang400-import/sys/dev/cxgbe/tom/t4_tom.c
  projects/clang400-import/sys/dev/cxgbe/tom/t4_tom.h
  projects/clang400-import/sys/dev/e1000/if_em.c
  projects/clang400-import/sys/dev/gxemul/disk/gxemul_disk.c
  projects/clang400-import/sys/dev/hpt27xx/hpt27xx_osm_bsd.c
  projects/clang400-import/sys/dev/hpt27xx/ldm.h
  projects/clang400-import/sys/dev/hptnr/hptnr_osm_bsd.c
  projects/clang400-import/sys/dev/hptnr/ldm.h
  projects/clang400-import/sys/dev/hptrr/hptrr_osm_bsd.c
  projects/clang400-import/sys/dev/hptrr/ldm.h
  projects/clang400-import/sys/dev/isp/isp.c
  projects/clang400-import/sys/dev/iwm/if_iwm.c
  projects/clang400-import/sys/dev/iwm/if_iwm_debug.h
  projects/clang400-import/sys/dev/iwm/if_iwm_mac_ctxt.c
  projects/clang400-import/sys/dev/iwm/if_iwm_pcie_trans.c
  projects/clang400-import/sys/dev/iwm/if_iwm_pcie_trans.h
  projects/clang400-import/sys/dev/iwm/if_iwm_phy_ctxt.c
  projects/clang400-import/sys/dev/iwm/if_iwm_phy_db.c
  projects/clang400-import/sys/dev/iwm/if_iwm_phy_db.h
  projects/clang400-import/sys/dev/iwm/if_iwm_scan.c
  projects/clang400-import/sys/dev/iwm/if_iwm_scan.h
  projects/clang400-import/sys/dev/iwm/if_iwm_util.c
  projects/clang400-import/sys/dev/iwm/if_iwm_util.h
  projects/clang400-import/sys/dev/iwm/if_iwmreg.h
  projects/clang400-import/sys/dev/iwm/if_iwmvar.h
  projects/clang400-import/sys/dev/ixl/i40e_adminq.c
  projects/clang400-import/sys/dev/ixl/i40e_adminq_cmd.h
  projects/clang400-import/sys/dev/ixl/i40e_common.c
  projects/clang400-import/sys/dev/ixl/i40e_devids.h
  projects/clang400-import/sys/dev/ixl/i40e_lan_hmc.c
  projects/clang400-import/sys/dev/ixl/i40e_nvm.c
  projects/clang400-import/sys/dev/ixl/i40e_osdep.c
  projects/clang400-import/sys/dev/ixl/i40e_osdep.h
  projects/clang400-import/sys/dev/ixl/i40e_prototype.h
  projects/clang400-import/sys/dev/ixl/i40e_type.h
  projects/clang400-import/sys/dev/ixl/i40e_virtchnl.h
  projects/clang400-import/sys/dev/ixl/if_ixl.c
  projects/clang400-import/sys/dev/ixl/if_ixlv.c
  projects/clang400-import/sys/dev/ixl/ixl.h
  projects/clang400-import/sys/dev/ixl/ixl_pf.h
  projects/clang400-import/sys/dev/ixl/ixl_pf_iov.c
  projects/clang400-import/sys/dev/ixl/ixl_pf_iov.h
  projects/clang400-import/sys/dev/ixl/ixl_pf_main.c
  projects/clang400-import/sys/dev/ixl/ixl_txrx.c
  projects/clang400-import/sys/dev/ixl/ixlv.h
  projects/clang400-import/sys/dev/ixl/ixlvc.c
  projects/clang400-import/sys/dev/mlx4/device.h
  projects/clang400-import/sys/dev/mlx4/mlx4_core/fw.h
  projects/clang400-import/sys/dev/mlx4/mlx4_core/mlx4_eq.c
  projects/clang400-import/sys/dev/mlx4/mlx4_core/mlx4_fw.c
  projects/clang400-import/sys/dev/mlx4/mlx4_core/mlx4_main.c
  projects/clang400-import/sys/dev/mlx4/mlx4_core/mlx4_profile.c
  projects/clang400-import/sys/dev/mlx4/mlx4_core/mlx4_qp.c
  projects/clang400-import/sys/dev/mlx4/mlx4_core/mlx4_resource_tracker.c
  projects/clang400-import/sys/dev/rt/if_rt.c
  projects/clang400-import/sys/dev/rt/if_rtreg.h
  projects/clang400-import/sys/dev/rt/if_rtvar.h
  projects/clang400-import/sys/dev/vt/vt_buf.c
  projects/clang400-import/sys/geom/journal/g_journal.c
  projects/clang400-import/sys/i386/ibcs2/ibcs2_proto.h
  projects/clang400-import/sys/i386/ibcs2/ibcs2_syscall.h
  projects/clang400-import/sys/i386/ibcs2/ibcs2_sysent.c
  projects/clang400-import/sys/i386/linux/linux_proto.h
  projects/clang400-import/sys/i386/linux/linux_syscall.h
  projects/clang400-import/sys/i386/linux/linux_syscalls.c
  projects/clang400-import/sys/i386/linux/linux_sysent.c
  projects/clang400-import/sys/kern/imgact_elf.c
  projects/clang400-import/sys/kern/init_main.c
  projects/clang400-import/sys/kern/init_sysent.c
  projects/clang400-import/sys/kern/kern_mutex.c
  projects/clang400-import/sys/kern/kern_rwlock.c
  projects/clang400-import/sys/kern/kern_sx.c
  projects/clang400-import/sys/kern/kern_thread.c
  projects/clang400-import/sys/kern/makesyscalls.sh
  projects/clang400-import/sys/kern/subr_intr.c
  projects/clang400-import/sys/kern/subr_lock.c
  projects/clang400-import/sys/kern/subr_sfbuf.c
  projects/clang400-import/sys/kern/syscalls.c
  projects/clang400-import/sys/kern/vfs_mountroot.c
  projects/clang400-import/sys/kern/vfs_vnops.c
  projects/clang400-import/sys/mips/conf/ONIONOMEGA.hints
  projects/clang400-import/sys/mips/include/atomic.h
  projects/clang400-import/sys/modules/Makefile
  projects/clang400-import/sys/modules/dtb/allwinner/Makefile
  projects/clang400-import/sys/modules/iwm/Makefile
  projects/clang400-import/sys/modules/iwmfw/iwm3160fw/Makefile
  projects/clang400-import/sys/modules/iwmfw/iwm7260fw/Makefile
  projects/clang400-import/sys/modules/iwmfw/iwm7265fw/Makefile
  projects/clang400-import/sys/modules/ixl/Makefile
  projects/clang400-import/sys/modules/ixlv/Makefile
  projects/clang400-import/sys/net/pfkeyv2.h
  projects/clang400-import/sys/net/route.h
  projects/clang400-import/sys/net80211/ieee80211_freebsd.c
  projects/clang400-import/sys/net80211/ieee80211_node.h
  projects/clang400-import/sys/net80211/ieee80211_output.c
  projects/clang400-import/sys/net80211/ieee80211_proto.h
  projects/clang400-import/sys/net80211/ieee80211_sta.c
  projects/clang400-import/sys/net80211/ieee80211_var.h
  projects/clang400-import/sys/netinet/in.h
  projects/clang400-import/sys/netinet/in_pcb.c
  projects/clang400-import/sys/netinet/in_pcb.h
  projects/clang400-import/sys/netinet/in_proto.c
  projects/clang400-import/sys/netinet/ip_input.c
  projects/clang400-import/sys/netinet/ip_output.c
  projects/clang400-import/sys/netinet/raw_ip.c
  projects/clang400-import/sys/netinet/sctp_input.c
  projects/clang400-import/sys/netinet/sctp_os_bsd.h
  projects/clang400-import/sys/netinet/sctp_pcb.c
  projects/clang400-import/sys/netinet/tcp_input.c
  projects/clang400-import/sys/netinet/tcp_output.c
  projects/clang400-import/sys/netinet/tcp_stacks/fastpath.c
  projects/clang400-import/sys/netinet/tcp_subr.c
  projects/clang400-import/sys/netinet/tcp_syncache.c
  projects/clang400-import/sys/netinet/tcp_usrreq.c
  projects/clang400-import/sys/netinet/tcp_var.h
  projects/clang400-import/sys/netinet/udp.h
  projects/clang400-import/sys/netinet/udp_usrreq.c
  projects/clang400-import/sys/netinet6/in6.h
  projects/clang400-import/sys/netinet6/in6_pcb.c
  projects/clang400-import/sys/netinet6/in6_pcb.h
  projects/clang400-import/sys/netinet6/in6_proto.c
  projects/clang400-import/sys/netinet6/ip6_forward.c
  projects/clang400-import/sys/netinet6/ip6_input.c
  projects/clang400-import/sys/netinet6/ip6_output.c
  projects/clang400-import/sys/netinet6/raw_ip6.c
  projects/clang400-import/sys/netinet6/sctp6_usrreq.c
  projects/clang400-import/sys/netinet6/udp6_usrreq.c
  projects/clang400-import/sys/netipsec/ipsec.c
  projects/clang400-import/sys/netipsec/ipsec.h
  projects/clang400-import/sys/netipsec/ipsec6.h
  projects/clang400-import/sys/netipsec/ipsec_input.c
  projects/clang400-import/sys/netipsec/ipsec_mbuf.c
  projects/clang400-import/sys/netipsec/ipsec_output.c
  projects/clang400-import/sys/netipsec/key.c
  projects/clang400-import/sys/netipsec/key.h
  projects/clang400-import/sys/netipsec/key_debug.c
  projects/clang400-import/sys/netipsec/key_debug.h
  projects/clang400-import/sys/netipsec/keydb.h
  projects/clang400-import/sys/netipsec/keysock.c
  projects/clang400-import/sys/netipsec/xform.h
  projects/clang400-import/sys/netipsec/xform_ah.c
  projects/clang400-import/sys/netipsec/xform_esp.c
  projects/clang400-import/sys/netipsec/xform_ipcomp.c
  projects/clang400-import/sys/netipsec/xform_tcp.c
  projects/clang400-import/sys/netpfil/ipfw/dn_heap.h
  projects/clang400-import/sys/sys/elf_generic.h
  projects/clang400-import/sys/sys/file.h
  projects/clang400-import/sys/sys/lock.h
  projects/clang400-import/sys/sys/lockstat.h
  projects/clang400-import/sys/sys/proc.h
  projects/clang400-import/sys/sys/rwlock.h
  projects/clang400-import/sys/sys/sdt.h
  projects/clang400-import/sys/sys/syscall.h
  projects/clang400-import/sys/sys/syscall.mk
  projects/clang400-import/sys/sys/sysproto.h
  projects/clang400-import/sys/ufs/ufs/dir.h
  projects/clang400-import/sys/ufs/ufs/dirhash.h
  projects/clang400-import/sys/ufs/ufs/ufs_lookup.c
  projects/clang400-import/sys/vm/vm_extern.h
  projects/clang400-import/sys/vm/vm_mmap.c
  projects/clang400-import/sys/x86/x86/cpu_machdep.c
  projects/clang400-import/tests/sys/fs/tmpfs/Makefile
  projects/clang400-import/tests/sys/netinet/fibs_test.sh
  projects/clang400-import/tests/sys/netinet/udp_dontroute.c
  projects/clang400-import/tests/sys/vm/mmap_test.c
  projects/clang400-import/tools/tools/nanobsd/embedded/common
  projects/clang400-import/usr.bin/Makefile
  projects/clang400-import/usr.bin/calendar/calendars/calendar.freebsd
  projects/clang400-import/usr.bin/enigma/enigma.1
  projects/clang400-import/usr.bin/gcore/elfcore.c
  projects/clang400-import/usr.bin/gzip/unxz.c
  projects/clang400-import/usr.bin/netstat/inet.c
  projects/clang400-import/usr.bin/sed/tests/sed2_test.sh
  projects/clang400-import/usr.bin/uniq/Makefile
  projects/clang400-import/usr.sbin/arp/arp.c
  projects/clang400-import/usr.sbin/bsdinstall/partedit/scripted.c
  projects/clang400-import/usr.sbin/bsdinstall/scripts/auto
  projects/clang400-import/usr.sbin/kldxref/ef.c
  projects/clang400-import/usr.sbin/makefs/ffs.c
  projects/clang400-import/usr.sbin/makefs/ffs/buf.c
  projects/clang400-import/usr.sbin/makefs/ffs/buf.h
  projects/clang400-import/usr.sbin/makefs/ffs/ffs_alloc.c
  projects/clang400-import/usr.sbin/makefs/ffs/ffs_balloc.c
  projects/clang400-import/usr.sbin/syslogd/syslogd.c
Directory Properties:
  projects/clang400-import/   (props changed)
  projects/clang400-import/cddl/   (props changed)
  projects/clang400-import/cddl/contrib/opensolaris/   (props changed)
  projects/clang400-import/contrib/byacc/   (props changed)
  projects/clang400-import/contrib/compiler-rt/   (props changed)
  projects/clang400-import/contrib/elftoolchain/   (props changed)
  projects/clang400-import/contrib/libarchive/   (props changed)
  projects/clang400-import/contrib/llvm/   (props changed)
  projects/clang400-import/contrib/llvm/tools/lld/   (props changed)
  projects/clang400-import/contrib/netbsd-tests/   (props changed)
  projects/clang400-import/contrib/netcat/   (props changed)
  projects/clang400-import/sys/cddl/contrib/opensolaris/   (props changed)

Modified: projects/clang400-import/ObsoleteFiles.inc
==============================================================================
--- projects/clang400-import/ObsoleteFiles.inc	Sat Feb 11 13:58:05 2017	(r313643)
+++ projects/clang400-import/ObsoleteFiles.inc	Sat Feb 11 14:04:18 2017	(r313644)
@@ -151,6 +151,13 @@ OLD_FILES+=usr/lib/clang/3.9.1/lib/freeb
 OLD_DIRS+=usr/lib/clang/3.9.1/lib/freebsd
 OLD_DIRS+=usr/lib/clang/3.9.1/lib
 OLD_DIRS+=usr/lib/clang/3.9.1
+# 20170206: remove bdes(1)
+OLD_FILES+=usr/bin/bdes
+OLD_FILES+=usr/lib/debug/usr/bin/bdes.debug
+OLD_FILES+=usr/share/man/man1/bdes.1.gz
+# 20170206: merged projects/ipsec
+OLD_FILES+=usr/include/netinet/ip_ipsec.h
+OLD_FILES+=usr/include/netinet6/ip6_ipsec.h
 # 20170128: remove pc98 support
 OLD_FILES+=usr/include/dev/ic/i8251.h
 OLD_FILES+=usr/include/dev/ic/i8255.h

Modified: projects/clang400-import/bin/ed/ed.1
==============================================================================
--- projects/clang400-import/bin/ed/ed.1	Sat Feb 11 13:58:05 2017	(r313643)
+++ projects/clang400-import/bin/ed/ed.1	Sat Feb 11 14:04:18 2017	(r313644)
@@ -1,5 +1,5 @@
 .\" $FreeBSD$
-.Dd October 2, 2016
+.Dd February 5, 2017
 .Dt ED 1
 .Os
 .Sh NAME
@@ -871,9 +871,6 @@ writes.
 If a newline alone is entered as the key, then encryption is
 turned off.
 Otherwise, echoing is disabled while a key is read.
-Encryption/decryption is done using the
-.Xr bdes 1
-algorithm.
 .It Pf (.+1)z n
 Scroll
 .Ar n
@@ -962,7 +959,6 @@ results in an error.
 If the command is entered a second time, it succeeds,
 but any changes to the buffer are lost.
 .Sh SEE ALSO
-.Xr bdes 1 ,
 .Xr sed 1 ,
 .Xr sh 1 ,
 .Xr vi 1 ,

Modified: projects/clang400-import/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c
==============================================================================
--- projects/clang400-import/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c	Sat Feb 11 13:58:05 2017	(r313643)
+++ projects/clang400-import/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c	Sat Feb 11 14:04:18 2017	(r313644)
@@ -261,7 +261,7 @@ printf("%s:%s(%d): DOODAD\n",__FUNCTION_
 			sym->st_value = 0;
 			sym->st_size = 0;
 			sym->st_info = ELF32_ST_INFO(STB_GLOBAL, STT_FUNC);
-			sym->st_other = ELF32_ST_VISIBILITY(STV_HIDDEN);
+			sym->st_other = 0;
 			sym->st_shndx = SHN_UNDEF;
 
 			rel++;
@@ -445,7 +445,7 @@ prepare_elf64(dtrace_hdl_t *dtp, const d
 			sym->st_value = 0;
 			sym->st_size = 0;
 			sym->st_info = GELF_ST_INFO(STB_GLOBAL, STT_FUNC);
-			sym->st_other = ELF64_ST_VISIBILITY(STV_HIDDEN);
+			sym->st_other = 0;
 			sym->st_shndx = SHN_UNDEF;
 
 			rel++;
@@ -1187,6 +1187,7 @@ process_obj(dtrace_hdl_t *dtp, const cha
 	static const char dt_enabled[] = "enabled";
 	static const char dt_symprefix[] = "$dtrace";
 	static const char dt_symfmt[] = "%s%ld.%s";
+	static const char dt_weaksymfmt[] = "%s.%s";
 	char probename[DTRACE_NAMELEN];
 	int fd, i, ndx, eprobe, mod = 0;
 	Elf *elf = NULL;
@@ -1548,44 +1549,46 @@ process_obj(dtrace_hdl_t *dtp, const cha
 
 			if (dt_symtab_lookup(data_sym, osym, isym,
 			    rela.r_offset, shdr_rel.sh_info, &fsym,
-			    (emachine1 == EM_PPC64), elf) != 0 &&
-			    dt_symtab_lookup(data_sym, 0, osym,
+			    (emachine1 == EM_PPC64), elf) == 0) {
+				if (fsym.st_name > data_str->d_size)
+					goto err;
+
+				r = s = (char *) data_str->d_buf + fsym.st_name;
+				assert(strstr(s, dt_symprefix) == s);
+				s = strchr(s, '.') + 1;
+			} else if (dt_symtab_lookup(data_sym, 0, osym,
 			    rela.r_offset, shdr_rel.sh_info, &fsym,
-			    (emachine1 == EM_PPC64), elf) != 0)
-				goto err;
-
-			if (fsym.st_name > data_str->d_size)
-				goto err;
+			    (emachine1 == EM_PPC64), elf) == 0) {
+				u_int bind;
 
-			assert(GELF_ST_TYPE(fsym.st_info) == STT_FUNC);
-
-			/*
-			 * If this is our first time encountering this symbol,
-			 * emit an alias.
-			 */
-			s = (char *)data_str->d_buf + fsym.st_name;
-
-			if (strncmp(s, dt_symprefix,
-			    sizeof (dt_symprefix) - 1) != 0) {
-				u_int bind = GELF_ST_BIND(fsym.st_info);
+				bind = GELF_ST_BIND(fsym.st_info) == STB_WEAK ?
+				    STB_WEAK : STB_GLOBAL;
 
+				/*
+				 * Emit an alias for the symbol. It needs to be
+				 * non-preemptible so that .SUNW_dof relocations
+				 * may be resolved at static link time. Aliases
+				 * of weak symbols are given a non-unique name
+				 * so that they may be merged by the linker.
+				 */
 				dsym = fsym;
 				dsym.st_name = istr;
-				dsym.st_info = GELF_ST_INFO(bind == STB_LOCAL ?
-				    STB_GLOBAL : bind, STT_FUNC);
+				dsym.st_info = GELF_ST_INFO(bind, STT_FUNC);
 				dsym.st_other = GELF_ST_VISIBILITY(STV_HIDDEN);
 				(void) gelf_update_sym(data_sym, isym, &dsym);
 				r = (char *) data_str->d_buf + istr;
-				istr += 1 + sprintf(r, dt_symfmt, dt_symprefix, objkey,
-				    s);
+				s = (char *) data_str->d_buf + fsym.st_name;
+				if (bind == STB_WEAK)
+					istr += sprintf(r, dt_weaksymfmt,
+					    dt_symprefix, s);
+				else
+					istr += sprintf(r, dt_symfmt,
+					    dt_symprefix, objkey, s);
+				istr++;
 				isym++;
 				assert(isym <= nsym);
-			} else {
-				r = s;
-				s = strchr(s, '.');
-				assert(s != NULL);
-				s++;
-			}
+			} else
+				goto err;
 
 			if ((pvp = dt_provider_lookup(dtp, pname)) == NULL) {
 				return (dt_link_error(dtp, elf, fd, bufs,

Modified: projects/clang400-import/contrib/byacc/test/yacc/expr.oxout.tab.c
==============================================================================
--- projects/clang400-import/contrib/byacc/test/yacc/expr.oxout.tab.c	Sat Feb 11 13:58:05 2017	(r313643)
+++ projects/clang400-import/contrib/byacc/test/yacc/expr.oxout.tab.c	Sat Feb 11 14:04:18 2017	(r313644)
@@ -178,7 +178,7 @@ extern int YYPARSE_DECL();
 #define ID 257
 #define CONST 258
 #define YYERRCODE 256
-typedef short YYINT;
+typedef int YYINT;
 static const YYINT expr.oxout_lhs[] = {                  -1,
     2,    0,    1,    3,    3,    3,    3,    3,    3,    3,
 };

Modified: projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
==============================================================================
--- projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc	Sat Feb 11 13:58:05 2017	(r313643)
+++ projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc	Sat Feb 11 14:04:18 2017	(r313644)
@@ -23,11 +23,6 @@
 #ifdef _FILE_OFFSET_BITS
 #undef _FILE_OFFSET_BITS
 #endif
-#if SANITIZER_FREEBSD
-#define _WANT_RTENTRY
-#include <sys/param.h>
-#include <sys/socketvar.h>
-#endif
 #include <arpa/inet.h>
 #include <dirent.h>
 #include <errno.h>
@@ -433,6 +428,7 @@ unsigned struct_ElfW_Phdr_sz = sizeof(El
   unsigned struct_input_absinfo_sz = sizeof(struct input_absinfo);
   unsigned struct_input_id_sz = sizeof(struct input_id);
   unsigned struct_mtpos_sz = sizeof(struct mtpos);
+  unsigned struct_rtentry_sz = sizeof(struct rtentry);
   unsigned struct_termio_sz = sizeof(struct termio);
   unsigned struct_vt_consize_sz = sizeof(struct vt_consize);
   unsigned struct_vt_sizes_sz = sizeof(struct vt_sizes);
@@ -452,7 +448,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(El
   unsigned struct_midi_info_sz = sizeof(struct midi_info);
   unsigned struct_mtget_sz = sizeof(struct mtget);
   unsigned struct_mtop_sz = sizeof(struct mtop);
-  unsigned struct_rtentry_sz = sizeof(struct rtentry);
   unsigned struct_sbi_instrument_sz = sizeof(struct sbi_instrument);
   unsigned struct_seq_event_rec_sz = sizeof(struct seq_event_rec);
   unsigned struct_synth_info_sz = sizeof(struct synth_info);

Modified: projects/clang400-import/contrib/elftoolchain/libelftc/libelftc_bfdtarget.c
==============================================================================
--- projects/clang400-import/contrib/elftoolchain/libelftc/libelftc_bfdtarget.c	Sat Feb 11 13:58:05 2017	(r313643)
+++ projects/clang400-import/contrib/elftoolchain/libelftc/libelftc_bfdtarget.c	Sat Feb 11 14:04:18 2017	(r313644)
@@ -127,6 +127,15 @@ struct _Elftc_Bfd_Target _libelftc_targe
 	},
 
 	{
+		.bt_name      = "elf32-powerpc-freebsd",
+		.bt_type      = ETF_ELF,
+		.bt_byteorder = ELFDATA2MSB,
+		.bt_elfclass  = ELFCLASS32,
+		.bt_machine   = EM_PPC,
+		.bt_osabi     = ELFOSABI_FREEBSD,
+	},
+
+	{
 		.bt_name      = "elf32-powerpcle",
 		.bt_type      = ETF_ELF,
 		.bt_byteorder = ELFDATA2LSB,
@@ -290,6 +299,15 @@ struct _Elftc_Bfd_Target _libelftc_targe
 	},
 
 	{
+		.bt_name      = "elf64-powerpc-freebsd",
+		.bt_type      = ETF_ELF,
+		.bt_byteorder = ELFDATA2MSB,
+		.bt_elfclass  = ELFCLASS64,
+		.bt_machine   = EM_PPC64,
+		.bt_osabi     = ELFOSABI_FREEBSD,
+	},
+
+	{
 		.bt_name      = "elf64-powerpcle",
 		.bt_type      = ETF_ELF,
 		.bt_byteorder = ELFDATA2LSB,

Modified: projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_cpio.c
==============================================================================
--- projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_cpio.c	Sat Feb 11 13:58:05 2017	(r313643)
+++ projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_cpio.c	Sat Feb 11 14:04:18 2017	(r313644)
@@ -356,7 +356,7 @@ archive_read_format_cpio_read_header(str
     struct archive_entry *entry)
 {
 	struct cpio *cpio;
-	const void *h;
+	const void *h, *hl;
 	struct archive_string_conv *sconv;
 	size_t namelength;
 	size_t name_pad;
@@ -406,11 +406,11 @@ archive_read_format_cpio_read_header(str
 			    "Rejecting malformed cpio archive: symlink contents exceed 1 megabyte");
 			return (ARCHIVE_FATAL);
 		}
-		h = __archive_read_ahead(a,
+		hl = __archive_read_ahead(a,
 			(size_t)cpio->entry_bytes_remaining, NULL);
-		if (h == NULL)
+		if (hl == NULL)
 			return (ARCHIVE_FATAL);
-		if (archive_entry_copy_symlink_l(entry, (const char *)h,
+		if (archive_entry_copy_symlink_l(entry, (const char *)hl,
 		    (size_t)cpio->entry_bytes_remaining, sconv) != 0) {
 			if (errno == ENOMEM) {
 				archive_set_error(&a->archive, ENOMEM,
@@ -434,7 +434,7 @@ archive_read_format_cpio_read_header(str
 	 * header.  XXX */
 
 	/* Compare name to "TRAILER!!!" to test for end-of-archive. */
-	if (namelength == 11 && memcmp((const char *)h, "TRAILER!!!",
+	if (namelength == 11 && strncmp((const char *)h, "TRAILER!!!",
 	    11) == 0) {
 		/* TODO: Store file location of start of block. */
 		archive_clear_error(&a->archive);

Modified: projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_mtree.c
==============================================================================
--- projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_mtree.c	Sat Feb 11 13:58:05 2017	(r313643)
+++ projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_mtree.c	Sat Feb 11 14:04:18 2017	(r313644)
@@ -1608,8 +1608,11 @@ parse_keyword(struct archive_read *a, st
 			if (*val == '.') {
 				++val;
 				ns = (long)mtree_atol10(&val);
-			} else
-				ns = 0;
+				if (ns < 0)
+					ns = 0;
+				else if (ns > 999999999)
+					ns = 999999999;
+			}
 			if (m > my_time_t_max)
 				m = my_time_t_max;
 			else if (m < my_time_t_min)

Modified: projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_warc.c
==============================================================================
--- projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_warc.c	Sat Feb 11 13:58:05 2017	(r313643)
+++ projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_warc.c	Sat Feb 11 14:04:18 2017	(r313644)
@@ -134,8 +134,8 @@ static ssize_t _warc_rdlen(const char *b
 static time_t _warc_rdrtm(const char *buf, size_t bsz);
 static time_t _warc_rdmtm(const char *buf, size_t bsz);
 static const char *_warc_find_eoh(const char *buf, size_t bsz);
+static const char *_warc_find_eol(const char *buf, size_t bsz);
 
-
 int
 archive_read_support_format_warc(struct archive *_a)
 {
@@ -198,8 +198,8 @@ _warc_bid(struct archive_read *a, int be
 
 	/* otherwise snarf the record's version number */
 	ver = _warc_rdver(hdr, nrd);
-	if (ver == 0U || ver > 10000U) {
-		/* oh oh oh, best not to wager ... */
+	if (ver < 1200U || ver > 10000U) {
+		/* we only support WARC 0.12 to 1.0 */
 		return -1;
 	}
 
@@ -254,23 +254,32 @@ start_over:
 			&a->archive, ARCHIVE_ERRNO_MISC,
 			"Bad record header");
 		return (ARCHIVE_FATAL);
-	} else if ((ver = _warc_rdver(buf, eoh - buf)) > 10000U) {
-		/* nawww, I wish they promised backward compatibility
-		 * anyhoo, in their infinite wisdom the 28500 guys might
-		 * come up with something we can't possibly handle so
-		 * best end things here */
+	}
+	ver = _warc_rdver(buf, eoh - buf);
+	/* we currently support WARC 0.12 to 1.0 */
+	if (ver == 0U) {
 		archive_set_error(
 			&a->archive, ARCHIVE_ERRNO_MISC,
-			"Unsupported record version");
+			"Invalid record version");
 		return (ARCHIVE_FATAL);
-	} else if ((cntlen = _warc_rdlen(buf, eoh - buf)) < 0) {
+	} else if (ver < 1200U || ver > 10000U) {
+		archive_set_error(
+			&a->archive, ARCHIVE_ERRNO_MISC,
+			"Unsupported record version: %u.%u",
+			ver / 10000, (ver % 10000) / 100);
+		return (ARCHIVE_FATAL);
+	}
+	cntlen = _warc_rdlen(buf, eoh - buf);
+	if (cntlen < 0) {
 		/* nightmare!  the specs say content-length is mandatory
 		 * so I don't feel overly bad stopping the reader here */
 		archive_set_error(
 			&a->archive, EINVAL,
 			"Bad content length");
 		return (ARCHIVE_FATAL);
-	} else if ((rtime = _warc_rdrtm(buf, eoh - buf)) == (time_t)-1) {
+	}
+	rtime = _warc_rdrtm(buf, eoh - buf);
+	if (rtime == (time_t)-1) {
 		/* record time is mandatory as per WARC/1.0,
 		 * so just barf here, fast and loud */
 		archive_set_error(
@@ -284,7 +293,7 @@ start_over:
 	if (ver != w->pver) {
 		/* stringify this entry's version */
 		archive_string_sprintf(&w->sver,
-			"WARC/%u.%u", ver / 10000, ver % 10000);
+			"WARC/%u.%u", ver / 10000, (ver % 10000) / 100);
 		/* remember the version */
 		w->pver = ver;
 	}
@@ -577,51 +586,41 @@ out:
 }
 
 static unsigned int
-_warc_rdver(const char buf[10], size_t bsz)
+_warc_rdver(const char *buf, size_t bsz)
 {
 	static const char magic[] = "WARC/";
-	unsigned int ver;
-
-	(void)bsz; /* UNUSED */
+	unsigned int ver = 0U;
+	unsigned int end = 0U;
 
-	if (memcmp(buf, magic, sizeof(magic) - 1U) != 0) {
-		/* nope */
-		return 99999U;
+	if (bsz < 12 || memcmp(buf, magic, sizeof(magic) - 1U) != 0) {
+		/* buffer too small or invalid magic */
+		return ver;
 	}
 	/* looks good so far, read the version number for a laugh */
 	buf += sizeof(magic) - 1U;
-	/* most common case gets a quick-check here */
-	if (memcmp(buf, "1.0\r\n", 5U) == 0) {
-		ver = 10000U;
-	} else {
-		switch (*buf) {
-		case '0':
-		case '1':
-		case '2':
-		case '3':
-		case '4':
-		case '5':
-		case '6':
-		case '7':
-		case '8':
-			if (buf[1U] == '.') {
-				char *on;
-
-				/* set up major version */
-				ver = (buf[0U] - '0') * 10000U;
-				/* minor version, anyone? */
-				ver += (strtol(buf + 2U, &on, 10)) * 100U;
-				/* don't parse anything else */
-				if (on > buf + 2U) {
-					break;
-				}
-			}
-			/* FALLTHROUGH */
-		case '9':
-		default:
-			/* just make the version ridiculously high */
-			ver = 999999U;
-			break;
+
+	if (isdigit(buf[0U]) && (buf[1U] == '.') && isdigit(buf[2U])) {
+		/* we support a maximum of 2 digits in the minor version */
+		if (isdigit(buf[3U]))
+			end = 1U;
+		/* set up major version */
+		ver = (buf[0U] - '0') * 10000U;
+		/* set up minor version */
+		if (end == 1U) {
+			ver += (buf[2U] - '0') * 1000U;
+			ver += (buf[3U] - '0') * 100U;
+		} else
+			ver += (buf[2U] - '0') * 100U;
+		/*
+		 * WARC below version 0.12 has a space-separated header
+		 * WARC 0.12 and above terminates the version with a CRLF
+		 */
+		if (ver >= 1200U) {
+			if (memcmp(buf + 3U + end, "\r\n", 2U) != 0)
+				ver = 0U;
+		} else if (ver < 1200U) {
+			if (!isblank(*(buf + 3U + end)))
+				ver = 0U;
 		}
 	}
 	return ver;
@@ -631,34 +630,27 @@ static unsigned int
 _warc_rdtyp(const char *buf, size_t bsz)
 {
 	static const char _key[] = "\r\nWARC-Type:";
-	const char *const eob = buf + bsz;
-	const char *val;
+	const char *val, *eol;
 
 	if ((val = xmemmem(buf, bsz, _key, sizeof(_key) - 1U)) == NULL) {
 		/* no bother */
 		return WT_NONE;
 	}
-	/* overread whitespace */
 	val += sizeof(_key) - 1U;
-	while (val < eob && isspace((unsigned char)*val))
+	if ((eol = _warc_find_eol(val, buf + bsz - val)) == NULL) {
+		/* no end of line */
+		return WT_NONE;
+	}
+
+	/* overread whitespace */
+	while (val < eol && isblank((unsigned char)*val))
 		++val;
 
-	if (val + 8U > eob) {
-		;
-	} else if (memcmp(val, "resource", 8U) == 0) {
-		return WT_RSRC;
-	} else if (memcmp(val, "warcinfo", 8U) == 0) {
-		return WT_INFO;
-	} else if (memcmp(val, "metadata", 8U) == 0) {
-		return WT_META;
-	} else if (memcmp(val, "request", 7U) == 0) {
-		return WT_REQ;
-	} else if (memcmp(val, "response", 8U) == 0) {
-		return WT_RSP;
-	} else if (memcmp(val, "conversi", 8U) == 0) {
-		return WT_CONV;
-	} else if (memcmp(val, "continua", 8U) == 0) {
-		return WT_CONT;
+	if (val + 8U == eol) {
+		if (memcmp(val, "resource", 8U) == 0)
+			return WT_RSRC;
+		else if (memcmp(val, "response", 8U) == 0)
+			return WT_RSP;
 	}
 	return WT_NONE;
 }
@@ -667,10 +659,7 @@ static warc_string_t
 _warc_rduri(const char *buf, size_t bsz)
 {
 	static const char _key[] = "\r\nWARC-Target-URI:";
-	const char *const eob = buf + bsz;
-	const char *val;
-	const char *uri;
-	const char *eol;
+	const char *val, *uri, *eol, *p;
 	warc_string_t res = {0U, NULL};
 
 	if ((val = xmemmem(buf, bsz, _key, sizeof(_key) - 1U)) == NULL) {
@@ -679,25 +668,32 @@ _warc_rduri(const char *buf, size_t bsz)
 	}
 	/* overread whitespace */
 	val += sizeof(_key) - 1U;
-	while (val < eob && isspace((unsigned char)*val))
+	if ((eol = _warc_find_eol(val, buf + bsz - val)) == NULL) {
+		/* no end of line */
+		return res;
+	}
+
+	while (val < eol && isblank((unsigned char)*val))
 		++val;
 
 	/* overread URL designators */
-	if ((uri = xmemmem(val, eob - val, "://", 3U)) == NULL) {
+	if ((uri = xmemmem(val, eol - val, "://", 3U)) == NULL) {
 		/* not touching that! */
 		return res;
-	} else if ((eol = memchr(uri, '\n', eob - uri)) == NULL) {
-		/* no end of line? :O */
-		return res;
 	}
 
-	/* massage uri to point to after :// */
+	/* spaces inside uri are not allowed, CRLF should follow */
+	for (p = val; p < eol; p++) {
+		if (isspace(*p))
+			return res;
+	}
+
+	/* there must be at least space for ftp */
+	if (uri < (val + 3U))
+		return res;
+
+	/* move uri to point to after :// */
 	uri += 3U;
-	/* also massage eol to point to the first whitespace
-	 * after the last non-whitespace character before
-	 * the end of the line */
-	while (eol > uri && isspace((unsigned char)eol[-1]))
-		--eol;
 
 	/* now then, inspect the URI */
 	if (memcmp(val, "file", 4U) == 0) {
@@ -720,7 +716,7 @@ static ssize_t
 _warc_rdlen(const char *buf, size_t bsz)
 {
 	static const char _key[] = "\r\nContent-Length:";
-	const char *val;
+	const char *val, *eol;
 	char *on = NULL;
 	long int len;
 
@@ -728,14 +724,24 @@ _warc_rdlen(const char *buf, size_t bsz)
 		/* no bother */
 		return -1;
 	}
-
-	/* strtol kindly overreads whitespace for us, so use that */
 	val += sizeof(_key) - 1U;
+	if ((eol = _warc_find_eol(val, buf + bsz - val)) == NULL) {
+		/* no end of line */
+		return -1;
+	}
+
+	/* skip leading whitespace */
+	while (val < eol && isblank(*val))
+		val++;
+	/* there must be at least one digit */
+	if (!isdigit(*val))
+		return -1;
 	len = strtol(val, &on, 10);
-	if (on == NULL || !isspace((unsigned char)*on)) {
-		/* hm, can we trust that number?  Best not. */
+	if (on != eol) {
+		/* line must end here */
 		return -1;
 	}
+
 	return (size_t)len;
 }
 
@@ -743,7 +749,7 @@ static time_t
 _warc_rdrtm(const char *buf, size_t bsz)
 {
 	static const char _key[] = "\r\nWARC-Date:";
-	const char *val;
+	const char *val, *eol;
 	char *on = NULL;
 	time_t res;
 
@@ -751,13 +757,17 @@ _warc_rdrtm(const char *buf, size_t bsz)
 		/* no bother */
 		return (time_t)-1;
 	}
+	val += sizeof(_key) - 1U;
+	if ((eol = _warc_find_eol(val, buf + bsz - val)) == NULL ) {
+		/* no end of line */
+		return -1;
+	}
 
 	/* xstrpisotime() kindly overreads whitespace for us, so use that */
-	val += sizeof(_key) - 1U;
 	res = xstrpisotime(val, &on);
-	if (on == NULL || !isspace((unsigned char)*on)) {
-		/* hm, can we trust that number?  Best not. */
-		return (time_t)-1;
+	if (on != eol) {
+		/* line must end here */
+		return -1;
 	}
 	return res;
 }
@@ -766,7 +776,7 @@ static time_t
 _warc_rdmtm(const char *buf, size_t bsz)
 {
 	static const char _key[] = "\r\nLast-Modified:";
-	const char *val;
+	const char *val, *eol;
 	char *on = NULL;
 	time_t res;
 
@@ -774,13 +784,17 @@ _warc_rdmtm(const char *buf, size_t bsz)
 		/* no bother */
 		return (time_t)-1;
 	}
+	val += sizeof(_key) - 1U;
+	if ((eol = _warc_find_eol(val, buf + bsz - val)) == NULL ) {
+		/* no end of line */
+		return -1;
+	}
 
 	/* xstrpisotime() kindly overreads whitespace for us, so use that */
-	val += sizeof(_key) - 1U;
 	res = xstrpisotime(val, &on);
-	if (on == NULL || !isspace((unsigned char)*on)) {
-		/* hm, can we trust that number?  Best not. */
-		return (time_t)-1;
+	if (on != eol) {
+		/* line must end here */
+		return -1;
 	}
 	return res;
 }
@@ -797,4 +811,12 @@ _warc_find_eoh(const char *buf, size_t b
 	return hit;
 }
 
+static const char*
+_warc_find_eol(const char *buf, size_t bsz)
+{
+	static const char _marker[] = "\r\n";
+	const char *hit = xmemmem(buf, bsz, _marker, sizeof(_marker) - 1U);
+
+	return hit;
+}
 /* archive_read_support_format_warc.c ends here */

Modified: projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_xar.c
==============================================================================
--- projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_xar.c	Sat Feb 11 13:58:05 2017	(r313643)
+++ projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_xar.c	Sat Feb 11 14:04:18 2017	(r313644)
@@ -394,6 +394,7 @@ static void	checksum_update(struct archi
 		    size_t, const void *, size_t);
 static int	checksum_final(struct archive_read *, const void *,
 		    size_t, const void *, size_t);
+static void	checksum_cleanup(struct archive_read *);
 static int	decompression_init(struct archive_read *, enum enctype);
 static int	decompress(struct archive_read *, const void **,
 		    size_t *, const void *, size_t *);
@@ -923,6 +924,7 @@ xar_cleanup(struct archive_read *a)
 	int r;
 
 	xar = (struct xar *)(a->format->data);
+	checksum_cleanup(a);
 	r = decompression_cleanup(a);
 	hdlink = xar->hdlink_list;
 	while (hdlink != NULL) {
@@ -1720,6 +1722,16 @@ decompression_cleanup(struct archive_rea
 }
 
 static void
+checksum_cleanup(struct archive_read *a) {
+	struct xar *xar;
+
+	xar = (struct xar *)(a->format->data);
+
+	_checksum_final(&(xar->a_sumwrk), NULL, 0);
+	_checksum_final(&(xar->e_sumwrk), NULL, 0);
+}
+
+static void
 xmlattr_cleanup(struct xmlattr_list *list)
 {
 	struct xmlattr *attr, *next;

Modified: projects/clang400-import/contrib/netbsd-tests/dev/audio/t_pad_output.bz2.uue
==============================================================================
--- projects/clang400-import/contrib/netbsd-tests/dev/audio/t_pad_output.bz2.uue	Sat Feb 11 13:58:05 2017	(r313643)
+++ projects/clang400-import/contrib/netbsd-tests/dev/audio/t_pad_output.bz2.uue	Sat Feb 11 14:04:18 2017	(r313644)
@@ -1,1040 +1,1035 @@
 begin 644 t_pad_output.bz2
-M0EIH.3%!629360S39&D`<XA_____________________________________
-M________X)S;?=A%%?,RM9MH`$E-`-;8#;;8#6E)9>>;SS,K;%2@`2::%N=I
-MVR86:*KOO>O99MMM-XP&76N]W/6T=[SW@<[G'3H:Z'K1F?=WON]WO>]S=WN^
-ML]W>^WN[[W;V\VW>[OMN^WW;;3+3/=TK*Y5E4LVE#-E5H:"S530#1IB5LS:V
-MJHK6!JVA2M9LR*V:MFUJ55JBM:Q4*EL,5$`50)L6M11:P55:V%+55:U5C!I3
-M1L,BU5-5JV-%F55-5EL;:@5:K+%5:S--;5-;:M5MJVZZ[:V]>[:7NTN>][;>
-M[O/MO-M[NYOM]WN^[K69ON\^][WO(Q/N8ZZ![N''=O3VP[V/>RCRX[0VJ7FW
-M-FQJ%7-G0R;9MB*N\G'>PTM*5H%``-LF2NKF=-LQFU*50444`446P`&FV06V
-MUE17-HDJB[#--!MBC$-1L#;!MF@JALFIM-IE3-30"JH#2D`$`!,F$R83(830
-M--,AD!H&AH`R#$9`:&AHR`Q-`,":8)D8C`3)@FF":8@P"9,$,"&)D#0)@$&D
-MD$TPF@`)@```````-`"8`)@"8F$R8`F3$`)@`:&F@),R83":8$Q---,"8"8(
-M,:1D#!,H--)2:$$VF##`"#329,1A-!,Q$:F)A-#$-3TT4>F4]">IZ0&U#3:@
-MVC4#`-(/4#3T@#30&@/1/1#0#1D``#$-!HR:-!)I2E$H&3TVPVH\BE/QIHC1
-M3,34T4]IE-I0WD4?IJ33T0`R:&T0`9!IM0&CRC(`!HT&AZ@`&@``````````
-M``TI$#1IHIFU,F`T:F*>"G@$F:3TP"-3T9&"&FT*/3"3R,33)I/":&C(T&(T
-M4\T-`GIDR-,$T:GIJ>1B831II/(&D\C4S(::8F)HU-02:E)*!#5/%/>V,B-H
-MB&"-#(TF(Q38BFVE3_48AM!-(]4_*GJ:>4>-4V*'IIE/RFIY-3RFU#$S4WJA
-MH](](]&H::/1/4:>IZFF:0/2!DVIZAH-J9`>4!H:?.1!_\Q4%G*&;V<K+2:B
-M#-=F:>=R9PT='B<1$&>Y2K7;'1<S<U!I%6/'`QC'&!$""X/]V/5\G9WG^^S[
-MT8!$`D`96HT$[KU3.RQ]H1DC%%$1--*"?K_K_L?RO_GZ7^KZOYW;=N=Q$%%(
-M+/21/#(VN>?;<MJM`B1$0'QZGCKO:O7_KPT*>`L!0$`X6":FH$!$6!]N]*1&
-M`>)4`P7%5$G@V]E5TZFK&($]>M7]W^OSGV?[[OM^+<I,Z+M=;I-766`];EA(
-M3\\&0+[8)=[Y>/=V,U7MZH"`7P^J9Y.4XK0O)T]ML=,$]>C2&`+KJIP7B%<G
-MIZ6"=\I"7.(D2$"9.7QCWB8!6)5E8;+5F?ZI-I<._LLU7*H(A'M]1VM=&Z'<
-MM%N0#J#6*R?%;:908&RHH34(@"]*2&:1G;Q?WYYUP%E2(@\E"WEXC:)^AFY*
-M"V/%2"!1ZR#N-2&W@1/`>-.A(A^%=L6PJT7:EU&#0$"\C_*-.JQ+2^W+*<`+
-M[7C&UXHH9B@ULW[I"-T:`@7%]:`B#,.N],:_+:SN\[:H0"]MG;I((-):D9I@
-MEY+M.9\`=/Z'Y5'G)UUBI`$7\=-,6\WB0M^K1(IGM("()_S^&EB%H$,(T:^:
-MUJXAFG+?)LZ=2(B>DJ4`+\#0+:GW.!F9[Y0"67\4D'5N=?C<2IH"`B?%D\H0
-MGG&<U$6JZ"MKF>E/!&")G6)];))G]L??MF>!#;?]*:P<1'/-^\77VA0`%Z]R
-ME-$,ZC*8W\V[=O*,`"`LNLU]SC!;I4"KG=/S#X!?7Y]N/BU*2;"=,Y6JXJ7(
-M\0$Q,LORY367(RS2IZ5>L>\@(%\(7%0'&&F:-KRF&'2:+-/TMFDH`&<+FRQ]
-M<IGV44@6#9TX"-:T$Y%0M=)96!4T8(<=/^652ZJ2A6^.;;S%)FK1@@/X9Q=@
-M(>2/+>LL58^19Q"!7L,11[)RREOK.2B(B\T[XU`#;W%RR(G[K(5$X17%G>A!
-M5%N-\(U<88J#4CQIX2R!95&T"Z:FJFOLXD$6)JV@!<T3-KJ-HTMC@87CT)TB
-M*J]FW0&`38'0\>^C#B[K7^`23@`L&RH8#R4AD93YM`Q3];.J--PN6QM[K)JH
-M(O;C-[U@O)%QFS:U:_'AEV+O+ML-FTP(.3(!E'S>H'.(0@#>MJ$"'FJI*?4K
-MJ(^8_>2M:QGP"F_OWH5:].!EVM>UB'TW=R@(I#\VT2P%KT]_6]DV]DSX*:$B
-M$\P$5TX-N@FLFP9/6Z#&OW(]F)2R!;.(FW!F6.80[RE%T=?O6H/*`%S(]JQ[
-MR7,>5IA_&NS_C[WLV",$5K/Y3CA9I<=R)5=2;=$"#3;X4$!A3SS<4MFG&3LO
-M(C(AK8$A:MCVU5]2F6(!3!"(X/?9Y:@`ZT))M.B\B78]MY1`BX"?4#9]!56Z
-M)(%K(4E%,HP1?M]'(<M'M'RM4SY$-*"/CI,JNSL#_3,S:Q7QT`O['-[B??UR
-M.0J-J"64EOZ")$E6GTJ.(S'2(9A1[A"3H,]OVI!WENC_:($%9:S/($2!&27F
-M=E+6YJ$;F*XDT@@+E:B0$R_/;5<8KN[X87?;PTH(I[RF!9ZIRCM"1\*Q0B30
-M)`0]^YI)3+CZ>C@/O^H")>Y@&LC0T?.?#9A!9W#]194/2$B@/0R$+"9F]7%,
-M*1BYC&C`#LQ@*O)X;[/:@Q((+?>_Z#+K*>EX6<1R+?T&:\=DJ!\#0UPA_,^E
-MKZ<2Y.D"5H,L:04L5`\;Q^3FH0!$N<-%2!`?/ZS>I:''+V&_V'MP$I)`W;W0
-M<("[Y"-384_['P.#[FK55I#5</3;EMY4\W\^9_"[7[54(A*R?T%W:1EK6:Y[
-M">ZVMM[DH!4-F!?_"G;WQ+<>IO:.A1D`8W/]@0M8>%BW/(+<-&H2+N=9T(HE
-M8\P<XK$H'SL!""$808X%/B<P[8P[Q]-<_N0=4D$.Q!`DEUQ'1DCH3-ZF@V!#
-M@JE?O+5#H*[@F9Y"`,+:9JP`_,\PQ6@)X?SY$F8?"VP=X=K\=CF/:?!/G'ZG
-M4`E6'7M<%DV&9:$((?2PL2Z62Q^Q6KX\"WFSW!"WZC?7]+:LW`0`!3E._'27
-M;()&=S.4RFUCCY6W?!*KW6HGKG^?862W8T"00$5%7P;%M#Z!QAQ:KH4^H/`"
-MP@ES?4Y?F7?+C-,[,K8E31$!JJ[@S0)=\FJ8#<OIN+[(NB]R,@&WTN\+T2%1
-MRU"PR>HC>;Y(&31@"8(L>$>5^/YP&:Y@'%$18BM3_NBBG3?7>!ZKL^1-#L?/
-MI`&OUVRZ_+Y/!HD`*"]TF31QJ9YV"1#B\R/?U",@5[-@I;.4&_W%90)LS8U+
-M`,#YI0(2X6ML1-K;[$WRF]A\#Y!IMEPB$/?B%:LF@SS8@#$1(96`NH:/6&-`
-M!:=-[T<("%]0_N*VT8X/5G4]+'5W>2@57]UECJP$[[:29VK4&^<0`O3I=VF?
-MKR@)6"J[:JVG6:T`(X0_F^G'Y[@#IX#*^6`L@0>X[PUGR@1M8&GY?GK+(:KI
-M_U,(@U>K55\YIW+R5A#A_I*4^UE*=FQJ$`;GLX^GP`%VFAMHQ<YM/D+GA>LA
-MVW-FEG)_<:*\3(P705=2"A.U_T1]?;OU(#\LK5$7LA$\:N3_/7'@3_L2$4!K
-MJ6$S1,[?R[77H`%;Q,<;P<]WB#C?6PY9\/V7UF*!4\2`M<&]Z=&$0`^[XVX`
-MP>#"!:ZO,V=QZ_BB!8WP5-F0XF%^[*`J8WXH"<]L!5-</9[HZ6PTFO\0)AXO
-MDS3O-N,];XM$0Q%N0S7:2,FEH[^H0`,"+IERF@W1-/3/``\LXT%'>)?B<UTZ
-MV15$R,@_KULJ[L%N'@]`+&4^?P!$0Z(+)XV;VJ^\ZY=V_:P3)"*C(+:U(.'4
-M.A6YU2"N#&7B,!OWTNN%2<(L1V?!YB'\])UFPY%YE4`'CKX!_`'*_7M@K)A9
-MAS[1""])62%G]5YHCQ/BL\D*[6<\DW>8P\`,YVUF%`M%7EW:-*$+>N64?@;#
-M6+FLFTL@'_E2321+T;G=ZYGMTB0'"&+[8**(!6Z&96X#]H(:2NZ%,2"$GFN,
-M1!^?3G/A^`L*^I@/+HZ6G:DLBAZ_E30+MJ_"3C6J2\[8"57T0*Q`"%5OI.Y.
-M:BNS&C[E[K4@%]-&1?WDI(=$YD<?>ICRZ]&1/M.`*SX?V1W6>I79`5A)E)=C
-MC=S#.CUY].X/Z]T\1.%B=8L[(9KD:Y=]^`D`AJ=I:%X(.1-A<7W`!S-]'$IU
-M%-,2`BN_0O@K[OJ'6R\VPY5,3$:,BZ"HE]\AB;53X3@H[X^"Q3E2>4%#6-2:
-M>^%"&#=/Z`@,;KO?/M\""U$)66_)4NJ?&F2ZTN,QPSL<'S\O.`#\I/;_'\T\
-M\-UI3`?SYZ:\L#\%AH`3:"O?XZN.EK961YEOS49"&]N%ZP3[JVOQ(P=(?G.6
-M@"M:W;)3<$\42B["?<D!>O/^=:1F#6]NZ$72@W50#Y79>"J>K0,*`@N)KT"+
-MZ#V_U(:?,N,'9\5&MI`$7^7$@&/KSB6TZC+HW]3$;[NL`N)UQ1FMLA(2OD\,
-MU-4^]`5TS)K^W:"%9?8I@#2TGV8,J0KY?V?HZW)%R@*_M:XB%7\[7[?P:+XG
-M]Q&X;\NX'>`&K2Z:_Q+0S=C1O(G$9#64P!8K][WE]U4>TJFLWGKV#V18-2@R
-M8+PTOK0G!;/I"G/^B\0/-;"WIP@_PRA]#,0B6+V)K?EQ=JK2J^C(DC[`S_#X
-MY"3TWE]1\OSVL0(N;%("2?M9ZI%FL[<HB]5+";IQ`C<Q8VU&='MB>0`%"TQ]
-MLWN_%Q7@Q^2]DUETH`>JNY1%N_++1LROZ>56$Q,7?.DD3?D:TBT$%+8?@O=,
-MI("V5)HR`5A@RVJ<H=;Y*`C+(A/6^JGSCI4Y2[+TY_$J^=OCQ3O?_GXV0)%7
-M8G8UBIWG7`L_NKY=)("RZ$I(1K_J"*YJJ!-D>DL_?A(029R?[YENFJ2&8AT%
-MAH6LF-70$`OWGS?-)?`A8JG!J?%BHFQ9=TR**BD@F:4QF(@.L`,57(WQ!&7*
-MGC:=$3`_\4$,7F=+;N-@^ORPA65Q4U)$1_U9=>^G^O)/=\V,['3Z#NE@24'X
-M=@U7X)-@E=Q@E'!@5_O2O$2"(_!93W=VB(#"F-EGAUAGK"PI/7HT9!#`D5[Y
-M\+'#?L&`?+99C>0W1!!Z[=:J17*V6,CT(^FX5>=WB+G?#?J>A=T@<1CRU($&
-M2/KW2SC-%H(8X0R]O``AJ6;Q6%^K*1B208.WI0!J4>@[T4Z6:D(9;.)+M_1-
-MD"V&FA!;[J;:O3>;"4Q<%,4Y9Y.."\W*KZ:-!PZ3;$/=\"N4*'#KN#<9_N@B
-MQ2=Z3G3EXJ/09W=Q:+STH`I>+,97UO,$<R&;<_0O'QW32(Q7&.H<?B@H6GTF
-MMYUP_-E9;WKGAII%!=+GR<5L.\`)'ZHLR%CN`I%8`ACZ+OP6W'.8.U`\'%"0
-M%X8"O\\>WD!()PS]%F:D('H[F.JU@(>YN9OAUH:$_GW-1*(O^MOQS@06;P87
-M:-R?;K+]`04'98(@+A!K949?(_%S,4L9H$=7%`"GS.&9\=+H:;/X_;W^YMH<
-M"`NS<HM5,X?)TD^Y=$5RI]B^DSJP?4(5_`$:ITEJFM`/`7'UBP!KJO;/[[DI
-M'?H!E$YLR`+<">4-HBV;9?TX0@D-MV//U([Z4A$+WJ^K::^5S2Z<NT)8I(07
-MF:A[WFO!$JYY\;VSF'OM<8:LN;T`7F08/Y3Z3?#QH"J:L4+>JW[N0=5QIYEJ
-M=&Z\W[TBD`7-[6J=-74GF61-$`:NXFO.%)=[[['PD6!H:;V/CZ?H.Q@V*Y3)
-M(*(U*S_(`/X`@=4A8N1X;%PR]WU'P@+J3H?%;:O%,!M`$NVB]R")87^3<RP<
-M'"D2]I=(Q8(!S++_?'ZBM(AE&+F#44#CS.;='!>W$@Z@#S-W_E3`9X%)L4B]
-M6_71C<D3_0KNV3L>'P<+:@@B2Q8.33:?)*X7!K<\Y@""[>-"CM-^)"A0$'ZQ
-MUML"Y6[R\SL]`>$W58Z2ZL/G<&BN`"S?9P>JEF>9LK)Z?`TF2@=J?D?SU%]\
-MW2C2*QY;KIS^#>[A@(M]1Q3>IZ28P$!0&!DN>1#QKZ+6SW.]/5S;\E4CTD_V
-MU!):LAW$J=&UU6.(N<Z';C+W_!/CE<KX:WU9&._S$E@%TY6IQM_XGC?+N>$C
-MLD@@W6R<I\AR``6YO'[].30F&YUII48E)RAW`+CGY_F[UVHU(3/Z<>R($]<N
-MNXYKBGSG(;L!']%1>+)$-=IJ=G_\M`\%7E[I+&X(JO-968S9V4N@0@/FM[:`
-M_DOHOVK;9]H"`YSN@MDXZ5!^\;IM^0"ZT[=\^+)':SZM<12_B%("*PA+=^-6
-M4X_PN14]E.7-."Q^B5'&6TA[JYMVGDV@!"6IH/Z6JH<S02(O3\>@=S^?QJF3
-M!%)(6*9O6O[NA.NF%0*E0`7VVG[["W;V*1;OZ\<X0+6X3J<DO,6&XY`J6G>T
-MW:K[M91`=CW>?L7]P`2I.^9+5TYAQM`E(0%F$ZV>R`(-RC7H&]XXFP:UY%BC
-M`)R"D*N0[730$"U_3>;"DF%<'PC3?1;![F/0$!`7,+9HVZ(Q&0*AY&)ULVCY
-M+1$(Q-SG5-O"<=//)P//$5`7SK)KA'4P'#J4"OU;LGD<B`].ZS0B9J.V:3#=
-MFHMH6CNHZ:?&4O4SY$O>;/`VB,,ES0$FE7$DK=#UHE`B"R(_/."6="48`%=C
-MEUSNIQ$$'36Q-I&5Q98XY)(("#_'Q/I<SXWV4`^'^0K6<T$3I7Z'N'Z?7R]`
-M$`D$$E-$A`GA_G\'@T>0`.M?]'YG8[&O\#T,WD(20@3N/<J*0*$E#%&`('[Y
-MJ?H^\H^GVU&E^/(?*V/S;`]-I?A_5KN#[_2`-3VO6\;OO![0[?MPD#[=](@'
-MGL^NG^%UTDDGD*_]=%3F(!C#"(`7$6TJYOB'9$BU+YQ#8@0%'I)PQ]0<(OV9
-ME,"Z5$S6[`$X]M#TB(,?',/M/'%!J1PF\>DL_0J^9;`\([->'9A>G7GCX\9E
-M0@!M=I66J/(],51@(@0?HS\478WX*Y0T*XJ_O=U@*6WFC3'B"(E.&1'DANP8
-MA"9[NDG#6V]/W#46R."#QGG`O/#C)\[4?2`5H^5G3W+1P5.,(-QBP&W;-.%?
-M>-((FRE+9_]=P/6!9$?X[H"/MB#IS`3J?[;1Z39%A=G\K;XFA6OI;)8DN$C"
-M7BML%@PI!R4,UBVE3B=_ZKF<0@AH@GWQH836)<,FH8K\Z1<`_]C"$EEWC%^!
-M/Y>[K2`I79%TH]PM=ML)@!SW*@GM%S$@J3N28M)R-`A+=E0XY^IL#V`"]FQ+
-M^_4^]%/H2!_ZO.Z:1OO/.8$>DXQ6NJ6@RJ$@&7W`;:(MKWWPFQW;(@(#-U?F
-M5&F]RJ`A#+VFVB@-@,'YAF.IL?V!1W3A`*O%]39V9A:^=$086@"=9YY/=SI%
-MP.43I]O%5,)TL*VCMQ>K<+1@HN)6<DO+TW)G@4%D%_J\0:[+[PVLM"$J9\JF
-M#R7Z$#1,3DX]3^`>`Y+R!4_X_[?Z1FD()>SVM"YCWW&/D(N1E:+:6?SS"^T^
-M>=9VH1@3/V1P?4WZR_1P%2B?BLO6(!4HEY]22&L[0O;91=\SO%,3IA"MH[!B
-M%CFMX;((MF&F@-:$#^/NR4^?H#P+/T?`(?"H1O\3JUR+0$3,YUPX/"V!XHN$
-M4I81(I##TI)/`O^DT'P/ALO4[G$M3G3UU0\M=O((04/Q><LC!49)[_/LC1A"
-MHC\'@:H/BD`);51$73^<"/TI:.TU6\/@59<'J]X\/%#-4QYP*EWKE4N4;[3$
-M!*R=!LX;O0JD`,M):D[^9;VT.FN`4QXM_,GRE:(8%>A^QPA4[V'_/X-$'J#`
-MO+<T!:]1:&Z`XNC?+<X!](-S\#U?81%G&!*R.1B,9PL0LO-B>+H<>8QCBZ$W
-M<E;M=V>)UR&A$!99;W<4^-+"5>D]I#=H>!H8G2&P7(Q_(!?:3VM_H>=M^AN)
-M]$08[0JX/,N;+V:J5'I6(6V.$(:0ZX_O4^QL.>\MF$P#[-<S,`6"VKFP^LNR
-M&3NU+`.`3>^RDL0I]Q%IA\Z7&&FQAHOC`D/9^WQY/_D&5RP';_%[KSXRXR"-
-MF8_*GR>O=!,]"!HE3EGA09H#U/^0V<TZ32Z`>%;4=#9/YAX%'X,O\!"!B0Q?
-M0.$N*`P//0.Z40@-,IF["EION'/2:'+N!#DP7<P_I-08$P_;PV6!!ZI,ZAL?
-MS+=DO9NCF3.:S=;P#U.$5GNZ=)TAH]3DRELO!6<QECQ-'-TU!_@5#]+*-+P8
-MJQ=TCG'B9?]G0.)KL0_03L!U_YX'H;,Z723I$<8PW\\Q8CYC/;R@FM3\#X`A
-M?#U^MQRU?ONC?*CR30M9*VS4>4'%[`W6W$.LT!L1>2LAH-3&4=%D#P&9C[JB
-M];D8SD-)BOV;`_Z^+M/#??G`.L6]X+VMQ,0,SZ)HV(7+922%)EYPV/>7YUQJ
-M!F5L#3[/:P0.`4%JR2QH)>8$]JHLV*0:[,(?IQ8<-C8[FQCJ78RA5_6X:=%?
-ML;9!'+Z7+@8YD,W<V<)%C(G_`=Z"&:=30QM[;P1'8YD-TGEG1;P7:XL_("57
-MELV.6Z*!#>0.Z!V<.E@:$%BG_<]G3G5ZM]/H,].8:E4@PJ!J(D)H".9OD;4'
-M"EQJXO^TH/ZS1L+=5L$%Z]`8O]7IOZY=8C-N1>,Q1=^BFR@T+P:'@C3,3:*.
-M3`"L]U%/UP=A9X#@_-05U7IC2>XUP/.GC'>F"Y[4=*YQM^4F*N%V!PAFPKE1
-M6C!"G!@N@+W^R3SZV=E77GWPH-/N38#!++$4!=X:K+&1A2:W][17AS990I0;
-M_Y#W\L@\:%VI#A:K9PY?,VY!>'`[-/7_S]GZET(W$\(#P:6IV9-1`H;VP=R?
-M$<N/WPTJ-X9YZAPB9'`[BT%>`$G:%9(6N(ABM$"PMCR#P^[&TL]\"<,%S_QL
-MQ(0B^P3W;T0R$$,%O,Q.5^I:K:OQNEMR8W^HR9"+KL.A[&]/%$`O)-.G_<7:
-MIEO@!2J#72LI4S)[\@T]>'F\[H=F?&BM:7\O0^-ICQSRP&+Y9<=`EM^-,*'X
-M?.R(5S.U$/)84-J#B5/5X#K<8L^0]0=L2#DD<D,5F+GB`;YY+-PGB_?6`C\_
-MR9%@_@@XPBRB57T*^W(3V4G:]S.IN1]^6:30?#GR73'[Z_\_![KSGY;W4$ZU
-MR?RC@S--B"&QZ21ICG;8)W)5I#K[2PQ7I.C&'[VQQ1I<EW`A\'B\\V'*G#2C
-MQIN&$CTL6;ALSO9OV8L$^Y_&R%ZL0A13=HAOKQD@JY`2:^CG0A2'E;AY]R?2
-MQNE??40QJ5I^>7]O],#(!9[U@83@F_Q:-[OF*D/&+-'5/=5`+VG)*RF0!&^C
-M6JEQSUE0R*U.P`*S^=SAK8%RM=JW9#^Y\7`(?6_56S7G8;R>EHQ[,XHQCI_6
-M:2&_SJDYG\[4`..FZBLFED?N/A(KAL;1^9VFA:LF05>S^-5\:T/A\T.W2`9Z
-MCR5SH84"^^CO0=:VV;P.D748UHW-!?N2_1E1I$^UWXVY#??7?O7MSNQE*Y-H
-M`P:-/D3G!;1RA!ZK]T"0R3#7TR$X)IH7CXG#@3499,D8:^1/?H!S7?-HM(@Q
-M5K9@4,%"4ZEMT/"_\0SAXXEGRN_`)&U1H,4XI9J%((D#1[,AX1TPPPPBAZA&
-M!3:"V2`C$8#"*&6;GU'3+`_,_6_`]S@AW#.X23A3AL[JPI?;_?6!8+%_D?YJ
-M"=RQ9,"'UT26,!(G^/'S\&#HPY'/H]/]YA#ZW![^Q`)_(&S?W>C!PZDI$S*_
-MUF+Y[5.P1GTK/PX0EJ?`18=(:`&YJA^N]`U#AQ"+T\#6/?[DT&&`FCR7_5SE
-M3GT=O`34]-,T2!`[DP:*Y=PT_6.H1]9U[%)JHU=TQC$I`Y;L,@;.$8:7L$%I
-MM"XSG]H0%WK:P_]@,2PP)2Z[_1E93+*BL864<KXMI\-?_3(>BUC^]U@OC2?,
-M5HK_HTJ(^6Z-<^88P#OK\;*<(OS,[<;O2_HSYBTHY1P_+Q'R&J6YG@G!0OC:
-M>\X;HTP3T>WODBO/KV&');,/W9PJI3G"N7[P80""\*]K-:J[PN8WX-`')Z0Q
-M--X#0N7R,,".J0^Z!RMW)_]S`QNHH4L"$:\H;!ENOD+(_R]9VD9X/7%Q)JQ[
-MY9[BYU8,+$#4ST5"'!V*CZA;H/`[?D#]_FIH,]/BKM(!O7/T:`3.2LX]F,#-
-M[&$7Y@#SAXL^MW08\-[)B=,(V35`ZHLV.H?2C%@DT.Q^0G;L;W8S,YX'S5FQ
-M0]`-49S:KL`7G8CO5,>\PM[OA%:@E#8=HV(YA%,P&#W:#`)SIG$0JJYFRR/@
-M(+%6W79$,W]AO<]5W6UR([/ON4,7;95RLCA'%$_H<%;3OAEL?Y*9]>;#3](/
-M-R@-JH$4LK_`R'1W(2^VPAL`8/K@^'`+$>7=IVL\&G3>NVAYP3\X<%:[TM`<
-M+"9Y@CBSG?P=]85NZ'DQNQPA!/)PX)?/^[,<+7DFE6(ATIMM]^U008;L8X"W
-M[8QF_,%\FX'5WG$,N8?F+;B7G56R`2>UAA`.;N#K#>-B/V":GQTZEP/"@+2&
-MM-+T9%?KWB3'YE+;FW'U5"7A(PKWH;<S`F,,VJ#Z=WM_!5U!8F@>VK.F%=ZR
-MS(3]Q`&IWIBP]V+H4P=LP3L=6"K5"Q!G2@<(:94)[VKP&H^:!QE?V@6C?E),
-MA4_]'=&O[1+0WBN:K)FZG#59EBBC)ZRR15_BZIL0V4+V[VH?0'#+A<$__@*:
-M1$AF]*;V'!.;(TG+1/DO!74UZ1,RB[-,9@O7`ZQMR^81(%,/IHK.9)N=HY+J
-M37V]PXP0V*+*^_O=>@,TN;S0AFDU#U+)-BRD?9MJ[U>W/BZE9/])=8,]$&EZ
-M-Z39$`8='K/B)J?HK#-E2]+<55)7Y&H@J2T:"NY[7`PCXUIG0`QX[;&;C@%;
-M;&NIZ^J,7XHX7#2P-7?AB>&#0K5LYF<C]4=YO.-U[,'LR!7&,T\L*U4+'M[5
-M7`C?7D?=#::X$[J]*X?<5LD//O1FZCZJ%O.A/L\6$,?$+G_?TSVEB<GBB'.V
-M\X)K+;;AR@.*L$H9DTO,K6V'O[ZV@RY-;*:.-*DD,"-'.H6T=TFZOUU`>Y=Y
-M?>J;Q;S[(`!>@[EW>7(]]!87MS_!V'$>`/2*"7SXXURC&\UN(&G0';=SP@7+
-MVNAG47FKWFQVT\M&VP^@";ZN!DB&`R26G&XEN>YYQSY0TZ!(-B`EO>HF'`86
-M,#9Z;[R_`0AA)_K.`#-#T?P?T.UTGTR5.Y9\QA/20\KYWM?DZ1I*,56:J`?J
-M`<%`JBA\SG0%)YC\Y]/C';2K_N94D+)VP-.<ELE1("1NB'1,*C2JY=LC?*PC
-M$:]NE*#/;$MD8((PPG":RJJP>#6J[.J0D"*&/'$1Z#4\9?C"_#R^!U=*?2B4
-M$O5>N6J@)VM%-A"%>T7Z<[%`W1,_8CPJVZ!]I2H'MGX\859[G^:;[;.ZT@K2
-MXD/QA?6&O;P39*5)-]]-!88S!6L>*9IUY)MRD(OKWQ;C(LFW*,/)LR0&.IS0
-M*BDINQ+[8/GQ$OIDDC.$:;IWCB5CYV4MA6Y_[PU[)W.K'OOG!J605KP./&_@
-M9>_3AG1%CUH("==L#X3WT%UMUM>O>8O<#OH@O#>DK+CV8J]I]Z++#\?\@"3#
-M7&*,YQ)VG)<3AKJ..-128TQGSL\E]G]MT*S_L+84<L&MN78Q_-E'=BG!KXK8
-M6^J&'C-L*-?^_.:<:'.CWF/7#T`9QFC\,_"ER8#$>9W@I1C>-;)FK,/*H7KR
-M*W'9T`MJ,UV%J)E-X;(.TQAC=CV63Q[;`TQ;6EC-6^OAH?ZY8X^W%YHPXYOK
-MJ(5*.U*W0]@^VE4!(N%D;#CC&>YZ^\K[=.QZ/N-%]TS/3O=.$KLF<=V7_@8D
-MHVW1N<_W4^R#N&+6H:W2S0Q&@,=)Z,/G9'J=O#[2:X"KS4&#9*4E+FJA=+<Q
-M'9-A22ARS$S]Z?UP4J:Z:G`M`P&XT3](GXTV+-8CE4:G<:E%-2C]QG\RGC%1
-MCEE<^9\'#XL,.7([K:*BFM>MIBA.]H>Q78=?8#9:.G@*9W:JJLW<N+1B.XP0
-M&VU$:N%7?MV*<T7NA`@%8?;W-C+C`LQ7\*,,R]T=M5L'W6L^\A'2JJ?BWO&S
-M#?08\A=\3<&_CKPW?!2^!/FMX])*T2::Q=-XQG)>@HI>6Y-:[VB4+=@Q!O_T
-M+^?.I*GUM.AGE44K_[PI*NZJ?YG3[DQE+;!QH$J:`F&I85,[_J>UR$]Y]_I"
-MK)#L[22+9XSI4+CC[9*R]'64IG+*KR`;=.Z@-L4Q/O:%,3V%7LE%ZIN\$_.*
-MP$987+OB2FN'*F\M11A6MHY1E(\4D2Q#D%*M1\WXSIE=;*?9F(IYT@BI`M;J
-MNBC-P7<#+SYY$?:&(<S%@^J*6I.!Q9TPI#X7'/MJ1\'?0>Q/G>KJQ\YFKXWW
-M-2QBHGCI#\_Z"<NRHJB(*0.:!\C^A5D&*0_%9+)"()((R$5%8L`58L6``*@K
-M('PD"Q6!"U!@^*:;`-^@T=-$`84Z81K[;*RN6:(!>C;C2F;(0AX=:D/T[3!P
-MI`RQ@#5U=#2]%(&<_6$$_"-&P-D9]??T^\>AAG.&@009*9,DAU:7U#7-GS.'
-M*,*!ECV-23)VX_1Z/B2_,G,]"D@5?7P^_8<<Y4#W46-$FC\SS%X+MW+/'XTP
-M3/Y1:M9IO)@^Q[RWZ+&OE_PN?EN1UTZB%@O8.?SN3<:"H-!VGZ\'OE'>@@Z7
-MF<QVX>'?9XZ6-B]O:`*R;E1.X09Z#%H="PVY^^%3V8'!+@[^L%Z'D3&DV-TR
-MFN"DMW,-!*[?E')VOE]F>QWJ(A8L/M8+YZ<[KPVC8&7>"7QC#%NYJ.S,6C_T
-M-@_IZ6L9^@>G\N*69H*7-C3#1>G7:]J'0,*RPG7S2<%$P;,:#3$K_',B;KIZ
-MSXKNY@.[6\S:F"CV1;.5!DPVKB<(UB:]*WR9AL!_2_HG[SZJ.T_!NSEW/$>!
-M@O%K:V5/"!V&RTS?S^7YG+-?W4;LU\A"F04VLZ1Q!@8,9?1&+%T/K-K+\.YO
-M';3N&L19V=E=\CB<'`0]I'&==V-<_L<+@ENI+=&QR?OF9:_&OEDL.^U@UII<
-MZX6RLGR&GS/8THS3VLF;@^@B3U%!/QDMP>GU6`HMC<U7P0$?U97CTL3-]2=5
-M37$U8[1UP\#T_C64)PSGV)I.'42O\%XG'&4+B&JZ/&QM975Z;2S9TECDW$F:
-M`V`Y(3X;21CC`2J%]&3F1IIK2%4YQK4;$4=P<XBLI$4P+<,&X>RX`C\,[(Q\
-M@0%&)S2>O$Z9H/7A0@*%^XUITX;\A1`KPKDO<6/Z,\PCEM(BC-884!CC8HM)
-MF=3146A@FSQ@F=<)^_*J3W8>!#NO7?.T\&D#)_9W.5\[`*)Z]I)*G\9I(P:U
-M@I"4D8JJJ'OT@?I&8^6(=28]6\HNX8$I<MV0Q9XX&(92[U-M@@CG+=>&&YF3
-M#L#OXN;7LJ`2/!&SDLZ(O5Q_5&*.Y$*FK#:9XQQ?)!?Y!,&CT2=^,HFS1G]:
-MPN.WO7,A!3)$*G4#^YNOJR8'Z"+T"J'(Y0-]'XUPJA@YM>>C!L,>NE'1S]*#
-MAKO>,3+%V9K>L#BU.W;)-\BV]74>NU\SE422.BPFD&\VN#BM&<,6?0$S2&+T
-MW]7@6U%Y$^]M.P'_MMDGHW'F3[+0<%!C<]8!*31_W\--]';+?ZN=6U6XG7'L
-M6Q+(UV2OW3G<:O"7P0MI=BGUEJQ#UVL?+A995B40&\&@$M&#I:C&EH`\]^!S
-M8,,5$QEJ?/8NL<0K]&F&;BSOK1.X]L_HOOUE)8;YF+\S'Q5S`U2DEM%B[A5]
-MT*`UM3&Q[BV77-G;(8KL^<3:0\$!`B@@2S%RH>QY:"L@$HN8;\):5)UN6*SJ
-M4G1AOW9J++H*\.;=PM)^E'%VAA;PX$G'_#5O4^T#BHY&\AK+_92,K777?5!8
-MR&YA<51GK$?5I<]H;30:ZPPL+%PKO7ODJ4NYZQKSK%@[&,J=(OS.=NKG%<8F
-M7U^NFS]-&;2+S^R@=DQ&,-='/FH^4R[JXD.52=G*4X'"/^O^\_@'Z?[#$^4_
-M*:2GZEA\J*J"2%$MH,(?F2?^J*463X2'FH&F\OT(A\J6/@3M/E>?91+.U>UY
-M':#DQ]1O^?//&`6!F<`/#M&2X#MI9<4G:9)1R'.,9EU.,WG:_?,WJZH-K%=H
-MNUL]B1!8ST=)^)J:N9N=^JJ.U.IW<ERV6$^+,X.S(C$M2G[:MVT05(=QDNO[
-MO\*^V]Y4K&UF!@JT$JV186MF95+6TPPX2-"Y7)(G4_O^WT;\\%U:X>-2U/(R
-MWEA5-[O-YQ`\BDI=4)3VRASN)S_;M@;9A3;7<?H9KX3:N,4Z<O;]B>=UT]NG
-M+Z<Y-NQFQ5JQTFH:&3+^HP/3]N\IQ?ME&2SS+F[+O$EMU2JHFY2CV<<X!@_S
-M>[I4\NG40>U>!4_+;-$;9]^4I]?J1W*)7HWJ]X431VG$X'>T\.]Z%'73#F'=
-M\+IW)V:S-N-MI:`K)]=A;K@;D#N)0K-RH5Z,\0N+,1YL.'&=5Z=QKF!>G7MN
-MP_CJH79C-W_7>1JF>`6J>XPY<V`(:^&8H&@WR5P8;9XHL%Q&I3.`V[O_BC"9
-M15G:B?T-ZV-5+D40H7BOT^BM4)KAW9\CLMSOBDPRF?0Y&/;+3+%0(H'68H,6
-M391IWH'(#A>"ZAB8\"J>/2>B'HR>B",/D(3X1]TDUFR(18!]L`OVC2,8B0]J
-MQ?1%$\"CW#)MOQL`,[H]YZ/5\9.58>E`/=0W&PLL[:D]/&NCG*/$9WEB.63#
-MG4,ZXCF2EYQEE=1P[9J+D!24HTMQ5?P3J1`&;-R;YZDZ:;XSNB,Z_AE'5\=M
-MO_?)W9V+YIZ=LD'S#5TE_`QX,[2.C2)7I)V"9F6674*J89HTKQF7:%1J`&=R
-M=0E):BI7,U^#R&M02/K5]QE;?)\\/S<[?N+,R]Z9UV]BW")?Z5W_U2WEMRY3
-MY)3Z>H5`V7\5E):H#U[Z17"1ZW[@38>KC\RV75A(A21Q!TVQ4N[G(YU$H)./
-MG*:"=GUPVKV5+1+V??9_"17,E9L<D*#2>>^S.GD1*;&$:'A<@Y)+(654C@ZR
-M_U"SG(2TF9^;EA2P#.V-_ZJC$V5PE/M-EIY_6I4V&$N8/([%`C.&W[BJ\[4[
-M=_;<WT-U//#ST_,J3P113RJJ0Y:'GR!@D,1^X./&,`@,"(C`AF[0#5RYXL0T
-M!A'8(P3QL*#NZGI98I7"Y^%/ARI[L+YO@S-66K[#R0.<X"]^+[92Q[?J/&U^
-M/M842QYZ8NLW:5H5.+Q\$-JF,+ZV<2%U).O7/$G-9\@0_=A%_!Z"P+7I(8;\
-M9O69W+WUIB?+G&K##.NW[E]@H)BG$+ZE7M-1:C%8G]H7'I#VW=F5BA'3`-,/
-MN4=,VKP$SUXOQ^YLRZ"3^O,JRP*J2132C>>H;I\_R4O^)`N-$L'WXRK)K84<
-M&/WZ$ON<:V&ZDJ7B]D[2?[0ZJWB12F"=#'/#/%H!7-42(#,'E=8'R"+>VT\*
-M11-):53)F$*Q4)454&*EJ'ER#G!4C.VS,/5NQY.L$I0$D99I3C7+4Y4T.*VC
-MFKFF,_&S0CA<`7!CQP%0+<Q&!*0/>(*J&_/=V58(![P01B23`3Y[`XA^ZH4"
-M$\!.F!'@'(R\5?FAFHZUKS"",#APY>A&^M\T;\Q)U^\71U1^\U!J8NHD?YE=
-M6:=%?L2P/%9U_\>'1&0?JNM+D+[0_8$P.;GEFDEYO)9?E<YZOC["A75W^@UK
-M6@'[Z+BK']SYSR:'>1QIS?([>FCD(>U7DO*-5?3(_]?\^C$`OQ"4SWG7/^)3
-MJ,2\KBKG>H@#B_Y$9R>49,K^1_A/7B1"MTW&!BH6N5_RG$M8@6PK7*B)JU6$
-MD1.SSE\\&P")E#IAR59+U.;ZX3K[,Q]+29>45>#`E$Q<4O>N>=X-0_-4B%*<
-MG9\PW@0YAV[%,M2Y]>I40C!EVJ;H8&OKZ\43D#YHVO.,15X,8Q@5>_FH#QWL
-MM%Q23`#!8P"GXE#W.*%]#&(3$^_5U'N@8@>%B?$>8&!'?70')C&1&'5[EF=;
-M"[@M3IU_K3F6Z-'_!2+SC0?L5K&.J?1C1T=,<K_US=35=G8XSW!/Q11^3+KK
-M#A:V+X:M(9S[I7[,OZ;X++#/&103I\\&1*S+:IS?)BOJ4>YD^&+&?%K4\W_:
-MV]+LM_T3'&@UX?,975H)WBA!&>-C)1*R\-N_$1OU!YZ;`<:*$9A23T/^DXMI
-MSHBHF.AXALIVVFQ$$39-S1Y5B19.KZ&6"91#_^CYB&E;V5S4BNK#;E%<QDSQ
-M*R(@>M-GEWK)S.;)!QT9`6>V;59[F9I17'5]56"L/N?S_QNGZ6_&E1`U3XS1
-M$?C6L5!0AB82X&LC4DF((*DGS__?V*?32_$?8^F/JWZ3ZA_2?&^^=I_H8)T-
-M;)X;/R6:%FFF-UE?HY,.\K7^B'L-Q\YI.JL]>OP!?HL2U7))C-\XDE#^8R.L
-M`3!O/`;5JPR?N):V_[&BH3AZ&GCDY[;#I\\U?5N?*#.1]@B=-NI+&#3MBLG;
-M2-=DA72[K4NO<MP5.S/W>!O^RL.L8_Q+EP8*$4S&V*[^W9,W?R<G;^^GV1N,
-MN[_%KE#^[/\<P1(41[ZQ9:EC`J26MRVMD&[6FC5(QGDU+EB-2Y8Q41U(5)2`
-M`^D^#25A/7Y?HL*J`?%`5&'VMA/LJ?1I&1!G"9/LI!B2%C#_EQ/&/+GBTAY?
-MEG]?Z=?D_"Z/F_&/U?-=BH<)*NM<%3GF`R/C1E/]%=T;I:A[+?.MDF5(@\4D
-MZ(YM@0Y_IL[;D=Z\O.DYU7U^__F]<3W:_XU):;6-='_&<]@P>F.R.<[O[>%T
-MMTNP3*[&EWEE1HK],U,8>WBVU*?RIY<XLKNSI3^+:Y[^Q1S]2UNZ`^)T;5MG
-MV_Q\&YM:.3@O5[&']'<WF<V9X&S[''RNVLKQO'[/==[E[/9HXB,[/BP50]@#
-M%9["QJ`((HQX*2"3J:(+(?%BPJ!]F^*>_^*=E^Q1J![C6L.KR3<:RCUIR,P&
-M*./;G"OU6+H4"'9^MU9T+$0"'O#1T250J*7,Y>XM=H%,V=ZM+DP<+2+MQUD=
-M+Z[(.8F7?ZD_U?:M(_QZ#&@V#FUN27XM:J[0S$M(3X3KI^!S5^)8BIR>SRO5
-M03_W/V=I;_!7EL>L\O4X].]R:VK]>.3Y71'E`'G]$#6Z*E#'7Q>QC!B?+I\0
-M]8%#X@5GQ`8,A[)%5!1@'Q(.+*_$M)*(Q9/\#)[7XV'M,GS8L]_@^74..E)8
-MC%+!&(.NPI3G`VH#-A4U`$4QQODU]-]=_%]]]I)=65.1W[#)Q:%$E4/_?+W1
-MJ/2(591#`U1B6PS2<KGEV(.ULVLW;"L\FW,R&R_&R:37@]!\8Y7QO:N3ZYQL
-MG'K3=7?J<C5BT11Y#4Z2MT+NI6_D\FEK9;.9SO5(14^[Z%#"\F'G"MA5>WZ\
-M3KQBC`Z\3KLIB@E,A'_ZUX+0E51&!$<H,`#&-L3%)04E\#$<#2<G)[@U]M=N
-M)<['QLS1=H\-1K^V,O1RM;&\B37:236/;0O7E=\T_Q5^=.Q2Z<4.9G3PQJY8
-MM,%U4#3$>KUO??&70LJZM*#WG%AB"PJ;%DA^/B^AK5WJ9<D!V"NI;IQ33V`M
-MK.4<#[PL*34M-+@K)Y;@"8>G>/>Y92TS@^_\+P.Q.W4H#K]=@J=<!9#K@==A
-M0J%C8A20E$7KM'>M!8PBC`>/[OKZ7@PU.=@6G9P#9A@H?N=R'4;OUI]*--R$
-M^QCC0K]".78^3M:(>I]K(ZF<F[:R?O9=_+^],Q$GGLP_3^&[38+,JV)?43,[
-MYSGD9WY/8;G0)S/RY17T.-)6#/P#PP?O5ZW=+.;\5;M_?QOK6L!5=HAV2J^?
-M55;^?D=%[]4PR[G$+>G8D<1!LK>NMR7Y<HOZ5=FH./7FU"S(H-Y?7.?Z^[RF
-MD_3@\#E\W249.L?7GSQYYU_,'?',[WOD!((AT53O24(*':^Y2G;M$4DP?<*K
-MAJUE"&"*@@$\#&,#`F+BF$Z4^6YH!H3&)%0G&.0/>A#Q1>'YC4B>$,*DV[&F
-M3="[\K=SM.Z=-:26I@ME67XJ@IU<^E/T[W578(WS\KL-[G1=MU%3D5`0JV_K
-MJW?)ECVU'P5W?:<?Y.8SW_]MKV.O[N^V;=CVM:Y%<AXDHR]#-@Y-9]O0=I\6
-MK8K_)@]=Y:,YH]+/X7P\'N_D-I\+X4QEZ[(;VIB^O)?7*"'KQ8(HA"P!C(=^
-M11JCOV#WP<\7I'?>^>QR>9\/^]WL?'YOL8C>HYSWR)-76D\?U]ZR+VV51NW5
-M2W3?A(\VM^OR'D_?6SZZ>V:\K*R^D5TYMEHZ'$O>:"/;O7O"-!3X5\75%\3;
-M\R^55##>!1!JW@PL*"\JHHD.7(V5(<PYC1LI0L`L7=9S";=;0M,(UD!W#<Q,
-M'6=E2`KL]%U6/JI2DZX6ZDM]2-!M1>3!9*6EB?AR%`YB%3DX:I[KJ\3V7%F9
-M[4R'2_.XU#Z6<:$(<G.>J#NQY[J]7D4ME0K>!->H;NN+QET"'-CT,>41/*%M
-M\EJP/1A@LL8HPA0\M*=M)/*HL8R%%\L4/'N'Y_W?Q?DX^M^@\?V/^>S]2M/^
-M5('7UH43YAK'&C\IK_5,GY9ZL*7\Z\ZA34=NO3JLS*B8F)B6IID1U%)(9U%1
-M,V&5X_J%2;LD^['7T<)P@=84LWJ["X%58BFQ@#X&"%0H.`K*2?+ZH5'4V0]*
-M+'595;2J"D@4K2J*B<"$_G,*(H<U)30<'-E-!S>:G,/;#XO.5CQY_"7R\J!$
-M#!UAE@0?>SV8KTH]NKB/'#JP0GK\_^VF$TCF+QT;%><8EWI=+8ATM/0_ZT)U
-MKXH[:AMN3]/;]7-FY_'H:.C-H;)7!@3/;)2\0+J!+H'HTL)Y8#/*T60/F`8P
-M#M34'C\IY4\MFK4&]644U:'0FFM=:89IE#4-P':R4OE_)767%M#W?^2;TE[G
-MK$Y?=NG]Z6;.)_X9SIX2?DJDYW1:XDV<]HZ&A/GT&O9^\XU-[<#T[K]?QQU^
-MNCOE1*IP_0X=D@GKC:4/3/`13TP5%MD/3#T[8B*0*1&&,"$"#$8B?P($B@!`
-M92`%?.>U]//U#\&CJ5M;\1W_9BP1^9M%W.(OBCW+!722E4!#8G:E%9)2;4*B

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