From owner-svn-src-projects@freebsd.org Mon Feb 25 11:59:38 2019 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CA941150745C for ; Mon, 25 Feb 2019 11:59:37 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 63B6888CDB; Mon, 25 Feb 2019 11:59:37 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4F7291C97A; Mon, 25 Feb 2019 11:59:37 +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 x1PBxb6p009054; Mon, 25 Feb 2019 11:59:37 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x1PBxU0L009016; Mon, 25 Feb 2019 11:59:30 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201902251159.x1PBxU0L009016@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Mon, 25 Feb 2019 11:59:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r344513 - in projects/clang800-import: . bin/sh bin/sh/tests/execution cddl/contrib/opensolaris/cmd/zpool cddl/contrib/opensolaris/lib/libdtrace/common cddl/contrib/opensolaris/lib/libz... X-SVN-Group: projects X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in projects/clang800-import: . bin/sh bin/sh/tests/execution cddl/contrib/opensolaris/cmd/zpool cddl/contrib/opensolaris/lib/libdtrace/common cddl/contrib/opensolaris/lib/libzpool/common contrib/libc+... X-SVN-Commit-Revision: 344513 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 63B6888CDB X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.98 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.98)[-0.979,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Feb 2019 11:59:38 -0000 Author: dim Date: Mon Feb 25 11:59:29 2019 New Revision: 344513 URL: https://svnweb.freebsd.org/changeset/base/344513 Log: Merge ^/head r344178 through r344512. Added: projects/clang800-import/bin/sh/tests/execution/pipefail1.0 - copied unchanged from r344512, head/bin/sh/tests/execution/pipefail1.0 projects/clang800-import/bin/sh/tests/execution/pipefail2.42 - copied unchanged from r344512, head/bin/sh/tests/execution/pipefail2.42 projects/clang800-import/bin/sh/tests/execution/pipefail3.42 - copied unchanged from r344512, head/bin/sh/tests/execution/pipefail3.42 projects/clang800-import/bin/sh/tests/execution/pipefail4.42 - copied unchanged from r344512, head/bin/sh/tests/execution/pipefail4.42 projects/clang800-import/bin/sh/tests/execution/pipefail5.42 - copied unchanged from r344512, head/bin/sh/tests/execution/pipefail5.42 projects/clang800-import/bin/sh/tests/execution/pipefail6.42 - copied unchanged from r344512, head/bin/sh/tests/execution/pipefail6.42 projects/clang800-import/bin/sh/tests/execution/pipefail7.0 - copied unchanged from r344512, head/bin/sh/tests/execution/pipefail7.0 projects/clang800-import/lib/libc/x86/sys/pkru.3 - copied unchanged from r344512, head/lib/libc/x86/sys/pkru.3 projects/clang800-import/lib/libc/x86/sys/pkru.c - copied unchanged from r344512, head/lib/libc/x86/sys/pkru.c projects/clang800-import/sys/compat/lindebugfs/ - copied from r344512, head/sys/compat/lindebugfs/ projects/clang800-import/sys/compat/linuxkpi/common/include/linux/debugfs.h - copied unchanged from r344512, head/sys/compat/linuxkpi/common/include/linux/debugfs.h projects/clang800-import/sys/compat/linuxkpi/common/include/linux/seq_file.h - copied unchanged from r344512, head/sys/compat/linuxkpi/common/include/linux/seq_file.h projects/clang800-import/sys/compat/linuxkpi/common/src/linux_seq_file.c - copied unchanged from r344512, head/sys/compat/linuxkpi/common/src/linux_seq_file.c projects/clang800-import/sys/dev/nvdimm/nvdimm_ns.c - copied unchanged from r344512, head/sys/dev/nvdimm/nvdimm_ns.c - copied unchanged from r344512, head/sys/dev/syscons/scterm-dumb.c - copied unchanged from r344512, head/sys/dev/syscons/scterm-sc.c - copied unchanged from r344512, head/sys/dev/syscons/sctermvar.h projects/clang800-import/sys/gnu/gcov/ - copied from r344512, head/sys/gnu/gcov/ projects/clang800-import/sys/kern/subr_rangeset.c - copied unchanged from r344512, head/sys/kern/subr_rangeset.c projects/clang800-import/sys/sys/_rangeset.h - copied unchanged from r344512, head/sys/sys/_rangeset.h projects/clang800-import/sys/sys/rangeset.h - copied unchanged from r344512, head/sys/sys/rangeset.h projects/clang800-import/tools/build/options/WITHOUT_PIE - copied unchanged from r344512, head/tools/build/options/WITHOUT_PIE projects/clang800-import/tools/build/options/WITH_PIE - copied unchanged from r344512, head/tools/build/options/WITH_PIE Directory Properties: projects/clang800-import/sys/dev/syscons/scterm-dumb.c (props changed) projects/clang800-import/sys/dev/syscons/scterm-sc.c (props changed) projects/clang800-import/sys/dev/syscons/sctermvar.h (props changed) Deleted: projects/clang800-import/sys/dev/drm/ati_pcigart.c projects/clang800-import/sys/dev/drm/drm.h projects/clang800-import/sys/dev/drm/drmP.h projects/clang800-import/sys/dev/drm/drm_agpsupport.c projects/clang800-import/sys/dev/drm/drm_atomic.h projects/clang800-import/sys/dev/drm/drm_auth.c projects/clang800-import/sys/dev/drm/drm_bufs.c projects/clang800-import/sys/dev/drm/drm_context.c projects/clang800-import/sys/dev/drm/drm_dma.c projects/clang800-import/sys/dev/drm/drm_drawable.c projects/clang800-import/sys/dev/drm/drm_drv.c projects/clang800-import/sys/dev/drm/drm_fops.c projects/clang800-import/sys/dev/drm/drm_hashtab.c projects/clang800-import/sys/dev/drm/drm_hashtab.h projects/clang800-import/sys/dev/drm/drm_internal.h projects/clang800-import/sys/dev/drm/drm_ioctl.c projects/clang800-import/sys/dev/drm/drm_irq.c projects/clang800-import/sys/dev/drm/drm_linux_list.h projects/clang800-import/sys/dev/drm/drm_lock.c projects/clang800-import/sys/dev/drm/drm_memory.c projects/clang800-import/sys/dev/drm/drm_mm.c projects/clang800-import/sys/dev/drm/drm_mm.h projects/clang800-import/sys/dev/drm/drm_pci.c projects/clang800-import/sys/dev/drm/drm_pciids.h projects/clang800-import/sys/dev/drm/drm_sarea.h projects/clang800-import/sys/dev/drm/drm_scatter.c projects/clang800-import/sys/dev/drm/drm_sman.c projects/clang800-import/sys/dev/drm/drm_sman.h projects/clang800-import/sys/dev/drm/drm_sysctl.c projects/clang800-import/sys/dev/drm/drm_vm.c projects/clang800-import/sys/dev/drm/mach64_dma.c projects/clang800-import/sys/dev/drm/mach64_drm.h projects/clang800-import/sys/dev/drm/mach64_drv.c projects/clang800-import/sys/dev/drm/mach64_drv.h projects/clang800-import/sys/dev/drm/mach64_irq.c projects/clang800-import/sys/dev/drm/mach64_state.c projects/clang800-import/sys/dev/drm/mga_dma.c projects/clang800-import/sys/dev/drm/mga_drm.h projects/clang800-import/sys/dev/drm/mga_drv.c projects/clang800-import/sys/dev/drm/mga_drv.h projects/clang800-import/sys/dev/drm/mga_irq.c projects/clang800-import/sys/dev/drm/mga_state.c projects/clang800-import/sys/dev/drm/mga_ucode.h projects/clang800-import/sys/dev/drm/mga_warp.c projects/clang800-import/sys/dev/drm/r128_cce.c projects/clang800-import/sys/dev/drm/r128_drm.h projects/clang800-import/sys/dev/drm/r128_drv.c projects/clang800-import/sys/dev/drm/r128_drv.h projects/clang800-import/sys/dev/drm/r128_irq.c projects/clang800-import/sys/dev/drm/r128_state.c projects/clang800-import/sys/dev/drm/savage_bci.c projects/clang800-import/sys/dev/drm/savage_drm.h projects/clang800-import/sys/dev/drm/savage_drv.c projects/clang800-import/sys/dev/drm/savage_drv.h projects/clang800-import/sys/dev/drm/savage_state.c projects/clang800-import/sys/dev/drm/sis_drm.h projects/clang800-import/sys/dev/drm/sis_drv.c projects/clang800-import/sys/dev/drm/sis_drv.h projects/clang800-import/sys/dev/drm/sis_ds.c projects/clang800-import/sys/dev/drm/sis_ds.h projects/clang800-import/sys/dev/drm/sis_mm.c projects/clang800-import/sys/dev/drm/tdfx_drv.c projects/clang800-import/sys/dev/drm/tdfx_drv.h projects/clang800-import/sys/dev/drm/via_3d_reg.h projects/clang800-import/sys/dev/drm/via_dma.c projects/clang800-import/sys/dev/drm/via_dmablit.c projects/clang800-import/sys/dev/drm/via_dmablit.h projects/clang800-import/sys/dev/drm/via_drm.h projects/clang800-import/sys/dev/drm/via_drv.c projects/clang800-import/sys/dev/drm/via_drv.h projects/clang800-import/sys/dev/drm/via_irq.c projects/clang800-import/sys/dev/drm/via_map.c projects/clang800-import/sys/dev/drm/via_mm.c projects/clang800-import/sys/dev/drm/via_verifier.c projects/clang800-import/sys/dev/drm/via_verifier.h projects/clang800-import/sys/dev/drm/via_video.c projects/clang800-import/sys/dev/drm2/ati_pcigart.c projects/clang800-import/sys/dev/drm2/i915/dvo.h projects/clang800-import/sys/dev/drm2/i915/dvo_ch7017.c projects/clang800-import/sys/dev/drm2/i915/dvo_ch7xxx.c projects/clang800-import/sys/dev/drm2/i915/dvo_ivch.c projects/clang800-import/sys/dev/drm2/i915/dvo_ns2501.c projects/clang800-import/sys/dev/drm2/i915/dvo_sil164.c projects/clang800-import/sys/dev/drm2/i915/dvo_tfp410.c projects/clang800-import/sys/dev/drm2/i915/i915_debug.c projects/clang800-import/sys/dev/drm2/i915/i915_dma.c projects/clang800-import/sys/dev/drm2/i915/i915_drm.h projects/clang800-import/sys/dev/drm2/i915/i915_drv.c projects/clang800-import/sys/dev/drm2/i915/i915_drv.h projects/clang800-import/sys/dev/drm2/i915/i915_gem.c projects/clang800-import/sys/dev/drm2/i915/i915_gem_context.c projects/clang800-import/sys/dev/drm2/i915/i915_gem_evict.c projects/clang800-import/sys/dev/drm2/i915/i915_gem_execbuffer.c projects/clang800-import/sys/dev/drm2/i915/i915_gem_gtt.c projects/clang800-import/sys/dev/drm2/i915/i915_gem_stolen.c projects/clang800-import/sys/dev/drm2/i915/i915_gem_tiling.c projects/clang800-import/sys/dev/drm2/i915/i915_ioc32.c projects/clang800-import/sys/dev/drm2/i915/i915_irq.c projects/clang800-import/sys/dev/drm2/i915/i915_reg.h projects/clang800-import/sys/dev/drm2/i915/i915_suspend.c projects/clang800-import/sys/dev/drm2/i915/intel_acpi.c projects/clang800-import/sys/dev/drm2/i915/intel_bios.c projects/clang800-import/sys/dev/drm2/i915/intel_bios.h projects/clang800-import/sys/dev/drm2/i915/intel_crt.c projects/clang800-import/sys/dev/drm2/i915/intel_ddi.c projects/clang800-import/sys/dev/drm2/i915/intel_display.c projects/clang800-import/sys/dev/drm2/i915/intel_dp.c projects/clang800-import/sys/dev/drm2/i915/intel_drv.h projects/clang800-import/sys/dev/drm2/i915/intel_dvo.c projects/clang800-import/sys/dev/drm2/i915/intel_fb.c projects/clang800-import/sys/dev/drm2/i915/intel_hdmi.c projects/clang800-import/sys/dev/drm2/i915/intel_iic.c projects/clang800-import/sys/dev/drm2/i915/intel_lvds.c projects/clang800-import/sys/dev/drm2/i915/intel_modes.c projects/clang800-import/sys/dev/drm2/i915/intel_opregion.c projects/clang800-import/sys/dev/drm2/i915/intel_overlay.c projects/clang800-import/sys/dev/drm2/i915/intel_panel.c projects/clang800-import/sys/dev/drm2/i915/intel_pm.c projects/clang800-import/sys/dev/drm2/i915/intel_ringbuffer.c projects/clang800-import/sys/dev/drm2/i915/intel_ringbuffer.h projects/clang800-import/sys/dev/drm2/i915/intel_sdvo.c projects/clang800-import/sys/dev/drm2/i915/intel_sdvo_regs.h projects/clang800-import/sys/dev/drm2/i915/intel_sprite.c projects/clang800-import/sys/dev/drm2/i915/intel_tv.c projects/clang800-import/sys/dev/drm2/radeon/ObjectID.h projects/clang800-import/sys/dev/drm2/radeon/README projects/clang800-import/sys/dev/drm2/radeon/atom-bits.h projects/clang800-import/sys/dev/drm2/radeon/atom-names.h projects/clang800-import/sys/dev/drm2/radeon/atom-types.h projects/clang800-import/sys/dev/drm2/radeon/atom.c projects/clang800-import/sys/dev/drm2/radeon/atom.h projects/clang800-import/sys/dev/drm2/radeon/atombios.h projects/clang800-import/sys/dev/drm2/radeon/atombios_crtc.c projects/clang800-import/sys/dev/drm2/radeon/atombios_dp.c projects/clang800-import/sys/dev/drm2/radeon/atombios_encoders.c projects/clang800-import/sys/dev/drm2/radeon/atombios_i2c.c projects/clang800-import/sys/dev/drm2/radeon/avivod.h projects/clang800-import/sys/dev/drm2/radeon/cayman_blit_shaders.c projects/clang800-import/sys/dev/drm2/radeon/cayman_blit_shaders.h projects/clang800-import/sys/dev/drm2/radeon/cayman_reg_safe.h projects/clang800-import/sys/dev/drm2/radeon/evergreen.c projects/clang800-import/sys/dev/drm2/radeon/evergreen_blit_kms.c projects/clang800-import/sys/dev/drm2/radeon/evergreen_blit_shaders.c projects/clang800-import/sys/dev/drm2/radeon/evergreen_blit_shaders.h projects/clang800-import/sys/dev/drm2/radeon/evergreen_cs.c projects/clang800-import/sys/dev/drm2/radeon/evergreen_hdmi.c projects/clang800-import/sys/dev/drm2/radeon/evergreen_reg.h projects/clang800-import/sys/dev/drm2/radeon/evergreen_reg_safe.h projects/clang800-import/sys/dev/drm2/radeon/evergreend.h projects/clang800-import/sys/dev/drm2/radeon/ni.c projects/clang800-import/sys/dev/drm2/radeon/ni_reg.h projects/clang800-import/sys/dev/drm2/radeon/nid.h projects/clang800-import/sys/dev/drm2/radeon/r100.c projects/clang800-import/sys/dev/drm2/radeon/r100_reg_safe.h projects/clang800-import/sys/dev/drm2/radeon/r100_track.h projects/clang800-import/sys/dev/drm2/radeon/r100d.h projects/clang800-import/sys/dev/drm2/radeon/r200.c projects/clang800-import/sys/dev/drm2/radeon/r200_reg_safe.h projects/clang800-import/sys/dev/drm2/radeon/r300.c projects/clang800-import/sys/dev/drm2/radeon/r300_reg.h projects/clang800-import/sys/dev/drm2/radeon/r300_reg_safe.h projects/clang800-import/sys/dev/drm2/radeon/r300d.h projects/clang800-import/sys/dev/drm2/radeon/r420.c projects/clang800-import/sys/dev/drm2/radeon/r420_reg_safe.h projects/clang800-import/sys/dev/drm2/radeon/r420d.h projects/clang800-import/sys/dev/drm2/radeon/r500_reg.h projects/clang800-import/sys/dev/drm2/radeon/r520.c projects/clang800-import/sys/dev/drm2/radeon/r520d.h projects/clang800-import/sys/dev/drm2/radeon/r600.c projects/clang800-import/sys/dev/drm2/radeon/r600_audio.c projects/clang800-import/sys/dev/drm2/radeon/r600_blit_kms.c projects/clang800-import/sys/dev/drm2/radeon/r600_blit_shaders.c projects/clang800-import/sys/dev/drm2/radeon/r600_blit_shaders.h projects/clang800-import/sys/dev/drm2/radeon/r600_cp.h projects/clang800-import/sys/dev/drm2/radeon/r600_cs.c projects/clang800-import/sys/dev/drm2/radeon/r600_cs.h projects/clang800-import/sys/dev/drm2/radeon/r600_hdmi.c projects/clang800-import/sys/dev/drm2/radeon/r600_reg.h projects/clang800-import/sys/dev/drm2/radeon/r600_reg_safe.h projects/clang800-import/sys/dev/drm2/radeon/r600d.h projects/clang800-import/sys/dev/drm2/radeon/radeon.h projects/clang800-import/sys/dev/drm2/radeon/radeon_acpi.c projects/clang800-import/sys/dev/drm2/radeon/radeon_acpi.h projects/clang800-import/sys/dev/drm2/radeon/radeon_agp.c projects/clang800-import/sys/dev/drm2/radeon/radeon_asic.c projects/clang800-import/sys/dev/drm2/radeon/radeon_asic.h projects/clang800-import/sys/dev/drm2/radeon/radeon_atombios.c projects/clang800-import/sys/dev/drm2/radeon/radeon_benchmark.c projects/clang800-import/sys/dev/drm2/radeon/radeon_bios.c projects/clang800-import/sys/dev/drm2/radeon/radeon_blit_common.h projects/clang800-import/sys/dev/drm2/radeon/radeon_clocks.c projects/clang800-import/sys/dev/drm2/radeon/radeon_combios.c projects/clang800-import/sys/dev/drm2/radeon/radeon_connectors.c projects/clang800-import/sys/dev/drm2/radeon/radeon_cs.c projects/clang800-import/sys/dev/drm2/radeon/radeon_cursor.c projects/clang800-import/sys/dev/drm2/radeon/radeon_device.c projects/clang800-import/sys/dev/drm2/radeon/radeon_display.c projects/clang800-import/sys/dev/drm2/radeon/radeon_drm.h projects/clang800-import/sys/dev/drm2/radeon/radeon_drv.c projects/clang800-import/sys/dev/drm2/radeon/radeon_drv.h projects/clang800-import/sys/dev/drm2/radeon/radeon_encoders.c projects/clang800-import/sys/dev/drm2/radeon/radeon_family.h projects/clang800-import/sys/dev/drm2/radeon/radeon_fb.c projects/clang800-import/sys/dev/drm2/radeon/radeon_fence.c projects/clang800-import/sys/dev/drm2/radeon/radeon_gart.c projects/clang800-import/sys/dev/drm2/radeon/radeon_gem.c projects/clang800-import/sys/dev/drm2/radeon/radeon_gem.h projects/clang800-import/sys/dev/drm2/radeon/radeon_i2c.c projects/clang800-import/sys/dev/drm2/radeon/radeon_irq.c projects/clang800-import/sys/dev/drm2/radeon/radeon_irq_kms.c projects/clang800-import/sys/dev/drm2/radeon/radeon_irq_kms.h projects/clang800-import/sys/dev/drm2/radeon/radeon_kms.c projects/clang800-import/sys/dev/drm2/radeon/radeon_kms.h projects/clang800-import/sys/dev/drm2/radeon/radeon_legacy_crtc.c projects/clang800-import/sys/dev/drm2/radeon/radeon_legacy_encoders.c projects/clang800-import/sys/dev/drm2/radeon/radeon_legacy_tv.c projects/clang800-import/sys/dev/drm2/radeon/radeon_mem.c projects/clang800-import/sys/dev/drm2/radeon/radeon_mode.h projects/clang800-import/sys/dev/drm2/radeon/radeon_object.c projects/clang800-import/sys/dev/drm2/radeon/radeon_object.h projects/clang800-import/sys/dev/drm2/radeon/radeon_pm.c projects/clang800-import/sys/dev/drm2/radeon/radeon_prime.c projects/clang800-import/sys/dev/drm2/radeon/radeon_reg.h projects/clang800-import/sys/dev/drm2/radeon/radeon_ring.c projects/clang800-import/sys/dev/drm2/radeon/radeon_sa.c projects/clang800-import/sys/dev/drm2/radeon/radeon_semaphore.c projects/clang800-import/sys/dev/drm2/radeon/radeon_test.c projects/clang800-import/sys/dev/drm2/radeon/radeon_trace.h projects/clang800-import/sys/dev/drm2/radeon/radeon_trace_points.c projects/clang800-import/sys/dev/drm2/radeon/radeon_ttm.c projects/clang800-import/sys/dev/drm2/radeon/reg_srcs/cayman projects/clang800-import/sys/dev/drm2/radeon/reg_srcs/evergreen projects/clang800-import/sys/dev/drm2/radeon/reg_srcs/r100 projects/clang800-import/sys/dev/drm2/radeon/reg_srcs/r200 projects/clang800-import/sys/dev/drm2/radeon/reg_srcs/r300 projects/clang800-import/sys/dev/drm2/radeon/reg_srcs/r420 projects/clang800-import/sys/dev/drm2/radeon/reg_srcs/r600 projects/clang800-import/sys/dev/drm2/radeon/reg_srcs/rn50 projects/clang800-import/sys/dev/drm2/radeon/reg_srcs/rs600 projects/clang800-import/sys/dev/drm2/radeon/reg_srcs/rv515 projects/clang800-import/sys/dev/drm2/radeon/rn50_reg_safe.h projects/clang800-import/sys/dev/drm2/radeon/rs100d.h projects/clang800-import/sys/dev/drm2/radeon/rs400.c projects/clang800-import/sys/dev/drm2/radeon/rs400d.h projects/clang800-import/sys/dev/drm2/radeon/rs600.c projects/clang800-import/sys/dev/drm2/radeon/rs600_reg_safe.h projects/clang800-import/sys/dev/drm2/radeon/rs600d.h projects/clang800-import/sys/dev/drm2/radeon/rs690.c projects/clang800-import/sys/dev/drm2/radeon/rs690d.h projects/clang800-import/sys/dev/drm2/radeon/rv200d.h projects/clang800-import/sys/dev/drm2/radeon/rv250d.h projects/clang800-import/sys/dev/drm2/radeon/rv350d.h projects/clang800-import/sys/dev/drm2/radeon/rv515.c projects/clang800-import/sys/dev/drm2/radeon/rv515_reg_safe.h projects/clang800-import/sys/dev/drm2/radeon/rv515d.h projects/clang800-import/sys/dev/drm2/radeon/rv770.c projects/clang800-import/sys/dev/drm2/radeon/rv770d.h projects/clang800-import/sys/dev/drm2/radeon/si.c projects/clang800-import/sys/dev/drm2/radeon/si_blit_shaders.c projects/clang800-import/sys/dev/drm2/radeon/si_blit_shaders.h projects/clang800-import/sys/dev/drm2/radeon/si_reg.h projects/clang800-import/sys/dev/drm2/radeon/sid.h projects/clang800-import/sys/modules/drm/Makefile projects/clang800-import/sys/modules/drm/Makefile.inc projects/clang800-import/sys/modules/drm/drm/Makefile projects/clang800-import/sys/modules/drm/mach64/Makefile projects/clang800-import/sys/modules/drm/mga/Makefile projects/clang800-import/sys/modules/drm/r128/Makefile projects/clang800-import/sys/modules/drm/savage/Makefile projects/clang800-import/sys/modules/drm/sis/Makefile projects/clang800-import/sys/modules/drm/tdfx/Makefile projects/clang800-import/sys/modules/drm/via/Makefile projects/clang800-import/sys/modules/drm2/Makefile projects/clang800-import/sys/modules/drm2/Makefile.inc projects/clang800-import/sys/modules/drm2/drm2/Makefile projects/clang800-import/sys/modules/drm2/i915kms/Makefile projects/clang800-import/sys/modules/drm2/radeonkms/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/ARUBA_me/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/ARUBA_pfp/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/ARUBA_rlc/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/BARTS_mc/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/BARTS_me/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/BARTS_pfp/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/BTC_rlc/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/CAICOS_mc/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/CAICOS_me/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/CAICOS_pfp/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/CAYMAN_mc/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/CAYMAN_me/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/CAYMAN_pfp/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/CAYMAN_rlc/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/CEDAR_me/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/CEDAR_pfp/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/CEDAR_rlc/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/CYPRESS_me/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/CYPRESS_pfp/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/CYPRESS_rlc/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/CYPRESS_uvd/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/HAINAN_ce/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/HAINAN_mc/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/HAINAN_me/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/HAINAN_pfp/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/HAINAN_rlc/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/JUNIPER_me/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/JUNIPER_pfp/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/JUNIPER_rlc/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/Makefile.inc projects/clang800-import/sys/modules/drm2/radeonkmsfw/OLAND_ce/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/OLAND_mc/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/OLAND_me/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/OLAND_pfp/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/OLAND_rlc/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/PALM_me/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/PALM_pfp/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/PITCAIRN_ce/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/PITCAIRN_mc/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/PITCAIRN_me/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/PITCAIRN_pfp/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/PITCAIRN_rlc/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/R100_cp/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/R200_cp/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/R300_cp/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/R420_cp/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/R520_cp/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/R600_me/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/R600_pfp/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/R600_rlc/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/R700_rlc/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/REDWOOD_me/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/REDWOOD_pfp/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/REDWOOD_rlc/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/RS600_cp/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/RS690_cp/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/RS780_me/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/RS780_pfp/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/RV610_me/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/RV610_pfp/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/RV620_me/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/RV620_pfp/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/RV630_me/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/RV630_pfp/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/RV635_me/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/RV635_pfp/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/RV670_me/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/RV670_pfp/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/RV710_me/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/RV710_pfp/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/RV710_uvd/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/RV730_me/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/RV730_pfp/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/RV770_me/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/RV770_pfp/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/SUMO2_me/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/SUMO2_pfp/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/SUMO_me/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/SUMO_pfp/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/SUMO_rlc/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/SUMO_uvd/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/TAHITI_ce/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/TAHITI_mc/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/TAHITI_me/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/TAHITI_pfp/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/TAHITI_rlc/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/TAHITI_uvd/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/TURKS_mc/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/TURKS_me/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/TURKS_pfp/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/VERDE_ce/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/VERDE_mc/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/VERDE_me/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/VERDE_pfp/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/VERDE_rlc/Makefile projects/clang800-import/sys/modules/drm2/radeonkmsfw/gen-makefiles Modified: projects/clang800-import/UPDATING projects/clang800-import/bin/sh/histedit.c projects/clang800-import/bin/sh/jobs.c projects/clang800-import/bin/sh/options.h projects/clang800-import/bin/sh/output.c projects/clang800-import/bin/sh/output.h projects/clang800-import/bin/sh/sh.1 projects/clang800-import/bin/sh/tests/execution/Makefile projects/clang800-import/cddl/contrib/opensolaris/cmd/zpool/zpool.8 projects/clang800-import/cddl/contrib/opensolaris/lib/libdtrace/common/dt_consume.c projects/clang800-import/cddl/contrib/opensolaris/lib/libzpool/common/taskq.c projects/clang800-import/contrib/libc++/include/__locale projects/clang800-import/contrib/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp projects/clang800-import/contrib/llvm/tools/lld/ELF/Arch/X86.cpp projects/clang800-import/contrib/llvm/tools/lld/ELF/Arch/X86_64.cpp projects/clang800-import/contrib/llvm/tools/lld/ELF/Config.h projects/clang800-import/contrib/llvm/tools/lld/ELF/SyntheticSections.cpp projects/clang800-import/crypto/openssh/scp.1 projects/clang800-import/crypto/openssh/scp.c projects/clang800-import/etc/mtree/BSD.root.dist projects/clang800-import/kerberos5/tools/asn1_compile/Makefile projects/clang800-import/kerberos5/tools/slc/Makefile projects/clang800-import/lib/clang/Makefile.inc projects/clang800-import/lib/clang/libllvmminimal/Makefile projects/clang800-import/lib/libc/amd64/Symbol.map projects/clang800-import/lib/libc/i386/Symbol.map projects/clang800-import/lib/libc/posix1e/acl_strip.c projects/clang800-import/lib/libc/sys/sendfile.2 projects/clang800-import/lib/libc/tests/sys/sendfile_test.c projects/clang800-import/lib/libc/x86/sys/Makefile.inc projects/clang800-import/lib/libmemstat/memstat_uma.c projects/clang800-import/libexec/rc/rc.d/nfsd projects/clang800-import/libexec/rtld-elf/Makefile projects/clang800-import/release/tools/ec2.conf projects/clang800-import/sbin/dhclient/dhclient.c projects/clang800-import/sbin/fsck_ffs/inode.c projects/clang800-import/sbin/mdmfs/mdmfs.c projects/clang800-import/sbin/nvmecontrol/firmware.c projects/clang800-import/sbin/nvmecontrol/logpage.c projects/clang800-import/sbin/nvmecontrol/nvmecontrol.c projects/clang800-import/sbin/nvmecontrol/nvmecontrol.h projects/clang800-import/sbin/sysctl/sysctl.c projects/clang800-import/share/man/man4/cc_newreno.4 projects/clang800-import/share/man/man4/ctl.4 projects/clang800-import/share/man/man4/ehci.4 projects/clang800-import/share/man/man4/em.4 projects/clang800-import/share/man/man4/ena.4 projects/clang800-import/share/man/man4/ip.4 projects/clang800-import/share/man/man4/ips.4 projects/clang800-import/share/man/man4/liquidio.4 projects/clang800-import/share/man/man4/nda.4 projects/clang800-import/share/man/man4/ng_nat.4 projects/clang800-import/share/man/man4/ohci.4 projects/clang800-import/share/man/man4/pci.4 projects/clang800-import/share/man/man4/sctp.4 projects/clang800-import/share/man/man4/ses.4 projects/clang800-import/share/man/man4/siftr.4 projects/clang800-import/share/man/man4/smartpqi.4 projects/clang800-import/share/man/man4/syscons.4 projects/clang800-import/share/man/man4/sysmouse.4 projects/clang800-import/share/man/man4/tcp.4 projects/clang800-import/share/man/man4/uath.4 projects/clang800-import/share/man/man4/ucom.4 projects/clang800-import/share/man/man4/ugen.4 projects/clang800-import/share/man/man4/uhci.4 projects/clang800-import/share/man/man4/uhid.4 projects/clang800-import/share/man/man4/ukbd.4 projects/clang800-import/share/man/man4/umoscom.4 projects/clang800-import/share/man/man4/ums.4 projects/clang800-import/share/man/man4/uplcom.4 projects/clang800-import/share/man/man4/usb.4 projects/clang800-import/share/man/man4/uvscom.4 projects/clang800-import/share/man/man4/vale.4 projects/clang800-import/share/man/man4/vmci.4 projects/clang800-import/share/man/man4/vmm.4 projects/clang800-import/share/man/man4/wi.4 projects/clang800-import/share/man/man4/xe.4 projects/clang800-import/share/man/man4/xhci.4 projects/clang800-import/share/man/man5/src.conf.5 projects/clang800-import/share/man/man5/style.mdoc.5 projects/clang800-import/share/mk/bsd.lib.mk projects/clang800-import/share/mk/bsd.opts.mk projects/clang800-import/share/mk/bsd.prog.mk projects/clang800-import/share/mk/src.libnames.mk projects/clang800-import/stand/common/disk.c projects/clang800-import/stand/common/part.c projects/clang800-import/stand/i386/Makefile.inc projects/clang800-import/stand/i386/zfsboot/zfsboot.c projects/clang800-import/stand/libsa/cd9660.c projects/clang800-import/stand/libsa/zfs/zfs.c projects/clang800-import/stand/lua/password.lua projects/clang800-import/stand/powerpc/uboot/Makefile projects/clang800-import/stand/uboot/common/main.c projects/clang800-import/stand/uboot/lib/libuboot.h projects/clang800-import/sys/amd64/amd64/initcpu.c projects/clang800-import/sys/amd64/amd64/pmap.c projects/clang800-import/sys/amd64/amd64/sys_machdep.c projects/clang800-import/sys/amd64/amd64/trap.c projects/clang800-import/sys/amd64/conf/NOTES projects/clang800-import/sys/amd64/include/cpufunc.h projects/clang800-import/sys/amd64/include/pmap.h projects/clang800-import/sys/amd64/sgx/sgx_linux.c projects/clang800-import/sys/arm/allwinner/axp81x.c projects/clang800-import/sys/arm/freescale/imx/imx6_snvs.c projects/clang800-import/sys/arm/include/pmap.h projects/clang800-import/sys/arm64/include/pmap.h projects/clang800-import/sys/cam/ctl/ctl.c projects/clang800-import/sys/cam/ctl/ctl_io.h projects/clang800-import/sys/cam/ctl/ctl_ioctl.h projects/clang800-import/sys/cam/ctl/ctl_private.h projects/clang800-import/sys/cddl/contrib/opensolaris/uts/common/dtrace/fasttrap.c projects/clang800-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/trim_map.c projects/clang800-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c projects/clang800-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_raidz.c projects/clang800-import/sys/cddl/contrib/opensolaris/uts/intel/dtrace/fasttrap_isa.c projects/clang800-import/sys/cddl/dev/dtrace/dtrace_cddl.h projects/clang800-import/sys/compat/linuxkpi/common/include/linux/compat.h projects/clang800-import/sys/compat/linuxkpi/common/include/linux/fs.h projects/clang800-import/sys/compat/linuxkpi/common/include/linux/types.h projects/clang800-import/sys/compat/linuxkpi/common/src/linux_current.c projects/clang800-import/sys/conf/NOTES projects/clang800-import/sys/conf/files projects/clang800-import/sys/conf/files.amd64 projects/clang800-import/sys/conf/files.arm projects/clang800-import/sys/conf/files.i386 projects/clang800-import/sys/conf/files.mips projects/clang800-import/sys/conf/files.powerpc projects/clang800-import/sys/conf/files.sparc64 projects/clang800-import/sys/conf/kern.mk projects/clang800-import/sys/conf/kern.opts.mk projects/clang800-import/sys/conf/kern.post.mk projects/clang800-import/sys/conf/kern.pre.mk projects/clang800-import/sys/conf/kmod.mk projects/clang800-import/sys/conf/ldscript.riscv projects/clang800-import/sys/conf/options projects/clang800-import/sys/contrib/dev/acpica/changes.txt projects/clang800-import/sys/contrib/dev/acpica/common/ahpredef.c projects/clang800-import/sys/contrib/dev/acpica/common/ahuuids.c projects/clang800-import/sys/contrib/dev/acpica/common/dmextern.c projects/clang800-import/sys/contrib/dev/acpica/common/dmrestag.c projects/clang800-import/sys/contrib/dev/acpica/common/dmtable.c projects/clang800-import/sys/contrib/dev/acpica/common/dmtbdump1.c projects/clang800-import/sys/contrib/dev/acpica/common/dmtbdump3.c projects/clang800-import/sys/contrib/dev/acpica/common/dmtbinfo1.c projects/clang800-import/sys/contrib/dev/acpica/common/dmtbinfo2.c projects/clang800-import/sys/contrib/dev/acpica/common/dmtbinfo3.c projects/clang800-import/sys/contrib/dev/acpica/compiler/aslcompile.c projects/clang800-import/sys/contrib/dev/acpica/compiler/aslcompiler.h projects/clang800-import/sys/contrib/dev/acpica/compiler/aslcompiler.l projects/clang800-import/sys/contrib/dev/acpica/compiler/aslload.c projects/clang800-import/sys/contrib/dev/acpica/compiler/aslmessages.c projects/clang800-import/sys/contrib/dev/acpica/compiler/aslmessages.h projects/clang800-import/sys/contrib/dev/acpica/compiler/asloperands.c projects/clang800-import/sys/contrib/dev/acpica/compiler/aslopt.c projects/clang800-import/sys/contrib/dev/acpica/compiler/aslpredef.c projects/clang800-import/sys/contrib/dev/acpica/compiler/aslprintf.c projects/clang800-import/sys/contrib/dev/acpica/compiler/aslresources.y projects/clang800-import/sys/contrib/dev/acpica/compiler/aslsupport.l projects/clang800-import/sys/contrib/dev/acpica/compiler/aslxref.c projects/clang800-import/sys/contrib/dev/acpica/compiler/cvcompiler.c projects/clang800-import/sys/contrib/dev/acpica/compiler/cvparser.c projects/clang800-import/sys/contrib/dev/acpica/compiler/dtexpress.c projects/clang800-import/sys/contrib/dev/acpica/compiler/dtio.c projects/clang800-import/sys/contrib/dev/acpica/compiler/dttable1.c projects/clang800-import/sys/contrib/dev/acpica/compiler/dttable2.c projects/clang800-import/sys/contrib/dev/acpica/compiler/dttemplate.h projects/clang800-import/sys/contrib/dev/acpica/components/debugger/dbdisply.c projects/clang800-import/sys/contrib/dev/acpica/components/debugger/dbexec.c projects/clang800-import/sys/contrib/dev/acpica/components/debugger/dbnames.c projects/clang800-import/sys/contrib/dev/acpica/components/debugger/dbobject.c projects/clang800-import/sys/contrib/dev/acpica/components/debugger/dbtest.c projects/clang800-import/sys/contrib/dev/acpica/components/disassembler/dmbuffer.c projects/clang800-import/sys/contrib/dev/acpica/components/disassembler/dmcstyle.c projects/clang800-import/sys/contrib/dev/acpica/components/disassembler/dmnames.c projects/clang800-import/sys/contrib/dev/acpica/components/disassembler/dmresrc.c projects/clang800-import/sys/contrib/dev/acpica/components/disassembler/dmresrcs.c projects/clang800-import/sys/contrib/dev/acpica/components/dispatcher/dsfield.c projects/clang800-import/sys/contrib/dev/acpica/components/dispatcher/dsopcode.c projects/clang800-import/sys/contrib/dev/acpica/components/dispatcher/dswload2.c projects/clang800-import/sys/contrib/dev/acpica/components/events/evgpe.c projects/clang800-import/sys/contrib/dev/acpica/components/events/evregion.c projects/clang800-import/sys/contrib/dev/acpica/components/events/evrgnini.c projects/clang800-import/sys/contrib/dev/acpica/components/events/evxfgpe.c projects/clang800-import/sys/contrib/dev/acpica/components/executer/exconvrt.c projects/clang800-import/sys/contrib/dev/acpica/components/executer/exfield.c projects/clang800-import/sys/contrib/dev/acpica/components/executer/exserial.c projects/clang800-import/sys/contrib/dev/acpica/components/executer/exutils.c projects/clang800-import/sys/contrib/dev/acpica/components/namespace/nsload.c projects/clang800-import/sys/contrib/dev/acpica/components/namespace/nsparse.c projects/clang800-import/sys/contrib/dev/acpica/components/namespace/nsutils.c projects/clang800-import/sys/contrib/dev/acpica/components/parser/psloop.c projects/clang800-import/sys/contrib/dev/acpica/components/parser/psparse.c projects/clang800-import/sys/contrib/dev/acpica/components/resources/rsdumpinfo.c projects/clang800-import/sys/contrib/dev/acpica/components/resources/rsirq.c projects/clang800-import/sys/contrib/dev/acpica/components/resources/rsserial.c projects/clang800-import/sys/contrib/dev/acpica/components/tables/tbfadt.c projects/clang800-import/sys/contrib/dev/acpica/components/tables/tbxface.c projects/clang800-import/sys/contrib/dev/acpica/components/tables/tbxfload.c projects/clang800-import/sys/contrib/dev/acpica/components/utilities/utdecode.c projects/clang800-import/sys/contrib/dev/acpica/components/utilities/utdelete.c projects/clang800-import/sys/contrib/dev/acpica/components/utilities/uterror.c projects/clang800-import/sys/contrib/dev/acpica/include/acclib.h projects/clang800-import/sys/contrib/dev/acpica/include/acconfig.h projects/clang800-import/sys/contrib/dev/acpica/include/acdebug.h projects/clang800-import/sys/contrib/dev/acpica/include/acdisasm.h projects/clang800-import/sys/contrib/dev/acpica/include/acexcep.h projects/clang800-import/sys/contrib/dev/acpica/include/aclocal.h projects/clang800-import/sys/contrib/dev/acpica/include/acmacros.h projects/clang800-import/sys/contrib/dev/acpica/include/acobject.h projects/clang800-import/sys/contrib/dev/acpica/include/acpixf.h projects/clang800-import/sys/contrib/dev/acpica/include/acpredef.h projects/clang800-import/sys/contrib/dev/acpica/include/acrestyp.h projects/clang800-import/sys/contrib/dev/acpica/include/actbinfo.h projects/clang800-import/sys/contrib/dev/acpica/include/actbl1.h projects/clang800-import/sys/contrib/dev/acpica/include/actbl2.h projects/clang800-import/sys/contrib/dev/acpica/include/actbl3.h projects/clang800-import/sys/contrib/dev/acpica/include/actypes.h projects/clang800-import/sys/contrib/libnv/nvpair.c projects/clang800-import/sys/dev/acpica/acpi_battery.c projects/clang800-import/sys/dev/ata/ata-all.h projects/clang800-import/sys/dev/evdev/evdev.c projects/clang800-import/sys/dev/evdev/evdev_private.h projects/clang800-import/sys/dev/flash/at45d.c projects/clang800-import/sys/dev/ioat/ioat.c projects/clang800-import/sys/dev/ioat/ioat_internal.h projects/clang800-import/sys/dev/netmap/if_vtnet_netmap.h projects/clang800-import/sys/dev/netmap/netmap_freebsd.c projects/clang800-import/sys/dev/netmap/netmap_kern.h projects/clang800-import/sys/dev/ntb/ntb_hw/ntb_hw_plx.c projects/clang800-import/sys/dev/nvdimm/nvdimm.c projects/clang800-import/sys/dev/nvdimm/nvdimm_spa.c projects/clang800-import/sys/dev/nvdimm/nvdimm_var.h projects/clang800-import/sys/dev/pms/RefTisa/tisa/sassata/sas/ini/itdio.c projects/clang800-import/sys/dev/syscons/syscons.h projects/clang800-import/sys/dev/usb/quirk/usb_quirk.c projects/clang800-import/sys/dev/usb/usbdevs projects/clang800-import/sys/fs/fuse/fuse.h projects/clang800-import/sys/fs/fuse/fuse_device.c projects/clang800-import/sys/fs/fuse/fuse_file.c projects/clang800-import/sys/fs/fuse/fuse_file.h projects/clang800-import/sys/fs/fuse/fuse_internal.c projects/clang800-import/sys/fs/fuse/fuse_internal.h projects/clang800-import/sys/fs/fuse/fuse_io.c projects/clang800-import/sys/fs/fuse/fuse_ipc.c projects/clang800-import/sys/fs/fuse/fuse_ipc.h projects/clang800-import/sys/fs/fuse/fuse_node.c projects/clang800-import/sys/fs/fuse/fuse_node.h projects/clang800-import/sys/fs/fuse/fuse_vfsops.c projects/clang800-import/sys/fs/fuse/fuse_vnops.c projects/clang800-import/sys/fs/nfsclient/nfs_clstate.c projects/clang800-import/sys/fs/pseudofs/pseudofs.c projects/clang800-import/sys/fs/pseudofs/pseudofs.h projects/clang800-import/sys/geom/geom_ctl.c projects/clang800-import/sys/geom/geom_ctl.h projects/clang800-import/sys/geom/geom_dev.c projects/clang800-import/sys/i386/conf/NOTES projects/clang800-import/sys/i386/include/cpufunc.h projects/clang800-import/sys/i386/include/pmap.h projects/clang800-import/sys/kern/init_main.c projects/clang800-import/sys/kern/kern_descrip.c projects/clang800-import/sys/kern/kern_kcov.c projects/clang800-import/sys/kern/sys_pipe.c projects/clang800-import/sys/kgssapi/gss_impl.c projects/clang800-import/sys/libkern/strdup.c projects/clang800-import/sys/mips/conf/AP94 projects/clang800-import/sys/mips/conf/DIR-825B1 projects/clang800-import/sys/mips/conf/ROUTERSTATION_MFS projects/clang800-import/sys/mips/conf/RSPRO_MFS projects/clang800-import/sys/mips/conf/WZR-300HP projects/clang800-import/sys/mips/conf/WZR-HPAG300H projects/clang800-import/sys/mips/include/pmap.h projects/clang800-import/sys/modules/Makefile projects/clang800-import/sys/modules/dtrace/Makefile projects/clang800-import/sys/modules/nvdimm/Makefile projects/clang800-import/sys/netinet/if_ether.c projects/clang800-import/sys/netinet/in_mcast.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_timer.c projects/clang800-import/sys/netinet/tcp_timer.h projects/clang800-import/sys/netinet6/frag6.c projects/clang800-import/sys/netpfil/pf/pf.c projects/clang800-import/sys/powerpc/booke/pmap.c projects/clang800-import/sys/powerpc/include/pmap.h projects/clang800-import/sys/riscv/include/pmap.h projects/clang800-import/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c projects/clang800-import/sys/sparc64/include/pmap.h projects/clang800-import/sys/sys/libkern.h projects/clang800-import/sys/sys/param.h projects/clang800-import/sys/sys/seq.h projects/clang800-import/sys/sys/systm.h projects/clang800-import/sys/teken/teken_subr.h projects/clang800-import/sys/vm/vm_fault.c projects/clang800-import/sys/vm/vm_map.c projects/clang800-import/sys/vm/vm_pageout.c projects/clang800-import/sys/vm/vnode_pager.c projects/clang800-import/sys/x86/include/specialreg.h projects/clang800-import/sys/x86/include/sysarch.h projects/clang800-import/sys/x86/x86/mp_x86.c projects/clang800-import/tests/sys/kern/kcov.c projects/clang800-import/tools/build/mk/OptionalObsoleteFiles.inc projects/clang800-import/tools/tools/crypto/cryptocheck.c projects/clang800-import/usr.bin/calendar/Makefile projects/clang800-import/usr.bin/calendar/calendar.c projects/clang800-import/usr.bin/calendar/calendar.h projects/clang800-import/usr.bin/calendar/events.c projects/clang800-import/usr.bin/calendar/io.c projects/clang800-import/usr.bin/clang/Makefile.inc projects/clang800-import/usr.bin/kdump/kdump.c projects/clang800-import/usr.bin/mkuzip/mkuzip.8 projects/clang800-import/usr.bin/svn/Makefile.inc projects/clang800-import/usr.bin/svn/svn/Makefile projects/clang800-import/usr.bin/svn/svnadmin/Makefile projects/clang800-import/usr.bin/svn/svnbench/Makefile projects/clang800-import/usr.bin/svn/svndumpfilter/Makefile projects/clang800-import/usr.bin/svn/svnfsfs/Makefile projects/clang800-import/usr.bin/svn/svnlook/Makefile projects/clang800-import/usr.bin/svn/svnmucc/Makefile projects/clang800-import/usr.bin/svn/svnrdump/Makefile projects/clang800-import/usr.bin/svn/svnserve/Makefile projects/clang800-import/usr.bin/svn/svnsync/Makefile projects/clang800-import/usr.bin/svn/svnversion/Makefile projects/clang800-import/usr.bin/top/display.c projects/clang800-import/usr.sbin/bhyve/acpi.c projects/clang800-import/usr.sbin/bsdinstall/partedit/partedit_powerpc.c projects/clang800-import/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_partition_tbl.c projects/clang800-import/usr.sbin/efivar/efiutil.c projects/clang800-import/usr.sbin/freebsd-update/freebsd-update.8 projects/clang800-import/usr.sbin/freebsd-update/freebsd-update.sh projects/clang800-import/usr.sbin/gssd/gssd.c projects/clang800-import/usr.sbin/newsyslog/newsyslog.c projects/clang800-import/usr.sbin/nfsd/nfsd.8 projects/clang800-import/usr.sbin/nfsd/nfsd.c projects/clang800-import/usr.sbin/rpc.ypupdated/update.c projects/clang800-import/usr.sbin/syslogd/syslogd.c projects/clang800-import/usr.sbin/vidcontrol/vidcontrol.1 projects/clang800-import/usr.sbin/vidcontrol/vidcontrol.c projects/clang800-import/usr.sbin/wlandebug/Makefile Directory Properties: projects/clang800-import/ (props changed) projects/clang800-import/cddl/ (props changed) projects/clang800-import/cddl/contrib/opensolaris/ (props changed) projects/clang800-import/contrib/libc++/ (props changed) projects/clang800-import/contrib/llvm/ (props changed) projects/clang800-import/contrib/llvm/tools/lld/ (props changed) projects/clang800-import/crypto/openssh/ (props changed) projects/clang800-import/sys/cddl/contrib/opensolaris/ (props changed) projects/clang800-import/sys/contrib/dev/acpica/ (props changed) Modified: projects/clang800-import/UPDATING ============================================================================== --- projects/clang800-import/UPDATING Mon Feb 25 10:51:21 2019 (r344512) +++ projects/clang800-import/UPDATING Mon Feb 25 11:59:29 2019 (r344513) @@ -37,6 +37,11 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 13.x IS SLOW: prerequisites and upgrading, if you are not already using clang 3.5.0 or higher. +20190219: + drm and drm2 have been removed from the tree. Please see + https://wiki.freebsd.org/Graphics for the latest information on + migrating to the drm ports. + 20190131: Iflib is no longer unconditionally compiled into the kernel. Drivers using iflib and statically compiled into the kernel, now require Modified: projects/clang800-import/bin/sh/histedit.c ============================================================================== --- projects/clang800-import/bin/sh/histedit.c Mon Feb 25 10:51:21 2019 (r344512) +++ projects/clang800-import/bin/sh/histedit.c Mon Feb 25 11:59:29 2019 (r344513) @@ -472,10 +472,31 @@ str_to_event(const char *str, int last) int bindcmd(int argc, char **argv) { + int ret; + FILE *old; + FILE *out; if (el == NULL) error("line editing is disabled"); - return (el_parse(el, argc, __DECONST(const char **, argv))); + + INTOFF; + + out = out1fp(); + if (out == NULL) + error("Out of space"); + + el_get(el, EL_GETFP, 1, &old); + el_set(el, EL_SETFP, 1, out); + + ret = el_parse(el, argc, __DECONST(const char **, argv)); + + el_set(el, EL_SETFP, 1, old); + + fclose(out); + + INTON; + + return ret; } #else Modified: projects/clang800-import/bin/sh/jobs.c ============================================================================== --- projects/clang800-import/bin/sh/jobs.c Mon Feb 25 10:51:21 2019 (r344512) +++ projects/clang800-import/bin/sh/jobs.c Mon Feb 25 11:59:29 2019 (r344513) @@ -105,6 +105,7 @@ struct job { char changed; /* true if status has changed */ char foreground; /* true if running in the foreground */ char remembered; /* true if $! referenced */ + char pipefail; /* pass any non-zero status */ #if JOBS char jobctl; /* job running under job control */ struct job *next; /* job used after this one */ @@ -144,6 +145,7 @@ static void setcurjob(struct job *); static void deljob(struct job *); static struct job *getcurjob(struct job *); #endif +static int getjobstatus(const struct job *); static void printjobcmd(struct job *); static void showjob(struct job *, int); @@ -341,6 +343,20 @@ jobscmd(int argc __unused, char *argv[] __unused) return (0); } +static int getjobstatus(const struct job *jp) +{ + int i, status; + + if (!jp->pipefail) + return (jp->ps[jp->nprocs - 1].status); + for (i = jp->nprocs - 1; i >= 0; i--) { + status = jp->ps[i].status; + if (status != 0) + return (status); + } + return (0); +} + static void printjobcmd(struct job *jp) { @@ -377,7 +393,7 @@ showjob(struct job *jp, int mode) } #endif coredump = ""; - status = jp->ps[jp->nprocs - 1].status; + status = getjobstatus(jp); if (jp->state == 0) { statestr = "Running"; #if JOBS @@ -556,7 +572,7 @@ waitcmdloop(struct job *job) do { if (job != NULL) { if (job->state == JOBDONE) { - status = job->ps[job->nprocs - 1].status; + status = getjobstatus(job); if (WIFEXITED(status)) retval = WEXITSTATUS(status); else @@ -781,6 +797,7 @@ makejob(union node *node __unused, int nprocs) jp->nprocs = 0; jp->foreground = 0; jp->remembered = 0; + jp->pipefail = pipefailflag; #if JOBS jp->jobctl = jobctl; jp->next = NULL; @@ -1076,7 +1093,7 @@ waitforjob(struct job *jp, int *signaled) if (jp->state == JOBSTOPPED) setcurjob(jp); #endif - status = jp->ps[jp->nprocs - 1].status; + status = getjobstatus(jp); if (signaled != NULL) *signaled = WIFSIGNALED(status); /* convert to 8 bits */ Modified: projects/clang800-import/bin/sh/options.h ============================================================================== --- projects/clang800-import/bin/sh/options.h Mon Feb 25 10:51:21 2019 (r344512) +++ projects/clang800-import/bin/sh/options.h Mon Feb 25 11:59:29 2019 (r344513) @@ -67,9 +67,10 @@ struct shparam { #define Pflag optval[17] #define hflag optval[18] #define nologflag optval[19] +#define pipefailflag optval[20] #define NSHORTOPTS 19 -#define NOPTS 20 +#define NOPTS 21 extern char optval[NOPTS]; extern const char optletter[NSHORTOPTS]; @@ -97,6 +98,7 @@ static const unsigned char optname[] = "\010physical" "\010trackall" "\005nolog" + "\010pipefail" ; #endif Modified: projects/clang800-import/bin/sh/output.c ============================================================================== --- projects/clang800-import/bin/sh/output.c Mon Feb 25 10:51:21 2019 (r344512) +++ projects/clang800-import/bin/sh/output.c Mon Feb 25 11:59:29 2019 (r344513) @@ -340,6 +340,12 @@ doformat(struct output *dest, const char *f, va_list a } } +FILE * +out1fp(void) +{ + return fwopen(out1, doformat_wr); +} + /* * Version of write which resumes after a signal is caught. */ Modified: projects/clang800-import/bin/sh/output.h ============================================================================== --- projects/clang800-import/bin/sh/output.h Mon Feb 25 10:51:21 2019 (r344512) +++ projects/clang800-import/bin/sh/output.h Mon Feb 25 11:59:29 2019 (r344513) @@ -39,6 +39,7 @@ #include #include +#include struct output { char *nextc; @@ -75,6 +76,7 @@ void out1fmt(const char *, ...) __printflike(1, 2); void out2fmt_flush(const char *, ...) __printflike(1, 2); void fmtstr(char *, int, const char *, ...) __printflike(3, 4); void doformat(struct output *, const char *, va_list) __printflike(2, 0); +FILE *out1fp(void); int xwrite(int, const char *, int); #define outc(c, file) ((file)->nextc == (file)->bufend ? (emptyoutbuf(file), *(file)->nextc++ = (c)) : (*(file)->nextc++ = (c))) Modified: projects/clang800-import/bin/sh/sh.1 ============================================================================== --- projects/clang800-import/bin/sh/sh.1 Mon Feb 25 10:51:21 2019 (r344512) +++ projects/clang800-import/bin/sh/sh.1 Mon Feb 25 11:59:29 2019 (r344513) @@ -32,7 +32,7 @@ .\" from: @(#)sh.1 8.6 (Berkeley) 5/4/95 .\" $FreeBSD$ .\" -.Dd January 24, 2019 +.Dd February 24, 2019 .Dt SH 1 .Os .Sh NAME @@ -343,6 +343,18 @@ Useful for debugging. .It Li nolog Another do-nothing option for POSIX compliance. It only has a long name. +.It Li pipefail +Change the exit status of a pipeline to the last non-zero exit status of +any command in the pipeline, if any. +Since an exit due to +.Dv SIGPIPE +counts as a non-zero exit status, +this option may cause non-zero exit status for successful pipelines +if a command such as +.Xr head 1 +in the pipeline terminates with status 0 without reading its +input completely. +This option only has a long name. .El .Pp The @@ -856,12 +868,15 @@ If the keyword .Ic !\& does not precede the pipeline, the exit status is the exit status of the last command specified -in the pipeline. +in the pipeline if the +.Cm pipefail +option is not set or all commands returned zero, +or the last non-zero exit status of any command in the pipeline otherwise. Otherwise, the exit status is the logical -NOT of the exit status of the last command. +NOT of that exit status. That is, if -the last command returns zero, the exit status is 1; if -the last command returns greater than zero, the exit status +that status is zero, the exit status is 1; if +that status is greater than zero, the exit status is zero. .Pp Because pipeline assignment of standard input or standard Modified: projects/clang800-import/bin/sh/tests/execution/Makefile ============================================================================== --- projects/clang800-import/bin/sh/tests/execution/Makefile Mon Feb 25 10:51:21 2019 (r344512) +++ projects/clang800-import/bin/sh/tests/execution/Makefile Mon Feb 25 11:59:29 2019 (r344513) @@ -31,6 +31,13 @@ ${PACKAGE}FILES+= killed2.0 ${PACKAGE}FILES+= not1.0 ${PACKAGE}FILES+= not2.0 ${PACKAGE}FILES+= path1.0 +${PACKAGE}FILES+= pipefail1.0 +${PACKAGE}FILES+= pipefail2.42 +${PACKAGE}FILES+= pipefail3.42 +${PACKAGE}FILES+= pipefail4.42 +${PACKAGE}FILES+= pipefail5.42 +${PACKAGE}FILES+= pipefail6.42 +${PACKAGE}FILES+= pipefail7.0 ${PACKAGE}FILES+= redir1.0 ${PACKAGE}FILES+= redir2.0 ${PACKAGE}FILES+= redir3.0 Copied: projects/clang800-import/bin/sh/tests/execution/pipefail1.0 (from r344512, head/bin/sh/tests/execution/pipefail1.0) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang800-import/bin/sh/tests/execution/pipefail1.0 Mon Feb 25 11:59:29 2019 (r344513, copy of r344512, head/bin/sh/tests/execution/pipefail1.0) @@ -0,0 +1,4 @@ +# $FreeBSD$ + +set -o pipefail +: && : | : && : | : | : && : | : | : | : Copied: projects/clang800-import/bin/sh/tests/execution/pipefail2.42 (from r344512, head/bin/sh/tests/execution/pipefail2.42) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang800-import/bin/sh/tests/execution/pipefail2.42 Mon Feb 25 11:59:29 2019 (r344513, copy of r344512, head/bin/sh/tests/execution/pipefail2.42) @@ -0,0 +1,4 @@ +# $FreeBSD$ + +set -o pipefail +(exit 42) | : Copied: projects/clang800-import/bin/sh/tests/execution/pipefail3.42 (from r344512, head/bin/sh/tests/execution/pipefail3.42) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang800-import/bin/sh/tests/execution/pipefail3.42 Mon Feb 25 11:59:29 2019 (r344513, copy of r344512, head/bin/sh/tests/execution/pipefail3.42) @@ -0,0 +1,4 @@ +# $FreeBSD$ + +set -o pipefail +: | (exit 42) Copied: projects/clang800-import/bin/sh/tests/execution/pipefail4.42 (from r344512, head/bin/sh/tests/execution/pipefail4.42) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang800-import/bin/sh/tests/execution/pipefail4.42 Mon Feb 25 11:59:29 2019 (r344513, copy of r344512, head/bin/sh/tests/execution/pipefail4.42) @@ -0,0 +1,4 @@ +# $FreeBSD$ + +set -o pipefail +(exit 43) | (exit 42) Copied: projects/clang800-import/bin/sh/tests/execution/pipefail5.42 (from r344512, head/bin/sh/tests/execution/pipefail5.42) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang800-import/bin/sh/tests/execution/pipefail5.42 Mon Feb 25 11:59:29 2019 (r344513, copy of r344512, head/bin/sh/tests/execution/pipefail5.42) @@ -0,0 +1,5 @@ +# $FreeBSD$ + +set -o pipefail +(exit 42) | : & +wait %+ Copied: projects/clang800-import/bin/sh/tests/execution/pipefail6.42 (from r344512, head/bin/sh/tests/execution/pipefail6.42) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang800-import/bin/sh/tests/execution/pipefail6.42 Mon Feb 25 11:59:29 2019 (r344513, copy of r344512, head/bin/sh/tests/execution/pipefail6.42) @@ -0,0 +1,6 @@ +# $FreeBSD$ + +set -o pipefail +(exit 42) | : & +set +o pipefail +wait %+ Copied: projects/clang800-import/bin/sh/tests/execution/pipefail7.0 (from r344512, head/bin/sh/tests/execution/pipefail7.0) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang800-import/bin/sh/tests/execution/pipefail7.0 Mon Feb 25 11:59:29 2019 (r344513, copy of r344512, head/bin/sh/tests/execution/pipefail7.0) @@ -0,0 +1,5 @@ +# $FreeBSD$ + +(exit 42) | : & +set -o pipefail +wait %+ Modified: projects/clang800-import/cddl/contrib/opensolaris/cmd/zpool/zpool.8 ============================================================================== --- projects/clang800-import/cddl/contrib/opensolaris/cmd/zpool/zpool.8 Mon Feb 25 10:51:21 2019 (r344512) +++ projects/clang800-import/cddl/contrib/opensolaris/cmd/zpool/zpool.8 Mon Feb 25 11:59:29 2019 (r344513) @@ -27,7 +27,7 @@ .\" .\" $FreeBSD$ .\" -.Dd April 27, 2018 +.Dd February 20, 2019 .Dt ZPOOL 8 .Os .Sh NAME @@ -187,7 +187,7 @@ .Op Ar device ... .Nm .Cm status -.Op Fl vx +.Op Fl Dvx .Op Fl T Cm d Ns | Ns Cm u .Op Ar pool .Ar ... @@ -1862,7 +1862,7 @@ section, above, for more information on the available .It Xo .Nm .Cm status -.Op Fl vx +.Op Fl Dvx .Op Fl T Cm d Ns | Ns Cm u .Op Ar pool .Ar ... @@ -1891,14 +1891,12 @@ done and the estimated time to completion. Both of the because the amount of data in the pool and the other workloads on the system can change. .Bl -tag -width indent -.It Fl x -Only display status for pools that are exhibiting errors or are otherwise -unavailable. -Warnings about pools not using the latest on-disk format, having non-native -block size or disabled features will not be included. -.It Fl v -Displays verbose data error information, printing out a complete list of all -data errors since the last complete pool scrub. +.It Fl D +Display a histogram of deduplication statistics, showing the allocated +.Pq physically present on disk +and referenced +.Pq logically referenced in the pool +block counts and sizes by reference count. .It Fl T Cm d Ns | Ns Cm u Print a timestamp. .Pp @@ -1910,6 +1908,14 @@ Use modifier .Cm u for unixtime .Pq equals Qq Ic date +%s . +.It Fl v +Displays verbose data error information, printing out a complete list of all +data errors since the last complete pool scrub. +.It Fl x +Only display status for pools that are exhibiting errors or are otherwise +unavailable. +Warnings about pools not using the latest on-disk format, having non-native +block size or disabled features will not be included. .El .It Xo .Nm Modified: projects/clang800-import/cddl/contrib/opensolaris/lib/libdtrace/common/dt_consume.c ============================================================================== --- projects/clang800-import/cddl/contrib/opensolaris/lib/libdtrace/common/dt_consume.c Mon Feb 25 10:51:21 2019 (r344512) +++ projects/clang800-import/cddl/contrib/opensolaris/lib/libdtrace/common/dt_consume.c Mon Feb 25 11:59:29 2019 (r344513) @@ -24,7 +24,7 @@ */ /* - * Copyright (c) 2013, Joyent, Inc. All rights reserved. + * Copyright (c) 2017, Joyent, Inc. All rights reserved. * Copyright (c) 2012 by Delphix. All rights reserved. */ @@ -3040,9 +3040,6 @@ dtrace_consume(dtrace_hdl_t *dtp, FILE *fp, break; timestamp = dt_buf_oldest(buf, dtp); - assert(timestamp >= dtp->dt_last_timestamp); - dtp->dt_last_timestamp = timestamp; - if (timestamp == buf->dtbd_timestamp) { /* * We've reached the end of the time covered @@ -3056,6 +3053,8 @@ dtrace_consume(dtrace_hdl_t *dtp, FILE *fp, break; continue; } + assert(timestamp >= dtp->dt_last_timestamp); + dtp->dt_last_timestamp = timestamp; if ((rval = dt_consume_cpu(dtp, fp, buf->dtbd_cpu, buf, B_TRUE, pf, rf, arg)) != 0) Modified: projects/clang800-import/cddl/contrib/opensolaris/lib/libzpool/common/taskq.c ============================================================================== --- projects/clang800-import/cddl/contrib/opensolaris/lib/libzpool/common/taskq.c Mon Feb 25 10:51:21 2019 (r344512) +++ projects/clang800-import/cddl/contrib/opensolaris/lib/libzpool/common/taskq.c Mon Feb 25 11:59:29 2019 (r344513) @@ -79,8 +79,13 @@ again: if ((t = tq->tq_freelist) != NULL && tq->tq_nal * immediately retry the allocation. */ tq->tq_maxalloc_wait++; +#ifdef __FreeBSD__ rv = cv_timedwait(&tq->tq_maxalloc_cv, + &tq->tq_lock, hz); +#else + rv = cv_timedwait(&tq->tq_maxalloc_cv, &tq->tq_lock, ddi_get_lbolt() + hz); +#endif tq->tq_maxalloc_wait--; if (rv > 0) goto again; /* signaled */ Modified: projects/clang800-import/contrib/libc++/include/__locale ============================================================================== --- projects/clang800-import/contrib/libc++/include/__locale Mon Feb 25 10:51:21 2019 (r344512) +++ projects/clang800-import/contrib/libc++/include/__locale Mon Feb 25 11:59:29 2019 (r344513) @@ -1230,8 +1230,6 @@ _LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE _LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS codecvt_byname) _LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS codecvt_byname) -_LIBCPP_NORETURN _LIBCPP_FUNC_VIS void __throw_runtime_error(const char*); - template struct __narrow_to_utf8 { Modified: projects/clang800-import/contrib/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp ============================================================================== --- projects/clang800-import/contrib/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp Mon Feb 25 10:51:21 2019 (r344512) +++ projects/clang800-import/contrib/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp Mon Feb 25 11:59:29 2019 (r344513) @@ -1138,15 +1138,23 @@ bool X86DAGToDAGISel::matchWrapper(SDValue N, X86ISelA if (AM.hasSymbolicDisplacement()) return true; + bool IsRIPRelTLS = false; bool IsRIPRel = N.getOpcode() == X86ISD::WrapperRIP; + if (IsRIPRel) { + SDValue Val = N.getOperand(0); + if (Val.getOpcode() == ISD::TargetGlobalTLSAddress) + IsRIPRelTLS = true; + } - // We can't use an addressing mode in the 64-bit large code model. In the - // medium code model, we use can use an mode when RIP wrappers are present. - // That signifies access to globals that are known to be "near", such as the - // GOT itself. + // We can't use an addressing mode in the 64-bit large code model. + // Global TLS addressing is an exception. In the medium code model, + // we use can use a mode when RIP wrappers are present. + // That signifies access to globals that are known to be "near", + // such as the GOT itself. CodeModel::Model M = TM.getCodeModel(); if (Subtarget->is64Bit() && - (M == CodeModel::Large || (M == CodeModel::Medium && !IsRIPRel))) + ((M == CodeModel::Large && !IsRIPRelTLS) || + (M == CodeModel::Medium && !IsRIPRel))) return true; // Base and index reg must be 0 in order to use %rip as base. Modified: projects/clang800-import/contrib/llvm/tools/lld/ELF/Arch/X86.cpp ============================================================================== --- projects/clang800-import/contrib/llvm/tools/lld/ELF/Arch/X86.cpp Mon Feb 25 10:51:21 2019 (r344512) +++ projects/clang800-import/contrib/llvm/tools/lld/ELF/Arch/X86.cpp Mon Feb 25 11:59:29 2019 (r344513) @@ -71,6 +71,14 @@ static bool hasBaseReg(uint8_t ModRM) { return (ModRM RelExpr X86::getRelExpr(RelType Type, const Symbol &S, const uint8_t *Loc) const { + // There are 4 different TLS variable models with varying degrees of + // flexibility and performance. LocalExec and InitialExec models are fast but + // less-flexible models. If they are in use, we set DF_STATIC_TLS flag in the + // dynamic section to let runtime know about that. + if (Type == R_386_TLS_LE || Type == R_386_TLS_LE_32 || Type == R_386_TLS_IE || + Type == R_386_TLS_GOTIE) + Config->HasStaticTlsModel = true; + switch (Type) { case R_386_8: case R_386_16: Modified: projects/clang800-import/contrib/llvm/tools/lld/ELF/Arch/X86_64.cpp ============================================================================== --- projects/clang800-import/contrib/llvm/tools/lld/ELF/Arch/X86_64.cpp Mon Feb 25 10:51:21 2019 (r344512) +++ projects/clang800-import/contrib/llvm/tools/lld/ELF/Arch/X86_64.cpp Mon Feb 25 11:59:29 2019 (r344513) @@ -77,6 +77,9 @@ template X86_64::X86_64() { template RelExpr X86_64::getRelExpr(RelType Type, const Symbol &S, const uint8_t *Loc) const { + if (Type == R_X86_64_GOTTPOFF) + Config->HasStaticTlsModel = true; + switch (Type) { case R_X86_64_8: case R_X86_64_16: Modified: projects/clang800-import/contrib/llvm/tools/lld/ELF/Config.h ============================================================================== --- projects/clang800-import/contrib/llvm/tools/lld/ELF/Config.h Mon Feb 25 10:51:21 2019 (r344512) +++ projects/clang800-import/contrib/llvm/tools/lld/ELF/Config.h Mon Feb 25 11:59:29 2019 (r344513) @@ -18,6 +18,7 @@ #include "llvm/Support/CachePruning.h" #include "llvm/Support/CodeGen.h" #include "llvm/Support/Endian.h" +#include #include namespace lld { @@ -81,6 +82,7 @@ struct VersionDefinition { // and such fields have the same name as the corresponding options. // Most fields are initialized by the driver. struct Configuration { + std::atomic HasStaticTlsModel{false}; uint8_t OSABI = 0; llvm::CachePruningPolicy ThinLTOCachePolicy; llvm::StringMap SectionStartMap; Modified: projects/clang800-import/contrib/llvm/tools/lld/ELF/SyntheticSections.cpp ============================================================================== --- projects/clang800-import/contrib/llvm/tools/lld/ELF/SyntheticSections.cpp Mon Feb 25 10:51:21 2019 (r344512) +++ projects/clang800-import/contrib/llvm/tools/lld/ELF/SyntheticSections.cpp Mon Feb 25 11:59:29 2019 (r344513) @@ -1296,6 +1296,8 @@ template void DynamicSection::final } if (!Config->ZText) DtFlags |= DF_TEXTREL; + if (Config->HasStaticTlsModel) + DtFlags |= DF_STATIC_TLS; if (DtFlags) addInt(DT_FLAGS, DtFlags); Modified: projects/clang800-import/crypto/openssh/scp.1 ============================================================================== --- projects/clang800-import/crypto/openssh/scp.1 Mon Feb 25 10:51:21 2019 (r344512) +++ projects/clang800-import/crypto/openssh/scp.1 Mon Feb 25 11:59:29 2019 (r344513) @@ -18,7 +18,7 @@ .Nd secure copy (remote file copy program) .Sh SYNOPSIS .Nm scp -.Op Fl 346BCpqrv +.Op Fl 346BCpqrTv .Op Fl c Ar cipher .Op Fl F Ar ssh_config .Op Fl i Ar identity_file @@ -207,6 +207,16 @@ to use for the encrypted connection. The program must understand .Xr ssh 1 options. +.It Fl T +Disable strict filename checking. +By default when copying files from a remote host to a local directory +.Nm +checks that the received filenames match those requested on the command-line +to prevent the remote end from sending unexpected or unwanted files. +Because of differences in how various operating systems and shells interpret +filename wildcards, these checks may cause wanted files to be rejected. +This option disables these checks at the expense of fully trusting that +the server will not send unexpected filenames. .It Fl v Verbose mode. Causes Modified: projects/clang800-import/crypto/openssh/scp.c ============================================================================== --- projects/clang800-import/crypto/openssh/scp.c Mon Feb 25 10:51:21 2019 (r344512) +++ projects/clang800-import/crypto/openssh/scp.c Mon Feb 25 11:59:29 2019 (r344513) @@ -1,4 +1,4 @@ -/* $OpenBSD: scp.c,v 1.197 2018/06/01 04:31:48 dtucker Exp $ */ +/* $OpenBSD: scp.c,v 1.203 2019/01/27 07:14:11 jmc Exp $ */ /* * scp - secure remote copy. This is basically patched BSD rcp which * uses ssh to do the data transfer (instead of using rcmd). @@ -94,6 +94,7 @@ #include #include #include +#include #include #include #include @@ -375,14 +376,14 @@ void verifydir(char *); struct passwd *pwd; uid_t userid; int errs, remin, remout; -int pflag, iamremote, iamrecursive, targetshouldbedirectory; +int Tflag, pflag, iamremote, iamrecursive, targetshouldbedirectory; #define CMDNEEDS 64 char cmd[CMDNEEDS]; /* must hold "rcp -r -p -d\0" */ int response(void); void rsource(char *, struct stat *); -void sink(int, char *[]); +void sink(int, char *[], const char *); void source(int, char *[]); void tolocal(int, char *[]); void toremote(int, char *[]); @@ -421,8 +422,9 @@ main(int argc, char **argv) addargs(&args, "-oRemoteCommand=none"); addargs(&args, "-oRequestTTY=no"); - fflag = tflag = 0; - while ((ch = getopt(argc, argv, "dfl:prtvBCc:i:P:q12346S:o:F:")) != -1) + fflag = Tflag = tflag = 0; + while ((ch = getopt(argc, argv, + "dfl:prtTvBCc:i:P:q12346S:o:F:")) != -1) { switch (ch) { /* User-visible flags. */ case '1': @@ -501,9 +503,13 @@ main(int argc, char **argv) setmode(0, O_BINARY); #endif break; + case 'T': + Tflag = 1; + break; default: usage(); } + } argc -= optind; argv += optind; @@ -534,7 +540,7 @@ main(int argc, char **argv) } if (tflag) { /* Receive data. */ - sink(argc, argv); + sink(argc, argv, NULL); exit(errs != 0); } if (argc < 2) @@ -791,7 +797,7 @@ tolocal(int argc, char **argv) continue; } free(bp); - sink(1, argv + argc - 1); + sink(1, argv + argc - 1, src); (void) close(remin); remin = remout = -1; } @@ -967,7 +973,7 @@ rsource(char *name, struct stat *statp) (sizeof(type) != 4 && sizeof(type) != 8)) void -sink(int argc, char **argv) +sink(int argc, char **argv, const char *src) { static BUF buffer; struct stat stb; @@ -983,6 +989,7 @@ sink(int argc, char **argv) unsigned long long ull; int setimes, targisdir, wrerrno = 0; char ch, *cp, *np, *targ, *why, *vect[1], buf[2048], visbuf[2048]; + char *src_copy = NULL, *restrict_pattern = NULL; struct timeval tv[2]; #define atime tv[0] @@ -1007,6 +1014,17 @@ sink(int argc, char **argv) (void) atomicio(vwrite, remout, "", 1); if (stat(targ, &stb) == 0 && S_ISDIR(stb.st_mode)) targisdir = 1; + if (src != NULL && !iamrecursive && !Tflag) { + /* + * Prepare to try to restrict incoming filenames to match + * the requested destination file glob. + */ + if ((src_copy = strdup(src)) == NULL) + fatal("strdup failed"); + if ((restrict_pattern = strrchr(src_copy, '/')) != NULL) { + *restrict_pattern++ = '\0'; + } + } for (first = 1;; first = 0) { cp = buf; if (atomicio(read, remin, cp, 1) != 1) @@ -1111,6 +1129,9 @@ sink(int argc, char **argv) run_err("error: unexpected filename: %s", cp); exit(1); } + if (restrict_pattern != NULL && + fnmatch(restrict_pattern, cp, 0) != 0) + SCREWUP("filename does not match request"); if (targisdir) { static char *namebuf; static size_t cursize; @@ -1148,7 +1169,7 @@ sink(int argc, char **argv) goto bad; } vect[0] = xstrdup(np); - sink(1, vect); + sink(1, vect, src); if (setimes) { setimes = 0; if (utimes(vect[0], tv) < 0) @@ -1316,7 +1337,7 @@ void usage(void) { (void) fprintf(stderr, - "usage: scp [-346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]\n" + "usage: scp [-346BCpqrTv] [-c cipher] [-F ssh_config] [-i identity_file]\n" " [-l limit] [-o ssh_option] [-P port] [-S program] source ... target\n"); exit(1); } Modified: projects/clang800-import/etc/mtree/BSD.root.dist ============================================================================== --- projects/clang800-import/etc/mtree/BSD.root.dist Mon Feb 25 10:51:21 2019 (r344512) +++ projects/clang800-import/etc/mtree/BSD.root.dist Mon Feb 25 11:59:29 2019 (r344513) @@ -26,6 +26,8 @@ .. modules .. + uboot + .. zfs .. .. Modified: projects/clang800-import/kerberos5/tools/asn1_compile/Makefile ============================================================================== --- projects/clang800-import/kerberos5/tools/asn1_compile/Makefile Mon Feb 25 10:51:21 2019 (r344512) +++ projects/clang800-import/kerberos5/tools/asn1_compile/Makefile Mon Feb 25 11:59:29 2019 (r344513) @@ -6,6 +6,7 @@ LIBROKEN_A= ${.OBJDIR:H:H}/lib/libroken/libroken.a LIBADD= vers LDADD= ${LIBROKEN_A} DPADD= ${LIBROKEN_A} +MK_PIE:= no SRCS= \ asn1parse.y \ Modified: projects/clang800-import/kerberos5/tools/slc/Makefile ============================================================================== --- projects/clang800-import/kerberos5/tools/slc/Makefile Mon Feb 25 10:51:21 2019 (r344512) +++ projects/clang800-import/kerberos5/tools/slc/Makefile Mon Feb 25 11:59:29 2019 (r344513) @@ -6,6 +6,7 @@ LIBADD= vers LDADD= ${LIBROKEN_A} DPADD= ${LIBROKEN_A} MAN= +MK_PIE:= no SRCS= roken.h \ slc-gram.y \ Modified: projects/clang800-import/lib/clang/Makefile.inc ============================================================================== --- projects/clang800-import/lib/clang/Makefile.inc Mon Feb 25 10:51:21 2019 (r344512) +++ projects/clang800-import/lib/clang/Makefile.inc Mon Feb 25 11:59:29 2019 (r344513) @@ -2,6 +2,8 @@ .include +MK_PIE:= no # Explicit libXXX.a references + .if ${COMPILER_TYPE} == "clang" DEBUG_FILES_CFLAGS= -gline-tables-only .else Modified: projects/clang800-import/lib/clang/libllvmminimal/Makefile ============================================================================== --- projects/clang800-import/lib/clang/libllvmminimal/Makefile Mon Feb 25 10:51:21 2019 (r344512) +++ projects/clang800-import/lib/clang/libllvmminimal/Makefile Mon Feb 25 11:59:29 2019 (r344513) @@ -19,6 +19,7 @@ SRCS+= Support/Errno.cpp SRCS+= Support/Error.cpp SRCS+= Support/ErrorHandling.cpp SRCS+= Support/FoldingSet.cpp +SRCS+= Support/FormatVariadic.cpp SRCS+= Support/FormattedStream.cpp SRCS+= Support/Hashing.cpp SRCS+= Support/Host.cpp Modified: projects/clang800-import/lib/libc/amd64/Symbol.map ============================================================================== --- projects/clang800-import/lib/libc/amd64/Symbol.map Mon Feb 25 10:51:21 2019 (r344512) +++ projects/clang800-import/lib/libc/amd64/Symbol.map Mon Feb 25 11:59:29 2019 (r344513) @@ -44,6 +44,13 @@ FBSD_1.0 { vfork; }; +FBSD_1.6 { + x86_pkru_get_perm; + x86_pkru_set_perm; + x86_pkru_protect_range; + x86_pkru_unprotect_range; +}; + /* * * FreeBSD private ABI Modified: projects/clang800-import/lib/libc/i386/Symbol.map ============================================================================== --- projects/clang800-import/lib/libc/i386/Symbol.map Mon Feb 25 10:51:21 2019 (r344512) +++ projects/clang800-import/lib/libc/i386/Symbol.map Mon Feb 25 11:59:29 2019 (r344513) @@ -46,6 +46,13 @@ FBSD_1.0 { ___tls_get_addr; }; +FBSD_1.6 { + x86_pkru_get_perm; + x86_pkru_set_perm; + x86_pkru_protect_range; + x86_pkru_unprotect_range; +}; + FBSDprivate_1.0 { /* PSEUDO syscalls */ _getlogin; Modified: projects/clang800-import/lib/libc/posix1e/acl_strip.c ============================================================================== --- projects/clang800-import/lib/libc/posix1e/acl_strip.c Mon Feb 25 10:51:21 2019 (r344512) +++ projects/clang800-import/lib/libc/posix1e/acl_strip.c Mon Feb 25 11:59:29 2019 (r344513) @@ -70,7 +70,6 @@ _posix1e_acl_strip_np(const acl_t aclp, int recalculat { acl_t acl_new, acl_old; acl_entry_t entry, entry_new; - acl_permset_t perm; acl_tag_t tag; int entry_id, have_mask_entry; @@ -104,15 +103,7 @@ _posix1e_acl_strip_np(const acl_t aclp, int recalculat case ACL_USER_OBJ: case ACL_GROUP_OBJ: case ACL_OTHER: - if (acl_get_tag_type(entry, &tag) == -1) - goto fail; - if (acl_get_permset(entry, &perm) == -1) - goto fail; if (acl_create_entry(&acl_new, &entry_new) == -1) - goto fail; - if (acl_set_tag_type(entry_new, tag) == -1) - goto fail; - if (acl_set_permset(entry_new, perm) == -1) goto fail; if (acl_copy_entry(entry_new, entry) == -1) goto fail; Modified: projects/clang800-import/lib/libc/sys/sendfile.2 ============================================================================== --- projects/clang800-import/lib/libc/sys/sendfile.2 Mon Feb 25 10:51:21 2019 (r344512) +++ projects/clang800-import/lib/libc/sys/sendfile.2 Mon Feb 25 11:59:29 2019 (r344513) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 25, 2019 +.Dd February 15, 2019 .Dt SENDFILE 2 .Os .Sh NAME @@ -224,6 +224,19 @@ implementation of .Fn sendfile is "zero-copy", meaning that it has been optimized so that copying of the file data is avoided. .Sh TUNING +.Ss physical paging buffers +.Fn sendfile +uses vnode pager to read file pages into memory. +The pager uses a pool of physical buffers to run its I/O operations. +When system runs out of pbufs, sendfile will block and report state +.Dq Li zonelimit . +Size of the pool can be tuned with +.Va vm.vnode_pbufs +.Xr loader.conf 5 +tunable and can be checked with +.Xr sysctl 8 +OID of the same name at runtime. +.Ss sendfile(2) buffers On some architectures, this system call internally uses a special .Fn sendfile buffer @@ -279,9 +292,11 @@ buffers usage respectively. These values may also be viewed through .Nm netstat Fl m . .Pp -If a value of zero is reported for -.Va kern.ipc.nsfbufs , -your architecture does not need to use +If +.Xr sysctl 8 +OID +.Va kern.ipc.nsfbufs +doesn't exist, your architecture does not need to use .Fn sendfile buffers because their task can be efficiently performed by the generic virtual memory structures. @@ -363,11 +378,13 @@ does not support The socket peer has closed the connection. .El .Sh SEE ALSO +.Xr loader.conf 5 , .Xr netstat 1 , .Xr open 2 , .Xr send 2 , .Xr socket 2 , .Xr writev 2 , +.Xr sysctl 8 , .Xr tuning 7 .Rs .%A K. Elmeleegy Modified: projects/clang800-import/lib/libc/tests/sys/sendfile_test.c ============================================================================== --- projects/clang800-import/lib/libc/tests/sys/sendfile_test.c Mon Feb 25 10:51:21 2019 (r344512) +++ projects/clang800-import/lib/libc/tests/sys/sendfile_test.c Mon Feb 25 11:59:29 2019 (r344513) @@ -156,6 +156,8 @@ setup_client(int domain, int type, int port) "Will try to connect to host='%s', address_family=%d, " "socket_type=%d\n", host, res->ai_family, res->ai_socktype); + /* Avoid a double print when forked by flushing. */ + fflush(stdout); 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); @@ -187,6 +189,8 @@ setup_server(int domain, int type, int port) "Will try to bind socket to host='%s', address_family=%d, " "socket_type=%d\n", host, res->ai_family, res->ai_socktype); + /* Avoid a double print when forked by flushing. */ + fflush(stdout); error = bind(sock, res->ai_addr, res->ai_addrlen); freeaddrinfo(res); ATF_REQUIRE_EQ_MSG(error, 0, "bind failed: %s", strerror(errno)); @@ -204,11 +208,17 @@ setup_server(int domain, int type, int port) static void server_cat(const char *dest_filename, int server_sock, size_t len) { - char *buffer; + char *buffer, *buf_window_ptr; int recv_sock; - ssize_t received_bytes; + size_t buffer_size; + ssize_t received_bytes, recv_ret; - buffer = calloc(len + 1, sizeof(char)); + /* + * Ensure that there isn't excess data sent across the wire by + * capturing 10 extra bytes (plus 1 for nul). + */ + buffer_size = len + 10 + 1; + buffer = calloc(buffer_size, sizeof(char)); if (buffer == NULL) err(1, "malloc failed"); @@ -216,32 +226,26 @@ server_cat(const char *dest_filename, int server_sock, 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"); + buf_window_ptr = buffer; + received_bytes = 0; + do { + recv_ret = recv(recv_sock, buf_window_ptr, + buffer_size - received_bytes, 0); + if (recv_ret <= 0) + break; + buf_window_ptr += recv_ret; + received_bytes += recv_ret; + } while (received_bytes < buffer_size); 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); + + if (received_bytes != len) + errx(1, "received unexpected data: %zd != %zd", received_bytes, + len); } static int @@ -666,10 +670,6 @@ hdtr_positive_test(int domain) trailers[0].iov_len = strlen(trailers[0].iov_base); offset = 0; nbytes = 0; - - atf_tc_expect_fail( - "The header/trailer testcases fail today with a data mismatch; " - "bug # 234809"); for (i = 0; i < nitems(testcases); i++) { struct sf_hdtr hdtr; Modified: projects/clang800-import/lib/libc/x86/sys/Makefile.inc ============================================================================== --- projects/clang800-import/lib/libc/x86/sys/Makefile.inc Mon Feb 25 10:51:21 2019 (r344512) +++ projects/clang800-import/lib/libc/x86/sys/Makefile.inc Mon Feb 25 11:59:29 2019 (r344513) @@ -3,7 +3,11 @@ .PATH: ${LIBC_SRCTOP}/x86/sys SRCS+= \ - __vdso_gettc.c + __vdso_gettc.c \ + pkru.c + +MAN+= \ + pkru.3 .if ${MACHINE_CPUARCH} == "amd64" && ${MK_HYPERV} != "no" CFLAGS+= -DWANT_HYPERV Copied: projects/clang800-import/lib/libc/x86/sys/pkru.3 (from r344512, head/lib/libc/x86/sys/pkru.3) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang800-import/lib/libc/x86/sys/pkru.3 Mon Feb 25 11:59:29 2019 (r344513, copy of r344512, head/lib/libc/x86/sys/pkru.3) @@ -0,0 +1,206 @@ +.\" Copyright (c) 2019 The FreeBSD Foundation, Inc. +.\" All rights reserved. +.\" +.\" This documentation was written by +.\" Konstantin Belousov 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: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $FreeBSD$ +.\" +.Dd February 16, 2019 +.Dt PKRU 3 +.Os +.Sh NAME +.Nm Protection Key Rights for User pages +.Nd provide fast user-managed key-based access control for pages +.Sh LIBRARY *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Mon Feb 25 18:00:23 2019 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D27C11510C28 for ; Mon, 25 Feb 2019 18:00:22 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 7196F70A7B; Mon, 25 Feb 2019 18:00:22 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5CB1B20763; Mon, 25 Feb 2019 18:00:22 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x1PI0MIG003297; Mon, 25 Feb 2019 18:00:22 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x1PI0FDP003262; Mon, 25 Feb 2019 18:00:15 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201902251800.x1PI0FDP003262@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Enji Cooper Date: Mon, 25 Feb 2019 18:00:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r344528 - in projects/import-googletest-1.8.1: . bin/sh bin/sh/tests/execution cddl/contrib/opensolaris/cmd/zpool cddl/contrib/opensolaris/lib/libdtrace/common cddl/contrib/opensolaris/... X-SVN-Group: projects X-SVN-Commit-Author: ngie X-SVN-Commit-Paths: in projects/import-googletest-1.8.1: . bin/sh bin/sh/tests/execution cddl/contrib/opensolaris/cmd/zpool cddl/contrib/opensolaris/lib/libdtrace/common cddl/contrib/opensolaris/lib/libzpool/common contr... X-SVN-Commit-Revision: 344528 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 7196F70A7B X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.98 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.98)[-0.977,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Feb 2019 18:00:23 -0000 Author: ngie Date: Mon Feb 25 18:00:14 2019 New Revision: 344528 URL: https://svnweb.freebsd.org/changeset/base/344528 Log: MFhead@r344527 Added: projects/import-googletest-1.8.1/bin/sh/tests/execution/pipefail1.0 - copied unchanged from r344527, head/bin/sh/tests/execution/pipefail1.0 projects/import-googletest-1.8.1/bin/sh/tests/execution/pipefail2.42 - copied unchanged from r344527, head/bin/sh/tests/execution/pipefail2.42 projects/import-googletest-1.8.1/bin/sh/tests/execution/pipefail3.42 - copied unchanged from r344527, head/bin/sh/tests/execution/pipefail3.42 projects/import-googletest-1.8.1/bin/sh/tests/execution/pipefail4.42 - copied unchanged from r344527, head/bin/sh/tests/execution/pipefail4.42 projects/import-googletest-1.8.1/bin/sh/tests/execution/pipefail5.42 - copied unchanged from r344527, head/bin/sh/tests/execution/pipefail5.42 projects/import-googletest-1.8.1/bin/sh/tests/execution/pipefail6.42 - copied unchanged from r344527, head/bin/sh/tests/execution/pipefail6.42 projects/import-googletest-1.8.1/bin/sh/tests/execution/pipefail7.0 - copied unchanged from r344527, head/bin/sh/tests/execution/pipefail7.0 projects/import-googletest-1.8.1/lib/libc/x86/sys/pkru.3 - copied unchanged from r344527, head/lib/libc/x86/sys/pkru.3 projects/import-googletest-1.8.1/lib/libc/x86/sys/pkru.c - copied unchanged from r344527, head/lib/libc/x86/sys/pkru.c projects/import-googletest-1.8.1/sys/compat/lindebugfs/ - copied from r344527, head/sys/compat/lindebugfs/ projects/import-googletest-1.8.1/sys/compat/linuxkpi/common/include/linux/debugfs.h - copied unchanged from r344527, head/sys/compat/linuxkpi/common/include/linux/debugfs.h projects/import-googletest-1.8.1/sys/compat/linuxkpi/common/include/linux/seq_file.h - copied unchanged from r344527, head/sys/compat/linuxkpi/common/include/linux/seq_file.h projects/import-googletest-1.8.1/sys/compat/linuxkpi/common/src/linux_seq_file.c - copied unchanged from r344527, head/sys/compat/linuxkpi/common/src/linux_seq_file.c projects/import-googletest-1.8.1/sys/dev/nvdimm/nvdimm_ns.c - copied unchanged from r344527, head/sys/dev/nvdimm/nvdimm_ns.c - copied unchanged from r344527, head/sys/dev/syscons/scterm-dumb.c - copied unchanged from r344527, head/sys/dev/syscons/scterm-sc.c - copied unchanged from r344527, head/sys/dev/syscons/sctermvar.h projects/import-googletest-1.8.1/sys/gnu/gcov/ - copied from r344527, head/sys/gnu/gcov/ projects/import-googletest-1.8.1/sys/kern/subr_rangeset.c - copied unchanged from r344527, head/sys/kern/subr_rangeset.c projects/import-googletest-1.8.1/sys/sys/_rangeset.h - copied unchanged from r344527, head/sys/sys/_rangeset.h projects/import-googletest-1.8.1/sys/sys/rangeset.h - copied unchanged from r344527, head/sys/sys/rangeset.h Directory Properties: projects/import-googletest-1.8.1/sys/dev/syscons/scterm-dumb.c (props changed) projects/import-googletest-1.8.1/sys/dev/syscons/scterm-sc.c (props changed) projects/import-googletest-1.8.1/sys/dev/syscons/sctermvar.h (props changed) Deleted: projects/import-googletest-1.8.1/sys/dev/drm/ati_pcigart.c projects/import-googletest-1.8.1/sys/dev/drm/drm.h projects/import-googletest-1.8.1/sys/dev/drm/drmP.h projects/import-googletest-1.8.1/sys/dev/drm/drm_agpsupport.c projects/import-googletest-1.8.1/sys/dev/drm/drm_atomic.h projects/import-googletest-1.8.1/sys/dev/drm/drm_auth.c projects/import-googletest-1.8.1/sys/dev/drm/drm_bufs.c projects/import-googletest-1.8.1/sys/dev/drm/drm_context.c projects/import-googletest-1.8.1/sys/dev/drm/drm_dma.c projects/import-googletest-1.8.1/sys/dev/drm/drm_drawable.c projects/import-googletest-1.8.1/sys/dev/drm/drm_drv.c projects/import-googletest-1.8.1/sys/dev/drm/drm_fops.c projects/import-googletest-1.8.1/sys/dev/drm/drm_hashtab.c projects/import-googletest-1.8.1/sys/dev/drm/drm_hashtab.h projects/import-googletest-1.8.1/sys/dev/drm/drm_internal.h projects/import-googletest-1.8.1/sys/dev/drm/drm_ioctl.c projects/import-googletest-1.8.1/sys/dev/drm/drm_irq.c projects/import-googletest-1.8.1/sys/dev/drm/drm_linux_list.h projects/import-googletest-1.8.1/sys/dev/drm/drm_lock.c projects/import-googletest-1.8.1/sys/dev/drm/drm_memory.c projects/import-googletest-1.8.1/sys/dev/drm/drm_mm.c projects/import-googletest-1.8.1/sys/dev/drm/drm_mm.h projects/import-googletest-1.8.1/sys/dev/drm/drm_pci.c projects/import-googletest-1.8.1/sys/dev/drm/drm_pciids.h projects/import-googletest-1.8.1/sys/dev/drm/drm_sarea.h projects/import-googletest-1.8.1/sys/dev/drm/drm_scatter.c projects/import-googletest-1.8.1/sys/dev/drm/drm_sman.c projects/import-googletest-1.8.1/sys/dev/drm/drm_sman.h projects/import-googletest-1.8.1/sys/dev/drm/drm_sysctl.c projects/import-googletest-1.8.1/sys/dev/drm/drm_vm.c projects/import-googletest-1.8.1/sys/dev/drm/mach64_dma.c projects/import-googletest-1.8.1/sys/dev/drm/mach64_drm.h projects/import-googletest-1.8.1/sys/dev/drm/mach64_drv.c projects/import-googletest-1.8.1/sys/dev/drm/mach64_drv.h projects/import-googletest-1.8.1/sys/dev/drm/mach64_irq.c projects/import-googletest-1.8.1/sys/dev/drm/mach64_state.c projects/import-googletest-1.8.1/sys/dev/drm/mga_dma.c projects/import-googletest-1.8.1/sys/dev/drm/mga_drm.h projects/import-googletest-1.8.1/sys/dev/drm/mga_drv.c projects/import-googletest-1.8.1/sys/dev/drm/mga_drv.h projects/import-googletest-1.8.1/sys/dev/drm/mga_irq.c projects/import-googletest-1.8.1/sys/dev/drm/mga_state.c projects/import-googletest-1.8.1/sys/dev/drm/mga_ucode.h projects/import-googletest-1.8.1/sys/dev/drm/mga_warp.c projects/import-googletest-1.8.1/sys/dev/drm/r128_cce.c projects/import-googletest-1.8.1/sys/dev/drm/r128_drm.h projects/import-googletest-1.8.1/sys/dev/drm/r128_drv.c projects/import-googletest-1.8.1/sys/dev/drm/r128_drv.h projects/import-googletest-1.8.1/sys/dev/drm/r128_irq.c projects/import-googletest-1.8.1/sys/dev/drm/r128_state.c projects/import-googletest-1.8.1/sys/dev/drm/savage_bci.c projects/import-googletest-1.8.1/sys/dev/drm/savage_drm.h projects/import-googletest-1.8.1/sys/dev/drm/savage_drv.c projects/import-googletest-1.8.1/sys/dev/drm/savage_drv.h projects/import-googletest-1.8.1/sys/dev/drm/savage_state.c projects/import-googletest-1.8.1/sys/dev/drm/sis_drm.h projects/import-googletest-1.8.1/sys/dev/drm/sis_drv.c projects/import-googletest-1.8.1/sys/dev/drm/sis_drv.h projects/import-googletest-1.8.1/sys/dev/drm/sis_ds.c projects/import-googletest-1.8.1/sys/dev/drm/sis_ds.h projects/import-googletest-1.8.1/sys/dev/drm/sis_mm.c projects/import-googletest-1.8.1/sys/dev/drm/tdfx_drv.c projects/import-googletest-1.8.1/sys/dev/drm/tdfx_drv.h projects/import-googletest-1.8.1/sys/dev/drm/via_3d_reg.h projects/import-googletest-1.8.1/sys/dev/drm/via_dma.c projects/import-googletest-1.8.1/sys/dev/drm/via_dmablit.c projects/import-googletest-1.8.1/sys/dev/drm/via_dmablit.h projects/import-googletest-1.8.1/sys/dev/drm/via_drm.h projects/import-googletest-1.8.1/sys/dev/drm/via_drv.c projects/import-googletest-1.8.1/sys/dev/drm/via_drv.h projects/import-googletest-1.8.1/sys/dev/drm/via_irq.c projects/import-googletest-1.8.1/sys/dev/drm/via_map.c projects/import-googletest-1.8.1/sys/dev/drm/via_mm.c projects/import-googletest-1.8.1/sys/dev/drm/via_verifier.c projects/import-googletest-1.8.1/sys/dev/drm/via_verifier.h projects/import-googletest-1.8.1/sys/dev/drm/via_video.c projects/import-googletest-1.8.1/sys/dev/drm2/ati_pcigart.c projects/import-googletest-1.8.1/sys/dev/drm2/i915/dvo.h projects/import-googletest-1.8.1/sys/dev/drm2/i915/dvo_ch7017.c projects/import-googletest-1.8.1/sys/dev/drm2/i915/dvo_ch7xxx.c projects/import-googletest-1.8.1/sys/dev/drm2/i915/dvo_ivch.c projects/import-googletest-1.8.1/sys/dev/drm2/i915/dvo_ns2501.c projects/import-googletest-1.8.1/sys/dev/drm2/i915/dvo_sil164.c projects/import-googletest-1.8.1/sys/dev/drm2/i915/dvo_tfp410.c projects/import-googletest-1.8.1/sys/dev/drm2/i915/i915_debug.c projects/import-googletest-1.8.1/sys/dev/drm2/i915/i915_dma.c projects/import-googletest-1.8.1/sys/dev/drm2/i915/i915_drm.h projects/import-googletest-1.8.1/sys/dev/drm2/i915/i915_drv.c projects/import-googletest-1.8.1/sys/dev/drm2/i915/i915_drv.h projects/import-googletest-1.8.1/sys/dev/drm2/i915/i915_gem.c projects/import-googletest-1.8.1/sys/dev/drm2/i915/i915_gem_context.c projects/import-googletest-1.8.1/sys/dev/drm2/i915/i915_gem_evict.c projects/import-googletest-1.8.1/sys/dev/drm2/i915/i915_gem_execbuffer.c projects/import-googletest-1.8.1/sys/dev/drm2/i915/i915_gem_gtt.c projects/import-googletest-1.8.1/sys/dev/drm2/i915/i915_gem_stolen.c projects/import-googletest-1.8.1/sys/dev/drm2/i915/i915_gem_tiling.c projects/import-googletest-1.8.1/sys/dev/drm2/i915/i915_ioc32.c projects/import-googletest-1.8.1/sys/dev/drm2/i915/i915_irq.c projects/import-googletest-1.8.1/sys/dev/drm2/i915/i915_reg.h projects/import-googletest-1.8.1/sys/dev/drm2/i915/i915_suspend.c projects/import-googletest-1.8.1/sys/dev/drm2/i915/intel_acpi.c projects/import-googletest-1.8.1/sys/dev/drm2/i915/intel_bios.c projects/import-googletest-1.8.1/sys/dev/drm2/i915/intel_bios.h projects/import-googletest-1.8.1/sys/dev/drm2/i915/intel_crt.c projects/import-googletest-1.8.1/sys/dev/drm2/i915/intel_ddi.c projects/import-googletest-1.8.1/sys/dev/drm2/i915/intel_display.c projects/import-googletest-1.8.1/sys/dev/drm2/i915/intel_dp.c projects/import-googletest-1.8.1/sys/dev/drm2/i915/intel_drv.h projects/import-googletest-1.8.1/sys/dev/drm2/i915/intel_dvo.c projects/import-googletest-1.8.1/sys/dev/drm2/i915/intel_fb.c projects/import-googletest-1.8.1/sys/dev/drm2/i915/intel_hdmi.c projects/import-googletest-1.8.1/sys/dev/drm2/i915/intel_iic.c projects/import-googletest-1.8.1/sys/dev/drm2/i915/intel_lvds.c projects/import-googletest-1.8.1/sys/dev/drm2/i915/intel_modes.c projects/import-googletest-1.8.1/sys/dev/drm2/i915/intel_opregion.c projects/import-googletest-1.8.1/sys/dev/drm2/i915/intel_overlay.c projects/import-googletest-1.8.1/sys/dev/drm2/i915/intel_panel.c projects/import-googletest-1.8.1/sys/dev/drm2/i915/intel_pm.c projects/import-googletest-1.8.1/sys/dev/drm2/i915/intel_ringbuffer.c projects/import-googletest-1.8.1/sys/dev/drm2/i915/intel_ringbuffer.h projects/import-googletest-1.8.1/sys/dev/drm2/i915/intel_sdvo.c projects/import-googletest-1.8.1/sys/dev/drm2/i915/intel_sdvo_regs.h projects/import-googletest-1.8.1/sys/dev/drm2/i915/intel_sprite.c projects/import-googletest-1.8.1/sys/dev/drm2/i915/intel_tv.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/ObjectID.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/README projects/import-googletest-1.8.1/sys/dev/drm2/radeon/atom-bits.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/atom-names.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/atom-types.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/atom.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/atom.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/atombios.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/atombios_crtc.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/atombios_dp.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/atombios_encoders.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/atombios_i2c.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/avivod.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/cayman_blit_shaders.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/cayman_blit_shaders.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/cayman_reg_safe.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/evergreen.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/evergreen_blit_kms.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/evergreen_blit_shaders.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/evergreen_blit_shaders.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/evergreen_cs.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/evergreen_hdmi.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/evergreen_reg.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/evergreen_reg_safe.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/evergreend.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/ni.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/ni_reg.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/nid.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/r100.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/r100_reg_safe.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/r100_track.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/r100d.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/r200.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/r200_reg_safe.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/r300.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/r300_reg.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/r300_reg_safe.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/r300d.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/r420.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/r420_reg_safe.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/r420d.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/r500_reg.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/r520.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/r520d.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/r600.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/r600_audio.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/r600_blit_kms.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/r600_blit_shaders.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/r600_blit_shaders.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/r600_cp.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/r600_cs.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/r600_cs.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/r600_hdmi.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/r600_reg.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/r600_reg_safe.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/r600d.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon_acpi.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon_acpi.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon_agp.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon_asic.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon_asic.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon_atombios.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon_benchmark.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon_bios.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon_blit_common.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon_clocks.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon_combios.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon_connectors.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon_cs.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon_cursor.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon_device.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon_display.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon_drm.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon_drv.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon_drv.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon_encoders.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon_family.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon_fb.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon_fence.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon_gart.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon_gem.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon_gem.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon_i2c.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon_irq.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon_irq_kms.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon_irq_kms.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon_kms.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon_kms.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon_legacy_crtc.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon_legacy_encoders.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon_legacy_tv.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon_mem.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon_mode.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon_object.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon_object.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon_pm.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon_prime.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon_reg.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon_ring.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon_sa.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon_semaphore.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon_test.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon_trace.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon_trace_points.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/radeon_ttm.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/reg_srcs/cayman projects/import-googletest-1.8.1/sys/dev/drm2/radeon/reg_srcs/evergreen projects/import-googletest-1.8.1/sys/dev/drm2/radeon/reg_srcs/r100 projects/import-googletest-1.8.1/sys/dev/drm2/radeon/reg_srcs/r200 projects/import-googletest-1.8.1/sys/dev/drm2/radeon/reg_srcs/r300 projects/import-googletest-1.8.1/sys/dev/drm2/radeon/reg_srcs/r420 projects/import-googletest-1.8.1/sys/dev/drm2/radeon/reg_srcs/r600 projects/import-googletest-1.8.1/sys/dev/drm2/radeon/reg_srcs/rn50 projects/import-googletest-1.8.1/sys/dev/drm2/radeon/reg_srcs/rs600 projects/import-googletest-1.8.1/sys/dev/drm2/radeon/reg_srcs/rv515 projects/import-googletest-1.8.1/sys/dev/drm2/radeon/rn50_reg_safe.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/rs100d.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/rs400.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/rs400d.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/rs600.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/rs600_reg_safe.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/rs600d.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/rs690.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/rs690d.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/rv200d.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/rv250d.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/rv350d.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/rv515.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/rv515_reg_safe.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/rv515d.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/rv770.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/rv770d.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/si.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/si_blit_shaders.c projects/import-googletest-1.8.1/sys/dev/drm2/radeon/si_blit_shaders.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/si_reg.h projects/import-googletest-1.8.1/sys/dev/drm2/radeon/sid.h projects/import-googletest-1.8.1/sys/modules/drm/Makefile projects/import-googletest-1.8.1/sys/modules/drm/Makefile.inc projects/import-googletest-1.8.1/sys/modules/drm/drm/Makefile projects/import-googletest-1.8.1/sys/modules/drm/mach64/Makefile projects/import-googletest-1.8.1/sys/modules/drm/mga/Makefile projects/import-googletest-1.8.1/sys/modules/drm/r128/Makefile projects/import-googletest-1.8.1/sys/modules/drm/savage/Makefile projects/import-googletest-1.8.1/sys/modules/drm/sis/Makefile projects/import-googletest-1.8.1/sys/modules/drm/tdfx/Makefile projects/import-googletest-1.8.1/sys/modules/drm/via/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/Makefile.inc projects/import-googletest-1.8.1/sys/modules/drm2/drm2/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/i915kms/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkms/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/ARUBA_me/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/ARUBA_pfp/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/ARUBA_rlc/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/BARTS_mc/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/BARTS_me/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/BARTS_pfp/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/BTC_rlc/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/CAICOS_mc/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/CAICOS_me/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/CAICOS_pfp/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/CAYMAN_mc/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/CAYMAN_me/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/CAYMAN_pfp/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/CAYMAN_rlc/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/CEDAR_me/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/CEDAR_pfp/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/CEDAR_rlc/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/CYPRESS_me/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/CYPRESS_pfp/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/CYPRESS_rlc/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/CYPRESS_uvd/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/HAINAN_ce/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/HAINAN_mc/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/HAINAN_me/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/HAINAN_pfp/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/HAINAN_rlc/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/JUNIPER_me/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/JUNIPER_pfp/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/JUNIPER_rlc/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/Makefile.inc projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/OLAND_ce/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/OLAND_mc/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/OLAND_me/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/OLAND_pfp/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/OLAND_rlc/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/PALM_me/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/PALM_pfp/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/PITCAIRN_ce/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/PITCAIRN_mc/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/PITCAIRN_me/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/PITCAIRN_pfp/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/PITCAIRN_rlc/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/R100_cp/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/R200_cp/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/R300_cp/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/R420_cp/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/R520_cp/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/R600_me/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/R600_pfp/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/R600_rlc/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/R700_rlc/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/REDWOOD_me/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/REDWOOD_pfp/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/REDWOOD_rlc/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/RS600_cp/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/RS690_cp/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/RS780_me/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/RS780_pfp/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/RV610_me/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/RV610_pfp/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/RV620_me/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/RV620_pfp/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/RV630_me/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/RV630_pfp/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/RV635_me/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/RV635_pfp/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/RV670_me/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/RV670_pfp/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/RV710_me/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/RV710_pfp/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/RV710_uvd/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/RV730_me/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/RV730_pfp/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/RV770_me/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/RV770_pfp/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/SUMO2_me/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/SUMO2_pfp/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/SUMO_me/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/SUMO_pfp/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/SUMO_rlc/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/SUMO_uvd/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/TAHITI_ce/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/TAHITI_mc/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/TAHITI_me/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/TAHITI_pfp/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/TAHITI_rlc/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/TAHITI_uvd/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/TURKS_mc/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/TURKS_me/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/TURKS_pfp/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/VERDE_ce/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/VERDE_mc/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/VERDE_me/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/VERDE_pfp/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/VERDE_rlc/Makefile projects/import-googletest-1.8.1/sys/modules/drm2/radeonkmsfw/gen-makefiles Modified: projects/import-googletest-1.8.1/UPDATING projects/import-googletest-1.8.1/bin/sh/histedit.c projects/import-googletest-1.8.1/bin/sh/jobs.c projects/import-googletest-1.8.1/bin/sh/options.h projects/import-googletest-1.8.1/bin/sh/output.c projects/import-googletest-1.8.1/bin/sh/output.h projects/import-googletest-1.8.1/bin/sh/sh.1 projects/import-googletest-1.8.1/bin/sh/tests/execution/Makefile projects/import-googletest-1.8.1/cddl/contrib/opensolaris/cmd/zpool/zpool.8 projects/import-googletest-1.8.1/cddl/contrib/opensolaris/lib/libdtrace/common/dt_consume.c projects/import-googletest-1.8.1/cddl/contrib/opensolaris/lib/libzpool/common/taskq.c projects/import-googletest-1.8.1/contrib/libc++/include/__locale projects/import-googletest-1.8.1/contrib/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp projects/import-googletest-1.8.1/contrib/llvm/tools/lld/ELF/Arch/X86.cpp projects/import-googletest-1.8.1/contrib/llvm/tools/lld/ELF/Arch/X86_64.cpp projects/import-googletest-1.8.1/contrib/llvm/tools/lld/ELF/Config.h projects/import-googletest-1.8.1/contrib/llvm/tools/lld/ELF/SyntheticSections.cpp projects/import-googletest-1.8.1/crypto/openssh/scp.1 projects/import-googletest-1.8.1/crypto/openssh/scp.c projects/import-googletest-1.8.1/lib/libc/amd64/Symbol.map projects/import-googletest-1.8.1/lib/libc/i386/Symbol.map projects/import-googletest-1.8.1/lib/libc/posix1e/acl_strip.c projects/import-googletest-1.8.1/lib/libc/tests/sys/sendfile_test.c projects/import-googletest-1.8.1/lib/libc/x86/sys/Makefile.inc projects/import-googletest-1.8.1/release/tools/ec2.conf projects/import-googletest-1.8.1/sbin/dhclient/dhclient.c projects/import-googletest-1.8.1/sbin/fsck_ffs/inode.c projects/import-googletest-1.8.1/sbin/nvmecontrol/logpage.c projects/import-googletest-1.8.1/sbin/nvmecontrol/nvmecontrol.c projects/import-googletest-1.8.1/sbin/nvmecontrol/nvmecontrol.h projects/import-googletest-1.8.1/sbin/sysctl/sysctl.c projects/import-googletest-1.8.1/share/man/man4/cc_newreno.4 projects/import-googletest-1.8.1/share/man/man4/ctl.4 projects/import-googletest-1.8.1/share/man/man4/ehci.4 projects/import-googletest-1.8.1/share/man/man4/em.4 projects/import-googletest-1.8.1/share/man/man4/ena.4 projects/import-googletest-1.8.1/share/man/man4/ip.4 projects/import-googletest-1.8.1/share/man/man4/ips.4 projects/import-googletest-1.8.1/share/man/man4/liquidio.4 projects/import-googletest-1.8.1/share/man/man4/nda.4 projects/import-googletest-1.8.1/share/man/man4/ng_nat.4 projects/import-googletest-1.8.1/share/man/man4/ohci.4 projects/import-googletest-1.8.1/share/man/man4/pci.4 projects/import-googletest-1.8.1/share/man/man4/sctp.4 projects/import-googletest-1.8.1/share/man/man4/ses.4 projects/import-googletest-1.8.1/share/man/man4/siftr.4 projects/import-googletest-1.8.1/share/man/man4/smartpqi.4 projects/import-googletest-1.8.1/share/man/man4/syscons.4 projects/import-googletest-1.8.1/share/man/man4/sysmouse.4 projects/import-googletest-1.8.1/share/man/man4/tcp.4 projects/import-googletest-1.8.1/share/man/man4/uath.4 projects/import-googletest-1.8.1/share/man/man4/ucom.4 projects/import-googletest-1.8.1/share/man/man4/ugen.4 projects/import-googletest-1.8.1/share/man/man4/uhci.4 projects/import-googletest-1.8.1/share/man/man4/uhid.4 projects/import-googletest-1.8.1/share/man/man4/ukbd.4 projects/import-googletest-1.8.1/share/man/man4/umoscom.4 projects/import-googletest-1.8.1/share/man/man4/ums.4 projects/import-googletest-1.8.1/share/man/man4/uplcom.4 projects/import-googletest-1.8.1/share/man/man4/usb.4 projects/import-googletest-1.8.1/share/man/man4/uvscom.4 projects/import-googletest-1.8.1/share/man/man4/vale.4 projects/import-googletest-1.8.1/share/man/man4/vmci.4 projects/import-googletest-1.8.1/share/man/man4/vmm.4 projects/import-googletest-1.8.1/share/man/man4/wi.4 projects/import-googletest-1.8.1/share/man/man4/xe.4 projects/import-googletest-1.8.1/share/man/man4/xhci.4 projects/import-googletest-1.8.1/share/man/man5/style.mdoc.5 projects/import-googletest-1.8.1/share/man/man9/sysctl.9 projects/import-googletest-1.8.1/stand/libsa/cd9660.c projects/import-googletest-1.8.1/stand/uboot/common/main.c projects/import-googletest-1.8.1/sys/amd64/amd64/initcpu.c projects/import-googletest-1.8.1/sys/amd64/amd64/pmap.c projects/import-googletest-1.8.1/sys/amd64/amd64/sys_machdep.c projects/import-googletest-1.8.1/sys/amd64/amd64/trap.c projects/import-googletest-1.8.1/sys/amd64/conf/NOTES projects/import-googletest-1.8.1/sys/amd64/include/cpufunc.h projects/import-googletest-1.8.1/sys/amd64/include/pmap.h projects/import-googletest-1.8.1/sys/arm/allwinner/axp81x.c projects/import-googletest-1.8.1/sys/arm/include/pmap.h projects/import-googletest-1.8.1/sys/arm64/include/pmap.h projects/import-googletest-1.8.1/sys/arm64/rockchip/clk/rk_clk_composite.c projects/import-googletest-1.8.1/sys/cam/ctl/ctl.c projects/import-googletest-1.8.1/sys/cam/ctl/ctl_io.h projects/import-googletest-1.8.1/sys/cam/ctl/ctl_ioctl.h projects/import-googletest-1.8.1/sys/cam/ctl/ctl_private.h projects/import-googletest-1.8.1/sys/cddl/contrib/opensolaris/uts/common/dtrace/fasttrap.c projects/import-googletest-1.8.1/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/trim_map.c projects/import-googletest-1.8.1/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c projects/import-googletest-1.8.1/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_raidz.c projects/import-googletest-1.8.1/sys/cddl/contrib/opensolaris/uts/intel/dtrace/fasttrap_isa.c projects/import-googletest-1.8.1/sys/cddl/dev/dtrace/dtrace_cddl.h projects/import-googletest-1.8.1/sys/compat/linuxkpi/common/include/linux/compat.h projects/import-googletest-1.8.1/sys/compat/linuxkpi/common/include/linux/fs.h projects/import-googletest-1.8.1/sys/compat/linuxkpi/common/include/linux/types.h projects/import-googletest-1.8.1/sys/compat/linuxkpi/common/src/linux_current.c projects/import-googletest-1.8.1/sys/conf/NOTES projects/import-googletest-1.8.1/sys/conf/files projects/import-googletest-1.8.1/sys/conf/files.amd64 projects/import-googletest-1.8.1/sys/conf/files.arm projects/import-googletest-1.8.1/sys/conf/files.i386 projects/import-googletest-1.8.1/sys/conf/files.mips projects/import-googletest-1.8.1/sys/conf/files.powerpc projects/import-googletest-1.8.1/sys/conf/files.sparc64 projects/import-googletest-1.8.1/sys/conf/kern.mk projects/import-googletest-1.8.1/sys/conf/kern.opts.mk projects/import-googletest-1.8.1/sys/conf/kern.post.mk projects/import-googletest-1.8.1/sys/conf/kern.pre.mk projects/import-googletest-1.8.1/sys/conf/kmod.mk projects/import-googletest-1.8.1/sys/conf/options projects/import-googletest-1.8.1/sys/contrib/dev/acpica/changes.txt projects/import-googletest-1.8.1/sys/contrib/dev/acpica/common/ahpredef.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/common/ahuuids.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/common/dmextern.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/common/dmrestag.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/common/dmtable.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/common/dmtbdump1.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/common/dmtbdump3.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/common/dmtbinfo1.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/common/dmtbinfo2.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/common/dmtbinfo3.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/compiler/aslcompile.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/compiler/aslcompiler.h projects/import-googletest-1.8.1/sys/contrib/dev/acpica/compiler/aslcompiler.l projects/import-googletest-1.8.1/sys/contrib/dev/acpica/compiler/aslload.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/compiler/aslmessages.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/compiler/aslmessages.h projects/import-googletest-1.8.1/sys/contrib/dev/acpica/compiler/asloperands.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/compiler/aslopt.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/compiler/aslpredef.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/compiler/aslprintf.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/compiler/aslresources.y projects/import-googletest-1.8.1/sys/contrib/dev/acpica/compiler/aslsupport.l projects/import-googletest-1.8.1/sys/contrib/dev/acpica/compiler/aslxref.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/compiler/cvcompiler.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/compiler/cvparser.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/compiler/dtexpress.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/compiler/dtio.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/compiler/dttable1.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/compiler/dttable2.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/compiler/dttemplate.h projects/import-googletest-1.8.1/sys/contrib/dev/acpica/components/debugger/dbdisply.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/components/debugger/dbexec.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/components/debugger/dbnames.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/components/debugger/dbobject.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/components/debugger/dbtest.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/components/disassembler/dmbuffer.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/components/disassembler/dmcstyle.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/components/disassembler/dmnames.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/components/disassembler/dmresrc.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/components/disassembler/dmresrcs.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/components/dispatcher/dsfield.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/components/dispatcher/dsopcode.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/components/dispatcher/dswload2.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/components/events/evgpe.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/components/events/evregion.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/components/events/evrgnini.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/components/events/evxfgpe.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/components/executer/exconvrt.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/components/executer/exfield.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/components/executer/exserial.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/components/executer/exutils.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/components/namespace/nsload.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/components/namespace/nsparse.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/components/namespace/nsutils.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/components/parser/psloop.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/components/parser/psparse.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/components/resources/rsdumpinfo.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/components/resources/rsirq.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/components/resources/rsserial.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/components/tables/tbfadt.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/components/tables/tbxface.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/components/tables/tbxfload.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/components/utilities/utdecode.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/components/utilities/utdelete.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/components/utilities/uterror.c projects/import-googletest-1.8.1/sys/contrib/dev/acpica/include/acclib.h projects/import-googletest-1.8.1/sys/contrib/dev/acpica/include/acconfig.h projects/import-googletest-1.8.1/sys/contrib/dev/acpica/include/acdebug.h projects/import-googletest-1.8.1/sys/contrib/dev/acpica/include/acdisasm.h projects/import-googletest-1.8.1/sys/contrib/dev/acpica/include/acexcep.h projects/import-googletest-1.8.1/sys/contrib/dev/acpica/include/aclocal.h projects/import-googletest-1.8.1/sys/contrib/dev/acpica/include/acmacros.h projects/import-googletest-1.8.1/sys/contrib/dev/acpica/include/acobject.h projects/import-googletest-1.8.1/sys/contrib/dev/acpica/include/acpixf.h projects/import-googletest-1.8.1/sys/contrib/dev/acpica/include/acpredef.h projects/import-googletest-1.8.1/sys/contrib/dev/acpica/include/acrestyp.h projects/import-googletest-1.8.1/sys/contrib/dev/acpica/include/actbinfo.h projects/import-googletest-1.8.1/sys/contrib/dev/acpica/include/actbl1.h projects/import-googletest-1.8.1/sys/contrib/dev/acpica/include/actbl2.h projects/import-googletest-1.8.1/sys/contrib/dev/acpica/include/actbl3.h projects/import-googletest-1.8.1/sys/contrib/dev/acpica/include/actypes.h projects/import-googletest-1.8.1/sys/dev/acpica/acpi_battery.c projects/import-googletest-1.8.1/sys/dev/cxgbe/common/t4_hw.c projects/import-googletest-1.8.1/sys/dev/cxgbe/firmware/t4fw_cfg.txt projects/import-googletest-1.8.1/sys/dev/cxgbe/firmware/t5fw_cfg.txt projects/import-googletest-1.8.1/sys/dev/cxgbe/firmware/t5fw_cfg_hashfilter.txt projects/import-googletest-1.8.1/sys/dev/cxgbe/firmware/t6fw_cfg.txt projects/import-googletest-1.8.1/sys/dev/cxgbe/firmware/t6fw_cfg_hashfilter.txt projects/import-googletest-1.8.1/sys/dev/evdev/evdev.c projects/import-googletest-1.8.1/sys/dev/evdev/evdev_private.h projects/import-googletest-1.8.1/sys/dev/flash/at45d.c projects/import-googletest-1.8.1/sys/dev/flash/mx25l.c projects/import-googletest-1.8.1/sys/dev/ioat/ioat.c projects/import-googletest-1.8.1/sys/dev/ioat/ioat_internal.h projects/import-googletest-1.8.1/sys/dev/netmap/if_vtnet_netmap.h projects/import-googletest-1.8.1/sys/dev/ntb/ntb_hw/ntb_hw_plx.c projects/import-googletest-1.8.1/sys/dev/nvdimm/nvdimm.c projects/import-googletest-1.8.1/sys/dev/nvdimm/nvdimm_spa.c projects/import-googletest-1.8.1/sys/dev/nvdimm/nvdimm_var.h projects/import-googletest-1.8.1/sys/dev/pms/RefTisa/tisa/sassata/sas/ini/itdio.c projects/import-googletest-1.8.1/sys/dev/syscons/syscons.h projects/import-googletest-1.8.1/sys/dev/usb/quirk/usb_quirk.c projects/import-googletest-1.8.1/sys/dev/usb/usbdevs projects/import-googletest-1.8.1/sys/fs/fuse/fuse.h projects/import-googletest-1.8.1/sys/fs/fuse/fuse_device.c projects/import-googletest-1.8.1/sys/fs/fuse/fuse_file.c projects/import-googletest-1.8.1/sys/fs/fuse/fuse_file.h projects/import-googletest-1.8.1/sys/fs/fuse/fuse_internal.h projects/import-googletest-1.8.1/sys/fs/fuse/fuse_ipc.c projects/import-googletest-1.8.1/sys/fs/fuse/fuse_ipc.h projects/import-googletest-1.8.1/sys/fs/fuse/fuse_node.c projects/import-googletest-1.8.1/sys/fs/fuse/fuse_node.h projects/import-googletest-1.8.1/sys/fs/fuse/fuse_vfsops.c projects/import-googletest-1.8.1/sys/fs/fuse/fuse_vnops.c projects/import-googletest-1.8.1/sys/fs/nfsclient/nfs_clstate.c projects/import-googletest-1.8.1/sys/fs/pseudofs/pseudofs.c projects/import-googletest-1.8.1/sys/fs/pseudofs/pseudofs.h projects/import-googletest-1.8.1/sys/geom/geom_ctl.c projects/import-googletest-1.8.1/sys/geom/geom_ctl.h projects/import-googletest-1.8.1/sys/geom/geom_dev.c projects/import-googletest-1.8.1/sys/i386/conf/NOTES projects/import-googletest-1.8.1/sys/i386/include/cpufunc.h projects/import-googletest-1.8.1/sys/i386/include/pmap.h projects/import-googletest-1.8.1/sys/kern/init_main.c projects/import-googletest-1.8.1/sys/kern/kern_descrip.c projects/import-googletest-1.8.1/sys/kern/kern_kcov.c projects/import-googletest-1.8.1/sys/kern/sys_pipe.c projects/import-googletest-1.8.1/sys/kgssapi/gss_impl.c projects/import-googletest-1.8.1/sys/libkern/strdup.c projects/import-googletest-1.8.1/sys/mips/conf/AP94 projects/import-googletest-1.8.1/sys/mips/conf/DIR-825B1 projects/import-googletest-1.8.1/sys/mips/conf/ROUTERSTATION_MFS projects/import-googletest-1.8.1/sys/mips/conf/RSPRO_MFS projects/import-googletest-1.8.1/sys/mips/conf/WZR-300HP projects/import-googletest-1.8.1/sys/mips/conf/WZR-HPAG300H projects/import-googletest-1.8.1/sys/mips/include/pmap.h projects/import-googletest-1.8.1/sys/modules/Makefile projects/import-googletest-1.8.1/sys/modules/dtrace/Makefile projects/import-googletest-1.8.1/sys/modules/nvdimm/Makefile projects/import-googletest-1.8.1/sys/netinet/if_ether.c projects/import-googletest-1.8.1/sys/netinet/in_mcast.c projects/import-googletest-1.8.1/sys/netinet/tcp_input.c projects/import-googletest-1.8.1/sys/netinet/tcp_reass.c projects/import-googletest-1.8.1/sys/netinet/tcp_stacks/rack.c projects/import-googletest-1.8.1/sys/netinet/tcp_syncache.c projects/import-googletest-1.8.1/sys/netinet/tcp_timer.c projects/import-googletest-1.8.1/sys/netinet/tcp_timer.h projects/import-googletest-1.8.1/sys/netinet6/frag6.c projects/import-googletest-1.8.1/sys/netpfil/pf/pf.c projects/import-googletest-1.8.1/sys/powerpc/include/pmap.h projects/import-googletest-1.8.1/sys/riscv/include/pmap.h projects/import-googletest-1.8.1/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c projects/import-googletest-1.8.1/sys/sparc64/include/pmap.h projects/import-googletest-1.8.1/sys/sys/libkern.h projects/import-googletest-1.8.1/sys/sys/param.h projects/import-googletest-1.8.1/sys/sys/seq.h projects/import-googletest-1.8.1/sys/sys/systm.h projects/import-googletest-1.8.1/sys/teken/teken_subr.h projects/import-googletest-1.8.1/sys/vm/vm_fault.c projects/import-googletest-1.8.1/sys/vm/vm_map.c projects/import-googletest-1.8.1/sys/vm/vm_pageout.c projects/import-googletest-1.8.1/sys/x86/include/specialreg.h projects/import-googletest-1.8.1/sys/x86/include/sysarch.h projects/import-googletest-1.8.1/sys/x86/x86/mp_x86.c projects/import-googletest-1.8.1/tests/sys/kern/kcov.c projects/import-googletest-1.8.1/tools/tools/crypto/cryptocheck.c projects/import-googletest-1.8.1/usr.bin/calendar/Makefile projects/import-googletest-1.8.1/usr.bin/calendar/calendar.c projects/import-googletest-1.8.1/usr.bin/calendar/calendar.h projects/import-googletest-1.8.1/usr.bin/calendar/events.c projects/import-googletest-1.8.1/usr.bin/calendar/io.c projects/import-googletest-1.8.1/usr.bin/mkuzip/mkuzip.8 projects/import-googletest-1.8.1/usr.bin/svn/Makefile.inc projects/import-googletest-1.8.1/usr.bin/svn/svn/Makefile projects/import-googletest-1.8.1/usr.bin/svn/svnadmin/Makefile projects/import-googletest-1.8.1/usr.bin/svn/svnbench/Makefile projects/import-googletest-1.8.1/usr.bin/svn/svndumpfilter/Makefile projects/import-googletest-1.8.1/usr.bin/svn/svnfsfs/Makefile projects/import-googletest-1.8.1/usr.bin/svn/svnlook/Makefile projects/import-googletest-1.8.1/usr.bin/svn/svnmucc/Makefile projects/import-googletest-1.8.1/usr.bin/svn/svnrdump/Makefile projects/import-googletest-1.8.1/usr.bin/svn/svnserve/Makefile projects/import-googletest-1.8.1/usr.bin/svn/svnsync/Makefile projects/import-googletest-1.8.1/usr.bin/svn/svnversion/Makefile projects/import-googletest-1.8.1/usr.bin/top/display.c projects/import-googletest-1.8.1/usr.sbin/bhyve/acpi.c projects/import-googletest-1.8.1/usr.sbin/efivar/efiutil.c projects/import-googletest-1.8.1/usr.sbin/freebsd-update/freebsd-update.8 projects/import-googletest-1.8.1/usr.sbin/freebsd-update/freebsd-update.sh projects/import-googletest-1.8.1/usr.sbin/gssd/gssd.c projects/import-googletest-1.8.1/usr.sbin/newsyslog/newsyslog.c projects/import-googletest-1.8.1/usr.sbin/nfsd/nfsd.c projects/import-googletest-1.8.1/usr.sbin/syslogd/syslogd.c projects/import-googletest-1.8.1/usr.sbin/vidcontrol/vidcontrol.1 projects/import-googletest-1.8.1/usr.sbin/vidcontrol/vidcontrol.c Directory Properties: projects/import-googletest-1.8.1/ (props changed) projects/import-googletest-1.8.1/cddl/ (props changed) projects/import-googletest-1.8.1/cddl/contrib/opensolaris/ (props changed) projects/import-googletest-1.8.1/contrib/libc++/ (props changed) projects/import-googletest-1.8.1/contrib/llvm/ (props changed) projects/import-googletest-1.8.1/contrib/llvm/tools/lld/ (props changed) projects/import-googletest-1.8.1/crypto/openssh/ (props changed) projects/import-googletest-1.8.1/sys/cddl/contrib/opensolaris/ (props changed) projects/import-googletest-1.8.1/sys/contrib/dev/acpica/ (props changed) Modified: projects/import-googletest-1.8.1/UPDATING ============================================================================== --- projects/import-googletest-1.8.1/UPDATING Mon Feb 25 17:40:00 2019 (r344527) +++ projects/import-googletest-1.8.1/UPDATING Mon Feb 25 18:00:14 2019 (r344528) @@ -31,6 +31,11 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 13.x IS SLOW: disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20190219: + drm and drm2 have been removed from the tree. Please see + https://wiki.freebsd.org/Graphics for the latest information on + migrating to the drm ports. + 20190131: Iflib is no longer unconditionally compiled into the kernel. Drivers using iflib and statically compiled into the kernel, now require Modified: projects/import-googletest-1.8.1/bin/sh/histedit.c ============================================================================== --- projects/import-googletest-1.8.1/bin/sh/histedit.c Mon Feb 25 17:40:00 2019 (r344527) +++ projects/import-googletest-1.8.1/bin/sh/histedit.c Mon Feb 25 18:00:14 2019 (r344528) @@ -472,10 +472,31 @@ str_to_event(const char *str, int last) int bindcmd(int argc, char **argv) { + int ret; + FILE *old; + FILE *out; if (el == NULL) error("line editing is disabled"); - return (el_parse(el, argc, __DECONST(const char **, argv))); + + INTOFF; + + out = out1fp(); + if (out == NULL) + error("Out of space"); + + el_get(el, EL_GETFP, 1, &old); + el_set(el, EL_SETFP, 1, out); + + ret = el_parse(el, argc, __DECONST(const char **, argv)); + + el_set(el, EL_SETFP, 1, old); + + fclose(out); + + INTON; + + return ret; } #else Modified: projects/import-googletest-1.8.1/bin/sh/jobs.c ============================================================================== --- projects/import-googletest-1.8.1/bin/sh/jobs.c Mon Feb 25 17:40:00 2019 (r344527) +++ projects/import-googletest-1.8.1/bin/sh/jobs.c Mon Feb 25 18:00:14 2019 (r344528) @@ -105,6 +105,7 @@ struct job { char changed; /* true if status has changed */ char foreground; /* true if running in the foreground */ char remembered; /* true if $! referenced */ + char pipefail; /* pass any non-zero status */ #if JOBS char jobctl; /* job running under job control */ struct job *next; /* job used after this one */ @@ -144,6 +145,7 @@ static void setcurjob(struct job *); static void deljob(struct job *); static struct job *getcurjob(struct job *); #endif +static int getjobstatus(const struct job *); static void printjobcmd(struct job *); static void showjob(struct job *, int); @@ -341,6 +343,20 @@ jobscmd(int argc __unused, char *argv[] __unused) return (0); } +static int getjobstatus(const struct job *jp) +{ + int i, status; + + if (!jp->pipefail) + return (jp->ps[jp->nprocs - 1].status); + for (i = jp->nprocs - 1; i >= 0; i--) { + status = jp->ps[i].status; + if (status != 0) + return (status); + } + return (0); +} + static void printjobcmd(struct job *jp) { @@ -377,7 +393,7 @@ showjob(struct job *jp, int mode) } #endif coredump = ""; - status = jp->ps[jp->nprocs - 1].status; + status = getjobstatus(jp); if (jp->state == 0) { statestr = "Running"; #if JOBS @@ -556,7 +572,7 @@ waitcmdloop(struct job *job) do { if (job != NULL) { if (job->state == JOBDONE) { - status = job->ps[job->nprocs - 1].status; + status = getjobstatus(job); if (WIFEXITED(status)) retval = WEXITSTATUS(status); else @@ -781,6 +797,7 @@ makejob(union node *node __unused, int nprocs) jp->nprocs = 0; jp->foreground = 0; jp->remembered = 0; + jp->pipefail = pipefailflag; #if JOBS jp->jobctl = jobctl; jp->next = NULL; @@ -1076,7 +1093,7 @@ waitforjob(struct job *jp, int *signaled) if (jp->state == JOBSTOPPED) setcurjob(jp); #endif - status = jp->ps[jp->nprocs - 1].status; + status = getjobstatus(jp); if (signaled != NULL) *signaled = WIFSIGNALED(status); /* convert to 8 bits */ Modified: projects/import-googletest-1.8.1/bin/sh/options.h ============================================================================== --- projects/import-googletest-1.8.1/bin/sh/options.h Mon Feb 25 17:40:00 2019 (r344527) +++ projects/import-googletest-1.8.1/bin/sh/options.h Mon Feb 25 18:00:14 2019 (r344528) @@ -67,9 +67,10 @@ struct shparam { #define Pflag optval[17] #define hflag optval[18] #define nologflag optval[19] +#define pipefailflag optval[20] #define NSHORTOPTS 19 -#define NOPTS 20 +#define NOPTS 21 extern char optval[NOPTS]; extern const char optletter[NSHORTOPTS]; @@ -97,6 +98,7 @@ static const unsigned char optname[] = "\010physical" "\010trackall" "\005nolog" + "\010pipefail" ; #endif Modified: projects/import-googletest-1.8.1/bin/sh/output.c ============================================================================== --- projects/import-googletest-1.8.1/bin/sh/output.c Mon Feb 25 17:40:00 2019 (r344527) +++ projects/import-googletest-1.8.1/bin/sh/output.c Mon Feb 25 18:00:14 2019 (r344528) @@ -340,6 +340,12 @@ doformat(struct output *dest, const char *f, va_list a } } +FILE * +out1fp(void) +{ + return fwopen(out1, doformat_wr); +} + /* * Version of write which resumes after a signal is caught. */ Modified: projects/import-googletest-1.8.1/bin/sh/output.h ============================================================================== --- projects/import-googletest-1.8.1/bin/sh/output.h Mon Feb 25 17:40:00 2019 (r344527) +++ projects/import-googletest-1.8.1/bin/sh/output.h Mon Feb 25 18:00:14 2019 (r344528) @@ -39,6 +39,7 @@ #include #include +#include struct output { char *nextc; @@ -75,6 +76,7 @@ void out1fmt(const char *, ...) __printflike(1, 2); void out2fmt_flush(const char *, ...) __printflike(1, 2); void fmtstr(char *, int, const char *, ...) __printflike(3, 4); void doformat(struct output *, const char *, va_list) __printflike(2, 0); +FILE *out1fp(void); int xwrite(int, const char *, int); #define outc(c, file) ((file)->nextc == (file)->bufend ? (emptyoutbuf(file), *(file)->nextc++ = (c)) : (*(file)->nextc++ = (c))) Modified: projects/import-googletest-1.8.1/bin/sh/sh.1 ============================================================================== --- projects/import-googletest-1.8.1/bin/sh/sh.1 Mon Feb 25 17:40:00 2019 (r344527) +++ projects/import-googletest-1.8.1/bin/sh/sh.1 Mon Feb 25 18:00:14 2019 (r344528) @@ -32,7 +32,7 @@ .\" from: @(#)sh.1 8.6 (Berkeley) 5/4/95 .\" $FreeBSD$ .\" -.Dd January 24, 2019 +.Dd February 24, 2019 .Dt SH 1 .Os .Sh NAME @@ -343,6 +343,18 @@ Useful for debugging. .It Li nolog Another do-nothing option for POSIX compliance. It only has a long name. +.It Li pipefail +Change the exit status of a pipeline to the last non-zero exit status of +any command in the pipeline, if any. +Since an exit due to +.Dv SIGPIPE +counts as a non-zero exit status, +this option may cause non-zero exit status for successful pipelines +if a command such as +.Xr head 1 +in the pipeline terminates with status 0 without reading its +input completely. +This option only has a long name. .El .Pp The @@ -856,12 +868,15 @@ If the keyword .Ic !\& does not precede the pipeline, the exit status is the exit status of the last command specified -in the pipeline. +in the pipeline if the +.Cm pipefail +option is not set or all commands returned zero, +or the last non-zero exit status of any command in the pipeline otherwise. Otherwise, the exit status is the logical -NOT of the exit status of the last command. +NOT of that exit status. That is, if -the last command returns zero, the exit status is 1; if -the last command returns greater than zero, the exit status +that status is zero, the exit status is 1; if +that status is greater than zero, the exit status is zero. .Pp Because pipeline assignment of standard input or standard Modified: projects/import-googletest-1.8.1/bin/sh/tests/execution/Makefile ============================================================================== --- projects/import-googletest-1.8.1/bin/sh/tests/execution/Makefile Mon Feb 25 17:40:00 2019 (r344527) +++ projects/import-googletest-1.8.1/bin/sh/tests/execution/Makefile Mon Feb 25 18:00:14 2019 (r344528) @@ -31,6 +31,13 @@ ${PACKAGE}FILES+= killed2.0 ${PACKAGE}FILES+= not1.0 ${PACKAGE}FILES+= not2.0 ${PACKAGE}FILES+= path1.0 +${PACKAGE}FILES+= pipefail1.0 +${PACKAGE}FILES+= pipefail2.42 +${PACKAGE}FILES+= pipefail3.42 +${PACKAGE}FILES+= pipefail4.42 +${PACKAGE}FILES+= pipefail5.42 +${PACKAGE}FILES+= pipefail6.42 +${PACKAGE}FILES+= pipefail7.0 ${PACKAGE}FILES+= redir1.0 ${PACKAGE}FILES+= redir2.0 ${PACKAGE}FILES+= redir3.0 Copied: projects/import-googletest-1.8.1/bin/sh/tests/execution/pipefail1.0 (from r344527, head/bin/sh/tests/execution/pipefail1.0) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/import-googletest-1.8.1/bin/sh/tests/execution/pipefail1.0 Mon Feb 25 18:00:14 2019 (r344528, copy of r344527, head/bin/sh/tests/execution/pipefail1.0) @@ -0,0 +1,4 @@ +# $FreeBSD$ + +set -o pipefail +: && : | : && : | : | : && : | : | : | : Copied: projects/import-googletest-1.8.1/bin/sh/tests/execution/pipefail2.42 (from r344527, head/bin/sh/tests/execution/pipefail2.42) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/import-googletest-1.8.1/bin/sh/tests/execution/pipefail2.42 Mon Feb 25 18:00:14 2019 (r344528, copy of r344527, head/bin/sh/tests/execution/pipefail2.42) @@ -0,0 +1,4 @@ +# $FreeBSD$ + +set -o pipefail +(exit 42) | : Copied: projects/import-googletest-1.8.1/bin/sh/tests/execution/pipefail3.42 (from r344527, head/bin/sh/tests/execution/pipefail3.42) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/import-googletest-1.8.1/bin/sh/tests/execution/pipefail3.42 Mon Feb 25 18:00:14 2019 (r344528, copy of r344527, head/bin/sh/tests/execution/pipefail3.42) @@ -0,0 +1,4 @@ +# $FreeBSD$ + +set -o pipefail +: | (exit 42) Copied: projects/import-googletest-1.8.1/bin/sh/tests/execution/pipefail4.42 (from r344527, head/bin/sh/tests/execution/pipefail4.42) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/import-googletest-1.8.1/bin/sh/tests/execution/pipefail4.42 Mon Feb 25 18:00:14 2019 (r344528, copy of r344527, head/bin/sh/tests/execution/pipefail4.42) @@ -0,0 +1,4 @@ +# $FreeBSD$ + +set -o pipefail +(exit 43) | (exit 42) Copied: projects/import-googletest-1.8.1/bin/sh/tests/execution/pipefail5.42 (from r344527, head/bin/sh/tests/execution/pipefail5.42) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/import-googletest-1.8.1/bin/sh/tests/execution/pipefail5.42 Mon Feb 25 18:00:14 2019 (r344528, copy of r344527, head/bin/sh/tests/execution/pipefail5.42) @@ -0,0 +1,5 @@ +# $FreeBSD$ + +set -o pipefail +(exit 42) | : & +wait %+ Copied: projects/import-googletest-1.8.1/bin/sh/tests/execution/pipefail6.42 (from r344527, head/bin/sh/tests/execution/pipefail6.42) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/import-googletest-1.8.1/bin/sh/tests/execution/pipefail6.42 Mon Feb 25 18:00:14 2019 (r344528, copy of r344527, head/bin/sh/tests/execution/pipefail6.42) @@ -0,0 +1,6 @@ +# $FreeBSD$ + +set -o pipefail +(exit 42) | : & +set +o pipefail +wait %+ Copied: projects/import-googletest-1.8.1/bin/sh/tests/execution/pipefail7.0 (from r344527, head/bin/sh/tests/execution/pipefail7.0) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/import-googletest-1.8.1/bin/sh/tests/execution/pipefail7.0 Mon Feb 25 18:00:14 2019 (r344528, copy of r344527, head/bin/sh/tests/execution/pipefail7.0) @@ -0,0 +1,5 @@ +# $FreeBSD$ + +(exit 42) | : & +set -o pipefail +wait %+ Modified: projects/import-googletest-1.8.1/cddl/contrib/opensolaris/cmd/zpool/zpool.8 ============================================================================== --- projects/import-googletest-1.8.1/cddl/contrib/opensolaris/cmd/zpool/zpool.8 Mon Feb 25 17:40:00 2019 (r344527) +++ projects/import-googletest-1.8.1/cddl/contrib/opensolaris/cmd/zpool/zpool.8 Mon Feb 25 18:00:14 2019 (r344528) @@ -27,7 +27,7 @@ .\" .\" $FreeBSD$ .\" -.Dd April 27, 2018 +.Dd February 20, 2019 .Dt ZPOOL 8 .Os .Sh NAME @@ -187,7 +187,7 @@ .Op Ar device ... .Nm .Cm status -.Op Fl vx +.Op Fl Dvx .Op Fl T Cm d Ns | Ns Cm u .Op Ar pool .Ar ... @@ -1862,7 +1862,7 @@ section, above, for more information on the available .It Xo .Nm .Cm status -.Op Fl vx +.Op Fl Dvx .Op Fl T Cm d Ns | Ns Cm u .Op Ar pool .Ar ... @@ -1891,14 +1891,12 @@ done and the estimated time to completion. Both of the because the amount of data in the pool and the other workloads on the system can change. .Bl -tag -width indent -.It Fl x -Only display status for pools that are exhibiting errors or are otherwise -unavailable. -Warnings about pools not using the latest on-disk format, having non-native -block size or disabled features will not be included. -.It Fl v -Displays verbose data error information, printing out a complete list of all -data errors since the last complete pool scrub. +.It Fl D +Display a histogram of deduplication statistics, showing the allocated +.Pq physically present on disk +and referenced +.Pq logically referenced in the pool +block counts and sizes by reference count. .It Fl T Cm d Ns | Ns Cm u Print a timestamp. .Pp @@ -1910,6 +1908,14 @@ Use modifier .Cm u for unixtime .Pq equals Qq Ic date +%s . +.It Fl v +Displays verbose data error information, printing out a complete list of all +data errors since the last complete pool scrub. +.It Fl x +Only display status for pools that are exhibiting errors or are otherwise +unavailable. +Warnings about pools not using the latest on-disk format, having non-native +block size or disabled features will not be included. .El .It Xo .Nm Modified: projects/import-googletest-1.8.1/cddl/contrib/opensolaris/lib/libdtrace/common/dt_consume.c ============================================================================== --- projects/import-googletest-1.8.1/cddl/contrib/opensolaris/lib/libdtrace/common/dt_consume.c Mon Feb 25 17:40:00 2019 (r344527) +++ projects/import-googletest-1.8.1/cddl/contrib/opensolaris/lib/libdtrace/common/dt_consume.c Mon Feb 25 18:00:14 2019 (r344528) @@ -24,7 +24,7 @@ */ /* - * Copyright (c) 2013, Joyent, Inc. All rights reserved. + * Copyright (c) 2017, Joyent, Inc. All rights reserved. * Copyright (c) 2012 by Delphix. All rights reserved. */ @@ -3040,9 +3040,6 @@ dtrace_consume(dtrace_hdl_t *dtp, FILE *fp, break; timestamp = dt_buf_oldest(buf, dtp); - assert(timestamp >= dtp->dt_last_timestamp); - dtp->dt_last_timestamp = timestamp; - if (timestamp == buf->dtbd_timestamp) { /* * We've reached the end of the time covered @@ -3056,6 +3053,8 @@ dtrace_consume(dtrace_hdl_t *dtp, FILE *fp, break; continue; } + assert(timestamp >= dtp->dt_last_timestamp); + dtp->dt_last_timestamp = timestamp; if ((rval = dt_consume_cpu(dtp, fp, buf->dtbd_cpu, buf, B_TRUE, pf, rf, arg)) != 0) Modified: projects/import-googletest-1.8.1/cddl/contrib/opensolaris/lib/libzpool/common/taskq.c ============================================================================== --- projects/import-googletest-1.8.1/cddl/contrib/opensolaris/lib/libzpool/common/taskq.c Mon Feb 25 17:40:00 2019 (r344527) +++ projects/import-googletest-1.8.1/cddl/contrib/opensolaris/lib/libzpool/common/taskq.c Mon Feb 25 18:00:14 2019 (r344528) @@ -79,8 +79,13 @@ again: if ((t = tq->tq_freelist) != NULL && tq->tq_nal * immediately retry the allocation. */ tq->tq_maxalloc_wait++; +#ifdef __FreeBSD__ rv = cv_timedwait(&tq->tq_maxalloc_cv, + &tq->tq_lock, hz); +#else + rv = cv_timedwait(&tq->tq_maxalloc_cv, &tq->tq_lock, ddi_get_lbolt() + hz); +#endif tq->tq_maxalloc_wait--; if (rv > 0) goto again; /* signaled */ Modified: projects/import-googletest-1.8.1/contrib/libc++/include/__locale ============================================================================== --- projects/import-googletest-1.8.1/contrib/libc++/include/__locale Mon Feb 25 17:40:00 2019 (r344527) +++ projects/import-googletest-1.8.1/contrib/libc++/include/__locale Mon Feb 25 18:00:14 2019 (r344528) @@ -1230,8 +1230,6 @@ _LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE _LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS codecvt_byname) _LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS codecvt_byname) -_LIBCPP_NORETURN _LIBCPP_FUNC_VIS void __throw_runtime_error(const char*); - template struct __narrow_to_utf8 { Modified: projects/import-googletest-1.8.1/contrib/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp ============================================================================== --- projects/import-googletest-1.8.1/contrib/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp Mon Feb 25 17:40:00 2019 (r344527) +++ projects/import-googletest-1.8.1/contrib/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp Mon Feb 25 18:00:14 2019 (r344528) @@ -989,15 +989,23 @@ bool X86DAGToDAGISel::matchWrapper(SDValue N, X86ISelA if (AM.hasSymbolicDisplacement()) return true; + bool IsRIPRelTLS = false; bool IsRIPRel = N.getOpcode() == X86ISD::WrapperRIP; + if (IsRIPRel) { + SDValue Val = N.getOperand(0); + if (Val.getOpcode() == ISD::TargetGlobalTLSAddress) + IsRIPRelTLS = true; + } - // We can't use an addressing mode in the 64-bit large code model. In the - // medium code model, we use can use an mode when RIP wrappers are present. - // That signifies access to globals that are known to be "near", such as the - // GOT itself. + // We can't use an addressing mode in the 64-bit large code model. + // Global TLS addressing is an exception. In the medium code model, + // we use can use a mode when RIP wrappers are present. + // That signifies access to globals that are known to be "near", + // such as the GOT itself. CodeModel::Model M = TM.getCodeModel(); if (Subtarget->is64Bit() && - (M == CodeModel::Large || (M == CodeModel::Medium && !IsRIPRel))) + ((M == CodeModel::Large && !IsRIPRelTLS) || + (M == CodeModel::Medium && !IsRIPRel))) return true; // Base and index reg must be 0 in order to use %rip as base. Modified: projects/import-googletest-1.8.1/contrib/llvm/tools/lld/ELF/Arch/X86.cpp ============================================================================== --- projects/import-googletest-1.8.1/contrib/llvm/tools/lld/ELF/Arch/X86.cpp Mon Feb 25 17:40:00 2019 (r344527) +++ projects/import-googletest-1.8.1/contrib/llvm/tools/lld/ELF/Arch/X86.cpp Mon Feb 25 18:00:14 2019 (r344528) @@ -70,6 +70,14 @@ static bool hasBaseReg(uint8_t ModRM) { return (ModRM RelExpr X86::getRelExpr(RelType Type, const Symbol &S, const uint8_t *Loc) const { + // There are 4 different TLS variable models with varying degrees of + // flexibility and performance. LocalExec and InitialExec models are fast but + // less-flexible models. If they are in use, we set DF_STATIC_TLS flag in the + // dynamic section to let runtime know about that. + if (Type == R_386_TLS_LE || Type == R_386_TLS_LE_32 || Type == R_386_TLS_IE || + Type == R_386_TLS_GOTIE) + Config->HasStaticTlsModel = true; + switch (Type) { case R_386_8: case R_386_16: Modified: projects/import-googletest-1.8.1/contrib/llvm/tools/lld/ELF/Arch/X86_64.cpp ============================================================================== --- projects/import-googletest-1.8.1/contrib/llvm/tools/lld/ELF/Arch/X86_64.cpp Mon Feb 25 17:40:00 2019 (r344527) +++ projects/import-googletest-1.8.1/contrib/llvm/tools/lld/ELF/Arch/X86_64.cpp Mon Feb 25 18:00:14 2019 (r344528) @@ -76,6 +76,9 @@ template X86_64::X86_64() { template RelExpr X86_64::getRelExpr(RelType Type, const Symbol &S, const uint8_t *Loc) const { + if (Type == R_X86_64_GOTTPOFF) + Config->HasStaticTlsModel = true; + switch (Type) { case R_X86_64_8: case R_X86_64_16: Modified: projects/import-googletest-1.8.1/contrib/llvm/tools/lld/ELF/Config.h ============================================================================== --- projects/import-googletest-1.8.1/contrib/llvm/tools/lld/ELF/Config.h Mon Feb 25 17:40:00 2019 (r344527) +++ projects/import-googletest-1.8.1/contrib/llvm/tools/lld/ELF/Config.h Mon Feb 25 18:00:14 2019 (r344528) @@ -18,6 +18,7 @@ #include "llvm/Support/CachePruning.h" #include "llvm/Support/CodeGen.h" #include "llvm/Support/Endian.h" +#include #include namespace lld { @@ -81,6 +82,7 @@ struct VersionDefinition { // and such fields have the same name as the corresponding options. // Most fields are initialized by the driver. struct Configuration { + std::atomic HasStaticTlsModel{false}; uint8_t OSABI = 0; llvm::CachePruningPolicy ThinLTOCachePolicy; llvm::StringMap SectionStartMap; Modified: projects/import-googletest-1.8.1/contrib/llvm/tools/lld/ELF/SyntheticSections.cpp ============================================================================== --- projects/import-googletest-1.8.1/contrib/llvm/tools/lld/ELF/SyntheticSections.cpp Mon Feb 25 17:40:00 2019 (r344527) +++ projects/import-googletest-1.8.1/contrib/llvm/tools/lld/ELF/SyntheticSections.cpp Mon Feb 25 18:00:14 2019 (r344528) @@ -1282,6 +1282,8 @@ template void DynamicSection::final } if (!Config->ZText) DtFlags |= DF_TEXTREL; + if (Config->HasStaticTlsModel) + DtFlags |= DF_STATIC_TLS; if (DtFlags) addInt(DT_FLAGS, DtFlags); Modified: projects/import-googletest-1.8.1/crypto/openssh/scp.1 ============================================================================== --- projects/import-googletest-1.8.1/crypto/openssh/scp.1 Mon Feb 25 17:40:00 2019 (r344527) +++ projects/import-googletest-1.8.1/crypto/openssh/scp.1 Mon Feb 25 18:00:14 2019 (r344528) @@ -18,7 +18,7 @@ .Nd secure copy (remote file copy program) .Sh SYNOPSIS .Nm scp -.Op Fl 346BCpqrv +.Op Fl 346BCpqrTv .Op Fl c Ar cipher .Op Fl F Ar ssh_config .Op Fl i Ar identity_file @@ -207,6 +207,16 @@ to use for the encrypted connection. The program must understand .Xr ssh 1 options. +.It Fl T +Disable strict filename checking. +By default when copying files from a remote host to a local directory +.Nm +checks that the received filenames match those requested on the command-line +to prevent the remote end from sending unexpected or unwanted files. +Because of differences in how various operating systems and shells interpret +filename wildcards, these checks may cause wanted files to be rejected. +This option disables these checks at the expense of fully trusting that +the server will not send unexpected filenames. .It Fl v Verbose mode. Causes Modified: projects/import-googletest-1.8.1/crypto/openssh/scp.c ============================================================================== --- projects/import-googletest-1.8.1/crypto/openssh/scp.c Mon Feb 25 17:40:00 2019 (r344527) +++ projects/import-googletest-1.8.1/crypto/openssh/scp.c Mon Feb 25 18:00:14 2019 (r344528) @@ -1,4 +1,4 @@ -/* $OpenBSD: scp.c,v 1.197 2018/06/01 04:31:48 dtucker Exp $ */ +/* $OpenBSD: scp.c,v 1.203 2019/01/27 07:14:11 jmc Exp $ */ /* * scp - secure remote copy. This is basically patched BSD rcp which * uses ssh to do the data transfer (instead of using rcmd). @@ -94,6 +94,7 @@ #include #include #include +#include #include #include #include @@ -375,14 +376,14 @@ void verifydir(char *); struct passwd *pwd; uid_t userid; int errs, remin, remout; -int pflag, iamremote, iamrecursive, targetshouldbedirectory; +int Tflag, pflag, iamremote, iamrecursive, targetshouldbedirectory; #define CMDNEEDS 64 char cmd[CMDNEEDS]; /* must hold "rcp -r -p -d\0" */ int response(void); void rsource(char *, struct stat *); -void sink(int, char *[]); +void sink(int, char *[], const char *); void source(int, char *[]); void tolocal(int, char *[]); void toremote(int, char *[]); @@ -421,8 +422,9 @@ main(int argc, char **argv) addargs(&args, "-oRemoteCommand=none"); addargs(&args, "-oRequestTTY=no"); - fflag = tflag = 0; - while ((ch = getopt(argc, argv, "dfl:prtvBCc:i:P:q12346S:o:F:")) != -1) + fflag = Tflag = tflag = 0; + while ((ch = getopt(argc, argv, + "dfl:prtTvBCc:i:P:q12346S:o:F:")) != -1) { switch (ch) { /* User-visible flags. */ case '1': @@ -501,9 +503,13 @@ main(int argc, char **argv) setmode(0, O_BINARY); #endif break; + case 'T': + Tflag = 1; + break; default: usage(); } + } argc -= optind; argv += optind; @@ -534,7 +540,7 @@ main(int argc, char **argv) } if (tflag) { /* Receive data. */ - sink(argc, argv); + sink(argc, argv, NULL); exit(errs != 0); } if (argc < 2) @@ -791,7 +797,7 @@ tolocal(int argc, char **argv) continue; } free(bp); - sink(1, argv + argc - 1); + sink(1, argv + argc - 1, src); (void) close(remin); remin = remout = -1; } @@ -967,7 +973,7 @@ rsource(char *name, struct stat *statp) (sizeof(type) != 4 && sizeof(type) != 8)) void -sink(int argc, char **argv) +sink(int argc, char **argv, const char *src) { static BUF buffer; struct stat stb; @@ -983,6 +989,7 @@ sink(int argc, char **argv) unsigned long long ull; int setimes, targisdir, wrerrno = 0; char ch, *cp, *np, *targ, *why, *vect[1], buf[2048], visbuf[2048]; + char *src_copy = NULL, *restrict_pattern = NULL; struct timeval tv[2]; #define atime tv[0] @@ -1007,6 +1014,17 @@ sink(int argc, char **argv) (void) atomicio(vwrite, remout, "", 1); if (stat(targ, &stb) == 0 && S_ISDIR(stb.st_mode)) targisdir = 1; + if (src != NULL && !iamrecursive && !Tflag) { + /* + * Prepare to try to restrict incoming filenames to match + * the requested destination file glob. + */ + if ((src_copy = strdup(src)) == NULL) + fatal("strdup failed"); + if ((restrict_pattern = strrchr(src_copy, '/')) != NULL) { + *restrict_pattern++ = '\0'; + } + } for (first = 1;; first = 0) { cp = buf; if (atomicio(read, remin, cp, 1) != 1) @@ -1111,6 +1129,9 @@ sink(int argc, char **argv) run_err("error: unexpected filename: %s", cp); exit(1); } + if (restrict_pattern != NULL && + fnmatch(restrict_pattern, cp, 0) != 0) + SCREWUP("filename does not match request"); if (targisdir) { static char *namebuf; static size_t cursize; @@ -1148,7 +1169,7 @@ sink(int argc, char **argv) goto bad; } vect[0] = xstrdup(np); - sink(1, vect); + sink(1, vect, src); if (setimes) { setimes = 0; if (utimes(vect[0], tv) < 0) @@ -1316,7 +1337,7 @@ void usage(void) { (void) fprintf(stderr, - "usage: scp [-346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]\n" + "usage: scp [-346BCpqrTv] [-c cipher] [-F ssh_config] [-i identity_file]\n" " [-l limit] [-o ssh_option] [-P port] [-S program] source ... target\n"); exit(1); } Modified: projects/import-googletest-1.8.1/lib/libc/amd64/Symbol.map ============================================================================== --- projects/import-googletest-1.8.1/lib/libc/amd64/Symbol.map Mon Feb 25 17:40:00 2019 (r344527) +++ projects/import-googletest-1.8.1/lib/libc/amd64/Symbol.map Mon Feb 25 18:00:14 2019 (r344528) @@ -44,6 +44,13 @@ FBSD_1.0 { vfork; }; +FBSD_1.6 { + x86_pkru_get_perm; + x86_pkru_set_perm; + x86_pkru_protect_range; + x86_pkru_unprotect_range; +}; + /* * * FreeBSD private ABI Modified: projects/import-googletest-1.8.1/lib/libc/i386/Symbol.map ============================================================================== --- projects/import-googletest-1.8.1/lib/libc/i386/Symbol.map Mon Feb 25 17:40:00 2019 (r344527) +++ projects/import-googletest-1.8.1/lib/libc/i386/Symbol.map Mon Feb 25 18:00:14 2019 (r344528) @@ -46,6 +46,13 @@ FBSD_1.0 { ___tls_get_addr; }; +FBSD_1.6 { + x86_pkru_get_perm; + x86_pkru_set_perm; + x86_pkru_protect_range; + x86_pkru_unprotect_range; +}; + FBSDprivate_1.0 { /* PSEUDO syscalls */ _getlogin; Modified: projects/import-googletest-1.8.1/lib/libc/posix1e/acl_strip.c ============================================================================== --- projects/import-googletest-1.8.1/lib/libc/posix1e/acl_strip.c Mon Feb 25 17:40:00 2019 (r344527) +++ projects/import-googletest-1.8.1/lib/libc/posix1e/acl_strip.c Mon Feb 25 18:00:14 2019 (r344528) @@ -70,7 +70,6 @@ _posix1e_acl_strip_np(const acl_t aclp, int recalculat { acl_t acl_new, acl_old; acl_entry_t entry, entry_new; - acl_permset_t perm; acl_tag_t tag; int entry_id, have_mask_entry; @@ -104,15 +103,7 @@ _posix1e_acl_strip_np(const acl_t aclp, int recalculat case ACL_USER_OBJ: case ACL_GROUP_OBJ: case ACL_OTHER: - if (acl_get_tag_type(entry, &tag) == -1) - goto fail; - if (acl_get_permset(entry, &perm) == -1) - goto fail; if (acl_create_entry(&acl_new, &entry_new) == -1) - goto fail; - if (acl_set_tag_type(entry_new, tag) == -1) - goto fail; - if (acl_set_permset(entry_new, perm) == -1) goto fail; if (acl_copy_entry(entry_new, entry) == -1) goto fail; Modified: projects/import-googletest-1.8.1/lib/libc/tests/sys/sendfile_test.c ============================================================================== --- projects/import-googletest-1.8.1/lib/libc/tests/sys/sendfile_test.c Mon Feb 25 17:40:00 2019 (r344527) +++ projects/import-googletest-1.8.1/lib/libc/tests/sys/sendfile_test.c Mon Feb 25 18:00:14 2019 (r344528) @@ -156,6 +156,8 @@ setup_client(int domain, int type, int port) "Will try to connect to host='%s', address_family=%d, " "socket_type=%d\n", host, res->ai_family, res->ai_socktype); + /* Avoid a double print when forked by flushing. */ + fflush(stdout); 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); @@ -187,6 +189,8 @@ setup_server(int domain, int type, int port) "Will try to bind socket to host='%s', address_family=%d, " "socket_type=%d\n", host, res->ai_family, res->ai_socktype); + /* Avoid a double print when forked by flushing. */ + fflush(stdout); error = bind(sock, res->ai_addr, res->ai_addrlen); freeaddrinfo(res); ATF_REQUIRE_EQ_MSG(error, 0, "bind failed: %s", strerror(errno)); @@ -204,11 +208,17 @@ setup_server(int domain, int type, int port) static void server_cat(const char *dest_filename, int server_sock, size_t len) { - char *buffer; + char *buffer, *buf_window_ptr; int recv_sock; - ssize_t received_bytes; + size_t buffer_size; + ssize_t received_bytes, recv_ret; - buffer = calloc(len + 1, sizeof(char)); + /* + * Ensure that there isn't excess data sent across the wire by + * capturing 10 extra bytes (plus 1 for nul). + */ + buffer_size = len + 10 + 1; + buffer = calloc(buffer_size, sizeof(char)); if (buffer == NULL) err(1, "malloc failed"); @@ -216,32 +226,26 @@ server_cat(const char *dest_filename, int server_sock, 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"); + buf_window_ptr = buffer; + received_bytes = 0; + do { + recv_ret = recv(recv_sock, buf_window_ptr, + buffer_size - received_bytes, 0); + if (recv_ret <= 0) + break; + buf_window_ptr += recv_ret; + received_bytes += recv_ret; + } while (received_bytes < buffer_size); 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); + + if (received_bytes != len) + errx(1, "received unexpected data: %zd != %zd", received_bytes, + len); } static int @@ -666,10 +670,6 @@ hdtr_positive_test(int domain) trailers[0].iov_len = strlen(trailers[0].iov_base); offset = 0; nbytes = 0; - - atf_tc_expect_fail( - "The header/trailer testcases fail today with a data mismatch; " - "bug # 234809"); for (i = 0; i < nitems(testcases); i++) { struct sf_hdtr hdtr; Modified: projects/import-googletest-1.8.1/lib/libc/x86/sys/Makefile.inc ============================================================================== --- projects/import-googletest-1.8.1/lib/libc/x86/sys/Makefile.inc Mon Feb 25 17:40:00 2019 (r344527) +++ projects/import-googletest-1.8.1/lib/libc/x86/sys/Makefile.inc Mon Feb 25 18:00:14 2019 (r344528) @@ -3,7 +3,11 @@ .PATH: ${LIBC_SRCTOP}/x86/sys SRCS+= \ - __vdso_gettc.c + __vdso_gettc.c \ + pkru.c + +MAN+= \ + pkru.3 .if ${MACHINE_CPUARCH} == "amd64" && ${MK_HYPERV} != "no" CFLAGS+= -DWANT_HYPERV Copied: projects/import-googletest-1.8.1/lib/libc/x86/sys/pkru.3 (from r344527, head/lib/libc/x86/sys/pkru.3) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/import-googletest-1.8.1/lib/libc/x86/sys/pkru.3 Mon Feb 25 18:00:14 2019 (r344528, copy of r344527, head/lib/libc/x86/sys/pkru.3) @@ -0,0 +1,206 @@ +.\" Copyright (c) 2019 The FreeBSD Foundation, Inc. +.\" All rights reserved. +.\" +.\" This documentation was written by +.\" Konstantin Belousov 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: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $FreeBSD$ +.\" +.Dd February 16, 2019 +.Dt PKRU 3 +.Os +.Sh NAME +.Nm Protection Key Rights for User pages +.Nd provide fast user-managed key-based access control for pages +.Sh LIBRARY +.Lb libc +.Sh SYNOPSIS +.In machine/sysarch.h +.Ft int +.Fn x86_pkru_get_perm "unsigned int keyidx" "int *access" "int *modify" +.Ft int +.Fn x86_pkru_set_perm "unsigned int keyidx" "int access" "int modify" +.Ft int +.Fo x86_pkru_protect_range +.Fa "void *addr" +.Fa "unsigned long len" +.Fa "unsigned int keyidx" +.Fa "int flag" +.Fc +.Ft int +.Fn x86_pkru_unprotect_range "void *addr" "unsigned long len" +.Sh DESCRIPTION +The protection keys feature provides an additional mechanism, besides the +normal page permissions as established by +.Xr mmap 2 +and +.Xr mprotect 2 , +to control access to user-mode addresses. +The mechanism gives safety measures which can be used to avoid +incidental read or modification of sensitive memory, +or as a debugging feature. +It cannot guard against conscious accesses since permissions +are user-controllable. +.Pp +If supported by hardware, each mapped user linear address +has an associated 4-bit protection key. +A new per-thread PKRU hardware register determines, for each protection +key, whether user-mode addresses with that protection key may be +read or written. +.Pp +Only one key may apply to a given range at a time. +The default protection key index is zero, it is used even if no key +was explicitly assigned to the address, or if the key was removed. +.Pp +The protection prevents the system from accessing user addresses as well +as the user applications. +When a system call was unable to read or write user memory due to key +protection, it returns the +.Er EFAULT +error code. +Note that some side effects may have occurred if this error is reported. +.Pp +Protection keys require that the system uses 4-level paging +(also called long mode), +which means that it is only available on amd64 system. +Both 64-bit and 32-bit applications can use protection keys. +More information about the hardware feature is provided in the IA32 Software +Developer's Manual published by Intel Corp. +.Pp +The key indexes written into the page table entries are managed by the +.Fn sysarch +syscall. +Per-key permissions are managed using the user-mode instructions +.Em RDPKRU +and +.Em WRPKRU. +The system provides convenient library helpers for both the syscall and +the instructions, described below. +.Pp +The +.Fn x86_pkru_protect_range +function assigns key +.Fa keyidx +to the range starting at +.Fa addr +and having length +.Fa len . +Starting address is truncated to the page start, +and the end is rounded up to the end of the page. +After a successfull call, the range has the specified key assigned, +even if the key is zero and it did not change the page table entries. +.Pp +The +.Fa flags +argument takes the logical OR of the following values: +.Bl -tag -width +.It Bq Va AMD64_PKRU_EXCL +Only assign the key if the range does not have any other keys assigned +(including the zero key). +You must first remove any existing key with +.Fn x86_pkru_unprotect_range +in order for this request to succeed. +If the +.Va AMD64_PKRU_EXCL +flag is not specified, +.Fn x86_pkru_protect_range +replaces any existing key. +.It Bq Va AMD64_PKRU_PERSIST +The keys assigned to the range are persistent. +They are re-established when the current mapping is destroyed +and a new mapping is created in any sub-range of the specified range. +You must use a +.Fn x86_pkru_unprotect_range +call to forget the key. +.El +.Pp +The +.Fn x86_pkru_unprotect_range +function removes any keys assigned to the specified range. +Existing mappings are changed to use key index zero in page table entries. +Keys are no longer considered installed for all mappings in the range, +for the purposes of +.Fn x86_pkru_protect_range +with the +.Va AMD64_PKRU_EXCL +flag. +.Pp *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Mon Feb 25 19:17:24 2019 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1B3C61513672 for ; Mon, 25 Feb 2019 19:17:24 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id BC80C75975; Mon, 25 Feb 2019 19:17: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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A94C6215B5; Mon, 25 Feb 2019 19:17: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 x1PJHNus046444; Mon, 25 Feb 2019 19:17:23 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x1PJHK7h046427; Mon, 25 Feb 2019 19:17:20 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201902251917.x1PJHK7h046427@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Mon, 25 Feb 2019 19:17:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r344548 - in projects/clang800-import: contrib/llvm/lib/Target/X86 contrib/llvm/lib/Transforms/InstCombine contrib/llvm/lib/Transforms/Scalar contrib/llvm/tools/clang/include/clang/AST ... X-SVN-Group: projects X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in projects/clang800-import: contrib/llvm/lib/Target/X86 contrib/llvm/lib/Transforms/InstCombine contrib/llvm/lib/Transforms/Scalar contrib/llvm/tools/clang/include/clang/AST contrib/llvm/tools/clang/... X-SVN-Commit-Revision: 344548 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: BC80C75975 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.98 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.98)[-0.978,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Feb 2019 19:17:24 -0000 Author: dim Date: Mon Feb 25 19:17:20 2019 New Revision: 344548 URL: https://svnweb.freebsd.org/changeset/base/344548 Log: Merge llvm, clang, compiler-rt, libc++, lld, and lldb release_80 branch r354799, resolve conflicts, and bump version numbers. Modified: projects/clang800-import/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp projects/clang800-import/contrib/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp projects/clang800-import/contrib/llvm/lib/Transforms/Scalar/MergeICmps.cpp projects/clang800-import/contrib/llvm/tools/clang/include/clang/AST/Expr.h projects/clang800-import/contrib/llvm/tools/clang/lib/CodeGen/CGDecl.cpp projects/clang800-import/contrib/llvm/tools/clang/lib/Frontend/TextDiagnostic.cpp projects/clang800-import/contrib/llvm/tools/clang/lib/Sema/SemaExpr.cpp projects/clang800-import/contrib/llvm/tools/lld/ELF/Options.td projects/clang800-import/contrib/llvm/tools/lld/docs/ReleaseNotes.rst projects/clang800-import/contrib/llvm/tools/lldb/source/Host/common/MainLoop.cpp projects/clang800-import/contrib/llvm/tools/lldb/source/Host/openbsd/Host.cpp projects/clang800-import/lib/clang/include/clang/Basic/Version.inc projects/clang800-import/lib/clang/include/lld/Common/Version.inc projects/clang800-import/lib/clang/include/llvm/Support/VCSRevision.h Directory Properties: projects/clang800-import/contrib/compiler-rt/ (props changed) projects/clang800-import/contrib/libc++/ (props changed) projects/clang800-import/contrib/llvm/ (props changed) projects/clang800-import/contrib/llvm/tools/clang/ (props changed) projects/clang800-import/contrib/llvm/tools/lld/ (props changed) projects/clang800-import/contrib/llvm/tools/lldb/ (props changed) Modified: projects/clang800-import/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp ============================================================================== --- projects/clang800-import/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp Mon Feb 25 19:14:16 2019 (r344547) +++ projects/clang800-import/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp Mon Feb 25 19:17:20 2019 (r344548) @@ -13884,7 +13884,6 @@ static SDValue lowerVectorShuffleAsLanePermuteAndPermu int NumEltsPerLane = NumElts / NumLanes; SmallVector SrcLaneMask(NumLanes, SM_SentinelUndef); - SmallVector LaneMask(NumElts, SM_SentinelUndef); SmallVector PermMask(NumElts, SM_SentinelUndef); for (int i = 0; i != NumElts; ++i) { @@ -13899,8 +13898,18 @@ static SDValue lowerVectorShuffleAsLanePermuteAndPermu return SDValue(); SrcLaneMask[DstLane] = SrcLane; - LaneMask[i] = (SrcLane * NumEltsPerLane) + (i % NumEltsPerLane); PermMask[i] = (DstLane * NumEltsPerLane) + (M % NumEltsPerLane); + } + + // Make sure we set all elements of the lane mask, to avoid undef propagation. + SmallVector LaneMask(NumElts, SM_SentinelUndef); + for (int DstLane = 0; DstLane != NumLanes; ++DstLane) { + int SrcLane = SrcLaneMask[DstLane]; + if (0 <= SrcLane) + for (int j = 0; j != NumEltsPerLane; ++j) { + LaneMask[(DstLane * NumEltsPerLane) + j] = + (SrcLane * NumEltsPerLane) + j; + } } // If we're only shuffling a single lowest lane and the rest are identity Modified: projects/clang800-import/contrib/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp ============================================================================== --- projects/clang800-import/contrib/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp Mon Feb 25 19:14:16 2019 (r344547) +++ projects/clang800-import/contrib/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp Mon Feb 25 19:17:20 2019 (r344548) @@ -1376,7 +1376,8 @@ Instruction *InstCombiner::foldVectorBinop(BinaryOpera if (match(LHS, m_ShuffleVector(m_Value(L0), m_Value(L1), m_Constant(Mask))) && match(RHS, m_ShuffleVector(m_Value(R0), m_Value(R1), m_Specific(Mask))) && LHS->hasOneUse() && RHS->hasOneUse() && - cast(LHS)->isConcat()) { + cast(LHS)->isConcat() && + cast(RHS)->isConcat()) { // This transform does not have the speculative execution constraint as // below because the shuffle is a concatenation. The new binops are // operating on exactly the same elements as the existing binop. Modified: projects/clang800-import/contrib/llvm/lib/Transforms/Scalar/MergeICmps.cpp ============================================================================== --- projects/clang800-import/contrib/llvm/lib/Transforms/Scalar/MergeICmps.cpp Mon Feb 25 19:14:16 2019 (r344547) +++ projects/clang800-import/contrib/llvm/lib/Transforms/Scalar/MergeICmps.cpp Mon Feb 25 19:17:20 2019 (r344548) @@ -11,21 +11,37 @@ // later typically inlined as a chain of efficient hardware comparisons). This // typically benefits c++ member or nonmember operator==(). // -// The basic idea is to replace a larger chain of integer comparisons loaded -// from contiguous memory locations into a smaller chain of such integer +// The basic idea is to replace a longer chain of integer comparisons loaded +// from contiguous memory locations into a shorter chain of larger integer // comparisons. Benefits are double: // - There are less jumps, and therefore less opportunities for mispredictions // and I-cache misses. // - Code size is smaller, both because jumps are removed and because the // encoding of a 2*n byte compare is smaller than that of two n-byte // compares. - +// +// Example: +// +// struct S { +// int a; +// char b; +// char c; +// uint16_t d; +// bool operator==(const S& o) const { +// return a == o.a && b == o.b && c == o.c && d == o.d; +// } +// }; +// +// Is optimized as : +// +// bool S::operator==(const S& o) const { +// return memcmp(this, &o, 8) == 0; +// } +// +// Which will later be expanded (ExpandMemCmp) as a single 8-bytes icmp. +// //===----------------------------------------------------------------------===// -#include -#include -#include -#include #include "llvm/Analysis/Loads.h" #include "llvm/Analysis/TargetLibraryInfo.h" #include "llvm/Analysis/TargetTransformInfo.h" @@ -34,6 +50,10 @@ #include "llvm/Pass.h" #include "llvm/Transforms/Scalar.h" #include "llvm/Transforms/Utils/BuildLibCalls.h" +#include +#include +#include +#include using namespace llvm; @@ -50,76 +70,95 @@ static bool isSimpleLoadOrStore(const Instruction *I) return false; } -// A BCE atom. +// A BCE atom "Binary Compare Expression Atom" represents an integer load +// that is a constant offset from a base value, e.g. `a` or `o.c` in the example +// at the top. struct BCEAtom { - BCEAtom() : GEP(nullptr), LoadI(nullptr), Offset() {} + BCEAtom() = default; + BCEAtom(GetElementPtrInst *GEP, LoadInst *LoadI, int BaseId, APInt Offset) + : GEP(GEP), LoadI(LoadI), BaseId(BaseId), Offset(Offset) {} - const Value *Base() const { return GEP ? GEP->getPointerOperand() : nullptr; } - + // We want to order BCEAtoms by (Base, Offset). However we cannot use + // the pointer values for Base because these are non-deterministic. + // To make sure that the sort order is stable, we first assign to each atom + // base value an index based on its order of appearance in the chain of + // comparisons. We call this index `BaseOrdering`. For example, for: + // b[3] == c[2] && a[1] == d[1] && b[4] == c[3] + // | block 1 | | block 2 | | block 3 | + // b gets assigned index 0 and a index 1, because b appears as LHS in block 1, + // which is before block 2. + // We then sort by (BaseOrdering[LHS.Base()], LHS.Offset), which is stable. bool operator<(const BCEAtom &O) const { - assert(Base() && "invalid atom"); - assert(O.Base() && "invalid atom"); - // Just ordering by (Base(), Offset) is sufficient. However because this - // means that the ordering will depend on the addresses of the base - // values, which are not reproducible from run to run. To guarantee - // stability, we use the names of the values if they exist; we sort by: - // (Base.getName(), Base(), Offset). - const int NameCmp = Base()->getName().compare(O.Base()->getName()); - if (NameCmp == 0) { - if (Base() == O.Base()) { - return Offset.slt(O.Offset); - } - return Base() < O.Base(); - } - return NameCmp < 0; + return BaseId != O.BaseId ? BaseId < O.BaseId : Offset.slt(O.Offset); } - GetElementPtrInst *GEP; - LoadInst *LoadI; + GetElementPtrInst *GEP = nullptr; + LoadInst *LoadI = nullptr; + unsigned BaseId = 0; APInt Offset; }; +// A class that assigns increasing ids to values in the order in which they are +// seen. See comment in `BCEAtom::operator<()``. +class BaseIdentifier { +public: + // Returns the id for value `Base`, after assigning one if `Base` has not been + // seen before. + int getBaseId(const Value *Base) { + assert(Base && "invalid base"); + const auto Insertion = BaseToIndex.try_emplace(Base, Order); + if (Insertion.second) + ++Order; + return Insertion.first->second; + } + +private: + unsigned Order = 1; + DenseMap BaseToIndex; +}; + // If this value is a load from a constant offset w.r.t. a base address, and // there are no other users of the load or address, returns the base address and // the offset. -BCEAtom visitICmpLoadOperand(Value *const Val) { - BCEAtom Result; - if (auto *const LoadI = dyn_cast(Val)) { - LLVM_DEBUG(dbgs() << "load\n"); - if (LoadI->isUsedOutsideOfBlock(LoadI->getParent())) { - LLVM_DEBUG(dbgs() << "used outside of block\n"); - return {}; - } - // Do not optimize atomic loads to non-atomic memcmp - if (!LoadI->isSimple()) { - LLVM_DEBUG(dbgs() << "volatile or atomic\n"); - return {}; - } - Value *const Addr = LoadI->getOperand(0); - if (auto *const GEP = dyn_cast(Addr)) { - LLVM_DEBUG(dbgs() << "GEP\n"); - if (GEP->isUsedOutsideOfBlock(LoadI->getParent())) { - LLVM_DEBUG(dbgs() << "used outside of block\n"); - return {}; - } - const auto &DL = GEP->getModule()->getDataLayout(); - if (!isDereferenceablePointer(GEP, DL)) { - LLVM_DEBUG(dbgs() << "not dereferenceable\n"); - // We need to make sure that we can do comparison in any order, so we - // require memory to be unconditionnally dereferencable. - return {}; - } - Result.Offset = APInt(DL.getPointerTypeSizeInBits(GEP->getType()), 0); - if (GEP->accumulateConstantOffset(DL, Result.Offset)) { - Result.GEP = GEP; - Result.LoadI = LoadI; - } - } +BCEAtom visitICmpLoadOperand(Value *const Val, BaseIdentifier &BaseId) { + auto *const LoadI = dyn_cast(Val); + if (!LoadI) + return {}; + LLVM_DEBUG(dbgs() << "load\n"); + if (LoadI->isUsedOutsideOfBlock(LoadI->getParent())) { + LLVM_DEBUG(dbgs() << "used outside of block\n"); + return {}; } - return Result; + // Do not optimize atomic loads to non-atomic memcmp + if (!LoadI->isSimple()) { + LLVM_DEBUG(dbgs() << "volatile or atomic\n"); + return {}; + } + Value *const Addr = LoadI->getOperand(0); + auto *const GEP = dyn_cast(Addr); + if (!GEP) + return {}; + LLVM_DEBUG(dbgs() << "GEP\n"); + if (GEP->isUsedOutsideOfBlock(LoadI->getParent())) { + LLVM_DEBUG(dbgs() << "used outside of block\n"); + return {}; + } + const auto &DL = GEP->getModule()->getDataLayout(); + if (!isDereferenceablePointer(GEP, DL)) { + LLVM_DEBUG(dbgs() << "not dereferenceable\n"); + // We need to make sure that we can do comparison in any order, so we + // require memory to be unconditionnally dereferencable. + return {}; + } + APInt Offset = APInt(DL.getPointerTypeSizeInBits(GEP->getType()), 0); + if (!GEP->accumulateConstantOffset(DL, Offset)) + return {}; + return BCEAtom(GEP, LoadI, BaseId.getBaseId(GEP->getPointerOperand()), + Offset); } -// A basic block with a comparison between two BCE atoms. +// A basic block with a comparison between two BCE atoms, e.g. `a == o.a` in the +// example at the top. // The block might do extra work besides the atom comparison, in which case // doesOtherWork() returns true. Under some conditions, the block can be // split into the atom comparison part and the "other work" part @@ -137,9 +176,7 @@ class BCECmpBlock { if (Rhs_ < Lhs_) std::swap(Rhs_, Lhs_); } - bool IsValid() const { - return Lhs_.Base() != nullptr && Rhs_.Base() != nullptr; - } + bool IsValid() const { return Lhs_.BaseId != 0 && Rhs_.BaseId != 0; } // Assert the block is consistent: If valid, it should also have // non-null members besides Lhs_ and Rhs_. @@ -265,7 +302,8 @@ bool BCECmpBlock::doesOtherWork() const { // Visit the given comparison. If this is a comparison between two valid // BCE atoms, returns the comparison. BCECmpBlock visitICmp(const ICmpInst *const CmpI, - const ICmpInst::Predicate ExpectedPredicate) { + const ICmpInst::Predicate ExpectedPredicate, + BaseIdentifier &BaseId) { // The comparison can only be used once: // - For intermediate blocks, as a branch condition. // - For the final block, as an incoming value for the Phi. @@ -275,25 +313,27 @@ BCECmpBlock visitICmp(const ICmpInst *const CmpI, LLVM_DEBUG(dbgs() << "cmp has several uses\n"); return {}; } - if (CmpI->getPredicate() == ExpectedPredicate) { - LLVM_DEBUG(dbgs() << "cmp " - << (ExpectedPredicate == ICmpInst::ICMP_EQ ? "eq" : "ne") - << "\n"); - auto Lhs = visitICmpLoadOperand(CmpI->getOperand(0)); - if (!Lhs.Base()) return {}; - auto Rhs = visitICmpLoadOperand(CmpI->getOperand(1)); - if (!Rhs.Base()) return {}; - const auto &DL = CmpI->getModule()->getDataLayout(); - return BCECmpBlock(std::move(Lhs), std::move(Rhs), - DL.getTypeSizeInBits(CmpI->getOperand(0)->getType())); - } - return {}; + if (CmpI->getPredicate() != ExpectedPredicate) + return {}; + LLVM_DEBUG(dbgs() << "cmp " + << (ExpectedPredicate == ICmpInst::ICMP_EQ ? "eq" : "ne") + << "\n"); + auto Lhs = visitICmpLoadOperand(CmpI->getOperand(0), BaseId); + if (!Lhs.BaseId) + return {}; + auto Rhs = visitICmpLoadOperand(CmpI->getOperand(1), BaseId); + if (!Rhs.BaseId) + return {}; + const auto &DL = CmpI->getModule()->getDataLayout(); + return BCECmpBlock(std::move(Lhs), std::move(Rhs), + DL.getTypeSizeInBits(CmpI->getOperand(0)->getType())); } // Visit the given comparison block. If this is a comparison between two valid // BCE atoms, returns the comparison. BCECmpBlock visitCmpBlock(Value *const Val, BasicBlock *const Block, - const BasicBlock *const PhiBlock) { + const BasicBlock *const PhiBlock, + BaseIdentifier &BaseId) { if (Block->empty()) return {}; auto *const BranchI = dyn_cast(Block->getTerminator()); if (!BranchI) return {}; @@ -306,7 +346,7 @@ BCECmpBlock visitCmpBlock(Value *const Val, BasicBlock auto *const CmpI = dyn_cast(Val); if (!CmpI) return {}; LLVM_DEBUG(dbgs() << "icmp\n"); - auto Result = visitICmp(CmpI, ICmpInst::ICMP_EQ); + auto Result = visitICmp(CmpI, ICmpInst::ICMP_EQ, BaseId); Result.CmpI = CmpI; Result.BranchI = BranchI; return Result; @@ -323,7 +363,8 @@ BCECmpBlock visitCmpBlock(Value *const Val, BasicBlock assert(BranchI->getNumSuccessors() == 2 && "expecting a cond branch"); BasicBlock *const FalseBlock = BranchI->getSuccessor(1); auto Result = visitICmp( - CmpI, FalseBlock == PhiBlock ? ICmpInst::ICMP_EQ : ICmpInst::ICMP_NE); + CmpI, FalseBlock == PhiBlock ? ICmpInst::ICMP_EQ : ICmpInst::ICMP_NE, + BaseId); Result.CmpI = CmpI; Result.BranchI = BranchI; return Result; @@ -335,9 +376,9 @@ static inline void enqueueBlock(std::vectorgetName() << "': Found cmp of " << Comparison.SizeBits() - << " bits between " << Comparison.Lhs().Base() << " + " + << " bits between " << Comparison.Lhs().BaseId << " + " << Comparison.Lhs().Offset << " and " - << Comparison.Rhs().Base() << " + " + << Comparison.Rhs().BaseId << " + " << Comparison.Rhs().Offset << "\n"); LLVM_DEBUG(dbgs() << "\n"); Comparisons.push_back(Comparison); @@ -360,8 +401,8 @@ class BCECmpChain { private: static bool IsContiguous(const BCECmpBlock &First, const BCECmpBlock &Second) { - return First.Lhs().Base() == Second.Lhs().Base() && - First.Rhs().Base() == Second.Rhs().Base() && + return First.Lhs().BaseId == Second.Lhs().BaseId && + First.Rhs().BaseId == Second.Rhs().BaseId && First.Lhs().Offset + First.SizeBits() / 8 == Second.Lhs().Offset && First.Rhs().Offset + First.SizeBits() / 8 == Second.Rhs().Offset; } @@ -385,11 +426,12 @@ BCECmpChain::BCECmpChain(const std::vector Comparisons; + BaseIdentifier BaseId; for (size_t BlockIdx = 0; BlockIdx < Blocks.size(); ++BlockIdx) { BasicBlock *const Block = Blocks[BlockIdx]; assert(Block && "invalid block"); BCECmpBlock Comparison = visitCmpBlock(Phi.getIncomingValueForBlock(Block), - Block, Phi.getParent()); + Block, Phi.getParent(), BaseId); Comparison.BB = Block; if (!Comparison.IsValid()) { LLVM_DEBUG(dbgs() << "chain with invalid BCECmpBlock, no merge.\n"); @@ -466,9 +508,10 @@ BCECmpChain::BCECmpChain(const std::vector arg_range; Modified: projects/clang800-import/contrib/llvm/tools/clang/lib/CodeGen/CGDecl.cpp ============================================================================== --- projects/clang800-import/contrib/llvm/tools/clang/lib/CodeGen/CGDecl.cpp Mon Feb 25 19:14:16 2019 (r344547) +++ projects/clang800-import/contrib/llvm/tools/clang/lib/CodeGen/CGDecl.cpp Mon Feb 25 19:17:20 2019 (r344548) @@ -1620,8 +1620,9 @@ void CodeGenFunction::EmitAutoVarInit(const AutoVarEmi bool capturedByInit = Init && emission.IsEscapingByRef && isCapturedBy(D, Init); - Address Loc = - capturedByInit ? emission.Addr : emission.getObjectAddress(*this); + bool locIsByrefHeader = !capturedByInit; + const Address Loc = + locIsByrefHeader ? emission.getObjectAddress(*this) : emission.Addr; // Note: constexpr already initializes everything correctly. LangOptions::TrivialAutoVarInitKind trivialAutoVarInit = @@ -1637,7 +1638,7 @@ void CodeGenFunction::EmitAutoVarInit(const AutoVarEmi return; // Only initialize a __block's storage: we always initialize the header. - if (emission.IsEscapingByRef) + if (emission.IsEscapingByRef && !locIsByrefHeader) Loc = emitBlockByrefAddress(Loc, &D, /*follow=*/false); CharUnits Size = getContext().getTypeSizeInChars(type); @@ -1745,10 +1746,9 @@ void CodeGenFunction::EmitAutoVarInit(const AutoVarEmi } llvm::Type *BP = CGM.Int8Ty->getPointerTo(Loc.getAddressSpace()); - if (Loc.getType() != BP) - Loc = Builder.CreateBitCast(Loc, BP); - - emitStoresForConstant(CGM, D, Loc, isVolatile, Builder, constant); + emitStoresForConstant( + CGM, D, (Loc.getType() == BP) ? Loc : Builder.CreateBitCast(Loc, BP), + isVolatile, Builder, constant); } /// Emit an expression as an initializer for an object (variable, field, etc.) Modified: projects/clang800-import/contrib/llvm/tools/clang/lib/Frontend/TextDiagnostic.cpp ============================================================================== --- projects/clang800-import/contrib/llvm/tools/clang/lib/Frontend/TextDiagnostic.cpp Mon Feb 25 19:14:16 2019 (r344547) +++ projects/clang800-import/contrib/llvm/tools/clang/lib/Frontend/TextDiagnostic.cpp Mon Feb 25 19:17:20 2019 (r344548) @@ -838,7 +838,7 @@ void TextDiagnostic::emitDiagnosticLoc(FullSourceLoc L if (LangOpts.MSCompatibilityVersion && !LangOpts.isCompatibleWithMSVC(LangOptions::MSVC2015)) OS << ' '; - OS << ": "; + OS << ':'; break; } Modified: projects/clang800-import/contrib/llvm/tools/clang/lib/Sema/SemaExpr.cpp ============================================================================== --- projects/clang800-import/contrib/llvm/tools/clang/lib/Sema/SemaExpr.cpp Mon Feb 25 19:14:16 2019 (r344547) +++ projects/clang800-import/contrib/llvm/tools/clang/lib/Sema/SemaExpr.cpp Mon Feb 25 19:17:20 2019 (r344548) @@ -5676,18 +5676,36 @@ ExprResult Sema::BuildResolvedCallExpr(Expr *Fn, Named } if (!getLangOpts().CPlusPlus) { + // Forget about the nulled arguments since typo correction + // do not handle them well. + TheCall->shrinkNumArgs(Args.size()); // C cannot always handle TypoExpr nodes in builtin calls and direct // function calls as their argument checking don't necessarily handle // dependent types properly, so make sure any TypoExprs have been // dealt with. ExprResult Result = CorrectDelayedTyposInExpr(TheCall); if (!Result.isUsable()) return ExprError(); + CallExpr *TheOldCall = TheCall; TheCall = dyn_cast(Result.get()); + bool CorrectedTypos = TheCall != TheOldCall; if (!TheCall) return Result; - // TheCall at this point has max(Args.size(), NumParams) arguments, - // with extra arguments nulled. We don't want to introduce nulled - // arguments in Args and so we only take the first Args.size() arguments. - Args = llvm::makeArrayRef(TheCall->getArgs(), Args.size()); + Args = llvm::makeArrayRef(TheCall->getArgs(), TheCall->getNumArgs()); + + // A new call expression node was created if some typos were corrected. + // However it may not have been constructed with enough storage. In this + // case, rebuild the node with enough storage. The waste of space is + // immaterial since this only happens when some typos were corrected. + if (CorrectedTypos && Args.size() < NumParams) { + if (Config) + TheCall = CUDAKernelCallExpr::Create( + Context, Fn, cast(Config), Args, ResultTy, VK_RValue, + RParenLoc, NumParams); + else + TheCall = CallExpr::Create(Context, Fn, Args, ResultTy, VK_RValue, + RParenLoc, NumParams, UsesADL); + } + // We can now handle the nulled arguments for the default arguments. + TheCall->setNumArgsUnsafe(std::max(Args.size(), NumParams)); } // Bail out early if calling a builtin with custom type checking. Modified: projects/clang800-import/contrib/llvm/tools/lld/ELF/Options.td ============================================================================== --- projects/clang800-import/contrib/llvm/tools/lld/ELF/Options.td Mon Feb 25 19:14:16 2019 (r344547) +++ projects/clang800-import/contrib/llvm/tools/lld/ELF/Options.td Mon Feb 25 19:17:20 2019 (r344548) @@ -30,7 +30,7 @@ def Bstatic: F<"Bstatic">, HelpText<"Do not link again def build_id: F<"build-id">, HelpText<"Alias for --build-id=fast">; def build_id_eq: J<"build-id=">, HelpText<"Generate build ID note">, - MetaVarName<"[fast,md5,sha,uuid,0x]">; + MetaVarName<"[fast,md5,sha1,uuid,0x]">; defm check_sections: B<"check-sections", "Check section addresses for overlaps (default)", Modified: projects/clang800-import/contrib/llvm/tools/lld/docs/ReleaseNotes.rst ============================================================================== --- projects/clang800-import/contrib/llvm/tools/lld/docs/ReleaseNotes.rst Mon Feb 25 19:14:16 2019 (r344547) +++ projects/clang800-import/contrib/llvm/tools/lld/docs/ReleaseNotes.rst Mon Feb 25 19:17:20 2019 (r344548) @@ -5,11 +5,6 @@ lld 8.0.0 Release Notes .. contents:: :local: -.. warning:: - These are in-progress notes for the upcoming LLVM 8.0.0 release. - Release notes for previous releases can be found on - `the Download Page `_. - Introduction ============ @@ -18,7 +13,7 @@ Mach-O (macOS), MinGW and WebAssembly. lld is command- GNU linkers and Microsoft link.exe and is significantly faster than the system default linkers. -nlld 8.0.0 has lots of feature improvements and bug fixes. +lld 8.0.0 has lots of feature improvements and bug fixes. Non-comprehensive list of changes in this release ================================================= Modified: projects/clang800-import/contrib/llvm/tools/lldb/source/Host/common/MainLoop.cpp ============================================================================== --- projects/clang800-import/contrib/llvm/tools/lldb/source/Host/common/MainLoop.cpp Mon Feb 25 19:14:16 2019 (r344547) +++ projects/clang800-import/contrib/llvm/tools/lldb/source/Host/common/MainLoop.cpp Mon Feb 25 19:17:20 2019 (r344548) @@ -108,8 +108,14 @@ Status MainLoop::RunImpl::Poll() { num_events = kevent(loop.m_kqueue, in_events.data(), in_events.size(), out_events, llvm::array_lengthof(out_events), nullptr); - if (num_events < 0) - return Status("kevent() failed with error %d\n", num_events); + if (num_events < 0) { + if (errno == EINTR) { + // in case of EINTR, let the main loop run one iteration + // we need to zero num_events to avoid assertions failing + num_events = 0; + } else + return Status(errno, eErrorTypePOSIX); + } return Status(); } Modified: projects/clang800-import/contrib/llvm/tools/lldb/source/Host/openbsd/Host.cpp ============================================================================== --- projects/clang800-import/contrib/llvm/tools/lldb/source/Host/openbsd/Host.cpp Mon Feb 25 19:14:16 2019 (r344547) +++ projects/clang800-import/contrib/llvm/tools/lldb/source/Host/openbsd/Host.cpp Mon Feb 25 19:17:20 2019 (r344548) @@ -68,8 +68,7 @@ GetOpenBSDProcessArgs(const ProcessInstanceInfoMatch * cstr = data.GetCStr(&offset); if (cstr) { - process_info.GetExecutableFile().SetFile(cstr, false, - FileSpec::Style::native); + process_info.GetExecutableFile().SetFile(cstr, FileSpec::Style::native); if (!(match_info_ptr == NULL || NameMatches( Modified: projects/clang800-import/lib/clang/include/clang/Basic/Version.inc ============================================================================== --- projects/clang800-import/lib/clang/include/clang/Basic/Version.inc Mon Feb 25 19:14:16 2019 (r344547) +++ projects/clang800-import/lib/clang/include/clang/Basic/Version.inc Mon Feb 25 19:17:20 2019 (r344548) @@ -8,4 +8,4 @@ #define CLANG_VENDOR "FreeBSD " -#define SVN_REVISION "354130" +#define SVN_REVISION "354799" Modified: projects/clang800-import/lib/clang/include/lld/Common/Version.inc ============================================================================== --- projects/clang800-import/lib/clang/include/lld/Common/Version.inc Mon Feb 25 19:14:16 2019 (r344547) +++ projects/clang800-import/lib/clang/include/lld/Common/Version.inc Mon Feb 25 19:17:20 2019 (r344548) @@ -7,4 +7,4 @@ #define LLD_REPOSITORY_STRING "FreeBSD" // - -#define LLD_REVISION_STRING "354130-1300002" +#define LLD_REVISION_STRING "354799-1300002" Modified: projects/clang800-import/lib/clang/include/llvm/Support/VCSRevision.h ============================================================================== --- projects/clang800-import/lib/clang/include/llvm/Support/VCSRevision.h Mon Feb 25 19:14:16 2019 (r344547) +++ projects/clang800-import/lib/clang/include/llvm/Support/VCSRevision.h Mon Feb 25 19:17:20 2019 (r344548) @@ -1,2 +1,2 @@ /* $FreeBSD$ */ -#define LLVM_REVISION "svn-r354130" +#define LLVM_REVISION "svn-r354799" From owner-svn-src-projects@freebsd.org Mon Feb 25 19:18:36 2019 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E65C61513720 for ; Mon, 25 Feb 2019 19:18:35 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8ED8175AE1; Mon, 25 Feb 2019 19:18:35 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7FEE0215B6; Mon, 25 Feb 2019 19:18:35 +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 x1PJIZZ6046579; Mon, 25 Feb 2019 19:18:35 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x1PJIWfY046564; Mon, 25 Feb 2019 19:18:32 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201902251918.x1PJIWfY046564@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Mon, 25 Feb 2019 19:18:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r344549 - in projects/clang800-import: . cddl/contrib/opensolaris/tools/ctf/cvt contrib/openpam contrib/openpam/bin contrib/openpam/bin/openpam_dump_policy contrib/openpam/bin/pamtest c... X-SVN-Group: projects X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in projects/clang800-import: . cddl/contrib/opensolaris/tools/ctf/cvt contrib/openpam contrib/openpam/bin contrib/openpam/bin/openpam_dump_policy contrib/openpam/bin/pamtest contrib/openpam/bin/su con... X-SVN-Commit-Revision: 344549 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 8ED8175AE1 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.98 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.98)[-0.978,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Feb 2019 19:18:36 -0000 Author: dim Date: Mon Feb 25 19:18:32 2019 New Revision: 344549 URL: https://svnweb.freebsd.org/changeset/base/344549 Log: Merge ^/head r344513 through r344548. Added: projects/clang800-import/contrib/openpam/m4/ax_pkg_config.m4 - copied unchanged from r344548, head/contrib/openpam/m4/ax_pkg_config.m4 projects/clang800-import/contrib/openpam/t/t_pam_env.c - copied unchanged from r344548, head/contrib/openpam/t/t_pam_env.c projects/clang800-import/contrib/openpam/t/t_pam_err.c - copied unchanged from r344548, head/contrib/openpam/t/t_pam_err.c projects/clang800-import/contrib/openpam/t/t_pam_err.h - copied unchanged from r344548, head/contrib/openpam/t/t_pam_err.h Modified: projects/clang800-import/ObsoleteFiles.inc projects/clang800-import/cddl/contrib/opensolaris/tools/ctf/cvt/dwarf.c projects/clang800-import/contrib/openpam/CREDITS projects/clang800-import/contrib/openpam/HISTORY projects/clang800-import/contrib/openpam/LICENSE projects/clang800-import/contrib/openpam/Makefile.in projects/clang800-import/contrib/openpam/RELNOTES projects/clang800-import/contrib/openpam/aclocal.m4 projects/clang800-import/contrib/openpam/bin/Makefile.in projects/clang800-import/contrib/openpam/bin/openpam_dump_policy/Makefile.in projects/clang800-import/contrib/openpam/bin/pamtest/Makefile.in projects/clang800-import/contrib/openpam/bin/pamtest/pamtest.1 projects/clang800-import/contrib/openpam/bin/su/Makefile.in projects/clang800-import/contrib/openpam/bin/su/su.1 projects/clang800-import/contrib/openpam/compile projects/clang800-import/contrib/openpam/config.h.in projects/clang800-import/contrib/openpam/config.sub projects/clang800-import/contrib/openpam/configure projects/clang800-import/contrib/openpam/configure.ac projects/clang800-import/contrib/openpam/depcomp projects/clang800-import/contrib/openpam/doc/Makefile.in projects/clang800-import/contrib/openpam/doc/man/Makefile.in projects/clang800-import/contrib/openpam/doc/man/openpam.3 projects/clang800-import/contrib/openpam/doc/man/openpam_borrow_cred.3 projects/clang800-import/contrib/openpam/doc/man/openpam_free_data.3 projects/clang800-import/contrib/openpam/doc/man/openpam_free_envlist.3 projects/clang800-import/contrib/openpam/doc/man/openpam_get_feature.3 projects/clang800-import/contrib/openpam/doc/man/openpam_get_option.3 projects/clang800-import/contrib/openpam/doc/man/openpam_log.3 projects/clang800-import/contrib/openpam/doc/man/openpam_nullconv.3 projects/clang800-import/contrib/openpam/doc/man/openpam_readline.3 projects/clang800-import/contrib/openpam/doc/man/openpam_readlinev.3 projects/clang800-import/contrib/openpam/doc/man/openpam_readword.3 projects/clang800-import/contrib/openpam/doc/man/openpam_restore_cred.3 projects/clang800-import/contrib/openpam/doc/man/openpam_set_feature.3 projects/clang800-import/contrib/openpam/doc/man/openpam_set_option.3 projects/clang800-import/contrib/openpam/doc/man/openpam_straddch.3 projects/clang800-import/contrib/openpam/doc/man/openpam_subst.3 projects/clang800-import/contrib/openpam/doc/man/openpam_ttyconv.3 projects/clang800-import/contrib/openpam/doc/man/pam.3 projects/clang800-import/contrib/openpam/doc/man/pam.conf.5 projects/clang800-import/contrib/openpam/doc/man/pam_acct_mgmt.3 projects/clang800-import/contrib/openpam/doc/man/pam_authenticate.3 projects/clang800-import/contrib/openpam/doc/man/pam_chauthtok.3 projects/clang800-import/contrib/openpam/doc/man/pam_close_session.3 projects/clang800-import/contrib/openpam/doc/man/pam_conv.3 projects/clang800-import/contrib/openpam/doc/man/pam_end.3 projects/clang800-import/contrib/openpam/doc/man/pam_error.3 projects/clang800-import/contrib/openpam/doc/man/pam_get_authtok.3 projects/clang800-import/contrib/openpam/doc/man/pam_get_data.3 projects/clang800-import/contrib/openpam/doc/man/pam_get_item.3 projects/clang800-import/contrib/openpam/doc/man/pam_get_user.3 projects/clang800-import/contrib/openpam/doc/man/pam_getenv.3 projects/clang800-import/contrib/openpam/doc/man/pam_getenvlist.3 projects/clang800-import/contrib/openpam/doc/man/pam_info.3 projects/clang800-import/contrib/openpam/doc/man/pam_open_session.3 projects/clang800-import/contrib/openpam/doc/man/pam_prompt.3 projects/clang800-import/contrib/openpam/doc/man/pam_putenv.3 projects/clang800-import/contrib/openpam/doc/man/pam_set_data.3 projects/clang800-import/contrib/openpam/doc/man/pam_set_item.3 projects/clang800-import/contrib/openpam/doc/man/pam_setcred.3 projects/clang800-import/contrib/openpam/doc/man/pam_setenv.3 projects/clang800-import/contrib/openpam/doc/man/pam_sm_acct_mgmt.3 projects/clang800-import/contrib/openpam/doc/man/pam_sm_authenticate.3 projects/clang800-import/contrib/openpam/doc/man/pam_sm_chauthtok.3 projects/clang800-import/contrib/openpam/doc/man/pam_sm_close_session.3 projects/clang800-import/contrib/openpam/doc/man/pam_sm_open_session.3 projects/clang800-import/contrib/openpam/doc/man/pam_sm_setcred.3 projects/clang800-import/contrib/openpam/doc/man/pam_start.3 projects/clang800-import/contrib/openpam/doc/man/pam_strerror.3 projects/clang800-import/contrib/openpam/doc/man/pam_verror.3 projects/clang800-import/contrib/openpam/doc/man/pam_vinfo.3 projects/clang800-import/contrib/openpam/doc/man/pam_vprompt.3 projects/clang800-import/contrib/openpam/include/Makefile.in projects/clang800-import/contrib/openpam/include/security/Makefile.in projects/clang800-import/contrib/openpam/include/security/openpam_version.h projects/clang800-import/contrib/openpam/install-sh projects/clang800-import/contrib/openpam/lib/Makefile.in projects/clang800-import/contrib/openpam/lib/libpam/Makefile.in projects/clang800-import/contrib/openpam/lib/libpam/pam_getenv.c projects/clang800-import/contrib/openpam/misc/Makefile.in projects/clang800-import/contrib/openpam/missing projects/clang800-import/contrib/openpam/modules/Makefile.in projects/clang800-import/contrib/openpam/modules/pam_deny/Makefile.in projects/clang800-import/contrib/openpam/modules/pam_permit/Makefile.in projects/clang800-import/contrib/openpam/modules/pam_return/Makefile.in projects/clang800-import/contrib/openpam/modules/pam_unix/Makefile.in projects/clang800-import/contrib/openpam/t/Makefile.am projects/clang800-import/contrib/openpam/t/Makefile.in projects/clang800-import/contrib/openpam/test-driver projects/clang800-import/lib/libifconfig/Makefile projects/clang800-import/share/man/man9/sysctl.9 projects/clang800-import/share/mk/bsd.libnames.mk projects/clang800-import/share/mk/src.libnames.mk projects/clang800-import/sys/arm64/rockchip/clk/rk_clk_composite.c projects/clang800-import/sys/dev/cxgbe/common/t4_hw.c projects/clang800-import/sys/dev/cxgbe/firmware/t4fw_cfg.txt projects/clang800-import/sys/dev/cxgbe/firmware/t5fw_cfg.txt projects/clang800-import/sys/dev/cxgbe/firmware/t5fw_cfg_hashfilter.txt projects/clang800-import/sys/dev/cxgbe/firmware/t6fw_cfg.txt projects/clang800-import/sys/dev/cxgbe/firmware/t6fw_cfg_hashfilter.txt projects/clang800-import/sys/dev/flash/at45d.c projects/clang800-import/sys/dev/flash/mx25l.c projects/clang800-import/sys/kern/kern_kcov.c projects/clang800-import/sys/opencrypto/cbc_mac.c projects/clang800-import/usr.sbin/wlandebug/Makefile Directory Properties: projects/clang800-import/ (props changed) projects/clang800-import/cddl/ (props changed) projects/clang800-import/cddl/contrib/opensolaris/ (props changed) projects/clang800-import/contrib/openpam/ (props changed) Modified: projects/clang800-import/ObsoleteFiles.inc ============================================================================== --- projects/clang800-import/ObsoleteFiles.inc Mon Feb 25 19:17:20 2019 (r344548) +++ projects/clang800-import/ObsoleteFiles.inc Mon Feb 25 19:18:32 2019 (r344549) @@ -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 +# 20190222: libifconfig made INTERNALLIB +OLD_FILES+=/usr/lib/libprivateifconfig.a +OLD_FILES+=/usr/lib/libprivateifconfig_p.a # 20190131: pfil(9) changed OLD_FILES+=usr/share/man/man9/pfil_hook_get.9 OLD_FILES+=usr/share/man/man9/pfil_rlock.9 Modified: projects/clang800-import/cddl/contrib/opensolaris/tools/ctf/cvt/dwarf.c ============================================================================== --- projects/clang800-import/cddl/contrib/opensolaris/tools/ctf/cvt/dwarf.c Mon Feb 25 19:17:20 2019 (r344548) +++ projects/clang800-import/cddl/contrib/opensolaris/tools/ctf/cvt/dwarf.c Mon Feb 25 19:18:32 2019 (r344549) @@ -1268,7 +1268,7 @@ die_funcptr_create(dwarf_t *dw, Dwarf_Die die, Dwarf_O static intr_t * die_base_name_parse(const char *name, char **newp) { - char buf[100]; + char buf[256]; char const *base; char *c; int nlong = 0, nshort = 0, nchar = 0, nint = 0; Modified: projects/clang800-import/contrib/openpam/CREDITS ============================================================================== --- projects/clang800-import/contrib/openpam/CREDITS Mon Feb 25 19:17:20 2019 (r344548) +++ projects/clang800-import/contrib/openpam/CREDITS Mon Feb 25 19:18:32 2019 (r344549) @@ -49,5 +49,6 @@ ideas: Sebastian Krahmer Solar Designer Takanori Saneto + Tim Creech Wojciech A. Koszek Yar Tikhiy Modified: projects/clang800-import/contrib/openpam/HISTORY ============================================================================== --- projects/clang800-import/contrib/openpam/HISTORY Mon Feb 25 19:17:20 2019 (r344548) +++ projects/clang800-import/contrib/openpam/HISTORY Mon Feb 25 19:18:32 2019 (r344549) @@ -1,3 +1,10 @@ +OpenPAM Tabebuia 2019-02-24 + + - BUGFIX: Fix off-by-one bug in pam_getenv(3) which was introduced in + OpenPAM Radula. + + - ENHANCE: Add unit tests for pam_{get,put,set}env(3). +============================================================================ OpenPAM Resedacea 2017-04-30 - BUGFIX: Reinstore the NULL check in pam_end(3) which was removed in @@ -5,7 +12,7 @@ OpenPAM Resedacea 2017-04-30 - BUGFIX: Return PAM_SYMBOL_ERR instead of PAM_SYSTEM_ERR from the dispatcher when the required service function could not be found. - + - ENHANCE: Introduce the PAM_BAD_HANDLE error code for when pamh is NULL in API functions that have a NULL check. Modified: projects/clang800-import/contrib/openpam/LICENSE ============================================================================== --- projects/clang800-import/contrib/openpam/LICENSE Mon Feb 25 19:17:20 2019 (r344548) +++ projects/clang800-import/contrib/openpam/LICENSE Mon Feb 25 19:18:32 2019 (r344549) @@ -1,6 +1,6 @@ Copyright (c) 2002-2003 Networks Associates Technology, Inc. -Copyright (c) 2004-2017 Dag-Erling Smørgrav +Copyright (c) 2004-2019 Dag-Erling Smørgrav All rights reserved. This software was developed for the FreeBSD Project by ThinkSec AS and Modified: projects/clang800-import/contrib/openpam/Makefile.in ============================================================================== --- projects/clang800-import/contrib/openpam/Makefile.in Mon Feb 25 19:17:20 2019 (r344548) +++ projects/clang800-import/contrib/openpam/Makefile.in Mon Feb 25 19:18:32 2019 (r344549) @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2014 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -92,10 +92,10 @@ host_triplet = @host@ @WITH_DOC_TRUE@am__append_1 = doc subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pkg_config.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ @@ -140,7 +140,7 @@ am__recursive_targets = \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ - cscope distdir dist dist-all distcheck + cscope distdir distdir-am dist dist-all distcheck am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ $(LISP)config.h.in # Read a list of newline-separated strings from the standard input, @@ -221,9 +221,9 @@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CRYB_TEST_CFLAGS = @CRYB_TEST_CFLAGS@ CRYB_TEST_LIBS = @CRYB_TEST_LIBS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_LIBS = @CRYPT_LIBS@ +CRYB_TEST_VERSION = @CRYB_TEST_VERSION@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ @@ -271,6 +271,9 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ @@ -319,6 +322,7 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgconfigdir = @pkgconfigdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ @@ -367,8 +371,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -512,7 +516,10 @@ distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f cscope.out cscope.in.out cscope.po.out cscope.files -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ @@ -577,7 +584,7 @@ distdir: $(DISTFILES) ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz $(am__post_remove_distdir) dist-bzip2: distdir @@ -603,7 +610,7 @@ dist-shar: distdir @echo WARNING: "Support for shar distribution archives is" \ "deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 - shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz + shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz $(am__post_remove_distdir) dist-zip: distdir @@ -621,7 +628,7 @@ dist dist-all: distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ - GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ + eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lz*) \ @@ -631,7 +638,7 @@ distcheck: dist *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ - GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ + eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac Modified: projects/clang800-import/contrib/openpam/RELNOTES ============================================================================== --- projects/clang800-import/contrib/openpam/RELNOTES Mon Feb 25 19:17:20 2019 (r344548) +++ projects/clang800-import/contrib/openpam/RELNOTES Mon Feb 25 19:18:32 2019 (r344549) @@ -1,6 +1,6 @@ - Release notes for OpenPAM Resedacea - =================================== + Release notes for OpenPAM Tabebuia + ================================== OpenPAM is developed primarily on FreeBSD, but is expected to work on almost any POSIX-like platform that has GNU autotools, GNU make and Modified: projects/clang800-import/contrib/openpam/aclocal.m4 ============================================================================== --- projects/clang800-import/contrib/openpam/aclocal.m4 Mon Feb 25 19:17:20 2019 (r344548) +++ projects/clang800-import/contrib/openpam/aclocal.m4 Mon Feb 25 19:18:32 2019 (r344549) @@ -1,6 +1,6 @@ -# generated automatically by aclocal 1.15 -*- Autoconf -*- +# generated automatically by aclocal 1.16.1 -*- Autoconf -*- -# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -20,7 +20,7 @@ You have another version of autoconf. It may work, bu If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) -# Copyright (C) 2002-2014 Free Software Foundation, Inc. +# Copyright (C) 2002-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -32,10 +32,10 @@ To do so, use the procedure documented by the package, # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], -[am__api_version='1.15' +[am__api_version='1.16' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.15], [], +m4_if([$1], [1.16.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -51,14 +51,14 @@ m4_define([_AM_AUTOCONF_VERSION], []) # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.15])dnl +[AM_AUTOMAKE_VERSION([1.16.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- -# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -110,7 +110,7 @@ am_aux_dir=`cd "$ac_aux_dir" && pwd` # AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997-2014 Free Software Foundation, Inc. +# Copyright (C) 1997-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -141,7 +141,7 @@ AC_CONFIG_COMMANDS_PRE( Usually this means the macro was only invoked conditionally.]]) fi])]) -# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -332,13 +332,12 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl # Generate code to set up dependency tracking. -*- Autoconf -*- -# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. - # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], @@ -346,49 +345,41 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. - case $CONFIG_FILES in - *\'*) eval set x "$CONFIG_FILES" ;; - *) set x $CONFIG_FILES ;; - esac + # TODO: see whether this extra hack can be removed once we start + # requiring Autoconf 2.70 or later. + AS_CASE([$CONFIG_FILES], + [*\'*], [eval set x "$CONFIG_FILES"], + [*], [set x $CONFIG_FILES]) shift - for mf + # Used to flag and report bootstrapping failures. + am_rc=0 + for am_mf do # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named 'Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line + am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile which includes + # dependency-tracking related rules and includes. + # Grep'ing the whole file directly is not great: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`AS_DIRNAME("$mf")` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running 'make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "$am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`AS_DIRNAME(["$file"])` - AS_MKDIR_P([$dirpart/$fdir]) - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done + sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ + || continue + am_dirpart=`AS_DIRNAME(["$am_mf"])` + am_filepart=`AS_BASENAME(["$am_mf"])` + AM_RUN_LOG([cd "$am_dirpart" \ + && sed -e '/# am--include-marker/d' "$am_filepart" \ + | $MAKE -f - am--depfiles]) || am_rc=$? done + if test $am_rc -ne 0; then + AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments + for automatic dependency tracking. Try re-running configure with the + '--disable-dependency-tracking' option to at least be able to build + the package (albeit without support for automatic dependency tracking).]) + fi + AS_UNSET([am_dirpart]) + AS_UNSET([am_filepart]) + AS_UNSET([am_mf]) + AS_UNSET([am_rc]) + rm -f conftest-deps.mk } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS @@ -397,18 +388,17 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # -# This code is only required when automatic dependency tracking -# is enabled. FIXME. This creates each '.P' file that we will -# need in order to bootstrap the dependency handling code. +# This code is only required when automatic dependency tracking is enabled. +# This creates each '.Po' and '.Plo' makefile fragment that we'll need in +# order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], - [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) -]) + [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])]) # Do all the work for Automake. -*- Autoconf -*- -# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -495,8 +485,8 @@ AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: -# -# +# +# AC_SUBST([mkdir_p], ['$(MKDIR_P)']) # We need awk for the "check" target (and possibly the TAP driver). The # system "awk" is bad on some platforms. @@ -563,7 +553,7 @@ END Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: . +that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM @@ -605,7 +595,7 @@ for _am_header in $config_headers :; do done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) -# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -626,7 +616,7 @@ if test x"${install_sh+set}" != xset; then fi AC_SUBST([install_sh])]) -# Copyright (C) 2003-2014 Free Software Foundation, Inc. +# Copyright (C) 2003-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -647,7 +637,7 @@ AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- -# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -655,49 +645,42 @@ AC_SUBST([am__leading_dot])]) # AM_MAKE_INCLUDE() # ----------------- -# Check to see how make treats includes. +# Check whether make has an 'include' directive that can support all +# the idioms we need for our automatic dependency tracking code. AC_DEFUN([AM_MAKE_INCLUDE], -[am_make=${MAKE-make} -cat > confinc << 'END' +[AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive]) +cat > confinc.mk << 'END' am__doit: - @echo this is the am__doit target + @echo this is the am__doit target >confinc.out .PHONY: am__doit END -# If we don't find an include directive, just comment out the code. -AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# Ignore all kinds of additional output from 'make'. -case `$am_make -s -f confmf 2> /dev/null` in #( -*the\ am__doit\ target*) - am__include=include - am__quote= - _am_result=GNU - ;; -esac -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - case `$am_make -s -f confmf 2> /dev/null` in #( - *the\ am__doit\ target*) - am__include=.include - am__quote="\"" - _am_result=BSD - ;; - esac -fi -AC_SUBST([am__include]) -AC_SUBST([am__quote]) -AC_MSG_RESULT([$_am_result]) -rm -f confinc confmf -]) +# BSD make does it like this. +echo '.include "confinc.mk" # ignored' > confmf.BSD +# Other make implementations (GNU, Solaris 10, AIX) do it like this. +echo 'include confinc.mk # ignored' > confmf.GNU +_am_result=no +for s in GNU BSD; do + AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out]) + AS_CASE([$?:`cat confinc.out 2>/dev/null`], + ['0:this is the am__doit target'], + [AS_CASE([$s], + [BSD], [am__include='.include' am__quote='"'], + [am__include='include' am__quote=''])]) + if test "$am__include" != "#"; then + _am_result="yes ($s style)" + break + fi +done +rm -f confinc.* confmf.* +AC_MSG_RESULT([${_am_result}]) +AC_SUBST([am__include])]) +AC_SUBST([am__quote])]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- -# Copyright (C) 1997-2014 Free Software Foundation, Inc. +# Copyright (C) 1997-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -738,7 +721,7 @@ fi # Obsolete and "removed" macros, that must however still report explicit # error messages when used, to smooth transition. # -# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -765,7 +748,7 @@ AU_DEFUN([fp_C_PROTOTYPES], [AM_C_PROTOTYPES]) # Helper functions for option handling. -*- Autoconf -*- -# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -794,7 +777,7 @@ AC_DEFUN([_AM_SET_OPTIONS], AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) -# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -841,7 +824,7 @@ AC_LANG_POP([C])]) # For backward compatibility. AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) -# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -860,7 +843,7 @@ AC_DEFUN([AM_RUN_LOG], # Check to make sure that the build environment is sane. -*- Autoconf -*- -# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -941,7 +924,7 @@ AC_CONFIG_COMMANDS_PRE( rm -f conftest.file ]) -# Copyright (C) 2009-2014 Free Software Foundation, Inc. +# Copyright (C) 2009-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1001,7 +984,7 @@ AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) -# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1029,7 +1012,7 @@ fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) -# Copyright (C) 2006-2014 Free Software Foundation, Inc. +# Copyright (C) 2006-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1048,7 +1031,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- -# Copyright (C) 2004-2014 Free Software Foundation, Inc. +# Copyright (C) 2004-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1179,6 +1162,7 @@ AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR +m4_include([m4/ax_pkg_config.m4]) m4_include([m4/libtool.m4]) m4_include([m4/ltoptions.m4]) m4_include([m4/ltsugar.m4]) Modified: projects/clang800-import/contrib/openpam/bin/Makefile.in ============================================================================== --- projects/clang800-import/contrib/openpam/bin/Makefile.in Mon Feb 25 19:17:20 2019 (r344548) +++ projects/clang800-import/contrib/openpam/bin/Makefile.in Mon Feb 25 19:18:32 2019 (r344549) @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2014 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -93,10 +93,10 @@ host_triplet = @host@ @WITH_SU_TRUE@am__append_2 = su subdir = bin ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pkg_config.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) @@ -138,7 +138,7 @@ am__recursive_targets = \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ - distdir + distdir distdir-am am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is @@ -199,9 +199,9 @@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CRYB_TEST_CFLAGS = @CRYB_TEST_CFLAGS@ CRYB_TEST_LIBS = @CRYB_TEST_LIBS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_LIBS = @CRYPT_LIBS@ +CRYB_TEST_VERSION = @CRYB_TEST_VERSION@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ @@ -249,6 +249,9 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ @@ -297,6 +300,7 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgconfigdir = @pkgconfigdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ @@ -329,8 +333,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -447,7 +451,10 @@ cscopelist-am: $(am__tagged_files) distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ Modified: projects/clang800-import/contrib/openpam/bin/openpam_dump_policy/Makefile.in ============================================================================== --- projects/clang800-import/contrib/openpam/bin/openpam_dump_policy/Makefile.in Mon Feb 25 19:17:20 2019 (r344548) +++ projects/clang800-import/contrib/openpam/bin/openpam_dump_policy/Makefile.in Mon Feb 25 19:18:32 2019 (r344549) @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2014 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -93,10 +93,10 @@ host_triplet = @host@ noinst_PROGRAMS = openpam_dump_policy$(EXEEXT) subdir = bin/openpam_dump_policy ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pkg_config.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) @@ -129,7 +129,8 @@ am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = ./$(DEPDIR)/openpam_dump_policy.Po am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @@ -190,9 +191,9 @@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CRYB_TEST_CFLAGS = @CRYB_TEST_CFLAGS@ CRYB_TEST_LIBS = @CRYB_TEST_LIBS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_LIBS = @CRYPT_LIBS@ +CRYB_TEST_VERSION = @CRYB_TEST_VERSION@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ @@ -240,6 +241,9 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ @@ -288,6 +292,7 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgconfigdir = @pkgconfigdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ @@ -324,8 +329,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -356,8 +361,14 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openpam_dump_policy.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openpam_dump_policy.Po@am__quote@ # am--include-marker +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) + .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @@ -437,7 +448,10 @@ cscopelist-am: $(am__tagged_files) distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ @@ -507,7 +521,7 @@ clean-am: clean-generic clean-libtool clean-noinstPROG mostlyclean-am distclean: distclean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/openpam_dump_policy.Po -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags @@ -553,7 +567,7 @@ install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/openpam_dump_policy.Po -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic @@ -574,9 +588,9 @@ uninstall-am: .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \ - ctags-am distclean distclean-compile distclean-generic \ +.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ + clean-generic clean-libtool clean-noinstPROGRAMS cscopelist-am \ + ctags ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ Modified: projects/clang800-import/contrib/openpam/bin/pamtest/Makefile.in ============================================================================== --- projects/clang800-import/contrib/openpam/bin/pamtest/Makefile.in Mon Feb 25 19:17:20 2019 (r344548) +++ projects/clang800-import/contrib/openpam/bin/pamtest/Makefile.in Mon Feb 25 19:18:32 2019 (r344549) @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2014 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -93,10 +93,10 @@ host_triplet = @host@ bin_PROGRAMS = pamtest$(EXEEXT) subdir = bin/pamtest ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pkg_config.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) @@ -129,7 +129,8 @@ am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = ./$(DEPDIR)/pamtest.Po am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @@ -221,9 +222,9 @@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CRYB_TEST_CFLAGS = @CRYB_TEST_CFLAGS@ CRYB_TEST_LIBS = @CRYB_TEST_LIBS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_LIBS = @CRYPT_LIBS@ +CRYB_TEST_VERSION = @CRYB_TEST_VERSION@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ @@ -271,6 +272,9 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ @@ -319,6 +323,7 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgconfigdir = @pkgconfigdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ @@ -356,8 +361,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -428,8 +433,14 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pamtest.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pamtest.Po@am__quote@ # am--include-marker +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) + .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @@ -550,7 +561,10 @@ cscopelist-am: $(am__tagged_files) distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ @@ -622,7 +636,7 @@ clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/pamtest.Po -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags @@ -668,7 +682,7 @@ install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/pamtest.Po -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic @@ -691,7 +705,7 @@ uninstall-man: uninstall-man1 .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ +.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \ ctags ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ Modified: projects/clang800-import/contrib/openpam/bin/pamtest/pamtest.1 ============================================================================== --- projects/clang800-import/contrib/openpam/bin/pamtest/pamtest.1 Mon Feb 25 19:17:20 2019 (r344548) +++ projects/clang800-import/contrib/openpam/bin/pamtest/pamtest.1 Mon Feb 25 19:18:32 2019 (r344549) @@ -26,9 +26,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $OpenPAM: pamtest.1 939 2017-04-30 21:36:50Z des $ +.\" $OpenPAM: pamtest.1 947 2019-02-24 20:18:17Z des $ .\" -.Dd April 30, 2017 +.Dd February 24, 2019 .Dt PAMTEST 1 .Os .Sh NAME Modified: projects/clang800-import/contrib/openpam/bin/su/Makefile.in ============================================================================== --- projects/clang800-import/contrib/openpam/bin/su/Makefile.in Mon Feb 25 19:17:20 2019 (r344548) +++ projects/clang800-import/contrib/openpam/bin/su/Makefile.in Mon Feb 25 19:18:32 2019 (r344549) @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2014 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -93,10 +93,10 @@ host_triplet = @host@ bin_PROGRAMS = su$(EXEEXT) subdir = bin/su ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pkg_config.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Tue Feb 26 03:28:16 2019 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0BC841505703 for ; Tue, 26 Feb 2019 03:28:16 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9DAE894B53; Tue, 26 Feb 2019 03:28:15 +0000 (UTC) (envelope-from asomers@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7FA4526FCA; Tue, 26 Feb 2019 03:28:15 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x1Q3SF6O009135; Tue, 26 Feb 2019 03:28:15 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x1Q3SEbK009132; Tue, 26 Feb 2019 03:28:14 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <201902260328.x1Q3SEbK009132@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Tue, 26 Feb 2019 03:28:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r344558 - in projects/fuse2: . sbin/ifconfig X-SVN-Group: projects X-SVN-Commit-Author: asomers X-SVN-Commit-Paths: in projects/fuse2: . sbin/ifconfig X-SVN-Commit-Revision: 344558 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 9DAE894B53 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.95 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.95)[-0.953,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Feb 2019 03:28:16 -0000 Author: asomers Date: Tue Feb 26 03:28:14 2019 New Revision: 344558 URL: https://svnweb.freebsd.org/changeset/base/344558 Log: Create a project branch for fuse(4) work. The branch will be used for a new test suite, bug fixes, and various other enhancements to fuse. Sponsored by: The FreeBSD Foundation Added: projects/fuse2/ - copied from r344557, head/ Modified: projects/fuse2/sbin/ifconfig/af_inet.c projects/fuse2/sbin/ifconfig/af_inet6.c projects/fuse2/sbin/ifconfig/ifconfig.c projects/fuse2/sbin/ifconfig/ifgroup.c Modified: projects/fuse2/sbin/ifconfig/af_inet.c ============================================================================== --- head/sbin/ifconfig/af_inet.c Tue Feb 26 01:29:40 2019 (r344557) +++ projects/fuse2/sbin/ifconfig/af_inet.c Tue Feb 26 03:28:14 2019 (r344558) @@ -107,16 +107,16 @@ in_status(int s __unused, const struct ifaddrs *ifa) if (cidr == 0) break; } - printf("/%d ", cidr); + printf("/%d", cidr); } else if (f_inet != NULL && strcmp(f_inet, "dotted") == 0) - printf(" netmask %s ", inet_ntoa(sin->sin_addr)); + printf(" netmask %s", inet_ntoa(sin->sin_addr)); else - printf(" netmask 0x%lx ", (unsigned long)ntohl(sin->sin_addr.s_addr)); + printf(" netmask 0x%lx", (unsigned long)ntohl(sin->sin_addr.s_addr)); if (ifa->ifa_flags & IFF_BROADCAST) { sin = (struct sockaddr_in *)ifa->ifa_broadaddr; if (sin != NULL && sin->sin_addr.s_addr != 0) - printf("broadcast %s ", inet_ntoa(sin->sin_addr)); + printf(" broadcast %s", inet_ntoa(sin->sin_addr)); } print_vhid(ifa, " "); Modified: projects/fuse2/sbin/ifconfig/af_inet6.c ============================================================================== --- head/sbin/ifconfig/af_inet6.c Tue Feb 26 01:29:40 2019 (r344557) +++ projects/fuse2/sbin/ifconfig/af_inet6.c Tue Feb 26 03:28:14 2019 (r344558) @@ -247,49 +247,49 @@ in6_status(int s __unused, const struct ifaddrs *ifa) if (sin == NULL) sin = &null_sin; if (f_inet6 != NULL && strcmp(f_inet6, "cidr") == 0) - printf("/%d ", prefix(&sin->sin6_addr, + printf("/%d", prefix(&sin->sin6_addr, sizeof(struct in6_addr))); else - printf(" prefixlen %d ", prefix(&sin->sin6_addr, + printf(" prefixlen %d", prefix(&sin->sin6_addr, sizeof(struct in6_addr))); if ((flags6 & IN6_IFF_ANYCAST) != 0) - printf("anycast "); + printf(" anycast"); if ((flags6 & IN6_IFF_TENTATIVE) != 0) - printf("tentative "); + printf(" tentative"); if ((flags6 & IN6_IFF_DUPLICATED) != 0) - printf("duplicated "); + printf(" duplicated"); if ((flags6 & IN6_IFF_DETACHED) != 0) - printf("detached "); + printf(" detached"); if ((flags6 & IN6_IFF_DEPRECATED) != 0) - printf("deprecated "); + printf(" deprecated"); if ((flags6 & IN6_IFF_AUTOCONF) != 0) - printf("autoconf "); + printf(" autoconf"); if ((flags6 & IN6_IFF_TEMPORARY) != 0) - printf("temporary "); + printf(" temporary"); if ((flags6 & IN6_IFF_PREFER_SOURCE) != 0) - printf("prefer_source "); + printf(" prefer_source"); if (((struct sockaddr_in6 *)(ifa->ifa_addr))->sin6_scope_id) - printf("scopeid 0x%x ", + printf(" scopeid 0x%x", ((struct sockaddr_in6 *)(ifa->ifa_addr))->sin6_scope_id); if (ip6lifetime && (lifetime.ia6t_preferred || lifetime.ia6t_expire)) { - printf("pltime "); + printf(" pltime"); if (lifetime.ia6t_preferred) { - printf("%s ", lifetime.ia6t_preferred < now.tv_sec + printf(" %s", lifetime.ia6t_preferred < now.tv_sec ? "0" : sec2str(lifetime.ia6t_preferred - now.tv_sec)); } else - printf("infty "); + printf(" infty"); - printf("vltime "); + printf(" vltime"); if (lifetime.ia6t_expire) { - printf("%s ", lifetime.ia6t_expire < now.tv_sec + printf(" %s", lifetime.ia6t_expire < now.tv_sec ? "0" : sec2str(lifetime.ia6t_expire - now.tv_sec)); } else - printf("infty "); + printf(" infty"); } print_vhid(ifa, " "); Modified: projects/fuse2/sbin/ifconfig/ifconfig.c ============================================================================== --- head/sbin/ifconfig/ifconfig.c Tue Feb 26 01:29:40 2019 (r344557) +++ projects/fuse2/sbin/ifconfig/ifconfig.c Tue Feb 26 03:28:14 2019 (r344558) @@ -1405,7 +1405,7 @@ print_vhid(const struct ifaddrs *ifa, const char *s) if (ifd->ifi_vhid == 0) return; - printf("vhid %d ", ifd->ifi_vhid); + printf(" vhid %d", ifd->ifi_vhid); } void Modified: projects/fuse2/sbin/ifconfig/ifgroup.c ============================================================================== --- head/sbin/ifconfig/ifgroup.c Tue Feb 26 01:29:40 2019 (r344557) +++ projects/fuse2/sbin/ifconfig/ifgroup.c Tue Feb 26 03:28:14 2019 (r344558) @@ -113,9 +113,9 @@ getifgroups(int s) len -= sizeof(struct ifg_req); if (strcmp(ifg->ifgrq_group, "all")) { if (cnt == 0) - printf("\tgroups: "); + printf("\tgroups:"); cnt++; - printf("%s ", ifg->ifgrq_group); + printf(" %s", ifg->ifgrq_group); } } if (cnt) From owner-svn-src-projects@freebsd.org Tue Feb 26 03:32:20 2019 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5389D1505AE0 for ; Tue, 26 Feb 2019 03:32:20 +0000 (UTC) (envelope-from asomers@gmail.com) Received: from mail-lf1-f45.google.com (mail-lf1-f45.google.com [209.85.167.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id D797794ED1; Tue, 26 Feb 2019 03:32:18 +0000 (UTC) (envelope-from asomers@gmail.com) Received: by mail-lf1-f45.google.com with SMTP id n15so8541986lfe.5; Mon, 25 Feb 2019 19:32:18 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=PD98GetpCeO9DhJc40u7Np4naaglCH+/NA2WIciNU9Y=; b=aVnYv+peTDfYUw+sng3HfqFU6fB9vQh/7ArmMns3ITf9E0PRD0sYvg/Mc2oCPY7xlZ jsKza3fbCaJk4cokJDnWW3aHqhZxg6Q9rvLThwqJAyfxmUMc7Pp1/l17q4kXArWn3l5V wFmZlAFKZLu78C8mE9nZWNig56aFUHydjclF70XCxvvOf2qn+S6FWqdLzzNjtR1t67q7 HUWU71FxJQNKhvJW+F+ZU1oaoLYkn+xVXmrMTjPO2Eno2Z7wKm5MJwR57HHvfBBeMvNM bS5GRMJaT00CYlMHCV1PgSS6TNx3RW4Qkzb4qw2hT6jNm+QKo5rtW8d1o+igfGx1saAJ 3nHA== X-Gm-Message-State: AHQUAuYYUrlrMr/Gh+BuzKnOOH1KEvTNfsuE9OL1U7XZ9mTyn6q3oRsj T92C/AmtUXDZvldu8DO4hZvX+YQazxzOxfxnxr8= X-Google-Smtp-Source: AHgI3Ia1kLOCViccT24mEZ1mA+7iwBNCDe2wJ5aTC9HMqpv5lpF0N9NyXf8khB0stNr7j6xMjYhVgc3qLYgcmjtdEYA= X-Received: by 2002:a19:f814:: with SMTP id a20mr12006739lff.138.1551151937031; Mon, 25 Feb 2019 19:32:17 -0800 (PST) MIME-Version: 1.0 References: <201902260328.x1Q3SEbK009132@repo.freebsd.org> <9E20D0E7-23A8-42F7-9A06-95E7F605236C@gmail.com> In-Reply-To: <9E20D0E7-23A8-42F7-9A06-95E7F605236C@gmail.com> From: Alan Somers Date: Mon, 25 Feb 2019 20:32:05 -0700 Message-ID: Subject: Re: svn commit: r344558 - in projects/fuse2: . sbin/ifconfig To: Enji Cooper Cc: src-committers , svn-src-projects@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: D797794ED1 X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; spf=pass (mx1.freebsd.org: domain of asomers@gmail.com designates 209.85.167.45 as permitted sender) smtp.mailfrom=asomers@gmail.com X-Spamd-Result: default: False [-3.74 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[3]; R_SPF_ALLOW(-0.20)[+ip4:209.85.128.0/17]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; MIME_TRACE(0.00)[0:+]; DMARC_NA(0.00)[freebsd.org]; TO_DN_SOME(0.00)[]; TO_MATCH_ENVRCPT_SOME(0.00)[]; MX_GOOD(-0.01)[cached: alt3.gmail-smtp-in.l.google.com]; NEURAL_HAM_SHORT(-0.44)[-0.438,0]; RCVD_IN_DNSWL_NONE(0.00)[45.167.85.209.list.dnswl.org : 127.0.5.0]; RCVD_TLS_LAST(0.00)[]; FORGED_SENDER(0.30)[asomers@freebsd.org,asomers@gmail.com]; FREEMAIL_TO(0.00)[gmail.com]; R_DKIM_NA(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US]; FROM_NEQ_ENVFROM(0.00)[asomers@freebsd.org,asomers@gmail.com]; IP_SCORE(-1.29)[ip: (-0.57), ipnet: 209.85.128.0/17(-3.81), asn: 15169(-2.00), country: US(-0.07)]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Feb 2019 03:32:20 -0000 On Mon, Feb 25, 2019 at 8:31 PM Enji Cooper wrote: > > > > On Feb 25, 2019, at 7:28 PM, Alan Somers wrote: > > > > Author: asomers > > Date: Tue Feb 26 03:28:14 2019 > > New Revision: 344558 > > URL: https://svnweb.freebsd.org/changeset/base/344558 > > > > Log: > > Create a project branch for fuse(4) work. > > > > The branch will be used for a new test suite, bug fixes, and various other > > enhancements to fuse. > > > > Sponsored by: The FreeBSD Foundation > > > > Added: > > projects/fuse2/ > > - copied from r344557, head/ > > Modified: > > projects/fuse2/sbin/ifconfig/af_inet.c > > projects/fuse2/sbin/ifconfig/af_inet6.c > > projects/fuse2/sbin/ifconfig/ifconfig.c > > projects/fuse2/sbin/ifconfig/ifgroup.c > > Why is ifconfig modified on this branch? > -Enji Good question. Apparently there's something I don't know about the "svn cp" command. -Alan From owner-svn-src-projects@freebsd.org Tue Feb 26 04:17:08 2019 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B424115083A6 for ; Tue, 26 Feb 2019 04:17:08 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 273FD970C6; Tue, 26 Feb 2019 04:17:07 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1]) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id x1Q4H3tU043094; Mon, 25 Feb 2019 20:17:03 -0800 (PST) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: (from freebsd@localhost) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id x1Q4H3QD043093; Mon, 25 Feb 2019 20:17:03 -0800 (PST) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201902260417.x1Q4H3QD043093@pdx.rh.CN85.dnsmgr.net> Subject: Re: svn commit: r344558 - in projects/fuse2: . sbin/ifconfig In-Reply-To: To: Alan Somers Date: Mon, 25 Feb 2019 20:17:02 -0800 (PST) CC: Enji Cooper , src-committers , svn-src-projects@freebsd.org Reply-To: rgrimes@freebsd.org X-Mailer: ELM [version 2.4ME+ PL121h (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-Rspamd-Queue-Id: 273FD970C6 X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-6.93 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.93)[-0.927,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[] X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Feb 2019 04:17:08 -0000 > On Mon, Feb 25, 2019 at 8:31 PM Enji Cooper wrote: > > > > > > > On Feb 25, 2019, at 7:28 PM, Alan Somers wrote: > > > > > > Author: asomers > > > Date: Tue Feb 26 03:28:14 2019 > > > New Revision: 344558 > > > URL: https://svnweb.freebsd.org/changeset/base/344558 > > > > > > Log: > > > Create a project branch for fuse(4) work. > > > > > > The branch will be used for a new test suite, bug fixes, and various other > > > enhancements to fuse. > > > > > > Sponsored by: The FreeBSD Foundation > > > > > > Added: > > > projects/fuse2/ > > > - copied from r344557, head/ > > > Modified: > > > projects/fuse2/sbin/ifconfig/af_inet.c > > > projects/fuse2/sbin/ifconfig/af_inet6.c > > > projects/fuse2/sbin/ifconfig/ifconfig.c > > > projects/fuse2/sbin/ifconfig/ifgroup.c > > > > Why is ifconfig modified on this branch? > > -Enji > > Good question. Apparently there's something I don't know about the > "svn cp" command. I think you cp'ed then modified the tree, then commited it, as this looks to be what was in your other commit you just made to head. > -Alan -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-projects@freebsd.org Tue Feb 26 05:47:07 2019 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A7F6C150C31E for ; Tue, 26 Feb 2019 05:47:07 +0000 (UTC) (envelope-from asomers@gmail.com) Received: from mail-lf1-f53.google.com (mail-lf1-f53.google.com [209.85.167.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 2E9056C71B; Tue, 26 Feb 2019 05:47:07 +0000 (UTC) (envelope-from asomers@gmail.com) Received: by mail-lf1-f53.google.com with SMTP id e27so8701768lfj.8; Mon, 25 Feb 2019 21:47:07 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=rRd9oNUvNI7ueddXXkutWG3ZwOfgKz1h+fECNjMccAU=; b=Ld2nWyp4GKvIHgnSYIQ9BvbhdYlpqmFV9CRhyIN5+0/Ys+/giuePuvihgOC6fsxxoX RfbqoueCib7Hid0p8szE8O5dIkU7NMTiR77Be+ZNIYCyYEIB+sWSw0tFbiR69dt9n4TT Bd+d4svJ0/Mx+of2iE/g+G1APFTJjxAvzDKIy4MqQb7+a0trrMkjp3WeHp2hmcavYbXp nHO8h35ncmPadOGTQa/TPmA6BJ0LFKbyVfkOmR6XVNhCvoX9QH3tyCTirXruQ1R3w3TU 7xSsH6dg/Ob88Bxps7AAEOqo+CRSiYooUbObEmo/l0KxgiNh/DTCs11ruJUji0+m+FzS YqRg== X-Gm-Message-State: AHQUAubw3RY2k6HmZ7iFhEH2XC8io6h2WN8XYq0DOMvzJVxGajKL+OaW D8DuXDpB3r2pI0pgfJ/UwQkvowEz6ipp/znm42cmoA== X-Google-Smtp-Source: AHgI3IbnELjjT2InlXbC3Zpt8WDchwr4cMjUqbTwLO3dcjdQzb0lyOINAsJAelJs3w//ZILktmSPntX7yBRL66BgXr0= X-Received: by 2002:ac2:5291:: with SMTP id q17mr23450lfm.138.1551159639533; Mon, 25 Feb 2019 21:40:39 -0800 (PST) MIME-Version: 1.0 References: <201902260417.x1Q4H3QD043093@pdx.rh.CN85.dnsmgr.net> In-Reply-To: <201902260417.x1Q4H3QD043093@pdx.rh.CN85.dnsmgr.net> From: Alan Somers Date: Mon, 25 Feb 2019 22:40:27 -0700 Message-ID: Subject: Re: svn commit: r344558 - in projects/fuse2: . sbin/ifconfig To: rgrimes@freebsd.org Cc: Enji Cooper , src-committers , svn-src-projects@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 2E9056C71B X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-6.81 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[]; NEURAL_HAM_SHORT(-0.81)[-0.805,0] X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Feb 2019 05:47:07 -0000 On Mon, Feb 25, 2019 at 9:17 PM Rodney W. Grimes wrote: > > > On Mon, Feb 25, 2019 at 8:31 PM Enji Cooper wrote: > > > > > > > > > > On Feb 25, 2019, at 7:28 PM, Alan Somers wrote: > > > > > > > > Author: asomers > > > > Date: Tue Feb 26 03:28:14 2019 > > > > New Revision: 344558 > > > > URL: https://svnweb.freebsd.org/changeset/base/344558 > > > > > > > > Log: > > > > Create a project branch for fuse(4) work. > > > > > > > > The branch will be used for a new test suite, bug fixes, and various other > > > > enhancements to fuse. > > > > > > > > Sponsored by: The FreeBSD Foundation > > > > > > > > Added: > > > > projects/fuse2/ > > > > - copied from r344557, head/ > > > > Modified: > > > > projects/fuse2/sbin/ifconfig/af_inet.c > > > > projects/fuse2/sbin/ifconfig/af_inet6.c > > > > projects/fuse2/sbin/ifconfig/ifconfig.c > > > > projects/fuse2/sbin/ifconfig/ifgroup.c > > > > > > Why is ifconfig modified on this branch? > > > -Enji > > > > Good question. Apparently there's something I don't know about the > > "svn cp" command. > > I think you cp'ed then modified the tree, then commited it, > as this looks to be what was in your other commit you just > made to head. > > > -Alan Opposite order. I had modifications in my head that I had forgotten about which "svn cp" copied unbeknownst to me. But since the changes were ready to commit anyway, I'm not going to back them out of projects/fuse2. I'll just leave them there and never merge them back. -Alan From owner-svn-src-projects@freebsd.org Tue Feb 26 15:30:30 2019 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 59EFC151CC1E for ; Tue, 26 Feb 2019 15:30:30 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id EC2CC8A419; Tue, 26 Feb 2019 15:30:29 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from [192.168.0.5] (unknown [181.52.72.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) (Authenticated sender: pfg) by smtp.freebsd.org (Postfix) with ESMTPSA id 688641CD21; Tue, 26 Feb 2019 15:30:29 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Subject: Re: svn commit: r344558 - in projects/fuse2: . sbin/ifconfig To: Alan Somers , src-committers@freebsd.org, svn-src-projects@freebsd.org References: <201902260328.x1Q3SEbK009132@repo.freebsd.org> From: Pedro Giffuni Organization: FreeBSD Message-ID: Date: Tue, 26 Feb 2019 10:30:27 -0500 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:60.0) Gecko/20100101 Thunderbird/60.5.1 MIME-Version: 1.0 In-Reply-To: <201902260328.x1Q3SEbK009132@repo.freebsd.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US X-Rspamd-Queue-Id: EC2CC8A419 X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-6.97 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.97)[-0.968,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[] X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Feb 2019 15:30:30 -0000 Hi; On 2/25/19 10:28 PM, Alan Somers wrote: > Author: asomers > Date: Tue Feb 26 03:28:14 2019 > New Revision: 344558 > URL: https://svnweb.freebsd.org/changeset/base/344558 > > Log: > Create a project branch for fuse(4) work. > > The branch will be used for a new test suite, bug fixes, and various other > enhancements to fuse. > > Sponsored by: The FreeBSD Foundation Cool! FWIW, updating the protocol would probably help us use more devices. I failed miserably at that though, but at least the revert will give hints on what is needed: https://svnweb.freebsd.org/base?view=revision&revision=253619 Cheers, Pedro. From owner-svn-src-projects@freebsd.org Tue Feb 26 16:56:19 2019 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 34512151EFE0 for ; Tue, 26 Feb 2019 16:56:19 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-io1-f45.google.com (mail-io1-f45.google.com [209.85.166.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A3FD78DE15; Tue, 26 Feb 2019 16:56:18 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-io1-f45.google.com with SMTP id x9so11003228iog.12; Tue, 26 Feb 2019 08:56:18 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:reply-to :from:date:message-id:subject:to:cc; bh=V7/mteWdXprxD6BSfNOspZ+BviCSo5JTN+1NA1WpWxE=; b=EMk3S3PCqwleau4+Oz2SerpmyO14McyF7I3RYn79g8W233iLmCXcogBXn4tlH9eWEn 97Mt7rOas9m2etWBHVoloVIOylGOfQJtQukd+r3Vkr9lyAL6IJZ51Zm5d7m/hkmbTV0H GwnXE32T7fZc4WXPpeBKUd9LcGTdh9Dxd5DPPNdyfGycGPdjzio3gv8Xw1FO0KZxWpec BCZgx3LtiX9WgadipTiukrrbBtjJsxrxiHqF/pCNOnPZAnFnjkqxZ2MeUiYzKEjIPsfE 3EV/GSu198hMf8OlNH/gvrgpXHCmmsnbau3vV/Npq9de16BwLljnmSZUoyurPJ2ndkU4 9K/Q== X-Gm-Message-State: AHQUAuZ2WrIVUkdvFt08ei7QAFoQv4vJqMrEP580RXfe9MUjjMRJNxQJ geNJ3hovcwd2XkDAJFyiTJZunVLt X-Google-Smtp-Source: AHgI3IYbyfJSy/qv19mw8zwzE2xsozaqQ8jZ2hLHkdXtqBHjRq5oMv+iWfm2qRv/T9U939pmaKi2Ow== X-Received: by 2002:a6b:2c6:: with SMTP id 189mr12447831ioc.205.1551200171492; Tue, 26 Feb 2019 08:56:11 -0800 (PST) Received: from mail-it1-f175.google.com (mail-it1-f175.google.com. [209.85.166.175]) by smtp.gmail.com with ESMTPSA id c26sm5006634iob.86.2019.02.26.08.56.11 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 26 Feb 2019 08:56:11 -0800 (PST) Received: by mail-it1-f175.google.com with SMTP id v83so5172361itf.1; Tue, 26 Feb 2019 08:56:11 -0800 (PST) X-Received: by 2002:a24:bdcc:: with SMTP id x195mr3029328ite.149.1551200171166; Tue, 26 Feb 2019 08:56:11 -0800 (PST) MIME-Version: 1.0 References: <201902260328.x1Q3SEbK009132@repo.freebsd.org> In-Reply-To: Reply-To: cem@freebsd.org From: Conrad Meyer Date: Tue, 26 Feb 2019 08:56:00 -0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r344558 - in projects/fuse2: . sbin/ifconfig To: Pedro Giffuni Cc: Alan Somers , src-committers , svn-src-projects@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: A3FD78DE15 X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-6.97 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.97)[-0.972,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[]; TAGGED_FROM(0.00)[] X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Feb 2019 16:56:19 -0000 On Tue, Feb 26, 2019 at 7:30 AM Pedro Giffuni wrote: > On 2/25/19 10:28 PM, Alan Somers wrote: > > Log: > > Create a project branch for fuse(4) work. > > > > The branch will be used for a new test suite, bug fixes, and various other > > enhancements to fuse. > > > > Sponsored by: The FreeBSD Foundation > > Cool! +1 > FWIW, updating the protocol would probably help us use more devices. Yep! We're at roughly the 7.8 protocol version. Kindly, the Linux FUSE folks have kept a changelog all the way from 7.9 to present: https://elixir.bootlin.com/linux/latest/source/include/uapi/linux/fuse.h#L37 So we have some idea of what we need to implement to be compatible with each newer version, and some idea of things that would be good to test when we claim to implement each new version. Best, Conrad From owner-svn-src-projects@freebsd.org Tue Feb 26 18:12:11 2019 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AB8121521D59 for ; Tue, 26 Feb 2019 18:12:11 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4B5B96C2B0; Tue, 26 Feb 2019 18:12:11 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from [192.168.0.5] (unknown [181.52.72.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) (Authenticated sender: pfg) by smtp.freebsd.org (Postfix) with ESMTPSA id AD2C11DF94; Tue, 26 Feb 2019 18:12:10 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Subject: Re: svn commit: r344558 - in projects/fuse2: . sbin/ifconfig To: cem@freebsd.org Cc: Alan Somers , src-committers , svn-src-projects@freebsd.org References: <201902260328.x1Q3SEbK009132@repo.freebsd.org> From: Pedro Giffuni Organization: FreeBSD Message-ID: <306af793-6776-cf1b-fc19-f0a66e59be84@FreeBSD.org> Date: Tue, 26 Feb 2019 13:12:09 -0500 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.5.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US X-Rspamd-Queue-Id: 4B5B96C2B0 X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-6.98 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.98)[-0.985,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Feb 2019 18:12:11 -0000 On 26/02/2019 11:56, Conrad Meyer wrote: > On Tue, Feb 26, 2019 at 7:30 AM Pedro Giffuni wrote: >> On 2/25/19 10:28 PM, Alan Somers wrote: >>> Log: >>> Create a project branch for fuse(4) work. >>> >>> The branch will be used for a new test suite, bug fixes, and various other >>> enhancements to fuse. >>> >>> Sponsored by: The FreeBSD Foundation >> Cool! > +1 > >> FWIW, updating the protocol would probably help us use more devices. > Yep! We're at roughly the 7.8 protocol version. Kindly, the Linux > FUSE folks have kept a changelog all the way from 7.9 to present: > > https://elixir.bootlin.com/linux/latest/source/include/uapi/linux/fuse.h#L37 > > So we have some idea of what we need to implement to be compatible > with each newer version, and some idea of things that would be good to > test when we claim to implement each new version. Yes they keep that file under a BSD license, and order is important. I think we actually have to stop around 7.13 unless we are willing to support the linux splice call. Also, the Darwin guys stopped updating the API on their implementation about the same 7.8 version we use but added stuff like birthtime incompatibly (likely a mistake on their part). Not sure where they live nowadays, probably here: https://github.com/osxfuse Cheers, Pedro. From owner-svn-src-projects@freebsd.org Tue Feb 26 18:58:25 2019 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D0F061522F93 for ; Tue, 26 Feb 2019 18:58:24 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-it1-f194.google.com (mail-it1-f194.google.com [209.85.166.194]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 72D946DFE4; Tue, 26 Feb 2019 18:58:24 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-it1-f194.google.com with SMTP id v2so5470739ith.3; Tue, 26 Feb 2019 10:58:24 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:reply-to :from:date:message-id:subject:to:cc; bh=jQZRG41Lur71DBZdBfqLoieN5/35kbP5lL7bYe97cd0=; b=R5pImBEiY20IFzCCBSV1FFc71gASf7ajJvFwlMPKG/A+EUZQl+0mQjMS4Glj14Lbcs 7sXcpdrxJaRSeB+g53gcqiT0dX53NfgBMj1yQqmf4+o0/YKqs0CzLRkmrDUwAasF+5LS SCtte07MYsoe0C5KuRPKezQjSBcbEWb/Ndl0y7p4BkhTQQbpYsirxl4w0J+OoeKsU3m9 LGbF9HLjMKaWWG3v+y/RfbWEYvuDK82sY/eRw14GRFqIXT0vcNBEO19rJKgisYtYBopi 3bDHp6V6rMpAzuZWGjneLsyLSAKsq6EqgvP/qzQaQHm5EFOzyI1n9twpD7X+OK1iSYmv NCDA== X-Gm-Message-State: APjAAAXxYf9aBhM+E38QuiRQqsAWwC4Og0QYw5LP/ezp1++fzmNKpGoj Zmm5YiR9zLRhWiRoW+RmaWh/C7yw X-Google-Smtp-Source: AHgI3IYJhveIlz8WqucWlnCb5ehnZ3WwIgcteTTG3tIVoEGS1jcY8QJvGbH58x5+1y4nG+pRYnik8w== X-Received: by 2002:a24:d55:: with SMTP id 82mr1966428itx.21.1551207497448; Tue, 26 Feb 2019 10:58:17 -0800 (PST) Received: from mail-it1-f178.google.com (mail-it1-f178.google.com. [209.85.166.178]) by smtp.gmail.com with ESMTPSA id l19sm5204501iob.46.2019.02.26.10.58.17 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 26 Feb 2019 10:58:17 -0800 (PST) Received: by mail-it1-f178.google.com with SMTP id z124so5841443itc.2; Tue, 26 Feb 2019 10:58:17 -0800 (PST) X-Received: by 2002:a24:bdcc:: with SMTP id x195mr3392144ite.149.1551207497113; Tue, 26 Feb 2019 10:58:17 -0800 (PST) MIME-Version: 1.0 References: <201902260328.x1Q3SEbK009132@repo.freebsd.org> <306af793-6776-cf1b-fc19-f0a66e59be84@FreeBSD.org> In-Reply-To: <306af793-6776-cf1b-fc19-f0a66e59be84@FreeBSD.org> Reply-To: cem@freebsd.org From: Conrad Meyer Date: Tue, 26 Feb 2019 10:58:06 -0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r344558 - in projects/fuse2: . sbin/ifconfig To: Pedro Giffuni Cc: Alan Somers , src-committers , svn-src-projects@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 72D946DFE4 X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-6.99 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[]; NEURAL_HAM_SHORT(-0.99)[-0.993,0]; TAGGED_FROM(0.00)[] X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Feb 2019 18:58:25 -0000 Hi Pedro, On Tue, Feb 26, 2019 at 10:12 AM Pedro Giffuni wrote: > Yes they keep that file under a BSD license, and order is important. I > think we actually have to stop around 7.13 unless we are willing to > support the linux splice call. I don't think splice is necessary. libfuse today already handles kernels that do not support SPLICE capability by emulating in userspace. It doesn't even request the capability of the kernel unless all of the following are true: 1. Userspace defines a splice() function. 2. Kernel advertises version 7.14+ ( https://github.com/libfuse/libfuse/blob/0c73b8389aaea156e7544d984be95515b9743033/lib/fuse_lowlevel.c#L1910 ) And it doesn't use the splice syscall on fuse fds unless the kernel additionally advertises the capability. We simply won't advertise the capability, and since we don't have the function at all, libfuse built on FreeBSD won't even compile the code wrapped in HAVE_SPLICE. I agree there will probably be some stumbling blocks, but I don't think splice is going to be one of them. And I think libfuse upstream is very receptive to any compatibility shims we might need to coordinate with them if it helps get us beyond 7.8 :-). Best, Conrad From owner-svn-src-projects@freebsd.org Wed Feb 27 14:01:14 2019 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 329F5151DC96 for ; Wed, 27 Feb 2019 14:01:14 +0000 (UTC) (envelope-from luporl@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id C641E77D32; Wed, 27 Feb 2019 14:01:13 +0000 (UTC) (envelope-from luporl@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A2BDE1DB5A; Wed, 27 Feb 2019 14:01:13 +0000 (UTC) (envelope-from luporl@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x1RE1D6g098943; Wed, 27 Feb 2019 14:01:13 GMT (envelope-from luporl@FreeBSD.org) Received: (from luporl@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x1RE1D32098942; Wed, 27 Feb 2019 14:01:13 GMT (envelope-from luporl@FreeBSD.org) Message-Id: <201902271401.x1RE1D32098942@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: luporl set sender to luporl@FreeBSD.org using -f From: Leandro Lupori Date: Wed, 27 Feb 2019 14:01:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r344622 - projects/power8_bringup_hacks X-SVN-Group: projects X-SVN-Commit-Author: luporl X-SVN-Commit-Paths: projects/power8_bringup_hacks X-SVN-Commit-Revision: 344622 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: C641E77D32 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.97)[-0.972,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Feb 2019 14:01:14 -0000 Author: luporl Date: Wed Feb 27 14:01:13 2019 New Revision: 344622 URL: https://svnweb.freebsd.org/changeset/base/344622 Log: power8_bringup_hacks branch is not needed anymore Deleted: projects/power8_bringup_hacks/ From owner-svn-src-projects@freebsd.org Thu Feb 28 19:27:57 2019 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A2E3615152E5 for ; Thu, 28 Feb 2019 19:27:56 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 20E6B83FEE; Thu, 28 Feb 2019 19:27:56 +0000 (UTC) (envelope-from asomers@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 114B197DC; Thu, 28 Feb 2019 19:27:56 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x1SJRuhc040608; Thu, 28 Feb 2019 19:27:56 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x1SJRsrg040599; Thu, 28 Feb 2019 19:27:54 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <201902281927.x1SJRsrg040599@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Thu, 28 Feb 2019 19:27:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r344664 - projects/fuse2/sys/fs/fuse X-SVN-Group: projects X-SVN-Commit-Author: asomers X-SVN-Commit-Paths: projects/fuse2/sys/fs/fuse X-SVN-Commit-Revision: 344664 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 20E6B83FEE X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.97)[-0.974,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Feb 2019 19:27:57 -0000 Author: asomers Date: Thu Feb 28 19:27:54 2019 New Revision: 344664 URL: https://svnweb.freebsd.org/changeset/base/344664 Log: fuse(4): convert debug printfs into dtrace probes fuse(4) was heavily instrumented with debug printf statements that could only be enabled with compile-time flags. They fell into three basic groups: 1) Totally redundant with dtrace FBT probes. These I deleted. 2) Print textual information, usually error messages. These I converted to SDT probes of the form fuse:fuse:FILE:trace. They work just like the old printf statements except they can be enabled at runtime with dtrace. They can be filtered by FILE and/or by priority. 3) More complicated probes that print detailed information. These I converted into ad-hoc SDT probes. Sponsored by: The FreeBSD Foundation Deleted: projects/fuse2/sys/fs/fuse/fuse_debug.h Modified: projects/fuse2/sys/fs/fuse/fuse_device.c projects/fuse2/sys/fs/fuse/fuse_file.c projects/fuse2/sys/fs/fuse/fuse_internal.c projects/fuse2/sys/fs/fuse/fuse_io.c projects/fuse2/sys/fs/fuse/fuse_ipc.c projects/fuse2/sys/fs/fuse/fuse_main.c projects/fuse2/sys/fs/fuse/fuse_node.c projects/fuse2/sys/fs/fuse/fuse_vfsops.c projects/fuse2/sys/fs/fuse/fuse_vnops.c Modified: projects/fuse2/sys/fs/fuse/fuse_device.c ============================================================================== --- projects/fuse2/sys/fs/fuse/fuse_device.c Thu Feb 28 19:19:02 2019 (r344663) +++ projects/fuse2/sys/fs/fuse/fuse_device.c Thu Feb 28 19:27:54 2019 (r344664) @@ -73,6 +73,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -82,8 +83,13 @@ __FBSDID("$FreeBSD$"); #include "fuse.h" #include "fuse_ipc.h" -#define FUSE_DEBUG_MODULE DEVICE -#include "fuse_debug.h" +SDT_PROVIDER_DECLARE(fuse); +/* + * Fuse trace probe: + * arg0: verbosity. Higher numbers give more verbose messages + * arg1: Textual message + */ +SDT_PROBE_DEFINE2(fuse, , device, trace, "int", "char*"); static struct cdev *fuse_dev; @@ -127,15 +133,14 @@ fuse_device_open(struct cdev *dev, int oflags, int dev struct fuse_data *fdata; int error; - FS_DEBUG("device %p\n", dev); + SDT_PROBE2(fuse, , device, trace, 1, "device open"); fdata = fdata_alloc(dev, td->td_ucred); error = devfs_set_cdevpriv(fdata, fdata_dtor); if (error != 0) fdata_trydestroy(fdata); else - FS_DEBUG("%s: device opened by thread %d.\n", dev->si_name, - td->td_tid); + SDT_PROBE2(fuse, , device, trace, 1, "device open success"); return (error); } @@ -170,7 +175,7 @@ fuse_device_close(struct cdev *dev, int fflag, int dev fuse_lck_mtx_unlock(data->aw_mtx); FUSE_UNLOCK(); - FS_DEBUG("%s: device closed by thread %d.\n", dev->si_name, td->td_tid); + SDT_PROBE2(fuse, , device, trace, 1, "device close"); return (0); } @@ -214,7 +219,7 @@ fuse_device_read(struct cdev *dev, struct uio *uio, in int buflen[3]; int i; - FS_DEBUG("fuse device being read on thread %d\n", uio->uio_td->td_tid); + SDT_PROBE2(fuse, , device, trace, 1, "fuse device read"); err = devfs_get_cdevpriv((void **)&data); if (err != 0) @@ -223,7 +228,9 @@ fuse_device_read(struct cdev *dev, struct uio *uio, in fuse_lck_mtx_lock(data->ms_mtx); again: if (fdata_get_dead(data)) { - FS_DEBUG2G("we know early on that reader should be kicked so we don't wait for news\n"); + SDT_PROBE2(fuse, , device, trace, 2, + "we know early on that reader should be kicked so we " + "don't wait for news"); fuse_lck_mtx_unlock(data->ms_mtx); return (ENODEV); } @@ -249,7 +256,7 @@ again: * -- and some other cases, too, tho not totally clear, when * (cv_signal/wakeup_one signals the whole process ?) */ - FS_DEBUG("no message on thread #%d\n", uio->uio_td->td_tid); + SDT_PROBE2(fuse, , device, trace, 1, "no message on thread"); goto again; } fuse_lck_mtx_unlock(data->ms_mtx); @@ -259,16 +266,18 @@ again: * somebody somewhere -- eg., umount routine -- * wants this liaison finished off */ - FS_DEBUG2G("reader is to be sacked\n"); + SDT_PROBE2(fuse, , device, trace, 2, "reader is to be sacked"); if (tick) { - FS_DEBUG2G("weird -- \"kick\" is set tho there is message\n"); + SDT_PROBE2(fuse, , device, trace, 2, "weird -- " + "\"kick\" is set tho there is message"); FUSE_ASSERT_MS_DONE(tick); fuse_ticket_drop(tick); } return (ENODEV); /* This should make the daemon get off * of us */ } - FS_DEBUG("message got on thread #%d\n", uio->uio_td->td_tid); + SDT_PROBE2(fuse, , device, trace, 1, + "fuse device read message successfully"); KASSERT(tick->tk_ms_bufdata || tick->tk_ms_bufsize == 0, ("non-null buf pointer with positive size")); @@ -302,7 +311,8 @@ again: */ if (uio->uio_resid < buflen[i]) { fdata_set_dead(data); - FS_DEBUG2G("daemon is stupid, kick it off...\n"); + SDT_PROBE2(fuse, , device, trace, 2, + "daemon is stupid, kick it off..."); err = ENODEV; break; } @@ -320,16 +330,14 @@ again: static inline int fuse_ohead_audit(struct fuse_out_header *ohead, struct uio *uio) { - FS_DEBUG("Out header -- len: %i, error: %i, unique: %llu; iovecs: %d\n", - ohead->len, ohead->error, (unsigned long long)ohead->unique, - uio->uio_iovcnt); - if (uio->uio_resid + sizeof(struct fuse_out_header) != ohead->len) { - FS_DEBUG("Format error: body size differs from size claimed by header\n"); + SDT_PROBE2(fuse, , device, trace, 1, "Format error: body size " + "differs from size claimed by header"); return (EINVAL); } if (uio->uio_resid && ohead->error) { - FS_DEBUG("Format error: non zero error but message had a body\n"); + SDT_PROBE2(fuse, , device, trace, 1, + "Format error: non zero error but message had a body"); return (EINVAL); } /* Sanitize the linuxism of negative errnos */ @@ -338,6 +346,8 @@ fuse_ohead_audit(struct fuse_out_header *ohead, struct return (0); } +SDT_PROBE_DEFINE1(fuse, , device, fuse_device_write_bumped_into_callback, + "uint64_t"); /* * fuse_device_write first reads the header sent by the daemon. * If that's OK, looks up ticket/callback node by the unique id seen in header. @@ -353,15 +363,13 @@ fuse_device_write(struct cdev *dev, struct uio *uio, i struct fuse_ticket *tick, *x_tick; int found = 0; - FS_DEBUG("resid: %zd, iovcnt: %d, thread: %d\n", - uio->uio_resid, uio->uio_iovcnt, uio->uio_td->td_tid); - err = devfs_get_cdevpriv((void **)&data); if (err != 0) return (err); if (uio->uio_resid < sizeof(struct fuse_out_header)) { - FS_DEBUG("got less than a header!\n"); + SDT_PROBE2(fuse, , device, trace, 1, + "fuse_device_write got less than a header!"); fdata_set_dead(data); return (EINVAL); } @@ -385,8 +393,9 @@ fuse_device_write(struct cdev *dev, struct uio *uio, i fuse_lck_mtx_lock(data->aw_mtx); TAILQ_FOREACH_SAFE(tick, &data->aw_head, tk_aw_link, x_tick) { - FS_DEBUG("bumped into callback #%llu\n", - (unsigned long long)tick->tk_unique); + SDT_PROBE1(fuse, , device, + fuse_device_write_bumped_into_callback, + tick->tk_unique); if (tick->tk_unique == ohead.unique) { found = 1; fuse_aw_remove(tick); @@ -405,12 +414,14 @@ fuse_device_write(struct cdev *dev, struct uio *uio, i * via ticket_drop(), so no manual mucking * around...) */ - FS_DEBUG("pass ticket to a callback\n"); + SDT_PROBE2(fuse, , device, trace, 1, + "pass ticket to a callback"); memcpy(&tick->tk_aw_ohead, &ohead, sizeof(ohead)); err = tick->tk_aw_handler(tick, uio); } else { /* pretender doesn't wanna do anything with answer */ - FS_DEBUG("stuff devalidated, so we drop it\n"); + SDT_PROBE2(fuse, , device, trace, 1, + "stuff devalidated, so we drop it"); } /* @@ -421,7 +432,8 @@ fuse_device_write(struct cdev *dev, struct uio *uio, i fuse_ticket_drop(tick); } else { /* no callback at all! */ - FS_DEBUG("erhm, no handler for this response\n"); + SDT_PROBE2(fuse, , device, trace, 1, + "erhm, no handler for this response"); err = EINVAL; } Modified: projects/fuse2/sys/fs/fuse/fuse_file.c ============================================================================== --- projects/fuse2/sys/fs/fuse/fuse_file.c Thu Feb 28 19:19:02 2019 (r344663) +++ projects/fuse2/sys/fs/fuse/fuse_file.c Thu Feb 28 19:27:54 2019 (r344664) @@ -58,11 +58,10 @@ #include __FBSDID("$FreeBSD$"); -#include +#include #include #include #include -#include #include #include #include @@ -74,6 +73,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include "fuse.h" @@ -82,8 +82,13 @@ __FBSDID("$FreeBSD$"); #include "fuse_ipc.h" #include "fuse_node.h" -#define FUSE_DEBUG_MODULE FILE -#include "fuse_debug.h" +SDT_PROVIDER_DECLARE(fuse); +/* + * Fuse trace probe: + * arg0: verbosity. Higher numbers give more verbose messages + * arg1: Textual message + */ +SDT_PROBE_DEFINE2(fuse, , file, trace, "int", "char*"); static int fuse_fh_count = 0; @@ -102,9 +107,6 @@ fuse_filehandle_open(struct vnode *vp, fufh_type_t fuf int oflags = 0; int op = FUSE_OPEN; - fuse_trace_printf("fuse_filehandle_open(vp=%p, fufh_type=%d)\n", - vp, fufh_type); - if (fuse_filehandle_valid(vp, fufh_type)) { panic("FUSE: filehandle_open called despite valid fufh (type=%d)", fufh_type); @@ -118,6 +120,8 @@ fuse_filehandle_open(struct vnode *vp, fufh_type_t fuf if (vnode_isdir(vp)) { op = FUSE_OPENDIR; if (fufh_type != FUFH_RDONLY) { + SDT_PROBE2(fuse, , file, trace, 1, + "non-rdonly fh requested for a directory?"); printf("FUSE:non-rdonly fh requested for a directory?\n"); fufh_type = FUFH_RDONLY; } @@ -129,7 +133,8 @@ fuse_filehandle_open(struct vnode *vp, fufh_type_t fuf foi->flags = oflags; if ((err = fdisp_wait_answ(&fdi))) { - debug_printf("OUCH ... daemon didn't give fh (err = %d)\n", err); + SDT_PROBE2(fuse, , file, trace, 1, + "OUCH ... daemon didn't give fh"); if (err == ENOENT) { fuse_internal_vnode_disappear(vp); } @@ -167,9 +172,6 @@ fuse_filehandle_close(struct vnode *vp, fufh_type_t fu int err = 0; int op = FUSE_RELEASE; - fuse_trace_printf("fuse_filehandle_put(vp=%p, fufh_type=%d)\n", - vp, fufh_type); - fufh = &(fvdat->fufh[fufh_type]); if (!FUFH_IS_VALID(fufh)) { panic("FUSE: filehandle_put called on invalid fufh (type=%d)", @@ -266,7 +268,6 @@ fuse_filehandle_init(struct vnode *vp, fufh_type_t fuf struct fuse_vnode_data *fvdat = VTOFUD(vp); struct fuse_filehandle *fufh; - FS_DEBUG("id=%jd type=%d\n", (intmax_t)fh_id, fufh_type); fufh = &(fvdat->fufh[fufh_type]); MPASS(!FUFH_IS_VALID(fufh)); fufh->fh_id = fh_id; Modified: projects/fuse2/sys/fs/fuse/fuse_internal.c ============================================================================== --- projects/fuse2/sys/fs/fuse/fuse_internal.c Thu Feb 28 19:19:02 2019 (r344663) +++ projects/fuse2/sys/fs/fuse/fuse_internal.c Thu Feb 28 19:27:54 2019 (r344664) @@ -58,11 +58,10 @@ #include __FBSDID("$FreeBSD$"); -#include +#include #include #include #include -#include #include #include #include @@ -70,6 +69,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -94,8 +94,13 @@ __FBSDID("$FreeBSD$"); #include "fuse_file.h" #include "fuse_param.h" -#define FUSE_DEBUG_MODULE INTERNAL -#include "fuse_debug.h" +SDT_PROVIDER_DECLARE(fuse); +/* + * Fuse trace probe: + * arg0: verbosity. Higher numbers give more verbose messages + * arg1: Textual message + */ +SDT_PROBE_DEFINE2(fuse, , internal, trace, "int", "char*"); #ifdef ZERO_PAD_INCOMPLETE_BUFS static int isbzero(void *buf, size_t len); @@ -127,8 +132,6 @@ fuse_internal_access(struct vnode *vp, */ /* return 0;*/ - fuse_trace_printf_func(); - mp = vnode_mount(vp); vtype = vnode_vtype(vp); @@ -209,8 +212,6 @@ fuse_internal_access(struct vnode *vp, int fuse_internal_fsync_callback(struct fuse_ticket *tick, struct uio *uio) { - fuse_trace_printf_func(); - if (tick->tk_aw_ohead.error == ENOSYS) { fsess_set_notimpl(tick->tk_data->mp, fticket_opcode(tick)); } @@ -227,8 +228,6 @@ fuse_internal_fsync(struct vnode *vp, struct fuse_fsync_in *ffsi; struct fuse_dispatcher fdi; - fuse_trace_printf_func(); - if (vnode_isdir(vp)) { op = FUSE_FSYNCDIR; } @@ -386,8 +385,6 @@ fuse_internal_remove(struct vnode *dvp, err = 0; fvdat = VTOFUD(vp); - debug_printf("dvp=%p, cnp=%p, op=%d\n", vp, cnp, op); - fdisp_init(&fdi, cnp->cn_namelen + 1); fdisp_make_vp(&fdi, op, dvp, cnp->cn_thread, cnp->cn_cred); @@ -442,8 +439,6 @@ fuse_internal_newentry_makerequest(struct mount *mp, size_t bufsize, struct fuse_dispatcher *fdip) { - debug_printf("fdip=%p\n", fdip); - fdip->iosize = bufsize + cnp->cn_namelen + 1; fdisp_make(fdip, op, mp, dnid, cnp->cn_thread, cnp->cn_cred); @@ -526,9 +521,6 @@ fuse_internal_forget_send(struct mount *mp, struct fuse_dispatcher fdi; struct fuse_forget_in *ffi; - debug_printf("mp=%p, nodeid=%ju, nlookup=%ju\n", - mp, (uintmax_t)nodeid, (uintmax_t)nlookup); - /* * KASSERT(nlookup > 0, ("zero-times forget for vp #%llu", * (long long unsigned) nodeid)); @@ -574,7 +566,8 @@ fuse_internal_init_callback(struct fuse_ticket *tick, /* XXX: Do we want to check anything further besides this? */ if (fiio->major < 7) { - debug_printf("userpace version too low\n"); + SDT_PROBE2(fuse, , internal, trace, 1, + "userpace version too low"); err = EPROTONOSUPPORT; goto out; } Modified: projects/fuse2/sys/fs/fuse/fuse_io.c ============================================================================== --- projects/fuse2/sys/fs/fuse/fuse_io.c Thu Feb 28 19:19:02 2019 (r344663) +++ projects/fuse2/sys/fs/fuse/fuse_io.c Thu Feb 28 19:27:54 2019 (r344664) @@ -98,10 +98,14 @@ __FBSDID("$FreeBSD$"); #include "fuse_ipc.h" #include "fuse_io.h" -#define FUSE_DEBUG_MODULE IO -#include "fuse_debug.h" +SDT_PROVIDER_DECLARE(fuse); +/* + * Fuse trace probe: + * arg0: verbosity. Higher numbers give more verbose messages + * arg1: Textual message + */ +SDT_PROBE_DEFINE2(fuse, , io, trace, "int", "char*"); - static int fuse_read_directbackend(struct vnode *vp, struct uio *uio, struct ucred *cred, struct fuse_filehandle *fufh); @@ -115,6 +119,8 @@ static int fuse_write_biobackend(struct vnode *vp, struct uio *uio, struct ucred *cred, struct fuse_filehandle *fufh, int ioflag); +SDT_PROBE_DEFINE5(fuse, , io, io_dispatch, "struct vnode*", "struct uio*", + "int", "struct ucred*", "struct fuse_filehandle*"); int fuse_io_dispatch(struct vnode *vp, struct uio *uio, int ioflag, struct ucred *cred) @@ -130,6 +136,8 @@ fuse_io_dispatch(struct vnode *vp, struct uio *uio, in printf("FUSE: io dispatch: filehandles are closed\n"); return err; } + SDT_PROBE5(fuse, , io, io_dispatch, vp, uio, ioflag, cred, fufh); + /* * Ideally, when the daemon asks for direct io at open time, the * standard file flag should be set according to this, so that would @@ -145,12 +153,12 @@ fuse_io_dispatch(struct vnode *vp, struct uio *uio, in switch (uio->uio_rw) { case UIO_READ: if (directio) { - FS_DEBUG("direct read of vnode %ju via file handle %ju\n", - (uintmax_t)VTOILLU(vp), (uintmax_t)fufh->fh_id); + SDT_PROBE2(fuse, , io, trace, 1, + "direct read of vnode"); err = fuse_read_directbackend(vp, uio, cred, fufh); } else { - FS_DEBUG("buffered read of vnode %ju\n", - (uintmax_t)VTOILLU(vp)); + SDT_PROBE2(fuse, , io, trace, 1, + "buffered read of vnode"); err = fuse_read_biobackend(vp, uio, cred, fufh); } break; @@ -162,12 +170,12 @@ fuse_io_dispatch(struct vnode *vp, struct uio *uio, in * cached. */ if (directio || fuse_data_cache_mode == FUSE_CACHE_WT) { - FS_DEBUG("direct write of vnode %ju via file handle %ju\n", - (uintmax_t)VTOILLU(vp), (uintmax_t)fufh->fh_id); + SDT_PROBE2(fuse, , io, trace, 1, + "direct write of vnode"); err = fuse_write_directbackend(vp, uio, cred, fufh, ioflag); } else { - FS_DEBUG("buffered write of vnode %ju\n", - (uintmax_t)VTOILLU(vp)); + SDT_PROBE2(fuse, , io, trace, 1, + "buffered write of vnode"); err = fuse_write_biobackend(vp, uio, cred, fufh, ioflag); } break; @@ -178,6 +186,9 @@ fuse_io_dispatch(struct vnode *vp, struct uio *uio, in return (err); } +SDT_PROBE_DEFINE3(fuse, , io, read_bio_backend_start, "int", "int", "int"); +SDT_PROBE_DEFINE2(fuse, , io, read_bio_backend_feed, "int", "int"); +SDT_PROBE_DEFINE3(fuse, , io, read_bio_backend_end, "int", "ssize_t", "int"); static int fuse_read_biobackend(struct vnode *vp, struct uio *uio, struct ucred *cred, struct fuse_filehandle *fufh) @@ -190,9 +201,6 @@ fuse_read_biobackend(struct vnode *vp, struct uio *uio const int biosize = fuse_iosize(vp); - FS_DEBUG("resid=%zx offset=%jx fsize=%jx\n", - uio->uio_resid, uio->uio_offset, VTOFUD(vp)->filesize); - if (uio->uio_resid == 0) return (0); if (uio->uio_offset < 0) @@ -209,7 +217,8 @@ fuse_read_biobackend(struct vnode *vp, struct uio *uio lbn = uio->uio_offset / biosize; on = uio->uio_offset & (biosize - 1); - FS_DEBUG2G("biosize %d, lbn %d, on %d\n", biosize, (int)lbn, on); + SDT_PROBE3(fuse, , io, read_bio_backend_start, + biosize, (int)lbn, on); /* * Obtain the buffer cache block. Figure out the buffer size @@ -258,19 +267,22 @@ fuse_read_biobackend(struct vnode *vp, struct uio *uio if (on < bcount) n = MIN((unsigned)(bcount - on), uio->uio_resid); if (n > 0) { - FS_DEBUG2G("feeding buffeater with %d bytes of buffer %p," - " saying %d was asked for\n", - n, bp->b_data + on, n + (int)bp->b_resid); + SDT_PROBE2(fuse, , io, read_bio_backend_feed, + n, n + (int)bp->b_resid); err = uiomove(bp->b_data + on, n, uio); } brelse(bp); - FS_DEBUG2G("end of turn, err %d, uio->uio_resid %zd, n %d\n", - err, uio->uio_resid, n); + SDT_PROBE3(fuse, , io, read_bio_backend_end, err, + uio->uio_resid, n); } while (err == 0 && uio->uio_resid > 0 && n > 0); return (err); } +SDT_PROBE_DEFINE1(fuse, , io, read_directbackend_start, "struct fuse_read_in*"); +SDT_PROBE_DEFINE2(fuse, , io, read_directbackend_complete, + "struct fuse_dispatcher*", "struct uio*"); + static int fuse_read_directbackend(struct vnode *vp, struct uio *uio, struct ucred *cred, struct fuse_filehandle *fufh) @@ -301,17 +313,13 @@ fuse_read_directbackend(struct vnode *vp, struct uio * fri->size = MIN(uio->uio_resid, fuse_get_mpdata(vp->v_mount)->max_read); - FS_DEBUG2G("fri->fh %ju, fri->offset %ju, fri->size %ju\n", - (uintmax_t)fri->fh, (uintmax_t)fri->offset, - (uintmax_t)fri->size); + SDT_PROBE1(fuse, , io, read_directbackend_start, fri); if ((err = fdisp_wait_answ(&fdi))) goto out; - FS_DEBUG2G("complete: got iosize=%d, requested fri.size=%zd; " - "resid=%zd offset=%ju\n", - fri->size, fdi.iosize, uio->uio_resid, - (uintmax_t)uio->uio_offset); + SDT_PROBE2(fuse, , io, read_directbackend_complete, + fdi.iosize, uio); if ((err = uiomove(fdi.answ, MIN(fri->size, fdi.iosize), uio))) break; @@ -380,6 +388,10 @@ fuse_write_directbackend(struct vnode *vp, struct uio return (err); } +SDT_PROBE_DEFINE6(fuse, , io, write_biobackend_start, "int64_t", "int", "int", + "struct uio*", "int", "bool"); +SDT_PROBE_DEFINE2(fuse, , io, write_biobackend_append_race, "long", "int"); + static int fuse_write_biobackend(struct vnode *vp, struct uio *uio, struct ucred *cred, struct fuse_filehandle *fufh, int ioflag) @@ -393,8 +405,6 @@ fuse_write_biobackend(struct vnode *vp, struct uio *ui const int biosize = fuse_iosize(vp); KASSERT(uio->uio_rw == UIO_WRITE, ("ncl_write mode")); - FS_DEBUG("resid=%zx offset=%jx fsize=%jx\n", - uio->uio_resid, uio->uio_offset, fvdat->filesize); if (vp->v_type != VREG) return (EIO); if (uio->uio_offset < 0) @@ -421,10 +431,6 @@ fuse_write_biobackend(struct vnode *vp, struct uio *ui on = uio->uio_offset & (biosize - 1); n = MIN((unsigned)(biosize - on), uio->uio_resid); - FS_DEBUG2G("lbn %ju, on %d, n %d, uio offset %ju, uio resid %zd\n", - (uintmax_t)lbn, on, n, - (uintmax_t)uio->uio_offset, uio->uio_resid); - again: /* * Handle direct append and file extension cases, calculate @@ -438,7 +444,8 @@ again: * readers from reading garbage. */ bcount = on; - FS_DEBUG("getting block from OS, bcount %d\n", bcount); + SDT_PROBE6(fuse, , io, write_biobackend_start, + lbn, on, n, uio, bcount, true); bp = getblk(vp, lbn, bcount, PCATCH, 0, 0); if (bp != NULL) { @@ -468,7 +475,8 @@ again: bcount = fvdat->filesize - (off_t)lbn *biosize; } - FS_DEBUG("getting block from OS, bcount %d\n", bcount); + SDT_PROBE6(fuse, , io, write_biobackend_start, + lbn, on, n, uio, bcount, false); bp = getblk(vp, lbn, bcount, PCATCH, 0, 0); if (bp && uio->uio_offset + n > fvdat->filesize) { err = fuse_vnode_setsize(vp, cred, @@ -530,7 +538,7 @@ again: */ if (bp->b_dirtyend > bcount) { - FS_DEBUG("FUSE append race @%lx:%d\n", + SDT_PROBE2(fuse, , io, write_biobackend_append_race, (long)bp->b_blkno * biosize, bp->b_dirtyend - bcount); bp->b_dirtyend = bcount; @@ -626,9 +634,6 @@ fuse_io_strategy(struct vnode *vp, struct buf *bp) MPASS(vp->v_type == VREG || vp->v_type == VDIR); MPASS(bp->b_iocmd == BIO_READ || bp->b_iocmd == BIO_WRITE); - FS_DEBUG("inode=%ju offset=%jd resid=%ld\n", - (uintmax_t)VTOI(vp), (intmax_t)(((off_t)bp->b_blkno) * biosize), - bp->b_bcount); error = fuse_filehandle_getrw(vp, (bp->b_iocmd == BIO_READ) ? FUFH_RDONLY : FUFH_WRONLY, &fufh); @@ -701,7 +706,8 @@ fuse_io_strategy(struct vnode *vp, struct buf *bp) * If we only need to commit, try to commit */ if (bp->b_flags & B_NEEDCOMMIT) { - FS_DEBUG("write: B_NEEDCOMMIT flags set\n"); + SDT_PROBE2(fuse, , io, trace, 1, + "write: B_NEEDCOMMIT flags set"); } /* * Setup for actual write Modified: projects/fuse2/sys/fs/fuse/fuse_ipc.c ============================================================================== --- projects/fuse2/sys/fs/fuse/fuse_ipc.c Thu Feb 28 19:19:02 2019 (r344663) +++ projects/fuse2/sys/fs/fuse/fuse_ipc.c Thu Feb 28 19:27:54 2019 (r344664) @@ -58,22 +58,24 @@ #include __FBSDID("$FreeBSD$"); -#include +#include #include #include #include -#include #include #include #include #include +#include #include #include #include #include #include #include +#include #include +#include #include #include #include @@ -84,8 +86,13 @@ __FBSDID("$FreeBSD$"); #include "fuse_ipc.h" #include "fuse_internal.h" -#define FUSE_DEBUG_MODULE IPC -#include "fuse_debug.h" +SDT_PROVIDER_DECLARE(fuse); +/* + * Fuse trace probe: + * arg0: verbosity. Higher numbers give more verbose messages + * arg1: Textual message + */ +SDT_PROBE_DEFINE2(fuse, , ipc, trace, "int", "char*"); static struct fuse_ticket *fticket_alloc(struct fuse_data *data); static void fticket_refresh(struct fuse_ticket *ftick); @@ -146,8 +153,6 @@ fiov_init(struct fuse_iov *fiov, size_t size) { uint32_t msize = FU_AT_LEAST(size); - debug_printf("fiov=%p, size=%zd\n", fiov, size); - fiov->len = 0; fiov->base = malloc(msize, M_FUSEMSG, M_WAITOK | M_ZERO); @@ -159,8 +164,6 @@ fiov_init(struct fuse_iov *fiov, size_t size) void fiov_teardown(struct fuse_iov *fiov) { - debug_printf("fiov=%p\n", fiov); - MPASS(fiov->base != NULL); free(fiov->base, M_FUSEMSG); } @@ -168,8 +171,6 @@ fiov_teardown(struct fuse_iov *fiov) void fiov_adjust(struct fuse_iov *fiov, size_t size) { - debug_printf("fiov=%p, size=%zd\n", fiov, size); - if (fiov->allocated_size < size || (fuse_iov_permanent_bufsize >= 0 && fiov->allocated_size - size > fuse_iov_permanent_bufsize && @@ -189,8 +190,6 @@ fiov_adjust(struct fuse_iov *fiov, size_t size) void fiov_refresh(struct fuse_iov *fiov) { - debug_printf("fiov=%p\n", fiov); - bzero(fiov->base, fiov->len); fiov_adjust(fiov, 0); } @@ -201,8 +200,6 @@ fticket_ctor(void *mem, int size, void *arg, int flags struct fuse_ticket *ftick = mem; struct fuse_data *data = arg; - debug_printf("ftick=%p data=%p\n", ftick, data); - FUSE_ASSERT_MS_DONE(ftick); FUSE_ASSERT_AW_DONE(ftick); @@ -227,8 +224,6 @@ fticket_dtor(void *mem, int size, void *arg) { struct fuse_ticket *ftick = mem; - debug_printf("ftick=%p\n", ftick); - FUSE_ASSERT_MS_DONE(ftick); FUSE_ASSERT_AW_DONE(ftick); @@ -240,8 +235,6 @@ fticket_init(void *mem, int size, int flags) { struct fuse_ticket *ftick = mem; - FS_DEBUG("ftick=%p\n", ftick); - bzero(ftick, sizeof(struct fuse_ticket)); fiov_init(&ftick->tk_ms_fiov, sizeof(struct fuse_in_header)); @@ -259,8 +252,6 @@ fticket_fini(void *mem, int size) { struct fuse_ticket *ftick = mem; - FS_DEBUG("ftick=%p\n", ftick); - fiov_teardown(&ftick->tk_ms_fiov); fiov_teardown(&ftick->tk_aw_fiov); mtx_destroy(&ftick->tk_aw_mtx); @@ -282,8 +273,6 @@ static inline void fticket_refresh(struct fuse_ticket *ftick) { - debug_printf("ftick=%p\n", ftick); - FUSE_ASSERT_MS_DONE(ftick); FUSE_ASSERT_AW_DONE(ftick); @@ -310,9 +299,6 @@ fticket_wait_answer(struct fuse_ticket *ftick) int err = 0; struct fuse_data *data; - debug_printf("ftick=%p\n", ftick); - fuse_lck_mtx_lock(ftick->tk_aw_mtx); - if (fticket_answered(ftick)) { goto out; } @@ -338,7 +324,8 @@ fticket_wait_answer(struct fuse_ticket *ftick) } out: if (!(err || fticket_answered(ftick))) { - debug_printf("FUSE: requester was woken up but still no answer"); + SDT_PROBE2(fuse, , ipc, trace, 1, + "FUSE: requester was woken up but still no answer"); err = ENXIO; } fuse_lck_mtx_unlock(ftick->tk_aw_mtx); @@ -353,29 +340,16 @@ fticket_aw_pull_uio(struct fuse_ticket *ftick, struct int err = 0; size_t len = uio_resid(uio); - debug_printf("ftick=%p, uio=%p\n", ftick, uio); - if (len) { switch (ftick->tk_aw_type) { case FT_A_FIOV: fiov_adjust(fticket_resp(ftick), len); err = uiomove(fticket_resp(ftick)->base, len, uio); - if (err) { - debug_printf("FUSE: FT_A_FIOV: error is %d" - " (%p, %zd, %p)\n", - err, fticket_resp(ftick)->base, - len, uio); - } break; case FT_A_BUF: ftick->tk_aw_bufsize = len; err = uiomove(ftick->tk_aw_bufdata, len, uio); - if (err) { - debug_printf("FUSE: FT_A_BUF: error is %d" - " (%p, %zd, %p)\n", - err, ftick->tk_aw_bufdata, len, uio); - } break; default: @@ -390,8 +364,6 @@ fticket_pull(struct fuse_ticket *ftick, struct uio *ui { int err = 0; - debug_printf("ftick=%p, uio=%p\n", ftick, uio); - if (ftick->tk_aw_ohead.error) { return 0; } @@ -407,8 +379,6 @@ fdata_alloc(struct cdev *fdev, struct ucred *cred) { struct fuse_data *data; - debug_printf("fdev=%p\n", fdev); - data = malloc(sizeof(struct fuse_data), M_FUSEMSG, M_WAITOK | M_ZERO); data->fdev = fdev; @@ -427,10 +397,6 @@ fdata_alloc(struct cdev *fdev, struct ucred *cred) void fdata_trydestroy(struct fuse_data *data) { - FS_DEBUG("data=%p data.mp=%p data.fdev=%p data.flags=%04x\n", - data, data->mp, data->fdev, data->dataflags); - - FS_DEBUG("destroy: data=%p\n", data); data->ref--; MPASS(data->ref >= 0); if (data->ref != 0) @@ -449,8 +415,6 @@ fdata_trydestroy(struct fuse_data *data) void fdata_set_dead(struct fuse_data *data) { - debug_printf("data=%p\n", data); - FUSE_LOCK(); if (fdata_get_dead(data)) { FUSE_UNLOCK(); @@ -471,8 +435,6 @@ fuse_ticket_fetch(struct fuse_data *data) int err = 0; struct fuse_ticket *ftick; - debug_printf("data=%p\n", data); - ftick = fticket_alloc(data); if (!(data->dataflags & FSESS_INITED)) { @@ -495,7 +457,6 @@ fuse_ticket_drop(struct fuse_ticket *ftick) int die; die = refcount_release(&ftick->tk_refcount); - debug_printf("ftick=%p refcount=%d\n", ftick, ftick->tk_refcount); if (die) fticket_destroy(ftick); @@ -505,9 +466,6 @@ fuse_ticket_drop(struct fuse_ticket *ftick) void fuse_insert_callback(struct fuse_ticket *ftick, fuse_handler_t * handler) { - debug_printf("ftick=%p, handler=%p data=%p\n", ftick, ftick->tk_data, - handler); - if (fdata_get_dead(ftick->tk_data)) { return; } @@ -521,8 +479,6 @@ fuse_insert_callback(struct fuse_ticket *ftick, fuse_h void fuse_insert_message(struct fuse_ticket *ftick) { - debug_printf("ftick=%p\n", ftick); - if (ftick->tk_flag & FT_DIRTY) { panic("FUSE: ticket reused without being refreshed"); } @@ -544,8 +500,6 @@ fuse_body_audit(struct fuse_ticket *ftick, size_t blen int err = 0; enum fuse_opcode opcode; - debug_printf("ftick=%p, blen = %zu\n", ftick, blen); - opcode = fticket_opcode(ftick); switch (opcode) { @@ -719,9 +673,6 @@ fuse_setup_ihead(struct fuse_in_header *ihead, struct ihead->nodeid = nid; ihead->opcode = op; - debug_printf("ihead=%p, ftick=%p, nid=%ju, op=%d, blen=%zu\n", - ihead, ftick, (uintmax_t)nid, op, blen); - ihead->pid = pid; ihead->uid = cred->cr_uid; ihead->gid = cred->cr_rgid; @@ -738,8 +689,6 @@ fuse_standard_handler(struct fuse_ticket *ftick, struc { int err = 0; - debug_printf("ftick=%p, uio=%p\n", ftick, uio); - err = fticket_pull(ftick, uio); fuse_lck_mtx_lock(ftick->tk_aw_mtx); @@ -760,9 +709,6 @@ fdisp_make_pid(struct fuse_dispatcher *fdip, enum fuse { struct fuse_data *data = fuse_get_mpdata(mp); - debug_printf("fdip=%p, op=%d, mp=%p, nid=%ju\n", - fdip, op, mp, (uintmax_t)nid); - if (fdip->tick) { fticket_refresh(fdip->tick); } else { @@ -788,12 +734,13 @@ void fdisp_make_vp(struct fuse_dispatcher *fdip, enum fuse_opcode op, struct vnode *vp, struct thread *td, struct ucred *cred) { - debug_printf("fdip=%p, op=%d, vp=%p\n", fdip, op, vp); RECTIFY_TDCR(td, cred); return fdisp_make_pid(fdip, op, vnode_mount(vp), VTOI(vp), td->td_proc->p_pid, cred); } +SDT_PROBE_DEFINE2(fuse, , ipc, fdisp_wait_answ_error, "char*", "int"); + int fdisp_wait_answ(struct fuse_dispatcher *fdip) { @@ -804,8 +751,6 @@ fdisp_wait_answ(struct fuse_dispatcher *fdip) fuse_insert_message(fdip->tick); if ((err = fticket_wait_answer(fdip->tick))) { - debug_printf("IPC: interrupted, err = %d\n", err); - fuse_lck_mtx_lock(fdip->tick->tk_aw_mtx); if (fticket_answered(fdip->tick)) { @@ -814,7 +759,8 @@ fdisp_wait_answ(struct fuse_dispatcher *fdip) * the standard handler has completed his job. * So we drop the ticket and exit as usual. */ - debug_printf("IPC: already answered\n"); + SDT_PROBE2(fuse, , ipc, fdisp_wait_answ_error, + "IPC: interrupted, already answered", err); fuse_lck_mtx_unlock(fdip->tick->tk_aw_mtx); goto out; } else { @@ -823,23 +769,23 @@ fdisp_wait_answ(struct fuse_dispatcher *fdip) * Then by setting the answered flag we get *him* * to drop the ticket. */ - debug_printf("IPC: setting to answered\n"); + SDT_PROBE2(fuse, , ipc, fdisp_wait_answ_error, + "IPC: interrupted, setting to answered", err); fticket_set_answered(fdip->tick); fuse_lck_mtx_unlock(fdip->tick->tk_aw_mtx); return err; } } - debug_printf("IPC: not interrupted, err = %d\n", err); if (fdip->tick->tk_aw_errno) { - debug_printf("IPC: explicit EIO-ing, tk_aw_errno = %d\n", - fdip->tick->tk_aw_errno); + SDT_PROBE2(fuse, , ipc, fdisp_wait_answ_error, + "IPC: explicit EIO-ing", fdip->tick->tk_aw_errno); err = EIO; goto out; } if ((err = fdip->tick->tk_aw_ohead.error)) { - debug_printf("IPC: setting status to %d\n", - fdip->tick->tk_aw_ohead.error); + SDT_PROBE2(fuse, , ipc, fdisp_wait_answ_error, + "IPC: setting status", fdip->tick->tk_aw_ohead.error); /* * This means a "proper" fuse syscall error. * We record this value so the caller will @@ -855,13 +801,9 @@ fdisp_wait_answ(struct fuse_dispatcher *fdip) fdip->answ = fticket_resp(fdip->tick)->base; fdip->iosize = fticket_resp(fdip->tick)->len; - debug_printf("IPC: all is well\n"); - return 0; out: - debug_printf("IPC: dropping ticket, err = %d\n", err); - return err; } Modified: projects/fuse2/sys/fs/fuse/fuse_main.c ============================================================================== --- projects/fuse2/sys/fs/fuse/fuse_main.c Thu Feb 28 19:19:02 2019 (r344663) +++ projects/fuse2/sys/fs/fuse/fuse_main.c Thu Feb 28 19:27:54 2019 (r344664) @@ -67,11 +67,13 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include #include #include *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Fri Mar 1 15:49:12 2019 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 113BD151BAB0 for ; Fri, 1 Mar 2019 15:49:12 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A45A5856BD; Fri, 1 Mar 2019 15:49:11 +0000 (UTC) (envelope-from asomers@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 959F41EC2E; Fri, 1 Mar 2019 15:49:11 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x21FnBAw091830; Fri, 1 Mar 2019 15:49:11 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x21FnBuC091829; Fri, 1 Mar 2019 15:49:11 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <201903011549.x21FnBuC091829@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Fri, 1 Mar 2019 15:49:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r344703 - projects/fuse2/sys/fs/fuse X-SVN-Group: projects X-SVN-Commit-Author: asomers X-SVN-Commit-Paths: projects/fuse2/sys/fs/fuse X-SVN-Commit-Revision: 344703 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: A45A5856BD X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.96 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.96)[-0.958,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Mar 2019 15:49:12 -0000 Author: asomers Date: Fri Mar 1 15:49:11 2019 New Revision: 344703 URL: https://svnweb.freebsd.org/changeset/base/344703 Log: Fix typos from r344664 Sponsored by: The FreeBSD Foundation Modified: projects/fuse2/sys/fs/fuse/fuse_ipc.c Modified: projects/fuse2/sys/fs/fuse/fuse_ipc.c ============================================================================== --- projects/fuse2/sys/fs/fuse/fuse_ipc.c Fri Mar 1 15:00:13 2019 (r344702) +++ projects/fuse2/sys/fs/fuse/fuse_ipc.c Fri Mar 1 15:49:11 2019 (r344703) @@ -66,7 +66,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #include #include @@ -75,7 +74,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #include #include @@ -298,6 +296,8 @@ fticket_wait_answer(struct fuse_ticket *ftick) sigset_t tset; int err = 0; struct fuse_data *data; + + fuse_lck_mtx_lock(ftick->tk_aw_mtx); if (fticket_answered(ftick)) { goto out; From owner-svn-src-projects@freebsd.org Fri Mar 1 15:51:40 2019 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 35419151BDB6 for ; Fri, 1 Mar 2019 15:51:40 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 725D5859E2; Fri, 1 Mar 2019 15:51:39 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1]) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id x21FpZW6062374; Fri, 1 Mar 2019 07:51:35 -0800 (PST) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: (from freebsd@localhost) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id x21FpZUK062373; Fri, 1 Mar 2019 07:51:35 -0800 (PST) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201903011551.x21FpZUK062373@pdx.rh.CN85.dnsmgr.net> Subject: Re: svn commit: r344703 - projects/fuse2/sys/fs/fuse In-Reply-To: <201903011549.x21FnBuC091829@repo.freebsd.org> To: Alan Somers Date: Fri, 1 Mar 2019 07:51:35 -0800 (PST) CC: src-committers@freebsd.org, svn-src-projects@freebsd.org Reply-To: rgrimes@freebsd.org X-Mailer: ELM [version 2.4ME+ PL121h (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-Rspamd-Queue-Id: 725D5859E2 X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-6.94 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.94)[-0.942,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Mar 2019 15:51:40 -0000 [ Charset UTF-8 unsupported, converting... ] > Author: asomers > Date: Fri Mar 1 15:49:11 2019 > New Revision: 344703 > URL: https://svnweb.freebsd.org/changeset/base/344703 > > Log: > Fix typos from r344664 How is removing 2 includes and adding a function call a typo, this looks much more like: Add missing lock call. > Sponsored by: The FreeBSD Foundation > > Modified: > projects/fuse2/sys/fs/fuse/fuse_ipc.c > > Modified: projects/fuse2/sys/fs/fuse/fuse_ipc.c > ============================================================================== > --- projects/fuse2/sys/fs/fuse/fuse_ipc.c Fri Mar 1 15:00:13 2019 (r344702) > +++ projects/fuse2/sys/fs/fuse/fuse_ipc.c Fri Mar 1 15:49:11 2019 (r344703) > @@ -66,7 +66,6 @@ __FBSDID("$FreeBSD$"); > #include > #include > #include > -#include > #include > #include > #include > @@ -75,7 +74,6 @@ __FBSDID("$FreeBSD$"); > #include > #include > #include > -#include > #include > #include > #include > @@ -298,6 +296,8 @@ fticket_wait_answer(struct fuse_ticket *ftick) > sigset_t tset; > int err = 0; > struct fuse_data *data; > + > + fuse_lck_mtx_lock(ftick->tk_aw_mtx); > > if (fticket_answered(ftick)) { > goto out; > > -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-projects@freebsd.org Fri Mar 1 15:56:10 2019 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6F408151BF53 for ; Fri, 1 Mar 2019 15:56:10 +0000 (UTC) (envelope-from asomers@gmail.com) Received: from mail-lj1-f172.google.com (mail-lj1-f172.google.com [209.85.208.172]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id DC18185DA7; Fri, 1 Mar 2019 15:56:09 +0000 (UTC) (envelope-from asomers@gmail.com) Received: by mail-lj1-f172.google.com with SMTP id v16so20798862ljg.13; Fri, 01 Mar 2019 07:56:09 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=T4CFONigQVWhGwAXntDGE54WKBy/03QKQQka35QKWN4=; b=Vom9H9UXvLhRy0EDbinM9UgJzAbpJzCKcdshlWC1mQ+DNlJNEyvkBVaMiAPjiw5uMk AXbAVHjXHKU6F3kjVGu1N6wskZOjJgSnxNNNb8RrfmjYijS2q/qvcOSOr+/WdR7i/MJD ggTmY3MN//VfzbRNO92lmpbY17+HMvB/iNdvoLqbZt5GoETm4rD9WKjfZCiOFmj5FiKc +UgqowWh7udVss15svNWaKlznNAiTByFMQuNAgnKke7PcXVXleRy8proh0bi5ozfTFR8 maxcftVsn70p7vgM83+2itDZbkOgS+cZ03IIivKZEbWmXAGOP92cpDzDI6AQ8iOnLPYT U67Q== X-Gm-Message-State: APjAAAUtPP81JIPg+dyBZ3BAaa/gU7RiqqbtsT6HwPSdRJqlz3P4Dxr6 IvulJKDFlUbbs01ya+y+JpUuNddZaZLMGr5ArnF93g== X-Google-Smtp-Source: APXvYqyM4rRllt1IR9JIthR5L0LlZ8QriqLIUKuSIvShdZzU8c3ERzIzo0Tr6rNLQUweX5pBoSpHN/I0hhdrH66NvfI= X-Received: by 2002:a2e:81c1:: with SMTP id s1mr2867378ljg.29.1551455767633; Fri, 01 Mar 2019 07:56:07 -0800 (PST) MIME-Version: 1.0 References: <201903011549.x21FnBuC091829@repo.freebsd.org> <201903011551.x21FpZUK062373@pdx.rh.CN85.dnsmgr.net> In-Reply-To: <201903011551.x21FpZUK062373@pdx.rh.CN85.dnsmgr.net> From: Alan Somers Date: Fri, 1 Mar 2019 08:55:55 -0700 Message-ID: Subject: Re: svn commit: r344703 - projects/fuse2/sys/fs/fuse To: rgrimes@freebsd.org Cc: src-committers , svn-src-projects@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: DC18185DA7 X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-6.93 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[]; NEURAL_HAM_SHORT(-0.93)[-0.934,0] X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Mar 2019 15:56:10 -0000 The typo was that the previous change accidentally deleted that lock call, and duplicated the include lines. On Fri, Mar 1, 2019 at 8:51 AM Rodney W. Grimes wrote: > > [ Charset UTF-8 unsupported, converting... ] > > Author: asomers > > Date: Fri Mar 1 15:49:11 2019 > > New Revision: 344703 > > URL: https://svnweb.freebsd.org/changeset/base/344703 > > > > Log: > > Fix typos from r344664 > > How is removing 2 includes and adding a function call a typo, > this looks much more like: > Add missing lock call. > > > > Sponsored by: The FreeBSD Foundation > > > > Modified: > > projects/fuse2/sys/fs/fuse/fuse_ipc.c > > > > Modified: projects/fuse2/sys/fs/fuse/fuse_ipc.c > > ============================================================================== > > --- projects/fuse2/sys/fs/fuse/fuse_ipc.c Fri Mar 1 15:00:13 2019 (r344702) > > +++ projects/fuse2/sys/fs/fuse/fuse_ipc.c Fri Mar 1 15:49:11 2019 (r344703) > > @@ -66,7 +66,6 @@ __FBSDID("$FreeBSD$"); > > #include > > #include > > #include > > -#include > > #include > > #include > > #include > > @@ -75,7 +74,6 @@ __FBSDID("$FreeBSD$"); > > #include > > #include > > #include > > -#include > > #include > > #include > > #include > > @@ -298,6 +296,8 @@ fticket_wait_answer(struct fuse_ticket *ftick) > > sigset_t tset; > > int err = 0; > > struct fuse_data *data; > > + > > + fuse_lck_mtx_lock(ftick->tk_aw_mtx); > > > > if (fticket_answered(ftick)) { > > goto out; > > > > > > -- > Rod Grimes rgrimes@freebsd.org From owner-svn-src-projects@freebsd.org Fri Mar 1 23:53:07 2019 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A4EEA15065C1 for ; Fri, 1 Mar 2019 23:53:07 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 563BC69F5D; Fri, 1 Mar 2019 23:53:07 +0000 (UTC) (envelope-from asomers@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4A11A24147; Fri, 1 Mar 2019 23:53:07 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x21Nr72f051761; Fri, 1 Mar 2019 23:53:07 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x21Nr5do051752; Fri, 1 Mar 2019 23:53:05 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <201903012353.x21Nr5do051752@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Fri, 1 Mar 2019 23:53:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r344715 - in projects/fuse2: etc/mtree tests/sys/fs tests/sys/fs/fuse X-SVN-Group: projects X-SVN-Commit-Author: asomers X-SVN-Commit-Paths: in projects/fuse2: etc/mtree tests/sys/fs tests/sys/fs/fuse X-SVN-Commit-Revision: 344715 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 563BC69F5D X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.97)[-0.966,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Mar 2019 23:53:08 -0000 Author: asomers Date: Fri Mar 1 23:53:05 2019 New Revision: 344715 URL: https://svnweb.freebsd.org/changeset/base/344715 Log: Begin a fuse(4) test suite It only tests the kernel portion of fuse, not the userspace portion (which comes from sysutils/fusefs-libs). The kernel-userspace interface is de-facto standardized, and this test suite seeks to validate FreeBSD's implementation. It uses GoogleMock to substitute for a userspace daemon and validate the kernel's behavior in response to filesystem access. GoogleMock is convenient because it can validate the order, number, and arguments of each operation, and return canned responses. But that also means that the test suite must use GoogleTest, since GoogleMock is incompatible with atf-c++ and atf.test.mk does not allow C++ programs to use atf-c. This commit adds the first 10 test cases out of an estimated 130 total. PR: 235775, 235773 Sponsored by: The FreeBSD Foundation Added: projects/fuse2/tests/sys/fs/fuse/ projects/fuse2/tests/sys/fs/fuse/Makefile (contents, props changed) projects/fuse2/tests/sys/fs/fuse/getattr.cc (contents, props changed) projects/fuse2/tests/sys/fs/fuse/lookup.cc (contents, props changed) projects/fuse2/tests/sys/fs/fuse/mockfs.cc (contents, props changed) projects/fuse2/tests/sys/fs/fuse/mockfs.hh projects/fuse2/tests/sys/fs/fuse/utils.cc (contents, props changed) projects/fuse2/tests/sys/fs/fuse/utils.hh Modified: projects/fuse2/etc/mtree/BSD.tests.dist projects/fuse2/tests/sys/fs/Makefile Modified: projects/fuse2/etc/mtree/BSD.tests.dist ============================================================================== --- projects/fuse2/etc/mtree/BSD.tests.dist Fri Mar 1 23:30:23 2019 (r344714) +++ projects/fuse2/etc/mtree/BSD.tests.dist Fri Mar 1 23:53:05 2019 (r344715) @@ -701,6 +701,8 @@ file .. fs + fuse + .. tmpfs .. .. Modified: projects/fuse2/tests/sys/fs/Makefile ============================================================================== --- projects/fuse2/tests/sys/fs/Makefile Fri Mar 1 23:30:23 2019 (r344714) +++ projects/fuse2/tests/sys/fs/Makefile Fri Mar 1 23:53:05 2019 (r344715) @@ -7,6 +7,7 @@ TESTSDIR= ${TESTSBASE}/sys/fs TESTSRC= ${SRCTOP}/contrib/netbsd-tests/fs #TESTS_SUBDIRS+= nullfs # XXX: needs rump +TESTS_SUBDIRS+= fuse TESTS_SUBDIRS+= tmpfs ${PACKAGE}FILES+= h_funcs.subr Added: projects/fuse2/tests/sys/fs/fuse/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/fuse2/tests/sys/fs/fuse/Makefile Fri Mar 1 23:53:05 2019 (r344715) @@ -0,0 +1,47 @@ +# $FreeBSD$ + +PACKAGE= tests + +TESTSDIR= ${TESTSBASE}/sys/fs/fuse + +ATF_TESTS_CXX+= getattr +ATF_TESTS_CXX+= lookup + +SRCS.getattr+= getattr.cc +SRCS.getattr+= getmntopts.c +SRCS.getattr+= mockfs.cc +SRCS.getattr+= utils.cc + +SRCS.lookup+= lookup.cc +SRCS.lookup+= getmntopts.c +SRCS.lookup+= mockfs.cc +SRCS.lookup+= utils.cc + +TEST_METADATA+= timeout=10 +TEST_METADATA+= required_user=root + +FUSEFS= ${.CURDIR:H:H:H:H}/sys/fs/fuse +MOUNT= ${.CURDIR:H:H:H:H}/sbin/mount +CFLAGS+= -I${.CURDIR:H:H:H} +CFLAGS+= -I${FUSEFS} +CFLAGS+= -I${MOUNT} +.PATH: ${MOUNT} + +LIBADD+= pthread +WARNS?= 6 +NO_WTHREAD_SAFETY= # GoogleTest fails Clang's thread safety check + +# Use googlemock from ports until after the import-googletest-1.8.1 branch +# merges to head. +CXXFLAGS+= -I/usr/local/include +CXXFLAGS+= -DGTEST_HAS_POSIX_RE=1 +CXXFLAGS+= -DGTEST_HAS_PTHREAD=1 +CXXFLAGS+= -DGTEST_HAS_STREAM_REDIRECTION=1 +CXXFLAGS+= -frtti +CXXFLAGS+= -std=c++14 +LDADD+= ${LOCALBASE}/lib/libgmock.a +LDADD+= ${LOCALBASE}/lib/libgtest.a +# Without -lpthread, gtest fails at _runtime_ with the error pthread_key_create(&key, &DeleteThreadLocalValue)failed with error 78 +LIBADD+= pthread + +.include Added: projects/fuse2/tests/sys/fs/fuse/getattr.cc ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/fuse2/tests/sys/fs/fuse/getattr.cc Fri Mar 1 23:53:05 2019 (r344715) @@ -0,0 +1,241 @@ +/*- + * Copyright (c) 2019 The FreeBSD Foundation + * All rights reserved. + * + * This software was developed by BFF Storage Systems, LLC 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: + * 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 "mockfs.hh" +#include "utils.hh" + +using namespace testing; + +class Getattr : public FuseTest {}; + +/* + * If getattr returns a non-zero cache timeout, then subsequent VOP_GETATTRs + * should use the cached attributes, rather than query the daemon + */ +/* https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=235775 */ +TEST_F(Getattr, DISABLED_attr_cache) +{ + const char FULLPATH[] = "mountpoint/some_file.txt"; + const char RELPATH[] = "some_file.txt"; + const uint64_t ino = 42; + const uint64_t generation = 13; + struct stat sb; + + EXPECT_CALL(*m_mock, process( + ResultOf([=](auto in) { + return (in->header.opcode == FUSE_LOOKUP && + strcmp(in->body.lookup, RELPATH) == 0); + }, Eq(true)), + _) + ).WillRepeatedly(Invoke([](auto in, auto out) { + out->header.unique = in->header.unique; + SET_OUT_HEADER_LEN(out, entry); + out->body.entry.attr.mode = S_IFREG | 0644; + out->body.entry.nodeid = ino; + out->body.entry.generation = generation; + })); + EXPECT_CALL(*m_mock, process( + ResultOf([](auto in) { + return (in->header.opcode == FUSE_GETATTR && + in->header.nodeid == ino); + }, Eq(true)), + _) + ).WillOnce(Invoke([](auto in, auto out) { + out->header.unique = in->header.unique; + SET_OUT_HEADER_LEN(out, attr); + out->body.attr.attr_valid = UINT64_MAX; + out->body.attr.attr.ino = ino; // Must match nodeid + out->body.attr.attr.mode = S_IFREG | 0644; + })); + EXPECT_EQ(0, stat(FULLPATH, &sb)); + /* The second stat(2) should use cached attributes */ + EXPECT_EQ(0, stat(FULLPATH, &sb)); +} + +/* + * If getattr returns a finite but non-zero cache timeout, then we should + * discard the cached attributes and requery the daemon after the timeout + * period passes. + */ +/* https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=235773 */ +TEST_F(Getattr, attr_cache_timeout) +{ + const char FULLPATH[] = "mountpoint/some_file.txt"; + const char RELPATH[] = "some_file.txt"; + const uint64_t ino = 42; + const uint64_t generation = 13; + struct stat sb; + /* + * The timeout should be longer than the longest plausible time the + * daemon would take to complete a write(2) to /dev/fuse, but no longer. + */ + long timeout_ns = 250'000'000; + + EXPECT_CALL(*m_mock, process( + ResultOf([=](auto in) { + return (in->header.opcode == FUSE_LOOKUP && + strcmp(in->body.lookup, RELPATH) == 0); + }, Eq(true)), + _) + ).WillRepeatedly(Invoke([](auto in, auto out) { + out->header.unique = in->header.unique; + SET_OUT_HEADER_LEN(out, entry); + out->body.entry.entry_valid = UINT64_MAX; + out->body.entry.attr.mode = S_IFREG | 0644; + out->body.entry.nodeid = ino; + out->body.entry.generation = generation; + })); + EXPECT_CALL(*m_mock, process( + ResultOf([](auto in) { + return (in->header.opcode == FUSE_GETATTR && + in->header.nodeid == ino); + }, Eq(true)), + _) + ).Times(2) + .WillRepeatedly(Invoke([=](auto in, auto out) { + out->header.unique = in->header.unique; + SET_OUT_HEADER_LEN(out, attr); + out->body.attr.attr_valid_nsec = timeout_ns; + out->body.attr.attr_valid = UINT64_MAX; + out->body.attr.attr.ino = ino; // Must match nodeid + out->body.attr.attr.mode = S_IFREG | 0644; + })); + EXPECT_EQ(0, stat(FULLPATH, &sb)); + usleep(2 * timeout_ns / 1000); + /* Timeout has expire. stat(2) should requery the daemon */ + EXPECT_EQ(0, stat(FULLPATH, &sb)); +} + +TEST_F(Getattr, enoent) +{ + const char FULLPATH[] = "mountpoint/some_file.txt"; + const char RELPATH[] = "some_file.txt"; + struct stat sb; + const uint64_t ino = 42; + + EXPECT_CALL(*m_mock, process( + ResultOf([=](auto in) { + return (in->header.opcode == FUSE_LOOKUP && + strcmp(in->body.lookup, RELPATH) == 0); + }, Eq(true)), + _) + ).WillOnce(Invoke([](auto in, auto out) { + out->header.unique = in->header.unique; + SET_OUT_HEADER_LEN(out, entry); + out->body.entry.attr.mode = 0100644; + out->body.entry.nodeid = ino; + })); + + EXPECT_CALL(*m_mock, process( + ResultOf([](auto in) { + return (in->header.opcode == FUSE_GETATTR && + in->header.nodeid == ino); + }, Eq(true)), + _) + ).WillOnce(Invoke([](auto in, auto out) { + out->header.unique = in->header.unique; + out->header.error = -ENOENT; + out->header.len = sizeof(out->header); + })); + EXPECT_NE(0, stat(FULLPATH, &sb)); + EXPECT_EQ(ENOENT, errno); +} + +TEST_F(Getattr, ok) +{ + const char FULLPATH[] = "mountpoint/some_file.txt"; + const char RELPATH[] = "some_file.txt"; + const uint64_t ino = 42; + const uint64_t generation = 13; + struct stat sb; + + EXPECT_CALL(*m_mock, process( + ResultOf([=](auto in) { + return (in->header.opcode == FUSE_LOOKUP && + strcmp(in->body.lookup, RELPATH) == 0); + }, Eq(true)), + _) + ).WillOnce(Invoke([](auto in, auto out) { + out->header.unique = in->header.unique; + SET_OUT_HEADER_LEN(out, entry); + out->body.entry.attr.mode = S_IFREG | 0644; + out->body.entry.nodeid = ino; + out->body.entry.generation = generation; + })); + EXPECT_CALL(*m_mock, process( + ResultOf([](auto in) { + return (in->header.opcode == FUSE_GETATTR && + in->header.nodeid == ino); + }, Eq(true)), + _) + ).WillOnce(Invoke([](auto in, auto out) { + out->header.unique = in->header.unique; + SET_OUT_HEADER_LEN(out, attr); + out->body.attr.attr.ino = ino; // Must match nodeid + out->body.attr.attr.mode = S_IFREG | 0644; + out->body.attr.attr.size = 1; + out->body.attr.attr.blocks = 2; + out->body.attr.attr.atime = 3; + out->body.attr.attr.mtime = 4; + out->body.attr.attr.ctime = 5; + out->body.attr.attr.atimensec = 6; + out->body.attr.attr.mtimensec = 7; + out->body.attr.attr.ctimensec = 8; + out->body.attr.attr.nlink = 9; + out->body.attr.attr.uid = 10; + out->body.attr.attr.gid = 11; + out->body.attr.attr.rdev = 12; + })); + + ASSERT_EQ(0, stat(FULLPATH, &sb)) << strerror(errno); + EXPECT_EQ(1, sb.st_size); + EXPECT_EQ(2, sb.st_blocks); + EXPECT_EQ(3, sb.st_atim.tv_sec); + EXPECT_EQ(6, sb.st_atim.tv_nsec); + EXPECT_EQ(4, sb.st_mtim.tv_sec); + EXPECT_EQ(7, sb.st_mtim.tv_nsec); + EXPECT_EQ(5, sb.st_ctim.tv_sec); + EXPECT_EQ(8, sb.st_ctim.tv_nsec); + EXPECT_EQ(9ull, sb.st_nlink); + EXPECT_EQ(10ul, sb.st_uid); + EXPECT_EQ(11ul, sb.st_gid); + EXPECT_EQ(12ul, sb.st_rdev); + EXPECT_EQ(ino, sb.st_ino); + EXPECT_EQ(S_IFREG | 0644, sb.st_mode); + + // fuse(4) does not _yet_ support inode generations + //EXPECT_EQ(generation, sb.st_gen); + + //st_birthtim and st_flags are not supported by protocol 7.8. They're + //only supported as OS-specific extensions to OSX. + //EXPECT_EQ(, sb.st_birthtim); + //EXPECT_EQ(, sb.st_flags); + + //FUSE can't set st_blksize until protocol 7.9 +} Added: projects/fuse2/tests/sys/fs/fuse/lookup.cc ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/fuse2/tests/sys/fs/fuse/lookup.cc Fri Mar 1 23:53:05 2019 (r344715) @@ -0,0 +1,258 @@ +/*- + * Copyright (c) 2019 The FreeBSD Foundation + * All rights reserved. + * + * This software was developed by BFF Storage Systems, LLC 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: + * 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. + */ + +extern "C" { +#include +} + +#include "mockfs.hh" +#include "utils.hh" + +using namespace testing; + +class Lookup: public FuseTest {}; + +/* + * If lookup returns a non-zero cache timeout, then subsequent VOP_GETATTRs + * should use the cached attributes, rather than query the daemon + */ +/* https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=235775 */ +TEST_F(Lookup, DISABLED_attr_cache) +{ + const char FULLPATH[] = "mountpoint/some_file.txt"; + const char RELPATH[] = "some_file.txt"; + const uint64_t ino = 42; + struct stat sb; + + EXPECT_CALL(*m_mock, process( + ResultOf([=](auto in) { + return (in->header.opcode == FUSE_LOOKUP && + strcmp(in->body.lookup, RELPATH) == 0); + }, Eq(true)), + _) + ).WillOnce(Invoke([](auto in, auto out) { + out->header.unique = in->header.unique; + SET_OUT_HEADER_LEN(out, entry); + out->body.entry.nodeid = ino; + out->body.entry.attr_valid = UINT64_MAX; + out->body.entry.attr.ino = ino; // Must match nodeid + out->body.entry.attr.mode = S_IFREG | 0644; + out->body.entry.attr.size = 1; + out->body.entry.attr.blocks = 2; + out->body.entry.attr.atime = 3; + out->body.entry.attr.mtime = 4; + out->body.entry.attr.ctime = 5; + out->body.entry.attr.atimensec = 6; + out->body.entry.attr.mtimensec = 7; + out->body.entry.attr.ctimensec = 8; + out->body.entry.attr.nlink = 9; + out->body.entry.attr.uid = 10; + out->body.entry.attr.gid = 11; + out->body.entry.attr.rdev = 12; + })); + /* stat(2) issues a VOP_LOOKUP followed by a VOP_GETATTR */ + ASSERT_EQ(0, stat(FULLPATH, &sb)) << strerror(errno); + EXPECT_EQ(1, sb.st_size); + EXPECT_EQ(2, sb.st_blocks); + EXPECT_EQ(3, sb.st_atim.tv_sec); + EXPECT_EQ(6, sb.st_atim.tv_nsec); + EXPECT_EQ(4, sb.st_mtim.tv_sec); + EXPECT_EQ(7, sb.st_mtim.tv_nsec); + EXPECT_EQ(5, sb.st_ctim.tv_sec); + EXPECT_EQ(8, sb.st_ctim.tv_nsec); + EXPECT_EQ(9ull, sb.st_nlink); + EXPECT_EQ(10ul, sb.st_uid); + EXPECT_EQ(11ul, sb.st_gid); + EXPECT_EQ(12ul, sb.st_rdev); + EXPECT_EQ(ino, sb.st_ino); + EXPECT_EQ(S_IFREG | 0644, sb.st_mode); + + // fuse(4) does not _yet_ support inode generations + //EXPECT_EQ(generation, sb.st_gen); + + //st_birthtim and st_flags are not supported by protocol 7.8. They're + //only supported as OS-specific extensions to OSX. + //EXPECT_EQ(, sb.st_birthtim); + //EXPECT_EQ(, sb.st_flags); + + //FUSE can't set st_blksize until protocol 7.9 +} + +/* + * If lookup returns a finite but non-zero cache timeout, then we should discard + * the cached attributes and requery the daemon. + */ +/* https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=235773 */ +TEST_F(Lookup, attr_cache_timeout) +{ + const char FULLPATH[] = "mountpoint/some_file.txt"; + const char RELPATH[] = "some_file.txt"; + const uint64_t ino = 42; + struct stat sb; + /* + * The timeout should be longer than the longest plausible time the + * daemon would take to complete a write(2) to /dev/fuse, but no longer. + */ + long timeout_ns = 250'000'000; + + EXPECT_CALL(*m_mock, process( + ResultOf([=](auto in) { + return (in->header.opcode == FUSE_LOOKUP && + strcmp(in->body.lookup, RELPATH) == 0); + }, Eq(true)), + _) + ).WillRepeatedly(Invoke([=](auto in, auto out) { + out->header.unique = in->header.unique; + SET_OUT_HEADER_LEN(out, entry); + out->body.entry.nodeid = ino; + out->body.entry.attr_valid_nsec = timeout_ns; + out->body.entry.attr.ino = ino; // Must match nodeid + out->body.entry.attr.mode = S_IFREG | 0644; + })); + EXPECT_CALL(*m_mock, process( + ResultOf([](auto in) { + return (in->header.opcode == FUSE_GETATTR && + in->header.nodeid == ino); + }, Eq(true)), + _) + ).WillOnce(Invoke([](auto in, auto out) { + out->header.unique = in->header.unique; + SET_OUT_HEADER_LEN(out, attr); + out->body.attr.attr.ino = ino; // Must match nodeid + out->body.attr.attr.mode = S_IFREG | 0644; + })); + + /* access(2) will issue a VOP_LOOKUP but not a VOP_GETATTR */ + ASSERT_EQ(0, access(FULLPATH, F_OK)) << strerror(errno); + usleep(2 * timeout_ns / 1000); + /* The cache has timed out; VOP_GETATTR should query the daemon*/ + ASSERT_EQ(0, stat(FULLPATH, &sb)) << strerror(errno); +} + +TEST_F(Lookup, enoent) +{ + EXPECT_CALL(*m_mock, process( + ResultOf([](auto in) { + return (in->header.opcode == FUSE_LOOKUP); + }, Eq(true)), + _) + ).WillOnce(Invoke([](auto in, auto out) { + out->header.unique = in->header.unique; + out->header.error = -ENOENT; + out->header.len = sizeof(out->header); + })); + EXPECT_NE(0, access("mountpoint/does_not_exist", F_OK)); + EXPECT_EQ(ENOENT, errno); +} + +/* + * If lookup returns a non-zero entry timeout, then subsequent VOP_LOOKUPs + * should use the cached inode rather than requery the daemon + */ +TEST_F(Lookup, entry_cache) +{ + const char FULLPATH[] = "mountpoint/some_file.txt"; + const char RELPATH[] = "some_file.txt"; + + EXPECT_CALL(*m_mock, process( + ResultOf([=](auto in) { + return (in->header.opcode == FUSE_LOOKUP && + strcmp(in->body.lookup, RELPATH) == 0); + }, Eq(true)), + _) + ).WillOnce(Invoke([](auto in, auto out) { + out->header.unique = in->header.unique; + SET_OUT_HEADER_LEN(out, entry); + out->body.entry.entry_valid = UINT64_MAX; + out->body.entry.attr.mode = S_IFREG | 0644; + out->body.entry.nodeid = 14; + })); + ASSERT_EQ(0, access(FULLPATH, F_OK)) << strerror(errno); + /* The second access(2) should use the cache */ + ASSERT_EQ(0, access(FULLPATH, F_OK)) << strerror(errno); +} + +/* + * If lookup returns a finite but non-zero entry cache timeout, then we should + * discard the cached inode and requery the daemon + */ +/* https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=235773 */ +TEST_F(Lookup, DISABLED_entry_cache_timeout) +{ + const char FULLPATH[] = "mountpoint/some_file.txt"; + const char RELPATH[] = "some_file.txt"; + /* + * The timeout should be longer than the longest plausible time the + * daemon would take to complete a write(2) to /dev/fuse, but no longer. + */ + long timeout_ns = 250'000'000; + + EXPECT_CALL(*m_mock, process( + ResultOf([=](auto in) { + return (in->header.opcode == FUSE_LOOKUP && + strcmp(in->body.lookup, RELPATH) == 0); + }, Eq(true)), + _) + ).Times(2) + .WillRepeatedly(Invoke([=](auto in, auto out) { + out->header.unique = in->header.unique; + SET_OUT_HEADER_LEN(out, entry); + out->body.entry.entry_valid_nsec = timeout_ns; + out->body.entry.attr.mode = S_IFREG | 0644; + out->body.entry.nodeid = 14; + })); + ASSERT_EQ(0, access(FULLPATH, F_OK)) << strerror(errno); + usleep(2 * timeout_ns / 1000); + /* The cache has timed out; VOP_LOOKUP should query the daemon*/ + ASSERT_EQ(0, access(FULLPATH, F_OK)) << strerror(errno); +} + +TEST_F(Lookup, ok) +{ + const char FULLPATH[] = "mountpoint/some_file.txt"; + const char RELPATH[] = "some_file.txt"; + + EXPECT_CALL(*m_mock, process( + ResultOf([=](auto in) { + return (in->header.opcode == FUSE_LOOKUP && + strcmp(in->body.lookup, RELPATH) == 0); + }, Eq(true)), + _) + ).WillOnce(Invoke([](auto in, auto out) { + out->header.unique = in->header.unique; + SET_OUT_HEADER_LEN(out, entry); + out->body.entry.attr.mode = S_IFREG | 0644; + out->body.entry.nodeid = 14; + })); + /* + * access(2) is one of the few syscalls that will not (always) follow + * up a successful VOP_LOOKUP with another VOP. + */ + ASSERT_EQ(0, access(FULLPATH, F_OK)) << strerror(errno); +} Added: projects/fuse2/tests/sys/fs/fuse/mockfs.cc ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/fuse2/tests/sys/fs/fuse/mockfs.cc Fri Mar 1 23:53:05 2019 (r344715) @@ -0,0 +1,251 @@ +/*- + * Copyright (c) 2019 The FreeBSD Foundation + * All rights reserved. + * + * This software was developed by BFF Storage Systems, LLC 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: + * 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. + */ + +extern "C" { +#include + +#include +#include +#include + +#include +#include +#include +#include +#include + +#include "mntopts.h" // for build_iovec +} + +#include + +#include "mockfs.hh" + +using namespace testing; + +int verbosity = 0; +static sig_atomic_t quit = 0; + +const char* opcode2opname(uint32_t opcode) +{ + const int NUM_OPS = 39; + const char* table[NUM_OPS] = { + "Unknown (opcode 0)", + "FUSE_LOOKUP", + "FUSE_FORGET", + "FUSE_GETATTR", + "FUSE_SETATTR", + "FUSE_READLINK", + "FUSE_SYMLINK", + "Unknown (opcode 7)", + "FUSE_MKNOD", + "FUSE_MKDIR", + "FUSE_UNLINK", + "FUSE_RMDIR", + "FUSE_RENAME", + "FUSE_LINK", + "FUSE_OPEN", + "FUSE_READ", + "FUSE_WRITE", + "FUSE_STATFS", + "FUSE_RELEASE", + "Unknown (opcode 19)", + "FUSE_FSYNC", + "FUSE_SETXATTR", + "FUSE_GETXATTR", + "FUSE_LISTXATTR", + "FUSE_REMOVEXATTR", + "FUSE_FLUSH", + "FUSE_INIT", + "FUSE_OPENDIR", + "FUSE_READDIR", + "FUSE_RELEASEDIR", + "FUSE_FSYNCDIR", + "FUSE_GETLK", + "FUSE_SETLK", + "FUSE_SETLKW", + "FUSE_ACCESS", + "FUSE_CREATE", + "FUSE_INTERRUPT", + "FUSE_BMAP", + "FUSE_DESTROY" + }; + if (opcode >= NUM_OPS) + return ("Unknown (opcode > max)"); + else + return (table[opcode]); +} + +void sigint_handler(int __unused sig) { + quit = 1; +} + +MockFS::MockFS() { + struct iovec *iov = NULL; + int iovlen = 0; + char fdstr[15]; + + /* + * Kyua sets pwd to a testcase-unique tempdir; no need to use + * mkdtemp + */ + /* + * googletest doesn't allow ASSERT_ in constructors, so we must throw + * instead. + */ + if (mkdir("mountpoint" , 0644) && errno != EEXIST) + throw(std::system_error(errno, std::system_category(), + "Couldn't make mountpoint directory")); + + m_fuse_fd = open("/dev/fuse", O_RDWR); + if (m_fuse_fd < 0) + throw(std::system_error(errno, std::system_category(), + "Couldn't open /dev/fuse")); + sprintf(fdstr, "%d", m_fuse_fd); + + m_pid = getpid(); + + build_iovec(&iov, &iovlen, "fstype", __DECONST(void *, "fusefs"), -1); + build_iovec(&iov, &iovlen, "fspath", + __DECONST(void *, "mountpoint"), -1); + build_iovec(&iov, &iovlen, "from", __DECONST(void *, "/dev/fuse"), -1); + build_iovec(&iov, &iovlen, "fd", fdstr, -1); + if (nmount(iov, iovlen, 0)) + throw(std::system_error(errno, std::system_category(), + "Couldn't mount filesystem")); + + // Setup default handler + ON_CALL(*this, process(_, _)) + .WillByDefault(Invoke(this, &MockFS::process_default)); + + init(); + if (pthread_create(&m_thr, NULL, service, (void*)this)) + throw(std::system_error(errno, std::system_category(), + "Couldn't Couldn't start fuse thread")); +} + +MockFS::~MockFS() { + pthread_kill(m_daemon_id, SIGUSR1); + // Closing the /dev/fuse file descriptor first allows unmount to + // succeed even if the daemon doesn't correctly respond to commands + // during the unmount sequence. + close(m_fuse_fd); + pthread_join(m_daemon_id, NULL); + ::unmount("mountpoint", MNT_FORCE); + rmdir("mountpoint"); +} + +void MockFS::init() { + mockfs_buf_in *in; + mockfs_buf_out out; + + in = (mockfs_buf_in*) malloc(sizeof(*in)); + ASSERT_TRUE(in != NULL); + + read_request(in); + ASSERT_EQ(FUSE_INIT, in->header.opcode); + + memset(&out, 0, sizeof(out)); + out.header.unique = in->header.unique; + out.header.error = 0; + out.body.init.major = FUSE_KERNEL_VERSION; + out.body.init.minor = FUSE_KERNEL_MINOR_VERSION; + SET_OUT_HEADER_LEN(&out, init); + write(m_fuse_fd, &out, out.header.len); + + free(in); +} + +void MockFS::loop() { + mockfs_buf_in *in; + mockfs_buf_out out; + + in = (mockfs_buf_in*) malloc(sizeof(*in)); + ASSERT_TRUE(in != NULL); + while (!quit) { + bzero(in, sizeof(*in)); + bzero(&out, sizeof(out)); + read_request(in); + if (quit) + break; + if (verbosity > 0) { + printf("Got request %s\n", + opcode2opname(in->header.opcode)); + } + if ((pid_t)in->header.pid != m_pid) { + /* + * Reject any requests from unknown processes. Because + * we actually do mount a filesystem, plenty of + * unrelated system daemons may try to access it. + */ + process_default(in, &out); + } else { + process(in, &out); + } + if (in->header.opcode == FUSE_FORGET) { + /*Alone among the opcodes, FORGET expects no response*/ + continue; + } + ASSERT_TRUE(write(m_fuse_fd, &out, out.header.len) > 0 || + errno == EAGAIN) + << strerror(errno); + } + free(in); +} + +void MockFS::process_default(const mockfs_buf_in *in, mockfs_buf_out* out) { + out->header.unique = in->header.unique; + out->header.error = -EOPNOTSUPP; + out->header.len = sizeof(out->header); +} + +void MockFS::read_request(mockfs_buf_in *in) { + ssize_t res; + + res = read(m_fuse_fd, in, sizeof(*in)); + if (res < 0 && !quit) + perror("read"); + ASSERT_TRUE(res >= (ssize_t)sizeof(in->header) || quit); +} + +void* MockFS::service(void *pthr_data) { + MockFS *mock_fs = (MockFS*)pthr_data; + mock_fs->m_daemon_id = pthread_self(); + + quit = 0; + signal(SIGUSR1, sigint_handler); + + mock_fs->loop(); + + return (NULL); +} + +void MockFS::unmount() { + ::unmount("mountpoint", 0); +} Added: projects/fuse2/tests/sys/fs/fuse/mockfs.hh ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/fuse2/tests/sys/fs/fuse/mockfs.hh Fri Mar 1 23:53:05 2019 (r344715) @@ -0,0 +1,131 @@ +/*- + * Copyright (c) 2019 The FreeBSD Foundation + * All rights reserved. + * + * This software was developed by BFF Storage Systems, LLC 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: + * 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. + */ + +extern "C" { +#include + +#include + +#include "fuse_kernel.h" +} + +#include + +#define SET_OUT_HEADER_LEN(out, variant) { \ + (out)->header.len = (sizeof((out)->header) + \ + sizeof((out)->body.variant)); \ +} + +extern int verbosity; + +union fuse_payloads_in { + fuse_forget_in forget; + fuse_init_in init; + char lookup[0]; + /* value is from fuse_kern_chan.c in fusefs-libs */ + uint8_t bytes[0x21000 - sizeof(struct fuse_in_header)]; +}; + +struct mockfs_buf_in { + fuse_in_header header; + union fuse_payloads_in body; +}; + +union fuse_payloads_out { + fuse_init_out init; + fuse_entry_out entry; + fuse_attr_out attr; +}; + +struct mockfs_buf_out { + fuse_out_header header; + union fuse_payloads_out body; +}; + +/* + * Fake FUSE filesystem + * + * "Mounts" a filesystem to a temporary directory and services requests + * according to the programmed expectations. + * + * Operates directly on the fuse(4) kernel API, not the libfuse(3) user api. + */ +class MockFS { + public: + /* thread id of the fuse daemon thread */ + pthread_t m_daemon_id; + + private: + /* file descriptor of /dev/fuse control device */ + int m_fuse_fd; + + /* pid of the test process */ + pid_t m_pid; + + /* + * Thread that's running the mockfs daemon. + * + * It must run in a separate thread so it doesn't deadlock with the + * client test code. + */ + pthread_t m_thr; + + /* Initialize a session after mounting */ + void init(); + + /* Default request handler */ + void process_default(const mockfs_buf_in*, mockfs_buf_out*); + + /* Entry point for the daemon thread */ + static void* service(void*); + + /* Read, but do not process, a single request from the kernel */ + void read_request(mockfs_buf_in*); + + public: + /* Create a new mockfs and mount it to a tempdir */ + MockFS(); + virtual ~MockFS(); + + /* Process FUSE requests endlessly */ + void loop(); + + /* + * Request handler + * + * This method is expected to provide the response to each FUSE + * operation. Responses must be immediate (so this method can't be used + * for testing a daemon with queue depth > 1). Test cases must define + * each response using Googlemock expectations + */ + MOCK_METHOD2(process, void(const mockfs_buf_in*, mockfs_buf_out*)); + + /* Gracefully unmount */ + void unmount(); +}; Added: projects/fuse2/tests/sys/fs/fuse/utils.cc ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/fuse2/tests/sys/fs/fuse/utils.cc Fri Mar 1 23:53:05 2019 (r344715) @@ -0,0 +1,57 @@ +/*- + * Copyright (c) 2019 The FreeBSD Foundation + * All rights reserved. + * + * This software was developed by BFF Storage Systems, LLC 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: + * 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 +#include + +#include "mockfs.hh" *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Sat Mar 2 00:28:47 2019 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DDA2C1507622 for ; Sat, 2 Mar 2019 00:28:46 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: from mail-pg1-x52f.google.com (mail-pg1-x52f.google.com [IPv6:2607:f8b0:4864:20::52f]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 519B36B13F; Sat, 2 Mar 2019 00:28:46 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: by mail-pg1-x52f.google.com with SMTP id q206so12206889pgq.4; Fri, 01 Mar 2019 16:28:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=CD28zDDoAMtXAHMNvNd249PTu9YXXCTrEVkSVd29fvo=; b=XiG4Sc2XWlVtsymX7+uYb5KobGB4vpFiaLBZfo++ThSskL68dlzvm1/3SE1xLW+MOK UGP14dha3TmqORYMX+cfcbR0o+A2xpwDUwV5NurFisq67FRAuNNlt3hXc7aZc/YA0RyQ jTSUNK/KZTm0ZFTKEm5/W9MYE7WWmdjTrYnfbISIxPPif5XUTCIgjQfMU4FgDAX6ij41 v4huoxwjzFN8zW3xQ+GyIVlIYDnh78BJ/YBEQ9yvSP7RuOnepZ0HHsyoQWAmkKsRqVsk XK17uarRYp6q2szgPw5/aG1ipJOrR1FKkyUMWC/eItollBV3y/KZiHNlOMnNDXkdL9fx FdDg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=CD28zDDoAMtXAHMNvNd249PTu9YXXCTrEVkSVd29fvo=; b=BuX2f7e0a0uoLXu7eLhADB/IuSrlGJTmXJm4ub/4QTwejaABeuXjWw6RRiXsg/VgLr MyqYGc2aDIR/kqGhfqhmRyuw1hEe3A2kvPvAlfUO5OydR1VffVGUQKT8bIqlNuVFFPnt vHIqyxpS10x+EIsg0nWoHiKzBEGqzXLqFHbXVpSuSSmsZW17VfpaZTlueJARr5Piq33s zeSqcEcdpPEfM4iQLynNDy2p8AneO5ibn2RrLTBDunxU6y8JqwPvp8yKfWzTn+te15/r Xrq7tC4zeh2RZUVTwFl8i0YDus8I8bYcN70Idun6D3ue/xIHI9qmlRcUjgpSV7pWjrw+ wmtQ== X-Gm-Message-State: AHQUAubXVhqrtBvuyZJOzSbcVGjI8y98Y9lStE2fCp/fB5OuAtqkqTMU a7TtJznqnFi/Tu8xh3538l7D2dvH X-Google-Smtp-Source: APXvYqxVw/enT/bqQkJ56P9eGG38hFNTrGwFTlkhx2LDlx8lDQJ8OsGG9lR+JrMwQPCfqaf11W1yBw== X-Received: by 2002:a62:e005:: with SMTP id f5mr8737106pfh.64.1551486524626; Fri, 01 Mar 2019 16:28:44 -0800 (PST) Received: from ?IPv6:2607:fb90:82ae:aea1:2091:6348:4bfb:4e? ([2607:fb90:82ae:aea1:2091:6348:4bfb:4e]) by smtp.gmail.com with ESMTPSA id a4sm45120306pga.52.2019.03.01.16.28.43 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 01 Mar 2019 16:28:44 -0800 (PST) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (1.0) Subject: Re: svn commit: r344715 - in projects/fuse2: etc/mtree tests/sys/fs tests/sys/fs/fuse From: Enji Cooper X-Mailer: iPhone Mail (16D57) In-Reply-To: <201903012353.x21Nr5do051752@repo.freebsd.org> Date: Fri, 1 Mar 2019 16:28:42 -0800 Cc: src-committers@freebsd.org, svn-src-projects@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: References: <201903012353.x21Nr5do051752@repo.freebsd.org> To: Alan Somers X-Rspamd-Queue-Id: 519B36B13F X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-6.95 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[]; NEURAL_HAM_SHORT(-0.95)[-0.951,0] X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Mar 2019 00:28:47 -0000 > On Mar 1, 2019, at 15:53, Alan Somers wrote: >=20 > Author: asomers > Date: Fri Mar 1 23:53:05 2019 > New Revision: 344715 > URL: https://svnweb.freebsd.org/changeset/base/344715 >=20 > Log: > Begin a fuse(4) test suite >=20 > It only tests the kernel portion of fuse, not the userspace portion (whic= h > comes from sysutils/fusefs-libs). The kernel-userspace interface is > de-facto standardized, and this test suite seeks to validate FreeBSD's > implementation. >=20 > It uses GoogleMock to substitute for a userspace daemon and validate the > kernel's behavior in response to filesystem access. GoogleMock is > convenient because it can validate the order, number, and arguments of ea= ch > operation, and return canned responses. >=20 > But that also means that the test suite must use GoogleTest, since > GoogleMock is incompatible with atf-c++ and atf.test.mk does not allow C+= + > programs to use atf-c. >=20 > This commit adds the first 10 test cases out of an estimated 130 total. >=20 > PR: 235775, 235773 Hi Alan! Could you please use SetupEnvironment to ensure that /dev/fuse exists an= d is accessible? This is something I needing to be done with the zfsd tests t= oo, IIRC. Thanks so much :)!! -Enji= From owner-svn-src-projects@freebsd.org Sat Mar 2 03:11:31 2019 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A8B0F150E051 for ; Sat, 2 Mar 2019 03:11:31 +0000 (UTC) (envelope-from asomers@gmail.com) Received: from mail-lj1-f169.google.com (mail-lj1-f169.google.com [209.85.208.169]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 2A9C371B51; Sat, 2 Mar 2019 03:11:31 +0000 (UTC) (envelope-from asomers@gmail.com) Received: by mail-lj1-f169.google.com with SMTP id d14so22135054ljl.9; Fri, 01 Mar 2019 19:11:31 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=yUq4RqJ9EbWS7fTTZQwcGqaOZ4v9ZpI8O6OzU5HMHIo=; b=WnlF6IMAdpLx5zeSk7P0YlFENk2G7YPgtQjGx62MJcVhqV/QS/nH/AU9OT0zeKNXBD S7bi6EkUBJe9FdftNNeN6z3zv9LFeiFUGOPmnz+JWtyIHEdX1c8KpJPxVmc6YLnh6tZT rRw+KvwDjvP7go/ZbzYlRvz1M2kFdrvV/0nI8bR/zyEUvFOwWdw+yLBx83jAyb0rblRr KWkPJIErcHZboQLBjv6yvRFI3t07brjOWFTE73XOYSGNU3Yg5QeCITk+aWmzG9IJHqRP wgfG5GNrGjuQ0HVo7AqtOeM2T1TZd89Q3YKZfxihJV/FkqoMUedr2zupPujWiz+Z6dBT XzZA== X-Gm-Message-State: APjAAAXoojMdvUoFRDsRWuD9ucHxNXzWj3Ae9PHm5smOwqyGqjtEzNzf t7t5WTxkviGpO2xJmPClqFbu/dIIC++gu0VIe7J15A== X-Google-Smtp-Source: APXvYqwFftf6fQuDGsbnP3Xt18IPcfYI9WSB+VK9pABsJ0fgWopXj9WXA7MwejKvlBbm2RyRVgBdbBwgdz4H37KX2Eo= X-Received: by 2002:a2e:99c9:: with SMTP id l9mr4271535ljj.60.1551487033257; Fri, 01 Mar 2019 16:37:13 -0800 (PST) MIME-Version: 1.0 References: <201903012353.x21Nr5do051752@repo.freebsd.org> In-Reply-To: From: Alan Somers Date: Fri, 1 Mar 2019 17:37:01 -0700 Message-ID: Subject: Re: svn commit: r344715 - in projects/fuse2: etc/mtree tests/sys/fs tests/sys/fs/fuse To: Enji Cooper Cc: src-committers , svn-src-projects@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 2A9C371B51 X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-6.81 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.81)[-0.810,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Mar 2019 03:11:31 -0000 On Fri, Mar 1, 2019 at 5:28 PM Enji Cooper wrote: > > > > On Mar 1, 2019, at 15:53, Alan Somers wrote: > > > > Author: asomers > > Date: Fri Mar 1 23:53:05 2019 > > New Revision: 344715 > > URL: https://svnweb.freebsd.org/changeset/base/344715 > > > > Log: > > Begin a fuse(4) test suite > > > > It only tests the kernel portion of fuse, not the userspace portion (which > > comes from sysutils/fusefs-libs). The kernel-userspace interface is > > de-facto standardized, and this test suite seeks to validate FreeBSD's > > implementation. > > > > It uses GoogleMock to substitute for a userspace daemon and validate the > > kernel's behavior in response to filesystem access. GoogleMock is > > convenient because it can validate the order, number, and arguments of each > > operation, and return canned responses. > > > > But that also means that the test suite must use GoogleTest, since > > GoogleMock is incompatible with atf-c++ and atf.test.mk does not allow C++ > > programs to use atf-c. > > > > This commit adds the first 10 test cases out of an estimated 130 total. > > > > PR: 235775, 235773 > > Hi Alan! > Could you please use SetupEnvironment to ensure that /dev/fuse exists and is accessible? This is something I needing to be done with the zfsd tests too, IIRC. > Thanks so much :)!! > -Enji What's the advantage to doing it that way as opposed to using the regular SetUp function? -Alan From owner-svn-src-projects@freebsd.org Sat Mar 2 05:20:34 2019 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0F32715125EC for ; Sat, 2 Mar 2019 05:20:34 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: from mail-pf1-x436.google.com (mail-pf1-x436.google.com [IPv6:2607:f8b0:4864:20::436]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id ED2C676226; Sat, 2 Mar 2019 05:20:32 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: by mail-pf1-x436.google.com with SMTP id s22so12420155pfh.4; Fri, 01 Mar 2019 21:20:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=SJkS6s76yngyYXhDn2NH8vcajgpm4MVXUKx+Qiskd3s=; b=MAFt5/d2jPam28ZzxZXJujEty323ICiob+uUseGwaq0+o181ewFtkBVJD4b6cH6O7g MDogVLVHa65Ek6JJB1XbnJhixUxkEjcZE0YPmon7K7U5H+cvY5IatUmST+dtbU3j6i+N xsebZMpAgUYFPIv4aKNUrGwzCz+Elaczn/i4rMtoQBRj2VRdCfZhtMB6rTjbfTbYLFnd 7NV6Huh2vTsWoLL1ZHBUSQYH20KWTea0x1ik+Qxroc26DeN6HhvWs4tg8mCjTQvyHmnT C6nscgJCBc876/hWOtozgYQkrC3mIViqCj5D3gocbCIbvMpihUUvl198zBo0VcHy6H8B pwsw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=SJkS6s76yngyYXhDn2NH8vcajgpm4MVXUKx+Qiskd3s=; b=X2ivCECSvkhLdiD6z2Vr0ab+z0vn7df1Kqf9ESfACUptLX40F+msllsmgViz1l462T LtwfX7o0lKX6EHDjdaHTVl8PYxi+r3D1xhREpeHBf5Ck9hmLgwPIoN+4UwSUpJ2V824s azWITWwoygRJIccLtPoZz37PfFt8pCgc9oSaQpbNIMPbVr57KGEgv7TI7pyUfC4ZOSot ms1Fnr3nqfT5rWn28K64yupm1qQPwlPUXjtawts/9Sd999ICArjP6AUxhx4/SLfR53v7 BavgFVyzftNId23cJ2lX4wVvhA0XSlUlLwrqb62GolOeC6xthxqtHRQ/epl0eaahbXZY FMqg== X-Gm-Message-State: APjAAAWl3mDHBzvlTMfkJ9xIPqvk7Suoa6xU7i/CoSgU2zY1nbDGDfUl G34WEVqm9aEUuOwYp7Bos/eu5bFB X-Google-Smtp-Source: AHgI3IZLhXzSMGX60vsFAWPoaoVUJ/Yq0y5Wjc0SU3GhsP0P8/v1Hu4aPNGLfDhaMk1Az1IrteGgDQ== X-Received: by 2002:a62:5c4:: with SMTP id 187mr9254876pff.153.1551504031011; Fri, 01 Mar 2019 21:20:31 -0800 (PST) Received: from [192.168.20.7] (c-73-19-52-228.hsd1.wa.comcast.net. [73.19.52.228]) by smtp.gmail.com with ESMTPSA id w128sm35572622pfw.79.2019.03.01.21.20.30 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 01 Mar 2019 21:20:30 -0800 (PST) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 12.2 \(3445.102.3\)) Subject: Re: svn commit: r344715 - in projects/fuse2: etc/mtree tests/sys/fs tests/sys/fs/fuse From: Enji Cooper In-Reply-To: Date: Fri, 1 Mar 2019 21:20:29 -0800 Cc: src-committers , svn-src-projects@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: <73B429B3-BC33-4A2C-88FA-8813EDF2C2D9@gmail.com> References: <201903012353.x21Nr5do051752@repo.freebsd.org> To: Alan Somers X-Mailer: Apple Mail (2.3445.102.3) X-Rspamd-Queue-Id: ED2C676226 X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20161025 header.b=MAFt5/d2; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of yaneurabeya@gmail.com designates 2607:f8b0:4864:20::436 as permitted sender) smtp.mailfrom=yaneurabeya@gmail.com X-Spamd-Result: default: False [-5.74 / 15.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36]; MV_CASE(0.50)[]; FREEMAIL_FROM(0.00)[gmail.com]; RCVD_COUNT_THREE(0.00)[3]; MX_GOOD(-0.01)[cached: alt3.gmail-smtp-in.l.google.com]; DKIM_TRACE(0.00)[gmail.com:+]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; NEURAL_HAM_SHORT(-0.33)[-0.329,0]; FROM_EQ_ENVFROM(0.00)[]; RCVD_TLS_LAST(0.00)[]; MIME_TRACE(0.00)[0:+]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; MID_RHS_MATCH_FROM(0.00)[]; DWL_DNSWL_NONE(0.00)[gmail.com.dwl.dnswl.org : 127.0.5.0]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20161025]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[3]; TO_MATCH_ENVRCPT_ALL(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; IP_SCORE(-2.90)[ip: (-9.68), ipnet: 2607:f8b0::/32(-2.72), asn: 15169(-2.04), country: US(-0.07)]; RCVD_IN_DNSWL_NONE(0.00)[6.3.4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0] X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Mar 2019 05:20:34 -0000 > On Mar 1, 2019, at 4:37 PM, Alan Somers wrote: =E2=80=A6 > What's the advantage to doing it that way as opposed to using the > regular SetUp function? SetupEnvironment is only executed once per test suite; SetUp is = executed once per test case, so multiple times per test suite. Running = SetupEnvironment is an obvious performance win for something that is = unlikely to change over the course of a test suite=E2=80=99s execution. HTH! -Enji= From owner-svn-src-projects@freebsd.org Sat Mar 2 15:32:22 2019 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0E1E215015DF for ; Sat, 2 Mar 2019 15:32:22 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id B41E06BE9C; Sat, 2 Mar 2019 15:32:21 +0000 (UTC) (envelope-from asomers@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A48FE6BDB; Sat, 2 Mar 2019 15:32:21 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x22FWLMu045936; Sat, 2 Mar 2019 15:32:21 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x22FWLok045933; Sat, 2 Mar 2019 15:32:21 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <201903021532.x22FWLok045933@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Sat, 2 Mar 2019 15:32:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r344725 - projects/fuse2/tests/sys/fs/fuse X-SVN-Group: projects X-SVN-Commit-Author: asomers X-SVN-Commit-Paths: projects/fuse2/tests/sys/fs/fuse X-SVN-Commit-Revision: 344725 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: B41E06BE9C X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.98 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.98)[-0.979,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Mar 2019 15:32:22 -0000 Author: asomers Date: Sat Mar 2 15:32:20 2019 New Revision: 344725 URL: https://svnweb.freebsd.org/changeset/base/344725 Log: Add some fuse(4) tests for FUSE_SETATTR Sponsored by: The FreeBSD Foundation Added: projects/fuse2/tests/sys/fs/fuse/setattr.cc (contents, props changed) Modified: projects/fuse2/tests/sys/fs/fuse/Makefile projects/fuse2/tests/sys/fs/fuse/mockfs.hh Modified: projects/fuse2/tests/sys/fs/fuse/Makefile ============================================================================== --- projects/fuse2/tests/sys/fs/fuse/Makefile Sat Mar 2 14:30:27 2019 (r344724) +++ projects/fuse2/tests/sys/fs/fuse/Makefile Sat Mar 2 15:32:20 2019 (r344725) @@ -6,6 +6,7 @@ TESTSDIR= ${TESTSBASE}/sys/fs/fuse ATF_TESTS_CXX+= getattr ATF_TESTS_CXX+= lookup +ATF_TESTS_CXX+= setattr SRCS.getattr+= getattr.cc SRCS.getattr+= getmntopts.c @@ -17,6 +18,12 @@ SRCS.lookup+= getmntopts.c SRCS.lookup+= mockfs.cc SRCS.lookup+= utils.cc +SRCS.setattr+= setattr.cc +SRCS.setattr+= getmntopts.c +SRCS.setattr+= mockfs.cc +SRCS.setattr+= utils.cc + +# TODO: drastically increase timeout after test development is mostly complete TEST_METADATA+= timeout=10 TEST_METADATA+= required_user=root Modified: projects/fuse2/tests/sys/fs/fuse/mockfs.hh ============================================================================== --- projects/fuse2/tests/sys/fs/fuse/mockfs.hh Sat Mar 2 14:30:27 2019 (r344724) +++ projects/fuse2/tests/sys/fs/fuse/mockfs.hh Sat Mar 2 15:32:20 2019 (r344725) @@ -45,11 +45,12 @@ extern "C" { extern int verbosity; union fuse_payloads_in { + /* value is from fuse_kern_chan.c in fusefs-libs */ + uint8_t bytes[0x21000 - sizeof(struct fuse_in_header)]; fuse_forget_in forget; fuse_init_in init; char lookup[0]; - /* value is from fuse_kern_chan.c in fusefs-libs */ - uint8_t bytes[0x21000 - sizeof(struct fuse_in_header)]; + fuse_setattr_in setattr; }; struct mockfs_buf_in { Added: projects/fuse2/tests/sys/fs/fuse/setattr.cc ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/fuse2/tests/sys/fs/fuse/setattr.cc Sat Mar 2 15:32:20 2019 (r344725) @@ -0,0 +1,386 @@ +/*- + * Copyright (c) 2019 The FreeBSD Foundation + * All rights reserved. + * + * This software was developed by BFF Storage Systems, LLC 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: + * 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. + */ + +extern "C" { +#include + +#include +} + +#include "mockfs.hh" +#include "utils.hh" + +using namespace testing; + +class Setattr : public FuseTest {}; + + +/* Change the mode of a file */ +TEST_F(Setattr, chmod) +{ + const char FULLPATH[] = "mountpoint/some_file.txt"; + const char RELPATH[] = "some_file.txt"; + const uint64_t ino = 42; + const mode_t oldmode = 0755; + const mode_t newmode = 0644; + + EXPECT_CALL(*m_mock, process( + ResultOf([=](auto in) { + return (in->header.opcode == FUSE_LOOKUP && + strcmp(in->body.lookup, RELPATH) == 0); + }, Eq(true)), + _) + ).WillOnce(Invoke([](auto in, auto out) { + out->header.unique = in->header.unique; + SET_OUT_HEADER_LEN(out, entry); + out->body.entry.attr.mode = S_IFREG | oldmode; + out->body.entry.nodeid = ino; + out->body.entry.attr.mode = S_IFREG | oldmode; + })); + + EXPECT_CALL(*m_mock, process( + ResultOf([](auto in) { + /* In protocol 7.23, ctime will be changed too */ + uint32_t valid = FATTR_MODE; + return (in->header.opcode == FUSE_SETATTR && + in->header.nodeid == ino && + in->body.setattr.valid == valid && + in->body.setattr.mode == newmode); + }, Eq(true)), + _) + ).WillOnce(Invoke([](auto in, auto out) { + out->header.unique = in->header.unique; + SET_OUT_HEADER_LEN(out, attr); + out->body.attr.attr.ino = ino; // Must match nodeid + out->body.attr.attr.mode = S_IFREG | newmode; + })); + EXPECT_EQ(0, chmod(FULLPATH, newmode)) << strerror(errno); +} + +/* Change the owner and group of a file */ +TEST_F(Setattr, chown) +{ + const char FULLPATH[] = "mountpoint/some_file.txt"; + const char RELPATH[] = "some_file.txt"; + const uint64_t ino = 42; + const gid_t oldgroup = 66; + const gid_t newgroup = 99; + const uid_t olduser = 33; + const uid_t newuser = 44; + + EXPECT_CALL(*m_mock, process( + ResultOf([=](auto in) { + return (in->header.opcode == FUSE_LOOKUP && + strcmp(in->body.lookup, RELPATH) == 0); + }, Eq(true)), + _) + ).WillOnce(Invoke([](auto in, auto out) { + out->header.unique = in->header.unique; + SET_OUT_HEADER_LEN(out, entry); + out->body.entry.attr.mode = S_IFREG | 0644; + out->body.entry.nodeid = ino; + out->body.entry.attr.gid = oldgroup; + out->body.entry.attr.uid = olduser; + })); + + EXPECT_CALL(*m_mock, process( + ResultOf([](auto in) { + /* In protocol 7.23, ctime will be changed too */ + uint32_t valid = FATTR_GID | FATTR_UID; + return (in->header.opcode == FUSE_SETATTR && + in->header.nodeid == ino && + in->body.setattr.valid == valid && + in->body.setattr.uid == newuser && + in->body.setattr.gid == newgroup); + }, Eq(true)), + _) + ).WillOnce(Invoke([](auto in, auto out) { + out->header.unique = in->header.unique; + SET_OUT_HEADER_LEN(out, attr); + out->body.attr.attr.ino = ino; // Must match nodeid + out->body.attr.attr.mode = S_IFREG | 0644; + out->body.attr.attr.uid = newuser; + out->body.attr.attr.gid = newgroup; + })); + EXPECT_EQ(0, chown(FULLPATH, newuser, newgroup)) << strerror(errno); +} + + +/* Change the mode of an open file, by its file descriptor */ +//TODO TEST_F(Setattr, fchmod) {} + +/* + * FUSE daemons are allowed to check permissions however they like. If the + * daemon returns EPERM, even if the file permissions "should" grant access, + * then fuse(4) should return EPERM too. + */ +TEST_F(Setattr, eperm) +{ + const char FULLPATH[] = "mountpoint/some_file.txt"; + const char RELPATH[] = "some_file.txt"; + const uint64_t ino = 42; + + EXPECT_CALL(*m_mock, process( + ResultOf([=](auto in) { + return (in->header.opcode == FUSE_LOOKUP && + strcmp(in->body.lookup, RELPATH) == 0); + }, Eq(true)), + _) + ).WillOnce(Invoke([](auto in, auto out) { + out->header.unique = in->header.unique; + SET_OUT_HEADER_LEN(out, entry); + out->body.entry.attr.mode = S_IFREG | 0777; + out->body.entry.nodeid = ino; + out->body.entry.attr.uid = in->header.uid; + out->body.entry.attr.gid = in->header.gid; + })); + + EXPECT_CALL(*m_mock, process( + ResultOf([](auto in) { + return (in->header.opcode == FUSE_SETATTR && + in->header.nodeid == ino); + }, Eq(true)), + _) + ).WillOnce(Invoke([](auto in, auto out) { + out->header.unique = in->header.unique; + out->header.error = -EPERM; + out->header.len = sizeof(out->header); + })); + EXPECT_NE(0, truncate(FULLPATH, 10)); + EXPECT_EQ(EPERM, errno); +} + +/* Change the size of the file */ +TEST_F(Setattr, truncate) { + const char FULLPATH[] = "mountpoint/some_file.txt"; + const char RELPATH[] = "some_file.txt"; + const uint64_t ino = 42; + const uint64_t oldsize = 100'000'000; + const uint64_t newsize = 20'000'000; + + EXPECT_CALL(*m_mock, process( + ResultOf([=](auto in) { + return (in->header.opcode == FUSE_LOOKUP && + strcmp(in->body.lookup, RELPATH) == 0); + }, Eq(true)), + _) + ).WillOnce(Invoke([](auto in, auto out) { + out->header.unique = in->header.unique; + SET_OUT_HEADER_LEN(out, entry); + out->body.entry.attr.mode = S_IFREG | 0644; + out->body.entry.nodeid = ino; + out->body.entry.attr.size = oldsize; + })); + + EXPECT_CALL(*m_mock, process( + ResultOf([](auto in) { + /* In protocol 7.23, ctime will be changed too */ + uint32_t valid = FATTR_SIZE; + return (in->header.opcode == FUSE_SETATTR && + in->header.nodeid == ino && + in->body.setattr.valid == valid && + in->body.setattr.size == newsize); + }, Eq(true)), + _) + ).WillOnce(Invoke([](auto in, auto out) { + out->header.unique = in->header.unique; + SET_OUT_HEADER_LEN(out, attr); + out->body.attr.attr.ino = ino; // Must match nodeid + out->body.attr.attr.mode = S_IFREG | 0644; + out->body.attr.attr.size = newsize; + })); + EXPECT_EQ(0, truncate(FULLPATH, newsize)) << strerror(errno); +} + +/* Change a file's timestamps */ +TEST_F(Setattr, utimensat) { + const char FULLPATH[] = "mountpoint/some_file.txt"; + const char RELPATH[] = "some_file.txt"; + const uint64_t ino = 42; + const timespec oldtimes[2] = { + {.tv_sec = 1, .tv_nsec = 2}, + {.tv_sec = 3, .tv_nsec = 4}, + }; + const timespec newtimes[2] = { + {.tv_sec = 5, .tv_nsec = 6}, + {.tv_sec = 7, .tv_nsec = 8}, + }; + + EXPECT_CALL(*m_mock, process( + ResultOf([=](auto in) { + return (in->header.opcode == FUSE_LOOKUP && + strcmp(in->body.lookup, RELPATH) == 0); + }, Eq(true)), + _) + ).WillOnce(Invoke([=](auto in, auto out) { + out->header.unique = in->header.unique; + SET_OUT_HEADER_LEN(out, entry); + out->body.entry.attr.mode = S_IFREG | 0644; + out->body.entry.nodeid = ino; + out->body.entry.attr_valid = UINT64_MAX; + out->body.entry.attr.atime = oldtimes[0].tv_sec; + out->body.entry.attr.atimensec = oldtimes[0].tv_nsec; + out->body.entry.attr.mtime = oldtimes[1].tv_sec; + out->body.entry.attr.mtimensec = oldtimes[1].tv_nsec; + })); + + /* + * Until bug 235775 is fixed, utimensat will make an extra FUSE_GETATTR + * call + */ + EXPECT_CALL(*m_mock, process( + ResultOf([](auto in) { + return (in->header.opcode == FUSE_GETATTR && + in->header.nodeid == ino); + }, Eq(true)), + _) + ).WillOnce(Invoke([=](auto in, auto out) { + out->header.unique = in->header.unique; + SET_OUT_HEADER_LEN(out, attr); + out->body.attr.attr.ino = ino; // Must match nodeid + out->body.attr.attr.mode = S_IFREG | 0644; + out->body.attr.attr.atime = oldtimes[0].tv_sec; + out->body.attr.attr.atimensec = oldtimes[0].tv_nsec; + out->body.attr.attr.mtime = oldtimes[1].tv_sec; + out->body.attr.attr.mtimensec = oldtimes[1].tv_nsec; + })); + + EXPECT_CALL(*m_mock, process( + ResultOf([=](auto in) { + /* In protocol 7.23, ctime will be changed too */ + uint32_t valid = FATTR_ATIME | FATTR_MTIME; + return (in->header.opcode == FUSE_SETATTR && + in->header.nodeid == ino && + in->body.setattr.valid == valid && + in->body.setattr.atime == newtimes[0].tv_sec && + in->body.setattr.atimensec == + newtimes[0].tv_nsec && + in->body.setattr.mtime == newtimes[1].tv_sec && + in->body.setattr.mtimensec == + newtimes[1].tv_nsec); + }, Eq(true)), + _) + ).WillOnce(Invoke([=](auto in, auto out) { + out->header.unique = in->header.unique; + SET_OUT_HEADER_LEN(out, attr); + out->body.attr.attr.ino = ino; // Must match nodeid + out->body.attr.attr.mode = S_IFREG | 0644; + out->body.attr.attr.atime = newtimes[0].tv_sec; + out->body.attr.attr.atimensec = newtimes[0].tv_nsec; + out->body.attr.attr.mtime = newtimes[1].tv_sec; + out->body.attr.attr.mtimensec = newtimes[1].tv_nsec; + })); + EXPECT_EQ(0, utimensat(AT_FDCWD, FULLPATH, &newtimes[0], 0)) + << strerror(errno); +} + +/* Change a file mtime but not its atime */ +TEST_F(Setattr, utimensat_mtime_only) { + const char FULLPATH[] = "mountpoint/some_file.txt"; + const char RELPATH[] = "some_file.txt"; + const uint64_t ino = 42; + const timespec oldtimes[2] = { + {.tv_sec = 1, .tv_nsec = 2}, + {.tv_sec = 3, .tv_nsec = 4}, + }; + const timespec newtimes[2] = { + {.tv_sec = 5, .tv_nsec = UTIME_OMIT}, + {.tv_sec = 7, .tv_nsec = 8}, + }; + + EXPECT_CALL(*m_mock, process( + ResultOf([=](auto in) { + return (in->header.opcode == FUSE_LOOKUP && + strcmp(in->body.lookup, RELPATH) == 0); + }, Eq(true)), + _) + ).WillOnce(Invoke([=](auto in, auto out) { + out->header.unique = in->header.unique; + SET_OUT_HEADER_LEN(out, entry); + out->body.entry.attr.mode = S_IFREG | 0644; + out->body.entry.nodeid = ino; + out->body.entry.attr_valid = UINT64_MAX; + out->body.entry.attr.atime = oldtimes[0].tv_sec; + out->body.entry.attr.atimensec = oldtimes[0].tv_nsec; + out->body.entry.attr.mtime = oldtimes[1].tv_sec; + out->body.entry.attr.mtimensec = oldtimes[1].tv_nsec; + })); + + /* + * Until bug 235775 is fixed, utimensat will make an extra FUSE_GETATTR + * call + */ + EXPECT_CALL(*m_mock, process( + ResultOf([](auto in) { + return (in->header.opcode == FUSE_GETATTR && + in->header.nodeid == ino); + }, Eq(true)), + _) + ).WillOnce(Invoke([=](auto in, auto out) { + out->header.unique = in->header.unique; + SET_OUT_HEADER_LEN(out, attr); + out->body.attr.attr.ino = ino; // Must match nodeid + out->body.attr.attr.mode = S_IFREG | 0644; + out->body.attr.attr.atime = oldtimes[0].tv_sec; + out->body.attr.attr.atimensec = oldtimes[0].tv_nsec; + out->body.attr.attr.mtime = oldtimes[1].tv_sec; + out->body.attr.attr.mtimensec = oldtimes[1].tv_nsec; + })); + + EXPECT_CALL(*m_mock, process( + ResultOf([=](auto in) { + /* In protocol 7.23, ctime will be changed too */ + uint32_t valid = FATTR_MTIME; + return (in->header.opcode == FUSE_SETATTR && + in->header.nodeid == ino && + in->body.setattr.valid == valid && + in->body.setattr.mtime == newtimes[1].tv_sec && + in->body.setattr.mtimensec == + newtimes[1].tv_nsec); + }, Eq(true)), + _) + ).WillOnce(Invoke([=](auto in, auto out) { + out->header.unique = in->header.unique; + SET_OUT_HEADER_LEN(out, attr); + out->body.attr.attr.ino = ino; // Must match nodeid + out->body.attr.attr.mode = S_IFREG | 0644; + out->body.attr.attr.atime = oldtimes[0].tv_sec; + out->body.attr.attr.atimensec = oldtimes[0].tv_nsec; + out->body.attr.attr.mtime = newtimes[1].tv_sec; + out->body.attr.attr.mtimensec = newtimes[1].tv_nsec; + })); + EXPECT_EQ(0, utimensat(AT_FDCWD, FULLPATH, &newtimes[0], 0)) + << strerror(errno); +} + +/* + * Writethrough cache: newly changed attributes should be automatically cached, + * if the filesystem allows it + */ +//TODO TEST_F(Setattr, writethrough_cache){} From owner-svn-src-projects@freebsd.org Sat Mar 2 16:28:30 2019 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 98A201503E6A for ; Sat, 2 Mar 2019 16:28:30 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 38E146E662; Sat, 2 Mar 2019 16:28:30 +0000 (UTC) (envelope-from asomers@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1FF467467; Sat, 2 Mar 2019 16:28:30 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x22GSTQH073209; Sat, 2 Mar 2019 16:28:29 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x22GSTTV073206; Sat, 2 Mar 2019 16:28:29 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <201903021628.x22GSTTV073206@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Sat, 2 Mar 2019 16:28:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r344727 - projects/fuse2/tests/sys/fs/fuse X-SVN-Group: projects X-SVN-Commit-Author: asomers X-SVN-Commit-Paths: projects/fuse2/tests/sys/fs/fuse X-SVN-Commit-Revision: 344727 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 38E146E662 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.97)[-0.971,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Mar 2019 16:28:30 -0000 Author: asomers Date: Sat Mar 2 16:28:29 2019 New Revision: 344727 URL: https://svnweb.freebsd.org/changeset/base/344727 Log: fuse(4) use a global environment check. This is marginally faster than using an environment check in each test case. Also, if the global check fails then all of the tests are skipped. Oddly, it's not possible to skip a test in any other way. Also, allow the test to run as a normal user if vfs.usermount=1 and /dev/fuse is accessible. Reported by: ngie Sponsored by: The FreeBSD Foundation Modified: projects/fuse2/tests/sys/fs/fuse/Makefile projects/fuse2/tests/sys/fs/fuse/utils.cc projects/fuse2/tests/sys/fs/fuse/utils.hh Modified: projects/fuse2/tests/sys/fs/fuse/Makefile ============================================================================== --- projects/fuse2/tests/sys/fs/fuse/Makefile Sat Mar 2 16:10:11 2019 (r344726) +++ projects/fuse2/tests/sys/fs/fuse/Makefile Sat Mar 2 16:28:29 2019 (r344727) @@ -25,7 +25,6 @@ SRCS.setattr+= utils.cc # TODO: drastically increase timeout after test development is mostly complete TEST_METADATA+= timeout=10 -TEST_METADATA+= required_user=root FUSEFS= ${.CURDIR:H:H:H:H}/sys/fs/fuse MOUNT= ${.CURDIR:H:H:H:H}/sbin/mount Modified: projects/fuse2/tests/sys/fs/fuse/utils.cc ============================================================================== --- projects/fuse2/tests/sys/fs/fuse/utils.cc Sat Mar 2 16:10:11 2019 (r344726) +++ projects/fuse2/tests/sys/fs/fuse/utils.cc Sat Mar 2 16:28:29 2019 (r344727) @@ -27,11 +27,44 @@ * SUCH DAMAGE. */ +#include +#include +#include + #include #include #include "mockfs.hh" +#include "utils.hh" +class FuseEnv: public ::testing::Environment { + virtual void SetUp() { + const char *mod_name = "fuse"; + const char *devnode = "/dev/fuse"; + const char *usermount_node = "vfs.usermount"; + int usermount_val = 0; + size_t usermount_size = sizeof(usermount_val); + if (modfind(mod_name) == -1) { + FAIL() << "Module " << mod_name << + " could not be resolved"; + } + if (eaccess(devnode, R_OK | W_OK)) { + if (errno == ENOENT) { + FAIL() << devnode << " does not exist"; + } else if (errno == EACCES) { + FAIL() << devnode << + " is not accessible by the current user"; + } else { + FAIL() << strerror(errno); + } + } + sysctlbyname(usermount_node, &usermount_val, &usermount_size, + NULL, 0); + if (geteuid() != 0 && !usermount_val) + FAIL() << "current user is not allowed to mount"; + } +}; + static void usage(char* progname) { fprintf(stderr, "Usage: %s [-v]\n\t-v increase verbosity\n", progname); exit(2); @@ -39,8 +72,10 @@ static void usage(char* progname) { int main(int argc, char **argv) { int ch; + FuseEnv *fuse_env = new FuseEnv; ::testing::InitGoogleTest(&argc, argv); + ::testing::AddGlobalTestEnvironment(fuse_env); while ((ch = getopt(argc, argv, "v")) != -1) { switch (ch) { Modified: projects/fuse2/tests/sys/fs/fuse/utils.hh ============================================================================== --- projects/fuse2/tests/sys/fs/fuse/utils.hh Sat Mar 2 16:10:11 2019 (r344726) +++ projects/fuse2/tests/sys/fs/fuse/utils.hh Sat Mar 2 16:28:29 2019 (r344727) @@ -27,27 +27,12 @@ * SUCH DAMAGE. */ -#include - -#define GTEST_REQUIRE_KERNEL_MODULE(_mod_name) do { \ - if (modfind(_mod_name) == -1) { \ - printf("module %s could not be resolved: %s\n", \ - _mod_name, strerror(errno)); \ - /* - * TODO: enable GTEST_SKIP once GoogleTest 1.8.2 merges - * GTEST_SKIP() - */ \ - FAIL() << "Module " << _mod_name << " could not be resolved\n";\ - } \ -} while(0) - class FuseTest : public ::testing::Test { protected: MockFS *m_mock = NULL; public: void SetUp() { - GTEST_REQUIRE_KERNEL_MODULE("fuse"); try { m_mock = new MockFS{}; } catch (std::system_error err) { From owner-svn-src-projects@freebsd.org Sat Mar 2 20:31:52 2019 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E44D7150E07F for ; Sat, 2 Mar 2019 20:31:51 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: from mail-pl1-x62b.google.com (mail-pl1-x62b.google.com [IPv6:2607:f8b0:4864:20::62b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id DB14681B96; Sat, 2 Mar 2019 20:31:50 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: by mail-pl1-x62b.google.com with SMTP id b65so618940plb.6; Sat, 02 Mar 2019 12:31:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=eeD+ehhWD73Z7jNZxR3A3suuJbrZHQFnk+ncTKlAuq8=; b=QmuErqxbY265M5N4/rMFUgycoBO72LbUgzRhLoUZvnMyL+0WyslJE/QZqCvHc/7wy3 8KykVAcYEDbqlKdow2T+dHhO7uZFdcfMFGKx8IRhoUJ59fqfbuZt7WmlpA8zHj/GtPtp c5mdOU2dADeAAKOcWl4NfOvZZt6/MeGHA38j268OxIV5+YkfLCYmpG+MbVpoWLZEtGYm U7x02PnKxxfsP1HLGAbUc527co3yAIE5XKzfE1k4LMVqkBuTPv0+2X4wH3sOGv8BsDnG 9M3SbsT5J7nRPTHXXT0M85hcG8o1M0iT+dp6FLqeGuYtFxo6uddjQamLd9XllbqN8Eea lHGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=eeD+ehhWD73Z7jNZxR3A3suuJbrZHQFnk+ncTKlAuq8=; b=dKInNCNm+l47I94UvTWqJ4ClcqZytHDb0Gh09C2FZKplW81SGsmpsWkSXHItI4JowL Q1+Afjm3fawrWQrouxXNm4MHhBwbpKA7OlRA/I1oePNuTAqRFQGb+YlRYMENnx/iYUI/ 9ttk7Kdz23vQ6EADbaVauPyvrznn5IFnEkAAemfuFYu+XbG2LWHODOdsumkb7aozcGYA DTBupjjD2G4xceRC4tEh3GMa8j1HYgbz61lR1Tm+UiP4q3mOZI+rpyH/jHd1u+rLg93c e93aqng5Nrh/PmyyTPVht31NEv2RPYUAyYVPKBDjzj2bWrE9zFJ8gVP6VBbJzuGGwOok p9RQ== X-Gm-Message-State: APjAAAU4+5sgCtsXNt9GEn2STDj68L3zXJXzn2J7gh7ep/MSrmc9VPaP +Ut4AMMqPIFxWnbJmdKM3ExwgwCG X-Google-Smtp-Source: APXvYqzewiBEVgZBrwD70YbVHHik/6n+uASDe5mpMujWShkmSeVaLzdGmrG5PPqJ0PtbbIkQIojaDA== X-Received: by 2002:a17:902:bd87:: with SMTP id q7mr11985688pls.227.1551558709500; Sat, 02 Mar 2019 12:31:49 -0800 (PST) Received: from [192.168.20.21] (c-73-19-52-228.hsd1.wa.comcast.net. [73.19.52.228]) by smtp.gmail.com with ESMTPSA id a24sm2230564pfn.85.2019.03.02.12.31.48 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 02 Mar 2019 12:31:48 -0800 (PST) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 12.2 \(3445.102.3\)) Subject: Re: svn commit: r344727 - projects/fuse2/tests/sys/fs/fuse From: "Enji Cooper (yaneurabeya)" In-Reply-To: Date: Sat, 2 Mar 2019 12:31:48 -0800 Cc: src-committers , svn-src-projects@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: References: <201903021628.x22GSTTV073206@repo.freebsd.org> To: Alan Somers X-Mailer: Apple Mail (2.3445.102.3) X-Rspamd-Queue-Id: DB14681B96 X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20161025 header.b=QmuErqxb; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of yaneurabeya@gmail.com designates 2607:f8b0:4864:20::62b as permitted sender) smtp.mailfrom=yaneurabeya@gmail.com X-Spamd-Result: default: False [-6.39 / 15.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; TO_DN_SOME(0.00)[]; FREEMAIL_FROM(0.00)[gmail.com]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36]; MV_CASE(0.50)[]; RCVD_COUNT_THREE(0.00)[3]; DKIM_TRACE(0.00)[gmail.com:+]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; MX_GOOD(-0.01)[cached: alt3.gmail-smtp-in.l.google.com]; NEURAL_HAM_SHORT(-0.98)[-0.976,0]; FROM_EQ_ENVFROM(0.00)[]; RCVD_TLS_LAST(0.00)[]; MIME_TRACE(0.00)[0:+]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; MID_RHS_MATCH_FROM(0.00)[]; DWL_DNSWL_NONE(0.00)[gmail.com.dwl.dnswl.org : 127.0.5.0]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20161025]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[3]; TO_MATCH_ENVRCPT_ALL(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; IP_SCORE(-2.90)[ip: (-9.68), ipnet: 2607:f8b0::/32(-2.72), asn: 15169(-2.04), country: US(-0.07)]; RCVD_IN_DNSWL_NONE(0.00)[b.2.6.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0] X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Mar 2019 20:31:52 -0000 > On Mar 2, 2019, at 11:38, Enji Cooper (yaneurabeya) = wrote: >=20 >=20 >> On Mar 2, 2019, at 08:28, Alan Somers wrote: =E2=80=A6 >> Oddly, it's not possible to skip a test in any other way. I want to highlight this sentence a bit. It=E2=80=99s possible to skip test cases by prefixing them with = `DISABLED_` =E2=80=94 which you can then ignore when rerunning the test = program via `=E2=80=94gtest_also_run_disabled_tests`. However, you can = actually skip tests at runtime via the `GTEST_SKIP()` macro, as well, = which in combination with `SetupEnvironment(..)` is probably the most = correct way to handle prerequisites not being met at runtime. HTH, -Enji= From owner-svn-src-projects@freebsd.org Sat Mar 2 20:53:49 2019 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B3929150EBC5 for ; Sat, 2 Mar 2019 20:53:49 +0000 (UTC) (envelope-from asomers@gmail.com) Received: from mail-lf1-x136.google.com (mail-lf1-x136.google.com [IPv6:2a00:1450:4864:20::136]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 2E28D82A82; Sat, 2 Mar 2019 20:53:48 +0000 (UTC) (envelope-from asomers@gmail.com) Received: by mail-lf1-x136.google.com with SMTP id x206so871068lff.3; Sat, 02 Mar 2019 12:53:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=9+q4ubd7HId9zlWaVzomEbN1s2OGfPEfogedFT0Bw6Y=; b=ilK90jfZeA5+qdQdRWVvWPyhSz42oAXbdqEGRFe3fnJF45nPCvJ/eVPdOiQPnGJPmH vPIIOzsrnKQFM7wgybII0/0+Qgyh7OYDJy2ZvB7qE0liTZmq+4ACjEt1a4+s1H8JNyX4 H8osQxJkzaZGs9MAyrNSJWOcmm9YAWXvDzS28TGpE22riXqswmTc3ZbU+UDRZimc/RLm 9lJv8smwICowKhr89L2OqnPOQh/Q4ID5ShUUkoBaEPLV2KYBfdEZZAfoAY12HmevqliL UcrGTEj3ziuunLivNCE3wxg1PS8UKPi85gifTseKQpda9GE3bRdpH2XT9TYtRjL01TYI dcrQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=9+q4ubd7HId9zlWaVzomEbN1s2OGfPEfogedFT0Bw6Y=; b=TgbHtB7lGZxLLefXYCB/UKeu4TocWFFaM7syNu43jtK+oJuXlDYgj/lCzuDX2TigoG riJhT+a9b13//WKS5vCmCGGC+yScyqyHzc0KZ8i9cU73QJohSGwnmfjBJ65EaLOdIqT3 vMKV5t+kIG1TtGMiV9MtYjqj45ydvKtYbhXpSUcc2HEP3vrOV77oVvzIFDLk1rqyoMVh 4P/IIE4oiNPz6Fz7Hc+wVLvdQ8n/sy4Ajeq2K+VZCtBMcr81J1i80dIARX6blilafLUL YotVgS1Fmb+JQnXkZjoMQmSGVDEVWP05VnrjOzO2SouUhjtoJODW0lJUV+ud6NuZ6PoR tCrQ== X-Gm-Message-State: APjAAAV1Vq1bAtQAf/Wf8BbcfDGRvSOS50TdvZK5K+f+haaBFcIigHYc nfTf20Uy8219ckLYjnV9q4yhp4DQKpHRxwbfVy4= X-Google-Smtp-Source: APXvYqz8Ofpzw99krPl7AydoYmgyzXWWBmdQqLnDtpY0otJUOEVpL9T5+jOLvX2r2vX3bFWWCpRpHKCGQRSIpXIu+us= X-Received: by 2002:ac2:415a:: with SMTP id c26mr6806963lfi.62.1551560026370; Sat, 02 Mar 2019 12:53:46 -0800 (PST) MIME-Version: 1.0 References: <201903021628.x22GSTTV073206@repo.freebsd.org> <2E0BAFA6-3DEC-4749-9042-E70A39C90CE3@gmail.com> In-Reply-To: <2E0BAFA6-3DEC-4749-9042-E70A39C90CE3@gmail.com> From: alan somers Date: Sat, 2 Mar 2019 13:53:34 -0700 Message-ID: Subject: Re: svn commit: r344727 - projects/fuse2/tests/sys/fs/fuse To: Enji Cooper Cc: Alan Somers , src-committers , svn-src-projects@freebsd.org X-Rspamd-Queue-Id: 2E28D82A82 X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20161025 header.b=ilK90jfZ; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of asomers@gmail.com designates 2a00:1450:4864:20::136 as permitted sender) smtp.mailfrom=asomers@gmail.com X-Spamd-Result: default: False [-6.07 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20161025]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; FREEMAIL_FROM(0.00)[gmail.com]; R_SPF_ALLOW(-0.20)[+ip6:2a00:1450:4000::/36]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; RCVD_TLS_LAST(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; TO_DN_SOME(0.00)[]; NEURAL_HAM_SHORT(-0.24)[-0.244,0]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[gmail.com:+]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; RCVD_IN_DNSWL_NONE(0.00)[6.3.1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.5.4.1.0.0.a.2.list.dnswl.org : 127.0.5.0]; MX_GOOD(-0.01)[cached: alt3.gmail-smtp-in.l.google.com]; IP_SCORE(-2.82)[ip: (-9.68), ipnet: 2a00:1450::/32(-2.29), asn: 15169(-2.04), country: US(-0.07)]; FREEMAIL_TO(0.00)[gmail.com]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+,1:+]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2a00:1450::/32, country:US]; RCVD_COUNT_TWO(0.00)[2]; DWL_DNSWL_NONE(0.00)[gmail.com.dwl.dnswl.org : 127.0.5.0] Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Mar 2019 20:53:49 -0000 On Sat, Mar 2, 2019, 1:38 PM Enji Cooper (yaneurabeya) < yaneurabeya@gmail.com wrote: > > > > On Mar 2, 2019, at 12:31, Enji Cooper (yaneurabeya) < > yaneurabeya@gmail.com> wrote: > > > > > >> On Mar 2, 2019, at 11:38, Enji Cooper (yaneurabeya) < > yaneurabeya@gmail.com> wrote: > >> > >> > >>> On Mar 2, 2019, at 08:28, Alan Somers wrote: > > > > =E2=80=A6 > > > >>> Oddly, it's not possible to skip a test in any other way. > > > > I want to highlight this sentence a bit. > > > > It=E2=80=99s possible to skip test cases by prefixing them with `DISABL= ED_` =E2=80=94 > which you can then ignore when rerunning the test program via > `=E2=80=94gtest_also_run_disabled_tests`. However, you can actually skip = tests at > > One nit in my prior explanation that I need to correct... > > It=E2=80=99s possible to skip test cases -> It=E2=80=99s possible to igno= re test cases > > =E2=80=A6 since `DISABLED_` is more about filtering than skipping. > > Cheers, > -Enji Yeah, it's different. And the problem with SKIP is that it isn't in any released version of GoogleTest yet. From owner-svn-src-projects@freebsd.org Sat Mar 2 19:38:29 2019 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 09F87150C2D6 for ; Sat, 2 Mar 2019 19:38:29 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: from mail-pf1-x433.google.com (mail-pf1-x433.google.com [IPv6:2607:f8b0:4864:20::433]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id EF8B777E69; Sat, 2 Mar 2019 19:38:27 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: by mail-pf1-x433.google.com with SMTP id n125so544436pfn.5; Sat, 02 Mar 2019 11:38:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=H/0RoJPqHB2K3nR77ew6skggltWE9wS3FhX+72cjHsM=; b=kAAEPrifsj41Q472WOZJDnFf5ycbF38DC8KHpNOwiaZ/MjJDoOIJW4DEgSypvN1p5L k5cnmDA0cz5UxMtatlswgxvFyTnxxI20D5lHnlislXTwwqewCLmJfHq8bTZnVBkZra6r UF5U5020NlzSbC7FtZAcO9Cahb9wrkdiAIXaEFPWRF0w8WZHXBo827qwOX4xpX1mUxCl jCCU8wY1FIoKYKTwJ+2i3wOO8/vHQqPC733kCU6ySFX2c8+Ri48/mit1GrWUKom9yaxy u9IuX3uyOo9NEshbhja44VVewlliwd0adRUhpVkUe54iHj8rrhlEex0FNgR8g1mBh+fo 3N0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=H/0RoJPqHB2K3nR77ew6skggltWE9wS3FhX+72cjHsM=; b=i4uqdnY+GczggZH0GIeuOyjP90MMm3814MNn/DuBOEM1MkQxtuU2mUSUiU26VSBCoR FkzaK2gc2tIsAF2ghGAHxxh8J0g9ZkR7YVMq8+K8r9PtReXfzyF+zsKpM/g6yJEvvEv5 6b1qkVgqWyegYC6a1pvJHAcY7zNqz3S/sbTvMqnm8j5B6cDMYgQpLlXEmMXU4+aPearM 0x4ryG8j9ac5Quh+TkxcYXmPJovLm7dpBaE8OM9lhMFt8E/UfWpO+YrzmG9RD6LoVPxw 1GNFrr6iiFjDVGH3ZoEWUJmpzsyEzJCWO4E628UUA9G6i6sKAAejLD2G+dB5g4VTtEw6 GlmA== X-Gm-Message-State: APjAAAXG6BCXq97jySWcP8MFrMRxDI6cTTpL1qzUZl0hk53ZmL23wcCp o4Qe6HLJUdd/zbBoZdH4EZ6Rv35X X-Google-Smtp-Source: APXvYqxNUuhsB/y7W8khTUknX84p7MnddXFKpJKw9xesTrHjQ3G/KV1V9geHEKnjK9WFYYZ7rqJEpw== X-Received: by 2002:a65:64d9:: with SMTP id t25mr11129683pgv.244.1551555506472; Sat, 02 Mar 2019 11:38:26 -0800 (PST) Received: from [192.168.20.21] (c-73-19-52-228.hsd1.wa.comcast.net. [73.19.52.228]) by smtp.gmail.com with ESMTPSA id q62sm3415488pfi.183.2019.03.02.11.38.25 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 02 Mar 2019 11:38:25 -0800 (PST) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 12.2 \(3445.102.3\)) Subject: Re: svn commit: r344727 - projects/fuse2/tests/sys/fs/fuse From: "Enji Cooper (yaneurabeya)" In-Reply-To: <201903021628.x22GSTTV073206@repo.freebsd.org> Date: Sat, 2 Mar 2019 11:38:24 -0800 Cc: src-committers , svn-src-projects@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: References: <201903021628.x22GSTTV073206@repo.freebsd.org> To: Alan Somers X-Mailer: Apple Mail (2.3445.102.3) X-Rspamd-Queue-Id: EF8B777E69 X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20161025 header.b=kAAEPrif; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of yaneurabeya@gmail.com designates 2607:f8b0:4864:20::433 as permitted sender) smtp.mailfrom=yaneurabeya@gmail.com X-Spamd-Result: default: False [-6.00 / 15.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36]; MV_CASE(0.50)[]; FREEMAIL_FROM(0.00)[gmail.com]; RCVD_COUNT_THREE(0.00)[3]; DKIM_TRACE(0.00)[gmail.com:+]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; MX_GOOD(-0.01)[cached: alt3.gmail-smtp-in.l.google.com]; NEURAL_HAM_SHORT(-0.92)[-0.919,0]; FROM_EQ_ENVFROM(0.00)[]; RCVD_TLS_LAST(0.00)[]; MIME_TRACE(0.00)[0:+]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; MID_RHS_MATCH_FROM(0.00)[]; DWL_DNSWL_NONE(0.00)[gmail.com.dwl.dnswl.org : 127.0.5.0]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20161025]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[3]; TO_MATCH_ENVRCPT_ALL(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; IP_SCORE(-2.58)[ip: (-8.04), ipnet: 2607:f8b0::/32(-2.72), asn: 15169(-2.04), country: US(-0.07)]; RCVD_IN_DNSWL_NONE(0.00)[3.3.4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0] X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Mar 2019 19:38:29 -0000 > On Mar 2, 2019, at 08:28, Alan Somers wrote: >=20 > Author: asomers > Date: Sat Mar 2 16:28:29 2019 > New Revision: 344727 > URL: https://svnweb.freebsd.org/changeset/base/344727 >=20 > Log: > fuse(4) use a global environment check. >=20 > This is marginally faster than using an environment check in each = test case. > Also, if the global check fails then all of the tests are skipped. = Oddly, > it's not possible to skip a test in any other way. I used incorrect terminology in my previous description, so I want to = clarify my previous points. * SetupEnvironment(..) is for test programs [1]. * SetUp(..) [test fixture] is for test cases. All of these setup APIs have analogs, i.e., teardown APIs. In the next version of GoogleTest, they are adding an API called = `SetUpTestSuite(..)`, which will allow one to save state common in a = test suite, instead of having to do it per test case. The new API makes = sense for long running setup/teardown routines, like initializing a = database (which a test suite will use) or network server, from scratch. Cheers! -Enji 1. This API isn=E2=80=99t documented on GitHub; I=E2=80=99ll submit a PR = for it.= From owner-svn-src-projects@freebsd.org Sat Mar 2 20:38:08 2019 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9D797150E48B for ; Sat, 2 Mar 2019 20:38:08 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: from mail-pf1-x42b.google.com (mail-pf1-x42b.google.com [IPv6:2607:f8b0:4864:20::42b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 84B778215F; Sat, 2 Mar 2019 20:38:07 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: by mail-pf1-x42b.google.com with SMTP id a3so570571pff.11; Sat, 02 Mar 2019 12:38:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=dPCERDiBGlmFRmVVekCYTHXSLgbrBU6bFHXcm9P8jWk=; b=aRebMCdoZJaoEEZIGGVUirHMREdNhA7AGf4g1sQ2pbaYrQsWcYLr6nqEcfQHZEenl5 OJtbe0QEf0csrR3YYQMCCrvzmOgy7CbjNZ9DreaiFbnRFewzlTCYj+AVeW8qs0tXlo5W XDHFf02wwI1r9MG+2UB6hkGxU+CAUpq4R06EZqW0ih3vv/7wDbTIFK9i6PT42DWhhc7/ cVl7eXLtPV4W6HajD/G/CBlZL4a4EgtxLYQp8CBFsytn45MsBGZR4bVPmEjb7/d22aQ8 udfkRm2nTD/C5VciyzmSKGLM+sHfvskWGbw0uU2JNIN+VMI2NkbjJmxw4b5C/qHKpIcG 9BOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=dPCERDiBGlmFRmVVekCYTHXSLgbrBU6bFHXcm9P8jWk=; b=gptFVxqdWbaVS38IpWKm9j269Ic7dBDdet3jD1K6sLs4NxxDYexQxPtyjb73841Xch GdsIuwuvbUozR5oQkyoiIMu2Fr/BEsgrl5BRrvH0SaiLfLiYqYhWQp1whHYgpuUvTrWY Px0jbuKoqN8uN68a5jRk/NfoIkbs84NIUlqosTvs/cFOwo28fBj90bIQ25TzUMa+HDQ3 XvsaeQgcnr8bAvcwqJw/KoyLvv6fPPwaTx7tlfVaYp0jgIMyI1n+5CKrEQN+Layr8wdG 1V+f7pMQSg2nwDYsn4rZw1Q0ZZStby8eKuutXmUhtAb3dNYKx3CGhK/H3qCwRnlCACUB Q1ZA== X-Gm-Message-State: APjAAAV1CVXeN1rn+3F60Z3/pMWeuZg0TXDN0qBApToKcls2uhHrg+EN BtoGT5MSd732T27MI30X9XGWtR98 X-Google-Smtp-Source: APXvYqwjVZox8pL5KQ7pB6Q+L5NhcgkwV9OYA3Rf/m0oK9os2qo8loELMi/sXBPT3VDL0jOmHw4tjw== X-Received: by 2002:a63:8048:: with SMTP id j69mr11109761pgd.432.1551559086110; Sat, 02 Mar 2019 12:38:06 -0800 (PST) Received: from [192.168.20.21] (c-73-19-52-228.hsd1.wa.comcast.net. [73.19.52.228]) by smtp.gmail.com with ESMTPSA id j1sm2164480pgp.84.2019.03.02.12.38.05 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 02 Mar 2019 12:38:05 -0800 (PST) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 12.2 \(3445.102.3\)) Subject: Re: svn commit: r344727 - projects/fuse2/tests/sys/fs/fuse From: "Enji Cooper (yaneurabeya)" In-Reply-To: Date: Sat, 2 Mar 2019 12:38:04 -0800 Cc: src-committers , svn-src-projects@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: <2E0BAFA6-3DEC-4749-9042-E70A39C90CE3@gmail.com> References: <201903021628.x22GSTTV073206@repo.freebsd.org> To: Alan Somers X-Mailer: Apple Mail (2.3445.102.3) X-Rspamd-Queue-Id: 84B778215F X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20161025 header.b=aRebMCdo; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of yaneurabeya@gmail.com designates 2607:f8b0:4864:20::42b as permitted sender) smtp.mailfrom=yaneurabeya@gmail.com X-Spamd-Result: default: False [-6.26 / 15.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; TO_DN_SOME(0.00)[]; FREEMAIL_FROM(0.00)[gmail.com]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36]; MV_CASE(0.50)[]; RCVD_COUNT_THREE(0.00)[3]; DKIM_TRACE(0.00)[gmail.com:+]; MX_GOOD(-0.01)[cached: alt3.gmail-smtp-in.l.google.com]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; NEURAL_HAM_SHORT(-0.98)[-0.978,0]; FROM_EQ_ENVFROM(0.00)[]; RCVD_TLS_LAST(0.00)[]; MIME_TRACE(0.00)[0:+]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; MID_RHS_MATCH_FROM(0.00)[]; DWL_DNSWL_NONE(0.00)[gmail.com.dwl.dnswl.org : 127.0.5.0]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20161025]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[3]; TO_MATCH_ENVRCPT_ALL(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; IP_SCORE(-2.77)[ip: (-9.01), ipnet: 2607:f8b0::/32(-2.72), asn: 15169(-2.04), country: US(-0.07)]; RCVD_IN_DNSWL_NONE(0.00)[b.2.4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0] X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Mar 2019 20:38:09 -0000 > On Mar 2, 2019, at 12:31, Enji Cooper (yaneurabeya) = wrote: >=20 >=20 >> On Mar 2, 2019, at 11:38, Enji Cooper (yaneurabeya) = wrote: >>=20 >>=20 >>> On Mar 2, 2019, at 08:28, Alan Somers wrote: >=20 > =E2=80=A6 >=20 >>> Oddly, it's not possible to skip a test in any other way. >=20 > I want to highlight this sentence a bit. >=20 > It=E2=80=99s possible to skip test cases by prefixing them with = `DISABLED_` =E2=80=94 which you can then ignore when rerunning the test = program via `=E2=80=94gtest_also_run_disabled_tests`. However, you can = actually skip tests at One nit in my prior explanation that I need to correct... It=E2=80=99s possible to skip test cases -> It=E2=80=99s possible to = ignore test cases =E2=80=A6 since `DISABLED_` is more about filtering than skipping. Cheers, -Enji=