From owner-svn-src-user@freebsd.org  Sun Sep  4 22:55:08 2016
Return-Path: <owner-svn-src-user@freebsd.org>
Delivered-To: svn-src-user@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 DAB08B71503
 for <svn-src-user@mailman.ysv.freebsd.org>;
 Sun,  4 Sep 2016 22:55:08 +0000 (UTC) (envelope-from alc@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 4EE2F8A2;
 Sun,  4 Sep 2016 22:55:08 +0000 (UTC) (envelope-from alc@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u84Mt7qm072126;
 Sun, 4 Sep 2016 22:55:07 GMT (envelope-from alc@FreeBSD.org)
Received: (from alc@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id u84Mt6vM072113;
 Sun, 4 Sep 2016 22:55:06 GMT (envelope-from alc@FreeBSD.org)
Message-Id: <201609042255.u84Mt6vM072113@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: alc set sender to alc@FreeBSD.org
 using -f
From: Alan Cox <alc@FreeBSD.org>
Date: Sun, 4 Sep 2016 22:55:06 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
Subject: svn commit: r305400 - in user/alc/PQ_LAUNDRY: bin/cat/tests
 cddl/contrib/opensolaris/cmd/zdb cddl/contrib/opensolaris/cmd/ztest
 contrib/libcxxrt contrib/netbsd-tests contrib/netbsd-tests/bin/cat co...
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
 src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-user>,
 <mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user/>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-user>,
 <mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sun, 04 Sep 2016 22:55:08 -0000

Author: alc
Date: Sun Sep  4 22:55:05 2016
New Revision: 305400
URL: https://svnweb.freebsd.org/changeset/base/305400

Log:
  MFH r305399

Added:
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/bin/cat/d_se_output.in
     - copied unchanged from r305399, head/contrib/netbsd-tests/bin/cat/d_se_output.in
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/bin/cat/d_se_output.out
     - copied unchanged from r305399, head/contrib/netbsd-tests/bin/cat/d_se_output.out
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/bin/sh/t_arith.sh
     - copied unchanged from r305399, head/contrib/netbsd-tests/bin/sh/t_arith.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/bin/sh/t_cmdsub.sh
     - copied unchanged from r305399, head/contrib/netbsd-tests/bin/sh/t_cmdsub.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/bin/sh/t_option.sh
     - copied unchanged from r305399, head/contrib/netbsd-tests/bin/sh/t_option.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/bin/sh/t_redir.sh
     - copied unchanged from r305399, head/contrib/netbsd-tests/bin/sh/t_redir.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/bin/sh/t_redircloexec.sh
     - copied unchanged from r305399, head/contrib/netbsd-tests/bin/sh/t_redircloexec.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/bin/sh/t_shift.sh
     - copied unchanged from r305399, head/contrib/netbsd-tests/bin/sh/t_shift.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/bin/sh/t_varval.sh
     - copied unchanged from r305399, head/contrib/netbsd-tests/bin/sh/t_varval.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/dev/fss/
     - copied from r305399, head/contrib/netbsd-tests/dev/fss/
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/dev/usb/
     - copied from r305399, head/contrib/netbsd-tests/dev/usb/
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/include/sys/t_pslist.c
     - copied unchanged from r305399, head/contrib/netbsd-tests/include/sys/t_pslist.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/kernel/kqueue/t_vnode.c
     - copied unchanged from r305399, head/contrib/netbsd-tests/kernel/kqueue/t_vnode.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/db/h_lfsr.c
     - copied unchanged from r305399, head/contrib/netbsd-tests/lib/libc/db/h_lfsr.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/db/t_db_hash_seq.c
     - copied unchanged from r305399, head/contrib/netbsd-tests/lib/libc/db/t_db_hash_seq.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/inet/t_inet_addr.c
     - copied unchanged from r305399, head/contrib/netbsd-tests/lib/libc/inet/t_inet_addr.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/stdio/t_open_memstream.c
     - copied unchanged from r305399, head/contrib/netbsd-tests/lib/libc/stdio/t_open_memstream.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/stdlib/t_strtoi.c
     - copied unchanged from r305399, head/contrib/netbsd-tests/lib/libc/stdlib/t_strtoi.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/sync/cpp_atomic_ops_linkable.cc
     - copied unchanged from r305399, head/contrib/netbsd-tests/lib/libc/sync/cpp_atomic_ops_linkable.cc
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/sys/t_bind.c
     - copied unchanged from r305399, head/contrib/netbsd-tests/lib/libc/sys/t_bind.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/sys/t_getsockname.c
     - copied unchanged from r305399, head/contrib/netbsd-tests/lib/libc/sys/t_getsockname.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/sys/t_posix_fallocate.c
     - copied unchanged from r305399, head/contrib/netbsd-tests/lib/libc/sys/t_posix_fallocate.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/sys/t_wait.c
     - copied unchanged from r305399, head/contrib/netbsd-tests/lib/libc/sys/t_wait.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libm/t_fenv.c
     - copied unchanged from r305399, head/contrib/netbsd-tests/lib/libm/t_fenv.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libm/t_hypot.c
     - copied unchanged from r305399, head/contrib/netbsd-tests/lib/libm/t_hypot.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libusbhid/
     - copied from r305399, head/contrib/netbsd-tests/lib/libusbhid/
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/net/arp/
     - copied from r305399, head/contrib/netbsd-tests/net/arp/
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/net/icmp/t_icmp6_redirect.sh
     - copied unchanged from r305399, head/contrib/netbsd-tests/net/icmp/t_icmp6_redirect.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/net/icmp/t_icmp_redirect.sh
     - copied unchanged from r305399, head/contrib/netbsd-tests/net/icmp/t_icmp_redirect.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/net/if/ifconf.c
     - copied unchanged from r305399, head/contrib/netbsd-tests/net/if/ifconf.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/net/if/t_ifconf.sh
     - copied unchanged from r305399, head/contrib/netbsd-tests/net/if/t_ifconf.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/net/if/t_ifconfig.sh
     - copied unchanged from r305399, head/contrib/netbsd-tests/net/if/t_ifconfig.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/net/if_gif/
     - copied from r305399, head/contrib/netbsd-tests/net/if_gif/
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/net/if_pppoe/
     - copied from r305399, head/contrib/netbsd-tests/net/if_pppoe/
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/net/if_tap/
     - copied from r305399, head/contrib/netbsd-tests/net/if_tap/
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/net/in_cksum/
     - copied from r305399, head/contrib/netbsd-tests/net/in_cksum/
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/net/mcast/
     - copied from r305399, head/contrib/netbsd-tests/net/mcast/
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/net/mpls/t_mpls_fw6.sh
     - copied unchanged from r305399, head/contrib/netbsd-tests/net/mpls/t_mpls_fw6.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/net/mpls/t_mpls_fw64.sh
     - copied unchanged from r305399, head/contrib/netbsd-tests/net/mpls/t_mpls_fw64.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/net/ndp/
     - copied from r305399, head/contrib/netbsd-tests/net/ndp/
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/net/net/t_forwarding.sh
     - copied unchanged from r305399, head/contrib/netbsd-tests/net/net/t_forwarding.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/net/net/t_ipaddress.sh
     - copied unchanged from r305399, head/contrib/netbsd-tests/net/net/t_ipaddress.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/net/net/t_ipv6_lifetime.sh
     - copied unchanged from r305399, head/contrib/netbsd-tests/net/net/t_ipv6_lifetime.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/net/net/t_ipv6address.sh
     - copied unchanged from r305399, head/contrib/netbsd-tests/net/net/t_ipv6address.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/net/route/t_flags.sh
     - copied unchanged from r305399, head/contrib/netbsd-tests/net/route/t_flags.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/net/route/t_flags6.sh
     - copied unchanged from r305399, head/contrib/netbsd-tests/net/route/t_flags6.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/net/route/t_route.sh
     - copied unchanged from r305399, head/contrib/netbsd-tests/net/route/t_route.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/sbin/gpt/
     - copied from r305399, head/contrib/netbsd-tests/sbin/gpt/
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/sbin/resize_ffs/t_check.sh
     - copied unchanged from r305399, head/contrib/netbsd-tests/sbin/resize_ffs/t_check.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/sys/net/
     - copied from r305399, head/contrib/netbsd-tests/sys/net/
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/sys/netatalk/
     - copied from r305399, head/contrib/netbsd-tests/sys/netatalk/
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/sys/netinet/
     - copied from r305399, head/contrib/netbsd-tests/sys/netinet/
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/sys/netinet6/
     - copied from r305399, head/contrib/netbsd-tests/sys/netinet6/
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/usr.bin/config/d_min
     - copied unchanged from r305399, head/contrib/netbsd-tests/usr.bin/config/d_min
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/usr.bin/gdb/
     - copied from r305399, head/contrib/netbsd-tests/usr.bin/gdb/
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/usr.bin/ld/
     - copied from r305399, head/contrib/netbsd-tests/usr.bin/ld/
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/usr.bin/netpgpverify/Testspec
     - copied unchanged from r305399, head/contrib/netbsd-tests/usr.bin/netpgpverify/Testspec
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/usr.bin/xlint/lint1/d_c99_anon_struct.c
     - copied unchanged from r305399, head/contrib/netbsd-tests/usr.bin/xlint/lint1/d_c99_anon_struct.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/usr.bin/xlint/lint1/d_c99_compound_literal_comma.c
     - copied unchanged from r305399, head/contrib/netbsd-tests/usr.bin/xlint/lint1/d_c99_compound_literal_comma.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/usr.bin/xlint/lint1/d_c99_flex_array_packed.c
     - copied unchanged from r305399, head/contrib/netbsd-tests/usr.bin/xlint/lint1/d_c99_flex_array_packed.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/usr.bin/xlint/lint1/d_c99_nested_struct.c
     - copied unchanged from r305399, head/contrib/netbsd-tests/usr.bin/xlint/lint1/d_c99_nested_struct.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/usr.bin/xlint/lint1/d_c99_union_init4.c
     - copied unchanged from r305399, head/contrib/netbsd-tests/usr.bin/xlint/lint1/d_c99_union_init4.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/usr.bin/xlint/lint1/d_cast_fun_array_param.c
     - copied unchanged from r305399, head/contrib/netbsd-tests/usr.bin/xlint/lint1/d_cast_fun_array_param.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/usr.bin/xlint/lint1/d_type_question_colon.c
     - copied unchanged from r305399, head/contrib/netbsd-tests/usr.bin/xlint/lint1/d_type_question_colon.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/usr.bin/xlint/lint1/d_typefun.c
     - copied unchanged from r305399, head/contrib/netbsd-tests/usr.bin/xlint/lint1/d_typefun.c
  user/alc/PQ_LAUNDRY/contrib/unbound/cachedb/
     - copied from r305399, head/contrib/unbound/cachedb/
  user/alc/PQ_LAUNDRY/contrib/unbound/compat/strsep.c
     - copied unchanged from r305399, head/contrib/unbound/compat/strsep.c
  user/alc/PQ_LAUNDRY/contrib/unbound/util/ub_event.c
     - copied unchanged from r305399, head/contrib/unbound/util/ub_event.c
  user/alc/PQ_LAUNDRY/contrib/unbound/util/ub_event.h
     - copied unchanged from r305399, head/contrib/unbound/util/ub_event.h
  user/alc/PQ_LAUNDRY/contrib/unbound/util/ub_event_pluggable.c
     - copied unchanged from r305399, head/contrib/unbound/util/ub_event_pluggable.c
  user/alc/PQ_LAUNDRY/lib/libc/tests/stdio/open_memstream2_test.c
     - copied unchanged from r305399, head/lib/libc/tests/stdio/open_memstream2_test.c
  user/alc/PQ_LAUNDRY/lib/msun/amd64/e_fmod.S
     - copied unchanged from r305399, head/lib/msun/amd64/e_fmod.S
  user/alc/PQ_LAUNDRY/lib/msun/amd64/e_fmodf.S
     - copied unchanged from r305399, head/lib/msun/amd64/e_fmodf.S
  user/alc/PQ_LAUNDRY/lib/msun/amd64/e_fmodl.S
     - copied unchanged from r305399, head/lib/msun/amd64/e_fmodl.S
  user/alc/PQ_LAUNDRY/lib/msun/i387/e_fmodf.S
     - copied unchanged from r305399, head/lib/msun/i387/e_fmodf.S
  user/alc/PQ_LAUNDRY/lib/msun/i387/e_fmodl.S
     - copied unchanged from r305399, head/lib/msun/i387/e_fmodl.S
  user/alc/PQ_LAUNDRY/sys/arm/allwinner/clk/aw_thsclk.c
     - copied unchanged from r305399, head/sys/arm/allwinner/clk/aw_thsclk.c
  user/alc/PQ_LAUNDRY/sys/boot/i386/boot.ldscript
     - copied unchanged from r305399, head/sys/boot/i386/boot.ldscript
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/bhnd_erom.c
     - copied unchanged from r305399, head/sys/dev/bhnd/bhnd_erom.c
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/bhnd_erom.h
     - copied unchanged from r305399, head/sys/dev/bhnd/bhnd_erom.h
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/bhnd_erom_if.m
     - copied unchanged from r305399, head/sys/dev/bhnd/bhnd_erom_if.m
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/bhnd_erom_types.h
     - copied unchanged from r305399, head/sys/dev/bhnd/bhnd_erom_types.h
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/siba/siba_erom.c
     - copied unchanged from r305399, head/sys/dev/bhnd/siba/siba_erom.c
Deleted:
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/bin/sh/t_compexit.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/fs/nfs/nfsservice/mountd.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/fs/nfs/nfsservice/nfsd.c
  user/alc/PQ_LAUNDRY/lib/libc/tests/stdio/open_memstream_test.c
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/pmu/
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/soc/
  user/alc/PQ_LAUNDRY/sys/mips/broadcom/bcm_bcma.c
  user/alc/PQ_LAUNDRY/sys/mips/broadcom/bcm_siba.c
  user/alc/PQ_LAUNDRY/sys/mips/sentry5/
  user/alc/PQ_LAUNDRY/sys/modules/bhnd/nvram/
  user/alc/PQ_LAUNDRY/sys/vm/vm_zeroidle.c
Modified:
  user/alc/PQ_LAUNDRY/bin/cat/tests/Makefile
  user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/cmd/zdb/zdb.c
  user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/cmd/ztest/ztest.c
  user/alc/PQ_LAUNDRY/contrib/libcxxrt/unwind-arm.h
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/bin/cat/d_align.in
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/bin/cat/d_align.out
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/bin/cat/t_cat.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/bin/sh/dotcmd/scoped_command
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/bin/sh/dotcmd/t_dotcmd.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/bin/sh/t_evaltested.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/bin/sh/t_exit.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/bin/sh/t_expand.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/bin/sh/t_fsplit.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/bin/sh/t_here.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/bin/sh/t_set_e.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/bin/sh/t_ulimit.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/bin/sh/t_varquote.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/bin/sh/t_wait.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/crypto/opencrypto/t_opencrypto.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/dev/audio/t_pad_output.bz2.uue
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/dev/dm/h_dm.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/dev/sysmon/t_swsensor.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/dev/sysmon/t_swwdog.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/fs/common/fstest_lfs.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/fs/common/h_fsmacros.h
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/fs/nfs/nfsservice/rumpnfsd.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/fs/nfs/t_rquotad.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/fs/tmpfs/t_vnd.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/fs/vfs/t_io.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/fs/vfs/t_renamerace.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/fs/vfs/t_unpriv.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/fs/vfs/t_vnops.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/games/t_factor.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/h_macros.h
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/include/sys/t_bitops.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/include/sys/t_cdefs.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/include/sys/t_socket.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/include/t_paths.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/ipf/expected/n14
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/ipf/expected/n14_6
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/ipf/t_filter_parse.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/ipf/t_nat_exec.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/kernel/kqueue/t_ioctl.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/kernel/kqueue/t_proc1.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/kernel/kqueue/t_proc2.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/kernel/kqueue/t_proc3.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/kernel/t_rnd.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libbpfjit/t_bpfjit.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/arch/ia64/return_one.S
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/arch/powerpc/return_one.S
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/arch/riscv/return_one.S
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/db/t_db.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/gen/execve/t_execve.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/gen/isqemu.h
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/gen/posix_spawn/t_spawn.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/gen/t_fnmatch.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/gen/t_fpsetmask.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/gen/t_randomid.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/gen/t_siginfo.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/gen/t_sleep.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/gen/t_time.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/gen/t_vis.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/inet/t_inet_network.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/net/t_servent.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/rpc/t_rpc.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/stdlib/t_getenv.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/stdlib/t_posix_memalign.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/stdlib/t_strtod.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/stdlib/t_strtol.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/string/t_memset.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/sys/t_connect.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/sys/t_getrusage.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/sys/t_kevent.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/sys/t_mlock.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/sys/t_mmap.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/sys/t_mprotect.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/sys/t_setrlimit.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/sys/t_sigqueue.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/time/t_strptime.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libcurses/director/testlang_parse.y
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libm/t_exp.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libm/t_fmod.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libm/t_log.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libm/t_pow.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libpthread/t_cond.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libpthread/t_mutex.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libpthread/t_rwlock.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/librumpclient/t_exec.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/librumpclient/t_fd.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/librumphijack/t_tcpip.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libutil/t_parsedate.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/net/bpfilter/t_bpfilter.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/net/bpfjit/t_bpfjit.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/net/icmp/t_forward.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/net/icmp/t_ping.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/net/icmp/t_ping2.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/net/if_bridge/t_bridge.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/net/mpls/t_ldp_regen.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/net/mpls/t_mpls_fw.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/net/mpls/t_rfc4182.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/net/net/t_tcp.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/net/route/t_change.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/rump/modautoload/t_modautoload.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/rump/rumpkern/h_server/h_simpleserver.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/rump/rumpkern/t_lwproc.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/rump/rumpkern/t_sp.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/rump/rumpnet/t_shmif.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/rump/rumpvfs/t_p2kifs.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/sbin/resize_ffs/common.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/sbin/resize_ffs/t_grow.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/sbin/resize_ffs/t_grow_swapped.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/sbin/resize_ffs/t_shrink.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/sbin/resize_ffs/t_shrink_swapped.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/sbin/sysctl/t_perm.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/share/mk/t_lib.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/share/mk/t_prog.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/share/mk/t_test.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/usr.bin/cc/t_hello.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/usr.bin/config/support/conf/files
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/usr.bin/config/t_config.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/usr.bin/make/t_make.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/usr.bin/netpgpverify/t_netpgpverify.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/usr.bin/sed/t_sed.sh
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/usr.bin/sort/d_any_char_dflag_out.txt   (contents, props changed)
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/usr.bin/sort/d_any_char_fflag_out.txt   (contents, props changed)
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/usr.bin/sort/d_any_char_iflag_out.txt   (contents, props changed)
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/usr.sbin/traceroute/t_traceroute.sh
  user/alc/PQ_LAUNDRY/contrib/one-true-awk/b.c
  user/alc/PQ_LAUNDRY/contrib/unbound/Makefile.in
  user/alc/PQ_LAUNDRY/contrib/unbound/acx_nlnetlabs.m4
  user/alc/PQ_LAUNDRY/contrib/unbound/compat/explicit_bzero.c
  user/alc/PQ_LAUNDRY/contrib/unbound/compat/getentropy_linux.c
  user/alc/PQ_LAUNDRY/contrib/unbound/config.h
  user/alc/PQ_LAUNDRY/contrib/unbound/config.h.in
  user/alc/PQ_LAUNDRY/contrib/unbound/configure
  user/alc/PQ_LAUNDRY/contrib/unbound/configure.ac
  user/alc/PQ_LAUNDRY/contrib/unbound/daemon/daemon.c
  user/alc/PQ_LAUNDRY/contrib/unbound/daemon/daemon.h
  user/alc/PQ_LAUNDRY/contrib/unbound/daemon/remote.c
  user/alc/PQ_LAUNDRY/contrib/unbound/daemon/unbound.c
  user/alc/PQ_LAUNDRY/contrib/unbound/daemon/worker.c
  user/alc/PQ_LAUNDRY/contrib/unbound/dns64/dns64.c
  user/alc/PQ_LAUNDRY/contrib/unbound/dnstap/dnstap.c
  user/alc/PQ_LAUNDRY/contrib/unbound/doc/Changelog
  user/alc/PQ_LAUNDRY/contrib/unbound/doc/README
  user/alc/PQ_LAUNDRY/contrib/unbound/doc/example.conf
  user/alc/PQ_LAUNDRY/contrib/unbound/doc/example.conf.in
  user/alc/PQ_LAUNDRY/contrib/unbound/doc/libunbound.3
  user/alc/PQ_LAUNDRY/contrib/unbound/doc/libunbound.3.in
  user/alc/PQ_LAUNDRY/contrib/unbound/doc/unbound-anchor.8
  user/alc/PQ_LAUNDRY/contrib/unbound/doc/unbound-anchor.8.in
  user/alc/PQ_LAUNDRY/contrib/unbound/doc/unbound-checkconf.8
  user/alc/PQ_LAUNDRY/contrib/unbound/doc/unbound-checkconf.8.in
  user/alc/PQ_LAUNDRY/contrib/unbound/doc/unbound-control.8
  user/alc/PQ_LAUNDRY/contrib/unbound/doc/unbound-control.8.in
  user/alc/PQ_LAUNDRY/contrib/unbound/doc/unbound-host.1
  user/alc/PQ_LAUNDRY/contrib/unbound/doc/unbound-host.1.in
  user/alc/PQ_LAUNDRY/contrib/unbound/doc/unbound.8
  user/alc/PQ_LAUNDRY/contrib/unbound/doc/unbound.8.in
  user/alc/PQ_LAUNDRY/contrib/unbound/doc/unbound.conf.5
  user/alc/PQ_LAUNDRY/contrib/unbound/doc/unbound.conf.5.in
  user/alc/PQ_LAUNDRY/contrib/unbound/iterator/iter_fwd.c
  user/alc/PQ_LAUNDRY/contrib/unbound/iterator/iter_utils.c
  user/alc/PQ_LAUNDRY/contrib/unbound/iterator/iter_utils.h
  user/alc/PQ_LAUNDRY/contrib/unbound/iterator/iterator.c
  user/alc/PQ_LAUNDRY/contrib/unbound/iterator/iterator.h
  user/alc/PQ_LAUNDRY/contrib/unbound/libunbound/context.h
  user/alc/PQ_LAUNDRY/contrib/unbound/libunbound/libunbound.c
  user/alc/PQ_LAUNDRY/contrib/unbound/libunbound/libworker.c
  user/alc/PQ_LAUNDRY/contrib/unbound/libunbound/libworker.h
  user/alc/PQ_LAUNDRY/contrib/unbound/libunbound/python/libunbound.i
  user/alc/PQ_LAUNDRY/contrib/unbound/libunbound/ubsyms.def
  user/alc/PQ_LAUNDRY/contrib/unbound/libunbound/unbound-event.h
  user/alc/PQ_LAUNDRY/contrib/unbound/libunbound/worker.h
  user/alc/PQ_LAUNDRY/contrib/unbound/services/cache/dns.c
  user/alc/PQ_LAUNDRY/contrib/unbound/services/listen_dnsport.c
  user/alc/PQ_LAUNDRY/contrib/unbound/services/listen_dnsport.h
  user/alc/PQ_LAUNDRY/contrib/unbound/services/localzone.c
  user/alc/PQ_LAUNDRY/contrib/unbound/services/localzone.h
  user/alc/PQ_LAUNDRY/contrib/unbound/services/mesh.c
  user/alc/PQ_LAUNDRY/contrib/unbound/services/modstack.c
  user/alc/PQ_LAUNDRY/contrib/unbound/services/outside_network.c
  user/alc/PQ_LAUNDRY/contrib/unbound/services/outside_network.h
  user/alc/PQ_LAUNDRY/contrib/unbound/sldns/keyraw.c
  user/alc/PQ_LAUNDRY/contrib/unbound/sldns/parseutil.c
  user/alc/PQ_LAUNDRY/contrib/unbound/sldns/rrdef.h
  user/alc/PQ_LAUNDRY/contrib/unbound/sldns/str2wire.c
  user/alc/PQ_LAUNDRY/contrib/unbound/sldns/wire2str.c
  user/alc/PQ_LAUNDRY/contrib/unbound/smallapp/unbound-checkconf.c
  user/alc/PQ_LAUNDRY/contrib/unbound/smallapp/unbound-control.c
  user/alc/PQ_LAUNDRY/contrib/unbound/smallapp/worker_cb.c
  user/alc/PQ_LAUNDRY/contrib/unbound/util/config_file.c
  user/alc/PQ_LAUNDRY/contrib/unbound/util/config_file.h
  user/alc/PQ_LAUNDRY/contrib/unbound/util/configlexer.lex
  user/alc/PQ_LAUNDRY/contrib/unbound/util/configparser.y
  user/alc/PQ_LAUNDRY/contrib/unbound/util/data/dname.c
  user/alc/PQ_LAUNDRY/contrib/unbound/util/data/msgencode.c
  user/alc/PQ_LAUNDRY/contrib/unbound/util/data/msgparse.c
  user/alc/PQ_LAUNDRY/contrib/unbound/util/data/msgparse.h
  user/alc/PQ_LAUNDRY/contrib/unbound/util/data/msgreply.c
  user/alc/PQ_LAUNDRY/contrib/unbound/util/data/msgreply.h
  user/alc/PQ_LAUNDRY/contrib/unbound/util/fptr_wlist.c
  user/alc/PQ_LAUNDRY/contrib/unbound/util/fptr_wlist.h
  user/alc/PQ_LAUNDRY/contrib/unbound/util/iana_ports.inc
  user/alc/PQ_LAUNDRY/contrib/unbound/util/module.h
  user/alc/PQ_LAUNDRY/contrib/unbound/util/net_help.c
  user/alc/PQ_LAUNDRY/contrib/unbound/util/netevent.c
  user/alc/PQ_LAUNDRY/contrib/unbound/util/netevent.h
  user/alc/PQ_LAUNDRY/contrib/unbound/util/tube.c
  user/alc/PQ_LAUNDRY/contrib/unbound/util/tube.h
  user/alc/PQ_LAUNDRY/contrib/unbound/validator/autotrust.c
  user/alc/PQ_LAUNDRY/contrib/unbound/validator/val_anchor.c
  user/alc/PQ_LAUNDRY/contrib/unbound/validator/val_secalgo.c
  user/alc/PQ_LAUNDRY/contrib/unbound/validator/val_secalgo.h
  user/alc/PQ_LAUNDRY/lib/libc/tests/db/Makefile
  user/alc/PQ_LAUNDRY/lib/libc/tests/hash/Makefile
  user/alc/PQ_LAUNDRY/lib/libc/tests/inet/Makefile
  user/alc/PQ_LAUNDRY/lib/libc/tests/stdio/Makefile
  user/alc/PQ_LAUNDRY/lib/libc/tests/stdlib/Makefile
  user/alc/PQ_LAUNDRY/lib/libc/tests/sys/Makefile
  user/alc/PQ_LAUNDRY/lib/libifconfig/libifconfig.c
  user/alc/PQ_LAUNDRY/lib/libifconfig/libifconfig.h
  user/alc/PQ_LAUNDRY/lib/libifconfig/libifconfig_internal.c
  user/alc/PQ_LAUNDRY/lib/libifconfig/libifconfig_internal.h
  user/alc/PQ_LAUNDRY/lib/libunbound/Makefile
  user/alc/PQ_LAUNDRY/lib/msun/amd64/Makefile.inc
  user/alc/PQ_LAUNDRY/lib/msun/i387/Makefile.inc
  user/alc/PQ_LAUNDRY/lib/msun/src/e_fmod.c
  user/alc/PQ_LAUNDRY/lib/msun/tests/Makefile
  user/alc/PQ_LAUNDRY/share/dtrace/mbuf.d
  user/alc/PQ_LAUNDRY/share/examples/libifconfig/ifcreate.c
  user/alc/PQ_LAUNDRY/share/examples/libifconfig/ifdestroy.c
  user/alc/PQ_LAUNDRY/share/examples/libifconfig/setdescription.c
  user/alc/PQ_LAUNDRY/share/examples/libifconfig/setmtu.c
  user/alc/PQ_LAUNDRY/share/man/man9/Makefile
  user/alc/PQ_LAUNDRY/share/man/man9/pmap.9
  user/alc/PQ_LAUNDRY/share/man/man9/pmap_zero_page.9
  user/alc/PQ_LAUNDRY/sys/amd64/amd64/pmap.c
  user/alc/PQ_LAUNDRY/sys/arm/allwinner/aw_sid.c
  user/alc/PQ_LAUNDRY/sys/arm/allwinner/aw_thermal.c
  user/alc/PQ_LAUNDRY/sys/arm/allwinner/if_awg.c
  user/alc/PQ_LAUNDRY/sys/arm/arm/pmap-v4.c
  user/alc/PQ_LAUNDRY/sys/arm/arm/pmap-v6.c
  user/alc/PQ_LAUNDRY/sys/arm64/arm64/pmap.c
  user/alc/PQ_LAUNDRY/sys/arm64/conf/GENERIC
  user/alc/PQ_LAUNDRY/sys/boot/fdt/dts/arm64/a64.dtsi
  user/alc/PQ_LAUNDRY/sys/boot/fdt/dts/arm64/pine64_plus.dts
  user/alc/PQ_LAUNDRY/sys/boot/i386/Makefile.inc
  user/alc/PQ_LAUNDRY/sys/boot/i386/boot0/Makefile
  user/alc/PQ_LAUNDRY/sys/boot/i386/boot2/Makefile
  user/alc/PQ_LAUNDRY/sys/boot/i386/btx/btx/Makefile
  user/alc/PQ_LAUNDRY/sys/boot/i386/btx/btxldr/Makefile
  user/alc/PQ_LAUNDRY/sys/boot/i386/cdboot/Makefile
  user/alc/PQ_LAUNDRY/sys/boot/i386/gptboot/Makefile
  user/alc/PQ_LAUNDRY/sys/boot/i386/gptzfsboot/Makefile
  user/alc/PQ_LAUNDRY/sys/boot/i386/mbr/Makefile
  user/alc/PQ_LAUNDRY/sys/boot/i386/pmbr/Makefile
  user/alc/PQ_LAUNDRY/sys/boot/i386/pxeldr/Makefile
  user/alc/PQ_LAUNDRY/sys/boot/i386/zfsboot/Makefile
  user/alc/PQ_LAUNDRY/sys/boot/mips/uboot/ldscript.mips
  user/alc/PQ_LAUNDRY/sys/boot/pc98/Makefile.inc
  user/alc/PQ_LAUNDRY/sys/boot/pc98/boot0/Makefile
  user/alc/PQ_LAUNDRY/sys/boot/pc98/boot2/Makefile
  user/alc/PQ_LAUNDRY/sys/boot/pc98/btx/btx/Makefile
  user/alc/PQ_LAUNDRY/sys/boot/pc98/btx/btxldr/Makefile
  user/alc/PQ_LAUNDRY/sys/boot/pc98/cdboot/Makefile
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_diff.c
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_traverse.c
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode_sync.c
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scan.c
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/refcount.c
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/arc.h
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dbuf.h
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_impl.h
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dnode.h
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dataset.h
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/metaslab.h
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/metaslab_impl.h
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/refcount.h
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa.h
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_impl.h
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_impl.h
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zap.h
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zap_impl.h
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio.h
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio_checksum.h
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio_impl.h
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_cache.c
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_disk.c
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_mirror.c
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap.c
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap_micro.c
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio_checksum.c
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h
  user/alc/PQ_LAUNDRY/sys/conf/files
  user/alc/PQ_LAUNDRY/sys/conf/files.arm64
  user/alc/PQ_LAUNDRY/sys/conf/kern.mk
  user/alc/PQ_LAUNDRY/sys/conf/ldscript.arm64
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/bcma/bcma.c
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/bcma/bcma.h
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/bcma/bcma_bhndb.c
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/bcma/bcma_erom.c
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/bcma/bcma_eromvar.h
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/bcma/bcma_nexus.c
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/bcma/bcma_subr.c
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/bcma/bcmavar.h
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/bhnd.h
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/bhnd_bus_if.m
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/bhnd_match.h
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/bhnd_nexus.c
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/bhnd_subr.c
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/bhndb/bhnd_bhndb.c
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/bhndb/bhndb.c
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/bhndb/bhndb_bus_if.m
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/bhndb/bhndb_if.m
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/bhndb/bhndb_pci.c
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/bhndb/bhndb_pci_sprom.c
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/bhndb/bhndb_private.h
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/bhndb/bhndb_subr.c
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/bhndb/bhndbvar.h
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/cores/chipc/chipcreg.h
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/siba/siba.c
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/siba/siba.h
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/siba/siba_bhndb.c
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/siba/siba_nexus.c
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/siba/siba_subr.c
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/siba/sibareg.h
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/siba/sibavar.h
  user/alc/PQ_LAUNDRY/sys/dev/bwn/if_bwn_pci.c
  user/alc/PQ_LAUNDRY/sys/dev/bwn/if_bwn_pcivar.h
  user/alc/PQ_LAUNDRY/sys/dev/cxgb/cxgb_sge.c
  user/alc/PQ_LAUNDRY/sys/dev/cxgbe/cxgbei/cxgbei.c
  user/alc/PQ_LAUNDRY/sys/dev/drm2/drmP.h
  user/alc/PQ_LAUNDRY/sys/dev/ppbus/ppb_1284.c
  user/alc/PQ_LAUNDRY/sys/dev/ppbus/ppb_base.c
  user/alc/PQ_LAUNDRY/sys/dev/ppbus/ppbconf.h
  user/alc/PQ_LAUNDRY/sys/dev/usb/serial/uplcom.c
  user/alc/PQ_LAUNDRY/sys/i386/i386/pmap.c
  user/alc/PQ_LAUNDRY/sys/i386/include/pmap.h
  user/alc/PQ_LAUNDRY/sys/kern/subr_sleepqueue.c
  user/alc/PQ_LAUNDRY/sys/kern/vfs_cache.c
  user/alc/PQ_LAUNDRY/sys/mips/broadcom/bcm_machdep.c
  user/alc/PQ_LAUNDRY/sys/mips/broadcom/bcm_machdep.h
  user/alc/PQ_LAUNDRY/sys/mips/broadcom/bcm_pmu.c
  user/alc/PQ_LAUNDRY/sys/mips/broadcom/files.broadcom
  user/alc/PQ_LAUNDRY/sys/mips/mips/pmap.c
  user/alc/PQ_LAUNDRY/sys/modules/bhnd/Makefile
  user/alc/PQ_LAUNDRY/sys/modules/bhnd/bcma/Makefile
  user/alc/PQ_LAUNDRY/sys/modules/bhnd/bcma_bhndb/Makefile
  user/alc/PQ_LAUNDRY/sys/modules/bhnd/bhndb/Makefile
  user/alc/PQ_LAUNDRY/sys/modules/bhnd/siba/Makefile
  user/alc/PQ_LAUNDRY/sys/modules/bhnd/siba_bhndb/Makefile
  user/alc/PQ_LAUNDRY/sys/modules/bwn/Makefile
  user/alc/PQ_LAUNDRY/sys/netinet/igmp.c
  user/alc/PQ_LAUNDRY/sys/powerpc/aim/mmu_oea.c
  user/alc/PQ_LAUNDRY/sys/powerpc/aim/mmu_oea64.c
  user/alc/PQ_LAUNDRY/sys/powerpc/booke/pmap.c
  user/alc/PQ_LAUNDRY/sys/powerpc/powerpc/mmu_if.m
  user/alc/PQ_LAUNDRY/sys/powerpc/powerpc/pmap_dispatch.c
  user/alc/PQ_LAUNDRY/sys/riscv/riscv/pmap.c
  user/alc/PQ_LAUNDRY/sys/sparc64/sparc64/pmap.c
  user/alc/PQ_LAUNDRY/sys/sys/filedesc.h
  user/alc/PQ_LAUNDRY/sys/vm/pmap.h
  user/alc/PQ_LAUNDRY/sys/vm/swap_pager.c
  user/alc/PQ_LAUNDRY/sys/vm/vm_meter.c
  user/alc/PQ_LAUNDRY/sys/vm/vm_page.c
  user/alc/PQ_LAUNDRY/sys/vm/vm_page.h
  user/alc/PQ_LAUNDRY/sys/vm/vm_phys.c
  user/alc/PQ_LAUNDRY/sys/vm/vm_phys.h
  user/alc/PQ_LAUNDRY/tests/sys/acl/04.sh
  user/alc/PQ_LAUNDRY/tests/sys/mac/bsdextended/matches_test.sh
  user/alc/PQ_LAUNDRY/usr.sbin/unbound/checkconf/Makefile
  user/alc/PQ_LAUNDRY/usr.sbin/unbound/control/Makefile
  user/alc/PQ_LAUNDRY/usr.sbin/unbound/daemon/Makefile
Directory Properties:
  user/alc/PQ_LAUNDRY/   (props changed)
  user/alc/PQ_LAUNDRY/cddl/   (props changed)
  user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/   (props changed)
  user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/cmd/zdb/   (props changed)
  user/alc/PQ_LAUNDRY/contrib/libcxxrt/   (props changed)
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/   (props changed)
  user/alc/PQ_LAUNDRY/contrib/one-true-awk/   (props changed)
  user/alc/PQ_LAUNDRY/contrib/unbound/   (props changed)
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/   (props changed)

Modified: user/alc/PQ_LAUNDRY/bin/cat/tests/Makefile
==============================================================================
--- user/alc/PQ_LAUNDRY/bin/cat/tests/Makefile	Sun Sep  4 22:30:46 2016	(r305399)
+++ user/alc/PQ_LAUNDRY/bin/cat/tests/Makefile	Sun Sep  4 22:55:05 2016	(r305400)
@@ -6,7 +6,15 @@ NETBSD_ATF_TESTS_SH=		cat_test
 
 ${PACKAGE}FILES+=		d_align.in
 ${PACKAGE}FILES+=		d_align.out
+${PACKAGE}FILES+=		d_se_output.in
+${PACKAGE}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: user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/cmd/zdb/zdb.c
==============================================================================
--- user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/cmd/zdb/zdb.c	Sun Sep  4 22:30:46 2016	(r305399)
+++ user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/cmd/zdb/zdb.c	Sun Sep  4 22:55:05 2016	(r305400)
@@ -21,7 +21,7 @@
 
 /*
  * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2011, 2015 by Delphix. All rights reserved.
+ * Copyright (c) 2011, 2016 by Delphix. All rights reserved.
  * Copyright (c) 2014 Integros [integros.com]
  */
 
@@ -117,7 +117,7 @@ static void
 usage(void)
 {
 	(void) fprintf(stderr,
-	    "Usage: %s [-CumMdibcsDvhLXFPA] [-t txg] [-e [-p path...]] "
+	    "Usage: %s [-CumMdibcsDvhLXFPAG] [-t txg] [-e [-p path...]] "
 	    "[-U config] [-I inflight I/Os] [-x dumpdir] poolname [object...]\n"
 	    "       %s [-divPA] [-e -p path...] [-U config] dataset "
 	    "[object...]\n"
@@ -178,12 +178,23 @@ usage(void)
 	(void) fprintf(stderr, "        -I <number of inflight I/Os> -- "
 	    "specify the maximum number of "
 	    "checksumming I/Os [default is 200]\n");
+	(void) fprintf(stderr, "        -G dump zfs_dbgmsg buffer before "
+	    "exiting\n");
 	(void) fprintf(stderr, "Specify an option more than once (e.g. -bb) "
 	    "to make only that option verbose\n");
 	(void) fprintf(stderr, "Default is to dump everything non-verbosely\n");
 	exit(1);
 }
 
+static void
+dump_debug_buffer()
+{
+	if (dump_opt['G']) {
+		(void) printf("\n");
+		zfs_dbgmsg_print("zdb");
+	}
+}
+
 /*
  * Called for usage errors that are discovered after a call to spa_open(),
  * dmu_bonus_hold(), or pool_match().  abort() is called for other errors.
@@ -200,6 +211,8 @@ fatal(const char *fmt, ...)
 	va_end(ap);
 	(void) fprintf(stderr, "\n");
 
+	dump_debug_buffer();
+
 	exit(1);
 }
 
@@ -1289,7 +1302,7 @@ visit_indirect(spa_t *spa, const dnode_p
 		}
 		if (!err)
 			ASSERT3U(fill, ==, BP_GET_FILL(bp));
-		(void) arc_buf_remove_ref(buf, &buf);
+		arc_buf_destroy(buf, &buf);
 	}
 
 	return (err);
@@ -3103,8 +3116,10 @@ dump_zpool(spa_t *spa)
 	if (dump_opt['h'])
 		dump_history(spa);
 
-	if (rc != 0)
+	if (rc != 0) {
+		dump_debug_buffer();
 		exit(rc);
+	}
 }
 
 #define	ZDB_FLAG_CHECKSUM	0x0001
@@ -3575,7 +3590,7 @@ main(int argc, char **argv)
 		spa_config_path = spa_config_path_env;
 
 	while ((c = getopt(argc, argv,
-	    "bcdhilmMI:suCDRSAFLXx:evp:t:U:P")) != -1) {
+	    "bcdhilmMI:suCDRSAFLXx:evp:t:U:PG")) != -1) {
 		switch (c) {
 		case 'b':
 		case 'c':
@@ -3591,6 +3606,7 @@ main(int argc, char **argv)
 		case 'M':
 		case 'R':
 		case 'S':
+		case 'G':
 			dump_opt[c]++;
 			dump_all = 0;
 			break;
@@ -3826,6 +3842,8 @@ main(int argc, char **argv)
 	fuid_table_destroy();
 	sa_loaded = B_FALSE;
 
+	dump_debug_buffer();
+
 	libzfs_fini(g_zfs);
 	kernel_fini();
 

Modified: user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/cmd/ztest/ztest.c
==============================================================================
--- user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/cmd/ztest/ztest.c	Sun Sep  4 22:30:46 2016	(r305399)
+++ user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/cmd/ztest/ztest.c	Sun Sep  4 22:55:05 2016	(r305400)
@@ -20,7 +20,7 @@
  */
 /*
  * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2011, 2015 by Delphix. All rights reserved.
+ * Copyright (c) 2011, 2016 by Delphix. All rights reserved.
  * Copyright 2011 Nexenta Systems, Inc.  All rights reserved.
  * Copyright (c) 2012 Martin Matuska <mm@FreeBSD.org>.  All rights reserved.
  * Copyright (c) 2013 Steven Hartland. All rights reserved.
@@ -189,6 +189,7 @@ extern uint64_t metaslab_gang_bang;
 extern uint64_t metaslab_df_alloc_threshold;
 extern uint64_t zfs_deadman_synctime_ms;
 extern int metaslab_preload_limit;
+extern boolean_t zfs_compressed_arc_enabled;
 
 static ztest_shared_opts_t *ztest_shared_opts;
 static ztest_shared_opts_t ztest_opts;
@@ -4792,7 +4793,7 @@ ztest_fault_inject(ztest_ds_t *zd, uint6
 	char path0[MAXPATHLEN];
 	char pathrand[MAXPATHLEN];
 	size_t fsize;
-	int bshift = SPA_OLD_MAXBLOCKSHIFT + 2;	/* don't scrog all labels */
+	int bshift = SPA_MAXBLOCKSHIFT + 2;
 	int iters = 1000;
 	int maxfaults;
 	int mirror_save;
@@ -4953,11 +4954,58 @@ ztest_fault_inject(ztest_ds_t *zd, uint6
 	fsize = lseek(fd, 0, SEEK_END);
 
 	while (--iters != 0) {
+		/*
+		 * The offset must be chosen carefully to ensure that
+		 * we do not inject a given logical block with errors
+		 * on two different leaf devices, because ZFS can not
+		 * tolerate that (if maxfaults==1).
+		 *
+		 * We divide each leaf into chunks of size
+		 * (# leaves * SPA_MAXBLOCKSIZE * 4).  Within each chunk
+		 * there is a series of ranges to which we can inject errors.
+		 * Each range can accept errors on only a single leaf vdev.
+		 * The error injection ranges are separated by ranges
+		 * which we will not inject errors on any device (DMZs).
+		 * Each DMZ must be large enough such that a single block
+		 * can not straddle it, so that a single block can not be
+		 * a target in two different injection ranges (on different
+		 * leaf vdevs).
+		 *
+		 * For example, with 3 leaves, each chunk looks like:
+		 *    0 to  32M: injection range for leaf 0
+		 *  32M to  64M: DMZ - no injection allowed
+		 *  64M to  96M: injection range for leaf 1
+		 *  96M to 128M: DMZ - no injection allowed
+		 * 128M to 160M: injection range for leaf 2
+		 * 160M to 192M: DMZ - no injection allowed
+		 */
 		offset = ztest_random(fsize / (leaves << bshift)) *
 		    (leaves << bshift) + (leaf << bshift) +
 		    (ztest_random(1ULL << (bshift - 1)) & -8ULL);
 
-		if (offset >= fsize)
+		/*
+		 * Only allow damage to the labels at one end of the vdev.
+		 *
+		 * If all labels are damaged, the device will be totally
+		 * inaccessible, which will result in loss of data,
+		 * because we also damage (parts of) the other side of
+		 * the mirror/raidz.
+		 *
+		 * Additionally, we will always have both an even and an
+		 * odd label, so that we can handle crashes in the
+		 * middle of vdev_config_sync().
+		 */
+		if ((leaf & 1) == 0 && offset < VDEV_LABEL_START_SIZE)
+			continue;
+
+		/*
+		 * The two end labels are stored at the "end" of the disk, but
+		 * the end of the disk (vdev_psize) is aligned to
+		 * sizeof (vdev_label_t).
+		 */
+		uint64_t psize = P2ALIGN(fsize, sizeof (vdev_label_t));
+		if ((leaf & 1) == 1 &&
+		    offset + sizeof (bad) > psize - VDEV_LABEL_END_SIZE)
 			continue;
 
 		VERIFY(mutex_lock(&ztest_vdev_lock) == 0);
@@ -5021,9 +5069,14 @@ ztest_ddt_repair(ztest_ds_t *zd, uint64_
 		return;
 	}
 
+	dmu_objset_stats_t dds;
+	dsl_pool_config_enter(dmu_objset_pool(os), FTAG);
+	dmu_objset_fast_stat(os, &dds);
+	dsl_pool_config_exit(dmu_objset_pool(os), FTAG);
+
 	object = od[0].od_object;
 	blocksize = od[0].od_blocksize;
-	pattern = zs->zs_guid ^ dmu_objset_fsid_guid(os);
+	pattern = zs->zs_guid ^ dds.dds_guid;
 
 	ASSERT(object != 0);
 
@@ -5355,6 +5408,12 @@ ztest_resume_thread(void *arg)
 		if (spa_suspended(spa))
 			ztest_resume(spa);
 		(void) poll(NULL, 0, 100);
+
+		/*
+		 * Periodically change the zfs_compressed_arc_enabled setting.
+		 */
+		if (ztest_random(10) == 0)
+			zfs_compressed_arc_enabled = ztest_random(2);
 	}
 	return (NULL);
 }
@@ -5620,9 +5679,13 @@ ztest_run(ztest_shared_t *zs)
 	metaslab_preload_limit = ztest_random(20) + 1;
 	ztest_spa = spa;
 
+	dmu_objset_stats_t dds;
 	VERIFY0(dmu_objset_own(ztest_opts.zo_pool,
 	    DMU_OST_ANY, B_TRUE, FTAG, &os));
-	zs->zs_guid = dmu_objset_fsid_guid(os);
+	dsl_pool_config_enter(dmu_objset_pool(os), FTAG);
+	dmu_objset_fast_stat(os, &dds);
+	dsl_pool_config_exit(dmu_objset_pool(os), FTAG);
+	zs->zs_guid = dds.dds_guid;
 	dmu_objset_disown(os, FTAG);
 
 	spa->spa_dedup_ditto = 2 * ZIO_DEDUPDITTO_MIN;

Modified: user/alc/PQ_LAUNDRY/contrib/libcxxrt/unwind-arm.h
==============================================================================
--- user/alc/PQ_LAUNDRY/contrib/libcxxrt/unwind-arm.h	Sun Sep  4 22:30:46 2016	(r305399)
+++ user/alc/PQ_LAUNDRY/contrib/libcxxrt/unwind-arm.h	Sun Sep  4 22:55:05 2016	(r305400)
@@ -28,7 +28,7 @@
 {
 	_URC_OK = 0,                /* operation completed successfully */
 	_URC_FOREIGN_EXCEPTION_CAUGHT = 1,
-    _URC_END_OF_STACK = 5,
+	_URC_END_OF_STACK = 5,
 	_URC_HANDLER_FOUND = 6,
 	_URC_INSTALL_CONTEXT = 7,
 	_URC_CONTINUE_UNWIND = 8,
@@ -43,10 +43,12 @@ typedef uint32_t _Unwind_State;
 static const _Unwind_State _US_VIRTUAL_UNWIND_FRAME  = 0;
 static const _Unwind_State _US_UNWIND_FRAME_STARTING = 1;
 static const _Unwind_State _US_UNWIND_FRAME_RESUME   = 2;
+static const _Unwind_State _US_ACTION_MASK           = 3;
 #else // GCC fails at knowing what a constant expression is
 #	define _US_VIRTUAL_UNWIND_FRAME  0
 #	define _US_UNWIND_FRAME_STARTING 1
-#	define _US_UNWIND_FRAME_RESUME 2
+#	define _US_UNWIND_FRAME_RESUME   2
+#	define _US_ACTION_MASK           3
 #endif
 
 typedef struct _Unwind_Context _Unwind_Context;

Modified: user/alc/PQ_LAUNDRY/contrib/netbsd-tests/bin/cat/d_align.in
==============================================================================
--- user/alc/PQ_LAUNDRY/contrib/netbsd-tests/bin/cat/d_align.in	Sun Sep  4 22:30:46 2016	(r305399)
+++ user/alc/PQ_LAUNDRY/contrib/netbsd-tests/bin/cat/d_align.in	Sun Sep  4 22:55:05 2016	(r305400)
@@ -1,3 +1,5 @@
 a b c
+
 1 2 3
+
 x y z

Modified: user/alc/PQ_LAUNDRY/contrib/netbsd-tests/bin/cat/d_align.out
==============================================================================
--- user/alc/PQ_LAUNDRY/contrib/netbsd-tests/bin/cat/d_align.out	Sun Sep  4 22:30:46 2016	(r305399)
+++ user/alc/PQ_LAUNDRY/contrib/netbsd-tests/bin/cat/d_align.out	Sun Sep  4 22:55:05 2016	(r305400)
@@ -1,3 +1,5 @@
      1	a b c$
+      	$
      2	1 2 3$
+      	$
      3	x y z$

Copied: user/alc/PQ_LAUNDRY/contrib/netbsd-tests/bin/cat/d_se_output.in (from r305399, head/contrib/netbsd-tests/bin/cat/d_se_output.in)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/alc/PQ_LAUNDRY/contrib/netbsd-tests/bin/cat/d_se_output.in	Sun Sep  4 22:55:05 2016	(r305400, copy of r305399, head/contrib/netbsd-tests/bin/cat/d_se_output.in)
@@ -0,0 +1,3 @@
+
+Of course it runs NetBSD
+

Copied: user/alc/PQ_LAUNDRY/contrib/netbsd-tests/bin/cat/d_se_output.out (from r305399, head/contrib/netbsd-tests/bin/cat/d_se_output.out)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/alc/PQ_LAUNDRY/contrib/netbsd-tests/bin/cat/d_se_output.out	Sun Sep  4 22:55:05 2016	(r305400, copy of r305399, head/contrib/netbsd-tests/bin/cat/d_se_output.out)
@@ -0,0 +1,3 @@
+$
+Of course it runs NetBSD$
+$

Modified: user/alc/PQ_LAUNDRY/contrib/netbsd-tests/bin/cat/t_cat.sh
==============================================================================
--- user/alc/PQ_LAUNDRY/contrib/netbsd-tests/bin/cat/t_cat.sh	Sun Sep  4 22:30:46 2016	(r305399)
+++ user/alc/PQ_LAUNDRY/contrib/netbsd-tests/bin/cat/t_cat.sh	Sun Sep  4 22:55:05 2016	(r305400)
@@ -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: user/alc/PQ_LAUNDRY/contrib/netbsd-tests/bin/sh/dotcmd/scoped_command
==============================================================================
--- user/alc/PQ_LAUNDRY/contrib/netbsd-tests/bin/sh/dotcmd/scoped_command	Sun Sep  4 22:30:46 2016	(r305399)
+++ user/alc/PQ_LAUNDRY/contrib/netbsd-tests/bin/sh/dotcmd/scoped_command	Sun Sep  4 22:55:05 2016	(r305400)
@@ -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: user/alc/PQ_LAUNDRY/contrib/netbsd-tests/bin/sh/dotcmd/t_dotcmd.sh
==============================================================================
--- user/alc/PQ_LAUNDRY/contrib/netbsd-tests/bin/sh/dotcmd/t_dotcmd.sh	Sun Sep  4 22:30:46 2016	(r305399)
+++ user/alc/PQ_LAUNDRY/contrib/netbsd-tests/bin/sh/dotcmd/t_dotcmd.sh	Sun Sep  4 22:55:05 2016	(r305400)
@@ -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: user/alc/PQ_LAUNDRY/contrib/netbsd-tests/bin/sh/t_arith.sh (from r305399, head/contrib/netbsd-tests/bin/sh/t_arith.sh)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/alc/PQ_LAUNDRY/contrib/netbsd-tests/bin/sh/t_arith.sh	Sun Sep  4 22:55:05 2016	(r305400, copy of r305399, head/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 ))'
+
+	atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \
+		'echo $(( !1234 ))'
+	atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \
+		'echo $(( !0xFFFF ))'
+	atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \
+		'echo $(( ! 000000 ))'
+}
+
+atf_test_case do_unary_tilde
+do_unary_tilde_head()
+{
+        atf_set "descr" "Tests that unary not (bitwise) works as expected"
+}
+do_unary_tilde_body()
+{
+	# definitely 2's complement arithmetic here...
+
+	atf_check -s exit:0 -o inline:'-1\n' -e empty ${TEST_SH} -c \
+		'echo $(( ~ 0 ))'
+	atf_check -s exit:0 -o inline:'-2\n' -e empty ${TEST_SH} -c \
+		'echo $(( ~ 1 ))'
+
+	atf_check -s exit:0 -o inline:'-1235\n' -e empty ${TEST_SH} -c \
+		'echo $(( ~1234 ))'
+	atf_check -s exit:0 -o inline:'-256\n' -e empty ${TEST_SH} -c \
+		'echo $(( ~0xFF ))'
+}
+
+atf_test_case elementary_add
+elementary_add_head()
+{
+        atf_set "descr" "Tests that simple addition works as expected"
+}
+elementary_add_body()
+{
+	# some of these tests actually test unary ops &  op precedence...
+
+	atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \
+		'echo $(( 0 + 0 ))'
+	atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \
+		'echo $(( 1 + 0 ))'
+	atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \
+		'echo $(( 0 + 1 ))'
+	atf_check -s exit:0 -o inline:'2\n' -e empty ${TEST_SH} -c \
+		'echo $(( 1 + 1 ))'
+	atf_check -s exit:0 -o inline:'10\n' -e empty ${TEST_SH} -c \
+		'echo $(( 4 + 6 ))'
+	atf_check -s exit:0 -o inline:'10\n' -e empty ${TEST_SH} -c \
+		'echo $(( 6 + 4 ))'
+	atf_check -s exit:0 -o inline:'5555\n' -e empty ${TEST_SH} -c \
+		'echo $(( 1234 + 4321 ))'
+	atf_check -s exit:0 -o inline:'3333\n' -e empty ${TEST_SH} -c \
+		'echo $((1111+2222))'
+	atf_check -s exit:0 -o inline:'5555\n' -e empty ${TEST_SH} -c \
+		'echo $((+3333+2222))'
+	atf_check -s exit:0 -o inline:'7777\n' -e empty ${TEST_SH} -c \
+		'echo $((+3333 + +4444))'
+	atf_check -s exit:0 -o inline:'-7777\n' -e empty ${TEST_SH} -c \
+		'echo -$((+4125+ +3652))'
+}
+
+atf_test_case elementary_sub
+elementary_sub_head()
+{
+        atf_set "descr" "Tests that simple subtraction works as expected"
+}
+elementary_sub_body()
+{
+	atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \
+		'echo $(( 0 - 0 ))'
+	atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \
+		'echo $(( 1 - 0 ))'
+	atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \
+		'echo $(( 1 - 1 ))'
+	atf_check -s exit:0 -o inline:'-1\n' -e empty ${TEST_SH} -c \
+		'echo $(( 0 - 1 ))'
+	atf_check -s exit:0 -o inline:'488\n' -e empty ${TEST_SH} -c \
+		'echo $(( 1066 - 578 ))'
+	atf_check -s exit:0 -o inline:'-3662\n' -e empty ${TEST_SH} -c \
+		'echo $(( 2016-5678 ))'
+	atf_check -s exit:0 -o inline:'-3662\n' -e empty ${TEST_SH} -c \
+		'echo $(( 2016+-5678 ))'
+	atf_check -s exit:0 -o inline:'-3662\n' -e empty ${TEST_SH} -c \
+		'echo $(( 2016-+5678 ))'
+	atf_check -s exit:0 -o inline:'-7694\n' -e empty ${TEST_SH} -c \
+		'echo $(( -2016-5678 ))'
+	atf_check -s exit:0 -o inline:'--1\n' -e empty ${TEST_SH} -c \
+		'echo -$(( -1018 - -1017 ))'
+}
+
+atf_test_case elementary_mul
+elementary_mul_head()
+{
+        atf_set "descr" "Tests that simple multiplication works as expected"
+}
+elementary_mul_body()
+{
+	atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \
+		'echo $(( 0 * 0 ))'
+	atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \
+		'echo $(( 1 * 0 ))'
+	atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \
+		'echo $(( 0 * 1 ))'
+	atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \
+		'echo $(( 1 * 1 ))'
+	atf_check -s exit:0 -o inline:'-1\n' -e empty ${TEST_SH} -c \
+		'echo $(( -1 * 1 ))'
+	atf_check -s exit:0 -o inline:'-1\n' -e empty ${TEST_SH} -c \
+		'echo $(( 1 * -1 ))'
+	atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \
+		'echo $(( -1 * -1 ))'
+	atf_check -s exit:0 -o inline:'391\n' -e empty ${TEST_SH} -c \
+		'echo $(( 17 * 23 ))'
+	atf_check -s exit:0 -o inline:'169\n' -e empty ${TEST_SH} -c \
+		'echo $(( 13*13 ))'
+	atf_check -s exit:0 -o inline:'-11264\n' -e empty ${TEST_SH} -c \
+		'echo $(( -11 *1024 ))'
+	atf_check -s exit:0 -o inline:'-16983\n' -e empty ${TEST_SH} -c \
+		'echo $(( 17* -999 ))'
+	atf_check -s exit:0 -o inline:'9309\n' -e empty ${TEST_SH} -c \
+		'echo $(( -29*-321 ))'
+}
+
+atf_test_case elementary_div
+elementary_div_head()
+{
+        atf_set "descr" "Tests that simple division works as expected"
+}
+elementary_div_body()
+{
+	atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \
+		'echo $(( 0 / 1 ))'
+	atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \
+		'echo $(( 1 / 1 ))'
+	test ${ARITH_BITS} -ge 38 &&
+	    atf_check -s exit:0 -o inline:'99999999999\n' -e empty \
+		${TEST_SH} -c 'echo $(( 99999999999 / 1 ))'
+	atf_check -s exit:0 -o inline:'2\n' -e empty ${TEST_SH} -c \
+		'echo $(( 2 / 1 ))'
+
+	atf_check -s exit:0 -o inline:'3\n' -e empty ${TEST_SH} -c \
+		'echo $(( 3 / 1 ))'
+	atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \
+		'echo $(( 3 / 2 ))'
+	atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \
+		'echo $(( 3 / 3 ))'
+	atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \
+		'echo $(( 3 / 4 ))'
+
+	atf_check -s exit:0 -o inline:'173\n' -e empty ${TEST_SH} -c \
+		'echo $(( 123456 / 713 ))'
+	atf_check -s exit:0 -o inline:'13\n' -e empty ${TEST_SH} -c \
+		'echo $(( 169 / 13 ))'
+}
+
+atf_test_case elementary_rem
+elementary_rem_head()
+{
+        atf_set "descr" "Tests that simple modulus works as expected"
+}
+elementary_rem_body()
+{
+	atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \
+		'echo $(( 0 % 1 ))'
+	atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \
+		'echo $(( 1 % 1 ))'
+	atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \
+		'echo $(( 2 % 1 ))'
+	atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \
+		'echo $(( 9999 % 1 ))'
+
+	atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \
+		'echo $(( 0 % 2 ))'
+	atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \
+		'echo $(( 1 % 2 ))'
+	atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \
+		'echo $(( 2 % 2 ))'
+	atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \
+		'echo $(( 0xFFFF % 2 ))'
+
+	atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \
+		'echo $(( 0 % 3 ))'
+	atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \
+		'echo $(( 1 % 3 ))'
+	atf_check -s exit:0 -o inline:'2\n' -e empty ${TEST_SH} -c \
+		'echo $(( 2 % 3 ))'
+	atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \
+		'echo $(( 3 % 3 ))'
+	atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \
+		'echo $(( 3123 % 3 ))'
+
+	atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \
+		'echo $(( 9999 % 2 ))'
+
+	atf_check -s exit:0 -o inline:'107\n' -e empty ${TEST_SH} -c \
+		'echo $(( 123456%173 ))'
+	atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \
+		'echo $((169%13))'
+}
+
+atf_test_case elementary_shl
+elementary_shl_head()
+{
+        atf_set "descr" "Tests that simple shift left works as expected"
+}
+elementary_shl_body()
+{
+	atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \
+		'echo $(( 0 << 0 ))'
+	atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \
+		'echo $(( 0 << 1 ))'
+	atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \
+		'echo $(( 0 << 17 ))'
+
+	atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \
+		'echo $(( 1 << 0 ))'
+	atf_check -s exit:0 -o inline:'2\n' -e empty ${TEST_SH} -c \
+		'echo $(( 1 << 1 ))'
+	atf_check -s exit:0 -o inline:'131072\n' -e empty ${TEST_SH} -c \
+		'echo $(( 1 << 17 ))'
+
+	atf_check -s exit:0 -o inline:'2021161080\n' -e empty ${TEST_SH} -c \
+		'echo $(( 0x3C3C3C3C << 1 ))'
+
+	test "${ARITH_BITS}" -ge 40 &&
+	    atf_check -s exit:0 -o inline:'129354309120\n' -e empty \
+		${TEST_SH} -c 'echo $(( 0x3C3C3C3C << 7 ))'
+	test "${ARITH_BITS}" -ge 72 &&
+	    atf_check -s exit:0 -o inline:'1111145054534149079040\n' \
+		-e empty ${TEST_SH} -c 'echo $(( 0x3C3C3C3C << 40 ))'
+
+	return 0
+}
+
+atf_test_case elementary_shr
+elementary_shr_head()
+{
+        atf_set "descr" "Tests that simple shift right works as expected"
+}
+elementary_shr_body()
+{
+	atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \
+		'echo $(( 0 >> 0 ))'
+	atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \
+		'echo $(( 0 >> 1 ))'
+	atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \
+		'echo $(( 0 >> 17 ))'
+
+	atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \
+		'echo $(( 1 >> 0 ))'
+	atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \
+		'echo $(( 1 >> 1 ))'
+	atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \
+		'echo $(( 2 >> 1 ))'
+	atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \
+		'echo $(( 3 >> 1 ))'
+
+	atf_check -s exit:0 -o inline:'4\n' -e empty ${TEST_SH} -c \
+		'echo $(( 0x10 >> 2 ))'
+	atf_check -s exit:0 -o inline:'4\n' -e empty ${TEST_SH} -c \
+		'echo $(( 022 >> 2 ))'
+
+	atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \
+		'echo $(( 131072 >> 17 ))'
+
+	test ${ARITH_BITS} -ge 40 &&
+		atf_check -s exit:0 -o inline:'8\n' -e empty ${TEST_SH} -c \
+			'echo $(( 0x4000000000 >> 35 ))'
+	test ${ARITH_BITS} -ge 80 &&
+		atf_check -s exit:0 -o inline:'4464\n' -e empty ${TEST_SH} -c \
+			'echo $(( 0x93400FACE005C871000 >> 64 ))'
+
+	return 0
+}
+
+atf_test_case elementary_eq
+elementary_eq_head()
+{
+        atf_set "descr" "Tests that simple equality test works as expected"
+}
+elementary_eq_body()
+{
+	atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \
+		'echo $(( 0 == 0 ))'
+	atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \
+		'echo $(( 0 == 0000 ))'
+	atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \
+		'echo $(( 0 == 0x00 ))'
+	atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \
+		'echo $(( 1 == 1 ))'
+	atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \
+		'X=30; Y=0x1E; echo $(( X == Y ))'
+	atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \
+		'echo $(( 0x1234 == 4660 ))'
+	atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \
+		'echo $(( 0x1234 == 011064 ))'
+
+	atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \
+		'echo $(( 0 == 1 ))'
+	atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \
+		'echo $(( 0 == 0000000000000001 ))'
+	atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \
+		'echo $(( 0 == 0x10000000000000 ))'
+	atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \
+		'echo $(( 1 == 2 ))'
+	atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \
+		'X=3; Y=7; echo $(( X == Y ))'
+	atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \
+		'echo $(( 1234 == 0x4660 ))'
+	atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \
+		'echo $(( 01234 == 0x11064 ))'
+}
+atf_test_case elementary_ne
+elementary_ne_head()
+{
+        atf_set "descr" "Tests that simple inequality test works as expected"
+}
+elementary_ne_body()
+{
+	atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \
+		'echo $(( 1 != 0 ))'
+	atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \
+		'echo $(( 0x71 != 17 ))'
+	atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \
+		'echo $(( 1234 != 01234 ))'
+	atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \
+		'echo $(( 0x1234 != 01234 ))'
+	atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \
+		'X=3; echo $(( X != 0 ))'
+	atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \
+		'X=3; Y=0x11; echo $(( X != Y ))'
+
+	atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \
+		'echo $(( 3 != 3 ))'
+	atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \
+		'echo $(( 0 != 0x0 ))'
+	atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \
+		'echo $(( 0xA != 012 ))'
+	atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \
+		'X=1; echo $(( X != 1 ))'
+	atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \
+		'X=0xC; Y=014; echo $(( X != Y ))'
+}
+atf_test_case elementary_lt
+elementary_lt_head()
+{
+        atf_set "descr" "Tests that simple less than test works as expected"
+}
+elementary_lt_body()
+{
+	atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \
+		'echo $(( 0 < 1 ))'
+	atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \
+		'echo $(( -1 < 0 ))'
+	atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \
+		'echo $(( 0 < 10 ))'
+	atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \
+		'echo $(( 100 < 101 ))'
+	atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \
+		'echo $(( 0xA1 < 200 ))'
+
+	atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \
+		'echo $(( 0 < 0 ))'
+	atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \
+		'echo $(( 1 < 0 ))'
+
+	test ${ARITH_BITS} -ge 40 &&
+	    atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \
+		'echo $(( 0x1BEEFF00D < 0x1FACECAFE ))'
+
+	return 0
+}
+atf_test_case elementary_le

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

From owner-svn-src-user@freebsd.org  Wed Sep  7 00:34:49 2016
Return-Path: <owner-svn-src-user@freebsd.org>
Delivered-To: svn-src-user@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 695CEBCE963
 for <svn-src-user@mailman.ysv.freebsd.org>;
 Wed,  7 Sep 2016 00:34:49 +0000 (UTC)
 (envelope-from markj@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 17436D4E;
 Wed,  7 Sep 2016 00:34:49 +0000 (UTC)
 (envelope-from markj@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u870YmT3006314;
 Wed, 7 Sep 2016 00:34:48 GMT (envelope-from markj@FreeBSD.org)
Received: (from markj@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id u870YkPs006291;
 Wed, 7 Sep 2016 00:34:46 GMT (envelope-from markj@FreeBSD.org)
Message-Id: <201609070034.u870YkPs006291@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: markj set sender to
 markj@FreeBSD.org using -f
From: Mark Johnston <markj@FreeBSD.org>
Date: Wed, 7 Sep 2016 00:34:46 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
Subject: svn commit: r305510 - in user/alc/PQ_LAUNDRY: .
 contrib/gcclibs/libcpp contrib/libarchive contrib/libarchive/libarchive
 contrib/libarchive/libarchive/test contrib/netbsd-tests/kernel/kqueue
 contrib...
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
 src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-user>,
 <mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user/>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-user>,
 <mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 07 Sep 2016 00:34:49 -0000

Author: markj
Date: Wed Sep  7 00:34:45 2016
New Revision: 305510
URL: https://svnweb.freebsd.org/changeset/base/305510

Log:
  MFH r305509

Added:
  user/alc/PQ_LAUNDRY/contrib/libarchive/README.md
     - copied unchanged from r305509, head/contrib/libarchive/README.md
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/al_hal_serdes_25g.c
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/al_hal_serdes_25g.c
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/al_hal_serdes_25g.h
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/al_hal_serdes_25g.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/al_hal_serdes_25g_internal_regs.h
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/al_hal_serdes_25g_internal_regs.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/al_hal_serdes_25g_regs.h
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/al_hal_serdes_25g_regs.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/al_hal_serdes_hssp.h
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/al_hal_serdes_hssp.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/al_hal_serdes_hssp_internal_regs.h
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/al_hal_serdes_hssp_internal_regs.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/al_hal_serdes_hssp_regs.h
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/al_hal_serdes_hssp_regs.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/al_hal_serdes_interface.h
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/al_hal_serdes_interface.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/al_serdes.c
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/al_serdes.c
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/al_serdes.h
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/al_serdes.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/eth/al_hal_common.h
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/eth/al_hal_common.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/eth/al_hal_iofic.c
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/eth/al_hal_iofic.c
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/eth/al_hal_iofic.h
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/eth/al_hal_iofic.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/eth/al_hal_iofic_regs.h
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/eth/al_hal_iofic_regs.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/eth/al_hal_nb_regs.h
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/eth/al_hal_nb_regs.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/eth/al_hal_pbs_regs.h
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/eth/al_hal_pbs_regs.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/eth/al_hal_pcie.c
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/eth/al_hal_pcie.c
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/eth/al_hal_pcie.h
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/eth/al_hal_pcie.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/eth/al_hal_pcie_axi_reg.h
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/eth/al_hal_pcie_axi_reg.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/eth/al_hal_pcie_interrupts.h
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/eth/al_hal_pcie_interrupts.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/eth/al_hal_pcie_regs.h
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/eth/al_hal_pcie_regs.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/eth/al_hal_pcie_w_reg.h
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/eth/al_hal_pcie_w_reg.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/eth/al_hal_plat_services.h
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/eth/al_hal_plat_services.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/eth/al_hal_plat_types.h
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/eth/al_hal_plat_types.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/eth/al_hal_reg_utils.h
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/eth/al_hal_reg_utils.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/eth/al_hal_serdes.c
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/eth/al_hal_serdes.c
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/eth/al_hal_serdes.h
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/eth/al_hal_serdes.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/eth/al_hal_serdes_25g.c
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/eth/al_hal_serdes_25g.c
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/eth/al_hal_serdes_25g.h
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/eth/al_hal_serdes_25g.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/eth/al_hal_serdes_25g_internal_regs.h
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/eth/al_hal_serdes_25g_internal_regs.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/eth/al_hal_serdes_25g_regs.h
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/eth/al_hal_serdes_25g_regs.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/eth/al_hal_serdes_hssp.h
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/eth/al_hal_serdes_hssp.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/eth/al_hal_serdes_hssp_internal_regs.h
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/eth/al_hal_serdes_hssp_internal_regs.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/eth/al_hal_serdes_hssp_regs.h
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/eth/al_hal_serdes_hssp_regs.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/eth/al_hal_serdes_interface.h
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/eth/al_hal_serdes_interface.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/eth/al_hal_serdes_internal_regs.h
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/eth/al_hal_serdes_internal_regs.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/eth/al_hal_serdes_regs.h
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/eth/al_hal_serdes_regs.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/eth/al_hal_types.h
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/eth/al_hal_types.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/eth/al_hal_udma.h
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/eth/al_hal_udma.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/eth/al_hal_udma_config.c
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/eth/al_hal_udma_config.c
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/eth/al_hal_udma_config.h
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/eth/al_hal_udma_config.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/eth/al_hal_udma_debug.c
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/eth/al_hal_udma_debug.c
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/eth/al_hal_udma_debug.h
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/eth/al_hal_udma_debug.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/eth/al_hal_udma_iofic.c
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/eth/al_hal_udma_iofic.c
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/eth/al_hal_udma_iofic.h
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/eth/al_hal_udma_iofic.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/eth/al_hal_udma_iofic_regs.h
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/eth/al_hal_udma_iofic_regs.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/eth/al_hal_udma_main.c
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/eth/al_hal_udma_main.c
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/eth/al_hal_udma_regs.h
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/eth/al_hal_udma_regs.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/eth/al_hal_udma_regs_gen.h
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/eth/al_hal_udma_regs_gen.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/eth/al_hal_udma_regs_m2s.h
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/eth/al_hal_udma_regs_m2s.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/eth/al_hal_udma_regs_s2m.h
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/eth/al_hal_udma_regs_s2m.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/eth/al_hal_unit_adapter_regs.h
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/eth/al_hal_unit_adapter_regs.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/eth/al_serdes.c
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/eth/al_serdes.c
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/eth/al_serdes.h
     - copied unchanged from r305509, head/sys/contrib/alpine-hal/eth/al_serdes.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/eth/eth/
     - copied from r305509, head/sys/contrib/alpine-hal/eth/eth/
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/cores/usb/
     - copied from r305509, head/sys/dev/bhnd/cores/usb/
  user/alc/PQ_LAUNDRY/sys/dev/cpufreq/cpufreq_dt.c
     - copied unchanged from r305509, head/sys/dev/cpufreq/cpufreq_dt.c
  user/alc/PQ_LAUNDRY/sys/dev/iicbus/sy8106a.c
     - copied unchanged from r305509, head/sys/dev/iicbus/sy8106a.c
  user/alc/PQ_LAUNDRY/tests/sys/kqueue/libkqueue/
     - copied from r305509, head/tests/sys/kqueue/libkqueue/
Replaced:
  user/alc/PQ_LAUNDRY/tests/sys/kqueue/Makefile
     - copied unchanged from r305509, head/tests/sys/kqueue/Makefile
Deleted:
  user/alc/PQ_LAUNDRY/contrib/libarchive/README
  user/alc/PQ_LAUNDRY/tests/sys/kqueue/Makefile.depend
  user/alc/PQ_LAUNDRY/tests/sys/kqueue/common.h
  user/alc/PQ_LAUNDRY/tests/sys/kqueue/config.h
  user/alc/PQ_LAUNDRY/tests/sys/kqueue/kqueue_test.sh
  user/alc/PQ_LAUNDRY/tests/sys/kqueue/main.c
  user/alc/PQ_LAUNDRY/tests/sys/kqueue/proc.c
  user/alc/PQ_LAUNDRY/tests/sys/kqueue/read.c
  user/alc/PQ_LAUNDRY/tests/sys/kqueue/signal.c
  user/alc/PQ_LAUNDRY/tests/sys/kqueue/timer.c
  user/alc/PQ_LAUNDRY/tests/sys/kqueue/user.c
  user/alc/PQ_LAUNDRY/tests/sys/kqueue/vnode.c
Modified:
  user/alc/PQ_LAUNDRY/ObsoleteFiles.inc
  user/alc/PQ_LAUNDRY/contrib/gcclibs/libcpp/system.h
  user/alc/PQ_LAUNDRY/contrib/libarchive/libarchive/archive_acl.c
  user/alc/PQ_LAUNDRY/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c
  user/alc/PQ_LAUNDRY/contrib/libarchive/libarchive/archive_read_disk_posix.c
  user/alc/PQ_LAUNDRY/contrib/libarchive/libarchive/test/test_acl_freebsd_posix1e.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/kernel/kqueue/read/t_fifo.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/kernel/kqueue/read/t_file.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/kernel/kqueue/read/t_pipe.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/kernel/kqueue/read/t_ttypty.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/kernel/kqueue/t_proc1.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/kernel/kqueue/t_proc2.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/kernel/kqueue/t_proc3.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/kernel/kqueue/t_sig.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/kernel/kqueue/t_vnode.c
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/rpc/t_rpc.c
  user/alc/PQ_LAUNDRY/contrib/top/commands.c
  user/alc/PQ_LAUNDRY/contrib/top/machine.h
  user/alc/PQ_LAUNDRY/contrib/top/top.c
  user/alc/PQ_LAUNDRY/contrib/top/top.xs
  user/alc/PQ_LAUNDRY/etc/mtree/BSD.tests.dist
  user/alc/PQ_LAUNDRY/lib/libarchive/config_freebsd.h
  user/alc/PQ_LAUNDRY/lib/libc/stdio/fgets.c
  user/alc/PQ_LAUNDRY/lib/libc/stdio/fgetws.c
  user/alc/PQ_LAUNDRY/lib/libc/tests/db/Makefile
  user/alc/PQ_LAUNDRY/lib/libstand/ufs.c
  user/alc/PQ_LAUNDRY/share/man/man9/Makefile
  user/alc/PQ_LAUNDRY/share/man/man9/pci.9
  user/alc/PQ_LAUNDRY/sys/amd64/amd64/machdep.c
  user/alc/PQ_LAUNDRY/sys/amd64/amd64/prof_machdep.c
  user/alc/PQ_LAUNDRY/sys/amd64/conf/NOTES
  user/alc/PQ_LAUNDRY/sys/amd64/vmm/io/iommu.c
  user/alc/PQ_LAUNDRY/sys/amd64/vmm/io/ppt.c
  user/alc/PQ_LAUNDRY/sys/arm/allwinner/aw_thermal.c
  user/alc/PQ_LAUNDRY/sys/arm/allwinner/clk/aw_pll.c
  user/alc/PQ_LAUNDRY/sys/arm/allwinner/clk/aw_thsclk.c
  user/alc/PQ_LAUNDRY/sys/arm/allwinner/files.allwinner
  user/alc/PQ_LAUNDRY/sys/arm/arm/minidump_machdep.c
  user/alc/PQ_LAUNDRY/sys/arm/conf/ALLWINNER
  user/alc/PQ_LAUNDRY/sys/arm/ti/am335x/am335x_scm.h
  user/alc/PQ_LAUNDRY/sys/arm/ti/cpsw/if_cpsw.c
  user/alc/PQ_LAUNDRY/sys/arm/ti/cpsw/if_cpswreg.h
  user/alc/PQ_LAUNDRY/sys/arm/ti/ti_pruss.c
  user/alc/PQ_LAUNDRY/sys/arm64/conf/GENERIC
  user/alc/PQ_LAUNDRY/sys/boot/efi/loader/copy.c
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c
  user/alc/PQ_LAUNDRY/sys/conf/files
  user/alc/PQ_LAUNDRY/sys/conf/files.arm
  user/alc/PQ_LAUNDRY/sys/conf/files.arm64
  user/alc/PQ_LAUNDRY/sys/conf/options.amd64
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/al_hal_iofic.c
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/al_hal_iofic.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/al_hal_iofic_regs.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/al_hal_nb_regs.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/al_hal_pbs_regs.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/al_hal_pcie.c
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/al_hal_pcie.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/al_hal_pcie_axi_reg.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/al_hal_pcie_interrupts.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/al_hal_pcie_regs.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/al_hal_pcie_w_reg.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/al_hal_plat_services.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/al_hal_plat_types.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/al_hal_reg_utils.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/al_hal_serdes.c
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/al_hal_serdes.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/al_hal_udma.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/al_hal_udma_config.c
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/al_hal_udma_config.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/al_hal_udma_debug.c
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/al_hal_udma_iofic.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/al_hal_udma_main.c
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/al_hal_udma_regs_gen.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/al_hal_unit_adapter_regs.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/eth/al_hal_eth.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/eth/al_hal_eth_mac_regs.h
  user/alc/PQ_LAUNDRY/sys/contrib/alpine-hal/eth/al_hal_eth_main.c
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/bcma/bcma.c
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/bcma/bcma_dmp.h
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/bcma/bcmavar.h
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/bhnd.c
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/bhnd.h
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/bhnd_bus_if.m
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/bhnd_nexus.c
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/bhnd_subr.c
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/bhnd_types.h
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/bhndb/bhnd_bhndb.c
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/bhndb/bhndb.c
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/bhndb/bhndb_pci.c
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/bhndb/bhndb_pcivar.h
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/cores/pmu/bhnd_pmu_subr.c
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/siba/siba.c
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/siba/siba_bhndb.c
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/siba/sibareg.h
  user/alc/PQ_LAUNDRY/sys/dev/bhnd/siba/sibavar.h
  user/alc/PQ_LAUNDRY/sys/dev/bwn/bwn_mac.c
  user/alc/PQ_LAUNDRY/sys/dev/bwn/if_bwn_pci.c
  user/alc/PQ_LAUNDRY/sys/dev/bwn/if_bwn_pcivar.h
  user/alc/PQ_LAUNDRY/sys/dev/cxgbe/tom/t4_connect.c
  user/alc/PQ_LAUNDRY/sys/dev/hyperv/netvsc/hv_net_vsc.c
  user/alc/PQ_LAUNDRY/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
  user/alc/PQ_LAUNDRY/sys/dev/hyperv/netvsc/hv_rndis_filter.c
  user/alc/PQ_LAUNDRY/sys/dev/hyperv/netvsc/hv_rndis_filter.h
  user/alc/PQ_LAUNDRY/sys/dev/hyperv/netvsc/ndis.h
  user/alc/PQ_LAUNDRY/sys/dev/hyperv/vmbus/vmbus_chan.c
  user/alc/PQ_LAUNDRY/sys/dev/hyperv/vmbus/vmbus_reg.h
  user/alc/PQ_LAUNDRY/sys/dev/iscsi/iscsi.c
  user/alc/PQ_LAUNDRY/sys/dev/iwm/if_iwm_scan.c
  user/alc/PQ_LAUNDRY/sys/dev/iwm/if_iwmreg.h
  user/alc/PQ_LAUNDRY/sys/dev/pci/pci.c
  user/alc/PQ_LAUNDRY/sys/dev/pci/pci_host_generic.c
  user/alc/PQ_LAUNDRY/sys/dev/pci/pci_host_generic.h
  user/alc/PQ_LAUNDRY/sys/dev/pci/pcireg.h
  user/alc/PQ_LAUNDRY/sys/dev/pci/pcivar.h
  user/alc/PQ_LAUNDRY/sys/dev/rtwn/if_rtwn.c
  user/alc/PQ_LAUNDRY/sys/dev/usb/template/usb_template.c
  user/alc/PQ_LAUNDRY/sys/dev/usb/usb_device.c
  user/alc/PQ_LAUNDRY/sys/dev/usb/usb_device.h
  user/alc/PQ_LAUNDRY/sys/dev/usb/usb_generic.c
  user/alc/PQ_LAUNDRY/sys/dev/usb/usb_request.c
  user/alc/PQ_LAUNDRY/sys/dev/usb/usb_transfer.c
  user/alc/PQ_LAUNDRY/sys/dev/usb/usb_util.c
  user/alc/PQ_LAUNDRY/sys/dev/usb/wlan/if_rum.c
  user/alc/PQ_LAUNDRY/sys/fs/nullfs/null_vnops.c
  user/alc/PQ_LAUNDRY/sys/geom/mirror/g_mirror.c
  user/alc/PQ_LAUNDRY/sys/kern/kern_condvar.c
  user/alc/PQ_LAUNDRY/sys/kern/kern_sig.c
  user/alc/PQ_LAUNDRY/sys/mips/broadcom/files.broadcom
  user/alc/PQ_LAUNDRY/sys/mips/conf/BCM
  user/alc/PQ_LAUNDRY/sys/net/rndis.h
  user/alc/PQ_LAUNDRY/sys/sparc64/conf/GENERIC
  user/alc/PQ_LAUNDRY/sys/sys/param.h
  user/alc/PQ_LAUNDRY/sys/ufs/ffs/fs.h
  user/alc/PQ_LAUNDRY/sys/ufs/ufs/dir.h
  user/alc/PQ_LAUNDRY/sys/x86/x86/cpu_machdep.c
  user/alc/PQ_LAUNDRY/usr.bin/bsdiff/bspatch/bspatch.c
  user/alc/PQ_LAUNDRY/usr.bin/top/machine.c
  user/alc/PQ_LAUNDRY/usr.sbin/acpi/acpidump/acpi.c
  user/alc/PQ_LAUNDRY/usr.sbin/bsdinstall/partedit/gpart_ops.c
  user/alc/PQ_LAUNDRY/usr.sbin/portsnap/portsnap/portsnap.sh
Directory Properties:
  user/alc/PQ_LAUNDRY/   (props changed)
  user/alc/PQ_LAUNDRY/contrib/libarchive/   (props changed)
  user/alc/PQ_LAUNDRY/contrib/libarchive/libarchive/   (props changed)
  user/alc/PQ_LAUNDRY/contrib/netbsd-tests/   (props changed)
  user/alc/PQ_LAUNDRY/contrib/top/   (props changed)
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/   (props changed)

Modified: user/alc/PQ_LAUNDRY/ObsoleteFiles.inc
==============================================================================
--- user/alc/PQ_LAUNDRY/ObsoleteFiles.inc	Tue Sep  6 23:42:59 2016	(r305509)
+++ user/alc/PQ_LAUNDRY/ObsoleteFiles.inc	Wed Sep  7 00:34:45 2016	(r305510)
@@ -38,6 +38,9 @@
 #   xargs -n1 | sort | uniq -d;
 # done
 
+# 20160906: libkqueue tests moved to /usr/tests/sys/kqueue/libkqueue
+OLD_FILES+=usr/tests/sys/kqueue/kqtest
+OLD_FILES+=usr/tests/sys/kqueue/kqueue_test
 # 20160901: Remove digi(4)
 OLD_FILES+=usr/share/man/man4/digi.4.gz
 # 20160819: Remove ie(4)

Modified: user/alc/PQ_LAUNDRY/contrib/gcclibs/libcpp/system.h
==============================================================================
--- user/alc/PQ_LAUNDRY/contrib/gcclibs/libcpp/system.h	Tue Sep  6 23:42:59 2016	(r305509)
+++ user/alc/PQ_LAUNDRY/contrib/gcclibs/libcpp/system.h	Wed Sep  7 00:34:45 2016	(r305510)
@@ -347,9 +347,12 @@ extern void abort (void);
    ??? C99 designated initializers are not supported by most C++
    compilers, including G++.  -- gdr, 2005-05-18  */
 #if !defined(HAVE_DESIGNATED_INITIALIZERS)
-#define HAVE_DESIGNATED_INITIALIZERS \
-  ((!defined(__cplusplus) && (GCC_VERSION >= 2007)) \
-   || (__STDC_VERSION__ >= 199901L))
+# if (!defined(__cplusplus) && (GCC_VERSION >= 2007)) \
+     ||(__STDC_VERSION__ >= 199901L)
+#  define HAVE_DESIGNATED_INITIALIZERS 1
+# else
+#  define HAVE_DESIGNATED_INITIALIZERS 0
+# endif
 #endif
 
 /* Be conservative and only use enum bitfields with GCC.

Copied: user/alc/PQ_LAUNDRY/contrib/libarchive/README.md (from r305509, head/contrib/libarchive/README.md)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/alc/PQ_LAUNDRY/contrib/libarchive/README.md	Wed Sep  7 00:34:45 2016	(r305510, copy of r305509, head/contrib/libarchive/README.md)
@@ -0,0 +1,222 @@
+# Welcome to libarchive!
+
+The libarchive project develops a portable, efficient C library that
+can read and write streaming archives in a variety of formats.  It
+also includes implementations of the common `tar`, `cpio`, and `zcat`
+command-line tools that use the libarchive library.
+
+## Questions?  Issues?
+
+* http://www.libarchive.org is the home for ongoing
+  libarchive development, including documentation,
+  and links to the libarchive mailing lists.
+* To report an issue, use the issue tracker at
+  https://github.com/libarchive/libarchive/issues
+* To submit an enhancement to libarchive, please
+  submit a pull request via GitHub: https://github.com/libarchive/libarchive/pulls
+
+## Contents of the Distribution
+
+This distribution bundle includes the following major components:
+
+* **libarchive**: a library for reading and writing streaming archives
+* **tar**: the 'bsdtar' program is a full-featured 'tar' implementation built on libarchive
+* **cpio**: the 'bsdcpio' program is a different interface to essentially the same functionality
+* **cat**: the 'bsdcat' program is a simple replacement tool for zcat, bzcat, xzcat, and such
+* **examples**: Some small example programs that you may find useful.
+* **examples/minitar**: a compact sample demonstrating use of libarchive.
+* **contrib**:  Various items sent to me by third parties; please contact the authors with any questions.
+
+The top-level directory contains the following information files:
+
+* **NEWS** - highlights of recent changes
+* **COPYING** - what you can do with this
+* **INSTALL** - installation instructions
+* **README** - this file
+* **CMakeLists.txt** - input for "cmake" build tool, see INSTALL
+* **configure** - configuration script, see INSTALL for details.  If your copy of the source lacks a `configure` script, you can try to construct it by running the script in `build/autogen.sh` (or use `cmake`).
+
+The following files in the top-level directory are used by the 'configure' script:
+* `Makefile.am`, `aclocal.m4`, `configure.ac` - used to build this distribution, only needed by maintainers
+* `Makefile.in`, `config.h.in` - templates used by configure script
+
+## Documentation
+
+In addition to the informational articles and documentation
+in the online [libarchive Wiki](https://github.com/libarchive/libarchive/wiki),
+the distribution also includes a number of manual pages:
+
+ * bsdtar.1 explains the use of the bsdtar program
+ * bsdcpio.1 explains the use of the bsdcpio program
+ * bsdcat.1 explains the use of the bsdcat program
+ * libarchive.3 gives an overview of the library as a whole
+ * archive_read.3, archive_write.3, archive_write_disk.3, and
+   archive_read_disk.3 provide detailed calling sequences for the read
+   and write APIs
+ * archive_entry.3 details the "struct archive_entry" utility class
+ * archive_internals.3 provides some insight into libarchive's
+   internal structure and operation.
+ * libarchive-formats.5 documents the file formats supported by the library
+ * cpio.5, mtree.5, and tar.5 provide detailed information about these
+   popular archive formats, including hard-to-find details about
+   modern cpio and tar variants.
+
+The manual pages above are provided in the 'doc' directory in
+a number of different formats.
+
+You should also read the copious comments in `archive.h` and the
+source code for the sample programs for more details.  Please let us
+know about any errors or omissions you find.
+
+## Supported Formats
+
+Currently, the library automatically detects and reads the following fomats:
+  * Old V7 tar archives
+  * POSIX ustar
+  * GNU tar format (including GNU long filenames, long link names, and sparse files)
+  * Solaris 9 extended tar format (including ACLs)
+  * POSIX pax interchange format
+  * POSIX octet-oriented cpio
+  * SVR4 ASCII cpio
+  * POSIX octet-oriented cpio
+  * Binary cpio (big-endian or little-endian)
+  * ISO9660 CD-ROM images (with optional Rockridge or Joliet extensions)
+  * ZIP archives (with uncompressed or "deflate" compressed entries, including support for encrypted Zip archives)
+  * GNU and BSD 'ar' archives
+  * 'mtree' format
+  * 7-Zip archives
+  * Microsoft CAB format
+  * LHA and LZH archives
+  * RAR archives (with some limitations due to RAR's proprietary status)
+  * XAR archives
+
+The library also detects and handles any of the following before evaluating the archive:
+  * uuencoded files
+  * files with RPM wrapper
+  * gzip compression
+  * bzip2 compression
+  * compress/LZW compression
+  * lzma, lzip, and xz compression
+  * lz4 compression
+  * lzop compression
+
+The library can create archives in any of the following formats:
+  * POSIX ustar
+  * POSIX pax interchange format
+  * "restricted" pax format, which will create ustar archives except for
+    entries that require pax extensions (for long filenames, ACLs, etc).
+  * Old GNU tar format
+  * Old V7 tar format
+  * POSIX octet-oriented cpio
+  * SVR4 "newc" cpio
+  * shar archives
+  * ZIP archives (with uncompressed or "deflate" compressed entries)
+  * GNU and BSD 'ar' archives
+  * 'mtree' format
+  * ISO9660 format
+  * 7-Zip archives
+  * XAR archives
+
+When creating archives, the result can be filtered with any of the following:
+  * uuencode
+  * gzip compression
+  * bzip2 compression
+  * compress/LZW compression
+  * lzma, lzip, and xz compression
+  * lz4 compression
+  * lzop compression
+
+## Notes about the Library Design
+
+The following notes address many of the most common
+questions we are asked about libarchive:
+
+* This is a heavily stream-oriented system.  That means that
+  it is optimized to read or write the archive in a single
+  pass from beginning to end.  For example, this allows
+  libarchive to process archives too large to store on disk
+  by processing them on-the-fly as they are read from or
+  written to a network or tape drive.  This also makes
+  libarchive useful for tools that need to produce
+  archives on-the-fly (such as webservers that provide
+  archived contents of a users account).
+
+* In-place modification and random access to the contents
+  of an archive are not directly supported.  For some formats,
+  this is not an issue: For example, tar.gz archives are not
+  designed for random access.  In some other cases, libarchive
+  can re-open an archive and scan it from the beginning quickly
+  enough to provide the needed abilities even without true
+  random access.  Of course, some applications do require true
+  random access; those applications should consider alternatives
+  to libarchive.
+
+* The library is designed to be extended with new compression and
+  archive formats.  The only requirement is that the format be
+  readable or writable as a stream and that each archive entry be
+  independent.  There are articles on the libarchive Wiki explaining
+  how to extend libarchive.
+
+* On read, compression and format are always detected automatically.
+
+* The same API is used for all formats; in particular, it's very
+  easy for software using libarchive to transparently handle
+  any of libarchive's archiving formats.
+
+* Libarchive's automatic support for decompression can be used
+  without archiving by explicitly selecting the "raw" and "empty"
+  formats.
+
+* I've attempted to minimize static link pollution.  If you don't
+  explicitly invoke a particular feature (such as support for a
+  particular compression or format), it won't get pulled in to
+  statically-linked programs.  In particular, if you don't explicitly
+  enable a particular compression or decompression support, you won't
+  need to link against the corresponding compression or decompression
+  libraries.  This also reduces the size of statically-linked
+  binaries in environments where that matters.
+
+* The library is generally _thread safe_ depending on the platform:
+  it does not define any global variables of its own.  However, some
+  platforms do not provide fully thread-safe versions of key C library
+  functions.  On those platforms, libarchive will use the non-thread-safe
+  functions.  Patches to improve this are of great interest to us.
+
+* In particular, libarchive's modules to read or write a directory
+  tree do use `chdir()` to optimize the directory traversals.  This
+  can cause problems for programs that expect to do disk access from
+  multiple threads.  Of course, those modules are completely
+  optional and you can use the rest of libarchive without them.
+
+* The library is _not_ thread aware, however.  It does no locking
+  or thread management of any kind.  If you create a libarchive
+  object and need to access it from multiple threads, you will
+  need to provide your own locking.
+
+* On read, the library accepts whatever blocks you hand it.
+  Your read callback is free to pass the library a byte at a time
+  or mmap the entire archive and give it to the library at once.
+  On write, the library always produces correctly-blocked output.
+
+* The object-style approach allows you to have multiple archive streams
+  open at once.  bsdtar uses this in its "@archive" extension.
+
+* The archive itself is read/written using callback functions.
+  You can read an archive directly from an in-memory buffer or
+  write it to a socket, if you wish.  There are some utility
+  functions to provide easy-to-use "open file," etc, capabilities.
+
+* The read/write APIs are designed to allow individual entries
+  to be read or written to any data source:  You can create
+  a block of data in memory and add it to a tar archive without
+  first writing a temporary file.  You can also read an entry from
+  an archive and write the data directly to a socket.  If you want
+  to read/write entries to disk, there are convenience functions to
+  make this especially easy.
+
+* Note: The "pax interchange format" is a POSIX standard extended tar
+  format that should be used when the older _ustar_ format is not
+  appropriate.  It has many advantages over other tar formats
+  (including the legacy GNU tar format) and is widely supported by
+  current tar implementations.
+

Modified: user/alc/PQ_LAUNDRY/contrib/libarchive/libarchive/archive_acl.c
==============================================================================
--- user/alc/PQ_LAUNDRY/contrib/libarchive/libarchive/archive_acl.c	Tue Sep  6 23:42:59 2016	(r305509)
+++ user/alc/PQ_LAUNDRY/contrib/libarchive/libarchive/archive_acl.c	Wed Sep  7 00:34:45 2016	(r305510)
@@ -707,10 +707,11 @@ archive_acl_text_l(struct archive_acl *a
 			if (r != 0)
 				return (-1);
 			*p++ = separator;
-			if (flags & ARCHIVE_ENTRY_ACL_STYLE_EXTRA_ID)
+			if (name == NULL || (flags & ARCHIVE_ENTRY_ACL_STYLE_EXTRA_ID)) {
 				id = ap->id;
-			else
+			} else {
 				id = -1;
+			}
 			append_entry(&p, NULL, ap->tag, name,
 			    ap->permset, id);
 			count++;

Modified: user/alc/PQ_LAUNDRY/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c
==============================================================================
--- user/alc/PQ_LAUNDRY/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c	Tue Sep  6 23:42:59 2016	(r305509)
+++ user/alc/PQ_LAUNDRY/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c	Wed Sep  7 00:34:45 2016	(r305510)
@@ -419,12 +419,32 @@ setup_acls(struct archive_read_disk *a,
 	if (accpath == NULL)
 		accpath = archive_entry_pathname(entry);
 
+	if (*fd < 0 && a->tree != NULL) {
+		if (a->follow_symlinks ||
+		    archive_entry_filetype(entry) != AE_IFLNK)
+			*fd = a->open_on_current_dir(a->tree,
+			    accpath, O_RDONLY | O_NONBLOCK);
+		if (*fd < 0) {
+			if (a->tree_enter_working_dir(a->tree) != 0) {
+				archive_set_error(&a->archive, errno,
+				    "Couldn't access %s", accpath);
+				return (ARCHIVE_FAILED);
+			}
+		}
+	}
+
 	archive_entry_acl_clear(entry);
 
+	acl = NULL;
+
 #ifdef ACL_TYPE_NFS4
 	/* Try NFS4 ACL first. */
 	if (*fd >= 0)
+#if HAVE_ACL_GET_FD_NP
+		acl = acl_get_fd_np(*fd, ACL_TYPE_NFS4);
+#else
 		acl = acl_get_fd(*fd);
+#endif
 #if HAVE_ACL_GET_LINK_NP
 	else if (!a->follow_symlinks)
 		acl = acl_get_link_np(accpath, ACL_TYPE_NFS4);
@@ -437,12 +457,19 @@ setup_acls(struct archive_read_disk *a,
 #endif
 	else
 		acl = acl_get_file(accpath, ACL_TYPE_NFS4);
+
 #if HAVE_ACL_IS_TRIVIAL_NP
-	/* Ignore "trivial" ACLs that just mirror the file mode. */
-	acl_is_trivial_np(acl, &r);
-	if (r) {
-		acl_free(acl);
-		acl = NULL;
+	if (acl != NULL && acl_is_trivial_np(acl, &r) == 0) {
+		/* Ignore "trivial" ACLs that just mirror the file mode. */
+		if (r) {
+			acl_free(acl);
+			acl = NULL;
+			/*
+			 * Simultaneous NFSv4 and POSIX.1e ACLs for the same
+			 * entry are not allowed, so we should return here
+			 */
+			return (ARCHIVE_OK);
+		}
 	}
 #endif
 	if (acl != NULL) {
@@ -450,7 +477,7 @@ setup_acls(struct archive_read_disk *a,
 		acl_free(acl);
 		return (ARCHIVE_OK);
 	}
-#endif
+#endif	/* ACL_TYPE_NFS4 */
 
 	/* Retrieve access ACL from file. */
 	if (*fd >= 0)
@@ -467,10 +494,22 @@ setup_acls(struct archive_read_disk *a,
 #endif
 	else
 		acl = acl_get_file(accpath, ACL_TYPE_ACCESS);
+
+#if HAVE_ACL_IS_TRIVIAL_NP
+	/* Ignore "trivial" ACLs that just mirror the file mode. */
+	if (acl != NULL && acl_is_trivial_np(acl, &r) == 0) {
+		if (r) {
+			acl_free(acl);
+			acl = NULL;
+		}
+	}
+#endif
+
 	if (acl != NULL) {
 		translate_acl(a, entry, acl,
 		    ARCHIVE_ENTRY_ACL_TYPE_ACCESS);
 		acl_free(acl);
+		acl = NULL;
 	}
 
 	/* Only directories can have default ACLs. */

Modified: user/alc/PQ_LAUNDRY/contrib/libarchive/libarchive/archive_read_disk_posix.c
==============================================================================
--- user/alc/PQ_LAUNDRY/contrib/libarchive/libarchive/archive_read_disk_posix.c	Tue Sep  6 23:42:59 2016	(r305509)
+++ user/alc/PQ_LAUNDRY/contrib/libarchive/libarchive/archive_read_disk_posix.c	Wed Sep  7 00:34:45 2016	(r305510)
@@ -1504,10 +1504,19 @@ setup_current_filesystem(struct archive_
 	struct tree *t = a->tree;
 	struct statfs sfs;
 #if defined(HAVE_GETVFSBYNAME) && defined(VFCF_SYNTHETIC)
-#  if defined(HAVE_STRUCT_VFSCONF)
-	struct vfsconf vfc;
-#  else
+/* TODO: configure should set GETVFSBYNAME_ARG_TYPE to make
+ * this accurate; some platforms have both and we need the one that's
+ * used by getvfsbyname()
+ *
+ * Then the following would become:
+ *  #if defined(GETVFSBYNAME_ARG_TYPE)
+ *   GETVFSBYNAME_ARG_TYPE vfc;
+ *  #endif
+ */
+#  if defined(HAVE_STRUCT_XVFSCONF)
 	struct xvfsconf vfc;
+#  else
+	struct vfsconf vfc;
 #  endif
 #endif
 	int r, xr = 0;

Modified: user/alc/PQ_LAUNDRY/contrib/libarchive/libarchive/test/test_acl_freebsd_posix1e.c
==============================================================================
--- user/alc/PQ_LAUNDRY/contrib/libarchive/libarchive/test/test_acl_freebsd_posix1e.c	Tue Sep  6 23:42:59 2016	(r305509)
+++ user/alc/PQ_LAUNDRY/contrib/libarchive/libarchive/test/test_acl_freebsd_posix1e.c	Wed Sep  7 00:34:45 2016	(r305510)
@@ -70,15 +70,9 @@ set_acls(struct archive_entry *ae, struc
 }
 
 static int
-acl_match(acl_entry_t aclent, struct myacl_t *myacl)
-{
-	gid_t g, *gp;
-	uid_t u, *up;
-	acl_tag_t tag_type;
-	acl_permset_t opaque_ps;
+acl_entry_get_perm(acl_entry_t aclent) {
 	int permset = 0;
-
-	acl_get_tag_type(aclent, &tag_type);
+	acl_permset_t opaque_ps;
 
 	/* translate the silly opaque permset to a bitmap */
 	acl_get_permset(aclent, &opaque_ps);
@@ -88,10 +82,61 @@ acl_match(acl_entry_t aclent, struct mya
 		permset |= ARCHIVE_ENTRY_ACL_WRITE;
 	if (acl_get_perm_np(opaque_ps, ACL_READ))
 		permset |= ARCHIVE_ENTRY_ACL_READ;
+	return permset;
+}
+
+#if 0
+static int
+acl_get_specific_entry(acl_t acl, acl_tag_t requested_tag_type, int requested_tag) {
+	int entry_id = ACL_FIRST_ENTRY;
+	acl_entry_t acl_entry;
+	acl_tag_t acl_tag_type;
+	
+	while (1 == acl_get_entry(acl, entry_id, &acl_entry)) {
+		/* After the first time... */
+		entry_id = ACL_NEXT_ENTRY;
+
+		/* If this matches, return perm mask */
+		acl_get_tag_type(acl_entry, &acl_tag_type);
+		if (acl_tag_type == requested_tag_type) {
+			switch (acl_tag_type) {
+			case ACL_USER_OBJ:
+				if ((uid_t)requested_tag == *(uid_t *)(acl_get_qualifier(acl_entry))) {
+					return acl_entry_get_perm(acl_entry);
+				}
+				break;
+			case ACL_GROUP_OBJ:
+				if ((gid_t)requested_tag == *(gid_t *)(acl_get_qualifier(acl_entry))) {
+					return acl_entry_get_perm(acl_entry);
+				}
+				break;
+			case ACL_USER:
+			case ACL_GROUP:
+			case ACL_OTHER:
+				return acl_entry_get_perm(acl_entry);
+			default:
+				failure("Unexpected ACL tag type");
+				assert(0);
+			}
+		}
+
 
-	if (permset != myacl->permset)
+	}
+	return -1;
+}
+#endif
+
+static int
+acl_match(acl_entry_t aclent, struct myacl_t *myacl)
+{
+	gid_t g, *gp;
+	uid_t u, *up;
+	acl_tag_t tag_type;
+
+	if (myacl->permset != acl_entry_get_perm(aclent))
 		return (0);
 
+	acl_get_tag_type(aclent, &tag_type);
 	switch (tag_type) {
 	case ACL_USER_OBJ:
 		if (myacl->tag != ARCHIVE_ENTRY_ACL_USER_OBJ) return (0);
@@ -190,7 +235,7 @@ compare_acls(acl_t acl, struct myacl_t *
  * Verify ACL restore-to-disk.  This test is FreeBSD-specific.
  */
 
-DEFINE_TEST(test_acl_freebsd_posix1e)
+DEFINE_TEST(test_acl_freebsd_posix1e_restore)
 {
 #if !defined(__FreeBSD__)
 	skipping("FreeBSD-specific ACL restore test");
@@ -263,3 +308,111 @@ DEFINE_TEST(test_acl_freebsd_posix1e)
 	acl_free(acl);
 #endif
 }
+
+/*
+ * Verify ACL reaed-from-disk.  This test is FreeBSD-specific.
+ */
+DEFINE_TEST(test_acl_freebsd_posix1e_read)
+{
+#if !defined(__FreeBSD__)
+	skipping("FreeBSD-specific ACL read test");
+#elif __FreeBSD__ < 5
+	skipping("ACL read supported only on FreeBSD 5.0 and later");
+#else
+	struct archive *a;
+	struct archive_entry *ae;
+	int n, fd;
+	const char *acl1_text, *acl2_text;
+	acl_t acl1, acl2;
+
+	/*
+	 * Manually construct a directory and two files with
+	 * different ACLs.  This also serves to verify that ACLs
+	 * are supported on the local filesystem.
+	 */
+
+	/* Create a test file f1 with acl1 */
+	acl1_text = "user::rwx,group::rwx,other::rwx,user:1:rw-,group:15:r-x,mask::rwx";
+	acl1 = acl_from_text(acl1_text);
+	assert((void *)acl1 != NULL);
+	fd = open("f1", O_WRONLY | O_CREAT | O_EXCL, 0777);
+	failure("Could not create test file?!");
+	if (!assert(fd >= 0)) {
+		acl_free(acl1);
+		return;
+	}
+	n = acl_set_fd(fd, acl1);
+	acl_free(acl1);
+	if (n != 0 && errno == EOPNOTSUPP) {
+		close(fd);
+		skipping("ACL tests require that ACL support be enabled on the filesystem");
+		return;
+	}
+	if (n != 0 && errno == EINVAL) {
+		close(fd);
+		skipping("This filesystem does not support POSIX.1e ACLs");
+		return;
+	}
+	failure("acl_set_fd(): errno = %d (%s)",
+	    errno, strerror(errno));
+	assertEqualInt(0, n);
+	close(fd);
+
+	assertMakeDir("d", 0700);
+
+	/*
+	 * Create file d/f1 with acl2
+	 *
+	 * This differs from acl1 in the u:1: and g:15: permissions.
+	 *
+	 * This file deliberately has the same name but a different ACL.
+	 * Github Issue #777 explains how libarchive's directory traversal
+	 * did not always correctly enter directories before attempting
+	 * to read ACLs, resulting in reading the ACL from a like-named
+	 * file in the wrong directory.
+	 */
+	acl2_text = "user::rwx,group::rwx,other::---,user:1:r--,group:15:r--,mask::rwx";
+	acl2 = acl_from_text(acl2_text);
+	assert((void *)acl2 != NULL);
+	fd = open("d/f1", O_WRONLY | O_CREAT | O_EXCL, 0777);
+	failure("Could not create test file?!");
+	if (!assert(fd >= 0)) {
+		acl_free(acl2);
+		return;
+	}
+	n = acl_set_fd(fd, acl2);
+	acl_free(acl2);
+	if (n != 0 && errno == EOPNOTSUPP) {
+		close(fd);
+		skipping("ACL tests require that ACL support be enabled on the filesystem");
+		return;
+	}
+	if (n != 0 && errno == EINVAL) {
+		close(fd);
+		skipping("This filesystem does not support POSIX.1e ACLs");
+		return;
+	}
+	failure("acl_set_fd(): errno = %d (%s)",
+	    errno, strerror(errno));
+	assertEqualInt(0, n);
+	close(fd);
+
+	/* Create a read-from-disk object. */
+	assert(NULL != (a = archive_read_disk_new()));
+	assertEqualIntA(a, ARCHIVE_OK, archive_read_disk_open(a, "."));
+	assert(NULL != (ae = archive_entry_new()));
+
+	/* Walk the dir until we see both of the files */
+	while (ARCHIVE_OK == archive_read_next_header2(a, ae)) {
+		archive_read_disk_descend(a);
+		if (strcmp(archive_entry_pathname(ae), "./f1") == 0) {
+			assertEqualString(archive_entry_acl_text(ae, ARCHIVE_ENTRY_ACL_TYPE_ACCESS), acl1_text);
+			    
+		} else if (strcmp(archive_entry_pathname(ae), "./d/f1") == 0) {
+			assertEqualString(archive_entry_acl_text(ae, ARCHIVE_ENTRY_ACL_TYPE_ACCESS), acl2_text);
+		}
+	}
+
+	archive_free(a);
+#endif
+}

Modified: user/alc/PQ_LAUNDRY/contrib/netbsd-tests/kernel/kqueue/read/t_fifo.c
==============================================================================
--- user/alc/PQ_LAUNDRY/contrib/netbsd-tests/kernel/kqueue/read/t_fifo.c	Tue Sep  6 23:42:59 2016	(r305509)
+++ user/alc/PQ_LAUNDRY/contrib/netbsd-tests/kernel/kqueue/read/t_fifo.c	Wed Sep  7 00:34:45 2016	(r305510)
@@ -78,7 +78,11 @@ ATF_TC_BODY(fifo, tc)
 	RL(n = kevent(kq, NULL, 0, event, 1, NULL));
 
 	(void)printf("kevent num %d filt %d flags: %#x, fflags: %#x, "
+#ifdef __FreeBSD__
+	    "data: %" PRIdPTR "\n", n, event[0].filter, event[0].flags,
+#else
 	    "data: %" PRId64 "\n", n, event[0].filter, event[0].flags,
+#endif
 	    event[0].fflags, event[0].data);
 
 	ATF_REQUIRE_EQ(event[0].filter, EVFILT_READ);

Modified: user/alc/PQ_LAUNDRY/contrib/netbsd-tests/kernel/kqueue/read/t_file.c
==============================================================================
--- user/alc/PQ_LAUNDRY/contrib/netbsd-tests/kernel/kqueue/read/t_file.c	Tue Sep  6 23:42:59 2016	(r305509)
+++ user/alc/PQ_LAUNDRY/contrib/netbsd-tests/kernel/kqueue/read/t_file.c	Wed Sep  7 00:34:45 2016	(r305510)
@@ -111,7 +111,11 @@ ATF_TC_BODY(file, tc)
 		num += n;
 
 		(void)printf("kevent num %d flags: %#x, fflags: %#x, data: "
+#ifdef __FreeBSD__
+		    "%" PRIdPTR "\n", n, event[0].flags, event[0].fflags,
+#else
 		    "%" PRId64 "\n", n, event[0].flags, event[0].fflags,
+#endif
 		    event[0].data);
 
 		if (event[0].data < 0)

Modified: user/alc/PQ_LAUNDRY/contrib/netbsd-tests/kernel/kqueue/read/t_pipe.c
==============================================================================
--- user/alc/PQ_LAUNDRY/contrib/netbsd-tests/kernel/kqueue/read/t_pipe.c	Tue Sep  6 23:42:59 2016	(r305509)
+++ user/alc/PQ_LAUNDRY/contrib/netbsd-tests/kernel/kqueue/read/t_pipe.c	Wed Sep  7 00:34:45 2016	(r305510)
@@ -67,7 +67,11 @@ ATF_TC_BODY(pipe, tc)
 
 	RL(n = kevent(kq, NULL, 0, event, 1, NULL));
 	(void)printf("kevent num %d flags: %#x, fflags: %#x, data: "
+#ifdef __FreeBSD__
+	    "%" PRIdPTR "\n", n, event[0].flags, event[0].fflags, event[0].data);
+#else
 	    "%" PRId64 "\n", n, event[0].flags, event[0].fflags, event[0].data);
+#endif
 
 	RL(n = read(fds[0], buffer, event[0].data));
 	buffer[n] = '\0';

Modified: user/alc/PQ_LAUNDRY/contrib/netbsd-tests/kernel/kqueue/read/t_ttypty.c
==============================================================================
--- user/alc/PQ_LAUNDRY/contrib/netbsd-tests/kernel/kqueue/read/t_ttypty.c	Tue Sep  6 23:42:59 2016	(r305509)
+++ user/alc/PQ_LAUNDRY/contrib/netbsd-tests/kernel/kqueue/read/t_ttypty.c	Wed Sep  7 00:34:45 2016	(r305510)
@@ -103,7 +103,11 @@ h_check(bool check_master)
 	RL(n = kevent(kq, NULL, 0, event, 1, NULL));
 
 	(void)printf("kevent num %d filt %d flags: %#x, fflags: %#x, "
+#ifdef __FreeBSD__
+	    "data: %" PRIdPTR "\n", n, event[0].filter, event[0].flags,
+#else
 	    "data: %" PRId64 "\n", n, event[0].filter, event[0].flags,
+#endif
 	    event[0].fflags, event[0].data);
 
 	ATF_REQUIRE_EQ(event[0].filter, EVFILT_READ);

Modified: user/alc/PQ_LAUNDRY/contrib/netbsd-tests/kernel/kqueue/t_proc1.c
==============================================================================
--- user/alc/PQ_LAUNDRY/contrib/netbsd-tests/kernel/kqueue/t_proc1.c	Tue Sep  6 23:42:59 2016	(r305509)
+++ user/alc/PQ_LAUNDRY/contrib/netbsd-tests/kernel/kqueue/t_proc1.c	Wed Sep  7 00:34:45 2016	(r305510)
@@ -139,7 +139,11 @@ ATF_TC_BODY(proc1, tc)
 			printf(" NOTE_FORK");
 		}
 		if (event[0].fflags & NOTE_CHILD)
+#ifdef __FreeBSD__
+			printf(" NOTE_CHILD, parent = %" PRIdPTR, event[0].data);
+#else
 			printf(" NOTE_CHILD, parent = %" PRId64, event[0].data);
+#endif
 
 		printf("\n");
 	}

Modified: user/alc/PQ_LAUNDRY/contrib/netbsd-tests/kernel/kqueue/t_proc2.c
==============================================================================
--- user/alc/PQ_LAUNDRY/contrib/netbsd-tests/kernel/kqueue/t_proc2.c	Tue Sep  6 23:42:59 2016	(r305509)
+++ user/alc/PQ_LAUNDRY/contrib/netbsd-tests/kernel/kqueue/t_proc2.c	Wed Sep  7 00:34:45 2016	(r305510)
@@ -34,6 +34,9 @@ __COPYRIGHT("@(#) Copyright (c) 2008\
  The NetBSD Foundation, inc. All rights reserved.");
 __RCSID("$NetBSD: t_proc2.c,v 1.2 2015/01/14 22:22:32 christos Exp $");
 
+#ifdef __FreeBSD__
+#include <sys/types.h>
+#endif
 #include <sys/event.h>
 #include <sys/time.h>
 #include <sys/types.h>

Modified: user/alc/PQ_LAUNDRY/contrib/netbsd-tests/kernel/kqueue/t_proc3.c
==============================================================================
--- user/alc/PQ_LAUNDRY/contrib/netbsd-tests/kernel/kqueue/t_proc3.c	Tue Sep  6 23:42:59 2016	(r305509)
+++ user/alc/PQ_LAUNDRY/contrib/netbsd-tests/kernel/kqueue/t_proc3.c	Wed Sep  7 00:34:45 2016	(r305510)
@@ -32,6 +32,9 @@
 #include <sys/cdefs.h>
 __RCSID("$NetBSD: t_proc3.c,v 1.2 2015/01/14 22:22:32 christos Exp $");
 
+#ifdef __FreeBSD__
+#include <sys/types.h>
+#endif
 #include <sys/event.h>
 #include <sys/time.h>
 #include <sys/types.h>

Modified: user/alc/PQ_LAUNDRY/contrib/netbsd-tests/kernel/kqueue/t_sig.c
==============================================================================
--- user/alc/PQ_LAUNDRY/contrib/netbsd-tests/kernel/kqueue/t_sig.c	Tue Sep  6 23:42:59 2016	(r305509)
+++ user/alc/PQ_LAUNDRY/contrib/netbsd-tests/kernel/kqueue/t_sig.c	Wed Sep  7 00:34:45 2016	(r305510)
@@ -34,6 +34,9 @@ __COPYRIGHT("@(#) Copyright (c) 2008\
  The NetBSD Foundation, inc. All rights reserved.");
 __RCSID("$NetBSD: t_sig.c,v 1.2 2010/11/03 16:10:20 christos Exp $");
 
+#ifdef __FreeBSD__
+#include <sys/types.h>
+#endif
 #include <sys/event.h>
 #include <sys/ioctl.h>
 #include <sys/param.h>
@@ -60,9 +63,13 @@ ATF_TC_HEAD(sig, tc)
 ATF_TC_BODY(sig, tc)
 {
 	struct timespec	timeout;
+#ifdef __NetBSD__
 	struct kfilter_mapping km;
+#endif
 	struct kevent event[1];
+#ifdef __NetBSD__
 	char namebuf[32];
+#endif
 	pid_t pid, child;
 	int kq, n, num, status;
 
@@ -84,16 +91,22 @@ ATF_TC_BODY(sig, tc)
 
 	RL(kq = kqueue());
 
+#ifdef __NetBSD__
 	(void)strlcpy(namebuf, "EVFILT_SIGNAL", sizeof(namebuf));
 	km.name = namebuf;
 	RL(ioctl(kq, KFILTER_BYNAME, &km));
 	(void)printf("got %d as filter number for `%s'.\n", km.filter, km.name);
+#endif
 
 	/* ignore the signal to avoid taking it for real */
 	REQUIRE_LIBC(signal(SIGUSR1, SIG_IGN), SIG_ERR);
 
 	event[0].ident = SIGUSR1;
+#ifdef __NetBSD__
 	event[0].filter = km.filter;
+#else
+	event[0].filter = EVFILT_SIGNAL;
+#endif
 	event[0].flags = EV_ADD | EV_ENABLE;
 
 	RL(kevent(kq, event, 1, NULL, 0, NULL));
@@ -117,7 +130,11 @@ ATF_TC_BODY(sig, tc)
 		if (n == 0)
 			continue;
 
+#ifdef __FreeBSD__
+		(void)printf("sig: kevent flags: 0x%x, data: %" PRIdPTR " (# "
+#else
 		(void)printf("sig: kevent flags: 0x%x, data: %" PRId64 " (# "
+#endif
 		    "times signal posted)\n", event[0].flags, event[0].data);
 	}
 

Modified: user/alc/PQ_LAUNDRY/contrib/netbsd-tests/kernel/kqueue/t_vnode.c
==============================================================================
--- user/alc/PQ_LAUNDRY/contrib/netbsd-tests/kernel/kqueue/t_vnode.c	Tue Sep  6 23:42:59 2016	(r305509)
+++ user/alc/PQ_LAUNDRY/contrib/netbsd-tests/kernel/kqueue/t_vnode.c	Wed Sep  7 00:34:45 2016	(r305510)
@@ -1,3 +1,6 @@
+#ifdef __FreeBSD__
+#include <sys/types.h>
+#endif
 #include <sys/event.h>
 #include <sys/stat.h>
 #include <sys/time.h>

Modified: user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/rpc/t_rpc.c
==============================================================================
--- user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/rpc/t_rpc.c	Tue Sep  6 23:42:59 2016	(r305509)
+++ user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/rpc/t_rpc.c	Wed Sep  7 00:34:45 2016	(r305510)
@@ -24,6 +24,13 @@ __RCSID("$NetBSD: t_rpc.c,v 1.9 2015/11/
 	return;						\
 } while(/*CONSTCOND*/0)
 
+#ifdef __FreeBSD__
+#define SKIPXI(ev, msg, ...)	do {			\
+	atf_tc_skip(msg, __VA_ARGS__);			\
+	return ev;					\
+} while(/*CONSTCOND*/0)
+#endif
+
 #else
 #define ERRX(ev, msg, ...)	errx(ev, msg, __VA_ARGS__)
 #define SKIPX(ev, msg, ...)	errx(ev, msg, __VA_ARGS__)
@@ -188,7 +195,13 @@ regtest(const char *hostname, const char
 	svc_fdset_init(p ? SVC_FDSET_POLL : 0);
 #endif
 	if (!svc_create(server, PROGNUM, VERSNUM, transp))
+#ifdef __NetBSD__
 		ERRX(EXIT_FAILURE, "Cannot create server %d", num);
+#else
+	{
+		SKIPXI(EXIT_FAILURE, "Cannot create server %d", num);
+	}
+#endif
 
 	switch ((pid = fork())) {
 	case 0:
@@ -335,6 +348,9 @@ ATF_TC(tcp);
 ATF_TC_HEAD(tcp, tc)
 {
 	atf_tc_set_md_var(tc, "descr", "Checks svc tcp (select)");
+#ifdef __FreeBSD__
+	atf_tc_set_md_var(tc, "require.user", "root");
+#endif
 }
 
 ATF_TC_BODY(tcp, tc)
@@ -347,6 +363,9 @@ ATF_TC(udp);
 ATF_TC_HEAD(udp, tc)
 {
 	atf_tc_set_md_var(tc, "descr", "Checks svc udp (select)");
+#ifdef __FreeBSD__
+	atf_tc_set_md_var(tc, "require.user", "root");
+#endif
 }
 
 ATF_TC_BODY(udp, tc)
@@ -359,6 +378,9 @@ ATF_TC(tcp_poll);
 ATF_TC_HEAD(tcp_poll, tc)
 {
 	atf_tc_set_md_var(tc, "descr", "Checks svc tcp (poll)");
+#ifdef __FreeBSD__
+	atf_tc_set_md_var(tc, "require.user", "root");
+#endif
 }
 
 ATF_TC_BODY(tcp_poll, tc)
@@ -371,6 +393,9 @@ ATF_TC(udp_poll);
 ATF_TC_HEAD(udp_poll, tc)
 {
 	atf_tc_set_md_var(tc, "descr", "Checks svc udp (poll)");
+#ifdef __FreeBSD__
+	atf_tc_set_md_var(tc, "require.user", "root");
+#endif
 }
 
 ATF_TC_BODY(udp_poll, tc)

Modified: user/alc/PQ_LAUNDRY/contrib/top/commands.c
==============================================================================
--- user/alc/PQ_LAUNDRY/contrib/top/commands.c	Tue Sep  6 23:42:59 2016	(r305509)
+++ user/alc/PQ_LAUNDRY/contrib/top/commands.c	Wed Sep  7 00:34:45 2016	(r305510)
@@ -104,6 +104,7 @@ S       - toggle the displaying of syste
 a       - toggle the displaying of process titles\n\
 t       - toggle the display of this process\n\
 u       - display processes for only one user (+ selects all users)\n\
+w       - toggle the display of swap use for each process\n\
 z       - toggle the displaying of the system idle process\n\
 \n\
 \n", stdout);

Modified: user/alc/PQ_LAUNDRY/contrib/top/machine.h
==============================================================================
--- user/alc/PQ_LAUNDRY/contrib/top/machine.h	Tue Sep  6 23:42:59 2016	(r305509)
+++ user/alc/PQ_LAUNDRY/contrib/top/machine.h	Wed Sep  7 00:34:45 2016	(r305510)
@@ -72,6 +72,7 @@ struct process_select
     int wcpu;		/* show weighted cpu */
     int jid;		/* only this jid (unless jid == -1) */
     int jail;		/* show jail ID */
+    int swap;		/* show swap usage */
     int kidle;		/* show per-CPU idle threads */
     char *command;	/* only this command (unless == NULL) */
 };
@@ -82,8 +83,8 @@ char	*format_header();
 char	*format_next_process();
 void	 toggle_pcpustats(void);
 void	 get_system_info(struct system_info *si);
-int		 machine_init(struct statics *statics, char do_unames);
-int		 proc_owner(int pid);
+int	 machine_init(struct statics *statics, char do_unames);
+int	 proc_owner(int pid);
 
 /* non-int routines typically used by the machine dependent module */
 char	*printable();

Modified: user/alc/PQ_LAUNDRY/contrib/top/top.c
==============================================================================
--- user/alc/PQ_LAUNDRY/contrib/top/top.c	Tue Sep  6 23:42:59 2016	(r305509)
+++ user/alc/PQ_LAUNDRY/contrib/top/top.c	Wed Sep  7 00:34:45 2016	(r305510)
@@ -188,9 +188,9 @@ char *argv[];
     fd_set readfds;
 
 #ifdef ORDER
-    static char command_chars[] = "\f qh?en#sdkriIutHmSCajzPJo";
+    static char command_chars[] = "\f qh?en#sdkriIutHmSCajzPJwo";
 #else
-    static char command_chars[] = "\f qh?en#sdkriIutHmSCajzPJ";
+    static char command_chars[] = "\f qh?en#sdkriIutHmSCajzPJw";
 #endif
 /* these defines enumerate the "strchr"s of the commands in command_chars */
 #define CMD_redraw	0
@@ -219,8 +219,9 @@ char *argv[];
 #define CMD_kidletog	22
 #define CMD_pcputog	23
 #define CMD_jail	24
+#define CMD_swaptog	25
 #ifdef ORDER
-#define CMD_order       25
+#define CMD_order       26
 #endif
 
     /* set the buffer for stdout */
@@ -254,6 +255,7 @@ char *argv[];
     ps.wcpu    = 1;
     ps.jid     = -1;
     ps.jail    = No;
+    ps.swap    = No;
     ps.kidle   = Yes;
     ps.command = NULL;
 
@@ -280,7 +282,7 @@ char *argv[];
 	    optind = 1;
 	}
 
-	while ((i = getopt(ac, av, "CSIHPabijJ:nquvzs:d:U:m:o:t")) != EOF)
+	while ((i = getopt(ac, av, "CSIHPabijJ:nquvzs:d:U:m:o:tw")) != EOF)
 	{
 	    switch(i)
 	    {
@@ -418,6 +420,10 @@ char *argv[];
 		pcpu_stats = !pcpu_stats;
 		break;
 
+	      case 'w':
+		ps.swap = 1;
+		break;
+
 	      case 'z':
 		ps.kidle = !ps.kidle;
 		break;
@@ -1141,6 +1147,15 @@ restart:
 				reset_display();
 				putchar('\r');
 				break;
+			    case CMD_swaptog:
+				ps.swap = !ps.swap;
+				new_message(MT_standout | MT_delayed,
+				    " %sisplaying per-process swap usage.",
+				    ps.swap ? "D" : "Not d");
+				header_text = format_header(uname_field);
+				reset_display();
+				putchar('\r');
+				break;
 			    default:
 				new_message(MT_standout, " BAD CASE IN SWITCH!");
 				putchar('\r');

Modified: user/alc/PQ_LAUNDRY/contrib/top/top.xs
==============================================================================
--- user/alc/PQ_LAUNDRY/contrib/top/top.xs	Tue Sep  6 23:42:59 2016	(r305509)
+++ user/alc/PQ_LAUNDRY/contrib/top/top.xs	Wed Sep  7 00:34:45 2016	(r305510)
@@ -10,7 +10,7 @@ top \- display and update information ab
 .SH SYNOPSIS
 .B top
 [
-.B \-abCHIijnPqStuvz
+.B \-abCHIijnPqStuvwz
 ] [
 .BI \-d count
 ] [
@@ -148,6 +148,9 @@ Write version number information to stde
 No other processing takes place when this option is used.  To see current
 revision information while top is running, use the help command \*(lq?\*(rq.
 .TP
+.B \-w
+Display approximate swap usage for each process.
+.TP
 .B \-z
 Do not display the system idle process.
 .TP
@@ -167,11 +170,12 @@ Set the delay between screen updates to
 seconds.  The default delay between updates is \nD seconds.
 .TP
 .BI \-o field
-Sort the process display area on the specified field.  The field name is
-the name of the column as seen in the output, but in lower case.  Likely
-values are \*(lqcpu\*(rq, \*(lqsize\*(rq, \*(lqres\*(rq, and \*(lqtime\*(rq,
-but may vary on different operating systems.  Note that
-not all operating systems support this option.
+Sort the process display area on the specified field.  The field name
+is the name of the column as seen in the output, but in lower case:
+\*(lqcpu\*(lq, \*(rqsize\*(lq, \*(rqres\*(lq, \*(rqtime\*(lq,
+\*(rqpri\*(lq, \*(rqthreads\*(lq, \*(lqtotal\*(lq, \*(rqread\*(lq,
+\*(rqwrite\*(lq, \*(rqfault\*(lq, \*(rqvcsw\*(lq, \*(rqivcsw\*(lq,
+\*(lqjid\*(lq, \*(rqswap\*(lq or \*(rqpid\*(lq.
 .TP
 .BI \-J jail
 Show only those processes owned by
@@ -226,6 +230,7 @@ The options
 .BR \-S ,
 .BR \-t ,
 .BR \-u ,
+.BR \-w ,
 and
 .B \-z
 are actually toggles.  A second specification of any of these options
@@ -346,6 +351,9 @@ Toggle the display of the
 .I top
 process.
 .TP
+.B w
+Toggle the display of swap usage.
+.TP
 .B z
 Toggle the display of the system idle process.
 .SH "THE DISPLAY"
@@ -379,8 +387,9 @@ is specified, a UID column will be subst
 PRI is the current priority of the process,
 NICE is the nice amount (in the range \-20 to 20),
 SIZE is the total size of the process (text, data, and stack),
-RES is the current amount of resident memory (both SIZE and RES are
-given in kilobytes),
+RES is the current amount of resident memory,
+SWAP is the approximate amount of swap, if enabled
+(SIZE, RES and SWAP are given in kilobytes),
 STATE is the current state (one of \*(lqSTART\*(rq, \*(lqRUN\*(rq
 (shown as \*(lqCPUn\*(rq on SMP systems), \*(lqSLEEP\*(rq, \*(lqSTOP\*(rq,
 \*(lqZOMB\*(rq, \*(lqWAIT\*(rq, \*(lqLOCK\*(rq or the event on which the

Modified: user/alc/PQ_LAUNDRY/etc/mtree/BSD.tests.dist
==============================================================================
--- user/alc/PQ_LAUNDRY/etc/mtree/BSD.tests.dist	Tue Sep  6 23:42:59 2016	(r305509)
+++ user/alc/PQ_LAUNDRY/etc/mtree/BSD.tests.dist	Wed Sep  7 00:34:45 2016	(r305510)
@@ -419,6 +419,8 @@
             ..
         ..

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

From owner-svn-src-user@freebsd.org  Fri Sep  9 08:48:11 2016
Return-Path: <owner-svn-src-user@freebsd.org>
Delivered-To: svn-src-user@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 1768DBD2856
 for <svn-src-user@mailman.ysv.freebsd.org>;
 Fri,  9 Sep 2016 08:48:11 +0000 (UTC) (envelope-from pho@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 E9780372;
 Fri,  9 Sep 2016 08:48:10 +0000 (UTC) (envelope-from pho@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u898mACs088516;
 Fri, 9 Sep 2016 08:48:10 GMT (envelope-from pho@FreeBSD.org)
Received: (from pho@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id u898mAIW088514;
 Fri, 9 Sep 2016 08:48:10 GMT (envelope-from pho@FreeBSD.org)
Message-Id: <201609090848.u898mAIW088514@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: pho set sender to pho@FreeBSD.org
 using -f
From: Peter Holm <pho@FreeBSD.org>
Date: Fri, 9 Sep 2016 08:48:10 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
Subject: svn commit: r305653 - user/pho/stress2/misc
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
 src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-user>,
 <mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user/>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-user>,
 <mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 09 Sep 2016 08:48:11 -0000

Author: pho
Date: Fri Sep  9 08:48:09 2016
New Revision: 305653
URL: https://svnweb.freebsd.org/changeset/base/305653

Log:
  Updated an old regression test with findings and added a new variation of
  this test.
  
  Sponsored by:	Dell EMC Isilon

Added:
  user/pho/stress2/misc/mkfifo2d.sh   (contents, props changed)
Modified:
  user/pho/stress2/misc/mkfifo2c.sh

Modified: user/pho/stress2/misc/mkfifo2c.sh
==============================================================================
--- user/pho/stress2/misc/mkfifo2c.sh	Fri Sep  9 07:34:14 2016	(r305652)
+++ user/pho/stress2/misc/mkfifo2c.sh	Fri Sep  9 08:48:09 2016	(r305653)
@@ -33,6 +33,13 @@
 # "bad offset" panic after up 10:57 on leopard3
 
 # Run with mkfifo.cfg on a 2g swap backed MD
+# Problem seen with and without +j
+
+# "panic: ufsdirhash_newblk: bad offset" seen:
+# https://people.freebsd.org/~pho/stress/log/mkfifo2c.txt
+# https://people.freebsd.org/~pho/stress/log/mkfifo2c-2.txt
+# https://people.freebsd.org/~pho/stress/log/kostik932.txt
+# Fixed by r305601.
 
 . ../default.cfg
 
@@ -42,7 +49,9 @@ mdconfig -l | grep -q md$mdstart &&  mdc
 mdconfig -a -t swap -s 2g -u $mdstart || exit 1
 bsdlabel -w md$mdstart auto
 
-newfs -j md${mdstart}$part > /dev/null
+[ $# -eq 1 ] && opt="$1"
+[ $# -eq 0 ] && opt="-j"
+newfs $opt md${mdstart}$part > /dev/null
 mount /dev/md${mdstart}$part $mntpoint
 chmod 777 $mntpoint
 

Added: user/pho/stress2/misc/mkfifo2d.sh
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/pho/stress2/misc/mkfifo2d.sh	Fri Sep  9 08:48:09 2016	(r305653)
@@ -0,0 +1,83 @@
+#!/bin/sh
+
+#
+# Copyright (c) 2016 EMC Corp.
+# 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.
+#
+# $FreeBSD$
+#
+
+[ `id -u ` -ne 0 ] && echo "Must be root!" && exit 1
+
+# Copy of mkfifo2c.sh, but with a SU file system and async mount
+# "panic: ufsdirhash_newblk: bad offset" seen from openat()
+# https://people.freebsd.org/~pho/stress/log/mkfifo2d.txt
+# Fixed by r305601.
+
+. ../default.cfg
+
+mount | grep $mntpoint | grep -q /dev/md && umount -f $mntpoint
+mdconfig -l | grep -q md$mdstart &&  mdconfig -d -u $mdstart
+
+mdconfig -a -t swap -s 2g -u $mdstart || exit 1
+bsdlabel -w md$mdstart auto
+
+newfs $newfs_flags md${mdstart}$part > /dev/null
+mount -o async /dev/md${mdstart}$part $mntpoint
+chmod 777 $mntpoint
+
+export runRUNTIME=5m
+export RUNDIR=$mntpoint/stressX
+
+export TESTPROGS="
+testcases/fts/fts
+testcases/link/link
+testcases/mkfifo/mkfifo
+testcases/mkdir/mkdir
+testcases/rename/rename
+testcases/swap/swap
+"
+
+export ftsLOAD=100
+export linkLOAD=100
+export mkdirLOAD=100
+export mkfifoLOAD=100
+export renameLOAD=100
+export swapLOAD=100
+
+export renameINCARNATIONS=4
+export swapINCARNATIONS=4
+export linkINCARNATIONS=12
+export mkdirINCARNATIONS=20
+export mkfifoINCARNATIONS=22
+export ftsINCARNATIONS=2
+
+export HOG=1
+
+su $testuser -c 'cd ..; ./testcases/run/run $TESTPROGS'
+
+while mount | grep $mntpoint | grep -q /dev/md; do
+	umount $mntpoint || sleep 1
+done
+mdconfig -d -u $mdstart

From owner-svn-src-user@freebsd.org  Fri Sep  9 08:50:13 2016
Return-Path: <owner-svn-src-user@freebsd.org>
Delivered-To: svn-src-user@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 16285BD288D
 for <svn-src-user@mailman.ysv.freebsd.org>;
 Fri,  9 Sep 2016 08:50:13 +0000 (UTC) (envelope-from pho@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 DA5D96D5;
 Fri,  9 Sep 2016 08:50:12 +0000 (UTC) (envelope-from pho@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u898oCcZ088644;
 Fri, 9 Sep 2016 08:50:12 GMT (envelope-from pho@FreeBSD.org)
Received: (from pho@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id u898oCjt088643;
 Fri, 9 Sep 2016 08:50:12 GMT (envelope-from pho@FreeBSD.org)
Message-Id: <201609090850.u898oCjt088643@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: pho set sender to pho@FreeBSD.org
 using -f
From: Peter Holm <pho@FreeBSD.org>
Date: Fri, 9 Sep 2016 08:50:12 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
Subject: svn commit: r305654 - user/pho/stress2/misc
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
 src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-user>,
 <mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user/>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-user>,
 <mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 09 Sep 2016 08:50:13 -0000

Author: pho
Date: Fri Sep  9 08:50:11 2016
New Revision: 305654
URL: https://svnweb.freebsd.org/changeset/base/305654

Log:
  Updated test with findings. Don't loop forever if umount(1) fail.
  
  Sponsored by:	Dell EMC Isilon

Modified:
  user/pho/stress2/misc/suj18.sh

Modified: user/pho/stress2/misc/suj18.sh
==============================================================================
--- user/pho/stress2/misc/suj18.sh	Fri Sep  9 08:48:09 2016	(r305653)
+++ user/pho/stress2/misc/suj18.sh	Fri Sep  9 08:50:11 2016	(r305654)
@@ -31,6 +31,10 @@
 # SUJ and quota test scenario.
 # "panic: check_inode_unwritten: busy inode" seen.
 
+# Deadlock seen:
+# https://people.freebsd.org/~pho/stress/log/suj18.txt
+# Fixed by r305594.
+
 [ `id -u ` -ne 0 ] && echo "Must be root!" && exit 1
 
 . ../default.cfg
@@ -53,8 +57,10 @@ export RUNDIR=${mntpoint}/stressX
 chmod 777 ${mntpoint}
 su ${testuser} -c 'sh -c "(cd ..;runRUNTIME=20m ./run.sh disk.cfg > /dev/null 2>&1)"'
 
-while mount | grep -q ${mntpoint}; do
-	umount ${mntpoint} || sleep 1
+rm -f $PATH_FSTAB
+for i in `jot 6`; do
+	umount $mntpoint && break || sleep 10
 done
+[ $i -eq 6 ] && exit 1
 mdconfig -d -u ${mdstart}
-rm -f $PATH_FSTAB
+exit 0

From owner-svn-src-user@freebsd.org  Fri Sep  9 08:51:04 2016
Return-Path: <owner-svn-src-user@freebsd.org>
Delivered-To: svn-src-user@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 2032BBD28ED
 for <svn-src-user@mailman.ysv.freebsd.org>;
 Fri,  9 Sep 2016 08:51:04 +0000 (UTC) (envelope-from pho@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 E7E47967;
 Fri,  9 Sep 2016 08:51:03 +0000 (UTC) (envelope-from pho@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u898p3iF091311;
 Fri, 9 Sep 2016 08:51:03 GMT (envelope-from pho@FreeBSD.org)
Received: (from pho@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id u898p3A2091310;
 Fri, 9 Sep 2016 08:51:03 GMT (envelope-from pho@FreeBSD.org)
Message-Id: <201609090851.u898p3A2091310@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: pho set sender to pho@FreeBSD.org
 using -f
From: Peter Holm <pho@FreeBSD.org>
Date: Fri, 9 Sep 2016 08:51:03 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
Subject: svn commit: r305655 - user/pho/stress2/misc
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
 src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-user>,
 <mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user/>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-user>,
 <mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 09 Sep 2016 08:51:04 -0000

Author: pho
Date: Fri Sep  9 08:51:02 2016
New Revision: 305655
URL: https://svnweb.freebsd.org/changeset/base/305655

Log:
  Added exit code.
  
  Sponsored by:	Dell EMC Isilon

Modified:
  user/pho/stress2/misc/nullfs15.sh

Modified: user/pho/stress2/misc/nullfs15.sh
==============================================================================
--- user/pho/stress2/misc/nullfs15.sh	Fri Sep  9 08:50:11 2016	(r305654)
+++ user/pho/stress2/misc/nullfs15.sh	Fri Sep  9 08:51:02 2016	(r305655)
@@ -64,3 +64,4 @@ while mount | grep -q "$mntpoint "; do
 done
 mdconfig -d -u $mdstart
 rm -f /tmp/bar
+exit 0

From owner-svn-src-user@freebsd.org  Fri Sep  9 08:53:06 2016
Return-Path: <owner-svn-src-user@freebsd.org>
Delivered-To: svn-src-user@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 0D1C8BD2A7B
 for <svn-src-user@mailman.ysv.freebsd.org>;
 Fri,  9 Sep 2016 08:53:06 +0000 (UTC) (envelope-from pho@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 D22A0B92;
 Fri,  9 Sep 2016 08:53:05 +0000 (UTC) (envelope-from pho@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u898r5h8092085;
 Fri, 9 Sep 2016 08:53:05 GMT (envelope-from pho@FreeBSD.org)
Received: (from pho@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id u898r4Fs092083;
 Fri, 9 Sep 2016 08:53:04 GMT (envelope-from pho@FreeBSD.org)
Message-Id: <201609090853.u898r4Fs092083@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: pho set sender to pho@FreeBSD.org
 using -f
From: Peter Holm <pho@FreeBSD.org>
Date: Fri, 9 Sep 2016 08:53:04 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
Subject: svn commit: r305656 - user/pho/stress2/misc
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
 src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-user>,
 <mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user/>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-user>,
 <mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 09 Sep 2016 08:53:06 -0000

Author: pho
Date: Fri Sep  9 08:53:04 2016
New Revision: 305656
URL: https://svnweb.freebsd.org/changeset/base/305656

Log:
  Added missing mdconfig(8) cleanup.
  
  Sponsored by:	Dell EMC Isilon

Modified:
  user/pho/stress2/misc/sendfile5.sh
  user/pho/stress2/misc/setuid.sh

Modified: user/pho/stress2/misc/sendfile5.sh
==============================================================================
--- user/pho/stress2/misc/sendfile5.sh	Fri Sep  9 08:51:02 2016	(r305655)
+++ user/pho/stress2/misc/sendfile5.sh	Fri Sep  9 08:53:04 2016	(r305656)
@@ -54,7 +54,6 @@ cp $diskimage $mntpoint
 /tmp/sendfile5 $mntpoint/$file
 umount $mntpoint
 
-mdconfig -l | grep -q md$mdstart &&  mdconfig -d -u $mdstart
 mdconfig -a -t swap -s 2g -u $mdstart || exit 1
 bsdlabel -w md$mdstart auto
 newfs $newfs_flags md${mdstart}$part > /dev/null
@@ -63,6 +62,7 @@ echo "Testing FFS"
 cp $diskimage $mntpoint
 /tmp/sendfile5 $mntpoint/$file
 umount $mntpoint
+mdconfig -d -u $mdstart
 
 mount -t nullfs $dir $mntpoint
 echo "Testing nullfs(5)"

Modified: user/pho/stress2/misc/setuid.sh
==============================================================================
--- user/pho/stress2/misc/setuid.sh	Fri Sep  9 08:51:02 2016	(r305655)
+++ user/pho/stress2/misc/setuid.sh	Fri Sep  9 08:53:04 2016	(r305656)
@@ -74,6 +74,7 @@ echo "Expect Abort trap"
 while mount | grep "on $mntpoint " | grep -q /dev/md; do
 	umount $mntpoint || sleep 1
 done
+mdconfig -d -u $mdstart
 rm -f /tmp/setuid /tmp/nop
 exit
 EOF

From owner-svn-src-user@freebsd.org  Fri Sep  9 10:00:41 2016
Return-Path: <owner-svn-src-user@freebsd.org>
Delivered-To: svn-src-user@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 5E9BBBD40A2
 for <svn-src-user@mailman.ysv.freebsd.org>;
 Fri,  9 Sep 2016 10:00:41 +0000 (UTC) (envelope-from pho@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 2CC9BFF9;
 Fri,  9 Sep 2016 10:00:41 +0000 (UTC) (envelope-from pho@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u89A0ejT015335;
 Fri, 9 Sep 2016 10:00:40 GMT (envelope-from pho@FreeBSD.org)
Received: (from pho@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id u89A0eps015334;
 Fri, 9 Sep 2016 10:00:40 GMT (envelope-from pho@FreeBSD.org)
Message-Id: <201609091000.u89A0eps015334@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: pho set sender to pho@FreeBSD.org
 using -f
From: Peter Holm <pho@FreeBSD.org>
Date: Fri, 9 Sep 2016 10:00:40 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
Subject: svn commit: r305657 - user/pho/stress2/misc
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
 src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-user>,
 <mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user/>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-user>,
 <mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 09 Sep 2016 10:00:41 -0000

Author: pho
Date: Fri Sep  9 10:00:40 2016
New Revision: 305657
URL: https://svnweb.freebsd.org/changeset/base/305657

Log:
  Fix device matching.
  
  Sponsored by:	Dell EMC Isilon

Modified:
  user/pho/stress2/misc/stealer.sh

Modified: user/pho/stress2/misc/stealer.sh
==============================================================================
--- user/pho/stress2/misc/stealer.sh	Fri Sep  9 08:53:04 2016	(r305656)
+++ user/pho/stress2/misc/stealer.sh	Fri Sep  9 10:00:40 2016	(r305657)
@@ -56,7 +56,7 @@ pages=$((pages / hw))
 echo "`date '+%T'` Test with $pages pages."
 su $testuser -c "sh -c \"/tmp/stealer $pages\"" &
 sleep 30
-while swapinfo | grep -q /dev; do
+while swapinfo | grep -q /dev/md$mdstart; do
 	swapoff /dev/md$mdstart 2>&1 |
 	    grep -v "Cannot allocate memory"
 	sleep 2

From owner-svn-src-user@freebsd.org  Fri Sep  9 10:04:39 2016
Return-Path: <owner-svn-src-user@freebsd.org>
Delivered-To: svn-src-user@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 4DD77BD419B
 for <svn-src-user@mailman.ysv.freebsd.org>;
 Fri,  9 Sep 2016 10:04:39 +0000 (UTC) (envelope-from pho@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 20D385E7;
 Fri,  9 Sep 2016 10:04:39 +0000 (UTC) (envelope-from pho@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u89A4cKw018864;
 Fri, 9 Sep 2016 10:04:38 GMT (envelope-from pho@FreeBSD.org)
Received: (from pho@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id u89A4cR2018863;
 Fri, 9 Sep 2016 10:04:38 GMT (envelope-from pho@FreeBSD.org)
Message-Id: <201609091004.u89A4cR2018863@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: pho set sender to pho@FreeBSD.org
 using -f
From: Peter Holm <pho@FreeBSD.org>
Date: Fri, 9 Sep 2016 10:04:38 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
Subject: svn commit: r305658 - user/pho/stress2/misc
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
 src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-user>,
 <mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user/>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-user>,
 <mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 09 Sep 2016 10:04:39 -0000

Author: pho
Date: Fri Sep  9 10:04:38 2016
New Revision: 305658
URL: https://svnweb.freebsd.org/changeset/base/305658

Log:
  Check for umount(8) failure.
  Added missing mdconfig(8) cleanup.
  
  Sponsored by:	Dell EMC Isilon

Modified:
  user/pho/stress2/misc/pread.sh

Modified: user/pho/stress2/misc/pread.sh
==============================================================================
--- user/pho/stress2/misc/pread.sh	Fri Sep  9 10:00:40 2016	(r305657)
+++ user/pho/stress2/misc/pread.sh	Fri Sep  9 10:04:38 2016	(r305658)
@@ -50,7 +50,9 @@ mount -t tmpfs tmpfs $mntpoint
 cp -a /usr/include $mntpoint
 echo "Testing tmpfs(5)"
 /tmp/pread $mntpoint
-umount $mntpoint
+while mount | grep -q "on $mntpoint "; do
+	umount $mntpoint || sleep 1
+done
 
 echo "Testing fdescfs(5)"
 mount -t fdescfs null /dev/fd
@@ -69,7 +71,6 @@ while mount | grep -q "on $mntpoint "; d
 	umount $mntpoint || sleep 1
 done
 
-mdconfig -l | grep -q md$mdstart &&  mdconfig -d -u $mdstart
 mdconfig -a -t swap -s 1g -u $mdstart || exit 1
 bsdlabel -w md$mdstart auto
 newfs $newfs_flags md${mdstart}$part > /dev/null
@@ -80,6 +81,7 @@ echo "Testing FFS"
 while mount | grep -q "on $mntpoint "; do
 	umount $mntpoint || sleep 1
 done
+mdconfig -d -u $mdstart
 
 mount -t nullfs /bin $mntpoint
 echo "Testing nullfs(5)"

From owner-svn-src-user@freebsd.org  Fri Sep  9 12:22:56 2016
Return-Path: <owner-svn-src-user@freebsd.org>
Delivered-To: svn-src-user@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 53CFEBD207C
 for <svn-src-user@mailman.ysv.freebsd.org>;
 Fri,  9 Sep 2016 12:22:56 +0000 (UTC) (envelope-from pho@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 272A130A;
 Fri,  9 Sep 2016 12:22:56 +0000 (UTC) (envelope-from pho@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u89CMtrP071457;
 Fri, 9 Sep 2016 12:22:55 GMT (envelope-from pho@FreeBSD.org)
Received: (from pho@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id u89CMtR3071456;
 Fri, 9 Sep 2016 12:22:55 GMT (envelope-from pho@FreeBSD.org)
Message-Id: <201609091222.u89CMtR3071456@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: pho set sender to pho@FreeBSD.org
 using -f
From: Peter Holm <pho@FreeBSD.org>
Date: Fri, 9 Sep 2016 12:22:55 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
Subject: svn commit: r305660 - user/pho/stress2/misc
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
 src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-user>,
 <mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user/>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-user>,
 <mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 09 Sep 2016 12:22:56 -0000

Author: pho
Date: Fri Sep  9 12:22:55 2016
New Revision: 305660
URL: https://svnweb.freebsd.org/changeset/base/305660

Log:
  Trim runtime.
  
  Sponsored by:	Dell EMC Isilon

Modified:
  user/pho/stress2/misc/parallelmount.sh

Modified: user/pho/stress2/misc/parallelmount.sh
==============================================================================
--- user/pho/stress2/misc/parallelmount.sh	Fri Sep  9 10:40:55 2016	(r305659)
+++ user/pho/stress2/misc/parallelmount.sh	Fri Sep  9 12:22:55 2016	(r305660)
@@ -49,7 +49,7 @@ if [ $# -eq 0 ]; then
 	done
 
 	while kill -0 $! 2> /dev/null; do
-		for i in `jot 200`; do
+		for i in `jot 100`; do
 			find $mntpoint > /dev/null 2>&1
 		done
 	done
@@ -59,8 +59,10 @@ if [ $# -eq 0 ]; then
 		umount $mntpoint || sleep 1
 	done
 	mdconfig -d -u $mdstart
+	exit 0
 else
-	for i in `jot 200`; do
+	start=`date '+%s'`
+	while [ $((`date '+%s'` - start)) -lt 600 ]; do
 		mount /dev/md${mdstart}$part $mntpoint
 		umount $mntpoint
 		mount

From owner-svn-src-user@freebsd.org  Fri Sep  9 13:27:21 2016
Return-Path: <owner-svn-src-user@freebsd.org>
Delivered-To: svn-src-user@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 EFEB0BD26A8
 for <svn-src-user@mailman.ysv.freebsd.org>;
 Fri,  9 Sep 2016 13:27:21 +0000 (UTC) (envelope-from pho@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 BE519BEC;
 Fri,  9 Sep 2016 13:27:21 +0000 (UTC) (envelope-from pho@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u89DRKAx095063;
 Fri, 9 Sep 2016 13:27:20 GMT (envelope-from pho@FreeBSD.org)
Received: (from pho@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id u89DRKev095062;
 Fri, 9 Sep 2016 13:27:20 GMT (envelope-from pho@FreeBSD.org)
Message-Id: <201609091327.u89DRKev095062@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: pho set sender to pho@FreeBSD.org
 using -f
From: Peter Holm <pho@FreeBSD.org>
Date: Fri, 9 Sep 2016 13:27:20 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
Subject: svn commit: r305662 - user/pho/stress2/misc
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
 src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-user>,
 <mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user/>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-user>,
 <mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 09 Sep 2016 13:27:22 -0000

Author: pho
Date: Fri Sep  9 13:27:20 2016
New Revision: 305662
URL: https://svnweb.freebsd.org/changeset/base/305662

Log:
  Added a finding.
  
  Sponsored by:	Dell EMC Isilon

Modified:
  user/pho/stress2/misc/kevent7.sh

Modified: user/pho/stress2/misc/kevent7.sh
==============================================================================
--- user/pho/stress2/misc/kevent7.sh	Fri Sep  9 13:23:07 2016	(r305661)
+++ user/pho/stress2/misc/kevent7.sh	Fri Sep  9 13:27:20 2016	(r305662)
@@ -35,6 +35,9 @@
 # Spinning threads seen.
 # Fixed in r255877.
 
+# "panic: softclock_call_cc: act 0xfffff801219a0840 0" seen:
+# https://people.freebsd.org/~pho/stress/log/kevent7.txt
+
 [ `id -u ` -ne 0 ] && echo "Must be root!" && exit 1
 
 . ../default.cfg

From owner-svn-src-user@freebsd.org  Fri Sep  9 13:52:32 2016
Return-Path: <owner-svn-src-user@freebsd.org>
Delivered-To: svn-src-user@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 BB69BBD2CC4
 for <svn-src-user@mailman.ysv.freebsd.org>;
 Fri,  9 Sep 2016 13:52:32 +0000 (UTC)
 (envelope-from bzeeb-lists@lists.zabbadoz.net)
Received: from mx1.sbone.de (mx1.sbone.de [IPv6:2a01:4f8:130:3ffc::401:25])
 (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits))
 (Client CN "mx1.sbone.de", Issuer "SBone.DE" (not verified))
 by mx1.freebsd.org (Postfix) with ESMTPS id 80B0BA96;
 Fri,  9 Sep 2016 13:52:32 +0000 (UTC)
 (envelope-from bzeeb-lists@lists.zabbadoz.net)
Received: from mail.sbone.de (mail.sbone.de [IPv6:fde9:577b:c1a9:31::2013:587])
 (using TLSv1 with cipher ADH-CAMELLIA256-SHA (256/256 bits))
 (No client certificate requested)
 by mx1.sbone.de (Postfix) with ESMTPS id 5515725D38A5;
 Fri,  9 Sep 2016 13:52:29 +0000 (UTC)
Received: from content-filter.sbone.de (content-filter.sbone.de
 [IPv6:fde9:577b:c1a9:31::2013:2742])
 (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
 (No client certificate requested)
 by mail.sbone.de (Postfix) with ESMTPS id 8BFEBD1F7F8;
 Fri,  9 Sep 2016 13:52:28 +0000 (UTC)
X-Virus-Scanned: amavisd-new at sbone.de
Received: from mail.sbone.de ([IPv6:fde9:577b:c1a9:31::2013:587])
 by content-filter.sbone.de (content-filter.sbone.de
 [fde9:577b:c1a9:31::2013:2742]) (amavisd-new, port 10024)
 with ESMTP id qzk0ZeeQxNvP; Fri,  9 Sep 2016 13:52:27 +0000 (UTC)
Received: from [10.4.95.236] (fresh-tun0-ula.sbone.de
 [IPv6:fde9:577b:c1a9:4920:2ef0:eeff:fe03:ee34])
 (using TLSv1 with cipher AES256-SHA (256/256 bits))
 (No client certificate requested)
 by mail.sbone.de (Postfix) with ESMTPSA id DD993D1F7DD;
 Fri,  9 Sep 2016 13:52:26 +0000 (UTC)
From: "Bjoern A. Zeeb" <bzeeb-lists@lists.zabbadoz.net>
To: "Peter Holm" <pho@FreeBSD.org>
Cc: src-committers@freebsd.org, svn-src-user@freebsd.org
Subject: Re: svn commit: r305662 - user/pho/stress2/misc
Date: Fri, 09 Sep 2016 13:52:25 +0000
Message-ID: <9D8A07EE-E319-4D32-A657-38019B36CD36@lists.zabbadoz.net>
In-Reply-To: <201609091327.u89DRKev095062@repo.freebsd.org>
References: <201609091327.u89DRKev095062@repo.freebsd.org>
MIME-Version: 1.0
Content-Type: text/plain; format=flowed
X-Mailer: MailMate (2.0BETAr6054)
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
 src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-user>,
 <mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user/>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-user>,
 <mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 09 Sep 2016 13:52:32 -0000

On 9 Sep 2016, at 13:27, Peter Holm wrote:

> Author: pho
> Date: Fri Sep  9 13:27:20 2016
> New Revision: 305662
> URL: https://svnweb.freebsd.org/changeset/base/305662
>
> Log:
>   Added a finding.
>
> +# "panic: softclock_call_cc: act 0xfffff801219a0840 0" seen:
> +# https://people.freebsd.org/~pho/stress/log/kevent7.txt

I would see them once in a while, while doing my vimage stress-tests.  
Think I added show callout <addr> ddb command though not expecting it to 
be a valid data structure at that point.

/bz

From owner-svn-src-user@freebsd.org  Fri Sep  9 14:43:23 2016
Return-Path: <owner-svn-src-user@freebsd.org>
Delivered-To: svn-src-user@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 AC142BD2DCC
 for <svn-src-user@mailman.ysv.freebsd.org>;
 Fri,  9 Sep 2016 14:43:23 +0000 (UTC) (envelope-from pho@holm.cc)
Received: from relay01.pair.com (relay01.pair.com [209.68.5.15])
 (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 8BBD6BB6;
 Fri,  9 Sep 2016 14:43:22 +0000 (UTC) (envelope-from pho@holm.cc)
Received: from x2.osted.lan (87-58-223-204-dynamic.dk.customer.tdc.net
 [87.58.223.204])
 by relay01.pair.com (Postfix) with ESMTP id 2BC43D00AEE;
 Fri,  9 Sep 2016 10:43:21 -0400 (EDT)
Received: from x2.osted.lan (localhost [127.0.0.1])
 by x2.osted.lan (8.14.9/8.14.9) with ESMTP id u89EhJvg022344
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO);
 Fri, 9 Sep 2016 16:43:19 +0200 (CEST)
 (envelope-from pho@x2.osted.lan)
Received: (from pho@localhost)
 by x2.osted.lan (8.14.9/8.14.9/Submit) id u89EhJXk022343;
 Fri, 9 Sep 2016 16:43:19 +0200 (CEST) (envelope-from pho)
Date: Fri, 9 Sep 2016 16:43:19 +0200
From: Peter Holm <peter@holm.cc>
To: "Bjoern A. Zeeb" <bzeeb-lists@lists.zabbadoz.net>
Cc: src-committers@freebsd.org, svn-src-user@freebsd.org
Subject: Re: svn commit: r305662 - user/pho/stress2/misc
Message-ID: <20160909144319.GA19960@x2.osted.lan>
References: <201609091327.u89DRKev095062@repo.freebsd.org>
 <9D8A07EE-E319-4D32-A657-38019B36CD36@lists.zabbadoz.net>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <9D8A07EE-E319-4D32-A657-38019B36CD36@lists.zabbadoz.net>
User-Agent: Mutt/1.5.23 (2014-03-12)
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
 src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-user>,
 <mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user/>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-user>,
 <mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 09 Sep 2016 14:43:23 -0000

On Fri, Sep 09, 2016 at 01:52:25PM +0000, Bjoern A. Zeeb wrote:
> On 9 Sep 2016, at 13:27, Peter Holm wrote:
> 
> > Author: pho
> > Date: Fri Sep  9 13:27:20 2016
> > New Revision: 305662
> > URL: https://svnweb.freebsd.org/changeset/base/305662
> >
> > Log:
> >   Added a finding.
> >
> > +# "panic: softclock_call_cc: act 0xfffff801219a0840 0" seen:
> > +# https://people.freebsd.org/~pho/stress/log/kevent7.txt
> 
> I would see them once in a while, while doing my vimage stress-tests.  
> Think I added show callout <addr> ddb command though not expecting it to 
> be a valid data structure at that point.
> 
> /bz

Right, nice.

db> show callout 0xfffff80121c8ed40
callout 0xfffff80121c8ed40
   &c_links = 0xfffff80121c8ed40
   c_time = 5084927349880
   c_precision = 0
   c_arg = 0xfffff801c0364300
   c_func = 0xffffffff80a0c6f0
   c_lock = 0
   c_flags = 0
   c_iflags = 0x94
   c_cpu = 20
db> x/i 0xffffffff80a0c6f0
filt_timerexpire:       pushq   %rbp
db> 

I have no problem triggereing this.

-- 
Peter

From owner-svn-src-user@freebsd.org  Fri Sep  9 21:00:10 2016
Return-Path: <owner-svn-src-user@freebsd.org>
Delivered-To: svn-src-user@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 C5361BD2F82
 for <svn-src-user@mailman.ysv.freebsd.org>;
 Fri,  9 Sep 2016 21:00:10 +0000 (UTC)
 (envelope-from markj@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 7EC50C61;
 Fri,  9 Sep 2016 21:00:10 +0000 (UTC)
 (envelope-from markj@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u89L09aW067123;
 Fri, 9 Sep 2016 21:00:09 GMT (envelope-from markj@FreeBSD.org)
Received: (from markj@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id u89L07hn067101;
 Fri, 9 Sep 2016 21:00:07 GMT (envelope-from markj@FreeBSD.org)
Message-Id: <201609092100.u89L07hn067101@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: markj set sender to
 markj@FreeBSD.org using -f
From: Mark Johnston <markj@FreeBSD.org>
Date: Fri, 9 Sep 2016 21:00:07 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
Subject: svn commit: r305674 - in user/alc/PQ_LAUNDRY: . contrib/bmake
 contrib/bmake/mk etc/mtree lib/libc/aarch64/sys lib/libc/amd64/sys
 lib/libc/arm/sys lib/libc/i386/sys lib/libc/mips/sys lib/libc/powerp...
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
 src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-user>,
 <mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user/>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-user>,
 <mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 09 Sep 2016 21:00:10 -0000

Author: markj
Date: Fri Sep  9 21:00:07 2016
New Revision: 305674
URL: https://svnweb.freebsd.org/changeset/base/305674

Log:
  MFH r305673

Added:
  user/alc/PQ_LAUNDRY/lib/libcasper/services/cap_dns/tests/
     - copied from r305673, head/lib/libcasper/services/cap_dns/tests/
  user/alc/PQ_LAUNDRY/lib/libcasper/services/cap_grp/tests/
     - copied from r305673, head/lib/libcasper/services/cap_grp/tests/
  user/alc/PQ_LAUNDRY/lib/libcasper/services/cap_pwd/tests/
     - copied from r305673, head/lib/libcasper/services/cap_pwd/tests/
  user/alc/PQ_LAUNDRY/lib/libcasper/services/cap_sysctl/tests/
     - copied from r305673, head/lib/libcasper/services/cap_sysctl/tests/
  user/alc/PQ_LAUNDRY/share/man/man4/cxgbev.4
     - copied unchanged from r305673, head/share/man/man4/cxgbev.4
  user/alc/PQ_LAUNDRY/sys/arm/annapurna/alpine/alpine_ccu.c
     - copied unchanged from r305673, head/sys/arm/annapurna/alpine/alpine_ccu.c
  user/alc/PQ_LAUNDRY/sys/arm/annapurna/alpine/alpine_nb_service.c
     - copied unchanged from r305673, head/sys/arm/annapurna/alpine/alpine_nb_service.c
  user/alc/PQ_LAUNDRY/sys/dev/cxgbe/common/t4vf_hw.c
     - copied unchanged from r305673, head/sys/dev/cxgbe/common/t4vf_hw.c
  user/alc/PQ_LAUNDRY/sys/dev/cxgbe/if_cxlv.c
     - copied unchanged from r305673, head/sys/dev/cxgbe/if_cxlv.c
  user/alc/PQ_LAUNDRY/sys/dev/cxgbe/t4_vf.c
     - copied unchanged from r305673, head/sys/dev/cxgbe/t4_vf.c
  user/alc/PQ_LAUNDRY/sys/mips/malta/asm_malta.S
     - copied unchanged from r305673, head/sys/mips/malta/asm_malta.S
  user/alc/PQ_LAUNDRY/sys/mips/malta/malta_mp.c
     - copied unchanged from r305673, head/sys/mips/malta/malta_mp.c
  user/alc/PQ_LAUNDRY/sys/modules/cxgbe/if_cxgbev/
     - copied from r305673, head/sys/modules/cxgbe/if_cxgbev/
  user/alc/PQ_LAUNDRY/sys/modules/cxgbe/if_cxlv/
     - copied from r305673, head/sys/modules/cxgbe/if_cxlv/
Deleted:
  user/alc/PQ_LAUNDRY/sys/dev/hyperv/netvsc/hv_rndis.h
  user/alc/PQ_LAUNDRY/tools/regression/capsicum/libcasper/
Modified:
  user/alc/PQ_LAUNDRY/UPDATING
  user/alc/PQ_LAUNDRY/contrib/bmake/ChangeLog
  user/alc/PQ_LAUNDRY/contrib/bmake/Makefile
  user/alc/PQ_LAUNDRY/contrib/bmake/bmake.1
  user/alc/PQ_LAUNDRY/contrib/bmake/bmake.cat1
  user/alc/PQ_LAUNDRY/contrib/bmake/main.c
  user/alc/PQ_LAUNDRY/contrib/bmake/make.1
  user/alc/PQ_LAUNDRY/contrib/bmake/meta.c
  user/alc/PQ_LAUNDRY/contrib/bmake/mk/ChangeLog
  user/alc/PQ_LAUNDRY/contrib/bmake/mk/dirdeps.mk
  user/alc/PQ_LAUNDRY/contrib/bmake/mk/install-mk
  user/alc/PQ_LAUNDRY/contrib/bmake/mk/lib.mk
  user/alc/PQ_LAUNDRY/contrib/bmake/mk/meta.sys.mk
  user/alc/PQ_LAUNDRY/contrib/bmake/mk/prog.mk
  user/alc/PQ_LAUNDRY/contrib/bmake/os.sh
  user/alc/PQ_LAUNDRY/contrib/bmake/suff.c
  user/alc/PQ_LAUNDRY/etc/mtree/BSD.tests.dist
  user/alc/PQ_LAUNDRY/lib/libc/aarch64/sys/Makefile.inc
  user/alc/PQ_LAUNDRY/lib/libc/amd64/sys/Makefile.inc
  user/alc/PQ_LAUNDRY/lib/libc/arm/sys/Makefile.inc
  user/alc/PQ_LAUNDRY/lib/libc/i386/sys/Makefile.inc
  user/alc/PQ_LAUNDRY/lib/libc/mips/sys/Makefile.inc
  user/alc/PQ_LAUNDRY/lib/libc/powerpc/sys/Makefile.inc
  user/alc/PQ_LAUNDRY/lib/libc/powerpc64/sys/Makefile.inc
  user/alc/PQ_LAUNDRY/lib/libc/riscv/sys/Makefile.inc
  user/alc/PQ_LAUNDRY/lib/libc/sparc64/sys/Makefile.inc
  user/alc/PQ_LAUNDRY/lib/libc/sys/Makefile.inc
  user/alc/PQ_LAUNDRY/lib/libc/sys/_exit.2
  user/alc/PQ_LAUNDRY/lib/libc/sys/intro.2
  user/alc/PQ_LAUNDRY/lib/libcasper/services/cap_dns/Makefile
  user/alc/PQ_LAUNDRY/lib/libcasper/services/cap_grp/Makefile
  user/alc/PQ_LAUNDRY/lib/libcasper/services/cap_pwd/Makefile
  user/alc/PQ_LAUNDRY/lib/libcasper/services/cap_sysctl/Makefile
  user/alc/PQ_LAUNDRY/lib/libstand/nfs.c
  user/alc/PQ_LAUNDRY/share/man/man3/Makefile
  user/alc/PQ_LAUNDRY/share/man/man3/queue.3
  user/alc/PQ_LAUNDRY/share/man/man4/Makefile
  user/alc/PQ_LAUNDRY/share/man/man4/amdsbwd.4
  user/alc/PQ_LAUNDRY/share/man/man4/cxgbe.4
  user/alc/PQ_LAUNDRY/share/man/man4/ddb.4
  user/alc/PQ_LAUNDRY/share/man/man4/intpm.4
  user/alc/PQ_LAUNDRY/share/man/man4/pci.4
  user/alc/PQ_LAUNDRY/share/man/man4/vt.4
  user/alc/PQ_LAUNDRY/share/mk/bsd.subdir.mk
  user/alc/PQ_LAUNDRY/share/mk/dirdeps.mk
  user/alc/PQ_LAUNDRY/share/mk/meta.sys.mk
  user/alc/PQ_LAUNDRY/share/timedef/ko_KR.UTF-8.src
  user/alc/PQ_LAUNDRY/share/timedef/ko_KR.eucKR.src
  user/alc/PQ_LAUNDRY/sys/amd64/amd64/initcpu.c
  user/alc/PQ_LAUNDRY/sys/arm/allwinner/axp81x.c
  user/alc/PQ_LAUNDRY/sys/arm/allwinner/clk/aw_cpuclk.c
  user/alc/PQ_LAUNDRY/sys/arm/allwinner/clk/aw_pll.c
  user/alc/PQ_LAUNDRY/sys/arm/annapurna/alpine/alpine_machdep.c
  user/alc/PQ_LAUNDRY/sys/arm/annapurna/alpine/alpine_machdep_mp.c
  user/alc/PQ_LAUNDRY/sys/arm/conf/ALPINE
  user/alc/PQ_LAUNDRY/sys/arm/conf/NOTES
  user/alc/PQ_LAUNDRY/sys/arm64/arm64/cpufunc_asm.S
  user/alc/PQ_LAUNDRY/sys/arm64/arm64/pmap.c
  user/alc/PQ_LAUNDRY/sys/arm64/arm64/trap.c
  user/alc/PQ_LAUNDRY/sys/arm64/conf/GENERIC
  user/alc/PQ_LAUNDRY/sys/boot/fdt/dts/arm/a83t.dtsi
  user/alc/PQ_LAUNDRY/sys/boot/fdt/dts/arm/annapurna-alpine.dts
  user/alc/PQ_LAUNDRY/sys/boot/fdt/dts/arm/sinovoip-bpi-m3.dts
  user/alc/PQ_LAUNDRY/sys/boot/fdt/dts/riscv/qemu.dts
  user/alc/PQ_LAUNDRY/sys/boot/i386/pxeldr/pxeboot.8
  user/alc/PQ_LAUNDRY/sys/cam/cam_periph.c
  user/alc/PQ_LAUNDRY/sys/cam/scsi/scsi_all.c
  user/alc/PQ_LAUNDRY/sys/cam/scsi/scsi_all.h
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dataset.h
  user/alc/PQ_LAUNDRY/sys/compat/freebsd32/freebsd32_ioctl.c
  user/alc/PQ_LAUNDRY/sys/compat/freebsd32/freebsd32_ioctl.h
  user/alc/PQ_LAUNDRY/sys/conf/NOTES
  user/alc/PQ_LAUNDRY/sys/conf/files
  user/alc/PQ_LAUNDRY/sys/conf/files.arm
  user/alc/PQ_LAUNDRY/sys/conf/files.arm64
  user/alc/PQ_LAUNDRY/sys/conf/options.mips
  user/alc/PQ_LAUNDRY/sys/crypto/skein/amd64/skein_block_asm.s   (contents, props changed)
  user/alc/PQ_LAUNDRY/sys/ddb/db_command.c
  user/alc/PQ_LAUNDRY/sys/ddb/db_main.c
  user/alc/PQ_LAUNDRY/sys/ddb/db_run.c
  user/alc/PQ_LAUNDRY/sys/ddb/ddb.h
  user/alc/PQ_LAUNDRY/sys/dev/ahci/ahci.c
  user/alc/PQ_LAUNDRY/sys/dev/amdsbwd/amdsbwd.c
  user/alc/PQ_LAUNDRY/sys/dev/ath/ath_hal/ah.c
  user/alc/PQ_LAUNDRY/sys/dev/ath/ath_hal/ah.h
  user/alc/PQ_LAUNDRY/sys/dev/ath/ath_hal/ah_internal.h
  user/alc/PQ_LAUNDRY/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c
  user/alc/PQ_LAUNDRY/sys/dev/cxgbe/adapter.h
  user/alc/PQ_LAUNDRY/sys/dev/cxgbe/common/common.h
  user/alc/PQ_LAUNDRY/sys/dev/cxgbe/common/t4_hw.c
  user/alc/PQ_LAUNDRY/sys/dev/cxgbe/t4_main.c
  user/alc/PQ_LAUNDRY/sys/dev/cxgbe/t4_sge.c
  user/alc/PQ_LAUNDRY/sys/dev/gpio/gpiobusvar.h
  user/alc/PQ_LAUNDRY/sys/dev/hyperv/netvsc/hv_net_vsc.c
  user/alc/PQ_LAUNDRY/sys/dev/hyperv/netvsc/hv_net_vsc.h
  user/alc/PQ_LAUNDRY/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
  user/alc/PQ_LAUNDRY/sys/dev/hyperv/netvsc/hv_rndis_filter.c
  user/alc/PQ_LAUNDRY/sys/dev/hyperv/netvsc/hv_rndis_filter.h
  user/alc/PQ_LAUNDRY/sys/dev/hyperv/netvsc/if_hnreg.h
  user/alc/PQ_LAUNDRY/sys/dev/hyperv/netvsc/if_hnvar.h
  user/alc/PQ_LAUNDRY/sys/dev/hyperv/netvsc/ndis.h
  user/alc/PQ_LAUNDRY/sys/dev/hyperv/utilities/hv_kvp.c
  user/alc/PQ_LAUNDRY/sys/dev/intpm/intpm.c
  user/alc/PQ_LAUNDRY/sys/dev/usb/input/ums.c
  user/alc/PQ_LAUNDRY/sys/dev/usb/wlan/if_rum.c
  user/alc/PQ_LAUNDRY/sys/fs/nullfs/null_vnops.c
  user/alc/PQ_LAUNDRY/sys/i386/i386/trap.c
  user/alc/PQ_LAUNDRY/sys/i386/i386/vm86.c
  user/alc/PQ_LAUNDRY/sys/kern/capabilities.conf
  user/alc/PQ_LAUNDRY/sys/kern/kern_mutex.c
  user/alc/PQ_LAUNDRY/sys/kern/uipc_mbuf.c
  user/alc/PQ_LAUNDRY/sys/kern/uipc_syscalls.c
  user/alc/PQ_LAUNDRY/sys/mips/cavium/octeon_mp.c
  user/alc/PQ_LAUNDRY/sys/mips/gxemul/gxemul_machdep.c
  user/alc/PQ_LAUNDRY/sys/mips/include/hwfunc.h
  user/alc/PQ_LAUNDRY/sys/mips/include/intr.h
  user/alc/PQ_LAUNDRY/sys/mips/malta/files.malta
  user/alc/PQ_LAUNDRY/sys/mips/malta/std.malta
  user/alc/PQ_LAUNDRY/sys/mips/mips/locore.S
  user/alc/PQ_LAUNDRY/sys/mips/mips/mips_pic.c
  user/alc/PQ_LAUNDRY/sys/mips/mips/mp_machdep.c
  user/alc/PQ_LAUNDRY/sys/mips/mips/nexus.c
  user/alc/PQ_LAUNDRY/sys/mips/nlm/xlp_machdep.c
  user/alc/PQ_LAUNDRY/sys/mips/rmi/xlr_machdep.c
  user/alc/PQ_LAUNDRY/sys/mips/sibyte/sb_machdep.c
  user/alc/PQ_LAUNDRY/sys/mips/sibyte/sb_scd.c
  user/alc/PQ_LAUNDRY/sys/modules/cxgbe/Makefile
  user/alc/PQ_LAUNDRY/sys/net80211/ieee80211_freebsd.c
  user/alc/PQ_LAUNDRY/sys/net80211/ieee80211_freebsd.h
  user/alc/PQ_LAUNDRY/sys/powerpc/booke/pmap.c
  user/alc/PQ_LAUNDRY/sys/powerpc/conf/NOTES
  user/alc/PQ_LAUNDRY/sys/powerpc/mpc85xx/platform_mpc85xx.c
  user/alc/PQ_LAUNDRY/sys/security/audit/audit_syscalls.c
  user/alc/PQ_LAUNDRY/sys/sys/queue.h
  user/alc/PQ_LAUNDRY/sys/ufs/ffs/ffs_balloc.c
  user/alc/PQ_LAUNDRY/sys/ufs/ffs/ffs_extern.h
  user/alc/PQ_LAUNDRY/sys/ufs/ffs/ffs_inode.c
  user/alc/PQ_LAUNDRY/sys/ufs/ffs/ffs_softdep.c
  user/alc/PQ_LAUNDRY/sys/ufs/ffs/ffs_suspend.c
  user/alc/PQ_LAUNDRY/sys/ufs/ffs/ffs_vfsops.c
  user/alc/PQ_LAUNDRY/sys/ufs/ffs/ffs_vnops.c
  user/alc/PQ_LAUNDRY/sys/ufs/ufs/ufs_lookup.c
  user/alc/PQ_LAUNDRY/sys/ufs/ufs/ufs_quota.c
  user/alc/PQ_LAUNDRY/sys/ufs/ufs/ufs_vnops.c
  user/alc/PQ_LAUNDRY/tools/tools/locale/Makefile
  user/alc/PQ_LAUNDRY/usr.bin/bmake/Makefile
  user/alc/PQ_LAUNDRY/usr.bin/sort/sort.1.in
  user/alc/PQ_LAUNDRY/usr.sbin/etcupdate/etcupdate.sh
  user/alc/PQ_LAUNDRY/usr.sbin/newsyslog/newsyslog.c
Directory Properties:
  user/alc/PQ_LAUNDRY/   (props changed)
  user/alc/PQ_LAUNDRY/contrib/bmake/   (props changed)
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/   (props changed)

Modified: user/alc/PQ_LAUNDRY/UPDATING
==============================================================================
--- user/alc/PQ_LAUNDRY/UPDATING	Fri Sep  9 20:30:36 2016	(r305673)
+++ user/alc/PQ_LAUNDRY/UPDATING	Fri Sep  9 21:00:07 2016	(r305674)
@@ -31,6 +31,12 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 12
 	disable the most expensive debugging functionality run
 	"ln -s 'abort:false,junk:false' /etc/malloc.conf".)
 
+20160908:
+	The queue(3) debugging macro, QUEUE_MACRO_DEBUG, has been split into
+	two separate components, QUEUE_MACRO_DEBUG_TRACE and
+	QUEUE_MACRO_DEBUG_TRASH.  Define both for the original
+	QUEUE_MACRO_DEBUG behavior.
+
 20160824:
 	r304787 changed some ioctl interfaces between the iSCSI userspace
 	programs and the kernel.  ctladm, ctld, iscsictl, and iscsid must be

Modified: user/alc/PQ_LAUNDRY/contrib/bmake/ChangeLog
==============================================================================
--- user/alc/PQ_LAUNDRY/contrib/bmake/ChangeLog	Fri Sep  9 20:30:36 2016	(r305673)
+++ user/alc/PQ_LAUNDRY/contrib/bmake/ChangeLog	Fri Sep  9 21:00:07 2016	(r305674)
@@ -1,3 +1,32 @@
+2016-08-18  Simon J. Gerraty  <sjg@bad.crufty.net>
+
+	* Makefile (_MAKE_VERSION): 20160818
+	  its a neater number; pick up whitespace fixes to man page.
+
+2016-08-17  Simon J. Gerraty  <sjg@bad.crufty.net>
+
+	* Makefile (_MAKE_VERSION): 20160817
+	  Merge with NetBSD make, pick up
+	  o meta.c: move handling of .MAKE.META.IGNORE_* to meta_ignore()
+	    so we can call it before adding entries to missingFiles.
+	    Thus we do not track files we have been told to ignore.
+
+2016-08-15  Simon J. Gerraty  <sjg@bad.crufty.net>
+
+	* Makefile (_MAKE_VERSION): 20160815
+	  Merge with NetBSD make, pick up
+	  o meta_oodate: apply .MAKE.META.IGNORE_FILTER (if defined) to
+	    pathnames, and skip if the expansion is empty.
+	    Useful for dirdeps.mk when checking DIRDEPS_CACHE.
+
+2016-08-12  Simon J. Gerraty  <sjg@bad.crufty.net>
+
+	* Makefile (_MAKE_VERSION): 20160812
+	  Merge with NetBSD make, pick up
+	  o meta.c: remove all missingFiles entries that match a deleted
+	    dir.
+	  o main.c: set .ERROR_CMD if possible.
+	  
 2016-06-06  Simon J. Gerraty  <sjg@bad.crufty.net>
 
 	* Makefile (_MAKE_VERSION): 20160606

Modified: user/alc/PQ_LAUNDRY/contrib/bmake/Makefile
==============================================================================
--- user/alc/PQ_LAUNDRY/contrib/bmake/Makefile	Fri Sep  9 20:30:36 2016	(r305673)
+++ user/alc/PQ_LAUNDRY/contrib/bmake/Makefile	Fri Sep  9 21:00:07 2016	(r305674)
@@ -1,7 +1,7 @@
-#	$Id: Makefile,v 1.67 2016/06/07 00:46:12 sjg Exp $
+#	$Id: Makefile,v 1.72 2016/08/18 23:02:26 sjg Exp $
 
 # Base version on src date
-_MAKE_VERSION= 20160606
+_MAKE_VERSION= 20160818
 
 PROG=	bmake
 

Modified: user/alc/PQ_LAUNDRY/contrib/bmake/bmake.1
==============================================================================
--- user/alc/PQ_LAUNDRY/contrib/bmake/bmake.1	Fri Sep  9 20:30:36 2016	(r305673)
+++ user/alc/PQ_LAUNDRY/contrib/bmake/bmake.1	Fri Sep  9 21:00:07 2016	(r305674)
@@ -1,4 +1,4 @@
-.\"	$NetBSD: make.1,v 1.259 2016/06/03 07:07:37 wiz Exp $
+.\"	$NetBSD: make.1,v 1.262 2016/08/18 19:23:20 wiz Exp $
 .\"
 .\" Copyright (c) 1990, 1993
 .\"	The Regents of the University of California.  All rights reserved.
@@ -29,7 +29,7 @@
 .\"
 .\"	from: @(#)make.1	8.4 (Berkeley) 3/19/94
 .\"
-.Dd June 2, 2016
+.Dd August 15, 2016
 .Dt MAKE 1
 .Os
 .Sh NAME
@@ -927,6 +927,9 @@ The default list includes:
 .It Va .MAKE.META.IGNORE_PATTERNS
 Provides a list of patterns to match against pathnames.
 Ignore any that match.
+.It Va .MAKE.META.IGNORE_FILTER
+Provides a list of variable modifiers to apply to each pathname.
+Ignore if the expansion is an empty string.
 .It Va .MAKE.META.PREFIX
 Defines the message printed for each meta file updated in "meta verbose" mode.
 The default value is:
@@ -974,7 +977,19 @@ per normal evaluation rules.
 .It Va MAKE_PRINT_VAR_ON_ERROR
 When
 .Nm
-stops due to an error, it prints its name and the value of
+stops due to an error, it sets
+.Ql Va .ERROR_TARGET
+to the name of the target that failed,
+.Ql Va .ERROR_CMD
+to the commands of the failed target,
+and in "meta" mode, it also sets
+.Ql Va .ERROR_CWD
+to the
+.Xr getcwd 3 ,
+and
+.Ql Va .ERROR_META_FILE
+to the path of the meta file (if any) describing the failed target.
+It then prints its name and the value of
 .Ql Va .CURDIR
 as well as the value of any variables named in
 .Ql Va MAKE_PRINT_VAR_ON_ERROR .

Modified: user/alc/PQ_LAUNDRY/contrib/bmake/bmake.cat1
==============================================================================
--- user/alc/PQ_LAUNDRY/contrib/bmake/bmake.cat1	Fri Sep  9 20:30:36 2016	(r305673)
+++ user/alc/PQ_LAUNDRY/contrib/bmake/bmake.cat1	Fri Sep  9 21:00:07 2016	(r305674)
@@ -604,6 +604,10 @@ VVAARRIIAABBLLEE AASSSSIIGG
                      Provides a list of patterns to match against pathnames.
                      Ignore any that match.
 
+     _._M_A_K_E_._M_E_T_A_._I_G_N_O_R_E___F_I_L_T_E_R
+                     Provides a list of variable modifiers to apply to each
+                     pathname.  Ignore if the expansion is an empty string.
+
      _._M_A_K_E_._M_E_T_A_._P_R_E_F_I_X
                      Defines the message printed for each meta file updated in
                      "meta verbose" mode.  The default value is:
@@ -635,9 +639,14 @@ VVAARRIIAABBLLEE AASSSSIIGG
                      becomes `$' per normal evaluation rules.
 
      _M_A_K_E___P_R_I_N_T___V_A_R___O_N___E_R_R_O_R
-                     When bbmmaakkee stops due to an error, it prints its name and
-                     the value of `_._C_U_R_D_I_R' as well as the value of any vari-
-                     ables named in `_M_A_K_E___P_R_I_N_T___V_A_R___O_N___E_R_R_O_R'.
+                     When bbmmaakkee stops due to an error, it sets `_._E_R_R_O_R___T_A_R_G_E_T'
+                     to the name of the target that failed, `_._E_R_R_O_R___C_M_D' to
+                     the commands of the failed target, and in "meta" mode, it
+                     also sets `_._E_R_R_O_R___C_W_D' to the getcwd(3), and
+                     `_._E_R_R_O_R___M_E_T_A___F_I_L_E' to the path of the meta file (if any)
+                     describing the failed target.  It then prints its name
+                     and the value of `_._C_U_R_D_I_R' as well as the value of any
+                     variables named in `_M_A_K_E___P_R_I_N_T___V_A_R___O_N___E_R_R_O_R'.
 
      _._n_e_w_l_i_n_e        This variable is simply assigned a newline character as
                      its value.  This allows expansions using the ::@@ modifier
@@ -1489,4 +1498,4 @@ BBUUGGSS
 
      There is no way of escaping a space character in a filename.
 
-NetBSD 5.1                       June 2, 2016                       NetBSD 5.1
+NetBSD 5.1                      August 15, 2016                     NetBSD 5.1

Modified: user/alc/PQ_LAUNDRY/contrib/bmake/main.c
==============================================================================
--- user/alc/PQ_LAUNDRY/contrib/bmake/main.c	Fri Sep  9 20:30:36 2016	(r305673)
+++ user/alc/PQ_LAUNDRY/contrib/bmake/main.c	Fri Sep  9 21:00:07 2016	(r305674)
@@ -1,4 +1,4 @@
-/*	$NetBSD: main.c,v 1.247 2016/06/05 01:39:17 christos Exp $	*/
+/*	$NetBSD: main.c,v 1.250 2016/08/11 19:53:17 sjg Exp $	*/
 
 /*
  * Copyright (c) 1988, 1989, 1990, 1993
@@ -69,7 +69,7 @@
  */
 
 #ifndef MAKE_NATIVE
-static char rcsid[] = "$NetBSD: main.c,v 1.247 2016/06/05 01:39:17 christos Exp $";
+static char rcsid[] = "$NetBSD: main.c,v 1.250 2016/08/11 19:53:17 sjg Exp $";
 #else
 #include <sys/cdefs.h>
 #ifndef lint
@@ -81,7 +81,7 @@ __COPYRIGHT("@(#) Copyright (c) 1988, 19
 #if 0
 static char sccsid[] = "@(#)main.c	8.3 (Berkeley) 3/19/94";
 #else
-__RCSID("$NetBSD: main.c,v 1.247 2016/06/05 01:39:17 christos Exp $");
+__RCSID("$NetBSD: main.c,v 1.250 2016/08/11 19:53:17 sjg Exp $");
 #endif
 #endif /* not lint */
 #endif
@@ -1903,11 +1903,10 @@ cached_realpath(const char *pathname, ch
 #endif
     }
 
-    rp = Var_Value(pathname, cache, &cp);
-    if (rp) {
+    if ((rp = Var_Value(pathname, cache, &cp)) != NULL) {
 	/* a hit */
 	strlcpy(resolved, rp, MAXPATHLEN);
-    } else if ((rp = realpath(pathname, resolved))) {
+    } else if ((rp = realpath(pathname, resolved)) != NULL) {
 	Var_Set(pathname, rp, cache, 0);
     }
     free(cp);
@@ -1922,6 +1921,14 @@ PrintAddr(void *a, void *b)
 }
 
 
+static int
+addErrorCMD(void *cmdp, void *gnp)
+{
+    if (cmdp == NULL)
+	return 1;			/* stop */
+    Var_Append(".ERROR_CMD", cmdp, VAR_GLOBAL);
+    return 0;
+}
 
 void
 PrintOnError(GNode *gn, const char *s)
@@ -1942,6 +1949,8 @@ PrintOnError(GNode *gn, const char *s)
 	 * We can print this even if there is no .ERROR target.
 	 */
 	Var_Set(".ERROR_TARGET", gn->name, VAR_GLOBAL, 0);
+	Var_Delete(".ERROR_CMD", VAR_GLOBAL);
+	Lst_ForEach(gn->commands, addErrorCMD, gn);
     }
     strncpy(tmp, "${MAKE_PRINT_VAR_ON_ERROR:@v@$v='${$v}'\n@}",
 	    sizeof(tmp) - 1);

Modified: user/alc/PQ_LAUNDRY/contrib/bmake/make.1
==============================================================================
--- user/alc/PQ_LAUNDRY/contrib/bmake/make.1	Fri Sep  9 20:30:36 2016	(r305673)
+++ user/alc/PQ_LAUNDRY/contrib/bmake/make.1	Fri Sep  9 21:00:07 2016	(r305674)
@@ -1,4 +1,4 @@
-.\"	$NetBSD: make.1,v 1.259 2016/06/03 07:07:37 wiz Exp $
+.\"	$NetBSD: make.1,v 1.262 2016/08/18 19:23:20 wiz Exp $
 .\"
 .\" Copyright (c) 1990, 1993
 .\"	The Regents of the University of California.  All rights reserved.
@@ -29,7 +29,7 @@
 .\"
 .\"	from: @(#)make.1	8.4 (Berkeley) 3/19/94
 .\"
-.Dd June 2, 2016
+.Dd August 15, 2016
 .Dt MAKE 1
 .Os
 .Sh NAME
@@ -938,6 +938,9 @@ The default list includes:
 .It Va .MAKE.META.IGNORE_PATTERNS
 Provides a list of patterns to match against pathnames.
 Ignore any that match.
+.It Va .MAKE.META.IGNORE_FILTER
+Provides a list of variable modifiers to apply to each pathname.
+Ignore if the expansion is an empty string.
 .It Va .MAKE.META.PREFIX
 Defines the message printed for each meta file updated in "meta verbose" mode.
 The default value is:
@@ -985,7 +988,19 @@ per normal evaluation rules.
 .It Va MAKE_PRINT_VAR_ON_ERROR
 When
 .Nm
-stops due to an error, it prints its name and the value of
+stops due to an error, it sets
+.Ql Va .ERROR_TARGET
+to the name of the target that failed,
+.Ql Va .ERROR_CMD
+to the commands of the failed target,
+and in "meta" mode, it also sets
+.Ql Va .ERROR_CWD
+to the
+.Xr getcwd 3 ,
+and
+.Ql Va .ERROR_META_FILE
+to the path of the meta file (if any) describing the failed target.
+It then prints its name and the value of
 .Ql Va .CURDIR
 as well as the value of any variables named in
 .Ql Va MAKE_PRINT_VAR_ON_ERROR .

Modified: user/alc/PQ_LAUNDRY/contrib/bmake/meta.c
==============================================================================
--- user/alc/PQ_LAUNDRY/contrib/bmake/meta.c	Fri Sep  9 20:30:36 2016	(r305673)
+++ user/alc/PQ_LAUNDRY/contrib/bmake/meta.c	Fri Sep  9 21:00:07 2016	(r305674)
@@ -1,4 +1,4 @@
-/*      $NetBSD: meta.c,v 1.61 2016/06/07 00:40:00 sjg Exp $ */
+/*      $NetBSD: meta.c,v 1.67 2016/08/17 15:52:42 sjg Exp $ */
 
 /*
  * Implement 'meta' mode.
@@ -69,6 +69,9 @@ static char *metaIgnorePathsStr;	/* stri
 #ifndef MAKE_META_IGNORE_PATTERNS
 #define MAKE_META_IGNORE_PATTERNS ".MAKE.META.IGNORE_PATTERNS"
 #endif
+#ifndef MAKE_META_IGNORE_FILTER
+#define MAKE_META_IGNORE_FILTER ".MAKE.META.IGNORE_FILTER"
+#endif
 
 Boolean useMeta = FALSE;
 static Boolean useFilemon = FALSE;
@@ -79,6 +82,7 @@ static Boolean metaEnv = FALSE;		/* don'
 static Boolean metaVerbose = FALSE;
 static Boolean metaIgnoreCMDs = FALSE;	/* ignore CMDs in .meta files */
 static Boolean metaIgnorePatterns = FALSE; /* do we need to do pattern matches */
+static Boolean metaIgnoreFilter = FALSE;   /* do we have more complex filtering? */
 static Boolean metaCurdirOk = FALSE;	/* write .meta in .CURDIR Ok? */
 static Boolean metaSilent = FALSE;	/* if we have a .meta be SILENT */
 
@@ -645,6 +649,11 @@ meta_mode_init(const char *make_mode)
 	metaIgnorePatterns = TRUE;
 	free(cp);
     }
+    cp = NULL;
+    if (Var_Value(MAKE_META_IGNORE_FILTER, VAR_GLOBAL, &cp)) {
+	metaIgnoreFilter = TRUE;
+	free(cp);
+    }
 }
 
 /*
@@ -869,6 +878,7 @@ fgetLine(char **bufp, size_t *szp, int o
     return 0;
 }
 
+/* Lst_ForEach wants 1 to stop search */
 static int
 prefix_match(void *p, void *q)
 {
@@ -879,6 +889,32 @@ prefix_match(void *p, void *q)
     return (0 == strncmp(path, prefix, n));
 }
 
+/*
+ * looking for exact or prefix/ match to
+ * Lst_Find wants 0 to stop search
+ */
+static int
+path_match(const void *p, const void *q)
+{
+    const char *prefix = q;
+    const char *path = p;
+    size_t n = strlen(prefix);
+    int rc;
+
+    if ((rc = strncmp(path, prefix, n)) == 0) {
+	switch (path[n]) {
+	case '\0':
+	case '/':
+	    break;
+	default:
+	    rc = 1;
+	    break;
+	}
+    }
+    return rc;
+}
+
+/* Lst_Find wants 0 to stop search */
 static int
 string_match(const void *p, const void *q)
 {
@@ -889,6 +925,67 @@ string_match(const void *p, const void *
 }
 
 
+static int
+meta_ignore(GNode *gn, const char *p)
+{
+    char fname[MAXPATHLEN];
+
+    if (p == NULL)
+	return TRUE;
+
+    if (*p == '/') {
+	cached_realpath(p, fname); /* clean it up */
+	if (Lst_ForEach(metaIgnorePaths, prefix_match, fname)) {
+#ifdef DEBUG_META_MODE
+	    if (DEBUG(META))
+		fprintf(debug_file, "meta_oodate: ignoring path: %s\n",
+			p);
+#endif
+	    return TRUE;
+	}
+    }
+
+    if (metaIgnorePatterns) {
+	char *pm;
+
+	snprintf(fname, sizeof(fname),
+		 "${%s:@m@${%s:L:M$m}@}",
+		 MAKE_META_IGNORE_PATTERNS, p);
+	pm = Var_Subst(NULL, fname, gn, VARF_WANTRES);
+	if (*pm) {
+#ifdef DEBUG_META_MODE
+	    if (DEBUG(META))
+		fprintf(debug_file, "meta_oodate: ignoring pattern: %s\n",
+			p);
+#endif
+	    free(pm);
+	    return TRUE;
+	}
+	free(pm);
+    }
+
+    if (metaIgnoreFilter) {
+	char *fm;
+
+	/* skip if filter result is empty */
+	snprintf(fname, sizeof(fname),
+		 "${%s:L:${%s:ts:}}",
+		 p, MAKE_META_IGNORE_FILTER);
+	fm = Var_Subst(NULL, fname, gn, VARF_WANTRES);
+	if (*fm == '\0') {
+#ifdef DEBUG_META_MODE
+	    if (DEBUG(META))
+		fprintf(debug_file, "meta_oodate: ignoring filtered: %s\n",
+			p);
+#endif
+	    free(fm);
+	    return TRUE;
+	}
+	free(fm);
+    }
+    return FALSE;
+}
+
 /*
  * When running with 'meta' functionality, a target can be out-of-date
  * if any of the references in its meta data file is more recent.
@@ -1170,12 +1267,19 @@ meta_oodate(GNode *gn, Boolean oodate)
 		    /* FALLTHROUGH */
 		case 'D':		/* unlink */
 		    if (*p == '/' && !Lst_IsEmpty(missingFiles)) {
-			/* remove p from the missingFiles list if present */
-			if ((ln = Lst_Find(missingFiles, p, string_match)) != NULL) {
-			    char *tp = Lst_Datum(ln);
-			    Lst_Remove(missingFiles, ln);
-			    free(tp);
-			    ln = NULL;	/* we're done with it */
+			/* remove any missingFiles entries that match p */
+			if ((ln = Lst_Find(missingFiles, p,
+					   path_match)) != NULL) {
+			    LstNode nln;
+			    char *tp;
+
+			    do {
+				nln = Lst_FindFrom(missingFiles, Lst_Succ(ln),
+						   p, path_match);
+				tp = Lst_Datum(ln);
+				Lst_Remove(missingFiles, ln);
+				free(tp);
+			    } while ((ln = nln) != NULL);
 			}
 		    }
 		    if (buf[0] == 'M') {
@@ -1240,8 +1344,10 @@ meta_oodate(GNode *gn, Boolean oodate)
 
 		    if ((link_src != NULL && cached_lstat(p, &fs) < 0) ||
 			(link_src == NULL && cached_stat(p, &fs) < 0)) {
-			if (Lst_Find(missingFiles, p, string_match) == NULL)
+			if (!meta_ignore(gn, p)) {
+			    if (Lst_Find(missingFiles, p, string_match) == NULL)
 				Lst_AtEnd(missingFiles, bmake_strdup(p));
+			}
 		    }
 		    break;
 		check_link_src:
@@ -1259,37 +1365,9 @@ meta_oodate(GNode *gn, Boolean oodate)
 		     * be part of the dependencies because
 		     * they are _expected_ to change.
 		     */
-		    if (*p == '/') {
-			cached_realpath(p, fname1); /* clean it up */
-			if (Lst_ForEach(metaIgnorePaths, prefix_match, fname1)) {
-#ifdef DEBUG_META_MODE
-			    if (DEBUG(META))
-				fprintf(debug_file, "meta_oodate: ignoring path: %s\n",
-					p);
-#endif
-			    break;
-			}
-		    }
-
-		    if (metaIgnorePatterns) {
-			char *pm;
-
-			snprintf(fname1, sizeof(fname1),
-				 "${%s:@m@${%s:L:M$m}@}",
-				 MAKE_META_IGNORE_PATTERNS, p);
-			pm = Var_Subst(NULL, fname1, gn, VARF_WANTRES);
-			if (*pm) {
-#ifdef DEBUG_META_MODE
-			    if (DEBUG(META))
-				fprintf(debug_file, "meta_oodate: ignoring pattern: %s\n",
-					p);
-#endif
-			    free(pm);
-			    break;
-			}
-			free(pm);
-		    }
-
+		    if (meta_ignore(gn, p))
+			break;
+		    
 		    /*
 		     * The rest of the record is the file name.
 		     * Check if it's not an absolute path.
@@ -1547,7 +1625,7 @@ meta_compat_parent(void)
     while (fgets(buf, sizeof(buf), fp)) {
 	meta_job_output(NULL, buf, "");
 	printf("%s", buf);
-	(void)fflush(stdout);
+	fflush(stdout);
     }
     fclose(fp);
 }

Modified: user/alc/PQ_LAUNDRY/contrib/bmake/mk/ChangeLog
==============================================================================
--- user/alc/PQ_LAUNDRY/contrib/bmake/mk/ChangeLog	Fri Sep  9 20:30:36 2016	(r305673)
+++ user/alc/PQ_LAUNDRY/contrib/bmake/mk/ChangeLog	Fri Sep  9 21:00:07 2016	(r305674)
@@ -1,3 +1,34 @@
+2016-08-15  Simon J. Gerraty  <sjg@bad.crufty.net>
+
+	* install-mk (MK_VERSION): 20160815
+
+	* dirdeps.mk (.MAKE.META.IGNORE_FILTER): set filter to only
+	consider Makefile.depend* when checking if DIRDEPS_CACHE is up-to-date.
+
+2016-08-13  Simon J. Gerraty  <sjg@bad.crufty.net>
+
+	* meta.sys.mk (.MAKE.META.IGNORE_PATHS): 
+	  in meta mode we can ignore the mtime of makefiles
+
+2016-08-02  Simon J. Gerraty  <sjg@bad.crufty.net>
+
+	* install-mk (MK_VERSION): 20160802
+	
+	* lib.mk (libinstall): depends on beforinstall
+
+	* prog.mk (proginstall): depends on beforinstall
+	  patch from Lauri Tirkkonen
+	
+	* dirdeps.mk (bootstrap): When bootstrapping; creat
+	.MAKE.DEPENDFILE_DEFAULT and allow additional filtering via
+	.MAKE.DEPENDFILE_BOOTSTRAP_SED
+
+	* dirdeps.mk: move some comments to where they make sense.
+
+2016-07-27  Simon J. Gerraty  <sjg@bad.crufty.net>
+
+	* dirdeps.mk (DIRDEPS_CACHE): no dirname.
+
 2016-06-02  Simon J. Gerraty  <sjg@bad.crufty.net>
 
 	* install-mk (MK_VERSION): 20160602

Modified: user/alc/PQ_LAUNDRY/contrib/bmake/mk/dirdeps.mk
==============================================================================
--- user/alc/PQ_LAUNDRY/contrib/bmake/mk/dirdeps.mk	Fri Sep  9 20:30:36 2016	(r305673)
+++ user/alc/PQ_LAUNDRY/contrib/bmake/mk/dirdeps.mk	Fri Sep  9 21:00:07 2016	(r305674)
@@ -1,4 +1,4 @@
-# $Id: dirdeps.mk,v 1.67 2016/04/18 21:50:47 sjg Exp $
+# $Id: dirdeps.mk,v 1.73 2016/08/15 19:28:13 sjg Exp $
 
 # Copyright (c) 2010-2013, Juniper Networks, Inc.
 # All rights reserved.
@@ -116,12 +116,17 @@ _DIRDEP_USE_LEVEL?= 0
 .if ${.MAKE.LEVEL} == ${_DIRDEP_USE_LEVEL}
 # only the first instance is interested in all this
 
-# First off, we want to know what ${MACHINE} to build for.
-# This can be complicated if we are using a mixture of ${MACHINE} specific
-# and non-specific Makefile.depend*
-
 .if !target(_DIRDEP_USE)
 
+# do some setup we only need once
+_CURDIR ?= ${.CURDIR}
+_OBJDIR ?= ${.OBJDIR}
+
+now_utc = ${%s:L:gmtime}
+.if !defined(start_utc)
+start_utc := ${now_utc}
+.endif
+
 .if ${MAKEFILE:T} == ${.PARSEFILE} && empty(DIRDEPS) && ${.TARGETS:Uall:M*/*} != ""
 # This little trick let's us do
 #
@@ -144,15 +149,6 @@ MK_DIRDEPS_CACHE = no
 # make sure we get the behavior we expect
 .MAKE.SAVE_DOLLARS = no
 
-# do some setup we only need once
-_CURDIR ?= ${.CURDIR}
-_OBJDIR ?= ${.OBJDIR}
-
-now_utc = ${%s:L:gmtime}
-.if !defined(start_utc)
-start_utc := ${now_utc}
-.endif
-
 # make sure these are empty to start with
 _DEP_TARGET_SPEC =
 
@@ -223,6 +219,10 @@ N_notmachine := ${.MAKE.DEPENDFILE_PREFE
 
 .endif				# !target(_DIRDEP_USE)
 
+# First off, we want to know what ${MACHINE} to build for.
+# This can be complicated if we are using a mixture of ${MACHINE} specific
+# and non-specific Makefile.depend*
+
 # if we were included recursively _DEP_TARGET_SPEC should be valid.
 .if empty(_DEP_TARGET_SPEC)
 # we may or may not have included a dependfile yet
@@ -385,7 +385,7 @@ BUILD_DIRDEPS ?= yes
 .if !defined(NO_DIRDEPS) && !defined(NO_DIRDEPS_BELOW)
 .if ${MK_DIRDEPS_CACHE} == "yes"
 # this is where we will cache all our work
-DIRDEPS_CACHE?= ${_OBJDIR}/dirdeps.cache${.TARGETS:Nall:O:u:ts-:S,/,_,g:S,^,.,:N.}
+DIRDEPS_CACHE?= ${_OBJDIR:tA}/dirdeps.cache${.TARGETS:Nall:O:u:ts-:S,/,_,g:S,^,.,:N.}
 
 # just ensure this exists
 build-dirdeps:
@@ -397,6 +397,9 @@ M_oneperline = @x@\\${.newline}	$$x@
 # we do this via sub-make
 BUILD_DIRDEPS = no
 
+# ignore anything but these
+.MAKE.META.IGNORE_FILTER = M*/${.MAKE.DEPENDFILE_PREFIX}*
+
 dirdeps: dirdeps-cached
 dirdeps-cached:	${DIRDEPS_CACHE} .MAKE
 	@echo "${TRACER}Using ${DIRDEPS_CACHE}"
@@ -669,7 +672,10 @@ _DEP_RELDIR := ${RELDIR}
 	make(bootstrap-recurse) || \
 	make(bootstrap-empty))
 
-.if exists(${.CURDIR}/${.MAKE.DEPENDFILE:T})
+# if we are bootstrapping create the default
+_want = ${.CURDIR}/${.MAKE.DEPENDFILE_DEFAULT:T}
+
+.if exists(${_want})
 # stop here
 ${.TARGETS:Mboot*}:
 .elif !make(bootstrap-empty)
@@ -679,12 +685,19 @@ _src != cd ${.CURDIR} && for m in ${.MAK
 .error cannot find any of ${.MAKE.DEPENDFILE_PREFERENCE:T}${.newline}Use: bootstrap-empty
 .endif
 
-_src?= ${.MAKE.DEPENDFILE:T}
+_src?= ${.MAKE.DEPENDFILE}
+
+.MAKE.DEPENDFILE_BOOTSTRAP_SED+= -e 's,${_src:E},${MACHINE},g'
 
 # just create Makefile.depend* for this dir
 bootstrap-this:	.NOTMAIN
-	@echo Bootstrapping ${RELDIR}/${.MAKE.DEPENDFILE:T} from ${_src:T}
-	(cd ${.CURDIR} && sed 's,${_src:E},${MACHINE},g' ${_src} > ${.MAKE.DEPENDFILE:T})
+	@echo Bootstrapping ${RELDIR}/${_want:T} from ${_src:T}; \
+	echo You need to build ${RELDIR} to correctly populate it.
+.if ${_src:T} != ${.MAKE.DEPENDFILE_PREFIX:T}
+	(cd ${.CURDIR} && sed ${.MAKE.DEPENDFILE_BOOTSTRAP_SED} ${_src} > ${_want})
+.else
+	cp ${.CURDIR}/${_src} ${_want}
+.endif
 
 # create Makefile.depend* for this dir and its dependencies
 bootstrap: bootstrap-recurse
@@ -704,8 +717,8 @@ bootstrap-recurse:	.NOTMAIN .MAKE
 
 # create an empty Makefile.depend* to get the ball rolling.
 bootstrap-empty: .NOTMAIN .NOMETA
-	@echo Creating empty ${RELDIR}/${.MAKE.DEPENDFILE:T}; \
+	@echo Creating empty ${RELDIR}/${_want:T}; \
 	echo You need to build ${RELDIR} to correctly populate it.
-	@{ echo DIRDEPS=; echo ".include <dirdeps.mk>"; } > ${.CURDIR}/${.MAKE.DEPENDFILE:T}
+	@{ echo DIRDEPS=; echo ".include <dirdeps.mk>"; } > ${_want}
 
 .endif

Modified: user/alc/PQ_LAUNDRY/contrib/bmake/mk/install-mk
==============================================================================
--- user/alc/PQ_LAUNDRY/contrib/bmake/mk/install-mk	Fri Sep  9 20:30:36 2016	(r305673)
+++ user/alc/PQ_LAUNDRY/contrib/bmake/mk/install-mk	Fri Sep  9 21:00:07 2016	(r305674)
@@ -55,7 +55,7 @@
 #       Simon J. Gerraty <sjg@crufty.net>
 
 # RCSid:
-#	$Id: install-mk,v 1.128 2016/06/03 17:22:32 sjg Exp $
+#	$Id: install-mk,v 1.130 2016/08/15 19:28:13 sjg Exp $
 #
 #	@(#) Copyright (c) 1994 Simon J. Gerraty
 #
@@ -70,7 +70,7 @@
 #	sjg@crufty.net
 #
 
-MK_VERSION=20160602
+MK_VERSION=20160815
 OWNER=
 GROUP=
 MODE=444

Modified: user/alc/PQ_LAUNDRY/contrib/bmake/mk/lib.mk
==============================================================================
--- user/alc/PQ_LAUNDRY/contrib/bmake/mk/lib.mk	Fri Sep  9 20:30:36 2016	(r305673)
+++ user/alc/PQ_LAUNDRY/contrib/bmake/mk/lib.mk	Fri Sep  9 21:00:07 2016	(r305674)
@@ -1,4 +1,4 @@
-# $Id: lib.mk,v 1.53 2016/03/22 20:45:14 sjg Exp $
+# $Id: lib.mk,v 1.54 2016/08/02 20:52:17 sjg Exp $
 
 .if !target(__${.PARSEFILE}__)
 __${.PARSEFILE}__:
@@ -564,6 +564,7 @@ libinstall:
 install: maninstall _SUBDIRUSE
 maninstall: afterinstall
 afterinstall: realinstall
+libinstall: beforeinstall
 realinstall: beforeinstall
 .endif
 

Modified: user/alc/PQ_LAUNDRY/contrib/bmake/mk/meta.sys.mk
==============================================================================
--- user/alc/PQ_LAUNDRY/contrib/bmake/mk/meta.sys.mk	Fri Sep  9 20:30:36 2016	(r305673)
+++ user/alc/PQ_LAUNDRY/contrib/bmake/mk/meta.sys.mk	Fri Sep  9 21:00:07 2016	(r305674)
@@ -1,4 +1,4 @@
-# $Id: meta.sys.mk,v 1.28 2016/04/05 15:58:37 sjg Exp $
+# $Id: meta.sys.mk,v 1.29 2016/08/13 17:51:45 sjg Exp $
 
 #
 #	@(#) Copyright (c) 2010, Simon J. Gerraty
@@ -25,6 +25,10 @@
 # absoulte path to what we are reading.
 _PARSEDIR = ${.PARSEDIR:tA}
 
+.if !defined(SYS_MK_DIR)
+SYS_MK_DIR := ${_PARSEDIR}
+.endif
+
 META_MODE += meta verbose
 .MAKE.MODE ?= ${META_MODE}
 
@@ -119,6 +123,15 @@ MKDEP_MK = meta.autodep.mk
 # re-running needlessly
 META_COOKIE_TOUCH= touch ${COOKIE.${.TARGET}:U${.OBJDIR}/${.TARGET}}
 META_NOPHONY=
+
+# some targets involve old pre-built targets
+# ignore mtime of shell
+# and mtime of makefiles does not matter in meta mode
+.MAKE.META.IGNORE_PATHS += \
+        ${MAKEFILE} \
+        ${SHELL} \
+        ${SYS_MK_DIR}
+
 .if ${UPDATE_DEPENDFILE:Uyes:tl} != "no"
 .if ${.MAKEFLAGS:Uno:M-k} != ""
 # make this more obvious

Modified: user/alc/PQ_LAUNDRY/contrib/bmake/mk/prog.mk
==============================================================================
--- user/alc/PQ_LAUNDRY/contrib/bmake/mk/prog.mk	Fri Sep  9 20:30:36 2016	(r305673)
+++ user/alc/PQ_LAUNDRY/contrib/bmake/mk/prog.mk	Fri Sep  9 21:00:07 2016	(r305674)
@@ -1,4 +1,4 @@
-#	$Id: prog.mk,v 1.26 2016/03/22 20:45:14 sjg Exp $
+#	$Id: prog.mk,v 1.27 2016/08/02 20:52:17 sjg Exp $
 
 .if !target(__${.PARSEFILE}__)
 __${.PARSEFILE}__:
@@ -191,6 +191,7 @@ install_links:
 
 maninstall: afterinstall
 afterinstall: realinstall
+proginstall: beforeinstall
 realinstall: beforeinstall
 .endif
 

Modified: user/alc/PQ_LAUNDRY/contrib/bmake/os.sh
==============================================================================
--- user/alc/PQ_LAUNDRY/contrib/bmake/os.sh	Fri Sep  9 20:30:36 2016	(r305673)
+++ user/alc/PQ_LAUNDRY/contrib/bmake/os.sh	Fri Sep  9 21:00:07 2016	(r305674)
@@ -17,7 +17,7 @@
 #	Simon J. Gerraty <sjg@crufty.net>
 
 # RCSid:
-#	$Id: os.sh,v 1.50 2015/12/17 17:06:29 sjg Exp $
+#	$Id: os.sh,v 1.52 2016/06/17 05:15:14 sjg Exp $
 #
 #	@(#) Copyright (c) 1994 Simon J. Gerraty
 #
@@ -139,7 +139,7 @@ SunOS)
 	case $OS in
 	NetBSD)
 		HOST_ARCH=$MACHINE
-		SHARE_ARCH=$OS/$HOST
+		SHARE_ARCH=$OS/$HOST_ARCH
 		;;
 	OpenBSD)
 		arch=`Which arch /usr/bin:/usr/ucb:$PATH`
@@ -208,7 +208,8 @@ TMP_DIRS=${TMP_DIRS:-"/tmp /var/tmp"}
 MACHINE_ARCH=${MACHINE_ARCH:-$MACHINE}
 HOST_ARCH=${HOST_ARCH:-$MACHINE_ARCH}
 # we mount server:/share/arch/$SHARE_ARCH as /usr/local
-SHARE_ARCH=${SHARE_ARCH:-$OS/$OSMAJOR.X/$HOST_ARCH}
+SHARE_ARCH_DEFAULT=$OS/$OSMAJOR.X/$HOST_ARCH
+SHARE_ARCH=${SHARE_ARCH:-$SHARE_ARCH_DEFAULT}
 LN=${LN:-ln}
 TR=${TR:-tr}
 

Modified: user/alc/PQ_LAUNDRY/contrib/bmake/suff.c
==============================================================================
--- user/alc/PQ_LAUNDRY/contrib/bmake/suff.c	Fri Sep  9 20:30:36 2016	(r305673)
+++ user/alc/PQ_LAUNDRY/contrib/bmake/suff.c	Fri Sep  9 21:00:07 2016	(r305674)
@@ -1,4 +1,4 @@
-/*	$NetBSD: suff.c,v 1.81 2016/03/15 18:30:14 matthias Exp $	*/
+/*	$NetBSD: suff.c,v 1.84 2016/06/30 05:34:04 dholland Exp $	*/
 
 /*
  * Copyright (c) 1988, 1989, 1990, 1993
@@ -69,14 +69,14 @@
  */
 
 #ifndef MAKE_NATIVE
-static char rcsid[] = "$NetBSD: suff.c,v 1.81 2016/03/15 18:30:14 matthias Exp $";
+static char rcsid[] = "$NetBSD: suff.c,v 1.84 2016/06/30 05:34:04 dholland Exp $";
 #else
 #include <sys/cdefs.h>
 #ifndef lint
 #if 0
 static char sccsid[] = "@(#)suff.c	8.4 (Berkeley) 3/21/94";
 #else
-__RCSID("$NetBSD: suff.c,v 1.81 2016/03/15 18:30:14 matthias Exp $");
+__RCSID("$NetBSD: suff.c,v 1.84 2016/06/30 05:34:04 dholland Exp $");
 #endif
 #endif /* not lint */
 #endif
@@ -766,6 +766,8 @@ Suff_EndTransform(void *gnp, void *dummy
 {
     GNode *gn = (GNode *)gnp;
 
+    (void)dummy;
+
     if ((gn->type & OP_DOUBLEDEP) && !Lst_IsEmpty (gn->cohorts))
 	gn = (GNode *)Lst_Datum(Lst_Last(gn->cohorts));
     if ((gn->type & OP_TRANSFORM) && Lst_IsEmpty(gn->commands) &&
@@ -809,7 +811,7 @@ Suff_EndTransform(void *gnp, void *dummy
 	fprintf(debug_file, "transformation %s complete\n", gn->name);
     }
 
-    return(dummy ? 0 : 0);
+    return 0;
 }
 
 /*-
@@ -1215,7 +1217,7 @@ SuffAddSrc(void *sp, void *lsp)
 #ifdef DEBUG_SRC
 	s2->cp = Lst_Init(FALSE);
 	Lst_AtEnd(targ->cp, s2);
-	fprintf(debug_file, "1 add %x %x to %x:", targ, s2, ls->l);
+	fprintf(debug_file, "1 add %p %p to %p:", targ, s2, ls->l);
 	Lst_ForEach(ls->l, PrintAddr, NULL);
 	fprintf(debug_file, "\n");
 #endif
@@ -1233,7 +1235,7 @@ SuffAddSrc(void *sp, void *lsp)
 #ifdef DEBUG_SRC
     s2->cp = Lst_Init(FALSE);
     Lst_AtEnd(targ->cp, s2);
-    fprintf(debug_file, "2 add %x %x to %x:", targ, s2, ls->l);
+    fprintf(debug_file, "2 add %p %p to %p:", targ, s2, ls->l);
     Lst_ForEach(ls->l, PrintAddr, NULL);
     fprintf(debug_file, "\n");
 #endif
@@ -1305,14 +1307,14 @@ SuffRemoveSrc(Lst l)
 		free(s->pref);
 	    else {
 #ifdef DEBUG_SRC
-		LstNode ln = Lst_Member(s->parent->cp, s);
-		if (ln != NULL)
-		    Lst_Remove(s->parent->cp, ln);
+		LstNode ln2 = Lst_Member(s->parent->cp, s);
+		if (ln2 != NULL)
+		    Lst_Remove(s->parent->cp, ln2);
 #endif
 		--s->parent->children;
 	    }
 #ifdef DEBUG_SRC
-	    fprintf(debug_file, "free: [l=%x] p=%x %d\n", l, s, s->children);
+	    fprintf(debug_file, "free: [l=%p] p=%p %d\n", l, s, s->children);
 	    Lst_Destroy(s->cp, NULL);
 #endif
 	    Lst_Remove(l, ln);
@@ -1323,7 +1325,7 @@ SuffRemoveSrc(Lst l)
 	}
 #ifdef DEBUG_SRC
 	else {
-	    fprintf(debug_file, "keep: [l=%x] p=%x %d: ", l, s, s->children);
+	    fprintf(debug_file, "keep: [l=%p] p=%p %d: ", l, s, s->children);
 	    Lst_ForEach(s->cp, PrintAddr, NULL);
 	    fprintf(debug_file, "\n");
 	}
@@ -1372,7 +1374,7 @@ SuffFindThem(Lst srcs, Lst slst)
 	 */
 	if (Targ_FindNode(s->file, TARG_NOCREATE) != NULL) {
 #ifdef DEBUG_SRC
-	    fprintf(debug_file, "remove %x from %x\n", s, srcs);
+	    fprintf(debug_file, "remove %p from %p\n", s, srcs);
 #endif
 	    rs = s;
 	    break;
@@ -1381,7 +1383,7 @@ SuffFindThem(Lst srcs, Lst slst)
 	if ((ptr = Dir_FindFile(s->file, s->suff->searchPath)) != NULL) {
 	    rs = s;
 #ifdef DEBUG_SRC
-	    fprintf(debug_file, "remove %x from %x\n", s, srcs);
+	    fprintf(debug_file, "remove %p from %p\n", s, srcs);
 #endif
 	    free(ptr);
 	    break;
@@ -1497,7 +1499,7 @@ SuffFindCmds(Src *targ, Lst slst)
     targ->children += 1;
 #ifdef DEBUG_SRC
     ret->cp = Lst_Init(FALSE);
-    fprintf(debug_file, "3 add %x %x\n", targ, ret);
+    fprintf(debug_file, "3 add %p %p\n", targ, ret);
     Lst_AtEnd(targ->cp, ret);
 #endif
     Lst_AtEnd(slst, ret);
@@ -1616,7 +1618,7 @@ SuffExpandChildren(LstNode cln, GNode *p
 		    }
 
 		    free(freeIt);
-		} else if (*cp == '\\' && *cp != '\0') {
+		} else if (*cp == '\\' && cp[1] != '\0') {
 		    /*
 		     * Escaped something -- skip over it
 		     */
@@ -2597,8 +2599,10 @@ Suff_End(void)
 
 static int SuffPrintName(void *s, void *dummy)
 {
+    (void)dummy;
+
     fprintf(debug_file, "%s ", ((Suff *)s)->name);
-    return (dummy ? 0 : 0);
+    return 0;
 }
 
 static int
@@ -2608,6 +2612,8 @@ SuffPrintSuff(void *sp, void *dummy)
     int	    flags;
     int	    flag;
 
+    (void)dummy;
+
     fprintf(debug_file, "# `%s' [%d] ", s->name, s->refCount);
 
     flags = s->flags;
@@ -2640,7 +2646,7 @@ SuffPrintSuff(void *sp, void *dummy)
     fprintf(debug_file, "#\tSearch Path: ");
     Dir_PrintPath(s->searchPath);
     fputc('\n', debug_file);
-    return (dummy ? 0 : 0);
+    return 0;
 }
 
 static int
@@ -2648,12 +2654,14 @@ SuffPrintTrans(void *tp, void *dummy)
 {
     GNode   *t = (GNode *)tp;
 
+    (void)dummy;
+
     fprintf(debug_file, "%-16s: ", t->name);
     Targ_PrintType(t->type);
     fputc('\n', debug_file);
     Lst_ForEach(t->commands, Targ_PrintCmd, NULL);
     fputc('\n', debug_file);
-    return(dummy ? 0 : 0);
+    return 0;
 }
 
 void

Modified: user/alc/PQ_LAUNDRY/etc/mtree/BSD.tests.dist
==============================================================================
--- user/alc/PQ_LAUNDRY/etc/mtree/BSD.tests.dist	Fri Sep  9 20:30:36 2016	(r305673)
+++ user/alc/PQ_LAUNDRY/etc/mtree/BSD.tests.dist	Fri Sep  9 21:00:07 2016	(r305674)
@@ -308,6 +308,18 @@
             ttyio
             ..
         ..
+        libcasper
+            services
+                cap_dns
+                ..
+                cap_grp
+                ..
+                cap_pwd
+                ..
+                cap_sysctl
+                ..
+            ..
+        ..
         libcrypt
         ..
         libdevdctl

Modified: user/alc/PQ_LAUNDRY/lib/libc/aarch64/sys/Makefile.inc
==============================================================================
--- user/alc/PQ_LAUNDRY/lib/libc/aarch64/sys/Makefile.inc	Fri Sep  9 20:30:36 2016	(r305673)
+++ user/alc/PQ_LAUNDRY/lib/libc/aarch64/sys/Makefile.inc	Fri Sep  9 21:00:07 2016	(r305674)
@@ -11,13 +11,5 @@ MDASM=	cerror.S \
 	vfork.S
 
 # Don't generate default code for these syscalls:
-NOASM=	break.o \
-	exit.o \
-	getlogin.o \
-	sbrk.o \
-	sstk.o \
-	vfork.o \
-	yield.o
-
-PSEUDO= _exit.o \
-	_getlogin.o
+NOASM+=	sbrk.o \
+	vfork.o

Modified: user/alc/PQ_LAUNDRY/lib/libc/amd64/sys/Makefile.inc
==============================================================================
--- user/alc/PQ_LAUNDRY/lib/libc/amd64/sys/Makefile.inc	Fri Sep  9 20:30:36 2016	(r305673)
+++ user/alc/PQ_LAUNDRY/lib/libc/amd64/sys/Makefile.inc	Fri Sep  9 21:00:07 2016	(r305674)
@@ -8,6 +8,4 @@ MDASM=	vfork.S brk.S cerror.S exect.S ge
 	sbrk.S setlogin.S sigreturn.S
 
 # Don't generate default code for these syscalls:
-NOASM=	break.o exit.o getlogin.o sstk.o vfork.o yield.o
-
-PSEUDO=	_getlogin.o _exit.o
+NOASM+=	vfork.o

Modified: user/alc/PQ_LAUNDRY/lib/libc/arm/sys/Makefile.inc
==============================================================================
--- user/alc/PQ_LAUNDRY/lib/libc/arm/sys/Makefile.inc	Fri Sep  9 20:30:36 2016	(r305673)
+++ user/alc/PQ_LAUNDRY/lib/libc/arm/sys/Makefile.inc	Fri Sep  9 21:00:07 2016	(r305674)
@@ -5,6 +5,4 @@ SRCS+=	__vdso_gettc.c
 MDASM= Ovfork.S brk.S cerror.S sbrk.S shmat.S sigreturn.S syscall.S
 
 # Don't generate default code for these syscalls:
-NOASM=	break.o exit.o getlogin.o sstk.o vfork.o yield.o
-
-PSEUDO= _exit.o _getlogin.o
+NOASM+=	vfork.o

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

From owner-svn-src-user@freebsd.org  Sat Sep 10 17:15:00 2016
Return-Path: <owner-svn-src-user@freebsd.org>
Delivered-To: svn-src-user@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 1ADFFBD57A4
 for <svn-src-user@mailman.ysv.freebsd.org>;
 Sat, 10 Sep 2016 17:15:00 +0000 (UTC) (envelope-from alc@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 B0417C52;
 Sat, 10 Sep 2016 17:14:59 +0000 (UTC) (envelope-from alc@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u8AHExGi031780;
 Sat, 10 Sep 2016 17:14:59 GMT (envelope-from alc@FreeBSD.org)
Received: (from alc@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id u8AHEvmd031762;
 Sat, 10 Sep 2016 17:14:57 GMT (envelope-from alc@FreeBSD.org)
Message-Id: <201609101714.u8AHEvmd031762@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: alc set sender to alc@FreeBSD.org
 using -f
From: Alan Cox <alc@FreeBSD.org>
Date: Sat, 10 Sep 2016 17:14:57 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
Subject: svn commit: r305688 - in user/alc/PQ_LAUNDRY: sys/amd64/amd64
 sys/arm/arm sys/arm64/arm64 sys/cddl/compat/opensolaris/sys sys/i386/i386
 sys/kern sys/powerpc/booke sys/powerpc/conf sys/riscv/riscv s...
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
 src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-user>,
 <mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user/>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-user>,
 <mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 10 Sep 2016 17:15:00 -0000

Author: alc
Date: Sat Sep 10 17:14:57 2016
New Revision: 305688
URL: https://svnweb.freebsd.org/changeset/base/305688

Log:
  MFH r305685

Added:
  user/alc/PQ_LAUNDRY/tests/sys/kern/waitpid_nohang.c
     - copied unchanged from r305685, head/tests/sys/kern/waitpid_nohang.c
Modified:
  user/alc/PQ_LAUNDRY/sys/amd64/amd64/pmap.c
  user/alc/PQ_LAUNDRY/sys/arm/arm/pmap-v6.c
  user/alc/PQ_LAUNDRY/sys/arm64/arm64/pmap.c
  user/alc/PQ_LAUNDRY/sys/cddl/compat/opensolaris/sys/random.h
  user/alc/PQ_LAUNDRY/sys/i386/i386/pmap.c
  user/alc/PQ_LAUNDRY/sys/kern/kern_exit.c
  user/alc/PQ_LAUNDRY/sys/kern/subr_witness.c
  user/alc/PQ_LAUNDRY/sys/kern/uipc_syscalls.c
  user/alc/PQ_LAUNDRY/sys/kern/vfs_cache.c
  user/alc/PQ_LAUNDRY/sys/powerpc/booke/pmap.c
  user/alc/PQ_LAUNDRY/sys/powerpc/conf/MPC85XX
  user/alc/PQ_LAUNDRY/sys/riscv/riscv/pmap.c
  user/alc/PQ_LAUNDRY/sys/sparc64/sparc64/pmap.c
  user/alc/PQ_LAUNDRY/sys/vm/pmap.h
  user/alc/PQ_LAUNDRY/tests/sys/kern/Makefile
Directory Properties:
  user/alc/PQ_LAUNDRY/   (props changed)

Modified: user/alc/PQ_LAUNDRY/sys/amd64/amd64/pmap.c
==============================================================================
--- user/alc/PQ_LAUNDRY/sys/amd64/amd64/pmap.c	Sat Sep 10 17:00:08 2016	(r305687)
+++ user/alc/PQ_LAUNDRY/sys/amd64/amd64/pmap.c	Sat Sep 10 17:14:57 2016	(r305688)
@@ -5816,8 +5816,6 @@ safe_to_clear_referenced(pmap_t pmap, pt
 		return (FALSE);
 }
 
-#define	PMAP_TS_REFERENCED_MAX	5
-
 /*
  *	pmap_ts_referenced:
  *
@@ -5826,10 +5824,6 @@ safe_to_clear_referenced(pmap_t pmap, pt
  *	is necessary that 0 only be returned when there are truly no
  *	reference bits set.
  *
- *	XXX: The exact number of bits to check and clear is a matter that
- *	should be tested and standardized at some point in the future for
- *	optimal aging of shared pages.
- *
  *	As an optimization, update the page's dirty field if a modified bit is
  *	found while counting reference bits.  This opportunistic update can be
  *	performed at low cost and can eliminate the need for some future calls
@@ -5898,7 +5892,7 @@ retry:
 			 */
 			vm_page_dirty(m);
 		}
-		if ((*pde & PG_A) != 0) {
+		if ((oldpde & PG_A) != 0) {
 			/*
 			 * Since this reference bit is shared by 512 4KB
 			 * pages, it should not be cleared every time it is
@@ -5919,7 +5913,7 @@ retry:
 			 */
 			if ((((pa >> PAGE_SHIFT) ^ (pv->pv_va >> PDRSHIFT) ^
 			    (uintptr_t)pmap) & (NPTEPG - 1)) == 0 &&
-			    (*pde & PG_W) == 0) {
+			    (oldpde & PG_W) == 0) {
 				if (safe_to_clear_referenced(pmap, oldpde)) {
 					atomic_clear_long(pde, PG_A);
 					pmap_invalidate_page(pmap, pv->pv_va);

Modified: user/alc/PQ_LAUNDRY/sys/arm/arm/pmap-v6.c
==============================================================================
--- user/alc/PQ_LAUNDRY/sys/arm/arm/pmap-v6.c	Sat Sep 10 17:00:08 2016	(r305687)
+++ user/alc/PQ_LAUNDRY/sys/arm/arm/pmap-v6.c	Sat Sep 10 17:14:57 2016	(r305688)
@@ -5161,8 +5161,6 @@ pmap_is_referenced(vm_page_t m)
 	return (rv);
 }
 
-#define	PMAP_TS_REFERENCED_MAX	5
-
 /*
  *	pmap_ts_referenced:
  *
@@ -5171,10 +5169,6 @@ pmap_is_referenced(vm_page_t m)
  *	is necessary that 0 only be returned when there are truly no
  *	reference bits set.
  *
- *	XXX: The exact number of bits to check and clear is a matter that
- *	should be tested and standardized at some point in the future for
- *	optimal aging of shared pages.
- *
  *	As an optimization, update the page's dirty field if a modified bit is
  *	found while counting reference bits.  This opportunistic update can be
  *	performed at low cost and can eliminate the need for some future calls

Modified: user/alc/PQ_LAUNDRY/sys/arm64/arm64/pmap.c
==============================================================================
--- user/alc/PQ_LAUNDRY/sys/arm64/arm64/pmap.c	Sat Sep 10 17:00:08 2016	(r305687)
+++ user/alc/PQ_LAUNDRY/sys/arm64/arm64/pmap.c	Sat Sep 10 17:14:57 2016	(r305688)
@@ -3880,8 +3880,6 @@ safe_to_clear_referenced(pmap_t pmap, pt
 	return (FALSE);
 }
 
-#define	PMAP_TS_REFERENCED_MAX	5
-
 /*
  *	pmap_ts_referenced:
  *
@@ -3890,9 +3888,13 @@ safe_to_clear_referenced(pmap_t pmap, pt
  *	is necessary that 0 only be returned when there are truly no
  *	reference bits set.
  *
- *	XXX: The exact number of bits to check and clear is a matter that
- *	should be tested and standardized at some point in the future for
- *	optimal aging of shared pages.
+ *	As an optimization, update the page's dirty field if a modified bit is
+ *	found while counting reference bits.  This opportunistic update can be
+ *	performed at low cost and can eliminate the need for some future calls
+ *	to pmap_is_modified().  However, since this function stops after
+ *	finding PMAP_TS_REFERENCED_MAX reference bits, it may not detect some
+ *	dirty pages.  Those dirty pages will only be detected by a future call
+ *	to pmap_is_modified().
  */
 int
 pmap_ts_referenced(vm_page_t m)
@@ -3947,6 +3949,14 @@ retry:
 		    ("pmap_ts_referenced: found an invalid l1 table"));
 		pte = pmap_l1_to_l2(pde, pv->pv_va);
 		tpte = pmap_load(pte);
+		if (pmap_page_dirty(tpte)) {
+			/*
+			 * Although "tpte" is mapping a 2MB page, because
+			 * this function is called at a 4KB page granularity,
+			 * we only update the 4KB page under test.
+			 */
+			vm_page_dirty(m);
+		}
 		if ((tpte & ATTR_AF) != 0) {
 			/*
 			 * Since this reference bit is shared by 512 4KB
@@ -4043,6 +4053,8 @@ small_mappings:
 		    ("pmap_ts_referenced: found an invalid l2 table"));
 		pte = pmap_l2_to_l3(pde, pv->pv_va);
 		tpte = pmap_load(pte);
+		if (pmap_page_dirty(tpte))
+			vm_page_dirty(m);
 		if ((tpte & ATTR_AF) != 0) {
 			if (safe_to_clear_referenced(pmap, tpte)) {
 				/*

Modified: user/alc/PQ_LAUNDRY/sys/cddl/compat/opensolaris/sys/random.h
==============================================================================
--- user/alc/PQ_LAUNDRY/sys/cddl/compat/opensolaris/sys/random.h	Sat Sep 10 17:00:08 2016	(r305687)
+++ user/alc/PQ_LAUNDRY/sys/cddl/compat/opensolaris/sys/random.h	Sat Sep 10 17:14:57 2016	(r305688)
@@ -32,6 +32,6 @@
 #include_next <sys/random.h>
 
 #define	random_get_bytes(p, s)		read_random((p), (int)(s))
-#define	random_get_pseudo_bytes(p, s)	read_random((p), (int)(s))
+#define	random_get_pseudo_bytes(p, s)	arc4rand((p), (int)(s), 0)
 
 #endif	/* !_OPENSOLARIS_SYS_RANDOM_H_ */

Modified: user/alc/PQ_LAUNDRY/sys/i386/i386/pmap.c
==============================================================================
--- user/alc/PQ_LAUNDRY/sys/i386/i386/pmap.c	Sat Sep 10 17:00:08 2016	(r305687)
+++ user/alc/PQ_LAUNDRY/sys/i386/i386/pmap.c	Sat Sep 10 17:14:57 2016	(r305688)
@@ -4765,8 +4765,6 @@ retry:
 	rw_wunlock(&pvh_global_lock);
 }
 
-#define	PMAP_TS_REFERENCED_MAX	5
-
 /*
  *	pmap_ts_referenced:
  *
@@ -4775,10 +4773,6 @@ retry:
  *	is necessary that 0 only be returned when there are truly no
  *	reference bits set.
  *
- *	XXX: The exact number of bits to check and clear is a matter that
- *	should be tested and standardized at some point in the future for
- *	optimal aging of shared pages.
- *
  *	As an optimization, update the page's dirty field if a modified bit is
  *	found while counting reference bits.  This opportunistic update can be
  *	performed at low cost and can eliminate the need for some future calls

Modified: user/alc/PQ_LAUNDRY/sys/kern/kern_exit.c
==============================================================================
--- user/alc/PQ_LAUNDRY/sys/kern/kern_exit.c	Sat Sep 10 17:00:08 2016	(r305687)
+++ user/alc/PQ_LAUNDRY/sys/kern/kern_exit.c	Sat Sep 10 17:14:57 2016	(r305688)
@@ -723,9 +723,9 @@ sys_wait4(struct thread *td, struct wait
 	else
 		rup = NULL;
 	error = kern_wait(td, uap->pid, &status, uap->options, rup);
-	if (uap->status != NULL && error == 0)
+	if (uap->status != NULL && error == 0 && td->td_retval[0] != 0)
 		error = copyout(&status, uap->status, sizeof(status));
-	if (uap->rusage != NULL && error == 0)
+	if (uap->rusage != NULL && error == 0 && td->td_retval[0] != 0)
 		error = copyout(&ru, uap->rusage, sizeof(struct rusage));
 	return (error);
 }
@@ -759,9 +759,9 @@ sys_wait6(struct thread *td, struct wait
 	 */
 	error = kern_wait6(td, idtype, id, &status, uap->options, wrup, sip);
 
-	if (uap->status != NULL && error == 0)
+	if (uap->status != NULL && error == 0 && td->td_retval[0] != 0)
 		error = copyout(&status, uap->status, sizeof(status));
-	if (uap->wrusage != NULL && error == 0)
+	if (uap->wrusage != NULL && error == 0 && td->td_retval[0] != 0)
 		error = copyout(&wru, uap->wrusage, sizeof(wru));
 	if (uap->info != NULL && error == 0)
 		error = copyout(&si, uap->info, sizeof(si));

Modified: user/alc/PQ_LAUNDRY/sys/kern/subr_witness.c
==============================================================================
--- user/alc/PQ_LAUNDRY/sys/kern/subr_witness.c	Sat Sep 10 17:00:08 2016	(r305687)
+++ user/alc/PQ_LAUNDRY/sys/kern/subr_witness.c	Sat Sep 10 17:14:57 2016	(r305688)
@@ -623,6 +623,14 @@ static struct witness_order_list_entry o
 	{ "vnode interlock", &lock_class_mtx_sleep },
 	{ NULL, NULL },
 	/*
+	 * VFS namecache
+	 */
+	{ "ncglobal", &lock_class_rw },
+	{ "ncbuc", &lock_class_rw },
+	{ "vnode interlock", &lock_class_mtx_sleep },
+	{ "ncneg", &lock_class_mtx_sleep },
+	{ NULL, NULL },
+	/*
 	 * ZFS locking
 	 */
 	{ "dn->dn_mtx", &lock_class_sx },

Modified: user/alc/PQ_LAUNDRY/sys/kern/uipc_syscalls.c
==============================================================================
--- user/alc/PQ_LAUNDRY/sys/kern/uipc_syscalls.c	Sat Sep 10 17:00:08 2016	(r305687)
+++ user/alc/PQ_LAUNDRY/sys/kern/uipc_syscalls.c	Sat Sep 10 17:14:57 2016	(r305688)
@@ -1115,7 +1115,7 @@ orecvfrom(struct thread *td, struct recv
 
 #ifdef COMPAT_OLDSOCK
 int
-orecv(struct thread *td, struct orecv_args)
+orecv(struct thread *td, struct orecv_args *uap)
 {
 	struct msghdr msg;
 	struct iovec aiov;

Modified: user/alc/PQ_LAUNDRY/sys/kern/vfs_cache.c
==============================================================================
--- user/alc/PQ_LAUNDRY/sys/kern/vfs_cache.c	Sat Sep 10 17:00:08 2016	(r305687)
+++ user/alc/PQ_LAUNDRY/sys/kern/vfs_cache.c	Sat Sep 10 17:14:57 2016	(r305688)
@@ -51,6 +51,7 @@ __FBSDID("$FreeBSD$");
 #include <sys/proc.h>
 #include <sys/rwlock.h>
 #include <sys/sdt.h>
+#include <sys/smp.h>
 #include <sys/syscallsubr.h>
 #include <sys/sysctl.h>
 #include <sys/sysproto.h>
@@ -148,6 +149,23 @@ struct	namecache_ts {
  * Upon reaching the last segment of a path, if the reference
  * is for DELETE, or NOCACHE is set (rewrite), and the
  * name is located in the cache, it will be dropped.
+ *
+ * These locks are used (in the order in which they can be taken):
+ * NAME         TYPE    ROLE
+ * cache_lock   rwlock  global, needed for all modifications
+ * bucketlock   rwlock  for access to given hash bucket
+ * ncneg_mtx    mtx     negative entry LRU management
+ *
+ * A name -> vnode lookup can be safely performed by either locking cache_lock
+ * or the relevant hash bucket.
+ *
+ * ".." and vnode -> name lookups require cache_lock.
+ *
+ * Modifications require both cache_lock and relevant bucketlock taken for
+ * writing.
+ *
+ * Negative entry LRU management requires ncneg_mtx taken on top of either
+ * cache_lock or bucketlock.
  */
 
 /*
@@ -179,8 +197,9 @@ SYSCTL_UINT(_vfs, OID_AUTO, ncsizefactor
 struct nchstats	nchstats;		/* cache effectiveness statistics */
 
 static struct rwlock cache_lock;
-RW_SYSINIT(vfscache, &cache_lock, "Name Cache");
+RW_SYSINIT(vfscache, &cache_lock, "ncglobal");
 
+#define	CACHE_TRY_WLOCK()	rw_try_wlock(&cache_lock)
 #define	CACHE_UPGRADE_LOCK()	rw_try_upgrade(&cache_lock)
 #define	CACHE_RLOCK()		rw_rlock(&cache_lock)
 #define	CACHE_RUNLOCK()		rw_runlock(&cache_lock)
@@ -188,7 +207,12 @@ RW_SYSINIT(vfscache, &cache_lock, "Name 
 #define	CACHE_WUNLOCK()		rw_wunlock(&cache_lock)
 
 static struct mtx_padalign ncneg_mtx;
-MTX_SYSINIT(vfscache_neg, &ncneg_mtx, "Name Cache neg", MTX_DEF);
+MTX_SYSINIT(vfscache_neg, &ncneg_mtx, "ncneg", MTX_DEF);
+
+static u_int   numbucketlocks;
+static struct rwlock_padalign  *bucketlocks;
+#define	HASH2BUCKETLOCK(hash) \
+	((struct rwlock *)(&bucketlocks[((hash) % numbucketlocks)]))
 
 /*
  * UMA zones for the VFS cache.
@@ -307,6 +331,8 @@ STATNODE_COUNTER(numfullpathfail4, "Numb
 STATNODE_COUNTER(numfullpathfound, "Number of successful fullpath calls");
 static long numupgrades; STATNODE_ULONG(numupgrades,
     "Number of updates of the cache after lookup (write lock + retry)");
+static long zap_and_exit_bucket_fail; STATNODE_ULONG(zap_and_exit_bucket_fail,
+    "Number of times bucketlocked zap_and_exit case failed to writelock");
 
 static void cache_zap(struct namecache *ncp);
 static int vn_vptocnp_locked(struct vnode **vp, struct ucred *cred, char *buf,
@@ -326,6 +352,39 @@ cache_get_hash(char *name, u_char len, s
 	return (hash);
 }
 
+#ifdef INVARIANTS
+static void
+cache_assert_bucket_locked(struct namecache *ncp, int mode)
+{
+	struct rwlock *bucketlock;
+	uint32_t hash;
+
+	hash = cache_get_hash(nc_get_name(ncp), ncp->nc_nlen, ncp->nc_dvp);
+	bucketlock = HASH2BUCKETLOCK(hash);
+	rw_assert(bucketlock, mode);
+}
+#else
+#define cache_assert_bucket_locked(x, y) do { } while (0)
+#endif
+
+static void
+cache_lock_all_buckets(void)
+{
+	u_int i;
+
+	for (i = 0; i < numbucketlocks; i++)
+		rw_wlock(&bucketlocks[i]);
+}
+
+static void
+cache_unlock_all_buckets(void)
+{
+	u_int i;
+
+	for (i = 0; i < numbucketlocks; i++)
+		rw_wunlock(&bucketlocks[i]);
+}
+
 static int
 sysctl_nchstats(SYSCTL_HANDLER_ARGS)
 {
@@ -442,21 +501,13 @@ SYSCTL_PROC(_debug_hashstat, OID_AUTO, n
  * Negative entries management
  */
 static void
-cache_negative_hit(struct namecache *ncp, int wlocked)
+cache_negative_hit(struct namecache *ncp)
 {
 
-	if (!wlocked) {
-		rw_assert(&cache_lock, RA_RLOCKED);
-		mtx_lock(&ncneg_mtx);
-	} else {
-		rw_assert(&cache_lock, RA_WLOCKED);
-	}
-
+	mtx_lock(&ncneg_mtx);
 	TAILQ_REMOVE(&ncneg, ncp, nc_dst);
 	TAILQ_INSERT_TAIL(&ncneg, ncp, nc_dst);
-
-	if (!wlocked)
-		mtx_unlock(&ncneg_mtx);
+	mtx_unlock(&ncneg_mtx);
 }
 
 static void
@@ -464,9 +515,12 @@ cache_negative_insert(struct namecache *
 {
 
 	rw_assert(&cache_lock, RA_WLOCKED);
+	cache_assert_bucket_locked(ncp, RA_WLOCKED);
 	MPASS(ncp->nc_vp == NULL);
+	mtx_lock(&ncneg_mtx);
 	TAILQ_INSERT_TAIL(&ncneg, ncp, nc_dst);
 	numneg++;
+	mtx_unlock(&ncneg_mtx);
 }
 
 static void
@@ -474,9 +528,12 @@ cache_negative_remove(struct namecache *
 {
 
 	rw_assert(&cache_lock, RA_WLOCKED);
+	cache_assert_bucket_locked(ncp, RA_WLOCKED);
 	MPASS(ncp->nc_vp == NULL);
+	mtx_lock(&ncneg_mtx);
 	TAILQ_REMOVE(&ncneg, ncp, nc_dst);
 	numneg--;
+	mtx_unlock(&ncneg_mtx);
 }
 
 static struct namecache *
@@ -499,10 +556,11 @@ cache_negative_zap_one(void)
  *   pointer to a vnode or if it is just a negative cache entry.
  */
 static void
-cache_zap(struct namecache *ncp)
+cache_zap_locked(struct namecache *ncp)
 {
 
 	rw_assert(&cache_lock, RA_WLOCKED);
+	cache_assert_bucket_locked(ncp, RA_WLOCKED);
 	CTR2(KTR_VFS, "cache_zap(%p) vp %p", ncp, ncp->nc_vp);
 	if (ncp->nc_vp != NULL) {
 		SDT_PROBE3(vfs, namecache, zap, done, ncp->nc_dvp,
@@ -532,6 +590,21 @@ cache_zap(struct namecache *ncp)
 	numcache--;
 }
 
+static void
+cache_zap(struct namecache *ncp)
+{
+	struct rwlock *bucketlock;
+	uint32_t hash;
+
+	rw_assert(&cache_lock, RA_WLOCKED);
+
+	hash = cache_get_hash(nc_get_name(ncp), ncp->nc_nlen, ncp->nc_dvp);
+	bucketlock = HASH2BUCKETLOCK(hash);
+	rw_wlock(bucketlock);
+	cache_zap_locked(ncp);
+	rw_wunlock(bucketlock);
+}
+
 /*
  * Lookup an entry in the cache
  *
@@ -549,22 +622,42 @@ cache_zap(struct namecache *ncp)
  * not recursively acquired.
  */
 
+enum { UNLOCKED, WLOCKED, RLOCKED };
+
+static void
+cache_unlock(int cache_locked)
+{
+
+	switch (cache_locked) {
+	case UNLOCKED:
+		break;
+	case WLOCKED:
+		CACHE_WUNLOCK();
+		break;
+	case RLOCKED:
+		CACHE_RUNLOCK();
+		break;
+	}
+}
+
 int
 cache_lookup(struct vnode *dvp, struct vnode **vpp, struct componentname *cnp,
     struct timespec *tsp, int *ticksp)
 {
+	struct rwlock *bucketlock;
 	struct namecache *ncp;
 	uint32_t hash;
-	int error, ltype, wlocked;
+	int error, ltype, cache_locked;
 
 	if (!doingcache) {
 		cnp->cn_flags &= ~MAKEENTRY;
 		return (0);
 	}
 retry:
-	wlocked = 0;
-	counter_u64_add(numcalls, 1);
+	bucketlock = NULL;
+	cache_locked = UNLOCKED;
 	error = 0;
+	counter_u64_add(numcalls, 1);
 
 retry_wlocked:
 	if (cnp->cn_nameptr[0] == '.') {
@@ -598,17 +691,21 @@ retry_wlocked:
 			}
 			return (-1);
 		}
-		if (!wlocked)
-			CACHE_RLOCK();
 		if (cnp->cn_namelen == 2 && cnp->cn_nameptr[1] == '.') {
 			counter_u64_add(dotdothits, 1);
+			if (cache_locked == UNLOCKED) {
+				CACHE_RLOCK();
+				cache_locked = RLOCKED;
+			}
+
 			if (dvp->v_cache_dd == NULL) {
 				SDT_PROBE3(vfs, namecache, lookup, miss, dvp,
 				    "..", NULL);
 				goto unlock;
 			}
 			if ((cnp->cn_flags & MAKEENTRY) == 0) {
-				if (!wlocked && !CACHE_UPGRADE_LOCK())
+				if (cache_locked != WLOCKED &&
+				    !CACHE_UPGRADE_LOCK())
 					goto wlock;
 				ncp = NULL;
 				if (dvp->v_cache_dd->nc_flag & NCF_ISDOTDOT) {
@@ -639,10 +736,14 @@ retry_wlocked:
 				    nc_dotdottime;
 			goto success;
 		}
-	} else if (!wlocked)
-		CACHE_RLOCK();
+	}
 
 	hash = cache_get_hash(cnp->cn_nameptr, cnp->cn_namelen, dvp);
+	if (cache_locked == UNLOCKED) {
+		bucketlock = HASH2BUCKETLOCK(hash);
+		rw_rlock(bucketlock);
+	}
+
 	LIST_FOREACH(ncp, (NCHHASH(hash)), nc_hash) {
 		counter_u64_add(numchecks, 1);
 		if (ncp->nc_dvp == dvp && ncp->nc_nlen == cnp->cn_namelen &&
@@ -665,12 +766,7 @@ retry_wlocked:
 	/* We don't want to have an entry, so dump it */
 	if ((cnp->cn_flags & MAKEENTRY) == 0) {
 		counter_u64_add(numposzaps, 1);
-		if (!wlocked && !CACHE_UPGRADE_LOCK())
-			goto wlock;
-		cache_zap(ncp);
-		CACHE_WUNLOCK();
-		cache_free(ncp);
-		return (0);
+		goto zap_and_exit;
 	}
 
 	/* We found a "positive" match, return the vnode */
@@ -689,25 +785,20 @@ negative_success:
 	/* We found a negative match, and want to create it, so purge */
 	if (cnp->cn_nameiop == CREATE) {
 		counter_u64_add(numnegzaps, 1);
-		if (!wlocked && !CACHE_UPGRADE_LOCK())
-			goto wlock;
-		cache_zap(ncp);
-		CACHE_WUNLOCK();
-		cache_free(ncp);
-		return (0);
+		goto zap_and_exit;
 	}
 
 	counter_u64_add(numneghits, 1);
-	cache_negative_hit(ncp, wlocked);
+	cache_negative_hit(ncp);
 	if (ncp->nc_flag & NCF_WHITE)
 		cnp->cn_flags |= ISWHITEOUT;
 	SDT_PROBE2(vfs, namecache, lookup, hit__negative, dvp,
 	    nc_get_name(ncp));
 	cache_out_ts(ncp, tsp, ticksp);
-	if (wlocked)
-		CACHE_WUNLOCK();
-	else
-		CACHE_RUNLOCK();
+	MPASS(bucketlock != NULL || cache_locked != UNLOCKED);
+	if (bucketlock != NULL)
+		rw_runlock(bucketlock);
+	cache_unlock(cache_locked);
 	return (ENOENT);
 
 wlock:
@@ -716,9 +807,10 @@ wlock:
 	 * a write lock and retry the operation.
 	 */
 	CACHE_RUNLOCK();
+wlock_unlocked:
 	CACHE_WLOCK();
 	numupgrades++;
-	wlocked = 1;
+	cache_locked = WLOCKED;
 	goto retry_wlocked;
 
 success:
@@ -733,10 +825,10 @@ success:
 		VOP_UNLOCK(dvp, 0);
 	}
 	vhold(*vpp);
-	if (wlocked)
-		CACHE_WUNLOCK();
-	else
-		CACHE_RUNLOCK();
+	MPASS(bucketlock != NULL || cache_locked != UNLOCKED);
+	if (bucketlock != NULL)
+		rw_runlock(bucketlock);
+	cache_unlock(cache_locked);
 	error = vget(*vpp, cnp->cn_lkflags | LK_VNHELD, cnp->cn_thread);
 	if (cnp->cn_flags & ISDOTDOT) {
 		vn_lock(dvp, ltype | LK_RETRY);
@@ -758,10 +850,29 @@ success:
 	return (-1);
 
 unlock:
-	if (wlocked)
-		CACHE_WUNLOCK();
-	else
-		CACHE_RUNLOCK();
+	MPASS(bucketlock != NULL || cache_locked != UNLOCKED);
+	if (bucketlock != NULL)
+		rw_runlock(bucketlock);
+	cache_unlock(cache_locked);
+	return (0);
+
+zap_and_exit:
+	if (bucketlock != NULL) {
+		rw_assert(&cache_lock, RA_UNLOCKED);
+		if (!CACHE_TRY_WLOCK()) {
+			rw_runlock(bucketlock);
+			bucketlock = NULL;
+			zap_and_exit_bucket_fail++;
+			goto wlock_unlocked;
+		}
+		cache_locked = WLOCKED;
+		rw_runlock(bucketlock);
+		bucketlock = NULL;
+	} else if (cache_locked != WLOCKED && !CACHE_UPGRADE_LOCK())
+		goto wlock;
+	cache_zap(ncp);
+	CACHE_WUNLOCK();
+	cache_free(ncp);
 	return (0);
 }
 
@@ -772,6 +883,7 @@ void
 cache_enter_time(struct vnode *dvp, struct vnode *vp, struct componentname *cnp,
     struct timespec *tsp, struct timespec *dtsp)
 {
+	struct rwlock *bucketlock;
 	struct namecache *ncp, *n2, *ndd, *nneg;
 	struct namecache_ts *n3;
 	struct nchashhead *ncpp;
@@ -924,11 +1036,6 @@ cache_enter_time(struct vnode *dvp, stru
 		}
 	}
 
-	/*
-	 * Insert the new namecache entry into the appropriate chain
-	 * within the cache entries table.
-	 */
-	LIST_INSERT_HEAD(ncpp, ncp, nc_hash);
 	if (flag != NCF_ISDOTDOT) {
 		if (LIST_EMPTY(&dvp->v_cache_src)) {
 			vhold(dvp);
@@ -937,6 +1044,15 @@ cache_enter_time(struct vnode *dvp, stru
 		LIST_INSERT_HEAD(&dvp->v_cache_src, ncp, nc_src);
 	}
 
+	bucketlock = HASH2BUCKETLOCK(hash);
+	rw_wlock(bucketlock);
+
+	/*
+	 * Insert the new namecache entry into the appropriate chain
+	 * within the cache entries table.
+	 */
+	LIST_INSERT_HEAD(ncpp, ncp, nc_hash);
+
 	/*
 	 * If the entry is "negative", we place it into the
 	 * "negative" cache queue, otherwise, we place it into the
@@ -953,6 +1069,7 @@ cache_enter_time(struct vnode *dvp, stru
 		SDT_PROBE2(vfs, namecache, enter_negative, done, dvp,
 		    nc_get_name(ncp));
 	}
+	rw_wunlock(bucketlock);
 	if (numneg * ncnegfactor > numcache)
 		nneg = cache_negative_zap_one();
 	CACHE_WUNLOCK();
@@ -960,12 +1077,24 @@ cache_enter_time(struct vnode *dvp, stru
 	cache_free(nneg);
 }
 
+static u_int
+cache_roundup_2(u_int val)
+{
+	u_int res;
+
+	for (res = 1; res <= val; res <<= 1)
+		continue;
+
+	return (res);
+}
+
 /*
  * Name cache initialization, from vfs_init() when we are booting
  */
 static void
 nchinit(void *dummy __unused)
 {
+	u_int i;
 
 	TAILQ_INIT(&ncneg);
 
@@ -983,6 +1112,13 @@ nchinit(void *dummy __unused)
 	    NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_ZINIT);
 
 	nchashtbl = hashinit(desiredvnodes * 2, M_VFSCACHE, &nchash);
+	numbucketlocks = cache_roundup_2(mp_ncpus * 16);
+	if (numbucketlocks > nchash)
+		numbucketlocks = nchash;
+	bucketlocks = malloc(sizeof(*bucketlocks) * numbucketlocks, M_VFSCACHE,
+	    M_WAITOK | M_ZERO);
+	for (i = 0; i < numbucketlocks; i++)
+		rw_init_flags(&bucketlocks[i], "ncbuc", RW_DUPOK);
 
 	numcalls = counter_u64_alloc(M_WAITOK);
 	dothits = counter_u64_alloc(M_WAITOK);
@@ -1023,6 +1159,7 @@ cache_changesize(int newmaxvnodes)
 	 * because to do so, they have to be removed from the hash table.
 	 */
 	CACHE_WLOCK();
+	cache_lock_all_buckets();
 	old_nchashtbl = nchashtbl;
 	old_nchash = nchash;
 	nchashtbl = new_nchashtbl;
@@ -1035,6 +1172,7 @@ cache_changesize(int newmaxvnodes)
 			LIST_INSERT_HEAD(NCHHASH(hash), ncp, nc_hash);
 		}
 	}
+	cache_unlock_all_buckets();
 	CACHE_WUNLOCK();
 	free(old_nchashtbl, M_VFSCACHE);
 }
@@ -1108,20 +1246,30 @@ void
 cache_purgevfs(struct mount *mp)
 {
 	TAILQ_HEAD(, namecache) ncps;
-	struct nchashhead *ncpp;
+	struct rwlock *bucketlock;
+	struct nchashhead *bucket;
 	struct namecache *ncp, *nnp;
+	u_long i, j, n_nchash;
 
 	/* Scan hash tables for applicable entries */
 	SDT_PROBE1(vfs, namecache, purgevfs, done, mp);
 	TAILQ_INIT(&ncps);
 	CACHE_WLOCK();
-	for (ncpp = &nchashtbl[nchash]; ncpp >= nchashtbl; ncpp--) {
-		LIST_FOREACH_SAFE(ncp, ncpp, nc_hash, nnp) {
-			if (ncp->nc_dvp->v_mount != mp)
-				continue;
-			cache_zap(ncp);
-			TAILQ_INSERT_TAIL(&ncps, ncp, nc_dst);
+	n_nchash = nchash + 1;
+	for (i = 0; i < numbucketlocks; i++) {
+		bucketlock = (struct rwlock *)&bucketlocks[i];
+		rw_wlock(bucketlock);
+		for (j = i; j < n_nchash; j += numbucketlocks) {
+			bucket = &nchashtbl[j];
+			LIST_FOREACH_SAFE(ncp, bucket, nc_hash, nnp) {
+				cache_assert_bucket_locked(ncp, RA_WLOCKED);
+				if (ncp->nc_dvp->v_mount != mp)
+					continue;
+				cache_zap_locked(ncp);
+				TAILQ_INSERT_HEAD(&ncps, ncp, nc_dst);
+			}
 		}
+		rw_wunlock(bucketlock);
 	}
 	CACHE_WUNLOCK();
 	TAILQ_FOREACH_SAFE(ncp, &ncps, nc_dst, nnp) {

Modified: user/alc/PQ_LAUNDRY/sys/powerpc/booke/pmap.c
==============================================================================
--- user/alc/PQ_LAUNDRY/sys/powerpc/booke/pmap.c	Sat Sep 10 17:00:08 2016	(r305687)
+++ user/alc/PQ_LAUNDRY/sys/powerpc/booke/pmap.c	Sat Sep 10 17:14:57 2016	(r305688)
@@ -2499,9 +2499,13 @@ mmu_booke_clear_modify(mmu_t mmu, vm_pag
  * is necessary that 0 only be returned when there are truly no
  * reference bits set.
  *
- * XXX: The exact number of bits to check and clear is a matter that
- * should be tested and standardized at some point in the future for
- * optimal aging of shared pages.
+ * As an optimization, update the page's dirty field if a modified bit is
+ * found while counting reference bits.  This opportunistic update can be
+ * performed at low cost and can eliminate the need for some future calls
+ * to pmap_is_modified().  However, since this function stops after
+ * finding PMAP_TS_REFERENCED_MAX reference bits, it may not detect some
+ * dirty pages.  Those dirty pages will only be detected by a future call
+ * to pmap_is_modified().
  */
 static int
 mmu_booke_ts_referenced(mmu_t mmu, vm_page_t m)
@@ -2518,6 +2522,8 @@ mmu_booke_ts_referenced(mmu_t mmu, vm_pa
 		PMAP_LOCK(pv->pv_pmap);
 		if ((pte = pte_find(mmu, pv->pv_pmap, pv->pv_va)) != NULL &&
 		    PTE_ISVALID(pte)) {
+			if (PTE_ISMODIFIED(pte))
+				vm_page_dirty(m);
 			if (PTE_ISREFERENCED(pte)) {
 				mtx_lock_spin(&tlbivax_mutex);
 				tlb_miss_lock();
@@ -2528,7 +2534,7 @@ mmu_booke_ts_referenced(mmu_t mmu, vm_pa
 				tlb_miss_unlock();
 				mtx_unlock_spin(&tlbivax_mutex);
 
-				if (++count > 4) {
+				if (++count >= PMAP_TS_REFERENCED_MAX) {
 					PMAP_UNLOCK(pv->pv_pmap);
 					break;
 				}

Modified: user/alc/PQ_LAUNDRY/sys/powerpc/conf/MPC85XX
==============================================================================
--- user/alc/PQ_LAUNDRY/sys/powerpc/conf/MPC85XX	Sat Sep 10 17:00:08 2016	(r305687)
+++ user/alc/PQ_LAUNDRY/sys/powerpc/conf/MPC85XX	Sat Sep 10 17:14:57 2016	(r305688)
@@ -89,6 +89,7 @@ device		tun
 device		uart
 options 	USB_DEBUG	# enable debug msgs
 #device		uhci
+device		ehci
 device		umass
 device		usb
 device		vlan

Modified: user/alc/PQ_LAUNDRY/sys/riscv/riscv/pmap.c
==============================================================================
--- user/alc/PQ_LAUNDRY/sys/riscv/riscv/pmap.c	Sat Sep 10 17:00:08 2016	(r305687)
+++ user/alc/PQ_LAUNDRY/sys/riscv/riscv/pmap.c	Sat Sep 10 17:14:57 2016	(r305688)
@@ -2991,8 +2991,6 @@ safe_to_clear_referenced(pmap_t pmap, pt
 	return (FALSE);
 }
 
-#define	PMAP_TS_REFERENCED_MAX	5
-
 /*
  *	pmap_ts_referenced:
  *
@@ -3001,9 +2999,13 @@ safe_to_clear_referenced(pmap_t pmap, pt
  *	is necessary that 0 only be returned when there are truly no
  *	reference bits set.
  *
- *	XXX: The exact number of bits to check and clear is a matter that
- *	should be tested and standardized at some point in the future for
- *	optimal aging of shared pages.
+ *	As an optimization, update the page's dirty field if a modified bit is
+ *	found while counting reference bits.  This opportunistic update can be
+ *	performed at low cost and can eliminate the need for some future calls
+ *	to pmap_is_modified().  However, since this function stops after
+ *	finding PMAP_TS_REFERENCED_MAX reference bits, it may not detect some
+ *	dirty pages.  Those dirty pages will only be detected by a future call
+ *	to pmap_is_modified().
  */
 int
 pmap_ts_referenced(vm_page_t m)
@@ -3012,7 +3014,7 @@ pmap_ts_referenced(vm_page_t m)
 	pmap_t pmap;
 	struct rwlock *lock;
 	pd_entry_t *l2;
-	pt_entry_t *l3;
+	pt_entry_t *l3, old_l3;
 	vm_paddr_t pa;
 	int cleared, md_gen, not_cleared;
 	struct spglist free;
@@ -3050,15 +3052,18 @@ retry:
 		    ("pmap_ts_referenced: found an invalid l2 table"));
 
 		l3 = pmap_l2_to_l3(l2, pv->pv_va);
-		if ((pmap_load(l3) & PTE_A) != 0) {
-			if (safe_to_clear_referenced(pmap, pmap_load(l3))) {
+		old_l3 = pmap_load(l3);
+		if (pmap_page_dirty(old_l3))
+			vm_page_dirty(m);
+		if ((old_l3 & PTE_A) != 0) {
+			if (safe_to_clear_referenced(pmap, old_l3)) {
 				/*
 				 * TODO: We don't handle the access flag
 				 * at all. We need to be able to set it in
 				 * the exception handler.
 				 */
 				panic("RISCVTODO: safe_to_clear_referenced\n");
-			} else if ((pmap_load(l3) & PTE_SW_WIRED) == 0) {
+			} else if ((old_l3 & PTE_SW_WIRED) == 0) {
 				/*
 				 * Wired pages cannot be paged out so
 				 * doing accessed bit emulation for

Modified: user/alc/PQ_LAUNDRY/sys/sparc64/sparc64/pmap.c
==============================================================================
--- user/alc/PQ_LAUNDRY/sys/sparc64/sparc64/pmap.c	Sat Sep 10 17:00:08 2016	(r305687)
+++ user/alc/PQ_LAUNDRY/sys/sparc64/sparc64/pmap.c	Sat Sep 10 17:14:57 2016	(r305688)
@@ -2073,18 +2073,12 @@ pmap_page_is_mapped(vm_page_t m)
 	return (rv);
 }
 
-#define	PMAP_TS_REFERENCED_MAX	5
-
 /*
  * Return a count of reference bits for a page, clearing those bits.
  * It is not necessary for every reference bit to be cleared, but it
  * is necessary that 0 only be returned when there are truly no
  * reference bits set.
  *
- * XXX: The exact number of bits to check and clear is a matter that
- * should be tested and standardized at some point in the future for
- * optimal aging of shared pages.
- *
  * As an optimization, update the page's dirty field if a modified bit is
  * found while counting reference bits.  This opportunistic update can be
  * performed at low cost and can eliminate the need for some future calls

Modified: user/alc/PQ_LAUNDRY/sys/vm/pmap.h
==============================================================================
--- user/alc/PQ_LAUNDRY/sys/vm/pmap.h	Sat Sep 10 17:00:08 2016	(r305687)
+++ user/alc/PQ_LAUNDRY/sys/vm/pmap.h	Sat Sep 10 17:14:57 2016	(r305688)
@@ -104,6 +104,16 @@ extern vm_offset_t kernel_vm_end;
 #define	PMAP_ENTER_NOSLEEP	0x0100
 #define	PMAP_ENTER_WIRED	0x0200
 
+/*
+ * Define the maximum number of machine-dependent reference bits that are
+ * cleared by a call to pmap_ts_referenced().  This limit serves two purposes.
+ * First, it bounds the cost of reference bit maintenance on widely shared
+ * pages.  Second, it prevents numeric overflow during maintenance of a
+ * widely shared page's "act_count" field.  An overflow could result in the
+ * premature deactivation of the page.
+ */
+#define	PMAP_TS_REFERENCED_MAX	5
+
 void		 pmap_activate(struct thread *td);
 void		 pmap_advise(pmap_t pmap, vm_offset_t sva, vm_offset_t eva,
 		    int advice);

Modified: user/alc/PQ_LAUNDRY/tests/sys/kern/Makefile
==============================================================================
--- user/alc/PQ_LAUNDRY/tests/sys/kern/Makefile	Sat Sep 10 17:00:08 2016	(r305687)
+++ user/alc/PQ_LAUNDRY/tests/sys/kern/Makefile	Sat Sep 10 17:14:57 2016	(r305688)
@@ -12,6 +12,7 @@ PLAIN_TESTS_C+=	subr_unit_test
 ATF_TESTS_C+=	unix_seqpacket_test
 ATF_TESTS_C+=	unix_passfd_test
 TEST_METADATA.unix_seqpacket_test+=	timeout="15"
+ATF_TESTS_C+=	waitpid_nohang
 
 LIBADD.ptrace_test+=			pthread
 LIBADD.unix_seqpacket_test+=		pthread

Copied: user/alc/PQ_LAUNDRY/tests/sys/kern/waitpid_nohang.c (from r305685, head/tests/sys/kern/waitpid_nohang.c)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/alc/PQ_LAUNDRY/tests/sys/kern/waitpid_nohang.c	Sat Sep 10 17:14:57 2016	(r305688, copy of r305685, head/tests/sys/kern/waitpid_nohang.c)
@@ -0,0 +1,70 @@
+/*-
+ * Copyright (c) 2016 Jilles Tjoelker
+ * 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/wait.h>
+
+#include <atf-c.h>
+#include <signal.h>
+#include <unistd.h>
+
+ATF_TC_WITHOUT_HEAD(waitpid_nohang);
+ATF_TC_BODY(waitpid_nohang, tc)
+{
+	pid_t child, pid;
+	int status, r;
+
+	child = fork();
+	ATF_REQUIRE(child != -1);
+	if (child == 0) {
+		sleep(10);
+		_exit(1);
+	}
+
+	status = 42;
+	pid = waitpid(child, &status, WNOHANG);
+	ATF_REQUIRE(pid == 0);
+	ATF_CHECK(status == 42);
+
+	r = kill(child, SIGTERM);
+	ATF_REQUIRE(r == 0);
+	r = waitid(P_PID, child, NULL, WEXITED | WNOWAIT);
+	ATF_REQUIRE(r == 0);
+
+	status = -1;
+	pid = waitpid(child, &status, WNOHANG);
+	ATF_REQUIRE(pid == child);
+	ATF_CHECK(WIFSIGNALED(status) && WTERMSIG(status) == SIGTERM);
+}
+
+ATF_TP_ADD_TCS(tp)
+{
+
+	ATF_TP_ADD_TC(tp, waitpid_nohang);
+	return (atf_no_error());
+}