From owner-svn-src-projects@freebsd.org  Sun Jan 22 16:05:17 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3CFDDCBC7D1
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Sun, 22 Jan 2017 16:05:17 +0000 (UTC) (envelope-from dim@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id C2EB58BC;
 Sun, 22 Jan 2017 16:05:16 +0000 (UTC) (envelope-from dim@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0MG5GKk002984;
 Sun, 22 Jan 2017 16:05:16 GMT (envelope-from dim@FreeBSD.org)
Received: (from dim@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0MG5EoE002971;
 Sun, 22 Jan 2017 16:05:14 GMT (envelope-from dim@FreeBSD.org)
Message-Id: <201701221605.v0MG5EoE002971@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org
 using -f
From: Dimitry Andric <dim@FreeBSD.org>
Date: Sun, 22 Jan 2017 16:05:14 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r312624 - in projects/clang400-import: .
 cddl/usr.sbin/zfsd contrib/bsnmp/snmpd contrib/mdocml contrib/zlib etc/mtree
 gnu/usr.bin/gdb/gdbserver lib/csu/aarch64 lib/csu/amd64 lib/csu/arm...
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sun, 22 Jan 2017 16:05:17 -0000

Author: dim
Date: Sun Jan 22 16:05:13 2017
New Revision: 312624
URL: https://svnweb.freebsd.org/changeset/base/312624

Log:
  Merge ^/head r312309 through r312623.

Added:
  projects/clang400-import/contrib/mdocml/dba.c
     - copied unchanged from r312623, head/contrib/mdocml/dba.c
  projects/clang400-import/contrib/mdocml/dba.h
     - copied unchanged from r312623, head/contrib/mdocml/dba.h
  projects/clang400-import/contrib/mdocml/dba_array.c
     - copied unchanged from r312623, head/contrib/mdocml/dba_array.c
  projects/clang400-import/contrib/mdocml/dba_array.h
     - copied unchanged from r312623, head/contrib/mdocml/dba_array.h
  projects/clang400-import/contrib/mdocml/dba_read.c
     - copied unchanged from r312623, head/contrib/mdocml/dba_read.c
  projects/clang400-import/contrib/mdocml/dba_write.c
     - copied unchanged from r312623, head/contrib/mdocml/dba_write.c
  projects/clang400-import/contrib/mdocml/dba_write.h
     - copied unchanged from r312623, head/contrib/mdocml/dba_write.h
  projects/clang400-import/contrib/mdocml/dbm.c
     - copied unchanged from r312623, head/contrib/mdocml/dbm.c
  projects/clang400-import/contrib/mdocml/dbm.h
     - copied unchanged from r312623, head/contrib/mdocml/dbm.h
  projects/clang400-import/contrib/mdocml/dbm_map.c
     - copied unchanged from r312623, head/contrib/mdocml/dbm_map.c
  projects/clang400-import/contrib/mdocml/dbm_map.h
     - copied unchanged from r312623, head/contrib/mdocml/dbm_map.h
  projects/clang400-import/contrib/mdocml/test-EFTYPE.c
     - copied unchanged from r312623, head/contrib/mdocml/test-EFTYPE.c
  projects/clang400-import/contrib/mdocml/test-PATH_MAX.c
     - copied unchanged from r312623, head/contrib/mdocml/test-PATH_MAX.c
  projects/clang400-import/contrib/mdocml/test-be32toh.c
     - copied unchanged from r312623, head/contrib/mdocml/test-be32toh.c
  projects/clang400-import/contrib/mdocml/test-nanosleep.c
     - copied unchanged from r312623, head/contrib/mdocml/test-nanosleep.c
  projects/clang400-import/contrib/mdocml/test-ntohl.c
     - copied unchanged from r312623, head/contrib/mdocml/test-ntohl.c
  projects/clang400-import/contrib/mdocml/test-sandbox_init.c
     - copied unchanged from r312623, head/contrib/mdocml/test-sandbox_init.c
  projects/clang400-import/share/man/man4/mlx4ib.4
     - copied unchanged from r312623, head/share/man/man4/mlx4ib.4
  projects/clang400-import/usr.bin/cut/tests/cut2_test.sh
     - copied unchanged from r312623, head/usr.bin/cut/tests/cut2_test.sh
  projects/clang400-import/usr.bin/sed/tests/sed2_test.sh
     - copied unchanged from r312623, head/usr.bin/sed/tests/sed2_test.sh
Deleted:
  projects/clang400-import/contrib/mdocml/compat_sqlite3_errstr.c
  projects/clang400-import/contrib/mdocml/config.log
  projects/clang400-import/contrib/mdocml/mansearch_const.c
  projects/clang400-import/contrib/mdocml/test-mmap.c
  projects/clang400-import/contrib/mdocml/test-sqlite3.c
  projects/clang400-import/contrib/mdocml/test-sqlite3_errstr.c
Modified:
  projects/clang400-import/Makefile.inc1
  projects/clang400-import/cddl/usr.sbin/zfsd/case_file.cc
  projects/clang400-import/contrib/bsnmp/snmpd/trans_udp.c
  projects/clang400-import/contrib/bsnmp/snmpd/trans_udp.h
  projects/clang400-import/contrib/mdocml/INSTALL
  projects/clang400-import/contrib/mdocml/LICENSE
  projects/clang400-import/contrib/mdocml/Makefile
  projects/clang400-import/contrib/mdocml/Makefile.depend
  projects/clang400-import/contrib/mdocml/TODO
  projects/clang400-import/contrib/mdocml/cgi.c
  projects/clang400-import/contrib/mdocml/compat_fts.c
  projects/clang400-import/contrib/mdocml/compat_fts.h
  projects/clang400-import/contrib/mdocml/config.h
  projects/clang400-import/contrib/mdocml/configure
  projects/clang400-import/contrib/mdocml/configure.local.example
  projects/clang400-import/contrib/mdocml/demandoc.c
  projects/clang400-import/contrib/mdocml/eqn_html.c
  projects/clang400-import/contrib/mdocml/html.c
  projects/clang400-import/contrib/mdocml/html.h
  projects/clang400-import/contrib/mdocml/lib.in
  projects/clang400-import/contrib/mdocml/libmandoc.h
  projects/clang400-import/contrib/mdocml/main.c
  projects/clang400-import/contrib/mdocml/main.h
  projects/clang400-import/contrib/mdocml/makewhatis.8
  projects/clang400-import/contrib/mdocml/man.1
  projects/clang400-import/contrib/mdocml/man.c
  projects/clang400-import/contrib/mdocml/man.conf.5
  projects/clang400-import/contrib/mdocml/man_hash.c
  projects/clang400-import/contrib/mdocml/man_html.c
  projects/clang400-import/contrib/mdocml/man_macro.c
  projects/clang400-import/contrib/mdocml/man_term.c
  projects/clang400-import/contrib/mdocml/mandoc.1
  projects/clang400-import/contrib/mdocml/mandoc.3
  projects/clang400-import/contrib/mdocml/mandoc.css
  projects/clang400-import/contrib/mdocml/mandoc.db.5
  projects/clang400-import/contrib/mdocml/mandoc.h
  projects/clang400-import/contrib/mdocml/mandoc_aux.h
  projects/clang400-import/contrib/mdocml/mandoc_html.3
  projects/clang400-import/contrib/mdocml/mandocdb.c
  projects/clang400-import/contrib/mdocml/manpath.c
  projects/clang400-import/contrib/mdocml/mansearch.c
  projects/clang400-import/contrib/mdocml/mansearch.h
  projects/clang400-import/contrib/mdocml/mdoc.7
  projects/clang400-import/contrib/mdocml/mdoc.c
  projects/clang400-import/contrib/mdocml/mdoc_argv.c
  projects/clang400-import/contrib/mdocml/mdoc_hash.c
  projects/clang400-import/contrib/mdocml/mdoc_html.c
  projects/clang400-import/contrib/mdocml/mdoc_macro.c
  projects/clang400-import/contrib/mdocml/mdoc_man.c
  projects/clang400-import/contrib/mdocml/mdoc_state.c
  projects/clang400-import/contrib/mdocml/mdoc_term.c
  projects/clang400-import/contrib/mdocml/mdoc_validate.c
  projects/clang400-import/contrib/mdocml/read.c
  projects/clang400-import/contrib/mdocml/roff.c
  projects/clang400-import/contrib/mdocml/roff.h
  projects/clang400-import/contrib/mdocml/tag.c
  projects/clang400-import/contrib/mdocml/tbl_html.c
  projects/clang400-import/contrib/mdocml/term.c
  projects/clang400-import/contrib/mdocml/term_ascii.c
  projects/clang400-import/contrib/mdocml/term_ps.c
  projects/clang400-import/contrib/mdocml/test-fts.c
  projects/clang400-import/contrib/mdocml/test-ohash.c
  projects/clang400-import/contrib/mdocml/test-vasprintf.c
  projects/clang400-import/contrib/mdocml/test-wchar.c
  projects/clang400-import/contrib/mdocml/tree.c
  projects/clang400-import/contrib/zlib/ChangeLog
  projects/clang400-import/contrib/zlib/README
  projects/clang400-import/contrib/zlib/deflate.c
  projects/clang400-import/contrib/zlib/gzlib.c
  projects/clang400-import/contrib/zlib/gzwrite.c
  projects/clang400-import/contrib/zlib/inffast.c
  projects/clang400-import/contrib/zlib/inftrees.c
  projects/clang400-import/contrib/zlib/trees.c
  projects/clang400-import/contrib/zlib/zlib.3
  projects/clang400-import/contrib/zlib/zlib.h
  projects/clang400-import/contrib/zlib/zutil.c
  projects/clang400-import/etc/mtree/BSD.debug.dist
  projects/clang400-import/gnu/usr.bin/gdb/gdbserver/Makefile
  projects/clang400-import/lib/csu/aarch64/Makefile
  projects/clang400-import/lib/csu/amd64/Makefile
  projects/clang400-import/lib/csu/arm/Makefile
  projects/clang400-import/lib/csu/i386/Makefile
  projects/clang400-import/lib/csu/mips/Makefile
  projects/clang400-import/lib/csu/powerpc/Makefile
  projects/clang400-import/lib/csu/powerpc64/Makefile
  projects/clang400-import/lib/csu/riscv/Makefile
  projects/clang400-import/lib/csu/sparc64/Makefile
  projects/clang400-import/lib/libalias/libalias/Makefile
  projects/clang400-import/lib/libalias/modules/Makefile
  projects/clang400-import/lib/libalias/modules/Makefile.inc
  projects/clang400-import/lib/libarchive/Makefile
  projects/clang400-import/lib/libauditd/Makefile
  projects/clang400-import/lib/libbegemot/Makefile
  projects/clang400-import/lib/libblocksruntime/Makefile
  projects/clang400-import/lib/libbluetooth/Makefile
  projects/clang400-import/lib/libbsm/Makefile
  projects/clang400-import/lib/libbsnmp/libbsnmp/Makefile
  projects/clang400-import/lib/libbz2/Makefile
  projects/clang400-import/lib/libc/Makefile
  projects/clang400-import/lib/libc/aarch64/string/Makefile.inc
  projects/clang400-import/lib/libc/arm/aeabi/Makefile.inc
  projects/clang400-import/lib/libc/capability/Makefile.inc
  projects/clang400-import/lib/libc/gdtoa/Makefile.inc
  projects/clang400-import/lib/libc/gen/Makefile.inc
  projects/clang400-import/lib/libc/iconv/Makefile.inc
  projects/clang400-import/lib/libc/md/Makefile.inc
  projects/clang400-import/lib/libc/posix1e/Makefile.inc
  projects/clang400-import/lib/libc/regex/grot/Makefile
  projects/clang400-import/lib/libc/resolv/Makefile.inc
  projects/clang400-import/lib/libc/stdlib/jemalloc/Makefile.inc
  projects/clang400-import/lib/libc/stdtime/Makefile.inc
  projects/clang400-import/lib/libc/string/Makefile.inc
  projects/clang400-import/lib/libc/sys/Makefile.inc
  projects/clang400-import/lib/libc/sys/getsockopt.2
  projects/clang400-import/lib/libc/sys/shm_open.2
  projects/clang400-import/lib/libc/x86/sys/Makefile.inc
  projects/clang400-import/lib/libc/x86/sys/__vdso_gettc.c
  projects/clang400-import/lib/libc_nonshared/Makefile
  projects/clang400-import/lib/libcam/Makefile
  projects/clang400-import/lib/libcom_err/Makefile
  projects/clang400-import/lib/libcompat/Makefile
  projects/clang400-import/lib/libcrypt/Makefile
  projects/clang400-import/lib/libcxxrt/Makefile
  projects/clang400-import/lib/libdevdctl/tests/Makefile
  projects/clang400-import/lib/libdwarf/Makefile
  projects/clang400-import/lib/libelf/Makefile
  projects/clang400-import/lib/libevent/Makefile
  projects/clang400-import/lib/libexecinfo/Makefile
  projects/clang400-import/lib/libexpat/Makefile
  projects/clang400-import/lib/libgssapi/Makefile
  projects/clang400-import/lib/libiconv_modules/Makefile.inc
  projects/clang400-import/lib/libiconv_modules/mapper_parallel/Makefile
  projects/clang400-import/lib/libkiconv/Makefile
  projects/clang400-import/lib/libldns/Makefile
  projects/clang400-import/lib/liblzma/Makefile
  projects/clang400-import/lib/libmagic/Makefile
  projects/clang400-import/lib/libmd/Makefile
  projects/clang400-import/lib/libmilter/Makefile
  projects/clang400-import/lib/libmp/Makefile
  projects/clang400-import/lib/libngatm/Makefile
  projects/clang400-import/lib/libnv/Makefile
  projects/clang400-import/lib/libopie/Makefile
  projects/clang400-import/lib/libpam/libpam/Makefile
  projects/clang400-import/lib/libpam/modules/Makefile.inc
  projects/clang400-import/lib/libpam/modules/pam_passwdqc/Makefile
  projects/clang400-import/lib/libpam/modules/pam_ssh/Makefile
  projects/clang400-import/lib/libpam/static_libpam/Makefile
  projects/clang400-import/lib/libpcap/Makefile
  projects/clang400-import/lib/libpe/Makefile
  projects/clang400-import/lib/libproc/Makefile
  projects/clang400-import/lib/libprocstat/zfs/Makefile
  projects/clang400-import/lib/librpcsec_gss/Makefile
  projects/clang400-import/lib/librpcsvc/Makefile
  projects/clang400-import/lib/librt/Makefile
  projects/clang400-import/lib/libsbuf/Makefile
  projects/clang400-import/lib/libsm/Makefile
  projects/clang400-import/lib/libsmb/Makefile
  projects/clang400-import/lib/libsmdb/Makefile
  projects/clang400-import/lib/libsmutil/Makefile
  projects/clang400-import/lib/libsqlite3/Makefile
  projects/clang400-import/lib/libstdthreads/Makefile
  projects/clang400-import/lib/libsysdecode/Makefile
  projects/clang400-import/lib/libtelnet/Makefile
  projects/clang400-import/lib/libthr/Makefile
  projects/clang400-import/lib/libthr/support/Makefile.inc
  projects/clang400-import/lib/libthread_db/Makefile
  projects/clang400-import/lib/libufs/Makefile
  projects/clang400-import/lib/libulog/Makefile
  projects/clang400-import/lib/libunbound/Makefile
  projects/clang400-import/lib/libutil/Makefile
  projects/clang400-import/lib/libwrap/Makefile
  projects/clang400-import/lib/libypclnt/Makefile
  projects/clang400-import/lib/ncurses/config.mk
  projects/clang400-import/lib/ncurses/form/Makefile
  projects/clang400-import/lib/ncurses/formw/Makefile
  projects/clang400-import/lib/ncurses/menu/Makefile
  projects/clang400-import/lib/ncurses/menuw/Makefile
  projects/clang400-import/lib/ncurses/ncurses/Makefile
  projects/clang400-import/lib/ncurses/ncursesw/Makefile
  projects/clang400-import/lib/ncurses/panel/Makefile
  projects/clang400-import/lib/ncurses/panelw/Makefile
  projects/clang400-import/sbin/camcontrol/camcontrol.8
  projects/clang400-import/sbin/camcontrol/epc.c
  projects/clang400-import/sbin/camcontrol/persist.c
  projects/clang400-import/sbin/camcontrol/timestamp.c
  projects/clang400-import/sbin/devd/devd.cc
  projects/clang400-import/sbin/ifconfig/ifconfig.8
  projects/clang400-import/sbin/ifconfig/ifconfig.c
  projects/clang400-import/sbin/ifconfig/ifieee80211.c
  projects/clang400-import/sbin/restore/dirs.c
  projects/clang400-import/sbin/restore/extern.h
  projects/clang400-import/sbin/restore/tape.c
  projects/clang400-import/share/man/man4/Makefile
  projects/clang400-import/share/man/man4/mlx4en.4
  projects/clang400-import/share/man/man4/usb_quirk.4
  projects/clang400-import/share/man/man5/fs.5
  projects/clang400-import/share/man/man5/tmpfs.5
  projects/clang400-import/share/man/man7/arch.7
  projects/clang400-import/share/mk/bsd.README
  projects/clang400-import/share/mk/bsd.snmpmod.mk
  projects/clang400-import/sys/amd64/amd64/pmap.c
  projects/clang400-import/sys/amd64/cloudabi32/cloudabi32_sysvec.c
  projects/clang400-import/sys/amd64/cloudabi64/cloudabi64_sysvec.c
  projects/clang400-import/sys/amd64/include/cpufunc.h
  projects/clang400-import/sys/amd64/vmm/vmm_dev.c
  projects/clang400-import/sys/arm/arm/pmap-v6.c
  projects/clang400-import/sys/arm/cloudabi32/cloudabi32_sysvec.c
  projects/clang400-import/sys/arm/include/pcpu.h
  projects/clang400-import/sys/arm/ti/cpsw/if_cpsw.c
  projects/clang400-import/sys/arm/ti/cpsw/if_cpswreg.h
  projects/clang400-import/sys/arm/ti/cpsw/if_cpswvar.h
  projects/clang400-import/sys/arm/xilinx/zy7_ehci.c
  projects/clang400-import/sys/arm64/cloudabi64/cloudabi64_sysvec.c
  projects/clang400-import/sys/boot/efi/include/efidevp.h
  projects/clang400-import/sys/boot/efi/libefi/devpath.c
  projects/clang400-import/sys/boot/efi/libefi/efinet.c
  projects/clang400-import/sys/boot/efi/libefi/efipart.c
  projects/clang400-import/sys/boot/fdt/dts/arm/ufw.dts
  projects/clang400-import/sys/boot/fdt/dts/mips/beri-netfpga.dts
  projects/clang400-import/sys/boot/fdt/dts/mips/beri-sim.dts
  projects/clang400-import/sys/boot/fdt/dts/mips/beripad-de4.dts
  projects/clang400-import/sys/boot/fdt/dts/mips/beripad-sockit.dts
  projects/clang400-import/sys/cam/ata/ata_da.c
  projects/clang400-import/sys/cam/ctl/ctl.c
  projects/clang400-import/sys/cam/ctl/ctl.h
  projects/clang400-import/sys/cam/ctl/ctl_backend.c
  projects/clang400-import/sys/cam/ctl/ctl_backend.h
  projects/clang400-import/sys/cam/ctl/ctl_backend_block.c
  projects/clang400-import/sys/cam/ctl/ctl_backend_ramdisk.c
  projects/clang400-import/sys/cam/ctl/ctl_frontend.c
  projects/clang400-import/sys/cam/ctl/ctl_frontend.h
  projects/clang400-import/sys/cam/ctl/ctl_frontend_cam_sim.c
  projects/clang400-import/sys/cam/ctl/ctl_frontend_ioctl.c
  projects/clang400-import/sys/cam/ctl/ctl_frontend_iscsi.c
  projects/clang400-import/sys/cam/ctl/ctl_io.h
  projects/clang400-import/sys/cam/ctl/ctl_private.h
  projects/clang400-import/sys/cam/ctl/ctl_tpc.c
  projects/clang400-import/sys/cam/ctl/ctl_tpc_local.c
  projects/clang400-import/sys/cam/ctl/scsi_ctl.c
  projects/clang400-import/sys/cam/scsi/scsi_all.h
  projects/clang400-import/sys/cam/scsi/scsi_da.c
  projects/clang400-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c
  projects/clang400-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c
  projects/clang400-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_pool.h
  projects/clang400-import/sys/cddl/dev/fbt/arm/fbt_isa.c
  projects/clang400-import/sys/compat/cloudabi/cloudabi_file.c
  projects/clang400-import/sys/compat/cloudabi/cloudabi_mem.c
  projects/clang400-import/sys/compat/cloudabi/cloudabi_proc.c
  projects/clang400-import/sys/compat/cloudabi/cloudabi_random.c
  projects/clang400-import/sys/compat/cloudabi/cloudabi_sock.c
  projects/clang400-import/sys/compat/cloudabi32/cloudabi32_fd.c
  projects/clang400-import/sys/compat/cloudabi32/cloudabi32_poll.c
  projects/clang400-import/sys/compat/cloudabi32/cloudabi32_proto.h
  projects/clang400-import/sys/compat/cloudabi32/cloudabi32_sock.c
  projects/clang400-import/sys/compat/cloudabi32/cloudabi32_syscall.h
  projects/clang400-import/sys/compat/cloudabi32/cloudabi32_syscalls.c
  projects/clang400-import/sys/compat/cloudabi32/cloudabi32_sysent.c
  projects/clang400-import/sys/compat/cloudabi32/cloudabi32_systrace_args.c
  projects/clang400-import/sys/compat/cloudabi32/cloudabi32_thread.c
  projects/clang400-import/sys/compat/cloudabi64/cloudabi64_fd.c
  projects/clang400-import/sys/compat/cloudabi64/cloudabi64_poll.c
  projects/clang400-import/sys/compat/cloudabi64/cloudabi64_proto.h
  projects/clang400-import/sys/compat/cloudabi64/cloudabi64_sock.c
  projects/clang400-import/sys/compat/cloudabi64/cloudabi64_syscall.h
  projects/clang400-import/sys/compat/cloudabi64/cloudabi64_syscalls.c
  projects/clang400-import/sys/compat/cloudabi64/cloudabi64_sysent.c
  projects/clang400-import/sys/compat/cloudabi64/cloudabi64_systrace_args.c
  projects/clang400-import/sys/compat/cloudabi64/cloudabi64_thread.c
  projects/clang400-import/sys/conf/Makefile.powerpc
  projects/clang400-import/sys/conf/NOTES
  projects/clang400-import/sys/conf/config.mk
  projects/clang400-import/sys/conf/files
  projects/clang400-import/sys/conf/kern.opts.mk
  projects/clang400-import/sys/conf/kern.pre.mk
  projects/clang400-import/sys/conf/options
  projects/clang400-import/sys/contrib/cloudabi/cloudabi32_types.h
  projects/clang400-import/sys/contrib/cloudabi/cloudabi64_types.h
  projects/clang400-import/sys/contrib/cloudabi/cloudabi_types_common.h
  projects/clang400-import/sys/contrib/cloudabi/syscalls32.master
  projects/clang400-import/sys/contrib/cloudabi/syscalls64.master
  projects/clang400-import/sys/contrib/dev/acpica/changes.txt
  projects/clang400-import/sys/contrib/dev/acpica/common/acfileio.c
  projects/clang400-import/sys/contrib/dev/acpica/common/acgetline.c
  projects/clang400-import/sys/contrib/dev/acpica/common/adfile.c
  projects/clang400-import/sys/contrib/dev/acpica/common/adisasm.c
  projects/clang400-import/sys/contrib/dev/acpica/common/adwalk.c
  projects/clang400-import/sys/contrib/dev/acpica/common/ahids.c
  projects/clang400-import/sys/contrib/dev/acpica/common/ahpredef.c
  projects/clang400-import/sys/contrib/dev/acpica/common/ahtable.c
  projects/clang400-import/sys/contrib/dev/acpica/common/ahuuids.c
  projects/clang400-import/sys/contrib/dev/acpica/common/cmfsize.c
  projects/clang400-import/sys/contrib/dev/acpica/common/dmextern.c
  projects/clang400-import/sys/contrib/dev/acpica/common/dmrestag.c
  projects/clang400-import/sys/contrib/dev/acpica/common/dmtable.c
  projects/clang400-import/sys/contrib/dev/acpica/common/dmtables.c
  projects/clang400-import/sys/contrib/dev/acpica/common/dmtbdump.c
  projects/clang400-import/sys/contrib/dev/acpica/common/dmtbinfo.c
  projects/clang400-import/sys/contrib/dev/acpica/common/getopt.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslanalyze.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslascii.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslbtypes.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslcodegen.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslcompile.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslcompiler.h
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslcompiler.l
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslcstyle.y
  projects/clang400-import/sys/contrib/dev/acpica/compiler/asldebug.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/asldefine.h
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslerror.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslexternal.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslfileio.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslfiles.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslfold.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslglobal.h
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslhelp.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslhelpers.y
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslhex.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslkeywords.y
  projects/clang400-import/sys/contrib/dev/acpica/compiler/asllength.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/asllisting.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/asllistsup.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslload.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/asllookup.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslmain.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslmap.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslmapenter.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslmapoutput.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslmaputils.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslmessages.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslmessages.h
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslmethod.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslnamesp.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/asloffset.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslopcodes.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/asloperands.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslopt.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/asloptions.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslparser.y
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslpld.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslpredef.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslprepkg.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslprimaries.y
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslprintf.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslprune.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslresource.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslresources.y
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslrestype1.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslrestype1i.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslrestype2.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslrestype2d.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslrestype2e.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslrestype2q.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslrestype2s.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslrestype2w.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslrules.y
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslstartup.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslstubs.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslsupport.l
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslsupport.y
  projects/clang400-import/sys/contrib/dev/acpica/compiler/asltokens.y
  projects/clang400-import/sys/contrib/dev/acpica/compiler/asltransform.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/asltree.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/asltypes.h
  projects/clang400-import/sys/contrib/dev/acpica/compiler/asltypes.y
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslutils.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/asluuid.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslwalks.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslxref.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/aslxrefout.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/dtcompile.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/dtcompiler.h
  projects/clang400-import/sys/contrib/dev/acpica/compiler/dtexpress.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/dtfield.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/dtio.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/dtparser.l
  projects/clang400-import/sys/contrib/dev/acpica/compiler/dtparser.y
  projects/clang400-import/sys/contrib/dev/acpica/compiler/dtsubtable.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/dttable.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/dttable1.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/dttable2.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/dttemplate.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/dttemplate.h
  projects/clang400-import/sys/contrib/dev/acpica/compiler/dtutils.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/preprocess.h
  projects/clang400-import/sys/contrib/dev/acpica/compiler/prexpress.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/prmacros.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/prparser.l
  projects/clang400-import/sys/contrib/dev/acpica/compiler/prparser.y
  projects/clang400-import/sys/contrib/dev/acpica/compiler/prscan.c
  projects/clang400-import/sys/contrib/dev/acpica/compiler/prutils.c
  projects/clang400-import/sys/contrib/dev/acpica/components/debugger/dbcmds.c
  projects/clang400-import/sys/contrib/dev/acpica/components/debugger/dbconvert.c
  projects/clang400-import/sys/contrib/dev/acpica/components/debugger/dbdisply.c
  projects/clang400-import/sys/contrib/dev/acpica/components/debugger/dbexec.c
  projects/clang400-import/sys/contrib/dev/acpica/components/debugger/dbfileio.c
  projects/clang400-import/sys/contrib/dev/acpica/components/debugger/dbhistry.c
  projects/clang400-import/sys/contrib/dev/acpica/components/debugger/dbinput.c
  projects/clang400-import/sys/contrib/dev/acpica/components/debugger/dbmethod.c
  projects/clang400-import/sys/contrib/dev/acpica/components/debugger/dbnames.c
  projects/clang400-import/sys/contrib/dev/acpica/components/debugger/dbobject.c
  projects/clang400-import/sys/contrib/dev/acpica/components/debugger/dbstats.c
  projects/clang400-import/sys/contrib/dev/acpica/components/debugger/dbtest.c
  projects/clang400-import/sys/contrib/dev/acpica/components/debugger/dbutils.c
  projects/clang400-import/sys/contrib/dev/acpica/components/debugger/dbxface.c
  projects/clang400-import/sys/contrib/dev/acpica/components/disassembler/dmbuffer.c
  projects/clang400-import/sys/contrib/dev/acpica/components/disassembler/dmcstyle.c
  projects/clang400-import/sys/contrib/dev/acpica/components/disassembler/dmdeferred.c
  projects/clang400-import/sys/contrib/dev/acpica/components/disassembler/dmnames.c
  projects/clang400-import/sys/contrib/dev/acpica/components/disassembler/dmopcode.c
  projects/clang400-import/sys/contrib/dev/acpica/components/disassembler/dmresrc.c
  projects/clang400-import/sys/contrib/dev/acpica/components/disassembler/dmresrcl.c
  projects/clang400-import/sys/contrib/dev/acpica/components/disassembler/dmresrcl2.c
  projects/clang400-import/sys/contrib/dev/acpica/components/disassembler/dmresrcs.c
  projects/clang400-import/sys/contrib/dev/acpica/components/disassembler/dmutils.c
  projects/clang400-import/sys/contrib/dev/acpica/components/disassembler/dmwalk.c
  projects/clang400-import/sys/contrib/dev/acpica/components/dispatcher/dsargs.c
  projects/clang400-import/sys/contrib/dev/acpica/components/dispatcher/dscontrol.c
  projects/clang400-import/sys/contrib/dev/acpica/components/dispatcher/dsdebug.c
  projects/clang400-import/sys/contrib/dev/acpica/components/dispatcher/dsfield.c
  projects/clang400-import/sys/contrib/dev/acpica/components/dispatcher/dsinit.c
  projects/clang400-import/sys/contrib/dev/acpica/components/dispatcher/dsmethod.c
  projects/clang400-import/sys/contrib/dev/acpica/components/dispatcher/dsmthdat.c
  projects/clang400-import/sys/contrib/dev/acpica/components/dispatcher/dsobject.c
  projects/clang400-import/sys/contrib/dev/acpica/components/dispatcher/dsopcode.c
  projects/clang400-import/sys/contrib/dev/acpica/components/dispatcher/dsutils.c
  projects/clang400-import/sys/contrib/dev/acpica/components/dispatcher/dswexec.c
  projects/clang400-import/sys/contrib/dev/acpica/components/dispatcher/dswload.c
  projects/clang400-import/sys/contrib/dev/acpica/components/dispatcher/dswload2.c
  projects/clang400-import/sys/contrib/dev/acpica/components/dispatcher/dswscope.c
  projects/clang400-import/sys/contrib/dev/acpica/components/dispatcher/dswstate.c
  projects/clang400-import/sys/contrib/dev/acpica/components/events/evevent.c
  projects/clang400-import/sys/contrib/dev/acpica/components/events/evglock.c
  projects/clang400-import/sys/contrib/dev/acpica/components/events/evgpe.c
  projects/clang400-import/sys/contrib/dev/acpica/components/events/evgpeblk.c
  projects/clang400-import/sys/contrib/dev/acpica/components/events/evgpeinit.c
  projects/clang400-import/sys/contrib/dev/acpica/components/events/evgpeutil.c
  projects/clang400-import/sys/contrib/dev/acpica/components/events/evhandler.c
  projects/clang400-import/sys/contrib/dev/acpica/components/events/evmisc.c
  projects/clang400-import/sys/contrib/dev/acpica/components/events/evregion.c
  projects/clang400-import/sys/contrib/dev/acpica/components/events/evrgnini.c
  projects/clang400-import/sys/contrib/dev/acpica/components/events/evsci.c
  projects/clang400-import/sys/contrib/dev/acpica/components/events/evxface.c
  projects/clang400-import/sys/contrib/dev/acpica/components/events/evxfevnt.c
  projects/clang400-import/sys/contrib/dev/acpica/components/events/evxfgpe.c
  projects/clang400-import/sys/contrib/dev/acpica/components/events/evxfregn.c
  projects/clang400-import/sys/contrib/dev/acpica/components/executer/exconcat.c
  projects/clang400-import/sys/contrib/dev/acpica/components/executer/exconfig.c
  projects/clang400-import/sys/contrib/dev/acpica/components/executer/exconvrt.c
  projects/clang400-import/sys/contrib/dev/acpica/components/executer/excreate.c
  projects/clang400-import/sys/contrib/dev/acpica/components/executer/exdebug.c
  projects/clang400-import/sys/contrib/dev/acpica/components/executer/exdump.c
  projects/clang400-import/sys/contrib/dev/acpica/components/executer/exfield.c
  projects/clang400-import/sys/contrib/dev/acpica/components/executer/exfldio.c
  projects/clang400-import/sys/contrib/dev/acpica/components/executer/exmisc.c
  projects/clang400-import/sys/contrib/dev/acpica/components/executer/exmutex.c
  projects/clang400-import/sys/contrib/dev/acpica/components/executer/exnames.c
  projects/clang400-import/sys/contrib/dev/acpica/components/executer/exoparg1.c
  projects/clang400-import/sys/contrib/dev/acpica/components/executer/exoparg2.c
  projects/clang400-import/sys/contrib/dev/acpica/components/executer/exoparg3.c
  projects/clang400-import/sys/contrib/dev/acpica/components/executer/exoparg6.c
  projects/clang400-import/sys/contrib/dev/acpica/components/executer/exprep.c
  projects/clang400-import/sys/contrib/dev/acpica/components/executer/exregion.c
  projects/clang400-import/sys/contrib/dev/acpica/components/executer/exresnte.c
  projects/clang400-import/sys/contrib/dev/acpica/components/executer/exresolv.c
  projects/clang400-import/sys/contrib/dev/acpica/components/executer/exresop.c
  projects/clang400-import/sys/contrib/dev/acpica/components/executer/exstore.c
  projects/clang400-import/sys/contrib/dev/acpica/components/executer/exstoren.c
  projects/clang400-import/sys/contrib/dev/acpica/components/executer/exstorob.c
  projects/clang400-import/sys/contrib/dev/acpica/components/executer/exsystem.c
  projects/clang400-import/sys/contrib/dev/acpica/components/executer/extrace.c
  projects/clang400-import/sys/contrib/dev/acpica/components/executer/exutils.c
  projects/clang400-import/sys/contrib/dev/acpica/components/hardware/hwacpi.c
  projects/clang400-import/sys/contrib/dev/acpica/components/hardware/hwesleep.c
  projects/clang400-import/sys/contrib/dev/acpica/components/hardware/hwgpe.c
  projects/clang400-import/sys/contrib/dev/acpica/components/hardware/hwpci.c
  projects/clang400-import/sys/contrib/dev/acpica/components/hardware/hwregs.c
  projects/clang400-import/sys/contrib/dev/acpica/components/hardware/hwsleep.c
  projects/clang400-import/sys/contrib/dev/acpica/components/hardware/hwtimer.c
  projects/clang400-import/sys/contrib/dev/acpica/components/hardware/hwvalid.c
  projects/clang400-import/sys/contrib/dev/acpica/components/hardware/hwxface.c
  projects/clang400-import/sys/contrib/dev/acpica/components/hardware/hwxfsleep.c
  projects/clang400-import/sys/contrib/dev/acpica/components/namespace/nsaccess.c
  projects/clang400-import/sys/contrib/dev/acpica/components/namespace/nsalloc.c
  projects/clang400-import/sys/contrib/dev/acpica/components/namespace/nsarguments.c
  projects/clang400-import/sys/contrib/dev/acpica/components/namespace/nsconvert.c
  projects/clang400-import/sys/contrib/dev/acpica/components/namespace/nsdump.c
  projects/clang400-import/sys/contrib/dev/acpica/components/namespace/nsdumpdv.c
  projects/clang400-import/sys/contrib/dev/acpica/components/namespace/nseval.c
  projects/clang400-import/sys/contrib/dev/acpica/components/namespace/nsinit.c
  projects/clang400-import/sys/contrib/dev/acpica/components/namespace/nsload.c
  projects/clang400-import/sys/contrib/dev/acpica/components/namespace/nsnames.c
  projects/clang400-import/sys/contrib/dev/acpica/components/namespace/nsobject.c
  projects/clang400-import/sys/contrib/dev/acpica/components/namespace/nsparse.c
  projects/clang400-import/sys/contrib/dev/acpica/components/namespace/nspredef.c
  projects/clang400-import/sys/contrib/dev/acpica/components/namespace/nsprepkg.c
  projects/clang400-import/sys/contrib/dev/acpica/components/namespace/nsrepair.c
  projects/clang400-import/sys/contrib/dev/acpica/components/namespace/nsrepair2.c
  projects/clang400-import/sys/contrib/dev/acpica/components/namespace/nssearch.c
  projects/clang400-import/sys/contrib/dev/acpica/components/namespace/nsutils.c
  projects/clang400-import/sys/contrib/dev/acpica/components/namespace/nswalk.c
  projects/clang400-import/sys/contrib/dev/acpica/components/namespace/nsxfeval.c
  projects/clang400-import/sys/contrib/dev/acpica/components/namespace/nsxfname.c
  projects/clang400-import/sys/contrib/dev/acpica/components/namespace/nsxfobj.c
  projects/clang400-import/sys/contrib/dev/acpica/components/parser/psargs.c
  projects/clang400-import/sys/contrib/dev/acpica/components/parser/psloop.c
  projects/clang400-import/sys/contrib/dev/acpica/components/parser/psobject.c
  projects/clang400-import/sys/contrib/dev/acpica/components/parser/psopcode.c
  projects/clang400-import/sys/contrib/dev/acpica/components/parser/psopinfo.c
  projects/clang400-import/sys/contrib/dev/acpica/components/parser/psparse.c
  projects/clang400-import/sys/contrib/dev/acpica/components/parser/psscope.c
  projects/clang400-import/sys/contrib/dev/acpica/components/parser/pstree.c
  projects/clang400-import/sys/contrib/dev/acpica/components/parser/psutils.c
  projects/clang400-import/sys/contrib/dev/acpica/components/parser/pswalk.c
  projects/clang400-import/sys/contrib/dev/acpica/components/parser/psxface.c
  projects/clang400-import/sys/contrib/dev/acpica/components/resources/rsaddr.c
  projects/clang400-import/sys/contrib/dev/acpica/components/resources/rscalc.c
  projects/clang400-import/sys/contrib/dev/acpica/components/resources/rscreate.c
  projects/clang400-import/sys/contrib/dev/acpica/components/resources/rsdump.c
  projects/clang400-import/sys/contrib/dev/acpica/components/resources/rsdumpinfo.c
  projects/clang400-import/sys/contrib/dev/acpica/components/resources/rsinfo.c
  projects/clang400-import/sys/contrib/dev/acpica/components/resources/rsio.c
  projects/clang400-import/sys/contrib/dev/acpica/components/resources/rsirq.c
  projects/clang400-import/sys/contrib/dev/acpica/components/resources/rslist.c
  projects/clang400-import/sys/contrib/dev/acpica/components/resources/rsmemory.c
  projects/clang400-import/sys/contrib/dev/acpica/components/resources/rsmisc.c
  projects/clang400-import/sys/contrib/dev/acpica/components/resources/rsserial.c
  projects/clang400-import/sys/contrib/dev/acpica/components/resources/rsutils.c
  projects/clang400-import/sys/contrib/dev/acpica/components/resources/rsxface.c
  projects/clang400-import/sys/contrib/dev/acpica/components/tables/tbdata.c
  projects/clang400-import/sys/contrib/dev/acpica/components/tables/tbfadt.c
  projects/clang400-import/sys/contrib/dev/acpica/components/tables/tbfind.c
  projects/clang400-import/sys/contrib/dev/acpica/components/tables/tbinstal.c
  projects/clang400-import/sys/contrib/dev/acpica/components/tables/tbprint.c
  projects/clang400-import/sys/contrib/dev/acpica/components/tables/tbutils.c
  projects/clang400-import/sys/contrib/dev/acpica/components/tables/tbxface.c
  projects/clang400-import/sys/contrib/dev/acpica/components/tables/tbxfload.c
  projects/clang400-import/sys/contrib/dev/acpica/components/tables/tbxfroot.c
  projects/clang400-import/sys/contrib/dev/acpica/components/utilities/utaddress.c
  projects/clang400-import/sys/contrib/dev/acpica/components/utilities/utalloc.c
  projects/clang400-import/sys/contrib/dev/acpica/components/utilities/utascii.c
  projects/clang400-import/sys/contrib/dev/acpica/components/utilities/utbuffer.c
  projects/clang400-import/sys/contrib/dev/acpica/components/utilities/utcache.c
  projects/clang400-import/sys/contrib/dev/acpica/components/utilities/utcopy.c
  projects/clang400-import/sys/contrib/dev/acpica/components/utilities/utdebug.c
  projects/clang400-import/sys/contrib/dev/acpica/components/utilities/utdecode.c
  projects/clang400-import/sys/contrib/dev/acpica/components/utilities/utdelete.c
  projects/clang400-import/sys/contrib/dev/acpica/components/utilities/uterror.c
  projects/clang400-import/sys/contrib/dev/acpica/components/utilities/uteval.c
  projects/clang400-import/sys/contrib/dev/acpica/components/utilities/utexcep.c
  projects/clang400-import/sys/contrib/dev/acpica/components/utilities/utglobal.c
  projects/clang400-import/sys/contrib/dev/acpica/components/utilities/uthex.c
  projects/clang400-import/sys/contrib/dev/acpica/components/utilities/utids.c
  projects/clang400-import/sys/contrib/dev/acpica/components/utilities/utinit.c
  projects/clang400-import/sys/contrib/dev/acpica/components/utilities/utlock.c
  projects/clang400-import/sys/contrib/dev/acpica/components/utilities/utmath.c
  projects/clang400-import/sys/contrib/dev/acpica/components/utilities/utmisc.c
  projects/clang400-import/sys/contrib/dev/acpica/components/utilities/utmutex.c
  projects/clang400-import/sys/contrib/dev/acpica/components/utilities/utnonansi.c
  projects/clang400-import/sys/contrib/dev/acpica/components/utilities/utobject.c
  projects/clang400-import/sys/contrib/dev/acpica/components/utilities/utosi.c
  projects/clang400-import/sys/contrib/dev/acpica/components/utilities/utownerid.c
  projects/clang400-import/sys/contrib/dev/acpica/components/utilities/utpredef.c
  projects/clang400-import/sys/contrib/dev/acpica/components/utilities/utresrc.c
  projects/clang400-import/sys/contrib/dev/acpica/components/utilities/utstate.c
  projects/clang400-import/sys/contrib/dev/acpica/components/utilities/utstring.c
  projects/clang400-import/sys/contrib/dev/acpica/components/utilities/utstrtoul64.c
  projects/clang400-import/sys/contrib/dev/acpica/components/utilities/uttrack.c
  projects/clang400-import/sys/contrib/dev/acpica/components/utilities/utuuid.c
  projects/clang400-import/sys/contrib/dev/acpica/components/utilities/utxface.c
  projects/clang400-import/sys/contrib/dev/acpica/components/utilities/utxferror.c
  projects/clang400-import/sys/contrib/dev/acpica/components/utilities/utxfinit.c
  projects/clang400-import/sys/contrib/dev/acpica/components/utilities/utxfmutex.c
  projects/clang400-import/sys/contrib/dev/acpica/include/acapps.h
  projects/clang400-import/sys/contrib/dev/acpica/include/acbuffer.h
  projects/clang400-import/sys/contrib/dev/acpica/include/acclib.h
  projects/clang400-import/sys/contrib/dev/acpica/include/accommon.h
  projects/clang400-import/sys/contrib/dev/acpica/include/acconfig.h
  projects/clang400-import/sys/contrib/dev/acpica/include/acdebug.h
  projects/clang400-import/sys/contrib/dev/acpica/include/acdisasm.h
  projects/clang400-import/sys/contrib/dev/acpica/include/acdispat.h
  projects/clang400-import/sys/contrib/dev/acpica/include/acevents.h
  projects/clang400-import/sys/contrib/dev/acpica/include/acexcep.h
  projects/clang400-import/sys/contrib/dev/acpica/include/acglobal.h
  projects/clang400-import/sys/contrib/dev/acpica/include/achware.h
  projects/clang400-import/sys/contrib/dev/acpica/include/acinterp.h
  projects/clang400-import/sys/contrib/dev/acpica/include/aclocal.h
  projects/clang400-import/sys/contrib/dev/acpica/include/acmacros.h
  projects/clang400-import/sys/contrib/dev/acpica/include/acnames.h
  projects/clang400-import/sys/contrib/dev/acpica/include/acnamesp.h
  projects/clang400-import/sys/contrib/dev/acpica/include/acobject.h
  projects/clang400-import/sys/contrib/dev/acpica/include/acopcode.h
  projects/clang400-import/sys/contrib/dev/acpica/include/acoutput.h
  projects/clang400-import/sys/contrib/dev/acpica/include/acparser.h
  projects/clang400-import/sys/contrib/dev/acpica/include/acpi.h
  projects/clang400-import/sys/contrib/dev/acpica/include/acpiosxf.h
  projects/clang400-import/sys/contrib/dev/acpica/include/acpixf.h
  projects/clang400-import/sys/contrib/dev/acpica/include/acpredef.h
  projects/clang400-import/sys/contrib/dev/acpica/include/acresrc.h
  projects/clang400-import/sys/contrib/dev/acpica/include/acrestyp.h
  projects/clang400-import/sys/contrib/dev/acpica/include/acstruct.h
  projects/clang400-import/sys/contrib/dev/acpica/include/actables.h
  projects/clang400-import/sys/contrib/dev/acpica/include/actbl.h
  projects/clang400-import/sys/contrib/dev/acpica/include/actbl1.h
  projects/clang400-import/sys/contrib/dev/acpica/include/actbl2.h
  projects/clang400-import/sys/contrib/dev/acpica/include/actbl3.h
  projects/clang400-import/sys/contrib/dev/acpica/include/actypes.h
  projects/clang400-import/sys/contrib/dev/acpica/include/acutils.h
  projects/clang400-import/sys/contrib/dev/acpica/include/acuuid.h
  projects/clang400-import/sys/contrib/dev/acpica/include/amlcode.h
  projects/clang400-import/sys/contrib/dev/acpica/include/amlresrc.h
  projects/clang400-import/sys/contrib/dev/acpica/include/platform/acenv.h
  projects/clang400-import/sys/contrib/dev/acpica/include/platform/acenvex.h
  projects/clang400-import/sys/contrib/dev/acpica/include/platform/acfreebsd.h
  projects/clang400-import/sys/contrib/dev/acpica/include/platform/acgcc.h
  projects/clang400-import/sys/contrib/dev/acpica/include/platform/acgccex.h
  projects/clang400-import/sys/contrib/dev/acpica/os_specific/service_layers/osgendbg.c
  projects/clang400-import/sys/contrib/dev/acpica/os_specific/service_layers/osunixxf.c
  projects/clang400-import/sys/dev/ath/if_ath.c
  projects/clang400-import/sys/dev/ath/if_ath_tx_ht.c
  projects/clang400-import/sys/dev/cxgbe/tom/t4_listen.c
  projects/clang400-import/sys/dev/e1000/e1000_82575.c
  projects/clang400-import/sys/dev/e1000/e1000_82575.h
  projects/clang400-import/sys/dev/e1000/e1000_defines.h
  projects/clang400-import/sys/dev/e1000/e1000_ich8lan.c
  projects/clang400-import/sys/dev/e1000/if_em.c
  projects/clang400-import/sys/dev/e1000/if_em.h
  projects/clang400-import/sys/dev/ixgbe/if_ix.c
  projects/clang400-import/sys/dev/mlx5/cq.h
  projects/clang400-import/sys/dev/mlx5/mlx5_core/mlx5_cq.c
  projects/clang400-import/sys/dev/mlx5/mlx5_en/en.h
  projects/clang400-import/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c
  projects/clang400-import/sys/dev/mlx5/mlx5_en/mlx5_en_main.c
  projects/clang400-import/sys/dev/mlx5/mlx5_en/mlx5_en_tx.c
  projects/clang400-import/sys/dev/mlx5/mlx5_ifc.h
  projects/clang400-import/sys/dev/mpr/mpr_sas.c
  projects/clang400-import/sys/dev/mpr/mpr_table.c
  projects/clang400-import/sys/dev/mpr/mpr_table.h
  projects/clang400-import/sys/dev/mpr/mprvar.h
  projects/clang400-import/sys/dev/mps/mps_sas.c
  projects/clang400-import/sys/dev/mps/mps_table.c
  projects/clang400-import/sys/dev/mps/mps_table.h
  projects/clang400-import/sys/dev/mps/mpsvar.h
  projects/clang400-import/sys/dev/rtwn/if_rtwn.c
  projects/clang400-import/sys/dev/rtwn/if_rtwn_rx.c
  projects/clang400-import/sys/dev/rtwn/if_rtwn_rx.h
  projects/clang400-import/sys/dev/rtwn/if_rtwnvar.h
  projects/clang400-import/sys/dev/rtwn/pci/rtwn_pci_rx.c
  projects/clang400-import/sys/dev/rtwn/rtl8188e/r88e.h
  projects/clang400-import/sys/dev/rtwn/rtl8188e/r88e_rx.c
  projects/clang400-import/sys/dev/rtwn/rtl8188e/usb/r88eu_attach.c
  projects/clang400-import/sys/dev/rtwn/rtl8192c/pci/r92ce_attach.c
  projects/clang400-import/sys/dev/rtwn/rtl8192c/r92c.h
  projects/clang400-import/sys/dev/rtwn/rtl8192c/r92c_reg.h
  projects/clang400-import/sys/dev/rtwn/rtl8192c/r92c_rx.c
  projects/clang400-import/sys/dev/rtwn/rtl8192c/r92c_rx_desc.h
  projects/clang400-import/sys/dev/rtwn/rtl8192c/usb/r92cu_attach.c
  projects/clang400-import/sys/dev/rtwn/rtl8812a/r12a.h
  projects/clang400-import/sys/dev/rtwn/rtl8812a/r12a_rx.c
  projects/clang400-import/sys/dev/rtwn/rtl8812a/r12a_rx_desc.h
  projects/clang400-import/sys/dev/rtwn/rtl8812a/r12a_tx.c
  projects/clang400-import/sys/dev/rtwn/rtl8812a/usb/r12au_attach.c
  projects/clang400-import/sys/dev/rtwn/rtl8821a/usb/r21au_attach.c
  projects/clang400-import/sys/dev/rtwn/usb/rtwn_usb_rx.c
  projects/clang400-import/sys/dev/sdhci/sdhci_fdt_gpio.c
  projects/clang400-import/sys/dev/sound/usb/uaudio.c
  projects/clang400-import/sys/dev/usb/controller/xhci.c
  projects/clang400-import/sys/dev/usb/controller/xhci.h
  projects/clang400-import/sys/dev/usb/controller/xhci_pci.c
  projects/clang400-import/sys/dev/usb/quirk/usb_quirk.c
  projects/clang400-import/sys/dev/usb/quirk/usb_quirk.h
  projects/clang400-import/sys/dev/usb/usbdevs
  projects/clang400-import/sys/fs/tmpfs/tmpfs.h
  projects/clang400-import/sys/fs/tmpfs/tmpfs_subr.c
  projects/clang400-import/sys/fs/tmpfs/tmpfs_vfsops.c
  projects/clang400-import/sys/fs/tmpfs/tmpfs_vnops.c
  projects/clang400-import/sys/fs/tmpfs/tmpfs_vnops.h
  projects/clang400-import/sys/geom/multipath/g_multipath.c
  projects/clang400-import/sys/i386/cloudabi32/cloudabi32_sysvec.c
  projects/clang400-import/sys/i386/i386/pmap.c
  projects/clang400-import/sys/i386/include/cpufunc.h
  projects/clang400-import/sys/kern/imgact_elf.c
  projects/clang400-import/sys/kern/kern_clocksource.c
  projects/clang400-import/sys/kern/kern_ktrace.c
  projects/clang400-import/sys/kern/kern_racct.c
  projects/clang400-import/sys/kern/kern_rwlock.c
  projects/clang400-import/sys/kern/kern_sx.c
  projects/clang400-import/sys/kern/kern_synch.c
  projects/clang400-import/sys/kern/sched_4bsd.c
  projects/clang400-import/sys/kern/sched_ule.c
  projects/clang400-import/sys/kern/uipc_socket.c
  projects/clang400-import/sys/kern/vfs_subr.c
  projects/clang400-import/sys/kern/vfs_vnops.c
  projects/clang400-import/sys/mips/conf/std.MALTA
  projects/clang400-import/sys/modules/ath/Makefile
  projects/clang400-import/sys/modules/if_lagg/Makefile
  projects/clang400-import/sys/modules/if_vlan/Makefile
  projects/clang400-import/sys/net/ieee8023ad_lacp.c
  projects/clang400-import/sys/net/ieee8023ad_lacp.h
  projects/clang400-import/sys/net/if.h
  projects/clang400-import/sys/net/if_dead.c
  projects/clang400-import/sys/net/if_lagg.c
  projects/clang400-import/sys/net/if_media.c
  projects/clang400-import/sys/net/if_var.h
  projects/clang400-import/sys/net/if_vlan.c
  projects/clang400-import/sys/net80211/_ieee80211.h
  projects/clang400-import/sys/net80211/ieee80211.h
  projects/clang400-import/sys/net80211/ieee80211_ht.c
  projects/clang400-import/sys/net80211/ieee80211_ioctl.c
  projects/clang400-import/sys/net80211/ieee80211_node.h
  projects/clang400-import/sys/net80211/ieee80211_var.h
  projects/clang400-import/sys/netgraph/ng_mppc.c
  projects/clang400-import/sys/netinet/in_pcb.c
  projects/clang400-import/sys/netinet/in_pcb.h
  projects/clang400-import/sys/netinet/ip_output.c
  projects/clang400-import/sys/netinet6/ip6_output.c
  projects/clang400-import/sys/netpfil/ipfw/ip_fw_private.h
  projects/clang400-import/sys/powerpc/aim/trap_subr32.S
  projects/clang400-import/sys/powerpc/include/frame.h
  projects/clang400-import/sys/powerpc/mpc85xx/fsl_diu.c
  projects/clang400-import/sys/powerpc/powerpc/trap.c
  projects/clang400-import/sys/sys/cdefs.h
  projects/clang400-import/sys/sys/elf32.h
  projects/clang400-import/sys/sys/elf64.h
  projects/clang400-import/sys/sys/elf_common.h
  projects/clang400-import/sys/sys/extattr.h
  projects/clang400-import/sys/sys/gtaskqueue.h
  projects/clang400-import/sys/sys/mbuf.h
  projects/clang400-import/sys/sys/rwlock.h
  projects/clang400-import/sys/sys/socket.h
  projects/clang400-import/sys/sys/socketvar.h
  projects/clang400-import/sys/sys/sx.h
  projects/clang400-import/sys/ufs/ffs/ffs_vnops.c
  projects/clang400-import/sys/ufs/ufs/extattr.h
  projects/clang400-import/tools/tools/ath/athalq/ar9300_ds.c
  projects/clang400-import/tools/tools/ath/athalq/ar9300_ds.h
  projects/clang400-import/tools/tools/ath/athalq/main.c
  projects/clang400-import/usr.bin/cut/tests/Makefile
  projects/clang400-import/usr.bin/iscsictl/iscsictl.c
  projects/clang400-import/usr.bin/iscsictl/iscsictl.h
  projects/clang400-import/usr.bin/mandoc/Makefile
  projects/clang400-import/usr.bin/mandoc/Makefile.depend
  projects/clang400-import/usr.bin/sed/tests/Makefile
  projects/clang400-import/usr.sbin/bsnmpd/modules/Makefile
  projects/clang400-import/usr.sbin/bsnmpd/modules/snmp_hostres/Makefile
  projects/clang400-import/usr.sbin/bsnmpd/modules/snmp_mibII/Makefile
  projects/clang400-import/usr.sbin/camdd/camdd.c
  projects/clang400-import/usr.sbin/ctld/pdu.c
  projects/clang400-import/usr.sbin/iscsid/pdu.c
Directory Properties:
  projects/clang400-import/   (props changed)
  projects/clang400-import/cddl/   (props changed)
  projects/clang400-import/contrib/mdocml/   (props changed)
  projects/clang400-import/contrib/zlib/   (props changed)
  projects/clang400-import/gnu/usr.bin/gdb/   (props changed)
  projects/clang400-import/sys/cddl/contrib/opensolaris/   (props changed)
  projects/clang400-import/sys/contrib/dev/acpica/   (props changed)

Modified: projects/clang400-import/Makefile.inc1
==============================================================================
--- projects/clang400-import/Makefile.inc1	Sun Jan 22 15:35:51 2017	(r312623)
+++ projects/clang400-import/Makefile.inc1	Sun Jan 22 16:05:13 2017	(r312624)
@@ -1694,11 +1694,10 @@ _kerberos5_bootstrap_tools= \
 .endif
 
 # r283777 makewhatis(1) replaced with mandoc version which builds a database.
-.if ${MK_MANDOCDB} != "no" && ${BOOTSTRAPPING} < 1100075
+.if ${MK_MANDOCDB} != "no"
 _libopenbsd?=	lib/libopenbsd
-_makewhatis=	lib/libsqlite3 \
-		usr.bin/mandoc
-${_bt}-usr.bin/mandoc: ${_bt}-lib/libopenbsd ${_bt}-lib/libsqlite3
+_makewhatis=	usr.bin/mandoc
+${_bt}-usr.bin/mandoc: ${_bt}-lib/libopenbsd
 .endif
 
 bootstrap-tools: .PHONY

Modified: projects/clang400-import/cddl/usr.sbin/zfsd/case_file.cc
==============================================================================
--- projects/clang400-import/cddl/usr.sbin/zfsd/case_file.cc	Sun Jan 22 15:35:51 2017	(r312623)
+++ projects/clang400-import/cddl/usr.sbin/zfsd/case_file.cc	Sun Jan 22 16:05:13 2017	(r312624)
@@ -656,8 +656,11 @@ CaseFile::DeSerializeFile(const char *fi
 		uint64_t vdevGUID;
 		nvlist_t *vdevConf;
 
-		sscanf(fileName, "pool_%" PRIu64 "_vdev_%" PRIu64 ".case",
-		       &poolGUID, &vdevGUID);
+		if (sscanf(fileName, "pool_%" PRIu64 "_vdev_%" PRIu64 ".case",
+		       &poolGUID, &vdevGUID) != 2) {
+			throw ZfsdException("CaseFile::DeSerialize: "
+			    "Unintelligible CaseFile filename %s.\n", fileName);
+		}
 		existingCaseFile = Find(Guid(poolGUID), Guid(vdevGUID));
 		if (existingCaseFile != NULL) {
 			/*

Modified: projects/clang400-import/contrib/bsnmp/snmpd/trans_udp.c
==============================================================================
--- projects/clang400-import/contrib/bsnmp/snmpd/trans_udp.c	Sun Jan 22 15:35:51 2017	(r312623)
+++ projects/clang400-import/contrib/bsnmp/snmpd/trans_udp.c	Sun Jan 22 16:05:13 2017	(r312624)
@@ -34,6 +34,7 @@
 #include <sys/queue.h>
 #include <sys/ucred.h>
 
+#include <stdbool.h>
 #include <stdlib.h>
 #include <syslog.h>
 #include <string.h>
@@ -119,13 +120,15 @@ udp_init_port(struct tport *tp)
 	addr.sin_port = htons(p->port);
 	addr.sin_family = AF_INET;
 	addr.sin_len = sizeof(addr);
-	if (addr.sin_addr.s_addr == INADDR_ANY &&
-	    setsockopt(p->input.fd, IPPROTO_IP, IP_RECVDSTADDR, &on,
-	    sizeof(on)) == -1) {
-		syslog(LOG_ERR, "setsockopt(IP_RECVDSTADDR): %m");
-		close(p->input.fd);
-		p->input.fd = -1;
-		return (SNMP_ERR_GENERR);
+	if (addr.sin_addr.s_addr == INADDR_ANY) {
+		if (setsockopt(p->input.fd, IPPROTO_IP, IP_RECVDSTADDR, &on,
+		    sizeof(on)) == -1) {
+			syslog(LOG_ERR, "setsockopt(IP_RECVDSTADDR): %m");
+			close(p->input.fd);
+			p->input.fd = -1;
+			return (SNMP_ERR_GENERR);
+		}
+		p->recvdstaddr = true;
 	}
 	if (bind(p->input.fd, (struct sockaddr *)&addr, sizeof(addr))) {
 		if (errno == EADDRNOTAVAIL) {
@@ -218,7 +221,6 @@ udp_send(struct tport *tp, const u_char 
 {
 	struct udp_port *p = (struct udp_port *)tp;
 	struct cmsghdr *cmsg;
-	struct in_addr *src_addr;
 	struct msghdr msg;
 	char cbuf[CMSG_SPACE(sizeof(struct in_addr))];
 	struct iovec iov;
@@ -231,15 +233,20 @@ udp_send(struct tport *tp, const u_char 
 	msg.msg_iovlen = 1;
 	msg.msg_name = __DECONST(void *, addr);
 	msg.msg_namelen = addrlen;
-	msg.msg_control = cbuf;
-	msg.msg_controllen = sizeof(cbuf);
 
-	cmsg = CMSG_FIRSTHDR(&msg);
-	cmsg->cmsg_level = IPPROTO_IP;
-	cmsg->cmsg_type = IP_SENDSRCADDR;
-	cmsg->cmsg_len = CMSG_LEN(sizeof(struct in_addr));
-	src_addr = (struct in_addr *)(void*)CMSG_DATA(cmsg);
-	memcpy(src_addr, &p->recv_addr, sizeof(struct in_addr));
+	if (p->recvdstaddr) {
+		msg.msg_control = cbuf;
+		msg.msg_controllen = sizeof(cbuf);
+
+		cmsg = CMSG_FIRSTHDR(&msg);
+		cmsg->cmsg_level = IPPROTO_IP;
+		cmsg->cmsg_type = IP_SENDSRCADDR;
+		cmsg->cmsg_len = CMSG_LEN(sizeof(struct in_addr));
+		memcpy(CMSG_DATA(cmsg), &p->dstaddr, sizeof(struct in_addr));
+	} else {
+		msg.msg_control = NULL;
+		msg.msg_controllen = 0;
+	}
 
 	return (sendmsg(p->input.fd, &msg, 0));
 }
@@ -260,11 +267,12 @@ check_priv_dgram(struct port_input *pi, 
  * Each receive should return one datagram.
  */
 static ssize_t
-recv_dgram(struct port_input *pi, struct in_addr *laddr)
+udp_recv(struct tport *tp, struct port_input *pi)
 {
 	u_char embuf[1000];
 	char cbuf[CMSG_SPACE(SOCKCREDSIZE(CMGROUP_MAX)) +
 	    CMSG_SPACE(sizeof(struct in_addr))];
+	struct udp_port *p = (struct udp_port *)tp;
 	struct msghdr msg;
 	struct iovec iov[1];
 	ssize_t len;
@@ -316,7 +324,8 @@ recv_dgram(struct port_input *pi, struct
 	    cmsg = CMSG_NXTHDR(&msg, cmsg)) {
 		if (cmsg->cmsg_level == IPPROTO_IP &&
 		    cmsg->cmsg_type == IP_RECVDSTADDR)
-			memcpy(laddr, CMSG_DATA(cmsg), sizeof(struct in_addr));
+			memcpy(&p->dstaddr, CMSG_DATA(cmsg),
+			    sizeof(struct in_addr));
 		if (cmsg->cmsg_level == SOL_SOCKET &&
 		    cmsg->cmsg_type == SCM_CREDS)
 			cred = (struct sockcred *)CMSG_DATA(cmsg);
@@ -329,42 +338,6 @@ recv_dgram(struct port_input *pi, struct
 }
 
 /*
- * Receive something
- */
-static ssize_t
-udp_recv(struct tport *tp, struct port_input *pi)
-{
-	struct udp_port *p = (struct udp_port *)tp;
-	struct cmsghdr *cmsgp;
-	struct in_addr *laddr;
-	struct msghdr msg;
-	char cbuf[CMSG_SPACE(sizeof(struct in_addr))];
-	ssize_t ret;
-
-	memset(cbuf, 0, sizeof(cbuf));
-
-	msg.msg_control = cbuf;
-	msg.msg_controllen = sizeof(cbuf);
-
-	cmsgp = CMSG_FIRSTHDR(&msg);
-	cmsgp->cmsg_len = CMSG_LEN(sizeof(struct in_addr));
-	cmsgp->cmsg_level = IPPROTO_IP;
-	cmsgp->cmsg_type = IP_SENDSRCADDR;
-	laddr = (struct in_addr *)CMSG_DATA(cmsgp);
-
-	ret = recv_dgram(pi, laddr);
-
-	memcpy(&p->recv_addr, laddr, sizeof(struct in_addr));
-
-	if (laddr->s_addr == INADDR_ANY) {
-		msg.msg_control = NULL;
-		msg.msg_controllen = 0;
-	}
-
-	return (ret);
-}
-
-/*
  * Port table
  */
 int

Modified: projects/clang400-import/contrib/bsnmp/snmpd/trans_udp.h
==============================================================================
--- projects/clang400-import/contrib/bsnmp/snmpd/trans_udp.h	Sun Jan 22 15:35:51 2017	(r312623)
+++ projects/clang400-import/contrib/bsnmp/snmpd/trans_udp.h	Sun Jan 22 16:05:13 2017	(r312624)
@@ -39,7 +39,9 @@ struct udp_port {
 	struct port_input input;	/* common input stuff */
 
 	struct sockaddr_in ret;		/* the return address */
-	struct in_addr recv_addr;	/* the address the request was sent to */
+
+	bool		recvdstaddr;	/* IP_RECVDSTADDR is on */
+	struct in_addr	dstaddr;	/* address the request was sent to */
 };
 
 /* argument for open call */

Modified: projects/clang400-import/contrib/mdocml/INSTALL
==============================================================================
--- projects/clang400-import/contrib/mdocml/INSTALL	Sun Jan 22 15:35:51 2017	(r312623)
+++ projects/clang400-import/contrib/mdocml/INSTALL	Sun Jan 22 16:05:13 2017	(r312624)
@@ -1,4 +1,4 @@
-$Id: INSTALL,v 1.15 2016/07/14 11:09:06 schwarze Exp $
+$Id: INSTALL,v 1.17 2016/07/19 22:40:33 schwarze Exp $
 
 About mdocml, the portable mandoc distribution
 ----------------------------------------------
@@ -35,7 +35,11 @@ To install mandoc manually, the followin
 command "echo BUILD_CGI=1 > configure.local".  Then run "cp
 cgi.h.examples cgi.h" and edit cgi.h as desired.
 
-2. Run "./configure".
+2. Define MANPATH_DEFAULT in configure.local
+if /usr/share/man:/usr/X11R6/man:/usr/local/man is not appropriate
+for your operating system.
+
+3. Run "./configure".
 This script attempts autoconfiguration of mandoc for your system.
 Read both its standard output and the file "Makefile.local" it
 generates.  If anything looks wrong or different from what you
@@ -45,28 +49,21 @@ result seems right to you.
 On Solaris 10 and earlier, you may have to run "ksh ./configure"
 because the native /bin/sh lacks some POSIX features.
 
-3. Run "make".
+4. Run "make".
 Any POSIX-compatible make, in particular both BSD make and GNU make,
 should work.  If the build fails, look at "configure.local.example"
 and go back to step 2.
 
-4. Run "make -n install" and check whether everything will be
+5. Run "make -n install" and check whether everything will be
 installed to the intended places.  Otherwise, put some *DIR or *NM*
-variables into "configure.local" and go back to step 2.
+variables into "configure.local" and go back to step 3.
 
-5. Run "sudo make install".  If you intend to build a binary
+6. Run "sudo make install".  If you intend to build a binary
 package using some kind of fake root mechanism, you may need a
 command like "make DESTDIR=... install".  Read the *-install targets
 in the "Makefile" to understand how DESTDIR is used.
 
-6. If you want to use the integrated man(1) and your system uses
-manpath(1), make sure it is configured correctly, in particular,
-it returns all directory trees where manual pages are installed.
-Otherwise, if your system uses man.conf(5), make sure it contains
-a "manpath" line for each directory tree, and the order of these
-lines meets your wishes.
-
-7. If you compiled with database support, run the command "sudo
+7. Run the command "sudo
 makewhatis" to build mandoc.db(5) databases in all the directory
 trees configured in step 6.  Whenever installing new manual pages,
 re-run makewhatis(8) to update the databases, or apropos(1) will
@@ -84,20 +81,9 @@ manual page source.
 
 Understanding mandoc dependencies
 ---------------------------------
-The mandoc(1), man(1), and demandoc(1) utilities only depend
-on the zlib library for decompressing gzipped manual pages,
-but makewhatis(8) and apropos(1) depend on the following
-additional software:
-
-1. The SQLite database system, see <http://sqlite.org/>.
-The recommended version of SQLite is 3.8.4.3 or newer.  The mandoc
-toolset is known to work with version 3.7.5 or newer.  Versions
-older than 3.8.3 may not achieve full performance due to the
-missing SQLITE_DETERMINISTIC optimization flag.  Versions older
-than 3.8.0 may not show full error information if opening a database
-fails due to the missing sqlite3_errstr() API.  Both are very minor
-problems, apropos(1) is fully usable with SQLite 3.7.5.  Versions
-older than 3.7.5 may or may not work, they have not been tested.
+The following libraries are required:
+
+1. zlib for decompressing gzipped manual pages.
 
 2. The fts(3) directory traversion functions.
 If your system does not have them, the bundled compatibility version

Modified: projects/clang400-import/contrib/mdocml/LICENSE
==============================================================================
--- projects/clang400-import/contrib/mdocml/LICENSE	Sun Jan 22 15:35:51 2017	(r312623)
+++ projects/clang400-import/contrib/mdocml/LICENSE	Sun Jan 22 16:05:13 2017	(r312624)
@@ -1,4 +1,4 @@
-$Id: LICENSE,v 1.12 2016/07/07 23:46:36 schwarze Exp $
+$Id: LICENSE,v 1.13 2016/10/18 14:15:33 schwarze Exp $
 
 With the exceptions noted below, all code and documentation
 contained in the mdocml toolkit is protected by the Copyright
@@ -8,7 +8,8 @@ Copyright (c) 2008-2012, 2014 Kristaps D
 Copyright (c) 2010-2016 Ingo Schwarze <schwarze@openbsd.org>
 Copyright (c) 2009, 2010, 2011, 2012 Joerg Sonnenberger <joerg@netbsd.org>
 Copyright (c) 2013 Franco Fichtner <franco@lastsummer.de>
-Copyright (c) 2014 Baptiste Daroussin <bapt@FreeBSD.org>
+Copyright (c) 2014 Baptiste Daroussin <bapt@freebsd.org>
+Copyright (c) 2016 Ed Maste <emaste@freebsd.org>
 Copyright (c) 1999, 2004 Marc Espie <espie@openbsd.org>
 Copyright (c) 1998, 2004, 2010 Todd C. Miller <Todd.Miller@courtesan.com>
 Copyright (c) 2008 Otto Moerbeek <otto@drijf.net>
@@ -41,7 +42,7 @@ other people's Copyright and are distrib
 and 3-clause BSD licenses; see these individual files for details.
 
 soelim.c, soelim.1:
-Copyright (c) 2014 Baptiste Daroussin <bapt@FreeBSD.org>
+Copyright (c) 2014 Baptiste Daroussin <bapt@freebsd.org>
 
 compat_err.c, compat_fts.c, compat_fts.h,
 compat_getsubopt.c, compat_strcasestr.c, compat_strsep.c,

Modified: projects/clang400-import/contrib/mdocml/Makefile
==============================================================================
--- projects/clang400-import/contrib/mdocml/Makefile	Sun Jan 22 15:35:51 2017	(r312623)
+++ projects/clang400-import/contrib/mdocml/Makefile	Sun Jan 22 16:05:13 2017	(r312624)
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.488 2016/07/12 05:18:38 kristaps Exp $
+# $Id: Makefile,v 1.493 2016/11/19 15:24:51 schwarze Exp $
 #
 # Copyright (c) 2010, 2011, 2012 Kristaps Dzonsons <kristaps@bsd.lv>
 # Copyright (c) 2011, 2013-2016 Ingo Schwarze <schwarze@openbsd.org>
@@ -15,27 +15,29 @@
 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 
-VERSION = 1.13.4
+VERSION = 1.14.0
 
 # === LIST OF FILES ====================================================
 
-TESTSRCS	 = test-dirent-namlen.c \
+TESTSRCS	 = test-be32toh.c \
+		   test-dirent-namlen.c \
+		   test-EFTYPE.c \
 		   test-err.c \
 		   test-fts.c \
 		   test-getline.c \
 		   test-getsubopt.c \
 		   test-isblank.c \
 		   test-mkdtemp.c \
-		   test-mmap.c \
+		   test-nanosleep.c \
+		   test-ntohl.c \
 		   test-ohash.c \
+		   test-PATH_MAX.c \
 		   test-pledge.c \
 		   test-progname.c \
 		   test-reallocarray.c \
 		   test-rewb-bsd.c \
 		   test-rewb-sysv.c \
 		   test-sandbox_init.c \
-		   test-sqlite3.c \
-		   test-sqlite3_errstr.c \
 		   test-strcasestr.c \
 		   test-stringlist.c \
 		   test-strlcat.c \
@@ -58,7 +60,6 @@ SRCS		 = att.c \
 		   compat_ohash.c \
 		   compat_progname.c \
 		   compat_reallocarray.c \
-		   compat_sqlite3_errstr.c \
 		   compat_strcasestr.c \
 		   compat_stringlist.c \
 		   compat_strlcat.c \
@@ -66,6 +67,12 @@ SRCS		 = att.c \
 		   compat_strsep.c \
 		   compat_strtonum.c \
 		   compat_vasprintf.c \
+		   dba.c \
+		   dba_array.c \
+		   dba_read.c \
+		   dba_write.c \
+		   dbm.c \
+		   dbm_map.c \
 		   demandoc.c \
 		   eqn.c \
 		   eqn_html.c \
@@ -86,7 +93,6 @@ SRCS		 = att.c \
 		   manpage.c \
 		   manpath.c \
 		   mansearch.c \
-		   mansearch_const.c \
 		   mdoc.c \
 		   mdoc_argv.c \
 		   mdoc_hash.c \
@@ -128,6 +134,11 @@ DISTFILES	 = INSTALL \
 		   compat_stringlist.h \
 		   configure \
 		   configure.local.example \
+		   dba.h \
+		   dba_array.h \
+		   dba_write.h \
+		   dbm.h \
+		   dbm_map.h \
 		   demandoc.1 \
 		   eqn.7 \
 		   gmdiff \
@@ -220,7 +231,6 @@ COMPAT_OBJS	 = compat_err.o \
 		   compat_ohash.o \
 		   compat_progname.o \
 		   compat_reallocarray.o \
-		   compat_sqlite3_errstr.o \
 		   compat_strcasestr.o \
 		   compat_strlcat.o \
 		   compat_strlcpy.o \
@@ -244,28 +254,35 @@ MANDOC_TERM_OBJS = eqn_term.o \
 		   term_ps.o \
 		   tbl_term.o
 
-BASE_OBJS	 = $(MANDOC_HTML_OBJS) \
+DBM_OBJS	 = dbm.o \
+		   dbm_map.o \
+		   mansearch.o
+
+DBA_OBJS	 = dba.o \
+		   dba_array.o \
+		   dba_read.o \
+		   dba_write.o \
+		   mandocdb.o
+
+MAIN_OBJS	 = $(MANDOC_HTML_OBJS) \
 		   $(MANDOC_MAN_OBJS) \
 		   $(MANDOC_TERM_OBJS) \
+		   $(DBM_OBJS) \
+		   $(DBA_OBJS) \
 		   main.o \
 		   manpath.o \
 		   out.o \
 		   tag.o \
 		   tree.o
 
-MAIN_OBJS	 = $(BASE_OBJS)
-
-DB_OBJS		 = mandocdb.o \
-		   mansearch.o \
-		   mansearch_const.o
-
 CGI_OBJS	 = $(MANDOC_HTML_OBJS) \
+		   $(DBM_OBJS) \
 		   cgi.o \
-		   mansearch.o \
-		   mansearch_const.o \
 		   out.o
 
-MANPAGE_OBJS	 = manpage.o mansearch.o mansearch_const.o manpath.o
+MANPAGE_OBJS	 = $(DBM_OBJS) \
+		   manpage.o \
+		   manpath.o
 
 DEMANDOC_OBJS	 = demandoc.o
 
@@ -329,7 +346,7 @@ www: $(WWW_OBJS) $(WWW_MANS)
 
 $(WWW_MANS): mandoc
 
-.PHONY: base-install cgi-install db-install install www-install
+.PHONY: base-install cgi-install install www-install
 .PHONY: clean distclean depend
 
 include Makefile.depend
@@ -341,7 +358,7 @@ distclean: clean
 
 clean:
 	rm -f libmandoc.a $(LIBMANDOC_OBJS) $(COMPAT_OBJS)
-	rm -f mandoc $(BASE_OBJS) $(DB_OBJS)
+	rm -f mandoc $(MAIN_OBJS)
 	rm -f man.cgi $(CGI_OBJS)
 	rm -f manpage $(MANPAGE_OBJS)
 	rm -f demandoc $(DEMANDOC_OBJS)
@@ -351,50 +368,45 @@ clean:
 
 base-install: base-build
 	mkdir -p $(DESTDIR)$(BINDIR)
-	mkdir -p $(DESTDIR)$(LIBDIR)
-	mkdir -p $(DESTDIR)$(INCLUDEDIR)
+	mkdir -p $(DESTDIR)$(SBINDIR)
 	mkdir -p $(DESTDIR)$(MANDIR)/man1
-	mkdir -p $(DESTDIR)$(MANDIR)/man3
 	mkdir -p $(DESTDIR)$(MANDIR)/man5
 	mkdir -p $(DESTDIR)$(MANDIR)/man7
+	mkdir -p $(DESTDIR)$(MANDIR)/man8
 	$(INSTALL_PROGRAM) mandoc demandoc $(DESTDIR)$(BINDIR)
 	$(INSTALL_PROGRAM) soelim $(DESTDIR)$(BINDIR)/$(BINM_SOELIM)
 	ln -f $(DESTDIR)$(BINDIR)/mandoc $(DESTDIR)$(BINDIR)/$(BINM_MAN)
-	$(INSTALL_LIB) libmandoc.a $(DESTDIR)$(LIBDIR)
-	$(INSTALL_LIB) man.h mandoc.h mandoc_aux.h mdoc.h roff.h \
-		$(DESTDIR)$(INCLUDEDIR)
+	ln -f $(DESTDIR)$(BINDIR)/mandoc $(DESTDIR)$(BINDIR)/$(BINM_APROPOS)
+	ln -f $(DESTDIR)$(BINDIR)/mandoc $(DESTDIR)$(BINDIR)/$(BINM_WHATIS)
+	ln -f $(DESTDIR)$(BINDIR)/mandoc \
+		$(DESTDIR)$(SBINDIR)/$(BINM_MAKEWHATIS)
 	$(INSTALL_MAN) mandoc.1 demandoc.1 $(DESTDIR)$(MANDIR)/man1
 	$(INSTALL_MAN) soelim.1 $(DESTDIR)$(MANDIR)/man1/$(BINM_SOELIM).1
 	$(INSTALL_MAN) man.1 $(DESTDIR)$(MANDIR)/man1/$(BINM_MAN).1
-	$(INSTALL_MAN) mandoc.3 mandoc_escape.3 mandoc_malloc.3 \
-		mchars_alloc.3 tbl.3 $(DESTDIR)$(MANDIR)/man3
+	$(INSTALL_MAN) apropos.1 $(DESTDIR)$(MANDIR)/man1/$(BINM_APROPOS).1
+	ln -f $(DESTDIR)$(MANDIR)/man1/$(BINM_APROPOS).1 \
+		$(DESTDIR)$(MANDIR)/man1/$(BINM_WHATIS).1
 	$(INSTALL_MAN) man.conf.5 $(DESTDIR)$(MANDIR)/man5/${MANM_MANCONF}.5
+	$(INSTALL_MAN) mandoc.db.5 $(DESTDIR)$(MANDIR)/man5
 	$(INSTALL_MAN) man.7 $(DESTDIR)$(MANDIR)/man7/${MANM_MAN}.7
 	$(INSTALL_MAN) mdoc.7 $(DESTDIR)$(MANDIR)/man7/${MANM_MDOC}.7
 	$(INSTALL_MAN) roff.7 $(DESTDIR)$(MANDIR)/man7/${MANM_ROFF}.7
 	$(INSTALL_MAN) eqn.7 $(DESTDIR)$(MANDIR)/man7/${MANM_EQN}.7
 	$(INSTALL_MAN) tbl.7 $(DESTDIR)$(MANDIR)/man7/${MANM_TBL}.7
 	$(INSTALL_MAN) mandoc_char.7 $(DESTDIR)$(MANDIR)/man7
-
-db-install: base-build
-	mkdir -p $(DESTDIR)$(BINDIR)
-	mkdir -p $(DESTDIR)$(SBINDIR)
-	mkdir -p $(DESTDIR)$(MANDIR)/man1
-	mkdir -p $(DESTDIR)$(MANDIR)/man3
-	mkdir -p $(DESTDIR)$(MANDIR)/man5
-	mkdir -p $(DESTDIR)$(MANDIR)/man8
-	ln -f $(DESTDIR)$(BINDIR)/mandoc $(DESTDIR)$(BINDIR)/$(BINM_APROPOS)
-	ln -f $(DESTDIR)$(BINDIR)/mandoc $(DESTDIR)$(BINDIR)/$(BINM_WHATIS)
-	ln -f $(DESTDIR)$(BINDIR)/mandoc \
-		$(DESTDIR)$(SBINDIR)/$(BINM_MAKEWHATIS)
-	$(INSTALL_MAN) apropos.1 $(DESTDIR)$(MANDIR)/man1/$(BINM_APROPOS).1
-	ln -f $(DESTDIR)$(MANDIR)/man1/$(BINM_APROPOS).1 \
-		$(DESTDIR)$(MANDIR)/man1/$(BINM_WHATIS).1
-	$(INSTALL_MAN) mansearch.3 $(DESTDIR)$(MANDIR)/man3
-	$(INSTALL_MAN) mandoc.db.5 $(DESTDIR)$(MANDIR)/man5
 	$(INSTALL_MAN) makewhatis.8 \
 		$(DESTDIR)$(MANDIR)/man8/$(BINM_MAKEWHATIS).8
 
+lib-install: base-build
+	mkdir -p $(DESTDIR)$(LIBDIR)
+	mkdir -p $(DESTDIR)$(INCLUDEDIR)
+	mkdir -p $(DESTDIR)$(MANDIR)/man3
+	$(INSTALL_LIB) libmandoc.a $(DESTDIR)$(LIBDIR)
+	$(INSTALL_LIB) man.h mandoc.h mandoc_aux.h mdoc.h roff.h \
+		$(DESTDIR)$(INCLUDEDIR)
+	$(INSTALL_MAN) mandoc.3 mandoc_escape.3 mandoc_malloc.3 \
+		mansearch.3 mchars_alloc.3 tbl.3 $(DESTDIR)$(MANDIR)/man3
+
 cgi-install: cgi-build
 	mkdir -p $(DESTDIR)$(CGIBINDIR)
 	mkdir -p $(DESTDIR)$(HTDOCDIR)

Modified: projects/clang400-import/contrib/mdocml/Makefile.depend
==============================================================================
--- projects/clang400-import/contrib/mdocml/Makefile.depend	Sun Jan 22 15:35:51 2017	(r312623)
+++ projects/clang400-import/contrib/mdocml/Makefile.depend	Sun Jan 22 16:05:13 2017	(r312624)
@@ -10,7 +10,6 @@ compat_mkdtemp.o: compat_mkdtemp.c confi
 compat_ohash.o: compat_ohash.c config.h compat_ohash.h
 compat_progname.o: compat_progname.c config.h
 compat_reallocarray.o: compat_reallocarray.c config.h
-compat_sqlite3_errstr.o: compat_sqlite3_errstr.c config.h
 compat_strcasestr.o: compat_strcasestr.c config.h
 compat_stringlist.o: compat_stringlist.c config.h compat_stringlist.h
 compat_strlcat.o: compat_strlcat.c config.h
@@ -18,6 +17,12 @@ compat_strlcpy.o: compat_strlcpy.c confi
 compat_strsep.o: compat_strsep.c config.h
 compat_strtonum.o: compat_strtonum.c config.h
 compat_vasprintf.o: compat_vasprintf.c config.h
+dba.o: dba.c config.h mandoc_aux.h mandoc_ohash.h compat_ohash.h mansearch.h dba_write.h dba_array.h dba.h
+dba_array.o: dba_array.c mandoc_aux.h dba_write.h dba_array.h
+dba_read.o: dba_read.c mandoc_aux.h mansearch.h dba_array.h dba.h dbm.h
+dba_write.o: dba_write.c config.h dba_write.h
+dbm.o: dbm.c config.h mansearch.h dbm_map.h dbm.h
+dbm_map.o: dbm_map.c config.h mansearch.h dbm_map.h dbm.h
 demandoc.o: demandoc.c config.h roff.h man.h mdoc.h mandoc.h
 eqn.o: eqn.c config.h mandoc.h mandoc_aux.h libmandoc.h libroff.h
 eqn_html.o: eqn_html.c config.h mandoc.h out.h html.h
@@ -26,7 +31,7 @@ html.o: html.c config.h mandoc.h mandoc_
 lib.o: lib.c config.h roff.h mdoc.h libmdoc.h lib.in
 main.o: main.c config.h mandoc_aux.h mandoc.h roff.h mdoc.h man.h tag.h main.h manconf.h mansearch.h
 man.o: man.c config.h mandoc_aux.h mandoc.h roff.h man.h libmandoc.h roff_int.h libman.h
-man_hash.o: man_hash.c config.h roff.h man.h libman.h
+man_hash.o: man_hash.c config.h mandoc.h roff.h man.h libmandoc.h libman.h
 man_html.o: man_html.c config.h mandoc_aux.h roff.h man.h out.h html.h main.h
 man_macro.o: man_macro.c config.h mandoc.h roff.h man.h libmandoc.h roff_int.h libman.h
 man_term.o: man_term.c config.h mandoc_aux.h mandoc.h roff.h man.h out.h term.h main.h
@@ -34,14 +39,13 @@ man_validate.o: man_validate.c config.h 
 mandoc.o: mandoc.c config.h mandoc.h mandoc_aux.h libmandoc.h
 mandoc_aux.o: mandoc_aux.c config.h mandoc.h mandoc_aux.h
 mandoc_ohash.o: mandoc_ohash.c mandoc_aux.h mandoc_ohash.h compat_ohash.h
-mandocdb.o: mandocdb.c config.h compat_fts.h mandoc_aux.h mandoc_ohash.h compat_ohash.h mandoc.h roff.h mdoc.h man.h manconf.h mansearch.h
+mandocdb.o: mandocdb.c config.h compat_fts.h mandoc_aux.h mandoc_ohash.h compat_ohash.h mandoc.h roff.h mdoc.h man.h manconf.h mansearch.h dba_array.h dba.h
 manpage.o: manpage.c config.h manconf.h mansearch.h
 manpath.o: manpath.c config.h mandoc_aux.h manconf.h
-mansearch.o: mansearch.c config.h mandoc.h mandoc_aux.h mandoc_ohash.h compat_ohash.h manconf.h mansearch.h
-mansearch_const.o: mansearch_const.c config.h mansearch.h
+mansearch.o: mansearch.c config.h mandoc.h mandoc_aux.h mandoc_ohash.h compat_ohash.h manconf.h mansearch.h dbm.h
 mdoc.o: mdoc.c config.h mandoc_aux.h mandoc.h roff.h mdoc.h libmandoc.h roff_int.h libmdoc.h
-mdoc_argv.o: mdoc_argv.c config.h mandoc_aux.h mandoc.h roff.h mdoc.h libmandoc.h libmdoc.h
-mdoc_hash.o: mdoc_hash.c config.h roff.h mdoc.h libmdoc.h
+mdoc_argv.o: mdoc_argv.c config.h mandoc_aux.h mandoc.h roff.h mdoc.h libmandoc.h roff_int.h libmdoc.h
+mdoc_hash.o: mdoc_hash.c config.h mandoc.h roff.h mdoc.h libmandoc.h libmdoc.h
 mdoc_html.o: mdoc_html.c config.h mandoc_aux.h roff.h mdoc.h out.h html.h main.h
 mdoc_macro.o: mdoc_macro.c config.h mandoc.h roff.h mdoc.h libmandoc.h roff_int.h libmdoc.h
 mdoc_man.o: mdoc_man.c config.h mandoc_aux.h mandoc.h roff.h mdoc.h man.h out.h main.h

Modified: projects/clang400-import/contrib/mdocml/TODO
==============================================================================
--- projects/clang400-import/contrib/mdocml/TODO	Sun Jan 22 15:35:51 2017	(r312623)
+++ projects/clang400-import/contrib/mdocml/TODO	Sun Jan 22 16:05:13 2017	(r312624)
@@ -1,6 +1,6 @@
 ************************************************************************
 * Official mandoc TODO.
-* $Id: TODO,v 1.218 2016/06/05 21:06:04 schwarze Exp $
+* $Id: TODO,v 1.223 2017/01/17 15:32:43 schwarze Exp $
 ************************************************************************
 
 Many issues are annotated for difficulty as follows:
@@ -33,15 +33,6 @@ Obviously, as the issues have not been s
 are mere guesses, and some may be wrong.
 
 ************************************************************************
-* crashes
-************************************************************************
-
-- The abort() in bufcat(), html.c, can be triggered via buffmt_includes()
-  by running -Thtml -Oincludes on a file containing a long .In argument.
-  Fixing this will probably require reworking the whole bufcat() concept.
-  loc **  exist *  algo *  size **  imp **
-
-************************************************************************
 * missing features
 ************************************************************************
 
@@ -213,6 +204,13 @@ are mere guesses, and some may be wrong.
   synaptics(4) found by tedu@  Mon, 17 Aug 2015 21:17:42 -0400
   loc **  exist **  algo **  size **  imp ***
 
+- break long text into lines inside cells
+  net/lftp(1) from jirib via bentley@ Sep 13, 2016
+
+- layout l1 for a column of max text width 3 reduces the following
+  inter-column spacing for groff, but not for mandoc
+  net/lftp(1) from jirib via bentley@ Sep 13, 2016
+
 - the "w" layout option is ignored
   synaptics(4) found by tedu@  Mon, 17 Aug 2015 21:17:42 -0400
   loc *  exist *  algo *  size *  imp **
@@ -529,16 +527,6 @@ are mere guesses, and some may be wrong.
   loc **  exist **  algo **  size *  imp **
 
 ************************************************************************
-* portability
-************************************************************************
-
-- systems having UTF-8 but not en_US.UTF-8
-  call locale(1) from ./configure, select a UTF-8-locale,
-  and use that for test-wchar.c and term_ascii.c
-  to Markus Waldeck  Sat, 18 Jul 2015 01:55:37 +0200
-  loc *  exist *  algo *  size *  imp *
-
-************************************************************************
 * warning issues
 ************************************************************************
 
@@ -612,7 +600,6 @@ are mere guesses, and some may be wrong.
 ************************************************************************
 
 - Why are we using MAP_SHARED, not MAP_PRIVATE for mmap(2)?
-  How does SQLITE_CONFIG_PAGECACHE actually work?  Document it!
   from kristaps@  Sat, 09 Aug 2014 13:51:36 +0200
 
 Several areas can be cleaned up to make mandoc even faster.  These are
@@ -631,6 +618,13 @@ Several areas can be cleaned up to make 
 * structural issues
 ************************************************************************
 
+- POSIX says in the documentation of sysconf(3) that PATH_MAX
+  is allowed to be so large that it is a bad idea to use it
+  for sizing static buffers.  So use dynamic buffers throughout.
+  See the file test-PATH_MAX.c for details.
+  Found by Aaron M. Ucko in the GNU Hurd via Bdale Garbee,
+  https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=829624
+
 - We use the input line number at several places to distinguish
   same-line from different-line input.  That plainly doesn't work
   with user-defined macros, leading to random breakage.
@@ -646,11 +640,6 @@ Several areas can be cleaned up to make 
 - struct mparse refactoring
   Steffen Nurpmeso  Thu, 04 Sep 2014 12:50:00 +0200
 
-- Consider creating some views that will make the database more
-  readable from the sqlite3 shell.  Consider using them to
-  abstract from the database structure, too.
-  suggested by espie@  Sat, 19 Apr 2014 14:52:57 +0200
-
 ************************************************************************
 * CGI issues
 ************************************************************************

Modified: projects/clang400-import/contrib/mdocml/cgi.c
==============================================================================
--- projects/clang400-import/contrib/mdocml/cgi.c	Sun Jan 22 15:35:51 2017	(r312623)
+++ projects/clang400-import/contrib/mdocml/cgi.c	Sun Jan 22 16:05:13 2017	(r312624)
@@ -1,7 +1,7 @@
-/*	$Id: cgi.c,v 1.135 2016/07/11 22:48:37 schwarze Exp $ */
+/*	$Id: cgi.c,v 1.144 2017/01/21 01:20:31 schwarze Exp $ */
 /*
  * Copyright (c) 2011, 2012 Kristaps Dzonsons <kristaps@bsd.lv>
- * Copyright (c) 2014, 2015, 2016 Ingo Schwarze <schwarze@usta.de>
+ * Copyright (c) 2014, 2015, 2016, 2017 Ingo Schwarze <schwarze@usta.de>
  *
  * Permission to use, copy, modify, and distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above
@@ -113,17 +113,18 @@ static	const char *const sec_names[] = {
 static	const int sec_MAX = sizeof(sec_names) / sizeof(char *);
 
 static	const char *const arch_names[] = {
-    "amd64",       "alpha",       "armish",      "armv7",
-    "hppa",        "hppa64",      "i386",        "landisk",
+    "amd64",       "alpha",       "armv7",
+    "hppa",        "i386",        "landisk",
     "loongson",    "luna88k",     "macppc",      "mips64",
-    "octeon",      "sgi",         "socppc",      "sparc",
-    "sparc64",     "zaurus",
-    "amiga",       "arc",         "arm32",       "atari",
-    "aviion",      "beagle",      "cats",        "hp300",       
+    "octeon",      "sgi",         "socppc",      "sparc64",
+    "amiga",       "arc",         "armish",      "arm32",
+    "atari",       "aviion",      "beagle",      "cats",
+    "hppa64",      "hp300",
     "ia64",        "mac68k",      "mvme68k",     "mvme88k",
     "mvmeppc",     "palm",        "pc532",       "pegasos",
-    "pmax",        "powerpc",     "solbourne",   "sun3",
-    "vax",         "wgrisc",      "x68k"
+    "pmax",        "powerpc",     "solbourne",   "sparc",
+    "sun3",        "vax",         "wgrisc",      "x68k",
+    "zaurus"
 };
 static	const int arch_MAX = sizeof(arch_names) / sizeof(char *);
 
@@ -137,7 +138,7 @@ html_putchar(char c)
 
 	switch (c) {
 	case ('"'):
-		printf("&quote;");
+		printf("&quot;");
 		break;
 	case ('&'):
 		printf("&amp;");
@@ -337,6 +338,7 @@ resp_copy(const char *filename)
 		fflush(stdout);
 		while ((sz = read(fd, buf, sizeof(buf))) > 0)
 			write(STDOUT_FILENO, buf, sz);
+		close(fd);
 	}
 }
 
@@ -349,13 +351,12 @@ resp_begin_html(int code, const char *ms
 	printf("<!DOCTYPE html>\n"
 	       "<html>\n"
 	       "<head>\n"
-	       "<meta charset=\"UTF-8\"/>\n"
-	       "<link rel=\"stylesheet\" href=\"%s/mandoc.css\""
+	       "  <meta charset=\"UTF-8\"/>\n"
+	       "  <link rel=\"stylesheet\" href=\"%s/mandoc.css\""
 	       " type=\"text/css\" media=\"all\">\n"
-	       "<title>%s</title>\n"
+	       "  <title>%s</title>\n"
 	       "</head>\n"
-	       "<body>\n"
-	       "<!-- Begin page content. //-->\n",
+	       "<body>\n",
 	       CSS_DIR, CUSTOMIZE_TITLE);
 
 	resp_copy(MAN_DIR "/header.html");
@@ -376,16 +377,14 @@ resp_searchform(const struct req *req, e
 {
 	int		 i;
 
-	puts("<!-- Begin search form. //-->");
-	printf("<div id=\"mancgi\">\n"
-	       "<form action=\"/%s\" method=\"get\">\n"
-	       "<fieldset>\n"
-	       "<legend>Manual Page Search Parameters</legend>\n",
+	printf("<form action=\"/%s\" method=\"get\">\n"
+	       "  <fieldset>\n"
+	       "    <legend>Manual Page Search Parameters</legend>\n",
 	       scriptname);
 
 	/* Write query input box. */
 
-	printf("<input type=\"text\" name=\"query\" value=\"");
+	printf("    <input type=\"text\" name=\"query\" value=\"");
 	if (req->q.query != NULL)
 		html_print(req->q.query);
 	printf( "\" size=\"40\"");
@@ -395,45 +394,46 @@ resp_searchform(const struct req *req, e
 
 	/* Write submission buttons. */
 
-	printf(	"<button type=\"submit\" name=\"apropos\" value=\"0\">"
+	printf(	"    <button type=\"submit\" name=\"apropos\" value=\"0\">"
 		"man</button>\n"
-		"<button type=\"submit\" name=\"apropos\" value=\"1\">"
-		"apropos</button>\n<br/>\n");
+		"    <button type=\"submit\" name=\"apropos\" value=\"1\">"
+		"apropos</button>\n"
+		"    <br/>\n");
 
 	/* Write section selector. */
 
-	puts("<select name=\"sec\">");
+	puts("    <select name=\"sec\">");
 	for (i = 0; i < sec_MAX; i++) {
-		printf("<option value=\"%s\"", sec_numbers[i]);
+		printf("      <option value=\"%s\"", sec_numbers[i]);
 		if (NULL != req->q.sec &&
 		    0 == strcmp(sec_numbers[i], req->q.sec))
 			printf(" selected=\"selected\"");
 		printf(">%s</option>\n", sec_names[i]);
 	}
-	puts("</select>");
+	puts("    </select>");
 
 	/* Write architecture selector. */
 
-	printf(	"<select name=\"arch\">\n"
-		"<option value=\"default\"");
+	printf(	"    <select name=\"arch\">\n"
+		"      <option value=\"default\"");
 	if (NULL == req->q.arch)
 		printf(" selected=\"selected\"");
 	puts(">All Architectures</option>");
 	for (i = 0; i < arch_MAX; i++) {
-		printf("<option value=\"%s\"", arch_names[i]);
+		printf("      <option value=\"%s\"", arch_names[i]);
 		if (NULL != req->q.arch &&
 		    0 == strcmp(arch_names[i], req->q.arch))
 			printf(" selected=\"selected\"");
 		printf(">%s</option>\n", arch_names[i]);
 	}
-	puts("</select>");
+	puts("    </select>");
 
 	/* Write manpath selector. */
 
 	if (req->psz > 1) {
-		puts("<select name=\"manpath\">");
+		puts("    <select name=\"manpath\">");
 		for (i = 0; i < (int)req->psz; i++) {
-			printf("<option ");
+			printf("      <option ");
 			if (strcmp(req->q.manpath, req->p[i]) == 0)
 				printf("selected=\"selected\" ");
 			printf("value=\"");
@@ -442,13 +442,11 @@ resp_searchform(const struct req *req, e
 			html_print(req->p[i]);
 			puts("</option>");
 		}
-		puts("</select>");
+		puts("    </select>");
 	}
 
-	puts("</fieldset>\n"
-	     "</form>\n"
-	     "</div>");
-	puts("<!-- End search form. //-->");
+	puts("  </fieldset>\n"
+	     "</form>");
 }
 
 static int
@@ -496,9 +494,9 @@ pg_index(const struct req *req)
 	resp_searchform(req, FOCUS_QUERY);
 	printf("<p>\n"
 	       "This web interface is documented in the\n"
-	       "<a href=\"/%s%sman.cgi.8\">man.cgi(8)</a>\n"
+	       "<a class=\"Xr\" href=\"/%s%sman.cgi.8\">man.cgi(8)</a>\n"
 	       "manual, and the\n"
-	       "<a href=\"/%s%sapropos.1\">apropos(1)</a>\n"
+	       "<a class=\"Xr\" href=\"/%s%sapropos.1\">apropos(1)</a>\n"
 	       "manual explains the query syntax.\n"
 	       "</p>\n",
 	       scriptname, *scriptname == '\0' ? "" : "/",
@@ -578,27 +576,21 @@ pg_searchres(const struct req *req, stru
 	    req->q.equal || sz == 1 ? FOCUS_NONE : FOCUS_QUERY);
 
 	if (sz > 1) {
-		puts("<div class=\"results\">");
-		puts("<table>");
-
+		puts("<table class=\"results\">");
 		for (i = 0; i < sz; i++) {
-			printf("<tr>\n"
-			       "<td class=\"title\">\n"
-			       "<a href=\"/%s%s%s/%s",
+			printf("  <tr>\n"
+			       "    <td>"
+			       "<a class=\"Xr\" href=\"/%s%s%s/%s\">",
 			    scriptname, *scriptname == '\0' ? "" : "/",
 			    req->q.manpath, r[i].file);
-			printf("\">");
 			html_print(r[i].names);
-			printf("</a>\n"
-			       "</td>\n"
-			       "<td class=\"desc\">");
+			printf("</a></td>\n"
+			       "    <td><span class=\"Nd\">");
 			html_print(r[i].output);
-			puts("</td>\n"
-			     "</tr>");
+			puts("</span></td>\n"
+			     "  </tr>");
 		}
-
-		puts("</table>\n"
-		     "</div>");
+		puts("</table>");
 	}
 
 	/*
@@ -800,7 +792,8 @@ resp_format(const struct req *req, const
 	}
 
 	mchars_alloc();
-	mp = mparse_alloc(MPARSE_SO, MANDOCLEVEL_BADARG, NULL, req->q.manpath);
+	mp = mparse_alloc(MPARSE_SO | MPARSE_UTF8 | MPARSE_LATIN1,
+	    MANDOCLEVEL_BADARG, NULL, req->q.manpath);
 	mparse_readfd(mp, fd, file);
 	close(fd);
 

Modified: projects/clang400-import/contrib/mdocml/compat_fts.c
==============================================================================
--- projects/clang400-import/contrib/mdocml/compat_fts.c	Sun Jan 22 15:35:51 2017	(r312623)
+++ projects/clang400-import/contrib/mdocml/compat_fts.c	Sun Jan 22 16:05:13 2017	(r312624)
@@ -6,8 +6,8 @@ int dummy;
 
 #else
 
-/*	$Id: compat_fts.c,v 1.9 2015/03/18 19:29:48 schwarze Exp $	*/
-/*	$OpenBSD: fts.c,v 1.50 2015/01/16 16:48:51 deraadt Exp $	*/
+/*	$Id: compat_fts.c,v 1.12 2016/10/18 23:58:12 schwarze Exp $	*/
+/*	$OpenBSD: fts.c,v 1.56 2016/09/21 04:38:56 guenther Exp $	*/
 
 /*-
  * Copyright (c) 1990, 1993, 1994
@@ -59,6 +59,7 @@ static void	 fts_load(FTS *, FTSENT *);
 static size_t	 fts_maxarglen(char * const *);
 static void	 fts_padjust(FTS *, FTSENT *);
 static int	 fts_palloc(FTS *, size_t);
+static FTSENT	*fts_sort(FTS *, FTSENT *, int);
 static unsigned short	 fts_stat(FTS *, FTSENT *);
 
 #define	ISDOT(a)	(a[0] == '.' && (!a[1] || (a[1] == '.' && !a[2])))
@@ -68,19 +69,22 @@ static unsigned short	 fts_stat(FTS *, F
 #ifndef	O_CLOEXEC
 #define	O_CLOEXEC	0
 #endif
+#ifndef	PATH_MAX
+#define	PATH_MAX	4096
+#endif
 
 #define	CLR(opt)	(sp->fts_options &= ~(opt))
 #define	ISSET(opt)	(sp->fts_options & (opt))
 #define	SET(opt)	(sp->fts_options |= (opt))
 
 FTS *
-fts_open(char * const *argv, int options, void *dummy)
+fts_open(char * const *argv, int options,
+    int (*compar)(const FTSENT **, const FTSENT **))
 {
 	FTS *sp;
 	FTSENT *p, *root;
 	int nitems;
 	FTSENT *parent, *tmp;
-	size_t len;
 
 	/* Options check. */
 	if (options & ~FTS_OPTIONMASK) {
@@ -88,9 +92,16 @@ fts_open(char * const *argv, int options
 		return (NULL);
 	}
 
+	/* At least one path must be specified. */
+	if (*argv == NULL) {
+		errno = EINVAL;
+		return (NULL);
+	}
+
 	/* Allocate/initialize the stream */
 	if ((sp = calloc(1, sizeof(FTS))) == NULL)
 		return (NULL);
+	sp->fts_compar = compar;
 	sp->fts_options = options;
 
 	/*
@@ -107,13 +118,7 @@ fts_open(char * const *argv, int options
 
 	/* Allocate/initialize root(s). */
 	for (root = NULL, nitems = 0; *argv; ++argv, ++nitems) {
-		/* Don't allow zero-length paths. */
-		if ((len = strlen(*argv)) == 0) {
-			errno = ENOENT;
-			goto mem3;
-		}
-
-		if ((p = fts_alloc(sp, *argv, len)) == NULL)
+		if ((p = fts_alloc(sp, *argv, strlen(*argv))) == NULL)
 			goto mem3;
 		p->fts_level = FTS_ROOTLEVEL;
 		p->fts_parent = parent;
@@ -124,14 +129,25 @@ fts_open(char * const *argv, int options
 		if (p->fts_info == FTS_DOT)
 			p->fts_info = FTS_D;
 
-		p->fts_link = NULL;
-		if (root == NULL)
-			tmp = root = p;
-		else {
-			tmp->fts_link = p;
-			tmp = p;
+		/*
+		 * If comparison routine supplied, traverse in sorted
+		 * order; otherwise traverse in the order specified.
+		 */
+		if (compar) {
+			p->fts_link = root;
+			root = p;
+		} else {
+			p->fts_link = NULL;
+			if (root == NULL)
+				tmp = root = p;
+			else {
+				tmp->fts_link = p;
+				tmp = p;
+			}
 		}
 	}
+	if (compar && nitems > 1)
+		root = fts_sort(sp, root, nitems);
 
 	/*
 	 * Allocate a dummy pointer and make fts_read think that we've just
@@ -201,6 +217,7 @@ fts_close(FTS *sp)
 	/* Free up child linked list, sort array, path buffer, stream ptr.*/

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

From owner-svn-src-projects@freebsd.org  Sun Jan 22 18:02:48 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8EB5FCBC2AE
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Sun, 22 Jan 2017 18:02:48 +0000 (UTC) (envelope-from dim@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 2B8861BE;
 Sun, 22 Jan 2017 18:02:48 +0000 (UTC) (envelope-from dim@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0MI2l0k052396;
 Sun, 22 Jan 2017 18:02:47 GMT (envelope-from dim@FreeBSD.org)
Received: (from dim@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0MI2jIn052374;
 Sun, 22 Jan 2017 18:02:45 GMT (envelope-from dim@FreeBSD.org)
Message-Id: <201701221802.v0MI2jIn052374@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org
 using -f
From: Dimitry Andric <dim@FreeBSD.org>
Date: Sun, 22 Jan 2017 18:02:45 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r312639 - in projects/clang400-import:
 contrib/llvm/lib/Analysis contrib/llvm/lib/Bitcode/Reader
 contrib/llvm/lib/LTO contrib/llvm/lib/Target/X86
 contrib/llvm/lib/Transforms/Scalar cont...
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sun, 22 Jan 2017 18:02:48 -0000

Author: dim
Date: Sun Jan 22 18:02:44 2017
New Revision: 312639
URL: https://svnweb.freebsd.org/changeset/base/312639

Log:
  Merge llvm, clang, lld and lldb release_40 branch 292732, and update
  build glue.

Modified:
  projects/clang400-import/contrib/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
  projects/clang400-import/contrib/llvm/lib/Bitcode/Reader/MetadataLoader.cpp
  projects/clang400-import/contrib/llvm/lib/LTO/ThinLTOCodeGenerator.cpp
  projects/clang400-import/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp
  projects/clang400-import/contrib/llvm/lib/Target/X86/X86Subtarget.cpp
  projects/clang400-import/contrib/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
  projects/clang400-import/contrib/llvm/lib/Transforms/Scalar/NewGVN.cpp
  projects/clang400-import/contrib/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
  projects/clang400-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td
  projects/clang400-import/contrib/llvm/tools/clang/lib/Basic/Targets.cpp
  projects/clang400-import/contrib/llvm/tools/clang/lib/Parse/ParseExpr.cpp
  projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/SemaOverload.cpp
  projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/SemaTemplate.cpp
  projects/clang400-import/contrib/llvm/tools/lld/ELF/SymbolTable.cpp
  projects/clang400-import/contrib/llvm/tools/lld/ELF/SymbolTable.h
  projects/clang400-import/contrib/llvm/tools/lld/ELF/Symbols.cpp
  projects/clang400-import/contrib/llvm/tools/lld/ELF/Symbols.h
  projects/clang400-import/contrib/llvm/tools/lld/ELF/SyntheticSections.cpp
  projects/clang400-import/contrib/llvm/tools/lld/ELF/Writer.cpp
  projects/clang400-import/lib/clang/include/clang/Basic/Version.inc
  projects/clang400-import/lib/clang/include/lld/Config/Version.inc
Directory Properties:
  projects/clang400-import/contrib/llvm/   (props changed)
  projects/clang400-import/contrib/llvm/tools/clang/   (props changed)
  projects/clang400-import/contrib/llvm/tools/lld/   (props changed)
  projects/clang400-import/contrib/llvm/tools/lldb/   (props changed)

Modified: projects/clang400-import/contrib/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp	Sun Jan 22 17:49:14 2017	(r312638)
+++ projects/clang400-import/contrib/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp	Sun Jan 22 18:02:44 2017	(r312639)
@@ -405,6 +405,7 @@ char ModuleSummaryIndexWrapperPass::ID =
 INITIALIZE_PASS_BEGIN(ModuleSummaryIndexWrapperPass, "module-summary-analysis",
                       "Module Summary Analysis", false, true)
 INITIALIZE_PASS_DEPENDENCY(BlockFrequencyInfoWrapperPass)
+INITIALIZE_PASS_DEPENDENCY(ProfileSummaryInfoWrapperPass)
 INITIALIZE_PASS_END(ModuleSummaryIndexWrapperPass, "module-summary-analysis",
                     "Module Summary Analysis", false, true)
 

Modified: projects/clang400-import/contrib/llvm/lib/Bitcode/Reader/MetadataLoader.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/lib/Bitcode/Reader/MetadataLoader.cpp	Sun Jan 22 17:49:14 2017	(r312638)
+++ projects/clang400-import/contrib/llvm/lib/Bitcode/Reader/MetadataLoader.cpp	Sun Jan 22 18:02:44 2017	(r312639)
@@ -768,13 +768,12 @@ void MetadataLoader::MetadataLoaderImpl:
     unsigned ID, PlaceholderQueue &Placeholders) {
   assert(ID < (MDStringRef.size()) + GlobalMetadataBitPosIndex.size());
   assert(ID >= MDStringRef.size() && "Unexpected lazy-loading of MDString");
-#ifndef NDEBUG
   // Lookup first if the metadata hasn't already been loaded.
   if (auto *MD = MetadataList.lookup(ID)) {
     auto *N = dyn_cast_or_null<MDNode>(MD);
-    assert(N && N->isTemporary() && "Lazy loading an already loaded metadata");
+    if (!N->isTemporary())
+      return;
   }
-#endif
   SmallVector<uint64_t, 64> Record;
   StringRef Blob;
   IndexCursor.JumpToBit(GlobalMetadataBitPosIndex[ID - MDStringRef.size()]);
@@ -827,8 +826,22 @@ Error MetadataLoader::MetadataLoaderImpl
   auto getMD = [&](unsigned ID) -> Metadata * {
     if (ID < MDStringRef.size())
       return lazyLoadOneMDString(ID);
-    if (!IsDistinct)
+    if (!IsDistinct) {
+      if (auto *MD = MetadataList.lookup(ID))
+        return MD;
+      // If lazy-loading is enabled, we try recursively to load the operand
+      // instead of creating a temporary.
+      if (ID < (MDStringRef.size() + GlobalMetadataBitPosIndex.size())) {
+        // Create a temporary for the node that is referencing the operand we
+        // will lazy-load. It is needed before recursing in case there are
+        // uniquing cycles.
+        MetadataList.getMetadataFwdRef(NextMetadataNo);
+        lazyLoadOneMetadata(ID, Placeholders);
+        return MetadataList.lookup(ID);
+      }
+      // Return a temporary.
       return MetadataList.getMetadataFwdRef(ID);
+    }
     if (auto *MD = MetadataList.getMetadataIfResolved(ID))
       return MD;
     return &Placeholders.getPlaceholderOp(ID);

Modified: projects/clang400-import/contrib/llvm/lib/LTO/ThinLTOCodeGenerator.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/lib/LTO/ThinLTOCodeGenerator.cpp	Sun Jan 22 17:49:14 2017	(r312638)
+++ projects/clang400-import/contrib/llvm/lib/LTO/ThinLTOCodeGenerator.cpp	Sun Jan 22 18:02:44 2017	(r312639)
@@ -829,11 +829,22 @@ static std::string writeGeneratedObject(
 
 // Main entry point for the ThinLTO processing
 void ThinLTOCodeGenerator::run() {
+  // Prepare the resulting object vector
+  assert(ProducedBinaries.empty() && "The generator should not be reused");
+  if (SavedObjectsDirectoryPath.empty())
+    ProducedBinaries.resize(Modules.size());
+  else {
+    sys::fs::create_directories(SavedObjectsDirectoryPath);
+    bool IsDir;
+    sys::fs::is_directory(SavedObjectsDirectoryPath, IsDir);
+    if (!IsDir)
+      report_fatal_error("Unexistent dir: '" + SavedObjectsDirectoryPath + "'");
+    ProducedBinaryFiles.resize(Modules.size());
+  }
+
   if (CodeGenOnly) {
     // Perform only parallel codegen and return.
     ThreadPool Pool;
-    assert(ProducedBinaries.empty() && "The generator should not be reused");
-    ProducedBinaries.resize(Modules.size());
     int count = 0;
     for (auto &ModuleBuffer : Modules) {
       Pool.async([&](int count) {
@@ -845,7 +856,12 @@ void ThinLTOCodeGenerator::run() {
                                               /*IsImporting*/ false);
 
         // CodeGen
-        ProducedBinaries[count] = codegen(*TheModule);
+        auto OutputBuffer = codegen(*TheModule);
+        if (SavedObjectsDirectoryPath.empty())
+          ProducedBinaries[count] = std::move(OutputBuffer);
+        else
+          ProducedBinaryFiles[count] = writeGeneratedObject(
+              count, "", SavedObjectsDirectoryPath, *OutputBuffer);
       }, count++);
     }
 
@@ -866,18 +882,6 @@ void ThinLTOCodeGenerator::run() {
     WriteIndexToFile(*Index, OS);
   }
 
-  // Prepare the resulting object vector
-  assert(ProducedBinaries.empty() && "The generator should not be reused");
-  if (SavedObjectsDirectoryPath.empty())
-    ProducedBinaries.resize(Modules.size());
-  else {
-    sys::fs::create_directories(SavedObjectsDirectoryPath);
-    bool IsDir;
-    sys::fs::is_directory(SavedObjectsDirectoryPath, IsDir);
-    if (!IsDir)
-      report_fatal_error("Unexistent dir: '" + SavedObjectsDirectoryPath + "'");
-    ProducedBinaryFiles.resize(Modules.size());
-  }
 
   // Prepare the module map.
   auto ModuleMap = generateModuleMap(Modules);

Modified: projects/clang400-import/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp	Sun Jan 22 17:49:14 2017	(r312638)
+++ projects/clang400-import/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp	Sun Jan 22 18:02:44 2017	(r312639)
@@ -29455,19 +29455,11 @@ static SDValue combineSelect(SDNode *N, 
   return SDValue();
 }
 
-/// Combine brcond/cmov/setcc/.. based on comparing the result of
-/// atomic_load_add to use EFLAGS produced by the addition
-/// directly if possible. For example:
-///
-///   (setcc (cmp (atomic_load_add x, -C) C), COND_E)
-/// becomes:
-///   (setcc (LADD x, -C), COND_E)
-///
-/// and
+/// Combine:
 ///   (brcond/cmov/setcc .., (cmp (atomic_load_add x, 1), 0), COND_S)
-/// becomes:
+/// to:
 ///   (brcond/cmov/setcc .., (LADD x, 1), COND_LE)
-///
+/// i.e., reusing the EFLAGS produced by the LOCKed instruction.
 /// Note that this is only legal for some op/cc combinations.
 static SDValue combineSetCCAtomicArith(SDValue Cmp, X86::CondCode &CC,
                                        SelectionDAG &DAG) {
@@ -29482,7 +29474,7 @@ static SDValue combineSetCCAtomicArith(S
   if (!Cmp.hasOneUse())
     return SDValue();
 
-  // This applies to variations of the common case:
+  // This only applies to variations of the common case:
   //   (icmp slt x, 0) -> (icmp sle (add x, 1), 0)
   //   (icmp sge x, 0) -> (icmp sgt (add x, 1), 0)
   //   (icmp sle x, 0) -> (icmp slt (sub x, 1), 0)
@@ -29501,9 +29493,8 @@ static SDValue combineSetCCAtomicArith(S
     return SDValue();
 
   auto *CmpRHSC = dyn_cast<ConstantSDNode>(CmpRHS);
-  if (!CmpRHSC)
+  if (!CmpRHSC || CmpRHSC->getZExtValue() != 0)
     return SDValue();
-  APInt Comparand = CmpRHSC->getAPIntValue();
 
   const unsigned Opc = CmpLHS.getOpcode();
 
@@ -29519,19 +29510,16 @@ static SDValue combineSetCCAtomicArith(S
   if (Opc == ISD::ATOMIC_LOAD_SUB)
     Addend = -Addend;
 
-  if (Comparand == -Addend) {
-    // No change to CC.
-  } else if (CC == X86::COND_S && Comparand == 0 && Addend == 1) {
+  if (CC == X86::COND_S && Addend == 1)
     CC = X86::COND_LE;
-  } else if (CC == X86::COND_NS && Comparand == 0 && Addend == 1) {
+  else if (CC == X86::COND_NS && Addend == 1)
     CC = X86::COND_G;
-  } else if (CC == X86::COND_G && Comparand == 0 && Addend == -1) {
+  else if (CC == X86::COND_G && Addend == -1)
     CC = X86::COND_GE;
-  } else if (CC == X86::COND_LE && Comparand == 0 && Addend == -1) {
+  else if (CC == X86::COND_LE && Addend == -1)
     CC = X86::COND_L;
-  } else {
+  else
     return SDValue();
-  }
 
   SDValue LockOp = lowerAtomicArithWithLOCK(CmpLHS, DAG);
   DAG.ReplaceAllUsesOfValueWith(CmpLHS.getValue(0),

Modified: projects/clang400-import/contrib/llvm/lib/Target/X86/X86Subtarget.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/lib/Target/X86/X86Subtarget.cpp	Sun Jan 22 17:49:14 2017	(r312638)
+++ projects/clang400-import/contrib/llvm/lib/Target/X86/X86Subtarget.cpp	Sun Jan 22 18:02:44 2017	(r312639)
@@ -232,9 +232,6 @@ void X86Subtarget::initSubtargetFeatures
   else if (isTargetDarwin() || isTargetLinux() || isTargetSolaris() ||
            isTargetKFreeBSD() || In64BitMode)
     stackAlignment = 16;
-
-  assert((!isPMULLDSlow() || hasSSE41()) &&
-         "Feature Slow PMULLD can only be set on a subtarget with SSE4.1");
 }
 
 void X86Subtarget::initializeEnvironment() {

Modified: projects/clang400-import/contrib/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp	Sun Jan 22 17:49:14 2017	(r312638)
+++ projects/clang400-import/contrib/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp	Sun Jan 22 18:02:44 2017	(r312639)
@@ -3163,6 +3163,9 @@ LSRInstance::CollectLoopInvariantFixupsA
         // Don't bother if the instruction is in a BB which ends in an EHPad.
         if (UseBB->getTerminator()->isEHPad())
           continue;
+        // Don't bother rewriting PHIs in catchswitch blocks.
+        if (isa<CatchSwitchInst>(UserInst->getParent()->getTerminator()))
+          continue;
         // Ignore uses which are part of other SCEV expressions, to avoid
         // analyzing them multiple times.
         if (SE.isSCEVable(UserInst->getType())) {
@@ -4672,7 +4675,8 @@ void LSRInstance::RewriteForPHI(PHINode 
       // is the canonical backedge for this loop, which complicates post-inc
       // users.
       if (e != 1 && BB->getTerminator()->getNumSuccessors() > 1 &&
-          !isa<IndirectBrInst>(BB->getTerminator())) {
+          !isa<IndirectBrInst>(BB->getTerminator()) &&
+          !isa<CatchSwitchInst>(BB->getTerminator())) {
         BasicBlock *Parent = PN->getParent();
         Loop *PNLoop = LI.getLoopFor(Parent);
         if (!PNLoop || Parent != PNLoop->getHeader()) {

Modified: projects/clang400-import/contrib/llvm/lib/Transforms/Scalar/NewGVN.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/lib/Transforms/Scalar/NewGVN.cpp	Sun Jan 22 17:49:14 2017	(r312638)
+++ projects/clang400-import/contrib/llvm/lib/Transforms/Scalar/NewGVN.cpp	Sun Jan 22 18:02:44 2017	(r312639)
@@ -81,6 +81,10 @@ STATISTIC(NumGVNOpsSimplified, "Number o
 STATISTIC(NumGVNPhisAllSame, "Number of PHIs whos arguments are all the same");
 STATISTIC(NumGVNMaxIterations,
           "Maximum Number of iterations it took to converge GVN");
+STATISTIC(NumGVNLeaderChanges, "Number of leader changes");
+STATISTIC(NumGVNSortedLeaderChanges, "Number of sorted leader changes");
+STATISTIC(NumGVNAvoidedSortedLeaderChanges,
+          "Number of avoided sorted leader changes");
 
 //===----------------------------------------------------------------------===//
 //                                GVN Pass
@@ -139,6 +143,10 @@ struct CongruenceClass {
   // This is used so we can detect store equivalence changes properly.
   int StoreCount = 0;
 
+  // The most dominating leader after our current leader, because the member set
+  // is not sorted and is expensive to keep sorted all the time.
+  std::pair<Value *, unsigned int> NextLeader = {nullptr, ~0U};
+
   explicit CongruenceClass(unsigned ID) : ID(ID) {}
   CongruenceClass(unsigned ID, Value *Leader, const Expression *E)
       : ID(ID), RepLeader(Leader), DefiningExpr(E) {}
@@ -320,8 +328,8 @@ private:
   // Templated to allow them to work both on BB's and BB-edges.
   template <class T>
   Value *lookupOperandLeader(Value *, const User *, const T &) const;
-  void performCongruenceFinding(Value *, const Expression *);
-  void moveValueToNewCongruenceClass(Value *, CongruenceClass *,
+  void performCongruenceFinding(Instruction *, const Expression *);
+  void moveValueToNewCongruenceClass(Instruction *, CongruenceClass *,
                                      CongruenceClass *);
   // Reachability handling.
   void updateReachableEdge(BasicBlock *, BasicBlock *);
@@ -1056,20 +1064,43 @@ void NewGVN::markLeaderChangeTouched(Con
 
 // Move a value, currently in OldClass, to be part of NewClass
 // Update OldClass for the move (including changing leaders, etc)
-void NewGVN::moveValueToNewCongruenceClass(Value *V, CongruenceClass *OldClass,
+void NewGVN::moveValueToNewCongruenceClass(Instruction *I,
+                                           CongruenceClass *OldClass,
                                            CongruenceClass *NewClass) {
-  DEBUG(dbgs() << "New congruence class for " << V << " is " << NewClass->ID
+  DEBUG(dbgs() << "New congruence class for " << I << " is " << NewClass->ID
                << "\n");
-  OldClass->Members.erase(V);
-  NewClass->Members.insert(V);
-  if (isa<StoreInst>(V)) {
+
+  if (I == OldClass->NextLeader.first)
+    OldClass->NextLeader = {nullptr, ~0U};
+
+  // The new instruction and new class leader may either be siblings in the
+  // dominator tree, or the new class leader should dominate the new member
+  // instruction.  We simply check that the member instruction does not properly
+  // dominate the new class leader.
+  assert(
+      !isa<Instruction>(NewClass->RepLeader) || !NewClass->RepLeader ||
+      I == NewClass->RepLeader ||
+      !DT->properlyDominates(
+          I->getParent(),
+          cast<Instruction>(NewClass->RepLeader)->getParent()) &&
+          "New class for instruction should not be dominated by instruction");
+
+  if (NewClass->RepLeader != I) {
+    auto DFSNum = InstrDFS.lookup(I);
+    if (DFSNum < NewClass->NextLeader.second)
+      NewClass->NextLeader = {I, DFSNum};
+  }
+
+  OldClass->Members.erase(I);
+  NewClass->Members.insert(I);
+  if (isa<StoreInst>(I)) {
     --OldClass->StoreCount;
     assert(OldClass->StoreCount >= 0);
     ++NewClass->StoreCount;
     assert(NewClass->StoreCount > 0);
   }
 
-  ValueToClass[V] = NewClass;
+  ValueToClass[I] = NewClass;
   // See if we destroyed the class or need to swap leaders.
   if (OldClass->Members.empty() && OldClass != InitialClass) {
     if (OldClass->DefiningExpr) {
@@ -1078,25 +1109,48 @@ void NewGVN::moveValueToNewCongruenceCla
                    << " from table\n");
       ExpressionToClass.erase(OldClass->DefiningExpr);
     }
-  } else if (OldClass->RepLeader == V) {
+  } else if (OldClass->RepLeader == I) {
     // When the leader changes, the value numbering of
     // everything may change due to symbolization changes, so we need to
     // reprocess.
-    OldClass->RepLeader = *(OldClass->Members.begin());
+    DEBUG(dbgs() << "Leader change!\n");
+    ++NumGVNLeaderChanges;
+    // We don't need to sort members if there is only 1, and we don't care about
+    // sorting the initial class because everything either gets out of it or is
+    // unreachable.
+    if (OldClass->Members.size() == 1 || OldClass == InitialClass) {
+      OldClass->RepLeader = *(OldClass->Members.begin());
+    } else if (OldClass->NextLeader.first) {
+      ++NumGVNAvoidedSortedLeaderChanges;
+      OldClass->RepLeader = OldClass->NextLeader.first;
+      OldClass->NextLeader = {nullptr, ~0U};
+    } else {
+      ++NumGVNSortedLeaderChanges;
+      // TODO: If this ends up to slow, we can maintain a dual structure for
+      // member testing/insertion, or keep things mostly sorted, and sort only
+      // here, or ....
+      std::pair<Value *, unsigned> MinDFS = {nullptr, ~0U};
+      for (const auto X : OldClass->Members) {
+        auto DFSNum = InstrDFS.lookup(X);
+        if (DFSNum < MinDFS.second)
+          MinDFS = {X, DFSNum};
+      }
+      OldClass->RepLeader = MinDFS.first;
+    }
     markLeaderChangeTouched(OldClass);
   }
 }
 
 // Perform congruence finding on a given value numbering expression.
-void NewGVN::performCongruenceFinding(Value *V, const Expression *E) {
-  ValueToExpression[V] = E;
+void NewGVN::performCongruenceFinding(Instruction *I, const Expression *E) {
+  ValueToExpression[I] = E;
   // This is guaranteed to return something, since it will at least find
   // INITIAL.
 
-  CongruenceClass *VClass = ValueToClass[V];
-  assert(VClass && "Should have found a vclass");
+  CongruenceClass *IClass = ValueToClass[I];
+  assert(IClass && "Should have found a IClass");
   // Dead classes should have been eliminated from the mapping.
-  assert(!VClass->Dead && "Found a dead class");
+  assert(!IClass->Dead && "Found a dead class");
 
   CongruenceClass *EClass;
   if (const auto *VE = dyn_cast<VariableExpression>(E)) {
@@ -1118,13 +1172,13 @@ void NewGVN::performCongruenceFinding(Va
         NewClass->RepLeader =
             lookupOperandLeader(SI->getValueOperand(), SI, SI->getParent());
       } else {
-        NewClass->RepLeader = V;
+        NewClass->RepLeader = I;
       }
       assert(!isa<VariableExpression>(E) &&
              "VariableExpression should have been handled already");
 
       EClass = NewClass;
-      DEBUG(dbgs() << "Created new congruence class for " << *V
+      DEBUG(dbgs() << "Created new congruence class for " << *I
                    << " using expression " << *E << " at " << NewClass->ID
                    << " and leader " << *(NewClass->RepLeader) << "\n");
       DEBUG(dbgs() << "Hash value was " << E->getHashValue() << "\n");
@@ -1140,36 +1194,31 @@ void NewGVN::performCongruenceFinding(Va
       assert(!EClass->Dead && "We accidentally looked up a dead class");
     }
   }
-  bool ClassChanged = VClass != EClass;
-  bool LeaderChanged = LeaderChanges.erase(V);
+  bool ClassChanged = IClass != EClass;
+  bool LeaderChanged = LeaderChanges.erase(I);
   if (ClassChanged || LeaderChanged) {
     DEBUG(dbgs() << "Found class " << EClass->ID << " for expression " << E
                  << "\n");
 
     if (ClassChanged)
-
-      moveValueToNewCongruenceClass(V, VClass, EClass);
-
-
-    markUsersTouched(V);
-    if (auto *I = dyn_cast<Instruction>(V)) {
-      if (MemoryAccess *MA = MSSA->getMemoryAccess(I)) {
-        // If this is a MemoryDef, we need to update the equivalence table. If
-        // we determined the expression is congruent to a different memory
-        // state, use that different memory state.  If we determined it didn't,
-        // we update that as well.  Right now, we only support store
-        // expressions.
-        if (!isa<MemoryUse>(MA) && isa<StoreExpression>(E) &&
-            EClass->Members.size() != 1) {
-          auto *DefAccess = cast<StoreExpression>(E)->getDefiningAccess();
-          setMemoryAccessEquivTo(MA, DefAccess != MA ? DefAccess : nullptr);
-        } else {
-          setMemoryAccessEquivTo(MA, nullptr);
-        }
-        markMemoryUsersTouched(MA);
+      moveValueToNewCongruenceClass(I, IClass, EClass);
+    markUsersTouched(I);
+    if (MemoryAccess *MA = MSSA->getMemoryAccess(I)) {
+      // If this is a MemoryDef, we need to update the equivalence table. If
+      // we determined the expression is congruent to a different memory
+      // state, use that different memory state.  If we determined it didn't,
+      // we update that as well.  Right now, we only support store
+      // expressions.
+      if (!isa<MemoryUse>(MA) && isa<StoreExpression>(E) &&
+          EClass->Members.size() != 1) {
+        auto *DefAccess = cast<StoreExpression>(E)->getDefiningAccess();
+        setMemoryAccessEquivTo(MA, DefAccess != MA ? DefAccess : nullptr);
+      } else {
+        setMemoryAccessEquivTo(MA, nullptr);
       }
+      markMemoryUsersTouched(MA);
     }
-  } else if (StoreInst *SI = dyn_cast<StoreInst>(V)) {
+  } else if (auto *SI = dyn_cast<StoreInst>(I)) {
     // There is, sadly, one complicating thing for stores.  Stores do not
     // produce values, only consume them.  However, in order to make loads and
     // stores value number the same, we ignore the value operand of the store.

Modified: projects/clang400-import/contrib/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp	Sun Jan 22 17:49:14 2017	(r312638)
+++ projects/clang400-import/contrib/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp	Sun Jan 22 18:02:44 2017	(r312639)
@@ -5602,6 +5602,13 @@ void LoopVectorizationLegality::collectL
       // is consecutive-like, the pointer operand should remain uniform.
       else if (hasConsecutiveLikePtrOperand(&I))
         ConsecutiveLikePtrs.insert(Ptr);
+
+      // Otherwise, if the memory instruction will be vectorized and its
+      // pointer operand is non-consecutive-like, the memory instruction should
+      // be a gather or scatter operation. Its pointer operand will be
+      // non-uniform.
+      else
+        PossibleNonUniformPtrs.insert(Ptr);
     }
 
   // Add to the Worklist all consecutive and consecutive-like pointers that

Modified: projects/clang400-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td
==============================================================================
--- projects/clang400-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td	Sun Jan 22 17:49:14 2017	(r312638)
+++ projects/clang400-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td	Sun Jan 22 18:02:44 2017	(r312639)
@@ -3337,8 +3337,8 @@ def note_ovl_candidate : Note<"candidate
 def note_ovl_candidate_inherited_constructor : Note<
     "constructor from base class %0 inherited here">;
 def note_ovl_candidate_inherited_constructor_slice : Note<
-    "constructor inherited from base class cannot be used to initialize from "
-    "an argument of the derived class type">;
+    "candidate %select{constructor|template}0 ignored: "
+    "inherited constructor cannot be used to %select{copy|move}1 object">;
 def note_ovl_candidate_illegal_constructor : Note<
     "candidate %select{constructor|template}0 ignored: "
     "instantiation %select{takes|would take}0 its own class type by value">;

Modified: projects/clang400-import/contrib/llvm/tools/clang/lib/Basic/Targets.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/tools/clang/lib/Basic/Targets.cpp	Sun Jan 22 17:49:14 2017	(r312638)
+++ projects/clang400-import/contrib/llvm/tools/clang/lib/Basic/Targets.cpp	Sun Jan 22 18:02:44 2017	(r312639)
@@ -512,7 +512,7 @@ protected:
     Builder.defineMacro("__unix__");
     Builder.defineMacro("__ELF__");
     if (Opts.POSIXThreads)
-      Builder.defineMacro("_POSIX_THREADS");
+      Builder.defineMacro("_REENTRANT");
 
     switch (Triple.getArch()) {
     default:

Modified: projects/clang400-import/contrib/llvm/tools/clang/lib/Parse/ParseExpr.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/tools/clang/lib/Parse/ParseExpr.cpp	Sun Jan 22 17:49:14 2017	(r312638)
+++ projects/clang400-import/contrib/llvm/tools/clang/lib/Parse/ParseExpr.cpp	Sun Jan 22 18:02:44 2017	(r312639)
@@ -1652,9 +1652,10 @@ Parser::ParsePostfixExpressionSuffix(Exp
 
       if (Tok.is(tok::code_completion)) {
         // Code completion for a member access expression.
-        Actions.CodeCompleteMemberReferenceExpr(
-            getCurScope(), LHS.get(), OpLoc, OpKind == tok::arrow,
-            ExprStatementTokLoc == LHS.get()->getLocStart());
+        if (Expr *Base = LHS.get())
+          Actions.CodeCompleteMemberReferenceExpr(
+              getCurScope(), Base, OpLoc, OpKind == tok::arrow,
+              ExprStatementTokLoc == Base->getLocStart());
 
         cutOffParsing();
         return ExprError();

Modified: projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/SemaOverload.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/SemaOverload.cpp	Sun Jan 22 17:49:14 2017	(r312638)
+++ projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/SemaOverload.cpp	Sun Jan 22 18:02:44 2017	(r312639)
@@ -5944,6 +5944,28 @@ Sema::AddOverloadCandidate(FunctionDecl 
       Candidate.FailureKind = ovl_fail_illegal_constructor;
       return;
     }
+
+    // C++ [over.match.funcs]p8: (proposed DR resolution)
+    //   A constructor inherited from class type C that has a first parameter
+    //   of type "reference to P" (including such a constructor instantiated
+    //   from a template) is excluded from the set of candidate functions when
+    //   constructing an object of type cv D if the argument list has exactly
+    //   one argument and D is reference-related to P and P is reference-related
+    //   to C.
+    auto *Shadow = dyn_cast<ConstructorUsingShadowDecl>(FoundDecl.getDecl());
+    if (Shadow && Args.size() == 1 && Constructor->getNumParams() >= 1 &&
+        Constructor->getParamDecl(0)->getType()->isReferenceType()) {
+      QualType P = Constructor->getParamDecl(0)->getType()->getPointeeType();
+      QualType C = Context.getRecordType(Constructor->getParent());
+      QualType D = Context.getRecordType(Shadow->getParent());
+      SourceLocation Loc = Args.front()->getExprLoc();
+      if ((Context.hasSameUnqualifiedType(P, C) || IsDerivedFrom(Loc, P, C)) &&
+          (Context.hasSameUnqualifiedType(D, P) || IsDerivedFrom(Loc, D, P))) {
+        Candidate.Viable = false;
+        Candidate.FailureKind = ovl_fail_inhctor_slice;
+        return;
+      }
+    }
   }
 
   unsigned NumParams = Proto->getNumParams();
@@ -6016,31 +6038,6 @@ Sema::AddOverloadCandidate(FunctionDecl 
     }
   }
 
-  // C++ [over.best.ics]p4+: (proposed DR resolution)
-  //   If the target is the first parameter of an inherited constructor when
-  //   constructing an object of type C with an argument list that has exactly
-  //   one expression, an implicit conversion sequence cannot be formed if C is
-  //   reference-related to the type that the argument would have after the
-  //   application of the user-defined conversion (if any) and before the final
-  //   standard conversion sequence. 
-  auto *Shadow = dyn_cast<ConstructorUsingShadowDecl>(FoundDecl.getDecl());
-  if (Shadow && Args.size() == 1 && !isa<InitListExpr>(Args.front())) {
-    bool DerivedToBase, ObjCConversion, ObjCLifetimeConversion;
-    QualType ConvertedArgumentType = Args.front()->getType();
-    if (Candidate.Conversions[0].isUserDefined())
-      ConvertedArgumentType =
-          Candidate.Conversions[0].UserDefined.After.getFromType();
-    if (CompareReferenceRelationship(Args.front()->getLocStart(),
-                                     Context.getRecordType(Shadow->getParent()),
-                                     ConvertedArgumentType, DerivedToBase,
-                                     ObjCConversion,
-                                     ObjCLifetimeConversion) >= Ref_Related) {
-      Candidate.Viable = false;
-      Candidate.FailureKind = ovl_fail_inhctor_slice;
-      return;
-    }
-  }
-
   if (EnableIfAttr *FailedAttr = CheckEnableIf(Function, Args)) {
     Candidate.Viable = false;
     Candidate.FailureKind = ovl_fail_enable_if;
@@ -10222,8 +10219,13 @@ static void NoteFunctionCandidate(Sema &
     return DiagnoseOpenCLExtensionDisabled(S, Cand);
 
   case ovl_fail_inhctor_slice:
+    // It's generally not interesting to note copy/move constructors here.
+    if (cast<CXXConstructorDecl>(Fn)->isCopyOrMoveConstructor())
+      return;
     S.Diag(Fn->getLocation(),
-           diag::note_ovl_candidate_inherited_constructor_slice);
+           diag::note_ovl_candidate_inherited_constructor_slice)
+      << (Fn->getPrimaryTemplate() ? 1 : 0)
+      << Fn->getParamDecl(0)->getType()->isRValueReferenceType();
     MaybeEmitInheritedConstructorNote(S, Cand->FoundDecl);
     return;
 

Modified: projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/SemaTemplate.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/SemaTemplate.cpp	Sun Jan 22 17:49:14 2017	(r312638)
+++ projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/SemaTemplate.cpp	Sun Jan 22 18:02:44 2017	(r312639)
@@ -5127,18 +5127,22 @@ ExprResult Sema::CheckTemplateArgument(N
   if (CTAK == CTAK_Deduced &&
       !Context.hasSameType(ParamType.getNonLValueExprType(Context),
                            Arg->getType())) {
-    // C++ [temp.deduct.type]p17: (DR1770)
-    //   If P has a form that contains <i>, and if the type of i differs from
-    //   the type of the corresponding template parameter of the template named
-    //   by the enclosing simple-template-id, deduction fails.
-    //
-    // Note that CTAK will be CTAK_DeducedFromArrayBound if the form was [i]
-    // rather than <i>.
-    //
-    // FIXME: We interpret the 'i' here as referring to the expression
-    // denoting the non-type template parameter rather than the parameter
-    // itself, and so strip off references before comparing types. It's
-    // not clear how this is supposed to work for references.
+    // FIXME: If either type is dependent, we skip the check. This isn't
+    // correct, since during deduction we're supposed to have replaced each
+    // template parameter with some unique (non-dependent) placeholder.
+    // FIXME: If the argument type contains 'auto', we carry on and fail the
+    // type check in order to force specific types to be more specialized than
+    // 'auto'. It's not clear how partial ordering with 'auto' is supposed to
+    // work.
+    if ((ParamType->isDependentType() || Arg->isTypeDependent()) &&
+        !Arg->getType()->getContainedAutoType()) {
+      Converted = TemplateArgument(Arg);
+      return Arg;
+    }
+    // FIXME: This attempts to implement C++ [temp.deduct.type]p17. Per DR1770,
+    // we should actually be checking the type of the template argument in P,
+    // not the type of the template argument deduced from A, against the
+    // template parameter type.
     Diag(StartLoc, diag::err_deduced_non_type_template_arg_type_mismatch)
       << Arg->getType()
       << ParamType.getUnqualifiedType();

Modified: projects/clang400-import/contrib/llvm/tools/lld/ELF/SymbolTable.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/tools/lld/ELF/SymbolTable.cpp	Sun Jan 22 17:49:14 2017	(r312638)
+++ projects/clang400-import/contrib/llvm/tools/lld/ELF/SymbolTable.cpp	Sun Jan 22 18:02:44 2017	(r312639)
@@ -140,7 +140,7 @@ template <class ELFT>
 DefinedRegular<ELFT> *SymbolTable<ELFT>::addIgnored(StringRef Name,
                                                     uint8_t Visibility) {
   SymbolBody *S = find(Name);
-  if (!S || !S->isUndefined())
+  if (!S || S->isInCurrentDSO())
     return nullptr;
   return addAbsolute(Name, Visibility);
 }
@@ -283,7 +283,7 @@ static int compareDefined(Symbol *S, boo
   if (WasInserted)
     return 1;
   SymbolBody *Body = S->body();
-  if (Body->isLazy() || Body->isUndefined() || Body->isShared())
+  if (Body->isLazy() || !Body->isInCurrentDSO())
     return 1;
   if (Binding == STB_WEAK)
     return -1;
@@ -426,12 +426,8 @@ void SymbolTable<ELFT>::addShared(Shared
   std::tie(S, WasInserted) =
       insert(Name, Sym.getType(), STV_DEFAULT, /*CanOmitFromDynSym*/ true, F);
   // Make sure we preempt DSO symbols with default visibility.
-  if (Sym.getVisibility() == STV_DEFAULT) {
+  if (Sym.getVisibility() == STV_DEFAULT)
     S->ExportDynamic = true;
-    // Exporting preempting symbols takes precedence over linker scripts.
-    if (S->VersionId == VER_NDX_LOCAL)
-      S->VersionId = VER_NDX_GLOBAL;
-  }
   if (WasInserted || isa<Undefined<ELFT>>(S->body())) {
     replaceBody<SharedSymbol<ELFT>>(S, F, Name, Sym, Verdef);
     if (!S->isWeak())
@@ -468,6 +464,14 @@ template <class ELFT> SymbolBody *Symbol
 }
 
 template <class ELFT>
+SymbolBody *SymbolTable<ELFT>::findInCurrentDSO(StringRef Name) {
+  if (SymbolBody *S = find(Name))
+    if (S->isInCurrentDSO())
+      return S;
+  return nullptr;
+}
+
+template <class ELFT>
 void SymbolTable<ELFT>::addLazyArchive(ArchiveFile *F,
                                        const object::Archive::Symbol Sym) {
   Symbol *S;

Modified: projects/clang400-import/contrib/llvm/tools/lld/ELF/SymbolTable.h
==============================================================================
--- projects/clang400-import/contrib/llvm/tools/lld/ELF/SymbolTable.h	Sun Jan 22 17:49:14 2017	(r312638)
+++ projects/clang400-import/contrib/llvm/tools/lld/ELF/SymbolTable.h	Sun Jan 22 18:02:44 2017	(r312639)
@@ -82,6 +82,7 @@ public:
   void scanVersionScript();
 
   SymbolBody *find(StringRef Name);
+  SymbolBody *findInCurrentDSO(StringRef Name);
 
   void trace(StringRef Name);
   void wrap(StringRef Name);

Modified: projects/clang400-import/contrib/llvm/tools/lld/ELF/Symbols.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/tools/lld/ELF/Symbols.cpp	Sun Jan 22 17:49:14 2017	(r312638)
+++ projects/clang400-import/contrib/llvm/tools/lld/ELF/Symbols.cpp	Sun Jan 22 18:02:44 2017	(r312639)
@@ -203,8 +203,8 @@ void SymbolBody::parseSymbolVersion() {
   // Truncate the symbol name so that it doesn't include the version string.
   Name = {S.data(), Pos};
 
-  // If this is an undefined or shared symbol it is not a definition.
-  if (isUndefined() || isShared())
+  // If this is not in this DSO, it is not a definition.
+  if (!isInCurrentDSO())
     return;
 
   // '@@' in a symbol name means the default version.
@@ -299,7 +299,8 @@ uint8_t Symbol::computeBinding() const {
     return Binding;
   if (Visibility != STV_DEFAULT && Visibility != STV_PROTECTED)
     return STB_LOCAL;
-  if (VersionId == VER_NDX_LOCAL && !body()->isUndefined())
+  const SymbolBody *Body = body();
+  if (VersionId == VER_NDX_LOCAL && Body->isInCurrentDSO())
     return STB_LOCAL;
   if (Config->NoGnuUnique && Binding == STB_GNU_UNIQUE)
     return STB_GLOBAL;

Modified: projects/clang400-import/contrib/llvm/tools/lld/ELF/Symbols.h
==============================================================================
--- projects/clang400-import/contrib/llvm/tools/lld/ELF/Symbols.h	Sun Jan 22 17:49:14 2017	(r312638)
+++ projects/clang400-import/contrib/llvm/tools/lld/ELF/Symbols.h	Sun Jan 22 18:02:44 2017	(r312639)
@@ -67,6 +67,7 @@ public:
     return SymbolKind == LazyArchiveKind || SymbolKind == LazyObjectKind;
   }
   bool isShared() const { return SymbolKind == SharedKind; }
+  bool isInCurrentDSO() const { return !isUndefined() && !isShared(); }
   bool isLocal() const { return IsLocal; }
   bool isPreemptible() const;
   StringRef getName() const { return Name; }

Modified: projects/clang400-import/contrib/llvm/tools/lld/ELF/SyntheticSections.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/tools/lld/ELF/SyntheticSections.cpp	Sun Jan 22 17:49:14 2017	(r312638)
+++ projects/clang400-import/contrib/llvm/tools/lld/ELF/SyntheticSections.cpp	Sun Jan 22 18:02:44 2017	(r312639)
@@ -883,9 +883,9 @@ template <class ELFT> void DynamicSectio
     add({DT_FINI_ARRAYSZ, Out<ELFT>::FiniArray, Entry::SecSize});
   }
 
-  if (SymbolBody *B = Symtab<ELFT>::X->find(Config->Init))
+  if (SymbolBody *B = Symtab<ELFT>::X->findInCurrentDSO(Config->Init))
     add({DT_INIT, B});
-  if (SymbolBody *B = Symtab<ELFT>::X->find(Config->Fini))
+  if (SymbolBody *B = Symtab<ELFT>::X->findInCurrentDSO(Config->Fini))
     add({DT_FINI, B});
 
   bool HasVerNeed = In<ELFT>::VerNeed->getNeedNum() != 0;

Modified: projects/clang400-import/contrib/llvm/tools/lld/ELF/Writer.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/tools/lld/ELF/Writer.cpp	Sun Jan 22 17:49:14 2017	(r312638)
+++ projects/clang400-import/contrib/llvm/tools/lld/ELF/Writer.cpp	Sun Jan 22 18:02:44 2017	(r312639)
@@ -641,7 +641,7 @@ static void addOptionalSynthetic(StringR
                                  typename ELFT::uint Val,
                                  uint8_t StOther = STV_HIDDEN) {
   if (SymbolBody *S = Symtab<ELFT>::X->find(Name))
-    if (S->isUndefined() || S->isShared())
+    if (!S->isInCurrentDSO())
       Symtab<ELFT>::X->addSynthetic(Name, Sec, Val, StOther);
 }
 
@@ -661,7 +661,7 @@ static Symbol *addOptionalRegular(String
   SymbolBody *S = Symtab<ELFT>::X->find(Name);
   if (!S)
     return nullptr;
-  if (!S->isUndefined() && !S->isShared())
+  if (S->isInCurrentDSO())
     return S->symbol();
   return addRegular(Name, IS, Value);
 }

Modified: projects/clang400-import/lib/clang/include/clang/Basic/Version.inc
==============================================================================
--- projects/clang400-import/lib/clang/include/clang/Basic/Version.inc	Sun Jan 22 17:49:14 2017	(r312638)
+++ projects/clang400-import/lib/clang/include/clang/Basic/Version.inc	Sun Jan 22 18:02:44 2017	(r312639)
@@ -8,4 +8,4 @@
 
 #define	CLANG_VENDOR			"FreeBSD "
 
-#define	SVN_REVISION			"292009"
+#define	SVN_REVISION			"292732"

Modified: projects/clang400-import/lib/clang/include/lld/Config/Version.inc
==============================================================================
--- projects/clang400-import/lib/clang/include/lld/Config/Version.inc	Sun Jan 22 17:49:14 2017	(r312638)
+++ projects/clang400-import/lib/clang/include/lld/Config/Version.inc	Sun Jan 22 18:02:44 2017	(r312639)
@@ -4,5 +4,5 @@
 #define LLD_VERSION_STRING "4.0.0"
 #define LLD_VERSION_MAJOR 4
 #define LLD_VERSION_MINOR 0
-#define LLD_REVISION_STRING "292009"
+#define LLD_REVISION_STRING "292732"
 #define LLD_REPOSITORY_STRING "FreeBSD"

From owner-svn-src-projects@freebsd.org  Sun Jan 22 18:04:43 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2029ACBC2F8
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Sun, 22 Jan 2017 18:04:43 +0000 (UTC) (envelope-from dim@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id CA3162F2;
 Sun, 22 Jan 2017 18:04:42 +0000 (UTC) (envelope-from dim@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0MI4fQl052540;
 Sun, 22 Jan 2017 18:04:41 GMT (envelope-from dim@FreeBSD.org)
Received: (from dim@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0MI4fHg052539;
 Sun, 22 Jan 2017 18:04:41 GMT (envelope-from dim@FreeBSD.org)
Message-Id: <201701221804.v0MI4fHg052539@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org
 using -f
From: Dimitry Andric <dim@FreeBSD.org>
Date: Sun, 22 Jan 2017 18:04:41 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r312640 - projects/clang400-import/contrib/compiler-rt
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sun, 22 Jan 2017 18:04:43 -0000

Author: dim
Date: Sun Jan 22 18:04:41 2017
New Revision: 312640
URL: https://svnweb.freebsd.org/changeset/base/312640

Log:
  Merge compiler-rt release_40 branch r292732.

Modified:
Directory Properties:
  projects/clang400-import/contrib/compiler-rt/   (props changed)

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

Author: dim
Date: Sun Jan 22 18:06:21 2017
New Revision: 312642
URL: https://svnweb.freebsd.org/changeset/base/312642

Log:
  Merge libc++ release_40 branch r292732.

Modified:
  projects/clang400-import/contrib/libc++/include/__config
  projects/clang400-import/contrib/libc++/include/array
  projects/clang400-import/contrib/libc++/include/new
  projects/clang400-import/contrib/libc++/include/string
  projects/clang400-import/contrib/libc++/include/typeinfo
  projects/clang400-import/contrib/libc++/src/new.cpp
Directory Properties:
  projects/clang400-import/contrib/libc++/   (props changed)

Modified: projects/clang400-import/contrib/libc++/include/__config
==============================================================================
--- projects/clang400-import/contrib/libc++/include/__config	Sun Jan 22 18:04:57 2017	(r312641)
+++ projects/clang400-import/contrib/libc++/include/__config	Sun Jan 22 18:06:21 2017	(r312642)
@@ -835,6 +835,18 @@ template <unsigned> struct __static_asse
 #define _DECLARE_C99_LDBL_MATH 1
 #endif
 
+#if defined(__APPLE__)
+# if !defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && \
+     defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__)
+#   define __MAC_OS_X_VERSION_MIN_REQUIRED __ENVIROMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+# endif
+# if defined(__MAC_OS_X_VERSION_MIN_REQUIRED)
+#   if __MAC_OS_X_VERSION_MIN_REQUIRED < 1060
+#     define _LIBCPP_HAS_NO_ALIGNED_ALLOCATION
+#   endif
+# endif
+#endif // defined(__APPLE__)
+
 #if defined(__APPLE__) || defined(__FreeBSD__)
 #define _LIBCPP_HAS_DEFAULTRUNELOCALE
 #endif

Modified: projects/clang400-import/contrib/libc++/include/array
==============================================================================
--- projects/clang400-import/contrib/libc++/include/array	Sun Jan 22 18:04:57 2017	(r312641)
+++ projects/clang400-import/contrib/libc++/include/array	Sun Jan 22 18:06:21 2017	(r312642)
@@ -185,14 +185,17 @@ struct _LIBCPP_TEMPLATE_VIS array
     _LIBCPP_CONSTEXPR bool empty() const _NOEXCEPT {return _Size == 0;}
 
     // element access:
-    _LIBCPP_INLINE_VISIBILITY reference operator[](size_type __n)             {return __elems_[__n];}
-    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 const_reference operator[](size_type __n) const {return __elems_[__n];}
-    reference at(size_type __n);
+    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14
+    reference operator[](size_type __n)             {return __elems_[__n];}
+    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
+    const_reference operator[](size_type __n) const {return __elems_[__n];}
+
+    _LIBCPP_CONSTEXPR_AFTER_CXX14       reference at(size_type __n);
     _LIBCPP_CONSTEXPR_AFTER_CXX11 const_reference at(size_type __n) const;
 
-    _LIBCPP_INLINE_VISIBILITY reference front()             {return __elems_[0];}
+    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14 reference front()             {return __elems_[0];}
     _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 const_reference front() const {return __elems_[0];}
-    _LIBCPP_INLINE_VISIBILITY reference back()              {return __elems_[_Size > 0 ? _Size-1 : 0];}
+    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14 reference back()              {return __elems_[_Size > 0 ? _Size-1 : 0];}
     _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 const_reference back() const  {return __elems_[_Size > 0 ? _Size-1 : 0];}
 
     _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14
@@ -202,6 +205,7 @@ struct _LIBCPP_TEMPLATE_VIS array
 };
 
 template <class _Tp, size_t _Size>
+_LIBCPP_CONSTEXPR_AFTER_CXX14
 typename array<_Tp, _Size>::reference
 array<_Tp, _Size>::at(size_type __n)
 {

Modified: projects/clang400-import/contrib/libc++/include/new
==============================================================================
--- projects/clang400-import/contrib/libc++/include/new	Sun Jan 22 18:04:57 2017	(r312641)
+++ projects/clang400-import/contrib/libc++/include/new	Sun Jan 22 18:06:21 2017	(r312642)
@@ -101,8 +101,9 @@ void  operator delete[](void* ptr, void*
 # define _LIBCPP_HAS_NO_SIZED_DEALLOCATION
 #endif
 
-#if !(defined(_LIBCPP_BUILDING_NEW) || _LIBCPP_STD_VER > 14 || \
-    (defined(__cpp_aligned_new) && __cpp_aligned_new >= 201606))
+#if !defined(_LIBCPP_HAS_NO_ALIGNED_ALLOCATION) && \
+    (!(defined(_LIBCPP_BUILDING_NEW) || _LIBCPP_STD_VER > 14 || \
+    (defined(__cpp_aligned_new) && __cpp_aligned_new >= 201606)))
 # define _LIBCPP_HAS_NO_ALIGNED_ALLOCATION
 #endif
 
@@ -144,7 +145,7 @@ public:
 
 #endif  // defined(_LIBCPP_BUILDING_NEW) || (_LIBCPP_STD_VER > 11)
 
-#ifndef _LIBCPP_HAS_NO_ALIGNED_ALLOCATION
+#if !defined(_LIBCPP_HAS_NO_ALIGNED_ALLOCATION) || _LIBCPP_STD_VER > 14
 #ifndef _LIBCPP_CXX03_LANG
 enum class _LIBCPP_ENUM_VIS align_val_t : size_t { };
 #else

Modified: projects/clang400-import/contrib/libc++/include/string
==============================================================================
--- projects/clang400-import/contrib/libc++/include/string	Sun Jan 22 18:04:57 2017	(r312641)
+++ projects/clang400-import/contrib/libc++/include/string	Sun Jan 22 18:06:21 2017	(r312642)
@@ -818,6 +818,7 @@ public:
     operator __self_view() const _NOEXCEPT { return __self_view(data(), size()); }
 
     basic_string& operator=(const basic_string& __str);
+    template <class = void>
     _LIBCPP_INLINE_VISIBILITY
     basic_string& operator=(__self_view __sv)  {return assign(__sv);}
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES

Modified: projects/clang400-import/contrib/libc++/include/typeinfo
==============================================================================
--- projects/clang400-import/contrib/libc++/include/typeinfo	Sun Jan 22 18:04:57 2017	(r312641)
+++ projects/clang400-import/contrib/libc++/include/typeinfo	Sun Jan 22 18:06:21 2017	(r312642)
@@ -95,12 +95,13 @@ protected:
     uintptr_t __type_name;
 
     _LIBCPP_INLINE_VISIBILITY
-    type_info(const char* __n) : __type_name(reinterpret_cast<uintptr_t>(__n)) {}
+    explicit type_info(const char* __n)
+      : __type_name(reinterpret_cast<uintptr_t>(__n)) {}
 #else
     const char *__type_name;
 
     _LIBCPP_INLINE_VISIBILITY
-    type_info(const char* __n) : __type_name(__n) {}
+    explicit type_info(const char* __n) : __type_name(__n) {}
 #endif
 
 public:

Modified: projects/clang400-import/contrib/libc++/src/new.cpp
==============================================================================
--- projects/clang400-import/contrib/libc++/src/new.cpp	Sun Jan 22 18:04:57 2017	(r312641)
+++ projects/clang400-import/contrib/libc++/src/new.cpp	Sun Jan 22 18:06:21 2017	(r312642)
@@ -64,38 +64,6 @@ operator new(std::size_t size) _THROW_BA
 }
 
 _LIBCPP_WEAK
-void *
-operator new(std::size_t size, std::align_val_t alignment) _THROW_BAD_ALLOC
-{
-    if (size == 0)
-        size = 1;
-    if (static_cast<size_t>(alignment) < sizeof(void*))
-      alignment = std::align_val_t(sizeof(void*));
-    void* p;
-#if defined(_LIBCPP_MSVCRT)
-    while ((p = _aligned_malloc(size, static_cast<size_t>(alignment))) == nullptr)
-#else
-    while (::posix_memalign(&p, static_cast<size_t>(alignment), size) != 0)
-#endif
-    {
-        // If posix_memalign fails and there is a new_handler,
-        // call it to try free up memory.
-        std::new_handler nh = std::get_new_handler();
-        if (nh)
-            nh();
-        else {
-#ifndef _LIBCPP_NO_EXCEPTIONS
-            throw std::bad_alloc();
-#else
-            p = nullptr; // posix_memalign doesn't initialize 'p' on failure
-            break;
-#endif
-        }
-    }
-    return p;
-}
-
-_LIBCPP_WEAK
 void*
 operator new(size_t size, const std::nothrow_t&) _NOEXCEPT
 {
@@ -116,14 +84,21 @@ operator new(size_t size, const std::not
 
 _LIBCPP_WEAK
 void*
-operator new(size_t size, std::align_val_t alignment, const std::nothrow_t&) _NOEXCEPT
+operator new[](size_t size) _THROW_BAD_ALLOC
+{
+    return ::operator new(size);
+}
+
+_LIBCPP_WEAK
+void*
+operator new[](size_t size, const std::nothrow_t&) _NOEXCEPT
 {
     void* p = 0;
 #ifndef _LIBCPP_NO_EXCEPTIONS
     try
     {
 #endif  // _LIBCPP_NO_EXCEPTIONS
-        p = ::operator new(size, alignment);
+        p = ::operator new[](size);
 #ifndef _LIBCPP_NO_EXCEPTIONS
     }
     catch (...)
@@ -134,29 +109,92 @@ operator new(size_t size, std::align_val
 }
 
 _LIBCPP_WEAK
-void*
-operator new[](size_t size) _THROW_BAD_ALLOC
+void
+operator delete(void* ptr) _NOEXCEPT
 {
-    return ::operator new(size);
+    if (ptr)
+        ::free(ptr);
 }
 
 _LIBCPP_WEAK
-void*
-operator new[](size_t size, std::align_val_t alignment) _THROW_BAD_ALLOC
+void
+operator delete(void* ptr, const std::nothrow_t&) _NOEXCEPT
 {
-    return ::operator new(size, alignment);
+    ::operator delete(ptr);
+}
+
+_LIBCPP_WEAK
+void
+operator delete(void* ptr, size_t) _NOEXCEPT
+{
+    ::operator delete(ptr);
+}
+
+_LIBCPP_WEAK
+void
+operator delete[] (void* ptr) _NOEXCEPT
+{
+    ::operator delete(ptr);
+}
+
+_LIBCPP_WEAK
+void
+operator delete[] (void* ptr, const std::nothrow_t&) _NOEXCEPT
+{
+    ::operator delete[](ptr);
+}
+
+_LIBCPP_WEAK
+void
+operator delete[] (void* ptr, size_t) _NOEXCEPT
+{
+    ::operator delete[](ptr);
+}
+
+#if !defined(_LIBCPP_HAS_NO_ALIGNED_ALLOCATION)
+
+_LIBCPP_WEAK
+void *
+operator new(std::size_t size, std::align_val_t alignment) _THROW_BAD_ALLOC
+{
+    if (size == 0)
+        size = 1;
+    if (static_cast<size_t>(alignment) < sizeof(void*))
+      alignment = std::align_val_t(sizeof(void*));
+    void* p;
+#if defined(_LIBCPP_MSVCRT)
+    while ((p = _aligned_malloc(size, static_cast<size_t>(alignment))) == nullptr)
+#else
+    while (::posix_memalign(&p, static_cast<size_t>(alignment), size) != 0)
+#endif
+    {
+        // If posix_memalign fails and there is a new_handler,
+        // call it to try free up memory.
+        std::new_handler nh = std::get_new_handler();
+        if (nh)
+            nh();
+        else {
+#ifndef _LIBCPP_NO_EXCEPTIONS
+            throw std::bad_alloc();
+#else
+            p = nullptr; // posix_memalign doesn't initialize 'p' on failure
+            break;
+#endif
+        }
+    }
+    return p;
 }
 
 _LIBCPP_WEAK
 void*
-operator new[](size_t size, const std::nothrow_t&) _NOEXCEPT
+operator new(size_t size, std::align_val_t alignment, const std::nothrow_t&) _NOEXCEPT
 {
     void* p = 0;
 #ifndef _LIBCPP_NO_EXCEPTIONS
     try
     {
 #endif  // _LIBCPP_NO_EXCEPTIONS
-        p = ::operator new[](size);
+        p = ::operator new(size, alignment);
 #ifndef _LIBCPP_NO_EXCEPTIONS
     }
     catch (...)
@@ -168,6 +206,13 @@ operator new[](size_t size, const std::n
 
 _LIBCPP_WEAK
 void*
+operator new[](size_t size, std::align_val_t alignment) _THROW_BAD_ALLOC
+{
+    return ::operator new(size, alignment);
+}
+
+_LIBCPP_WEAK
+void*
 operator new[](size_t size, std::align_val_t alignment, const std::nothrow_t&) _NOEXCEPT
 {
     void* p = 0;
@@ -187,14 +232,6 @@ operator new[](size_t size, std::align_v
 
 _LIBCPP_WEAK
 void
-operator delete(void* ptr) _NOEXCEPT
-{
-    if (ptr)
-        ::free(ptr);
-}
-
-_LIBCPP_WEAK
-void
 operator delete(void* ptr, std::align_val_t) _NOEXCEPT
 {
     if (ptr)
@@ -207,13 +244,6 @@ operator delete(void* ptr, std::align_va
 
 _LIBCPP_WEAK
 void
-operator delete(void* ptr, const std::nothrow_t&) _NOEXCEPT
-{
-    ::operator delete(ptr);
-}
-
-_LIBCPP_WEAK
-void
 operator delete(void* ptr, std::align_val_t alignment, const std::nothrow_t&) _NOEXCEPT
 {
     ::operator delete(ptr, alignment);
@@ -221,13 +251,6 @@ operator delete(void* ptr, std::align_va
 
 _LIBCPP_WEAK
 void
-operator delete(void* ptr, size_t) _NOEXCEPT
-{
-    ::operator delete(ptr);
-}
-
-_LIBCPP_WEAK
-void
 operator delete(void* ptr, size_t, std::align_val_t alignment) _NOEXCEPT
 {
     ::operator delete(ptr, alignment);
@@ -235,13 +258,6 @@ operator delete(void* ptr, size_t, std::
 
 _LIBCPP_WEAK
 void
-operator delete[] (void* ptr) _NOEXCEPT
-{
-    ::operator delete(ptr);
-}
-
-_LIBCPP_WEAK
-void
 operator delete[] (void* ptr, std::align_val_t alignment) _NOEXCEPT
 {
     ::operator delete(ptr, alignment);
@@ -249,13 +265,6 @@ operator delete[] (void* ptr, std::align
 
 _LIBCPP_WEAK
 void
-operator delete[] (void* ptr, const std::nothrow_t&) _NOEXCEPT
-{
-    ::operator delete[](ptr);
-}
-
-_LIBCPP_WEAK
-void
 operator delete[] (void* ptr, std::align_val_t alignment, const std::nothrow_t&) _NOEXCEPT
 {
     ::operator delete[](ptr, alignment);
@@ -263,18 +272,13 @@ operator delete[] (void* ptr, std::align
 
 _LIBCPP_WEAK
 void
-operator delete[] (void* ptr, size_t) _NOEXCEPT
-{
-    ::operator delete[](ptr);
-}
-
-_LIBCPP_WEAK
-void
 operator delete[] (void* ptr, size_t, std::align_val_t alignment) _NOEXCEPT
 {
     ::operator delete[](ptr, alignment);
 }
 
+#endif // !defined(_LIBCPP_HAS_NO_ALIGNED_ALLOCATION)
+
 #endif // !__GLIBCXX__
 
 namespace std

From owner-svn-src-projects@freebsd.org  Sun Jan 22 18:31:50 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 88606CBCE90
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Sun, 22 Jan 2017 18:31:50 +0000 (UTC) (envelope-from dim@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 4A6F2862;
 Sun, 22 Jan 2017 18:31:50 +0000 (UTC) (envelope-from dim@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0MIVnO9063749;
 Sun, 22 Jan 2017 18:31:49 GMT (envelope-from dim@FreeBSD.org)
Received: (from dim@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0MIVnsM063748;
 Sun, 22 Jan 2017 18:31:49 GMT (envelope-from dim@FreeBSD.org)
Message-Id: <201701221831.v0MIVnsM063748@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org
 using -f
From: Dimitry Andric <dim@FreeBSD.org>
Date: Sun, 22 Jan 2017 18:31:49 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r312643 -
 projects/clang400-import/contrib/llvm/lib/Target/X86
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sun, 22 Jan 2017 18:31:50 -0000

Author: dim
Date: Sun Jan 22 18:31:49 2017
New Revision: 312643
URL: https://svnweb.freebsd.org/changeset/base/312643

Log:
  Pull in r292758 from upstream llvm trunk (by Sanjay Patel):
  
    [x86] avoid crashing with illegal vector type (PR31672)
  
    https://llvm.org/bugs/show_bug.cgi?id=31672
  
  This fixes an assertion while building graphics/gegl3.
  
  PR:		216166

Modified:
  projects/clang400-import/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp

Modified: projects/clang400-import/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp	Sun Jan 22 18:06:21 2017	(r312642)
+++ projects/clang400-import/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp	Sun Jan 22 18:31:49 2017	(r312643)
@@ -28788,10 +28788,12 @@ static SDValue combineExtractVectorElt(S
   return SDValue();
 }
 
-/// If a vector select has an operand that is -1 or 0, simplify the select to a
-/// bitwise logic operation.
-static SDValue combineVSelectWithAllOnesOrZeros(SDNode *N, SelectionDAG &DAG,
-                                                const X86Subtarget &Subtarget) {
+/// If a vector select has an operand that is -1 or 0, try to simplify the
+/// select to a bitwise logic operation.
+static SDValue
+combineVSelectWithAllOnesOrZeros(SDNode *N, SelectionDAG &DAG,
+                                 TargetLowering::DAGCombinerInfo &DCI,
+                                 const X86Subtarget &Subtarget) {
   SDValue Cond = N->getOperand(0);
   SDValue LHS = N->getOperand(1);
   SDValue RHS = N->getOperand(2);
@@ -28853,18 +28855,28 @@ static SDValue combineVSelectWithAllOnes
     }
   }
 
-  if (!TValIsAllOnes && !FValIsAllZeros)
+  // vselect Cond, 111..., 000... -> Cond
+  if (TValIsAllOnes && FValIsAllZeros)
+    return DAG.getBitcast(VT, Cond);
+
+  if (!DCI.isBeforeLegalize() && !TLI.isTypeLegal(CondVT))
     return SDValue();
 
-  SDValue Ret;
-  if (TValIsAllOnes && FValIsAllZeros)
-    Ret = Cond;
-  else if (TValIsAllOnes)
-    Ret = DAG.getNode(ISD::OR, DL, CondVT, Cond, DAG.getBitcast(CondVT, RHS));
-  else if (FValIsAllZeros)
-    Ret = DAG.getNode(ISD::AND, DL, CondVT, Cond, DAG.getBitcast(CondVT, LHS));
+  // vselect Cond, 111..., X -> or Cond, X
+  if (TValIsAllOnes) {
+    SDValue CastRHS = DAG.getBitcast(CondVT, RHS);
+    SDValue Or = DAG.getNode(ISD::OR, DL, CondVT, Cond, CastRHS);
+    return DAG.getBitcast(VT, Or);
+  }
 
-  return DAG.getBitcast(VT, Ret);
+  // vselect Cond, X, 000... -> and Cond, X
+  if (FValIsAllZeros) {
+    SDValue CastLHS = DAG.getBitcast(CondVT, LHS);
+    SDValue And = DAG.getNode(ISD::AND, DL, CondVT, Cond, CastLHS);
+    return DAG.getBitcast(VT, And);
+  }
+
+  return SDValue();
 }
 
 static SDValue combineSelectOfTwoConstants(SDNode *N, SelectionDAG &DAG) {
@@ -29353,7 +29365,7 @@ static SDValue combineSelect(SDNode *N, 
     }
   }
 
-  if (SDValue V = combineVSelectWithAllOnesOrZeros(N, DAG, Subtarget))
+  if (SDValue V = combineVSelectWithAllOnesOrZeros(N, DAG, DCI, Subtarget))
     return V;
 
   // If this is a *dynamic* select (non-constant condition) and we can match

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

Author: dim
Date: Mon Jan 23 22:10:57 2017
New Revision: 312673
URL: https://svnweb.freebsd.org/changeset/base/312673

Log:
  Pull in r292830 from upstream libc++ trunk (by Eric Fiselier):
  
    Fix GCC C++03 build by hiding default template argument in C++03
  
  This allows the graphics/GraphicsMagic to compile with gcc 4.9 and
  libc++.
  
  PR:		216404

Modified:
  projects/clang400-import/contrib/libc++/include/string

Modified: projects/clang400-import/contrib/libc++/include/string
==============================================================================
--- projects/clang400-import/contrib/libc++/include/string	Mon Jan 23 21:09:27 2017	(r312672)
+++ projects/clang400-import/contrib/libc++/include/string	Mon Jan 23 22:10:57 2017	(r312673)
@@ -818,7 +818,10 @@ public:
     operator __self_view() const _NOEXCEPT { return __self_view(data(), size()); }
 
     basic_string& operator=(const basic_string& __str);
+
+#ifndef _LIBCPP_CXX03_LANG
     template <class = void>
+#endif
     _LIBCPP_INLINE_VISIBILITY
     basic_string& operator=(__self_view __sv)  {return assign(__sv);}
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES

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

Author: dim
Date: Mon Jan 23 23:20:00 2017
New Revision: 312675
URL: https://svnweb.freebsd.org/changeset/base/312675

Log:
  Pull in r292833 from upstream libc++ trunk (by Eric Fiselier):
  
    Manually force the use of __decltype in C++03 with Clang 3.4.
  
    <string> uses `decltype` in a way incompatible with `__typeof__`.
    This is problematic when compiling <string> with Clang 3.4 because
    even though it provides `__decltype` libc++ still used `__typeof__`
    because clang 3.4 doesn't provide __is_identifier which libc++
    uses to detect __decltype.
  
    This patch manually detects Clang 3.4 and properly configures
    for it.
  
  This allows the graphics/openshadinglanguage port to build with
  lang/clang34.
  
  PR:		216054

Modified:
  projects/clang400-import/contrib/libc++/include/__config

Modified: projects/clang400-import/contrib/libc++/include/__config
==============================================================================
--- projects/clang400-import/contrib/libc++/include/__config	Mon Jan 23 23:14:41 2017	(r312674)
+++ projects/clang400-import/contrib/libc++/include/__config	Mon Jan 23 23:20:00 2017	(r312675)
@@ -103,6 +103,9 @@
 
 #if defined(__clang__)
 #define _LIBCPP_COMPILER_CLANG
+# ifndef __apple_build_version__
+#   define _LIBCPP_CLANG_VER (__clang_major__ * 100 + __clang_minor__)
+# endif
 #elif defined(__GNUC__)
 #define _LIBCPP_COMPILER_GCC
 #elif defined(_MSC_VER)
@@ -111,6 +114,10 @@
 #define _LIBCPP_COMPILER_IBM
 #endif
 
+#ifndef _LIBCPP_CLANG_VER
+#define _LIBCPP_CLANG_VER 0
+#endif
+
 // FIXME: ABI detection should be done via compiler builtin macros. This
 // is just a placeholder until Clang implements such macros. For now assume
 // that Windows compilers pretending to be MSVC++ target the microsoft ABI.
@@ -741,7 +748,7 @@ template <unsigned> struct __static_asse
 
 #ifdef _LIBCPP_HAS_NO_DECLTYPE
 // GCC 4.6 provides __decltype in all standard modes.
-#if !__is_identifier(__decltype) || _GNUC_VER >= 406
+#if !__is_identifier(__decltype) || _LIBCPP_CLANG_VER >= 304 || _GNUC_VER >= 406
 #  define decltype(__x) __decltype(__x)
 #else
 #  define decltype(__x) __typeof__(__x)

From owner-svn-src-projects@freebsd.org  Tue Jan 24 05:06:53 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id E71D7CBFAF1
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Tue, 24 Jan 2017 05:06:53 +0000 (UTC) (envelope-from ae@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id AFB1D3CB;
 Tue, 24 Jan 2017 05:06:53 +0000 (UTC) (envelope-from ae@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0O56q1r020436;
 Tue, 24 Jan 2017 05:06:52 GMT (envelope-from ae@FreeBSD.org)
Received: (from ae@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0O56qCp020431;
 Tue, 24 Jan 2017 05:06:52 GMT (envelope-from ae@FreeBSD.org)
Message-Id: <201701240506.v0O56qCp020431@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org
 using -f
From: "Andrey V. Elsukov" <ae@FreeBSD.org>
Date: Tue, 24 Jan 2017 05:06:52 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r312682 - in projects/ipsec: lib/libipsec sys/net
 sys/netipsec
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 24 Jan 2017 05:06:54 -0000

Author: ae
Date: Tue Jan 24 05:06:52 2017
New Revision: 312682
URL: https://svnweb.freebsd.org/changeset/base/312682

Log:
  Make it possible to change SA addresses via SADB_UPDATE.
  
  This is not allowed by RFC 2367, but it is useful feature for implementing
  MOBIKE protocol by IKEd (RFC 4555). We still support the old behavior of
  the SADB_UPDATE, but two new extension headers are added:
  SADB_X_EXT_NEW_ADDRESS_SRC and SADB_X_EXT_NEW_ADDRESS_DST. IKEd can use
  them to specify new addresses for MATURE SA. When kernel has discovered
  these headers, it allocates new SA, copies the content of old SA into new,
  then unlinks old SA from the SADB. The same actions will be done, when
  IKEd wants to change NAT-T configuration.
  
  This is similar to making SADB_DELETE and SADB_ADD, but it keeps the
  state of SA unchanged, that is impossible to make with SADB_DELETE
  and SADB_ADD.
  
  To implement this the lock filed of secasvar was changed to be a pointer.
  Also all fields that could not be copied moved to the end of structure.
  Now secasvar lock can be shared between old and new SA, this needed to
  avoid modification of SA content (e.g. replay window) during migration.
  
  Discussed with:	Tobias Brunner <tobias at strongswan org>

Modified:
  projects/ipsec/lib/libipsec/pfkey.c
  projects/ipsec/sys/net/pfkeyv2.h
  projects/ipsec/sys/netipsec/key.c
  projects/ipsec/sys/netipsec/keydb.h

Modified: projects/ipsec/lib/libipsec/pfkey.c
==============================================================================
--- projects/ipsec/lib/libipsec/pfkey.c	Tue Jan 24 03:00:22 2017	(r312681)
+++ projects/ipsec/lib/libipsec/pfkey.c	Tue Jan 24 05:06:52 2017	(r312682)
@@ -1783,6 +1783,8 @@ pfkey_align(msg, mhp)
 		case SADB_X_EXT_NAT_T_OAR:
 		case SADB_X_EXT_NAT_T_FRAG:
 		case SADB_X_EXT_SA_REPLAY:
+		case SADB_X_EXT_NEW_ADDRESS_SRC:
+		case SADB_X_EXT_NEW_ADDRESS_DST:
 			mhp[ext->sadb_ext_type] = (caddr_t)ext;
 			break;
 		default:

Modified: projects/ipsec/sys/net/pfkeyv2.h
==============================================================================
--- projects/ipsec/sys/net/pfkeyv2.h	Tue Jan 24 03:00:22 2017	(r312681)
+++ projects/ipsec/sys/net/pfkeyv2.h	Tue Jan 24 05:06:52 2017	(r312682)
@@ -320,7 +320,9 @@ _Static_assert(sizeof(struct sadb_x_sa_r
 #define SADB_X_EXT_NAT_T_OAR          24	/* Peer's NAT_OA for dst of SA. */
 #define SADB_X_EXT_NAT_T_FRAG         25	/* Manual MTU override. */
 #define SADB_X_EXT_SA_REPLAY          26	/* Replay window override. */
-#define SADB_EXT_MAX                  26
+#define	SADB_X_EXT_NEW_ADDRESS_SRC    27
+#define	SADB_X_EXT_NEW_ADDRESS_DST    28
+#define	SADB_EXT_MAX                  28
 
 #define SADB_SATYPE_UNSPEC	0
 #define SADB_SATYPE_AH		2

Modified: projects/ipsec/sys/netipsec/key.c
==============================================================================
--- projects/ipsec/sys/netipsec/key.c	Tue Jan 24 03:00:22 2017	(r312681)
+++ projects/ipsec/sys/netipsec/key.c	Tue Jan 24 05:06:52 2017	(r312682)
@@ -336,6 +336,8 @@ static const int minsize[] = {
 	sizeof(struct sadb_address),	/* SADB_X_EXT_NAT_T_OAR */
 	sizeof(struct sadb_x_nat_t_frag),/* SADB_X_EXT_NAT_T_FRAG */
 	sizeof(struct sadb_x_sa_replay), /* SADB_X_EXT_SA_REPLAY */
+	sizeof(struct sadb_address),	/* SADB_X_EXT_NEW_ADDRESS_SRC */
+	sizeof(struct sadb_address),	/* SADB_X_EXT_NEW_ADDRESS_DST */
 };
 _Static_assert(sizeof(minsize)/sizeof(int) == SADB_EXT_MAX + 1, "minsize size mismatch");
 
@@ -367,9 +369,18 @@ static const int maxsize[] = {
 	0,				/* SADB_X_EXT_NAT_T_OAR */
 	sizeof(struct sadb_x_nat_t_frag),/* SADB_X_EXT_NAT_T_FRAG */
 	sizeof(struct sadb_x_sa_replay), /* SADB_X_EXT_SA_REPLAY */
+	0,				/* SADB_X_EXT_NEW_ADDRESS_SRC */
+	0,				/* SADB_X_EXT_NEW_ADDRESS_DST */
 };
 _Static_assert(sizeof(maxsize)/sizeof(int) == SADB_EXT_MAX + 1, "minsize size mismatch");
 
+/*
+ * Internal values for SA flags:
+ * SADB_X_EXT_F_CLONED means that SA was cloned by key_updateaddresses,
+ *	thus we will not free the most of SA content in key_delsav().
+ */
+#define	SADB_X_EXT_F_CLONED	0x80000000
+
 #define	SADB_CHECKLEN(_mhp, _ext)			\
     ((_mhp)->extlen[(_ext)] < minsize[(_ext)] || (maxsize[(_ext)] != 0 && \
 	((_mhp)->extlen[(_ext)] > maxsize[(_ext)])))
@@ -596,6 +607,9 @@ static struct secasvar *key_getsavbyspi(
 static int key_setnatt(struct secasvar *, const struct sadb_msghdr *);
 static int key_setsaval(struct secasvar *, const struct sadb_msghdr *);
 static int key_updatelifetimes(struct secasvar *, const struct sadb_msghdr *);
+static int key_updateaddresses(struct socket *, struct mbuf *,
+    const struct sadb_msghdr *, struct secasvar *, struct secasindex *);
+
 static struct mbuf *key_setdumpsa(struct secasvar *, u_int8_t,
 	u_int8_t, u_int32_t, u_int32_t);
 static struct mbuf *key_setsadbmsg(u_int8_t, u_int16_t, u_int8_t,
@@ -2748,16 +2762,18 @@ key_newsav(const struct sadb_msghdr *mhp
 
 	sav = malloc(sizeof(struct secasvar), M_IPSEC_SA, M_NOWAIT | M_ZERO);
 	if (sav == NULL) {
-		PFKEYSTAT_INC(in_nomem);
-		ipseclog((LOG_DEBUG, "%s: No more memory.\n", __func__));
 		*errp = ENOBUFS;
 		goto done;
 	}
+	sav->lock = malloc(sizeof(struct mtx), M_IPSEC_MISC,
+	    M_NOWAIT | M_ZERO);
+	if (sav->lock == NULL) {
+		*errp = ENOBUFS;
+		goto done;
+	}
+	mtx_init(sav->lock, "ipsec association", NULL, MTX_DEF);
 	sav->lft_c = uma_zalloc(V_key_lft_zone, M_NOWAIT);
 	if (sav->lft_c == NULL) {
-		PFKEYSTAT_INC(in_nomem);
-		ipseclog((LOG_DEBUG, "%s: No more memory.\n", __func__));
-		free(sav, M_IPSEC_SA), sav = NULL;
 		*errp = ENOBUFS;
 		goto done;
 	}
@@ -2769,7 +2785,6 @@ key_newsav(const struct sadb_msghdr *mhp
 	sav->state = SADB_SASTATE_LARVAL;
 	sav->pid = (pid_t)mhp->msg->sadb_msg_pid;
 	SAV_INITREF(sav);
-	SECASVAR_LOCK_INIT(sav);
 again:
 	sah = key_getsah(saidx);
 	if (sah == NULL) {
@@ -2844,12 +2859,21 @@ again:
 done:
 	if (*errp != 0) {
 		if (sav != NULL) {
-			SECASVAR_LOCK_DESTROY(sav);
-			uma_zfree(V_key_lft_zone, sav->lft_c);
+			if (sav->lock != NULL) {
+				mtx_destroy(sav->lock);
+				free(sav->lock, M_IPSEC_MISC);
+			}
+			if (sav->lft_c != NULL)
+				uma_zfree(V_key_lft_zone, sav->lft_c);
 			free(sav, M_IPSEC_SA), sav = NULL;
 		}
 		if (sah != NULL)
 			key_freesah(&sah);
+		if (*errp == ENOBUFS) {
+			ipseclog((LOG_DEBUG, "%s: No more memory.\n",
+			    __func__));
+			PFKEYSTAT_INC(in_nomem);
+		}
 	}
 	return (sav);
 }
@@ -2861,6 +2885,12 @@ static void
 key_cleansav(struct secasvar *sav)
 {
 
+	if (sav->natt != NULL) {
+		free(sav->natt, M_IPSEC_MISC);
+		sav->natt = NULL;
+	}
+	if (sav->flags & SADB_X_EXT_F_CLONED)
+		return;
 	/*
 	 * Cleanup xform state.  Note that zeroize'ing causes the
 	 * keys to be cleared; otherwise we must do it ourself.
@@ -2886,10 +2916,6 @@ key_cleansav(struct secasvar *sav)
 		free(sav->key_enc, M_IPSEC_MISC);
 		sav->key_enc = NULL;
 	}
-	if (sav->natt != NULL) {
-		free(sav->natt, M_IPSEC_MISC);
-		sav->natt = NULL;
-	}
 	if (sav->replay != NULL) {
 		if (sav->replay->bitmap != NULL)
 			free(sav->replay->bitmap, M_IPSEC_MISC);
@@ -2918,10 +2944,17 @@ key_delsav(struct secasvar *sav)
 	IPSEC_ASSERT(sav->refcnt == 0, ("reference count %u > 0",
 	    sav->refcnt));
 
-	/* SA must be unlinked from the chain and hashtbl */
+	/*
+	 * SA must be unlinked from the chain and hashtbl.
+	 * If SA was cloned, we leave all fields untouched,
+	 * except NAT-T config.
+	 */
 	key_cleansav(sav);
-	SECASVAR_LOCK_DESTROY(sav);
-	uma_zfree(V_key_lft_zone, sav->lft_c);
+	if ((sav->flags & SADB_X_EXT_F_CLONED) == 0) {
+		mtx_destroy(sav->lock);
+		free(sav->lock, M_IPSEC_MISC);
+		uma_zfree(V_key_lft_zone, sav->lft_c);
+	}
 	free(sav, M_IPSEC_SA);
 }
 
@@ -3012,7 +3045,6 @@ key_updatelifetimes(struct secasvar *sav
 		}
 		return (0);
 	}
-	/* XXXAE: what should we do with CURRENT lifetime? */
 	/* Both HARD and SOFT extensions must present */
 	if ((SADB_CHECKHDR(mhp, SADB_EXT_LIFETIME_HARD) &&
 	    !SADB_CHECKHDR(mhp, SADB_EXT_LIFETIME_SOFT)) ||
@@ -4939,6 +4971,177 @@ key_getsav_tcpmd5(struct secasindex *sai
 	return (NULL);
 }
 
+static int
+key_updateaddresses(struct socket *so, struct mbuf *m,
+    const struct sadb_msghdr *mhp, struct secasvar *sav,
+    struct secasindex *saidx)
+{
+	struct sockaddr *newaddr;
+	struct secashead *sah;
+	struct secasvar *newsav, *tmp;
+	struct mbuf *n;
+	int error, isnew;
+
+	/* Check that we need to change SAH */
+	if (!SADB_CHECKHDR(mhp, SADB_X_EXT_NEW_ADDRESS_SRC)) {
+		newaddr = (struct sockaddr *)(
+		    ((struct sadb_address *)
+		    mhp->ext[SADB_X_EXT_NEW_ADDRESS_SRC]) + 1);
+		bcopy(newaddr, &saidx->src, newaddr->sa_len);
+		key_porttosaddr(&saidx->src.sa, 0);
+	}
+	if (!SADB_CHECKHDR(mhp, SADB_X_EXT_NEW_ADDRESS_DST)) {
+		newaddr = (struct sockaddr *)(
+		    ((struct sadb_address *)
+		    mhp->ext[SADB_X_EXT_NEW_ADDRESS_DST]) + 1);
+		bcopy(newaddr, &saidx->dst, newaddr->sa_len);
+		key_porttosaddr(&saidx->dst.sa, 0);
+	}
+	if (!SADB_CHECKHDR(mhp, SADB_X_EXT_NEW_ADDRESS_SRC) ||
+	    !SADB_CHECKHDR(mhp, SADB_X_EXT_NEW_ADDRESS_DST)) {
+		error = key_checksockaddrs(&saidx->src.sa, &saidx->dst.sa);
+		if (error != 0) {
+			ipseclog((LOG_DEBUG, "%s: invalid new sockaddr.\n",
+			    __func__));
+			return (error);
+		}
+
+		sah = key_getsah(saidx);
+		if (sah == NULL) {
+			/* create a new SA index */
+			sah = key_newsah(saidx);
+			if (sah == NULL) {
+				ipseclog((LOG_DEBUG,
+				    "%s: No more memory.\n", __func__));
+				return (ENOBUFS);
+			}
+			isnew = 2; /* SAH is new */
+		} else
+			isnew = 1; /* existing SAH is referenced */
+	} else {
+		/*
+		 * src and dst addresses are still the same.
+		 * Do we want to change NAT-T config?
+		 */
+		if (sav->sah->saidx.proto != IPPROTO_ESP ||
+		    SADB_CHECKHDR(mhp, SADB_X_EXT_NAT_T_TYPE) ||
+		    SADB_CHECKHDR(mhp, SADB_X_EXT_NAT_T_SPORT) ||
+		    SADB_CHECKHDR(mhp, SADB_X_EXT_NAT_T_DPORT)) {
+			ipseclog((LOG_DEBUG,
+			    "%s: invalid message: missing required header.\n",
+			    __func__));
+			return (EINVAL);
+		}
+		/* We hold reference to SA, thus SAH will be referenced too. */
+		sah = sav->sah;
+		isnew = 0;
+	}
+
+	newsav = malloc(sizeof(struct secasvar), M_IPSEC_SA,
+	    M_NOWAIT | M_ZERO);
+	if (newsav == NULL) {
+		ipseclog((LOG_DEBUG, "%s: No more memory.\n", __func__));
+		error = ENOBUFS;
+		goto fail;
+	}
+
+	/* Clone SA's content into newsav */
+	SAV_INITREF(newsav);
+	bcopy(sav, newsav, offsetof(struct secasvar, chain));
+	/*
+	 * We create new NAT-T config if it is needed.
+	 * Old NAT-T config will be freed by key_cleansav() when
+	 * last reference to SA will be released.
+	 */
+	newsav->natt = NULL;
+	newsav->sah = sah;
+	newsav->state = SADB_SASTATE_MATURE;
+	error = key_setnatt(sav, mhp);
+	if (error != 0)
+		goto fail;
+
+	SAHTREE_WLOCK();
+	/* Check that SA is still alive */
+	if (sav->state == SADB_SASTATE_DEAD) {
+		/* SA was unlinked */
+		SAHTREE_WUNLOCK();
+		error = ESRCH;
+		goto fail;
+	}
+
+	/* Unlink SA from SAH and SPI hash */
+	IPSEC_ASSERT((sav->flags & SADB_X_EXT_F_CLONED) == 0,
+	    ("SA is already cloned"));
+	IPSEC_ASSERT(sav->state == SADB_SASTATE_MATURE ||
+	    sav->state == SADB_SASTATE_DYING,
+	    ("Wrong SA state %u\n", sav->state));
+	TAILQ_REMOVE(&sav->sah->savtree_alive, sav, chain);
+	LIST_REMOVE(sav, spihash);
+	sav->state = SADB_SASTATE_DEAD;
+
+	/*
+	 * Link new SA with SAH. Keep SAs ordered by
+	 * create time (newer are first).
+	 */
+	TAILQ_FOREACH(tmp, &sah->savtree_alive, chain) {
+		if (newsav->created > tmp->created) {
+			TAILQ_INSERT_BEFORE(tmp, newsav, chain);
+			break;
+		}
+	}
+	if (tmp == NULL)
+		TAILQ_INSERT_TAIL(&sah->savtree_alive, newsav, chain);
+
+	/* Add new SA into SPI hash. */
+	LIST_INSERT_HEAD(SAVHASH_HASH(newsav->spi), newsav, spihash);
+
+	/* Add new SAH into SADB. */
+	if (isnew == 2) {
+		TAILQ_INSERT_HEAD(&V_sahtree, sah, chain);
+		LIST_INSERT_HEAD(SAHADDRHASH_HASH(saidx), sah, addrhash);
+		sah->state = SADB_SASTATE_MATURE;
+		SAH_ADDREF(sah); /* newsav references new SAH */
+	}
+	/*
+	 * isnew == 1 -> @sah was referenced by key_getsah().
+	 * isnew == 0 -> we use the same @sah, that was used by @sav,
+	 *	and we use its reference for @newsav.
+	 */
+	SECASVAR_LOCK(sav);
+	/* XXX: replace cntr with pointer? */
+	newsav->cntr = sav->cntr;
+	sav->flags |= SADB_X_EXT_F_CLONED;
+	SECASVAR_UNLOCK(sav);
+
+	SAHTREE_WUNLOCK();
+
+	KEYDBG(KEY_STAMP,
+	    printf("%s: SA(%p) cloned into SA(%p)\n",
+	    __func__, sav, newsav));
+	KEYDBG(KEY_DATA, kdebug_secasv(newsav));
+
+	key_freesav(&sav); /* release last reference */
+
+	/* set msg buf from mhp */
+	n = key_getmsgbuf_x1(m, mhp);
+	if (n == NULL) {
+		ipseclog((LOG_DEBUG, "%s: No more memory.\n", __func__));
+		return (ENOBUFS);
+	}
+	m_freem(m);
+	key_sendup_mbuf(so, n, KEY_SENDUP_ALL);
+	return (0);
+fail:
+	if (isnew != 0)
+		key_freesah(&sah);
+	if (newsav != NULL) {
+		if (newsav->natt != NULL)
+			free(newsav->natt, M_IPSEC_MISC);
+		free(newsav, M_IPSEC_SA);
+	}
+	return (error);
+}
+
 /*
  * SADB_UPDATE processing
  * receive
@@ -5109,6 +5312,24 @@ key_update(struct socket *so, struct mbu
 			key_freesav(&sav);
 			return (key_senderror(so, m, error));
 		}
+		/*
+		 * This is FreeBSD extension to RFC2367.
+		 * IKEd can specify SADB_X_EXT_NEW_ADDRESS_SRC and/or
+		 * SADB_X_EXT_NEW_ADDRESS_DST when it wants to change
+		 * SA addresses (for example to implement MOBIKE protocol
+		 * as described in RFC4555). Also we allow to change
+		 * NAT-T config.
+		 */
+		if (!SADB_CHECKHDR(mhp, SADB_X_EXT_NEW_ADDRESS_SRC) ||
+		    !SADB_CHECKHDR(mhp, SADB_X_EXT_NEW_ADDRESS_DST) ||
+		    !SADB_CHECKHDR(mhp, SADB_X_EXT_NAT_T_TYPE) ||
+		    sav->natt != NULL) {
+			error = key_updateaddresses(so, m, mhp, sav, &saidx);
+			key_freesav(&sav);
+			if (error != 0)
+				return (key_senderror(so, m, error));
+			return (0);
+		}
 		/* Check that SA is still alive */
 		SAHTREE_WLOCK();
 		if (sav->state == SADB_SASTATE_DEAD) {
@@ -5558,14 +5779,15 @@ key_getmsgbuf_x1(struct mbuf *m, const s
 	IPSEC_ASSERT(mhp->msg != NULL, ("null msg"));
 
 	/* create new sadb_msg to reply. */
-	n = key_gather_mbuf(m, mhp, 1, 14, SADB_EXT_RESERVED,
+	n = key_gather_mbuf(m, mhp, 1, 16, SADB_EXT_RESERVED,
 	    SADB_EXT_SA, SADB_X_EXT_SA2,
 	    SADB_EXT_ADDRESS_SRC, SADB_EXT_ADDRESS_DST,
 	    SADB_EXT_LIFETIME_HARD, SADB_EXT_LIFETIME_SOFT,
 	    SADB_EXT_IDENTITY_SRC, SADB_EXT_IDENTITY_DST,
 	    SADB_X_EXT_NAT_T_TYPE, SADB_X_EXT_NAT_T_SPORT,
 	    SADB_X_EXT_NAT_T_DPORT, SADB_X_EXT_NAT_T_OAI,
-	    SADB_X_EXT_NAT_T_OAR);
+	    SADB_X_EXT_NAT_T_OAR, SADB_X_EXT_NEW_ADDRESS_SRC,
+	    SADB_X_EXT_NEW_ADDRESS_DST);
 	if (!n)
 		return NULL;
 
@@ -7675,6 +7897,8 @@ key_align(struct mbuf *m, struct sadb_ms
 		case SADB_X_EXT_NAT_T_OAR:
 		case SADB_X_EXT_NAT_T_FRAG:
 		case SADB_X_EXT_SA_REPLAY:
+		case SADB_X_EXT_NEW_ADDRESS_SRC:
+		case SADB_X_EXT_NEW_ADDRESS_DST:
 			/* duplicate check */
 			/*
 			 * XXX Are there duplication payloads of either
@@ -7750,6 +7974,10 @@ key_validate_ext(const struct sadb_ext *
 	case SADB_EXT_ADDRESS_SRC:
 	case SADB_EXT_ADDRESS_DST:
 	case SADB_EXT_ADDRESS_PROXY:
+	case SADB_X_EXT_NAT_T_OAI:
+	case SADB_X_EXT_NAT_T_OAR:
+	case SADB_X_EXT_NEW_ADDRESS_SRC:
+	case SADB_X_EXT_NEW_ADDRESS_DST:
 		baselen = PFKEY_ALIGN8(sizeof(struct sadb_address));
 		checktype = ADDR;
 		break;

Modified: projects/ipsec/sys/netipsec/keydb.h
==============================================================================
--- projects/ipsec/sys/netipsec/keydb.h	Tue Jan 24 03:00:22 2017	(r312681)
+++ projects/ipsec/sys/netipsec/keydb.h	Tue Jan 24 05:06:52 2017	(r312682)
@@ -133,61 +133,60 @@ struct comp_algo;
  * to search better candidate. The newer SA (by created time) are placed
  * in the beginning of the savtree list. There is no preference between
  * DYING and MATURE.
+ *
+ * NB: Fields with a tdb_ prefix are part of the "glue" used
+ *     to interface to the OpenBSD crypto support.  This was done
+ *     to distinguish this code from the mainline KAME code.
+ * NB: Fields are sorted on the basis of the frequency of changes, i.e.
+ *     constants and unchangeable fields are going first.
+ * NB: if you want to change this structure, check that this will not break
+ *     key_updateaddresses().
  */
 struct secasvar {
-	TAILQ_ENTRY(secasvar) chain;
-	LIST_ENTRY(secasvar) spihash;
-	LIST_ENTRY(secasvar) drainq;	/* used ONLY by flush callout */
-
 	uint32_t spi;			/* SPI Value, network byte order */
 	uint32_t flags;			/* holder for SADB_KEY_FLAGS */
-
 	uint32_t seq;			/* sequence number */
 	pid_t pid;			/* message's pid */
-
-	uint8_t state;			/* Status of this SA (pfkeyv2.h) */
-	uint8_t alg_auth;		/* Authentication Algorithm Identifier*/
-	uint8_t alg_enc;		/* Cipher Algorithm Identifier */
-	uint8_t alg_comp;		/* Compression Algorithm Identifier */
+	u_int ivlen;			/* length of IV */
 
 	struct secashead *sah;		/* back pointer to the secashead */
 	struct seckey *key_auth;	/* Key for Authentication */
 	struct seckey *key_enc;	        /* Key for Encryption */
 	struct secreplay *replay;	/* replay prevention */
 	struct secnatt *natt;		/* NAT-T config */
-	uint64_t cntr;			/* counter for GCM and CTR */
-	u_int ivlen;			/* length of IV */
+	struct mtx *lock;		/* update/access lock */
 
-	volatile u_int refcnt;		/* reference count */
+	const struct xformsw *tdb_xform;	/* transform */
+	const struct enc_xform *tdb_encalgxform;/* encoding algorithm */
+	const struct auth_hash *tdb_authalgxform;/* authentication algorithm */
+	const struct comp_algo *tdb_compalgxform;/* compression algorithm */
+	uint64_t tdb_cryptoid;		/* crypto session id */
+
+	uint8_t alg_auth;		/* Authentication Algorithm Identifier*/
+	uint8_t alg_enc;		/* Cipher Algorithm Identifier */
+	uint8_t alg_comp;		/* Compression Algorithm Identifier */
+	uint8_t state;			/* Status of this SA (pfkeyv2.h) */
 
-	uint64_t created;		/* time when SA was created */
-	uint64_t firstused;		/* time when SA was first used */
 	counter_u64_t lft_c;		/* CURRENT lifetime */
 #define	lft_c_allocations	lft_c
 #define	lft_c_bytes		lft_c + 1
 	struct seclifetime *lft_h;	/* HARD lifetime */
 	struct seclifetime *lft_s;	/* SOFT lifetime */
 
-	/*
-	 * NB: Fields with a tdb_ prefix are part of the "glue" used
-	 *     to interface to the OpenBSD crypto support.  This was done
-	 *     to distinguish this code from the mainline KAME code.
-	 */
-	const struct xformsw *tdb_xform;	/* transform */
-	const struct enc_xform *tdb_encalgxform;/* encoding algorithm */
-	const struct auth_hash *tdb_authalgxform;/* authentication algorithm */
-	const struct comp_algo *tdb_compalgxform;/* compression algorithm */
-	uint64_t tdb_cryptoid;		/* crypto session id */
+	uint64_t created;		/* time when SA was created */
+	uint64_t firstused;		/* time when SA was first used */
 
-	struct mtx lock;		/* update/access lock */
+	TAILQ_ENTRY(secasvar) chain;
+	LIST_ENTRY(secasvar) spihash;
+	LIST_ENTRY(secasvar) drainq;	/* used ONLY by flush callout */
+
+	uint64_t cntr;			/* counter for GCM and CTR */
+	volatile u_int refcnt;		/* reference count */
 };
 
-#define	SECASVAR_LOCK_INIT(_sav) \
-	mtx_init(&(_sav)->lock, "ipsec association", NULL, MTX_DEF)
-#define	SECASVAR_LOCK(_sav)		mtx_lock(&(_sav)->lock)
-#define	SECASVAR_UNLOCK(_sav)		mtx_unlock(&(_sav)->lock)
-#define	SECASVAR_LOCK_DESTROY(_sav)	mtx_destroy(&(_sav)->lock)
-#define	SECASVAR_LOCK_ASSERT(_sav)	mtx_assert(&(_sav)->lock, MA_OWNED)
+#define	SECASVAR_LOCK(_sav)		mtx_lock((_sav)->lock)
+#define	SECASVAR_UNLOCK(_sav)		mtx_unlock((_sav)->lock)
+#define	SECASVAR_LOCK_ASSERT(_sav)	mtx_assert((_sav)->lock, MA_OWNED)
 #define	SAV_ISGCM(_sav)							\
 			((_sav)->alg_enc == SADB_X_EALG_AESGCM8 ||	\
 			(_sav)->alg_enc == SADB_X_EALG_AESGCM12 ||	\

From owner-svn-src-projects@freebsd.org  Tue Jan 24 19:42:26 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 06F2BCC07C6
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Tue, 24 Jan 2017 19:42:26 +0000 (UTC) (envelope-from ae@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id BBE8A139E;
 Tue, 24 Jan 2017 19:42:25 +0000 (UTC) (envelope-from ae@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0OJgOS2085560;
 Tue, 24 Jan 2017 19:42:24 GMT (envelope-from ae@FreeBSD.org)
Received: (from ae@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0OJgODV085557;
 Tue, 24 Jan 2017 19:42:24 GMT (envelope-from ae@FreeBSD.org)
Message-Id: <201701241942.v0OJgODV085557@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org
 using -f
From: "Andrey V. Elsukov" <ae@FreeBSD.org>
Date: Tue, 24 Jan 2017 19:42:24 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r312717 - projects/ipsec/share/man/man4
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 24 Jan 2017 19:42:26 -0000

Author: ae
Date: Tue Jan 24 19:42:24 2017
New Revision: 312717
URL: https://svnweb.freebsd.org/changeset/base/312717

Log:
  Add if_ipsec(4) manual page and document new ipsec sysctl variables.

Added:
  projects/ipsec/share/man/man4/if_ipsec.4   (contents, props changed)
Modified:
  projects/ipsec/share/man/man4/Makefile
  projects/ipsec/share/man/man4/ipsec.4

Modified: projects/ipsec/share/man/man4/Makefile
==============================================================================
--- projects/ipsec/share/man/man4/Makefile	Tue Jan 24 19:41:55 2017	(r312716)
+++ projects/ipsec/share/man/man4/Makefile	Tue Jan 24 19:42:24 2017	(r312717)
@@ -201,6 +201,7 @@ MAN=	aac.4 \
 	icmp.4 \
 	icmp6.4 \
 	ida.4 \
+	if_ipsec.4 \
 	ifmib.4 \
 	ig4.4 \
 	igb.4 \

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

Modified: projects/ipsec/share/man/man4/ipsec.4
==============================================================================
--- projects/ipsec/share/man/man4/ipsec.4	Tue Jan 24 19:41:55 2017	(r312716)
+++ projects/ipsec/share/man/man4/ipsec.4	Tue Jan 24 19:42:24 2017	(r312717)
@@ -29,7 +29,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd January 1, 2017
+.Dd January 24, 2017
 .Dt IPSEC 4
 .Os
 .Sh NAME
@@ -239,6 +239,8 @@ for tweaking the kernel's IPsec behavior
 .It "net.inet.ipsec.dfbit	integer	yes"
 .It "net.inet.ipsec.ecn	integer	yes"
 .It "net.inet.ipsec.debug	integer	yes"
+.It "net.inet.ipsec.natt_cksum_policy	integer	yes"
+.It "net.inet.ipsec.check_policy_history	integer	yes"
 .It "net.inet6.ipsec6.ecn	integer	yes"
 .It "net.inet6.ipsec6.debug	integer	yes"
 .El
@@ -281,6 +283,24 @@ talks more about the behavior.
 .It Li ipsec.debug
 If set to non-zero, debug messages will be generated via
 .Xr syslog 3 .
+.It Li ipsec.natt_cksum_policy
+This variable controls how the kernel handles TCP and UDP checksums
+when ESP in UDP encapsulation is used for IPsec transport mode.
+If set to non-zero value, the kernel fully recomputes checksums for 
+inbound TCP segments and UDP datagrams after they are decapsulated and
+decrypted. 
+If set to 0 and original addresses were configured for corresponding SA
+by the IKE daemon, the kernel will incrementally recompute checksums for
+inbound TCP segments and UDP datagrams. 
+If addresses weren't configured, the checksums will be ignored.
+.It Li ipsec.check_policy_history
+This variable enables strict policy checking for inbound packets.
+The default behavior for inbound security policies is just make sure,
+that a handled by IPsec packet was decrypted and authenticated.
+If this variable is set to non-zero value, each handled by IPsec packet
+will be checked against the history of used IPsec security associations.
+The check requires matching of the IPsec security protocol, mode, and SA
+addresses.
 .El
 .Pp
 Variables under the
@@ -316,6 +336,7 @@ routines from looking into the IP payloa
 .Xr ipsec_set_policy 3 ,
 .Xr crypto 4 ,
 .Xr enc 4 ,
+.Xr if_ipsec 4 ,
 .Xr icmp6 4 ,
 .Xr intro 4 ,
 .Xr ip6 4 ,

From owner-svn-src-projects@freebsd.org  Tue Jan 24 19:56:25 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id CEEC4CC0AA3
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Tue, 24 Jan 2017 19:56:25 +0000 (UTC) (envelope-from dim@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 855D71B44;
 Tue, 24 Jan 2017 19:56:25 +0000 (UTC) (envelope-from dim@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0OJuOg4090488;
 Tue, 24 Jan 2017 19:56:24 GMT (envelope-from dim@FreeBSD.org)
Received: (from dim@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0OJuMld090469;
 Tue, 24 Jan 2017 19:56:22 GMT (envelope-from dim@FreeBSD.org)
Message-Id: <201701241956.v0OJuMld090469@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org
 using -f
From: Dimitry Andric <dim@FreeBSD.org>
Date: Tue, 24 Jan 2017 19:56:22 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r312719 - in projects/clang400-import:
 contrib/libc++/include contrib/llvm/lib/Bitcode/Reader
 contrib/llvm/lib/Target/AArch64 contrib/llvm/lib/Target/ARM
 contrib/llvm/lib/Transforms/Ins...
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 24 Jan 2017 19:56:25 -0000

Author: dim
Date: Tue Jan 24 19:56:22 2017
New Revision: 312719
URL: https://svnweb.freebsd.org/changeset/base/312719

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

Modified:
  projects/clang400-import/contrib/libc++/include/__config
  projects/clang400-import/contrib/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
  projects/clang400-import/contrib/llvm/lib/Bitcode/Reader/MetadataLoader.cpp
  projects/clang400-import/contrib/llvm/lib/Bitcode/Reader/MetadataLoader.h
  projects/clang400-import/contrib/llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp
  projects/clang400-import/contrib/llvm/lib/Target/ARM/ARMISelLowering.cpp
  projects/clang400-import/contrib/llvm/lib/Target/ARM/ARMISelLowering.h
  projects/clang400-import/contrib/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
  projects/clang400-import/contrib/llvm/lib/Transforms/Scalar/NewGVN.cpp
  projects/clang400-import/contrib/llvm/tools/clang/include/clang/Basic/Builtins.def
  projects/clang400-import/contrib/llvm/tools/clang/lib/AST/ExprConstant.cpp
  projects/clang400-import/contrib/llvm/tools/clang/lib/CodeGen/CGBuiltin.cpp
  projects/clang400-import/contrib/llvm/tools/clang/lib/Lex/PPMacroExpansion.cpp
  projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/SemaDeclCXX.cpp
  projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/SemaExpr.cpp
  projects/clang400-import/contrib/llvm/tools/llvm-cxxfilt/llvm-cxxfilt.cpp
  projects/clang400-import/lib/clang/include/clang/Basic/Version.inc
  projects/clang400-import/lib/clang/include/lld/Config/Version.inc
Directory Properties:
  projects/clang400-import/contrib/compiler-rt/   (props changed)
  projects/clang400-import/contrib/libc++/   (props changed)
  projects/clang400-import/contrib/llvm/   (props changed)
  projects/clang400-import/contrib/llvm/tools/clang/   (props changed)
  projects/clang400-import/contrib/llvm/tools/lld/   (props changed)
  projects/clang400-import/contrib/llvm/tools/lldb/   (props changed)

Modified: projects/clang400-import/contrib/libc++/include/__config
==============================================================================
--- projects/clang400-import/contrib/libc++/include/__config	Tue Jan 24 19:45:33 2017	(r312718)
+++ projects/clang400-import/contrib/libc++/include/__config	Tue Jan 24 19:56:22 2017	(r312719)
@@ -115,7 +115,7 @@
 #endif
 
 #ifndef _LIBCPP_CLANG_VER
-#define _LIBCPP_CLANG_VER 0
+# define _LIBCPP_CLANG_VER 0
 #endif
 
 // FIXME: ABI detection should be done via compiler builtin macros. This
@@ -845,7 +845,7 @@ template <unsigned> struct __static_asse
 #if defined(__APPLE__)
 # if !defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && \
      defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__)
-#   define __MAC_OS_X_VERSION_MIN_REQUIRED __ENVIROMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+#   define __MAC_OS_X_VERSION_MIN_REQUIRED __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
 # endif
 # if defined(__MAC_OS_X_VERSION_MIN_REQUIRED)
 #   if __MAC_OS_X_VERSION_MIN_REQUIRED < 1060

Modified: projects/clang400-import/contrib/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/lib/Bitcode/Reader/BitcodeReader.cpp	Tue Jan 24 19:45:33 2017	(r312718)
+++ projects/clang400-import/contrib/llvm/lib/Bitcode/Reader/BitcodeReader.cpp	Tue Jan 24 19:56:22 2017	(r312719)
@@ -512,7 +512,7 @@ private:
   }
 
   Metadata *getFnMetadataByID(unsigned ID) {
-    return MDLoader->getMetadataFwdRef(ID);
+    return MDLoader->getMetadataFwdRefOrLoad(ID);
   }
 
   BasicBlock *getBasicBlock(unsigned ID) const {

Modified: projects/clang400-import/contrib/llvm/lib/Bitcode/Reader/MetadataLoader.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/lib/Bitcode/Reader/MetadataLoader.cpp	Tue Jan 24 19:45:33 2017	(r312718)
+++ projects/clang400-import/contrib/llvm/lib/Bitcode/Reader/MetadataLoader.cpp	Tue Jan 24 19:56:22 2017	(r312719)
@@ -485,8 +485,21 @@ public:
   Error parseMetadata(bool ModuleLevel);
 
   bool hasFwdRefs() const { return MetadataList.hasFwdRefs(); }
-  Metadata *getMetadataFwdRef(unsigned Idx) {
-    return MetadataList.getMetadataFwdRef(Idx);
+
+  Metadata *getMetadataFwdRefOrLoad(unsigned ID) {
+    if (ID < MDStringRef.size())
+      return lazyLoadOneMDString(ID);
+    if (auto *MD = MetadataList.lookup(ID))
+      return MD;
+    // If lazy-loading is enabled, we try recursively to load the operand
+    // instead of creating a temporary.
+    if (ID < (MDStringRef.size() + GlobalMetadataBitPosIndex.size())) {
+      PlaceholderQueue Placeholders;
+      lazyLoadOneMetadata(ID, Placeholders);
+      resolveForwardRefsAndPlaceholders(Placeholders);
+      return MetadataList.lookup(ID);
+    }
+    return MetadataList.getMetadataFwdRef(ID);
   }
 
   MDNode *getMDNodeFwdRefOrNull(unsigned Idx) {
@@ -1727,8 +1740,8 @@ bool MetadataLoader::hasFwdRefs() const 
 
 /// Return the given metadata, creating a replaceable forward reference if
 /// necessary.
-Metadata *MetadataLoader::getMetadataFwdRef(unsigned Idx) {
-  return Pimpl->getMetadataFwdRef(Idx);
+Metadata *MetadataLoader::getMetadataFwdRefOrLoad(unsigned Idx) {
+  return Pimpl->getMetadataFwdRefOrLoad(Idx);
 }
 
 MDNode *MetadataLoader::getMDNodeFwdRefOrNull(unsigned Idx) {

Modified: projects/clang400-import/contrib/llvm/lib/Bitcode/Reader/MetadataLoader.h
==============================================================================
--- projects/clang400-import/contrib/llvm/lib/Bitcode/Reader/MetadataLoader.h	Tue Jan 24 19:45:33 2017	(r312718)
+++ projects/clang400-import/contrib/llvm/lib/Bitcode/Reader/MetadataLoader.h	Tue Jan 24 19:56:22 2017	(r312719)
@@ -63,7 +63,7 @@ public:
 
   /// Return the given metadata, creating a replaceable forward reference if
   /// necessary.
-  Metadata *getMetadataFwdRef(unsigned Idx);
+  Metadata *getMetadataFwdRefOrLoad(unsigned Idx);
 
   MDNode *getMDNodeFwdRefOrNull(unsigned Idx);
 

Modified: projects/clang400-import/contrib/llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp	Tue Jan 24 19:45:33 2017	(r312718)
+++ projects/clang400-import/contrib/llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp	Tue Jan 24 19:56:22 2017	(r312719)
@@ -687,9 +687,30 @@ AArch64LoadStoreOpt::mergePairedInsns(Ma
   MachineInstrBuilder MIB;
   DebugLoc DL = I->getDebugLoc();
   MachineBasicBlock *MBB = I->getParent();
+  MachineOperand RegOp0 = getLdStRegOp(*RtMI);
+  MachineOperand RegOp1 = getLdStRegOp(*Rt2MI);
+  // Kill flags may become invalid when moving stores for pairing.
+  if (RegOp0.isUse()) {
+    if (!MergeForward) {
+      // Clear kill flags on store if moving upwards. Example:
+      //   STRWui %w0, ...
+      //   USE %w1
+      //   STRWui kill %w1  ; need to clear kill flag when moving STRWui upwards
+      RegOp0.setIsKill(false);
+      RegOp1.setIsKill(false);
+    } else {
+      // Clear kill flags of the first stores register. Example:
+      //   STRWui %w1, ...
+      //   USE kill %w1   ; need to clear kill flag when moving STRWui downwards
+      //   STRW %w0
+      unsigned Reg = getLdStRegOp(*I).getReg();
+      for (MachineInstr &MI : make_range(std::next(I), Paired))
+        MI.clearRegisterKills(Reg, TRI);
+    }
+  }
   MIB = BuildMI(*MBB, InsertionPoint, DL, TII->get(getMatchingPairOpcode(Opc)))
-            .addOperand(getLdStRegOp(*RtMI))
-            .addOperand(getLdStRegOp(*Rt2MI))
+            .addOperand(RegOp0)
+            .addOperand(RegOp1)
             .addOperand(BaseRegOp)
             .addImm(OffsetImm)
             .setMemRefs(I->mergeMemRefsWith(*Paired));

Modified: projects/clang400-import/contrib/llvm/lib/Target/ARM/ARMISelLowering.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/lib/Target/ARM/ARMISelLowering.cpp	Tue Jan 24 19:45:33 2017	(r312718)
+++ projects/clang400-import/contrib/llvm/lib/Target/ARM/ARMISelLowering.cpp	Tue Jan 24 19:56:22 2017	(r312719)
@@ -97,171 +97,6 @@ namespace {
   };
 }
 
-void ARMTargetLowering::InitLibcallCallingConvs() {
-  // The builtins on ARM always use AAPCS, irrespective of wheter C is AAPCS or
-  // AAPCS_VFP.
-  for (const auto LC : {
-           RTLIB::SHL_I16,
-           RTLIB::SHL_I32,
-           RTLIB::SHL_I64,
-           RTLIB::SHL_I128,
-           RTLIB::SRL_I16,
-           RTLIB::SRL_I32,
-           RTLIB::SRL_I64,
-           RTLIB::SRL_I128,
-           RTLIB::SRA_I16,
-           RTLIB::SRA_I32,
-           RTLIB::SRA_I64,
-           RTLIB::SRA_I128,
-           RTLIB::MUL_I8,
-           RTLIB::MUL_I16,
-           RTLIB::MUL_I32,
-           RTLIB::MUL_I64,
-           RTLIB::MUL_I128,
-           RTLIB::MULO_I32,
-           RTLIB::MULO_I64,
-           RTLIB::MULO_I128,
-           RTLIB::SDIV_I8,
-           RTLIB::SDIV_I16,
-           RTLIB::SDIV_I32,
-           RTLIB::SDIV_I64,
-           RTLIB::SDIV_I128,
-           RTLIB::UDIV_I8,
-           RTLIB::UDIV_I16,
-           RTLIB::UDIV_I32,
-           RTLIB::UDIV_I64,
-           RTLIB::UDIV_I128,
-           RTLIB::SREM_I8,
-           RTLIB::SREM_I16,
-           RTLIB::SREM_I32,
-           RTLIB::SREM_I64,
-           RTLIB::SREM_I128,
-           RTLIB::UREM_I8,
-           RTLIB::UREM_I16,
-           RTLIB::UREM_I32,
-           RTLIB::UREM_I64,
-           RTLIB::UREM_I128,
-           RTLIB::SDIVREM_I8,
-           RTLIB::SDIVREM_I16,
-           RTLIB::SDIVREM_I32,
-           RTLIB::SDIVREM_I64,
-           RTLIB::SDIVREM_I128,
-           RTLIB::UDIVREM_I8,
-           RTLIB::UDIVREM_I16,
-           RTLIB::UDIVREM_I32,
-           RTLIB::UDIVREM_I64,
-           RTLIB::UDIVREM_I128,
-           RTLIB::NEG_I32,
-           RTLIB::NEG_I64,
-           RTLIB::ADD_F32,
-           RTLIB::ADD_F64,
-           RTLIB::ADD_F80,
-           RTLIB::ADD_F128,
-           RTLIB::SUB_F32,
-           RTLIB::SUB_F64,
-           RTLIB::SUB_F80,
-           RTLIB::SUB_F128,
-           RTLIB::MUL_F32,
-           RTLIB::MUL_F64,
-           RTLIB::MUL_F80,
-           RTLIB::MUL_F128,
-           RTLIB::DIV_F32,
-           RTLIB::DIV_F64,
-           RTLIB::DIV_F80,
-           RTLIB::DIV_F128,
-           RTLIB::POWI_F32,
-           RTLIB::POWI_F64,
-           RTLIB::POWI_F80,
-           RTLIB::POWI_F128,
-           RTLIB::FPEXT_F64_F128,
-           RTLIB::FPEXT_F32_F128,
-           RTLIB::FPEXT_F32_F64,
-           RTLIB::FPEXT_F16_F32,
-           RTLIB::FPROUND_F32_F16,
-           RTLIB::FPROUND_F64_F16,
-           RTLIB::FPROUND_F80_F16,
-           RTLIB::FPROUND_F128_F16,
-           RTLIB::FPROUND_F64_F32,
-           RTLIB::FPROUND_F80_F32,
-           RTLIB::FPROUND_F128_F32,
-           RTLIB::FPROUND_F80_F64,
-           RTLIB::FPROUND_F128_F64,
-           RTLIB::FPTOSINT_F32_I32,
-           RTLIB::FPTOSINT_F32_I64,
-           RTLIB::FPTOSINT_F32_I128,
-           RTLIB::FPTOSINT_F64_I32,
-           RTLIB::FPTOSINT_F64_I64,
-           RTLIB::FPTOSINT_F64_I128,
-           RTLIB::FPTOSINT_F80_I32,
-           RTLIB::FPTOSINT_F80_I64,
-           RTLIB::FPTOSINT_F80_I128,
-           RTLIB::FPTOSINT_F128_I32,
-           RTLIB::FPTOSINT_F128_I64,
-           RTLIB::FPTOSINT_F128_I128,
-           RTLIB::FPTOUINT_F32_I32,
-           RTLIB::FPTOUINT_F32_I64,
-           RTLIB::FPTOUINT_F32_I128,
-           RTLIB::FPTOUINT_F64_I32,
-           RTLIB::FPTOUINT_F64_I64,
-           RTLIB::FPTOUINT_F64_I128,
-           RTLIB::FPTOUINT_F80_I32,
-           RTLIB::FPTOUINT_F80_I64,
-           RTLIB::FPTOUINT_F80_I128,
-           RTLIB::FPTOUINT_F128_I32,
-           RTLIB::FPTOUINT_F128_I64,
-           RTLIB::FPTOUINT_F128_I128,
-           RTLIB::SINTTOFP_I32_F32,
-           RTLIB::SINTTOFP_I32_F64,
-           RTLIB::SINTTOFP_I32_F80,
-           RTLIB::SINTTOFP_I32_F128,
-           RTLIB::SINTTOFP_I64_F32,
-           RTLIB::SINTTOFP_I64_F64,
-           RTLIB::SINTTOFP_I64_F80,
-           RTLIB::SINTTOFP_I64_F128,
-           RTLIB::SINTTOFP_I128_F32,
-           RTLIB::SINTTOFP_I128_F64,
-           RTLIB::SINTTOFP_I128_F80,
-           RTLIB::SINTTOFP_I128_F128,
-           RTLIB::UINTTOFP_I32_F32,
-           RTLIB::UINTTOFP_I32_F64,
-           RTLIB::UINTTOFP_I32_F80,
-           RTLIB::UINTTOFP_I32_F128,
-           RTLIB::UINTTOFP_I64_F32,
-           RTLIB::UINTTOFP_I64_F64,
-           RTLIB::UINTTOFP_I64_F80,
-           RTLIB::UINTTOFP_I64_F128,
-           RTLIB::UINTTOFP_I128_F32,
-           RTLIB::UINTTOFP_I128_F64,
-           RTLIB::UINTTOFP_I128_F80,
-           RTLIB::UINTTOFP_I128_F128,
-           RTLIB::OEQ_F32,
-           RTLIB::OEQ_F64,
-           RTLIB::OEQ_F128,
-           RTLIB::UNE_F32,
-           RTLIB::UNE_F64,
-           RTLIB::UNE_F128,
-           RTLIB::OGE_F32,
-           RTLIB::OGE_F64,
-           RTLIB::OGE_F128,
-           RTLIB::OLT_F32,
-           RTLIB::OLT_F64,
-           RTLIB::OLT_F128,
-           RTLIB::OLE_F32,
-           RTLIB::OLE_F64,
-           RTLIB::OLE_F128,
-           RTLIB::OGT_F32,
-           RTLIB::OGT_F64,
-           RTLIB::OGT_F128,
-           RTLIB::UO_F32,
-           RTLIB::UO_F64,
-           RTLIB::UO_F128,
-           RTLIB::O_F32,
-           RTLIB::O_F64,
-           RTLIB::O_F128,
-       })
-  setLibcallCallingConv(LC, CallingConv::ARM_AAPCS);
-}
-
 // The APCS parameter registers.
 static const MCPhysReg GPRArgRegs[] = {
   ARM::R0, ARM::R1, ARM::R2, ARM::R3
@@ -349,7 +184,22 @@ ARMTargetLowering::ARMTargetLowering(con
 
   setBooleanVectorContents(ZeroOrNegativeOneBooleanContent);
 
-  InitLibcallCallingConvs();
+  if (!Subtarget->isTargetDarwin() && !Subtarget->isTargetIOS() &&
+      !Subtarget->isTargetWatchOS()) {
+    const auto &E = Subtarget->getTargetTriple().getEnvironment();
+
+    bool IsHFTarget = E == Triple::EABIHF || E == Triple::GNUEABIHF ||
+                      E == Triple::MuslEABIHF;
+    // Windows is a special case.  Technically, we will replace all of the "GNU"
+    // calls with calls to MSVCRT if appropriate and adjust the calling
+    // convention then.
+    IsHFTarget = IsHFTarget || Subtarget->isTargetWindows();
+
+    for (int LCID = 0; LCID < RTLIB::UNKNOWN_LIBCALL; ++LCID)
+      setLibcallCallingConv(static_cast<RTLIB::Libcall>(LCID),
+                            IsHFTarget ? CallingConv::ARM_AAPCS_VFP
+                                       : CallingConv::ARM_AAPCS);
+  }
 
   if (Subtarget->isTargetMachO()) {
     // Uses VFP for Thumb libfuncs if available.

Modified: projects/clang400-import/contrib/llvm/lib/Target/ARM/ARMISelLowering.h
==============================================================================
--- projects/clang400-import/contrib/llvm/lib/Target/ARM/ARMISelLowering.h	Tue Jan 24 19:45:33 2017	(r312718)
+++ projects/clang400-import/contrib/llvm/lib/Target/ARM/ARMISelLowering.h	Tue Jan 24 19:56:22 2017	(r312719)
@@ -538,8 +538,6 @@ class InstrItineraryData;
 
     bool HasStandaloneRem = true;
 
-    void InitLibcallCallingConvs();
-
     void addTypeForNEON(MVT VT, MVT PromotedLdStVT, MVT PromotedBitwiseVT);
     void addDRTypeForNEON(MVT VT);
     void addQRTypeForNEON(MVT VT);

Modified: projects/clang400-import/contrib/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp	Tue Jan 24 19:45:33 2017	(r312718)
+++ projects/clang400-import/contrib/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp	Tue Jan 24 19:56:22 2017	(r312719)
@@ -600,6 +600,22 @@ private:
   void initializeCallbacks(Module &M);
 
   bool InstrumentGlobals(IRBuilder<> &IRB, Module &M);
+  void InstrumentGlobalsCOFF(IRBuilder<> &IRB, Module &M,
+                             ArrayRef<GlobalVariable *> ExtendedGlobals,
+                             ArrayRef<Constant *> MetadataInitializers);
+  void InstrumentGlobalsMachO(IRBuilder<> &IRB, Module &M,
+                              ArrayRef<GlobalVariable *> ExtendedGlobals,
+                              ArrayRef<Constant *> MetadataInitializers);
+  void
+  InstrumentGlobalsWithMetadataArray(IRBuilder<> &IRB, Module &M,
+                                     ArrayRef<GlobalVariable *> ExtendedGlobals,
+                                     ArrayRef<Constant *> MetadataInitializers);
+
+  GlobalVariable *CreateMetadataGlobal(Module &M, Constant *Initializer,
+                                       StringRef OriginalName);
+  void SetComdatForGlobalMetadata(GlobalVariable *G, GlobalVariable *Metadata);
+  IRBuilder<> CreateAsanModuleDtor(Module &M);
+
   bool ShouldInstrumentGlobal(GlobalVariable *G);
   bool ShouldUseMachOGlobalsSection() const;
   StringRef getGlobalMetadataSection() const;
@@ -1553,17 +1569,173 @@ void AddressSanitizerModule::initializeC
 
   // Declare the functions that find globals in a shared object and then invoke
   // the (un)register function on them.
-  AsanRegisterImageGlobals = checkSanitizerInterfaceFunction(
-      M.getOrInsertFunction(kAsanRegisterImageGlobalsName,
-      IRB.getVoidTy(), IntptrTy, nullptr));
+  AsanRegisterImageGlobals =
+      checkSanitizerInterfaceFunction(M.getOrInsertFunction(
+          kAsanRegisterImageGlobalsName, IRB.getVoidTy(), IntptrTy, nullptr));
   AsanRegisterImageGlobals->setLinkage(Function::ExternalLinkage);
 
-  AsanUnregisterImageGlobals = checkSanitizerInterfaceFunction(
-      M.getOrInsertFunction(kAsanUnregisterImageGlobalsName,
-      IRB.getVoidTy(), IntptrTy, nullptr));
+  AsanUnregisterImageGlobals =
+      checkSanitizerInterfaceFunction(M.getOrInsertFunction(
+          kAsanUnregisterImageGlobalsName, IRB.getVoidTy(), IntptrTy, nullptr));
   AsanUnregisterImageGlobals->setLinkage(Function::ExternalLinkage);
 }
 
+// Put the metadata and the instrumented global in the same group. This ensures
+// that the metadata is discarded if the instrumented global is discarded.
+void AddressSanitizerModule::SetComdatForGlobalMetadata(
+    GlobalVariable *G, GlobalVariable *Metadata) {
+  Module &M = *G->getParent();
+  Comdat *C = G->getComdat();
+  if (!C) {
+    if (!G->hasName()) {
+      // If G is unnamed, it must be internal. Give it an artificial name
+      // so we can put it in a comdat.
+      assert(G->hasLocalLinkage());
+      G->setName(Twine(kAsanGenPrefix) + "_anon_global");
+    }
+    C = M.getOrInsertComdat(G->getName());
+    // Make this IMAGE_COMDAT_SELECT_NODUPLICATES on COFF.
+    if (TargetTriple.isOSBinFormatCOFF())
+      C->setSelectionKind(Comdat::NoDuplicates);
+    G->setComdat(C);
+  }
+
+  assert(G->hasComdat());
+  Metadata->setComdat(G->getComdat());
+}
+
+// Create a separate metadata global and put it in the appropriate ASan
+// global registration section.
+GlobalVariable *
+AddressSanitizerModule::CreateMetadataGlobal(Module &M, Constant *Initializer,
+                                             StringRef OriginalName) {
+  GlobalVariable *Metadata =
+      new GlobalVariable(M, Initializer->getType(), false,
+                         GlobalVariable::InternalLinkage, Initializer,
+                         Twine("__asan_global_") +
+                             GlobalValue::getRealLinkageName(OriginalName));
+  Metadata->setSection(getGlobalMetadataSection());
+  return Metadata;
+}
+
+IRBuilder<> AddressSanitizerModule::CreateAsanModuleDtor(Module &M) {
+  Function *AsanDtorFunction =
+      Function::Create(FunctionType::get(Type::getVoidTy(*C), false),
+                       GlobalValue::InternalLinkage, kAsanModuleDtorName, &M);
+  BasicBlock *AsanDtorBB = BasicBlock::Create(*C, "", AsanDtorFunction);
+  appendToGlobalDtors(M, AsanDtorFunction, kAsanCtorAndDtorPriority);
+
+  return IRBuilder<>(ReturnInst::Create(*C, AsanDtorBB));
+}
+
+void AddressSanitizerModule::InstrumentGlobalsCOFF(
+    IRBuilder<> &IRB, Module &M, ArrayRef<GlobalVariable *> ExtendedGlobals,
+    ArrayRef<Constant *> MetadataInitializers) {
+  assert(ExtendedGlobals.size() == MetadataInitializers.size());
+  auto &DL = M.getDataLayout();
+
+  for (size_t i = 0; i < ExtendedGlobals.size(); i++) {
+    Constant *Initializer = MetadataInitializers[i];
+    GlobalVariable *G = ExtendedGlobals[i];
+    GlobalVariable *Metadata =
+        CreateMetadataGlobal(M, Initializer, G->getName());
+
+    // The MSVC linker always inserts padding when linking incrementally. We
+    // cope with that by aligning each struct to its size, which must be a power
+    // of two.
+    unsigned SizeOfGlobalStruct = DL.getTypeAllocSize(Initializer->getType());
+    assert(isPowerOf2_32(SizeOfGlobalStruct) &&
+           "global metadata will not be padded appropriately");
+    Metadata->setAlignment(SizeOfGlobalStruct);
+
+    SetComdatForGlobalMetadata(G, Metadata);
+  }
+}
+
+void AddressSanitizerModule::InstrumentGlobalsMachO(
+    IRBuilder<> &IRB, Module &M, ArrayRef<GlobalVariable *> ExtendedGlobals,
+    ArrayRef<Constant *> MetadataInitializers) {
+  assert(ExtendedGlobals.size() == MetadataInitializers.size());
+
+  // On recent Mach-O platforms, use a structure which binds the liveness of
+  // the global variable to the metadata struct. Keep the list of "Liveness" GV
+  // created to be added to llvm.compiler.used
+  StructType *LivenessTy = StructType::get(IntptrTy, IntptrTy, nullptr);
+  SmallVector<GlobalValue *, 16> LivenessGlobals(ExtendedGlobals.size());
+
+  for (size_t i = 0; i < ExtendedGlobals.size(); i++) {
+    Constant *Initializer = MetadataInitializers[i];
+    GlobalVariable *G = ExtendedGlobals[i];
+    GlobalVariable *Metadata =
+        CreateMetadataGlobal(M, Initializer, G->getName());
+
+    // On recent Mach-O platforms, we emit the global metadata in a way that
+    // allows the linker to properly strip dead globals.
+    auto LivenessBinder = ConstantStruct::get(
+        LivenessTy, Initializer->getAggregateElement(0u),
+        ConstantExpr::getPointerCast(Metadata, IntptrTy), nullptr);
+    GlobalVariable *Liveness = new GlobalVariable(
+        M, LivenessTy, false, GlobalVariable::InternalLinkage, LivenessBinder,
+        Twine("__asan_binder_") + G->getName());
+    Liveness->setSection("__DATA,__asan_liveness,regular,live_support");
+    LivenessGlobals[i] = Liveness;
+  }
+
+  // Update llvm.compiler.used, adding the new liveness globals. This is
+  // needed so that during LTO these variables stay alive. The alternative
+  // would be to have the linker handling the LTO symbols, but libLTO
+  // current API does not expose access to the section for each symbol.
+  if (!LivenessGlobals.empty())
+    appendToCompilerUsed(M, LivenessGlobals);
+
+  // RegisteredFlag serves two purposes. First, we can pass it to dladdr()
+  // to look up the loaded image that contains it. Second, we can store in it
+  // whether registration has already occurred, to prevent duplicate
+  // registration.
+  //
+  // common linkage ensures that there is only one global per shared library.
+  GlobalVariable *RegisteredFlag = new GlobalVariable(
+      M, IntptrTy, false, GlobalVariable::CommonLinkage,
+      ConstantInt::get(IntptrTy, 0), kAsanGlobalsRegisteredFlagName);
+  RegisteredFlag->setVisibility(GlobalVariable::HiddenVisibility);
+
+  IRB.CreateCall(AsanRegisterImageGlobals,
+                 {IRB.CreatePointerCast(RegisteredFlag, IntptrTy)});
+
+  // We also need to unregister globals at the end, e.g., when a shared library
+  // gets closed.
+  IRBuilder<> IRB_Dtor = CreateAsanModuleDtor(M);
+  IRB_Dtor.CreateCall(AsanUnregisterImageGlobals,
+                      {IRB.CreatePointerCast(RegisteredFlag, IntptrTy)});
+}
+
+void AddressSanitizerModule::InstrumentGlobalsWithMetadataArray(
+    IRBuilder<> &IRB, Module &M, ArrayRef<GlobalVariable *> ExtendedGlobals,
+    ArrayRef<Constant *> MetadataInitializers) {
+  assert(ExtendedGlobals.size() == MetadataInitializers.size());
+  unsigned N = ExtendedGlobals.size();
+  assert(N > 0);
+
+  // On platforms that don't have a custom metadata section, we emit an array
+  // of global metadata structures.
+  ArrayType *ArrayOfGlobalStructTy =
+      ArrayType::get(MetadataInitializers[0]->getType(), N);
+  auto AllGlobals = new GlobalVariable(
+      M, ArrayOfGlobalStructTy, false, GlobalVariable::InternalLinkage,
+      ConstantArray::get(ArrayOfGlobalStructTy, MetadataInitializers), "");
+
+  IRB.CreateCall(AsanRegisterGlobals,
+                 {IRB.CreatePointerCast(AllGlobals, IntptrTy),
+                  ConstantInt::get(IntptrTy, N)});
+
+  // We also need to unregister globals at the end, e.g., when a shared library
+  // gets closed.
+  IRBuilder<> IRB_Dtor = CreateAsanModuleDtor(M);
+  IRB_Dtor.CreateCall(AsanUnregisterGlobals,
+                      {IRB.CreatePointerCast(AllGlobals, IntptrTy),
+                       ConstantInt::get(IntptrTy, N)});
+}
+
 // This function replaces all global variables with new variables that have
 // trailing redzones. It also creates a function that poisons
 // redzones and inserts this function into llvm.global_ctors.
@@ -1580,9 +1752,6 @@ bool AddressSanitizerModule::InstrumentG
   if (n == 0) return false;
 
   auto &DL = M.getDataLayout();
-  bool UseComdatMetadata = TargetTriple.isOSBinFormatCOFF();
-  bool UseMachOGlobalsSection = ShouldUseMachOGlobalsSection();
-  bool UseMetadataArray = !(UseComdatMetadata || UseMachOGlobalsSection);
 
   // A global is described by a structure
   //   size_t beg;
@@ -1597,19 +1766,8 @@ bool AddressSanitizerModule::InstrumentG
   StructType *GlobalStructTy =
       StructType::get(IntptrTy, IntptrTy, IntptrTy, IntptrTy, IntptrTy,
                       IntptrTy, IntptrTy, IntptrTy, nullptr);
-  unsigned SizeOfGlobalStruct = DL.getTypeAllocSize(GlobalStructTy);
-  assert(isPowerOf2_32(SizeOfGlobalStruct) &&
-         "global metadata will not be padded appropriately");
-  SmallVector<Constant *, 16> Initializers(UseMetadataArray ? n : 0);
-
-  // On recent Mach-O platforms, use a structure which binds the liveness of
-  // the global variable to the metadata struct. Keep the list of "Liveness" GV
-  // created to be added to llvm.compiler.used
-  StructType *LivenessTy  = nullptr;
-  if (UseMachOGlobalsSection)
-    LivenessTy = StructType::get(IntptrTy, IntptrTy, nullptr);
-  SmallVector<GlobalValue *, 16> LivenessGlobals(
-      UseMachOGlobalsSection ? n : 0);
+  SmallVector<GlobalVariable *, 16> NewGlobals(n);
+  SmallVector<Constant *, 16> Initializers(n);
 
   bool HasDynamicallyInitializedGlobals = false;
 
@@ -1681,25 +1839,7 @@ bool AddressSanitizerModule::InstrumentG
         ConstantExpr::getGetElementPtr(NewTy, NewGlobal, Indices2, true));
     NewGlobal->takeName(G);
     G->eraseFromParent();
-    G = NewGlobal;
-
-    if (UseComdatMetadata) {
-      // Get or create a COMDAT for G so that we can use it with our metadata.
-      Comdat *C = G->getComdat();
-      if (!C) {
-        if (!G->hasName()) {
-          // If G is unnamed, it must be internal. Give it an artificial name
-          // so we can put it in a comdat.
-          assert(G->hasLocalLinkage());
-          G->setName(Twine(kAsanGenPrefix) + "_anon_global");
-        }
-        C = M.getOrInsertComdat(G->getName());
-        // Make this IMAGE_COMDAT_SELECT_NODUPLICATES on COFF.
-        if (TargetTriple.isOSBinFormatCOFF())
-          C->setSelectionKind(Comdat::NoDuplicates);
-        G->setComdat(C);
-      }
-    }
+    NewGlobals[i] = NewGlobal;
 
     Constant *SourceLoc;
     if (!MD.SourceLoc.empty()) {
@@ -1750,117 +1890,21 @@ bool AddressSanitizerModule::InstrumentG
 
     DEBUG(dbgs() << "NEW GLOBAL: " << *NewGlobal << "\n");
 
-    // If we aren't using separate metadata globals, add it to the initializer
-    // list and continue.
-    if (UseMetadataArray) {
-      Initializers[i] = Initializer;
-      continue;
-    }
-
-    // Create a separate metadata global and put it in the appropriate ASan
-    // global registration section.
-    GlobalVariable *Metadata = new GlobalVariable(
-        M, GlobalStructTy, false, GlobalVariable::InternalLinkage,
-        Initializer, Twine("__asan_global_") +
-                             GlobalValue::getRealLinkageName(G->getName()));
-    Metadata->setSection(getGlobalMetadataSection());
-
-    // We don't want any padding, but we also need a reasonable alignment.
-    // The MSVC linker always inserts padding when linking incrementally. We
-    // cope with that by aligning each struct to its size, which must be a power
-    // of two.
-    Metadata->setAlignment(SizeOfGlobalStruct);
-
-    // On platforms that support comdats, put the metadata and the
-    // instrumented global in the same group. This ensures that the metadata
-    // is discarded if the instrumented global is discarded.
-    if (UseComdatMetadata) {
-      assert(G->hasComdat());
-      Metadata->setComdat(G->getComdat());
-      continue;
-    }
-    assert(UseMachOGlobalsSection);
+    Initializers[i] = Initializer;
+  }
 
-    // On recent Mach-O platforms, we emit the global metadata in a way that
-    // allows the linker to properly strip dead globals.
-    auto LivenessBinder = ConstantStruct::get(
-        LivenessTy, Initializer->getAggregateElement(0u),
-        ConstantExpr::getPointerCast(Metadata, IntptrTy), nullptr);
-    GlobalVariable *Liveness = new GlobalVariable(
-        M, LivenessTy, false, GlobalVariable::InternalLinkage, LivenessBinder,
-        Twine("__asan_binder_") + G->getName());
-    Liveness->setSection("__DATA,__asan_liveness,regular,live_support");
-    LivenessGlobals[i] = Liveness;
+  if (TargetTriple.isOSBinFormatCOFF()) {
+    InstrumentGlobalsCOFF(IRB, M, NewGlobals, Initializers);
+  } else if (ShouldUseMachOGlobalsSection()) {
+    InstrumentGlobalsMachO(IRB, M, NewGlobals, Initializers);
+  } else {
+    InstrumentGlobalsWithMetadataArray(IRB, M, NewGlobals, Initializers);
   }
 
   // Create calls for poisoning before initializers run and unpoisoning after.
   if (HasDynamicallyInitializedGlobals)
     createInitializerPoisonCalls(M, ModuleName);
 
-  // Platforms with a dedicated metadata section don't need to emit any more
-  // code.
-  if (UseComdatMetadata)
-    return true;
-
-  GlobalVariable *AllGlobals = nullptr;
-  GlobalVariable *RegisteredFlag = nullptr;
-
-  if (UseMachOGlobalsSection) {
-    // RegisteredFlag serves two purposes. First, we can pass it to dladdr()
-    // to look up the loaded image that contains it. Second, we can store in it
-    // whether registration has already occurred, to prevent duplicate
-    // registration.
-    //
-    // common linkage ensures that there is only one global per shared library.
-    RegisteredFlag = new GlobalVariable(
-        M, IntptrTy, false, GlobalVariable::CommonLinkage,
-        ConstantInt::get(IntptrTy, 0), kAsanGlobalsRegisteredFlagName);
-    RegisteredFlag->setVisibility(GlobalVariable::HiddenVisibility);
-
-    // Update llvm.compiler.used, adding the new liveness globals. This is
-    // needed so that during LTO these variables stay alive. The alternative
-    // would be to have the linker handling the LTO symbols, but libLTO
-    // current API does not expose access to the section for each symbol.
-    if (!LivenessGlobals.empty())
-      appendToCompilerUsed(M, LivenessGlobals);
-  } else if (UseMetadataArray) {
-    // On platforms that don't have a custom metadata section, we emit an array
-    // of global metadata structures.
-    ArrayType *ArrayOfGlobalStructTy = ArrayType::get(GlobalStructTy, n);
-    AllGlobals = new GlobalVariable(
-        M, ArrayOfGlobalStructTy, false, GlobalVariable::InternalLinkage,
-        ConstantArray::get(ArrayOfGlobalStructTy, Initializers), "");
-  }
-
-  // Create a call to register the globals with the runtime.
-  if (UseMachOGlobalsSection) {
-    IRB.CreateCall(AsanRegisterImageGlobals,
-                   {IRB.CreatePointerCast(RegisteredFlag, IntptrTy)});
-  } else {
-    IRB.CreateCall(AsanRegisterGlobals,
-                   {IRB.CreatePointerCast(AllGlobals, IntptrTy),
-                    ConstantInt::get(IntptrTy, n)});
-  }
-
-  // We also need to unregister globals at the end, e.g., when a shared library
-  // gets closed.
-  Function *AsanDtorFunction =
-      Function::Create(FunctionType::get(Type::getVoidTy(*C), false),
-                       GlobalValue::InternalLinkage, kAsanModuleDtorName, &M);
-  BasicBlock *AsanDtorBB = BasicBlock::Create(*C, "", AsanDtorFunction);
-  IRBuilder<> IRB_Dtor(ReturnInst::Create(*C, AsanDtorBB));
-
-  if (UseMachOGlobalsSection) {
-    IRB_Dtor.CreateCall(AsanUnregisterImageGlobals,
-                        {IRB.CreatePointerCast(RegisteredFlag, IntptrTy)});
-  } else {
-    IRB_Dtor.CreateCall(AsanUnregisterGlobals,
-                        {IRB.CreatePointerCast(AllGlobals, IntptrTy),
-                         ConstantInt::get(IntptrTy, n)});
-  }
-
-  appendToGlobalDtors(M, AsanDtorFunction, kAsanCtorAndDtorPriority);
-
   DEBUG(dbgs() << M);
   return true;
 }

Modified: projects/clang400-import/contrib/llvm/lib/Transforms/Scalar/NewGVN.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/lib/Transforms/Scalar/NewGVN.cpp	Tue Jan 24 19:45:33 2017	(r312718)
+++ projects/clang400-import/contrib/llvm/lib/Transforms/Scalar/NewGVN.cpp	Tue Jan 24 19:56:22 2017	(r312719)
@@ -85,6 +85,8 @@ STATISTIC(NumGVNLeaderChanges, "Number o
 STATISTIC(NumGVNSortedLeaderChanges, "Number of sorted leader changes");
 STATISTIC(NumGVNAvoidedSortedLeaderChanges,
           "Number of avoided sorted leader changes");
+STATISTIC(NumGVNNotMostDominatingLeader,
+          "Number of times a member dominated it's new classes' leader");
 
 //===----------------------------------------------------------------------===//
 //                                GVN Pass
@@ -1073,17 +1075,20 @@ void NewGVN::moveValueToNewCongruenceCla
   if (I == OldClass->NextLeader.first)
     OldClass->NextLeader = {nullptr, ~0U};
 
-  // The new instruction and new class leader may either be siblings in the
-  // dominator tree, or the new class leader should dominate the new member
-  // instruction.  We simply check that the member instruction does not properly
-  // dominate the new class leader.
-  assert(
-      !isa<Instruction>(NewClass->RepLeader) || !NewClass->RepLeader ||
-      I == NewClass->RepLeader ||
-      !DT->properlyDominates(
+  // It's possible, though unlikely, for us to discover equivalences such
+  // that the current leader does not dominate the old one.
+  // This statistic tracks how often this happens.
+  // We assert on phi nodes when this happens, currently, for debugging, because
+  // we want to make sure we name phi node cycles properly.
+  if (isa<Instruction>(NewClass->RepLeader) && NewClass->RepLeader &&
+      I != NewClass->RepLeader &&
+      DT->properlyDominates(
           I->getParent(),
-          cast<Instruction>(NewClass->RepLeader)->getParent()) &&
-          "New class for instruction should not be dominated by instruction");
+          cast<Instruction>(NewClass->RepLeader)->getParent())) {
+    ++NumGVNNotMostDominatingLeader;
+    assert(!isa<PHINode>(I) &&
+           "New class for instruction should not be dominated by instruction");
+  }
 
   if (NewClass->RepLeader != I) {
     auto DFSNum = InstrDFS.lookup(I);

Modified: projects/clang400-import/contrib/llvm/tools/clang/include/clang/Basic/Builtins.def
==============================================================================
--- projects/clang400-import/contrib/llvm/tools/clang/include/clang/Basic/Builtins.def	Tue Jan 24 19:45:33 2017	(r312718)
+++ projects/clang400-import/contrib/llvm/tools/clang/include/clang/Basic/Builtins.def	Tue Jan 24 19:56:22 2017	(r312719)
@@ -1339,6 +1339,7 @@ BUILTIN(__builtin_smulll_overflow, "bSLL
 BUILTIN(__builtin_addressof, "v*v&", "nct")
 BUILTIN(__builtin_operator_new, "v*z", "c")
 BUILTIN(__builtin_operator_delete, "vv*", "n")
+BUILTIN(__builtin_char_memchr, "c*cC*iz", "n")
 
 // Safestack builtins
 BUILTIN(__builtin___get_unsafe_stack_start, "v*", "Fn")

Modified: projects/clang400-import/contrib/llvm/tools/clang/lib/AST/ExprConstant.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/tools/clang/lib/AST/ExprConstant.cpp	Tue Jan 24 19:45:33 2017	(r312718)
+++ projects/clang400-import/contrib/llvm/tools/clang/lib/AST/ExprConstant.cpp	Tue Jan 24 19:56:22 2017	(r312719)
@@ -5683,6 +5683,7 @@ bool PointerExprEvaluator::VisitBuiltinC
   case Builtin::BI__builtin_strchr:
   case Builtin::BI__builtin_wcschr:
   case Builtin::BI__builtin_memchr:
+  case Builtin::BI__builtin_char_memchr:
   case Builtin::BI__builtin_wmemchr: {
     if (!Visit(E->getArg(0)))
       return false;
@@ -5720,6 +5721,7 @@ bool PointerExprEvaluator::VisitBuiltinC
       // Fall through.
     case Builtin::BImemchr:
     case Builtin::BI__builtin_memchr:
+    case Builtin::BI__builtin_char_memchr:
       // memchr compares by converting both sides to unsigned char. That's also
       // correct for strchr if we get this far (to cope with plain char being
       // unsigned in the strchr case).

Modified: projects/clang400-import/contrib/llvm/tools/clang/lib/CodeGen/CGBuiltin.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/tools/clang/lib/CodeGen/CGBuiltin.cpp	Tue Jan 24 19:45:33 2017	(r312718)
+++ projects/clang400-import/contrib/llvm/tools/clang/lib/CodeGen/CGBuiltin.cpp	Tue Jan 24 19:56:22 2017	(r312719)
@@ -1189,6 +1189,10 @@ RValue CodeGenFunction::EmitBuiltinExpr(
     return RValue::get(Dest.getPointer());
   }
 
+  case Builtin::BI__builtin_char_memchr:
+    BuiltinID = Builtin::BI__builtin_memchr;
+    break;
+
   case Builtin::BI__builtin___memcpy_chk: {
     // fold __builtin_memcpy_chk(x, y, cst1, cst2) to memcpy iff cst1<=cst2.
     llvm::APSInt Size, DstSize;

Modified: projects/clang400-import/contrib/llvm/tools/clang/lib/Lex/PPMacroExpansion.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/tools/clang/lib/Lex/PPMacroExpansion.cpp	Tue Jan 24 19:45:33 2017	(r312718)
+++ projects/clang400-import/contrib/llvm/tools/clang/lib/Lex/PPMacroExpansion.cpp	Tue Jan 24 19:56:22 2017	(r312719)
@@ -1183,6 +1183,7 @@ static bool HasFeature(const Preprocesso
       .Case("cxx_attributes", LangOpts.CPlusPlus11)
       .Case("cxx_auto_type", LangOpts.CPlusPlus11)
       .Case("cxx_constexpr", LangOpts.CPlusPlus11)
+      .Case("cxx_constexpr_string_builtins", LangOpts.CPlusPlus11)
       .Case("cxx_decltype", LangOpts.CPlusPlus11)
       .Case("cxx_decltype_incomplete_return_types", LangOpts.CPlusPlus11)
       .Case("cxx_default_function_template_args", LangOpts.CPlusPlus11)

Modified: projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/SemaDeclCXX.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/SemaDeclCXX.cpp	Tue Jan 24 19:45:33 2017	(r312718)
+++ projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/SemaDeclCXX.cpp	Tue Jan 24 19:56:22 2017	(r312719)
@@ -12383,9 +12383,9 @@ ExprResult Sema::BuildCXXDefaultInitExpr
   Diag(Loc, diag::err_in_class_initializer_not_yet_parsed)
       << OutermostClass << Field;
   Diag(Field->getLocEnd(), diag::note_in_class_initializer_not_yet_parsed);
-
-  // Don't diagnose this again.
-  Field->setInvalidDecl();
+  // Recover by marking the field invalid, unless we're in a SFINAE context.
+  if (!isSFINAEContext())
+    Field->setInvalidDecl();
   return ExprError();
 }
 

Modified: projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/SemaExpr.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/SemaExpr.cpp	Tue Jan 24 19:45:33 2017	(r312718)
+++ projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/SemaExpr.cpp	Tue Jan 24 19:56:22 2017	(r312719)
@@ -11496,7 +11496,7 @@ ExprResult Sema::BuildBinOp(Scope *S, So
       return checkPseudoObjectAssignment(S, OpLoc, Opc, LHSExpr, RHSExpr);
 
     // Don't resolve overloads if the other type is overloadable.
-    if (pty->getKind() == BuiltinType::Overload) {
+    if (getLangOpts().CPlusPlus && pty->getKind() == BuiltinType::Overload) {
       // We can't actually test that if we still have a placeholder,
       // though.  Fortunately, none of the exceptions we see in that
       // code below are valid when the LHS is an overload set.  Note
@@ -11521,17 +11521,16 @@ ExprResult Sema::BuildBinOp(Scope *S, So
     // An overload in the RHS can potentially be resolved by the type
     // being assigned to.
     if (Opc == BO_Assign && pty->getKind() == BuiltinType::Overload) {
-      if (LHSExpr->isTypeDependent() || RHSExpr->isTypeDependent())
-        return BuildOverloadedBinOp(*this, S, OpLoc, Opc, LHSExpr, RHSExpr);
-
-      if (LHSExpr->getType()->isOverloadableType())
+      if (getLangOpts().CPlusPlus &&
+          (LHSExpr->isTypeDependent() || RHSExpr->isTypeDependent() ||
+           LHSExpr->getType()->isOverloadableType()))
         return BuildOverloadedBinOp(*this, S, OpLoc, Opc, LHSExpr, RHSExpr);
 
       return CreateBuiltinBinOp(OpLoc, Opc, LHSExpr, RHSExpr);
     }
 
     // Don't resolve overloads if the other type is overloadable.
-    if (pty->getKind() == BuiltinType::Overload &&
+    if (getLangOpts().CPlusPlus && pty->getKind() == BuiltinType::Overload &&
         LHSExpr->getType()->isOverloadableType())
       return BuildOverloadedBinOp(*this, S, OpLoc, Opc, LHSExpr, RHSExpr);
 

Modified: projects/clang400-import/contrib/llvm/tools/llvm-cxxfilt/llvm-cxxfilt.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/tools/llvm-cxxfilt/llvm-cxxfilt.cpp	Tue Jan 24 19:45:33 2017	(r312718)
+++ projects/clang400-import/contrib/llvm/tools/llvm-cxxfilt/llvm-cxxfilt.cpp	Tue Jan 24 19:56:22 2017	(r312719)
@@ -14,9 +14,12 @@
 
 using namespace llvm;
 
-static void demangle(llvm::raw_ostream &OS, const char *Mangled) {
+static void demangle(llvm::raw_ostream &OS, const std::string &Mangled) {
   int Status;
-  char *Demangled = itaniumDemangle(Mangled, nullptr, nullptr, &Status);
+  char *Demangled = nullptr;
+  if ((Mangled.size() >= 2 && Mangled.compare(0, 2, "_Z")) ||
+      (Mangled.size() >= 4 && Mangled.compare(0, 4, "___Z")))
+    Demangled = itaniumDemangle(Mangled.c_str(), nullptr, nullptr, &Status);
   OS << (Demangled ? Demangled : Mangled) << '\n';
   free(Demangled);
 }
@@ -24,7 +27,7 @@ static void demangle(llvm::raw_ostream &
 int main(int argc, char **argv) {
   if (argc == 1)
     for (std::string Mangled; std::getline(std::cin, Mangled);)
-      demangle(llvm::outs(), Mangled.c_str());
+      demangle(llvm::outs(), Mangled);
   else
     for (int I = 1; I < argc; ++I)
       demangle(llvm::outs(), argv[I]);

Modified: projects/clang400-import/lib/clang/include/clang/Basic/Version.inc
==============================================================================
--- projects/clang400-import/lib/clang/include/clang/Basic/Version.inc	Tue Jan 24 19:45:33 2017	(r312718)
+++ projects/clang400-import/lib/clang/include/clang/Basic/Version.inc	Tue Jan 24 19:56:22 2017	(r312719)
@@ -8,4 +8,4 @@
 
 #define	CLANG_VENDOR			"FreeBSD "
 
-#define	SVN_REVISION			"292732"
+#define	SVN_REVISION			"292951"

Modified: projects/clang400-import/lib/clang/include/lld/Config/Version.inc
==============================================================================
--- projects/clang400-import/lib/clang/include/lld/Config/Version.inc	Tue Jan 24 19:45:33 2017	(r312718)
+++ projects/clang400-import/lib/clang/include/lld/Config/Version.inc	Tue Jan 24 19:56:22 2017	(r312719)
@@ -4,5 +4,5 @@
 #define LLD_VERSION_STRING "4.0.0"
 #define LLD_VERSION_MAJOR 4
 #define LLD_VERSION_MINOR 0
-#define LLD_REVISION_STRING "292732"
+#define LLD_REVISION_STRING "292951"
 #define LLD_REPOSITORY_STRING "FreeBSD"

From owner-svn-src-projects@freebsd.org  Tue Jan 24 19:59:28 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 84C00CC0B0B
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Tue, 24 Jan 2017 19:59:28 +0000 (UTC) (envelope-from dim@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 2121E1CAE;
 Tue, 24 Jan 2017 19:59:28 +0000 (UTC) (envelope-from dim@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0OJxRjx090682;
 Tue, 24 Jan 2017 19:59:27 GMT (envelope-from dim@FreeBSD.org)
Received: (from dim@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0OJxPp9090667;
 Tue, 24 Jan 2017 19:59:25 GMT (envelope-from dim@FreeBSD.org)
Message-Id: <201701241959.v0OJxPp9090667@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org
 using -f
From: Dimitry Andric <dim@FreeBSD.org>
Date: Tue, 24 Jan 2017 19:59:25 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r312720 - in projects/clang400-import: etc/devd
 lib/libc/aarch64/sys sbin/restore share/man/man4 share/man/man5
 sys/amd64/linux sys/arm/freescale/imx sys/arm/ti/cpsw sys/arm64/arm64 sys...
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 24 Jan 2017 19:59:28 -0000

Author: dim
Date: Tue Jan 24 19:59:25 2017
New Revision: 312720
URL: https://svnweb.freebsd.org/changeset/base/312720

Log:
  Merge ^/head r312624 through r312719.

Added:
  projects/clang400-import/sys/contrib/dev/rtwn/rtwn-rtl8192eufw.fw.uu
     - copied unchanged from r312719, head/sys/contrib/dev/rtwn/rtwn-rtl8192eufw.fw.uu
  projects/clang400-import/sys/dev/rtwn/rtl8192c/r92c_llt.c
     - copied unchanged from r312719, head/sys/dev/rtwn/rtl8192c/r92c_llt.c
  projects/clang400-import/sys/dev/rtwn/rtl8192e/
     - copied from r312719, head/sys/dev/rtwn/rtl8192e/
  projects/clang400-import/sys/modules/rtwnfw/rtwnrtl8192eu/
     - copied from r312719, head/sys/modules/rtwnfw/rtwnrtl8192eu/
  projects/clang400-import/usr.bin/truss/riscv64-freebsd.c
     - copied unchanged from r312719, head/usr.bin/truss/riscv64-freebsd.c
Modified:
  projects/clang400-import/etc/devd/usb.conf
  projects/clang400-import/lib/libc/aarch64/sys/cerror.S
  projects/clang400-import/sbin/restore/restore.8
  projects/clang400-import/share/man/man4/rtwn.4
  projects/clang400-import/share/man/man4/rtwn_usb.4
  projects/clang400-import/share/man/man4/rtwnfw.4
  projects/clang400-import/share/man/man5/tmpfs.5
  projects/clang400-import/sys/amd64/linux/linux_sysvec.c
  projects/clang400-import/sys/arm/freescale/imx/imx_machdep.c
  projects/clang400-import/sys/arm/ti/cpsw/if_cpsw.c
  projects/clang400-import/sys/arm/ti/cpsw/if_cpswvar.h
  projects/clang400-import/sys/arm64/arm64/mp_machdep.c
  projects/clang400-import/sys/boot/fdt/dts/arm/beaglebone-black.dts
  projects/clang400-import/sys/cam/ctl/ctl_backend_ramdisk.c
  projects/clang400-import/sys/cam/ctl/ctl_frontend.h
  projects/clang400-import/sys/cam/ctl/ctl_frontend_cam_sim.c
  projects/clang400-import/sys/cam/ctl/ctl_frontend_ioctl.c
  projects/clang400-import/sys/cam/ctl/ctl_frontend_iscsi.c
  projects/clang400-import/sys/cam/ctl/ctl_tpc_local.c
  projects/clang400-import/sys/cam/ctl/scsi_ctl.c
  projects/clang400-import/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c
  projects/clang400-import/sys/cddl/contrib/opensolaris/uts/common/sys/dtrace.h
  projects/clang400-import/sys/cddl/dev/dtrace/dtrace_ioctl.c
  projects/clang400-import/sys/conf/files
  projects/clang400-import/sys/dev/ath/if_ath.c
  projects/clang400-import/sys/dev/ath/if_ath_tx.c
  projects/clang400-import/sys/dev/ath/if_ath_tx_edma.c
  projects/clang400-import/sys/dev/e1000/em_txrx.c
  projects/clang400-import/sys/dev/e1000/if_em.c
  projects/clang400-import/sys/dev/hyperv/netvsc/hn_nvs.c
  projects/clang400-import/sys/dev/hyperv/netvsc/hn_nvs.h
  projects/clang400-import/sys/dev/hyperv/netvsc/if_hn.c
  projects/clang400-import/sys/dev/hyperv/netvsc/if_hnreg.h
  projects/clang400-import/sys/dev/hyperv/netvsc/if_hnvar.h
  projects/clang400-import/sys/dev/mrsas/mrsas_linux.c
  projects/clang400-import/sys/dev/rtwn/if_rtwn.c
  projects/clang400-import/sys/dev/rtwn/if_rtwnvar.h
  projects/clang400-import/sys/dev/rtwn/rtl8188e/usb/r88eu_attach.c
  projects/clang400-import/sys/dev/rtwn/rtl8192c/pci/r92ce_attach.c
  projects/clang400-import/sys/dev/rtwn/rtl8192c/r92c.h
  projects/clang400-import/sys/dev/rtwn/rtl8192c/r92c_init.c
  projects/clang400-import/sys/dev/rtwn/rtl8192c/r92c_reg.h
  projects/clang400-import/sys/dev/rtwn/rtl8192c/usb/r92cu_attach.c
  projects/clang400-import/sys/dev/rtwn/rtl8812a/r12a_beacon.c
  projects/clang400-import/sys/dev/rtwn/rtl8812a/r12a_fw.c
  projects/clang400-import/sys/dev/rtwn/rtl8812a/usb/r12au_attach.c
  projects/clang400-import/sys/dev/rtwn/rtl8821a/r21a_init.c
  projects/clang400-import/sys/dev/rtwn/rtl8821a/usb/r21au_attach.c
  projects/clang400-import/sys/dev/rtwn/usb/rtwn_usb_attach.h
  projects/clang400-import/sys/dev/usb/usbdevs
  projects/clang400-import/sys/kern/kern_switch.c
  projects/clang400-import/sys/kern/kern_time.c
  projects/clang400-import/sys/kern/subr_clock.c
  projects/clang400-import/sys/kern/subr_gtaskqueue.c
  projects/clang400-import/sys/kern/vfs_lookup.c
  projects/clang400-import/sys/kern/vfs_vnops.c
  projects/clang400-import/sys/libkern/bcd.c
  projects/clang400-import/sys/modules/rtwn/Makefile
  projects/clang400-import/sys/modules/rtwn_usb/Makefile
  projects/clang400-import/sys/modules/rtwnfw/Makefile
  projects/clang400-import/sys/net/ieee8023ad_lacp.c
  projects/clang400-import/sys/net/if.c
  projects/clang400-import/sys/net/iflib.c
  projects/clang400-import/sys/net80211/ieee80211.c
  projects/clang400-import/sys/powerpc/powerpc/db_trace.c
  projects/clang400-import/sys/riscv/include/frame.h
  projects/clang400-import/sys/riscv/riscv/trap.c
  projects/clang400-import/sys/sys/eventhandler.h
  projects/clang400-import/sys/sys/gtaskqueue.h
  projects/clang400-import/sys/sys/libkern.h
  projects/clang400-import/usr.bin/find/find.1
  projects/clang400-import/usr.bin/iscsictl/iscsictl.c
  projects/clang400-import/usr.bin/mail/popen.c
  projects/clang400-import/usr.bin/mail/send.c
  projects/clang400-import/usr.bin/sort/radixsort.c
  projects/clang400-import/usr.sbin/ctladm/ctladm.8
  projects/clang400-import/usr.sbin/pw/psdate.c
  projects/clang400-import/usr.sbin/pw/pw_user.c
  projects/clang400-import/usr.sbin/pw/tests/pw_usermod.sh
  projects/clang400-import/usr.sbin/wpa/wpa_cli/wpa_cli.8
Directory Properties:
  projects/clang400-import/   (props changed)
  projects/clang400-import/sys/cddl/contrib/opensolaris/   (props changed)

Modified: projects/clang400-import/etc/devd/usb.conf
==============================================================================
--- projects/clang400-import/etc/devd/usb.conf	Tue Jan 24 19:56:22 2017	(r312719)
+++ projects/clang400-import/etc/devd/usb.conf	Tue Jan 24 19:59:25 2017	(r312720)
@@ -2753,7 +2753,7 @@ nomatch 32 {
 	match "bus" "uhub[0-9]+";
 	match "mode" "host";
 	match "vendor" "0x0bda";
-	match "product" "(0x818a|0x8191)";
+	match "product" "(0x818a|0x818b|0x8191)";
 	action "kldload -n if_rtwn_usb";
 };
 
@@ -3793,7 +3793,7 @@ nomatch 32 {
 	match "bus" "uhub[0-9]+";
 	match "mode" "host";
 	match "vendor" "0x1199";
-	match "product" "(0x68aa|0x68c0|0x9041)";
+	match "product" "(0x68aa|0x68c0|0x9041|0x9071)";
 	action "kldload -n u3g";
 };
 
@@ -3905,7 +3905,7 @@ nomatch 32 {
 	match "bus" "uhub[0-9]+";
 	match "mode" "host";
 	match "vendor" "0x12d1";
-	match "product" "(0x1573|0x1803|0x1c05|0x1c0b)";
+	match "product" "(0x1573|0x15c1|0x1803|0x1c05|0x1c0b)";
 	action "kldload -n u3g";
 };
 
@@ -5025,7 +5025,7 @@ nomatch 32 {
 	match "bus" "uhub[0-9]+";
 	match "mode" "host";
 	match "vendor" "0x2001";
-	match "product" "(0x3307|0x3308|0x3309|0x330a|0x330d|0x330f|0x3310|0x3314|0x3315|0x3316|0x3318)";
+	match "product" "(0x3307|0x3308|0x3309|0x330a|0x330d|0x330f|0x3310|0x3314|0x3315|0x3316|0x3318|0x3319)";
 	action "kldload -n if_rtwn_usb";
 };
 
@@ -5297,7 +5297,7 @@ nomatch 32 {
 	match "bus" "uhub[0-9]+";
 	match "mode" "host";
 	match "vendor" "0x2357";
-	match "product" "0x0101";
+	match "product" "(0x0101|0x0108|0x0109)";
 	action "kldload -n if_rtwn_usb";
 };
 
@@ -5889,5 +5889,5 @@ nomatch 32 {
 	action "kldload -n umass";
 };
 
-# 2743 USB entries processed
+# 2751 USB entries processed
 

Modified: projects/clang400-import/lib/libc/aarch64/sys/cerror.S
==============================================================================
--- projects/clang400-import/lib/libc/aarch64/sys/cerror.S	Tue Jan 24 19:56:22 2017	(r312719)
+++ projects/clang400-import/lib/libc/aarch64/sys/cerror.S	Tue Jan 24 19:59:25 2017	(r312720)
@@ -34,7 +34,7 @@ ENTRY(cerror)
 	stp	x0, lr, [sp]
 	bl	_C_LABEL(__error)
 	ldp	x1, lr, [sp]
-	str	x1, [x0]
+	str	w1, [x0]
 	movn	x0, #0
 	movn	x1, #0
 	add	sp, sp, #16

Modified: projects/clang400-import/sbin/restore/restore.8
==============================================================================
--- projects/clang400-import/sbin/restore/restore.8	Tue Jan 24 19:56:22 2017	(r312719)
+++ projects/clang400-import/sbin/restore/restore.8	Tue Jan 24 19:59:25 2017	(r312720)
@@ -349,6 +349,8 @@ To prevent this, the
 .Fl u
 (unlink) flag causes restore to remove old entries before attempting
 to create new ones.
+This flag is recommended when using extended attributes
+to avoid improperly accumulating attributes on pre-existing files.
 .It Fl v
 Normally
 .Nm

Modified: projects/clang400-import/share/man/man4/rtwn.4
==============================================================================
--- projects/clang400-import/share/man/man4/rtwn.4	Tue Jan 24 19:56:22 2017	(r312719)
+++ projects/clang400-import/share/man/man4/rtwn.4	Tue Jan 24 19:59:25 2017	(r312720)
@@ -18,7 +18,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd October 17, 2016
+.Dd January 24, 2017
 .Dt RTWN 4
 .Os
 .Sh NAME
@@ -52,9 +52,9 @@ if_rtwn_usb_load="YES"
 The
 .Nm
 driver provides support for wireless network devices based on
-the Realtek RTL8192C, RTL8188E, RTL8812A and RTL8821A programming APIs.
-These APIs are used by a wide variety of chips; most chips with USB
-and some with PCI interface are supported.
+the Realtek RTL8192C, RTL8188E, RTL8192E, RTL8812A and RTL8821A
+programming APIs.  These APIs are used by a wide variety of chips;
+most chips with USB and some with PCI interface are supported.
 .Pp
 To enable use for PCI/PCIe systems, see the rtwn_pci(4) driver;
 for USB devices, use the rtwn_usb(4) driver.
@@ -98,6 +98,7 @@ when an interface is brought up:
 .It Pa /boot/kernel/rtwn-rtl8192cfwE.ko
 .It Pa /boot/kernel/rtwn-rtl8192cfwT.ko
 .It Pa /boot/kernel/rtwn-rtl8192cfwU.ko
+.It Pa /boot/kernel/rtwn-rtl8192eufw.ko
 .It Pa /boot/kernel/rtwn-rtl8812aufw.ko
 .It Pa /boot/kernel/rtwn-rtl8821aufw.ko
 .El

Modified: projects/clang400-import/share/man/man4/rtwn_usb.4
==============================================================================
--- projects/clang400-import/share/man/man4/rtwn_usb.4	Tue Jan 24 19:56:22 2017	(r312719)
+++ projects/clang400-import/share/man/man4/rtwn_usb.4	Tue Jan 24 19:59:25 2017	(r312720)
@@ -29,7 +29,7 @@
 .\"
 .\" $FreeBSD$
 .\"/
-.Dd January 6, 2017
+.Dd January 24, 2017
 .Dt RTWN_USB 4
 .Os
 .Sh NAME
@@ -56,7 +56,7 @@ driver.
 .Sh HARDWARE
 The
 .Nm
-driver supports Realtek RTL8188CU/RTL8188RU/RTL8188EU/RTL8192CU/RTL8812AU/RTL8821AU
+driver supports Realtek RTL8188CU/RTL8188RU/RTL8188EU/RTL8192CU/RTL8192EU/RTL8812AU/RTL8821AU
 based USB wireless network adapters, including:
 .Pp
 .Bl -column -compact "Belkin F7D1102 Surf Wireless Micro" "Bus"
@@ -70,6 +70,7 @@ based USB wireless network adapters, inc
 .It "D-Link DWA-123 rev D1" Ta USB 2.0
 .It "D-Link DWA-125 rev D1" Ta USB 2.0
 .It "D-Link DWA-131" Ta USB 2.0
+.It "D-Link DWA-131 rev E1" Ta USB 2.0
 .It "D-Link DWA-171 rev A1" Ta USB 2.0
 .It "D-Link DWA-172 rev A1" Ta USB 2.0
 .It "D-Link DWA-180 rev A1" Ta USB 2.0
@@ -94,7 +95,10 @@ based USB wireless network adapters, inc
 .It "TP-LINK TL-WN723N v3" Ta USB 2.0
 .It "TP-LINK TL-WN725N v2" Ta USB 2.0
 .It "TP-LINK TL-WN821N v4" Ta USB 2.0
+.It "TP-LINK TL-WN821N v5" Ta USB 2.0
+.It "TP-LINK TL-WN822N v4" Ta USB 2.0
 .It "TP-LINK TL-WN823N v1" Ta USB 2.0
+.It "TP-LINK TL-WN823N v2" Ta USB 2.0
 .It "TRENDnet TEW-805UB" Ta USB 3.0
 .It "ZyXEL NWD6605" Ta USB 3.0
 .El

Modified: projects/clang400-import/share/man/man4/rtwnfw.4
==============================================================================
--- projects/clang400-import/share/man/man4/rtwnfw.4	Tue Jan 24 19:56:22 2017	(r312719)
+++ projects/clang400-import/share/man/man4/rtwnfw.4	Tue Jan 24 19:59:25 2017	(r312720)
@@ -23,7 +23,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd October 28, 2015
+.Dd January 24, 2017
 .Dt RTWNFW 4
 .Os
 .Sh NAME
@@ -46,6 +46,7 @@ of the following:
 .Cd "device rtwn-rtl8192cfwE"
 .Cd "device rtwn-rtl8192cfwT"
 .Cd "device rtwn-rtl8192cfwU"
+.Cd "device rtwn-rtl8192eufw"
 .Cd "device rtwn-rtl8812aufw"
 .Cd "device rtwn-rtl8821aufw"
 .Ed
@@ -59,6 +60,7 @@ rtwn-rtl8192cfwE_B_load="YES"
 rtwn-rtl8192cfwE_load="YES"
 rtwn-rtl8192cfwT_load="YES"
 rtwn-rtl8192cfwU_load="YES"
+rtwn-rtl8192eufw_load="YES"
 rtwn-rtl8812aufw_load="YES"
 rtwn-rtl8821aufw_load="YES"
 .Ed
@@ -66,8 +68,8 @@ rtwn-rtl8821aufw_load="YES"
 rtwn-rtl8192cfwE and rtl8192cfwE_B modules provide access
 to firmware sets for the Realtek RTL8188CE chip based PCIe adapters.
 Other modules provide access to firmware sets for the Realtek RTL8188CUS,
-RTL8188CE-VAU, RTL8188EUS, RTL8188RU, RTL8192CU, RTL8812AU and RTL8821AU
-chip based USB WiFi adapters.
+RTL8188CE-VAU, RTL8188EUS, RTL8188RU, RTL8192CU, RTL8192EU, RTL8812AU and
+RTL8821AU chip based USB WiFi adapters.
 They may be
 statically linked into the kernel, or loaded as a modules.
 .Pp

Modified: projects/clang400-import/share/man/man5/tmpfs.5
==============================================================================
--- projects/clang400-import/share/man/man5/tmpfs.5	Tue Jan 24 19:56:22 2017	(r312719)
+++ projects/clang400-import/share/man/man5/tmpfs.5	Tue Jan 24 19:59:25 2017	(r312720)
@@ -54,7 +54,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd January 17, 2017
+.Dd January 20, 2017
 .Dt TMPFS 5
 .Os
 .Sh NAME
@@ -77,7 +77,7 @@ tmpfs_load="YES"
 .Sh DESCRIPTION
 The
 .Nm
-driver implements in-memory, or
+driver implements an in-memory, or
 .Tn tmpfs
 file system.
 The filesystem stores both file metadata and data in main memory.
@@ -85,22 +85,22 @@ This allows very fast and low latency ac
 The data is volatile.
 An umount or system reboot invalidates it.
 These properties make the filesystem's mounts suitable for fast
-scratch storage, e.g.
+scratch storage, like
 .Pa /tmp .
 .Pp
 If the system becomes low on memory and swap is configured (see
 .Xr swapon 8 ),
-file data may be written to the swap space, freeing memory
+the system can transfer file data to swap space, freeing memory
 for other needs.
-The current implementation never swaps out metadata, including
-the directory content.
+Metadata, including the directory content, is never swapped out by the
+current implementation.
 Keep this in mind when planning the mount limits, especially when expecting
 to place many small files on a tmpfs mount.
 .Pp
-When a file from a tmpfs mount is mmaped (see
-.Xr mmap 2 )
-into the process address space, the swap VM object which manages the file
-pages is used to implement mapping and to avoid double-copying of
+When 
+.Xr mmap 2
+is used on a file from a tmpfs mount, the swap VM object managing the 
+file pages is used to implement mapping and avoid double-copying of
 the file data.
 This quirk causes process inspection tools, like
 .Xr procstat 1 ,
@@ -120,6 +120,10 @@ Defaults to the mount point's UID.
 .It Cm mode
 Specifies the mode (in octal notation) of the root inode of the file system.
 Defaults to the mount point's mode.
+.It Cm nonc
+Do not use namecache to resolve names to files for the created mount.
+This saves memory, but currently might impair scalability for highly
+used mounts on large machines.
 .It Cm inodes
 Specifies the maximum number of nodes available to the file system.
 If not specified, the file system chooses a reasonable maximum based on

Modified: projects/clang400-import/sys/amd64/linux/linux_sysvec.c
==============================================================================
--- projects/clang400-import/sys/amd64/linux/linux_sysvec.c	Tue Jan 24 19:56:22 2017	(r312719)
+++ projects/clang400-import/sys/amd64/linux/linux_sysvec.c	Tue Jan 24 19:59:25 2017	(r312720)
@@ -718,7 +718,7 @@ exec_linux_imgact_try(struct image_param
 {
 	const char *head = (const char *)imgp->image_header;
 	char *rpath;
-	int error = -1, len;
+	int error = -1;
 
 	/*
 	 * The interpreter for shell scripts run from a linux binary needs
@@ -736,17 +736,12 @@ exec_linux_imgact_try(struct image_param
 			linux_emul_convpath(FIRST_THREAD_IN_PROC(imgp->proc),
 			    imgp->interpreter_name, UIO_SYSSPACE,
 			    &rpath, 0, AT_FDCWD);
-			if (rpath != NULL) {
-				len = strlen(rpath) + 1;
-
-				if (len <= MAXSHELLCMDLEN)
-					memcpy(imgp->interpreter_name,
-					    rpath, len);
-				free(rpath, M_TEMP);
-			}
+			if (rpath != NULL)
+				imgp->args->fname_buf =
+				    imgp->interpreter_name = rpath;
 		}
 	}
-	return(error);
+	return (error);
 }
 
 #define	LINUX_VSYSCALL_START		(-10UL << 20)

Modified: projects/clang400-import/sys/arm/freescale/imx/imx_machdep.c
==============================================================================
--- projects/clang400-import/sys/arm/freescale/imx/imx_machdep.c	Tue Jan 24 19:56:22 2017	(r312719)
+++ projects/clang400-import/sys/arm/freescale/imx/imx_machdep.c	Tue Jan 24 19:59:25 2017	(r312720)
@@ -69,11 +69,18 @@ imx_wdog_cpu_reset(vm_offset_t wdcr_phys
 	 * Trigger an immediate reset by clearing the SRS bit in the watchdog
 	 * control register.  The reset happens on the next cycle of the wdog
 	 * 32KHz clock, so hang out in a spin loop until the reset takes effect.
+	 *
+	 * Imx6 erratum ERR004346 says the SRS bit has to be cleared twice
+	 * within the same cycle of the 32khz clock to reliably trigger the
+	 * reset.  Writing it 3 times in a row ensures at least 2 of the writes
+	 * happen in the same 32k clock cycle.
 	 */
 	if ((pcr = devmap_ptov(wdcr_physaddr, sizeof(*pcr))) == NULL) {
 		printf("cpu_reset() can't find its control register... locking up now.");
 	} else {
 		*pcr &= ~WDOG_CR_SRS;
+		*pcr &= ~WDOG_CR_SRS;
+		*pcr &= ~WDOG_CR_SRS;
 	}
 	for (;;)
 		continue;

Modified: projects/clang400-import/sys/arm/ti/cpsw/if_cpsw.c
==============================================================================
--- projects/clang400-import/sys/arm/ti/cpsw/if_cpsw.c	Tue Jan 24 19:56:22 2017	(r312719)
+++ projects/clang400-import/sys/arm/ti/cpsw/if_cpsw.c	Tue Jan 24 19:59:25 2017	(r312720)
@@ -1582,14 +1582,19 @@ cpsw_intr_rx(void *arg)
 static struct mbuf *
 cpsw_rx_dequeue(struct cpsw_softc *sc)
 {
+	int nsegs, port, removed;
 	struct cpsw_cpdma_bd bd;
 	struct cpsw_slot *last, *slot;
 	struct cpswp_softc *psc;
-	struct mbuf *mb_head, *mb_tail;
-	int port, removed = 0;
+	struct mbuf *m, *m0, *mb_head, *mb_tail;
+	uint16_t m0_flags;
 
+	nsegs = 0;
+	m0 = NULL;
 	last = NULL;
-	mb_head = mb_tail = NULL;
+	mb_head = NULL;
+	mb_tail = NULL;
+	removed = 0;
 
 	/* Pull completed packets off hardware RX queue. */
 	while ((slot = STAILQ_FIRST(&sc->rx.active)) != NULL) {
@@ -1612,10 +1617,12 @@ cpsw_rx_dequeue(struct cpsw_softc *sc)
 		bus_dmamap_sync(sc->mbuf_dtag, slot->dmamap, BUS_DMASYNC_POSTREAD);
 		bus_dmamap_unload(sc->mbuf_dtag, slot->dmamap);
 
+		m = slot->mbuf;
+		slot->mbuf = NULL;
+
 		if (bd.flags & CPDMA_BD_TDOWNCMPLT) {
 			CPSW_DEBUGF(sc, ("RX teardown is complete"));
-			m_freem(slot->mbuf);
-			slot->mbuf = NULL;
+			m_freem(m);
 			sc->rx.running = 0;
 			sc->rx.teardown = 0;
 			break;
@@ -1627,28 +1634,36 @@ cpsw_rx_dequeue(struct cpsw_softc *sc)
 		psc = device_get_softc(sc->port[port].dev);
 
 		/* Set up mbuf */
-		/* TODO: track SOP/EOP bits to assemble a full mbuf
-		   out of received fragments. */
-		slot->mbuf->m_data += bd.bufoff;
-		slot->mbuf->m_len = bd.buflen;
+		m->m_data += bd.bufoff;
+		m->m_len = bd.buflen;
 		if (bd.flags & CPDMA_BD_SOP) {
-			slot->mbuf->m_pkthdr.len = bd.pktlen;
-			slot->mbuf->m_pkthdr.rcvif = psc->ifp;
-			slot->mbuf->m_flags |= M_PKTHDR;
-		}
-		slot->mbuf->m_next = NULL;
-		slot->mbuf->m_nextpkt = NULL;
-		if (bd.flags & CPDMA_BD_PASS_CRC)
-			m_adj(slot->mbuf, -ETHER_CRC_LEN);
+			m->m_pkthdr.len = bd.pktlen;
+			m->m_pkthdr.rcvif = psc->ifp;
+			m->m_flags |= M_PKTHDR;
+			m0_flags = bd.flags;
+			m0 = m;
+		}
+		nsegs++;
+		m->m_next = NULL;
+		m->m_nextpkt = NULL;
+		if (bd.flags & CPDMA_BD_EOP && m0 != NULL) {
+			if (m0_flags & CPDMA_BD_PASS_CRC)
+				m_adj(m0, -ETHER_CRC_LEN);
+			m0_flags = 0;
+			m0 = NULL;
+			if (nsegs > sc->rx.longest_chain)
+				sc->rx.longest_chain = nsegs;
+			nsegs = 0;
+		}
 
 		if ((psc->ifp->if_capenable & IFCAP_RXCSUM) != 0) {
 			/* check for valid CRC by looking into pkt_err[5:4] */
 			if ((bd.flags &
 			    (CPDMA_BD_SOP | CPDMA_BD_PKT_ERR_MASK)) ==
 			    CPDMA_BD_SOP) {
-				slot->mbuf->m_pkthdr.csum_flags |= CSUM_IP_CHECKED;
-				slot->mbuf->m_pkthdr.csum_flags |= CSUM_IP_VALID;
-				slot->mbuf->m_pkthdr.csum_data = 0xffff;
+				m->m_pkthdr.csum_flags |= CSUM_IP_CHECKED;
+				m->m_pkthdr.csum_flags |= CSUM_IP_VALID;
+				m->m_pkthdr.csum_data = 0xffff;
 			}
 		}
 
@@ -1661,15 +1676,21 @@ cpsw_rx_dequeue(struct cpsw_softc *sc)
 		}
 
 		/* Add mbuf to packet list to be returned. */
-		if (mb_tail) {
-			mb_tail->m_nextpkt = slot->mbuf;
+		if (mb_tail != NULL && (bd.flags & CPDMA_BD_SOP)) {
+			mb_tail->m_nextpkt = m;
+		} else if (mb_tail != NULL) {
+			mb_tail->m_next = m;
+		} else if (mb_tail == NULL && (bd.flags & CPDMA_BD_SOP) == 0) {
+			if (bootverbose)
+				printf(
+				    "%s: %s: discanding fragment packet w/o header\n",
+				    __func__, psc->ifp->if_xname);
+			m_freem(m);
+			continue;
 		} else {
-			mb_head = slot->mbuf;
+			mb_head = m;
 		}
-		mb_tail = slot->mbuf;
-		slot->mbuf = NULL;
-		if (sc->rx_batch > 0 && sc->rx_batch == removed)
-			break;
+		mb_tail = m;
 	}
 
 	if (removed != 0) {
@@ -1960,7 +1981,8 @@ cpsw_tx_dequeue(struct cpsw_softc *sc)
 			sc->tx.teardown = 1;
 		}
 
-		if ((flags & CPDMA_BD_OWNER) != 0 && sc->tx.teardown == 0)
+		if ((flags & (CPDMA_BD_SOP | CPDMA_BD_OWNER)) ==
+		    (CPDMA_BD_SOP | CPDMA_BD_OWNER) && sc->tx.teardown == 0)
 			break; /* Hardware is still using this packet. */
 
 		bus_dmamap_sync(sc->mbuf_dtag, slot->dmamap, BUS_DMASYNC_POSTWRITE);
@@ -2686,9 +2708,6 @@ cpsw_add_sysctls(struct cpsw_softc *sc)
 	SYSCTL_ADD_INT(ctx, parent, OID_AUTO, "debug",
 	    CTLFLAG_RW, &sc->debug, 0, "Enable switch debug messages");
 
-	SYSCTL_ADD_INT(ctx, parent, OID_AUTO, "rx_batch",
-	    CTLFLAG_RW, &sc->rx_batch, 0, "Set the rx batch size");
-
 	SYSCTL_ADD_PROC(ctx, parent, OID_AUTO, "attachedSecs",
 	    CTLTYPE_UINT | CTLFLAG_RD, sc, 0, cpsw_stat_attached, "IU",
 	    "Time since driver attach");

Modified: projects/clang400-import/sys/arm/ti/cpsw/if_cpswvar.h
==============================================================================
--- projects/clang400-import/sys/arm/ti/cpsw/if_cpswvar.h	Tue Jan 24 19:56:22 2017	(r312719)
+++ projects/clang400-import/sys/arm/ti/cpsw/if_cpswvar.h	Tue Jan 24 19:59:25 2017	(r312720)
@@ -89,7 +89,6 @@ struct cpsw_softc {
 	int		active_slave;
 	int		debug;
 	int		dualemac;
-	int		rx_batch;
 	phandle_t	node;
 	struct bintime	attach_uptime; /* system uptime when attach happened. */
 	struct cpsw_port port[2];

Modified: projects/clang400-import/sys/arm64/arm64/mp_machdep.c
==============================================================================
--- projects/clang400-import/sys/arm64/arm64/mp_machdep.c	Tue Jan 24 19:56:22 2017	(r312719)
+++ projects/clang400-import/sys/arm64/arm64/mp_machdep.c	Tue Jan 24 19:59:25 2017	(r312720)
@@ -105,8 +105,6 @@ static void ipi_preempt(void *);
 static void ipi_rendezvous(void *);
 static void ipi_stop(void *);
 
-static int ipi_handler(void *arg);
-
 struct mtx ap_boot_mtx;
 struct pcb stoppcbs[MAXCPU];
 

Modified: projects/clang400-import/sys/boot/fdt/dts/arm/beaglebone-black.dts
==============================================================================
--- projects/clang400-import/sys/boot/fdt/dts/arm/beaglebone-black.dts	Tue Jan 24 19:56:22 2017	(r312719)
+++ projects/clang400-import/sys/boot/fdt/dts/arm/beaglebone-black.dts	Tue Jan 24 19:59:25 2017	(r312720)
@@ -50,13 +50,7 @@
 };
 
 &i2c0 {
-	tda998x: hdmi-encoder {
-		compatible = "nxp,tda998x";
-		reg = <0x70>;
-
- 		pinctrl-names = "default", "off";
- 		pinctrl-0 = <&nxp_hdmi_bonelt_pins>;
- 		pinctrl-1 = <&nxp_hdmi_bonelt_off_pins>;
+	tda998x: tda19988 {
 		status = "okay";
  	};
 };

Modified: projects/clang400-import/sys/cam/ctl/ctl_backend_ramdisk.c
==============================================================================
--- projects/clang400-import/sys/cam/ctl/ctl_backend_ramdisk.c	Tue Jan 24 19:56:22 2017	(r312719)
+++ projects/clang400-import/sys/cam/ctl/ctl_backend_ramdisk.c	Tue Jan 24 19:59:25 2017	(r312720)
@@ -1,7 +1,7 @@
 /*-
  * Copyright (c) 2003, 2008 Silicon Graphics International Corp.
  * Copyright (c) 2012 The FreeBSD Foundation
- * Copyright (c) 2014-2015 Alexander Motin <mav@FreeBSD.org>
+ * Copyright (c) 2014-2017 Alexander Motin <mav@FreeBSD.org>
  * All rights reserved.
  *
  * Portions of this software were developed by Edward Tomasz Napierala
@@ -35,7 +35,7 @@
  * $Id: //depot/users/kenm/FreeBSD-test2/sys/cam/ctl/ctl_backend_ramdisk.c#3 $
  */
 /*
- * CAM Target Layer backend for a "fake" ramdisk.
+ * CAM Target Layer black hole and RAM disk backend.
  *
  * Author: Ken Merry <ken@FreeBSD.org>
  */
@@ -48,9 +48,11 @@ __FBSDID("$FreeBSD$");
 #include <sys/kernel.h>
 #include <sys/condvar.h>
 #include <sys/types.h>
+#include <sys/limits.h>
 #include <sys/lock.h>
 #include <sys/mutex.h>
 #include <sys/malloc.h>
+#include <sys/sx.h>
 #include <sys/taskqueue.h>
 #include <sys/time.h>
 #include <sys/queue.h>
@@ -71,6 +73,29 @@ __FBSDID("$FreeBSD$");
 #include <cam/ctl/ctl_private.h>
 #include <cam/ctl/ctl_error.h>
 
+#define PRIV(io)	\
+    ((struct ctl_ptr_len_flags *)&(io)->io_hdr.ctl_private[CTL_PRIV_BACKEND])
+#define ARGS(io)	\
+    ((struct ctl_lba_len_flags *)&(io)->io_hdr.ctl_private[CTL_PRIV_LBA_LEN])
+
+#define	PPP	(PAGE_SIZE / sizeof(uint8_t **))
+#ifdef __LP64__
+#define	PPPS	(PAGE_SHIFT - 3)
+#else
+#define	PPPS	(PAGE_SHIFT - 2)
+#endif
+#define	SGPP	(PAGE_SIZE / sizeof(struct ctl_sg_entry))
+
+#define	P_UNMAPPED	NULL			/* Page is unmapped. */
+#define	P_ANCHORED	((void *)(uintptr_t)1)	/* Page is anchored. */
+
+typedef enum {
+	GP_READ,	/* Return data page or zero page. */
+	GP_WRITE,	/* Return data page, try allocate if none. */
+	GP_ANCHOR,	/* Return data page, try anchor if none. */
+	GP_OTHER,	/* Return what present, do not allocate/anchor. */
+} getpage_op_t;
+
 typedef enum {
 	CTL_BE_RAMDISK_LUN_UNCONFIGURED	= 0x01,
 	CTL_BE_RAMDISK_LUN_CONFIG_ERR	= 0x02,
@@ -79,28 +104,29 @@ typedef enum {
 
 struct ctl_be_ramdisk_lun {
 	struct ctl_lun_create_params params;
-	char lunname[32];
-	uint64_t size_bytes;
-	uint64_t size_blocks;
+	char			lunname[32];
+	int			indir;
+	uint8_t			**pages;
+	uint8_t			*zero_page;
+	struct sx		page_lock;
+	u_int			pblocksize;
+	u_int			pblockmul;
+	uint64_t		size_bytes;
+	uint64_t		size_blocks;
+	uint64_t		cap_bytes;
+	uint64_t		cap_used;
 	struct ctl_be_ramdisk_softc *softc;
 	ctl_be_ramdisk_lun_flags flags;
 	STAILQ_ENTRY(ctl_be_ramdisk_lun) links;
-	struct ctl_be_lun cbe_lun;
-	struct taskqueue *io_taskqueue;
-	struct task io_task;
+	struct ctl_be_lun	cbe_lun;
+	struct taskqueue	*io_taskqueue;
+	struct task		io_task;
 	STAILQ_HEAD(, ctl_io_hdr) cont_queue;
-	struct mtx_padalign queue_lock;
+	struct mtx_padalign	queue_lock;
 };
 
 struct ctl_be_ramdisk_softc {
 	struct mtx lock;
-	int rd_size;
-#ifdef CTL_RAMDISK_PAGES
-	uint8_t **ramdisk_pages;
-	int num_pages;
-#else
-	uint8_t *ramdisk_buffer;
-#endif
 	int num_luns;
 	STAILQ_HEAD(, ctl_be_ramdisk_lun) lun_list;
 };
@@ -111,8 +137,13 @@ extern struct ctl_softc *control_softc;
 static int ctl_backend_ramdisk_init(void);
 static int ctl_backend_ramdisk_shutdown(void);
 static int ctl_backend_ramdisk_move_done(union ctl_io *io);
+static void ctl_backend_ramdisk_compare(union ctl_io *io);
+static void ctl_backend_ramdisk_rw(union ctl_io *io);
 static int ctl_backend_ramdisk_submit(union ctl_io *io);
-static void ctl_backend_ramdisk_continue(union ctl_io *io);
+static void ctl_backend_ramdisk_worker(void *context, int pending);
+static int ctl_backend_ramdisk_config_read(union ctl_io *io);
+static int ctl_backend_ramdisk_config_write(union ctl_io *io);
+static uint64_t ctl_backend_ramdisk_lun_attr(void *be_lun, const char *attrname);
 static int ctl_backend_ramdisk_ioctl(struct cdev *dev, u_long cmd,
 				     caddr_t addr, int flag, struct thread *td);
 static int ctl_backend_ramdisk_rm(struct ctl_be_ramdisk_softc *softc,
@@ -121,12 +152,9 @@ static int ctl_backend_ramdisk_create(st
 				      struct ctl_lun_req *req);
 static int ctl_backend_ramdisk_modify(struct ctl_be_ramdisk_softc *softc,
 				  struct ctl_lun_req *req);
-static void ctl_backend_ramdisk_worker(void *context, int pending);
 static void ctl_backend_ramdisk_lun_shutdown(void *be_lun);
 static void ctl_backend_ramdisk_lun_config_status(void *be_lun,
 						  ctl_lun_config_status status);
-static int ctl_backend_ramdisk_config_write(union ctl_io *io);
-static int ctl_backend_ramdisk_config_read(union ctl_io *io);
 
 static struct ctl_backend_driver ctl_be_ramdisk_driver = 
 {
@@ -138,36 +166,21 @@ static struct ctl_backend_driver ctl_be_
 	.data_move_done = ctl_backend_ramdisk_move_done,
 	.config_read = ctl_backend_ramdisk_config_read,
 	.config_write = ctl_backend_ramdisk_config_write,
-	.ioctl = ctl_backend_ramdisk_ioctl
+	.ioctl = ctl_backend_ramdisk_ioctl,
+	.lun_attr = ctl_backend_ramdisk_lun_attr,
 };
 
 MALLOC_DEFINE(M_RAMDISK, "ramdisk", "Memory used for CTL RAMdisk");
 CTL_BACKEND_DECLARE(cbr, ctl_be_ramdisk_driver);
 
-int
+static int
 ctl_backend_ramdisk_init(void)
 {
 	struct ctl_be_ramdisk_softc *softc = &rd_softc;
-#ifdef CTL_RAMDISK_PAGES
-	int i;
-#endif
 
 	memset(softc, 0, sizeof(*softc));
 	mtx_init(&softc->lock, "ctlramdisk", NULL, MTX_DEF);
 	STAILQ_INIT(&softc->lun_list);
-	softc->rd_size = 1024 * 1024;
-#ifdef CTL_RAMDISK_PAGES
-	softc->num_pages = softc->rd_size / PAGE_SIZE;
-	softc->ramdisk_pages = (uint8_t **)malloc(sizeof(uint8_t *) *
-						  softc->num_pages, M_RAMDISK,
-						  M_WAITOK);
-	for (i = 0; i < softc->num_pages; i++)
-		softc->ramdisk_pages[i] = malloc(PAGE_SIZE, M_RAMDISK,M_WAITOK);
-#else
-	softc->ramdisk_buffer = (uint8_t *)malloc(softc->rd_size, M_RAMDISK,
-						  M_WAITOK);
-#endif
-
 	return (0);
 }
 
@@ -176,9 +189,6 @@ ctl_backend_ramdisk_shutdown(void)
 {
 	struct ctl_be_ramdisk_softc *softc = &rd_softc;
 	struct ctl_be_ramdisk_lun *lun, *next_lun;
-#ifdef CTL_RAMDISK_PAGES
-	int i;
-#endif
 
 	mtx_lock(&softc->lock);
 	STAILQ_FOREACH_SAFE(lun, &softc->lun_list, links, next_lun) {
@@ -193,30 +203,210 @@ ctl_backend_ramdisk_shutdown(void)
 		mtx_lock(&softc->lock);
 	}
 	mtx_unlock(&softc->lock);
-
-#ifdef CTL_RAMDISK_PAGES
-	for (i = 0; i < softc->num_pages; i++)
-		free(softc->ramdisk_pages[i], M_RAMDISK);
-	free(softc->ramdisk_pages, M_RAMDISK);
-#else
-	free(softc->ramdisk_buffer, M_RAMDISK);
-#endif
 	mtx_destroy(&softc->lock);
 	return (0);
 }
 
+static uint8_t *
+ctl_backend_ramdisk_getpage(struct ctl_be_ramdisk_lun *be_lun, off_t pn,
+    getpage_op_t op)
+{
+	uint8_t **p, ***pp;
+	off_t i;
+	int s;
+
+	if (be_lun->cap_bytes == 0) {
+		switch (op) {
+		case GP_READ:
+			return (be_lun->zero_page);
+		case GP_WRITE:
+			return ((uint8_t *)be_lun->pages);
+		case GP_ANCHOR:
+			return (P_ANCHORED);
+		default:
+			return (P_UNMAPPED);
+		}
+	}
+	if (op == GP_WRITE || op == GP_ANCHOR) {
+		sx_xlock(&be_lun->page_lock);
+		pp = &be_lun->pages;
+		for (s = (be_lun->indir - 1) * PPPS; s >= 0; s -= PPPS) {
+			if (*pp == NULL) {
+				*pp = malloc(PAGE_SIZE, M_RAMDISK,
+				    M_WAITOK|M_ZERO);
+			}
+			i = pn >> s;
+			pp = (uint8_t ***)&(*pp)[i];
+			pn -= i << s;
+		}
+		if (*pp == P_UNMAPPED && be_lun->cap_used < be_lun->cap_bytes) {
+			if (op == GP_WRITE) {
+				*pp = malloc(be_lun->pblocksize, M_RAMDISK,
+				    M_WAITOK|M_ZERO);
+			} else
+				*pp = P_ANCHORED;
+			be_lun->cap_used += be_lun->pblocksize;
+		} else if (*pp == P_ANCHORED && op == GP_WRITE) {
+			*pp = malloc(be_lun->pblocksize, M_RAMDISK,
+			    M_WAITOK|M_ZERO);
+		}
+		sx_xunlock(&be_lun->page_lock);
+		return ((uint8_t *)*pp);
+	} else {
+		sx_slock(&be_lun->page_lock);
+		p = be_lun->pages;
+		for (s = (be_lun->indir - 1) * PPPS; s >= 0; s -= PPPS) {
+			if (p == NULL)
+				break;
+			i = pn >> s;
+			p = (uint8_t **)p[i];
+			pn -= i << s;
+		}
+		sx_sunlock(&be_lun->page_lock);
+		if ((p == P_UNMAPPED || p == P_ANCHORED) && op == GP_READ)
+			return (be_lun->zero_page);
+		return ((uint8_t *)p);
+	}
+};
+
+static void
+ctl_backend_ramdisk_unmappage(struct ctl_be_ramdisk_lun *be_lun, off_t pn)
+{
+	uint8_t ***pp;
+	off_t i;
+	int s;
+
+	if (be_lun->cap_bytes == 0)
+		return;
+	sx_xlock(&be_lun->page_lock);
+	pp = &be_lun->pages;
+	for (s = (be_lun->indir - 1) * PPPS; s >= 0; s -= PPPS) {
+		if (*pp == NULL)
+			goto noindir;
+		i = pn >> s;
+		pp = (uint8_t ***)&(*pp)[i];
+		pn -= i << s;
+	}
+	if (*pp == P_ANCHORED) {
+		be_lun->cap_used -= be_lun->pblocksize;
+		*pp = P_UNMAPPED;
+	} else if (*pp != P_UNMAPPED) {
+		free(*pp, M_RAMDISK);
+		be_lun->cap_used -= be_lun->pblocksize;
+		*pp = P_UNMAPPED;
+	}
+noindir:
+	sx_xunlock(&be_lun->page_lock);
+};
+
+static void
+ctl_backend_ramdisk_anchorpage(struct ctl_be_ramdisk_lun *be_lun, off_t pn)
+{
+	uint8_t ***pp;
+	off_t i;
+	int s;
+
+	if (be_lun->cap_bytes == 0)
+		return;
+	sx_xlock(&be_lun->page_lock);
+	pp = &be_lun->pages;
+	for (s = (be_lun->indir - 1) * PPPS; s >= 0; s -= PPPS) {
+		if (*pp == NULL)
+			goto noindir;
+		i = pn >> s;
+		pp = (uint8_t ***)&(*pp)[i];
+		pn -= i << s;
+	}
+	if (*pp == P_UNMAPPED && be_lun->cap_used < be_lun->cap_bytes) {
+		be_lun->cap_used += be_lun->pblocksize;
+		*pp = P_ANCHORED;
+	} else if (*pp != P_ANCHORED) {
+		free(*pp, M_RAMDISK);
+		*pp = P_ANCHORED;
+	}
+noindir:
+	sx_xunlock(&be_lun->page_lock);
+};
+
+static void
+ctl_backend_ramdisk_freeallpages(uint8_t **p, int indir)
+{
+	int i;
+
+	if (p == NULL)
+		return;
+	if (indir == 0) {
+		free(p, M_RAMDISK);
+		return;
+	}
+	for (i = 0; i < PPP; i++) {
+		if (p[i] == NULL)
+			continue;
+		ctl_backend_ramdisk_freeallpages((uint8_t **)p[i], indir - 1);
+	}
+	free(p, M_RAMDISK);
+};
+
+static size_t
+cmp(uint8_t *a, uint8_t *b, size_t size)
+{
+	size_t i;
+
+	for (i = 0; i < size; i++) {
+		if (a[i] != b[i])
+			break;
+	}
+	return (i);
+}
+
+static int
+ctl_backend_ramdisk_cmp(union ctl_io *io)
+{
+	struct ctl_be_lun *cbe_lun = CTL_BACKEND_LUN(io);
+	struct ctl_be_ramdisk_lun *be_lun = cbe_lun->be_lun;
+	uint8_t *page;
+	uint8_t info[8];
+	uint64_t lba;
+	u_int lbaoff, lbas, res, off;
+
+	lbas = io->scsiio.kern_data_len / cbe_lun->blocksize;
+	lba = ARGS(io)->lba + PRIV(io)->len - lbas;
+	off = 0;
+	for (; lbas > 0; lbas--, lba++) {
+		page = ctl_backend_ramdisk_getpage(be_lun,
+		    lba >> cbe_lun->pblockexp, GP_READ);
+		lbaoff = lba & ~(UINT_MAX << cbe_lun->pblockexp);
+		page += lbaoff * cbe_lun->blocksize;
+		res = cmp(io->scsiio.kern_data_ptr + off, page,
+		    cbe_lun->blocksize);
+		off += res;
+		if (res < cbe_lun->blocksize)
+			break;
+	}
+	if (lbas > 0) {
+		off += io->scsiio.kern_rel_offset - io->scsiio.kern_data_len;
+		scsi_u64to8b(off, info);
+		ctl_set_sense(&io->scsiio, /*current_error*/ 1,
+		    /*sense_key*/ SSD_KEY_MISCOMPARE,
+		    /*asc*/ 0x1D, /*ascq*/ 0x00,
+		    /*type*/ SSD_ELEM_INFO,
+		    /*size*/ sizeof(info), /*data*/ &info,
+		    /*type*/ SSD_ELEM_NONE);
+		return (1);
+	}
+	return (0);
+}
+
 static int
 ctl_backend_ramdisk_move_done(union ctl_io *io)
 {
-	struct ctl_be_lun *cbe_lun;
-	struct ctl_be_ramdisk_lun *be_lun;
+	struct ctl_be_lun *cbe_lun = CTL_BACKEND_LUN(io);
+	struct ctl_be_ramdisk_lun *be_lun = cbe_lun->be_lun;
 #ifdef CTL_TIME_IO
 	struct bintime cur_bt;
 #endif
 
 	CTL_DEBUG_PRINT(("ctl_backend_ramdisk_move_done\n"));
-	cbe_lun = CTL_BACKEND_LUN(io);
-	be_lun = (struct ctl_be_ramdisk_lun *)cbe_lun->be_lun;
 #ifdef CTL_TIME_IO
 	getbinuptime(&cur_bt);
 	bintime_sub(&cur_bt, &io->io_hdr.dma_start_bt);
@@ -240,7 +430,12 @@ ctl_backend_ramdisk_move_done(union ctl_
 		ctl_set_invalid_field_ciu(&io->scsiio);
 	} else if ((io->io_hdr.port_status == 0) &&
 	    ((io->io_hdr.status & CTL_STATUS_MASK) == CTL_STATUS_NONE)) {
-		if (io->io_hdr.ctl_private[CTL_PRIV_BACKEND].integer > 0) {
+		if (ARGS(io)->flags & CTL_LLF_COMPARE) {
+			/* We have data block ready for comparison. */
+			if (ctl_backend_ramdisk_cmp(io))
+				goto done;
+		}
+		if (ARGS(io)->len > PRIV(io)->len) {
 			mtx_lock(&be_lun->queue_lock);
 			STAILQ_INSERT_TAIL(&be_lun->cont_queue,
 			    &io->io_hdr, links);
@@ -251,75 +446,109 @@ ctl_backend_ramdisk_move_done(union ctl_
 		}
 		ctl_set_success(&io->scsiio);
 	}
+done:
 	ctl_data_submit_done(io);
 	return(0);
 }
 
-static int
-ctl_backend_ramdisk_submit(union ctl_io *io)
+static void
+ctl_backend_ramdisk_compare(union ctl_io *io)
 {
-	struct ctl_be_lun *cbe_lun;
-	struct ctl_lba_len_flags *lbalen;
+	struct ctl_be_lun *cbe_lun = CTL_BACKEND_LUN(io);
+	u_int lbas, len;
 
-	cbe_lun = CTL_BACKEND_LUN(io);
-	lbalen = (struct ctl_lba_len_flags *)&io->io_hdr.ctl_private[CTL_PRIV_LBA_LEN];
-	if (lbalen->flags & CTL_LLF_VERIFY) {
-		ctl_set_success(&io->scsiio);
-		ctl_data_submit_done(io);
-		return (CTL_RETVAL_COMPLETE);
-	}
-	io->io_hdr.ctl_private[CTL_PRIV_BACKEND].integer =
-	    lbalen->len * cbe_lun->blocksize;
-	ctl_backend_ramdisk_continue(io);
-	return (CTL_RETVAL_COMPLETE);
+	lbas = ARGS(io)->len - PRIV(io)->len;
+	lbas = MIN(lbas, 131072 / cbe_lun->blocksize);
+	len = lbas * cbe_lun->blocksize;
+
+	io->scsiio.be_move_done = ctl_backend_ramdisk_move_done;
+	io->scsiio.kern_data_ptr = malloc(len, M_RAMDISK, M_WAITOK);
+	io->scsiio.kern_data_len = len;
+	io->scsiio.kern_sg_entries = 0;
+	io->io_hdr.flags |= CTL_FLAG_ALLOCATED;
+	PRIV(io)->len += lbas;
+#ifdef CTL_TIME_IO
+	getbinuptime(&io->io_hdr.dma_start_bt);
+#endif
+	ctl_datamove(io);
 }
 
 static void
-ctl_backend_ramdisk_continue(union ctl_io *io)
+ctl_backend_ramdisk_rw(union ctl_io *io)
 {
-	struct ctl_be_ramdisk_softc *softc;
-	int len, len_filled, sg_filled;
-#ifdef CTL_RAMDISK_PAGES
+	struct ctl_be_lun *cbe_lun = CTL_BACKEND_LUN(io);
+	struct ctl_be_ramdisk_lun *be_lun = cbe_lun->be_lun;
 	struct ctl_sg_entry *sg_entries;
-	int i;
-#endif
-
-	softc = &rd_softc;
-	len = io->io_hdr.ctl_private[CTL_PRIV_BACKEND].integer;
-#ifdef CTL_RAMDISK_PAGES
-	sg_filled = min(btoc(len), softc->num_pages);
-	if (sg_filled > 1) {
+	uint8_t *page;
+	uint64_t lba;
+	u_int i, len, lbaoff, lbas, sgs, off;
+	getpage_op_t op;
+
+	lba = ARGS(io)->lba + PRIV(io)->len;
+	lbaoff = lba & ~(UINT_MAX << cbe_lun->pblockexp);
+	lbas = ARGS(io)->len - PRIV(io)->len;
+	lbas = MIN(lbas, (SGPP << cbe_lun->pblockexp) - lbaoff);
+	sgs = (lbas + lbaoff + be_lun->pblockmul - 1) >> cbe_lun->pblockexp;
+	off = lbaoff * cbe_lun->blocksize;
+	op = (ARGS(io)->flags & CTL_LLF_WRITE) ? GP_WRITE : GP_READ;
+	if (sgs > 1) {
 		io->scsiio.kern_data_ptr = malloc(sizeof(struct ctl_sg_entry) *
-						  sg_filled, M_RAMDISK,
-						  M_WAITOK);
+		    sgs, M_RAMDISK, M_WAITOK);
 		sg_entries = (struct ctl_sg_entry *)io->scsiio.kern_data_ptr;
-		for (i = 0, len_filled = 0; i < sg_filled; i++) {
-			sg_entries[i].addr = softc->ramdisk_pages[i];
-			sg_entries[i].len = MIN(PAGE_SIZE, len - len_filled);
-			len_filled += sg_entries[i].len;
+		len = lbas * cbe_lun->blocksize;
+		for (i = 0; i < sgs; i++) {
+			page = ctl_backend_ramdisk_getpage(be_lun,
+			    (lba >> cbe_lun->pblockexp) + i, op);
+			if (page == P_UNMAPPED || page == P_ANCHORED) {
+				free(io->scsiio.kern_data_ptr, M_RAMDISK);
+nospc:
+				ctl_set_space_alloc_fail(&io->scsiio);
+				ctl_data_submit_done(io);
+				return;
+			}
+			sg_entries[i].addr = page + off;
+			sg_entries[i].len = MIN(len, be_lun->pblocksize - off);

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

From owner-svn-src-projects@freebsd.org  Tue Jan 24 23:41:26 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id CB759CC0512
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Tue, 24 Jan 2017 23:41:26 +0000 (UTC) (envelope-from ae@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id EFA71BC1;
 Tue, 24 Jan 2017 23:41:25 +0000 (UTC) (envelope-from ae@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0ONfPfU085965;
 Tue, 24 Jan 2017 23:41:25 GMT (envelope-from ae@FreeBSD.org)
Received: (from ae@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0ONfM2S085938;
 Tue, 24 Jan 2017 23:41:22 GMT (envelope-from ae@FreeBSD.org)
Message-Id: <201701242341.v0ONfM2S085938@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org
 using -f
From: "Andrey V. Elsukov" <ae@FreeBSD.org>
Date: Tue, 24 Jan 2017 23:41:22 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r312727 - in projects/ipsec: . bin/chmod bin/pax
 cddl/lib/libdtrace cddl/usr.sbin/zfsd contrib/bsnmp/gensnmpdef
 contrib/bsnmp/gensnmptree contrib/bsnmp/lib contrib/bsnmp/snmp_mibII cont...
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 24 Jan 2017 23:41:26 -0000

Author: ae
Date: Tue Jan 24 23:41:20 2017
New Revision: 312727
URL: https://svnweb.freebsd.org/changeset/base/312727

Log:
  Merge from head/.

Added:
  projects/ipsec/contrib/libarchive/libarchive/test/test_acl_pax_nfs4.tar.uu
     - copied unchanged from r312726, head/contrib/libarchive/libarchive/test/test_acl_pax_nfs4.tar.uu
  projects/ipsec/contrib/libarchive/libarchive/test/test_acl_pax_posix1e.tar.uu
     - copied unchanged from r312726, head/contrib/libarchive/libarchive/test/test_acl_pax_posix1e.tar.uu
  projects/ipsec/contrib/libarchive/libarchive/test/test_acl_text.c
     - copied unchanged from r312726, head/contrib/libarchive/libarchive/test/test_acl_text.c
  projects/ipsec/contrib/libarchive/libarchive/test/test_compat_star_acl.c
     - copied unchanged from r312726, head/contrib/libarchive/libarchive/test/test_compat_star_acl.c
  projects/ipsec/contrib/libarchive/libarchive/test/test_compat_star_acl_nfs4.tar.uu
     - copied unchanged from r312726, head/contrib/libarchive/libarchive/test/test_compat_star_acl_nfs4.tar.uu
  projects/ipsec/contrib/libarchive/libarchive/test/test_read_pax_schily_xattr.c
     - copied unchanged from r312726, head/contrib/libarchive/libarchive/test/test_read_pax_schily_xattr.c
  projects/ipsec/contrib/libarchive/libarchive/test/test_read_pax_schily_xattr.tar.uu
     - copied unchanged from r312726, head/contrib/libarchive/libarchive/test/test_read_pax_schily_xattr.tar.uu
  projects/ipsec/contrib/mdocml/dba.c
     - copied unchanged from r312726, head/contrib/mdocml/dba.c
  projects/ipsec/contrib/mdocml/dba.h
     - copied unchanged from r312726, head/contrib/mdocml/dba.h
  projects/ipsec/contrib/mdocml/dba_array.c
     - copied unchanged from r312726, head/contrib/mdocml/dba_array.c
  projects/ipsec/contrib/mdocml/dba_array.h
     - copied unchanged from r312726, head/contrib/mdocml/dba_array.h
  projects/ipsec/contrib/mdocml/dba_read.c
     - copied unchanged from r312726, head/contrib/mdocml/dba_read.c
  projects/ipsec/contrib/mdocml/dba_write.c
     - copied unchanged from r312726, head/contrib/mdocml/dba_write.c
  projects/ipsec/contrib/mdocml/dba_write.h
     - copied unchanged from r312726, head/contrib/mdocml/dba_write.h
  projects/ipsec/contrib/mdocml/dbm.c
     - copied unchanged from r312726, head/contrib/mdocml/dbm.c
  projects/ipsec/contrib/mdocml/dbm.h
     - copied unchanged from r312726, head/contrib/mdocml/dbm.h
  projects/ipsec/contrib/mdocml/dbm_map.c
     - copied unchanged from r312726, head/contrib/mdocml/dbm_map.c
  projects/ipsec/contrib/mdocml/dbm_map.h
     - copied unchanged from r312726, head/contrib/mdocml/dbm_map.h
  projects/ipsec/contrib/mdocml/test-EFTYPE.c
     - copied unchanged from r312726, head/contrib/mdocml/test-EFTYPE.c
  projects/ipsec/contrib/mdocml/test-PATH_MAX.c
     - copied unchanged from r312726, head/contrib/mdocml/test-PATH_MAX.c
  projects/ipsec/contrib/mdocml/test-be32toh.c
     - copied unchanged from r312726, head/contrib/mdocml/test-be32toh.c
  projects/ipsec/contrib/mdocml/test-nanosleep.c
     - copied unchanged from r312726, head/contrib/mdocml/test-nanosleep.c
  projects/ipsec/contrib/mdocml/test-ntohl.c
     - copied unchanged from r312726, head/contrib/mdocml/test-ntohl.c
  projects/ipsec/contrib/mdocml/test-sandbox_init.c
     - copied unchanged from r312726, head/contrib/mdocml/test-sandbox_init.c
  projects/ipsec/contrib/netbsd-tests/dev/cgd/t_cgd_3des.c
     - copied unchanged from r312726, head/contrib/netbsd-tests/dev/cgd/t_cgd_3des.c
  projects/ipsec/contrib/netbsd-tests/dev/cgd/t_cgd_aes.c
     - copied unchanged from r312726, head/contrib/netbsd-tests/dev/cgd/t_cgd_aes.c
  projects/ipsec/contrib/netbsd-tests/dev/cgd/t_cgd_blowfish.c
     - copied unchanged from r312726, head/contrib/netbsd-tests/dev/cgd/t_cgd_blowfish.c
  projects/ipsec/contrib/netbsd-tests/kernel/msg.h
     - copied unchanged from r312726, head/contrib/netbsd-tests/kernel/msg.h
  projects/ipsec/contrib/netbsd-tests/kernel/t_ptrace.c
     - copied unchanged from r312726, head/contrib/netbsd-tests/kernel/t_ptrace.c
  projects/ipsec/contrib/netbsd-tests/kernel/t_ptrace_wait.c
     - copied unchanged from r312726, head/contrib/netbsd-tests/kernel/t_ptrace_wait.c
  projects/ipsec/contrib/netbsd-tests/kernel/t_ptrace_wait.h
     - copied unchanged from r312726, head/contrib/netbsd-tests/kernel/t_ptrace_wait.h
  projects/ipsec/contrib/netbsd-tests/kernel/t_ptrace_wait3.c
     - copied unchanged from r312726, head/contrib/netbsd-tests/kernel/t_ptrace_wait3.c
  projects/ipsec/contrib/netbsd-tests/kernel/t_ptrace_wait4.c
     - copied unchanged from r312726, head/contrib/netbsd-tests/kernel/t_ptrace_wait4.c
  projects/ipsec/contrib/netbsd-tests/kernel/t_ptrace_wait6.c
     - copied unchanged from r312726, head/contrib/netbsd-tests/kernel/t_ptrace_wait6.c
  projects/ipsec/contrib/netbsd-tests/kernel/t_ptrace_waitid.c
     - copied unchanged from r312726, head/contrib/netbsd-tests/kernel/t_ptrace_waitid.c
  projects/ipsec/contrib/netbsd-tests/kernel/t_ptrace_waitpid.c
     - copied unchanged from r312726, head/contrib/netbsd-tests/kernel/t_ptrace_waitpid.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/sys/t_clock_nanosleep.c
     - copied unchanged from r312726, head/contrib/netbsd-tests/lib/libc/sys/t_clock_nanosleep.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/sys/t_wait_noproc.c
     - copied unchanged from r312726, head/contrib/netbsd-tests/lib/libc/sys/t_wait_noproc.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/sys/t_wait_noproc_wnohang.c
     - copied unchanged from r312726, head/contrib/netbsd-tests/lib/libc/sys/t_wait_noproc_wnohang.c
  projects/ipsec/contrib/netbsd-tests/lib/libm/t_casinh.c
     - copied unchanged from r312726, head/contrib/netbsd-tests/lib/libm/t_casinh.c
  projects/ipsec/contrib/netbsd-tests/lib/libm/t_fe_round.c
     - copied unchanged from r312726, head/contrib/netbsd-tests/lib/libm/t_fe_round.c
  projects/ipsec/contrib/netbsd-tests/lib/libm/t_ilogb.c
     - copied unchanged from r312726, head/contrib/netbsd-tests/lib/libm/t_ilogb.c
  projects/ipsec/contrib/netbsd-tests/lib/libpthread/t_timedmutex.c
     - copied unchanged from r312726, head/contrib/netbsd-tests/lib/libpthread/t_timedmutex.c
  projects/ipsec/contrib/netbsd-tests/net/net/t_mtudisc.sh
     - copied unchanged from r312726, head/contrib/netbsd-tests/net/net/t_mtudisc.sh
  projects/ipsec/contrib/netbsd-tests/net/net/t_mtudisc6.sh
     - copied unchanged from r312726, head/contrib/netbsd-tests/net/net/t_mtudisc6.sh
  projects/ipsec/contrib/netbsd-tests/net/net/t_ping6_opts.sh
     - copied unchanged from r312726, head/contrib/netbsd-tests/net/net/t_ping6_opts.sh
  projects/ipsec/contrib/netbsd-tests/net/net_common.sh
     - copied unchanged from r312726, head/contrib/netbsd-tests/net/net_common.sh
  projects/ipsec/contrib/netbsd-tests/usr.bin/xlint/lint1/d_c99_anon_union.c
     - copied unchanged from r312726, head/contrib/netbsd-tests/usr.bin/xlint/lint1/d_c99_anon_union.c
  projects/ipsec/contrib/netbsd-tests/usr.bin/xlint/lint1/d_c99_union_cast.c
     - copied unchanged from r312726, head/contrib/netbsd-tests/usr.bin/xlint/lint1/d_c99_union_cast.c
     - copied from r312726, head/contrib/zlib/
  projects/ipsec/lib/libc/stdlib/cxa_thread_atexit_impl.c
     - copied unchanged from r312726, head/lib/libc/stdlib/cxa_thread_atexit_impl.c
  projects/ipsec/share/man/man4/mlx4ib.4
     - copied unchanged from r312726, head/share/man/man4/mlx4ib.4
  projects/ipsec/sys/arm/allwinner/a33/
     - copied from r312726, head/sys/arm/allwinner/a33/
  projects/ipsec/sys/boot/fdt/dts/arm/armada-385-db-ap.dts
     - copied unchanged from r312726, head/sys/boot/fdt/dts/arm/armada-385-db-ap.dts
  projects/ipsec/sys/boot/fdt/dts/arm/armada-388-clearfog.dts
     - copied unchanged from r312726, head/sys/boot/fdt/dts/arm/armada-388-clearfog.dts
  projects/ipsec/sys/boot/fdt/dts/arm/armada-38x-solidrun-microsom.dtsi
     - copied unchanged from r312726, head/sys/boot/fdt/dts/arm/armada-38x-solidrun-microsom.dtsi
  projects/ipsec/sys/contrib/ck/include/gcc/aarch64/ck_pr_llsc.h
     - copied unchanged from r312726, head/sys/contrib/ck/include/gcc/aarch64/ck_pr_llsc.h
  projects/ipsec/sys/contrib/ck/include/gcc/aarch64/ck_pr_lse.h
     - copied unchanged from r312726, head/sys/contrib/ck/include/gcc/aarch64/ck_pr_lse.h
  projects/ipsec/sys/contrib/dev/acpica/os_specific/service_layers/osgendbg.c
     - copied unchanged from r312726, head/sys/contrib/dev/acpica/os_specific/service_layers/osgendbg.c
  projects/ipsec/sys/contrib/dev/rtwn/rtwn-rtl8192eufw.fw.uu
     - copied unchanged from r312726, head/sys/contrib/dev/rtwn/rtwn-rtl8192eufw.fw.uu
  projects/ipsec/sys/dev/cxgbe/firmware/t4fw-1.16.26.0.bin.uu
     - copied unchanged from r312726, head/sys/dev/cxgbe/firmware/t4fw-1.16.26.0.bin.uu
  projects/ipsec/sys/dev/cxgbe/firmware/t5fw-1.16.26.0.bin.uu
     - copied unchanged from r312726, head/sys/dev/cxgbe/firmware/t5fw-1.16.26.0.bin.uu
  projects/ipsec/sys/dev/cxgbe/firmware/t6fw-1.16.26.0.bin.uu
     - copied unchanged from r312726, head/sys/dev/cxgbe/firmware/t6fw-1.16.26.0.bin.uu
  projects/ipsec/sys/dev/e1000/em_txrx.c
     - copied unchanged from r312726, head/sys/dev/e1000/em_txrx.c
  projects/ipsec/sys/dev/e1000/igb_txrx.c
     - copied unchanged from r312726, head/sys/dev/e1000/igb_txrx.c
  projects/ipsec/sys/dev/etherswitch/micrel/
     - copied from r312726, head/sys/dev/etherswitch/micrel/
  projects/ipsec/sys/dev/gpio/gpioths.c
     - copied unchanged from r312726, head/sys/dev/gpio/gpioths.c
  projects/ipsec/sys/dev/intel/
     - copied from r312726, head/sys/dev/intel/
  projects/ipsec/sys/dev/rtwn/rtl8192c/r92c_llt.c
     - copied unchanged from r312726, head/sys/dev/rtwn/rtl8192c/r92c_llt.c
  projects/ipsec/sys/dev/rtwn/rtl8192e/
     - copied from r312726, head/sys/dev/rtwn/rtl8192e/
  projects/ipsec/sys/dev/rtwn/rtl8821a/usb/r21au_dfs.c
     - copied unchanged from r312726, head/sys/dev/rtwn/rtl8821a/usb/r21au_dfs.c
  projects/ipsec/sys/dev/sdhci/sdhci_acpi.c
     - copied unchanged from r312726, head/sys/dev/sdhci/sdhci_acpi.c
  projects/ipsec/sys/dev/sdhci/sdhci_fdt_gpio.c
     - copied unchanged from r312726, head/sys/dev/sdhci/sdhci_fdt_gpio.c
  projects/ipsec/sys/dev/sdhci/sdhci_fdt_gpio.h
     - copied unchanged from r312726, head/sys/dev/sdhci/sdhci_fdt_gpio.h
  projects/ipsec/sys/modules/intelspi/
     - copied from r312726, head/sys/modules/intelspi/
  projects/ipsec/sys/modules/rtwnfw/rtwnrtl8192eu/
     - copied from r312726, head/sys/modules/rtwnfw/rtwnrtl8192eu/
  projects/ipsec/sys/modules/sdhci_acpi/
     - copied from r312726, head/sys/modules/sdhci_acpi/
  projects/ipsec/sys/net80211/ieee80211_vht.c
     - copied unchanged from r312726, head/sys/net80211/ieee80211_vht.c
  projects/ipsec/sys/net80211/ieee80211_vht.h
     - copied unchanged from r312726, head/sys/net80211/ieee80211_vht.h
  projects/ipsec/tests/sys/Makefile.inc
     - copied unchanged from r312726, head/tests/sys/Makefile.inc
  projects/ipsec/tests/sys/fs/Makefile.inc
     - copied unchanged from r312726, head/tests/sys/fs/Makefile.inc
  projects/ipsec/tests/sys/geom/class/eli/init_alias_test.sh
     - copied unchanged from r312726, head/tests/sys/geom/class/eli/init_alias_test.sh
  projects/ipsec/tests/sys/geom/class/gate/ggate_test.sh
     - copied unchanged from r312726, head/tests/sys/geom/class/gate/ggate_test.sh
  projects/ipsec/tests/sys/geom/class/nop/nop_test.sh
     - copied unchanged from r312726, head/tests/sys/geom/class/nop/nop_test.sh
  projects/ipsec/tests/sys/kern/Makefile.inc
     - copied unchanged from r312726, head/tests/sys/kern/Makefile.inc
  projects/ipsec/tests/sys/kqueue/Makefile.inc
     - copied unchanged from r312726, head/tests/sys/kqueue/Makefile.inc
  projects/ipsec/tests/sys/mac/Makefile.inc
     - copied unchanged from r312726, head/tests/sys/mac/Makefile.inc
  projects/ipsec/tools/build/options/WITHOUT_EFI
     - copied unchanged from r312726, head/tools/build/options/WITHOUT_EFI
  projects/ipsec/tools/build/options/WITH_EFI
     - copied unchanged from r312726, head/tools/build/options/WITH_EFI
  projects/ipsec/tools/build/options/WITH_SSP
     - copied unchanged from r312726, head/tools/build/options/WITH_SSP
  projects/ipsec/tools/regression/sockets/udp_pingpong/
     - copied from r312726, head/tools/regression/sockets/udp_pingpong/
  projects/ipsec/tools/tools/gensnmpdef/
     - copied from r312726, head/tools/tools/gensnmpdef/
  projects/ipsec/usr.bin/cmp/tests/cmp_test2.sh
     - copied unchanged from r312726, head/usr.bin/cmp/tests/cmp_test2.sh
  projects/ipsec/usr.bin/cut/tests/cut2_test.sh
     - copied unchanged from r312726, head/usr.bin/cut/tests/cut2_test.sh
  projects/ipsec/usr.bin/sed/tests/sed2_test.sh
     - copied unchanged from r312726, head/usr.bin/sed/tests/sed2_test.sh
  projects/ipsec/usr.bin/tail/tests/
     - copied from r312726, head/usr.bin/tail/tests/
  projects/ipsec/usr.bin/truss/riscv64-freebsd.c
     - copied unchanged from r312726, head/usr.bin/truss/riscv64-freebsd.c
  projects/ipsec/usr.sbin/fstyp/exfat.c
     - copied unchanged from r312726, head/usr.sbin/fstyp/exfat.c
  projects/ipsec/usr.sbin/fstyp/tests/dfr-01-xfat.img.bz2
     - copied unchanged from r312726, head/usr.sbin/fstyp/tests/dfr-01-xfat.img.bz2
Directory Properties:
  projects/ipsec/contrib/zlib/   (props changed)
Deleted:
  projects/ipsec/contrib/libarchive/libarchive/test/test_acl_pax.tar.uu
  projects/ipsec/contrib/libarchive/libarchive/test/test_compat_star_acl_posix1e.c
  projects/ipsec/contrib/mdocml/compat_sqlite3_errstr.c
  projects/ipsec/contrib/mdocml/config.log
  projects/ipsec/contrib/mdocml/mansearch_const.c
  projects/ipsec/contrib/mdocml/test-mmap.c
  projects/ipsec/contrib/mdocml/test-sqlite3.c
  projects/ipsec/contrib/mdocml/test-sqlite3_errstr.c
  projects/ipsec/contrib/netbsd-tests/fs/nfs/nfsservice/rpcbind/
  projects/ipsec/lib/libprocstat/Versions.def
  projects/ipsec/lib/libz/ChangeLog
  projects/ipsec/lib/libz/FAQ
  projects/ipsec/lib/libz/README
  projects/ipsec/lib/libz/adler32.c
  projects/ipsec/lib/libz/compress.c
  projects/ipsec/lib/libz/contrib/
  projects/ipsec/lib/libz/crc32.c
  projects/ipsec/lib/libz/crc32.h
  projects/ipsec/lib/libz/deflate.c
  projects/ipsec/lib/libz/deflate.h
  projects/ipsec/lib/libz/doc/
  projects/ipsec/lib/libz/gzclose.c
  projects/ipsec/lib/libz/gzguts.h
  projects/ipsec/lib/libz/gzlib.c
  projects/ipsec/lib/libz/gzread.c
  projects/ipsec/lib/libz/gzwrite.c
  projects/ipsec/lib/libz/infback.c
  projects/ipsec/lib/libz/inffast.c
  projects/ipsec/lib/libz/inffast.h
  projects/ipsec/lib/libz/inffixed.h
  projects/ipsec/lib/libz/inflate.c
  projects/ipsec/lib/libz/inflate.h
  projects/ipsec/lib/libz/inftrees.c
  projects/ipsec/lib/libz/inftrees.h
  projects/ipsec/lib/libz/test/
  projects/ipsec/lib/libz/trees.c
  projects/ipsec/lib/libz/trees.h
  projects/ipsec/lib/libz/uncompr.c
  projects/ipsec/lib/libz/zconf.h
  projects/ipsec/lib/libz/zlib.3
  projects/ipsec/lib/libz/zlib.h
  projects/ipsec/lib/libz/zutil.c
  projects/ipsec/lib/libz/zutil.h
  projects/ipsec/sys/arm/include/cpuconf.h
  projects/ipsec/sys/boot/fdt/dts/arm/ubmc.dtsi
  projects/ipsec/sys/contrib/ck/src/Makefile.in
  projects/ipsec/sys/dev/cxgbe/firmware/t4fw-1.16.22.0.bin.uu
  projects/ipsec/sys/dev/cxgbe/firmware/t5fw-1.16.22.0.bin.uu
  projects/ipsec/sys/dev/cxgbe/firmware/t6fw-1.16.22.0.bin.uu
  projects/ipsec/sys/dev/e1000/if_igb.c
  projects/ipsec/sys/dev/e1000/if_igb.h
  projects/ipsec/sys/dev/e1000/if_lem.c
  projects/ipsec/sys/dev/e1000/if_lem.h
  projects/ipsec/sys/dev/sfxge/common/efx_wol.c
  projects/ipsec/sys/dev/sfxge/common/hunt_phy.c
  projects/ipsec/sys/modules/igb/
  projects/ipsec/tests/sys/geom/class/gate/1_test.sh
  projects/ipsec/tests/sys/geom/class/gate/2_test.sh
  projects/ipsec/tests/sys/geom/class/gate/3_test.sh
  projects/ipsec/tests/sys/geom/class/gate/conf.sh
  projects/ipsec/tests/sys/geom/class/nop/1_test.sh
  projects/ipsec/tests/sys/geom/class/nop/2_test.sh
  projects/ipsec/tests/sys/geom/class/nop/conf.sh
Modified:
  projects/ipsec/COPYRIGHT
  projects/ipsec/Makefile.inc1
  projects/ipsec/Makefile.libcompat
  projects/ipsec/ObsoleteFiles.inc
  projects/ipsec/UPDATING
  projects/ipsec/bin/chmod/chmod.1
  projects/ipsec/bin/chmod/chmod.c
  projects/ipsec/bin/pax/gen_subs.c
  projects/ipsec/cddl/lib/libdtrace/ip.d
  projects/ipsec/cddl/usr.sbin/zfsd/case_file.cc
  projects/ipsec/contrib/bsnmp/gensnmpdef/gensnmpdef.1
  projects/ipsec/contrib/bsnmp/gensnmpdef/gensnmpdef.c
  projects/ipsec/contrib/bsnmp/gensnmptree/gensnmptree.1
  projects/ipsec/contrib/bsnmp/gensnmptree/gensnmptree.c
  projects/ipsec/contrib/bsnmp/lib/asn1.3
  projects/ipsec/contrib/bsnmp/lib/asn1.c
  projects/ipsec/contrib/bsnmp/lib/asn1.h
  projects/ipsec/contrib/bsnmp/lib/bsnmpagent.3
  projects/ipsec/contrib/bsnmp/lib/bsnmpclient.3
  projects/ipsec/contrib/bsnmp/lib/bsnmplib.3
  projects/ipsec/contrib/bsnmp/lib/snmp.c
  projects/ipsec/contrib/bsnmp/lib/snmp.h
  projects/ipsec/contrib/bsnmp/lib/snmpagent.c
  projects/ipsec/contrib/bsnmp/lib/snmpagent.h
  projects/ipsec/contrib/bsnmp/lib/snmpclient.c
  projects/ipsec/contrib/bsnmp/lib/snmpclient.h
  projects/ipsec/contrib/bsnmp/lib/snmpcrypto.c
  projects/ipsec/contrib/bsnmp/lib/snmppriv.h
  projects/ipsec/contrib/bsnmp/lib/support.c
  projects/ipsec/contrib/bsnmp/lib/support.h
  projects/ipsec/contrib/bsnmp/snmp_mibII/BEGEMOT-IP-MIB.txt
  projects/ipsec/contrib/bsnmp/snmp_mibII/mibII.c
  projects/ipsec/contrib/bsnmp/snmp_mibII/mibII.h
  projects/ipsec/contrib/bsnmp/snmp_mibII/mibII_begemot.c
  projects/ipsec/contrib/bsnmp/snmp_mibII/mibII_ifmib.c
  projects/ipsec/contrib/bsnmp/snmp_mibII/mibII_ifstack.c
  projects/ipsec/contrib/bsnmp/snmp_mibII/mibII_interfaces.c
  projects/ipsec/contrib/bsnmp/snmp_mibII/mibII_ip.c
  projects/ipsec/contrib/bsnmp/snmp_mibII/mibII_ipaddr.c
  projects/ipsec/contrib/bsnmp/snmp_mibII/mibII_nettomedia.c
  projects/ipsec/contrib/bsnmp/snmp_mibII/mibII_rcvaddr.c
  projects/ipsec/contrib/bsnmp/snmp_mibII/mibII_route.c
  projects/ipsec/contrib/bsnmp/snmp_mibII/mibII_tcp.c
  projects/ipsec/contrib/bsnmp/snmp_mibII/mibII_tree.def
  projects/ipsec/contrib/bsnmp/snmp_mibII/mibII_udp.c
  projects/ipsec/contrib/bsnmp/snmp_mibII/snmp_mibII.3
  projects/ipsec/contrib/bsnmp/snmp_mibII/snmp_mibII.h
  projects/ipsec/contrib/bsnmp/snmp_ntp/NTP-MIB.txt
  projects/ipsec/contrib/bsnmp/snmp_ntp/NTP-PROXY-MIB.txt
  projects/ipsec/contrib/bsnmp/snmp_target/snmp_target.3
  projects/ipsec/contrib/bsnmp/snmp_usm/snmp_usm.3
  projects/ipsec/contrib/bsnmp/snmp_usm/usm_snmp.c
  projects/ipsec/contrib/bsnmp/snmp_vacm/snmp_vacm.3
  projects/ipsec/contrib/bsnmp/snmp_vacm/vacm_snmp.c
  projects/ipsec/contrib/bsnmp/snmpd/BEGEMOT-MIB.txt
  projects/ipsec/contrib/bsnmp/snmpd/BEGEMOT-SNMPD.txt
  projects/ipsec/contrib/bsnmp/snmpd/FOKUS-MIB.txt
  projects/ipsec/contrib/bsnmp/snmpd/action.c
  projects/ipsec/contrib/bsnmp/snmpd/config.c
  projects/ipsec/contrib/bsnmp/snmpd/export.c
  projects/ipsec/contrib/bsnmp/snmpd/main.c
  projects/ipsec/contrib/bsnmp/snmpd/snmpd.config
  projects/ipsec/contrib/bsnmp/snmpd/snmpd.h
  projects/ipsec/contrib/bsnmp/snmpd/snmpd.sh
  projects/ipsec/contrib/bsnmp/snmpd/snmpmod.3
  projects/ipsec/contrib/bsnmp/snmpd/snmpmod.h
  projects/ipsec/contrib/bsnmp/snmpd/trans_lsock.c
  projects/ipsec/contrib/bsnmp/snmpd/trans_lsock.h
  projects/ipsec/contrib/bsnmp/snmpd/trans_udp.c
  projects/ipsec/contrib/bsnmp/snmpd/trans_udp.h
  projects/ipsec/contrib/bsnmp/snmpd/trap.c
  projects/ipsec/contrib/bsnmp/snmpd/tree.def
  projects/ipsec/contrib/bzip2/bzip2.c
  projects/ipsec/contrib/elftoolchain/elfcopy/pe.c
  projects/ipsec/contrib/elftoolchain/libdwarf/dwarf_attrval.c
  projects/ipsec/contrib/elftoolchain/libdwarf/dwarf_attrval_signed.3
  projects/ipsec/contrib/elftoolchain/libelftc/elftc_reloc_type_str.c
  projects/ipsec/contrib/libarchive/NEWS
  projects/ipsec/contrib/libarchive/cpio/cpio.c
  projects/ipsec/contrib/libarchive/libarchive/archive_acl.c
  projects/ipsec/contrib/libarchive/libarchive/archive_acl_private.h
  projects/ipsec/contrib/libarchive/libarchive/archive_entry.c
  projects/ipsec/contrib/libarchive/libarchive/archive_entry.h
  projects/ipsec/contrib/libarchive/libarchive/archive_entry_acl.3
  projects/ipsec/contrib/libarchive/libarchive/archive_entry_locale.h
  projects/ipsec/contrib/libarchive/libarchive/archive_match.c
  projects/ipsec/contrib/libarchive/libarchive/archive_rb.c
  projects/ipsec/contrib/libarchive/libarchive/archive_read_disk.3
  projects/ipsec/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c
  projects/ipsec/contrib/libarchive/libarchive/archive_read_disk_posix.c
  projects/ipsec/contrib/libarchive/libarchive/archive_read_support_filter_lz4.c
  projects/ipsec/contrib/libarchive/libarchive/archive_read_support_filter_lzop.c
  projects/ipsec/contrib/libarchive/libarchive/archive_read_support_format_7zip.c
  projects/ipsec/contrib/libarchive/libarchive/archive_read_support_format_iso9660.c
  projects/ipsec/contrib/libarchive/libarchive/archive_read_support_format_lha.c
  projects/ipsec/contrib/libarchive/libarchive/archive_read_support_format_rar.c
  projects/ipsec/contrib/libarchive/libarchive/archive_read_support_format_tar.c
  projects/ipsec/contrib/libarchive/libarchive/archive_read_support_format_warc.c
  projects/ipsec/contrib/libarchive/libarchive/archive_read_support_format_zip.c
  projects/ipsec/contrib/libarchive/libarchive/archive_string.c
  projects/ipsec/contrib/libarchive/libarchive/archive_string.h
  projects/ipsec/contrib/libarchive/libarchive/archive_string_composition.h
  projects/ipsec/contrib/libarchive/libarchive/archive_write.c
  projects/ipsec/contrib/libarchive/libarchive/archive_write_add_filter_xz.c
  projects/ipsec/contrib/libarchive/libarchive/archive_write_disk_acl.c
  projects/ipsec/contrib/libarchive/libarchive/archive_write_disk_posix.c
  projects/ipsec/contrib/libarchive/libarchive/archive_write_set_format_7zip.c
  projects/ipsec/contrib/libarchive/libarchive/archive_write_set_format_iso9660.c
  projects/ipsec/contrib/libarchive/libarchive/archive_write_set_format_pax.c
  projects/ipsec/contrib/libarchive/libarchive/archive_write_set_format_warc.c
  projects/ipsec/contrib/libarchive/libarchive/archive_write_set_format_xar.c
  projects/ipsec/contrib/libarchive/libarchive/archive_write_set_format_zip.c
  projects/ipsec/contrib/libarchive/libarchive/libarchive-formats.5
  projects/ipsec/contrib/libarchive/libarchive/tar.5
  projects/ipsec/contrib/libarchive/libarchive/test/main.c
  projects/ipsec/contrib/libarchive/libarchive/test/test.h
  projects/ipsec/contrib/libarchive/libarchive/test/test_acl_freebsd_nfs4.c
  projects/ipsec/contrib/libarchive/libarchive/test/test_acl_freebsd_posix1e.c
  projects/ipsec/contrib/libarchive/libarchive/test/test_acl_nfs4.c
  projects/ipsec/contrib/libarchive/libarchive/test/test_acl_pax.c
  projects/ipsec/contrib/libarchive/libarchive/test/test_acl_posix1e.c
  projects/ipsec/contrib/libarchive/libarchive/test/test_archive_read_add_passphrase.c
  projects/ipsec/contrib/libarchive/libarchive/test/test_compat_uudecode.c
  projects/ipsec/contrib/libarchive/libarchive/test/test_read_format_7zip.c
  projects/ipsec/contrib/libarchive/libarchive/test/test_read_format_cpio_afio.c
  projects/ipsec/contrib/libarchive/libarchive/test/test_read_format_isorr_bz2.c
  projects/ipsec/contrib/libarchive/libarchive/test/test_read_format_zip_filename.c
  projects/ipsec/contrib/libarchive/libarchive/test/test_read_format_zip_traditional_encryption_data.c
  projects/ipsec/contrib/libarchive/libarchive/test/test_read_format_zip_winzip_aes.c
  projects/ipsec/contrib/libarchive/libarchive/test/test_read_format_zip_winzip_aes_large.c
  projects/ipsec/contrib/libarchive/libarchive/test/test_sparse_basic.c
  projects/ipsec/contrib/libarchive/libarchive/test/test_write_format_iso9660.c
  projects/ipsec/contrib/libarchive/libarchive/test/test_write_format_iso9660_zisofs.c
  projects/ipsec/contrib/libarchive/libarchive/xxhash.c
  projects/ipsec/contrib/llvm/projects/libunwind/src/UnwindRegistersRestore.S
  projects/ipsec/contrib/llvm/projects/libunwind/src/UnwindRegistersSave.S
  projects/ipsec/contrib/mdocml/INSTALL
  projects/ipsec/contrib/mdocml/LICENSE
  projects/ipsec/contrib/mdocml/Makefile
  projects/ipsec/contrib/mdocml/Makefile.depend
  projects/ipsec/contrib/mdocml/TODO
  projects/ipsec/contrib/mdocml/cgi.c
  projects/ipsec/contrib/mdocml/compat_fts.c
  projects/ipsec/contrib/mdocml/compat_fts.h
  projects/ipsec/contrib/mdocml/config.h
  projects/ipsec/contrib/mdocml/configure
  projects/ipsec/contrib/mdocml/configure.local.example
  projects/ipsec/contrib/mdocml/demandoc.c
  projects/ipsec/contrib/mdocml/eqn_html.c
  projects/ipsec/contrib/mdocml/html.c
  projects/ipsec/contrib/mdocml/html.h
  projects/ipsec/contrib/mdocml/lib.in
  projects/ipsec/contrib/mdocml/libmandoc.h
  projects/ipsec/contrib/mdocml/main.c
  projects/ipsec/contrib/mdocml/main.h
  projects/ipsec/contrib/mdocml/makewhatis.8
  projects/ipsec/contrib/mdocml/man.1
  projects/ipsec/contrib/mdocml/man.c
  projects/ipsec/contrib/mdocml/man.conf.5
  projects/ipsec/contrib/mdocml/man_hash.c
  projects/ipsec/contrib/mdocml/man_html.c
  projects/ipsec/contrib/mdocml/man_macro.c
  projects/ipsec/contrib/mdocml/man_term.c
  projects/ipsec/contrib/mdocml/mandoc.1
  projects/ipsec/contrib/mdocml/mandoc.3
  projects/ipsec/contrib/mdocml/mandoc.css
  projects/ipsec/contrib/mdocml/mandoc.db.5
  projects/ipsec/contrib/mdocml/mandoc.h
  projects/ipsec/contrib/mdocml/mandoc_aux.h
  projects/ipsec/contrib/mdocml/mandoc_html.3
  projects/ipsec/contrib/mdocml/mandocdb.c
  projects/ipsec/contrib/mdocml/manpath.c
  projects/ipsec/contrib/mdocml/mansearch.c
  projects/ipsec/contrib/mdocml/mansearch.h
  projects/ipsec/contrib/mdocml/mdoc.7
  projects/ipsec/contrib/mdocml/mdoc.c
  projects/ipsec/contrib/mdocml/mdoc_argv.c
  projects/ipsec/contrib/mdocml/mdoc_hash.c
  projects/ipsec/contrib/mdocml/mdoc_html.c
  projects/ipsec/contrib/mdocml/mdoc_macro.c
  projects/ipsec/contrib/mdocml/mdoc_man.c
  projects/ipsec/contrib/mdocml/mdoc_state.c
  projects/ipsec/contrib/mdocml/mdoc_term.c
  projects/ipsec/contrib/mdocml/mdoc_validate.c
  projects/ipsec/contrib/mdocml/read.c
  projects/ipsec/contrib/mdocml/roff.c
  projects/ipsec/contrib/mdocml/roff.h
  projects/ipsec/contrib/mdocml/tag.c
  projects/ipsec/contrib/mdocml/tbl_html.c
  projects/ipsec/contrib/mdocml/term.c
  projects/ipsec/contrib/mdocml/term_ascii.c
  projects/ipsec/contrib/mdocml/term_ps.c
  projects/ipsec/contrib/mdocml/test-fts.c
  projects/ipsec/contrib/mdocml/test-ohash.c
  projects/ipsec/contrib/mdocml/test-vasprintf.c
  projects/ipsec/contrib/mdocml/test-wchar.c
  projects/ipsec/contrib/mdocml/tree.c
  projects/ipsec/contrib/mtree/create.c
  projects/ipsec/contrib/mtree/spec.c
  projects/ipsec/contrib/mtree/specspec.c
  projects/ipsec/contrib/netbsd-tests/crypto/libcrypto/t_libcrypto.sh
  projects/ipsec/contrib/netbsd-tests/crypto/libcrypto/t_pubkey.sh
  projects/ipsec/contrib/netbsd-tests/dev/audio/h_pad.c
  projects/ipsec/contrib/netbsd-tests/dev/audio/t_pad_output.bz2.uue
  projects/ipsec/contrib/netbsd-tests/fs/ffs/ffs_common.sh
  projects/ipsec/contrib/netbsd-tests/fs/fifofs/t_fifo.c
  projects/ipsec/contrib/netbsd-tests/fs/psshfs/t_psshfs.sh
  projects/ipsec/contrib/netbsd-tests/fs/puffs/t_basic.c
  projects/ipsec/contrib/netbsd-tests/fs/tmpfs/h_tools.c
  projects/ipsec/contrib/netbsd-tests/fs/vfs/t_vnops.c
  projects/ipsec/contrib/netbsd-tests/h_macros.h
  projects/ipsec/contrib/netbsd-tests/kernel/t_mqueue.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/arch/sparc64/exec_prot_support.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/arch/sparc64/return_one.S
  projects/ipsec/contrib/netbsd-tests/lib/libc/c063/t_faccessat.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/c063/t_fchmodat.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/c063/t_fchownat.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/c063/t_fexecve.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/c063/t_fstatat.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/c063/t_mkfifoat.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/c063/t_mknodat.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/c063/t_o_search.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/c063/t_openat.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/c063/t_readlinkat.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/c063/t_unlinkat.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/c063/t_utimensat.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/db/h_db.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/db/t_db.sh
  projects/ipsec/contrib/netbsd-tests/lib/libc/gen/posix_spawn/t_fileactions.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/gen/posix_spawn/t_spawnattr.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/gen/t_assert.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/gen/t_dir.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/gen/t_fnmatch.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/gen/t_ftok.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/gen/t_humanize_number.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/gen/t_raise.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/gen/t_setdomainname.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/gen/t_sethostname.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/gen/t_sleep.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/gen/t_time.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/gen/t_ttyname.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/gen/t_vis.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/regex/debug.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/rpc/t_rpc.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/stdio/t_printf.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/stdlib/t_strtod.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/string/t_memcpy.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/string/t_memmem.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/string/t_strchr.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/string/t_strerror.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/string/t_strlen.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/sync/cpp_atomic_ops_linkable.cc
  projects/ipsec/contrib/netbsd-tests/lib/libc/sys/t_access.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/sys/t_chroot.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/sys/t_getrusage.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/sys/t_kevent.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/sys/t_listen.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/sys/t_mincore.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/sys/t_mmap.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/sys/t_pipe.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/sys/t_revoke.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/sys/t_select.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/sys/t_setrlimit.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/sys/t_stat.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/sys/t_umask.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/sys/t_unlink.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/sys/t_wait.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/t_cdb.c
  projects/ipsec/contrib/netbsd-tests/lib/libc/ttyio/t_ttyio.c
  projects/ipsec/contrib/netbsd-tests/lib/libm/t_ldexp.c
  projects/ipsec/contrib/netbsd-tests/lib/libm/t_precision.c
  projects/ipsec/contrib/netbsd-tests/lib/libpthread/h_common.h
  projects/ipsec/contrib/netbsd-tests/lib/libpthread/t_condwait.c
  projects/ipsec/contrib/netbsd-tests/lib/libpthread/t_fpu.c
  projects/ipsec/contrib/netbsd-tests/lib/libpthread/t_mutex.c
  projects/ipsec/contrib/netbsd-tests/lib/libpthread/t_swapcontext.c
  projects/ipsec/contrib/netbsd-tests/lib/librumpclient/h_execthr.c
  projects/ipsec/contrib/netbsd-tests/lib/librumphijack/t_tcpip.sh
  projects/ipsec/contrib/netbsd-tests/lib/libusbhid/t_usbhid.c
  projects/ipsec/contrib/netbsd-tests/net/arp/t_arp.sh
  projects/ipsec/contrib/netbsd-tests/net/arp/t_dad.sh
  projects/ipsec/contrib/netbsd-tests/net/icmp/t_icmp6_redirect.sh
  projects/ipsec/contrib/netbsd-tests/net/icmp/t_icmp_redirect.sh
  projects/ipsec/contrib/netbsd-tests/net/if/t_compat.c
  projects/ipsec/contrib/netbsd-tests/net/if/t_ifconfig.sh
  projects/ipsec/contrib/netbsd-tests/net/if_bridge/t_bridge.sh
  projects/ipsec/contrib/netbsd-tests/net/if_gif/t_gif.sh
  projects/ipsec/contrib/netbsd-tests/net/if_pppoe/t_pppoe.sh
  projects/ipsec/contrib/netbsd-tests/net/if_tap/t_tap.sh
  projects/ipsec/contrib/netbsd-tests/net/mcast/t_mcast.sh
  projects/ipsec/contrib/netbsd-tests/net/ndp/t_dad.sh
  projects/ipsec/contrib/netbsd-tests/net/ndp/t_ndp.sh
  projects/ipsec/contrib/netbsd-tests/net/ndp/t_ra.sh
  projects/ipsec/contrib/netbsd-tests/net/net/t_forwarding.sh
  projects/ipsec/contrib/netbsd-tests/net/net/t_ipaddress.sh
  projects/ipsec/contrib/netbsd-tests/net/net/t_ipv6_lifetime.sh
  projects/ipsec/contrib/netbsd-tests/net/net/t_ipv6address.sh
  projects/ipsec/contrib/netbsd-tests/net/route/t_change.sh
  projects/ipsec/contrib/netbsd-tests/net/route/t_flags.sh
  projects/ipsec/contrib/netbsd-tests/net/route/t_flags6.sh
  projects/ipsec/contrib/netbsd-tests/net/route/t_route.sh
  projects/ipsec/contrib/netbsd-tests/rump/modautoload/t_modautoload.c
  projects/ipsec/contrib/netbsd-tests/rump/rumpkern/t_lwproc.c
  projects/ipsec/contrib/netbsd-tests/sys/net/t_print.c
  projects/ipsec/contrib/netbsd-tests/usr.bin/config/t_config.sh
  projects/ipsec/contrib/netbsd-tests/usr.bin/netpgpverify/t_netpgpverify.sh
  projects/ipsec/contrib/ngatm/snmp_atm/snmp_atm.c
  projects/ipsec/contrib/tcp_wrappers/scaffold.c
  projects/ipsec/contrib/tcp_wrappers/tcpd.h
  projects/ipsec/contrib/tcpdump/print-tcp.c
  projects/ipsec/contrib/xz/ChangeLog
  projects/ipsec/contrib/xz/THANKS
  projects/ipsec/contrib/xz/src/common/tuklib_cpucores.c
  projects/ipsec/contrib/xz/src/common/tuklib_physmem.c
  projects/ipsec/contrib/xz/src/liblzma/api/lzma/version.h
  projects/ipsec/contrib/xz/src/liblzma/check/check.h
  projects/ipsec/contrib/xz/src/liblzma/common/alone_decoder.c
  projects/ipsec/contrib/xz/src/liblzma/common/alone_encoder.c
  projects/ipsec/contrib/xz/src/liblzma/common/auto_decoder.c
  projects/ipsec/contrib/xz/src/liblzma/common/block_decoder.c
  projects/ipsec/contrib/xz/src/liblzma/common/block_encoder.c
  projects/ipsec/contrib/xz/src/liblzma/common/common.h
  projects/ipsec/contrib/xz/src/liblzma/common/index.c
  projects/ipsec/contrib/xz/src/liblzma/common/index_decoder.c
  projects/ipsec/contrib/xz/src/liblzma/common/index_encoder.c
  projects/ipsec/contrib/xz/src/liblzma/common/stream_decoder.c
  projects/ipsec/contrib/xz/src/liblzma/common/stream_encoder.c
  projects/ipsec/contrib/xz/src/liblzma/common/stream_encoder_mt.c
  projects/ipsec/contrib/xz/src/liblzma/delta/delta_common.c
  projects/ipsec/contrib/xz/src/liblzma/delta/delta_decoder.c
  projects/ipsec/contrib/xz/src/liblzma/delta/delta_encoder.c
  projects/ipsec/contrib/xz/src/liblzma/delta/delta_private.h
  projects/ipsec/contrib/xz/src/liblzma/lz/lz_decoder.c
  projects/ipsec/contrib/xz/src/liblzma/lz/lz_decoder.h
  projects/ipsec/contrib/xz/src/liblzma/lz/lz_encoder.c
  projects/ipsec/contrib/xz/src/liblzma/lz/lz_encoder.h
  projects/ipsec/contrib/xz/src/liblzma/lzma/lzma2_decoder.c
  projects/ipsec/contrib/xz/src/liblzma/lzma/lzma2_encoder.c
  projects/ipsec/contrib/xz/src/liblzma/lzma/lzma_decoder.c
  projects/ipsec/contrib/xz/src/liblzma/lzma/lzma_encoder.c
  projects/ipsec/contrib/xz/src/liblzma/lzma/lzma_encoder.h
  projects/ipsec/contrib/xz/src/liblzma/lzma/lzma_encoder_optimum_fast.c
  projects/ipsec/contrib/xz/src/liblzma/lzma/lzma_encoder_optimum_normal.c
  projects/ipsec/contrib/xz/src/liblzma/lzma/lzma_encoder_presets.c
  projects/ipsec/contrib/xz/src/liblzma/lzma/lzma_encoder_private.h
  projects/ipsec/contrib/xz/src/liblzma/simple/arm.c
  projects/ipsec/contrib/xz/src/liblzma/simple/armthumb.c
  projects/ipsec/contrib/xz/src/liblzma/simple/ia64.c
  projects/ipsec/contrib/xz/src/liblzma/simple/powerpc.c
  projects/ipsec/contrib/xz/src/liblzma/simple/simple_coder.c
  projects/ipsec/contrib/xz/src/liblzma/simple/simple_private.h
  projects/ipsec/contrib/xz/src/liblzma/simple/sparc.c
  projects/ipsec/contrib/xz/src/liblzma/simple/x86.c
  projects/ipsec/contrib/xz/src/xz/args.c
  projects/ipsec/contrib/xz/src/xz/coder.c
  projects/ipsec/contrib/xz/src/xz/file_io.c
  projects/ipsec/contrib/xz/src/xz/file_io.h
  projects/ipsec/contrib/xz/src/xz/main.c
  projects/ipsec/contrib/xz/src/xz/private.h
  projects/ipsec/crypto/openssh/config.h
  projects/ipsec/crypto/openssh/serverloop.c
  projects/ipsec/crypto/openssh/ssh-agent.1
  projects/ipsec/crypto/openssh/ssh-agent.c
  projects/ipsec/crypto/openssh/ssh_config
  projects/ipsec/crypto/openssh/ssh_config.5
  projects/ipsec/crypto/openssh/sshd_config
  projects/ipsec/crypto/openssh/sshd_config.5
  projects/ipsec/crypto/openssh/version.h
  projects/ipsec/etc/devd/usb.conf
  projects/ipsec/etc/mtree/BSD.debug.dist
  projects/ipsec/etc/mtree/BSD.tests.dist
  projects/ipsec/etc/mtree/BSD.var.dist
  projects/ipsec/etc/ntp.conf
  projects/ipsec/etc/rc.d/ntpdate
  projects/ipsec/etc/snmpd.config
  projects/ipsec/gnu/lib/libgcc/Makefile
  projects/ipsec/gnu/usr.bin/binutils/ld/Makefile.mips
  projects/ipsec/gnu/usr.bin/gdb/gdbserver/Makefile
  projects/ipsec/include/paths.h
  projects/ipsec/include/pthread.h
  projects/ipsec/include/signal.h
  projects/ipsec/include/stdlib.h
  projects/ipsec/kerberos5/Makefile.inc
  projects/ipsec/kerberos5/lib/Makefile
  projects/ipsec/kerberos5/libexec/Makefile
  projects/ipsec/lib/clang/libllvm/Makefile
  projects/ipsec/lib/csu/aarch64/Makefile
  projects/ipsec/lib/csu/amd64/Makefile
  projects/ipsec/lib/csu/arm/Makefile
  projects/ipsec/lib/csu/i386/Makefile
  projects/ipsec/lib/csu/mips/Makefile
  projects/ipsec/lib/csu/powerpc/Makefile
  projects/ipsec/lib/csu/powerpc64/Makefile
  projects/ipsec/lib/csu/riscv/Makefile
  projects/ipsec/lib/csu/sparc64/Makefile
  projects/ipsec/lib/lib80211/lib80211_regdomain.c
  projects/ipsec/lib/lib80211/lib80211_regdomain.h
  projects/ipsec/lib/libalias/libalias/Makefile
  projects/ipsec/lib/libalias/modules/Makefile
  projects/ipsec/lib/libalias/modules/Makefile.inc
  projects/ipsec/lib/libarchive/Makefile
  projects/ipsec/lib/libarchive/tests/Makefile
  projects/ipsec/lib/libauditd/Makefile
  projects/ipsec/lib/libbegemot/Makefile
  projects/ipsec/lib/libblocksruntime/Makefile
  projects/ipsec/lib/libbluetooth/Makefile
  projects/ipsec/lib/libbsm/Makefile
  projects/ipsec/lib/libbsnmp/libbsnmp/Makefile
  projects/ipsec/lib/libbz2/Makefile
  projects/ipsec/lib/libc++/Makefile
  projects/ipsec/lib/libc/Makefile
  projects/ipsec/lib/libc/aarch64/string/Makefile.inc
  projects/ipsec/lib/libc/aarch64/sys/cerror.S
  projects/ipsec/lib/libc/arm/aeabi/Makefile.inc
  projects/ipsec/lib/libc/capability/Makefile.inc
  projects/ipsec/lib/libc/gdtoa/Makefile.inc
  projects/ipsec/lib/libc/gen/Makefile.inc
  projects/ipsec/lib/libc/gen/getmntinfo.3
  projects/ipsec/lib/libc/gen/getmntinfo.c
  projects/ipsec/lib/libc/gen/tcsendbreak.3
  projects/ipsec/lib/libc/iconv/Makefile.inc
  projects/ipsec/lib/libc/include/libc_private.h
  projects/ipsec/lib/libc/locale/mblocal.h
  projects/ipsec/lib/libc/md/Makefile.inc
  projects/ipsec/lib/libc/net/getaddrinfo.c
  projects/ipsec/lib/libc/posix1e/Makefile.inc
  projects/ipsec/lib/libc/regex/grot/Makefile
  projects/ipsec/lib/libc/resolv/Makefile.inc
  projects/ipsec/lib/libc/stdlib/Makefile.inc
  projects/ipsec/lib/libc/stdlib/Symbol.map
  projects/ipsec/lib/libc/stdlib/cxa_thread_atexit.c
  projects/ipsec/lib/libc/stdlib/jemalloc/Makefile.inc
  projects/ipsec/lib/libc/stdtime/Makefile.inc
  projects/ipsec/lib/libc/string/Makefile.inc
  projects/ipsec/lib/libc/sys/Makefile.inc
  projects/ipsec/lib/libc/sys/getfsstat.2
  projects/ipsec/lib/libc/sys/getsockopt.2
  projects/ipsec/lib/libc/sys/shm_open.2
  projects/ipsec/lib/libc/tests/db/Makefile
  projects/ipsec/lib/libc/tests/gen/Makefile
  projects/ipsec/lib/libc/tests/stdlib/Makefile
  projects/ipsec/lib/libc/tests/sys/Makefile
  projects/ipsec/lib/libc/x86/sys/Makefile.inc
  projects/ipsec/lib/libc/x86/sys/__vdso_gettc.c
  projects/ipsec/lib/libc_nonshared/Makefile
  projects/ipsec/lib/libcam/Makefile
  projects/ipsec/lib/libcam/scsi_cmdparse.c
  projects/ipsec/lib/libcom_err/Makefile
  projects/ipsec/lib/libcompat/Makefile
  projects/ipsec/lib/libcrypt/Makefile
  projects/ipsec/lib/libcxxrt/Makefile
  projects/ipsec/lib/libdevdctl/tests/Makefile
  projects/ipsec/lib/libdwarf/Makefile
  projects/ipsec/lib/libelf/Makefile
  projects/ipsec/lib/libevent/Makefile
  projects/ipsec/lib/libexecinfo/Makefile
  projects/ipsec/lib/libexpat/Makefile
  projects/ipsec/lib/libfetch/http.c
  projects/ipsec/lib/libgcc_s/Makefile
  projects/ipsec/lib/libgssapi/Makefile
  projects/ipsec/lib/libiconv_modules/Makefile.inc
  projects/ipsec/lib/libiconv_modules/mapper_parallel/Makefile
  projects/ipsec/lib/libkiconv/Makefile
  projects/ipsec/lib/libkvm/kvm.c
  projects/ipsec/lib/libkvm/kvm.h
  projects/ipsec/lib/libkvm/kvm_getswapinfo.3
  projects/ipsec/lib/libkvm/kvm_getswapinfo.c
  projects/ipsec/lib/libkvm/kvm_private.h
  projects/ipsec/lib/libldns/Makefile
  projects/ipsec/lib/liblzma/Makefile
  projects/ipsec/lib/liblzma/config.h
  projects/ipsec/lib/libmagic/Makefile
  projects/ipsec/lib/libmd/Makefile
  projects/ipsec/lib/libmilter/Makefile
  projects/ipsec/lib/libmp/Makefile
  projects/ipsec/lib/libnetbsd/sys/cdefs.h
  projects/ipsec/lib/libngatm/Makefile
  projects/ipsec/lib/libnv/Makefile
  projects/ipsec/lib/libopie/Makefile
  projects/ipsec/lib/libpam/libpam/Makefile
  projects/ipsec/lib/libpam/modules/Makefile.inc
  projects/ipsec/lib/libpam/modules/pam_passwdqc/Makefile
  projects/ipsec/lib/libpam/modules/pam_ssh/Makefile
  projects/ipsec/lib/libpam/static_libpam/Makefile
  projects/ipsec/lib/libpcap/Makefile
  projects/ipsec/lib/libpe/Makefile
  projects/ipsec/lib/libproc/Makefile
  projects/ipsec/lib/libproc/proc_sym.c
  projects/ipsec/lib/libprocstat/Makefile
  projects/ipsec/lib/libprocstat/cd9660.c
  projects/ipsec/lib/libprocstat/libprocstat.c
  projects/ipsec/lib/libprocstat/zfs/Makefile
  projects/ipsec/lib/librpcsec_gss/Makefile
  projects/ipsec/lib/librpcsvc/Makefile
  projects/ipsec/lib/librt/Makefile
  projects/ipsec/lib/libsbuf/Makefile
  projects/ipsec/lib/libsm/Makefile
  projects/ipsec/lib/libsmb/Makefile
  projects/ipsec/lib/libsmdb/Makefile
  projects/ipsec/lib/libsmutil/Makefile
  projects/ipsec/lib/libsqlite3/Makefile
  projects/ipsec/lib/libstand/Makefile
  projects/ipsec/lib/libstand/bootp.c
  projects/ipsec/lib/libstand/cd9660.c
  projects/ipsec/lib/libstand/dosfs.c
  projects/ipsec/lib/libstand/ext2fs.c
  projects/ipsec/lib/libstand/nandfs.c
  projects/ipsec/lib/libstand/read.c
  projects/ipsec/lib/libstand/stand.h
  projects/ipsec/lib/libstand/ufs.c
  projects/ipsec/lib/libstand/write.c
  projects/ipsec/lib/libstdthreads/Makefile
  projects/ipsec/lib/libsysdecode/Makefile
  projects/ipsec/lib/libsysdecode/flags.c
  projects/ipsec/lib/libsysdecode/mktables
  projects/ipsec/lib/libsysdecode/sysdecode.h
  projects/ipsec/lib/libsysdecode/sysdecode_enum.3
  projects/ipsec/lib/libsysdecode/sysdecode_mask.3
  projects/ipsec/lib/libtelnet/Makefile
  projects/ipsec/lib/libthr/Makefile
  projects/ipsec/lib/libthr/support/Makefile.inc
  projects/ipsec/lib/libthr/tests/Makefile
  projects/ipsec/lib/libthread_db/Makefile
  projects/ipsec/lib/libufs/Makefile
  projects/ipsec/lib/libulog/Makefile
  projects/ipsec/lib/libunbound/Makefile
  projects/ipsec/lib/libutil/Makefile
  projects/ipsec/lib/libutil/kinfo_getallproc.c
  projects/ipsec/lib/libutil/kinfo_getfile.c
  projects/ipsec/lib/libutil/kinfo_getproc.c
  projects/ipsec/lib/libutil/kinfo_getvmmap.c
  projects/ipsec/lib/libwrap/Makefile
  projects/ipsec/lib/libypclnt/Makefile
  projects/ipsec/lib/libz/FREEBSD-upgrade
  projects/ipsec/lib/libz/Makefile
  projects/ipsec/lib/libz/Symbol.map
  projects/ipsec/lib/libz/Versions.def
  projects/ipsec/lib/libz/zlib.pc
  projects/ipsec/lib/msun/tests/Makefile
  projects/ipsec/lib/msun/tests/fmaxmin_test.c
  projects/ipsec/lib/ncurses/config.mk
  projects/ipsec/lib/ncurses/form/Makefile
  projects/ipsec/lib/ncurses/formw/Makefile
  projects/ipsec/lib/ncurses/menu/Makefile
  projects/ipsec/lib/ncurses/menuw/Makefile
  projects/ipsec/lib/ncurses/ncurses/Makefile
  projects/ipsec/lib/ncurses/ncursesw/Makefile
  projects/ipsec/lib/ncurses/panel/Makefile
  projects/ipsec/lib/ncurses/panelw/Makefile
  projects/ipsec/libexec/rtld-elf/amd64/rtld_machdep.h
  projects/ipsec/libexec/rtld-elf/amd64/rtld_start.S
  projects/ipsec/libexec/rtld-elf/rtld.c
  projects/ipsec/libexec/rtld-elf/rtld_lock.c
  projects/ipsec/libexec/tftpd/Makefile
  projects/ipsec/libexec/tftpd/tftpd.c
  projects/ipsec/release/tools/ec2.conf
  projects/ipsec/sbin/camcontrol/camcontrol.8
  projects/ipsec/sbin/camcontrol/camcontrol.c
  projects/ipsec/sbin/camcontrol/camcontrol.h
  projects/ipsec/sbin/camcontrol/epc.c
  projects/ipsec/sbin/camcontrol/modeedit.c
  projects/ipsec/sbin/camcontrol/persist.c
  projects/ipsec/sbin/camcontrol/timestamp.c
  projects/ipsec/sbin/devd/devd.cc
  projects/ipsec/sbin/dhclient/dispatch.c
  projects/ipsec/sbin/fsck_ffs/suj.c
  projects/ipsec/sbin/ifconfig/ifconfig.8
  projects/ipsec/sbin/ifconfig/ifconfig.c
  projects/ipsec/sbin/ifconfig/ifieee80211.c
  projects/ipsec/sbin/ipfw/ipfw2.c
  projects/ipsec/sbin/ipfw/ipfw2.h
  projects/ipsec/sbin/md5/md5.1
  projects/ipsec/sbin/pfctl/parse.y
  projects/ipsec/sbin/ping/ping.c
  projects/ipsec/sbin/restore/dirs.c
  projects/ipsec/sbin/restore/extern.h
  projects/ipsec/sbin/restore/restore.8
  projects/ipsec/sbin/restore/tape.c
  projects/ipsec/sbin/sysctl/sysctl.c
  projects/ipsec/secure/lib/libssh/Makefile
  projects/ipsec/secure/usr.bin/ssh/Makefile
  projects/ipsec/secure/usr.sbin/sshd/Makefile
  projects/ipsec/share/man/man4/Makefile
  projects/ipsec/share/man/man4/alc.4
  projects/ipsec/share/man/man4/cxgbe.4
  projects/ipsec/share/man/man4/ehci.4
  projects/ipsec/share/man/man4/em.4
  projects/ipsec/share/man/man4/iicbus.4
  projects/ipsec/share/man/man4/mlx4en.4
  projects/ipsec/share/man/man4/rtwn.4
  projects/ipsec/share/man/man4/rtwn_usb.4
  projects/ipsec/share/man/man4/rtwnfw.4
  projects/ipsec/share/man/man4/scsi.4
  projects/ipsec/share/man/man4/sfxge.4
  projects/ipsec/share/man/man4/tty.4
  projects/ipsec/share/man/man4/usb_quirk.4
  projects/ipsec/share/man/man5/fs.5
  projects/ipsec/share/man/man5/src.conf.5
  projects/ipsec/share/man/man5/tmpfs.5
  projects/ipsec/share/man/man7/arch.7
  projects/ipsec/share/man/man9/BUS_CONFIG_INTR.9
  projects/ipsec/share/man/man9/DEVICE_ATTACH.9
  projects/ipsec/share/man/man9/DEVICE_IDENTIFY.9
  projects/ipsec/share/man/man9/DRIVER_MODULE.9
  projects/ipsec/share/man/man9/atomic.9
  projects/ipsec/share/man/man9/bus_generic_attach.9
  projects/ipsec/share/man/man9/bus_generic_detach.9
  projects/ipsec/share/man/man9/bus_generic_new_pass.9
  projects/ipsec/share/man/man9/bus_generic_print_child.9
  projects/ipsec/share/man/man9/bus_generic_read_ivar.9
  projects/ipsec/share/man/man9/bus_generic_shutdown.9
  projects/ipsec/share/man/man9/bus_space.9
  projects/ipsec/share/man/man9/device.9
  projects/ipsec/share/man/man9/device_add_child.9
  projects/ipsec/share/man/man9/pci.9
  projects/ipsec/share/misc/committers-ports.dot
  projects/ipsec/share/misc/pci_vendors
  projects/ipsec/share/misc/scsi_modes
  projects/ipsec/share/mk/bsd.README
  projects/ipsec/share/mk/bsd.snmpmod.mk
  projects/ipsec/share/mk/src.opts.mk
  projects/ipsec/share/skel/dot.shrc
  projects/ipsec/sys/amd64/amd64/pmap.c
  projects/ipsec/sys/amd64/cloudabi32/cloudabi32_sysvec.c
  projects/ipsec/sys/amd64/cloudabi64/cloudabi64_sysvec.c
  projects/ipsec/sys/amd64/conf/GENERIC
  projects/ipsec/sys/amd64/include/atomic.h
  projects/ipsec/sys/amd64/include/cpufunc.h
  projects/ipsec/sys/amd64/linux/linux_sysvec.c
  projects/ipsec/sys/amd64/vmm/vmm_dev.c
  projects/ipsec/sys/amd64/vmm/vmm_host.h
  projects/ipsec/sys/arm/allwinner/a10_gpio.c
  projects/ipsec/sys/arm/allwinner/aw_ccu.c
  projects/ipsec/sys/arm/allwinner/aw_machdep.c
  projects/ipsec/sys/arm/allwinner/aw_machdep.h
  projects/ipsec/sys/arm/allwinner/clk/aw_axiclk.c
  projects/ipsec/sys/arm/allwinner/clk/aw_gate.c
  projects/ipsec/sys/arm/arm/bus_space_asm_generic.S
  projects/ipsec/sys/arm/arm/cpufunc.c
  projects/ipsec/sys/arm/arm/debug_monitor.c
  projects/ipsec/sys/arm/arm/identcpu-v4.c
  projects/ipsec/sys/arm/arm/locore-v4.S
  projects/ipsec/sys/arm/arm/locore-v6.S
  projects/ipsec/sys/arm/arm/ofw_machdep.c
  projects/ipsec/sys/arm/arm/pmap-v6.c
  projects/ipsec/sys/arm/arm/trap-v4.c
  projects/ipsec/sys/arm/broadcom/bcm2835/bcm2835_audio.c
  projects/ipsec/sys/arm/cloudabi32/cloudabi32_sysvec.c
  projects/ipsec/sys/arm/conf/ARMADA38X
  projects/ipsec/sys/arm/conf/GENERIC
  projects/ipsec/sys/arm/freescale/imx/imx6_ccm.c
  projects/ipsec/sys/arm/freescale/imx/imx6_hdmi.c
  projects/ipsec/sys/arm/freescale/imx/imx6_machdep.c
  projects/ipsec/sys/arm/freescale/imx/imx_i2c.c
  projects/ipsec/sys/arm/freescale/imx/imx_machdep.c
  projects/ipsec/sys/arm/include/atomic.h
  projects/ipsec/sys/arm/include/cpufunc.h
  projects/ipsec/sys/arm/include/pcpu.h
  projects/ipsec/sys/arm/include/pmap-v4.h
  projects/ipsec/sys/arm/mv/mv_pci.c
  projects/ipsec/sys/arm/ti/am335x/am335x_scm.c
  projects/ipsec/sys/arm/ti/cpsw/if_cpsw.c
  projects/ipsec/sys/arm/ti/cpsw/if_cpswreg.h
  projects/ipsec/sys/arm/ti/cpsw/if_cpswvar.h
  projects/ipsec/sys/arm/ti/ti_sdhci.c
  projects/ipsec/sys/arm/xilinx/zy7_ehci.c
  projects/ipsec/sys/arm64/arm64/mp_machdep.c
  projects/ipsec/sys/arm64/cloudabi64/cloudabi64_sysvec.c
  projects/ipsec/sys/arm64/conf/GENERIC
  projects/ipsec/sys/boot/common/bcache.c
  projects/ipsec/sys/boot/common/bootstrap.h
  projects/ipsec/sys/boot/common/disk.c
  projects/ipsec/sys/boot/common/md.c
  projects/ipsec/sys/boot/common/reloc_elf.c
  projects/ipsec/sys/boot/efi/Makefile.inc
  projects/ipsec/sys/boot/efi/boot1/boot_module.h
  projects/ipsec/sys/boot/efi/include/efiapi.h
  projects/ipsec/sys/boot/efi/include/efidevp.h
  projects/ipsec/sys/boot/efi/libefi/devpath.c
  projects/ipsec/sys/boot/efi/libefi/efinet.c
  projects/ipsec/sys/boot/efi/libefi/efipart.c
  projects/ipsec/sys/boot/efi/loader/arch/arm/ldscript.arm
  projects/ipsec/sys/boot/efi/loader/arch/arm/start.S
  projects/ipsec/sys/boot/efi/loader/main.c
  projects/ipsec/sys/boot/fdt/dts/arm/a83t.dtsi
  projects/ipsec/sys/boot/fdt/dts/arm/armada-38x.dtsi
  projects/ipsec/sys/boot/fdt/dts/arm/beaglebone-black.dts
  projects/ipsec/sys/boot/fdt/dts/arm/ufw.dts
  projects/ipsec/sys/boot/fdt/dts/mips/beri-netfpga.dts
  projects/ipsec/sys/boot/fdt/dts/mips/beri-sim.dts
  projects/ipsec/sys/boot/fdt/dts/mips/beripad-de4.dts
  projects/ipsec/sys/boot/fdt/dts/mips/beripad-sockit.dts
  projects/ipsec/sys/boot/i386/btx/btxldr/btxldr.S
  projects/ipsec/sys/boot/i386/cdboot/cdboot.S
  projects/ipsec/sys/boot/i386/common/cons.c
  projects/ipsec/sys/boot/i386/libfirewire/firewire.c
  projects/ipsec/sys/boot/i386/libi386/bioscd.c
  projects/ipsec/sys/boot/i386/libi386/biosdisk.c
  projects/ipsec/sys/boot/i386/libi386/pxe.c
  projects/ipsec/sys/boot/i386/loader/Makefile
  projects/ipsec/sys/boot/mips/beri/boot2/Makefile
  projects/ipsec/sys/boot/mips/beri/common/common.ldscript
  projects/ipsec/sys/boot/mips/beri/loader/beri_disk_cfi.c
  projects/ipsec/sys/boot/mips/beri/loader/beri_disk_sdcard.c
  projects/ipsec/sys/boot/mips/beri/loader/loader.ldscript
  projects/ipsec/sys/boot/ofw/libofw/ofw_disk.c
  projects/ipsec/sys/boot/pc98/libpc98/bioscd.c
  projects/ipsec/sys/boot/pc98/libpc98/biosdisk.c
  projects/ipsec/sys/boot/powerpc/kboot/hostdisk.c
  projects/ipsec/sys/boot/powerpc/ps3/ps3cdrom.c
  projects/ipsec/sys/boot/powerpc/ps3/ps3disk.c
  projects/ipsec/sys/boot/uboot/lib/disk.c
  projects/ipsec/sys/boot/usb/storage/umass_loader.c
  projects/ipsec/sys/boot/userboot/userboot/host.c
  projects/ipsec/sys/boot/userboot/userboot/userboot_disk.c
  projects/ipsec/sys/boot/zfs/zfs.c
  projects/ipsec/sys/cam/ata/ata_da.c
  projects/ipsec/sys/cam/cam_ccb.h
  projects/ipsec/sys/cam/cam_compat.h
  projects/ipsec/sys/cam/cam_iosched.h
  projects/ipsec/sys/cam/cam_periph.c
  projects/ipsec/sys/cam/cam_xpt.c
  projects/ipsec/sys/cam/cam_xpt_internal.h
  projects/ipsec/sys/cam/ctl/ctl.c
  projects/ipsec/sys/cam/ctl/ctl.h
  projects/ipsec/sys/cam/ctl/ctl_backend.c
  projects/ipsec/sys/cam/ctl/ctl_backend.h
  projects/ipsec/sys/cam/ctl/ctl_backend_block.c
  projects/ipsec/sys/cam/ctl/ctl_backend_ramdisk.c
  projects/ipsec/sys/cam/ctl/ctl_cmd_table.c
  projects/ipsec/sys/cam/ctl/ctl_error.c
  projects/ipsec/sys/cam/ctl/ctl_error.h
  projects/ipsec/sys/cam/ctl/ctl_frontend.c
  projects/ipsec/sys/cam/ctl/ctl_frontend.h
  projects/ipsec/sys/cam/ctl/ctl_frontend_cam_sim.c
  projects/ipsec/sys/cam/ctl/ctl_frontend_ioctl.c
  projects/ipsec/sys/cam/ctl/ctl_frontend_iscsi.c
  projects/ipsec/sys/cam/ctl/ctl_ha.c
  projects/ipsec/sys/cam/ctl/ctl_io.h
  projects/ipsec/sys/cam/ctl/ctl_ioctl.h
  projects/ipsec/sys/cam/ctl/ctl_private.h
  projects/ipsec/sys/cam/ctl/ctl_tpc.c
  projects/ipsec/sys/cam/ctl/ctl_tpc_local.c
  projects/ipsec/sys/cam/ctl/ctl_util.c
  projects/ipsec/sys/cam/ctl/ctl_util.h
  projects/ipsec/sys/cam/ctl/scsi_ctl.c
  projects/ipsec/sys/cam/nvme/nvme_da.c
  projects/ipsec/sys/cam/scsi/scsi_all.c
  projects/ipsec/sys/cam/scsi/scsi_all.h
  projects/ipsec/sys/cam/scsi/scsi_ch.c
  projects/ipsec/sys/cam/scsi/scsi_da.c
  projects/ipsec/sys/cam/scsi/scsi_low.c
  projects/ipsec/sys/cam/scsi/scsi_xpt.c
  projects/ipsec/sys/cddl/compat/opensolaris/sys/atomic.h
  projects/ipsec/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c
  projects/ipsec/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c
  projects/ipsec/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c
  projects/ipsec/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_pool.h
  projects/ipsec/sys/cddl/contrib/opensolaris/uts/common/sys/dtrace.h
  projects/ipsec/sys/cddl/dev/dtrace/dtrace_ioctl.c
  projects/ipsec/sys/cddl/dev/fbt/arm/fbt_isa.c
  projects/ipsec/sys/compat/cloudabi/cloudabi_file.c
  projects/ipsec/sys/compat/cloudabi/cloudabi_mem.c
  projects/ipsec/sys/compat/cloudabi/cloudabi_proc.c
  projects/ipsec/sys/compat/cloudabi/cloudabi_random.c
  projects/ipsec/sys/compat/cloudabi/cloudabi_sock.c
  projects/ipsec/sys/compat/cloudabi32/cloudabi32_fd.c
  projects/ipsec/sys/compat/cloudabi32/cloudabi32_poll.c
  projects/ipsec/sys/compat/cloudabi32/cloudabi32_proto.h
  projects/ipsec/sys/compat/cloudabi32/cloudabi32_sock.c
  projects/ipsec/sys/compat/cloudabi32/cloudabi32_syscall.h
  projects/ipsec/sys/compat/cloudabi32/cloudabi32_syscalls.c
  projects/ipsec/sys/compat/cloudabi32/cloudabi32_sysent.c
  projects/ipsec/sys/compat/cloudabi32/cloudabi32_systrace_args.c
  projects/ipsec/sys/compat/cloudabi32/cloudabi32_thread.c
  projects/ipsec/sys/compat/cloudabi64/cloudabi64_fd.c
  projects/ipsec/sys/compat/cloudabi64/cloudabi64_poll.c
  projects/ipsec/sys/compat/cloudabi64/cloudabi64_proto.h
  projects/ipsec/sys/compat/cloudabi64/cloudabi64_sock.c
  projects/ipsec/sys/compat/cloudabi64/cloudabi64_syscall.h
  projects/ipsec/sys/compat/cloudabi64/cloudabi64_syscalls.c
  projects/ipsec/sys/compat/cloudabi64/cloudabi64_sysent.c
  projects/ipsec/sys/compat/cloudabi64/cloudabi64_systrace_args.c
  projects/ipsec/sys/compat/cloudabi64/cloudabi64_thread.c
  projects/ipsec/sys/compat/freebsd32/freebsd32_misc.c
  projects/ipsec/sys/compat/freebsd32/freebsd32_proto.h
  projects/ipsec/sys/compat/freebsd32/freebsd32_syscall.h
  projects/ipsec/sys/compat/freebsd32/freebsd32_syscalls.c
  projects/ipsec/sys/compat/freebsd32/freebsd32_sysent.c
  projects/ipsec/sys/compat/freebsd32/freebsd32_systrace_args.c
  projects/ipsec/sys/compat/freebsd32/syscalls.master
  projects/ipsec/sys/compat/linux/linux_socket.c
  projects/ipsec/sys/compat/linux/linux_stats.c
  projects/ipsec/sys/compat/svr4/svr4_misc.c
  projects/ipsec/sys/conf/Makefile.powerpc
  projects/ipsec/sys/conf/NOTES
  projects/ipsec/sys/conf/config.mk
  projects/ipsec/sys/conf/files
  projects/ipsec/sys/conf/files.amd64
  projects/ipsec/sys/conf/files.arm64
  projects/ipsec/sys/conf/files.i386
  projects/ipsec/sys/conf/files.mips
  projects/ipsec/sys/conf/kern.mk
  projects/ipsec/sys/conf/kern.opts.mk
  projects/ipsec/sys/conf/kern.pre.mk
  projects/ipsec/sys/conf/makeLINT.mk
  projects/ipsec/sys/conf/options
  projects/ipsec/sys/conf/options.arm
  projects/ipsec/sys/conf/options.mips
  projects/ipsec/sys/contrib/ck/FREEBSD-Xlist
  projects/ipsec/sys/contrib/ck/include/ck_md.h
  projects/ipsec/sys/contrib/ck/include/ck_pr.h
  projects/ipsec/sys/contrib/ck/include/gcc/aarch64/ck_pr.h
  projects/ipsec/sys/contrib/ck/include/gcc/arm/ck_pr.h
  projects/ipsec/sys/contrib/ck/include/gcc/ck_pr.h
  projects/ipsec/sys/contrib/ck/include/gcc/ppc64/ck_pr.h
  projects/ipsec/sys/contrib/ck/include/gcc/x86_64/ck_pr.h
  projects/ipsec/sys/contrib/cloudabi/cloudabi32_types.h
  projects/ipsec/sys/contrib/cloudabi/cloudabi64_types.h
  projects/ipsec/sys/contrib/cloudabi/cloudabi_types_common.h
  projects/ipsec/sys/contrib/cloudabi/syscalls32.master
  projects/ipsec/sys/contrib/cloudabi/syscalls64.master
  projects/ipsec/sys/contrib/dev/acpica/acpica_prep.sh
  projects/ipsec/sys/contrib/dev/acpica/changes.txt
  projects/ipsec/sys/contrib/dev/acpica/common/acfileio.c
  projects/ipsec/sys/contrib/dev/acpica/common/acgetline.c
  projects/ipsec/sys/contrib/dev/acpica/common/adfile.c
  projects/ipsec/sys/contrib/dev/acpica/common/adisasm.c
  projects/ipsec/sys/contrib/dev/acpica/common/adwalk.c
  projects/ipsec/sys/contrib/dev/acpica/common/ahids.c
  projects/ipsec/sys/contrib/dev/acpica/common/ahpredef.c
  projects/ipsec/sys/contrib/dev/acpica/common/ahtable.c
  projects/ipsec/sys/contrib/dev/acpica/common/ahuuids.c
  projects/ipsec/sys/contrib/dev/acpica/common/cmfsize.c
  projects/ipsec/sys/contrib/dev/acpica/common/dmextern.c
  projects/ipsec/sys/contrib/dev/acpica/common/dmrestag.c
  projects/ipsec/sys/contrib/dev/acpica/common/dmtable.c
  projects/ipsec/sys/contrib/dev/acpica/common/dmtables.c
  projects/ipsec/sys/contrib/dev/acpica/common/dmtbdump.c
  projects/ipsec/sys/contrib/dev/acpica/common/dmtbinfo.c
  projects/ipsec/sys/contrib/dev/acpica/common/getopt.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslanalyze.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslascii.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslbtypes.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslcodegen.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslcompile.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslcompiler.h
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslcompiler.l
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslcstyle.y
  projects/ipsec/sys/contrib/dev/acpica/compiler/asldebug.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/asldefine.h
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslerror.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslexternal.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslfileio.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslfiles.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslfold.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslglobal.h
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslhelp.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslhelpers.y
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslhex.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslkeywords.y
  projects/ipsec/sys/contrib/dev/acpica/compiler/asllength.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/asllisting.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/asllistsup.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslload.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/asllookup.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslmain.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslmap.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslmapenter.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslmapoutput.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslmaputils.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslmessages.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslmessages.h
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslmethod.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslnamesp.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/asloffset.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslopcodes.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/asloperands.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslopt.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/asloptions.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslparser.y
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslpld.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslpredef.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslprepkg.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslprimaries.y
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslprintf.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslprune.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslresource.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslresources.y
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslrestype1.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslrestype1i.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslrestype2.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslrestype2d.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslrestype2e.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslrestype2q.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslrestype2s.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslrestype2w.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslrules.y
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslstartup.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslstubs.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslsupport.l
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslsupport.y
  projects/ipsec/sys/contrib/dev/acpica/compiler/asltokens.y
  projects/ipsec/sys/contrib/dev/acpica/compiler/asltransform.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/asltree.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/asltypes.h
  projects/ipsec/sys/contrib/dev/acpica/compiler/asltypes.y
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslutils.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/asluuid.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslwalks.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslxref.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/aslxrefout.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/dtcompile.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/dtcompiler.h
  projects/ipsec/sys/contrib/dev/acpica/compiler/dtexpress.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/dtfield.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/dtio.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/dtparser.l
  projects/ipsec/sys/contrib/dev/acpica/compiler/dtparser.y
  projects/ipsec/sys/contrib/dev/acpica/compiler/dtsubtable.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/dttable.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/dttable1.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/dttable2.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/dttemplate.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/dttemplate.h
  projects/ipsec/sys/contrib/dev/acpica/compiler/dtutils.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/preprocess.h
  projects/ipsec/sys/contrib/dev/acpica/compiler/prexpress.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/prmacros.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/prparser.l
  projects/ipsec/sys/contrib/dev/acpica/compiler/prparser.y
  projects/ipsec/sys/contrib/dev/acpica/compiler/prscan.c
  projects/ipsec/sys/contrib/dev/acpica/compiler/prutils.c
  projects/ipsec/sys/contrib/dev/acpica/components/debugger/dbcmds.c
  projects/ipsec/sys/contrib/dev/acpica/components/debugger/dbconvert.c
  projects/ipsec/sys/contrib/dev/acpica/components/debugger/dbdisply.c
  projects/ipsec/sys/contrib/dev/acpica/components/debugger/dbexec.c
  projects/ipsec/sys/contrib/dev/acpica/components/debugger/dbfileio.c
  projects/ipsec/sys/contrib/dev/acpica/components/debugger/dbhistry.c
  projects/ipsec/sys/contrib/dev/acpica/components/debugger/dbinput.c
  projects/ipsec/sys/contrib/dev/acpica/components/debugger/dbmethod.c
  projects/ipsec/sys/contrib/dev/acpica/components/debugger/dbnames.c
  projects/ipsec/sys/contrib/dev/acpica/components/debugger/dbobject.c
  projects/ipsec/sys/contrib/dev/acpica/components/debugger/dbstats.c
  projects/ipsec/sys/contrib/dev/acpica/components/debugger/dbtest.c
  projects/ipsec/sys/contrib/dev/acpica/components/debugger/dbutils.c
  projects/ipsec/sys/contrib/dev/acpica/components/debugger/dbxface.c
  projects/ipsec/sys/contrib/dev/acpica/components/disassembler/dmbuffer.c
  projects/ipsec/sys/contrib/dev/acpica/components/disassembler/dmcstyle.c
  projects/ipsec/sys/contrib/dev/acpica/components/disassembler/dmdeferred.c
  projects/ipsec/sys/contrib/dev/acpica/components/disassembler/dmnames.c
  projects/ipsec/sys/contrib/dev/acpica/components/disassembler/dmopcode.c
  projects/ipsec/sys/contrib/dev/acpica/components/disassembler/dmresrc.c
  projects/ipsec/sys/contrib/dev/acpica/components/disassembler/dmresrcl.c
  projects/ipsec/sys/contrib/dev/acpica/components/disassembler/dmresrcl2.c
  projects/ipsec/sys/contrib/dev/acpica/components/disassembler/dmresrcs.c
  projects/ipsec/sys/contrib/dev/acpica/components/disassembler/dmutils.c
  projects/ipsec/sys/contrib/dev/acpica/components/disassembler/dmwalk.c
  projects/ipsec/sys/contrib/dev/acpica/components/dispatcher/dsargs.c
  projects/ipsec/sys/contrib/dev/acpica/components/dispatcher/dscontrol.c
  projects/ipsec/sys/contrib/dev/acpica/components/dispatcher/dsdebug.c
  projects/ipsec/sys/contrib/dev/acpica/components/dispatcher/dsfield.c
  projects/ipsec/sys/contrib/dev/acpica/components/dispatcher/dsinit.c
  projects/ipsec/sys/contrib/dev/acpica/components/dispatcher/dsmethod.c
  projects/ipsec/sys/contrib/dev/acpica/components/dispatcher/dsmthdat.c
  projects/ipsec/sys/contrib/dev/acpica/components/dispatcher/dsobject.c
  projects/ipsec/sys/contrib/dev/acpica/components/dispatcher/dsopcode.c
  projects/ipsec/sys/contrib/dev/acpica/components/dispatcher/dsutils.c
  projects/ipsec/sys/contrib/dev/acpica/components/dispatcher/dswexec.c
  projects/ipsec/sys/contrib/dev/acpica/components/dispatcher/dswload.c
  projects/ipsec/sys/contrib/dev/acpica/components/dispatcher/dswload2.c
  projects/ipsec/sys/contrib/dev/acpica/components/dispatcher/dswscope.c
  projects/ipsec/sys/contrib/dev/acpica/components/dispatcher/dswstate.c
  projects/ipsec/sys/contrib/dev/acpica/components/events/evevent.c
  projects/ipsec/sys/contrib/dev/acpica/components/events/evglock.c
  projects/ipsec/sys/contrib/dev/acpica/components/events/evgpe.c
  projects/ipsec/sys/contrib/dev/acpica/components/events/evgpeblk.c
  projects/ipsec/sys/contrib/dev/acpica/components/events/evgpeinit.c
  projects/ipsec/sys/contrib/dev/acpica/components/events/evgpeutil.c
  projects/ipsec/sys/contrib/dev/acpica/components/events/evhandler.c
  projects/ipsec/sys/contrib/dev/acpica/components/events/evmisc.c
  projects/ipsec/sys/contrib/dev/acpica/components/events/evregion.c
  projects/ipsec/sys/contrib/dev/acpica/components/events/evrgnini.c
  projects/ipsec/sys/contrib/dev/acpica/components/events/evsci.c
  projects/ipsec/sys/contrib/dev/acpica/components/events/evxface.c
  projects/ipsec/sys/contrib/dev/acpica/components/events/evxfevnt.c
  projects/ipsec/sys/contrib/dev/acpica/components/events/evxfgpe.c
  projects/ipsec/sys/contrib/dev/acpica/components/events/evxfregn.c
  projects/ipsec/sys/contrib/dev/acpica/components/executer/exconcat.c
  projects/ipsec/sys/contrib/dev/acpica/components/executer/exconfig.c
  projects/ipsec/sys/contrib/dev/acpica/components/executer/exconvrt.c
  projects/ipsec/sys/contrib/dev/acpica/components/executer/excreate.c
  projects/ipsec/sys/contrib/dev/acpica/components/executer/exdebug.c
  projects/ipsec/sys/contrib/dev/acpica/components/executer/exdump.c
  projects/ipsec/sys/contrib/dev/acpica/components/executer/exfield.c
  projects/ipsec/sys/contrib/dev/acpica/components/executer/exfldio.c
  projects/ipsec/sys/contrib/dev/acpica/components/executer/exmisc.c
  projects/ipsec/sys/contrib/dev/acpica/components/executer/exmutex.c
  projects/ipsec/sys/contrib/dev/acpica/components/executer/exnames.c
  projects/ipsec/sys/contrib/dev/acpica/components/executer/exoparg1.c
  projects/ipsec/sys/contrib/dev/acpica/components/executer/exoparg2.c
  projects/ipsec/sys/contrib/dev/acpica/components/executer/exoparg3.c
  projects/ipsec/sys/contrib/dev/acpica/components/executer/exoparg6.c
  projects/ipsec/sys/contrib/dev/acpica/components/executer/exprep.c
  projects/ipsec/sys/contrib/dev/acpica/components/executer/exregion.c
  projects/ipsec/sys/contrib/dev/acpica/components/executer/exresnte.c
  projects/ipsec/sys/contrib/dev/acpica/components/executer/exresolv.c
  projects/ipsec/sys/contrib/dev/acpica/components/executer/exresop.c
  projects/ipsec/sys/contrib/dev/acpica/components/executer/exstore.c
  projects/ipsec/sys/contrib/dev/acpica/components/executer/exstoren.c
  projects/ipsec/sys/contrib/dev/acpica/components/executer/exstorob.c
  projects/ipsec/sys/contrib/dev/acpica/components/executer/exsystem.c
  projects/ipsec/sys/contrib/dev/acpica/components/executer/extrace.c
  projects/ipsec/sys/contrib/dev/acpica/components/executer/exutils.c
  projects/ipsec/sys/contrib/dev/acpica/components/hardware/hwacpi.c
  projects/ipsec/sys/contrib/dev/acpica/components/hardware/hwesleep.c
  projects/ipsec/sys/contrib/dev/acpica/components/hardware/hwgpe.c
  projects/ipsec/sys/contrib/dev/acpica/components/hardware/hwpci.c
  projects/ipsec/sys/contrib/dev/acpica/components/hardware/hwregs.c
  projects/ipsec/sys/contrib/dev/acpica/components/hardware/hwsleep.c
  projects/ipsec/sys/contrib/dev/acpica/components/hardware/hwtimer.c
  projects/ipsec/sys/contrib/dev/acpica/components/hardware/hwvalid.c
  projects/ipsec/sys/contrib/dev/acpica/components/hardware/hwxface.c
  projects/ipsec/sys/contrib/dev/acpica/components/hardware/hwxfsleep.c
  projects/ipsec/sys/contrib/dev/acpica/components/namespace/nsaccess.c
  projects/ipsec/sys/contrib/dev/acpica/components/namespace/nsalloc.c
  projects/ipsec/sys/contrib/dev/acpica/components/namespace/nsarguments.c
  projects/ipsec/sys/contrib/dev/acpica/components/namespace/nsconvert.c
  projects/ipsec/sys/contrib/dev/acpica/components/namespace/nsdump.c
  projects/ipsec/sys/contrib/dev/acpica/components/namespace/nsdumpdv.c
  projects/ipsec/sys/contrib/dev/acpica/components/namespace/nseval.c
  projects/ipsec/sys/contrib/dev/acpica/components/namespace/nsinit.c
  projects/ipsec/sys/contrib/dev/acpica/components/namespace/nsload.c
  projects/ipsec/sys/contrib/dev/acpica/components/namespace/nsnames.c
  projects/ipsec/sys/contrib/dev/acpica/components/namespace/nsobject.c
  projects/ipsec/sys/contrib/dev/acpica/components/namespace/nsparse.c
  projects/ipsec/sys/contrib/dev/acpica/components/namespace/nspredef.c
  projects/ipsec/sys/contrib/dev/acpica/components/namespace/nsprepkg.c
  projects/ipsec/sys/contrib/dev/acpica/components/namespace/nsrepair.c
  projects/ipsec/sys/contrib/dev/acpica/components/namespace/nsrepair2.c
  projects/ipsec/sys/contrib/dev/acpica/components/namespace/nssearch.c
  projects/ipsec/sys/contrib/dev/acpica/components/namespace/nsutils.c
  projects/ipsec/sys/contrib/dev/acpica/components/namespace/nswalk.c
  projects/ipsec/sys/contrib/dev/acpica/components/namespace/nsxfeval.c
  projects/ipsec/sys/contrib/dev/acpica/components/namespace/nsxfname.c
  projects/ipsec/sys/contrib/dev/acpica/components/namespace/nsxfobj.c
  projects/ipsec/sys/contrib/dev/acpica/components/parser/psargs.c
  projects/ipsec/sys/contrib/dev/acpica/components/parser/psloop.c
  projects/ipsec/sys/contrib/dev/acpica/components/parser/psobject.c
  projects/ipsec/sys/contrib/dev/acpica/components/parser/psopcode.c
  projects/ipsec/sys/contrib/dev/acpica/components/parser/psopinfo.c
  projects/ipsec/sys/contrib/dev/acpica/components/parser/psparse.c
  projects/ipsec/sys/contrib/dev/acpica/components/parser/psscope.c
  projects/ipsec/sys/contrib/dev/acpica/components/parser/pstree.c
  projects/ipsec/sys/contrib/dev/acpica/components/parser/psutils.c
  projects/ipsec/sys/contrib/dev/acpica/components/parser/pswalk.c
  projects/ipsec/sys/contrib/dev/acpica/components/parser/psxface.c
  projects/ipsec/sys/contrib/dev/acpica/components/resources/rsaddr.c
  projects/ipsec/sys/contrib/dev/acpica/components/resources/rscalc.c
  projects/ipsec/sys/contrib/dev/acpica/components/resources/rscreate.c
  projects/ipsec/sys/contrib/dev/acpica/components/resources/rsdump.c
  projects/ipsec/sys/contrib/dev/acpica/components/resources/rsdumpinfo.c
  projects/ipsec/sys/contrib/dev/acpica/components/resources/rsinfo.c
  projects/ipsec/sys/contrib/dev/acpica/components/resources/rsio.c
  projects/ipsec/sys/contrib/dev/acpica/components/resources/rsirq.c
  projects/ipsec/sys/contrib/dev/acpica/components/resources/rslist.c
  projects/ipsec/sys/contrib/dev/acpica/components/resources/rsmemory.c
  projects/ipsec/sys/contrib/dev/acpica/components/resources/rsmisc.c
  projects/ipsec/sys/contrib/dev/acpica/components/resources/rsserial.c
  projects/ipsec/sys/contrib/dev/acpica/components/resources/rsutils.c
  projects/ipsec/sys/contrib/dev/acpica/components/resources/rsxface.c
  projects/ipsec/sys/contrib/dev/acpica/components/tables/tbdata.c
  projects/ipsec/sys/contrib/dev/acpica/components/tables/tbfadt.c
  projects/ipsec/sys/contrib/dev/acpica/components/tables/tbfind.c
  projects/ipsec/sys/contrib/dev/acpica/components/tables/tbinstal.c
  projects/ipsec/sys/contrib/dev/acpica/components/tables/tbprint.c
  projects/ipsec/sys/contrib/dev/acpica/components/tables/tbutils.c
  projects/ipsec/sys/contrib/dev/acpica/components/tables/tbxface.c
  projects/ipsec/sys/contrib/dev/acpica/components/tables/tbxfload.c
  projects/ipsec/sys/contrib/dev/acpica/components/tables/tbxfroot.c
  projects/ipsec/sys/contrib/dev/acpica/components/utilities/utaddress.c
  projects/ipsec/sys/contrib/dev/acpica/components/utilities/utalloc.c
  projects/ipsec/sys/contrib/dev/acpica/components/utilities/utascii.c
  projects/ipsec/sys/contrib/dev/acpica/components/utilities/utbuffer.c
  projects/ipsec/sys/contrib/dev/acpica/components/utilities/utcache.c
  projects/ipsec/sys/contrib/dev/acpica/components/utilities/utcopy.c
  projects/ipsec/sys/contrib/dev/acpica/components/utilities/utdebug.c
  projects/ipsec/sys/contrib/dev/acpica/components/utilities/utdecode.c
  projects/ipsec/sys/contrib/dev/acpica/components/utilities/utdelete.c
  projects/ipsec/sys/contrib/dev/acpica/components/utilities/uterror.c
  projects/ipsec/sys/contrib/dev/acpica/components/utilities/uteval.c
  projects/ipsec/sys/contrib/dev/acpica/components/utilities/utexcep.c
  projects/ipsec/sys/contrib/dev/acpica/components/utilities/utglobal.c
  projects/ipsec/sys/contrib/dev/acpica/components/utilities/uthex.c
  projects/ipsec/sys/contrib/dev/acpica/components/utilities/utids.c
  projects/ipsec/sys/contrib/dev/acpica/components/utilities/utinit.c
  projects/ipsec/sys/contrib/dev/acpica/components/utilities/utlock.c
  projects/ipsec/sys/contrib/dev/acpica/components/utilities/utmath.c
  projects/ipsec/sys/contrib/dev/acpica/components/utilities/utmisc.c
  projects/ipsec/sys/contrib/dev/acpica/components/utilities/utmutex.c
  projects/ipsec/sys/contrib/dev/acpica/components/utilities/utnonansi.c
  projects/ipsec/sys/contrib/dev/acpica/components/utilities/utobject.c
  projects/ipsec/sys/contrib/dev/acpica/components/utilities/utosi.c
  projects/ipsec/sys/contrib/dev/acpica/components/utilities/utownerid.c
  projects/ipsec/sys/contrib/dev/acpica/components/utilities/utpredef.c
  projects/ipsec/sys/contrib/dev/acpica/components/utilities/utresrc.c
  projects/ipsec/sys/contrib/dev/acpica/components/utilities/utstate.c
  projects/ipsec/sys/contrib/dev/acpica/components/utilities/utstring.c
  projects/ipsec/sys/contrib/dev/acpica/components/utilities/utstrtoul64.c
  projects/ipsec/sys/contrib/dev/acpica/components/utilities/uttrack.c
  projects/ipsec/sys/contrib/dev/acpica/components/utilities/utuuid.c
  projects/ipsec/sys/contrib/dev/acpica/components/utilities/utxface.c
  projects/ipsec/sys/contrib/dev/acpica/components/utilities/utxferror.c
  projects/ipsec/sys/contrib/dev/acpica/components/utilities/utxfinit.c
  projects/ipsec/sys/contrib/dev/acpica/components/utilities/utxfmutex.c
  projects/ipsec/sys/contrib/dev/acpica/include/acapps.h
  projects/ipsec/sys/contrib/dev/acpica/include/acbuffer.h
  projects/ipsec/sys/contrib/dev/acpica/include/acclib.h
  projects/ipsec/sys/contrib/dev/acpica/include/accommon.h
  projects/ipsec/sys/contrib/dev/acpica/include/acconfig.h
  projects/ipsec/sys/contrib/dev/acpica/include/acdebug.h
  projects/ipsec/sys/contrib/dev/acpica/include/acdisasm.h
  projects/ipsec/sys/contrib/dev/acpica/include/acdispat.h
  projects/ipsec/sys/contrib/dev/acpica/include/acevents.h
  projects/ipsec/sys/contrib/dev/acpica/include/acexcep.h
  projects/ipsec/sys/contrib/dev/acpica/include/acglobal.h
  projects/ipsec/sys/contrib/dev/acpica/include/achware.h
  projects/ipsec/sys/contrib/dev/acpica/include/acinterp.h
  projects/ipsec/sys/contrib/dev/acpica/include/aclocal.h
  projects/ipsec/sys/contrib/dev/acpica/include/acmacros.h
  projects/ipsec/sys/contrib/dev/acpica/include/acnames.h
  projects/ipsec/sys/contrib/dev/acpica/include/acnamesp.h
  projects/ipsec/sys/contrib/dev/acpica/include/acobject.h
  projects/ipsec/sys/contrib/dev/acpica/include/acopcode.h
  projects/ipsec/sys/contrib/dev/acpica/include/acoutput.h
  projects/ipsec/sys/contrib/dev/acpica/include/acparser.h
  projects/ipsec/sys/contrib/dev/acpica/include/acpi.h
  projects/ipsec/sys/contrib/dev/acpica/include/acpiosxf.h
  projects/ipsec/sys/contrib/dev/acpica/include/acpixf.h
  projects/ipsec/sys/contrib/dev/acpica/include/acpredef.h
  projects/ipsec/sys/contrib/dev/acpica/include/acresrc.h
  projects/ipsec/sys/contrib/dev/acpica/include/acrestyp.h
  projects/ipsec/sys/contrib/dev/acpica/include/acstruct.h
  projects/ipsec/sys/contrib/dev/acpica/include/actables.h
  projects/ipsec/sys/contrib/dev/acpica/include/actbl.h
  projects/ipsec/sys/contrib/dev/acpica/include/actbl1.h
  projects/ipsec/sys/contrib/dev/acpica/include/actbl2.h
  projects/ipsec/sys/contrib/dev/acpica/include/actbl3.h
  projects/ipsec/sys/contrib/dev/acpica/include/actypes.h
  projects/ipsec/sys/contrib/dev/acpica/include/acutils.h
  projects/ipsec/sys/contrib/dev/acpica/include/acuuid.h
  projects/ipsec/sys/contrib/dev/acpica/include/amlcode.h
  projects/ipsec/sys/contrib/dev/acpica/include/amlresrc.h
  projects/ipsec/sys/contrib/dev/acpica/include/platform/acenv.h
  projects/ipsec/sys/contrib/dev/acpica/include/platform/acenvex.h
  projects/ipsec/sys/contrib/dev/acpica/include/platform/acfreebsd.h
  projects/ipsec/sys/contrib/dev/acpica/include/platform/acgcc.h
  projects/ipsec/sys/contrib/dev/acpica/include/platform/acgccex.h
  projects/ipsec/sys/contrib/dev/acpica/os_specific/service_layers/osunixxf.c
  projects/ipsec/sys/contrib/ipfilter/netinet/ip_fil.h
  projects/ipsec/sys/crypto/skein/amd64/skein_block_asm.s
  projects/ipsec/sys/dev/aac/aac_cam.c
  projects/ipsec/sys/dev/aacraid/aacraid_cam.c
  projects/ipsec/sys/dev/acpica/Osd/OsdDebug.c
  projects/ipsec/sys/dev/acpica/Osd/OsdHardware.c
  projects/ipsec/sys/dev/advansys/advansys.c
  projects/ipsec/sys/dev/advansys/adwcam.c
  projects/ipsec/sys/dev/agp/agp_i810.c
  projects/ipsec/sys/dev/aha/aha.c
  projects/ipsec/sys/dev/ahb/ahb.c
  projects/ipsec/sys/dev/ahci/ahci.c
  projects/ipsec/sys/dev/ahci/ahci_generic.c
  projects/ipsec/sys/dev/ahci/ahciem.c
  projects/ipsec/sys/dev/aic/aic.c
  projects/ipsec/sys/dev/aic7xxx/aic79xx_osm.c
  projects/ipsec/sys/dev/aic7xxx/aic7xxx_osm.c
  projects/ipsec/sys/dev/alc/if_alc.c
  projects/ipsec/sys/dev/alc/if_alcreg.h
  projects/ipsec/sys/dev/altera/atse/if_atse.c
  projects/ipsec/sys/dev/amr/amr_cam.c
  projects/ipsec/sys/dev/arcmsr/arcmsr.c
  projects/ipsec/sys/dev/ata/ata-all.c
  projects/ipsec/sys/dev/ath/ath_hal/ah.c
  projects/ipsec/sys/dev/ath/ath_hal/ah_regdomain.c
  projects/ipsec/sys/dev/ath/if_ath.c
  projects/ipsec/sys/dev/ath/if_ath_tx.c
  projects/ipsec/sys/dev/ath/if_ath_tx_edma.c
  projects/ipsec/sys/dev/ath/if_ath_tx_ht.c
  projects/ipsec/sys/dev/bhnd/bhnd.h
  projects/ipsec/sys/dev/bnxt/if_bnxt.c
  projects/ipsec/sys/dev/buslogic/bt.c
  projects/ipsec/sys/dev/ciss/ciss.c
  projects/ipsec/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_provider.c
  projects/ipsec/sys/dev/cxgbe/adapter.h
  projects/ipsec/sys/dev/cxgbe/common/common.h
  projects/ipsec/sys/dev/cxgbe/common/t4_hw.c
  projects/ipsec/sys/dev/cxgbe/common/t4_msg.h
  projects/ipsec/sys/dev/cxgbe/firmware/t4fw_interface.h
  projects/ipsec/sys/dev/cxgbe/firmware/t5fw_cfg_uwire.txt
  projects/ipsec/sys/dev/cxgbe/firmware/t6fw_cfg.txt
  projects/ipsec/sys/dev/cxgbe/firmware/t6fw_cfg_uwire.txt
  projects/ipsec/sys/dev/cxgbe/iw_cxgbe/provider.c
  projects/ipsec/sys/dev/cxgbe/t4_main.c
  projects/ipsec/sys/dev/cxgbe/t4_sge.c
  projects/ipsec/sys/dev/cxgbe/t4_vf.c
  projects/ipsec/sys/dev/cxgbe/tom/t4_connect.c
  projects/ipsec/sys/dev/cxgbe/tom/t4_cpl_io.c
  projects/ipsec/sys/dev/cxgbe/tom/t4_ddp.c
  projects/ipsec/sys/dev/cxgbe/tom/t4_listen.c
  projects/ipsec/sys/dev/cxgbe/tom/t4_tom.c
  projects/ipsec/sys/dev/cxgbe/tom/t4_tom.h
  projects/ipsec/sys/dev/dpt/dpt_scsi.c
  projects/ipsec/sys/dev/e1000/e1000_82575.c
  projects/ipsec/sys/dev/e1000/e1000_82575.h
  projects/ipsec/sys/dev/e1000/e1000_defines.h
  projects/ipsec/sys/dev/e1000/e1000_ich8lan.c
  projects/ipsec/sys/dev/e1000/if_em.c
  projects/ipsec/sys/dev/e1000/if_em.h
  projects/ipsec/sys/dev/esp/ncr53c9x.c
  projects/ipsec/sys/dev/etherswitch/arswitch/arswitch.c
  projects/ipsec/sys/dev/etherswitch/arswitch/arswitch_7240.c
  projects/ipsec/sys/dev/etherswitch/arswitch/arswitch_8316.c
  projects/ipsec/sys/dev/etherswitch/arswitch/arswitch_8327.c
  projects/ipsec/sys/dev/etherswitch/arswitch/arswitch_9340.c
  projects/ipsec/sys/dev/etherswitch/e6000sw/e6000sw.c
  projects/ipsec/sys/dev/etherswitch/e6000sw/e6000swreg.h
  projects/ipsec/sys/dev/etherswitch/etherswitch.c
  projects/ipsec/sys/dev/fdt/simplebus.c
  projects/ipsec/sys/dev/firewire/sbp.c
  projects/ipsec/sys/dev/firewire/sbp_targ.c
  projects/ipsec/sys/dev/gpio/gpioc.c
  projects/ipsec/sys/dev/gpio/ofw_gpiobus.c
  projects/ipsec/sys/dev/hdmi/dwc_hdmi.c
  projects/ipsec/sys/dev/hdmi/dwc_hdmi.h
  projects/ipsec/sys/dev/hdmi/dwc_hdmi_fdt.c
  projects/ipsec/sys/dev/hdmi/dwc_hdmireg.h
  projects/ipsec/sys/dev/hpt27xx/hpt27xx_osm_bsd.c
  projects/ipsec/sys/dev/hptiop/hptiop.c
  projects/ipsec/sys/dev/hptmv/entry.c
  projects/ipsec/sys/dev/hptnr/hptnr_osm_bsd.c
  projects/ipsec/sys/dev/hptrr/hptrr_osm_bsd.c
  projects/ipsec/sys/dev/hwpmc/hwpmc_core.c
  projects/ipsec/sys/dev/hyperv/include/hyperv.h
  projects/ipsec/sys/dev/hyperv/netvsc/hn_nvs.c
  projects/ipsec/sys/dev/hyperv/netvsc/hn_nvs.h
  projects/ipsec/sys/dev/hyperv/netvsc/if_hn.c
  projects/ipsec/sys/dev/hyperv/netvsc/if_hnreg.h
  projects/ipsec/sys/dev/hyperv/netvsc/if_hnvar.h
  projects/ipsec/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c
  projects/ipsec/sys/dev/hyperv/utilities/vmbus_timesync.c
  projects/ipsec/sys/dev/hyperv/vmbus/amd64/hyperv_machdep.c
  projects/ipsec/sys/dev/hyperv/vmbus/hyperv.c
  projects/ipsec/sys/dev/hyperv/vmbus/vmbus.c
  projects/ipsec/sys/dev/hyperv/vmbus/vmbus_chan.c
  projects/ipsec/sys/dev/hyperv/vmbus/vmbus_et.c
  projects/ipsec/sys/dev/hyperv/vmbus/vmbus_var.h
  projects/ipsec/sys/dev/iir/iir.c
  projects/ipsec/sys/dev/isci/isci_controller.c
  projects/ipsec/sys/dev/isci/isci_task_request.c
  projects/ipsec/sys/dev/iscsi_initiator/isc_cam.c
  projects/ipsec/sys/dev/iscsi_initiator/isc_soc.c
  projects/ipsec/sys/dev/iscsi_initiator/iscsi.c
  projects/ipsec/sys/dev/isp/isp.c
  projects/ipsec/sys/dev/isp/isp_freebsd.c
  projects/ipsec/sys/dev/ixgbe/if_ix.c
  projects/ipsec/sys/dev/ixl/ixl_pf_main.c
  projects/ipsec/sys/dev/kbd/kbd.c
  projects/ipsec/sys/dev/mfi/mfi_cam.c
  projects/ipsec/sys/dev/mlx5/cq.h
  projects/ipsec/sys/dev/mlx5/mlx5_core/mlx5_cq.c
  projects/ipsec/sys/dev/mlx5/mlx5_en/en.h
  projects/ipsec/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c
  projects/ipsec/sys/dev/mlx5/mlx5_en/mlx5_en_main.c
  projects/ipsec/sys/dev/mlx5/mlx5_en/mlx5_en_tx.c
  projects/ipsec/sys/dev/mlx5/mlx5_ifc.h
  projects/ipsec/sys/dev/mly/mly.c
  projects/ipsec/sys/dev/mmc/mmcreg.h
  projects/ipsec/sys/dev/mmc/mmcsd.c
  projects/ipsec/sys/dev/mpr/mpr_sas.c
  projects/ipsec/sys/dev/mpr/mpr_sas_lsi.c
  projects/ipsec/sys/dev/mpr/mpr_table.c
  projects/ipsec/sys/dev/mpr/mpr_table.h
  projects/ipsec/sys/dev/mpr/mprvar.h
  projects/ipsec/sys/dev/mps/mps_sas.c
  projects/ipsec/sys/dev/mps/mps_table.c
  projects/ipsec/sys/dev/mps/mps_table.h
  projects/ipsec/sys/dev/mps/mpsvar.h
  projects/ipsec/sys/dev/mpt/mpt.c
  projects/ipsec/sys/dev/mpt/mpt.h
  projects/ipsec/sys/dev/mpt/mpt_cam.c
  projects/ipsec/sys/dev/mpt/mpt_raid.c
  projects/ipsec/sys/dev/mrsas/mrsas_cam.c
  projects/ipsec/sys/dev/mrsas/mrsas_linux.c
  projects/ipsec/sys/dev/mvs/mvs.c
  projects/ipsec/sys/dev/nand/nand_geom.c
  projects/ipsec/sys/dev/ncr/ncr.c
  projects/ipsec/sys/dev/netmap/netmap_freebsd.c
  projects/ipsec/sys/dev/netmap/netmap_generic.c
  projects/ipsec/sys/dev/ntb/if_ntb/if_ntb.c
  projects/ipsec/sys/dev/nvd/nvd.c
  projects/ipsec/sys/dev/nvme/nvme_sim.c
  projects/ipsec/sys/dev/pccbb/pccbb_pci.c
  projects/ipsec/sys/dev/pci/hostb_pci.c
  projects/ipsec/sys/dev/pci/pci.c
  projects/ipsec/sys/dev/pci/pci_private.h
  projects/ipsec/sys/dev/pci/pci_subr.c
  projects/ipsec/sys/dev/pms/freebsd/driver/ini/src/agtiapi.c
  projects/ipsec/sys/dev/ppbus/vpo.c
  projects/ipsec/sys/dev/rccgpio/rccgpio.c
  projects/ipsec/sys/dev/rtwn/if_rtwn.c
  projects/ipsec/sys/dev/rtwn/if_rtwn_beacon.c
  projects/ipsec/sys/dev/rtwn/if_rtwn_beacon.h
  projects/ipsec/sys/dev/rtwn/if_rtwn_debug.h
  projects/ipsec/sys/dev/rtwn/if_rtwn_rx.c
  projects/ipsec/sys/dev/rtwn/if_rtwn_rx.h
  projects/ipsec/sys/dev/rtwn/if_rtwnvar.h
  projects/ipsec/sys/dev/rtwn/pci/rtwn_pci_attach.c
  projects/ipsec/sys/dev/rtwn/pci/rtwn_pci_rx.c
  projects/ipsec/sys/dev/rtwn/rtl8188e/r88e.h
  projects/ipsec/sys/dev/rtwn/rtl8188e/r88e_fw.c
  projects/ipsec/sys/dev/rtwn/rtl8188e/r88e_rx.c
  projects/ipsec/sys/dev/rtwn/rtl8188e/usb/r88eu_attach.c
  projects/ipsec/sys/dev/rtwn/rtl8192c/pci/r92ce_attach.c
  projects/ipsec/sys/dev/rtwn/rtl8192c/pci/r92ce_init.c
  projects/ipsec/sys/dev/rtwn/rtl8192c/r92c.h
  projects/ipsec/sys/dev/rtwn/rtl8192c/r92c_fw.c
  projects/ipsec/sys/dev/rtwn/rtl8192c/r92c_init.c
  projects/ipsec/sys/dev/rtwn/rtl8192c/r92c_reg.h
  projects/ipsec/sys/dev/rtwn/rtl8192c/r92c_rx.c
  projects/ipsec/sys/dev/rtwn/rtl8192c/r92c_rx_desc.h
  projects/ipsec/sys/dev/rtwn/rtl8192c/r92c_tx_desc.h
  projects/ipsec/sys/dev/rtwn/rtl8192c/usb/r92cu_attach.c
  projects/ipsec/sys/dev/rtwn/rtl8192c/usb/r92cu_init.c
  projects/ipsec/sys/dev/rtwn/rtl8812a/r12a.h
  projects/ipsec/sys/dev/rtwn/rtl8812a/r12a_beacon.c
  projects/ipsec/sys/dev/rtwn/rtl8812a/r12a_chan.c
  projects/ipsec/sys/dev/rtwn/rtl8812a/r12a_fw.c
  projects/ipsec/sys/dev/rtwn/rtl8812a/r12a_rx.c
  projects/ipsec/sys/dev/rtwn/rtl8812a/r12a_rx_desc.h
  projects/ipsec/sys/dev/rtwn/rtl8812a/r12a_tx.c
  projects/ipsec/sys/dev/rtwn/rtl8812a/r12a_var.h
  projects/ipsec/sys/dev/rtwn/rtl8812a/usb/r12au_attach.c
  projects/ipsec/sys/dev/rtwn/rtl8821a/r21a_init.c
  projects/ipsec/sys/dev/rtwn/rtl8821a/usb/r21au.h
  projects/ipsec/sys/dev/rtwn/rtl8821a/usb/r21au_attach.c
  projects/ipsec/sys/dev/rtwn/usb/rtwn_usb_attach.c
  projects/ipsec/sys/dev/rtwn/usb/rtwn_usb_attach.h
  projects/ipsec/sys/dev/rtwn/usb/rtwn_usb_ep.c
  projects/ipsec/sys/dev/rtwn/usb/rtwn_usb_rx.c
  projects/ipsec/sys/dev/sdhci/fsl_sdhci.c
  projects/ipsec/sys/dev/sdhci/sdhci.c
  projects/ipsec/sys/dev/sdhci/sdhci.h
  projects/ipsec/sys/dev/sdhci/sdhci_if.m
  projects/ipsec/sys/dev/sdhci/sdhci_pci.c
  projects/ipsec/sys/dev/sfxge/common/ef10_ev.c
  projects/ipsec/sys/dev/sfxge/common/ef10_filter.c
  projects/ipsec/sys/dev/sfxge/common/ef10_impl.h
  projects/ipsec/sys/dev/sfxge/common/ef10_mac.c
  projects/ipsec/sys/dev/sfxge/common/ef10_mcdi.c
  projects/ipsec/sys/dev/sfxge/common/ef10_nic.c
  projects/ipsec/sys/dev/sfxge/common/ef10_nvram.c
  projects/ipsec/sys/dev/sfxge/common/ef10_phy.c
  projects/ipsec/sys/dev/sfxge/common/ef10_rx.c
  projects/ipsec/sys/dev/sfxge/common/ef10_tlv_layout.h
  projects/ipsec/sys/dev/sfxge/common/ef10_tx.c
  projects/ipsec/sys/dev/sfxge/common/efsys.h
  projects/ipsec/sys/dev/sfxge/common/efx.h
  projects/ipsec/sys/dev/sfxge/common/efx_bootcfg.c
  projects/ipsec/sys/dev/sfxge/common/efx_check.h
  projects/ipsec/sys/dev/sfxge/common/efx_ev.c
  projects/ipsec/sys/dev/sfxge/common/efx_filter.c
  projects/ipsec/sys/dev/sfxge/common/efx_impl.h
  projects/ipsec/sys/dev/sfxge/common/efx_lic.c
  projects/ipsec/sys/dev/sfxge/common/efx_mac.c
  projects/ipsec/sys/dev/sfxge/common/efx_mcdi.c
  projects/ipsec/sys/dev/sfxge/common/efx_mcdi.h
  projects/ipsec/sys/dev/sfxge/common/efx_mon.c
  projects/ipsec/sys/dev/sfxge/common/efx_nic.c
  projects/ipsec/sys/dev/sfxge/common/efx_nvram.c
  projects/ipsec/sys/dev/sfxge/common/efx_phy.c
  projects/ipsec/sys/dev/sfxge/common/efx_port.c
  projects/ipsec/sys/dev/sfxge/common/efx_regs_mcdi.h
  projects/ipsec/sys/dev/sfxge/common/efx_rx.c
  projects/ipsec/sys/dev/sfxge/common/efx_tx.c
  projects/ipsec/sys/dev/sfxge/common/efx_types.h
  projects/ipsec/sys/dev/sfxge/common/hunt_impl.h
  projects/ipsec/sys/dev/sfxge/common/hunt_nic.c
  projects/ipsec/sys/dev/sfxge/common/mcdi_mon.c
  projects/ipsec/sys/dev/sfxge/common/medford_nic.c
  projects/ipsec/sys/dev/sfxge/common/siena_flash.h
  projects/ipsec/sys/dev/sfxge/common/siena_impl.h
  projects/ipsec/sys/dev/sfxge/common/siena_mac.c
  projects/ipsec/sys/dev/sfxge/common/siena_mcdi.c
  projects/ipsec/sys/dev/sfxge/common/siena_nic.c
  projects/ipsec/sys/dev/sfxge/common/siena_nvram.c
  projects/ipsec/sys/dev/sfxge/common/siena_phy.c
  projects/ipsec/sys/dev/sfxge/common/siena_vpd.c
  projects/ipsec/sys/dev/sfxge/sfxge.c
  projects/ipsec/sys/dev/sfxge/sfxge.h
  projects/ipsec/sys/dev/sfxge/sfxge_ev.c
  projects/ipsec/sys/dev/sfxge/sfxge_mcdi.c
  projects/ipsec/sys/dev/sfxge/sfxge_port.c
  projects/ipsec/sys/dev/sfxge/sfxge_rx.c
  projects/ipsec/sys/dev/sfxge/sfxge_tx.c
  projects/ipsec/sys/dev/siis/siis.c
  projects/ipsec/sys/dev/sound/pci/hda/hdaa.c
  projects/ipsec/sys/dev/sound/pci/hda/hdac.c
  projects/ipsec/sys/dev/sound/pci/hda/hdac.h
  projects/ipsec/sys/dev/sound/usb/uaudio.c
  projects/ipsec/sys/dev/spibus/spibus.c
  projects/ipsec/sys/dev/sym/sym_hipd.c
  projects/ipsec/sys/dev/trm/trm.c
  projects/ipsec/sys/dev/twa/tw_osl_cam.c
  projects/ipsec/sys/dev/tws/tws_cam.c
  projects/ipsec/sys/dev/uart/uart_bus_pci.c
  projects/ipsec/sys/dev/uart/uart_core.c
  projects/ipsec/sys/dev/usb/controller/ehci_imx.c
  projects/ipsec/sys/dev/usb/controller/xhci.c
  projects/ipsec/sys/dev/usb/controller/xhci.h
  projects/ipsec/sys/dev/usb/controller/xhci_pci.c
  projects/ipsec/sys/dev/usb/misc/udbp.c
  projects/ipsec/sys/dev/usb/quirk/usb_quirk.c
  projects/ipsec/sys/dev/usb/quirk/usb_quirk.h
  projects/ipsec/sys/dev/usb/usb_hub.c
  projects/ipsec/sys/dev/usb/usbdevs
  projects/ipsec/sys/dev/usb/wlan/if_rsu.c
  projects/ipsec/sys/dev/usb/wlan/if_run.c
  projects/ipsec/sys/dev/virtio/scsi/virtio_scsi.c
  projects/ipsec/sys/dev/xdma/xdma.c
  projects/ipsec/sys/dev/xdma/xdma.h
  projects/ipsec/sys/dev/xen/netfront/netfront.c
  projects/ipsec/sys/fs/cd9660/cd9660_lookup.c
  projects/ipsec/sys/fs/cd9660/cd9660_node.c
  projects/ipsec/sys/fs/cd9660/cd9660_node.h
  projects/ipsec/sys/fs/cd9660/cd9660_rrip.c
  projects/ipsec/sys/fs/cd9660/cd9660_vfsops.c
  projects/ipsec/sys/fs/cd9660/cd9660_vnops.c
  projects/ipsec/sys/fs/cd9660/iso.h
  projects/ipsec/sys/fs/cd9660/iso_rrip.h
  projects/ipsec/sys/fs/ext2fs/ext2_alloc.c
  projects/ipsec/sys/fs/ext2fs/ext2_balloc.c
  projects/ipsec/sys/fs/ext2fs/ext2_bmap.c
  projects/ipsec/sys/fs/ext2fs/ext2_dir.h
  projects/ipsec/sys/fs/ext2fs/ext2_extents.c
  projects/ipsec/sys/fs/ext2fs/ext2_extents.h
  projects/ipsec/sys/fs/ext2fs/ext2_extern.h
  projects/ipsec/sys/fs/ext2fs/ext2_hash.c
  projects/ipsec/sys/fs/ext2fs/ext2_htree.c
  projects/ipsec/sys/fs/ext2fs/ext2_inode.c
  projects/ipsec/sys/fs/ext2fs/ext2_inode_cnv.c
  projects/ipsec/sys/fs/ext2fs/ext2_lookup.c
  projects/ipsec/sys/fs/ext2fs/ext2_mount.h
  projects/ipsec/sys/fs/ext2fs/ext2_subr.c
  projects/ipsec/sys/fs/ext2fs/ext2_vfsops.c
  projects/ipsec/sys/fs/ext2fs/ext2_vnops.c
  projects/ipsec/sys/fs/ext2fs/ext2fs.h
  projects/ipsec/sys/fs/ext2fs/fs.h
  projects/ipsec/sys/fs/ext2fs/htree.h
  projects/ipsec/sys/fs/ext2fs/inode.h
  projects/ipsec/sys/fs/nfs/nfs_commonsubs.c
  projects/ipsec/sys/fs/nfsclient/nfs_clvnops.c
  projects/ipsec/sys/fs/nfsserver/nfs_nfsdport.c
  projects/ipsec/sys/fs/nfsserver/nfs_nfsdserv.c
  projects/ipsec/sys/fs/nullfs/null_vfsops.c
  projects/ipsec/sys/fs/pseudofs/pseudofs_vncache.c
  projects/ipsec/sys/fs/tmpfs/tmpfs.h
  projects/ipsec/sys/fs/tmpfs/tmpfs_fifoops.c
  projects/ipsec/sys/fs/tmpfs/tmpfs_subr.c
  projects/ipsec/sys/fs/tmpfs/tmpfs_vfsops.c
  projects/ipsec/sys/fs/tmpfs/tmpfs_vnops.c
  projects/ipsec/sys/fs/tmpfs/tmpfs_vnops.h
  projects/ipsec/sys/fs/unionfs/union_vfsops.c
  projects/ipsec/sys/geom/geom_disk.c
  projects/ipsec/sys/geom/geom_disk.h
  projects/ipsec/sys/geom/multipath/g_multipath.c
  projects/ipsec/sys/geom/raid/md_ddf.c
  projects/ipsec/sys/geom/raid/md_promise.c
  projects/ipsec/sys/geom/vinum/geom_vinum_state.c
  projects/ipsec/sys/i386/cloudabi32/cloudabi32_sysvec.c
  projects/ipsec/sys/i386/conf/GENERIC
  projects/ipsec/sys/i386/i386/pmap.c
  projects/ipsec/sys/i386/ibcs2/ibcs2_stat.c
  projects/ipsec/sys/i386/include/cpufunc.h
  projects/ipsec/sys/kern/bus_if.m
  projects/ipsec/sys/kern/imgact_elf.c
  projects/ipsec/sys/kern/init_sysent.c
  projects/ipsec/sys/kern/kern_acct.c
  projects/ipsec/sys/kern/kern_clocksource.c
  projects/ipsec/sys/kern/kern_descrip.c
  projects/ipsec/sys/kern/kern_event.c
  projects/ipsec/sys/kern/kern_exec.c
  projects/ipsec/sys/kern/kern_ktrace.c
  projects/ipsec/sys/kern/kern_mutex.c
  projects/ipsec/sys/kern/kern_prot.c
  projects/ipsec/sys/kern/kern_racct.c
  projects/ipsec/sys/kern/kern_rwlock.c
  projects/ipsec/sys/kern/kern_sendfile.c
  projects/ipsec/sys/kern/kern_shutdown.c
  projects/ipsec/sys/kern/kern_switch.c
  projects/ipsec/sys/kern/kern_sx.c
  projects/ipsec/sys/kern/kern_synch.c
  projects/ipsec/sys/kern/kern_time.c
  projects/ipsec/sys/kern/sched_4bsd.c
  projects/ipsec/sys/kern/sched_ule.c
  projects/ipsec/sys/kern/subr_bus.c
  projects/ipsec/sys/kern/subr_clock.c
  projects/ipsec/sys/kern/subr_gtaskqueue.c
  projects/ipsec/sys/kern/subr_unit.c
  projects/ipsec/sys/kern/sys_socket.c
  projects/ipsec/sys/kern/syscalls.c
  projects/ipsec/sys/kern/syscalls.master
  projects/ipsec/sys/kern/systrace_args.c
  projects/ipsec/sys/kern/tty.c
  projects/ipsec/sys/kern/tty_inq.c
  projects/ipsec/sys/kern/tty_outq.c
  projects/ipsec/sys/kern/uipc_mbuf.c
  projects/ipsec/sys/kern/uipc_mbuf2.c
  projects/ipsec/sys/kern/uipc_socket.c
  projects/ipsec/sys/kern/uipc_usrreq.c
  projects/ipsec/sys/kern/vfs_bio.c
  projects/ipsec/sys/kern/vfs_cache.c
  projects/ipsec/sys/kern/vfs_cluster.c
  projects/ipsec/sys/kern/vfs_default.c
  projects/ipsec/sys/kern/vfs_lookup.c
  projects/ipsec/sys/kern/vfs_mount.c
  projects/ipsec/sys/kern/vfs_subr.c
  projects/ipsec/sys/kern/vfs_syscalls.c
  projects/ipsec/sys/kern/vfs_vnops.c
  projects/ipsec/sys/libkern/bcd.c
  projects/ipsec/sys/libkern/bcmp.c
  projects/ipsec/sys/libkern/bsearch.c
  projects/ipsec/sys/libkern/iconv_ucs.c
  projects/ipsec/sys/libkern/iconv_xlat16.c
  projects/ipsec/sys/libkern/memmem.c
  projects/ipsec/sys/libkern/qdivrem.c
  projects/ipsec/sys/libkern/qsort.c
  projects/ipsec/sys/libkern/random.c
  projects/ipsec/sys/libkern/scanc.c
  projects/ipsec/sys/libkern/strcmp.c
  projects/ipsec/sys/libkern/strncpy.c
  projects/ipsec/sys/mips/atheros/ar71xxreg.h
  projects/ipsec/sys/mips/atheros/uart_bus_ar71xx.c
  projects/ipsec/sys/mips/atheros/uart_bus_ar933x.c
  projects/ipsec/sys/mips/conf/JZ4780
  projects/ipsec/sys/mips/conf/MALTA64
  projects/ipsec/sys/mips/conf/OCTEON1
  projects/ipsec/sys/mips/conf/ONIONOMEGA.hints
  projects/ipsec/sys/mips/conf/std.MALTA
  projects/ipsec/sys/mips/include/cpuregs.h
  projects/ipsec/sys/mips/include/db_machdep.h
  projects/ipsec/sys/mips/include/pmap.h
  projects/ipsec/sys/mips/include/pte.h
  projects/ipsec/sys/mips/include/vm.h
  projects/ipsec/sys/mips/ingenic/jz4780_aic.c
  projects/ipsec/sys/mips/ingenic/jz4780_codec.c
  projects/ipsec/sys/mips/ingenic/jz4780_codec.h
  projects/ipsec/sys/mips/ingenic/jz4780_mmc.c
  projects/ipsec/sys/mips/ingenic/jz4780_mpboot.S
  projects/ipsec/sys/mips/mips/busdma_machdep.c
  projects/ipsec/sys/mips/mips/db_trace.c
  projects/ipsec/sys/mips/mips/mem.c
  projects/ipsec/sys/mips/mips/pmap.c
  projects/ipsec/sys/mips/mips/trap.c
  projects/ipsec/sys/modules/Makefile
  projects/ipsec/sys/modules/ahci/Makefile
  projects/ipsec/sys/modules/ath/Makefile
  projects/ipsec/sys/modules/cxgbe/t4_firmware/Makefile
  projects/ipsec/sys/modules/cxgbe/t5_firmware/Makefile
  projects/ipsec/sys/modules/cxgbe/t6_firmware/Makefile
  projects/ipsec/sys/modules/em/Makefile
  projects/ipsec/sys/modules/if_lagg/Makefile
  projects/ipsec/sys/modules/if_vlan/Makefile
  projects/ipsec/sys/modules/rtwn/Makefile
  projects/ipsec/sys/modules/rtwn_usb/Makefile
  projects/ipsec/sys/modules/rtwnfw/Makefile
  projects/ipsec/sys/modules/sfxge/Makefile
  projects/ipsec/sys/modules/wlan/Makefile
  projects/ipsec/sys/net/ieee8023ad_lacp.c
  projects/ipsec/sys/net/ieee8023ad_lacp.h
  projects/ipsec/sys/net/if.c
  projects/ipsec/sys/net/if.h
  projects/ipsec/sys/net/if_dead.c
  projects/ipsec/sys/net/if_lagg.c
  projects/ipsec/sys/net/if_media.c
  projects/ipsec/sys/net/if_media.h
  projects/ipsec/sys/net/if_var.h
  projects/ipsec/sys/net/if_vlan.c
  projects/ipsec/sys/net/ifdi_if.m
  projects/ipsec/sys/net/iflib.c
  projects/ipsec/sys/net/iflib.h
  projects/ipsec/sys/net80211/_ieee80211.h
  projects/ipsec/sys/net80211/ieee80211.c
  projects/ipsec/sys/net80211/ieee80211.h
  projects/ipsec/sys/net80211/ieee80211_action.c
  projects/ipsec/sys/net80211/ieee80211_adhoc.c
  projects/ipsec/sys/net80211/ieee80211_hostap.c
  projects/ipsec/sys/net80211/ieee80211_ht.c
  projects/ipsec/sys/net80211/ieee80211_ht.h
  projects/ipsec/sys/net80211/ieee80211_input.c
  projects/ipsec/sys/net80211/ieee80211_ioctl.c
  projects/ipsec/sys/net80211/ieee80211_ioctl.h
  projects/ipsec/sys/net80211/ieee80211_node.c
  projects/ipsec/sys/net80211/ieee80211_node.h
  projects/ipsec/sys/net80211/ieee80211_output.c
  projects/ipsec/sys/net80211/ieee80211_proto.c
  projects/ipsec/sys/net80211/ieee80211_proto.h
  projects/ipsec/sys/net80211/ieee80211_scan.c
  projects/ipsec/sys/net80211/ieee80211_scan.h
  projects/ipsec/sys/net80211/ieee80211_scan_sta.c
  projects/ipsec/sys/net80211/ieee80211_sta.c
  projects/ipsec/sys/net80211/ieee80211_tdma.c
  projects/ipsec/sys/net80211/ieee80211_var.h
  projects/ipsec/sys/netgraph/ng_mppc.c
  projects/ipsec/sys/netinet/cc/cc.h
  projects/ipsec/sys/netinet/in_pcb.c
  projects/ipsec/sys/netinet/in_pcb.h
  projects/ipsec/sys/netinet/ip_carp.c
  projects/ipsec/sys/netinet/ip_fastfwd.c
  projects/ipsec/sys/netinet/ip_input.c
  projects/ipsec/sys/netinet/ip_output.c
  projects/ipsec/sys/netinet/raw_ip.c
  projects/ipsec/sys/netinet/sctp_output.c
  projects/ipsec/sys/netinet/sctp_syscalls.c
  projects/ipsec/sys/netinet/tcp_hostcache.c
  projects/ipsec/sys/netinet/tcp_input.c
  projects/ipsec/sys/netinet/tcp_output.c
  projects/ipsec/sys/netinet/tcp_stacks/fastpath.c
  projects/ipsec/sys/netinet/tcp_subr.c
  projects/ipsec/sys/netinet/tcp_var.h
  projects/ipsec/sys/netinet6/in6_proto.c
  projects/ipsec/sys/netinet6/ip6_input.c
  projects/ipsec/sys/netinet6/ip6_output.c
  projects/ipsec/sys/netinet6/nd6.c
  projects/ipsec/sys/netpfil/ipfw/ip_dummynet.c
  projects/ipsec/sys/netpfil/ipfw/ip_fw_private.h
  projects/ipsec/sys/powerpc/aim/trap_subr32.S
  projects/ipsec/sys/powerpc/conf/GENERIC64
  projects/ipsec/sys/powerpc/include/asm.h
  projects/ipsec/sys/powerpc/include/frame.h
  projects/ipsec/sys/powerpc/include/vmparam.h
  projects/ipsec/sys/powerpc/mpc85xx/fsl_diu.c
  projects/ipsec/sys/powerpc/powerpc/db_trace.c
  projects/ipsec/sys/powerpc/powerpc/trap.c
  projects/ipsec/sys/powerpc/ps3/ps3cdrom.c
  projects/ipsec/sys/powerpc/pseries/phyp_vscsi.c
  projects/ipsec/sys/riscv/include/frame.h
  projects/ipsec/sys/riscv/riscv/trap.c
  projects/ipsec/sys/sparc64/include/atomic.h
  projects/ipsec/sys/sparc64/sparc64/mem.c
  projects/ipsec/sys/sys/ata.h
  projects/ipsec/sys/sys/buf_ring.h
  projects/ipsec/sys/sys/bus.h
  projects/ipsec/sys/sys/busdma_bufalloc.h
  projects/ipsec/sys/sys/cdefs.h
  projects/ipsec/sys/sys/conf.h
  projects/ipsec/sys/sys/copyright.h
  projects/ipsec/sys/sys/devmap.h
  projects/ipsec/sys/sys/elf32.h
  projects/ipsec/sys/sys/elf64.h
  projects/ipsec/sys/sys/elf_common.h
  projects/ipsec/sys/sys/event.h
  projects/ipsec/sys/sys/eventhandler.h
  projects/ipsec/sys/sys/eventvar.h
  projects/ipsec/sys/sys/extattr.h
  projects/ipsec/sys/sys/file.h
  projects/ipsec/sys/sys/gtaskqueue.h
  projects/ipsec/sys/sys/imgact.h
  projects/ipsec/sys/sys/ksem.h
  projects/ipsec/sys/sys/libkern.h
  projects/ipsec/sys/sys/mbuf.h
  projects/ipsec/sys/sys/mount.h
  projects/ipsec/sys/sys/mutex.h
  projects/ipsec/sys/sys/param.h
  projects/ipsec/sys/sys/pipe.h
  projects/ipsec/sys/sys/pmckern.h
  projects/ipsec/sys/sys/rwlock.h
  projects/ipsec/sys/sys/seq.h
  projects/ipsec/sys/sys/socket.h
  projects/ipsec/sys/sys/socketvar.h
  projects/ipsec/sys/sys/sockopt.h
  projects/ipsec/sys/sys/sx.h
  projects/ipsec/sys/sys/syscall.h
  projects/ipsec/sys/sys/syscall.mk
  projects/ipsec/sys/sys/syscallsubr.h
  projects/ipsec/sys/sys/sysproto.h
  projects/ipsec/sys/sys/taskqueue.h
  projects/ipsec/sys/sys/tty.h
  projects/ipsec/sys/sys/ttyqueue.h
  projects/ipsec/sys/sys/unistd.h
  projects/ipsec/sys/tools/embed_mfs.sh
  projects/ipsec/sys/ufs/ffs/ffs_softdep.c
  projects/ipsec/sys/ufs/ffs/ffs_vnops.c
  projects/ipsec/sys/ufs/ufs/extattr.h
  projects/ipsec/sys/ufs/ufs/ufs_vnops.c
  projects/ipsec/sys/vm/swap_pager.c
  projects/ipsec/sys/vm/swap_pager.h
  projects/ipsec/sys/vm/uma_core.c
  projects/ipsec/sys/vm/vm_domain.c
  projects/ipsec/sys/vm/vm_fault.c
  projects/ipsec/sys/vm/vm_init.c
  projects/ipsec/sys/vm/vm_kern.c
  projects/ipsec/sys/vm/vm_kern.h
  projects/ipsec/sys/vm/vm_map.c
  projects/ipsec/sys/vm/vm_mmap.c
  projects/ipsec/sys/vm/vm_object.c
  projects/ipsec/sys/vm/vm_page.c
  projects/ipsec/sys/vm/vm_page.h
  projects/ipsec/sys/vm/vm_pageout.c
  projects/ipsec/sys/vm/vm_pager.c
  projects/ipsec/sys/vm/vm_reserv.c
  projects/ipsec/sys/vm/vm_reserv.h
  projects/ipsec/sys/vm/vnode_pager.c
  projects/ipsec/sys/x86/pci/pci_bus.c
  projects/ipsec/sys/x86/x86/mca.c
  projects/ipsec/sys/x86/x86/mptable.c
  projects/ipsec/sys/x86/x86/nexus.c
  projects/ipsec/sys/xen/xenbus/xenbusb.c
  projects/ipsec/sys/xen/xenbus/xenbusb.h
  projects/ipsec/tests/sys/file/ftruncate_test.c
  projects/ipsec/tests/sys/geom/class/eli/Makefile
  projects/ipsec/tests/sys/geom/class/eli/conf.sh
  projects/ipsec/tests/sys/geom/class/eli/init_a_test.sh
  projects/ipsec/tests/sys/geom/class/eli/init_test.sh
  projects/ipsec/tests/sys/geom/class/eli/integrity_copy_test.sh
  projects/ipsec/tests/sys/geom/class/eli/integrity_data_test.sh
  projects/ipsec/tests/sys/geom/class/eli/integrity_hmac_test.sh
  projects/ipsec/tests/sys/geom/class/eli/onetime_a_test.sh
  projects/ipsec/tests/sys/geom/class/eli/onetime_test.sh
  projects/ipsec/tests/sys/geom/class/gate/Makefile
  projects/ipsec/tests/sys/geom/class/nop/Makefile
  projects/ipsec/tests/sys/kern/acct/Makefile
  projects/ipsec/tests/sys/kern/execve/execve_helper.c
  projects/ipsec/tests/sys/kern/pipe/pipe_ino_test.c
  projects/ipsec/tests/sys/mac/bsdextended/ugidfw_test.c
  projects/ipsec/tests/sys/vfs/lookup_cap_dotdot.c
  projects/ipsec/tests/sys/vm/mmap_test.c
  projects/ipsec/tools/build/mk/OptionalObsoleteFiles.inc
  projects/ipsec/tools/build/options/WITHOUT_USB_GADGET_EXAMPLES
  projects/ipsec/tools/regression/sockets/unix_cmsg/Makefile
  projects/ipsec/tools/regression/sockets/unix_cmsg/unix_cmsg.c
  projects/ipsec/tools/tools/ath/athalq/ar9300_ds.c
  projects/ipsec/tools/tools/ath/athalq/ar9300_ds.h
  projects/ipsec/tools/tools/ath/athalq/main.c
  projects/ipsec/usr.bin/calendar/calendars/calendar.freebsd
  projects/ipsec/usr.bin/chat/chat.c
  projects/ipsec/usr.bin/clang/Makefile
  projects/ipsec/usr.bin/clang/llvm-ar/Makefile
  projects/ipsec/usr.bin/cmp/special.c
  projects/ipsec/usr.bin/cmp/tests/Makefile
  projects/ipsec/usr.bin/ctlstat/ctlstat.8
  projects/ipsec/usr.bin/ctlstat/ctlstat.c
  projects/ipsec/usr.bin/cut/tests/Makefile
  projects/ipsec/usr.bin/find/find.1
  projects/ipsec/usr.bin/find/ls.c
  projects/ipsec/usr.bin/fortune/fortune/fortune.6
  projects/ipsec/usr.bin/gzip/gzip.c
  projects/ipsec/usr.bin/indent/args.c
  projects/ipsec/usr.bin/indent/indent.1
  projects/ipsec/usr.bin/indent/indent.c
  projects/ipsec/usr.bin/indent/indent.h
  projects/ipsec/usr.bin/iscsictl/iscsictl.c
  projects/ipsec/usr.bin/iscsictl/iscsictl.h
  projects/ipsec/usr.bin/kdump/kdump.c
  projects/ipsec/usr.bin/mail/popen.c
  projects/ipsec/usr.bin/mail/send.c
  projects/ipsec/usr.bin/mandoc/Makefile
  projects/ipsec/usr.bin/mandoc/Makefile.depend
  projects/ipsec/usr.bin/minigzip/Makefile
  projects/ipsec/usr.bin/netstat/if.c
  projects/ipsec/usr.bin/netstat/inet.c
  projects/ipsec/usr.bin/netstat/inet6.c
  projects/ipsec/usr.bin/netstat/main.c
  projects/ipsec/usr.bin/netstat/mroute.c
  projects/ipsec/usr.bin/netstat/netstat.h
  projects/ipsec/usr.bin/netstat/route.c
  projects/ipsec/usr.bin/netstat/sctp.c
  projects/ipsec/usr.bin/netstat/unix.c
  projects/ipsec/usr.bin/patch/patch.c
  projects/ipsec/usr.bin/rpcgen/rpc_cout.c
  projects/ipsec/usr.bin/rpcgen/rpc_parse.c
  projects/ipsec/usr.bin/rpcgen/rpc_svcout.c
  projects/ipsec/usr.bin/sdiff/sdiff.c
  projects/ipsec/usr.bin/sed/tests/Makefile
  projects/ipsec/usr.bin/sort/coll.c
  projects/ipsec/usr.bin/sort/coll.h
  projects/ipsec/usr.bin/sort/radixsort.c
  projects/ipsec/usr.bin/tail/Makefile
  projects/ipsec/usr.bin/tail/reverse.c
  projects/ipsec/usr.bin/top/machine.c
  projects/ipsec/usr.bin/users/users.cc
  projects/ipsec/usr.sbin/acpi/acpidb/Makefile
  projects/ipsec/usr.sbin/acpi/acpidb/acpidb.c
  projects/ipsec/usr.sbin/amd/amd/Makefile
  projects/ipsec/usr.sbin/amd/include/config.h
  projects/ipsec/usr.sbin/bhyve/ps2mouse.c   (contents, props changed)
  projects/ipsec/usr.sbin/bhyve/virtio.h
  projects/ipsec/usr.sbin/bsnmpd/bsnmpd/Makefile
  projects/ipsec/usr.sbin/bsnmpd/modules/Makefile
  projects/ipsec/usr.sbin/bsnmpd/modules/snmp_atm/BEGEMOT-ATM-FREEBSD-MIB.txt
  projects/ipsec/usr.sbin/bsnmpd/modules/snmp_atm/Makefile
  projects/ipsec/usr.sbin/bsnmpd/modules/snmp_atm/atm_sys.c
  projects/ipsec/usr.sbin/bsnmpd/modules/snmp_bridge/BEGEMOT-BRIDGE-MIB.txt
  projects/ipsec/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_addrs.c
  projects/ipsec/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_if.c
  projects/ipsec/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_port.c
  projects/ipsec/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_sys.c
  projects/ipsec/usr.sbin/bsnmpd/modules/snmp_bridge/snmp_bridge.3
  projects/ipsec/usr.sbin/bsnmpd/modules/snmp_hast/Makefile
  projects/ipsec/usr.sbin/bsnmpd/modules/snmp_hostres/BEGEMOT-HOSTRES-MIB.txt
  projects/ipsec/usr.sbin/bsnmpd/modules/snmp_hostres/Makefile
  projects/ipsec/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_device_tbl.c
  projects/ipsec/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_fs_tbl.c
  projects/ipsec/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_partition_tbl.c
  projects/ipsec/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_scalars.c
  projects/ipsec/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_snmp.c
  projects/ipsec/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_storage_tbl.c
  projects/ipsec/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_swinstalled_tbl.c
  projects/ipsec/usr.sbin/bsnmpd/modules/snmp_hostres/snmp_hostres.3
  projects/ipsec/usr.sbin/bsnmpd/modules/snmp_mibII/Makefile
  projects/ipsec/usr.sbin/bsnmpd/modules/snmp_netgraph/BEGEMOT-NETGRAPH.txt
  projects/ipsec/usr.sbin/bsnmpd/modules/snmp_netgraph/snmp_netgraph.c
  projects/ipsec/usr.sbin/bsnmpd/modules/snmp_pf/BEGEMOT-PF-MIB.txt
  projects/ipsec/usr.sbin/bsnmpd/modules/snmp_pf/Makefile
  projects/ipsec/usr.sbin/bsnmpd/modules/snmp_pf/pf_snmp.c
  projects/ipsec/usr.sbin/bsnmpd/modules/snmp_target/Makefile
  projects/ipsec/usr.sbin/bsnmpd/modules/snmp_usm/Makefile
  projects/ipsec/usr.sbin/bsnmpd/modules/snmp_vacm/Makefile
  projects/ipsec/usr.sbin/bsnmpd/modules/snmp_wlan/wlan_snmp.c
  projects/ipsec/usr.sbin/bsnmpd/modules/snmp_wlan/wlan_snmp.h
  projects/ipsec/usr.sbin/bsnmpd/modules/snmp_wlan/wlan_sys.c
  projects/ipsec/usr.sbin/bsnmpd/tools/Makefile
  projects/ipsec/usr.sbin/bsnmpd/tools/bsnmptools/Makefile
  projects/ipsec/usr.sbin/bsnmpd/tools/bsnmptools/bsnmpget.c
  projects/ipsec/usr.sbin/bsnmpd/tools/libbsnmptools/Makefile
  projects/ipsec/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmpimport.c
  projects/ipsec/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmpmap.c
  projects/ipsec/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmptc.c
  projects/ipsec/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmptools.c
  projects/ipsec/usr.sbin/camdd/camdd.c
  projects/ipsec/usr.sbin/chown/chgrp.1
  projects/ipsec/usr.sbin/chown/chown.8
  projects/ipsec/usr.sbin/chown/chown.c
  projects/ipsec/usr.sbin/crunch/crunchgen/crunchgen.1
  projects/ipsec/usr.sbin/crunch/crunchide/exec_elf32.c
  projects/ipsec/usr.sbin/ctladm/ctladm.8
  projects/ipsec/usr.sbin/ctld/ctld.c
  projects/ipsec/usr.sbin/ctld/ctld.h
  projects/ipsec/usr.sbin/ctld/login.c
  projects/ipsec/usr.sbin/ctld/parse.y
  projects/ipsec/usr.sbin/ctld/pdu.c
  projects/ipsec/usr.sbin/ctld/uclparse.c
  projects/ipsec/usr.sbin/diskinfo/diskinfo.c
  projects/ipsec/usr.sbin/fmtree/compare.c
  projects/ipsec/usr.sbin/fmtree/create.c
  projects/ipsec/usr.sbin/fmtree/specspec.c
  projects/ipsec/usr.sbin/fstyp/Makefile
  projects/ipsec/usr.sbin/fstyp/fstyp.8
  projects/ipsec/usr.sbin/fstyp/fstyp.c
  projects/ipsec/usr.sbin/fstyp/fstyp.h
  projects/ipsec/usr.sbin/fstyp/tests/Makefile
  projects/ipsec/usr.sbin/fstyp/tests/fstyp_test.sh
  projects/ipsec/usr.sbin/inetd/Makefile
  projects/ipsec/usr.sbin/inetd/builtins.c
  projects/ipsec/usr.sbin/inetd/inetd.c
  projects/ipsec/usr.sbin/inetd/inetd.h
  projects/ipsec/usr.sbin/iscsid/iscsid.c
  projects/ipsec/usr.sbin/iscsid/iscsid.h
  projects/ipsec/usr.sbin/iscsid/login.c
  projects/ipsec/usr.sbin/iscsid/pdu.c
  projects/ipsec/usr.sbin/mfiutil/mfi_evt.c
  projects/ipsec/usr.sbin/mptutil/mpt_cam.c
  projects/ipsec/usr.sbin/ntp/doc/ntp.conf.5
  projects/ipsec/usr.sbin/pciconf/pciconf.c
  projects/ipsec/usr.sbin/pw/psdate.c
  projects/ipsec/usr.sbin/pw/pw_user.c
  projects/ipsec/usr.sbin/pw/tests/pw_usermod.sh
  projects/ipsec/usr.sbin/route6d/route6d.c
  projects/ipsec/usr.sbin/rpcbind/Makefile
  projects/ipsec/usr.sbin/rwhod/rwhod.c
  projects/ipsec/usr.sbin/sendmail/Makefile
  projects/ipsec/usr.sbin/syslogd/syslogd.c
  projects/ipsec/usr.sbin/wpa/wpa_cli/wpa_cli.8
  projects/ipsec/usr.sbin/ypserv/Makefile
Directory Properties:
  projects/ipsec/   (props changed)
  projects/ipsec/cddl/   (props changed)
  projects/ipsec/contrib/bzip2/   (props changed)
  projects/ipsec/contrib/elftoolchain/   (props changed)
  projects/ipsec/contrib/libarchive/   (props changed)
  projects/ipsec/contrib/llvm/   (props changed)
  projects/ipsec/contrib/llvm/projects/libunwind/   (props changed)
  projects/ipsec/contrib/mdocml/   (props changed)
  projects/ipsec/contrib/mtree/   (props changed)
  projects/ipsec/contrib/netbsd-tests/   (props changed)
  projects/ipsec/contrib/tcpdump/   (props changed)
  projects/ipsec/contrib/xz/   (props changed)
  projects/ipsec/crypto/openssh/   (props changed)
  projects/ipsec/gnu/lib/   (props changed)
  projects/ipsec/gnu/usr.bin/binutils/   (props changed)
  projects/ipsec/gnu/usr.bin/gdb/   (props changed)
  projects/ipsec/sys/cddl/contrib/opensolaris/   (props changed)
  projects/ipsec/sys/contrib/ck/   (props changed)
  projects/ipsec/sys/contrib/dev/acpica/   (props changed)
  projects/ipsec/sys/contrib/ipfilter/   (props changed)

Modified: projects/ipsec/COPYRIGHT
==============================================================================
--- projects/ipsec/COPYRIGHT	Tue Jan 24 22:52:09 2017	(r312726)
+++ projects/ipsec/COPYRIGHT	Tue Jan 24 23:41:20 2017	(r312727)
@@ -4,7 +4,7 @@
 The compilation of software known as FreeBSD is distributed under the
 following terms:
 
-Copyright (c) 1992-2016 The FreeBSD Project. All rights reserved.
+Copyright (c) 1992-2017 The FreeBSD Project. All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions

Modified: projects/ipsec/Makefile.inc1
==============================================================================
--- projects/ipsec/Makefile.inc1	Tue Jan 24 22:52:09 2017	(r312726)
+++ projects/ipsec/Makefile.inc1	Tue Jan 24 23:41:20 2017	(r312727)
@@ -606,7 +606,7 @@ XCFLAGS+=	${BFLAGS}
 .endif
 
 .if ${MK_LIB32} != "no" && (${TARGET_ARCH} == "amd64" || \
-    ${TARGET_ARCH} == "powerpc64")
+    ${TARGET_ARCH} == "powerpc64") || ${TARGET_ARCH:Mmips64*} != ""
 LIBCOMPAT= 32
 .include "Makefile.libcompat"
 .elif ${MK_LIBSOFT} != "no" && ${TARGET_ARCH} == "armv6"
@@ -1694,11 +1694,10 @@ _kerberos5_bootstrap_tools= \
 .endif
 
 # r283777 makewhatis(1) replaced with mandoc version which builds a database.
-.if ${MK_MANDOCDB} != "no" && ${BOOTSTRAPPING} < 1100075
+.if ${MK_MANDOCDB} != "no"
 _libopenbsd?=	lib/libopenbsd
-_makewhatis=	lib/libsqlite3 \
-		usr.bin/mandoc
-${_bt}-usr.bin/mandoc: ${_bt}-lib/libopenbsd ${_bt}-lib/libsqlite3
+_makewhatis=	usr.bin/mandoc
+${_bt}-usr.bin/mandoc: ${_bt}-lib/libopenbsd
 .endif
 
 bootstrap-tools: .PHONY
@@ -1867,6 +1866,7 @@ cross-tools: .MAKE .PHONY
 
 NXBDESTDIR=	${OBJTREE}/nxb-bin
 NXBENV=		MAKEOBJDIRPREFIX=${OBJTREE}/nxb \
+		TOOLS_PREFIX= \
 		INSTALL="sh ${.CURDIR}/tools/install.sh" \
 		PATH=${PATH}:${OBJTREE}/gperf_for_gcc/usr/bin
 NXBMAKE=	${NXBENV} ${MAKE} \
@@ -2155,7 +2155,7 @@ secure/lib/libssh__L: lib/libz__L secure
 .if ${MK_LDNS} != "no"
 secure/lib/libssh__L: lib/libldns__L
 .endif
-.if ${MK_KERBEROS_SUPPORT} != "no"
+.if ${MK_GSSAPI} != "no" && ${MK_KERBEROS_SUPPORT} != "no"
 secure/lib/libssh__L: lib/libgssapi__L kerberos5/lib/libkrb5__L \
     kerberos5/lib/libhx509__L kerberos5/lib/libasn1__L lib/libcom_err__L \
     lib/libmd__L kerberos5/lib/libroken__L

Modified: projects/ipsec/Makefile.libcompat
==============================================================================
--- projects/ipsec/Makefile.libcompat	Tue Jan 24 22:52:09 2017	(r312726)
+++ projects/ipsec/Makefile.libcompat	Tue Jan 24 23:41:20 2017	(r312727)
@@ -4,8 +4,7 @@
 __<${_this:T}>__:
 
 # Makefile for the compatibility libraries.
-# - 32-bit compat libraries on PowerPC and AMD64.
-#   could also be for mips, but that doesn't work today.
+# - 32-bit compat libraries on MIPS, PowerPC, and AMD64.
 
 # -------------------------------------------------------------------
 # 32 bit world
@@ -15,6 +14,7 @@ LIB32CPUFLAGS=	-march=i686 -mmmx -msse -
 .else
 LIB32CPUFLAGS=	-march=${TARGET_CPUTYPE}
 .endif
+LIB32CPUFLAGS+=	-m32
 LIB32WMAKEENV=	MACHINE=i386 MACHINE_ARCH=i386 \
 		MACHINE_CPU="i686 mmx sse sse2"
 LIB32WMAKEFLAGS=	\
@@ -28,14 +28,30 @@ LIB32CPUFLAGS=	-mcpu=powerpc
 .else
 LIB32CPUFLAGS=	-mcpu=${TARGET_CPUTYPE}
 .endif
+LIB32CPUFLAGS+=	-m32
 LIB32WMAKEENV=	MACHINE=powerpc MACHINE_ARCH=powerpc
 LIB32WMAKEFLAGS=	\
 		LD="${XLD} -m elf32ppc_fbsd" \
 		OBJCOPY="${XOBJCOPY}"
+
+.elif ${TARGET_ARCH:Mmips64*} != ""
+.if empty(TARGET_CPUTYPE)
+LIB32CPUFLAGS=	-march=mips3
+.else
+LIB32CPUFLAGS=	-march=${TARGET_CPUTYPE}
+.endif
+LIB32CPUFLAGS+= -mabi=32
+LIB32WMAKEENV=	MACHINE=mips MACHINE_ARCH=mips
+.if ${TARGET_ARCH:Mmips64el*} != ""
+LIB32WMAKEFLAGS= LD="${XLD} -m elf32ltsmip_fbsd"
+.else
+LIB32WMAKEFLAGS= LD="${XLD} -m elf32btsmip_fbsd"
+.endif
+LIB32WMAKEFLAGS+= OBJCOPY="${XOBJCOPY}"
 .endif
 
 
-LIB32CFLAGS=	-m32 -DCOMPAT_32BIT
+LIB32CFLAGS=	-DCOMPAT_32BIT
 LIB32DTRACE=	${DTRACE} -32
 LIB32WMAKEFLAGS+=	-DCOMPAT_32BIT
 

Modified: projects/ipsec/ObsoleteFiles.inc
==============================================================================
--- projects/ipsec/ObsoleteFiles.inc	Tue Jan 24 22:52:09 2017	(r312726)
+++ projects/ipsec/ObsoleteFiles.inc	Tue Jan 24 23:41:20 2017	(r312727)
@@ -38,6 +38,24 @@
 #   xargs -n1 | sort | uniq -d;
 # done
 
+# 20170110: Four files from ggate tests consolidated into one
+OLD_FILES+=usr/tests/sys/geom/class/gate/1_test
+OLD_FILES+=usr/tests/sys/geom/class/gate/2_test
+OLD_FILES+=usr/tests/sys/geom/class/gate/3_test
+OLD_FILES+=usr/tests/sys/geom/class/gate/conf.sh
+# 20170103: libbsnmptools.so made into an INTERNALLIB
+OLD_FILES+=usr/lib/libbsnmptools.a
+OLD_FILES+=usr/lib/libbsnmptools_p.a
+OLD_LIBS+=usr/lib/libbsnmptools.so.0
+OLD_LIBS+=usr/lib/libbsnmptools.so
+# 20170102: sysdecode_getfsstat_flags() renamed to sysdecode_getfsstat_mode()
+OLD_FILES+=usr/share/man/man3/sysdecode_getfsstat_flags.3.gz
+# 20161230: libarchive ACL pax test renamed to test_acl_pax_posix1e.tar.uu
+OLD_FILES+=usr/tests/lib/libarchive/test_acl_pax.tar.uu
+# 20161229: Three files from gnop tests consolidated into one
+OLD_FILES+=usr/tests/sys/geom/class/nop/1_test
+OLD_FILES+=usr/tests/sys/geom/class/nop/2_test
+OLD_FILES+=usr/tests/sys/geom/class/nop/conf.sh
 # 20161217: new clang import which bumps version from 3.9.0 to 3.9.1.
 OLD_FILES+=usr/lib/clang/3.9.0/include/sanitizer/allocator_interface.h
 OLD_FILES+=usr/lib/clang/3.9.0/include/sanitizer/asan_interface.h
@@ -2247,7 +2265,6 @@ OLD_LIBS+=usr/lib32/private/libyaml.so.1
 OLD_FILES+=usr/lib32/private/libyaml_p.a
 # 20140216: new clang import which bumps version from 3.3 to 3.4.
 OLD_FILES+=usr/bin/llvm-prof
-OLD_FILES+=usr/bin/llvm-ranlib
 OLD_FILES+=usr/include/clang/3.3/__wmmintrin_aes.h
 OLD_FILES+=usr/include/clang/3.3/__wmmintrin_pclmul.h
 OLD_FILES+=usr/include/clang/3.3/altivec.h

Modified: projects/ipsec/UPDATING
==============================================================================
--- projects/ipsec/UPDATING	Tue Jan 24 22:52:09 2017	(r312726)
+++ projects/ipsec/UPDATING	Tue Jan 24 23:41:20 2017	(r312727)
@@ -51,6 +51,15 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 12
 
 ****************************** SPECIAL WARNING: ******************************
 
+20170112:
+	The EM_MULTIQUEUE kernel configuration option is deprecated now that
+	the em(4) driver conforms to iflib specifications.
+
+20170109:
+	The igb(4), em(4) and lem(4) ethernet drivers are now implemented via
+	IFLIB.  If you have a custom kernel configuration that excludes em(4)
+	but you use igb(4), you need to re-add em(4) to your custom configuration.
+
 20161217:
 	Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.9.1.
 	Please see the 20141231 entry below for information about prerequisites

Modified: projects/ipsec/bin/chmod/chmod.1
==============================================================================
--- projects/ipsec/bin/chmod/chmod.1	Tue Jan 24 22:52:09 2017	(r312726)
+++ projects/ipsec/bin/chmod/chmod.1	Tue Jan 24 23:41:20 2017	(r312727)
@@ -32,7 +32,7 @@
 .\"	@(#)chmod.1	8.4 (Berkeley) 3/31/94
 .\" $FreeBSD$
 .\"
-.Dd April 20, 2015
+.Dd January 7, 2017
 .Dt CHMOD 1
 .Os
 .Sh NAME
@@ -106,6 +106,16 @@ option is specified.
 In addition, these options override each other and the
 command's actions are determined by the last one specified.
 .Pp
+If
+.Nm
+receives a
+.Dv SIGINFO
+signal (see the
+.Cm status
+argument for
+.Xr stty 1 ) ,
+then the current filename as well as the old and new modes are displayed.
+.Pp
 Only the owner of a file or the super-user is permitted to change
 the mode of a file.
 .Sh EXIT STATUS

Modified: projects/ipsec/bin/chmod/chmod.c
==============================================================================
--- projects/ipsec/bin/chmod/chmod.c	Tue Jan 24 22:52:09 2017	(r312726)
+++ projects/ipsec/bin/chmod/chmod.c	Tue Jan 24 23:41:20 2017	(r312727)
@@ -49,14 +49,24 @@ __FBSDID("$FreeBSD$");
 #include <fcntl.h>
 #include <fts.h>
 #include <limits.h>
+#include <signal.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
 
+static volatile sig_atomic_t siginfo;
+
 static void usage(void);
 static int may_have_nfs4acl(const FTSENT *ent, int hflag);
 
+static void
+siginfo_handler(int sig __unused)
+{
+
+	siginfo = 1;
+}
+
 int
 main(int argc, char *argv[])
 {
@@ -125,6 +135,8 @@ done:	argv += optind;
 	if (argc < 2)
 		usage();
 
+	(void)signal(SIGINFO, siginfo_handler);
+
 	if (Rflag) {
 		if (hflag)
 			errx(1, "the -R and -h options may not be "
@@ -192,10 +204,10 @@ done:	argv += optind;
 		    && !fflag) {
 			warn("%s", p->fts_path);
 			rval = 1;
-		} else if (vflag) {
+		} else if (vflag || siginfo) {
 			(void)printf("%s", p->fts_path);
 
-			if (vflag > 1) {
+			if (vflag > 1 || siginfo) {
 				char m1[12], m2[12];
 
 				strmode(p->fts_statp->st_mode, m1);
@@ -207,6 +219,7 @@ done:	argv += optind;
 				    newmode, m2);
 			}
 			(void)printf("\n");
+			siginfo = 0;
 		}
 	}
 	if (errno)

Modified: projects/ipsec/bin/pax/gen_subs.c
==============================================================================
--- projects/ipsec/bin/pax/gen_subs.c	Tue Jan 24 22:52:09 2017	(r312726)
+++ projects/ipsec/bin/pax/gen_subs.c	Tue Jan 24 23:41:20 2017	(r312727)
@@ -109,7 +109,8 @@ ls_list(ARCHD *arcn, time_t now, FILE *f
 	 */
 	if (strftime(f_date,DATELEN,timefrmt,localtime(&(sbp->st_mtime))) == 0)
 		f_date[0] = '\0';
-	(void)fprintf(fp, "%s%2u %-12s %-12s ", f_mode, sbp->st_nlink,
+	(void)fprintf(fp, "%s%2ju %-12s %-12s ", f_mode,
+		(uintmax_t)sbp->st_nlink,
 		name_uid(sbp->st_uid, 1), name_gid(sbp->st_gid, 1));
 
 	/*

Modified: projects/ipsec/cddl/lib/libdtrace/ip.d
==============================================================================
--- projects/ipsec/cddl/lib/libdtrace/ip.d	Tue Jan 24 22:52:09 2017	(r312726)
+++ projects/ipsec/cddl/lib/libdtrace/ip.d	Tue Jan 24 23:41:20 2017	(r312727)
@@ -255,8 +255,8 @@ translator ipv4info_t < struct ip *p > {
 	ipv4_tos =	p == NULL ? 0 : p->ip_tos;
 	ipv4_length =	p == NULL ? 0 : ntohs(p->ip_len);
 	ipv4_ident =	p == NULL ? 0 : ntohs(p->ip_id);
-	ipv4_flags =	p == NULL ? 0 : (p->ip_off & 0xe000);
-	ipv4_offset =	p == NULL ? 0 : p->ip_off;
+	ipv4_flags =	p == NULL ? 0 : (ntohs(p->ip_off) & 0xe000) >> 8;
+	ipv4_offset =	p == NULL ? 0 : ntohs(p->ip_off) & 0x1fff;
 	ipv4_ttl =	p == NULL ? 0 : p->ip_ttl;
 	ipv4_protocol =	p == NULL ? 0 : p->ip_p;
 	ipv4_protostr = p == NULL ? "<null>" : protocols[p->ip_p];

Modified: projects/ipsec/cddl/usr.sbin/zfsd/case_file.cc
==============================================================================
--- projects/ipsec/cddl/usr.sbin/zfsd/case_file.cc	Tue Jan 24 22:52:09 2017	(r312726)
+++ projects/ipsec/cddl/usr.sbin/zfsd/case_file.cc	Tue Jan 24 23:41:20 2017	(r312727)
@@ -656,8 +656,11 @@ CaseFile::DeSerializeFile(const char *fi
 		uint64_t vdevGUID;
 		nvlist_t *vdevConf;
 
-		sscanf(fileName, "pool_%" PRIu64 "_vdev_%" PRIu64 ".case",
-		       &poolGUID, &vdevGUID);
+		if (sscanf(fileName, "pool_%" PRIu64 "_vdev_%" PRIu64 ".case",
+		       &poolGUID, &vdevGUID) != 2) {
+			throw ZfsdException("CaseFile::DeSerialize: "
+			    "Unintelligible CaseFile filename %s.\n", fileName);
+		}
 		existingCaseFile = Find(Guid(poolGUID), Guid(vdevGUID));
 		if (existingCaseFile != NULL) {
 			/*

Modified: projects/ipsec/contrib/bsnmp/gensnmpdef/gensnmpdef.1
==============================================================================
--- projects/ipsec/contrib/bsnmp/gensnmpdef/gensnmpdef.1	Tue Jan 24 22:52:09 2017	(r312726)
+++ projects/ipsec/contrib/bsnmp/gensnmpdef/gensnmpdef.1	Tue Jan 24 23:41:20 2017	(r312727)
@@ -4,7 +4,7 @@
 .\"	All rights reserved.
 .\"
 .\" Author: Harti Brandt <harti@FreeBSD.org>
-.\" 
+.\"
 .\" Redistribution and use in source and binary forms, with or without
 .\" modification, are permitted provided that the following conditions
 .\" are met:
@@ -13,7 +13,7 @@
 .\" 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 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

Modified: projects/ipsec/contrib/bsnmp/gensnmpdef/gensnmpdef.c
==============================================================================
--- projects/ipsec/contrib/bsnmp/gensnmpdef/gensnmpdef.c	Tue Jan 24 22:52:09 2017	(r312726)
+++ projects/ipsec/contrib/bsnmp/gensnmpdef/gensnmpdef.c	Tue Jan 24 23:41:20 2017	(r312727)
@@ -1,10 +1,10 @@
-/* 
+/*
  * Copyright (C) 2004-2006
  * 	Hartmut Brandt.
  * 	All rights reserved.
- * 
+ *
  * Author: Harti Brandt <harti@freebsd.org>
- * 
+ *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
  * are met:
@@ -13,7 +13,7 @@
  * 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 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
@@ -126,9 +126,11 @@ open_node(const SmiNode *n, u_int level,
 
 	while (level < n->oidlen - 1) {
 		if (level >= cut) {
+			n1 = smiGetNodeByOID(level + 1, n->oid);
+			if (n1 == NULL)
+				continue;
 			pindent(level);
 			printf("(%u", n->oid[level]);
-			n1 = smiGetNodeByOID(level + 1, n->oid);
 			printf(" ");
 			print_name(n1);
 			printf("\n");
@@ -233,7 +235,7 @@ print_scalar(SmiNode *n, u_int level)
 	printf(" op_%s", p->name);
 
 	print_access(n->access);
-	
+
 	printf(")\n");
 }
 
@@ -397,12 +399,11 @@ static void
 save_typdef(char *name)
 {
 	struct tdef *t;
-	t = malloc(sizeof(struct tdef));
 
+	t = calloc(1, sizeof(struct tdef));
 	if (t == NULL)
 		err(1, NULL);
 
-	memset(t, 0 , sizeof(struct tdef));
 	t->name = name;
 	SLIST_INSERT_HEAD(&tdefs, t, link);
 }
@@ -422,7 +423,7 @@ static void
 print_enum_typedef(SmiType *t)
 {
 	SmiNamedNumber *nnum;
-	
+
 	for (nnum = smiGetFirstNamedNumber(t); nnum != NULL;
 	    nnum = smiGetNextNamedNumber(nnum)) {
 		printf("\t%ld %s\n" , nnum->value.value.integer32, nnum->name);
@@ -434,10 +435,10 @@ print_stype(SmiNode *n)
 {
 	SmiType *type;
 	struct tdef *t = NULL;
-	
+
 	type = smiGetNodeType(n);
 	assert(type != NULL);
-	
+
 	if (type->basetype == SMI_BASETYPE_ENUM) {
 		if (do_typedef == 'e' && type->name != NULL) {
 			SLIST_FOREACH(t, &tdefs, link) {
@@ -450,7 +451,7 @@ print_stype(SmiNode *n)
 			printf("typedef %sType ENUM (\n", n->name);
 		else
 			return;
-		
+
 		print_enum_typedef(type);
 		printf(")\n\n");
 
@@ -476,7 +477,7 @@ static void
 print_typdefs(SmiNode *n)
 {
 	SmiNode *p;
-	
+
 	p = n;
 	n = smiGetFirstChildNode(n);
 	while (n != NULL) {
@@ -559,7 +560,11 @@ main(int argc, char *argv[])
 	level = 0;
 	last = NULL;
 	for (opt = 0; opt < argc; opt++) {
+		if (mods[opt] == NULL) /* smiGetModule failed above */
+			continue;
 		n = smiGetFirstNode(mods[opt], SMI_NODEKIND_ANY);
+		if (n == NULL)
+			continue;
 		for (;;) {
 			if (do_typedef == 0) {
 				level = open_node(n, level, &last);

Modified: projects/ipsec/contrib/bsnmp/gensnmptree/gensnmptree.1
==============================================================================
--- projects/ipsec/contrib/bsnmp/gensnmptree/gensnmptree.1	Tue Jan 24 22:52:09 2017	(r312726)
+++ projects/ipsec/contrib/bsnmp/gensnmptree/gensnmptree.1	Tue Jan 24 23:41:20 2017	(r312727)
@@ -7,7 +7,7 @@
 .\"	All rights reserved.
 .\"
 .\" Author: Harti Brandt <harti@FreeBSD.org>
-.\" 
+.\"
 .\" Redistribution and use in source and binary forms, with or without
 .\" modification, are permitted provided that the following conditions
 .\" are met:
@@ -16,7 +16,7 @@
 .\" 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 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

Modified: projects/ipsec/contrib/bsnmp/gensnmptree/gensnmptree.c
==============================================================================
--- projects/ipsec/contrib/bsnmp/gensnmptree/gensnmptree.c	Tue Jan 24 22:52:09 2017	(r312726)
+++ projects/ipsec/contrib/bsnmp/gensnmptree/gensnmptree.c	Tue Jan 24 23:41:20 2017	(r312727)
@@ -8,7 +8,7 @@
  *	All rights reserved.
  *
  * Author: Harti Brandt <harti@freebsd.org>
- * 
+ *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
  * are met:
@@ -17,7 +17,7 @@
  * 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 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
@@ -738,7 +738,7 @@ parse_type(enum tok *tok, struct type *t
 				e->value = -(long)val;
 			} else
 				e->value = val;
-			
+
 			if (*tok != TOK_NUM)
 				report("need value for ENUM/BITS");
 			if (gettoken() != TOK_STR)

Modified: projects/ipsec/contrib/bsnmp/lib/asn1.3
==============================================================================
--- projects/ipsec/contrib/bsnmp/lib/asn1.3	Tue Jan 24 22:52:09 2017	(r312726)
+++ projects/ipsec/contrib/bsnmp/lib/asn1.3	Tue Jan 24 23:41:20 2017	(r312727)
@@ -5,9 +5,9 @@
 .\" Copyright (c) 2001-2003
 .\"	Fraunhofer Institute for Open Communication Systems (FhG Fokus).
 .\"	All rights reserved.
-.\" 
+.\"
 .\" Author: Harti Brandt <harti@FreeBSD.org>
-.\" 
+.\"
 .\" Redistribution and use in source and binary forms, with or without
 .\" modification, are permitted provided that the following conditions
 .\" are met:
@@ -16,7 +16,7 @@
 .\" 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 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

Modified: projects/ipsec/contrib/bsnmp/lib/asn1.c
==============================================================================
--- projects/ipsec/contrib/bsnmp/lib/asn1.c	Tue Jan 24 22:52:09 2017	(r312726)
+++ projects/ipsec/contrib/bsnmp/lib/asn1.c	Tue Jan 24 23:41:20 2017	(r312727)
@@ -4,7 +4,7 @@
  *	All rights reserved.
  *
  * Author: Harti Brandt <harti@freebsd.org>
- * 
+ *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
  * are met:
@@ -13,7 +13,7 @@
  * 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 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
@@ -285,7 +285,7 @@ asn_put_real_integer(struct asn_buf *b, 
 	enum asn_err ret;
 
 	if (ival < 0) {
-		/* this may fail if |INT64_MIN| > |INT64_MAX| and 
+		/* this may fail if |INT64_MIN| > |INT64_MAX| and
 		 * the value is between * INT64_MIN <= ival < -(INT64_MAX+1) */
 		val = (uint64_t)-(ival + 1);
 		neg = 1;
@@ -890,7 +890,7 @@ asn_slice_oid(struct asn_oid *dest, cons
 	memcpy(dest->subs, &src->subs[from], dest->len * sizeof(dest->subs[0]));
 }
 
-/* 
+/*
  * Append from to to
  */
 void

Modified: projects/ipsec/contrib/bsnmp/lib/asn1.h
==============================================================================
--- projects/ipsec/contrib/bsnmp/lib/asn1.h	Tue Jan 24 22:52:09 2017	(r312726)
+++ projects/ipsec/contrib/bsnmp/lib/asn1.h	Tue Jan 24 23:41:20 2017	(r312727)
@@ -4,7 +4,7 @@
  *	All rights reserved.
  *
  * Author: Harti Brandt <harti@freebsd.org>
- * 
+ *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
  * are met:
@@ -13,7 +13,7 @@
  * 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 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

Modified: projects/ipsec/contrib/bsnmp/lib/bsnmpagent.3
==============================================================================
--- projects/ipsec/contrib/bsnmp/lib/bsnmpagent.3	Tue Jan 24 22:52:09 2017	(r312726)
+++ projects/ipsec/contrib/bsnmp/lib/bsnmpagent.3	Tue Jan 24 23:41:20 2017	(r312727)
@@ -7,7 +7,7 @@
 .\"	All rights reserved.
 .\"
 .\" Author: Harti Brandt <harti@FreeBSD.org>
-.\" 
+.\"
 .\" Redistribution and use in source and binary forms, with or without
 .\" modification, are permitted provided that the following conditions
 .\" are met:
@@ -16,7 +16,7 @@
 .\" 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 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

Modified: projects/ipsec/contrib/bsnmp/lib/bsnmpclient.3
==============================================================================
--- projects/ipsec/contrib/bsnmp/lib/bsnmpclient.3	Tue Jan 24 22:52:09 2017	(r312726)
+++ projects/ipsec/contrib/bsnmp/lib/bsnmpclient.3	Tue Jan 24 23:41:20 2017	(r312727)
@@ -7,7 +7,7 @@
 .\"	All rights reserved.
 .\"
 .\" Author: Harti Brandt <harti@FreeBSD.org>
-.\" 
+.\"
 .\" Redistribution and use in source and binary forms, with or without
 .\" modification, are permitted provided that the following conditions
 .\" are met:
@@ -16,7 +16,7 @@
 .\" 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 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
@@ -31,11 +31,14 @@
 .\"
 .\" $Begemot: bsnmp/lib/bsnmpclient.3,v 1.12 2005/10/04 08:46:50 brandt_h Exp $
 .\"
-.Dd September 9, 2010
+.Dd December 31, 2016
 .Dt BSNMPCLIENT 3
 .Os
 .Sh NAME
 .Nm snmp_client ,
+.Nm snmp_client_init ,
+.Nm snmp_client_set_host ,
+.Nm snmp_client_set_port ,
 .Nm snmp_send_cb_f ,
 .Nm snmp_timeout_cb_f ,
 .Nm snmp_timeout_start_f ,
@@ -208,13 +211,13 @@ The community name to be used for SET re
 The default is
 .Sq private .
 .It Va identifier
-The message indentifier value to be used with SNMPv3 PDUs. Incremented with
+The message identifier value to be used with SNMPv3 PDUs. Incremented with
 each transmitted PDU.
 .It Va security_model
 The security model to be used with SNMPv3 PDUs. Currently only User-Based
 Security model specified by RFC 3414 (value 3) is supported.
 .It Va engine
-The authorative SNMP engine parameters to be used with SNMPv3 PDUs.
+The authoritive SNMP engine parameters to be used with SNMPv3 PDUs.
 .It Va user
 The USM SNMP user credentials to be used with SNMPv3 PDUs.
 .It Va clen
@@ -413,7 +416,7 @@ response is received.
 When a response is received or the retransmission count
 is exceeded the callback
 .Fa func
-is called with the orignal request PDU, the response PDU and the user argument
+is called with the original request PDU, the response PDU and the user argument
 .Fa uarg .
 If the retransmit count is exceeded,
 .Fa func
@@ -648,7 +651,7 @@ If a response was received 0 is returned
 .Pp
 The function
 .Fn snmp_discover_engine
-is used to discover the authorative snmpEngineId of a remote SNMPv3 agent.
+is used to discover the authoritative snmpEngineId of a remote SNMPv3 agent.
 A request PDU with empty USM user name is sent and the client's engine
 parameters are set according to the snmpEngine parameters received in the
 response PDU.
@@ -656,10 +659,10 @@ If the client is configured to use authe
 snmpEngineBoots and/or snmpEngineTime in the response had zero values, an
 additional request (possibly encrypted) with the appropriate user credentials
 is sent to fetch the missing values.
-Note, that the function blocks until the discovery proccess is completed.
+Note, that the function blocks until the discovery process is completed.
 If no response could be received after all timeouts and retries, or the
 response contained errors the function returns -1.
-If the discovery proccess was completed 0 is returned.
+If the discovery process was completed 0 is returned.
 .Pp
 The function
 .Fn snmp_parse_server

Modified: projects/ipsec/contrib/bsnmp/lib/bsnmplib.3
==============================================================================
--- projects/ipsec/contrib/bsnmp/lib/bsnmplib.3	Tue Jan 24 22:52:09 2017	(r312726)
+++ projects/ipsec/contrib/bsnmp/lib/bsnmplib.3	Tue Jan 24 23:41:20 2017	(r312727)
@@ -13,7 +13,7 @@
 .\"	All rights reserved.
 .\"
 .\" Author: Harti Brandt <harti@FreeBSD.org>
-.\" 
+.\"
 .\" Redistribution and use in source and binary forms, with or without
 .\" modification, are permitted provided that the following conditions
 .\" are met:
@@ -22,7 +22,7 @@
 .\" 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 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
@@ -37,7 +37,7 @@
 .\"
 .\" $Begemot: bsnmp/lib/bsnmplib.3,v 1.9 2005/10/04 08:46:51 brandt_h Exp $
 .\"
-.Dd December 19, 2010
+.Dd December 31, 2016
 .Dt BSNMPLIB 3
 .Os
 .Sh NAME
@@ -381,7 +381,7 @@ The function
 verifies the authentication parameter contained in the PDU (if present) and
 if the PDU is encrypted, decrypts the PDU contents pointed to by
 .Fa buf .
-If successfull, a plain text scoped PDU is stored in the buffer.
+If successful, a plain text scoped PDU is stored in the buffer.
 .Pp
 The function
 .Fn snmp_pdu_init_secparams
@@ -477,7 +477,7 @@ The requested securityLevel contained in
 The PDU authentication parameter received in the PDU did not match the
 calculated message digest.
 .It Bq Er SNMP_CODE_EDECRYPT
-Error occured while trying to decrypt the PDU.
+Error occurred while trying to decrypt the PDU.
 .El
 .Pp
 .Fn snmp_pdu_encode

Modified: projects/ipsec/contrib/bsnmp/lib/snmp.c
==============================================================================
--- projects/ipsec/contrib/bsnmp/lib/snmp.c	Tue Jan 24 22:52:09 2017	(r312726)
+++ projects/ipsec/contrib/bsnmp/lib/snmp.c	Tue Jan 24 23:41:20 2017	(r312727)
@@ -4,7 +4,7 @@
  *	All rights reserved.
  *
  * Author: Harti Brandt <harti@freebsd.org>
- * 
+ *
  * Copyright (c) 2010 The FreeBSD Foundation
  * All rights reserved.
  *
@@ -19,7 +19,7 @@
  * 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 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
@@ -357,8 +357,8 @@ static enum snmp_code
 pdu_encode_secparams(struct asn_buf *b, struct snmp_pdu *pdu)
 {
 	u_char buf[256], *sptr;
-        struct asn_buf tb;
-        size_t auth_off, moved = 0;
+	struct asn_buf tb;
+	size_t auth_off, moved = 0;
 
 	auth_off = 0;
 	memset(buf, 0, 256);
@@ -684,7 +684,7 @@ snmp_pdu_snoop(const struct asn_buf *b0)
 	struct asn_buf b = *b0;
 
 	/* <0x10|0x20> <len> <data...> */
-	
+
 	if (b.asn_len == 0)
 		return (0);
 	if (b.asn_cptr[0] != (ASN_TYPE_SEQUENCE | ASN_TYPE_CONSTRUCTED)) {
@@ -759,7 +759,7 @@ snmp_pdu_encode_header(struct asn_buf *b
 		if (asn_put_temp_header(b, (ASN_TYPE_SEQUENCE |
 		    ASN_TYPE_CONSTRUCTED), &v3_hdr_ptr) != ASN_ERR_OK)
 			return (SNMP_CODE_FAILED);
-	
+
 		if (asn_put_integer(b, pdu->identifier) != ASN_ERR_OK)
 			return (SNMP_CODE_FAILED);
 
@@ -1154,8 +1154,11 @@ snmp_pdu_dump(const struct snmp_pdu *pdu
 void
 snmp_value_free(struct snmp_value *value)
 {
-	if (value->syntax == SNMP_SYNTAX_OCTETSTRING)
+
+	if (value->syntax == SNMP_SYNTAX_OCTETSTRING) {
 		free(value->v.octetstring.octets);
+		value->v.octetstring.octets = NULL;
+	}
 	value->syntax = SNMP_SYNTAX_NULL;
 }
 
@@ -1216,6 +1219,7 @@ snmp_pdu_free(struct snmp_pdu *pdu)
 
 	for (i = 0; i < pdu->nbindings; i++)
 		snmp_value_free(&pdu->bindings[i]);
+	pdu->nbindings = 0;
 }
 
 /*

Modified: projects/ipsec/contrib/bsnmp/lib/snmp.h
==============================================================================
--- projects/ipsec/contrib/bsnmp/lib/snmp.h	Tue Jan 24 22:52:09 2017	(r312726)
+++ projects/ipsec/contrib/bsnmp/lib/snmp.h	Tue Jan 24 23:41:20 2017	(r312727)
@@ -4,14 +4,14 @@
  *	All rights reserved.
  *
  * Author: Harti Brandt <harti@freebsd.org>
- * 
+ *
  * Copyright (c) 2010 The FreeBSD Foundation
  * All rights reserved.
  *
  * Portions of this software were developed by Shteryana Sotirova Shopova
  * under sponsorship from the FreeBSD Foundation.
  *
- * 
+ *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
  * are met:
@@ -20,7 +20,7 @@
  * 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 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

Modified: projects/ipsec/contrib/bsnmp/lib/snmpagent.c
==============================================================================
--- projects/ipsec/contrib/bsnmp/lib/snmpagent.c	Tue Jan 24 22:52:09 2017	(r312726)
+++ projects/ipsec/contrib/bsnmp/lib/snmpagent.c	Tue Jan 24 23:41:20 2017	(r312727)
@@ -4,7 +4,7 @@
  *	All rights reserved.
  *
  * Author: Harti Brandt <harti@freebsd.org>
- * 
+ *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
  * are met:
@@ -13,7 +13,7 @@
  * 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 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
@@ -518,7 +518,7 @@ snmp_getbulk(struct snmp_pdu *pdu, struc
 				/* PDU is full */
 				goto done;
 
-			if (cnt == 0) 
+			if (cnt == 0)
 				result = do_getnext(&context, &pdu->bindings[i],
 				    &resp->bindings[resp->nbindings], pdu);
 			else
@@ -692,7 +692,7 @@ snmp_set(struct snmp_pdu *pdu, struct as
 	if (snmp_pdu_encode_header(resp_b, resp))
 		return (SNMP_RET_IGN);
 
-	/* 
+	/*
 	 * 1. Find all nodes, check that they are writeable and
 	 *    that the syntax is ok, copy over the binding to the response.
 	 */
@@ -970,7 +970,7 @@ snmp_dep_lookup(struct snmp_context *ctx
 /*
  * Make an error response from a PDU. We do this without decoding the
  * variable bindings. This means we can sent the junk back to a caller
- * that has sent us junk in the first place. 
+ * that has sent us junk in the first place.
  */
 enum snmp_ret
 snmp_make_errresp(const struct snmp_pdu *pdu, struct asn_buf *pdu_b,

Modified: projects/ipsec/contrib/bsnmp/lib/snmpagent.h
==============================================================================
--- projects/ipsec/contrib/bsnmp/lib/snmpagent.h	Tue Jan 24 22:52:09 2017	(r312726)
+++ projects/ipsec/contrib/bsnmp/lib/snmpagent.h	Tue Jan 24 23:41:20 2017	(r312727)
@@ -4,7 +4,7 @@
  *	All rights reserved.
  *
  * Author: Harti Brandt <harti@freebsd.org>
- * 
+ *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
  * are met:
@@ -13,7 +13,7 @@
  * 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 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

Modified: projects/ipsec/contrib/bsnmp/lib/snmpclient.c
==============================================================================
--- projects/ipsec/contrib/bsnmp/lib/snmpclient.c	Tue Jan 24 22:52:09 2017	(r312726)
+++ projects/ipsec/contrib/bsnmp/lib/snmpclient.c	Tue Jan 24 23:41:20 2017	(r312727)
@@ -68,7 +68,7 @@
 struct snmp_client snmp_client;
 
 /* List of all outstanding requests */
-struct sent_pdu {	
+struct sent_pdu {
 	int		reqid;
 	struct snmp_pdu	*pdu;
 	struct timeval	time;
@@ -510,7 +510,7 @@ table_check_response(struct tabwork *wor
 				table_free(work, 1);
 				return (-2);
 			}
-					
+
 			continue;
 		}
 		if (!asn_is_suboid(&work->descr->table, &b->var) ||
@@ -728,8 +728,11 @@ snmp_table_fetch_async(const struct snmp
 	work->last_change = 0;
 	table_init_pdu(descr, &work->pdu);
 
-	if (snmp_pdu_send(&work->pdu, table_cb, work) == -1)
+	if (snmp_pdu_send(&work->pdu, table_cb, work) == -1) {
+		free(work);
+		work = NULL;
 		return (-1);
+	}
 	return (0);
 }
 
@@ -754,7 +757,7 @@ snmp_oid_append(struct asn_oid *oid, con
 	ret = 0;
 	while (*fmt != '\0') {
 		switch (*fmt++) {
-		  case 'i': 
+		  case 'i':
 			/* just an integer more */
 			if (oid->len + 1 > ASN_MAXOIDLEN) {
 				warnx("%s: OID too long for integer", __func__);
@@ -804,7 +807,7 @@ snmp_oid_append(struct asn_oid *oid, con
 			break;
 
 		  case 'b':
-			/* append `size` characters */ 
+			/* append `size` characters */
 			str = (const u_char *)va_arg(va, const char *);
 			if (oid->len + size > ASN_MAXOIDLEN) {
 				warnx("%s: OID too long for string", __func__);
@@ -852,7 +855,7 @@ snmp_client_init(struct snmp_client *c)
 
 	strcpy(c->read_community, "public");
 	strcpy(c->write_community, "private");
-	
+
 	c->security_model = SNMP_SECMODEL_USM;
 	strcpy(c->cname, "");
 
@@ -863,7 +866,7 @@ snmp_client_init(struct snmp_client *c)
 	c->txbuflen = c->rxbuflen = 10000;
 
 	c->fd = -1;
-	
+
 	c->max_reqid = INT32_MAX;
 	c->min_reqid = 0;
 	c->next_reqid = 0;
@@ -1227,11 +1230,11 @@ snmp_next_reqid(struct snmp_client * c)
 static int32_t
 snmp_send_packet(struct snmp_pdu * pdu)
 {
-        u_char *buf;
-        struct asn_buf b;
-        ssize_t ret;
+	u_char *buf;
+	struct asn_buf b;
+	ssize_t ret;
 
-	if ((buf = malloc(snmp_client.txbuflen)) == NULL) {
+	if ((buf = calloc(1, snmp_client.txbuflen)) == NULL) {
 		seterr(&snmp_client, "%s", strerror(errno));
 		return (-1);
 	}
@@ -1256,7 +1259,7 @@ snmp_send_packet(struct snmp_pdu * pdu)
 	}
 	free(buf);
 
-	return pdu->request_id;
+	return (pdu->request_id);
 }
 
 /*
@@ -1352,7 +1355,7 @@ snmp_receive_packet(struct snmp_pdu *pdu
 	socklen_t optlen;
 #endif
 
-	if ((buf = malloc(snmp_client.rxbuflen)) == NULL) {
+	if ((buf = calloc(1, snmp_client.rxbuflen)) == NULL) {
 		seterr(&snmp_client, "%s", strerror(errno));
 		return (-1);
 	}
@@ -1793,12 +1796,14 @@ snmp_discover_engine(char *passwd)
 		return (0);
 	}
 
+	snmp_pdu_free(&req);
+
 	snmp_pdu_create(&req, SNMP_PDU_GET);
 	req.engine.engine_boots = 0;
 	req.engine.engine_time = 0;
 
 	if (snmp_dialog(&req, &resp) == -1)
-		 return (-1);
+		return (-1);
 
 	if (resp.version != req.version) {
 		seterr(&snmp_client, "wrong version");
@@ -1813,6 +1818,9 @@ snmp_discover_engine(char *passwd)
 	snmp_client.engine.engine_boots = resp.engine.engine_boots;
 	snmp_client.engine.engine_time = resp.engine.engine_time;
 
+	snmp_pdu_free(&req);
+	snmp_pdu_free(&resp);
+
 	return (0);
 }
 
@@ -1937,20 +1945,18 @@ snmp_parse_server(struct snmp_client *sc
 		}
 		/* port */
 		free(sc->cport);
-		if ((sc->cport = malloc(strlen(p + 1) + 1)) == NULL) {
+		if ((sc->cport = strdup(p + 1)) == NULL) {
 			seterr(sc, "%s", strerror(errno));
 			return (-1);

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

From owner-svn-src-projects@freebsd.org  Wed Jan 25 02:33:19 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0A661CBF1BB
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Wed, 25 Jan 2017 02:33:19 +0000 (UTC) (envelope-from ae@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id CE98A1F14;
 Wed, 25 Jan 2017 02:33:18 +0000 (UTC) (envelope-from ae@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0P2XH6k056752;
 Wed, 25 Jan 2017 02:33:17 GMT (envelope-from ae@FreeBSD.org)
Received: (from ae@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0P2XHgO056751;
 Wed, 25 Jan 2017 02:33:17 GMT (envelope-from ae@FreeBSD.org)
Message-Id: <201701250233.v0P2XHgO056751@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org
 using -f
From: "Andrey V. Elsukov" <ae@FreeBSD.org>
Date: Wed, 25 Jan 2017 02:33:17 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r312733 - projects/ipsec/sys/netipsec
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 25 Jan 2017 02:33:19 -0000

Author: ae
Date: Wed Jan 25 02:33:17 2017
New Revision: 312733
URL: https://svnweb.freebsd.org/changeset/base/312733

Log:
  Remove redundant redeclaration of inet6sw.

Modified:
  projects/ipsec/sys/netipsec/ipsec_input.c

Modified: projects/ipsec/sys/netipsec/ipsec_input.c
==============================================================================
--- projects/ipsec/sys/netipsec/ipsec_input.c	Wed Jan 25 02:05:08 2017	(r312732)
+++ projects/ipsec/sys/netipsec/ipsec_input.c	Wed Jan 25 02:33:17 2017	(r312733)
@@ -444,8 +444,6 @@ bad:
 #endif /* INET */
 
 #ifdef INET6
-extern struct protosw inet6sw[];
-
 /*
  * IPSEC_INPUT() method implementation for IPv6.
  *  0 - Permitted by inbound security policy for further processing.

From owner-svn-src-projects@freebsd.org  Wed Jan 25 03:15:03 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7F623CBFB47
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Wed, 25 Jan 2017 03:15:03 +0000 (UTC) (envelope-from ae@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 3543216C8;
 Wed, 25 Jan 2017 03:15:03 +0000 (UTC) (envelope-from ae@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0P3F2uU073469;
 Wed, 25 Jan 2017 03:15:02 GMT (envelope-from ae@FreeBSD.org)
Received: (from ae@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0P3F2um073467;
 Wed, 25 Jan 2017 03:15:02 GMT (envelope-from ae@FreeBSD.org)
Message-Id: <201701250315.v0P3F2um073467@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org
 using -f
From: "Andrey V. Elsukov" <ae@FreeBSD.org>
Date: Wed, 25 Jan 2017 03:15:02 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r312734 - in projects/ipsec/sys: modules/ipsec netinet
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 25 Jan 2017 03:15:03 -0000

Author: ae
Date: Wed Jan 25 03:15:02 2017
New Revision: 312734
URL: https://svnweb.freebsd.org/changeset/base/312734

Log:
  Build NAT-T code only when INET support is enabled.

Modified:
  projects/ipsec/sys/modules/ipsec/Makefile
  projects/ipsec/sys/netinet/udp_usrreq.c

Modified: projects/ipsec/sys/modules/ipsec/Makefile
==============================================================================
--- projects/ipsec/sys/modules/ipsec/Makefile	Wed Jan 25 02:33:17 2017	(r312733)
+++ projects/ipsec/sys/modules/ipsec/Makefile	Wed Jan 25 03:15:02 2017	(r312734)
@@ -4,8 +4,9 @@
 
 KMOD=   ipsec
 SRCS=	if_ipsec.c ipsec.c ipsec_input.c ipsec_mbuf.c ipsec_mod.c \
-	ipsec_output.c udpencap.c xform_ah.c xform_esp.c xform_ipcomp.c \
+	ipsec_output.c xform_ah.c xform_esp.c xform_ipcomp.c \
 	opt_inet.h opt_inet6.h opt_ipsec.h opt_sctp.h 
+SRCS.INET=	udpencap.c
 
 opt_ipsec.h:
 	@echo "#define IPSEC_SUPPORT 1" > ${.TARGET}

Modified: projects/ipsec/sys/netinet/udp_usrreq.c
==============================================================================
--- projects/ipsec/sys/netinet/udp_usrreq.c	Wed Jan 25 02:33:17 2017	(r312733)
+++ projects/ipsec/sys/netinet/udp_usrreq.c	Wed Jan 25 03:15:02 2017	(r312734)
@@ -1007,6 +1007,7 @@ udp_ctloutput(struct socket *so, struct 
 	case SOPT_SET:
 		switch (sopt->sopt_name) {
 #if defined(IPSEC) || defined(IPSEC_SUPPORT)
+#ifdef INET
 		case UDP_ENCAP:
 			if (!IPSEC_ENABLED(ipv4)) {
 				INP_WUNLOCK(inp);
@@ -1014,7 +1015,8 @@ udp_ctloutput(struct socket *so, struct 
 			}
 			error = UDPENCAP_PCBCTL(inp, sopt);
 			break;
-#endif
+#endif /* INET */
+#endif /* IPSEC */
 		case UDPLITE_SEND_CSCOV:
 		case UDPLITE_RECV_CSCOV:
 			if (!isudplite) {
@@ -1052,6 +1054,7 @@ udp_ctloutput(struct socket *so, struct 
 	case SOPT_GET:
 		switch (sopt->sopt_name) {
 #if defined(IPSEC) || defined(IPSEC_SUPPORT)
+#ifdef INET
 		case UDP_ENCAP:
 			if (!IPSEC_ENABLED(ipv4)) {
 				INP_WUNLOCK(inp);
@@ -1059,7 +1062,8 @@ udp_ctloutput(struct socket *so, struct 
 			}
 			error = UDPENCAP_PCBCTL(inp, sopt);
 			break;
-#endif
+#endif /* INET */
+#endif /* IPSEC */
 		case UDPLITE_SEND_CSCOV:
 		case UDPLITE_RECV_CSCOV:
 			if (!isudplite) {

From owner-svn-src-projects@freebsd.org  Wed Jan 25 03:19:39 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 98A2BCBFB97
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Wed, 25 Jan 2017 03:19:39 +0000 (UTC) (envelope-from ae@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 68455182A;
 Wed, 25 Jan 2017 03:19:39 +0000 (UTC) (envelope-from ae@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0P3Jchh073647;
 Wed, 25 Jan 2017 03:19:38 GMT (envelope-from ae@FreeBSD.org)
Received: (from ae@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0P3JcxV073646;
 Wed, 25 Jan 2017 03:19:38 GMT (envelope-from ae@FreeBSD.org)
Message-Id: <201701250319.v0P3JcxV073646@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org
 using -f
From: "Andrey V. Elsukov" <ae@FreeBSD.org>
Date: Wed, 25 Jan 2017 03:19:38 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r312735 - projects/ipsec/sys/conf
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 25 Jan 2017 03:19:39 -0000

Author: ae
Date: Wed Jan 25 03:19:38 2017
New Revision: 312735
URL: https://svnweb.freebsd.org/changeset/base/312735

Log:
  "dependency" line should be first.

Modified:
  projects/ipsec/sys/conf/files.pc98

Modified: projects/ipsec/sys/conf/files.pc98
==============================================================================
--- projects/ipsec/sys/conf/files.pc98	Wed Jan 25 03:15:02 2017	(r312734)
+++ projects/ipsec/sys/conf/files.pc98	Wed Jan 25 03:19:38 2017	(r312735)
@@ -90,8 +90,7 @@ compat/svr4/svr4_syscallnames.c	optional
 compat/svr4/svr4_sysent.c	optional compat_svr4
 compat/svr4/svr4_sysvec.c	optional compat_svr4
 compat/svr4/svr4_termios.c	optional compat_svr4
-bf_enc.o			optional crypto | ipsec	|\
-	ipsec_support \
+bf_enc.o			optional crypto | ipsec	| ipsec_support \
 	dependency	"$S/crypto/blowfish/arch/i386/bf_enc.S $S/crypto/blowfish/arch/i386/bf_enc_586.S $S/crypto/blowfish/arch/i386/bf_enc_686.S" \
 	compile-with	"${CC} -c -I$S/crypto/blowfish/arch/i386 ${ASM_CFLAGS} ${WERROR} ${.IMPSRC}" \
 	no-implicit-rule

From owner-svn-src-projects@freebsd.org  Wed Jan 25 03:22:19 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9FD23CBFD4E
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Wed, 25 Jan 2017 03:22:19 +0000 (UTC) (envelope-from ae@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 61CB71BD4;
 Wed, 25 Jan 2017 03:22:19 +0000 (UTC) (envelope-from ae@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0P3MING077482;
 Wed, 25 Jan 2017 03:22:18 GMT (envelope-from ae@FreeBSD.org)
Received: (from ae@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0P3MI6B077481;
 Wed, 25 Jan 2017 03:22:18 GMT (envelope-from ae@FreeBSD.org)
Message-Id: <201701250322.v0P3MI6B077481@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org
 using -f
From: "Andrey V. Elsukov" <ae@FreeBSD.org>
Date: Wed, 25 Jan 2017 03:22:18 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r312736 - projects/ipsec/sys/netipsec
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 25 Jan 2017 03:22:19 -0000

Author: ae
Date: Wed Jan 25 03:22:18 2017
New Revision: 312736
URL: https://svnweb.freebsd.org/changeset/base/312736

Log:
  Add more #ifdef INET guards.

Modified:
  projects/ipsec/sys/netipsec/ipsec.c

Modified: projects/ipsec/sys/netipsec/ipsec.c
==============================================================================
--- projects/ipsec/sys/netipsec/ipsec.c	Wed Jan 25 03:19:38 2017	(r312735)
+++ projects/ipsec/sys/netipsec/ipsec.c	Wed Jan 25 03:22:18 2017	(r312736)
@@ -274,9 +274,11 @@ SYSCTL_VNET_PCPUSTAT(_net_inet6_ipsec6, 
 static int ipsec_in_reject(struct secpolicy *, struct inpcb *,
     const struct mbuf *);
 
+#ifdef INET
 static void ipsec4_get_ulp(const struct mbuf *, struct secpolicyindex *, int);
 static void ipsec4_setspidx_ipaddr(const struct mbuf *,
     struct secpolicyindex *);
+#endif
 #ifdef INET6
 static void ipsec6_get_ulp(const struct mbuf *m, struct secpolicyindex *, int);
 static void ipsec6_setspidx_ipaddr(const struct mbuf *,

From owner-svn-src-projects@freebsd.org  Wed Jan 25 03:53:12 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id D982FCC03F3
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Wed, 25 Jan 2017 03:53:12 +0000 (UTC) (envelope-from ae@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id A69ED95E;
 Wed, 25 Jan 2017 03:53:12 +0000 (UTC) (envelope-from ae@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0P3rBhW089381;
 Wed, 25 Jan 2017 03:53:11 GMT (envelope-from ae@FreeBSD.org)
Received: (from ae@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0P3rBXr089380;
 Wed, 25 Jan 2017 03:53:11 GMT (envelope-from ae@FreeBSD.org)
Message-Id: <201701250353.v0P3rBXr089380@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org
 using -f
From: "Andrey V. Elsukov" <ae@FreeBSD.org>
Date: Wed, 25 Jan 2017 03:53:11 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r312737 - projects/ipsec/sys/netipsec
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 25 Jan 2017 03:53:12 -0000

Author: ae
Date: Wed Jan 25 03:53:11 2017
New Revision: 312737
URL: https://svnweb.freebsd.org/changeset/base/312737

Log:
  Fix build with REGRESSION enabled.

Modified:
  projects/ipsec/sys/netipsec/xform_esp.c

Modified: projects/ipsec/sys/netipsec/xform_esp.c
==============================================================================
--- projects/ipsec/sys/netipsec/xform_esp.c	Wed Jan 25 03:22:18 2017	(r312736)
+++ projects/ipsec/sys/netipsec/xform_esp.c	Wed Jan 25 03:53:11 2017	(r312737)
@@ -914,7 +914,7 @@ esp_output_cb(struct cryptop *crp)
 	/* Emulate man-in-the-middle attack when ipsec_integrity is TRUE. */
 	if (V_ipsec_integrity) {
 		static unsigned char ipseczeroes[AH_HMAC_MAXHASHLEN];
-		struct auth_hash *esph;
+		const struct auth_hash *esph;
 
 		/*
 		 * Corrupt HMAC if we want to test integrity verification of

From owner-svn-src-projects@freebsd.org  Wed Jan 25 04:35:59 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0F28ECB24B5
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Wed, 25 Jan 2017 04:35:59 +0000 (UTC) (envelope-from ae@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id D35B81E96;
 Wed, 25 Jan 2017 04:35:58 +0000 (UTC) (envelope-from ae@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0P4ZvhJ006859;
 Wed, 25 Jan 2017 04:35:57 GMT (envelope-from ae@FreeBSD.org)
Received: (from ae@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0P4Zv6a006858;
 Wed, 25 Jan 2017 04:35:57 GMT (envelope-from ae@FreeBSD.org)
Message-Id: <201701250435.v0P4Zv6a006858@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org
 using -f
From: "Andrey V. Elsukov" <ae@FreeBSD.org>
Date: Wed, 25 Jan 2017 04:35:57 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r312738 - projects/ipsec/sys/net
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 25 Jan 2017 04:35:59 -0000

Author: ae
Date: Wed Jan 25 04:35:57 2017
New Revision: 312738
URL: https://svnweb.freebsd.org/changeset/base/312738

Log:
  Fix build without INET support.

Modified:
  projects/ipsec/sys/net/if_ipsec.c

Modified: projects/ipsec/sys/net/if_ipsec.c
==============================================================================
--- projects/ipsec/sys/net/if_ipsec.c	Wed Jan 25 03:53:11 2017	(r312737)
+++ projects/ipsec/sys/net/if_ipsec.c	Wed Jan 25 04:35:57 2017	(r312738)
@@ -66,9 +66,7 @@ __FBSDID("$FreeBSD$");
 #include <netinet6/in6_var.h>
 #include <netinet6/scope6_var.h>
 
-#ifdef INET
 #include <netipsec/ipsec.h>
-#endif
 #ifdef INET6
 #include <netipsec/ipsec6.h>
 #endif

From owner-svn-src-projects@freebsd.org  Wed Jan 25 13:22:49 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7F5EFCBE8A8
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Wed, 25 Jan 2017 13:22:49 +0000 (UTC) (envelope-from ae@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 4F5EC7BA;
 Wed, 25 Jan 2017 13:22:49 +0000 (UTC) (envelope-from ae@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0PDMmW9019200;
 Wed, 25 Jan 2017 13:22:48 GMT (envelope-from ae@FreeBSD.org)
Received: (from ae@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0PDMmCj019199;
 Wed, 25 Jan 2017 13:22:48 GMT (envelope-from ae@FreeBSD.org)
Message-Id: <201701251322.v0PDMmCj019199@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org
 using -f
From: "Andrey V. Elsukov" <ae@FreeBSD.org>
Date: Wed, 25 Jan 2017 13:22:48 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r312752 - projects/ipsec/sys/netinet6
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 25 Jan 2017 13:22:49 -0000

Author: ae
Date: Wed Jan 25 13:22:48 2017
New Revision: 312752
URL: https://svnweb.freebsd.org/changeset/base/312752

Log:
  Use correct IPsec methods.

Modified:
  projects/ipsec/sys/netinet6/ip6_forward.c

Modified: projects/ipsec/sys/netinet6/ip6_forward.c
==============================================================================
--- projects/ipsec/sys/netinet6/ip6_forward.c	Wed Jan 25 12:18:21 2017	(r312751)
+++ projects/ipsec/sys/netinet6/ip6_forward.c	Wed Jan 25 13:22:48 2017	(r312752)
@@ -152,7 +152,7 @@ ip6_forward(struct mbuf *m, int srcrt)
 
 #if defined(IPSEC) || defined(IPSEC_SUPPORT)
 	if (IPSEC_ENABLED(ipv6)) {
-		if ((error = IPSEC_FORWARD(ipv4, m)) != 0) {
+		if ((error = IPSEC_FORWARD(ipv6, m)) != 0) {
 			/* mbuf consumed by IPsec */
 			m_freem(mcopy);
 			if (error != EINPROGRESS)

From owner-svn-src-projects@freebsd.org  Wed Jan 25 13:27:20 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7A79ECBE9B3
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Wed, 25 Jan 2017 13:27:20 +0000 (UTC) (envelope-from ae@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 3B606998;
 Wed, 25 Jan 2017 13:27:20 +0000 (UTC) (envelope-from ae@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0PDRJVR019425;
 Wed, 25 Jan 2017 13:27:19 GMT (envelope-from ae@FreeBSD.org)
Received: (from ae@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0PDRJvQ019420;
 Wed, 25 Jan 2017 13:27:19 GMT (envelope-from ae@FreeBSD.org)
Message-Id: <201701251327.v0PDRJvQ019420@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org
 using -f
From: "Andrey V. Elsukov" <ae@FreeBSD.org>
Date: Wed, 25 Jan 2017 13:27:19 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r312753 - in projects/ipsec/sys: netinet netipsec
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 25 Jan 2017 13:27:20 -0000

Author: ae
Date: Wed Jan 25 13:27:18 2017
New Revision: 312753
URL: https://svnweb.freebsd.org/changeset/base/312753

Log:
  More fixes for NOINET build.

Modified:
  projects/ipsec/sys/netinet/tcp_input.c
  projects/ipsec/sys/netinet/tcp_output.c
  projects/ipsec/sys/netipsec/ipsec_input.c
  projects/ipsec/sys/netipsec/ipsec_output.c

Modified: projects/ipsec/sys/netinet/tcp_input.c
==============================================================================
--- projects/ipsec/sys/netinet/tcp_input.c	Wed Jan 25 13:22:48 2017	(r312752)
+++ projects/ipsec/sys/netinet/tcp_input.c	Wed Jan 25 13:27:18 2017	(r312753)
@@ -929,12 +929,17 @@ findpcb:
 	if (isipv6 && IPSEC_ENABLED(ipv6) &&
 	    IPSEC_CHECK_POLICY(ipv6, m, inp) != 0) {
 		goto dropunlock;
-	} else
+	}
+#ifdef INET
+	else
+#endif
 #endif /* INET6 */
+#ifdef INET
 	if (IPSEC_ENABLED(ipv4) &&
 	    IPSEC_CHECK_POLICY(ipv4, m, inp) != 0) {
 		goto dropunlock;
 	}
+#endif /* INET */
 #endif /* IPSEC */
 
 	/*

Modified: projects/ipsec/sys/netinet/tcp_output.c
==============================================================================
--- projects/ipsec/sys/netinet/tcp_output.c	Wed Jan 25 13:22:48 2017	(r312752)
+++ projects/ipsec/sys/netinet/tcp_output.c	Wed Jan 25 13:27:18 2017	(r312753)
@@ -557,11 +557,15 @@ after_sack_rexmit:
 #ifdef INET6
 	if (isipv6 && IPSEC_ENABLED(ipv6))
 		ipsec_optlen = IPSEC_HDRSIZE(ipv6, tp->t_inpcb);
+#ifdef INET
 	else
 #endif
+#endif /* INET6 */
+#ifdef INET
 	if (IPSEC_ENABLED(ipv4))
 		ipsec_optlen = IPSEC_HDRSIZE(ipv4, tp->t_inpcb);
-#endif
+#endif /* INET */
+#endif /* IPSEC */
 #ifdef INET6
 	if (isipv6)
 		ipoptlen = ip6_optlen(tp->t_inpcb);

Modified: projects/ipsec/sys/netipsec/ipsec_input.c
==============================================================================
--- projects/ipsec/sys/netipsec/ipsec_input.c	Wed Jan 25 13:22:48 2017	(r312752)
+++ projects/ipsec/sys/netipsec/ipsec_input.c	Wed Jan 25 13:27:18 2017	(r312753)
@@ -474,7 +474,7 @@ ipsec6_input(struct mbuf *m, int offset,
 	/*
 	 * Enforce IPsec policy checking if we are seeing last header.
 	 */
-	if (ipsec4_in_reject(m, NULL) != 0) {
+	if (ipsec6_in_reject(m, NULL) != 0) {
 		/* Forbidden by inbound security policy */
 		m_freem(m);
 		return (EACCES);

Modified: projects/ipsec/sys/netipsec/ipsec_output.c
==============================================================================
--- projects/ipsec/sys/netipsec/ipsec_output.c	Wed Jan 25 13:22:48 2017	(r312752)
+++ projects/ipsec/sys/netipsec/ipsec_output.c	Wed Jan 25 13:27:18 2017	(r312753)
@@ -786,6 +786,7 @@ ipsec_process_done(struct mbuf *m, struc
 	}
 
 	key_freesp(&sp), sp = NULL;	/* Release reference to SP */
+#ifdef INET
 	/*
 	 * Do UDP encapsulation if SA requires it.
 	 */
@@ -794,6 +795,7 @@ ipsec_process_done(struct mbuf *m, struc
 		if (error != 0)
 			goto bad;
 	}
+#endif /* INET */
 	/*
 	 * We're done with IPsec processing, transmit the packet using the
 	 * appropriate network protocol (IP or IPv6).

From owner-svn-src-projects@freebsd.org  Wed Jan 25 13:42:40 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 21590CBEFFF
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Wed, 25 Jan 2017 13:42:40 +0000 (UTC) (envelope-from ae@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id E56D9243;
 Wed, 25 Jan 2017 13:42:39 +0000 (UTC) (envelope-from ae@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0PDgd5D027203;
 Wed, 25 Jan 2017 13:42:39 GMT (envelope-from ae@FreeBSD.org)
Received: (from ae@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0PDgdjw027202;
 Wed, 25 Jan 2017 13:42:39 GMT (envelope-from ae@FreeBSD.org)
Message-Id: <201701251342.v0PDgdjw027202@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org
 using -f
From: "Andrey V. Elsukov" <ae@FreeBSD.org>
Date: Wed, 25 Jan 2017 13:42:39 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r312754 - projects/ipsec/sys/conf
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 25 Jan 2017 13:42:40 -0000

Author: ae
Date: Wed Jan 25 13:42:38 2017
New Revision: 312754
URL: https://svnweb.freebsd.org/changeset/base/312754

Log:
  When both IPSEC_SUPPORT and TCP_SIGNATURE options are specified, build
  xform_tcp.c into the kernel.

Modified:
  projects/ipsec/sys/conf/files

Modified: projects/ipsec/sys/conf/files
==============================================================================
--- projects/ipsec/sys/conf/files	Wed Jan 25 13:27:18 2017	(r312753)
+++ projects/ipsec/sys/conf/files	Wed Jan 25 13:42:38 2017	(r312754)
@@ -4207,7 +4207,8 @@ netipsec/xform_ah.c		optional ipsec inet
 netipsec/xform_esp.c		optional ipsec inet | ipsec inet6
 netipsec/xform_ipcomp.c		optional ipsec inet | ipsec inet6
 netipsec/xform_tcp.c		optional ipsec inet tcp_signature | \
-	 ipsec inet6 tcp_signature
+	 ipsec inet6 tcp_signature | ipsec_support inet tcp_signature | \
+	 ipsec_support inet6 tcp_signature
 netnatm/natm.c			optional natm
 netnatm/natm_pcb.c		optional natm
 netnatm/natm_proto.c		optional natm

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

Author: emaste
Date: Wed Jan 25 20:33:31 2017
New Revision: 312776
URL: https://svnweb.freebsd.org/changeset/base/312776

Log:
  Build Clang on all architectures if host compiler is C++11
  
  Recent versions of Clang are becoming usable for non-x86 non-arm FreeBSD
  architectures. If the compiler is capable of building Clang, do so in
  order to facilitate further testing.
  
  Reviewed by:	dim, imp
  Relnotes:	Yes
  Sponsored by:	The FreeBSD Foundation
  Differential Revision:	https://reviews.freebsd.org/D8267

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

Modified: projects/clang400-import/share/mk/src.opts.mk
==============================================================================
--- projects/clang400-import/share/mk/src.opts.mk	Wed Jan 25 20:22:32 2017	(r312775)
+++ projects/clang400-import/share/mk/src.opts.mk	Wed Jan 25 20:33:31 2017	(r312776)
@@ -225,9 +225,10 @@ __TT=${MACHINE}
 # Clang is enabled, and will be installed as the default /usr/bin/cc.
 __DEFAULT_YES_OPTIONS+=CLANG CLANG_BOOTSTRAP CLANG_FULL CLANG_IS_CC
 __DEFAULT_NO_OPTIONS+=GCC GCC_BOOTSTRAP GNUCXX
-.elif ${COMPILER_FEATURES:Mc++11} && ${__T:Mpowerpc*}
-# On powerpc, if an external compiler that supports C++11 is used as ${CC},
-# then Clang is enabled, but GCC is installed as the default /usr/bin/cc.
+.elif ${COMPILER_FEATURES:Mc++11} && ${__T} != "riscv64" && ${__T} != "sparc64"
+# If an external compiler that supports C++11 is used as ${CC} and Clang
+# supports the target, then Clang is enabled but GCC is installed as the
+# default /usr/bin/cc.
 __DEFAULT_YES_OPTIONS+=CLANG CLANG_FULL GCC GCC_BOOTSTRAP GNUCXX
 __DEFAULT_NO_OPTIONS+=CLANG_BOOTSTRAP CLANG_IS_CC
 .else

From owner-svn-src-projects@freebsd.org  Wed Jan 25 21:05:49 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id DD4D5CC1777
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Wed, 25 Jan 2017 21:05:49 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 8D664116A;
 Wed, 25 Jan 2017 21:05:49 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0PL5ma1010248;
 Wed, 25 Jan 2017 21:05:48 GMT (envelope-from emaste@FreeBSD.org)
Received: (from emaste@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0PL5m0g010246;
 Wed, 25 Jan 2017 21:05:48 GMT (envelope-from emaste@FreeBSD.org)
Message-Id: <201701252105.v0PL5m0g010246@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: emaste set sender to
 emaste@FreeBSD.org using -f
From: Ed Maste <emaste@FreeBSD.org>
Date: Wed, 25 Jan 2017 21:05:48 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r312781 - in projects/clang400-import: . lib/clang/libllvm
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 25 Jan 2017 21:05:50 -0000

Author: emaste
Date: Wed Jan 25 21:05:48 2017
New Revision: 312781
URL: https://svnweb.freebsd.org/changeset/base/312781

Log:
  Also apply WITH_LLD_AS_LD to build tools
  
  Previously WITH_LLD_AS_LD installed LLD as /usr/bin/ld in the target
  system, but still used the GNU BFD ld to link the binaries in that
  target. LLD 4.0.0 can link the FreeBSD/amd64 world and kernel so use
  LLD as the build-time linker as well when the knob is set.
  
  Reviewed by:	dim
  Relnotes:	Yes
  Sponsored by:	The FreeBSD Foundation
  Differential Revision:	https://reviews.freebsd.org/D9226

Modified:
  projects/clang400-import/Makefile.inc1
  projects/clang400-import/lib/clang/libllvm/Makefile

Modified: projects/clang400-import/Makefile.inc1
==============================================================================
--- projects/clang400-import/Makefile.inc1	Wed Jan 25 20:59:23 2017	(r312780)
+++ projects/clang400-import/Makefile.inc1	Wed Jan 25 21:05:48 2017	(r312781)
@@ -516,7 +516,7 @@ TMAKE=		MAKEOBJDIRPREFIX=${OBJTREE} \
 # cross-tools stage
 XMAKE=		TOOLS_PREFIX=${WORLDTMP} ${BMAKE} \
 		TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
-		MK_GDB=no MK_TESTS=no MK_LLD_AS_LD=no
+		MK_GDB=no MK_TESTS=no
 
 # kernel-tools stage
 KTMAKEENV=	INSTALL="sh ${.CURDIR}/tools/install.sh" \
@@ -1827,6 +1827,9 @@ _elftctools=	lib/libelftc \
 # cross-build on a FreeBSD 10 host:
 _elftctools+=	usr.bin/addr2line
 .endif
+.if ${MK_LLD_AS_LD} != "no"
+_lld=		usr.bin/clang/lld
+.endif
 .elif ${TARGET_ARCH} != ${MACHINE_ARCH} && ${MK_ELFTOOLCHAIN_BOOTSTRAP} != "no"
 # If cross-building with an external binutils we still need to build strip for
 # the target (for at least crunchide).
@@ -1851,6 +1854,7 @@ cross-tools: .MAKE .PHONY
     ${LOCAL_XTOOL_DIRS} \
     ${_clang_libs} \
     ${_clang} \
+    ${_lld} \
     ${_binutils} \
     ${_elftctools} \
     ${_dtrace_tools} \

Modified: projects/clang400-import/lib/clang/libllvm/Makefile
==============================================================================
--- projects/clang400-import/lib/clang/libllvm/Makefile	Wed Jan 25 20:59:23 2017	(r312780)
+++ projects/clang400-import/lib/clang/libllvm/Makefile	Wed Jan 25 21:05:48 2017	(r312781)
@@ -1146,7 +1146,7 @@ SRCS_MIN+=	Transforms/Vectorize/SLPVecto
 SRCS_EXT+=	Transforms/Vectorize/Vectorize.cpp
 
 SRCS_ALL+=	${SRCS_MIN}
-.if !defined(TOOLS_PREFIX)
+.if !defined(TOOLS_PREFIX) || ${MK_LLD_AS_LD} != "no"
 SRCS_ALL+=	${SRCS_MIW}
 .endif
 .if ${MK_CLANG_EXTRAS} != "no"

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

Author: emaste
Date: Thu Jan 26 02:22:23 2017
New Revision: 312788
URL: https://svnweb.freebsd.org/changeset/base/312788

Log:
  Enable LLD (as ld.lld) on i386 and arm
  
  With this change LLD will be built on the same set of architectures that
  use Clang as /usr/bin/cc. It is not yet fully functional as a system
  linker for i386 and arm, but is ready for further testing and
  investigation.

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

Modified: projects/clang400-import/share/mk/src.opts.mk
==============================================================================
--- projects/clang400-import/share/mk/src.opts.mk	Thu Jan 26 01:24:05 2017	(r312787)
+++ projects/clang400-import/share/mk/src.opts.mk	Thu Jan 26 02:22:23 2017	(r312788)
@@ -223,18 +223,18 @@ __TT=${MACHINE}
 .if ${COMPILER_FEATURES:Mc++11} && (${__T} == "aarch64" || \
     ${__T} == "amd64" || ${__TT} == "arm" || ${__T} == "i386")
 # Clang is enabled, and will be installed as the default /usr/bin/cc.
-__DEFAULT_YES_OPTIONS+=CLANG CLANG_BOOTSTRAP CLANG_FULL CLANG_IS_CC
+__DEFAULT_YES_OPTIONS+=CLANG CLANG_BOOTSTRAP CLANG_FULL CLANG_IS_CC LLD
 __DEFAULT_NO_OPTIONS+=GCC GCC_BOOTSTRAP GNUCXX
 .elif ${COMPILER_FEATURES:Mc++11} && ${__T} != "riscv64" && ${__T} != "sparc64"
 # If an external compiler that supports C++11 is used as ${CC} and Clang
 # supports the target, then Clang is enabled but GCC is installed as the
 # default /usr/bin/cc.
 __DEFAULT_YES_OPTIONS+=CLANG CLANG_FULL GCC GCC_BOOTSTRAP GNUCXX
-__DEFAULT_NO_OPTIONS+=CLANG_BOOTSTRAP CLANG_IS_CC
+__DEFAULT_NO_OPTIONS+=CLANG_BOOTSTRAP CLANG_IS_CC LLD
 .else
 # Everything else disables Clang, and uses GCC instead.
 __DEFAULT_YES_OPTIONS+=GCC GCC_BOOTSTRAP GNUCXX
-__DEFAULT_NO_OPTIONS+=CLANG CLANG_BOOTSTRAP CLANG_FULL CLANG_IS_CC
+__DEFAULT_NO_OPTIONS+=CLANG CLANG_BOOTSTRAP CLANG_FULL CLANG_IS_CC LLD
 .endif
 # In-tree binutils/gcc are older versions without modern architecture support.
 .if ${__T} == "aarch64" || ${__T:Mriscv*} != ""
@@ -257,9 +257,9 @@ __DEFAULT_YES_OPTIONS+=LLD_AS_LD
 __DEFAULT_NO_OPTIONS+=LLD_AS_LD
 .endif
 .if ${__T} == "aarch64" || ${__T} == "amd64"
-__DEFAULT_YES_OPTIONS+=LLD LLDB
+__DEFAULT_YES_OPTIONS+=LLDB
 .else
-__DEFAULT_NO_OPTIONS+=LLD LLDB
+__DEFAULT_NO_OPTIONS+=LLDB
 .endif
 # LLVM lacks support for FreeBSD 64-bit atomic operations for ARMv4/ARMv5
 .if ${__T} == "arm" || ${__T} == "armeb"

From owner-svn-src-projects@freebsd.org  Thu Jan 26 15:37:56 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6325BCC21E4
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Thu, 26 Jan 2017 15:37:56 +0000 (UTC) (envelope-from ae@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 2BA0BC93;
 Thu, 26 Jan 2017 15:37:56 +0000 (UTC) (envelope-from ae@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0QFbtMB067048;
 Thu, 26 Jan 2017 15:37:55 GMT (envelope-from ae@FreeBSD.org)
Received: (from ae@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0QFbr0P067027;
 Thu, 26 Jan 2017 15:37:53 GMT (envelope-from ae@FreeBSD.org)
Message-Id: <201701261537.v0QFbr0P067027@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org
 using -f
From: "Andrey V. Elsukov" <ae@FreeBSD.org>
Date: Thu, 26 Jan 2017 15:37:53 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r312817 - in projects/ipsec: contrib/elftoolchain/strings
 contrib/ipfilter/lib contrib/ipfilter/tools
 contrib/llvm/include/llvm/Analysis contrib/llvm/lib/Analysis
 lib/libthr/thread libe...
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 26 Jan 2017 15:37:56 -0000

Author: ae
Date: Thu Jan 26 15:37:53 2017
New Revision: 312817
URL: https://svnweb.freebsd.org/changeset/base/312817

Log:
  Merge from head/

Added:
  projects/ipsec/sys/arm/mv/armada/
     - copied from r312816, head/sys/arm/mv/armada/
  projects/ipsec/sys/dev/ahci/ahci_mv_fdt.c
     - copied unchanged from r312816, head/sys/dev/ahci/ahci_mv_fdt.c
Modified:
  projects/ipsec/contrib/elftoolchain/strings/strings.c
  projects/ipsec/contrib/ipfilter/lib/rwlock_emul.c
  projects/ipsec/contrib/ipfilter/tools/ipf.c
  projects/ipsec/contrib/llvm/include/llvm/Analysis/ScalarEvolution.h
  projects/ipsec/contrib/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
  projects/ipsec/contrib/llvm/lib/Analysis/ScalarEvolution.cpp
  projects/ipsec/contrib/llvm/lib/Analysis/ScalarEvolutionExpander.cpp
  projects/ipsec/lib/libthr/thread/thr_exit.c
  projects/ipsec/libexec/rtld-elf/aarch64/reloc.c
  projects/ipsec/share/misc/committers-ports.dot
  projects/ipsec/share/misc/scsi_modes
  projects/ipsec/sys/arm/arm/pmap-v6.c
  projects/ipsec/sys/arm/conf/ARMADA38X
  projects/ipsec/sys/arm/include/pcpu.h
  projects/ipsec/sys/arm/mv/armada38x/files.armada38x
  projects/ipsec/sys/arm/mv/files.mv
  projects/ipsec/sys/arm/mv/mv_common.c
  projects/ipsec/sys/arm/mv/mvwin.h
  projects/ipsec/sys/cam/cam_iosched.c
  projects/ipsec/sys/cam/ctl/ctl.h
  projects/ipsec/sys/cam/ctl/ctl_io.h
  projects/ipsec/sys/cam/ctl/ctl_ioctl.h
  projects/ipsec/sys/cam/ctl/ctl_private.h
  projects/ipsec/sys/cddl/dev/dtrace/dtrace_ioctl.c
  projects/ipsec/sys/contrib/ipfilter/netinet/ip_compat.h
  projects/ipsec/sys/contrib/ipfilter/netinet/ip_frag.c
  projects/ipsec/sys/dev/ahci/ahci.c
  projects/ipsec/sys/dev/ahci/ahci.h
  projects/ipsec/sys/dev/ahci/ahci_pci.c
  projects/ipsec/sys/dev/cesa/cesa.c
  projects/ipsec/sys/dev/cesa/cesa.h
  projects/ipsec/sys/dev/e1000/em_txrx.c
  projects/ipsec/sys/dev/fdt/fdt_common.h
  projects/ipsec/sys/dev/ofw/ofw_bus_subr.c
  projects/ipsec/sys/dev/ofw/ofw_bus_subr.h
  projects/ipsec/sys/dev/qlxgbe/ql_def.h
  projects/ipsec/sys/dev/qlxgbe/ql_glbl.h
  projects/ipsec/sys/dev/qlxgbe/ql_hw.c
  projects/ipsec/sys/dev/qlxgbe/ql_hw.h
  projects/ipsec/sys/dev/qlxgbe/ql_isr.c
  projects/ipsec/sys/dev/qlxgbe/ql_os.c
  projects/ipsec/sys/dev/qlxgbe/ql_os.h
  projects/ipsec/sys/dev/qlxgbe/ql_ver.h
  projects/ipsec/sys/kern/kern_ntptime.c
  projects/ipsec/sys/kern/subr_gtaskqueue.c
  projects/ipsec/sys/kern/uipc_usrreq.c
  projects/ipsec/sys/net/if.c
  projects/ipsec/sys/net/if_bridge.c
  projects/ipsec/sys/net/if_bridgevar.h
  projects/ipsec/sys/net/iflib.c
  projects/ipsec/sys/netinet/in.c
  projects/ipsec/sys/netinet/ip_carp.c
  projects/ipsec/sys/netinet/ip_carp.h
  projects/ipsec/sys/netinet6/in6.c
  projects/ipsec/sys/sys/capability.h
  projects/ipsec/sys/sys/gtaskqueue.h
Directory Properties:
  projects/ipsec/   (props changed)
  projects/ipsec/contrib/elftoolchain/   (props changed)
  projects/ipsec/contrib/ipfilter/   (props changed)
  projects/ipsec/contrib/llvm/   (props changed)
  projects/ipsec/sys/contrib/ipfilter/   (props changed)

Modified: projects/ipsec/contrib/elftoolchain/strings/strings.c
==============================================================================
--- projects/ipsec/contrib/elftoolchain/strings/strings.c	Thu Jan 26 13:50:09 2017	(r312816)
+++ projects/ipsec/contrib/elftoolchain/strings/strings.c	Thu Jan 26 15:37:53 2017	(r312817)
@@ -189,7 +189,7 @@ main(int argc, char **argv)
 	if (!min_len)
 		min_len = 4;
 	if (!*argv)
-		rc = handle_file("{standard input}");
+		rc = find_strings("{standard input}", 0, 0);
 	else while (*argv) {
 		if (handle_file(*argv) != 0)
 			rc = 1;
@@ -205,13 +205,9 @@ handle_file(const char *name)
 
 	if (name == NULL)
 		return (1);
-	if (strcmp("{standard input}", name) != 0) {
-		if (freopen(name, "rb", stdin) == NULL) {
-			warnx("'%s': %s", name, strerror(errno));
-			return (1);
-		}
-	} else {
-		return (find_strings(name, (off_t)0, (off_t)0));
+	if (freopen(name, "rb", stdin) == NULL) {
+		warnx("'%s': %s", name, strerror(errno));
+		return (1);
 	}
 
 	fd = fileno(stdin);

Modified: projects/ipsec/contrib/ipfilter/lib/rwlock_emul.c
==============================================================================
--- projects/ipsec/contrib/ipfilter/lib/rwlock_emul.c	Thu Jan 26 13:50:09 2017	(r312816)
+++ projects/ipsec/contrib/ipfilter/lib/rwlock_emul.c	Thu Jan 26 15:37:53 2017	(r312817)
@@ -56,6 +56,27 @@ void eMrwlock_write_enter(rw, file, line
 }
 
 
+void eMrwlock_try_upgrade(rw, file, line)
+	eMrwlock_t *rw;
+	char *file;
+	int line;
+{
+	if (rw->eMrw_magic != EMM_MAGIC) {
+		fprintf(stderr, "%s:eMrwlock_write_enter(%p): bad magic: %#x\n",
+			rw->eMrw_owner, rw, rw->eMrw_magic);
+		abort();
+	}
+	if (rw->eMrw_read != 0 || rw->eMrw_write != 0) {
+		fprintf(stderr,
+			"%s:eMrwlock_try_upgrade(%p): already locked: %d/%d\n",
+			rw->eMrw_owner, rw, rw->eMrw_read, rw->eMrw_write);
+		abort();
+	}
+	rw->eMrw_write++;
+	rw->eMrw_heldin = file;
+	rw->eMrw_heldat = line;
+}
+
 void eMrwlock_downgrade(rw, file, line)
 	eMrwlock_t *rw;
 	char *file;

Modified: projects/ipsec/contrib/ipfilter/tools/ipf.c
==============================================================================
--- projects/ipsec/contrib/ipfilter/tools/ipf.c	Thu Jan 26 13:50:09 2017	(r312816)
+++ projects/ipsec/contrib/ipfilter/tools/ipf.c	Thu Jan 26 15:37:53 2017	(r312817)
@@ -408,14 +408,16 @@ static void flushfilter(arg, filter)
 		}
 		closedevice();
 		return;
-	}
-
-	if (strchr(arg, 'i') || strchr(arg, 'I'))
+	} else if (strchr(arg, 'i') || strchr(arg, 'I'))
 		fl = FR_INQUE;
-	if (strchr(arg, 'o') || strchr(arg, 'O'))
+	else if (strchr(arg, 'o') || strchr(arg, 'O'))
 		fl = FR_OUTQUE;
-	if (strchr(arg, 'a') || strchr(arg, 'A'))
+	else if (strchr(arg, 'a') || strchr(arg, 'A'))
 		fl = FR_OUTQUE|FR_INQUE;
+	else {
+		fprintf(stderr, "Incorrect flush argument: %s\n", arg);
+		usage();
+	}
 	if (opts & OPT_INACTIVE)
 		fl |= FR_INACTIVE;
 	rem = fl;

Modified: projects/ipsec/contrib/llvm/include/llvm/Analysis/ScalarEvolution.h
==============================================================================
--- projects/ipsec/contrib/llvm/include/llvm/Analysis/ScalarEvolution.h	Thu Jan 26 13:50:09 2017	(r312816)
+++ projects/ipsec/contrib/llvm/include/llvm/Analysis/ScalarEvolution.h	Thu Jan 26 15:37:53 2017	(r312817)
@@ -495,10 +495,29 @@ namespace llvm {
 
     /// The typedef for ExprValueMap.
     ///
-    typedef DenseMap<const SCEV *, SetVector<Value *>> ExprValueMapType;
+    typedef std::pair<Value *, ConstantInt *> ValueOffsetPair;
+    typedef DenseMap<const SCEV *, SetVector<ValueOffsetPair>> ExprValueMapType;
 
     /// ExprValueMap -- This map records the original values from which
     /// the SCEV expr is generated from.
+    ///
+    /// We want to represent the mapping as SCEV -> ValueOffsetPair instead
+    /// of SCEV -> Value:
+    /// Suppose we know S1 expands to V1, and
+    ///  S1 = S2 + C_a
+    ///  S3 = S2 + C_b
+    /// where C_a and C_b are different SCEVConstants. Then we'd like to
+    /// expand S3 as V1 - C_a + C_b instead of expanding S2 literally.
+    /// It is helpful when S2 is a complex SCEV expr.
+    ///
+    /// In order to do that, we represent ExprValueMap as a mapping from
+    /// SCEV to ValueOffsetPair. We will save both S1->{V1, 0} and
+    /// S2->{V1, C_a} into the map when we create SCEV for V1. When S3
+    /// is expanded, it will first expand S2 to V1 - C_a because of
+    /// S2->{V1, C_a} in the map, then expand S3 to V1 - C_a + C_b.
+    ///
+    /// Note: S->{V, Offset} in the ExprValueMap means S can be expanded
+    /// to V - Offset.
     ExprValueMapType ExprValueMap;
 
     /// The typedef for ValueExprMap.
@@ -1181,7 +1200,7 @@ namespace llvm {
     bool containsAddRecurrence(const SCEV *S);
 
     /// Return the Value set from which the SCEV expr is generated.
-    SetVector<Value *> *getSCEVValues(const SCEV *S);
+    SetVector<ValueOffsetPair> *getSCEVValues(const SCEV *S);
 
     /// Erase Value from ValueExprMap and ExprValueMap.
     void eraseValueFromMap(Value *V);

Modified: projects/ipsec/contrib/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
==============================================================================
--- projects/ipsec/contrib/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h	Thu Jan 26 13:50:09 2017	(r312816)
+++ projects/ipsec/contrib/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h	Thu Jan 26 15:37:53 2017	(r312817)
@@ -325,7 +325,8 @@ namespace llvm {
                           PointerType *PTy, Type *Ty, Value *V);
 
     /// \brief Find a previous Value in ExprValueMap for expand.
-    Value *FindValueInExprValueMap(const SCEV *S, const Instruction *InsertPt);
+    ScalarEvolution::ValueOffsetPair
+    FindValueInExprValueMap(const SCEV *S, const Instruction *InsertPt);
 
     Value *expand(const SCEV *S);
 

Modified: projects/ipsec/contrib/llvm/lib/Analysis/ScalarEvolution.cpp
==============================================================================
--- projects/ipsec/contrib/llvm/lib/Analysis/ScalarEvolution.cpp	Thu Jan 26 13:50:09 2017	(r312816)
+++ projects/ipsec/contrib/llvm/lib/Analysis/ScalarEvolution.cpp	Thu Jan 26 15:37:53 2017	(r312817)
@@ -3378,8 +3378,28 @@ bool ScalarEvolution::containsAddRecurre
   return F.FoundOne;
 }
 
-/// Return the Value set from S.
-SetVector<Value *> *ScalarEvolution::getSCEVValues(const SCEV *S) {
+/// Try to split a SCEVAddExpr into a pair of {SCEV, ConstantInt}.
+/// If \p S is a SCEVAddExpr and is composed of a sub SCEV S' and an
+/// offset I, then return {S', I}, else return {\p S, nullptr}.
+static std::pair<const SCEV *, ConstantInt *> splitAddExpr(const SCEV *S) {
+  const auto *Add = dyn_cast<SCEVAddExpr>(S);
+  if (!Add)
+    return {S, nullptr};
+
+  if (Add->getNumOperands() != 2)
+    return {S, nullptr};
+
+  auto *ConstOp = dyn_cast<SCEVConstant>(Add->getOperand(0));
+  if (!ConstOp)
+    return {S, nullptr};
+
+  return {Add->getOperand(1), ConstOp->getValue()};
+}
+
+/// Return the ValueOffsetPair set for \p S. \p S can be represented
+/// by the value and offset from any ValueOffsetPair in the set.
+SetVector<ScalarEvolution::ValueOffsetPair> *
+ScalarEvolution::getSCEVValues(const SCEV *S) {
   ExprValueMapType::iterator SI = ExprValueMap.find_as(S);
   if (SI == ExprValueMap.end())
     return nullptr;
@@ -3387,24 +3407,31 @@ SetVector<Value *> *ScalarEvolution::get
   if (VerifySCEVMap) {
     // Check there is no dangling Value in the set returned.
     for (const auto &VE : SI->second)
-      assert(ValueExprMap.count(VE));
+      assert(ValueExprMap.count(VE.first));
   }
 #endif
   return &SI->second;
 }
 
-/// Erase Value from ValueExprMap and ExprValueMap.  If ValueExprMap.erase(V) is
-/// not used together with forgetMemoizedResults(S), eraseValueFromMap should be
-/// used instead to ensure whenever V->S is removed from ValueExprMap, V is also
-/// removed from the set of ExprValueMap[S].
+/// Erase Value from ValueExprMap and ExprValueMap. ValueExprMap.erase(V)
+/// cannot be used separately. eraseValueFromMap should be used to remove
+/// V from ValueExprMap and ExprValueMap at the same time.
 void ScalarEvolution::eraseValueFromMap(Value *V) {
   ValueExprMapType::iterator I = ValueExprMap.find_as(V);
   if (I != ValueExprMap.end()) {
     const SCEV *S = I->second;
-    SetVector<Value *> *SV = getSCEVValues(S);
-    // Remove V from the set of ExprValueMap[S]
-    if (SV)
-      SV->remove(V);
+    // Remove {V, 0} from the set of ExprValueMap[S]
+    if (SetVector<ValueOffsetPair> *SV = getSCEVValues(S))
+      SV->remove({V, nullptr});
+
+    // Remove {V, Offset} from the set of ExprValueMap[Stripped]
+    const SCEV *Stripped;
+    ConstantInt *Offset;
+    std::tie(Stripped, Offset) = splitAddExpr(S);
+    if (Offset != nullptr) {
+      if (SetVector<ValueOffsetPair> *SV = getSCEVValues(Stripped))
+        SV->remove({V, Offset});
+    }
     ValueExprMap.erase(V);
   }
 }
@@ -3419,11 +3446,26 @@ const SCEV *ScalarEvolution::getSCEV(Val
     S = createSCEV(V);
     // During PHI resolution, it is possible to create two SCEVs for the same
     // V, so it is needed to double check whether V->S is inserted into
-    // ValueExprMap before insert S->V into ExprValueMap.
+    // ValueExprMap before insert S->{V, 0} into ExprValueMap.
     std::pair<ValueExprMapType::iterator, bool> Pair =
         ValueExprMap.insert({SCEVCallbackVH(V, this), S});
-    if (Pair.second)
-      ExprValueMap[S].insert(V);
+    if (Pair.second) {
+      ExprValueMap[S].insert({V, nullptr});
+
+      // If S == Stripped + Offset, add Stripped -> {V, Offset} into
+      // ExprValueMap.
+      const SCEV *Stripped = S;
+      ConstantInt *Offset = nullptr;
+      std::tie(Stripped, Offset) = splitAddExpr(S);
+      // If stripped is SCEVUnknown, don't bother to save
+      // Stripped -> {V, offset}. It doesn't simplify and sometimes even
+      // increase the complexity of the expansion code.
+      // If V is GetElementPtrInst, don't save Stripped -> {V, offset}
+      // because it may generate add/sub instead of GEP in SCEV expansion.
+      if (Offset != nullptr && !isa<SCEVUnknown>(Stripped) &&
+          !isa<GetElementPtrInst>(V))
+        ExprValueMap[Stripped].insert({V, Offset});
+    }
   }
   return S;
 }
@@ -3436,8 +3478,8 @@ const SCEV *ScalarEvolution::getExisting
     const SCEV *S = I->second;
     if (checkValidity(S))
       return S;
+    eraseValueFromMap(V);
     forgetMemoizedResults(S);
-    ValueExprMap.erase(I);
   }
   return nullptr;
 }
@@ -3675,8 +3717,8 @@ void ScalarEvolution::forgetSymbolicName
       if (!isa<PHINode>(I) ||
           !isa<SCEVUnknown>(Old) ||
           (I != PN && Old == SymName)) {
+        eraseValueFromMap(It->first);
         forgetMemoizedResults(Old);
-        ValueExprMap.erase(It);
       }
     }
 
@@ -4055,7 +4097,7 @@ const SCEV *ScalarEvolution::createAddRe
     // to create an AddRecExpr for this PHI node. We can not keep this temporary
     // as it will prevent later (possibly simpler) SCEV expressions to be added
     // to the ValueExprMap.
-    ValueExprMap.erase(PN);
+    eraseValueFromMap(PN);
   }
 
   return nullptr;
@@ -5435,8 +5477,8 @@ ScalarEvolution::getBackedgeTakenInfo(co
         // case, createNodeForPHI will perform the necessary updates on its
         // own when it gets to that point.
         if (!isa<PHINode>(I) || !isa<SCEVUnknown>(Old)) {
+          eraseValueFromMap(It->first);
           forgetMemoizedResults(Old);
-          ValueExprMap.erase(It);
         }
         if (PHINode *PN = dyn_cast<PHINode>(I))
           ConstantEvolutionLoopExitValue.erase(PN);
@@ -5481,8 +5523,8 @@ void ScalarEvolution::forgetLoop(const L
     ValueExprMapType::iterator It =
       ValueExprMap.find_as(static_cast<Value *>(I));
     if (It != ValueExprMap.end()) {
+      eraseValueFromMap(It->first);
       forgetMemoizedResults(It->second);
-      ValueExprMap.erase(It);
       if (PHINode *PN = dyn_cast<PHINode>(I))
         ConstantEvolutionLoopExitValue.erase(PN);
     }
@@ -5515,8 +5557,8 @@ void ScalarEvolution::forgetValue(Value 
     ValueExprMapType::iterator It =
       ValueExprMap.find_as(static_cast<Value *>(I));
     if (It != ValueExprMap.end()) {
+      eraseValueFromMap(It->first);
       forgetMemoizedResults(It->second);
-      ValueExprMap.erase(It);
       if (PHINode *PN = dyn_cast<PHINode>(I))
         ConstantEvolutionLoopExitValue.erase(PN);
     }

Modified: projects/ipsec/contrib/llvm/lib/Analysis/ScalarEvolutionExpander.cpp
==============================================================================
--- projects/ipsec/contrib/llvm/lib/Analysis/ScalarEvolutionExpander.cpp	Thu Jan 26 13:50:09 2017	(r312816)
+++ projects/ipsec/contrib/llvm/lib/Analysis/ScalarEvolutionExpander.cpp	Thu Jan 26 15:37:53 2017	(r312817)
@@ -1625,9 +1625,10 @@ Value *SCEVExpander::expandCodeFor(const
   return V;
 }
 
-Value *SCEVExpander::FindValueInExprValueMap(const SCEV *S,
-                                             const Instruction *InsertPt) {
-  SetVector<Value *> *Set = SE.getSCEVValues(S);
+ScalarEvolution::ValueOffsetPair
+SCEVExpander::FindValueInExprValueMap(const SCEV *S,
+                                      const Instruction *InsertPt) {
+  SetVector<ScalarEvolution::ValueOffsetPair> *Set = SE.getSCEVValues(S);
   // If the expansion is not in CanonicalMode, and the SCEV contains any
   // sub scAddRecExpr type SCEV, it is required to expand the SCEV literally.
   if (CanonicalMode || !SE.containsAddRecurrence(S)) {
@@ -1636,21 +1637,21 @@ Value *SCEVExpander::FindValueInExprValu
       // Choose a Value from the set which dominates the insertPt.
       // insertPt should be inside the Value's parent loop so as not to break
       // the LCSSA form.
-      for (auto const &Ent : *Set) {
+      for (auto const &VOPair : *Set) {
+        Value *V = VOPair.first;
+        ConstantInt *Offset = VOPair.second;
         Instruction *EntInst = nullptr;
-        if (Ent && isa<Instruction>(Ent) &&
-            (EntInst = cast<Instruction>(Ent)) &&
-            S->getType() == Ent->getType() &&
+        if (V && isa<Instruction>(V) && (EntInst = cast<Instruction>(V)) &&
+            S->getType() == V->getType() &&
             EntInst->getFunction() == InsertPt->getFunction() &&
             SE.DT.dominates(EntInst, InsertPt) &&
             (SE.LI.getLoopFor(EntInst->getParent()) == nullptr ||
-             SE.LI.getLoopFor(EntInst->getParent())->contains(InsertPt))) {
-          return Ent;
-        }
+             SE.LI.getLoopFor(EntInst->getParent())->contains(InsertPt)))
+          return {V, Offset};
       }
     }
   }
-  return nullptr;
+  return {nullptr, nullptr};
 }
 
 // The expansion of SCEV will either reuse a previous Value in ExprValueMap,
@@ -1698,10 +1699,14 @@ Value *SCEVExpander::expand(const SCEV *
   Builder.SetInsertPoint(InsertPt);
 
   // Expand the expression into instructions.
-  Value *V = FindValueInExprValueMap(S, InsertPt);
+  ScalarEvolution::ValueOffsetPair VO = FindValueInExprValueMap(S, InsertPt);
+  Value *V = VO.first;
 
   if (!V)
     V = visit(S);
+  else if (VO.second) {
+    V = Builder.CreateSub(V, VO.second);
+  }
 
   // Remember the expanded value for this SCEV at this location.
   //
@@ -1914,7 +1919,7 @@ Value *SCEVExpander::findExistingExpansi
 
   // Use expand's logic which is used for reusing a previous Value in
   // ExprValueMap.
-  if (Value *Val = FindValueInExprValueMap(S, At))
+  if (Value *Val = FindValueInExprValueMap(S, At).first)
     return Val;
 
   // There is potential to make this significantly smarter, but this simple

Modified: projects/ipsec/lib/libthr/thread/thr_exit.c
==============================================================================
--- projects/ipsec/lib/libthr/thread/thr_exit.c	Thu Jan 26 13:50:09 2017	(r312816)
+++ projects/ipsec/lib/libthr/thread/thr_exit.c	Thu Jan 26 15:37:53 2017	(r312817)
@@ -240,9 +240,6 @@ _pthread_exit_mask(void *status, sigset_
 
 #ifdef PIC
 	thread_uw_init();
-#endif /* PIC */
-
-#ifdef PIC
 	if (uwl_forcedunwind != NULL) {
 #else
 	if (_Unwind_ForcedUnwind != NULL) {

Modified: projects/ipsec/libexec/rtld-elf/aarch64/reloc.c
==============================================================================
--- projects/ipsec/libexec/rtld-elf/aarch64/reloc.c	Thu Jan 26 13:50:09 2017	(r312816)
+++ projects/ipsec/libexec/rtld-elf/aarch64/reloc.c	Thu Jan 26 15:37:53 2017	(r312817)
@@ -184,6 +184,18 @@ rtld_tlsdesc_handle(struct tls_data *tls
 	return (tlsdesc->index);
 }
 
+static void
+reloc_tlsdesc(Obj_Entry *obj, const Elf_Rela *rela, Elf_Addr *where)
+{
+	if (ELF_R_SYM(rela->r_info) == 0) {
+		where[0] = (Elf_Addr)_rtld_tlsdesc;
+		where[1] = obj->tlsoffset + rela->r_addend;
+	} else {
+		where[0] = (Elf_Addr)_rtld_tlsdesc_dynamic;
+		where[1] = (Elf_Addr)reloc_tlsdesc_alloc(obj, rela);
+	}
+}
+
 /*
  * Process the PLT relocations.
  */
@@ -204,14 +216,7 @@ reloc_plt(Obj_Entry *obj)
 			*where += (Elf_Addr)obj->relocbase;
 			break;
 		case R_AARCH64_TLSDESC:
-			if (ELF_R_SYM(rela->r_info) == 0) {
-				where[0] = (Elf_Addr)_rtld_tlsdesc;
-				where[1] = obj->tlsoffset + rela->r_addend;
-			} else {
-				where[0] = (Elf_Addr)_rtld_tlsdesc_dynamic;
-				where[1] = (Elf_Addr)reloc_tlsdesc_alloc(obj,
-				    rela);
-			}
+			reloc_tlsdesc(obj, rela, where);
 			break;
 		default:
 			_rtld_error("Unknown relocation type %u in PLT",
@@ -362,6 +367,9 @@ reloc_non_plt(Obj_Entry *obj, Obj_Entry 
 				return (-1);
 			}
 			break;
+		case R_AARCH64_TLSDESC:
+			reloc_tlsdesc(obj, rela, where);
+			break;
 		case R_AARCH64_TLS_TPREL64:
 			def = find_symdef(symnum, obj, &defobj, flags, cache,
 			    lockstate);

Modified: projects/ipsec/share/misc/committers-ports.dot
==============================================================================
--- projects/ipsec/share/misc/committers-ports.dot	Thu Jan 26 13:50:09 2017	(r312816)
+++ projects/ipsec/share/misc/committers-ports.dot	Thu Jan 26 15:37:53 2017	(r312817)
@@ -195,6 +195,7 @@ philip [label="Philip Paeps\nphilip@Free
 rafan [label="Rong-En Fan\nrafan@FreeBSD.org\n2006/06/23"]
 rakuco [label="Raphael Kubo da Costa\nrakuco@FreeBSD.org\n2011/08/22"]
 rene [label="Rene Ladan\nrene@FreeBSD.org\n2010/04/11"]
+rezny [label="Matthew Rezny\nrezny@FreeBSD.org\n2017/01/09"]
 riggs [label="Thomas Zander\nriggs@FreeBSD.org\n2014/01/09"]
 rm [label="Ruslan Makhmatkhanov\nrm@FreeBSD.org\n2011/11/06"]
 rnoland [label="Robert Noland\nrnoland@FreeBSD.org\n2008/07/21"]
@@ -370,6 +371,7 @@ erwin -> simon
 
 feld -> brnrd
 feld -> junovitch
+feld -> rezny
 
 fjoe -> danfe
 fjoe -> flo
@@ -595,6 +597,7 @@ swills -> feld
 swills -> jrm
 swills -> milki
 swills -> pclin
+swills -> rezny
 swills -> robak
 swills -> rpaulo
 swills -> tz

Modified: projects/ipsec/share/misc/scsi_modes
==============================================================================
--- projects/ipsec/share/misc/scsi_modes	Thu Jan 26 13:50:09 2017	(r312816)
+++ projects/ipsec/share/misc/scsi_modes	Thu Jan 26 15:37:53 2017	(r312817)
@@ -478,4 +478,17 @@
 	{Current Write Speed Supported (kBps)} i2
 };
 
+0x1d "Timeout and Protect" {
+	{Reserved} *i2
+	{Reserved} *t4
+	{G3Enable} t1
+	{TMOE} t1
+	{DISP} t1
+	{SWPP} t1
+	{Reserved} *i1
+	{Group 1 Minimum Timeout} i2
+	{Group 2 Minimum Timeout} i2
+	{Group 3 Timeout} i2
+};
+
 0x00 "Vendor-Specific";

Modified: projects/ipsec/sys/arm/arm/pmap-v6.c
==============================================================================
--- projects/ipsec/sys/arm/arm/pmap-v6.c	Thu Jan 26 13:50:09 2017	(r312816)
+++ projects/ipsec/sys/arm/arm/pmap-v6.c	Thu Jan 26 15:37:53 2017	(r312817)
@@ -1160,11 +1160,11 @@ pmap_bootstrap(vm_offset_t firstaddr)
 	 * Local CMAP1/CMAP2 are used for zeroing and copying pages.
 	 * Local CMAP2 is also used for data cache cleaning.
 	 */
-	pc = pcpu_find(curcpu);
+	pc = get_pcpu();
 	mtx_init(&pc->pc_cmap_lock, "SYSMAPS", NULL, MTX_DEF);
 	SYSMAP(caddr_t, pc->pc_cmap1_pte2p, pc->pc_cmap1_addr, 1);
 	SYSMAP(caddr_t, pc->pc_cmap2_pte2p, pc->pc_cmap2_addr, 1);
-	SYSMAP(vm_offset_t, unused, pc->pc_qmap_addr, 1);
+	SYSMAP(vm_offset_t, pc->pc_qmap_pte2p, pc->pc_qmap_addr, 1);
 
 	/*
 	 * Crashdump maps.
@@ -1217,6 +1217,7 @@ pmap_init_reserved_pages(void)
 			panic("%s: unable to allocate KVA", __func__);
 		pc->pc_cmap1_pte2p = pt2map_entry(pages);
 		pc->pc_cmap2_pte2p = pt2map_entry(pages + PAGE_SIZE);
+		pc->pc_qmap_pte2p = pt2map_entry(pages + (PAGE_SIZE * 2));
 		pc->pc_cmap1_addr = (caddr_t)pages;
 		pc->pc_cmap2_addr = (caddr_t)(pages + PAGE_SIZE);
 		pc->pc_qmap_addr = pages + (PAGE_SIZE * 2);
@@ -1584,7 +1585,7 @@ pmap_pt2pg_zero(vm_page_t m)
 	 *      to sync it even if the sync is only DSB.
 	 */
 	sched_pin();
-	pc = pcpu_find(curcpu);
+	pc = get_pcpu();
 	cmap2_pte2p = pc->pc_cmap2_pte2p;
 	mtx_lock(&pc->pc_cmap_lock);
 	if (pte2_load(cmap2_pte2p) != 0)
@@ -5661,7 +5662,7 @@ pmap_page_set_memattr(vm_page_t m, vm_me
 	if (ma != oma) {
 		pa = VM_PAGE_TO_PHYS(m);
 		sched_pin();
-		pc = pcpu_find(curcpu);
+		pc = get_pcpu();
 		cmap2_pte2p = pc->pc_cmap2_pte2p;
 		mtx_lock(&pc->pc_cmap_lock);
 		if (pte2_load(cmap2_pte2p) != 0)
@@ -5754,7 +5755,7 @@ pmap_zero_page(vm_page_t m)
 	struct pcpu *pc;
 
 	sched_pin();
-	pc = pcpu_find(curcpu);
+	pc = get_pcpu();
 	cmap2_pte2p = pc->pc_cmap2_pte2p;
 	mtx_lock(&pc->pc_cmap_lock);
 	if (pte2_load(cmap2_pte2p) != 0)
@@ -5781,7 +5782,7 @@ pmap_zero_page_area(vm_page_t m, int off
 	struct pcpu *pc;
 
 	sched_pin();
-	pc = pcpu_find(curcpu);
+	pc = get_pcpu();
 	cmap2_pte2p = pc->pc_cmap2_pte2p;
 	mtx_lock(&pc->pc_cmap_lock);
 	if (pte2_load(cmap2_pte2p) != 0)
@@ -5811,7 +5812,7 @@ pmap_copy_page(vm_page_t src, vm_page_t 
 	struct pcpu *pc;
 
 	sched_pin();
-	pc = pcpu_find(curcpu);
+	pc = get_pcpu();
 	cmap1_pte2p = pc->pc_cmap1_pte2p;
 	cmap2_pte2p = pc->pc_cmap2_pte2p;
 	mtx_lock(&pc->pc_cmap_lock);
@@ -5846,7 +5847,7 @@ pmap_copy_pages(vm_page_t ma[], vm_offse
 	int cnt;
 
 	sched_pin();
-	pc = pcpu_find(curcpu);
+	pc = get_pcpu();
 	cmap1_pte2p = pc->pc_cmap1_pte2p;
 	cmap2_pte2p = pc->pc_cmap2_pte2p;
 	mtx_lock(&pc->pc_cmap_lock);
@@ -5885,34 +5886,34 @@ pmap_copy_pages(vm_page_t ma[], vm_offse
 vm_offset_t
 pmap_quick_enter_page(vm_page_t m)
 {
+	struct pcpu *pc;
 	pt2_entry_t *pte2p;
-	vm_offset_t qmap_addr;
 
 	critical_enter();
-	qmap_addr = PCPU_GET(qmap_addr);
-	pte2p = pt2map_entry(qmap_addr);
+	pc = get_pcpu();
+	pte2p = pc->pc_qmap_pte2p;
 
 	KASSERT(pte2_load(pte2p) == 0, ("%s: PTE2 busy", __func__));
 
 	pte2_store(pte2p, PTE2_KERN_NG(VM_PAGE_TO_PHYS(m), PTE2_AP_KRW,
 	    vm_page_pte2_attr(m)));
-	return (qmap_addr);
+	return (pc->pc_qmap_addr);
 }
 
 void
 pmap_quick_remove_page(vm_offset_t addr)
 {
+	struct pcpu *pc;
 	pt2_entry_t *pte2p;
-	vm_offset_t qmap_addr;
 
-	qmap_addr = PCPU_GET(qmap_addr);
-	pte2p = pt2map_entry(qmap_addr);
+	pc = get_pcpu();
+	pte2p = pc->pc_qmap_pte2p;
 
-	KASSERT(addr == qmap_addr, ("%s: invalid address", __func__));
+	KASSERT(addr == pc->pc_qmap_addr, ("%s: invalid address", __func__));
 	KASSERT(pte2_load(pte2p) != 0, ("%s: PTE2 not in use", __func__));
 
 	pte2_clear(pte2p);
-	tlb_flush(qmap_addr);
+	tlb_flush(pc->pc_qmap_addr);
 	critical_exit();
 }
 
@@ -6212,7 +6213,7 @@ pmap_dcache_wb_pou(vm_paddr_t pa, vm_siz
 	    ("%s: not on single page", __func__));
 
 	sched_pin();
-	pc = pcpu_find(curcpu);
+	pc = get_pcpu();
 	cmap2_pte2p = pc->pc_cmap2_pte2p;
 	mtx_lock(&pc->pc_cmap_lock);
 	if (pte2_load(cmap2_pte2p) != 0)
@@ -6477,7 +6478,7 @@ pmap_zero_page_check(vm_page_t m)
 	struct pcpu *pc;
 
 	sched_pin();
-	pc = pcpu_find(curcpu);
+	pc = get_pcpu();
 	cmap2_pte2p = pc->pc_cmap2_pte2p;
 	mtx_lock(&pc->pc_cmap_lock);
 	if (pte2_load(cmap2_pte2p) != 0)

Modified: projects/ipsec/sys/arm/conf/ARMADA38X
==============================================================================
--- projects/ipsec/sys/arm/conf/ARMADA38X	Thu Jan 26 13:50:09 2017	(r312816)
+++ projects/ipsec/sys/arm/conf/ARMADA38X	Thu Jan 26 15:37:53 2017	(r312817)
@@ -60,6 +60,9 @@ device		scbus
 device		pass
 device		da
 
+# SATA
+device		ahci
+
 # I2C
 device		iic
 device		iicbus

Modified: projects/ipsec/sys/arm/include/pcpu.h
==============================================================================
--- projects/ipsec/sys/arm/include/pcpu.h	Thu Jan 26 13:50:09 2017	(r312816)
+++ projects/ipsec/sys/arm/include/pcpu.h	Thu Jan 26 15:37:53 2017	(r312817)
@@ -54,15 +54,13 @@ struct vmspace;
 	caddr_t pc_cmap1_addr;						\
 	caddr_t pc_cmap2_addr;						\
 	vm_offset_t pc_qmap_addr;					\
-	void *pc_qmap_pte;						\
+	void *pc_qmap_pte2p;						\
 	unsigned int pc_dbreg[32];					\
 	int pc_dbreg_cmd;						\
 	char __pad[27]
 #else
 #define PCPU_MD_FIELDS							\
-	vm_offset_t qmap_addr;						\
-	void *pc_qmap_pte;						\
-	char __pad[149]
+	char __pad[157]
 #endif
 
 #ifdef _KERNEL

Modified: projects/ipsec/sys/arm/mv/armada38x/files.armada38x
==============================================================================
--- projects/ipsec/sys/arm/mv/armada38x/files.armada38x	Thu Jan 26 13:50:09 2017	(r312816)
+++ projects/ipsec/sys/arm/mv/armada38x/files.armada38x	Thu Jan 26 15:37:53 2017	(r312817)
@@ -1,6 +1,8 @@
 # $FreeBSD$
 arm/mv/mpic.c			standard
 
+arm/mv/armada/thermal.c		optional fdt
+
 arm/mv/armada38x/armada38x.c	standard
 arm/mv/armada38x/armada38x_mp.c	optional smp
 arm/mv/armada38x/pmsu.c		standard

Modified: projects/ipsec/sys/arm/mv/files.mv
==============================================================================
--- projects/ipsec/sys/arm/mv/files.mv	Thu Jan 26 13:50:09 2017	(r312816)
+++ projects/ipsec/sys/arm/mv/files.mv	Thu Jan 26 15:37:53 2017	(r312817)
@@ -29,5 +29,6 @@ dev/uart/uart_dev_ns8250.c	optional	uart
 dev/uart/uart_dev_snps.c	optional	uart
 dev/usb/controller/ehci_mv.c	optional	ehci
 dev/usb/controller/xhci_mv.c	optional	xhci
+dev/ahci/ahci_mv_fdt.c		optional	ahci
 
 kern/kern_clocksource.c		standard

Modified: projects/ipsec/sys/arm/mv/mv_common.c
==============================================================================
--- projects/ipsec/sys/arm/mv/mv_common.c	Thu Jan 26 13:50:09 2017	(r312816)
+++ projects/ipsec/sys/arm/mv/mv_common.c	Thu Jan 26 15:37:53 2017	(r312817)
@@ -98,6 +98,7 @@ static void decode_win_usb_setup(u_long)
 static void decode_win_usb3_setup(u_long);
 static void decode_win_eth_setup(u_long);
 static void decode_win_sata_setup(u_long);
+static void decode_win_ahci_setup(u_long);
 
 static void decode_win_idma_setup(u_long);
 static void decode_win_xor_setup(u_long);
@@ -107,6 +108,7 @@ static void decode_win_usb3_dump(u_long)
 static void decode_win_eth_dump(u_long base);
 static void decode_win_idma_dump(u_long base);
 static void decode_win_xor_dump(u_long base);
+static void decode_win_ahci_dump(u_long base);
 
 static int fdt_get_ranges(const char *, void *, int, int *, int *);
 #ifdef SOC_MV_ARMADA38X
@@ -139,6 +141,7 @@ static struct soc_node_spec soc_nodes[] 
 	{ "mrvl,ge", &decode_win_eth_setup, &decode_win_eth_dump },
 	{ "mrvl,usb-ehci", &decode_win_usb_setup, &decode_win_usb_dump },
 	{ "marvell,armada-380-xhci", &decode_win_usb3_setup, &decode_win_usb3_dump },
+	{ "marvell,armada-380-ahci", &decode_win_ahci_setup, &decode_win_ahci_dump },
 	{ "mrvl,sata", &decode_win_sata_setup, NULL },
 	{ "mrvl,xor", &decode_win_xor_setup, &decode_win_xor_dump },
 	{ "mrvl,idma", &decode_win_idma_setup, &decode_win_idma_dump },
@@ -146,7 +149,12 @@ static struct soc_node_spec soc_nodes[] 
 	{ NULL, NULL, NULL },
 };
 
-struct fdt_pm_mask_entry fdt_pm_mask_table[] = {
+struct fdt_pm_mask_entry {
+	char		*compat;
+	uint32_t	mask;
+};
+
+static struct fdt_pm_mask_entry fdt_pm_mask_table[] = {
 	{ "mrvl,ge",		CPU_PM_CTRL_GE(0) },
 	{ "mrvl,ge",		CPU_PM_CTRL_GE(1) },
 	{ "mrvl,usb-ehci",	CPU_PM_CTRL_USB(0) },
@@ -660,6 +668,11 @@ WIN_REG_BASE_IDX_RD(win_sata, cr, MV_WIN
 WIN_REG_BASE_IDX_RD(win_sata, br, MV_WIN_SATA_BASE);
 WIN_REG_BASE_IDX_WR(win_sata, cr, MV_WIN_SATA_CTRL);
 WIN_REG_BASE_IDX_WR(win_sata, br, MV_WIN_SATA_BASE);
+#if defined(SOC_MV_ARMADA38X)
+WIN_REG_BASE_IDX_RD(win_sata, sz, MV_WIN_SATA_SIZE);
+WIN_REG_BASE_IDX_WR(win_sata, sz, MV_WIN_SATA_SIZE);
+#endif
+
 #ifndef SOC_MV_DOVE
 WIN_REG_IDX_RD(ddr, br, MV_WIN_DDR_BASE, MV_DDR_CADR_BASE)
 WIN_REG_IDX_RD(ddr, sz, MV_WIN_DDR_SIZE, MV_DDR_CADR_BASE)
@@ -1999,6 +2012,75 @@ decode_win_sata_setup(u_long base)
 		}
 }
 
+#ifdef SOC_MV_ARMADA38X
+/*
+ * Configure AHCI decoding windows
+ */
+static void
+decode_win_ahci_setup(u_long base)
+{
+	uint32_t br, cr, sz;
+	int i, j;
+
+	for (i = 0; i < MV_WIN_SATA_MAX; i++) {
+		win_sata_cr_write(base, i, 0);
+		win_sata_br_write(base, i, 0);
+		win_sata_sz_write(base, i, 0);
+	}
+
+	for (i = 0; i < MV_WIN_DDR_MAX; i++) {
+		if (ddr_is_active(i)) {
+			cr = (ddr_attr(i) << IO_WIN_ATTR_SHIFT) |
+			    (ddr_target(i) << IO_WIN_TGT_SHIFT) |
+			    IO_WIN_ENA_MASK;
+			br = ddr_base(i);
+			sz = (ddr_size(i) - 1) &
+			    (IO_WIN_SIZE_MASK << IO_WIN_SIZE_SHIFT);
+
+			/* Use first available SATA window */
+			for (j = 0; j < MV_WIN_SATA_MAX; j++) {
+				if (win_sata_cr_read(base, j) & IO_WIN_ENA_MASK)
+					continue;
+
+				/* BASE is set to DRAM base (0x00000000) */
+				win_sata_br_write(base, j, br);
+				/* CTRL targets DRAM ctrl with 0x0E or 0x0D */
+				win_sata_cr_write(base, j, cr);
+				/* SIZE is set to 16MB - max value */
+				win_sata_sz_write(base, j, sz);
+				break;
+			}
+		}
+	}
+}
+
+static void
+decode_win_ahci_dump(u_long base)
+{
+	int i;
+
+	for (i = 0; i < MV_WIN_SATA_MAX; i++)
+		printf("SATA window#%d: cr 0x%08x, br 0x%08x, sz 0x%08x\n", i,
+		    win_sata_cr_read(base, i), win_sata_br_read(base, i),
+		    win_sata_sz_read(base,i));
+}
+
+#else
+/*
+ * Provide dummy functions to satisfy the build
+ * for SoC's not equipped with AHCI controller
+ */
+static void
+decode_win_ahci_setup(u_long base)
+{
+}
+
+static void
+decode_win_ahci_dump(u_long base)
+{
+}
+#endif
+
 static int
 decode_win_sata_valid(void)
 {
@@ -2172,6 +2254,10 @@ fdt_win_setup(void)
 
 			soc_node = &soc_nodes[i];
 
+			/* Setup only for enabled devices */
+			if (ofw_bus_node_status_okay(child) == 0)
+				continue;
+
 			if (!ofw_bus_node_is_compatible(child,soc_node->compat))
 				continue;
 

Modified: projects/ipsec/sys/arm/mv/mvwin.h
==============================================================================
--- projects/ipsec/sys/arm/mv/mvwin.h	Thu Jan 26 13:50:09 2017	(r312816)
+++ projects/ipsec/sys/arm/mv/mvwin.h	Thu Jan 26 15:37:53 2017	(r312817)
@@ -324,9 +324,16 @@
 #define MV_PCIE_CONTROL			(0x1a00)
 #define MV_PCIE_ROOT_CMPLX		(1 << 1)
 
+#if defined(SOC_MV_ARMADA38X)
+#define	MV_WIN_SATA_CTRL(n)		(0x10 * (n) + 0x60)
+#define	MV_WIN_SATA_BASE(n)		(0x10 * (n) + 0x64)
+#define	MV_WIN_SATA_SIZE(n)		(0x10 * (n) + 0x68)
+#define	MV_WIN_SATA_MAX			4
+#else
 #define	MV_WIN_SATA_CTRL(n)		(0x10 * (n) + 0x30)
 #define	MV_WIN_SATA_BASE(n)		(0x10 * (n) + 0x34)
 #define	MV_WIN_SATA_MAX			4
+#endif
 
 #if defined(SOC_MV_ARMADA38X)
 #define	MV_BOOTROM_MEM_ADDR	0xFFF00000

Modified: projects/ipsec/sys/cam/cam_iosched.c
==============================================================================
--- projects/ipsec/sys/cam/cam_iosched.c	Thu Jan 26 13:50:09 2017	(r312816)
+++ projects/ipsec/sys/cam/cam_iosched.c	Thu Jan 26 15:37:53 2017	(r312817)
@@ -112,7 +112,7 @@ typedef enum {
 	bandwidth,			/* Limit bandwidth to the drive */
 	limiter_max
 } io_limiter;
-	
+
 static const char *cam_iosched_limiter_names[] =
     { "none", "queue_depth", "iops", "bandwidth" };
 
@@ -131,7 +131,7 @@ typedef int l_tick_t(struct iop_stats *)
  * Called to see if the limiter thinks this IOP can be allowed to
  * proceed. If so, the limiter assumes that the while IOP proceeded
  * and makes any accounting of it that's needed.
- */ 
+ */
 typedef int l_iop_t(struct iop_stats *, struct bio *);
 
 /*
@@ -157,8 +157,7 @@ static l_tick_t cam_iosched_bw_tick;
 static l_iop_t cam_iosched_bw_caniop;
 static l_iop_t cam_iosched_bw_iop;
 
-struct limswitch 
-{
+struct limswitch {
 	l_init_t	*l_init;
 	l_tick_t	*l_tick;
 	l_iop_t		*l_iop;
@@ -195,8 +194,7 @@ struct limswitch 
 	},
 };
 
-struct iop_stats 
-{
+struct iop_stats {
 	/*
 	 * sysctl state for this subnode.
 	 */
@@ -212,7 +210,6 @@ struct iop_stats 
 	int		current;	/* Current rate limiter */
 	int		l_value1;	/* per-limiter scratch value 1. */
 	int		l_value2;	/* per-limiter scratch value 2. */
-	
 
 	/*
 	 * Debug information about counts of I/Os that have gone through the
@@ -223,7 +220,7 @@ struct iop_stats 
 	int		total;		/* Total for all time -- wraps */
 	int		in;		/* number queued all time -- wraps */
 	int		out;		/* number completed all time -- wraps */
-	
+
 	/*
 	 * Statistics on different bits of the process.
 	 */
@@ -251,8 +248,7 @@ typedef enum {
 static const char *cam_iosched_control_type_names[] =
     { "set_max", "read_latency" };
 
-struct control_loop
-{
+struct control_loop {
 	/*
 	 * sysctl state for this subnode.
 	 */
@@ -272,8 +268,7 @@ struct control_loop
 
 #endif
 
-struct cam_iosched_softc
-{
+struct cam_iosched_softc {
 	struct bio_queue_head bio_queue;
 	struct bio_queue_head trim_queue;
 				/* scheduler flags < 16, user flags >= 16 */
@@ -385,7 +380,7 @@ cam_iosched_limiter_iodone(struct iop_st
 static int
 cam_iosched_qd_iop(struct iop_stats *ios, struct bio *bp)
 {
-		
+
 	if (ios->current <= 0 || ios->pending < ios->current)
 		return 0;
 
@@ -395,7 +390,7 @@ cam_iosched_qd_iop(struct iop_stats *ios
 static int
 cam_iosched_qd_caniop(struct iop_stats *ios, struct bio *bp)
 {
-		
+
 	if (ios->current <= 0 || ios->pending < ios->current)
 		return 0;
 
@@ -405,7 +400,7 @@ cam_iosched_qd_caniop(struct iop_stats *
 static int
 cam_iosched_qd_iodone(struct iop_stats *ios, struct bio *bp)
 {
-		
+
 	if (ios->current <= 0 || ios->pending != ios->current)
 		return 0;
 
@@ -773,7 +768,7 @@ cam_iosched_limiter_sysctl(SYSCTL_HANDLE
 	struct cam_iosched_softc *isc;
 	int value, i, error;
 	const char *p;
-	
+
 	ios = arg1;
 	isc = ios->softc;
 	value = ios->limiter;
@@ -781,7 +776,7 @@ cam_iosched_limiter_sysctl(SYSCTL_HANDLE
 		p = "UNKNOWN";
 	else
 		p = cam_iosched_limiter_names[value];
-	
+
 	strlcpy(buf, p, sizeof(buf));
 	error = sysctl_handle_string(oidp, buf, sizeof(buf), req);
 	if (error != 0 || req->newptr == NULL)
@@ -819,7 +814,7 @@ cam_iosched_control_type_sysctl(SYSCTL_H
 	struct cam_iosched_softc *isc;
 	int value, i, error;
 	const char *p;
-	
+
 	clp = arg1;
 	isc = clp->softc;
 	value = clp->type;
@@ -827,7 +822,7 @@ cam_iosched_control_type_sysctl(SYSCTL_H
 		p = "UNKNOWN";
 	else
 		p = cam_iosched_control_type_names[value];
-	
+
 	strlcpy(buf, p, sizeof(buf));
 	error = sysctl_handle_string(oidp, buf, sizeof(buf), req);
 	if (error != 0 || req->newptr == NULL)
@@ -852,7 +847,7 @@ cam_iosched_sbintime_sysctl(SYSCTL_HANDL
 	sbintime_t value;
 	int error;
 	uint64_t us;
-	
+
 	value = *(sbintime_t *)arg1;
 	us = (uint64_t)value / SBT_1US;
 	snprintf(buf, sizeof(buf), "%ju", (intmax_t)us);
@@ -969,7 +964,7 @@ cam_iosched_cl_sysctl_init(struct cam_io
 	struct sysctl_oid_list *n;
 	struct sysctl_ctx_list *ctx;
 	struct control_loop *clp;
-	
+
 	clp = &isc->cl;
 	clp->sysctl_tree = SYSCTL_ADD_NODE(&isc->sysctl_ctx,
 	    SYSCTL_CHILDREN(isc->sysctl_tree), OID_AUTO, "control",
@@ -1007,7 +1002,7 @@ cam_iosched_cl_sysctl_fini(struct contro
 			printf("can't remove iosched sysctl control loop context\n");
 }
 #endif
-	    
+
 /*
  * Allocate the iosched structure. This also insulates callers from knowing
  * sizeof struct cam_iosched_softc.
@@ -1069,7 +1064,6 @@ cam_iosched_fini(struct cam_iosched_soft
 			callout_drain(&isc->ticker);
 			isc->flags &= ~ CAM_IOSCHED_FLAG_CALLOUT_ACTIVE;
 		}
-			
 #endif
 		free(isc, M_CAMSCHED);
 	}

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

From owner-svn-src-projects@freebsd.org  Fri Jan 27 16:53:55 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1B7F0CC31DF
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Fri, 27 Jan 2017 16:53:55 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id D42F4B7;
 Fri, 27 Jan 2017 16:53:54 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0RGrrO5087500;
 Fri, 27 Jan 2017 16:53:53 GMT (envelope-from emaste@FreeBSD.org)
Received: (from emaste@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0RGrrL3087499;
 Fri, 27 Jan 2017 16:53:53 GMT (envelope-from emaste@FreeBSD.org)
Message-Id: <201701271653.v0RGrrL3087499@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: emaste set sender to
 emaste@FreeBSD.org using -f
From: Ed Maste <emaste@FreeBSD.org>
Date: Fri, 27 Jan 2017 16:53:53 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r312891 -
 projects/clang400-import/contrib/llvm/tools/lld/ELF
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 27 Jan 2017 16:53:55 -0000

Author: emaste
Date: Fri Jan 27 16:53:53 2017
New Revision: 312891
URL: https://svnweb.freebsd.org/changeset/base/312891

Log:
  lld: do not round up PT_GNU_RELRO p_memsz
  
  The change was made to support glibc and believed to be a no-op on
  FreeBSD, but that is not the case for architectures with multiple page
  sizes, such as arm64. The relro p_memsz header was rounded up to the
  default maximum page size (64K). When 4K pages are in use, multiple
  pages beyond the final PT_LOAD segment had their permissions changed to
  read-only after application of relocations and copy relocations, which
  led to a segfault in certain cases.
  
  This reverts upstream r290986. I have started a discussion about the
  upstream fix on the LLVM mailing list.
  
  Reported by:	andrew
  Sponsored by:	The FreeBSD Foundation

Modified:
  projects/clang400-import/contrib/llvm/tools/lld/ELF/Writer.cpp

Modified: projects/clang400-import/contrib/llvm/tools/lld/ELF/Writer.cpp
==============================================================================
--- projects/clang400-import/contrib/llvm/tools/lld/ELF/Writer.cpp	Fri Jan 27 15:03:51 2017	(r312890)
+++ projects/clang400-import/contrib/llvm/tools/lld/ELF/Writer.cpp	Fri Jan 27 16:53:53 2017	(r312891)
@@ -1461,13 +1461,8 @@ template <class ELFT> void Writer<ELFT>:
     }
     if (P.p_type == PT_LOAD)
       P.p_align = Config->MaxPageSize;
-    else if (P.p_type == PT_GNU_RELRO) {
+    else if (P.p_type == PT_GNU_RELRO)
       P.p_align = 1;
-      // The glibc dynamic loader rounds the size down, so we need to round up
-      // to protect the last page. This is a no-op on FreeBSD which always
-      // rounds up.
-      P.p_memsz = alignTo(P.p_memsz, Config->MaxPageSize);
-    }
 
     // The TLS pointer goes after PT_TLS. At least glibc will align it,
     // so round up the size to make sure the offsets are correct.

From owner-svn-src-projects@freebsd.org  Fri Jan 27 20:01:51 2017
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id DB9D9CC4A57
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Fri, 27 Jan 2017 20:01:51 +0000 (UTC) (envelope-from dim@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 6DCFD1996;
 Fri, 27 Jan 2017 20:01:51 +0000 (UTC) (envelope-from dim@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0RK1o9G064006;
 Fri, 27 Jan 2017 20:01:50 GMT (envelope-from dim@FreeBSD.org)
Received: (from dim@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0RK1lq9063974;
 Fri, 27 Jan 2017 20:01:47 GMT (envelope-from dim@FreeBSD.org)
Message-Id: <201701272001.v0RK1lq9063974@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org
 using -f
From: Dimitry Andric <dim@FreeBSD.org>
Date: Fri, 27 Jan 2017 20:01:47 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r312894 - in projects/clang400-import: .
 contrib/elftoolchain/strings contrib/ipfilter/lib contrib/ipfilter/tools
 crypto/openssl crypto/openssl/apps crypto/openssl/crypto crypto/openssl...
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 27 Jan 2017 20:01:52 -0000

Author: dim
Date: Fri Jan 27 20:01:46 2017
New Revision: 312894
URL: https://svnweb.freebsd.org/changeset/base/312894

Log:
  Merge ^/head r312720 through r312893.

Added:
  projects/clang400-import/sys/arm/mv/armada/
     - copied from r312893, head/sys/arm/mv/armada/
  projects/clang400-import/sys/dev/ahci/ahci_mv_fdt.c
     - copied unchanged from r312893, head/sys/dev/ahci/ahci_mv_fdt.c
  projects/clang400-import/sys/dev/mlx5/diagnostics.h
     - copied unchanged from r312893, head/sys/dev/mlx5/diagnostics.h
  projects/clang400-import/sys/dev/mlx5/mlx5_core/mlx5_diagnostics.c
     - copied unchanged from r312893, head/sys/dev/mlx5/mlx5_core/mlx5_diagnostics.c
  projects/clang400-import/tools/build/options/WITHOUT_LLD_IS_LD
     - copied unchanged from r312893, head/tools/build/options/WITHOUT_LLD_IS_LD
  projects/clang400-import/tools/build/options/WITH_LLD_IS_LD
     - copied unchanged from r312893, head/tools/build/options/WITH_LLD_IS_LD
Deleted:
  projects/clang400-import/tools/build/options/WITHOUT_LLD_AS_LD
  projects/clang400-import/tools/build/options/WITH_LLD_AS_LD
Modified:
  projects/clang400-import/Makefile.inc1
  projects/clang400-import/Makefile.libcompat
  projects/clang400-import/UPDATING
  projects/clang400-import/contrib/elftoolchain/strings/strings.c
  projects/clang400-import/contrib/ipfilter/lib/rwlock_emul.c
  projects/clang400-import/contrib/ipfilter/tools/ipf.c
  projects/clang400-import/crypto/openssl/CHANGES
  projects/clang400-import/crypto/openssl/CONTRIBUTING
  projects/clang400-import/crypto/openssl/Configure
  projects/clang400-import/crypto/openssl/INSTALL
  projects/clang400-import/crypto/openssl/Makefile
  projects/clang400-import/crypto/openssl/Makefile.org
  projects/clang400-import/crypto/openssl/NEWS
  projects/clang400-import/crypto/openssl/README
  projects/clang400-import/crypto/openssl/apps/apps.c
  projects/clang400-import/crypto/openssl/apps/apps.h
  projects/clang400-import/crypto/openssl/apps/ca.c
  projects/clang400-import/crypto/openssl/apps/cms.c
  projects/clang400-import/crypto/openssl/apps/dgst.c
  projects/clang400-import/crypto/openssl/apps/dh.c
  projects/clang400-import/crypto/openssl/apps/dhparam.c
  projects/clang400-import/crypto/openssl/apps/dsa.c
  projects/clang400-import/crypto/openssl/apps/dsaparam.c
  projects/clang400-import/crypto/openssl/apps/ec.c
  projects/clang400-import/crypto/openssl/apps/ecparam.c
  projects/clang400-import/crypto/openssl/apps/enc.c
  projects/clang400-import/crypto/openssl/apps/gendh.c
  projects/clang400-import/crypto/openssl/apps/gendsa.c
  projects/clang400-import/crypto/openssl/apps/genpkey.c
  projects/clang400-import/crypto/openssl/apps/genrsa.c
  projects/clang400-import/crypto/openssl/apps/pkcs12.c
  projects/clang400-import/crypto/openssl/apps/pkcs7.c
  projects/clang400-import/crypto/openssl/apps/pkcs8.c
  projects/clang400-import/crypto/openssl/apps/pkey.c
  projects/clang400-import/crypto/openssl/apps/pkeyparam.c
  projects/clang400-import/crypto/openssl/apps/pkeyutl.c
  projects/clang400-import/crypto/openssl/apps/prime.c
  projects/clang400-import/crypto/openssl/apps/rand.c
  projects/clang400-import/crypto/openssl/apps/req.c
  projects/clang400-import/crypto/openssl/apps/rsa.c
  projects/clang400-import/crypto/openssl/apps/rsautl.c
  projects/clang400-import/crypto/openssl/apps/s_cb.c
  projects/clang400-import/crypto/openssl/apps/s_client.c
  projects/clang400-import/crypto/openssl/apps/s_server.c
  projects/clang400-import/crypto/openssl/apps/smime.c
  projects/clang400-import/crypto/openssl/apps/speed.c
  projects/clang400-import/crypto/openssl/apps/spkac.c
  projects/clang400-import/crypto/openssl/apps/srp.c
  projects/clang400-import/crypto/openssl/apps/verify.c
  projects/clang400-import/crypto/openssl/apps/x509.c
  projects/clang400-import/crypto/openssl/crypto/aes/asm/aes-s390x.pl
  projects/clang400-import/crypto/openssl/crypto/asn1/p5_pbev2.c
  projects/clang400-import/crypto/openssl/crypto/asn1/x_crl.c
  projects/clang400-import/crypto/openssl/crypto/bn/asm/x86_64-mont.pl
  projects/clang400-import/crypto/openssl/crypto/bn/asm/x86_64-mont5.pl
  projects/clang400-import/crypto/openssl/crypto/bn/bn_exp.c
  projects/clang400-import/crypto/openssl/crypto/bn/bn_mul.c
  projects/clang400-import/crypto/openssl/crypto/bn/bn_prime.c
  projects/clang400-import/crypto/openssl/crypto/bn/bn_sqr.c
  projects/clang400-import/crypto/openssl/crypto/cms/cms_kari.c
  projects/clang400-import/crypto/openssl/crypto/dh/dh_key.c
  projects/clang400-import/crypto/openssl/crypto/dsa/dsa_pmeth.c
  projects/clang400-import/crypto/openssl/crypto/ec/ec2_mult.c
  projects/clang400-import/crypto/openssl/crypto/ecdh/ech_ossl.c
  projects/clang400-import/crypto/openssl/crypto/err/err.c
  projects/clang400-import/crypto/openssl/crypto/evp/e_aes.c
  projects/clang400-import/crypto/openssl/crypto/evp/e_rc4_hmac_md5.c
  projects/clang400-import/crypto/openssl/crypto/evp/evp.h
  projects/clang400-import/crypto/openssl/crypto/evp/evp_err.c
  projects/clang400-import/crypto/openssl/crypto/evp/pmeth_fn.c
  projects/clang400-import/crypto/openssl/crypto/evp/pmeth_lib.c
  projects/clang400-import/crypto/openssl/crypto/modes/ctr128.c
  projects/clang400-import/crypto/openssl/crypto/opensslv.h
  projects/clang400-import/crypto/openssl/crypto/perlasm/x86_64-xlate.pl
  projects/clang400-import/crypto/openssl/crypto/rsa/rsa_gen.c
  projects/clang400-import/crypto/openssl/crypto/rsa/rsa_oaep.c
  projects/clang400-import/crypto/openssl/crypto/rsa/rsa_pmeth.c
  projects/clang400-import/crypto/openssl/crypto/s390xcap.c
  projects/clang400-import/crypto/openssl/crypto/ui/ui_lib.c
  projects/clang400-import/crypto/openssl/crypto/ui/ui_openssl.c
  projects/clang400-import/crypto/openssl/doc/apps/ocsp.pod
  projects/clang400-import/crypto/openssl/doc/crypto/EVP_DigestSignInit.pod
  projects/clang400-import/crypto/openssl/doc/crypto/EVP_DigestVerifyInit.pod
  projects/clang400-import/crypto/openssl/doc/crypto/RSA_generate_key.pod
  projects/clang400-import/crypto/openssl/doc/crypto/X509_NAME_get_index_by_NID.pod
  projects/clang400-import/crypto/openssl/doc/crypto/X509_NAME_print_ex.pod
  projects/clang400-import/crypto/openssl/doc/ssl/SSL_CTX_set_session_cache_mode.pod
  projects/clang400-import/crypto/openssl/doc/ssl/SSL_get_error.pod
  projects/clang400-import/crypto/openssl/doc/ssl/SSL_read.pod
  projects/clang400-import/crypto/openssl/doc/ssl/SSL_write.pod
  projects/clang400-import/crypto/openssl/engines/ccgost/Makefile
  projects/clang400-import/crypto/openssl/ssl/bad_dtls_test.c
  projects/clang400-import/crypto/openssl/ssl/s23_pkt.c
  projects/clang400-import/crypto/openssl/ssl/s2_lib.c
  projects/clang400-import/crypto/openssl/ssl/s2_pkt.c
  projects/clang400-import/crypto/openssl/ssl/s3_clnt.c
  projects/clang400-import/crypto/openssl/ssl/s3_pkt.c
  projects/clang400-import/crypto/openssl/ssl/s3_srvr.c
  projects/clang400-import/crypto/openssl/ssl/ssl_cert.c
  projects/clang400-import/crypto/openssl/ssl/ssl_err.c
  projects/clang400-import/crypto/openssl/ssl/ssl_lib.c
  projects/clang400-import/crypto/openssl/ssl/ssl_locl.h
  projects/clang400-import/crypto/openssl/ssl/ssl_sess.c
  projects/clang400-import/crypto/openssl/ssl/t1_lib.c
  projects/clang400-import/crypto/openssl/util/domd
  projects/clang400-import/crypto/openssl/util/mklink.pl
  projects/clang400-import/gnu/usr.bin/binutils/ld/Makefile
  projects/clang400-import/lib/libthr/thread/thr_exit.c
  projects/clang400-import/libexec/rtld-elf/aarch64/reloc.c
  projects/clang400-import/secure/lib/libcrypto/Makefile.inc
  projects/clang400-import/secure/lib/libcrypto/amd64/x86_64-mont.S
  projects/clang400-import/secure/lib/libcrypto/amd64/x86_64-mont5.S
  projects/clang400-import/secure/lib/libcrypto/man/ASN1_OBJECT_new.3
  projects/clang400-import/secure/lib/libcrypto/man/ASN1_STRING_length.3
  projects/clang400-import/secure/lib/libcrypto/man/ASN1_STRING_new.3
  projects/clang400-import/secure/lib/libcrypto/man/ASN1_STRING_print_ex.3
  projects/clang400-import/secure/lib/libcrypto/man/ASN1_TIME_set.3
  projects/clang400-import/secure/lib/libcrypto/man/ASN1_generate_nconf.3
  projects/clang400-import/secure/lib/libcrypto/man/BIO_ctrl.3
  projects/clang400-import/secure/lib/libcrypto/man/BIO_f_base64.3
  projects/clang400-import/secure/lib/libcrypto/man/BIO_f_buffer.3
  projects/clang400-import/secure/lib/libcrypto/man/BIO_f_cipher.3
  projects/clang400-import/secure/lib/libcrypto/man/BIO_f_md.3
  projects/clang400-import/secure/lib/libcrypto/man/BIO_f_null.3
  projects/clang400-import/secure/lib/libcrypto/man/BIO_f_ssl.3
  projects/clang400-import/secure/lib/libcrypto/man/BIO_find_type.3
  projects/clang400-import/secure/lib/libcrypto/man/BIO_new.3
  projects/clang400-import/secure/lib/libcrypto/man/BIO_new_CMS.3
  projects/clang400-import/secure/lib/libcrypto/man/BIO_push.3
  projects/clang400-import/secure/lib/libcrypto/man/BIO_read.3
  projects/clang400-import/secure/lib/libcrypto/man/BIO_s_accept.3
  projects/clang400-import/secure/lib/libcrypto/man/BIO_s_bio.3
  projects/clang400-import/secure/lib/libcrypto/man/BIO_s_connect.3
  projects/clang400-import/secure/lib/libcrypto/man/BIO_s_fd.3
  projects/clang400-import/secure/lib/libcrypto/man/BIO_s_file.3
  projects/clang400-import/secure/lib/libcrypto/man/BIO_s_mem.3
  projects/clang400-import/secure/lib/libcrypto/man/BIO_s_null.3
  projects/clang400-import/secure/lib/libcrypto/man/BIO_s_socket.3
  projects/clang400-import/secure/lib/libcrypto/man/BIO_set_callback.3
  projects/clang400-import/secure/lib/libcrypto/man/BIO_should_retry.3
  projects/clang400-import/secure/lib/libcrypto/man/BN_BLINDING_new.3
  projects/clang400-import/secure/lib/libcrypto/man/BN_CTX_new.3
  projects/clang400-import/secure/lib/libcrypto/man/BN_CTX_start.3
  projects/clang400-import/secure/lib/libcrypto/man/BN_add.3
  projects/clang400-import/secure/lib/libcrypto/man/BN_add_word.3
  projects/clang400-import/secure/lib/libcrypto/man/BN_bn2bin.3
  projects/clang400-import/secure/lib/libcrypto/man/BN_cmp.3
  projects/clang400-import/secure/lib/libcrypto/man/BN_copy.3
  projects/clang400-import/secure/lib/libcrypto/man/BN_generate_prime.3
  projects/clang400-import/secure/lib/libcrypto/man/BN_mod_inverse.3
  projects/clang400-import/secure/lib/libcrypto/man/BN_mod_mul_montgomery.3
  projects/clang400-import/secure/lib/libcrypto/man/BN_mod_mul_reciprocal.3
  projects/clang400-import/secure/lib/libcrypto/man/BN_new.3
  projects/clang400-import/secure/lib/libcrypto/man/BN_num_bytes.3
  projects/clang400-import/secure/lib/libcrypto/man/BN_rand.3
  projects/clang400-import/secure/lib/libcrypto/man/BN_set_bit.3
  projects/clang400-import/secure/lib/libcrypto/man/BN_swap.3
  projects/clang400-import/secure/lib/libcrypto/man/BN_zero.3
  projects/clang400-import/secure/lib/libcrypto/man/CMS_add0_cert.3
  projects/clang400-import/secure/lib/libcrypto/man/CMS_add1_recipient_cert.3
  projects/clang400-import/secure/lib/libcrypto/man/CMS_add1_signer.3
  projects/clang400-import/secure/lib/libcrypto/man/CMS_compress.3
  projects/clang400-import/secure/lib/libcrypto/man/CMS_decrypt.3
  projects/clang400-import/secure/lib/libcrypto/man/CMS_encrypt.3
  projects/clang400-import/secure/lib/libcrypto/man/CMS_final.3
  projects/clang400-import/secure/lib/libcrypto/man/CMS_get0_RecipientInfos.3
  projects/clang400-import/secure/lib/libcrypto/man/CMS_get0_SignerInfos.3
  projects/clang400-import/secure/lib/libcrypto/man/CMS_get0_type.3
  projects/clang400-import/secure/lib/libcrypto/man/CMS_get1_ReceiptRequest.3
  projects/clang400-import/secure/lib/libcrypto/man/CMS_sign.3
  projects/clang400-import/secure/lib/libcrypto/man/CMS_sign_receipt.3
  projects/clang400-import/secure/lib/libcrypto/man/CMS_uncompress.3
  projects/clang400-import/secure/lib/libcrypto/man/CMS_verify.3
  projects/clang400-import/secure/lib/libcrypto/man/CMS_verify_receipt.3
  projects/clang400-import/secure/lib/libcrypto/man/CONF_modules_free.3
  projects/clang400-import/secure/lib/libcrypto/man/CONF_modules_load_file.3
  projects/clang400-import/secure/lib/libcrypto/man/CRYPTO_set_ex_data.3
  projects/clang400-import/secure/lib/libcrypto/man/DH_generate_key.3
  projects/clang400-import/secure/lib/libcrypto/man/DH_generate_parameters.3
  projects/clang400-import/secure/lib/libcrypto/man/DH_get_ex_new_index.3
  projects/clang400-import/secure/lib/libcrypto/man/DH_new.3
  projects/clang400-import/secure/lib/libcrypto/man/DH_set_method.3
  projects/clang400-import/secure/lib/libcrypto/man/DH_size.3
  projects/clang400-import/secure/lib/libcrypto/man/DSA_SIG_new.3
  projects/clang400-import/secure/lib/libcrypto/man/DSA_do_sign.3
  projects/clang400-import/secure/lib/libcrypto/man/DSA_dup_DH.3
  projects/clang400-import/secure/lib/libcrypto/man/DSA_generate_key.3
  projects/clang400-import/secure/lib/libcrypto/man/DSA_generate_parameters.3
  projects/clang400-import/secure/lib/libcrypto/man/DSA_get_ex_new_index.3
  projects/clang400-import/secure/lib/libcrypto/man/DSA_new.3
  projects/clang400-import/secure/lib/libcrypto/man/DSA_set_method.3
  projects/clang400-import/secure/lib/libcrypto/man/DSA_sign.3
  projects/clang400-import/secure/lib/libcrypto/man/DSA_size.3
  projects/clang400-import/secure/lib/libcrypto/man/EC_GFp_simple_method.3
  projects/clang400-import/secure/lib/libcrypto/man/EC_GROUP_copy.3
  projects/clang400-import/secure/lib/libcrypto/man/EC_GROUP_new.3
  projects/clang400-import/secure/lib/libcrypto/man/EC_KEY_new.3
  projects/clang400-import/secure/lib/libcrypto/man/EC_POINT_add.3
  projects/clang400-import/secure/lib/libcrypto/man/EC_POINT_new.3
  projects/clang400-import/secure/lib/libcrypto/man/ERR_GET_LIB.3
  projects/clang400-import/secure/lib/libcrypto/man/ERR_clear_error.3
  projects/clang400-import/secure/lib/libcrypto/man/ERR_error_string.3
  projects/clang400-import/secure/lib/libcrypto/man/ERR_get_error.3
  projects/clang400-import/secure/lib/libcrypto/man/ERR_load_crypto_strings.3
  projects/clang400-import/secure/lib/libcrypto/man/ERR_load_strings.3
  projects/clang400-import/secure/lib/libcrypto/man/ERR_print_errors.3
  projects/clang400-import/secure/lib/libcrypto/man/ERR_put_error.3
  projects/clang400-import/secure/lib/libcrypto/man/ERR_remove_state.3
  projects/clang400-import/secure/lib/libcrypto/man/ERR_set_mark.3
  projects/clang400-import/secure/lib/libcrypto/man/EVP_BytesToKey.3
  projects/clang400-import/secure/lib/libcrypto/man/EVP_DigestInit.3
  projects/clang400-import/secure/lib/libcrypto/man/EVP_DigestSignInit.3
  projects/clang400-import/secure/lib/libcrypto/man/EVP_DigestVerifyInit.3
  projects/clang400-import/secure/lib/libcrypto/man/EVP_EncodeInit.3
  projects/clang400-import/secure/lib/libcrypto/man/EVP_EncryptInit.3
  projects/clang400-import/secure/lib/libcrypto/man/EVP_OpenInit.3
  projects/clang400-import/secure/lib/libcrypto/man/EVP_PKEY_CTX_ctrl.3
  projects/clang400-import/secure/lib/libcrypto/man/EVP_PKEY_CTX_new.3
  projects/clang400-import/secure/lib/libcrypto/man/EVP_PKEY_cmp.3
  projects/clang400-import/secure/lib/libcrypto/man/EVP_PKEY_decrypt.3
  projects/clang400-import/secure/lib/libcrypto/man/EVP_PKEY_derive.3
  projects/clang400-import/secure/lib/libcrypto/man/EVP_PKEY_encrypt.3
  projects/clang400-import/secure/lib/libcrypto/man/EVP_PKEY_get_default_digest.3
  projects/clang400-import/secure/lib/libcrypto/man/EVP_PKEY_keygen.3
  projects/clang400-import/secure/lib/libcrypto/man/EVP_PKEY_new.3
  projects/clang400-import/secure/lib/libcrypto/man/EVP_PKEY_print_private.3
  projects/clang400-import/secure/lib/libcrypto/man/EVP_PKEY_set1_RSA.3
  projects/clang400-import/secure/lib/libcrypto/man/EVP_PKEY_sign.3
  projects/clang400-import/secure/lib/libcrypto/man/EVP_PKEY_verify.3
  projects/clang400-import/secure/lib/libcrypto/man/EVP_PKEY_verify_recover.3
  projects/clang400-import/secure/lib/libcrypto/man/EVP_SealInit.3
  projects/clang400-import/secure/lib/libcrypto/man/EVP_SignInit.3
  projects/clang400-import/secure/lib/libcrypto/man/EVP_VerifyInit.3
  projects/clang400-import/secure/lib/libcrypto/man/OBJ_nid2obj.3
  projects/clang400-import/secure/lib/libcrypto/man/OPENSSL_Applink.3
  projects/clang400-import/secure/lib/libcrypto/man/OPENSSL_VERSION_NUMBER.3
  projects/clang400-import/secure/lib/libcrypto/man/OPENSSL_config.3
  projects/clang400-import/secure/lib/libcrypto/man/OPENSSL_ia32cap.3
  projects/clang400-import/secure/lib/libcrypto/man/OPENSSL_instrument_bus.3
  projects/clang400-import/secure/lib/libcrypto/man/OPENSSL_load_builtin_modules.3
  projects/clang400-import/secure/lib/libcrypto/man/OpenSSL_add_all_algorithms.3
  projects/clang400-import/secure/lib/libcrypto/man/PEM_write_bio_CMS_stream.3
  projects/clang400-import/secure/lib/libcrypto/man/PEM_write_bio_PKCS7_stream.3
  projects/clang400-import/secure/lib/libcrypto/man/PKCS12_create.3
  projects/clang400-import/secure/lib/libcrypto/man/PKCS12_parse.3
  projects/clang400-import/secure/lib/libcrypto/man/PKCS7_decrypt.3
  projects/clang400-import/secure/lib/libcrypto/man/PKCS7_encrypt.3
  projects/clang400-import/secure/lib/libcrypto/man/PKCS7_sign.3
  projects/clang400-import/secure/lib/libcrypto/man/PKCS7_sign_add_signer.3
  projects/clang400-import/secure/lib/libcrypto/man/PKCS7_verify.3
  projects/clang400-import/secure/lib/libcrypto/man/RAND_add.3
  projects/clang400-import/secure/lib/libcrypto/man/RAND_bytes.3
  projects/clang400-import/secure/lib/libcrypto/man/RAND_cleanup.3
  projects/clang400-import/secure/lib/libcrypto/man/RAND_egd.3
  projects/clang400-import/secure/lib/libcrypto/man/RAND_load_file.3
  projects/clang400-import/secure/lib/libcrypto/man/RAND_set_rand_method.3
  projects/clang400-import/secure/lib/libcrypto/man/RSA_blinding_on.3
  projects/clang400-import/secure/lib/libcrypto/man/RSA_check_key.3
  projects/clang400-import/secure/lib/libcrypto/man/RSA_generate_key.3
  projects/clang400-import/secure/lib/libcrypto/man/RSA_get_ex_new_index.3
  projects/clang400-import/secure/lib/libcrypto/man/RSA_new.3
  projects/clang400-import/secure/lib/libcrypto/man/RSA_padding_add_PKCS1_type_1.3
  projects/clang400-import/secure/lib/libcrypto/man/RSA_print.3
  projects/clang400-import/secure/lib/libcrypto/man/RSA_private_encrypt.3
  projects/clang400-import/secure/lib/libcrypto/man/RSA_public_encrypt.3
  projects/clang400-import/secure/lib/libcrypto/man/RSA_set_method.3
  projects/clang400-import/secure/lib/libcrypto/man/RSA_sign.3
  projects/clang400-import/secure/lib/libcrypto/man/RSA_sign_ASN1_OCTET_STRING.3
  projects/clang400-import/secure/lib/libcrypto/man/RSA_size.3
  projects/clang400-import/secure/lib/libcrypto/man/SMIME_read_CMS.3
  projects/clang400-import/secure/lib/libcrypto/man/SMIME_read_PKCS7.3
  projects/clang400-import/secure/lib/libcrypto/man/SMIME_write_CMS.3
  projects/clang400-import/secure/lib/libcrypto/man/SMIME_write_PKCS7.3
  projects/clang400-import/secure/lib/libcrypto/man/X509_NAME_ENTRY_get_object.3
  projects/clang400-import/secure/lib/libcrypto/man/X509_NAME_add_entry_by_txt.3
  projects/clang400-import/secure/lib/libcrypto/man/X509_NAME_get_index_by_NID.3
  projects/clang400-import/secure/lib/libcrypto/man/X509_NAME_print_ex.3
  projects/clang400-import/secure/lib/libcrypto/man/X509_STORE_CTX_get_error.3
  projects/clang400-import/secure/lib/libcrypto/man/X509_STORE_CTX_get_ex_new_index.3
  projects/clang400-import/secure/lib/libcrypto/man/X509_STORE_CTX_new.3
  projects/clang400-import/secure/lib/libcrypto/man/X509_STORE_CTX_set_verify_cb.3
  projects/clang400-import/secure/lib/libcrypto/man/X509_STORE_set_verify_cb_func.3
  projects/clang400-import/secure/lib/libcrypto/man/X509_VERIFY_PARAM_set_flags.3
  projects/clang400-import/secure/lib/libcrypto/man/X509_check_host.3
  projects/clang400-import/secure/lib/libcrypto/man/X509_new.3
  projects/clang400-import/secure/lib/libcrypto/man/X509_verify_cert.3
  projects/clang400-import/secure/lib/libcrypto/man/bio.3
  projects/clang400-import/secure/lib/libcrypto/man/blowfish.3
  projects/clang400-import/secure/lib/libcrypto/man/bn.3
  projects/clang400-import/secure/lib/libcrypto/man/bn_internal.3
  projects/clang400-import/secure/lib/libcrypto/man/buffer.3
  projects/clang400-import/secure/lib/libcrypto/man/crypto.3
  projects/clang400-import/secure/lib/libcrypto/man/d2i_ASN1_OBJECT.3
  projects/clang400-import/secure/lib/libcrypto/man/d2i_CMS_ContentInfo.3
  projects/clang400-import/secure/lib/libcrypto/man/d2i_DHparams.3
  projects/clang400-import/secure/lib/libcrypto/man/d2i_DSAPublicKey.3
  projects/clang400-import/secure/lib/libcrypto/man/d2i_ECPKParameters.3
  projects/clang400-import/secure/lib/libcrypto/man/d2i_ECPrivateKey.3
  projects/clang400-import/secure/lib/libcrypto/man/d2i_PKCS8PrivateKey.3
  projects/clang400-import/secure/lib/libcrypto/man/d2i_PrivateKey.3
  projects/clang400-import/secure/lib/libcrypto/man/d2i_RSAPublicKey.3
  projects/clang400-import/secure/lib/libcrypto/man/d2i_X509.3
  projects/clang400-import/secure/lib/libcrypto/man/d2i_X509_ALGOR.3
  projects/clang400-import/secure/lib/libcrypto/man/d2i_X509_CRL.3
  projects/clang400-import/secure/lib/libcrypto/man/d2i_X509_NAME.3
  projects/clang400-import/secure/lib/libcrypto/man/d2i_X509_REQ.3
  projects/clang400-import/secure/lib/libcrypto/man/d2i_X509_SIG.3
  projects/clang400-import/secure/lib/libcrypto/man/des.3
  projects/clang400-import/secure/lib/libcrypto/man/dh.3
  projects/clang400-import/secure/lib/libcrypto/man/dsa.3
  projects/clang400-import/secure/lib/libcrypto/man/ec.3
  projects/clang400-import/secure/lib/libcrypto/man/ecdsa.3
  projects/clang400-import/secure/lib/libcrypto/man/engine.3
  projects/clang400-import/secure/lib/libcrypto/man/err.3
  projects/clang400-import/secure/lib/libcrypto/man/evp.3
  projects/clang400-import/secure/lib/libcrypto/man/hmac.3
  projects/clang400-import/secure/lib/libcrypto/man/i2d_CMS_bio_stream.3
  projects/clang400-import/secure/lib/libcrypto/man/i2d_PKCS7_bio_stream.3
  projects/clang400-import/secure/lib/libcrypto/man/lh_stats.3
  projects/clang400-import/secure/lib/libcrypto/man/lhash.3
  projects/clang400-import/secure/lib/libcrypto/man/md5.3
  projects/clang400-import/secure/lib/libcrypto/man/mdc2.3
  projects/clang400-import/secure/lib/libcrypto/man/pem.3
  projects/clang400-import/secure/lib/libcrypto/man/rand.3
  projects/clang400-import/secure/lib/libcrypto/man/rc4.3
  projects/clang400-import/secure/lib/libcrypto/man/ripemd.3
  projects/clang400-import/secure/lib/libcrypto/man/rsa.3
  projects/clang400-import/secure/lib/libcrypto/man/sha.3
  projects/clang400-import/secure/lib/libcrypto/man/threads.3
  projects/clang400-import/secure/lib/libcrypto/man/ui.3
  projects/clang400-import/secure/lib/libcrypto/man/ui_compat.3
  projects/clang400-import/secure/lib/libcrypto/man/x509.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CIPHER_get_name.3
  projects/clang400-import/secure/lib/libssl/man/SSL_COMP_add_compression_method.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CONF_CTX_new.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CONF_CTX_set1_prefix.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CONF_CTX_set_flags.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CONF_CTX_set_ssl_ctx.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CONF_cmd.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CONF_cmd_argv.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CTX_add1_chain_cert.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CTX_add_extra_chain_cert.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CTX_add_session.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CTX_ctrl.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CTX_flush_sessions.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CTX_free.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CTX_get0_param.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CTX_get_ex_new_index.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CTX_get_verify_mode.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CTX_load_verify_locations.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CTX_new.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CTX_sess_number.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CTX_sess_set_cache_size.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CTX_sess_set_get_cb.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CTX_sessions.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CTX_set1_curves.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CTX_set1_verify_cert_store.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CTX_set_alpn_select_cb.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CTX_set_cert_cb.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CTX_set_cert_store.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CTX_set_cert_verify_callback.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CTX_set_cipher_list.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CTX_set_client_CA_list.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CTX_set_client_cert_cb.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CTX_set_custom_cli_ext.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CTX_set_default_passwd_cb.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CTX_set_generate_session_id.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CTX_set_info_callback.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CTX_set_max_cert_list.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CTX_set_mode.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CTX_set_msg_callback.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CTX_set_options.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CTX_set_psk_client_callback.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CTX_set_quiet_shutdown.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CTX_set_read_ahead.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CTX_set_session_cache_mode.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CTX_set_session_id_context.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CTX_set_ssl_version.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CTX_set_timeout.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CTX_set_tlsext_status_cb.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CTX_set_tlsext_ticket_key_cb.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CTX_set_tmp_dh_callback.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CTX_set_tmp_rsa_callback.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CTX_set_verify.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CTX_use_certificate.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CTX_use_psk_identity_hint.3
  projects/clang400-import/secure/lib/libssl/man/SSL_CTX_use_serverinfo.3
  projects/clang400-import/secure/lib/libssl/man/SSL_SESSION_free.3
  projects/clang400-import/secure/lib/libssl/man/SSL_SESSION_get_ex_new_index.3
  projects/clang400-import/secure/lib/libssl/man/SSL_SESSION_get_time.3
  projects/clang400-import/secure/lib/libssl/man/SSL_accept.3
  projects/clang400-import/secure/lib/libssl/man/SSL_alert_type_string.3
  projects/clang400-import/secure/lib/libssl/man/SSL_check_chain.3
  projects/clang400-import/secure/lib/libssl/man/SSL_clear.3
  projects/clang400-import/secure/lib/libssl/man/SSL_connect.3
  projects/clang400-import/secure/lib/libssl/man/SSL_do_handshake.3
  projects/clang400-import/secure/lib/libssl/man/SSL_free.3
  projects/clang400-import/secure/lib/libssl/man/SSL_get_SSL_CTX.3
  projects/clang400-import/secure/lib/libssl/man/SSL_get_ciphers.3
  projects/clang400-import/secure/lib/libssl/man/SSL_get_client_CA_list.3
  projects/clang400-import/secure/lib/libssl/man/SSL_get_current_cipher.3
  projects/clang400-import/secure/lib/libssl/man/SSL_get_default_timeout.3
  projects/clang400-import/secure/lib/libssl/man/SSL_get_error.3
  projects/clang400-import/secure/lib/libssl/man/SSL_get_ex_data_X509_STORE_CTX_idx.3
  projects/clang400-import/secure/lib/libssl/man/SSL_get_ex_new_index.3
  projects/clang400-import/secure/lib/libssl/man/SSL_get_fd.3
  projects/clang400-import/secure/lib/libssl/man/SSL_get_peer_cert_chain.3
  projects/clang400-import/secure/lib/libssl/man/SSL_get_peer_certificate.3
  projects/clang400-import/secure/lib/libssl/man/SSL_get_psk_identity.3
  projects/clang400-import/secure/lib/libssl/man/SSL_get_rbio.3
  projects/clang400-import/secure/lib/libssl/man/SSL_get_session.3
  projects/clang400-import/secure/lib/libssl/man/SSL_get_verify_result.3
  projects/clang400-import/secure/lib/libssl/man/SSL_get_version.3
  projects/clang400-import/secure/lib/libssl/man/SSL_library_init.3
  projects/clang400-import/secure/lib/libssl/man/SSL_load_client_CA_file.3
  projects/clang400-import/secure/lib/libssl/man/SSL_new.3
  projects/clang400-import/secure/lib/libssl/man/SSL_pending.3
  projects/clang400-import/secure/lib/libssl/man/SSL_read.3
  projects/clang400-import/secure/lib/libssl/man/SSL_rstate_string.3
  projects/clang400-import/secure/lib/libssl/man/SSL_session_reused.3
  projects/clang400-import/secure/lib/libssl/man/SSL_set_bio.3
  projects/clang400-import/secure/lib/libssl/man/SSL_set_connect_state.3
  projects/clang400-import/secure/lib/libssl/man/SSL_set_fd.3
  projects/clang400-import/secure/lib/libssl/man/SSL_set_session.3
  projects/clang400-import/secure/lib/libssl/man/SSL_set_shutdown.3
  projects/clang400-import/secure/lib/libssl/man/SSL_set_verify_result.3
  projects/clang400-import/secure/lib/libssl/man/SSL_shutdown.3
  projects/clang400-import/secure/lib/libssl/man/SSL_state_string.3
  projects/clang400-import/secure/lib/libssl/man/SSL_want.3
  projects/clang400-import/secure/lib/libssl/man/SSL_write.3
  projects/clang400-import/secure/lib/libssl/man/d2i_SSL_SESSION.3
  projects/clang400-import/secure/lib/libssl/man/ssl.3
  projects/clang400-import/secure/usr.bin/openssl/man/CA.pl.1
  projects/clang400-import/secure/usr.bin/openssl/man/asn1parse.1
  projects/clang400-import/secure/usr.bin/openssl/man/c_rehash.1
  projects/clang400-import/secure/usr.bin/openssl/man/ca.1
  projects/clang400-import/secure/usr.bin/openssl/man/ciphers.1
  projects/clang400-import/secure/usr.bin/openssl/man/cms.1
  projects/clang400-import/secure/usr.bin/openssl/man/crl.1
  projects/clang400-import/secure/usr.bin/openssl/man/crl2pkcs7.1
  projects/clang400-import/secure/usr.bin/openssl/man/dgst.1
  projects/clang400-import/secure/usr.bin/openssl/man/dhparam.1
  projects/clang400-import/secure/usr.bin/openssl/man/dsa.1
  projects/clang400-import/secure/usr.bin/openssl/man/dsaparam.1
  projects/clang400-import/secure/usr.bin/openssl/man/ec.1
  projects/clang400-import/secure/usr.bin/openssl/man/ecparam.1
  projects/clang400-import/secure/usr.bin/openssl/man/enc.1
  projects/clang400-import/secure/usr.bin/openssl/man/errstr.1
  projects/clang400-import/secure/usr.bin/openssl/man/gendsa.1
  projects/clang400-import/secure/usr.bin/openssl/man/genpkey.1
  projects/clang400-import/secure/usr.bin/openssl/man/genrsa.1
  projects/clang400-import/secure/usr.bin/openssl/man/nseq.1
  projects/clang400-import/secure/usr.bin/openssl/man/ocsp.1
  projects/clang400-import/secure/usr.bin/openssl/man/openssl.1
  projects/clang400-import/secure/usr.bin/openssl/man/passwd.1
  projects/clang400-import/secure/usr.bin/openssl/man/pkcs12.1
  projects/clang400-import/secure/usr.bin/openssl/man/pkcs7.1
  projects/clang400-import/secure/usr.bin/openssl/man/pkcs8.1
  projects/clang400-import/secure/usr.bin/openssl/man/pkey.1
  projects/clang400-import/secure/usr.bin/openssl/man/pkeyparam.1
  projects/clang400-import/secure/usr.bin/openssl/man/pkeyutl.1
  projects/clang400-import/secure/usr.bin/openssl/man/rand.1
  projects/clang400-import/secure/usr.bin/openssl/man/req.1
  projects/clang400-import/secure/usr.bin/openssl/man/rsa.1
  projects/clang400-import/secure/usr.bin/openssl/man/rsautl.1
  projects/clang400-import/secure/usr.bin/openssl/man/s_client.1
  projects/clang400-import/secure/usr.bin/openssl/man/s_server.1
  projects/clang400-import/secure/usr.bin/openssl/man/s_time.1
  projects/clang400-import/secure/usr.bin/openssl/man/sess_id.1
  projects/clang400-import/secure/usr.bin/openssl/man/smime.1
  projects/clang400-import/secure/usr.bin/openssl/man/speed.1
  projects/clang400-import/secure/usr.bin/openssl/man/spkac.1
  projects/clang400-import/secure/usr.bin/openssl/man/ts.1
  projects/clang400-import/secure/usr.bin/openssl/man/tsget.1
  projects/clang400-import/secure/usr.bin/openssl/man/verify.1
  projects/clang400-import/secure/usr.bin/openssl/man/version.1
  projects/clang400-import/secure/usr.bin/openssl/man/x509.1
  projects/clang400-import/secure/usr.bin/openssl/man/x509v3_config.1
  projects/clang400-import/share/man/man9/printf.9
  projects/clang400-import/share/misc/committers-ports.dot
  projects/clang400-import/share/misc/scsi_modes
  projects/clang400-import/share/mk/src.opts.mk
  projects/clang400-import/share/skel/dot.shrc
  projects/clang400-import/sys/arm/arm/pmap-v6.c
  projects/clang400-import/sys/arm/conf/ARMADA38X
  projects/clang400-import/sys/arm/include/pcpu.h
  projects/clang400-import/sys/arm/mv/armada38x/files.armada38x
  projects/clang400-import/sys/arm/mv/files.mv
  projects/clang400-import/sys/arm/mv/mv_common.c
  projects/clang400-import/sys/arm/mv/mvwin.h
  projects/clang400-import/sys/arm/ti/am335x/am335x_dmtpps.c
  projects/clang400-import/sys/arm/ti/am335x/am335x_dmtreg.h
  projects/clang400-import/sys/cam/cam_iosched.c
  projects/clang400-import/sys/cam/cam_xpt.c
  projects/clang400-import/sys/cam/cam_xpt.h
  projects/clang400-import/sys/cam/ctl/ctl.h
  projects/clang400-import/sys/cam/ctl/ctl_io.h
  projects/clang400-import/sys/cam/ctl/ctl_ioctl.h
  projects/clang400-import/sys/cam/ctl/ctl_private.h
  projects/clang400-import/sys/cddl/contrib/opensolaris/uts/intel/dtrace/fasttrap_isa.c
  projects/clang400-import/sys/cddl/dev/dtrace/dtrace_ioctl.c
  projects/clang400-import/sys/compat/linuxkpi/common/include/linux/compiler.h
  projects/clang400-import/sys/conf/files
  projects/clang400-import/sys/conf/ldscript.amd64
  projects/clang400-import/sys/contrib/ipfilter/netinet/ip_compat.h
  projects/clang400-import/sys/contrib/ipfilter/netinet/ip_frag.c
  projects/clang400-import/sys/contrib/ipfilter/netinet/ip_nat.c
  projects/clang400-import/sys/contrib/ipfilter/netinet/ip_nat6.c
  projects/clang400-import/sys/dev/acpi_support/acpi_panasonic.c
  projects/clang400-import/sys/dev/ahci/ahci.c
  projects/clang400-import/sys/dev/ahci/ahci.h
  projects/clang400-import/sys/dev/ahci/ahci_pci.c
  projects/clang400-import/sys/dev/ath/ath_hal/ah.c
  projects/clang400-import/sys/dev/ath/if_ath.c
  projects/clang400-import/sys/dev/cesa/cesa.c
  projects/clang400-import/sys/dev/cesa/cesa.h
  projects/clang400-import/sys/dev/drm2/drm_os_freebsd.h
  projects/clang400-import/sys/dev/e1000/em_txrx.c
  projects/clang400-import/sys/dev/fdt/fdt_common.h
  projects/clang400-import/sys/dev/mlx5/device.h
  projects/clang400-import/sys/dev/mlx5/driver.h
  projects/clang400-import/sys/dev/mlx5/mlx5_core/mlx5_alloc.c
  projects/clang400-import/sys/dev/mlx5/mlx5_core/mlx5_cmd.c
  projects/clang400-import/sys/dev/mlx5/mlx5_core/mlx5_health.c
  projects/clang400-import/sys/dev/mlx5/mlx5_core/mlx5_main.c
  projects/clang400-import/sys/dev/mlx5/mlx5_core/mlx5_pagealloc.c
  projects/clang400-import/sys/dev/mlx5/mlx5_en/en.h
  projects/clang400-import/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c
  projects/clang400-import/sys/dev/mlx5/mlx5_en/mlx5_en_main.c
  projects/clang400-import/sys/dev/ofw/ofw_bus_subr.c
  projects/clang400-import/sys/dev/ofw/ofw_bus_subr.h
  projects/clang400-import/sys/dev/qlxgbe/ql_def.h
  projects/clang400-import/sys/dev/qlxgbe/ql_glbl.h
  projects/clang400-import/sys/dev/qlxgbe/ql_hw.c
  projects/clang400-import/sys/dev/qlxgbe/ql_hw.h
  projects/clang400-import/sys/dev/qlxgbe/ql_isr.c
  projects/clang400-import/sys/dev/qlxgbe/ql_os.c
  projects/clang400-import/sys/dev/qlxgbe/ql_os.h
  projects/clang400-import/sys/dev/qlxgbe/ql_ver.h
  projects/clang400-import/sys/dev/sfxge/sfxge.h
  projects/clang400-import/sys/dev/sfxge/sfxge_rx.c
  projects/clang400-import/sys/dev/sfxge/sfxge_rx.h
  projects/clang400-import/sys/dev/sfxge/sfxge_tx.c
  projects/clang400-import/sys/dev/sfxge/sfxge_tx.h
  projects/clang400-import/sys/kern/imgact_elf.c
  projects/clang400-import/sys/kern/kern_lockstat.c
  projects/clang400-import/sys/kern/kern_mutex.c
  projects/clang400-import/sys/kern/kern_ntptime.c
  projects/clang400-import/sys/kern/kern_prot.c
  projects/clang400-import/sys/kern/kern_rwlock.c
  projects/clang400-import/sys/kern/kern_sx.c
  projects/clang400-import/sys/kern/subr_gtaskqueue.c
  projects/clang400-import/sys/kern/subr_lock.c
  projects/clang400-import/sys/kern/uipc_usrreq.c
  projects/clang400-import/sys/kern/vfs_cache.c
  projects/clang400-import/sys/mips/conf/ERL
  projects/clang400-import/sys/modules/Makefile
  projects/clang400-import/sys/modules/mlx5/Makefile
  projects/clang400-import/sys/modules/usb/Makefile
  projects/clang400-import/sys/net/if.c
  projects/clang400-import/sys/net/if_bridge.c
  projects/clang400-import/sys/net/if_bridgevar.h
  projects/clang400-import/sys/net/iflib.c
  projects/clang400-import/sys/net80211/ieee80211_var.h
  projects/clang400-import/sys/netinet/in.c
  projects/clang400-import/sys/netinet/ip_carp.c
  projects/clang400-import/sys/netinet/ip_carp.h
  projects/clang400-import/sys/netinet/sctp_output.c
  projects/clang400-import/sys/netinet6/in6.c
  projects/clang400-import/sys/sys/capability.h
  projects/clang400-import/sys/sys/gtaskqueue.h
  projects/clang400-import/sys/sys/pmckern.h
  projects/clang400-import/sys/sys/systm.h
  projects/clang400-import/sys/vm/vm_mmap.c
  projects/clang400-import/usr.bin/clang/lld/Makefile
Directory Properties:
  projects/clang400-import/   (props changed)
  projects/clang400-import/contrib/elftoolchain/   (props changed)
  projects/clang400-import/contrib/ipfilter/   (props changed)
  projects/clang400-import/contrib/llvm/   (props changed)
  projects/clang400-import/crypto/openssl/   (props changed)
  projects/clang400-import/gnu/usr.bin/binutils/   (props changed)
  projects/clang400-import/sys/cddl/contrib/opensolaris/   (props changed)
  projects/clang400-import/sys/contrib/ipfilter/   (props changed)

Modified: projects/clang400-import/Makefile.inc1
==============================================================================
--- projects/clang400-import/Makefile.inc1	Fri Jan 27 17:58:41 2017	(r312893)
+++ projects/clang400-import/Makefile.inc1	Fri Jan 27 20:01:46 2017	(r312894)
@@ -516,7 +516,7 @@ TMAKE=		MAKEOBJDIRPREFIX=${OBJTREE} \
 # cross-tools stage
 XMAKE=		TOOLS_PREFIX=${WORLDTMP} ${BMAKE} \
 		TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
-		MK_GDB=no MK_TESTS=no
+		MK_GDB=no MK_TESTS=no MK_LLD_IS_LD=no
 
 # kernel-tools stage
 KTMAKEENV=	INSTALL="sh ${.CURDIR}/tools/install.sh" \

Modified: projects/clang400-import/Makefile.libcompat
==============================================================================
--- projects/clang400-import/Makefile.libcompat	Fri Jan 27 17:58:41 2017	(r312893)
+++ projects/clang400-import/Makefile.libcompat	Fri Jan 27 20:01:46 2017	(r312894)
@@ -50,6 +50,8 @@ LIB32WMAKEFLAGS= LD="${XLD} -m elf32btsm
 LIB32WMAKEFLAGS+= OBJCOPY="${XOBJCOPY}"
 .endif
 
+LIB32WMAKEFLAGS+= NM="${XNM}"
+
 
 LIB32CFLAGS=	-DCOMPAT_32BIT
 LIB32DTRACE=	${DTRACE} -32

Modified: projects/clang400-import/UPDATING
==============================================================================
--- projects/clang400-import/UPDATING	Fri Jan 27 17:58:41 2017	(r312893)
+++ projects/clang400-import/UPDATING	Fri Jan 27 20:01:46 2017	(r312894)
@@ -56,6 +56,10 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 12
 	Please see the 20141231 entry below for information about prerequisites
 	and upgrading, if you are not already using clang 3.5.0 or higher.
 
+20170127:
+	The WITH_LLD_AS_LD / WITHOUT_LLD_AS_LD build knobs have been renamed
+	WITH_LLD_IS_LD / WITHOUT_LLD_IS_LD, for consistency with CLANG_IS_CC.
+
 20170112:
 	The EM_MULTIQUEUE kernel configuration option is deprecated now that
 	the em(4) driver conforms to iflib specifications.

Modified: projects/clang400-import/contrib/elftoolchain/strings/strings.c
==============================================================================
--- projects/clang400-import/contrib/elftoolchain/strings/strings.c	Fri Jan 27 17:58:41 2017	(r312893)
+++ projects/clang400-import/contrib/elftoolchain/strings/strings.c	Fri Jan 27 20:01:46 2017	(r312894)
@@ -189,7 +189,7 @@ main(int argc, char **argv)
 	if (!min_len)
 		min_len = 4;
 	if (!*argv)
-		rc = handle_file("{standard input}");
+		rc = find_strings("{standard input}", 0, 0);
 	else while (*argv) {
 		if (handle_file(*argv) != 0)
 			rc = 1;
@@ -205,13 +205,9 @@ handle_file(const char *name)
 
 	if (name == NULL)
 		return (1);
-	if (strcmp("{standard input}", name) != 0) {
-		if (freopen(name, "rb", stdin) == NULL) {
-			warnx("'%s': %s", name, strerror(errno));
-			return (1);
-		}
-	} else {
-		return (find_strings(name, (off_t)0, (off_t)0));
+	if (freopen(name, "rb", stdin) == NULL) {
+		warnx("'%s': %s", name, strerror(errno));
+		return (1);
 	}
 
 	fd = fileno(stdin);

Modified: projects/clang400-import/contrib/ipfilter/lib/rwlock_emul.c
==============================================================================
--- projects/clang400-import/contrib/ipfilter/lib/rwlock_emul.c	Fri Jan 27 17:58:41 2017	(r312893)
+++ projects/clang400-import/contrib/ipfilter/lib/rwlock_emul.c	Fri Jan 27 20:01:46 2017	(r312894)
@@ -56,6 +56,27 @@ void eMrwlock_write_enter(rw, file, line
 }
 
 
+void eMrwlock_try_upgrade(rw, file, line)
+	eMrwlock_t *rw;
+	char *file;
+	int line;
+{
+	if (rw->eMrw_magic != EMM_MAGIC) {
+		fprintf(stderr, "%s:eMrwlock_write_enter(%p): bad magic: %#x\n",
+			rw->eMrw_owner, rw, rw->eMrw_magic);
+		abort();
+	}
+	if (rw->eMrw_read != 0 || rw->eMrw_write != 0) {
+		fprintf(stderr,
+			"%s:eMrwlock_try_upgrade(%p): already locked: %d/%d\n",
+			rw->eMrw_owner, rw, rw->eMrw_read, rw->eMrw_write);
+		abort();
+	}
+	rw->eMrw_write++;
+	rw->eMrw_heldin = file;
+	rw->eMrw_heldat = line;
+}
+
 void eMrwlock_downgrade(rw, file, line)
 	eMrwlock_t *rw;
 	char *file;

Modified: projects/clang400-import/contrib/ipfilter/tools/ipf.c
==============================================================================
--- projects/clang400-import/contrib/ipfilter/tools/ipf.c	Fri Jan 27 17:58:41 2017	(r312893)
+++ projects/clang400-import/contrib/ipfilter/tools/ipf.c	Fri Jan 27 20:01:46 2017	(r312894)
@@ -408,14 +408,16 @@ static void flushfilter(arg, filter)
 		}
 		closedevice();
 		return;
-	}
-
-	if (strchr(arg, 'i') || strchr(arg, 'I'))
+	} else if (strchr(arg, 'i') || strchr(arg, 'I'))
 		fl = FR_INQUE;
-	if (strchr(arg, 'o') || strchr(arg, 'O'))
+	else if (strchr(arg, 'o') || strchr(arg, 'O'))
 		fl = FR_OUTQUE;
-	if (strchr(arg, 'a') || strchr(arg, 'A'))
+	else if (strchr(arg, 'a') || strchr(arg, 'A'))
 		fl = FR_OUTQUE|FR_INQUE;
+	else {
+		fprintf(stderr, "Incorrect flush argument: %s\n", arg);
+		usage();
+	}
 	if (opts & OPT_INACTIVE)
 		fl |= FR_INACTIVE;
 	rem = fl;

Modified: projects/clang400-import/crypto/openssl/CHANGES
==============================================================================
--- projects/clang400-import/crypto/openssl/CHANGES	Fri Jan 27 17:58:41 2017	(r312893)
+++ projects/clang400-import/crypto/openssl/CHANGES	Fri Jan 27 20:01:46 2017	(r312894)
@@ -2,6 +2,67 @@
  OpenSSL CHANGES
  _______________
 
+ Changes between 1.0.2j and 1.0.2k [26 Jan 2017]
+
+  *) Truncated packet could crash via OOB read
+
+     If one side of an SSL/TLS path is running on a 32-bit host and a specific
+     cipher is being used, then a truncated packet can cause that host to
+     perform an out-of-bounds read, usually resulting in a crash.
+
+     This issue was reported to OpenSSL by Robert Święcki of Google.
+     (CVE-2017-3731)
+     [Andy Polyakov]
+
+  *) BN_mod_exp may produce incorrect results on x86_64
+
+     There is a carry propagating bug in the x86_64 Montgomery squaring
+     procedure. No EC algorithms are affected. Analysis suggests that attacks
+     against RSA and DSA as a result of this defect would be very difficult to
+     perform and are not believed likely. Attacks against DH are considered just
+     feasible (although very difficult) because most of the work necessary to
+     deduce information about a private key may be performed offline. The amount
+     of resources required for such an attack would be very significant and
+     likely only accessible to a limited number of attackers. An attacker would
+     additionally need online access to an unpatched system using the target
+     private key in a scenario with persistent DH parameters and a private
+     key that is shared between multiple clients. For example this can occur by
+     default in OpenSSL DHE based SSL/TLS ciphersuites. Note: This issue is very
+     similar to CVE-2015-3193 but must be treated as a separate problem.
+
+     This issue was reported to OpenSSL by the OSS-Fuzz project.
+     (CVE-2017-3732)
+     [Andy Polyakov]
+
+  *) Montgomery multiplication may produce incorrect results
+
+     There is a carry propagating bug in the Broadwell-specific Montgomery
+     multiplication procedure that handles input lengths divisible by, but
+     longer than 256 bits. Analysis suggests that attacks against RSA, DSA
+     and DH private keys are impossible. This is because the subroutine in
+     question is not used in operations with the private key itself and an input
+     of the attacker's direct choice. Otherwise the bug can manifest itself as
+     transient authentication and key negotiation failures or reproducible
+     erroneous outcome of public-key operations with specially crafted input.
+     Among EC algorithms only Brainpool P-512 curves are affected and one
+     presumably can attack ECDH key negotiation. Impact was not analyzed in
+     detail, because pre-requisites for attack are considered unlikely. Namely
+     multiple clients have to choose the curve in question and the server has to
+     share the private key among them, neither of which is default behaviour.
+     Even then only clients that chose the curve will be affected.
+
+     This issue was publicly reported as transient failures and was not
+     initially recognized as a security issue. Thanks to Richard Morgan for
+     providing reproducible case.
+     (CVE-2016-7055)
+     [Andy Polyakov]
+
+  *) OpenSSL now fails if it receives an unrecognised record type in TLS1.0
+     or TLS1.1. Previously this only happened in SSLv3 and TLS1.2. This is to
+     prevent issues where no progress is being made and the peer continually
+     sends unrecognised record types, using up resources processing them.
+     [Matt Caswell]
+
  Changes between 1.0.2i and 1.0.2j [26 Sep 2016]
 
   *) Missing CRL sanity check

Modified: projects/clang400-import/crypto/openssl/CONTRIBUTING
==============================================================================
--- projects/clang400-import/crypto/openssl/CONTRIBUTING	Fri Jan 27 17:58:41 2017	(r312893)
+++ projects/clang400-import/crypto/openssl/CONTRIBUTING	Fri Jan 27 20:01:46 2017	(r312894)
@@ -1,4 +1,4 @@
-HOW TO CONTRIBUTE TO PATCHES OpenSSL
+HOW TO CONTRIBUTE PATCHES TO OpenSSL
 ------------------------------------
 
 (Please visit https://www.openssl.org/community/getting-started.html for
@@ -11,34 +11,12 @@ OpenSSL community you might want to disc
 list first.  Someone may be already working on the same thing or there
 may be a good reason as to why that feature isn't implemented.
 
-The best way to submit a patch is to make a pull request on GitHub.
-(It is not necessary to send mail to rt@openssl.org to open a ticket!)
-If you think the patch could use feedback from the community, please
-start a thread on openssl-dev.
-
-You can also submit patches by sending it as mail to rt@openssl.org.
-Please include the word "PATCH" and an explanation of what the patch
-does in the subject line.  If you do this, our preferred format is "git
-format-patch" output. For example to provide a patch file containing the
-last commit in your local git repository use the following command:
-
-    % git format-patch --stdout HEAD^ >mydiffs.patch
-
-Another method of creating an acceptable patch file without using git is as
-follows:
-
-    % cd openssl-work
-    ...make your changes...
-    % ./Configure dist; make clean
-    % cd ..
-    % diff -ur openssl-orig openssl-work >mydiffs.patch
-
-Note that pull requests are generally easier for the team, and community, to
-work with.  Pull requests benefit from all of the standard GitHub features,
-including code review tools, simpler integration, and CI build support.
+To submit a patch, make a pull request on GitHub.  If you think the patch
+could use feedback from the community, please start a thread on openssl-dev
+to discuss it.
 
-No matter how a patch is submitted, the following items will help make
-the acceptance and review process faster:
+Having addressed the following items before the PR will help make the
+acceptance and review process faster:
 
     1. Anything other than trivial contributions will require a contributor
     licensing agreement, giving us permission to use your code. See
@@ -55,21 +33,22 @@ the acceptance and review process faster
         in the file LICENSE in the source distribution or at
         https://www.openssl.org/source/license.html
 
-    3.  Patches should be as current as possible.  When using GitHub, please
-    expect to have to rebase and update often. Note that we do not accept merge
-    commits. You will be asked to remove them before a patch is considered
-    acceptable.
+    3.  Patches should be as current as possible; expect to have to rebase
+    often. We do not accept merge commits; You will be asked to remove
+    them before a patch is considered acceptable.
 
     4.  Patches should follow our coding style (see
     https://www.openssl.org/policies/codingstyle.html) and compile without
     warnings. Where gcc or clang is availble you should use the
     --strict-warnings Configure option.  OpenSSL compiles on many varied
     platforms: try to ensure you only use portable features.
+    Clean builds via Travis and AppVeyor are expected, and done whenever
+    a PR is created or updated.
 
-    5.  When at all possible, patches should include tests. These can either be
-    added to an existing test, or completely new.  Please see test/README
-    for information on the test framework.
-
-    6.  New features or changed functionality must include documentation. Please
-    look at the "pod" files in doc/apps, doc/crypto and doc/ssl for examples of
-    our style.
+    5.  When at all possible, patches should include tests. These can
+    either be added to an existing test, or completely new.  Please see
+    test/README for information on the test framework.
+
+    6.  New features or changed functionality must include
+    documentation. Please look at the "pod" files in doc/apps, doc/crypto
+    and doc/ssl for examples of our style.

Modified: projects/clang400-import/crypto/openssl/Configure
==============================================================================
--- projects/clang400-import/crypto/openssl/Configure	Fri Jan 27 17:58:41 2017	(r312893)
+++ projects/clang400-import/crypto/openssl/Configure	Fri Jan 27 20:01:46 2017	(r312894)
@@ -7,6 +7,7 @@ eval 'exec perl -S $0 ${1+"$@"}'
 
 require 5.000;
 use strict;
+use File::Compare;
 
 # see INSTALL for instructions.
 
@@ -57,12 +58,13 @@ my $usage="Usage: Configure [no-<cipher>
 # zlib-dynamic	Like "zlib", but the zlib library is expected to be a shared
 #		library and will be loaded in run-time by the OpenSSL library.
 # sctp          include SCTP support
-# 386           generate 80386 code
 # enable-weak-ssl-ciphers
 #		Enable EXPORT and LOW SSLv3 ciphers that are disabled by
 #		default.  Note, weak SSLv2 ciphers are unconditionally
 #		disabled.
-# no-sse2	disables IA-32 SSE2 code, above option implies no-sse2
+# 386		generate 80386 code in assembly modules
+# no-sse2	disables IA-32 SSE2 code in assembly modules, the above
+#		mentioned '386' option implies this one
 # no-<cipher>   build without specified algorithm (rsa, idea, rc5, ...)
 # -<xxx> +<xxx> compiler options are passed through 
 #
@@ -1792,8 +1794,16 @@ while (<IN>)
 	}
 close(IN);
 close(OUT);
-rename($Makefile,"$Makefile.bak") || die "unable to rename $Makefile\n" if -e $Makefile;
-rename("$Makefile.new",$Makefile) || die "unable to rename $Makefile.new\n";
+if ((compare($Makefile, "$Makefile.new"))
+	or file_newer('Configure', $Makefile)
+	or file_newer('config', $Makefile)
+	or file_newer('Makefile.org', $Makefile))
+	{
+	rename($Makefile,"$Makefile.bak") || die "unable to rename $Makefile\n" if -e $Makefile;
+	rename("$Makefile.new",$Makefile) || die "unable to rename $Makefile.new\n";
+	}
+else
+	{ unlink("$Makefile.new"); }
 
 print "CC            =$cc\n";
 print "CFLAG         =$cflags\n";
@@ -1985,9 +1995,13 @@ print OUT "#ifdef  __cplusplus\n";
 print OUT "}\n";
 print OUT "#endif\n";
 close(OUT);
-rename("crypto/opensslconf.h","crypto/opensslconf.h.bak") || die "unable to rename crypto/opensslconf.h\n" if -e "crypto/opensslconf.h";
-rename("crypto/opensslconf.h.new","crypto/opensslconf.h") || die "unable to rename crypto/opensslconf.h.new\n";
-
+if (compare("crypto/opensslconf.h.new","crypto/opensslconf.h"))
+	{
+	rename("crypto/opensslconf.h","crypto/opensslconf.h.bak") || die "unable to rename crypto/opensslconf.h\n" if -e "crypto/opensslconf.h";
+	rename("crypto/opensslconf.h.new","crypto/opensslconf.h") || die "unable to rename crypto/opensslconf.h.new\n";
+	}
+else
+	{ unlink("crypto/opensslconf.h.new"); }
 
 # Fix the date
 
@@ -2289,3 +2303,9 @@ sub test_sanity
 	print STDERR "No sanity errors detected!\n" if $errorcnt == 0;
 	return $errorcnt;
 	}
+
+sub file_newer
+	{
+	my ($file1, $file2) = @_;
+	return (stat($file1))[9] > (stat($file2))[9]
+	}

Modified: projects/clang400-import/crypto/openssl/INSTALL
==============================================================================
--- projects/clang400-import/crypto/openssl/INSTALL	Fri Jan 27 17:58:41 2017	(r312893)
+++ projects/clang400-import/crypto/openssl/INSTALL	Fri Jan 27 20:01:46 2017	(r312894)
@@ -74,24 +74,26 @@
 
   no-asm        Do not use assembler code.
 
-  386           Use the 80386 instruction set only (the default x86 code is
-                more efficient, but requires at least a 486). Note: Use
-                compiler flags for any other CPU specific configuration,
-                e.g. "-m32" to build x86 code on an x64 system.
-
-  no-sse2	Exclude SSE2 code pathes. Normally SSE2 extention is
-		detected at run-time, but the decision whether or not the
-		machine code will be executed is taken solely on CPU
-		capability vector. This means that if you happen to run OS
-		kernel which does not support SSE2 extension on Intel P4
-		processor, then your application might be exposed to
-		"illegal instruction" exception. There might be a way
-		to enable support in kernel, e.g. FreeBSD kernel can be
-		compiled with CPU_ENABLE_SSE, and there is a way to
-		disengage SSE2 code pathes upon application start-up,
-		but if you aim for wider "audience" running such kernel,
-		consider no-sse2. Both 386 and no-asm options above imply
-		no-sse2.
+  386           In 32-bit x86 builds, when generating assembly modules,
+                use the 80386 instruction set only (the default x86 code
+                is more efficient, but requires at least a 486). Note:
+                This doesn't affect code generated by compiler, you're
+                likely to complement configuration command line with
+                suitable compiler-specific option.
+
+  no-sse2       Exclude SSE2 code paths from 32-bit x86 assembly modules.
+                Normally SSE2 extension is detected at run-time, but the
+                decision whether or not the machine code will be executed
+                is taken solely on CPU capability vector. This means that
+                if you happen to run OS kernel which does not support SSE2
+                extension on Intel P4 processor, then your application
+                might be exposed to "illegal instruction" exception.
+                There might be a way to enable support in kernel, e.g.
+                FreeBSD kernel can  be compiled with CPU_ENABLE_SSE, and
+                there is a way to disengage SSE2 code paths upon application
+                start-up, but if you aim for wider "audience" running
+                such kernel, consider no-sse2. Both the 386 and
+                no-asm options imply no-sse2.
 
   no-<cipher>   Build without the specified cipher (bf, cast, des, dh, dsa,
                 hmac, md2, md5, mdc2, rc2, rc4, rc5, rsa, sha).
@@ -101,7 +103,12 @@
   -Dxxx, -lxxx, -Lxxx, -fxxx, -mXXX, -Kxxx These system specific options will
                 be passed through to the compiler to allow you to
                 define preprocessor symbols, specify additional libraries,
-                library directories or other compiler options.
+                library directories or other compiler options. It might be
+                worth noting that some compilers generate code specifically
+                for processor the compiler currently executes on. This is
+                not necessarily what you might have in mind, since it might
+                be unsuitable for execution on other, typically older,
+                processor. Consult your compiler documentation.
 
   -DHAVE_CRYPTODEV Enable the BSD cryptodev engine even if we are not using
 		BSD. Useful if you are running ocf-linux or something
@@ -159,18 +166,18 @@
      OpenSSL binary ("openssl"). The libraries will be built in the top-level
      directory, and the binary will be in the "apps" directory.
 
-     If "make" fails, look at the output.  There may be reasons for
-     the failure that aren't problems in OpenSSL itself (like missing
-     standard headers).  If it is a problem with OpenSSL itself, please
-     report the problem to <openssl-bugs@openssl.org> (note that your
-     message will be recorded in the request tracker publicly readable
-     at https://www.openssl.org/community/index.html#bugs and will be
-     forwarded to a public mailing list). Include the output of "make
-     report" in your message.  Please check out the request tracker. Maybe
-     the bug was already reported or has already been fixed.
+     If the build fails, look at the output.  There may be reasons
+     for the failure that aren't problems in OpenSSL itself (like
+     missing standard headers).  If you are having problems you can
+     get help by sending an email to the openssl-users email list (see
+     https://www.openssl.org/community/mailinglists.html for details). If
+     it is a bug with OpenSSL itself, please open an issue on GitHub, at
+     https://github.com/openssl/openssl/issues. Please review the existing
+     ones first; maybe the bug was already reported or has already been
+     fixed.
 
-     [If you encounter assembler error messages, try the "no-asm"
-     configuration option as an immediate fix.]
+     (If you encounter assembler error messages, try the "no-asm"
+     configuration option as an immediate fix.)
 
      Compiling parts of OpenSSL with gcc and others with the system
      compiler will result in unresolved symbols on some systems.

Modified: projects/clang400-import/crypto/openssl/Makefile
==============================================================================
--- projects/clang400-import/crypto/openssl/Makefile	Fri Jan 27 17:58:41 2017	(r312893)
+++ projects/clang400-import/crypto/openssl/Makefile	Fri Jan 27 20:01:46 2017	(r312894)
@@ -4,7 +4,7 @@
 ## Makefile for OpenSSL
 ##
 
-VERSION=1.0.2j
+VERSION=1.0.2k
 MAJOR=1
 MINOR=0.2
 SHLIB_VERSION_NUMBER=1.0.0
@@ -203,7 +203,8 @@ CLEARENV=	TOP= && unset TOP $${LIB+LIB} 
 		$${ASFLAGS+ASFLAGS} $${AFLAGS+AFLAGS}		\
 		$${LDCMD+LDCMD} $${LDFLAGS+LDFLAGS} $${SCRIPTS+SCRIPTS}	\
 		$${SHAREDCMD+SHAREDCMD} $${SHAREDFLAGS+SHAREDFLAGS}	\
-		$${SHARED_LIB+SHARED_LIB} $${LIBEXTRAS+LIBEXTRAS}
+		$${SHARED_LIB+SHARED_LIB} $${LIBEXTRAS+LIBEXTRAS}	\
+		$${APPS+APPS}
 
 # LC_ALL=C ensures that error [and other] messages are delivered in
 # same language for uniform treatment.

Modified: projects/clang400-import/crypto/openssl/Makefile.org
==============================================================================
--- projects/clang400-import/crypto/openssl/Makefile.org	Fri Jan 27 17:58:41 2017	(r312893)
+++ projects/clang400-import/crypto/openssl/Makefile.org	Fri Jan 27 20:01:46 2017	(r312894)
@@ -201,7 +201,8 @@ CLEARENV=	TOP= && unset TOP $${LIB+LIB} 
 		$${ASFLAGS+ASFLAGS} $${AFLAGS+AFLAGS}		\
 		$${LDCMD+LDCMD} $${LDFLAGS+LDFLAGS} $${SCRIPTS+SCRIPTS}	\
 		$${SHAREDCMD+SHAREDCMD} $${SHAREDFLAGS+SHAREDFLAGS}	\
-		$${SHARED_LIB+SHARED_LIB} $${LIBEXTRAS+LIBEXTRAS}
+		$${SHARED_LIB+SHARED_LIB} $${LIBEXTRAS+LIBEXTRAS}	\
+		$${APPS+APPS}
 
 # LC_ALL=C ensures that error [and other] messages are delivered in
 # same language for uniform treatment.

Modified: projects/clang400-import/crypto/openssl/NEWS
==============================================================================
--- projects/clang400-import/crypto/openssl/NEWS	Fri Jan 27 17:58:41 2017	(r312893)
+++ projects/clang400-import/crypto/openssl/NEWS	Fri Jan 27 20:01:46 2017	(r312894)
@@ -5,9 +5,15 @@
   This file gives a brief overview of the major changes between each OpenSSL
   release. For more details please read the CHANGES file.
 
+  Major changes between OpenSSL 1.0.2j and OpenSSL 1.0.2k [26 Jan 2017]
+
+      o Truncated packet could crash via OOB read (CVE-2017-3731)
+      o BN_mod_exp may produce incorrect results on x86_64 (CVE-2017-3732)
+      o Montgomery multiplication may produce incorrect results (CVE-2016-7055)
+
   Major changes between OpenSSL 1.0.2i and OpenSSL 1.0.2j [26 Sep 2016]
 
-      o Fix Use After Free for large message sizes (CVE-2016-6309)
+      o Missing CRL sanity check (CVE-2016-7052)
 
   Major changes between OpenSSL 1.0.2h and OpenSSL 1.0.2i [22 Sep 2016]
 

Modified: projects/clang400-import/crypto/openssl/README
==============================================================================
--- projects/clang400-import/crypto/openssl/README	Fri Jan 27 17:58:41 2017	(r312893)
+++ projects/clang400-import/crypto/openssl/README	Fri Jan 27 20:01:46 2017	(r312894)
@@ -1,5 +1,5 @@
 
- OpenSSL 1.0.2j 26 Sep 2016
+ OpenSSL 1.0.2k 26 Jan 2017
 
  Copyright (c) 1998-2015 The OpenSSL Project
  Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson
@@ -66,13 +66,13 @@
  If you have any problems with OpenSSL then please take the following steps
  first:
 
-    - Download the current snapshot from ftp://ftp.openssl.org/snapshot/
+    - Download the latest version from the repository
       to see if the problem has already been addressed
-    - Remove ASM versions of libraries
+    - Configure with no-asm
     - Remove compiler optimisation flags
 
- If you wish to report a bug then please include the following information in
- any bug report:
+ If you wish to report a bug then please include the following information
+ and create an issue on GitHub:
 
     - On Unix systems:
         Self-test report generated by 'make report'
@@ -84,27 +84,9 @@
     - Problem Description (steps that will reproduce the problem, if known)
     - Stack Traceback (if the application dumps core)
 
- Email the report to:
-
-    rt@openssl.org
-
- In order to avoid spam, this is a moderated mailing list, and it might
- take a day for the ticket to show up.  (We also scan posts to make sure
- that security disclosures aren't publically posted by mistake.) Mail
- to this address is recorded in the public RT (request tracker) database
- (see https://www.openssl.org/community/index.html#bugs for details) and
- also forwarded the public openssl-dev mailing list.  Confidential mail
- may be sent to openssl-security@openssl.org (PGP key available from the
- key servers).
-
- Please do NOT use this for general assistance or support queries.
  Just because something doesn't work the way you expect does not mean it
  is necessarily a bug in OpenSSL.
 
- You can also make GitHub pull requests. If you do this, please also send
- mail to rt@openssl.org with a link to the PR so that we can more easily
- keep track of it.
-
  HOW TO CONTRIBUTE TO OpenSSL
  ----------------------------
 
@@ -113,7 +95,7 @@
  LEGALITIES
  ----------
 
- A number of nations, in particular the U.S., restrict the use or export
- of cryptography. If you are potentially subject to such restrictions
- you should seek competent professional legal advice before attempting to
- develop or distribute cryptographic code.
+ A number of nations restrict the use or export of cryptography. If you
+ are potentially subject to such restrictions you should seek competent
+ professional legal advice before attempting to develop or distribute
+ cryptographic code.

Modified: projects/clang400-import/crypto/openssl/apps/apps.c
==============================================================================
--- projects/clang400-import/crypto/openssl/apps/apps.c	Fri Jan 27 17:58:41 2017	(r312893)
+++ projects/clang400-import/crypto/openssl/apps/apps.c	Fri Jan 27 20:01:46 2017	(r312894)
@@ -972,7 +972,10 @@ EVP_PKEY *load_key(BIO *err, const char 
         if (!e)
             BIO_printf(err, "no engine specified\n");
         else {
-            pkey = ENGINE_load_private_key(e, file, ui_method, &cb_data);
+            if (ENGINE_init(e)) {
+                pkey = ENGINE_load_private_key(e, file, ui_method, &cb_data);
+                ENGINE_finish(e);
+            }
             if (!pkey) {
                 BIO_printf(err, "cannot load %s from engine\n", key_descrip);
                 ERR_print_errors(err);
@@ -1532,11 +1535,13 @@ static ENGINE *try_load_engine(BIO *err,
     }
     return e;
 }
+#endif
 
 ENGINE *setup_engine(BIO *err, const char *engine, int debug)
 {
     ENGINE *e = NULL;
 
+#ifndef OPENSSL_NO_ENGINE
     if (engine) {
         if (strcmp(engine, "auto") == 0) {
             BIO_printf(err, "enabling auto ENGINE support\n");
@@ -1561,13 +1566,19 @@ ENGINE *setup_engine(BIO *err, const cha
         }
 
         BIO_printf(err, "engine \"%s\" set.\n", ENGINE_get_id(e));
-
-        /* Free our "structural" reference. */
-        ENGINE_free(e);
     }
+#endif
     return e;
 }
+
+void release_engine(ENGINE *e)
+{
+#ifndef OPENSSL_NO_ENGINE
+    if (e != NULL)
+        /* Free our "structural" reference. */
+        ENGINE_free(e);
 #endif
+}
 
 int load_config(BIO *err, CONF *cnf)
 {

Modified: projects/clang400-import/crypto/openssl/apps/apps.h
==============================================================================
--- projects/clang400-import/crypto/openssl/apps/apps.h	Fri Jan 27 17:58:41 2017	(r312893)
+++ projects/clang400-import/crypto/openssl/apps/apps.h	Fri Jan 27 20:01:46 2017	(r312894)
@@ -259,9 +259,9 @@ STACK_OF(X509_CRL) *load_crls(BIO *err, 
                               const char *pass, ENGINE *e,
                               const char *cert_descrip);
 X509_STORE *setup_verify(BIO *bp, char *CAfile, char *CApath);
-# ifndef OPENSSL_NO_ENGINE
+
 ENGINE *setup_engine(BIO *err, const char *engine, int debug);
-# endif
+void release_engine(ENGINE *e);
 
 # ifndef OPENSSL_NO_OCSP
 OCSP_RESPONSE *process_responder(BIO *err, OCSP_REQUEST *req,

Modified: projects/clang400-import/crypto/openssl/apps/ca.c
==============================================================================
--- projects/clang400-import/crypto/openssl/apps/ca.c	Fri Jan 27 17:58:41 2017	(r312893)
+++ projects/clang400-import/crypto/openssl/apps/ca.c	Fri Jan 27 20:01:46 2017	(r312894)
@@ -319,9 +319,7 @@ int MAIN(int argc, char **argv)
 #define BSIZE 256
     MS_STATIC char buf[3][BSIZE];
     char *randfile = NULL;
-#ifndef OPENSSL_NO_ENGINE
     char *engine = NULL;
-#endif
     char *tofree = NULL;
     DB_ATTR db_attr;
 
@@ -595,9 +593,7 @@ int MAIN(int argc, char **argv)
     if (!load_config(bio_err, conf))
         goto err;
 
-#ifndef OPENSSL_NO_ENGINE
     e = setup_engine(bio_err, engine, 0);
-#endif
 
     /* Lets get the config section we are using */
     if (section == NULL) {
@@ -1485,6 +1481,7 @@ int MAIN(int argc, char **argv)
     X509_CRL_free(crl);
     NCONF_free(conf);
     NCONF_free(extconf);
+    release_engine(e);
     OBJ_cleanup();
     apps_shutdown();
     OPENSSL_EXIT(ret);
@@ -2227,7 +2224,6 @@ static int certify_spkac(X509 **xret, ch
     sk = CONF_get_section(parms, "default");
     if (sk_CONF_VALUE_num(sk) == 0) {
         BIO_printf(bio_err, "no name/value pairs found in %s\n", infile);
-        CONF_free(parms);
         goto err;
     }
 

Modified: projects/clang400-import/crypto/openssl/apps/cms.c
==============================================================================
--- projects/clang400-import/crypto/openssl/apps/cms.c	Fri Jan 27 17:58:41 2017	(r312893)
+++ projects/clang400-import/crypto/openssl/apps/cms.c	Fri Jan 27 20:01:46 2017	(r312894)
@@ -143,9 +143,7 @@ int MAIN(int argc, char **argv)
     const EVP_MD *sign_md = NULL;
     int informat = FORMAT_SMIME, outformat = FORMAT_SMIME;
     int rctformat = FORMAT_SMIME, keyform = FORMAT_PEM;
-# ifndef OPENSSL_NO_ENGINE
     char *engine = NULL;
-# endif
     unsigned char *secret_key = NULL, *secret_keyid = NULL;
     unsigned char *pwri_pass = NULL, *pwri_tmp = NULL;
     size_t secret_keylen = 0, secret_keyidlen = 0;
@@ -665,9 +663,7 @@ int MAIN(int argc, char **argv)
                    "cert.pem       recipient certificate(s) for encryption\n");
         goto end;
     }
-# ifndef OPENSSL_NO_ENGINE
     e = setup_engine(bio_err, engine, 0);
-# endif
 
     if (!app_passwd(bio_err, passargin, NULL, &passin, NULL)) {
         BIO_printf(bio_err, "Error getting password\n");
@@ -1170,6 +1166,7 @@ int MAIN(int argc, char **argv)
     EVP_PKEY_free(key);
     CMS_ContentInfo_free(cms);
     CMS_ContentInfo_free(rcms);
+    release_engine(e);
     BIO_free(rctin);
     BIO_free(in);
     BIO_free(indata);

Modified: projects/clang400-import/crypto/openssl/apps/dgst.c
==============================================================================
--- projects/clang400-import/crypto/openssl/apps/dgst.c	Fri Jan 27 17:58:41 2017	(r312893)
+++ projects/clang400-import/crypto/openssl/apps/dgst.c	Fri Jan 27 20:01:46 2017	(r312894)
@@ -537,6 +537,7 @@ int MAIN(int argc, char **argv)
         OPENSSL_free(sigbuf);
     if (bmd != NULL)
         BIO_free(bmd);
+    release_engine(e);
     apps_shutdown();
     OPENSSL_EXIT(err);
 }

Modified: projects/clang400-import/crypto/openssl/apps/dh.c
==============================================================================
--- projects/clang400-import/crypto/openssl/apps/dh.c	Fri Jan 27 17:58:41 2017	(r312893)
+++ projects/clang400-import/crypto/openssl/apps/dh.c	Fri Jan 27 20:01:46 2017	(r312894)
@@ -94,9 +94,7 @@ int MAIN(int argc, char **argv)
     BIO *in = NULL, *out = NULL;
     int informat, outformat, check = 0, noout = 0, C = 0, ret = 1;
     char *infile, *outfile, *prog;
-# ifndef OPENSSL_NO_ENGINE
     char *engine;
-# endif
 
     apps_startup();
 
@@ -107,9 +105,7 @@ int MAIN(int argc, char **argv)
     if (!load_config(bio_err, NULL))
         goto end;
 
-# ifndef OPENSSL_NO_ENGINE
     engine = NULL;
-# endif
     infile = NULL;
     outfile = NULL;
     informat = FORMAT_PEM;
@@ -183,9 +179,7 @@ int MAIN(int argc, char **argv)
 
     ERR_load_crypto_strings();
 
-# ifndef OPENSSL_NO_ENGINE
     setup_engine(bio_err, engine, 0);
-# endif
 
     in = BIO_new(BIO_s_file());
     out = BIO_new(BIO_s_file());

Modified: projects/clang400-import/crypto/openssl/apps/dhparam.c
==============================================================================
--- projects/clang400-import/crypto/openssl/apps/dhparam.c	Fri Jan 27 17:58:41 2017	(r312893)
+++ projects/clang400-import/crypto/openssl/apps/dhparam.c	Fri Jan 27 20:01:46 2017	(r312894)
@@ -159,9 +159,8 @@ int MAIN(int argc, char **argv)
     int informat, outformat, check = 0, noout = 0, C = 0, ret = 1;
     char *infile, *outfile, *prog;
     char *inrand = NULL;
-# ifndef OPENSSL_NO_ENGINE
     char *engine = NULL;
-# endif
+    ENGINE *e = NULL;
     int num = 0, g = 0;
 
     apps_startup();
@@ -270,9 +269,7 @@ int MAIN(int argc, char **argv)
 
     ERR_load_crypto_strings();
 
-# ifndef OPENSSL_NO_ENGINE
-    setup_engine(bio_err, engine, 0);
-# endif
+    e = setup_engine(bio_err, engine, 0);
 
     if (g && !num)
         num = DEFBITS;
@@ -512,6 +509,7 @@ int MAIN(int argc, char **argv)
         BIO_free_all(out);
     if (dh != NULL)
         DH_free(dh);
+    release_engine(e);
     apps_shutdown();
     OPENSSL_EXIT(ret);
 }

Modified: projects/clang400-import/crypto/openssl/apps/dsa.c
==============================================================================
--- projects/clang400-import/crypto/openssl/apps/dsa.c	Fri Jan 27 17:58:41 2017	(r312893)
+++ projects/clang400-import/crypto/openssl/apps/dsa.c	Fri Jan 27 20:01:46 2017	(r312894)
@@ -106,9 +106,7 @@ int MAIN(int argc, char **argv)
     int informat, outformat, text = 0, noout = 0;
     int pubin = 0, pubout = 0;
     char *infile, *outfile, *prog;
-# ifndef OPENSSL_NO_ENGINE
     char *engine;
-# endif
     char *passargin = NULL, *passargout = NULL;
     char *passin = NULL, *passout = NULL;
     int modulus = 0;
@@ -124,9 +122,7 @@ int MAIN(int argc, char **argv)
     if (!load_config(bio_err, NULL))
         goto end;
 
-# ifndef OPENSSL_NO_ENGINE
     engine = NULL;
-# endif
     infile = NULL;
     outfile = NULL;
     informat = FORMAT_PEM;
@@ -239,9 +235,7 @@ int MAIN(int argc, char **argv)
 
     ERR_load_crypto_strings();
 
-# ifndef OPENSSL_NO_ENGINE
     e = setup_engine(bio_err, engine, 0);
-# endif
 
     if (!app_passwd(bio_err, passargin, passargout, &passin, &passout)) {
         BIO_printf(bio_err, "Error getting passwords\n");
@@ -358,6 +352,7 @@ int MAIN(int argc, char **argv)
         BIO_free_all(out);
     if (dsa != NULL)
         DSA_free(dsa);
+    release_engine(e);
     if (passin)
         OPENSSL_free(passin);
     if (passout)

Modified: projects/clang400-import/crypto/openssl/apps/dsaparam.c
==============================================================================
--- projects/clang400-import/crypto/openssl/apps/dsaparam.c	Fri Jan 27 17:58:41 2017	(r312893)
+++ projects/clang400-import/crypto/openssl/apps/dsaparam.c	Fri Jan 27 20:01:46 2017	(r312894)
@@ -121,9 +121,8 @@ int MAIN(int argc, char **argv)
     char *infile, *outfile, *prog, *inrand = NULL;
     int numbits = -1, num, genkey = 0;
     int need_rand = 0;
-# ifndef OPENSSL_NO_ENGINE
     char *engine = NULL;
-# endif
+    ENGINE *e = NULL;
 # ifdef GENCB_TEST
     int timebomb = 0;
 # endif
@@ -263,9 +262,7 @@ int MAIN(int argc, char **argv)
         }
     }
 
-# ifndef OPENSSL_NO_ENGINE
-    setup_engine(bio_err, engine, 0);
-# endif
+    e = setup_engine(bio_err, engine, 0);
 
     if (need_rand) {
         app_RAND_load_file(NULL, bio_err, (inrand != NULL));
@@ -433,6 +430,7 @@ int MAIN(int argc, char **argv)
         BIO_free_all(out);
     if (dsa != NULL)
         DSA_free(dsa);
+    release_engine(e);
     apps_shutdown();
     OPENSSL_EXIT(ret);
 }

Modified: projects/clang400-import/crypto/openssl/apps/ec.c
==============================================================================
--- projects/clang400-import/crypto/openssl/apps/ec.c	Fri Jan 27 17:58:41 2017	(r312893)
+++ projects/clang400-import/crypto/openssl/apps/ec.c	Fri Jan 27 20:01:46 2017	(r312894)
@@ -95,6 +95,7 @@ int MAIN(int argc, char **argv)
     int informat, outformat, text = 0, noout = 0;
     int pubin = 0, pubout = 0, param_out = 0;
     char *infile, *outfile, *prog, *engine;
+    ENGINE *e = NULL;
     char *passargin = NULL, *passargout = NULL;
     char *passin = NULL, *passout = NULL;
     point_conversion_form_t form = POINT_CONVERSION_UNCOMPRESSED;
@@ -235,9 +236,7 @@ int MAIN(int argc, char **argv)
 
     ERR_load_crypto_strings();
 
-# ifndef OPENSSL_NO_ENGINE
-    setup_engine(bio_err, engine, 0);
-# endif
+    e = setup_engine(bio_err, engine, 0);
 
     if (!app_passwd(bio_err, passargin, passargout, &passin, &passout)) {
         BIO_printf(bio_err, "Error getting passwords\n");
@@ -349,6 +348,7 @@ int MAIN(int argc, char **argv)
         BIO_free_all(out);
     if (eckey)
         EC_KEY_free(eckey);
+    release_engine(e);
     if (passin)
         OPENSSL_free(passin);
     if (passout)

Modified: projects/clang400-import/crypto/openssl/apps/ecparam.c
==============================================================================
--- projects/clang400-import/crypto/openssl/apps/ecparam.c	Fri Jan 27 17:58:41 2017	(r312893)
+++ projects/clang400-import/crypto/openssl/apps/ecparam.c	Fri Jan 27 20:01:46 2017	(r312894)
@@ -131,6 +131,7 @@ int MAIN(int argc, char **argv)
     BIO *in = NULL, *out = NULL;
     int informat, outformat, noout = 0, C = 0, ret = 1;
     char *engine = NULL;
+    ENGINE *e = NULL;
 
     BIGNUM *ec_p = NULL, *ec_a = NULL, *ec_b = NULL,
         *ec_gen = NULL, *ec_order = NULL, *ec_cofactor = NULL;
@@ -311,9 +312,7 @@ int MAIN(int argc, char **argv)
         }
     }
 
-# ifndef OPENSSL_NO_ENGINE
-    setup_engine(bio_err, engine, 0);
-# endif
+    e = setup_engine(bio_err, engine, 0);
 
     if (list_curves) {
         EC_builtin_curve *curves = NULL;
@@ -620,12 +619,13 @@ int MAIN(int argc, char **argv)
         BN_free(ec_cofactor);
     if (buffer)
         OPENSSL_free(buffer);
+    if (group != NULL)
+        EC_GROUP_free(group);
+    release_engine(e);
     if (in != NULL)
         BIO_free(in);
     if (out != NULL)
         BIO_free_all(out);
-    if (group != NULL)
-        EC_GROUP_free(group);
     apps_shutdown();
     OPENSSL_EXIT(ret);
 }

Modified: projects/clang400-import/crypto/openssl/apps/enc.c
==============================================================================
--- projects/clang400-import/crypto/openssl/apps/enc.c	Fri Jan 27 17:58:41 2017	(r312893)
+++ projects/clang400-import/crypto/openssl/apps/enc.c	Fri Jan 27 20:01:46 2017	(r312894)
@@ -126,9 +126,8 @@ int MAIN(int argc, char **argv)
         NULL, *wbio = NULL;
 #define PROG_NAME_SIZE  39
     char pname[PROG_NAME_SIZE + 1];
-#ifndef OPENSSL_NO_ENGINE
     char *engine = NULL;
-#endif
+    ENGINE *e = NULL;
     const EVP_MD *dgst = NULL;
     int non_fips_allow = 0;
 
@@ -322,9 +321,7 @@ int MAIN(int argc, char **argv)
         argv++;
     }
 
-#ifndef OPENSSL_NO_ENGINE
-    setup_engine(bio_err, engine, 0);
-#endif
+    e = setup_engine(bio_err, engine, 0);
 
     if (cipher && EVP_CIPHER_flags(cipher) & EVP_CIPH_FLAG_AEAD_CIPHER) {
         BIO_printf(bio_err,
@@ -674,6 +671,7 @@ int MAIN(int argc, char **argv)
     if (bzl != NULL)
         BIO_free(bzl);
 #endif
+    release_engine(e);
     if (pass)
         OPENSSL_free(pass);
     apps_shutdown();

Modified: projects/clang400-import/crypto/openssl/apps/gendh.c
==============================================================================
--- projects/clang400-import/crypto/openssl/apps/gendh.c	Fri Jan 27 17:58:41 2017	(r312893)
+++ projects/clang400-import/crypto/openssl/apps/gendh.c	Fri Jan 27 20:01:46 2017	(r312894)
@@ -96,9 +96,7 @@ int MAIN(int argc, char **argv)
     int g = 2;
     char *outfile = NULL;
     char *inrand = NULL;
-# ifndef OPENSSL_NO_ENGINE
     char *engine = NULL;
-# endif
     BIO *out = NULL;
 
     apps_startup();
@@ -162,9 +160,7 @@ int MAIN(int argc, char **argv)
         BIO_printf(bio_err, "             the random number generator\n");
         goto end;
     }
-# ifndef OPENSSL_NO_ENGINE
     setup_engine(bio_err, engine, 0);
-# endif
 
     out = BIO_new(BIO_s_file());
     if (out == NULL) {

Modified: projects/clang400-import/crypto/openssl/apps/gendsa.c
==============================================================================
--- projects/clang400-import/crypto/openssl/apps/gendsa.c	Fri Jan 27 17:58:41 2017	(r312893)
+++ projects/clang400-import/crypto/openssl/apps/gendsa.c	Fri Jan 27 20:01:46 2017	(r312894)
@@ -85,9 +85,8 @@ int MAIN(int argc, char **argv)
     char *passargout = NULL, *passout = NULL;
     BIO *out = NULL, *in = NULL;
     const EVP_CIPHER *enc = NULL;
-# ifndef OPENSSL_NO_ENGINE
     char *engine = NULL;
-# endif
+    ENGINE *e = NULL;
 
     apps_startup();
 
@@ -206,9 +205,7 @@ int MAIN(int argc, char **argv)
                    "           - a DSA parameter file as generated by the dsaparam command\n");
         goto end;
     }
-# ifndef OPENSSL_NO_ENGINE
-    setup_engine(bio_err, engine, 0);
-# endif
+    e = setup_engine(bio_err, engine, 0);
 
     if (!app_passwd(bio_err, NULL, passargout, NULL, &passout)) {
         BIO_printf(bio_err, "Error getting password\n");
@@ -273,6 +270,7 @@ int MAIN(int argc, char **argv)
         BIO_free_all(out);
     if (dsa != NULL)
         DSA_free(dsa);
+    release_engine(e);
     if (passout)
         OPENSSL_free(passout);
     apps_shutdown();

Modified: projects/clang400-import/crypto/openssl/apps/genpkey.c
==============================================================================
--- projects/clang400-import/crypto/openssl/apps/genpkey.c	Fri Jan 27 17:58:41 2017	(r312893)
+++ projects/clang400-import/crypto/openssl/apps/genpkey.c	Fri Jan 27 20:01:46 2017	(r312894)
@@ -275,9 +275,9 @@ int MAIN(int argc, char **argv)
     if (out)
         BIO_free_all(out);
     BIO_free(in);
+    release_engine(e);
     if (pass)
         OPENSSL_free(pass);
-
     return ret;
 }
 

Modified: projects/clang400-import/crypto/openssl/apps/genrsa.c
==============================================================================
--- projects/clang400-import/crypto/openssl/apps/genrsa.c	Fri Jan 27 17:58:41 2017	(r312893)
+++ projects/clang400-import/crypto/openssl/apps/genrsa.c	Fri Jan 27 20:01:46 2017	(r312894)
@@ -91,9 +91,7 @@ int MAIN(int, char **);
 int MAIN(int argc, char **argv)
 {

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

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

Author: emaste
Date: Fri Jan 27 20:49:43 2017
New Revision: 312895
URL: https://svnweb.freebsd.org/changeset/base/312895

Log:
  Update clang400 branch for LD_AS_LLD -> LD_IS_LLD

Modified:
  projects/clang400-import/Makefile.inc1

Modified: projects/clang400-import/Makefile.inc1
==============================================================================
--- projects/clang400-import/Makefile.inc1	Fri Jan 27 20:01:46 2017	(r312894)
+++ projects/clang400-import/Makefile.inc1	Fri Jan 27 20:49:43 2017	(r312895)
@@ -516,7 +516,7 @@ TMAKE=		MAKEOBJDIRPREFIX=${OBJTREE} \
 # cross-tools stage
 XMAKE=		TOOLS_PREFIX=${WORLDTMP} ${BMAKE} \
 		TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
-		MK_GDB=no MK_TESTS=no MK_LLD_IS_LD=no
+		MK_GDB=no MK_TESTS=no
 
 # kernel-tools stage
 KTMAKEENV=	INSTALL="sh ${.CURDIR}/tools/install.sh" \
@@ -1827,7 +1827,7 @@ _elftctools=	lib/libelftc \
 # cross-build on a FreeBSD 10 host:
 _elftctools+=	usr.bin/addr2line
 .endif
-.if ${MK_LLD_AS_LD} != "no"
+.if ${MK_LLD_IS_LD} != "no"
 _lld=		usr.bin/clang/lld
 .endif
 .elif ${TARGET_ARCH} != ${MACHINE_ARCH} && ${MK_ELFTOOLCHAIN_BOOTSTRAP} != "no"

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

Author: emaste
Date: Fri Jan 27 21:14:42 2017
New Revision: 312896
URL: https://svnweb.freebsd.org/changeset/base/312896

Log:
  Additional LD_AS_LLD -> LD_IS_LLD missed in r312894/r312895

Modified:
  projects/clang400-import/lib/clang/libllvm/Makefile
  projects/clang400-import/tools/build/mk/OptionalObsoleteFiles.inc

Modified: projects/clang400-import/lib/clang/libllvm/Makefile
==============================================================================
--- projects/clang400-import/lib/clang/libllvm/Makefile	Fri Jan 27 20:49:43 2017	(r312895)
+++ projects/clang400-import/lib/clang/libllvm/Makefile	Fri Jan 27 21:14:42 2017	(r312896)
@@ -1146,7 +1146,7 @@ SRCS_MIN+=	Transforms/Vectorize/SLPVecto
 SRCS_EXT+=	Transforms/Vectorize/Vectorize.cpp
 
 SRCS_ALL+=	${SRCS_MIN}
-.if !defined(TOOLS_PREFIX) || ${MK_LLD_AS_LD} != "no"
+.if !defined(TOOLS_PREFIX) || ${MK_LLD_IS_LD} != "no"
 SRCS_ALL+=	${SRCS_MIW}
 .endif
 .if ${MK_CLANG_EXTRAS} != "no"

Modified: projects/clang400-import/tools/build/mk/OptionalObsoleteFiles.inc
==============================================================================
--- projects/clang400-import/tools/build/mk/OptionalObsoleteFiles.inc	Fri Jan 27 20:49:43 2017	(r312895)
+++ projects/clang400-import/tools/build/mk/OptionalObsoleteFiles.inc	Fri Jan 27 21:14:42 2017	(r312896)
@@ -221,7 +221,7 @@ OLD_DIRS+=usr/share/examples/bhyve
 
 .if ${MK_BINUTILS} == no
 OLD_FILES+=usr/bin/as
-.if ${MK_LLD_AS_LD} == no
+.if ${MK_LLD_IS_LD} == no
 OLD_FILES+=usr/bin/ld
 .endif
 OLD_FILES+=usr/bin/ld.bfd

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

Author: emaste
Date: Fri Jan 27 21:26:23 2017
New Revision: 312898
URL: https://svnweb.freebsd.org/changeset/base/312898

Log:
  Add -mlong-calls also to LLVM's STATIC_CFLAGS on ARM
  
  -mlong-calls was set only in STATIC_CXXFLAGS, but there are some .c
  source files in LLVM which also need -mlong-calls.
  
  Unfortunately this is not sufficient to fix linking lldb on ARM,
  because LLVM-generated calls to __aeabi_read_tp do not honour the
  -mlong-calls flag.  See LLVM PR31769 for details.
  
  Reviewed by:	dim
  Sponsored by:	The FreeBSD Foundation
  Differential Revision:	https://reviews.freebsd.org/D9348

Modified:
  projects/clang400-import/lib/clang/llvm.build.mk

Modified: projects/clang400-import/lib/clang/llvm.build.mk
==============================================================================
--- projects/clang400-import/lib/clang/llvm.build.mk	Fri Jan 27 21:18:23 2017	(r312897)
+++ projects/clang400-import/lib/clang/llvm.build.mk	Fri Jan 27 21:26:23 2017	(r312898)
@@ -46,5 +46,6 @@ CXXFLAGS+=	-fno-rtti
 CXXFLAGS.clang+= -stdlib=libc++
 
 .if ${MACHINE_CPUARCH} == "arm"
+STATIC_CFLAGS+= -mlong-calls
 STATIC_CXXFLAGS+= -mlong-calls
 .endif