svn commit: r295172 - in projects/release-pkg: . bin/csh bin/sh bin/test cddl/contrib/opensolaris/lib/libzfs/common contrib/libucl/tests contrib/libxo contrib/ofed/librdmacm/examples/build/cmatose ...

Glen Barber gjb at FreeBSD.org
Tue Feb 2 22:27:53 UTC 2016


Author: gjb
Date: Tue Feb  2 22:27:48 2016
New Revision: 295172
URL: https://svnweb.freebsd.org/changeset/base/295172

Log:
  MFH
  
  Sponsored by:	The FreeBSD Foundation

Added:
  projects/release-pkg/lib/libc/tests/gen/dlopen_empty_test.c
     - copied unchanged from r295171, head/lib/libc/tests/gen/dlopen_empty_test.c
  projects/release-pkg/sbin/nvmecontrol/power.c
     - copied unchanged from r295171, head/sbin/nvmecontrol/power.c
  projects/release-pkg/sys/arm/arm/swtch-v4.S
     - copied unchanged from r295171, head/sys/arm/arm/swtch-v4.S
  projects/release-pkg/sys/arm/arm/swtch-v6.S
     - copied unchanged from r295171, head/sys/arm/arm/swtch-v6.S
  projects/release-pkg/sys/boot/fdt/dts/riscv/
     - copied from r295171, head/sys/boot/fdt/dts/riscv/
  projects/release-pkg/sys/boot/ficl/riscv/
     - copied from r295171, head/sys/boot/ficl/riscv/
  projects/release-pkg/sys/conf/Makefile.riscv
     - copied unchanged from r295171, head/sys/conf/Makefile.riscv
  projects/release-pkg/sys/conf/files.riscv
     - copied unchanged from r295171, head/sys/conf/files.riscv
  projects/release-pkg/sys/conf/ldscript.riscv
     - copied unchanged from r295171, head/sys/conf/ldscript.riscv
  projects/release-pkg/sys/conf/options.riscv
     - copied unchanged from r295171, head/sys/conf/options.riscv
  projects/release-pkg/sys/dev/hwpmc/hwpmc_riscv.h
     - copied unchanged from r295171, head/sys/dev/hwpmc/hwpmc_riscv.h
  projects/release-pkg/sys/riscv/conf/
     - copied from r295171, head/sys/riscv/conf/
  projects/release-pkg/sys/riscv/htif/
     - copied from r295171, head/sys/riscv/htif/
  projects/release-pkg/sys/riscv/riscv/
     - copied from r295171, head/sys/riscv/riscv/
  projects/release-pkg/tools/tools/nanobsd/embedded/qemu-amd64-uefi-bios.cfg
     - copied unchanged from r295171, head/tools/tools/nanobsd/embedded/qemu-amd64-uefi-bios.cfg
  projects/release-pkg/tools/tools/nanobsd/embedded/qemu-amd64-uefi.cfg
     - copied unchanged from r295171, head/tools/tools/nanobsd/embedded/qemu-amd64-uefi.cfg
Deleted:
  projects/release-pkg/contrib/libucl/tests/.gitignore
  projects/release-pkg/contrib/libxo/.gitignore
  projects/release-pkg/contrib/unbound/.gitignore
  projects/release-pkg/sys/arm/arm/cpufunc_asm_arm10.S
Modified:
  projects/release-pkg/Makefile
  projects/release-pkg/Makefile.inc1
  projects/release-pkg/UPDATING
  projects/release-pkg/bin/csh/iconv_stub.c
  projects/release-pkg/bin/sh/redir.c
  projects/release-pkg/bin/sh/sh.1
  projects/release-pkg/bin/test/test.c
  projects/release-pkg/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_config.c
  projects/release-pkg/contrib/ofed/librdmacm/examples/build/cmatose/Makefile
  projects/release-pkg/contrib/ofed/librdmacm/examples/build/mckey/Makefile
  projects/release-pkg/contrib/ofed/librdmacm/examples/build/udaddy/Makefile
  projects/release-pkg/contrib/openresolv/Makefile
  projects/release-pkg/contrib/openresolv/resolvconf.8.in
  projects/release-pkg/contrib/openresolv/resolvconf.conf.5.in
  projects/release-pkg/contrib/openresolv/resolvconf.in
  projects/release-pkg/contrib/openresolv/unbound.in
  projects/release-pkg/contrib/smbfs/smbutil/print.c
  projects/release-pkg/crypto/openssh/sshd_config
  projects/release-pkg/crypto/openssh/sshd_config.5
  projects/release-pkg/lib/libc/tests/gen/Makefile
  projects/release-pkg/lib/libsysdecode/syscallnames.c
  projects/release-pkg/lib/libsysdecode/sysdecode.3
  projects/release-pkg/lib/libsysdecode/sysdecode.h
  projects/release-pkg/libexec/atrun/atrun.c
  projects/release-pkg/libexec/rtld-elf/map_object.c
  projects/release-pkg/sbin/nvmecontrol/Makefile
  projects/release-pkg/sbin/nvmecontrol/nvmecontrol.8
  projects/release-pkg/sbin/nvmecontrol/nvmecontrol.c
  projects/release-pkg/sbin/nvmecontrol/nvmecontrol.h
  projects/release-pkg/sbin/pfctl/pf_print_state.c
  projects/release-pkg/sbin/rcorder/rcorder.c
  projects/release-pkg/sbin/swapon/swapon.c
  projects/release-pkg/sys/arm/annapurna/alpine/alpine_machdep.c
  projects/release-pkg/sys/arm/arm/cpufunc.c
  projects/release-pkg/sys/arm/arm/cpufunc_asm.S
  projects/release-pkg/sys/arm/arm/cpufunc_asm_arm11.S
  projects/release-pkg/sys/arm/arm/cpufunc_asm_arm11x6.S
  projects/release-pkg/sys/arm/arm/cpufunc_asm_armv4.S
  projects/release-pkg/sys/arm/arm/cpufunc_asm_fa526.S
  projects/release-pkg/sys/arm/arm/db_interface.c
  projects/release-pkg/sys/arm/arm/devmap.c
  projects/release-pkg/sys/arm/arm/elf_trampoline.c
  projects/release-pkg/sys/arm/arm/genassym.c
  projects/release-pkg/sys/arm/arm/machdep.c
  projects/release-pkg/sys/arm/arm/mp_machdep.c
  projects/release-pkg/sys/arm/arm/pmap-v6.c
  projects/release-pkg/sys/arm/arm/pmap.c
  projects/release-pkg/sys/arm/arm/swtch.S
  projects/release-pkg/sys/arm/include/cpufunc.h
  projects/release-pkg/sys/arm/include/param.h
  projects/release-pkg/sys/arm/include/pmap-v6.h
  projects/release-pkg/sys/arm/include/pmap.h
  projects/release-pkg/sys/arm/include/smp.h
  projects/release-pkg/sys/arm/include/vm.h
  projects/release-pkg/sys/arm/mv/armadaxp/armadaxp.c
  projects/release-pkg/sys/arm/mv/armadaxp/armadaxp_mp.c
  projects/release-pkg/sys/arm/mv/mv_common.c
  projects/release-pkg/sys/arm/mv/mv_machdep.c
  projects/release-pkg/sys/arm/mv/orion/db88f5xxx.c
  projects/release-pkg/sys/arm/ti/omap4/pandaboard/pandaboard.c
  projects/release-pkg/sys/arm/ti/ti_cpuid.c
  projects/release-pkg/sys/arm/versatile/versatile_machdep.c
  projects/release-pkg/sys/arm64/arm64/copystr.c
  projects/release-pkg/sys/arm64/arm64/genassym.c
  projects/release-pkg/sys/arm64/arm64/gic_fdt.c
  projects/release-pkg/sys/arm64/arm64/intr_machdep.c
  projects/release-pkg/sys/arm64/arm64/locore.S
  projects/release-pkg/sys/arm64/arm64/machdep.c
  projects/release-pkg/sys/arm64/arm64/mp_machdep.c
  projects/release-pkg/sys/arm64/arm64/pmap.c
  projects/release-pkg/sys/arm64/arm64/swtch.S
  projects/release-pkg/sys/arm64/arm64/trap.c
  projects/release-pkg/sys/arm64/include/armreg.h
  projects/release-pkg/sys/arm64/include/pcb.h
  projects/release-pkg/sys/arm64/include/pmap.h
  projects/release-pkg/sys/boot/efi/libefi/efinet.c
  projects/release-pkg/sys/cam/scsi/scsi_pass.c
  projects/release-pkg/sys/cam/scsi/scsi_sa.c
  projects/release-pkg/sys/cddl/compat/opensolaris/sys/atomic.h
  projects/release-pkg/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sa.c
  projects/release-pkg/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c
  projects/release-pkg/sys/cddl/contrib/opensolaris/uts/common/sys/isa_defs.h
  projects/release-pkg/sys/conf/Makefile.arm
  projects/release-pkg/sys/conf/NOTES
  projects/release-pkg/sys/conf/files.arm
  projects/release-pkg/sys/conf/kern.mk
  projects/release-pkg/sys/conf/kern.post.mk
  projects/release-pkg/sys/conf/kern.pre.mk
  projects/release-pkg/sys/conf/options.mips
  projects/release-pkg/sys/contrib/ipfilter/netinet/ip_compat.h
  projects/release-pkg/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c   (contents, props changed)
  projects/release-pkg/sys/dev/bwn/if_bwn.c
  projects/release-pkg/sys/dev/e1000/if_em.c
  projects/release-pkg/sys/dev/ed/if_ed.c
  projects/release-pkg/sys/dev/ep/if_ep.c
  projects/release-pkg/sys/dev/fe/if_fe.c
  projects/release-pkg/sys/dev/fxp/if_fxp.c
  projects/release-pkg/sys/dev/iicbus/iic.c
  projects/release-pkg/sys/dev/iscsi_initiator/isc_cam.c
  projects/release-pkg/sys/dev/iscsi_initiator/isc_sm.c
  projects/release-pkg/sys/dev/iscsi_initiator/isc_soc.c
  projects/release-pkg/sys/dev/iscsi_initiator/isc_subr.c
  projects/release-pkg/sys/dev/iscsi_initiator/iscsi_subr.c
  projects/release-pkg/sys/dev/ixgbe/if_ix.c
  projects/release-pkg/sys/dev/ixgbe/ixgbe_common.c
  projects/release-pkg/sys/dev/ixgbe/ixgbe_phy.c
  projects/release-pkg/sys/dev/ixgbe/ixgbe_type.h
  projects/release-pkg/sys/dev/ixgbe/ixgbe_x540.c
  projects/release-pkg/sys/dev/ixgbe/ixgbe_x550.c
  projects/release-pkg/sys/dev/ixl/if_ixl.c
  projects/release-pkg/sys/dev/le/lance.c
  projects/release-pkg/sys/dev/malo/if_malo.c
  projects/release-pkg/sys/dev/md/md.c
  projects/release-pkg/sys/dev/mps/mps_mapping.c
  projects/release-pkg/sys/dev/mps/mps_sas.c
  projects/release-pkg/sys/dev/netmap/netmap_offloadings.c
  projects/release-pkg/sys/dev/nvme/nvme.h
  projects/release-pkg/sys/dev/oce/oce_if.h
  projects/release-pkg/sys/dev/otus/if_otus.c
  projects/release-pkg/sys/dev/sfxge/sfxge_rx.c
  projects/release-pkg/sys/dev/sfxge/sfxge_tx.c
  projects/release-pkg/sys/dev/sn/if_sn.c
  projects/release-pkg/sys/dev/tx/if_tx.c
  projects/release-pkg/sys/dev/usb/controller/ehcireg.h
  projects/release-pkg/sys/dev/usb/wlan/if_rsu.c
  projects/release-pkg/sys/dev/wi/if_wi.c
  projects/release-pkg/sys/dev/wi/if_wi_pci.c
  projects/release-pkg/sys/dev/xe/if_xe.c
  projects/release-pkg/sys/dev/xl/if_xl.c
  projects/release-pkg/sys/kern/kern_ktr.c
  projects/release-pkg/sys/kern/subr_mchain.c
  projects/release-pkg/sys/kern/uipc_debug.c
  projects/release-pkg/sys/kern/uipc_sockbuf.c
  projects/release-pkg/sys/kern/uipc_socket.c
  projects/release-pkg/sys/kgssapi/krb5/kcrypto_aes.c
  projects/release-pkg/sys/mips/conf/AR933X_BASE
  projects/release-pkg/sys/mips/conf/AR934X_BASE
  projects/release-pkg/sys/mips/conf/QCA955X_BASE
  projects/release-pkg/sys/mips/include/asm.h
  projects/release-pkg/sys/mips/include/cpufunc.h
  projects/release-pkg/sys/mips/include/cpuregs.h
  projects/release-pkg/sys/mips/rt305x/std.rt305x
  projects/release-pkg/sys/net/bridgestp.c
  projects/release-pkg/sys/net/if_epair.c
  projects/release-pkg/sys/net/if_mib.c
  projects/release-pkg/sys/net/netisr.c
  projects/release-pkg/sys/net/pfvar.h
  projects/release-pkg/sys/net80211/ieee80211.c
  projects/release-pkg/sys/net80211/ieee80211_acl.c
  projects/release-pkg/sys/net80211/ieee80211_action.c
  projects/release-pkg/sys/net80211/ieee80211_ageq.c
  projects/release-pkg/sys/net80211/ieee80211_amrr.c
  projects/release-pkg/sys/net80211/ieee80211_crypto_none.c
  projects/release-pkg/sys/net80211/ieee80211_ddb.c
  projects/release-pkg/sys/net80211/ieee80211_freebsd.c
  projects/release-pkg/sys/net80211/ieee80211_ht.c
  projects/release-pkg/sys/net80211/ieee80211_ioctl.c
  projects/release-pkg/sys/net80211/ieee80211_output.c
  projects/release-pkg/sys/net80211/ieee80211_power.c
  projects/release-pkg/sys/net80211/ieee80211_proto.c
  projects/release-pkg/sys/net80211/ieee80211_scan.c
  projects/release-pkg/sys/net80211/ieee80211_scan_sta.c
  projects/release-pkg/sys/net80211/ieee80211_scan_sw.c
  projects/release-pkg/sys/net80211/ieee80211_xauth.c
  projects/release-pkg/sys/netgraph/netflow/netflow.c
  projects/release-pkg/sys/netgraph/netflow/netflow_v9.c
  projects/release-pkg/sys/netgraph/netflow/ng_netflow.c
  projects/release-pkg/sys/netgraph/ng_base.c
  projects/release-pkg/sys/netinet/in_proto.c
  projects/release-pkg/sys/netinet/sctp_input.c
  projects/release-pkg/sys/netinet/sctp_output.c
  projects/release-pkg/sys/netinet/sctp_output.h
  projects/release-pkg/sys/netinet/sctp_sysctl.c
  projects/release-pkg/sys/netinet/sctp_uio.h
  projects/release-pkg/sys/netinet/sctp_var.h
  projects/release-pkg/sys/netinet/tcp_lro.c
  projects/release-pkg/sys/netinet/toecore.c
  projects/release-pkg/sys/netinet6/in6_proto.c
  projects/release-pkg/sys/netinet6/send.c
  projects/release-pkg/sys/netipsec/ipsec_mbuf.c
  projects/release-pkg/sys/netipsec/key_debug.c
  projects/release-pkg/sys/netpfil/ipfw/ip_fw_log.c
  projects/release-pkg/sys/powerpc/fpu/fpu_emu.c
  projects/release-pkg/sys/powerpc/fpu/fpu_emu.h
  projects/release-pkg/sys/powerpc/fpu/fpu_extern.h
  projects/release-pkg/sys/powerpc/include/reg.h
  projects/release-pkg/sys/powerpc/powerpc/exec_machdep.c
  projects/release-pkg/sys/powerpc/powerpc/nexus.c
  projects/release-pkg/sys/rpc/replay.c
  projects/release-pkg/sys/sys/cdefs.h
  projects/release-pkg/sys/sys/kerneldump.h
  projects/release-pkg/sys/sys/socketvar.h
  projects/release-pkg/sys/tools/embed_mfs.sh
  projects/release-pkg/tests/sys/geom/class/gate/1_test.sh
  projects/release-pkg/tools/tools/nanobsd/defaults.sh
  projects/release-pkg/tools/tools/nanobsd/embedded/README
  projects/release-pkg/tools/tools/nanobsd/embedded/common
  projects/release-pkg/usr.bin/kdump/kdump.c
  projects/release-pkg/usr.bin/netstat/inet.c
  projects/release-pkg/usr.bin/netstat/sctp.c
  projects/release-pkg/usr.bin/netstat/unix.c
  projects/release-pkg/usr.bin/truss/aarch64-cloudabi64.c
  projects/release-pkg/usr.bin/truss/aarch64-freebsd.c
  projects/release-pkg/usr.bin/truss/amd64-cloudabi64.c
  projects/release-pkg/usr.bin/truss/amd64-freebsd.c
  projects/release-pkg/usr.bin/truss/amd64-freebsd32.c
  projects/release-pkg/usr.bin/truss/amd64-linux32.c
  projects/release-pkg/usr.bin/truss/arm-freebsd.c
  projects/release-pkg/usr.bin/truss/i386-freebsd.c
  projects/release-pkg/usr.bin/truss/i386-linux.c
  projects/release-pkg/usr.bin/truss/mips-freebsd.c
  projects/release-pkg/usr.bin/truss/powerpc-freebsd.c
  projects/release-pkg/usr.bin/truss/powerpc64-freebsd.c
  projects/release-pkg/usr.bin/truss/powerpc64-freebsd32.c
  projects/release-pkg/usr.bin/truss/sparc64-freebsd.c
  projects/release-pkg/usr.sbin/bsdconfig/bsdconfig
  projects/release-pkg/usr.sbin/bsdconfig/networking/share/media.subr
  projects/release-pkg/usr.sbin/bsdconfig/networking/share/resolv.subr
  projects/release-pkg/usr.sbin/bsdconfig/share/device.subr
  projects/release-pkg/usr.sbin/bsdconfig/share/strings.subr
  projects/release-pkg/usr.sbin/bsdinstall/scripts/zfsboot
  projects/release-pkg/usr.sbin/sysrc/sysrc
  projects/release-pkg/usr.sbin/sysrc/sysrc.8
Directory Properties:
  projects/release-pkg/   (props changed)
  projects/release-pkg/cddl/   (props changed)
  projects/release-pkg/cddl/contrib/opensolaris/   (props changed)
  projects/release-pkg/cddl/contrib/opensolaris/lib/libzfs/   (props changed)
  projects/release-pkg/contrib/libucl/   (props changed)
  projects/release-pkg/contrib/openresolv/   (props changed)
  projects/release-pkg/contrib/unbound/   (props changed)
  projects/release-pkg/crypto/openssh/   (props changed)
  projects/release-pkg/lib/libc/   (props changed)
  projects/release-pkg/sbin/   (props changed)
  projects/release-pkg/sys/   (props changed)
  projects/release-pkg/sys/boot/   (props changed)
  projects/release-pkg/sys/cddl/contrib/opensolaris/   (props changed)
  projects/release-pkg/sys/conf/   (props changed)
  projects/release-pkg/sys/contrib/ipfilter/   (props changed)

Modified: projects/release-pkg/Makefile
==============================================================================
--- projects/release-pkg/Makefile	Tue Feb  2 22:26:49 2016	(r295171)
+++ projects/release-pkg/Makefile	Tue Feb  2 22:27:48 2016	(r295172)
@@ -137,6 +137,7 @@ TGTS+=	${BITGTS}
 .ORDER: buildworld installworld
 .ORDER: buildworld distributeworld
 .ORDER: buildworld buildkernel
+.ORDER: installworld distribution
 .ORDER: buildkernel installkernel
 .ORDER: buildkernel installkernel.debug
 .ORDER: buildkernel reinstallkernel
@@ -329,7 +330,7 @@ bmake: .PHONY
 		${MMAKE} all; \
 		${MMAKE} install DESTDIR=${MYMAKE:H} BINDIR=
 
-tinderbox toolchains kernel-toolchains: upgrade_checks
+tinderbox toolchains kernel-toolchains kernels worlds: upgrade_checks
 
 tinderbox:
 	@cd ${.CURDIR}; ${SUB_MAKE} DOING_TINDERBOX=YES universe
@@ -340,6 +341,12 @@ toolchains:
 kernel-toolchains:
 	@cd ${.CURDIR}; ${SUB_MAKE} UNIVERSE_TARGET=kernel-toolchain universe
 
+kernels:
+	@cd ${.CURDIR}; ${SUB_MAKE} UNIVERSE_TARGET=buildkernel universe
+
+worlds:
+	@cd ${.CURDIR}; ${SUB_MAKE} UNIVERSE_TARGET=buildworld universe
+
 #
 # universe
 #

Modified: projects/release-pkg/Makefile.inc1
==============================================================================
--- projects/release-pkg/Makefile.inc1	Tue Feb  2 22:26:49 2016	(r295171)
+++ projects/release-pkg/Makefile.inc1	Tue Feb  2 22:27:48 2016	(r295172)
@@ -72,7 +72,7 @@ SRCDIR?=	${.CURDIR}
 SUBDIR=	${SUBDIR_OVERRIDE}
 .else
 SUBDIR=	lib libexec
-.if make(install*)
+.if !defined(NO_ROOT) && (make(installworld) || make(install))
 # Ensure libraries are installed before progressing.
 SUBDIR+=.WAIT
 .endif
@@ -127,7 +127,7 @@ SUBDIR+=	${_DIR}
 # by calling 'makedb' in share/man.  This is only relevant for
 # install/distribute so they build the whatis file after every manpage is
 # installed.
-.if make(install*)
+.if make(installworld) || make(install)
 SUBDIR+=.WAIT
 .endif
 SUBDIR+=etc
@@ -1125,9 +1125,7 @@ distrib-dirs: .MAKE .PHONY
 	${_+_}cd ${.CURDIR}/etc; ${CROSSENV} PATH=${TMPPATH} ${MAKE} \
 	    ${IMAKE_INSTALL} ${IMAKE_MTREE} METALOG=${METALOG} ${.TARGET}
 
-distribution: .MAKE .PHONY
-	${_+_}cd ${.CURDIR}/etc; ${CROSSENV} PATH=${TMPPATH} ${MAKE} \
-	    ${IMAKE_INSTALL} ${IMAKE_MTREE} METALOG=${METALOG} ${.TARGET}
+distribution: distrib-dirs .MAKE .PHONY
 	${_+_}cd ${.CURDIR}; ${CROSSENV} PATH=${TMPPATH} \
 		${MAKE} -f Makefile.inc1 ${IMAKE_INSTALL} \
 		METALOG=${METALOG} installconfig

Modified: projects/release-pkg/UPDATING
==============================================================================
--- projects/release-pkg/UPDATING	Tue Feb  2 22:26:49 2016	(r295171)
+++ projects/release-pkg/UPDATING	Tue Feb  2 22:27:48 2016	(r295172)
@@ -31,6 +31,13 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 11
 	disable the most expensive debugging functionality run
 	"ln -s 'abort:false,junk:false' /etc/malloc.conf".)
 
+20160129:
+	Building ZFS pools on top of zvols is prohibited by default.  That
+	feature has never worked safely; it's always been prone to deadlocks.
+	Using a zvol as the backing store for a VM guest's virtual disk will
+	still work, even if the guest is using ZFS.  Legacy behavior can be
+	restored by setting vfs.zfs.vol.recursive=1.
+
 20160119:
 	The NONE and HPN patches has been removed from OpenSSH.  They are
 	still available in the security/openssh-portable port.

Modified: projects/release-pkg/bin/csh/iconv_stub.c
==============================================================================
--- projects/release-pkg/bin/csh/iconv_stub.c	Tue Feb  2 22:26:49 2016	(r295171)
+++ projects/release-pkg/bin/csh/iconv_stub.c	Tue Feb  2 22:27:48 2016	(r295172)
@@ -36,9 +36,9 @@
 #undef iconv_close
 
 #define ICONVLIB	"libiconv.so"
-#define ICONV_ENGINE	"iconv"
-#define ICONV_OPEN	"iconv_open"
-#define ICONV_CLOSE	"iconv_close"
+#define ICONV_ENGINE	"libiconv"
+#define ICONV_OPEN	"libiconv_open"
+#define ICONV_CLOSE	"libiconv_close"
 
 typedef iconv_t iconv_open_t(const char *, const char *);
 

Modified: projects/release-pkg/bin/sh/redir.c
==============================================================================
--- projects/release-pkg/bin/sh/redir.c	Tue Feb  2 22:26:49 2016	(r295171)
+++ projects/release-pkg/bin/sh/redir.c	Tue Feb  2 22:27:48 2016	(r295172)
@@ -70,6 +70,7 @@ struct redirtab {
 	struct redirtab *next;
 	int renamed[10];
 	int fd0_redirected;
+	unsigned int empty_redirs;
 };
 
 
@@ -82,6 +83,9 @@ static struct redirtab *redirlist;
 */
 static int fd0_redirected = 0;
 
+/* Number of redirtabs that have not been allocated. */
+static unsigned int empty_redirs = 0;
+
 static void openredirect(union node *, char[10 ]);
 static int openhere(union node *);
 
@@ -115,12 +119,17 @@ redirect(union node *redir, int flags)
 		memory[i] = 0;
 	memory[1] = flags & REDIR_BACKQ;
 	if (flags & REDIR_PUSH) {
-		sv = ckmalloc(sizeof (struct redirtab));
-		for (i = 0 ; i < 10 ; i++)
-			sv->renamed[i] = EMPTY;
-		sv->fd0_redirected = fd0_redirected;
-		sv->next = redirlist;
-		redirlist = sv;
+		empty_redirs++;
+		if (redir != NULL) {
+			sv = ckmalloc(sizeof (struct redirtab));
+			for (i = 0 ; i < 10 ; i++)
+				sv->renamed[i] = EMPTY;
+			sv->fd0_redirected = fd0_redirected;
+			sv->empty_redirs = empty_redirs - 1;
+			sv->next = redirlist;
+			redirlist = sv;
+			empty_redirs = 0;
+		}
 	}
 	for (n = redir ; n ; n = n->nfile.next) {
 		fd = n->nfile.fd;
@@ -303,6 +312,12 @@ popredir(void)
 	struct redirtab *rp = redirlist;
 	int i;
 
+	INTOFF;
+	if (empty_redirs > 0) {
+		empty_redirs--;
+		INTON;
+		return;
+	}
 	for (i = 0 ; i < 10 ; i++) {
 		if (rp->renamed[i] != EMPTY) {
 			if (rp->renamed[i] >= 0) {
@@ -313,8 +328,8 @@ popredir(void)
 			}
 		}
 	}
-	INTOFF;
 	fd0_redirected = rp->fd0_redirected;
+	empty_redirs = rp->empty_redirs;
 	redirlist = rp->next;
 	ckfree(rp);
 	INTON;

Modified: projects/release-pkg/bin/sh/sh.1
==============================================================================
--- projects/release-pkg/bin/sh/sh.1	Tue Feb  2 22:26:49 2016	(r295171)
+++ projects/release-pkg/bin/sh/sh.1	Tue Feb  2 22:27:48 2016	(r295172)
@@ -32,7 +32,7 @@
 .\"	from: @(#)sh.1	8.6 (Berkeley) 5/4/95
 .\" $FreeBSD$
 .\"
-.Dd August 29, 2015
+.Dd January 30, 2016
 .Dt SH 1
 .Os
 .Sh NAME
@@ -1952,13 +1952,20 @@ Execute the specified built-in command,
 This is useful when the user wishes to override a shell function
 with the same name as a built-in command.
 .It Ic cd Oo Fl L | P Oc Oo Fl e Oc Op Ar directory
+.It Ic cd Fl
 Switch to the specified
 .Ar directory ,
-or to the directory specified in the
+to the directory specified in the
 .Va HOME
 environment variable if no
 .Ar directory
-is specified.
+is specified or
+to the directory specified in the
+.Va OLDPWD
+environment variable if
+.Ar directory
+is
+.Fl .
 If
 .Ar directory
 does not begin with
@@ -1982,10 +1989,12 @@ the
 .Ic cd
 command will print out the name of the directory
 that it actually switched to
-if this is different from the name that the user gave.
-These may be different either because the
+if the
 .Va CDPATH
-mechanism was used or because a symbolic link was crossed.
+mechanism was used or if
+.Ar directory
+was
+.Fl .
 .Pp
 If the
 .Fl P
@@ -2774,6 +2783,10 @@ Initialization file for interactive shel
 Locale settings.
 These are inherited by children of the shell,
 and is used in a limited manner by the shell itself.
+.It Ev OLDPWD
+The previous current directory.
+This is used and updated by
+.Ic cd .
 .It Ev PWD
 An absolute pathname for the current directory,
 possibly containing symbolic links.

Modified: projects/release-pkg/bin/test/test.c
==============================================================================
--- projects/release-pkg/bin/test/test.c	Tue Feb  2 22:26:49 2016	(r295171)
+++ projects/release-pkg/bin/test/test.c	Tue Feb  2 22:27:48 2016	(r295172)
@@ -120,51 +120,53 @@ enum token {
 
 #define TOKEN_TYPE(token) ((token) & 0xff00)
 
-static struct t_op {
-	char op_text[4];
+static const struct t_op {
+	char op_text[2];
 	short op_num;
-} const ops [] = {
-	{"-r",	FILRD},
-	{"-w",	FILWR},
-	{"-x",	FILEX},
-	{"-e",	FILEXIST},
-	{"-f",	FILREG},
-	{"-d",	FILDIR},
-	{"-c",	FILCDEV},
-	{"-b",	FILBDEV},
-	{"-p",	FILFIFO},
-	{"-u",	FILSUID},
-	{"-g",	FILSGID},
-	{"-k",	FILSTCK},
-	{"-s",	FILGZ},
-	{"-t",	FILTT},
-	{"-z",	STREZ},
-	{"-n",	STRNZ},
-	{"-h",	FILSYM},		/* for backwards compat */
-	{"-O",	FILUID},
-	{"-G",	FILGID},
-	{"-L",	FILSYM},
-	{"-S",	FILSOCK},
+} ops1[] = {
 	{"=",	STREQ},
-	{"==",	STREQ},
-	{"!=",	STRNE},
 	{"<",	STRLT},
 	{">",	STRGT},
-	{"-eq",	INTEQ},
-	{"-ne",	INTNE},
-	{"-ge",	INTGE},
-	{"-gt",	INTGT},
-	{"-le",	INTLE},
-	{"-lt",	INTLT},
-	{"-nt",	FILNT},
-	{"-ot",	FILOT},
-	{"-ef",	FILEQ},
 	{"!",	UNOT},
-	{"-a",	BAND},
-	{"-o",	BOR},
 	{"(",	LPAREN},
 	{")",	RPAREN},
-	{"",	0}
+}, opsm1[] = {
+	{"r",	FILRD},
+	{"w",	FILWR},
+	{"x",	FILEX},
+	{"e",	FILEXIST},
+	{"f",	FILREG},
+	{"d",	FILDIR},
+	{"c",	FILCDEV},
+	{"b",	FILBDEV},
+	{"p",	FILFIFO},
+	{"u",	FILSUID},
+	{"g",	FILSGID},
+	{"k",	FILSTCK},
+	{"s",	FILGZ},
+	{"t",	FILTT},
+	{"z",	STREZ},
+	{"n",	STRNZ},
+	{"h",	FILSYM},		/* for backwards compat */
+	{"O",	FILUID},
+	{"G",	FILGID},
+	{"L",	FILSYM},
+	{"S",	FILSOCK},
+	{"a",	BAND},
+	{"o",	BOR},
+}, ops2[] = {
+	{"==",	STREQ},
+	{"!=",	STRNE},
+}, opsm2[] = {
+	{"eq",	INTEQ},
+	{"ne",	INTNE},
+	{"ge",	INTGE},
+	{"gt",	INTGT},
+	{"le",	INTLE},
+	{"lt",	INTLT},
+	{"nt",	FILNT},
+	{"ot",	FILOT},
+	{"ef",	FILEQ},
 };
 
 static int nargc;
@@ -416,35 +418,71 @@ filstat(char *nm, enum token mode)
 	}
 }
 
-static enum token
-t_lex(char *s)
+static int
+find_op_1char(const struct t_op *op, const struct t_op *end, const char *s)
 {
-	struct t_op const *op = ops;
+	char c;
 
-	if (s == 0) {
-		return EOI;
+	c = s[0];
+	while (op != end) {
+		if (c == *op->op_text)
+			return op->op_num;
+		op++;
 	}
-	while (*op->op_text) {
-		if (strcmp(s, op->op_text) == 0) {
-			if (((TOKEN_TYPE(op->op_num) == UNOP ||
-			    TOKEN_TYPE(op->op_num) == BUNOP)
-						&& isunopoperand()) ||
-			    (op->op_num == LPAREN && islparenoperand()) ||
-			    (op->op_num == RPAREN && isrparenoperand()))
-				break;
+	return OPERAND;
+}
+
+static int
+find_op_2char(const struct t_op *op, const struct t_op *end, const char *s)
+{
+	while (op != end) {
+		if (s[0] == op->op_text[0] && s[1] == op->op_text[1])
 			return op->op_num;
-		}
 		op++;
 	}
 	return OPERAND;
 }
 
 static int
+find_op(const char *s)
+{
+	if (s[0] == '\0')
+		return OPERAND;
+	else if (s[1] == '\0')
+		return find_op_1char(ops1, (&ops1)[1], s);
+	else if (s[2] == '\0')
+		return s[0] == '-' ? find_op_1char(opsm1, (&opsm1)[1], s + 1) :
+		    find_op_2char(ops2, (&ops2)[1], s);
+	else if (s[3] == '\0')
+		return s[0] == '-' ? find_op_2char(opsm2, (&opsm2)[1], s + 1) :
+		    OPERAND;
+	else
+		return OPERAND;
+}
+
+static enum token
+t_lex(char *s)
+{
+	int num;
+
+	if (s == 0) {
+		return EOI;
+	}
+	num = find_op(s);
+	if (((TOKEN_TYPE(num) == UNOP || TOKEN_TYPE(num) == BUNOP)
+				&& isunopoperand()) ||
+	    (num == LPAREN && islparenoperand()) ||
+	    (num == RPAREN && isrparenoperand()))
+		return OPERAND;
+	return num;
+}
+
+static int
 isunopoperand(void)
 {
-	struct t_op const *op = ops;
 	char *s;
 	char *t;
+	int num;
 
 	if (nargc == 1)
 		return 1;
@@ -452,20 +490,16 @@ isunopoperand(void)
 	if (nargc == 2)
 		return parenlevel == 1 && strcmp(s, ")") == 0;
 	t = *(t_wp + 2);
-	while (*op->op_text) {
-		if (strcmp(s, op->op_text) == 0)
-			return TOKEN_TYPE(op->op_num) == BINOP &&
-			    (parenlevel == 0 || t[0] != ')' || t[1] != '\0');
-		op++;
-	}
-	return 0;
+	num = find_op(s);
+	return TOKEN_TYPE(num) == BINOP &&
+	    (parenlevel == 0 || t[0] != ')' || t[1] != '\0');
 }
 
 static int
 islparenoperand(void)
 {
-	struct t_op const *op = ops;
 	char *s;
+	int num;
 
 	if (nargc == 1)
 		return 1;
@@ -474,12 +508,8 @@ islparenoperand(void)
 		return parenlevel == 1 && strcmp(s, ")") == 0;
 	if (nargc != 3)
 		return 0;
-	while (*op->op_text) {
-		if (strcmp(s, op->op_text) == 0)
-			return TOKEN_TYPE(op->op_num) == BINOP;
-		op++;
-	}
-	return 0;
+	num = find_op(s);
+	return TOKEN_TYPE(num) == BINOP;
 }
 
 static int

Modified: projects/release-pkg/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_config.c
==============================================================================
--- projects/release-pkg/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_config.c	Tue Feb  2 22:26:49 2016	(r295171)
+++ projects/release-pkg/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_config.c	Tue Feb  2 22:27:48 2016	(r295172)
@@ -26,6 +26,7 @@
 
 /*
  * Copyright (c) 2012 by Delphix. All rights reserved.
+ * Copyright (c) 2015 by Syneto S.R.L. All rights reserved.
  */
 
 /*
@@ -246,8 +247,9 @@ zpool_get_features(zpool_handle_t *zhp)
 		config = zpool_get_config(zhp, NULL);
 	}
 
-	verify(nvlist_lookup_nvlist(config, ZPOOL_CONFIG_FEATURE_STATS,
-	    &features) == 0);
+	if (nvlist_lookup_nvlist(config, ZPOOL_CONFIG_FEATURE_STATS,
+	    &features) != 0)
+		return (NULL);
 
 	return (features);
 }

Modified: projects/release-pkg/contrib/ofed/librdmacm/examples/build/cmatose/Makefile
==============================================================================
--- projects/release-pkg/contrib/ofed/librdmacm/examples/build/cmatose/Makefile	Tue Feb  2 22:26:49 2016	(r295171)
+++ projects/release-pkg/contrib/ofed/librdmacm/examples/build/cmatose/Makefile	Tue Feb  2 22:27:48 2016	(r295172)
@@ -5,7 +5,6 @@
 PROG=	cmatose
 MAN=
 SRCS=	cmatose.c
-LDADD+= -libverbs -lrdmacm -lpthread
-LDADD+= -lmlx4
+LIBADD=	ibverbs rdmacm pthread mlx4
 
 .include <bsd.prog.mk>

Modified: projects/release-pkg/contrib/ofed/librdmacm/examples/build/mckey/Makefile
==============================================================================
--- projects/release-pkg/contrib/ofed/librdmacm/examples/build/mckey/Makefile	Tue Feb  2 22:26:49 2016	(r295171)
+++ projects/release-pkg/contrib/ofed/librdmacm/examples/build/mckey/Makefile	Tue Feb  2 22:27:48 2016	(r295172)
@@ -5,7 +5,6 @@
 PROG=	mckey
 MAN=
 SRCS=	mckey.c
-LDADD+= -libverbs -lrdmacm -lpthread
-LDADD+= -lmlx4
+LIBADD=	ibverbs rdmacm pthread mlx4
 
 .include <bsd.prog.mk>

Modified: projects/release-pkg/contrib/ofed/librdmacm/examples/build/udaddy/Makefile
==============================================================================
--- projects/release-pkg/contrib/ofed/librdmacm/examples/build/udaddy/Makefile	Tue Feb  2 22:26:49 2016	(r295171)
+++ projects/release-pkg/contrib/ofed/librdmacm/examples/build/udaddy/Makefile	Tue Feb  2 22:27:48 2016	(r295172)
@@ -5,7 +5,6 @@
 PROG=	udaddy
 MAN=
 SRCS=	udaddy.c
-LDADD+= -libverbs -lrdmacm -lpthread
-LDADD+= -lmlx4
+LIBADD=	ibverbs rdmacm pthread mlx4
 
 .include <bsd.prog.mk>

Modified: projects/release-pkg/contrib/openresolv/Makefile
==============================================================================
--- projects/release-pkg/contrib/openresolv/Makefile	Tue Feb  2 22:26:49 2016	(r295171)
+++ projects/release-pkg/contrib/openresolv/Makefile	Tue Feb  2 22:27:48 2016	(r295172)
@@ -1,5 +1,5 @@
 PKG=		openresolv
-VERSION=	3.7.0
+VERSION=	3.7.1
 
 # Nasty hack so that make clean works without configure being run
 _CONFIG_MK!=	test -e config.mk && echo config.mk || echo config-null.mk
@@ -37,7 +37,7 @@ SED_RESTARTCMD=		-e 's:@RESTARTCMD \(.*\
 
 DISTPREFIX?=	${PKG}-${VERSION}
 DISTFILEGZ?=	${DISTPREFIX}.tar.gz
-DISTFILE?=	${DISTPREFIX}.tar.bz2
+DISTFILE?=	${DISTPREFIX}.tar.xz
 FOSSILID?=	current
 
 .SUFFIXES: .in
@@ -77,9 +77,9 @@ install: proginstall maninstall
 import:
 	rm -rf /tmp/${DISTPREFIX}
 	${INSTALL} -d /tmp/${DISTPREFIX}
-	cp README ${SRCS} /tmp/${DISPREFIX}
+	cp README ${SRCS} /tmp/${DISTPREFIX}
 
 dist:
 	fossil tarball --name ${DISTPREFIX} ${FOSSILID} ${DISTFILEGZ}
-	gunzip -c ${DISTFILEGZ} |  bzip2 >${DISTFILE}
+	gunzip -c ${DISTFILEGZ} | xz >${DISTFILE}
 	rm ${DISTFILEGZ}

Modified: projects/release-pkg/contrib/openresolv/resolvconf.8.in
==============================================================================
--- projects/release-pkg/contrib/openresolv/resolvconf.8.in	Tue Feb  2 22:26:49 2016	(r295171)
+++ projects/release-pkg/contrib/openresolv/resolvconf.8.in	Tue Feb  2 22:27:48 2016	(r295172)
@@ -22,7 +22,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.Dd April 27, 2014
+.Dd April 27, 2015
 .Dt RESOLVCONF 8
 .Os
 .Sh NAME

Modified: projects/release-pkg/contrib/openresolv/resolvconf.conf.5.in
==============================================================================
--- projects/release-pkg/contrib/openresolv/resolvconf.conf.5.in	Tue Feb  2 22:26:49 2016	(r295171)
+++ projects/release-pkg/contrib/openresolv/resolvconf.conf.5.in	Tue Feb  2 22:27:48 2016	(r295172)
@@ -22,7 +22,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.Dd March 20, 2015
+.Dd May 14, 2015
 .Dt RESOLVCONF.CONF 5
 .Os
 .Sh NAME
@@ -91,6 +91,11 @@ To remove a block, you can use 192.168.*
 These interfaces name servers will only be queried for the domains listed
 in their resolv.conf.
 Useful for VPN domains.
+Setting
+.Sy private_interfaces Ns ="*"
+will stop the forwarding of the root zone and allows the local resolver to
+recursively query the root servers directly.
+Requires a local nameserver other than libc.
 This is equivalent to the
 .Nm resolvconf -p
 option.
@@ -149,7 +154,7 @@ When set to /dev/null or NULL,
 .Sy resolv_conf_local_only
 is defaulted to NO,
 .Sy local_nameservers
-is unset unless overriden and only the information set in
+is unset unless overridden and only the information set in
 .Nm
 is written to
 .Sy resolv_conf .
@@ -271,7 +276,7 @@ Each subscriber attempts to automaticall
 distribution has been catered for.
 Also, users could equally want to use a different version from the one
 installed by default, such as bind8 and bind9.
-To accomodate this, the subscribers have these files in configurable
+To accommodate this, the subscribers have these files in configurable
 variables, documented below.
 .Pp
 .Bl -tag -width indent

Modified: projects/release-pkg/contrib/openresolv/resolvconf.in
==============================================================================
--- projects/release-pkg/contrib/openresolv/resolvconf.in	Tue Feb  2 22:26:49 2016	(r295171)
+++ projects/release-pkg/contrib/openresolv/resolvconf.in	Tue Feb  2 22:27:48 2016	(r295172)
@@ -50,7 +50,6 @@ elif [ -d "$SYSCONFDIR/resolvconf" ]; th
 		interface_order="$(cat "$SYSCONFDIR"/interface-order)"
 	fi
 fi
-TMPDIR="$VARDIR/tmp"
 IFACEDIR="$VARDIR/interfaces"
 METRICDIR="$VARDIR/metrics"
 PRIVATEDIR="$VARDIR/private"

Modified: projects/release-pkg/contrib/openresolv/unbound.in
==============================================================================
--- projects/release-pkg/contrib/openresolv/unbound.in	Tue Feb  2 22:26:49 2016	(r295171)
+++ projects/release-pkg/contrib/openresolv/unbound.in	Tue Feb  2 22:27:48 2016	(r295172)
@@ -45,7 +45,8 @@ for d in $DOMAINS; do
 	ns="${d#*:}"
 	case "$unbound_insecure" in
 	[Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1)
-		newconf="$newconf${NL}domain-insecure: \"$dn\""
+		newconf="$newconf${NL}server:$NL"
+		newconf="$newconf	domain-insecure: \"$dn\"$NL"
 		;;
 	esac
 	newconf="$newconf${NL}forward-zone:$NL	name: \"$dn\"$NL"

Modified: projects/release-pkg/contrib/smbfs/smbutil/print.c
==============================================================================
--- projects/release-pkg/contrib/smbfs/smbutil/print.c	Tue Feb  2 22:26:49 2016	(r295171)
+++ projects/release-pkg/contrib/smbfs/smbutil/print.c	Tue Feb  2 22:27:48 2016	(r295172)
@@ -42,6 +42,7 @@ __FBSDID("$FreeBSD$");
 #include <fcntl.h>
 #include <stdio.h>
 #include <unistd.h>
+#include <string.h>
 #include <strings.h>
 #include <stdlib.h>
 #include <sysexits.h>

Modified: projects/release-pkg/crypto/openssh/sshd_config
==============================================================================
--- projects/release-pkg/crypto/openssh/sshd_config	Tue Feb  2 22:26:49 2016	(r295171)
+++ projects/release-pkg/crypto/openssh/sshd_config	Tue Feb  2 22:27:48 2016	(r295172)
@@ -45,7 +45,7 @@
 # Authentication:
 
 #LoginGraceTime 2m
-#PermitRootLogin prohibit-password
+#PermitRootLogin no
 #StrictModes yes
 #MaxAuthTries 6
 #MaxSessions 10

Modified: projects/release-pkg/crypto/openssh/sshd_config.5
==============================================================================
--- projects/release-pkg/crypto/openssh/sshd_config.5	Tue Feb  2 22:26:49 2016	(r295171)
+++ projects/release-pkg/crypto/openssh/sshd_config.5	Tue Feb  2 22:27:48 2016	(r295172)
@@ -1217,7 +1217,7 @@ The argument must be
 or
 .Dq no .
 The default is
-.Dq prohibit-password .
+.Dq no .
 Note that if
 .Cm ChallengeResponseAuthentication
 is

Modified: projects/release-pkg/lib/libc/tests/gen/Makefile
==============================================================================
--- projects/release-pkg/lib/libc/tests/gen/Makefile	Tue Feb  2 22:26:49 2016	(r295171)
+++ projects/release-pkg/lib/libc/tests/gen/Makefile	Tue Feb  2 22:27:48 2016	(r295172)
@@ -15,6 +15,7 @@ ATF_TESTS_C+=		ftw_test
 ATF_TESTS_C+=		popen_test
 ATF_TESTS_C+=		posix_spawn_test
 ATF_TESTS_C+=		wordexp_test
+ATF_TESTS_C+=		dlopen_empty_test
 
 # TODO: t_closefrom, t_cpuset, t_fmtcheck, t_randomid, t_sleep
 # TODO: t_siginfo (fixes require further inspection)

Copied: projects/release-pkg/lib/libc/tests/gen/dlopen_empty_test.c (from r295171, head/lib/libc/tests/gen/dlopen_empty_test.c)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/release-pkg/lib/libc/tests/gen/dlopen_empty_test.c	Tue Feb  2 22:27:48 2016	(r295172, copy of r295171, head/lib/libc/tests/gen/dlopen_empty_test.c)
@@ -0,0 +1,97 @@
+/*-
+ * Copyright (c) 2016 Maksym Sobolyev
+ * 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/stat.h>
+#include <dlfcn.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <signal.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#include <atf-c.h>
+
+static const char *funname;
+static char *soname;
+
+static void
+sigsegv_handler(int sig __unused)
+{
+        unlink(soname);
+        free(soname);
+        atf_tc_fail("got SIGSEGV in the %s(3)", funname);
+}
+
+ATF_TC(dlopen_empty_test);
+ATF_TC_HEAD(dlopen_empty_test, tc)
+{
+        atf_tc_set_md_var(tc, "descr", "Tests the dlopen() of an empty file "
+                      "returns an error");
+}
+ATF_TC_BODY(dlopen_empty_test, tc)
+{
+        char tempname[] = "/tmp/temp.XXXXXX";
+        char *fname;
+        int fd;
+        void *dlh;
+        struct sigaction act, oact;
+
+        fname = mktemp(tempname);
+        ATF_REQUIRE_MSG(fname != NULL, "mktemp failed; errno=%d", errno);
+        asprintf(&soname, "%s.so", fname);
+        ATF_REQUIRE_MSG(soname != NULL, "asprintf failed; errno=%d", ENOMEM);
+        fd = open(soname, O_WRONLY | O_CREAT | O_TRUNC, DEFFILEMODE);
+        ATF_REQUIRE_MSG(fd != -1, "open(\"%s\") failed; errno=%d", soname, errno);
+        close(fd);
+
+        act.sa_handler = sigsegv_handler;
+        act.sa_flags = 0;
+        sigemptyset(&act.sa_mask);
+        ATF_CHECK_MSG(sigaction(SIGSEGV, &act, &oact) != -1,
+            "sigaction() failed");
+
+        funname = "dlopen";
+        dlh = dlopen(soname, RTLD_LAZY);
+        if (dlh != NULL) {
+                funname = "dlclose";
+                dlclose(dlh);
+        }
+        ATF_REQUIRE_MSG(dlh == NULL, "dlopen(\"%s\") did not fail", soname);
+        unlink(soname);
+        free(soname);
+}
+
+ATF_TP_ADD_TCS(tp)
+{
+
+        ATF_TP_ADD_TC(tp, dlopen_empty_test);
+
+        return (atf_no_error());
+}

Modified: projects/release-pkg/lib/libsysdecode/syscallnames.c
==============================================================================
--- projects/release-pkg/lib/libsysdecode/syscallnames.c	Tue Feb  2 22:26:49 2016	(r295171)
+++ projects/release-pkg/lib/libsysdecode/syscallnames.c	Tue Feb  2 22:27:48 2016	(r295172)
@@ -70,30 +70,30 @@ sysdecode_syscallname(enum sysdecode_abi
 {
 
 	switch (abi) {
-	case FREEBSD:
+	case SYSDECODE_ABI_FREEBSD:
 		if (code < nitems(syscallnames))
 			return (syscallnames[code]);
 		break;
 #if defined(__amd64__) || defined(__powerpc64__)
-	case FREEBSD32:
+	case SYSDECODE_ABI_FREEBSD32:
 		if (code < nitems(freebsd32_syscallnames))
 			return (freebsd32_syscallnames[code]);
 		break;
 #endif
 #if defined(__amd64__) || defined(__i386__)
-	case LINUX:
+	case SYSDECODE_ABI_LINUX:
 		if (code < nitems(linux_syscallnames))
 			return (linux_syscallnames[code]);
 		break;
 #endif
 #ifdef __amd64__
-	case LINUX32:
+	case SYSDECODE_ABI_LINUX32:
 		if (code < nitems(linux32_syscallnames))
 			return (linux32_syscallnames[code]);
 		break;
 #endif
 #if defined(__amd64__) || defined(__aarch64__)
-	case CLOUDABI64:
+	case SYSDECODE_ABI_CLOUDABI64:
 		if (code < nitems(cloudabi64_syscallnames))
 			return (cloudabi64_syscallnames[code]);
 		break;

Modified: projects/release-pkg/lib/libsysdecode/sysdecode.3
==============================================================================
--- projects/release-pkg/lib/libsysdecode/sysdecode.3	Tue Feb  2 22:26:49 2016	(r295171)
+++ projects/release-pkg/lib/libsysdecode/sysdecode.3	Tue Feb  2 22:27:48 2016	(r295172)
@@ -25,7 +25,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd January 24, 2016
+.Dd January 29, 2016
 .Dt SYSDECODE 3
 .Os
 .Sh NAME
@@ -44,23 +44,23 @@ The supported ABIs are named by the
 .Vt enum sysdecode_abi
 enumeration.
 .Pp
-.Bl -tag -width "Li UNKNOWN_ABI" -compact
-.It Li FREEBSD
+.Bl -tag -width "Li SYSDECODE_ABI_CLOUDABI64" -compact
+.It Li SYSDECODE_ABI_FREEBSD
 Native FreeBSD binaries.
 Supported on all platforms.
-.It Li FREEBSD32
+.It Li SYSDECODE_ABI_FREEBSD32
 32-bit FreeBSD binaries.
 Supported on amd64 and powerpc64.
-.It Li LINUX
+.It Li SYSDECODE_ABI_LINUX
 Linux binaries of the same platform.
 Supported on amd64 and i386.
-.It Li LINUX32
+.It Li SYSDECODE_ABI_LINUX32
 32-bit Linux binaries.
 Supported on amd64.
-.It Li CLOUDABI64
+.It Li SYSDECODE_ABI_CLOUDABI64
 64-bit CloudABI binaries.
 Supported on aarch64 and amd64.
-.It Li UNKNOWN_ABI
+.It Li SYSDECODE_ABI_UNKNOWN
 A placeholder for use when the ABI is not known.
 .El
 .Sh SEE ALSO

Modified: projects/release-pkg/lib/libsysdecode/sysdecode.h
==============================================================================
--- projects/release-pkg/lib/libsysdecode/sysdecode.h	Tue Feb  2 22:26:49 2016	(r295171)
+++ projects/release-pkg/lib/libsysdecode/sysdecode.h	Tue Feb  2 22:27:48 2016	(r295172)
@@ -30,12 +30,12 @@
 #define	__SYSDECODE_H__
 
 enum sysdecode_abi {
-	UNKNOWN_ABI = 0,
-	FREEBSD,
-	FREEBSD32,
-	LINUX,
-	LINUX32,
-	CLOUDABI64
+	SYSDECODE_ABI_UNKNOWN = 0,
+	SYSDECODE_ABI_FREEBSD,
+	SYSDECODE_ABI_FREEBSD32,
+	SYSDECODE_ABI_LINUX,
+	SYSDECODE_ABI_LINUX32,
+	SYSDECODE_ABI_CLOUDABI64
 };
 
 const char *sysdecode_ioctlname(unsigned long _val);

Modified: projects/release-pkg/libexec/atrun/atrun.c
==============================================================================
--- projects/release-pkg/libexec/atrun/atrun.c	Tue Feb  2 22:26:49 2016	(r295171)
+++ projects/release-pkg/libexec/atrun/atrun.c	Tue Feb  2 22:27:48 2016	(r295172)
@@ -459,8 +459,9 @@ main(int argc, char *argv[])
     int c;
     int run_batch;
 #ifdef __FreeBSD__
-    size_t ncpu, ncpusz;
+    size_t ncpusz;
     double load_avg = -1;
+    int ncpu;
 #else
     double load_avg = LOADAVG_MX;
 #endif

Modified: projects/release-pkg/libexec/rtld-elf/map_object.c
==============================================================================
--- projects/release-pkg/libexec/rtld-elf/map_object.c	Tue Feb  2 22:26:49 2016	(r295171)
+++ projects/release-pkg/libexec/rtld-elf/map_object.c	Tue Feb  2 22:27:48 2016	(r295172)
@@ -38,7 +38,7 @@
 #include "debug.h"
 #include "rtld.h"
 
-static Elf_Ehdr *get_elf_header(int, const char *);
+static Elf_Ehdr *get_elf_header(int, const char *, const struct stat *);
 static int convert_prot(int);	/* Elf flags -> mmap protection */
 static int convert_flags(int); /* Elf flags -> mmap flags */
 
@@ -91,7 +91,7 @@ map_object(int fd, const char *path, con
     char *note_map;
     size_t note_map_len;
 
-    hdr = get_elf_header(fd, path);
+    hdr = get_elf_header(fd, path, sb);
     if (hdr == NULL)
 	return (NULL);
 
@@ -324,10 +324,16 @@ error:
 }
 
 static Elf_Ehdr *
-get_elf_header(int fd, const char *path)
+get_elf_header(int fd, const char *path, const struct stat *sbp)
 {
 	Elf_Ehdr *hdr;
 
+	/* Make sure file has enough data for the ELF header */
+	if (sbp != NULL && sbp->st_size < sizeof(Elf_Ehdr)) {
+		_rtld_error("%s: invalid file format", path);
+		return (NULL);
+	}
+
 	hdr = mmap(NULL, PAGE_SIZE, PROT_READ, MAP_PRIVATE | MAP_PREFAULT_READ,
 	    fd, 0);
 	if (hdr == (Elf_Ehdr *)MAP_FAILED) {

Modified: projects/release-pkg/sbin/nvmecontrol/Makefile
==============================================================================
--- projects/release-pkg/sbin/nvmecontrol/Makefile	Tue Feb  2 22:26:49 2016	(r295171)
+++ projects/release-pkg/sbin/nvmecontrol/Makefile	Tue Feb  2 22:27:48 2016	(r295172)
@@ -2,7 +2,7 @@
 
 PROG=	nvmecontrol
 SRCS=	nvmecontrol.c devlist.c firmware.c identify.c logpage.c	\
-	perftest.c reset.c nvme_util.c
+	perftest.c reset.c nvme_util.c power.c
 MAN=	nvmecontrol.8
 
 .PATH:	${.CURDIR}/../../sys/dev/nvme

Modified: projects/release-pkg/sbin/nvmecontrol/nvmecontrol.8
==============================================================================
--- projects/release-pkg/sbin/nvmecontrol/nvmecontrol.8	Tue Feb  2 22:26:49 2016	(r295171)
+++ projects/release-pkg/sbin/nvmecontrol/nvmecontrol.8	Tue Feb  2 22:27:48 2016	(r295172)
@@ -70,6 +70,11 @@
 .Op Fl f Ar path_to_firmware
 .Op Fl a
 .Aq device id
+.Nm
+.Ic power
+.Op Fl l
+.Op Fl p power_state
+.Op fl w workload_hint
 .Sh DESCRIPTION
 NVM Express (NVMe) is a storage protocol standard, for SSDs and other
 high-speed storage devices over PCI Express.
@@ -120,6 +125,18 @@ Activate the firmware in slot 4 of the n
 .Pp
 Download the firmware image contained in "/tmp/nvme_firmware" to slot 7 of the
 nvme0 controller and activate it on the next reset.
+.Pp
+.Dl nvmecontrol power -l nvme0
+.Pp
+List all the current power modes.
+.Pp
+.Dl nvmecontrol power -p 3 nvme0
+.Pp
+Set the current power mode.
+.Pp
+.Dl nvmecontrol power nvme0
+.Pp
+Get the current power mode.
 .Sh AUTHORS
 .An -nosplit
 .Nm

Modified: projects/release-pkg/sbin/nvmecontrol/nvmecontrol.c
==============================================================================
--- projects/release-pkg/sbin/nvmecontrol/nvmecontrol.c	Tue Feb  2 22:26:49 2016	(r295171)
+++ projects/release-pkg/sbin/nvmecontrol/nvmecontrol.c	Tue Feb  2 22:27:48 2016	(r295172)
@@ -58,6 +58,7 @@ static struct nvme_function {
 	{"reset",	reset,		RESET_USAGE},
 	{"logpage",	logpage,	LOGPAGE_USAGE},
 	{"firmware",	firmware,	FIRMWARE_USAGE},
+	{"power",	power,		POWER_USAGE},
 	{NULL,		NULL,		NULL},
 };
 

Modified: projects/release-pkg/sbin/nvmecontrol/nvmecontrol.h
==============================================================================
--- projects/release-pkg/sbin/nvmecontrol/nvmecontrol.h	Tue Feb  2 22:26:49 2016	(r295171)
+++ projects/release-pkg/sbin/nvmecontrol/nvmecontrol.h	Tue Feb  2 22:27:48 2016	(r295172)
@@ -55,12 +55,16 @@
 #define FIRMWARE_USAGE							       \
 "       nvmecontrol firmware [-s slot] [-f path_to_firmware] [-a] <controller id>\n"
 
+#define POWER_USAGE							       \
+"       nvmecontrol power [-l] [-p new-state [-w workload-hint]] <controller id>\n"
+
 void devlist(int argc, char *argv[]);
 void identify(int argc, char *argv[]);
 void perftest(int argc, char *argv[]);
 void reset(int argc, char *argv[]);
 void logpage(int argc, char *argv[]);
 void firmware(int argc, char *argv[]);
+void power(int argc, char *argv[]);
 
 int open_dev(const char *str, int *fd, int show_error, int exit_on_error);
 void parse_ns_str(const char *ns_str, char *ctrlr_str, int *nsid);

Copied: projects/release-pkg/sbin/nvmecontrol/power.c (from r295171, head/sbin/nvmecontrol/power.c)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/release-pkg/sbin/nvmecontrol/power.c	Tue Feb  2 22:27:48 2016	(r295172, copy of r295171, head/sbin/nvmecontrol/power.c)
@@ -0,0 +1,185 @@
+/*-
+ * Copyright (c) 2016 Netflix, 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 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$");

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


More information about the svn-src-projects mailing list