Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 30 Jan 2019 07:10:34 +0000 (UTC)
From:      Dimitry Andric <dim@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r343571 - in projects/clang800-import: . bin/sh contrib/ipfilter/man contrib/llvm/tools/clang/lib/Driver/ToolChains contrib/netbsd-tests/lib/libm lib/libbe lib/libc/sys lib/libc/tests/s...
Message-ID:  <201901300710.x0U7AY72033233@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dim
Date: Wed Jan 30 07:10:33 2019
New Revision: 343571
URL: https://svnweb.freebsd.org/changeset/base/343571

Log:
  Merge ^/head r343320 through r343570.

Added:
  projects/clang800-import/bin/sh/dot.shrc
     - copied unchanged from r343570, head/bin/sh/dot.shrc
  projects/clang800-import/lib/libc/tests/sys/sendfile_test.c
     - copied unchanged from r343570, head/lib/libc/tests/sys/sendfile_test.c
  projects/clang800-import/lib/libthr/thread/thr_malloc.c
     - copied unchanged from r343570, head/lib/libthr/thread/thr_malloc.c
  projects/clang800-import/libexec/rtld-elf/rtld_malloc.h
     - copied unchanged from r343570, head/libexec/rtld-elf/rtld_malloc.h
  projects/clang800-import/sys/arm64/include/sigframe.h
     - copied unchanged from r343570, head/sys/arm64/include/sigframe.h
  projects/clang800-import/sys/i386/i386/minidump_machdep_base.c
     - copied unchanged from r343570, head/sys/i386/i386/minidump_machdep_base.c
  projects/clang800-import/sys/i386/i386/minidump_machdep_nopae.c
     - copied unchanged from r343570, head/sys/i386/i386/minidump_machdep_nopae.c
  projects/clang800-import/sys/i386/i386/minidump_machdep_pae.c
     - copied unchanged from r343570, head/sys/i386/i386/minidump_machdep_pae.c
  projects/clang800-import/sys/i386/i386/pmap_base.c
     - copied unchanged from r343570, head/sys/i386/i386/pmap_base.c
  projects/clang800-import/sys/i386/i386/pmap_nopae.c
     - copied unchanged from r343570, head/sys/i386/i386/pmap_nopae.c
  projects/clang800-import/sys/i386/i386/pmap_pae.c
     - copied unchanged from r343570, head/sys/i386/i386/pmap_pae.c
  projects/clang800-import/sys/i386/include/pmap_base.h
     - copied unchanged from r343570, head/sys/i386/include/pmap_base.h
  projects/clang800-import/sys/i386/include/pmap_nopae.h
     - copied unchanged from r343570, head/sys/i386/include/pmap_nopae.h
  projects/clang800-import/sys/i386/include/pmap_pae.h
     - copied unchanged from r343570, head/sys/i386/include/pmap_pae.h
  projects/clang800-import/sys/kern/subr_coverage.c
     - copied unchanged from r343570, head/sys/kern/subr_coverage.c
  projects/clang800-import/sys/riscv/include/sigframe.h
     - copied unchanged from r343570, head/sys/riscv/include/sigframe.h
  projects/clang800-import/sys/sys/coverage.h
     - copied unchanged from r343570, head/sys/sys/coverage.h
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_aacraid
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_aacraid
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_al_eth
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_al_eth
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_alpm
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_alpm
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_altera
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_altera
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_amd_ecc_inject
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_amd_ecc_inject
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_amdgpio
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_amdgpio
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_amdpm
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_amdpm
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_amdsmb
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_amdsmb
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_amdsmn
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_amdsmn
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_axgbe
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_axgbe
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_beri
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_beri
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_bhnd
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_bhnd
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_bnxt
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_bnxt
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_bvm
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_bvm
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_cadence
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_cadence
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_chromebook_platform
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_chromebook_platform
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_cyapa
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_cyapa
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_dme
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_dme
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_dpaa
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_dpaa
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_drm2
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_drm2
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_dwc
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_dwc
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_efidev
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_efidev
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_ena
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_ena
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_etherswitch
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_etherswitch
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_evdev
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_evdev
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_extres
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_extres
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_ffec
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_ffec
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_filemon
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_filemon
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_gxemul
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_gxemul
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_hdmi
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_hdmi
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_hptnr
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_hptnr
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_hyperv
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_hyperv
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_ichiic
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_ichiic
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_imcsmb
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_imcsmb
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_intel
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_intel
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_intpm
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_intpm
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_ioat
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_ioat
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_isci
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_isci
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_iscsi_initiator
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_iscsi_initiator
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_iser
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_iser
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_isl
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_isl
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_ismt
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_ismt
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_iwm
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_iwm
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_ixl
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_ixl
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_jedec_dimm
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_jedec_dimm
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_liquidio
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_liquidio
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_mbox
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_mbox
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_mdio
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_mdio
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_mlx4
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_mlx4
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_mlx5
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_mlx5
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_mmcnull
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_mmcnull
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_mpr
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_mpr
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_mrsas
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_mrsas
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_mthca
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_mthca
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_nand
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_nand
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_nctgpio
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_nctgpio
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_neta
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_neta
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_netfpga10g
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_netfpga10g
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_nfsmb
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_nfsmb
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_ntb
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_ntb
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_nvd
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_nvd
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_nvdimm
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_nvdimm
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_nvme
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_nvme
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_oce
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_oce
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_ocs_fc
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_ocs_fc
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_otus
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_otus
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_ow
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_ow
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_pms
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_pms
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_proto
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_proto
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_psci
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_psci
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_pwm
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_pwm
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_qlnx
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_qlnx
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_qlxgbe
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_qlxgbe
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_qlxge
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_qlxge
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_rccgpio
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_rccgpio
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_rl
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_rl
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_rtwn
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_rtwn
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_smartpqi
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_smartpqi
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_tcp_log
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_tcp_log
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_terasic
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_terasic
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_veriexec
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_veriexec
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_viapm
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_viapm
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_videomode
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_videomode
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_vmware
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_vmware
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_vnic
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_vnic
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_vt
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_vt
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_wbwd
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_wbwd
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_xdma
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_xdma
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_xilinx
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-dev_xilinx
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-xen
     - copied unchanged from r343570, head/tools/kerneldoc/subsys/Doxyfile-xen
Deleted:
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_advansys
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_aha
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_ahb
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_aic
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_asr
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_buslogic
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_cm
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_ct
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_digi
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_dpt
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_en
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_fatm
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_hatm
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_ie
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_ieee488
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_ncv
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_nsp
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_nve
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_patm
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_pdq
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_siba
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_snc
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_stg
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_streams
  projects/clang800-import/tools/kerneldoc/subsys/Doxyfile-dev_utopia
Modified:
  projects/clang800-import/ObsoleteFiles.inc
  projects/clang800-import/bin/sh/Makefile
  projects/clang800-import/bin/sh/dot.profile
  projects/clang800-import/bin/sh/parser.c
  projects/clang800-import/bin/sh/sh.1
  projects/clang800-import/contrib/ipfilter/man/ipnat.5
  projects/clang800-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/FreeBSD.cpp
  projects/clang800-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/FreeBSD.h
  projects/clang800-import/contrib/netbsd-tests/lib/libm/t_cbrt.c
  projects/clang800-import/lib/libbe/be.c
  projects/clang800-import/lib/libc/sys/sendfile.2
  projects/clang800-import/lib/libc/tests/sys/Makefile
  projects/clang800-import/lib/libcasper/libcasper/libcasper_service.c
  projects/clang800-import/lib/libcasper/libcasper/service.c
  projects/clang800-import/lib/libcasper/libcasper/zygote.c
  projects/clang800-import/lib/libfigpar/string_m.c
  projects/clang800-import/lib/libkvm/kvm_i386.h
  projects/clang800-import/lib/libprocstat/Symbol.map
  projects/clang800-import/lib/libprocstat/libprocstat_compat.c
  projects/clang800-import/lib/libthr/Makefile
  projects/clang800-import/lib/libthr/thread/Makefile.inc
  projects/clang800-import/lib/libthr/thread/thr_fork.c
  projects/clang800-import/lib/libthr/thread/thr_init.c
  projects/clang800-import/lib/libthr/thread/thr_mutex.c
  projects/clang800-import/lib/libthr/thread/thr_private.h
  projects/clang800-import/lib/libthr/thread/thr_spec.c
  projects/clang800-import/lib/msun/tests/trig_test.c
  projects/clang800-import/libexec/getty/chat.c
  projects/clang800-import/libexec/rc/network.subr
  projects/clang800-import/libexec/rtld-elf/malloc.c
  projects/clang800-import/libexec/rtld-elf/rtld.c
  projects/clang800-import/libexec/rtld-elf/rtld.h
  projects/clang800-import/libexec/rtld-elf/xmalloc.c
  projects/clang800-import/sbin/bectl/tests/bectl_test.sh
  projects/clang800-import/sbin/devd/devd.conf
  projects/clang800-import/sbin/ifconfig/ifconfig.c
  projects/clang800-import/sbin/ifconfig/ifieee80211.c
  projects/clang800-import/sbin/ifconfig/ifpfsync.c
  projects/clang800-import/sbin/newfs/newfs.8
  projects/clang800-import/sbin/newfs/newfs.c
  projects/clang800-import/sbin/pfctl/parse.y
  projects/clang800-import/sbin/tunefs/tunefs.8
  projects/clang800-import/sbin/tunefs/tunefs.c
  projects/clang800-import/share/man/man4/ath.4
  projects/clang800-import/share/man/man4/ath_hal.4
  projects/clang800-import/share/man/man4/otus.4
  projects/clang800-import/share/man/man4/rtwn_usb.4
  projects/clang800-import/share/man/man4/wlan.4
  projects/clang800-import/share/man/man9/Makefile
  projects/clang800-import/share/man/man9/ucred.9
  projects/clang800-import/share/misc/pci_vendors
  projects/clang800-import/share/skel/dot.shrc
  projects/clang800-import/sys/amd64/conf/GENERIC
  projects/clang800-import/sys/amd64/conf/GENERIC-NODEBUG
  projects/clang800-import/sys/arm64/conf/GENERIC
  projects/clang800-import/sys/arm64/conf/GENERIC-NODEBUG
  projects/clang800-import/sys/cam/scsi/scsi_da.c
  projects/clang800-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c
  projects/clang800-import/sys/compat/linuxkpi/common/include/linux/pci.h
  projects/clang800-import/sys/compat/linuxkpi/common/src/linux_pci.c
  projects/clang800-import/sys/conf/NOTES
  projects/clang800-import/sys/conf/files
  projects/clang800-import/sys/conf/files.i386
  projects/clang800-import/sys/conf/kern.pre.mk
  projects/clang800-import/sys/conf/options
  projects/clang800-import/sys/conf/options.i386
  projects/clang800-import/sys/dev/bhnd/cores/pmu/bhnd_pmu_subr.c
  projects/clang800-import/sys/dev/bwi/if_bwi.c
  projects/clang800-import/sys/dev/cxgbe/iw_cxgbe/mem.c
  projects/clang800-import/sys/dev/cxgbe/osdep.h
  projects/clang800-import/sys/dev/cxgbe/t4_main.c
  projects/clang800-import/sys/dev/dcons/dcons_os.c
  projects/clang800-import/sys/dev/e1000/em_txrx.c
  projects/clang800-import/sys/dev/e1000/if_em.c
  projects/clang800-import/sys/dev/e1000/igb_txrx.c
  projects/clang800-import/sys/dev/extres/phy/phy.c
  projects/clang800-import/sys/dev/extres/phy/phy_internal.h
  projects/clang800-import/sys/dev/fb/fb.c
  projects/clang800-import/sys/dev/fb/fbreg.h
  projects/clang800-import/sys/dev/fb/vga.c
  projects/clang800-import/sys/dev/fb/vgareg.h
  projects/clang800-import/sys/dev/iwi/if_iwi.c
  projects/clang800-import/sys/dev/iwm/if_iwm.c
  projects/clang800-import/sys/dev/iwm/if_iwm_config.h
  projects/clang800-import/sys/dev/iwm/if_iwm_debug.h
  projects/clang800-import/sys/dev/iwm/if_iwm_fw.c
  projects/clang800-import/sys/dev/iwm/if_iwm_fw.h
  projects/clang800-import/sys/dev/iwm/if_iwm_led.c
  projects/clang800-import/sys/dev/iwm/if_iwm_mac_ctxt.c
  projects/clang800-import/sys/dev/iwm/if_iwm_pcie_trans.c
  projects/clang800-import/sys/dev/iwm/if_iwm_phy_db.c
  projects/clang800-import/sys/dev/iwm/if_iwm_scan.c
  projects/clang800-import/sys/dev/iwm/if_iwm_sta.c
  projects/clang800-import/sys/dev/iwm/if_iwm_time_event.c
  projects/clang800-import/sys/dev/iwm/if_iwm_time_event.h
  projects/clang800-import/sys/dev/iwm/if_iwmreg.h
  projects/clang800-import/sys/dev/iwm/if_iwmvar.h
  projects/clang800-import/sys/dev/ixgbe/if_ix.c
  projects/clang800-import/sys/dev/ixgbe/if_ixv.c
  projects/clang800-import/sys/dev/ixgbe/ix_txrx.c
  projects/clang800-import/sys/dev/ixl/ixl_pf_main.c
  projects/clang800-import/sys/dev/ixl/ixl_txrx.c
  projects/clang800-import/sys/dev/netmap/if_ptnet.c
  projects/clang800-import/sys/dev/netmap/netmap.c
  projects/clang800-import/sys/dev/netmap/netmap_bdg.c
  projects/clang800-import/sys/dev/netmap/netmap_freebsd.c
  projects/clang800-import/sys/dev/netmap/netmap_kern.h
  projects/clang800-import/sys/dev/netmap/netmap_kloop.c
  projects/clang800-import/sys/dev/netmap/netmap_monitor.c
  projects/clang800-import/sys/dev/nvd/nvd.c
  projects/clang800-import/sys/dev/ocs_fc/ocs_cam.c
  projects/clang800-import/sys/dev/ocs_fc/ocs_hw.c
  projects/clang800-import/sys/dev/ocs_fc/ocs_hw_queues.c
  projects/clang800-import/sys/dev/ocs_fc/ocs_ioctl.c
  projects/clang800-import/sys/dev/ocs_fc/ocs_mgmt.c
  projects/clang800-import/sys/dev/ocs_fc/ocs_node.c
  projects/clang800-import/sys/dev/ocs_fc/ocs_pci.c
  projects/clang800-import/sys/dev/ocs_fc/ocs_xport.c
  projects/clang800-import/sys/dev/ocs_fc/sli4.c
  projects/clang800-import/sys/dev/pcf/pcf_isa.c
  projects/clang800-import/sys/dev/ral/rt2560.c
  projects/clang800-import/sys/dev/ral/rt2661.c
  projects/clang800-import/sys/dev/ral/rt2860.c
  projects/clang800-import/sys/dev/rtwn/if_rtwn.c
  projects/clang800-import/sys/dev/rtwn/pci/rtwn_pci_reg.c
  projects/clang800-import/sys/dev/rtwn/usb/rtwn_usb_attach.h
  projects/clang800-import/sys/dev/rtwn/usb/rtwn_usb_reg.c
  projects/clang800-import/sys/dev/sound/pci/hda/hdaa_patches.c
  projects/clang800-import/sys/dev/sound/pci/hda/hdac.h
  projects/clang800-import/sys/dev/syscons/syscons.c
  projects/clang800-import/sys/dev/tpm/tpm20.h
  projects/clang800-import/sys/dev/tpm/tpm_crb.c
  projects/clang800-import/sys/dev/tpm/tpm_tis.c
  projects/clang800-import/sys/dev/usb/quirk/usb_quirk.c
  projects/clang800-import/sys/dev/usb/usbdevs
  projects/clang800-import/sys/dev/usb/wlan/if_rsu.c
  projects/clang800-import/sys/dev/usb/wlan/if_rsureg.h
  projects/clang800-import/sys/dev/usb/wlan/if_rum.c
  projects/clang800-import/sys/dev/usb/wlan/if_run.c
  projects/clang800-import/sys/dev/usb/wlan/if_runreg.h
  projects/clang800-import/sys/dev/usb/wlan/if_uath.c
  projects/clang800-import/sys/dev/usb/wlan/if_upgt.c
  projects/clang800-import/sys/dev/usb/wlan/if_ural.c
  projects/clang800-import/sys/dev/usb/wlan/if_urtw.c
  projects/clang800-import/sys/dev/usb/wlan/if_zyd.c
  projects/clang800-import/sys/dev/usb/wlan/if_zydreg.h
  projects/clang800-import/sys/dev/virtio/network/if_vtnet.c
  projects/clang800-import/sys/fs/ext2fs/ext2_vfsops.c
  projects/clang800-import/sys/geom/mirror/g_mirror.h
  projects/clang800-import/sys/geom/uzip/g_uzip.c
  projects/clang800-import/sys/i386/acpica/acpi_machdep.c
  projects/clang800-import/sys/i386/conf/GENERIC
  projects/clang800-import/sys/i386/i386/bios.c
  projects/clang800-import/sys/i386/i386/copyout.c
  projects/clang800-import/sys/i386/i386/genassym.c
  projects/clang800-import/sys/i386/i386/initcpu.c
  projects/clang800-import/sys/i386/i386/locore.s
  projects/clang800-import/sys/i386/i386/machdep.c
  projects/clang800-import/sys/i386/i386/mem.c
  projects/clang800-import/sys/i386/i386/minidump_machdep.c
  projects/clang800-import/sys/i386/i386/mp_machdep.c
  projects/clang800-import/sys/i386/i386/mpboot.s
  projects/clang800-import/sys/i386/i386/pmap.c
  projects/clang800-import/sys/i386/i386/trap.c
  projects/clang800-import/sys/i386/i386/vm86.c
  projects/clang800-import/sys/i386/i386/vm86bios.s
  projects/clang800-import/sys/i386/i386/vm_machdep.c
  projects/clang800-import/sys/i386/include/md_var.h
  projects/clang800-import/sys/i386/include/param.h
  projects/clang800-import/sys/i386/include/pmap.h
  projects/clang800-import/sys/i386/include/vm86.h
  projects/clang800-import/sys/i386/include/vmparam.h
  projects/clang800-import/sys/i386/pci/pci_cfgreg.c
  projects/clang800-import/sys/kern/kern_conf.c
  projects/clang800-import/sys/kern/kern_kcov.c
  projects/clang800-import/sys/kern/kern_mbuf.c
  projects/clang800-import/sys/kern/vfs_bio.c
  projects/clang800-import/sys/mips/conf/ERL
  projects/clang800-import/sys/mips/conf/OCTEON1
  projects/clang800-import/sys/mips/conf/PB92
  projects/clang800-import/sys/mips/conf/std.AR_MIPS_BASE
  projects/clang800-import/sys/mips/ingenic/jz4780_machdep.c
  projects/clang800-import/sys/mips/ingenic/jz4780_timer.c
  projects/clang800-import/sys/mips/mips/tlb.c
  projects/clang800-import/sys/mips/nlm/cms.c
  projects/clang800-import/sys/mips/nlm/usb_init.c
  projects/clang800-import/sys/modules/ath_hal_ar5416/Makefile
  projects/clang800-import/sys/net/iflib.c
  projects/clang800-import/sys/net/netmap.h
  projects/clang800-import/sys/net80211/ieee80211.c
  projects/clang800-import/sys/net80211/ieee80211_amrr.c
  projects/clang800-import/sys/net80211/ieee80211_freebsd.c
  projects/clang800-import/sys/net80211/ieee80211_freebsd.h
  projects/clang800-import/sys/net80211/ieee80211_ioctl.c
  projects/clang800-import/sys/net80211/ieee80211_rssadapt.c
  projects/clang800-import/sys/net80211/ieee80211_scan.c
  projects/clang800-import/sys/net80211/ieee80211_scan_sta.c
  projects/clang800-import/sys/net80211/ieee80211_var.h
  projects/clang800-import/sys/netinet/cc/cc_newreno.c
  projects/clang800-import/sys/netinet/in.c
  projects/clang800-import/sys/netinet/tcp_input.c
  projects/clang800-import/sys/netinet/tcp_reass.c
  projects/clang800-import/sys/netinet/tcp_stacks/rack.c
  projects/clang800-import/sys/netinet/tcp_syncache.c
  projects/clang800-import/sys/netinet/tcp_var.h
  projects/clang800-import/sys/netinet6/in6.c
  projects/clang800-import/sys/netinet6/in6_ifattach.c
  projects/clang800-import/sys/netinet6/in6_mcast.c
  projects/clang800-import/sys/netinet6/in6_var.h
  projects/clang800-import/sys/netinet6/mld6.c
  projects/clang800-import/sys/netinet6/mld6_var.h
  projects/clang800-import/sys/netpfil/ipfw/ip_fw2.c
  projects/clang800-import/sys/netpfil/pf/pf_ioctl.c
  projects/clang800-import/sys/powerpc/conf/GENERIC
  projects/clang800-import/sys/powerpc/conf/GENERIC64
  projects/clang800-import/sys/riscv/riscv/pmap.c
  projects/clang800-import/sys/sparc64/conf/GENERIC
  projects/clang800-import/sys/sys/bio.h
  projects/clang800-import/sys/sys/conf.h
  projects/clang800-import/sys/sys/kcov.h
  projects/clang800-import/sys/sys/param.h
  projects/clang800-import/sys/ufs/ffs/ffs_softdep.c
  projects/clang800-import/sys/vm/uma_core.c
  projects/clang800-import/sys/x86/acpica/acpi_wakeup.c
  projects/clang800-import/sys/x86/include/_types.h
  projects/clang800-import/sys/x86/include/x86_var.h
  projects/clang800-import/sys/x86/x86/identcpu.c
  projects/clang800-import/tools/build/mk/OptionalObsoleteFiles.inc
  projects/clang800-import/tools/tools/ath/ath_ee_9300_print/Makefile
  projects/clang800-import/tools/tools/ath/athaggrstats/Makefile
  projects/clang800-import/tools/tools/ath/athdecode/Makefile
  projects/clang800-import/tools/tools/ath/athkey/Makefile
  projects/clang800-import/tools/tools/ath/athpoke/Makefile
  projects/clang800-import/tools/tools/ath/athprom/Makefile
  projects/clang800-import/tools/tools/ath/athradar/Makefile
  projects/clang800-import/tools/tools/ath/athratestats/Makefile
  projects/clang800-import/tools/tools/ath/athregs/Makefile
  projects/clang800-import/tools/tools/ath/athspectral/Makefile
  projects/clang800-import/tools/tools/ath/athstats/Makefile
  projects/clang800-import/tools/tools/ath/athsurvey/Makefile
  projects/clang800-import/tools/tools/nanobsd/pcengines/ALIX_DSK
  projects/clang800-import/tools/tools/tinybsd/tinybsd
  projects/clang800-import/usr.bin/calendar/calendars/de_AT.ISO_8859-15/calendar.feiertag
  projects/clang800-import/usr.bin/find/find.c
  projects/clang800-import/usr.bin/fortune/datfiles/freebsd-tips
  projects/clang800-import/usr.bin/systat/devs.c
  projects/clang800-import/usr.bin/whereis/whereis.c
  projects/clang800-import/usr.bin/write/write.c
  projects/clang800-import/usr.sbin/acpi/acpidump/acpi.c
  projects/clang800-import/usr.sbin/freebsd-update/freebsd-update.sh
  projects/clang800-import/usr.sbin/kbdcontrol/kbdcontrol.c
Directory Properties:
  projects/clang800-import/   (props changed)
  projects/clang800-import/contrib/ipfilter/   (props changed)
  projects/clang800-import/contrib/llvm/   (props changed)
  projects/clang800-import/contrib/llvm/tools/clang/   (props changed)
  projects/clang800-import/contrib/netbsd-tests/   (props changed)
  projects/clang800-import/sys/cddl/contrib/opensolaris/   (props changed)

Modified: projects/clang800-import/ObsoleteFiles.inc
==============================================================================
--- projects/clang800-import/ObsoleteFiles.inc	Wed Jan 30 07:09:01 2019	(r343570)
+++ projects/clang800-import/ObsoleteFiles.inc	Wed Jan 30 07:10:33 2019	(r343571)
@@ -190,6 +190,9 @@ OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt
 OLD_DIRS+=usr/lib/clang/7.0.1/lib/freebsd
 OLD_DIRS+=usr/lib/clang/7.0.1/lib
 OLD_DIRS+=usr/lib/clang/7.0.1
+# 20190126: adv(4) / adw(4) removal
+OLD_FILES+=usr/share/man/man4/adv.4.gz
+OLD_FILES+=usr/share/man/man4/adw.4.gz
 # 20190114: old pbuf allocator removed
 OLD_FILES+=usr/share/man/man9/pbuf.9.gz
 # 20181219: ibcs removal

Modified: projects/clang800-import/bin/sh/Makefile
==============================================================================
--- projects/clang800-import/bin/sh/Makefile	Wed Jan 30 07:09:01 2019	(r343570)
+++ projects/clang800-import/bin/sh/Makefile	Wed Jan 30 07:10:33 2019	(r343571)
@@ -3,9 +3,12 @@
 
 .include <src.opts.mk>
 
-CONFS=	dot.profile profile
-CONFSDIR_dot.profile=	/root
-CONFSNAME_dot.profile=	.profile
+CONFGROUPS=	ETC ROOT
+ETC=	profile
+ROOT=	dot.shrc dot.profile
+ROOTDIR=	/root
+ROOTNAME_dot.shrc=	.shrc
+ROOTNAME_dot.profile=	.profile
 PACKAGE=runtime
 PROG=	sh
 INSTALLFLAGS= -S

Modified: projects/clang800-import/bin/sh/dot.profile
==============================================================================
--- projects/clang800-import/bin/sh/dot.profile	Wed Jan 30 07:09:01 2019	(r343570)
+++ projects/clang800-import/bin/sh/dot.profile	Wed Jan 30 07:10:33 2019	(r343571)
@@ -9,6 +9,9 @@ export TERM
 PAGER=less
 export PAGER
 
+# set ENV to a file invoked each time sh is started for interactive use.
+ENV=$HOME/.shrc; export ENV
+
 # Query terminal size; useful for serial lines.
 if [ -x /usr/bin/resizewin ] ; then /usr/bin/resizewin -z ; fi
 

Copied: projects/clang800-import/bin/sh/dot.shrc (from r343570, head/bin/sh/dot.shrc)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/clang800-import/bin/sh/dot.shrc	Wed Jan 30 07:10:33 2019	(r343571, copy of r343570, head/bin/sh/dot.shrc)
@@ -0,0 +1,39 @@
+# $FreeBSD$
+#
+# .shrc - bourne shell startup file 
+#
+# This file will be used if the shell is invoked for interactive use and
+# the environment variable ENV is set to this file.
+#
+# see also sh(1), environ(7).
+#
+
+
+# file permissions: rwxr-xr-x
+#
+# umask	022
+
+# Uncomment this to enable the builtin vi(1) command line editor in sh(1),
+# e.g. ESC to go into visual mode.
+# set -o vi
+
+
+# # some useful aliases
+# alias h='fc -l'
+# alias j=jobs
+# alias m="$PAGER"
+# alias ll='ls -laFo'
+# alias l='ls -l'
+# alias g='egrep -i'
+ 
+# # be paranoid
+# alias cp='cp -ip'
+# alias mv='mv -i'
+# alias rm='rm -i'
+
+
+# set prompt: ``username@hostname:directory $ '' 
+PS1="\u@\h:\w \\$ "
+
+# search path for cd(1)
+# CDPATH=:$HOME

Modified: projects/clang800-import/bin/sh/parser.c
==============================================================================
--- projects/clang800-import/bin/sh/parser.c	Wed Jan 30 07:09:01 2019	(r343570)
+++ projects/clang800-import/bin/sh/parser.c	Wed Jan 30 07:10:33 2019	(r343571)
@@ -40,6 +40,8 @@ static char sccsid[] = "@(#)parser.c	8.7 (Berkeley) 5/
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
 
+#include <sys/param.h>
+#include <pwd.h>
 #include <stdlib.h>
 #include <unistd.h>
 #include <stdio.h>
@@ -130,6 +132,7 @@ static void synexpect(int) __dead2;
 static void synerror(const char *) __dead2;
 static void setprompt(int);
 static int pgetc_linecont(void);
+static void getusername(char *, size_t);
 
 
 static void *
@@ -1969,6 +1972,53 @@ pgetc_linecont(void)
 	return (c);
 }
 
+
+static struct passwd *
+getpwlogin(void)
+{
+	const char *login;
+
+	login = getlogin();
+	if (login == NULL)
+		return (NULL);
+
+	return (getpwnam(login));
+}
+
+
+static void
+getusername(char *name, size_t namelen)
+{
+	static char cached_name[MAXLOGNAME];
+	struct passwd *pw;
+	uid_t euid;
+
+	if (cached_name[0] == '\0') {
+		euid = geteuid();
+
+		/*
+		 * Handle the case when there is more than one
+		 * login with the same UID, or when the login
+		 * returned by getlogin(2) does no longer match
+		 * the current UID.
+		 */
+		pw = getpwlogin();
+		if (pw == NULL || pw->pw_uid != euid)
+			pw = getpwuid(euid);
+
+		if (pw != NULL) {
+			strlcpy(cached_name, pw->pw_name,
+			    sizeof(cached_name));
+		} else {
+			snprintf(cached_name, sizeof(cached_name),
+			    "%u", euid);
+		}
+	}
+
+	strlcpy(name, cached_name, namelen);
+}
+
+
 /*
  * called by editline -- any expansions to the prompt
  *    should be added here.
@@ -2024,6 +2074,17 @@ getprompt(void *unused __unused)
 				while ((ps[i] != '\0') && (ps[i] != trim))
 					i++;
 				--i;
+				break;
+
+				/*
+				 * User name.
+				 */
+			case 'u':
+				ps[i] = '\0';
+				getusername(&ps[i], PROMPTLEN - i);
+				/* Skip to end of username. */
+				while (ps[i + 1] != '\0')
+					i++;
 				break;
 
 				/*

Modified: projects/clang800-import/bin/sh/sh.1
==============================================================================
--- projects/clang800-import/bin/sh/sh.1	Wed Jan 30 07:09:01 2019	(r343570)
+++ projects/clang800-import/bin/sh/sh.1	Wed Jan 30 07:10:33 2019	(r343571)
@@ -32,7 +32,7 @@
 .\"	from: @(#)sh.1	8.6 (Berkeley) 5/4/95
 .\" $FreeBSD$
 .\"
-.Dd December 8, 2018
+.Dd January 24, 2019
 .Dt SH 1
 .Os
 .Sh NAME
@@ -1402,6 +1402,8 @@ which are replaced by the given information:
 This system's fully-qualified hostname (FQDN).
 .It Li \eh
 This system's hostname.
+.It Li \eu
+User name.
 .It Li \eW
 The final component of the current working directory.
 .It Li \ew

Modified: projects/clang800-import/contrib/ipfilter/man/ipnat.5
==============================================================================
--- projects/clang800-import/contrib/ipfilter/man/ipnat.5	Wed Jan 30 07:09:01 2019	(r343570)
+++ projects/clang800-import/contrib/ipfilter/man/ipnat.5	Wed Jan 30 07:10:33 2019	(r343571)
@@ -104,7 +104,7 @@ map le0 10.0.0.0/8 -> 192.168.55.0/24 portmap tcp/udp 
 In this instance, the word "auto" tells IPFilter to calculate a private
 range of port numbers for each address on the LHS to use without fear
 of them being trampled by others.  This can lead to problems if there are
-connections being generated mire quickly than IPFilter can expire them.
+connections being generated more quickly than IPFilter can expire them.
 In this instance, and if we want to get away from a private range of
 port numbers, we can say:
 .nf

Modified: projects/clang800-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/FreeBSD.cpp
==============================================================================
--- projects/clang800-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/FreeBSD.cpp	Wed Jan 30 07:09:01 2019	(r343570)
+++ projects/clang800-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/FreeBSD.cpp	Wed Jan 30 07:10:33 2019	(r343571)
@@ -357,6 +357,13 @@ ToolChain::CXXStdlibType FreeBSD::GetDefaultCXXStdlibT
   return ToolChain::CST_Libstdcxx;
 }
 
+unsigned FreeBSD::GetDefaultDwarfVersion() const {
+  // Default to use DWARF 2 before FreeBSD 13.
+  if (getTriple().getOSMajorVersion() < 13)
+    return 2;
+  return 4;
+}
+
 void FreeBSD::addLibStdCxxIncludePaths(
     const llvm::opt::ArgList &DriverArgs,
     llvm::opt::ArgStringList &CC1Args) const {

Modified: projects/clang800-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/FreeBSD.h
==============================================================================
--- projects/clang800-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/FreeBSD.h	Wed Jan 30 07:09:01 2019	(r343570)
+++ projects/clang800-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/FreeBSD.h	Wed Jan 30 07:10:33 2019	(r343571)
@@ -70,7 +70,7 @@ class LLVM_LIBRARY_VISIBILITY FreeBSD : public Generic
       const llvm::opt::ArgList &Args) const override;
   bool isPIEDefault() const override;
   SanitizerMask getSupportedSanitizers() const override;
-  unsigned GetDefaultDwarfVersion() const override { return 2; }
+  unsigned GetDefaultDwarfVersion() const override;
   // Until dtrace (via CTF) and LLDB can deal with distributed debug info,
   // FreeBSD defaults to standalone/full debug info.
   bool GetDefaultStandaloneDebug() const override { return true; }

Modified: projects/clang800-import/contrib/netbsd-tests/lib/libm/t_cbrt.c
==============================================================================
--- projects/clang800-import/contrib/netbsd-tests/lib/libm/t_cbrt.c	Wed Jan 30 07:09:01 2019	(r343570)
+++ projects/clang800-import/contrib/netbsd-tests/lib/libm/t_cbrt.c	Wed Jan 30 07:10:33 2019	(r343571)
@@ -268,6 +268,10 @@ ATF_TC_BODY(cbrtl_powl, tc)
 	long double y, z;
 	size_t i;
 
+#if defined(__amd64__) && defined(__clang__) && __clang_major__ >= 7
+	atf_tc_expect_fail("test fails with clang 7+ - bug 234040");
+#endif
+
 	for (i = 0; i < __arraycount(x); i++) {
 
 		y = cbrtl(x[i]);

Modified: projects/clang800-import/lib/libbe/be.c
==============================================================================
--- projects/clang800-import/lib/libbe/be.c	Wed Jan 30 07:09:01 2019	(r343570)
+++ projects/clang800-import/lib/libbe/be.c	Wed Jan 30 07:10:33 2019	(r343571)
@@ -649,32 +649,14 @@ int
 be_import(libbe_handle_t *lbh, const char *bootenv, int fd)
 {
 	char buf[BE_MAXPATHLEN];
-	time_t rawtime;
 	nvlist_t *props;
 	zfs_handle_t *zfs;
-	int err, len;
-	char nbuf[24];
+	recvflags_t flags = { .nomount = 1 };
+	int err;
 
-	/*
-	 * We don't need this to be incredibly random, just unique enough that
-	 * it won't conflict with an existing dataset name.  Chopping time
-	 * down to 32 bits is probably good enough for this.
-	 */
-	snprintf(nbuf, 24, "tmp%u",
-	    (uint32_t)(time(NULL) & 0xFFFFFFFF));
-	if ((err = be_root_concat(lbh, nbuf, buf)) != 0)
-		/*
-		 * Technically this is our problem, but we try to use short
-		 * enough names that we won't run into problems except in
-		 * worst-case BE root approaching MAXPATHLEN.
-		 */
-		return (set_error(lbh, BE_ERR_PATHLEN));
+	be_root_concat(lbh, bootenv, buf);
 
-	time(&rawtime);
-	len = strlen(buf);
-	strftime(buf + len, sizeof(buf) - len, "@%F-%T", localtime(&rawtime));
-
-	if ((err = lzc_receive(buf, NULL, NULL, false, fd)) != 0) {
+	if ((err = zfs_receive(lbh->lzh, buf, NULL, &flags, fd, NULL)) != 0) {
 		switch (err) {
 		case EINVAL:
 			return (set_error(lbh, BE_ERR_NOORIGIN));
@@ -687,39 +669,22 @@ be_import(libbe_handle_t *lbh, const char *bootenv, in
 		}
 	}
 
-	if ((zfs = zfs_open(lbh->lzh, buf, ZFS_TYPE_SNAPSHOT)) == NULL)
+	if ((zfs = zfs_open(lbh->lzh, buf, ZFS_TYPE_FILESYSTEM)) == NULL)
 		return (set_error(lbh, BE_ERR_ZFSOPEN));
 
 	nvlist_alloc(&props, NV_UNIQUE_NAME, KM_SLEEP);
 	nvlist_add_string(props, "canmount", "noauto");
 	nvlist_add_string(props, "mountpoint", "/");
 
-	be_root_concat(lbh, bootenv, buf);
-
-	err = zfs_clone(zfs, buf, props);
-	zfs_close(zfs);
+	err = zfs_prop_set_list(zfs, props);
 	nvlist_free(props);
 
-	if (err != 0)
-		return (set_error(lbh, BE_ERR_UNKNOWN));
-
-	/*
-	 * Finally, we open up the dataset we just cloned the snapshot so that
-	 * we may promote it.  This is necessary in order to clean up the ghost
-	 * snapshot that doesn't need to be seen after the operation is
-	 * complete.
-	 */
-	if ((zfs = zfs_open(lbh->lzh, buf, ZFS_TYPE_DATASET)) == NULL)
-		return (set_error(lbh, BE_ERR_ZFSOPEN));
-
-	err = zfs_promote(zfs);
 	zfs_close(zfs);
 
 	if (err != 0)
 		return (set_error(lbh, BE_ERR_UNKNOWN));
 
-	/* Clean up the temporary snapshot */
-	return (be_destroy(lbh, nbuf, 0));
+	return (0);
 }
 
 #if SOON

Modified: projects/clang800-import/lib/libc/sys/sendfile.2
==============================================================================
--- projects/clang800-import/lib/libc/sys/sendfile.2	Wed Jan 30 07:09:01 2019	(r343570)
+++ projects/clang800-import/lib/libc/sys/sendfile.2	Wed Jan 30 07:10:33 2019	(r343571)
@@ -25,7 +25,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd October 12, 2018
+.Dd January 25, 2019
 .Dt SENDFILE 2
 .Os
 .Sh NAME
@@ -104,7 +104,7 @@ variable pointed to by
 The least significant 16 bits of
 .Fa flags
 argument is a bitmap of these values:
-.Bl -tag -offset indent
+.Bl -tag -offset indent -width "SF_USER_READAHEAD"
 .It Dv SF_NODISKIO
 This flag causes
 .Nm
@@ -403,3 +403,14 @@ The
 .Fx 11
 implementation was written by
 .An Gleb Smirnoff Aq Mt glebius@FreeBSD.org .
+.Sh BUGS
+The
+.Fn sendfile
+system call will not fail, i.e., return
+.Dv -1
+and set
+.Va errno
+to
+.Er EFAULT ,
+if provided an invalid address for
+.Fa sbytes .

Modified: projects/clang800-import/lib/libc/tests/sys/Makefile
==============================================================================
--- projects/clang800-import/lib/libc/tests/sys/Makefile	Wed Jan 30 07:09:01 2019	(r343570)
+++ projects/clang800-import/lib/libc/tests/sys/Makefile	Wed Jan 30 07:10:33 2019	(r343571)
@@ -8,6 +8,7 @@ PACKAGE=			tests
 ATF_TESTS_C+=			brk_test
 .endif
 ATF_TESTS_C+=			queue_test
+ATF_TESTS_C+=			sendfile_test
 
 # TODO: clone, lwp_create, lwp_ctl, posix_fadvise, recvmmsg,
 # swapcontext

Copied: projects/clang800-import/lib/libc/tests/sys/sendfile_test.c (from r343570, head/lib/libc/tests/sys/sendfile_test.c)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/clang800-import/lib/libc/tests/sys/sendfile_test.c	Wed Jan 30 07:10:33 2019	(r343571, copy of r343570, head/lib/libc/tests/sys/sendfile_test.c)
@@ -0,0 +1,1146 @@
+/*-
+ * Copyright (c) 2018 Enji Cooper.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/param.h>
+#include <sys/mman.h>
+#include <sys/socket.h>
+#include <sys/stat.h>
+#include <sys/sysctl.h>
+#include <sys/uio.h>
+#include <err.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <netdb.h>
+#include <paths.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <atf-c.h>
+
+const char DETERMINISTIC_PATTERN[] =
+    "The past is already gone, the future is not yet here. There's only one moment for you to live.\n";
+
+#define	SOURCE_FILE		"source"
+#define	DESTINATION_FILE	"dest"
+
+#define	PORTRANGE_FIRST	"net.inet.ip.portrange.first"
+#define	PORTRANGE_LAST	"net.inet.ip.portrange.last"
+
+static int portrange_first, portrange_last;
+
+static int
+get_int_via_sysctlbyname(const char *oidname)
+{
+	size_t oldlen;
+	int int_value;
+
+	ATF_REQUIRE_EQ_MSG(sysctlbyname(oidname, &int_value, &oldlen, NULL, 0),
+	    0, "sysctlbyname(%s, ...) failed: %s", oidname, strerror(errno));
+	ATF_REQUIRE_EQ_MSG(sizeof(int_value), oldlen, "sanity check failed");
+
+	return (int_value);
+}
+
+static int
+generate_random_port(int seed)
+{
+	int random_port;
+
+	printf("Generating a random port with seed=%d\n", seed);
+	if (portrange_first == 0) {
+		portrange_first = get_int_via_sysctlbyname(PORTRANGE_FIRST);
+		printf("Port range lower bound: %d\n", portrange_first);
+	}
+
+	if (portrange_last == 0) {
+		portrange_last = get_int_via_sysctlbyname(PORTRANGE_LAST);
+		printf("Port range upper bound: %d\n", portrange_last);
+	}
+
+	srand((unsigned)seed);
+
+	random_port = rand() % (portrange_last - portrange_first) +
+	    portrange_first;
+
+	printf("Random port generated: %d\n", random_port);
+	return (random_port);
+}
+
+static void
+resolve_localhost(struct addrinfo **res, int domain, int type, int port)
+{
+	char *serv;
+	struct addrinfo hints;
+	int error;
+
+	ATF_REQUIRE_MSG(domain == AF_INET || domain == AF_INET6,
+	    "unhandled domain: %d", domain);
+
+	ATF_REQUIRE_MSG(asprintf(&serv, "%d", port) >= 0,
+	    "asprintf failed: %s", strerror(errno));
+
+	memset(&hints, 0, sizeof(hints));
+	hints.ai_family = domain;
+	hints.ai_flags = AI_ADDRCONFIG|AI_NUMERICSERV;
+	hints.ai_socktype = type;
+
+	error = getaddrinfo("localhost", serv, &hints, res);
+	ATF_REQUIRE_EQ_MSG(error, 0,
+	    "getaddrinfo failed: %s", gai_strerror(error));
+	free(serv);
+}
+
+static int
+make_socket(int domain, int type, int protocol)
+{
+	int sock;
+
+	sock = socket(domain, type, protocol);
+	ATF_REQUIRE_MSG(sock != -1, "socket(%d, %d, 0) failed: %s",
+	    domain, type, strerror(errno));
+
+	return (sock);
+}
+
+static int
+setup_client(int domain, int type, int port)
+{
+	struct addrinfo *res;
+	char host[NI_MAXHOST+1];
+	int error, sock;
+
+	resolve_localhost(&res, domain, type, port);
+	error = getnameinfo(
+	    (const struct sockaddr*)res->ai_addr, res->ai_addrlen,
+	    host, nitems(host) - 1, NULL, 0, NI_NUMERICHOST);
+	ATF_REQUIRE_EQ_MSG(error, 0,
+	    "getnameinfo failed: %s", gai_strerror(error));
+	printf(
+	    "Will try to connect to host='%s', address_family=%d, "
+	    "socket_type=%d\n",
+	    host, res->ai_family, res->ai_socktype);
+	sock = make_socket(res->ai_family, res->ai_socktype, res->ai_protocol);
+	error = connect(sock, (struct sockaddr*)res->ai_addr, res->ai_addrlen);
+	freeaddrinfo(res);
+	ATF_REQUIRE_EQ_MSG(error, 0, "connect failed: %s", strerror(errno));
+	return (sock);
+}
+
+/*
+ * XXX: use linear probing to find a free port and eliminate `port` argument as
+ * a [const] int (it will need to be a pointer so it can be passed back out of
+ * the function and can influence which port `setup_client(..)` connects on.
+ */
+static int
+setup_server(int domain, int type, int port)
+{
+	struct addrinfo *res;
+	char host[NI_MAXHOST+1];
+	int error, sock;
+
+	resolve_localhost(&res, domain, type, port);
+	sock = make_socket(res->ai_family, res->ai_socktype, res->ai_protocol);
+
+	error = getnameinfo(
+	    (const struct sockaddr*)res->ai_addr, res->ai_addrlen,
+	    host, nitems(host) - 1, NULL, 0, NI_NUMERICHOST);
+	ATF_REQUIRE_EQ_MSG(error, 0,
+	    "getnameinfo failed: %s", gai_strerror(error));
+	printf(
+	    "Will try to bind socket to host='%s', address_family=%d, "
+	    "socket_type=%d\n",
+	    host, res->ai_family, res->ai_socktype);
+	error = bind(sock, res->ai_addr, res->ai_addrlen);
+	freeaddrinfo(res);
+	ATF_REQUIRE_EQ_MSG(error, 0, "bind failed: %s", strerror(errno));
+	error = listen(sock, 1);
+	ATF_REQUIRE_EQ_MSG(error, 0, "listen failed: %s", strerror(errno));
+
+	return (sock);
+}
+
+/*
+ * This function is a helper routine for taking data being sent by `sendfile` via
+ * `server_sock`, and pushing the received stream out to a file, denoted by
+ * `dest_filename`.
+ */
+static void
+server_cat(const char *dest_filename, int server_sock, size_t len)
+{
+	char *buffer;
+	int recv_sock;
+	ssize_t received_bytes;
+
+	buffer = calloc(len + 1, sizeof(char));
+	if (buffer == NULL)
+		err(1, "malloc failed");
+
+	recv_sock = accept(server_sock, NULL, 0);
+	if (recv_sock == -1)
+		err(1, "accept failed");
+
+	/*
+	 * XXX: this assumes the simplest case where all data is received in a
+	 * single recv(2) call.
+	 */
+	if (recv(recv_sock, buffer, len, 0) == -1)
+		err(1, "recv failed");
+
+	atf_utils_create_file(dest_filename, "%s", buffer);
+
+	/*
+	 * This recv(2) call helps ensure the amount of sent data is exactly
+	 * what was specified by `len`.
+	 */
+	received_bytes = recv(recv_sock, buffer, len, 0);
+	switch (received_bytes) {
+	case -1:
+		err(1, "recv failed");
+	case 0:
+		break;
+	default:
+		errx(1, "received unexpected data: %s", buffer);
+	}
+
+	(void)close(recv_sock);
+	(void)close(server_sock);
+	free(buffer);
+}
+
+static int
+setup_tcp_server(int domain, int port)
+{
+
+	return (setup_server(domain, SOCK_STREAM, port));
+}
+
+static int
+setup_tcp_client(int domain, int port)
+{
+
+	return (setup_client(domain, SOCK_STREAM, port));
+}
+
+static off_t
+file_size_from_fd(int fd)
+{
+	struct stat st;
+
+	ATF_REQUIRE_EQ_MSG(0, fstat(fd, &st),
+	    "fstat failed: %s", strerror(errno));
+
+	return (st.st_size);
+}
+
+/*
+ * NB: `nbytes` == 0 has special connotations given the sendfile(2) API
+ * contract. In short, "send the whole file" (paraphrased).
+ */
+static void
+verify_source_and_dest(const char* dest_filename, int src_fd, off_t offset,
+    size_t nbytes)
+{
+	char *dest_pointer, *src_pointer;
+	off_t dest_file_size, src_file_size;
+	size_t length;
+	int dest_fd;
+
+	atf_utils_cat_file(dest_filename, "dest_file: ");
+
+	dest_fd = open(dest_filename, O_RDONLY);
+	ATF_REQUIRE_MSG(dest_fd != -1, "open failed");
+
+	dest_file_size = file_size_from_fd(dest_fd);
+	src_file_size = file_size_from_fd(src_fd);
+
+	/*
+	 * Per sendfile(2), "send the whole file" (paraphrased). This means
+	 * that we need to grab the file size, as passing in length = 0 with
+	 * mmap(2) will result in a failure with EINVAL (length = 0 is invalid).
+	 */
+	length = (nbytes == 0) ? (size_t)(src_file_size - offset) : nbytes;
+
+	ATF_REQUIRE_EQ_MSG(dest_file_size, length,
+	    "number of bytes written out to %s (%ju) doesn't match the "
+	    "expected number of bytes (%zu)", dest_filename, dest_file_size,
+	    length);
+
+	ATF_REQUIRE_EQ_MSG(0, lseek(src_fd, offset, SEEK_SET),
+	    "lseek failed: %s", strerror(errno));
+
+	dest_pointer = mmap(NULL, length, PROT_READ, MAP_PRIVATE, dest_fd, 0);
+	ATF_REQUIRE_MSG(dest_pointer != MAP_FAILED, "mmap failed: %s",
+	    strerror(errno));
+
+	printf("Will mmap in the source file from offset=%jd to length=%zu\n",
+	    offset, length);
+
+	src_pointer = mmap(NULL, length, PROT_READ, MAP_PRIVATE, src_fd, offset);
+	ATF_REQUIRE_MSG(src_pointer != MAP_FAILED, "mmap failed: %s",
+	    strerror(errno));
+
+	ATF_REQUIRE_EQ_MSG(0, memcmp(src_pointer, dest_pointer, length),
+	    "Contents of source and destination do not match. '%s' != '%s'",
+	    src_pointer, dest_pointer);
+
+	(void)munmap(src_pointer, length);
+	(void)munmap(dest_pointer, length);
+	(void)close(dest_fd);
+}
+
+static void
+fd_positive_file_test(int domain)
+{
+	off_t offset;
+	size_t nbytes, pattern_size;
+	int client_sock, error, fd, port, server_sock;
+	pid_t server_pid;
+
+	pattern_size = strlen(DETERMINISTIC_PATTERN);
+
+	atf_utils_create_file(SOURCE_FILE, "%s", DETERMINISTIC_PATTERN);
+	fd = open(SOURCE_FILE, O_RDONLY);
+	ATF_REQUIRE_MSG(fd != -1, "open failed: %s", strerror(errno));
+
+	port = generate_random_port(__LINE__ + domain);
+	server_sock = setup_tcp_server(domain, port);
+	client_sock = setup_tcp_client(domain, port);
+
+	server_pid = atf_utils_fork();
+	if (server_pid == 0) {
+		(void)close(client_sock);
+		server_cat(DESTINATION_FILE, server_sock, pattern_size);
+		_exit(0);
+	} else
+		(void)close(server_sock);
+
+	nbytes = 0;
+	offset = 0;
+	error = sendfile(fd, client_sock, offset, nbytes, NULL, NULL,
+	    SF_FLAGS(0, 0));
+	ATF_REQUIRE_EQ_MSG(0, error, "sendfile failed: %s", strerror(errno));
+	(void)close(client_sock);
+
+	atf_utils_wait(server_pid, 0, "", "");
+	verify_source_and_dest(DESTINATION_FILE, fd, offset, nbytes);
+
+	(void)close(fd);
+}
+
+ATF_TC(fd_positive_file_v4);
+ATF_TC_HEAD(fd_positive_file_v4, tc)
+{
+
+	atf_tc_set_md_var(tc, "descr",
+	    "Verify regular file as file descriptor support (IPv4)");
+}
+ATF_TC_BODY(fd_positive_file_v4, tc)
+{
+
+	fd_positive_file_test(AF_INET);
+}
+
+ATF_TC(fd_positive_file_v6);
+ATF_TC_HEAD(fd_positive_file_v6, tc)
+{
+
+	atf_tc_set_md_var(tc, "descr",
+	    "Verify regular file as file descriptor support (IPv6)");
+}
+ATF_TC_BODY(fd_positive_file_v6, tc)
+{
+
+	fd_positive_file_test(AF_INET6);
+}
+
+static void
+fd_positive_shm_test(int domain)
+{
+	char *shm_pointer;
+	off_t offset;
+	size_t nbytes, pattern_size;
+	pid_t server_pid;
+	int client_sock, error, fd, port, server_sock;
+
+	pattern_size = strlen(DETERMINISTIC_PATTERN);
+
+	printf("pattern size: %zu\n", pattern_size);
+
+	fd = shm_open(SHM_ANON, O_RDWR|O_CREAT, 0600);
+	ATF_REQUIRE_MSG(fd != -1, "shm_open failed: %s", strerror(errno));
+	ATF_REQUIRE_EQ_MSG(0, ftruncate(fd, pattern_size),
+	    "ftruncate failed: %s", strerror(errno));
+	shm_pointer = mmap(NULL, pattern_size, PROT_READ|PROT_WRITE,
+	    MAP_SHARED, fd, 0);
+	ATF_REQUIRE_MSG(shm_pointer != MAP_FAILED,
+	    "mmap failed: %s", strerror(errno));
+	memcpy(shm_pointer, DETERMINISTIC_PATTERN, pattern_size);
+	ATF_REQUIRE_EQ_MSG(0,
+	    memcmp(shm_pointer, DETERMINISTIC_PATTERN, pattern_size),
+	    "memcmp showed data mismatch: '%s' != '%s'",
+	    DETERMINISTIC_PATTERN, shm_pointer);
+
+	port = generate_random_port(__LINE__ + domain);
+	server_sock = setup_tcp_server(domain, port);
+	client_sock = setup_tcp_client(domain, port);
+
+	server_pid = atf_utils_fork();
+	if (server_pid == 0) {
+		(void)close(client_sock);
+		server_cat(DESTINATION_FILE, server_sock, pattern_size);
+		_exit(0);
+	} else
+		(void)close(server_sock);
+
+	nbytes = 0;
+	offset = 0;
+	error = sendfile(fd, client_sock, offset, nbytes, NULL, NULL,
+	    SF_FLAGS(0, 0));
+	ATF_REQUIRE_EQ_MSG(0, error, "sendfile failed: %s", strerror(errno));
+	(void)close(client_sock);
+
+	atf_utils_wait(server_pid, 0, "", "");
+	verify_source_and_dest(DESTINATION_FILE, fd, offset, nbytes);
+
+	(void)munmap(shm_pointer, sizeof(DETERMINISTIC_PATTERN));
+	(void)close(fd);
+}
+
+ATF_TC(fd_positive_shm_v4);
+ATF_TC_HEAD(fd_positive_shm_v4, tc)
+{
+
+	atf_tc_set_md_var(tc, "descr",
+	    "Verify shared memory as file descriptor support (IPv4)");
+}
+ATF_TC_BODY(fd_positive_shm_v4, tc)
+{
+
+	fd_positive_shm_test(AF_INET);
+}
+
+ATF_TC(fd_positive_shm_v6);
+ATF_TC_HEAD(fd_positive_shm_v6, tc)
+{
+
+	atf_tc_set_md_var(tc, "descr",
+	    "Verify shared memory as file descriptor support (IPv6))");
+}
+ATF_TC_BODY(fd_positive_shm_v6, tc)
+{
+
+	fd_positive_shm_test(AF_INET6);
+}
+
+static void
+fd_negative_bad_fd_test(int domain)
+{
+	int client_sock, error, fd, port, server_sock;
+
+	port = generate_random_port(__LINE__ + domain);
+	server_sock = setup_tcp_server(domain, port);
+	client_sock = setup_tcp_client(domain, port);
+
+	fd = -1;
+
+	error = sendfile(fd, client_sock, 0, 0, NULL, NULL, SF_FLAGS(0, 0));
+	ATF_REQUIRE_ERRNO(EBADF, error == -1);
+
+	(void)close(client_sock);
+	(void)close(server_sock);
+}
+
+ATF_TC(fd_negative_bad_fd_v4);
+ATF_TC_HEAD(fd_negative_bad_fd_v4, tc)
+{
+
+	atf_tc_set_md_var(tc, "descr",
+	    "Verify bad file descriptor returns EBADF (IPv4)");
+}
+ATF_TC_BODY(fd_negative_bad_fd_v4, tc)
+{
+
+	fd_negative_bad_fd_test(AF_INET);
+}
+
+ATF_TC(fd_negative_bad_fd_v6);
+ATF_TC_HEAD(fd_negative_bad_fd_v6, tc)
+{
+
+	atf_tc_set_md_var(tc, "descr",
+	    "Verify bad file descriptor returns EBADF (IPv6)");
+}
+ATF_TC_BODY(fd_negative_bad_fd_v6, tc)
+{
+
+	fd_negative_bad_fd_test(AF_INET6);
+}
+
+static void
+flags_test(int domain)
+{
+	off_t offset;
+	size_t nbytes, pattern_size;
+	int client_sock, error, fd, i, port, server_sock;
+	pid_t server_pid;
+	int16_t number_pages = 10;
+
+	pattern_size = strlen(DETERMINISTIC_PATTERN);
+
+	struct testcase {
+		int16_t readahead_pages, flags;
+	} testcases[] = {
+		/* This is covered in `:fd_positive_file` */
+#if 0
+		{
+			.readahead_pages = 0,
+			.flags = 0
+		},
+#endif
+		{
+			.readahead_pages = 0,
+			.flags = SF_NOCACHE
+		},
+#ifdef SF_USER_READAHEAD
+		{
+			.readahead_pages = 0,
+			.flags = SF_NOCACHE|SF_USER_READAHEAD
+		},
+		{
+			.readahead_pages = 0,
+			.flags = SF_USER_READAHEAD
+		},
+#endif
+		{
+			.readahead_pages = number_pages,
+			.flags = 0
+		},
+		{
+			.readahead_pages = number_pages,
+			.flags = SF_NOCACHE
+		},
+#ifdef SF_USER_READAHEAD
+		{
+			.readahead_pages = number_pages,
+			.flags = SF_NOCACHE|SF_USER_READAHEAD
+		},
+#endif
+		{
+			.readahead_pages = number_pages,
+			.flags = SF_NOCACHE
+		},
+		{
+			.readahead_pages = number_pages,
+			.flags = SF_NODISKIO
+		}
+	};
+
+	atf_utils_create_file(SOURCE_FILE, "%s", DETERMINISTIC_PATTERN);
+	for (i = 0; i < nitems(testcases); i++) {
+		fd = open(SOURCE_FILE, O_RDONLY);
+		ATF_REQUIRE_MSG(fd != -1, "open failed: %s", strerror(errno));
+
+		port = generate_random_port(i * __LINE__ + domain);
+		server_sock = setup_tcp_server(domain, port);
+		client_sock = setup_tcp_client(domain, port);
+
+		server_pid = atf_utils_fork();
+		if (server_pid == 0) {
+			(void)close(client_sock);
+			server_cat(DESTINATION_FILE, server_sock, pattern_size);
+			_exit(0);
+		} else
+			(void)close(server_sock);
+
+		nbytes = 0;
+		offset = 0;
+		error = sendfile(fd, client_sock, offset, nbytes, NULL, NULL,
+		    SF_FLAGS(testcases[i].readahead_pages, testcases[i].flags));
+		ATF_CHECK_EQ_MSG(error, 0, "sendfile testcase #%d failed: %s",
+		    i, strerror(errno));
+		(void)close(client_sock);
+
+		atf_utils_wait(server_pid, 0, "", "");
+		verify_source_and_dest(DESTINATION_FILE, fd, offset, nbytes);
+
+		(void)close(fd);
+	}
+}
+
+ATF_TC(flags_v4);
+ATF_TC_HEAD(flags_v4, tc)
+{
+
+	atf_tc_set_md_var(tc, "descr", "Verify flags functionality (IPv4)");
+}
+ATF_TC_BODY(flags_v4, tc)
+{
+
+	flags_test(AF_INET);
+}
+
+ATF_TC(flags_v6);
+ATF_TC_HEAD(flags_v6, tc)
+{
+
+	atf_tc_set_md_var(tc, "descr", "Verify flags functionality (IPv6)");
+}
+ATF_TC_BODY(flags_v6, tc)
+{
+
+	flags_test(AF_INET6);
+}
+
+static void
+hdtr_positive_test(int domain)
+{

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



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