From owner-svn-src-vendor@freebsd.org Sun Jan 29 20:58:40 2017 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 16C20CC7F58; Sun, 29 Jan 2017 20:58:40 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A980E133A; Sun, 29 Jan 2017 20:58:39 +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 v0TKwc64074939; Sun, 29 Jan 2017 20:58:38 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0TKwa25074916; Sun, 29 Jan 2017 20:58:36 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201701292058.v0TKwa25074916@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 29 Jan 2017 20:58:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r312956 - in vendor/llvm/dist: cmake/modules include/llvm/IR lib/Analysis lib/Bitcode/Reader lib/CodeGen/SelectionDAG lib/Target/AArch64 lib/Target/AMDGPU lib/Target/ARM lib/Target/X86 ... X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 29 Jan 2017 20:58:40 -0000 Author: dim Date: Sun Jan 29 20:58:36 2017 New Revision: 312956 URL: https://svnweb.freebsd.org/changeset/base/312956 Log: Vendor import of llvm release_40 branch r293443: https://llvm.org/svn/llvm-project/llvm/branches/release_40@293443 Added: vendor/llvm/dist/test/Analysis/BasicAA/pr31761.ll vendor/llvm/dist/test/CodeGen/AMDGPU/flat-for-global-subtarget-feature.ll vendor/llvm/dist/utils/sanitizers/ vendor/llvm/dist/utils/sanitizers/ubsan_blacklist.txt (contents, props changed) Deleted: vendor/llvm/dist/test/CodeGen/AMDGPU/ci-use-flat-for-global.ll Modified: vendor/llvm/dist/cmake/modules/HandleLLVMOptions.cmake vendor/llvm/dist/include/llvm/IR/IntrinsicsAMDGPU.td vendor/llvm/dist/lib/Analysis/BasicAliasAnalysis.cpp vendor/llvm/dist/lib/Bitcode/Reader/MetadataLoader.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64.td vendor/llvm/dist/lib/Target/AArch64/AArch64InstrInfo.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64Subtarget.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPU.td vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUISelLowering.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUISelLowering.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUInstrInfo.td vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUSubtarget.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUSubtarget.h vendor/llvm/dist/lib/Target/AMDGPU/R600ISelLowering.cpp vendor/llvm/dist/lib/Target/AMDGPU/R600Instructions.td vendor/llvm/dist/lib/Target/AMDGPU/SIFrameLowering.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIISelLowering.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIMachineFunctionInfo.h vendor/llvm/dist/lib/Target/AMDGPU/SIRegisterInfo.cpp vendor/llvm/dist/lib/Target/AMDGPU/VOP3Instructions.td vendor/llvm/dist/lib/Target/ARM/ARMAsmPrinter.cpp vendor/llvm/dist/lib/Target/ARM/ARMISelLowering.cpp vendor/llvm/dist/lib/Target/X86/X86ISelLowering.cpp vendor/llvm/dist/lib/Transforms/Utils/SimplifyCFG.cpp vendor/llvm/dist/test/CodeGen/AArch64/no-quad-ldp-stp.ll vendor/llvm/dist/test/CodeGen/AMDGPU/32-bit-local-address-space.ll vendor/llvm/dist/test/CodeGen/AMDGPU/add.i16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/add.ll vendor/llvm/dist/test/CodeGen/AMDGPU/amdgcn.private-memory.ll vendor/llvm/dist/test/CodeGen/AMDGPU/amdgpu.work-item-intrinsics.deprecated.ll vendor/llvm/dist/test/CodeGen/AMDGPU/and.ll vendor/llvm/dist/test/CodeGen/AMDGPU/anyext.ll vendor/llvm/dist/test/CodeGen/AMDGPU/atomic_cmp_swap_local.ll vendor/llvm/dist/test/CodeGen/AMDGPU/atomic_load_add.ll vendor/llvm/dist/test/CodeGen/AMDGPU/atomic_load_sub.ll vendor/llvm/dist/test/CodeGen/AMDGPU/basic-branch.ll vendor/llvm/dist/test/CodeGen/AMDGPU/bfi_int.ll vendor/llvm/dist/test/CodeGen/AMDGPU/bfm.ll vendor/llvm/dist/test/CodeGen/AMDGPU/bitcast-vector-extract.ll vendor/llvm/dist/test/CodeGen/AMDGPU/bitreverse.ll vendor/llvm/dist/test/CodeGen/AMDGPU/br_cc.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/branch-condition-and.ll vendor/llvm/dist/test/CodeGen/AMDGPU/bswap.ll vendor/llvm/dist/test/CodeGen/AMDGPU/bug-vopc-commute.ll vendor/llvm/dist/test/CodeGen/AMDGPU/build_vector.ll vendor/llvm/dist/test/CodeGen/AMDGPU/cgp-addressing-modes-flat.ll vendor/llvm/dist/test/CodeGen/AMDGPU/cgp-addressing-modes.ll vendor/llvm/dist/test/CodeGen/AMDGPU/cgp-bitfield-extract.ll vendor/llvm/dist/test/CodeGen/AMDGPU/concat_vectors.ll vendor/llvm/dist/test/CodeGen/AMDGPU/constant-fold-mi-operands.ll vendor/llvm/dist/test/CodeGen/AMDGPU/copy-illegal-type.ll vendor/llvm/dist/test/CodeGen/AMDGPU/copy-to-reg.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ctlz.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ctlz_zero_undef.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ctpop.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ctpop64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/cttz_zero_undef.ll vendor/llvm/dist/test/CodeGen/AMDGPU/cube.ll vendor/llvm/dist/test/CodeGen/AMDGPU/cvt_f32_ubyte.ll vendor/llvm/dist/test/CodeGen/AMDGPU/cvt_rpi_i32_f32.ll vendor/llvm/dist/test/CodeGen/AMDGPU/elf.ll vendor/llvm/dist/test/CodeGen/AMDGPU/extload.ll vendor/llvm/dist/test/CodeGen/AMDGPU/extract_vector_elt-f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/extract_vector_elt-i16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/extract_vector_elt-i64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/extract_vector_elt-i8.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fabs.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fadd.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fadd.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fadd64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fcanonicalize.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fceil.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fcmp.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fcmp64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fcopysign.f32.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fcopysign.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fdiv.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fdiv.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fdiv.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ffloor.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ffloor.ll vendor/llvm/dist/test/CodeGen/AMDGPU/flat-address-space.ll vendor/llvm/dist/test/CodeGen/AMDGPU/flat-scratch-reg.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fma.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fmax3.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fmax3.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fmaxnum.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fmaxnum.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fmin3.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fminnum.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fmul-2-combine-multi-use.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fmul.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fmul.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fmuladd.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fnearbyint.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fneg-combines.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fneg-fabs.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fneg.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fneg.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fp16_to_fp32.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fp16_to_fp64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fp32_to_fp16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fp_to_sint.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fp_to_uint.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fpext.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fpext.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fptosi.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fptoui.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fptrunc.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fptrunc.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fract.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fract.ll vendor/llvm/dist/test/CodeGen/AMDGPU/frem.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fsqrt.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fsqrt.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fsub.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ftrunc.ll vendor/llvm/dist/test/CodeGen/AMDGPU/gep-address-space.ll vendor/llvm/dist/test/CodeGen/AMDGPU/global-directive.ll vendor/llvm/dist/test/CodeGen/AMDGPU/global-extload-i16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/global_atomics.ll vendor/llvm/dist/test/CodeGen/AMDGPU/global_atomics_i64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/gv-const-addrspace.ll vendor/llvm/dist/test/CodeGen/AMDGPU/gv-offset-folding.ll vendor/llvm/dist/test/CodeGen/AMDGPU/half.ll vendor/llvm/dist/test/CodeGen/AMDGPU/hsa-note-no-func.ll vendor/llvm/dist/test/CodeGen/AMDGPU/i1-copy-phi.ll vendor/llvm/dist/test/CodeGen/AMDGPU/icmp64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/imm.ll vendor/llvm/dist/test/CodeGen/AMDGPU/imm16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/indirect-addressing-si.ll vendor/llvm/dist/test/CodeGen/AMDGPU/indirect-private-64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/infinite-loop.ll vendor/llvm/dist/test/CodeGen/AMDGPU/inline-asm.ll vendor/llvm/dist/test/CodeGen/AMDGPU/insert_vector_elt.ll vendor/llvm/dist/test/CodeGen/AMDGPU/inserted-wait-states.mir vendor/llvm/dist/test/CodeGen/AMDGPU/kernel-args.ll vendor/llvm/dist/test/CodeGen/AMDGPU/large-alloca-graphics.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.bfe.i32.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.bfe.u32.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.clamp.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.atomic.dec.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.atomic.inc.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.class.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.cos.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.div.fixup.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.div.fixup.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.div.fmas.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.div.scale.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.fract.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.fract.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.frexp.exp.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.frexp.exp.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.frexp.mant.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.ldexp.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.mbcnt.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.mov.dpp.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.rcp.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.readlane.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.rsq.clamp.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.rsq.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.rsq.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.s.memrealtime.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.s.memtime.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.s.waitcnt.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.sffbh.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.sin.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.sin.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.trig.preop.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.workitem.id.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.ceil.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.cos.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.exp2.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.floor.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.fma.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.fmuladd.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.log2.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.maxnum.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.memcpy.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.minnum.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.r600.read.local.size.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.rint.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.round.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.sin.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.sqrt.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.trunc.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-constant-f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-constant-i1.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-constant-i16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-constant-i32.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-constant-i64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-constant-i8.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-global-f32.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-global-f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-global-i1.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-global-i16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-global-i32.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-global-i64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-global-i8.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-local-i32.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-local-i8.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-weird-sizes.ll vendor/llvm/dist/test/CodeGen/AMDGPU/local-64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/local-atomics.ll vendor/llvm/dist/test/CodeGen/AMDGPU/local-atomics64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/local-stack-slot-bug.ll vendor/llvm/dist/test/CodeGen/AMDGPU/local-stack-slot-offset.ll vendor/llvm/dist/test/CodeGen/AMDGPU/lshl.ll vendor/llvm/dist/test/CodeGen/AMDGPU/lshr.ll vendor/llvm/dist/test/CodeGen/AMDGPU/mad_int24.ll vendor/llvm/dist/test/CodeGen/AMDGPU/mad_uint24.ll vendor/llvm/dist/test/CodeGen/AMDGPU/madak.ll vendor/llvm/dist/test/CodeGen/AMDGPU/madmk.ll vendor/llvm/dist/test/CodeGen/AMDGPU/max.i16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/merge-store-usedef.ll vendor/llvm/dist/test/CodeGen/AMDGPU/min.ll vendor/llvm/dist/test/CodeGen/AMDGPU/mubuf-shader-vgpr.ll vendor/llvm/dist/test/CodeGen/AMDGPU/mul.ll vendor/llvm/dist/test/CodeGen/AMDGPU/mul_int24.ll vendor/llvm/dist/test/CodeGen/AMDGPU/mul_uint24-amdgcn.ll vendor/llvm/dist/test/CodeGen/AMDGPU/operand-spacing.ll vendor/llvm/dist/test/CodeGen/AMDGPU/or.ll vendor/llvm/dist/test/CodeGen/AMDGPU/rcp-pattern.ll vendor/llvm/dist/test/CodeGen/AMDGPU/readcyclecounter.ll vendor/llvm/dist/test/CodeGen/AMDGPU/reduce-load-width-alignment.ll vendor/llvm/dist/test/CodeGen/AMDGPU/reg-coalescer-sched-crash.ll vendor/llvm/dist/test/CodeGen/AMDGPU/reorder-stores.ll vendor/llvm/dist/test/CodeGen/AMDGPU/rotl.i64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/rotr.i64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/rotr.ll vendor/llvm/dist/test/CodeGen/AMDGPU/s_addk_i32.ll vendor/llvm/dist/test/CodeGen/AMDGPU/s_movk_i32.ll vendor/llvm/dist/test/CodeGen/AMDGPU/s_mulk_i32.ll vendor/llvm/dist/test/CodeGen/AMDGPU/scalar_to_vector.ll vendor/llvm/dist/test/CodeGen/AMDGPU/schedule-kernel-arg-loads.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sdiv.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sdivrem24.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sdivrem64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/select-fabs-fneg-extract.ll vendor/llvm/dist/test/CodeGen/AMDGPU/select-i1.ll vendor/llvm/dist/test/CodeGen/AMDGPU/select-vectors.ll vendor/llvm/dist/test/CodeGen/AMDGPU/select.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/selectcc-opt.ll vendor/llvm/dist/test/CodeGen/AMDGPU/setcc-opt.ll vendor/llvm/dist/test/CodeGen/AMDGPU/setcc64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/seto.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sext-in-reg.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sgpr-copy-duplicate-operand.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sgpr-copy.ll vendor/llvm/dist/test/CodeGen/AMDGPU/shl.ll vendor/llvm/dist/test/CodeGen/AMDGPU/shl_add_ptr.ll vendor/llvm/dist/test/CodeGen/AMDGPU/si-annotate-cf.ll vendor/llvm/dist/test/CodeGen/AMDGPU/si-lod-bias.ll vendor/llvm/dist/test/CodeGen/AMDGPU/si-sgpr-spill.ll vendor/llvm/dist/test/CodeGen/AMDGPU/si-spill-cf.ll vendor/llvm/dist/test/CodeGen/AMDGPU/si-spill-sgpr-stack.ll vendor/llvm/dist/test/CodeGen/AMDGPU/si-vector-hang.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sign_extend.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sint_to_fp.i64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sint_to_fp.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sitofp.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/smed3.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sminmax.ll vendor/llvm/dist/test/CodeGen/AMDGPU/smrd-vccz-bug.ll vendor/llvm/dist/test/CodeGen/AMDGPU/smrd.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sopk-compares.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sra.ll vendor/llvm/dist/test/CodeGen/AMDGPU/srl.ll vendor/llvm/dist/test/CodeGen/AMDGPU/store-global.ll vendor/llvm/dist/test/CodeGen/AMDGPU/store-v3i64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sub.i16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/trunc-bitcast-vector.ll vendor/llvm/dist/test/CodeGen/AMDGPU/trunc-cmp-constant.ll vendor/llvm/dist/test/CodeGen/AMDGPU/trunc-store-i1.ll vendor/llvm/dist/test/CodeGen/AMDGPU/trunc-store.ll vendor/llvm/dist/test/CodeGen/AMDGPU/uaddo.ll vendor/llvm/dist/test/CodeGen/AMDGPU/udiv.ll vendor/llvm/dist/test/CodeGen/AMDGPU/udivrem.ll vendor/llvm/dist/test/CodeGen/AMDGPU/udivrem24.ll vendor/llvm/dist/test/CodeGen/AMDGPU/udivrem64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/uint_to_fp.i64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/uint_to_fp.ll vendor/llvm/dist/test/CodeGen/AMDGPU/uitofp.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/umed3.ll vendor/llvm/dist/test/CodeGen/AMDGPU/unaligned-load-store.ll vendor/llvm/dist/test/CodeGen/AMDGPU/uniform-cfg.ll vendor/llvm/dist/test/CodeGen/AMDGPU/urecip.ll vendor/llvm/dist/test/CodeGen/AMDGPU/urem.ll vendor/llvm/dist/test/CodeGen/AMDGPU/use-sgpr-multiple-times.ll vendor/llvm/dist/test/CodeGen/AMDGPU/v_cndmask.ll vendor/llvm/dist/test/CodeGen/AMDGPU/v_mac.ll vendor/llvm/dist/test/CodeGen/AMDGPU/v_mac_f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/v_madak_f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/vgpr-spill-emergency-stack-slot-compute.ll vendor/llvm/dist/test/CodeGen/AMDGPU/vselect.ll vendor/llvm/dist/test/CodeGen/AMDGPU/wait.ll vendor/llvm/dist/test/CodeGen/AMDGPU/waitcnt-flat.ll vendor/llvm/dist/test/CodeGen/AMDGPU/xor.ll vendor/llvm/dist/test/CodeGen/AMDGPU/zero_extend.ll vendor/llvm/dist/test/CodeGen/ARM/neon_div.ll vendor/llvm/dist/test/CodeGen/ARM/vector-load.ll vendor/llvm/dist/test/CodeGen/ARM/xray-armv6-attribute-instrumentation.ll vendor/llvm/dist/test/CodeGen/ARM/xray-armv7-attribute-instrumentation.ll vendor/llvm/dist/test/CodeGen/X86/avx-trunc.ll vendor/llvm/dist/test/CodeGen/X86/avx512-trunc.ll vendor/llvm/dist/test/CodeGen/X86/phaddsub.ll vendor/llvm/dist/test/MC/AMDGPU/vop3.s vendor/llvm/dist/test/Transforms/SimplifyCFG/sink-common-code.ll Modified: vendor/llvm/dist/cmake/modules/HandleLLVMOptions.cmake ============================================================================== --- vendor/llvm/dist/cmake/modules/HandleLLVMOptions.cmake Sun Jan 29 19:54:34 2017 (r312955) +++ vendor/llvm/dist/cmake/modules/HandleLLVMOptions.cmake Sun Jan 29 20:58:36 2017 (r312956) @@ -555,6 +555,8 @@ if(LLVM_USE_SANITIZER) append_common_sanitizer_flags() append("-fsanitize=undefined -fno-sanitize=vptr,function -fno-sanitize-recover=all" CMAKE_C_FLAGS CMAKE_CXX_FLAGS) + append("-fsanitize-blacklist=${CMAKE_SOURCE_DIR}/utils/sanitizers/ubsan_blacklist.txt" + CMAKE_C_FLAGS CMAKE_CXX_FLAGS) elseif (LLVM_USE_SANITIZER STREQUAL "Thread") append_common_sanitizer_flags() append("-fsanitize=thread" CMAKE_C_FLAGS CMAKE_CXX_FLAGS) Modified: vendor/llvm/dist/include/llvm/IR/IntrinsicsAMDGPU.td ============================================================================== --- vendor/llvm/dist/include/llvm/IR/IntrinsicsAMDGPU.td Sun Jan 29 19:54:34 2017 (r312955) +++ vendor/llvm/dist/include/llvm/IR/IntrinsicsAMDGPU.td Sun Jan 29 20:58:36 2017 (r312956) @@ -100,6 +100,10 @@ def int_amdgcn_dispatch_id : GCCBuiltin<"__builtin_amdgcn_dispatch_id">, Intrinsic<[llvm_i64_ty], [], [IntrNoMem]>; +def int_amdgcn_implicit_buffer_ptr : + GCCBuiltin<"__builtin_amdgcn_implicit_buffer_ptr">, + Intrinsic<[LLVMQualPointerType], [], [IntrNoMem]>; + //===----------------------------------------------------------------------===// // Instruction Intrinsics //===----------------------------------------------------------------------===// Modified: vendor/llvm/dist/lib/Analysis/BasicAliasAnalysis.cpp ============================================================================== --- vendor/llvm/dist/lib/Analysis/BasicAliasAnalysis.cpp Sun Jan 29 19:54:34 2017 (r312955) +++ vendor/llvm/dist/lib/Analysis/BasicAliasAnalysis.cpp Sun Jan 29 20:58:36 2017 (r312956) @@ -1191,14 +1191,14 @@ AliasResult BasicAAResult::aliasGEP(cons return MayAlias; AliasResult R = aliasCheck(UnderlyingV1, MemoryLocation::UnknownSize, - AAMDNodes(), V2, V2Size, V2AAInfo, - nullptr, UnderlyingV2); + AAMDNodes(), V2, MemoryLocation::UnknownSize, + V2AAInfo, nullptr, UnderlyingV2); if (R != MustAlias) // If V2 may alias GEP base pointer, conservatively returns MayAlias. // If V2 is known not to alias GEP base pointer, then the two values - // cannot alias per GEP semantics: "A pointer value formed from a - // getelementptr instruction is associated with the addresses associated - // with the first operand of the getelementptr". + // cannot alias per GEP semantics: "Any memory access must be done through + // a pointer value associated with an address range of the memory access, + // otherwise the behavior is undefined.". return R; // If the max search depth is reached the result is undefined Modified: vendor/llvm/dist/lib/Bitcode/Reader/MetadataLoader.cpp ============================================================================== --- vendor/llvm/dist/lib/Bitcode/Reader/MetadataLoader.cpp Sun Jan 29 19:54:34 2017 (r312955) +++ vendor/llvm/dist/lib/Bitcode/Reader/MetadataLoader.cpp Sun Jan 29 20:58:36 2017 (r312956) @@ -919,7 +919,8 @@ Error MetadataLoader::MetadataLoaderImpl // If this isn't a LocalAsMetadata record, we're dropping it. This used // to be legal, but there's no upgrade path. auto dropRecord = [&] { - MetadataList.assignValue(MDNode::get(Context, None), NextMetadataNo++); + MetadataList.assignValue(MDNode::get(Context, None), NextMetadataNo); + NextMetadataNo++; }; if (Record.size() != 2) { dropRecord(); @@ -934,7 +935,8 @@ Error MetadataLoader::MetadataLoaderImpl MetadataList.assignValue( LocalAsMetadata::get(ValueList.getValueFwdRef(Record[1], Ty)), - NextMetadataNo++); + NextMetadataNo); + NextMetadataNo++; break; } case bitc::METADATA_OLD_NODE: { @@ -959,7 +961,8 @@ Error MetadataLoader::MetadataLoaderImpl } else Elts.push_back(nullptr); } - MetadataList.assignValue(MDNode::get(Context, Elts), NextMetadataNo++); + MetadataList.assignValue(MDNode::get(Context, Elts), NextMetadataNo); + NextMetadataNo++; break; } case bitc::METADATA_VALUE: { @@ -972,7 +975,8 @@ Error MetadataLoader::MetadataLoaderImpl MetadataList.assignValue( ValueAsMetadata::get(ValueList.getValueFwdRef(Record[1], Ty)), - NextMetadataNo++); + NextMetadataNo); + NextMetadataNo++; break; } case bitc::METADATA_DISTINCT_NODE: @@ -985,7 +989,8 @@ Error MetadataLoader::MetadataLoaderImpl Elts.push_back(getMDOrNull(ID)); MetadataList.assignValue(IsDistinct ? MDNode::getDistinct(Context, Elts) : MDNode::get(Context, Elts), - NextMetadataNo++); + NextMetadataNo); + NextMetadataNo++; break; } case bitc::METADATA_LOCATION: { @@ -999,7 +1004,8 @@ Error MetadataLoader::MetadataLoaderImpl Metadata *InlinedAt = getMDOrNull(Record[4]); MetadataList.assignValue( GET_OR_DISTINCT(DILocation, (Context, Line, Column, Scope, InlinedAt)), - NextMetadataNo++); + NextMetadataNo); + NextMetadataNo++; break; } case bitc::METADATA_GENERIC_DEBUG: { @@ -1019,7 +1025,8 @@ Error MetadataLoader::MetadataLoaderImpl DwarfOps.push_back(getMDOrNull(Record[I])); MetadataList.assignValue( GET_OR_DISTINCT(GenericDINode, (Context, Tag, Header, DwarfOps)), - NextMetadataNo++); + NextMetadataNo); + NextMetadataNo++; break; } case bitc::METADATA_SUBRANGE: { @@ -1030,7 +1037,8 @@ Error MetadataLoader::MetadataLoaderImpl MetadataList.assignValue( GET_OR_DISTINCT(DISubrange, (Context, Record[1], unrotateSign(Record[2]))), - NextMetadataNo++); + NextMetadataNo); + NextMetadataNo++; break; } case bitc::METADATA_ENUMERATOR: { @@ -1041,7 +1049,8 @@ Error MetadataLoader::MetadataLoaderImpl MetadataList.assignValue( GET_OR_DISTINCT(DIEnumerator, (Context, unrotateSign(Record[1]), getMDString(Record[2]))), - NextMetadataNo++); + NextMetadataNo); + NextMetadataNo++; break; } case bitc::METADATA_BASIC_TYPE: { @@ -1053,7 +1062,8 @@ Error MetadataLoader::MetadataLoaderImpl GET_OR_DISTINCT(DIBasicType, (Context, Record[1], getMDString(Record[2]), Record[3], Record[4], Record[5])), - NextMetadataNo++); + NextMetadataNo); + NextMetadataNo++; break; } case bitc::METADATA_DERIVED_TYPE: { @@ -1069,7 +1079,8 @@ Error MetadataLoader::MetadataLoaderImpl getDITypeRefOrNull(Record[5]), getDITypeRefOrNull(Record[6]), Record[7], Record[8], Record[9], Flags, getDITypeRefOrNull(Record[11]))), - NextMetadataNo++); + NextMetadataNo); + NextMetadataNo++; break; } case bitc::METADATA_COMPOSITE_TYPE: { @@ -1134,7 +1145,8 @@ Error MetadataLoader::MetadataLoaderImpl if (!IsNotUsedInTypeRef && Identifier) MetadataList.addTypeRef(*Identifier, *cast(CT)); - MetadataList.assignValue(CT, NextMetadataNo++); + MetadataList.assignValue(CT, NextMetadataNo); + NextMetadataNo++; break; } case bitc::METADATA_SUBROUTINE_TYPE: { @@ -1151,7 +1163,8 @@ Error MetadataLoader::MetadataLoaderImpl MetadataList.assignValue( GET_OR_DISTINCT(DISubroutineType, (Context, Flags, CC, Types)), - NextMetadataNo++); + NextMetadataNo); + NextMetadataNo++; break; } @@ -1165,7 +1178,8 @@ Error MetadataLoader::MetadataLoaderImpl (Context, getMDOrNull(Record[1]), getMDString(Record[2]), getMDString(Record[3]), getMDString(Record[4]), getMDString(Record[5]))), - NextMetadataNo++); + NextMetadataNo); + NextMetadataNo++; break; } @@ -1181,7 +1195,8 @@ Error MetadataLoader::MetadataLoaderImpl Record.size() == 3 ? DIFile::CSK_None : static_cast(Record[3]), Record.size() == 3 ? nullptr : getMDString(Record[4]))), - NextMetadataNo++); + NextMetadataNo); + NextMetadataNo++; break; } case bitc::METADATA_COMPILE_UNIT: { @@ -1200,7 +1215,8 @@ Error MetadataLoader::MetadataLoaderImpl Record.size() <= 14 ? 0 : Record[14], Record.size() <= 16 ? true : Record[16]); - MetadataList.assignValue(CU, NextMetadataNo++); + MetadataList.assignValue(CU, NextMetadataNo); + NextMetadataNo++; // Move the Upgrade the list of subprograms. if (Metadata *SPs = getMDOrNullWithoutPlaceholders(Record[11])) @@ -1247,7 +1263,8 @@ Error MetadataLoader::MetadataLoaderImpl getMDOrNull(Record[16 + Offset]), // declaration getMDOrNull(Record[17 + Offset]) // variables )); - MetadataList.assignValue(SP, NextMetadataNo++); + MetadataList.assignValue(SP, NextMetadataNo); + NextMetadataNo++; // Upgrade sp->function mapping to function->sp mapping. if (HasFn) { @@ -1272,7 +1289,8 @@ Error MetadataLoader::MetadataLoaderImpl GET_OR_DISTINCT(DILexicalBlock, (Context, getMDOrNull(Record[1]), getMDOrNull(Record[2]), Record[3], Record[4])), - NextMetadataNo++); + NextMetadataNo); + NextMetadataNo++; break; } case bitc::METADATA_LEXICAL_BLOCK_FILE: { @@ -1284,7 +1302,8 @@ Error MetadataLoader::MetadataLoaderImpl GET_OR_DISTINCT(DILexicalBlockFile, (Context, getMDOrNull(Record[1]), getMDOrNull(Record[2]), Record[3])), - NextMetadataNo++); + NextMetadataNo); + NextMetadataNo++; break; } case bitc::METADATA_NAMESPACE: { @@ -1298,7 +1317,8 @@ Error MetadataLoader::MetadataLoaderImpl (Context, getMDOrNull(Record[1]), getMDOrNull(Record[2]), getMDString(Record[3]), Record[4], ExportSymbols)), - NextMetadataNo++); + NextMetadataNo); + NextMetadataNo++; break; } case bitc::METADATA_MACRO: { @@ -1310,7 +1330,8 @@ Error MetadataLoader::MetadataLoaderImpl GET_OR_DISTINCT(DIMacro, (Context, Record[1], Record[2], getMDString(Record[3]), getMDString(Record[4]))), - NextMetadataNo++); + NextMetadataNo); + NextMetadataNo++; break; } case bitc::METADATA_MACRO_FILE: { @@ -1322,7 +1343,8 @@ Error MetadataLoader::MetadataLoaderImpl GET_OR_DISTINCT(DIMacroFile, (Context, Record[1], Record[2], getMDOrNull(Record[3]), getMDOrNull(Record[4]))), - NextMetadataNo++); + NextMetadataNo); + NextMetadataNo++; break; } case bitc::METADATA_TEMPLATE_TYPE: { @@ -1333,7 +1355,8 @@ Error MetadataLoader::MetadataLoaderImpl MetadataList.assignValue(GET_OR_DISTINCT(DITemplateTypeParameter, (Context, getMDString(Record[1]), getDITypeRefOrNull(Record[2]))), - NextMetadataNo++); + NextMetadataNo); + NextMetadataNo++; break; } case bitc::METADATA_TEMPLATE_VALUE: { @@ -1346,7 +1369,8 @@ Error MetadataLoader::MetadataLoaderImpl (Context, Record[1], getMDString(Record[2]), getDITypeRefOrNull(Record[3]), getMDOrNull(Record[4]))), - NextMetadataNo++); + NextMetadataNo); + NextMetadataNo++; break; } case bitc::METADATA_GLOBAL_VAR: { @@ -1364,7 +1388,8 @@ Error MetadataLoader::MetadataLoaderImpl getMDOrNull(Record[4]), Record[5], getDITypeRefOrNull(Record[6]), Record[7], Record[8], getMDOrNull(Record[10]), Record[11])), - NextMetadataNo++); + NextMetadataNo); + NextMetadataNo++; } else if (Version == 0) { // Upgrade old metadata, which stored a global variable reference or a // ConstantInt here. @@ -1396,7 +1421,8 @@ Error MetadataLoader::MetadataLoaderImpl getMDOrNull(Record[10]), AlignInBits)); auto *DGVE = DIGlobalVariableExpression::getDistinct(Context, DGV, Expr); - MetadataList.assignValue(DGVE, NextMetadataNo++); + MetadataList.assignValue(DGVE, NextMetadataNo); + NextMetadataNo++; if (Attach) Attach->addDebugInfo(DGVE); } else @@ -1429,7 +1455,8 @@ Error MetadataLoader::MetadataLoaderImpl getMDOrNull(Record[3 + HasTag]), Record[4 + HasTag], getDITypeRefOrNull(Record[5 + HasTag]), Record[6 + HasTag], Flags, AlignInBits)), - NextMetadataNo++); + NextMetadataNo); + NextMetadataNo++; break; } case bitc::METADATA_EXPRESSION: { @@ -1446,7 +1473,8 @@ Error MetadataLoader::MetadataLoaderImpl MetadataList.assignValue( GET_OR_DISTINCT(DIExpression, (Context, makeArrayRef(Record).slice(1))), - NextMetadataNo++); + NextMetadataNo); + NextMetadataNo++; break; } case bitc::METADATA_GLOBAL_VAR_EXPR: { @@ -1457,7 +1485,8 @@ Error MetadataLoader::MetadataLoaderImpl MetadataList.assignValue(GET_OR_DISTINCT(DIGlobalVariableExpression, (Context, getMDOrNull(Record[1]), getMDOrNull(Record[2]))), - NextMetadataNo++); + NextMetadataNo); + NextMetadataNo++; break; } case bitc::METADATA_OBJC_PROPERTY: { @@ -1471,7 +1500,8 @@ Error MetadataLoader::MetadataLoaderImpl getMDOrNull(Record[2]), Record[3], getMDString(Record[4]), getMDString(Record[5]), Record[6], getDITypeRefOrNull(Record[7]))), - NextMetadataNo++); + NextMetadataNo); + NextMetadataNo++; break; } case bitc::METADATA_IMPORTED_ENTITY: { @@ -1484,7 +1514,8 @@ Error MetadataLoader::MetadataLoaderImpl (Context, Record[1], getMDOrNull(Record[2]), getDITypeRefOrNull(Record[3]), Record[4], getMDString(Record[5]))), - NextMetadataNo++); + NextMetadataNo); + NextMetadataNo++; break; } case bitc::METADATA_STRING_OLD: { @@ -1494,13 +1525,15 @@ Error MetadataLoader::MetadataLoaderImpl HasSeenOldLoopTags |= mayBeOldLoopAttachmentTag(String); ++NumMDStringLoaded; Metadata *MD = MDString::get(Context, String); - MetadataList.assignValue(MD, NextMetadataNo++); + MetadataList.assignValue(MD, NextMetadataNo); + NextMetadataNo++; break; } case bitc::METADATA_STRINGS: { auto CreateNextMDString = [&](StringRef Str) { ++NumMDStringLoaded; - MetadataList.assignValue(MDString::get(Context, Str), NextMetadataNo++); + MetadataList.assignValue(MDString::get(Context, Str), NextMetadataNo); + NextMetadataNo++; }; if (Error Err = parseMetadataStrings(Record, Blob, CreateNextMDString)) return Err; Modified: vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp ============================================================================== --- vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp Sun Jan 29 19:54:34 2017 (r312955) +++ vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp Sun Jan 29 20:58:36 2017 (r312956) @@ -3439,7 +3439,10 @@ SDValue DAGTypeLegalizer::GenWidenVector LD->getPointerInfo().getWithOffset(Offset), MinAlign(Align, Increment), MMOFlags, AAInfo); LdChain.push_back(L.getValue(1)); - if (L->getValueType(0).isVector()) { + if (L->getValueType(0).isVector() && NewVTWidth >= LdWidth) { + // Later code assumes the vector loads produced will be mergeable, so we + // must pad the final entry up to the previous width. Scalars are + // combined separately. SmallVector Loads; Loads.push_back(L); unsigned size = L->getValueSizeInBits(0); Modified: vendor/llvm/dist/lib/Target/AArch64/AArch64.td ============================================================================== --- vendor/llvm/dist/lib/Target/AArch64/AArch64.td Sun Jan 29 19:54:34 2017 (r312955) +++ vendor/llvm/dist/lib/Target/AArch64/AArch64.td Sun Jan 29 20:58:36 2017 (r312956) @@ -85,9 +85,8 @@ def FeaturePostRAScheduler : SubtargetFe def FeatureSlowMisaligned128Store : SubtargetFeature<"slow-misaligned-128store", "Misaligned128StoreIsSlow", "true", "Misaligned 128 bit stores are slow">; -def FeatureAvoidQuadLdStPairs : SubtargetFeature<"no-quad-ldst-pairs", - "AvoidQuadLdStPairs", "true", - "Do not form quad load/store pair operations">; +def FeatureSlowPaired128 : SubtargetFeature<"slow-paired-128", + "Paired128IsSlow", "true", "Paired 128 bit loads and stores are slow">; def FeatureAlternateSExtLoadCVTF32Pattern : SubtargetFeature< "alternate-sextload-cvt-f32-pattern", "UseAlternateSExtLoadCVTF32Pattern", @@ -222,7 +221,7 @@ def ProcCyclone : SubtargetFeature<"cycl def ProcExynosM1 : SubtargetFeature<"exynosm1", "ARMProcFamily", "ExynosM1", "Samsung Exynos-M1 processors", - [FeatureAvoidQuadLdStPairs, + [FeatureSlowPaired128, FeatureCRC, FeatureCrypto, FeatureCustomCheapAsMoveHandling, @@ -236,7 +235,7 @@ def ProcExynosM1 : SubtargetFeature<"exy def ProcExynosM2 : SubtargetFeature<"exynosm2", "ARMProcFamily", "ExynosM1", "Samsung Exynos-M2/M3 processors", - [FeatureAvoidQuadLdStPairs, + [FeatureSlowPaired128, FeatureCRC, FeatureCrypto, FeatureCustomCheapAsMoveHandling, Modified: vendor/llvm/dist/lib/Target/AArch64/AArch64InstrInfo.cpp ============================================================================== --- vendor/llvm/dist/lib/Target/AArch64/AArch64InstrInfo.cpp Sun Jan 29 19:54:34 2017 (r312955) +++ vendor/llvm/dist/lib/Target/AArch64/AArch64InstrInfo.cpp Sun Jan 29 20:58:36 2017 (r312956) @@ -1652,7 +1652,7 @@ bool AArch64InstrInfo::isCandidateToMerg return false; // On some CPUs quad load/store pairs are slower than two single load/stores. - if (Subtarget.avoidQuadLdStPairs()) { + if (Subtarget.isPaired128Slow()) { switch (MI.getOpcode()) { default: break; Modified: vendor/llvm/dist/lib/Target/AArch64/AArch64Subtarget.h ============================================================================== --- vendor/llvm/dist/lib/Target/AArch64/AArch64Subtarget.h Sun Jan 29 19:54:34 2017 (r312955) +++ vendor/llvm/dist/lib/Target/AArch64/AArch64Subtarget.h Sun Jan 29 20:58:36 2017 (r312956) @@ -79,7 +79,7 @@ protected: bool CustomAsCheapAsMove = false; bool UsePostRAScheduler = false; bool Misaligned128StoreIsSlow = false; - bool AvoidQuadLdStPairs = false; + bool Paired128IsSlow = false; bool UseAlternateSExtLoadCVTF32Pattern = false; bool HasArithmeticBccFusion = false; bool HasArithmeticCbzFusion = false; @@ -189,7 +189,7 @@ public: } bool hasCustomCheapAsMoveHandling() const { return CustomAsCheapAsMove; } bool isMisaligned128StoreSlow() const { return Misaligned128StoreIsSlow; } - bool avoidQuadLdStPairs() const { return AvoidQuadLdStPairs; } + bool isPaired128Slow() const { return Paired128IsSlow; } bool useAlternateSExtLoadCVTF32Pattern() const { return UseAlternateSExtLoadCVTF32Pattern; } Modified: vendor/llvm/dist/lib/Target/AMDGPU/AMDGPU.td ============================================================================== --- vendor/llvm/dist/lib/Target/AMDGPU/AMDGPU.td Sun Jan 29 19:54:34 2017 (r312955) +++ vendor/llvm/dist/lib/Target/AMDGPU/AMDGPU.td Sun Jan 29 20:58:36 2017 (r312956) @@ -282,6 +282,12 @@ def FeatureEnableSIScheduler : Subtarget "Enable SI Machine Scheduler" >; +// Unless +-flat-for-global is specified, turn on FlatForGlobal for +// all OS-es on VI and newer hardware to avoid assertion failures due +// to missing ADDR64 variants of MUBUF instructions. +// FIXME: moveToVALU should be able to handle converting addr64 MUBUF +// instructions. + def FeatureFlatForGlobal : SubtargetFeature<"flat-for-global", "FlatForGlobal", "true", Modified: vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp ============================================================================== --- vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp Sun Jan 29 19:54:34 2017 (r312955) +++ vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp Sun Jan 29 20:58:36 2017 (r312956) @@ -140,7 +140,7 @@ bool AMDGPUAsmPrinter::isBlockOnlyReacha void AMDGPUAsmPrinter::EmitFunctionBodyStart() { const AMDGPUSubtarget &STM = MF->getSubtarget(); SIProgramInfo KernelInfo; - if (STM.isAmdCodeObjectV2()) { + if (STM.isAmdCodeObjectV2(*MF)) { getSIProgramInfo(KernelInfo, *MF); EmitAmdKernelCodeT(*MF, KernelInfo); } @@ -149,7 +149,7 @@ void AMDGPUAsmPrinter::EmitFunctionBodyS void AMDGPUAsmPrinter::EmitFunctionEntryLabel() { const SIMachineFunctionInfo *MFI = MF->getInfo(); const AMDGPUSubtarget &STM = MF->getSubtarget(); - if (MFI->isKernel() && STM.isAmdCodeObjectV2()) { + if (MFI->isKernel() && STM.isAmdCodeObjectV2(*MF)) { AMDGPUTargetStreamer *TS = static_cast(OutStreamer->getTargetStreamer()); SmallString<128> SymbolName; @@ -779,7 +779,7 @@ void AMDGPUAsmPrinter::EmitAmdKernelCode // FIXME: Should use getKernArgSize header.kernarg_segment_byte_size = - STM.getKernArgSegmentSize(MFI->getABIArgOffset()); + STM.getKernArgSegmentSize(MF, MFI->getABIArgOffset()); header.wavefront_sgpr_count = KernelInfo.NumSGPR; header.workitem_vgpr_count = KernelInfo.NumVGPR; header.workitem_private_segment_byte_size = KernelInfo.ScratchSize; Modified: vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp ============================================================================== --- vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp Sun Jan 29 19:54:34 2017 (r312955) +++ vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp Sun Jan 29 20:58:36 2017 (r312956) @@ -727,14 +727,8 @@ void AMDGPUDAGToDAGISel::SelectDIV_SCALE unsigned Opc = (VT == MVT::f64) ? AMDGPU::V_DIV_SCALE_F64 : AMDGPU::V_DIV_SCALE_F32; - // src0_modifiers, src0, src1_modifiers, src1, src2_modifiers, src2, clamp, - // omod - SDValue Ops[8]; - - SelectVOP3Mods0(N->getOperand(0), Ops[1], Ops[0], Ops[6], Ops[7]); - SelectVOP3Mods(N->getOperand(1), Ops[3], Ops[2]); - SelectVOP3Mods(N->getOperand(2), Ops[5], Ops[4]); - CurDAG->SelectNodeTo(N, Opc, VT, MVT::i1, Ops); + SDValue Ops[] = { N->getOperand(0), N->getOperand(1), N->getOperand(2) }; + CurDAG->SelectNodeTo(N, Opc, N->getVTList(), Ops); } bool AMDGPUDAGToDAGISel::isDSOffsetLegal(const SDValue &Base, unsigned Offset, Modified: vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUISelLowering.cpp ============================================================================== --- vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUISelLowering.cpp Sun Jan 29 19:54:34 2017 (r312955) +++ vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUISelLowering.cpp Sun Jan 29 20:58:36 2017 (r312956) @@ -2855,6 +2855,9 @@ SDValue AMDGPUTargetLowering::performFNe SDLoc SL(N); switch (Opc) { case ISD::FADD: { + if (!mayIgnoreSignedZero(N0)) + return SDValue(); + // (fneg (fadd x, y)) -> (fadd (fneg x), (fneg y)) SDValue LHS = N0.getOperand(0); SDValue RHS = N0.getOperand(1); @@ -2895,6 +2898,9 @@ SDValue AMDGPUTargetLowering::performFNe } case ISD::FMA: case ISD::FMAD: { + if (!mayIgnoreSignedZero(N0)) + return SDValue(); + // (fneg (fma x, y, z)) -> (fma x, (fneg y), (fneg z)) SDValue LHS = N0.getOperand(0); SDValue MHS = N0.getOperand(1); @@ -3272,6 +3278,7 @@ const char* AMDGPUTargetLowering::getTar NODE_NAME_CASE(CONST_DATA_PTR) NODE_NAME_CASE(PC_ADD_REL_OFFSET) NODE_NAME_CASE(KILL) + NODE_NAME_CASE(DUMMY_CHAIN) case AMDGPUISD::FIRST_MEM_OPCODE_NUMBER: break; NODE_NAME_CASE(SENDMSG) NODE_NAME_CASE(SENDMSGHALT) Modified: vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUISelLowering.h ============================================================================== --- vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUISelLowering.h Sun Jan 29 19:54:34 2017 (r312955) +++ vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUISelLowering.h Sun Jan 29 20:58:36 2017 (r312956) @@ -119,6 +119,16 @@ protected: public: AMDGPUTargetLowering(const TargetMachine &TM, const AMDGPUSubtarget &STI); + bool mayIgnoreSignedZero(SDValue Op) const { + if (getTargetMachine().Options.UnsafeFPMath) // FIXME: nsz only + return true; + + if (const auto *BO = dyn_cast(Op)) + return BO->Flags.hasNoSignedZeros(); + + return false; + } + bool isFAbsFree(EVT VT) const override; bool isFNegFree(EVT VT) const override; bool isTruncateFree(EVT Src, EVT Dest) const override; @@ -320,6 +330,7 @@ enum NodeType : unsigned { INTERP_P2, PC_ADD_REL_OFFSET, KILL, + DUMMY_CHAIN, FIRST_MEM_OPCODE_NUMBER = ISD::FIRST_TARGET_MEMORY_OPCODE, STORE_MSKOR, LOAD_CONSTANT, Modified: vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUInstrInfo.td ============================================================================== --- vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUInstrInfo.td Sun Jan 29 19:54:34 2017 (r312955) +++ vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUInstrInfo.td Sun Jan 29 20:58:36 2017 (r312956) @@ -54,6 +54,9 @@ def AMDGPUconstdata_ptr : SDNode< // This argument to this node is a dword address. def AMDGPUdwordaddr : SDNode<"AMDGPUISD::DWORDADDR", SDTIntUnaryOp>; +// Force dependencies for vector trunc stores +def R600dummy_chain : SDNode<"AMDGPUISD::DUMMY_CHAIN", SDTNone, [SDNPHasChain]>; + def AMDGPUcos : SDNode<"AMDGPUISD::COS_HW", SDTFPUnaryOp>; def AMDGPUsin : SDNode<"AMDGPUISD::SIN_HW", SDTFPUnaryOp>; Modified: vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUSubtarget.cpp ============================================================================== --- vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUSubtarget.cpp Sun Jan 29 19:54:34 2017 (r312955) +++ vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUSubtarget.cpp Sun Jan 29 20:58:36 2017 (r312956) @@ -48,6 +48,13 @@ AMDGPUSubtarget::initializeSubtargetDepe ParseSubtargetFeatures(GPU, FullFS); + // Unless +-flat-for-global is specified, turn on FlatForGlobal for all OS-es + // on VI and newer hardware to avoid assertion failures due to missing ADDR64 + // variants of MUBUF instructions. + if (!hasAddr64() && !FS.contains("flat-for-global")) { + FlatForGlobal = true; + } + // FIXME: I don't think think Evergreen has any useful support for // denormals, but should be checked. Should we issue a warning somewhere // if someone tries to enable these? @@ -297,8 +304,9 @@ bool SISubtarget::isVGPRSpillingEnabled( return EnableVGPRSpilling || !AMDGPU::isShader(F.getCallingConv()); } -unsigned SISubtarget::getKernArgSegmentSize(unsigned ExplicitArgBytes) const { - unsigned ImplicitBytes = getImplicitArgNumBytes(); +unsigned SISubtarget::getKernArgSegmentSize(const MachineFunction &MF, + unsigned ExplicitArgBytes) const { + unsigned ImplicitBytes = getImplicitArgNumBytes(MF); if (ImplicitBytes == 0) return ExplicitArgBytes; Modified: vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUSubtarget.h ============================================================================== --- vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUSubtarget.h Sun Jan 29 19:54:34 2017 (r312955) +++ vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUSubtarget.h Sun Jan 29 20:58:36 2017 (r312956) @@ -311,22 +311,31 @@ public: return EnableXNACK; } - bool isAmdCodeObjectV2() const { - return isAmdHsaOS() || isMesa3DOS(); + bool isMesaKernel(const MachineFunction &MF) const { + return isMesa3DOS() && !AMDGPU::isShader(MF.getFunction()->getCallingConv()); + } + + // Covers VS/PS/CS graphics shaders + bool isMesaGfxShader(const MachineFunction &MF) const { + return isMesa3DOS() && AMDGPU::isShader(MF.getFunction()->getCallingConv()); + } + + bool isAmdCodeObjectV2(const MachineFunction &MF) const { + return isAmdHsaOS() || isMesaKernel(MF); } /// \brief Returns the offset in bytes from the start of the input buffer /// of the first explicit kernel argument. - unsigned getExplicitKernelArgOffset() const { - return isAmdCodeObjectV2() ? 0 : 36; + unsigned getExplicitKernelArgOffset(const MachineFunction &MF) const { + return isAmdCodeObjectV2(MF) ? 0 : 36; } unsigned getAlignmentForImplicitArgPtr() const { return isAmdHsaOS() ? 8 : 4; } - unsigned getImplicitArgNumBytes() const { - if (isMesa3DOS()) + unsigned getImplicitArgNumBytes(const MachineFunction &MF) const { + if (isMesaKernel(MF)) return 16; if (isAmdHsaOS() && isOpenCLEnv()) return 32; @@ -585,7 +594,7 @@ public: return getGeneration() != AMDGPUSubtarget::SOUTHERN_ISLANDS; } - unsigned getKernArgSegmentSize(unsigned ExplictArgBytes) const; + unsigned getKernArgSegmentSize(const MachineFunction &MF, unsigned ExplictArgBytes) const; /// Return the maximum number of waves per SIMD for kernels using \p SGPRs SGPRs unsigned getOccupancyWithNumSGPRs(unsigned SGPRs) const; Modified: vendor/llvm/dist/lib/Target/AMDGPU/R600ISelLowering.cpp ============================================================================== --- vendor/llvm/dist/lib/Target/AMDGPU/R600ISelLowering.cpp Sun Jan 29 19:54:34 2017 (r312955) +++ vendor/llvm/dist/lib/Target/AMDGPU/R600ISelLowering.cpp Sun Jan 29 20:58:36 2017 (r312956) @@ -1115,7 +1115,10 @@ SDValue R600TargetLowering::lowerPrivate llvm_unreachable("Unsupported private trunc store"); } - SDValue Chain = Store->getChain(); + SDValue OldChain = Store->getChain(); + bool VectorTrunc = (OldChain.getOpcode() == AMDGPUISD::DUMMY_CHAIN); + // Skip dummy + SDValue Chain = VectorTrunc ? OldChain->getOperand(0) : OldChain; SDValue BasePtr = Store->getBasePtr(); SDValue Offset = Store->getOffset(); EVT MemVT = Store->getMemoryVT(); @@ -1171,7 +1174,15 @@ SDValue R600TargetLowering::lowerPrivate // Store dword // TODO: Can we be smarter about MachinePointerInfo? - return DAG.getStore(Chain, DL, Value, Ptr, MachinePointerInfo()); + SDValue NewStore = DAG.getStore(Chain, DL, Value, Ptr, MachinePointerInfo()); + + // If we are part of expanded vector, make our neighbors depend on this store + if (VectorTrunc) { + // Make all other vector elements depend on this store + Chain = DAG.getNode(AMDGPUISD::DUMMY_CHAIN, DL, MVT::Other, NewStore); + DAG.ReplaceAllUsesOfValueWith(OldChain, Chain); + } + return NewStore; } SDValue R600TargetLowering::LowerSTORE(SDValue Op, SelectionDAG &DAG) const { @@ -1191,6 +1202,17 @@ SDValue R600TargetLowering::LowerSTORE(S // Neither LOCAL nor PRIVATE can do vectors at the moment if ((AS == AMDGPUAS::LOCAL_ADDRESS || AS == AMDGPUAS::PRIVATE_ADDRESS) && VT.isVector()) { + if ((AS == AMDGPUAS::PRIVATE_ADDRESS) && StoreNode->isTruncatingStore()) { + // Add an extra level of chain to isolate this vector + SDValue NewChain = DAG.getNode(AMDGPUISD::DUMMY_CHAIN, DL, MVT::Other, Chain); + // TODO: can the chain be replaced without creating a new store? + SDValue NewStore = DAG.getTruncStore( + NewChain, DL, Value, Ptr, StoreNode->getPointerInfo(), + MemVT, StoreNode->getAlignment(), + StoreNode->getMemOperand()->getFlags(), StoreNode->getAAInfo()); + StoreNode = cast(NewStore); + } + return scalarizeVectorStore(StoreNode, DAG); } @@ -1225,7 +1247,7 @@ SDValue R600TargetLowering::LowerSTORE(S // Put the mask in correct place SDValue Mask = DAG.getNode(ISD::SHL, DL, VT, MaskConstant, BitShift); - // Put the mask in correct place + // Put the value bits in correct place SDValue TruncValue = DAG.getNode(ISD::AND, DL, VT, Value, MaskConstant); SDValue ShiftedValue = DAG.getNode(ISD::SHL, DL, VT, TruncValue, BitShift); @@ -1560,7 +1582,7 @@ SDValue R600TargetLowering::LowerFormalA unsigned ValBase = ArgLocs[In.getOrigArgIndex()].getLocMemOffset(); unsigned PartOffset = VA.getLocMemOffset(); - unsigned Offset = Subtarget->getExplicitKernelArgOffset() + VA.getLocMemOffset(); + unsigned Offset = Subtarget->getExplicitKernelArgOffset(MF) + VA.getLocMemOffset(); MachinePointerInfo PtrInfo(UndefValue::get(PtrTy), PartOffset - ValBase); SDValue Arg = DAG.getLoad( Modified: vendor/llvm/dist/lib/Target/AMDGPU/R600Instructions.td ============================================================================== --- vendor/llvm/dist/lib/Target/AMDGPU/R600Instructions.td Sun Jan 29 19:54:34 2017 (r312955) +++ vendor/llvm/dist/lib/Target/AMDGPU/R600Instructions.td Sun Jan 29 20:58:36 2017 (r312956) @@ -727,6 +727,20 @@ def FLOOR : R600_1OP_Helper <0x14, "FLOO def MOV : R600_1OP <0x19, "MOV", []>; + +// This is a hack to get rid of DUMMY_CHAIN nodes. +// Most DUMMY_CHAINs should be eliminated during legalization, but undef +// values can sneak in some to selection. +let isPseudo = 1, isCodeGenOnly = 1 in { +def DUMMY_CHAIN : AMDGPUInst < + (outs), + (ins), + "DUMMY_CHAIN", + [(R600dummy_chain)] +>; +} // end let isPseudo = 1, isCodeGenOnly = 1 + + let isPseudo = 1, isCodeGenOnly = 1, usesCustomInserter = 1 in { class MOV_IMM : AMDGPUInst < Modified: vendor/llvm/dist/lib/Target/AMDGPU/SIFrameLowering.cpp ============================================================================== --- vendor/llvm/dist/lib/Target/AMDGPU/SIFrameLowering.cpp Sun Jan 29 19:54:34 2017 (r312955) +++ vendor/llvm/dist/lib/Target/AMDGPU/SIFrameLowering.cpp Sun Jan 29 20:58:36 2017 (r312956) @@ -237,7 +237,7 @@ void SIFrameLowering::emitPrologue(Machi unsigned PreloadedPrivateBufferReg = AMDGPU::NoRegister; - if (ST.isAmdCodeObjectV2()) { + if (ST.isAmdCodeObjectV2(MF) || ST.isMesaGfxShader(MF)) { PreloadedPrivateBufferReg = TRI->getPreloadedValue( MF, SIRegisterInfo::PRIVATE_SEGMENT_BUFFER); } @@ -255,7 +255,7 @@ void SIFrameLowering::emitPrologue(Machi } if (ResourceRegUsed && PreloadedPrivateBufferReg != AMDGPU::NoRegister) { - assert(ST.isAmdCodeObjectV2()); + assert(ST.isAmdCodeObjectV2(MF) || ST.isMesaGfxShader(MF)); MRI.addLiveIn(PreloadedPrivateBufferReg); MBB.addLiveIn(PreloadedPrivateBufferReg); } @@ -280,6 +280,7 @@ void SIFrameLowering::emitPrologue(Machi bool CopyBuffer = ResourceRegUsed && PreloadedPrivateBufferReg != AMDGPU::NoRegister && + ST.isAmdCodeObjectV2(MF) && ScratchRsrcReg != PreloadedPrivateBufferReg; // This needs to be careful of the copying order to avoid overwriting one of @@ -303,24 +304,57 @@ void SIFrameLowering::emitPrologue(Machi .addReg(PreloadedPrivateBufferReg, RegState::Kill); } - if (ResourceRegUsed && PreloadedPrivateBufferReg == AMDGPU::NoRegister) { - assert(!ST.isAmdCodeObjectV2()); + if (ResourceRegUsed && (ST.isMesaGfxShader(MF) || (PreloadedPrivateBufferReg == AMDGPU::NoRegister))) { + assert(!ST.isAmdCodeObjectV2(MF)); const MCInstrDesc &SMovB32 = TII->get(AMDGPU::S_MOV_B32); - unsigned Rsrc0 = TRI->getSubReg(ScratchRsrcReg, AMDGPU::sub0); - unsigned Rsrc1 = TRI->getSubReg(ScratchRsrcReg, AMDGPU::sub1); unsigned Rsrc2 = TRI->getSubReg(ScratchRsrcReg, AMDGPU::sub2); unsigned Rsrc3 = TRI->getSubReg(ScratchRsrcReg, AMDGPU::sub3); // Use relocations to get the pointer, and setup the other bits manually. uint64_t Rsrc23 = TII->getScratchRsrcWords23(); - BuildMI(MBB, I, DL, SMovB32, Rsrc0) - .addExternalSymbol("SCRATCH_RSRC_DWORD0") - .addReg(ScratchRsrcReg, RegState::ImplicitDefine); - BuildMI(MBB, I, DL, SMovB32, Rsrc1) - .addExternalSymbol("SCRATCH_RSRC_DWORD1") - .addReg(ScratchRsrcReg, RegState::ImplicitDefine); + if (MFI->hasPrivateMemoryInputPtr()) { + unsigned Rsrc01 = TRI->getSubReg(ScratchRsrcReg, AMDGPU::sub0_sub1); + + if (AMDGPU::isCompute(MF.getFunction()->getCallingConv())) { + const MCInstrDesc &Mov64 = TII->get(AMDGPU::S_MOV_B64); + + BuildMI(MBB, I, DL, Mov64, Rsrc01) + .addReg(PreloadedPrivateBufferReg) + .addReg(ScratchRsrcReg, RegState::ImplicitDefine); + } else { + const MCInstrDesc &LoadDwordX2 = TII->get(AMDGPU::S_LOAD_DWORDX2_IMM); + + PointerType *PtrTy = + PointerType::get(Type::getInt64Ty(MF.getFunction()->getContext()), + AMDGPUAS::CONSTANT_ADDRESS); + MachinePointerInfo PtrInfo(UndefValue::get(PtrTy)); + auto MMO = MF.getMachineMemOperand(PtrInfo, + MachineMemOperand::MOLoad | + MachineMemOperand::MOInvariant | + MachineMemOperand::MODereferenceable, + 0, 0); + BuildMI(MBB, I, DL, LoadDwordX2, Rsrc01) + .addReg(PreloadedPrivateBufferReg) + .addImm(0) // offset + .addImm(0) // glc + .addMemOperand(MMO) + .addReg(ScratchRsrcReg, RegState::ImplicitDefine); + } + } else { + unsigned Rsrc0 = TRI->getSubReg(ScratchRsrcReg, AMDGPU::sub0); + unsigned Rsrc1 = TRI->getSubReg(ScratchRsrcReg, AMDGPU::sub1); + + BuildMI(MBB, I, DL, SMovB32, Rsrc0) + .addExternalSymbol("SCRATCH_RSRC_DWORD0") + .addReg(ScratchRsrcReg, RegState::ImplicitDefine); + + BuildMI(MBB, I, DL, SMovB32, Rsrc1) + .addExternalSymbol("SCRATCH_RSRC_DWORD1") + .addReg(ScratchRsrcReg, RegState::ImplicitDefine); + + } BuildMI(MBB, I, DL, SMovB32, Rsrc2) .addImm(Rsrc23 & 0xffffffff) Modified: vendor/llvm/dist/lib/Target/AMDGPU/SIISelLowering.cpp ============================================================================== --- vendor/llvm/dist/lib/Target/AMDGPU/SIISelLowering.cpp Sun Jan 29 19:54:34 2017 (r312955) +++ vendor/llvm/dist/lib/Target/AMDGPU/SIISelLowering.cpp Sun Jan 29 20:58:36 2017 (r312956) @@ -842,7 +842,7 @@ SDValue SITargetLowering::LowerFormalArg if (!AMDGPU::isShader(CallConv)) { assert(Info->hasWorkGroupIDX() && Info->hasWorkItemIDX()); } else { - assert(!Info->hasPrivateSegmentBuffer() && !Info->hasDispatchPtr() && + assert(!Info->hasDispatchPtr() && !Info->hasKernargSegmentPtr() && !Info->hasFlatScratchInit() && !Info->hasWorkGroupIDX() && !Info->hasWorkGroupIDY() && !Info->hasWorkGroupIDZ() && !Info->hasWorkGroupInfo() && @@ -850,6 +850,12 @@ SDValue SITargetLowering::LowerFormalArg !Info->hasWorkItemIDZ()); } + if (Info->hasPrivateMemoryInputPtr()) { + unsigned PrivateMemoryPtrReg = Info->addPrivateMemoryPtr(*TRI); + MF.addLiveIn(PrivateMemoryPtrReg, &AMDGPU::SReg_64RegClass); + CCInfo.AllocateReg(PrivateMemoryPtrReg); + } + // FIXME: How should these inputs interact with inreg / custom SGPR inputs? if (Info->hasPrivateSegmentBuffer()) { unsigned PrivateSegmentBufferReg = Info->addPrivateSegmentBuffer(*TRI); @@ -908,7 +914,7 @@ SDValue SITargetLowering::LowerFormalArg if (VA.isMemLoc()) { VT = Ins[i].VT; EVT MemVT = VA.getLocVT(); - const unsigned Offset = Subtarget->getExplicitKernelArgOffset() + + const unsigned Offset = Subtarget->getExplicitKernelArgOffset(MF) + VA.getLocMemOffset(); // The first 36 bytes of the input buffer contains information about // thread group and global sizes. @@ -1033,7 +1039,7 @@ SDValue SITargetLowering::LowerFormalArg if (getTargetMachine().getOptLevel() == CodeGenOpt::None) HasStackObjects = true; - if (ST.isAmdCodeObjectV2()) { + if (ST.isAmdCodeObjectV2(MF)) { if (HasStackObjects) { // If we have stack objects, we unquestionably need the private buffer // resource. For the Code Object V2 ABI, this will be the first 4 user @@ -2362,9 +2368,13 @@ SDValue SITargetLowering::LowerINTRINSIC // TODO: Should this propagate fast-math-flags? switch (IntrinsicID) { + case Intrinsic::amdgcn_implicit_buffer_ptr: { + unsigned Reg = TRI->getPreloadedValue(MF, SIRegisterInfo::PRIVATE_SEGMENT_BUFFER); + return CreateLiveInRegister(DAG, &AMDGPU::SReg_64RegClass, Reg, VT); + } case Intrinsic::amdgcn_dispatch_ptr: case Intrinsic::amdgcn_queue_ptr: { - if (!Subtarget->isAmdCodeObjectV2()) { + if (!Subtarget->isAmdCodeObjectV2(MF)) { DiagnosticInfoUnsupported BadIntrin( *MF.getFunction(), "unsupported hsa intrinsic without hsa target", DL.getDebugLoc()); Modified: vendor/llvm/dist/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp ============================================================================== --- vendor/llvm/dist/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp Sun Jan 29 19:54:34 2017 (r312955) +++ vendor/llvm/dist/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp Sun Jan 29 20:58:36 2017 (r312956) @@ -77,7 +77,8 @@ SIMachineFunctionInfo::SIMachineFunction PrivateSegmentWaveByteOffset(false), WorkItemIDX(false), WorkItemIDY(false), - WorkItemIDZ(false) { + WorkItemIDZ(false), + PrivateMemoryInputPtr(false) { const SISubtarget &ST = MF.getSubtarget(); const Function *F = MF.getFunction(); @@ -114,7 +115,7 @@ SIMachineFunctionInfo::SIMachineFunction if (HasStackObjects || MaySpill) PrivateSegmentWaveByteOffset = true; - if (ST.isAmdCodeObjectV2()) { + if (ST.isAmdCodeObjectV2(MF)) { if (HasStackObjects || MaySpill) PrivateSegmentBuffer = true; @@ -126,6 +127,9 @@ SIMachineFunctionInfo::SIMachineFunction if (F->hasFnAttribute("amdgpu-dispatch-id")) DispatchID = true; + } else if (ST.isMesaGfxShader(MF)) { + if (HasStackObjects || MaySpill) + PrivateMemoryInputPtr = true; } // We don't need to worry about accessing spills with flat instructions. @@ -182,6 +186,13 @@ unsigned SIMachineFunctionInfo::addFlatS return FlatScratchInitUserSGPR; } +unsigned SIMachineFunctionInfo::addPrivateMemoryPtr(const SIRegisterInfo &TRI) { + PrivateMemoryPtrUserSGPR = TRI.getMatchingSuperReg( + getNextUserSGPR(), AMDGPU::sub0, &AMDGPU::SReg_64RegClass); + NumUserSGPRs += 2; + return PrivateMemoryPtrUserSGPR; +} + SIMachineFunctionInfo::SpilledReg SIMachineFunctionInfo::getSpilledReg ( MachineFunction *MF, unsigned FrameIndex, Modified: vendor/llvm/dist/lib/Target/AMDGPU/SIMachineFunctionInfo.h ============================================================================== --- vendor/llvm/dist/lib/Target/AMDGPU/SIMachineFunctionInfo.h Sun Jan 29 19:54:34 2017 (r312955) +++ vendor/llvm/dist/lib/Target/AMDGPU/SIMachineFunctionInfo.h Sun Jan 29 20:58:36 2017 (r312956) @@ -84,6 +84,9 @@ class SIMachineFunctionInfo final : publ unsigned ScratchRSrcReg; unsigned ScratchWaveOffsetReg; + // Input registers for non-HSA ABI + unsigned PrivateMemoryPtrUserSGPR; + // Input registers setup for the HSA ABI. // User SGPRs in allocation order. unsigned PrivateSegmentBufferUserSGPR; @@ -163,6 +166,11 @@ private: bool WorkItemIDY : 1; bool WorkItemIDZ : 1; + // Private memory buffer + // Compute directly in sgpr[0:1] + // Other shaders indirect 64-bits at sgpr[0:1] + bool PrivateMemoryInputPtr : 1; + MCPhysReg getNextUserSGPR() const { assert(NumSystemSGPRs == 0 && "System SGPRs must be added after user SGPRs"); return AMDGPU::SGPR0 + NumUserSGPRs; @@ -198,6 +206,7 @@ public: unsigned addKernargSegmentPtr(const SIRegisterInfo &TRI); unsigned addDispatchID(const SIRegisterInfo &TRI); unsigned addFlatScratchInit(const SIRegisterInfo &TRI); + unsigned addPrivateMemoryPtr(const SIRegisterInfo &TRI); // Add system SGPRs. unsigned addWorkGroupIDX() { @@ -302,6 +311,10 @@ public: return WorkItemIDZ; } + bool hasPrivateMemoryInputPtr() const { + return PrivateMemoryInputPtr; + } + unsigned getNumUserSGPRs() const { return NumUserSGPRs; } @@ -338,6 +351,10 @@ public: return QueuePtrUserSGPR; } + unsigned getPrivateMemoryPtrUserSGPR() const { + return PrivateMemoryPtrUserSGPR; + } *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-vendor@freebsd.org Sun Jan 29 20:58:49 2017 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A8535CC7F86; Sun, 29 Jan 2017 20:58:49 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6DB041378; Sun, 29 Jan 2017 20:58:49 +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 v0TKwmHX075047; Sun, 29 Jan 2017 20:58:48 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0TKwlau075033; Sun, 29 Jan 2017 20:58:47 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201701292058.v0TKwlau075033@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 29 Jan 2017 20:58:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r312958 - in vendor/clang/dist: lib/AST lib/CodeGen lib/Index lib/Sema test/Index test/Index/Core test/OpenMP test/SemaCXX tools/libclang X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 29 Jan 2017 20:58:49 -0000 Author: dim Date: Sun Jan 29 20:58:47 2017 New Revision: 312958 URL: https://svnweb.freebsd.org/changeset/base/312958 Log: Vendor import of clang release_40 branch r293443: https://llvm.org/svn/llvm-project/cfe/branches/release_40@293443 Added: vendor/clang/dist/test/OpenMP/openmp_seh.c (contents, props changed) Modified: vendor/clang/dist/lib/AST/ASTContext.cpp vendor/clang/dist/lib/CodeGen/CodeGenFunction.cpp vendor/clang/dist/lib/Index/IndexDecl.cpp vendor/clang/dist/lib/Sema/SemaInit.cpp vendor/clang/dist/test/Index/Core/index-source.m vendor/clang/dist/test/Index/Core/index-subkinds.m vendor/clang/dist/test/Index/index-decls.m vendor/clang/dist/test/Index/index-module.m vendor/clang/dist/test/SemaCXX/constant-expression.cpp vendor/clang/dist/test/SemaCXX/new-delete-cxx0x.cpp vendor/clang/dist/tools/libclang/CXIndexDataConsumer.cpp vendor/clang/dist/tools/libclang/CXIndexDataConsumer.h Modified: vendor/clang/dist/lib/AST/ASTContext.cpp ============================================================================== --- vendor/clang/dist/lib/AST/ASTContext.cpp Sun Jan 29 20:58:42 2017 (r312957) +++ vendor/clang/dist/lib/AST/ASTContext.cpp Sun Jan 29 20:58:47 2017 (r312958) @@ -9025,7 +9025,8 @@ bool ASTContext::DeclMustBeEmitted(const // Variables that have initialization with side-effects are required. if (VD->getInit() && VD->getInit()->HasSideEffects(*this) && - !VD->evaluateValue()) + // We can get a value-dependent initializer during error recovery. + (VD->getInit()->isValueDependent() || !VD->evaluateValue())) return true; // Likewise, variables with tuple-like bindings are required if their Modified: vendor/clang/dist/lib/CodeGen/CodeGenFunction.cpp ============================================================================== --- vendor/clang/dist/lib/CodeGen/CodeGenFunction.cpp Sun Jan 29 20:58:42 2017 (r312957) +++ vendor/clang/dist/lib/CodeGen/CodeGenFunction.cpp Sun Jan 29 20:58:47 2017 (r312958) @@ -112,9 +112,8 @@ CodeGenFunction::~CodeGenFunction() { if (FirstBlockInfo) destroyBlockInfos(FirstBlockInfo); - if (getLangOpts().OpenMP) { + if (getLangOpts().OpenMP && CurFn) CGM.getOpenMPRuntime().functionFinished(*this); - } } CharUnits CodeGenFunction::getNaturalPointeeTypeAlignment(QualType T, Modified: vendor/clang/dist/lib/Index/IndexDecl.cpp ============================================================================== --- vendor/clang/dist/lib/Index/IndexDecl.cpp Sun Jan 29 20:58:42 2017 (r312957) +++ vendor/clang/dist/lib/Index/IndexDecl.cpp Sun Jan 29 20:58:47 2017 (r312958) @@ -92,7 +92,13 @@ public: Relations.emplace_back((unsigned)SymbolRole::RelationAccessorOf, AssociatedProp); - if (!IndexCtx.handleDecl(D, (unsigned)SymbolRole::Dynamic, Relations)) + // getLocation() returns beginning token of a method declaration, but for + // indexing purposes we want to point to the base name. + SourceLocation MethodLoc = D->getSelectorStartLoc(); + if (MethodLoc.isInvalid()) + MethodLoc = D->getLocation(); + + if (!IndexCtx.handleDecl(D, MethodLoc, (unsigned)SymbolRole::Dynamic, Relations)) return false; IndexCtx.indexTypeSourceInfo(D->getReturnTypeSourceInfo(), D); bool hasIBActionAndFirst = D->hasAttr(); Modified: vendor/clang/dist/lib/Sema/SemaInit.cpp ============================================================================== --- vendor/clang/dist/lib/Sema/SemaInit.cpp Sun Jan 29 20:58:42 2017 (r312957) +++ vendor/clang/dist/lib/Sema/SemaInit.cpp Sun Jan 29 20:58:47 2017 (r312958) @@ -1684,7 +1684,7 @@ void InitListChecker::CheckArrayType(con // If this is an incomplete array type, the actual type needs to // be calculated here. llvm::APSInt Zero(maxElements.getBitWidth(), maxElements.isUnsigned()); - if (maxElements == Zero) { + if (maxElements == Zero && !Entity.isVariableLengthArrayNew()) { // Sizing an array implicitly to zero is not allowed by ISO C, // but is supported by GNU. SemaRef.Diag(IList->getLocStart(), Modified: vendor/clang/dist/test/Index/Core/index-source.m ============================================================================== --- vendor/clang/dist/test/Index/Core/index-source.m Sun Jan 29 20:58:42 2017 (r312957) +++ vendor/clang/dist/test/Index/Core/index-source.m Sun Jan 29 20:58:47 2017 (r312958) @@ -3,10 +3,10 @@ @interface Base // CHECK: [[@LINE-1]]:12 | class/ObjC | Base | c:objc(cs)Base | _OBJC_CLASS_$_Base | Decl | rel: 0 -(void)meth; -// CHECK: [[@LINE-1]]:1 | instance-method/ObjC | meth | c:objc(cs)Base(im)meth | -[Base meth] | Decl,Dyn,RelChild | rel: 1 +// CHECK: [[@LINE-1]]:8 | instance-method/ObjC | meth | c:objc(cs)Base(im)meth | -[Base meth] | Decl,Dyn,RelChild | rel: 1 // CHECK-NEXT: RelChild | Base | c:objc(cs)Base +(Base*)class_meth; -// CHECK: [[@LINE-1]]:1 | class-method/ObjC | class_meth | c:objc(cs)Base(cm)class_meth | +[Base class_meth] | Decl,Dyn,RelChild | rel: 1 +// CHECK: [[@LINE-1]]:9 | class-method/ObjC | class_meth | c:objc(cs)Base(cm)class_meth | +[Base class_meth] | Decl,Dyn,RelChild | rel: 1 // CHECK: [[@LINE-2]]:3 | class/ObjC | Base | c:objc(cs)Base | _OBJC_CLASS_$_Base | Ref,RelCont | rel: 1 // CHECK-NEXT: RelCont | class_meth | c:objc(cs)Base(cm)class_meth @@ -92,7 +92,7 @@ extern int setjmp(jmp_buf); @class I1; @interface I1 -// CHECK: [[@LINE+1]]:1 | instance-method/ObjC | meth | c:objc(cs)I1(im)meth | -[I1 meth] | Decl,Dyn,RelChild | rel: 1 +// CHECK: [[@LINE+1]]:8 | instance-method/ObjC | meth | c:objc(cs)I1(im)meth | -[I1 meth] | Decl,Dyn,RelChild | rel: 1 -(void)meth; @end @@ -117,7 +117,7 @@ extern int setjmp(jmp_buf); // CHECK-NEXT: RelChild | I2 | c:objc(cs)I2 @synthesize prop = _prop; -// CHECK: [[@LINE+5]]:1 | instance-method(IB)/ObjC | doAction:foo: | c:objc(cs)I2(im)doAction:foo: | -[I2 doAction:foo:] | Def,Dyn,RelChild | rel: 1 +// CHECK: [[@LINE+5]]:12 | instance-method(IB)/ObjC | doAction:foo: | c:objc(cs)I2(im)doAction:foo: | -[I2 doAction:foo:] | Def,Dyn,RelChild | rel: 1 // CHECK-NEXT: RelChild | I2 | c:objc(cs)I2 // CHECK: [[@LINE+3]]:22 | class/ObjC | I1 | c:objc(cs)I1 | _OBJC_CLASS_$_I1 | Ref,RelCont,RelIBType | rel: 1 // CHECK-NEXT: RelCont,RelIBType | doAction:foo: | c:objc(cs)I2(im)doAction:foo: @@ -127,11 +127,11 @@ extern int setjmp(jmp_buf); @interface I3 @property (readwrite) id prop; -// CHECK: [[@LINE+3]]:1 | instance-method/acc-get/ObjC | prop | c:objc(cs)I3(im)prop | -[I3 prop] | Decl,Dyn,RelChild,RelAcc | rel: 2 +// CHECK: [[@LINE+3]]:6 | instance-method/acc-get/ObjC | prop | c:objc(cs)I3(im)prop | -[I3 prop] | Decl,Dyn,RelChild,RelAcc | rel: 2 // CHECK-NEXT: RelChild | I3 | c:objc(cs)I3 // CHECK-NEXT: RelAcc | prop | c:objc(cs)I3(py)prop -(id)prop; -// CHECK: [[@LINE+3]]:1 | instance-method/acc-set/ObjC | setProp: | c:objc(cs)I3(im)setProp: | -[I3 setProp:] | Decl,Dyn,RelChild,RelAcc | rel: 2 +// CHECK: [[@LINE+3]]:8 | instance-method/acc-set/ObjC | setProp: | c:objc(cs)I3(im)setProp: | -[I3 setProp:] | Decl,Dyn,RelChild,RelAcc | rel: 2 // CHECK-NEXT: RelChild | I3 | c:objc(cs)I3 // CHECK-NEXT: RelAcc | prop | c:objc(cs)I3(py)prop -(void)setProp:(id)p; Modified: vendor/clang/dist/test/Index/Core/index-subkinds.m ============================================================================== --- vendor/clang/dist/test/Index/Core/index-subkinds.m Sun Jan 29 20:58:42 2017 (r312957) +++ vendor/clang/dist/test/Index/Core/index-subkinds.m Sun Jan 29 20:58:47 2017 (r312958) @@ -9,11 +9,11 @@ @end // CHECK: [[@LINE+1]]:17 | class(test)/ObjC | MyTestCase | c:objc(cs)MyTestCase | | Def | rel: 0 @implementation MyTestCase -// CHECK: [[@LINE+1]]:1 | instance-method(test)/ObjC | testMe | c:objc(cs)MyTestCase(im)testMe | -[MyTestCase testMe] | Def,Dyn,RelChild | rel: 1 +// CHECK: [[@LINE+1]]:8 | instance-method(test)/ObjC | testMe | c:objc(cs)MyTestCase(im)testMe | -[MyTestCase testMe] | Def,Dyn,RelChild | rel: 1 -(void)testMe {} -// CHECK: [[@LINE+1]]:1 | instance-method/ObjC | testResult | c:objc(cs)MyTestCase(im)testResult | -[MyTestCase testResult] | Def,Dyn,RelChild | rel: 1 +// CHECK: [[@LINE+1]]:6 | instance-method/ObjC | testResult | c:objc(cs)MyTestCase(im)testResult | -[MyTestCase testResult] | Def,Dyn,RelChild | rel: 1 -(id)testResult { return 0; } -// CHECK: [[@LINE+1]]:1 | instance-method/ObjC | testWithInt: | c:objc(cs)MyTestCase(im)testWithInt: | -[MyTestCase testWithInt:] | Def,Dyn,RelChild | rel: 1 +// CHECK: [[@LINE+1]]:8 | instance-method/ObjC | testWithInt: | c:objc(cs)MyTestCase(im)testWithInt: | -[MyTestCase testWithInt:] | Def,Dyn,RelChild | rel: 1 -(void)testWithInt:(int)i {} @end @@ -22,7 +22,7 @@ @end // CHECK: [[@LINE+1]]:17 | class(test)/ObjC | SubTestCase | c:objc(cs)SubTestCase | | Def | rel: 0 @implementation SubTestCase -// CHECK: [[@LINE+1]]:1 | instance-method(test)/ObjC | testIt2 | c:objc(cs)SubTestCase(im)testIt2 | -[SubTestCase testIt2] | Def,Dyn,RelChild | rel: 1 +// CHECK: [[@LINE+1]]:8 | instance-method(test)/ObjC | testIt2 | c:objc(cs)SubTestCase(im)testIt2 | -[SubTestCase testIt2] | Def,Dyn,RelChild | rel: 1 -(void)testIt2 {} @end @@ -34,7 +34,7 @@ // CHECK: [[@LINE+2]]:17 | class(test)/ObjC | MyTestCase | c:objc(cs)MyTestCase | _OBJC_CLASS_$_MyTestCase | Ref,RelCont | rel: 1 // CHECK: [[@LINE+1]]:28 | extension/ObjC | MyTestCase | c:objc(cy)MyTestCase@cat | | Def | rel: 0 @implementation MyTestCase(cat) -// CHECK: [[@LINE+1]]:1 | instance-method(test)/ObjC | testInCat | c:objc(cs)MyTestCase(im)testInCat | -[MyTestCase(cat) testInCat] | Def,Dyn,RelChild | rel: 1 +// CHECK: [[@LINE+1]]:9 | instance-method(test)/ObjC | testInCat | c:objc(cs)MyTestCase(im)testInCat | -[MyTestCase(cat) testInCat] | Def,Dyn,RelChild | rel: 1 - (void)testInCat {} @end @@ -47,7 +47,7 @@ @property (readonly) IBOutlet id prop; // CHECK: [[@LINE+1]]:54 | instance-property(IB,IBColl)/ObjC | propColl | c:objc(cs)IBCls(py)propColl | | Decl,RelChild | rel: 1 @property (readonly) IBOutletCollection(NSButton) id propColl; -// CHECK: [[@LINE+1]]:1 | instance-method(IB)/ObjC | doIt | c:objc(cs)IBCls(im)doIt | -[IBCls doIt] | Decl,Dyn,RelChild | rel: 1 +// CHECK: [[@LINE+1]]:12 | instance-method(IB)/ObjC | doIt | c:objc(cs)IBCls(im)doIt | -[IBCls doIt] | Decl,Dyn,RelChild | rel: 1 -(IBAction)doIt; @end Modified: vendor/clang/dist/test/Index/index-decls.m ============================================================================== --- vendor/clang/dist/test/Index/index-decls.m Sun Jan 29 20:58:42 2017 (r312957) +++ vendor/clang/dist/test/Index/index-decls.m Sun Jan 29 20:58:47 2017 (r312958) @@ -58,7 +58,7 @@ int test1() { // RUN: c-index-test -index-file %s -target x86_64-apple-macosx10.7 > %t // RUN: FileCheck %s -input-file=%t // CHECK: [indexDeclaration]: kind: objc-class | name: I | {{.*}} | loc: 1:12 -// CHECK: [indexDeclaration]: kind: objc-instance-method | name: prop | {{.*}} | loc: 3:2 +// CHECK: [indexDeclaration]: kind: objc-instance-method | name: prop | {{.*}} | loc: 3:7 // CHECK: [indexDeclaration]: kind: objc-property | name: prop | {{.*}} | loc: 2:25 // CHECK: [indexDeclaration]: kind: objc-category | name: | {{.*}} | loc: 6:12 // CHECK: [indexDeclaration]: kind: objc-instance-method | name: setProp: | {{.*}} | loc: 7:33 @@ -82,5 +82,5 @@ int test1() { // CHECK-NOT: [indexDeclaration]: kind: objc-instance-method {{.*}} loc: 37: // CHECK-NOT: [indexDeclaration]: kind: objc-instance-method {{.*}} loc: 43: -// CHECK: [indexDeclaration]: kind: objc-instance-method | name: meth | {{.*}} loc: 54:1 | {{.*}} | isRedecl: 0 | isDef: 0 | +// CHECK: [indexDeclaration]: kind: objc-instance-method | name: meth | {{.*}} loc: 54:8 | {{.*}} | isRedecl: 0 | isDef: 0 | // CHECK: [indexDeclaration]: kind: objc-property | name: c | USR: c:objc(cs)I5(cpy)c | lang: ObjC | cursor: ObjCPropertyDecl=c:55:23 [class,] | loc: 55:23 Modified: vendor/clang/dist/test/Index/index-module.m ============================================================================== --- vendor/clang/dist/test/Index/index-module.m Sun Jan 29 20:58:42 2017 (r312957) +++ vendor/clang/dist/test/Index/index-module.m Sun Jan 29 20:58:47 2017 (r312958) @@ -52,7 +52,7 @@ int glob; // CHECK-TMOD-NEXT: [indexDeclaration]: kind: objc-class | name: Module | {{.*}} | loc: [[TMOD_MODULE_H]]:15:12 // CHECK-TMOD-NEXT: : kind: interface // CHECK-TMOD-NEXT: [indexDeclaration]: kind: objc-class-method | name: version | {{.*}} | loc: [[TMOD_MODULE_H]]:16:1 -// CHECK-TMOD-NEXT: [indexDeclaration]: kind: objc-class-method | name: alloc | {{.*}} | loc: [[TMOD_MODULE_H]]:17:1 +// CHECK-TMOD-NEXT: [indexDeclaration]: kind: objc-class-method | name: alloc | {{.*}} | loc: [[TMOD_MODULE_H]]:17:2 // CHECK-TMOD-NEXT: [indexDeclaration]: kind: typedef | name: FILE | {{.*}} | loc: [[TMOD_MODULE_H]]:30:3 // CHECK-TMOD-NEXT: [indexDeclaration]: kind: struct | name: __sFILE | {{.*}} | loc: [[TMOD_MODULE_H]]:28:16 // CHECK-TMOD-NEXT: [indexDeclaration]: kind: field | name: _offset | {{.*}} | loc: [[TMOD_MODULE_H]]:29:7 Added: vendor/clang/dist/test/OpenMP/openmp_seh.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/clang/dist/test/OpenMP/openmp_seh.c Sun Jan 29 20:58:47 2017 (r312958) @@ -0,0 +1,18 @@ +// RUN: %clang_cc1 -verify -triple x86_64-pc-windows-msvc19.0.0 -fopenmp -fms-compatibility -x c++ -emit-llvm %s -o - | FileCheck %s +// expected-no-diagnostics +// REQUIRES: x86-registered-target +extern "C" { +void __cpuid(int[4], int); +} + +// CHECK-LABEL: @main +int main(void) { + __try { + int info[4]; + __cpuid(info, 1); + } __except (1) { + } + + return 0; +} + Modified: vendor/clang/dist/test/SemaCXX/constant-expression.cpp ============================================================================== --- vendor/clang/dist/test/SemaCXX/constant-expression.cpp Sun Jan 29 20:58:42 2017 (r312957) +++ vendor/clang/dist/test/SemaCXX/constant-expression.cpp Sun Jan 29 20:58:47 2017 (r312958) @@ -143,3 +143,14 @@ namespace rdar16064952 { } char PR17381_ice = 1000000 * 1000000; // expected-warning {{overflow}} expected-warning {{changes value}} + +namespace PR31701 { + struct C { + template static int n; // expected-warning {{extension}} + }; + template class D; + template + template void D::set() { // expected-error {{from class 'D' without definition}} + const C c = C::n; + } +} Modified: vendor/clang/dist/test/SemaCXX/new-delete-cxx0x.cpp ============================================================================== --- vendor/clang/dist/test/SemaCXX/new-delete-cxx0x.cpp Sun Jan 29 20:58:42 2017 (r312957) +++ vendor/clang/dist/test/SemaCXX/new-delete-cxx0x.cpp Sun Jan 29 20:58:47 2017 (r312958) @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -fsyntax-only -verify %s -std=c++11 -triple=i686-pc-linux-gnu +// RUN: %clang_cc1 -fsyntax-only -verify %s -std=c++11 -triple=i686-pc-linux-gnu -pedantic void ugly_news(int *ip) { (void)new int[-1]; // expected-error {{array size is negative}} @@ -29,6 +29,7 @@ void fn(int n) { (void) new int[2] {1, 2}; (void) new S[2] {1, 2}; (void) new S[3] {1, 2}; + (void) new S[n] {}; // C++11 [expr.new]p19: // If the new-expression creates an object or an array of objects of class // type, access and ambiguity control are done for the allocation function, @@ -44,6 +45,7 @@ void fn(int n) { (void) new T[2] {1, 2}; // ok (void) new T[3] {1, 2}; // expected-error {{no matching constructor}} expected-note {{in implicit initialization of array element 2}} (void) new T[n] {1, 2}; // expected-error {{no matching constructor}} expected-note {{in implicit initialization of trailing array elements in runtime-sized array new}} + (void) new T[n] {}; // expected-error {{no matching constructor}} expected-note {{in implicit initialization of trailing array elements in runtime-sized array new}} } struct U { Modified: vendor/clang/dist/tools/libclang/CXIndexDataConsumer.cpp ============================================================================== --- vendor/clang/dist/tools/libclang/CXIndexDataConsumer.cpp Sun Jan 29 20:58:42 2017 (r312957) +++ vendor/clang/dist/tools/libclang/CXIndexDataConsumer.cpp Sun Jan 29 20:58:47 2017 (r312958) @@ -95,7 +95,7 @@ public: if (isa(LexicalDC) && !D->isThisDeclarationADefinition()) DataConsumer.handleSynthesizedObjCMethod(D, DeclLoc, LexicalDC); else - DataConsumer.handleObjCMethod(D); + DataConsumer.handleObjCMethod(D, DeclLoc); return true; } @@ -801,7 +801,8 @@ bool CXIndexDataConsumer::handleObjCCate return handleObjCContainer(D, CategoryLoc, getCursor(D), CatDInfo); } -bool CXIndexDataConsumer::handleObjCMethod(const ObjCMethodDecl *D) { +bool CXIndexDataConsumer::handleObjCMethod(const ObjCMethodDecl *D, + SourceLocation Loc) { bool isDef = D->isThisDeclarationADefinition(); bool isContainer = isDef; bool isSkipped = false; @@ -814,7 +815,7 @@ bool CXIndexDataConsumer::handleObjCMeth DeclInfo DInfo(!D->isCanonicalDecl(), isDef, isContainer); if (isSkipped) DInfo.flags |= CXIdxDeclFlag_Skipped; - return handleDecl(D, D->getLocation(), getCursor(D), DInfo); + return handleDecl(D, Loc, getCursor(D), DInfo); } bool CXIndexDataConsumer::handleSynthesizedObjCProperty( Modified: vendor/clang/dist/tools/libclang/CXIndexDataConsumer.h ============================================================================== --- vendor/clang/dist/tools/libclang/CXIndexDataConsumer.h Sun Jan 29 20:58:42 2017 (r312957) +++ vendor/clang/dist/tools/libclang/CXIndexDataConsumer.h Sun Jan 29 20:58:47 2017 (r312958) @@ -418,7 +418,7 @@ public: bool handleObjCCategory(const ObjCCategoryDecl *D); bool handleObjCCategoryImpl(const ObjCCategoryImplDecl *D); - bool handleObjCMethod(const ObjCMethodDecl *D); + bool handleObjCMethod(const ObjCMethodDecl *D, SourceLocation Loc); bool handleSynthesizedObjCProperty(const ObjCPropertyImplDecl *D); bool handleSynthesizedObjCMethod(const ObjCMethodDecl *D, SourceLocation Loc, From owner-svn-src-vendor@freebsd.org Sun Jan 29 20:58:53 2017 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BC615CC7FA6; Sun, 29 Jan 2017 20:58:53 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 719FC13CE; Sun, 29 Jan 2017 20:58:53 +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 v0TKwqVV075094; Sun, 29 Jan 2017 20:58:52 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0TKwqsU075093; Sun, 29 Jan 2017 20:58:52 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201701292058.v0TKwqsU075093@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 29 Jan 2017 20:58:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r312959 - vendor/clang/clang-release_40-r293443 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 29 Jan 2017 20:58:53 -0000 Author: dim Date: Sun Jan 29 20:58:52 2017 New Revision: 312959 URL: https://svnweb.freebsd.org/changeset/base/312959 Log: Tag clang release_40 branch r293443. Added: vendor/clang/clang-release_40-r293443/ - copied from r312958, vendor/clang/dist/ From owner-svn-src-vendor@freebsd.org Sun Jan 29 20:58:56 2017 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3E851CC7FD5; Sun, 29 Jan 2017 20:58:56 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 190511454; Sun, 29 Jan 2017 20:58:56 +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 v0TKwteQ075143; Sun, 29 Jan 2017 20:58:55 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0TKwsWw075140; Sun, 29 Jan 2017 20:58:54 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201701292058.v0TKwsWw075140@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 29 Jan 2017 20:58:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r312960 - in vendor/compiler-rt/dist: lib/builtins/arm lib/xray test/xray X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 29 Jan 2017 20:58:56 -0000 Author: dim Date: Sun Jan 29 20:58:54 2017 New Revision: 312960 URL: https://svnweb.freebsd.org/changeset/base/312960 Log: Vendor import of compiler-rt release_40 branch r293443: https://llvm.org/svn/llvm-project/compiler-rt/branches/release_40@293443 Modified: vendor/compiler-rt/dist/lib/builtins/arm/comparesf2.S vendor/compiler-rt/dist/lib/xray/xray_arm.cc vendor/compiler-rt/dist/test/xray/lit.cfg Modified: vendor/compiler-rt/dist/lib/builtins/arm/comparesf2.S ============================================================================== --- vendor/compiler-rt/dist/lib/builtins/arm/comparesf2.S Sun Jan 29 20:58:52 2017 (r312959) +++ vendor/compiler-rt/dist/lib/builtins/arm/comparesf2.S Sun Jan 29 20:58:54 2017 (r312960) @@ -283,7 +283,7 @@ DEFINE_COMPILERRT_FUNCTION(__unordsf2) END_COMPILERRT_FUNCTION(__unordsf2) #if defined(COMPILER_RT_ARMHF_TARGET) -DEFINE_COMPILERRT_FUNCTION(__aeabi_fcmpum): +DEFINE_COMPILERRT_FUNCTION(__aeabi_fcmpum) vmov s0, r0 vmov s1, r1 b SYMBOL_NAME(__unordsf2) Modified: vendor/compiler-rt/dist/lib/xray/xray_arm.cc ============================================================================== --- vendor/compiler-rt/dist/lib/xray/xray_arm.cc Sun Jan 29 20:58:52 2017 (r312959) +++ vendor/compiler-rt/dist/lib/xray/xray_arm.cc Sun Jan 29 20:58:54 2017 (r312960) @@ -19,6 +19,8 @@ #include #include +extern "C" void __clear_cache(void* start, void* end); + namespace __xray { uint64_t cycleFrequency() XRAY_NEVER_INSTRUMENT { @@ -116,8 +118,8 @@ inline static bool patchSled(const bool // B #20 uint32_t *FirstAddress = reinterpret_cast(Sled.Address); + uint32_t *CurAddress = FirstAddress + 1; if (Enable) { - uint32_t *CurAddress = FirstAddress + 1; CurAddress = Write32bitLoadR0(CurAddress, reinterpret_cast(FuncId)); CurAddress = @@ -125,6 +127,7 @@ inline static bool patchSled(const bool *CurAddress = uint32_t(PatchOpcodes::PO_BlxIp); CurAddress++; *CurAddress = uint32_t(PatchOpcodes::PO_PopR0Lr); + CurAddress++; std::atomic_store_explicit( reinterpret_cast *>(FirstAddress), uint32_t(PatchOpcodes::PO_PushR0Lr), std::memory_order_release); @@ -133,6 +136,8 @@ inline static bool patchSled(const bool reinterpret_cast *>(FirstAddress), uint32_t(PatchOpcodes::PO_B20), std::memory_order_release); } + __clear_cache(reinterpret_cast(FirstAddress), + reinterpret_cast(CurAddress)); return true; } Modified: vendor/compiler-rt/dist/test/xray/lit.cfg ============================================================================== --- vendor/compiler-rt/dist/test/xray/lit.cfg Sun Jan 29 20:58:52 2017 (r312959) +++ vendor/compiler-rt/dist/test/xray/lit.cfg Sun Jan 29 20:58:54 2017 (r312960) @@ -30,8 +30,14 @@ config.substitutions.append( # Default test suffixes. config.suffixes = ['.c', '.cc', '.cpp'] -if config.host_os not in ['Linux'] or config.host_arch.find('64') == -1: +if config.host_os not in ['Linux']: config.unsupported = True +elif '64' not in config.host_arch: + if 'arm' in config.host_arch: + if '-mthumb' in config.target_cflags: + config.unsupported = True + else: + config.unsupported = True # Allow tests to use REQUIRES=stable-runtime. For use when you cannot use XFAIL # e.g. because the test sometimes passes, sometimes fails. From owner-svn-src-vendor@freebsd.org Sun Jan 29 20:58:44 2017 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3DF66CC7F5D; Sun, 29 Jan 2017 20:58:44 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E81F0133B; Sun, 29 Jan 2017 20:58:43 +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 v0TKwhpt074987; Sun, 29 Jan 2017 20:58:43 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0TKwhJ0074986; Sun, 29 Jan 2017 20:58:43 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201701292058.v0TKwhJ0074986@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 29 Jan 2017 20:58:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r312957 - vendor/llvm/llvm-release_40-r293443 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 29 Jan 2017 20:58:44 -0000 Author: dim Date: Sun Jan 29 20:58:42 2017 New Revision: 312957 URL: https://svnweb.freebsd.org/changeset/base/312957 Log: Tag llvm release_40 branch r293443. Added: vendor/llvm/llvm-release_40-r293443/ - copied from r312956, vendor/llvm/dist/ From owner-svn-src-vendor@freebsd.org Sun Jan 29 20:59:09 2017 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A1A32CC60F4; Sun, 29 Jan 2017 20:59:09 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 408CA1631; Sun, 29 Jan 2017 20:59:09 +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 v0TKx8gI075311; Sun, 29 Jan 2017 20:59:08 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0TKx8di075310; Sun, 29 Jan 2017 20:59:08 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201701292059.v0TKx8di075310@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 29 Jan 2017 20:59:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r312963 - vendor/libc++/libc++-release_40-r293443 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 29 Jan 2017 20:59:09 -0000 Author: dim Date: Sun Jan 29 20:59:08 2017 New Revision: 312963 URL: https://svnweb.freebsd.org/changeset/base/312963 Log: Tag libc++ release_40 branch r293443. Added: vendor/libc++/libc++-release_40-r293443/ - copied from r312962, vendor/libc++/dist/ From owner-svn-src-vendor@freebsd.org Sun Jan 29 20:59:05 2017 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B06D0CC60B2; Sun, 29 Jan 2017 20:59:05 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4CEFD15B9; Sun, 29 Jan 2017 20:59:05 +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 v0TKx4U9075262; Sun, 29 Jan 2017 20:59:04 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0TKx27W075242; Sun, 29 Jan 2017 20:59:02 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201701292059.v0TKx27W075242@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 29 Jan 2017 20:59:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r312962 - in vendor/libc++/dist: include test/libcxx/test test/std/containers/container.adaptors/queue/queue.defn test/std/containers/container.adaptors/stack/stack.defn test/std/contai... X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 29 Jan 2017 20:59:05 -0000 Author: dim Date: Sun Jan 29 20:59:02 2017 New Revision: 312962 URL: https://svnweb.freebsd.org/changeset/base/312962 Log: Vendor import of libc++ release_40 branch r293443: https://llvm.org/svn/llvm-project/libcxx/branches/release_40@293443 Modified: vendor/libc++/dist/include/__config vendor/libc++/dist/include/__string vendor/libc++/dist/include/__threading_support vendor/libc++/dist/include/deque vendor/libc++/dist/include/forward_list vendor/libc++/dist/include/list vendor/libc++/dist/include/queue vendor/libc++/dist/include/stack vendor/libc++/dist/include/vector vendor/libc++/dist/test/libcxx/test/config.py vendor/libc++/dist/test/std/containers/container.adaptors/queue/queue.defn/emplace.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/stack/stack.defn/emplace.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.modifiers/emplace_back.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.modifiers/emplace_front.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.modifiers/emplace_front.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.modifiers/emplace_back.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.modifiers/emplace_front.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/emplace_back.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.modifiers/emplace_back.pass.cpp vendor/libc++/dist/www/cxx1z_status.html Modified: vendor/libc++/dist/include/__config ============================================================================== --- vendor/libc++/dist/include/__config Sun Jan 29 20:58:58 2017 (r312961) +++ vendor/libc++/dist/include/__config Sun Jan 29 20:59:02 2017 (r312962) @@ -403,15 +403,6 @@ namespace std { #define _LIBCPP_DISABLE_UBSAN_UNSIGNED_INTEGER_CHECK __attribute__((__no_sanitize__("unsigned-integer-overflow"))) #endif -// A constexpr version of __builtin_memcmp was added in clang 4.0 -#if __has_builtin(__builtin_memcmp) -# ifdef __apple_build_version__ -// No shipping version of Apple's clang has constexpr __builtin_memcmp -# elif __clang_major__ > 3 -# define _LIBCPP_BUILTIN_MEMCMP_ISCONSTEXPR -# endif -#endif - #elif defined(_LIBCPP_COMPILER_GCC) #define _ALIGNAS(x) __attribute__((__aligned__(x))) Modified: vendor/libc++/dist/include/__string ============================================================================== --- vendor/libc++/dist/include/__string Sun Jan 29 20:58:58 2017 (r312961) +++ vendor/libc++/dist/include/__string Sun Jan 29 20:59:02 2017 (r312962) @@ -243,7 +243,7 @@ char_traits::compare(const char_ty { if (__n == 0) return 0; -#ifdef _LIBCPP_BUILTIN_MEMCMP_ISCONSTEXPR +#if __has_feature(cxx_constexpr_string_builtins) return __builtin_memcmp(__s1, __s2, __n); #elif _LIBCPP_STD_VER <= 14 return memcmp(__s1, __s2, __n); @@ -265,7 +265,9 @@ char_traits::find(const char_type* { if (__n == 0) return NULL; -#if _LIBCPP_STD_VER <= 14 +#if __has_feature(cxx_constexpr_string_builtins) + return __builtin_char_memchr(__s, to_int_type(__a), __n); +#elif _LIBCPP_STD_VER <= 14 return (const char_type*) memchr(__s, to_int_type(__a), __n); #else for (; __n; --__n) @@ -331,7 +333,7 @@ char_traits::compare(const char { if (__n == 0) return 0; -#if __has_builtin(__builtin_wmemcmp) +#if __has_feature(cxx_constexpr_string_builtins) return __builtin_wmemcmp(__s1, __s2, __n); #elif _LIBCPP_STD_VER <= 14 return wmemcmp(__s1, __s2, __n); @@ -351,7 +353,7 @@ inline _LIBCPP_CONSTEXPR_AFTER_CXX14 size_t char_traits::length(const char_type* __s) _NOEXCEPT { -#if __has_builtin(__builtin_wcslen) +#if __has_feature(cxx_constexpr_string_builtins) return __builtin_wcslen(__s); #elif _LIBCPP_STD_VER <= 14 return wcslen(__s); @@ -369,7 +371,7 @@ char_traits::find(const char_ty { if (__n == 0) return NULL; -#if __has_builtin(__builtin_wmemchr) +#if __has_feature(cxx_constexpr_string_builtins) return __builtin_wmemchr(__s, __a, __n); #elif _LIBCPP_STD_VER <= 14 return wmemchr(__s, __a, __n); Modified: vendor/libc++/dist/include/__threading_support ============================================================================== --- vendor/libc++/dist/include/__threading_support Sun Jan 29 20:58:58 2017 (r312961) +++ vendor/libc++/dist/include/__threading_support Sun Jan 29 20:59:02 2017 (r312962) @@ -40,6 +40,12 @@ #define _LIBCPP_THREAD_ABI_VISIBILITY inline _LIBCPP_INLINE_VISIBILITY #endif +#if defined(__FreeBSD__) && defined(__clang__) && __has_attribute(no_thread_safety_analysis) +#define _LIBCPP_NO_THREAD_SAFETY_ANALYSIS __attribute__((no_thread_safety_analysis)) +#else +#define _LIBCPP_NO_THREAD_SAFETY_ANALYSIS +#endif + _LIBCPP_BEGIN_NAMESPACE_STD #if defined(_LIBCPP_HAS_THREAD_API_PTHREAD) @@ -98,25 +104,25 @@ typedef DWORD __libcpp_tls_key; _LIBCPP_THREAD_ABI_VISIBILITY int __libcpp_recursive_mutex_init(__libcpp_recursive_mutex_t *__m); -_LIBCPP_THREAD_ABI_VISIBILITY +_LIBCPP_THREAD_ABI_VISIBILITY _LIBCPP_NO_THREAD_SAFETY_ANALYSIS int __libcpp_recursive_mutex_lock(__libcpp_recursive_mutex_t *__m); -_LIBCPP_THREAD_ABI_VISIBILITY +_LIBCPP_THREAD_ABI_VISIBILITY _LIBCPP_NO_THREAD_SAFETY_ANALYSIS int __libcpp_recursive_mutex_trylock(__libcpp_recursive_mutex_t *__m); -_LIBCPP_THREAD_ABI_VISIBILITY +_LIBCPP_THREAD_ABI_VISIBILITY _LIBCPP_NO_THREAD_SAFETY_ANALYSIS int __libcpp_recursive_mutex_unlock(__libcpp_recursive_mutex_t *__m); _LIBCPP_THREAD_ABI_VISIBILITY int __libcpp_recursive_mutex_destroy(__libcpp_recursive_mutex_t *__m); -_LIBCPP_THREAD_ABI_VISIBILITY +_LIBCPP_THREAD_ABI_VISIBILITY _LIBCPP_NO_THREAD_SAFETY_ANALYSIS int __libcpp_mutex_lock(__libcpp_mutex_t *__m); -_LIBCPP_THREAD_ABI_VISIBILITY +_LIBCPP_THREAD_ABI_VISIBILITY _LIBCPP_NO_THREAD_SAFETY_ANALYSIS int __libcpp_mutex_trylock(__libcpp_mutex_t *__m); -_LIBCPP_THREAD_ABI_VISIBILITY +_LIBCPP_THREAD_ABI_VISIBILITY _LIBCPP_NO_THREAD_SAFETY_ANALYSIS int __libcpp_mutex_unlock(__libcpp_mutex_t *__m); _LIBCPP_THREAD_ABI_VISIBILITY @@ -129,10 +135,10 @@ int __libcpp_condvar_signal(__libcpp_con _LIBCPP_THREAD_ABI_VISIBILITY int __libcpp_condvar_broadcast(__libcpp_condvar_t* __cv); -_LIBCPP_THREAD_ABI_VISIBILITY +_LIBCPP_THREAD_ABI_VISIBILITY _LIBCPP_NO_THREAD_SAFETY_ANALYSIS int __libcpp_condvar_wait(__libcpp_condvar_t* __cv, __libcpp_mutex_t* __m); -_LIBCPP_THREAD_ABI_VISIBILITY +_LIBCPP_THREAD_ABI_VISIBILITY _LIBCPP_NO_THREAD_SAFETY_ANALYSIS int __libcpp_condvar_timedwait(__libcpp_condvar_t *__cv, __libcpp_mutex_t *__m, timespec *__ts); Modified: vendor/libc++/dist/include/deque ============================================================================== --- vendor/libc++/dist/include/deque Sun Jan 29 20:58:58 2017 (r312961) +++ vendor/libc++/dist/include/deque Sun Jan 29 20:59:02 2017 (r312962) @@ -110,8 +110,8 @@ public: void push_front(value_type&& v); void push_back(const value_type& v); void push_back(value_type&& v); - template reference emplace_front(Args&&... args); - template reference emplace_back(Args&&... args); + template reference emplace_front(Args&&... args); // reference in C++17 + template reference emplace_back(Args&&... args); // reference in C++17 template iterator emplace(const_iterator p, Args&&... args); iterator insert(const_iterator p, const value_type& v); iterator insert(const_iterator p, value_type&& v); @@ -1342,8 +1342,13 @@ public: void push_back(const value_type& __v); #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES #ifndef _LIBCPP_HAS_NO_VARIADICS +#if _LIBCPP_STD_VER > 14 template reference emplace_front(_Args&&... __args); - template reference emplace_back(_Args&&... __args); + template reference emplace_back (_Args&&... __args); +#else + template void emplace_front(_Args&&... __args); + template void emplace_back (_Args&&... __args); +#endif template iterator emplace(const_iterator __p, _Args&&... __args); #endif // _LIBCPP_HAS_NO_VARIADICS void push_front(value_type&& __v); @@ -1822,7 +1827,11 @@ deque<_Tp, _Allocator>::push_back(value_ template template +#if _LIBCPP_STD_VER > 14 typename deque<_Tp, _Allocator>::reference +#else +void +#endif deque<_Tp, _Allocator>::emplace_back(_Args&&... __args) { allocator_type& __a = __base::__alloc(); @@ -1832,7 +1841,9 @@ deque<_Tp, _Allocator>::emplace_back(_Ar __alloc_traits::construct(__a, _VSTD::addressof(*__base::end()), _VSTD::forward<_Args>(__args)...); ++__base::size(); +#if _LIBCPP_STD_VER > 14 return *--__base::end(); +#endif } #endif // _LIBCPP_HAS_NO_VARIADICS @@ -1870,7 +1881,11 @@ deque<_Tp, _Allocator>::push_front(value template template +#if _LIBCPP_STD_VER > 14 typename deque<_Tp, _Allocator>::reference +#else +void +#endif deque<_Tp, _Allocator>::emplace_front(_Args&&... __args) { allocator_type& __a = __base::__alloc(); @@ -1880,7 +1895,9 @@ deque<_Tp, _Allocator>::emplace_front(_A __alloc_traits::construct(__a, _VSTD::addressof(*--__base::begin()), _VSTD::forward<_Args>(__args)...); --__base::__start_; ++__base::size(); +#if _LIBCPP_STD_VER > 14 return *__base::begin(); +#endif } #endif // _LIBCPP_HAS_NO_VARIADICS Modified: vendor/libc++/dist/include/forward_list ============================================================================== --- vendor/libc++/dist/include/forward_list Sun Jan 29 20:58:58 2017 (r312961) +++ vendor/libc++/dist/include/forward_list Sun Jan 29 20:59:02 2017 (r312962) @@ -87,7 +87,7 @@ public: reference front(); const_reference front() const; - template reference emplace_front(Args&&... args); + template reference emplace_front(Args&&... args); // reference in C++17 void push_front(const value_type& v); void push_front(value_type&& v); @@ -747,7 +747,11 @@ public: #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES #ifndef _LIBCPP_HAS_NO_VARIADICS +#if _LIBCPP_STD_VER > 14 template reference emplace_front(_Args&&... __args); +#else + template void emplace_front(_Args&&... __args); +#endif #endif void push_front(value_type&& __v); #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES @@ -1103,7 +1107,11 @@ forward_list<_Tp, _Alloc>::assign(initia template template +#if _LIBCPP_STD_VER > 14 typename forward_list<_Tp, _Alloc>::reference +#else +void +#endif forward_list<_Tp, _Alloc>::emplace_front(_Args&&... __args) { __node_allocator& __a = base::__alloc(); @@ -1113,7 +1121,9 @@ forward_list<_Tp, _Alloc>::emplace_front _VSTD::forward<_Args>(__args)...); __h->__next_ = base::__before_begin()->__next_; base::__before_begin()->__next_ = __h.release(); +#if _LIBCPP_STD_VER > 14 return base::__before_begin()->__next_->__value_; +#endif } #endif // _LIBCPP_HAS_NO_VARIADICS Modified: vendor/libc++/dist/include/list ============================================================================== --- vendor/libc++/dist/include/list Sun Jan 29 20:58:58 2017 (r312961) +++ vendor/libc++/dist/include/list Sun Jan 29 20:59:02 2017 (r312962) @@ -93,10 +93,10 @@ public: size_type max_size() const noexcept; template - reference emplace_front(Args&&... args); + reference emplace_front(Args&&... args); // reference in C++17 void pop_front(); template - reference emplace_back(Args&&... args); + reference emplace_back(Args&&... args); // reference in C++17 void pop_back(); void push_front(const value_type& x); void push_front(value_type&& x); @@ -969,9 +969,17 @@ public: void push_back(value_type&& __x); #ifndef _LIBCPP_HAS_NO_VARIADICS template +#if _LIBCPP_STD_VER > 14 reference emplace_front(_Args&&... __args); +#else + void emplace_front(_Args&&... __args); +#endif template +#if _LIBCPP_STD_VER > 14 reference emplace_back(_Args&&... __args); +#else + void emplace_back(_Args&&... __args); +#endif template iterator emplace(const_iterator __p, _Args&&... __args); #endif // _LIBCPP_HAS_NO_VARIADICS @@ -1600,7 +1608,11 @@ list<_Tp, _Alloc>::push_back(value_type& template template +#if _LIBCPP_STD_VER > 14 typename list<_Tp, _Alloc>::reference +#else +void +#endif list<_Tp, _Alloc>::emplace_front(_Args&&... __args) { __node_allocator& __na = base::__node_alloc(); @@ -1609,12 +1621,20 @@ list<_Tp, _Alloc>::emplace_front(_Args&& __node_alloc_traits::construct(__na, _VSTD::addressof(__hold->__value_), _VSTD::forward<_Args>(__args)...); __link_nodes_at_front(__hold.get()->__as_link(), __hold.get()->__as_link()); ++base::__sz(); +#if _LIBCPP_STD_VER > 14 return __hold.release()->__value_; +#else + __hold.release(); +#endif } template template +#if _LIBCPP_STD_VER > 14 typename list<_Tp, _Alloc>::reference +#else +void +#endif list<_Tp, _Alloc>::emplace_back(_Args&&... __args) { __node_allocator& __na = base::__node_alloc(); @@ -1624,7 +1644,11 @@ list<_Tp, _Alloc>::emplace_back(_Args&&. __link_pointer __nl = __hold->__as_link(); __link_nodes_at_back(__nl, __nl); ++base::__sz(); +#if _LIBCPP_STD_VER > 14 return __hold.release()->__value_; +#else + __hold.release(); +#endif } template Modified: vendor/libc++/dist/include/queue ============================================================================== --- vendor/libc++/dist/include/queue Sun Jan 29 20:58:58 2017 (r312961) +++ vendor/libc++/dist/include/queue Sun Jan 29 20:59:02 2017 (r312962) @@ -63,7 +63,7 @@ public: void push(const value_type& v); void push(value_type&& v); - template reference emplace(Args&&... args); + template reference emplace(Args&&... args); // reference in C++17 void pop(); void swap(queue& q) noexcept(is_nothrow_swappable_v) @@ -292,8 +292,13 @@ public: #ifndef _LIBCPP_HAS_NO_VARIADICS template _LIBCPP_INLINE_VISIBILITY +#if _LIBCPP_STD_VER > 14 reference emplace(_Args&&... __args) { return c.emplace_back(_VSTD::forward<_Args>(__args)...);} +#else + void emplace(_Args&&... __args) + { c.emplace_back(_VSTD::forward<_Args>(__args)...);} +#endif #endif // _LIBCPP_HAS_NO_VARIADICS #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES _LIBCPP_INLINE_VISIBILITY Modified: vendor/libc++/dist/include/stack ============================================================================== --- vendor/libc++/dist/include/stack Sun Jan 29 20:58:58 2017 (r312961) +++ vendor/libc++/dist/include/stack Sun Jan 29 20:59:02 2017 (r312962) @@ -55,7 +55,7 @@ public: void push(const value_type& x); void push(value_type&& x); - template reference emplace(Args&&... args); + template reference emplace(Args&&... args); // reference in C++17 void pop(); void swap(stack& c) noexcept(is_nothrow_swappable_v) @@ -199,8 +199,13 @@ public: #ifndef _LIBCPP_HAS_NO_VARIADICS template _LIBCPP_INLINE_VISIBILITY +#if _LIBCPP_STD_VER > 14 reference emplace(_Args&&... __args) { return c.emplace_back(_VSTD::forward<_Args>(__args)...);} +#else + void emplace(_Args&&... __args) + { c.emplace_back(_VSTD::forward<_Args>(__args)...);} +#endif #endif // _LIBCPP_HAS_NO_VARIADICS #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES _LIBCPP_INLINE_VISIBILITY Modified: vendor/libc++/dist/include/vector ============================================================================== --- vendor/libc++/dist/include/vector Sun Jan 29 20:58:58 2017 (r312961) +++ vendor/libc++/dist/include/vector Sun Jan 29 20:59:02 2017 (r312962) @@ -99,7 +99,7 @@ public: void push_back(const value_type& x); void push_back(value_type&& x); template - reference emplace_back(Args&&... args); + reference emplace_back(Args&&... args); // reference in C++17 void pop_back(); template iterator emplace(const_iterator position, Args&&... args); @@ -218,7 +218,7 @@ public: const_reference back() const; void push_back(const value_type& x); - template reference emplace_back(Args&&... args); // C++14 + template reference emplace_back(Args&&... args); // C++14; reference in C++17 void pop_back(); template iterator emplace(const_iterator position, Args&&... args); // C++14 @@ -679,7 +679,11 @@ public: #ifndef _LIBCPP_HAS_NO_VARIADICS template _LIBCPP_INLINE_VISIBILITY +#if _LIBCPP_STD_VER > 14 reference emplace_back(_Args&&... __args); +#else + void emplace_back(_Args&&... __args); +#endif #endif // _LIBCPP_HAS_NO_VARIADICS #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES _LIBCPP_INLINE_VISIBILITY @@ -1625,7 +1629,11 @@ vector<_Tp, _Allocator>::__emplace_back_ template template inline +#if _LIBCPP_STD_VER > 14 typename vector<_Tp, _Allocator>::reference +#else +void +#endif vector<_Tp, _Allocator>::emplace_back(_Args&&... __args) { if (this->__end_ < this->__end_cap()) @@ -1639,7 +1647,9 @@ vector<_Tp, _Allocator>::emplace_back(_A } else __emplace_back_slow_path(_VSTD::forward<_Args>(__args)...); +#if _LIBCPP_STD_VER > 14 return this->back(); +#endif } #endif // _LIBCPP_HAS_NO_VARIADICS @@ -2336,9 +2346,16 @@ public: void push_back(const value_type& __x); #if _LIBCPP_STD_VER > 11 template - _LIBCPP_INLINE_VISIBILITY reference emplace_back(_Args&&... __args) { +#if _LIBCPP_STD_VER > 14 + _LIBCPP_INLINE_VISIBILITY reference emplace_back(_Args&&... __args) +#else + _LIBCPP_INLINE_VISIBILITY void emplace_back(_Args&&... __args) +#endif + { push_back ( value_type ( _VSTD::forward<_Args>(__args)... )); +#if _LIBCPP_STD_VER > 14 return this->back(); +#endif } #endif Modified: vendor/libc++/dist/test/libcxx/test/config.py ============================================================================== --- vendor/libc++/dist/test/libcxx/test/config.py Sun Jan 29 20:58:58 2017 (r312961) +++ vendor/libc++/dist/test/libcxx/test/config.py Sun Jan 29 20:59:02 2017 (r312962) @@ -403,6 +403,15 @@ class Configuration(object): if not std: # Choose the newest possible language dialect if none is given. possible_stds = ['c++1z', 'c++14', 'c++11', 'c++03'] + if self.cxx.type == 'gcc': + maj_v, _, _ = self.cxx.version + maj_v = int(maj_v) + if maj_v < 7: + possible_stds.remove('c++1z') + # FIXME: How many C++14 tests actually fail under GCC 5 and 6? + # Should we XFAIL them individually instead? + if maj_v <= 6: + possible_stds.remove('c++14') for s in possible_stds: if self.cxx.hasCompileFlag('-std=%s' % s): std = s Modified: vendor/libc++/dist/test/std/containers/container.adaptors/queue/queue.defn/emplace.pass.cpp ============================================================================== --- vendor/libc++/dist/test/std/containers/container.adaptors/queue/queue.defn/emplace.pass.cpp Sun Jan 29 20:58:58 2017 (r312961) +++ vendor/libc++/dist/test/std/containers/container.adaptors/queue/queue.defn/emplace.pass.cpp Sun Jan 29 20:59:02 2017 (r312962) @@ -12,25 +12,35 @@ // // template reference emplace(Args&&... args); +// return type is 'reference' in C++17; 'void' before + #include #include +#include "test_macros.h" + #include "../../../Emplaceable.h" int main() { typedef Emplaceable T; std::queue q; +#if TEST_STD_VER > 14 T& r1 = q.emplace(1, 2.5); assert(&r1 == &q.back()); T& r2 = q.emplace(2, 3.5); assert(&r2 == &q.back()); T& r3 = q.emplace(3, 4.5); assert(&r3 == &q.back()); + assert(&r1 == &q.front()); +#else + q.emplace(1, 2.5); + q.emplace(2, 3.5); + q.emplace(3, 4.5); +#endif + assert(q.size() == 3); assert(q.front() == Emplaceable(1, 2.5)); assert(q.back() == Emplaceable(3, 4.5)); - assert(&r3 == &q.back()); - assert(&r1 == &q.front()); } Modified: vendor/libc++/dist/test/std/containers/container.adaptors/stack/stack.defn/emplace.pass.cpp ============================================================================== --- vendor/libc++/dist/test/std/containers/container.adaptors/stack/stack.defn/emplace.pass.cpp Sun Jan 29 20:58:58 2017 (r312961) +++ vendor/libc++/dist/test/std/containers/container.adaptors/stack/stack.defn/emplace.pass.cpp Sun Jan 29 20:59:02 2017 (r312962) @@ -12,22 +12,31 @@ // // template reference emplace(Args&&... args); +// return type is 'reference' in C++17; 'void' before #include #include +#include "test_macros.h" + #include "../../../Emplaceable.h" int main() { typedef Emplaceable T; std::stack q; +#if TEST_STD_VER > 14 T& r1 = q.emplace(1, 2.5); assert(&r1 == &q.top()); T& r2 = q.emplace(2, 3.5); assert(&r2 == &q.top()); T& r3 = q.emplace(3, 4.5); assert(&r3 == &q.top()); +#else + q.emplace(1, 2.5); + q.emplace(2, 3.5); + q.emplace(3, 4.5); +#endif assert(q.size() == 3); assert(q.top() == Emplaceable(3, 4.5)); } Modified: vendor/libc++/dist/test/std/containers/sequences/deque/deque.modifiers/emplace_back.pass.cpp ============================================================================== --- vendor/libc++/dist/test/std/containers/sequences/deque/deque.modifiers/emplace_back.pass.cpp Sun Jan 29 20:58:58 2017 (r312961) +++ vendor/libc++/dist/test/std/containers/sequences/deque/deque.modifiers/emplace_back.pass.cpp Sun Jan 29 20:59:02 2017 (r312962) @@ -12,6 +12,7 @@ // // template reference emplace_back(Args&&... args); +// return type is 'reference' in C++17; 'void' before #include #include @@ -49,15 +50,21 @@ void test(C& c1) { typedef typename C::iterator I; - typedef typename C::reference Ref; std::size_t c1_osize = c1.size(); +#if TEST_STD_VER > 14 + typedef typename C::reference Ref; Ref ref = c1.emplace_back(Emplaceable(1, 2.5)); +#else + c1.emplace_back(Emplaceable(1, 2.5)); +#endif assert(c1.size() == c1_osize + 1); assert(distance(c1.begin(), c1.end()) == static_cast(c1.size())); I i = c1.end(); assert(*--i == Emplaceable(1, 2.5)); +#if TEST_STD_VER > 14 assert(&(*i) == &ref); +#endif } template Modified: vendor/libc++/dist/test/std/containers/sequences/deque/deque.modifiers/emplace_front.pass.cpp ============================================================================== --- vendor/libc++/dist/test/std/containers/sequences/deque/deque.modifiers/emplace_front.pass.cpp Sun Jan 29 20:58:58 2017 (r312961) +++ vendor/libc++/dist/test/std/containers/sequences/deque/deque.modifiers/emplace_front.pass.cpp Sun Jan 29 20:59:02 2017 (r312962) @@ -12,6 +12,7 @@ // // template reference emplace_front(Args&&... args); +// return type is 'reference' in C++17; 'void' before #include #include @@ -20,6 +21,7 @@ #include "test_macros.h" #include "../../../Emplaceable.h" #include "min_allocator.h" +#include "test_allocator.h" template C @@ -48,15 +50,21 @@ void test(C& c1) { typedef typename C::iterator I; - typedef typename C::reference Ref; std::size_t c1_osize = c1.size(); +#if TEST_STD_VER > 14 + typedef typename C::reference Ref; Ref res_ref = c1.emplace_front(Emplaceable(1, 2.5)); +#else + c1.emplace_front(Emplaceable(1, 2.5)); +#endif assert(c1.size() == c1_osize + 1); assert(distance(c1.begin(), c1.end()) == static_cast(c1.size())); I i = c1.begin(); assert(*i == Emplaceable(1, 2.5)); +#if TEST_STD_VER > 14 assert(&res_ref == &(*i)); +#endif } template @@ -84,4 +92,15 @@ int main() for (int j = 0; j < N; ++j) testN> >(rng[i], rng[j]); } + { + std::deque> c; + c.emplace_front(); + assert(c.size() == 1); + c.emplace_front(1, 2, 3); + assert(c.size() == 2); + c.emplace_front(); + assert(c.size() == 3); + c.emplace_front(1, 2, 3); + assert(c.size() == 4); + } } Modified: vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.modifiers/emplace_front.pass.cpp ============================================================================== --- vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.modifiers/emplace_front.pass.cpp Sun Jan 29 20:58:58 2017 (r312961) +++ vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.modifiers/emplace_front.pass.cpp Sun Jan 29 20:59:02 2017 (r312962) @@ -12,10 +12,13 @@ // // template reference emplace_front(Args&&... args); +// return type is 'reference' in C++17; 'void' before #include #include +#include "test_macros.h" + #include "../../../Emplaceable.h" #include "min_allocator.h" @@ -25,6 +28,7 @@ int main() typedef Emplaceable T; typedef std::forward_list C; C c; +#if TEST_STD_VER > 14 T& r1 = c.emplace_front(); assert(c.front() == Emplaceable()); assert(&r1 == &c.front()); @@ -32,6 +36,13 @@ int main() T& r2 = c.emplace_front(1, 2.5); assert(c.front() == Emplaceable(1, 2.5)); assert(&r2 == &c.front()); +#else + c.emplace_front(); + assert(c.front() == Emplaceable()); + assert(distance(c.begin(), c.end()) == 1); + c.emplace_front(1, 2.5); + assert(c.front() == Emplaceable(1, 2.5)); +#endif assert(*next(c.begin()) == Emplaceable()); assert(distance(c.begin(), c.end()) == 2); } @@ -39,6 +50,7 @@ int main() typedef Emplaceable T; typedef std::forward_list> C; C c; +#if TEST_STD_VER > 14 T& r1 = c.emplace_front(); assert(c.front() == Emplaceable()); assert(&r1 == &c.front()); @@ -46,6 +58,13 @@ int main() T& r2 = c.emplace_front(1, 2.5); assert(c.front() == Emplaceable(1, 2.5)); assert(&r2 == &c.front()); +#else + c.emplace_front(); + assert(c.front() == Emplaceable()); + assert(distance(c.begin(), c.end()) == 1); + c.emplace_front(1, 2.5); + assert(c.front() == Emplaceable(1, 2.5)); +#endif assert(*next(c.begin()) == Emplaceable()); assert(distance(c.begin(), c.end()) == 2); } Modified: vendor/libc++/dist/test/std/containers/sequences/list/list.modifiers/emplace_back.pass.cpp ============================================================================== --- vendor/libc++/dist/test/std/containers/sequences/list/list.modifiers/emplace_back.pass.cpp Sun Jan 29 20:58:58 2017 (r312961) +++ vendor/libc++/dist/test/std/containers/sequences/list/list.modifiers/emplace_back.pass.cpp Sun Jan 29 20:59:02 2017 (r312962) @@ -12,10 +12,12 @@ // // template reference emplace_back(Args&&... args); +// return type is 'reference' in C++17; 'void' before #include #include +#include "test_macros.h" #include "min_allocator.h" class A @@ -37,6 +39,7 @@ int main() { { std::list c; +#if TEST_STD_VER > 14 A& r1 = c.emplace_back(2, 3.5); assert(c.size() == 1); assert(&r1 == &c.back()); @@ -45,6 +48,14 @@ int main() A& r2 = c.emplace_back(3, 4.5); assert(c.size() == 2); assert(&r2 == &c.back()); +#else + c.emplace_back(2, 3.5); + assert(c.size() == 1); + assert(c.front().geti() == 2); + assert(c.front().getd() == 3.5); + c.emplace_back(3, 4.5); + assert(c.size() == 2); +#endif assert(c.front().geti() == 2); assert(c.front().getd() == 3.5); assert(c.back().geti() == 3); @@ -52,6 +63,7 @@ int main() } { std::list> c; +#if TEST_STD_VER > 14 A& r1 = c.emplace_back(2, 3.5); assert(c.size() == 1); assert(&r1 == &c.back()); @@ -60,6 +72,14 @@ int main() A& r2 = c.emplace_back(3, 4.5); assert(c.size() == 2); assert(&r2 == &c.back()); +#else + c.emplace_back(2, 3.5); + assert(c.size() == 1); + assert(c.front().geti() == 2); + assert(c.front().getd() == 3.5); + c.emplace_back(3, 4.5); + assert(c.size() == 2); +#endif assert(c.front().geti() == 2); assert(c.front().getd() == 3.5); assert(c.back().geti() == 3); Modified: vendor/libc++/dist/test/std/containers/sequences/list/list.modifiers/emplace_front.pass.cpp ============================================================================== --- vendor/libc++/dist/test/std/containers/sequences/list/list.modifiers/emplace_front.pass.cpp Sun Jan 29 20:58:58 2017 (r312961) +++ vendor/libc++/dist/test/std/containers/sequences/list/list.modifiers/emplace_front.pass.cpp Sun Jan 29 20:59:02 2017 (r312962) @@ -12,6 +12,7 @@ // // template reference emplace_front(Args&&... args); +// return type is 'reference' in C++17; 'void' before #include #include @@ -37,6 +38,7 @@ int main() { { std::list c; +#if TEST_STD_VER > 14 A& r1 = c.emplace_front(2, 3.5); assert(c.size() == 1); assert(&r1 == &c.front()); @@ -45,13 +47,23 @@ int main() A& r2 = c.emplace_front(3, 4.5); assert(c.size() == 2); assert(&r2 == &c.front()); +#else + c.emplace_front(2, 3.5); + assert(c.size() == 1); + assert(c.front().geti() == 2); + assert(c.front().getd() == 3.5); + c.emplace_front(3, 4.5); + assert(c.size() == 2); +#endif assert(c.front().geti() == 3); assert(c.front().getd() == 4.5); assert(c.back().geti() == 2); assert(c.back().getd() == 3.5); } + { std::list> c; +#if TEST_STD_VER > 14 A& r1 = c.emplace_front(2, 3.5); assert(c.size() == 1); assert(&r1 == &c.front()); @@ -60,6 +72,14 @@ int main() A& r2 = c.emplace_front(3, 4.5); assert(c.size() == 2); assert(&r2 == &c.front()); +#else + c.emplace_front(2, 3.5); + assert(c.size() == 1); + assert(c.front().geti() == 2); + assert(c.front().getd() == 3.5); + c.emplace_front(3, 4.5); + assert(c.size() == 2); +#endif assert(c.front().geti() == 3); assert(c.front().getd() == 4.5); assert(c.back().geti() == 2); Modified: vendor/libc++/dist/test/std/containers/sequences/vector.bool/emplace_back.pass.cpp ============================================================================== --- vendor/libc++/dist/test/std/containers/sequences/vector.bool/emplace_back.pass.cpp Sun Jan 29 20:58:58 2017 (r312961) +++ vendor/libc++/dist/test/std/containers/sequences/vector.bool/emplace_back.pass.cpp Sun Jan 29 20:59:02 2017 (r312962) @@ -12,17 +12,20 @@ // vector.bool // template reference emplace_back(Args&&... args); +// return type is 'reference' in C++17; 'void' before #include #include +#include "test_macros.h" #include "min_allocator.h" int main() { { typedef std::vector C; - typedef C::reference Ref; C c; +#if TEST_STD_VER > 14 + typedef C::reference Ref; Ref r1 = c.emplace_back(); assert(c.size() == 1); assert(c.front() == false); @@ -36,19 +39,27 @@ int main() r2 = false; assert(c.back() == false); r2 = true; - Ref r3 = c.emplace_back(1 == 1); +#else + c.emplace_back(); + assert(c.size() == 1); + assert(c.front() == false); + c.emplace_back(true); + assert(c.size() == 2); + assert(c.front() == false); + assert(c.back() == true); +#endif + c.emplace_back(1 == 1); assert(c.size() == 3); assert(c.front() == false); assert(c[1] == true); assert(c.back() == true); - r3 = false; - assert(c.back() == false); } { typedef std::vector> C; - typedef C::reference Ref; C c; +#if TEST_STD_VER > 14 + typedef C::reference Ref; Ref r1 = c.emplace_back(); assert(c.size() == 1); assert(c.front() == false); @@ -62,6 +73,15 @@ int main() r2 = false; assert(c.back() == false); r2 = true; +#else + c.emplace_back(); + assert(c.size() == 1); + assert(c.front() == false); + c.emplace_back(true); + assert(c.size() == 2); + assert(c.front() == false); + assert(c.back() == true); +#endif c.emplace_back(1 == 1); assert(c.size() == 3); assert(c.front() == false); Modified: vendor/libc++/dist/test/std/containers/sequences/vector/vector.modifiers/emplace_back.pass.cpp ============================================================================== --- vendor/libc++/dist/test/std/containers/sequences/vector/vector.modifiers/emplace_back.pass.cpp Sun Jan 29 20:58:58 2017 (r312961) +++ vendor/libc++/dist/test/std/containers/sequences/vector/vector.modifiers/emplace_back.pass.cpp Sun Jan 29 20:59:02 2017 (r312962) @@ -12,9 +12,11 @@ // // template reference emplace_back(Args&&... args); +// return type is 'reference' in C++17; 'void' before #include #include +#include "test_macros.h" #include "test_allocator.h" #include "min_allocator.h" #include "test_allocator.h" @@ -56,6 +58,7 @@ int main() { { std::vector c; +#if TEST_STD_VER > 14 A& r1 = c.emplace_back(2, 3.5); assert(c.size() == 1); assert(&r1 == &c.back()); @@ -65,6 +68,15 @@ int main() A& r2 = c.emplace_back(3, 4.5); assert(c.size() == 2); assert(&r2 == &c.back()); +#else + c.emplace_back(2, 3.5); + assert(c.size() == 1); + assert(c.front().geti() == 2); + assert(c.front().getd() == 3.5); + assert(is_contiguous_container_asan_correct(c)); + c.emplace_back(3, 4.5); + assert(c.size() == 2); +#endif assert(c.front().geti() == 2); assert(c.front().getd() == 3.5); assert(c.back().geti() == 3); @@ -73,6 +85,7 @@ int main() } { std::vector > c; +#if TEST_STD_VER > 14 A& r1 = c.emplace_back(2, 3.5); assert(c.size() == 1); assert(&r1 == &c.back()); @@ -82,6 +95,15 @@ int main() A& r2 = c.emplace_back(3, 4.5); assert(c.size() == 2); assert(&r2 == &c.back()); +#else + c.emplace_back(2, 3.5); + assert(c.size() == 1); + assert(c.front().geti() == 2); + assert(c.front().getd() == 3.5); + assert(is_contiguous_container_asan_correct(c)); + c.emplace_back(3, 4.5); + assert(c.size() == 2); +#endif assert(c.front().geti() == 2); assert(c.front().getd() == 3.5); assert(c.back().geti() == 3); @@ -90,6 +112,7 @@ int main() } { std::vector> c; +#if TEST_STD_VER > 14 A& r1 = c.emplace_back(2, 3.5); assert(c.size() == 1); assert(&r1 == &c.back()); @@ -99,6 +122,15 @@ int main() A& r2 = c.emplace_back(3, 4.5); assert(c.size() == 2); assert(&r2 == &c.back()); +#else + c.emplace_back(2, 3.5); + assert(c.size() == 1); + assert(c.front().geti() == 2); + assert(c.front().getd() == 3.5); + assert(is_contiguous_container_asan_correct(c)); + c.emplace_back(3, 4.5); + assert(c.size() == 2); +#endif assert(c.front().geti() == 2); assert(c.front().getd() == 3.5); assert(c.back().geti() == 3); Modified: vendor/libc++/dist/www/cxx1z_status.html ============================================================================== --- vendor/libc++/dist/www/cxx1z_status.html Sun Jan 29 20:58:58 2017 (r312961) +++ vendor/libc++/dist/www/cxx1z_status.html Sun Jan 29 20:59:02 2017 (r312962) @@ -376,10 +376,10 @@ 2680Add "Equivalent to" to filesystemIssaquahComplete 2681filesystem::copy() cannot copy symlinksIssaquahComplete 2682filesystem::copy() won't create a symlink to a directoryIssaquahComplete - 2686Why is std::hash specialized for error_code, but not error_condition?IssaquahPatch ready + 2686Why is std::hash specialized for error_code, but not error_condition?IssaquahComplete 2694Application of LWG 436 accidentally deleted definition of "facet"IssaquahComplete 2696Interaction between make_shared and enable_shared_from_this is underspecifiedIssaquah - 2699Missing restriction in [numeric.requirements]Issaquah + 2699Missing restriction in [numeric.requirements]IssaquahComplete 2712copy_file(from, to, ...) has a number of unspecified error conditionsIssaquahComplete 2722equivalent incorrectly specifies throws clauseIssaquahComplete 2729Missing SFINAE on std::pair::operator=Issaquah From owner-svn-src-vendor@freebsd.org Sun Jan 29 20:59:00 2017 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 285BACC6013; Sun, 29 Jan 2017 20:59:00 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D300B14D6; Sun, 29 Jan 2017 20:58:59 +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 v0TKwwen075190; Sun, 29 Jan 2017 20:58:58 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0TKwwIv075189; Sun, 29 Jan 2017 20:58:58 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201701292058.v0TKwwIv075189@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 29 Jan 2017 20:58:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r312961 - vendor/compiler-rt/compiler-rt-release_40-r293443 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 29 Jan 2017 20:59:00 -0000 Author: dim Date: Sun Jan 29 20:58:58 2017 New Revision: 312961 URL: https://svnweb.freebsd.org/changeset/base/312961 Log: Tag compiler-rt release_40 branch r293443. Added: vendor/compiler-rt/compiler-rt-release_40-r293443/ - copied from r312960, vendor/compiler-rt/dist/ From owner-svn-src-vendor@freebsd.org Sun Jan 29 20:59:16 2017 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 23AA0CC615A; Sun, 29 Jan 2017 20:59:16 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id CCD5F16E7; Sun, 29 Jan 2017 20:59:15 +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 v0TKxEOm075410; Sun, 29 Jan 2017 20:59:14 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0TKxEn3075409; Sun, 29 Jan 2017 20:59:14 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201701292059.v0TKxEn3075409@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 29 Jan 2017 20:59:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r312965 - vendor/lld/lld-release_40-r293443 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 29 Jan 2017 20:59:16 -0000 Author: dim Date: Sun Jan 29 20:59:14 2017 New Revision: 312965 URL: https://svnweb.freebsd.org/changeset/base/312965 Log: Tag lld release_40 branch r293443. Added: vendor/lld/lld-release_40-r293443/ - copied from r312964, vendor/lld/dist/ From owner-svn-src-vendor@freebsd.org Sun Jan 29 20:59:19 2017 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 632DBCC6194; Sun, 29 Jan 2017 20:59:19 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 161E3175D; Sun, 29 Jan 2017 20:59:19 +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 v0TKxI29075458; Sun, 29 Jan 2017 20:59:18 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0TKxIvW075457; Sun, 29 Jan 2017 20:59:18 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201701292059.v0TKxIvW075457@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 29 Jan 2017 20:59:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r312966 - vendor/lldb/lldb-release_40-r293443 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 29 Jan 2017 20:59:19 -0000 Author: dim Date: Sun Jan 29 20:59:17 2017 New Revision: 312966 URL: https://svnweb.freebsd.org/changeset/base/312966 Log: Tag lldb release_40 branch r293443. Added: vendor/lldb/lldb-release_40-r293443/ - copied from r312965, vendor/lldb/dist/ From owner-svn-src-vendor@freebsd.org Sun Jan 29 20:59:12 2017 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5074FCC6121; Sun, 29 Jan 2017 20:59:12 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 12ACC1676; Sun, 29 Jan 2017 20:59:12 +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 v0TKxBqq075363; Sun, 29 Jan 2017 20:59:11 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0TKxAZC075357; Sun, 29 Jan 2017 20:59:10 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201701292059.v0TKxAZC075357@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 29 Jan 2017 20:59:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r312964 - in vendor/lld/dist: . ELF cmake/modules docs test/ELF/linkerscript X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 29 Jan 2017 20:59:12 -0000 Author: dim Date: Sun Jan 29 20:59:10 2017 New Revision: 312964 URL: https://svnweb.freebsd.org/changeset/base/312964 Log: Vendor import of lld release_40 branch r293443: https://llvm.org/svn/llvm-project/lld/branches/release_40@293443 Added: vendor/lld/dist/test/ELF/linkerscript/common-assign.s (contents, props changed) Modified: vendor/lld/dist/CMakeLists.txt vendor/lld/dist/ELF/LinkerScript.cpp vendor/lld/dist/ELF/SyntheticSections.h vendor/lld/dist/cmake/modules/AddLLD.cmake vendor/lld/dist/docs/ReleaseNotes.rst Modified: vendor/lld/dist/CMakeLists.txt ============================================================================== --- vendor/lld/dist/CMakeLists.txt Sun Jan 29 20:59:08 2017 (r312963) +++ vendor/lld/dist/CMakeLists.txt Sun Jan 29 20:59:10 2017 (r312964) @@ -42,6 +42,7 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRE include_directories("${LLVM_BINARY_DIR}/include" ${LLVM_INCLUDE_DIRS}) link_directories(${LLVM_LIBRARY_DIRS}) + set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX}) set(LLVM_RUNTIME_OUTPUT_INTDIR ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin) find_program(LLVM_TABLEGEN_EXE "llvm-tblgen" ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH) Modified: vendor/lld/dist/ELF/LinkerScript.cpp ============================================================================== --- vendor/lld/dist/ELF/LinkerScript.cpp Sun Jan 29 20:59:08 2017 (r312963) +++ vendor/lld/dist/ELF/LinkerScript.cpp Sun Jan 29 20:59:10 2017 (r312964) @@ -918,12 +918,7 @@ const OutputSectionBase *LinkerScript>(Sym)) - return DR->Section ? DR->Section->OutSec : nullptr; - if (auto *DS = dyn_cast_or_null(Sym)) - return DS->Section; - - return nullptr; + return SymbolTableSection::getOutputSection(Sym); } // Returns indices of ELF headers containing specific section, identified Modified: vendor/lld/dist/ELF/SyntheticSections.h ============================================================================== --- vendor/lld/dist/ELF/SyntheticSections.h Sun Jan 29 20:59:08 2017 (r312963) +++ vendor/lld/dist/ELF/SyntheticSections.h Sun Jan 29 20:59:10 2017 (r312964) @@ -372,6 +372,8 @@ public: ArrayRef getSymbols() const { return Symbols; } + static const OutputSectionBase *getOutputSection(SymbolBody *Sym); + unsigned NumLocals = 0; StringTableSection &StrTabSec; @@ -379,8 +381,6 @@ private: void writeLocalSymbols(uint8_t *&Buf); void writeGlobalSymbols(uint8_t *Buf); - const OutputSectionBase *getOutputSection(SymbolBody *Sym); - // A vector of symbols and their string table offsets. std::vector Symbols; }; Modified: vendor/lld/dist/cmake/modules/AddLLD.cmake ============================================================================== --- vendor/lld/dist/cmake/modules/AddLLD.cmake Sun Jan 29 20:59:08 2017 (r312963) +++ vendor/lld/dist/cmake/modules/AddLLD.cmake Sun Jan 29 20:59:10 2017 (r312964) @@ -1,6 +1,38 @@ macro(add_lld_library name) - llvm_add_library(${name} ${ARGN}) + cmake_parse_arguments(ARG + "SHARED" + "" + "" + ${ARGN}) + if(ARG_SHARED) + set(ARG_ENABLE_SHARED SHARED) + endif() + llvm_add_library(${name} ${ARG_ENABLE_SHARED} ${ARG_UNPARSED_ARGUMENTS}) set_target_properties(${name} PROPERTIES FOLDER "lld libraries") + + if (LLD_BUILD_TOOLS) + if(${name} IN_LIST LLVM_DISTRIBUTION_COMPONENTS OR + NOT LLVM_DISTRIBUTION_COMPONENTS) + set(export_to_lldtargets EXPORT lldTargets) + set_property(GLOBAL PROPERTY LLD_HAS_EXPORTS True) + endif() + + install(TARGETS ${name} + COMPONENT ${name} + ${export_to_lldtargets} + LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} + ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} + RUNTIME DESTINATION bin) + + if (${ARG_SHARED} AND NOT CMAKE_CONFIGURATION_TYPES) + add_custom_target(install-${name} + DEPENDS ${name} + COMMAND "${CMAKE_COMMAND}" + -DCMAKE_INSTALL_COMPONENT=${name} + -P "${CMAKE_BINARY_DIR}/cmake_install.cmake") + endif() + set_property(GLOBAL APPEND PROPERTY LLD_EXPORTS ${name}) + endif() endmacro(add_lld_library) macro(add_lld_executable name) Modified: vendor/lld/dist/docs/ReleaseNotes.rst ============================================================================== --- vendor/lld/dist/docs/ReleaseNotes.rst Sun Jan 29 20:59:08 2017 (r312963) +++ vendor/lld/dist/docs/ReleaseNotes.rst Sun Jan 29 20:59:10 2017 (r312964) @@ -11,25 +11,94 @@ LLD 4.0.0 Release Notes Introduction ============ -This document contains the release notes for the LLD linker, release 4.0.0. +LLD is a linker which supports ELF (Unix), COFF (Windows) and Mach-O +(macOS). It is generally faster than the GNU BFD/gold linkers or the +MSVC linker. + +LLD is designed to be a drop-in replacmenet for the system linkers, so +that users don't need to change their build systems other than swapping +the linker command. + +This document contains the release notes for LLD 4.0.0. Here we describe the status of LLD, including major improvements from the previous release. All LLD releases may be downloaded from the `LLVM releases web site `_. -Non-comprehensive list of changes in this release -================================================= + +What's New in LLD 4.0? +====================== ELF Improvements ---------------- -* Initial support for LTO. +LLD provides much better compatibility with the GNU linker than before. +Now it is able to link the entire FreeBSD base system including the kernel +out of the box. We are working closely with the FreeBSD project to +make it usable as the system linker in a future release of the operating +system. + +Multi-threading performance has been improved, and multi-threading +is now enabled by default. Combined with other optimizations, LLD 4.0 +is about 1.5 times faster than LLD 3.9 when linking large programs +in our test environment. + +Other notable changes are listed below: + +* Error messages contain more information than before. If debug info + is available, the linker prints out not only the object file name + but the source location of unresolved symbols. + +* Error messages are printed in red just like Clang by default. You + can disable it by passing -no-color-diagnostics. + +* LLD's version string is now embedded in a .comment section in the + result output file. You can dump it with this command: ``objdump -j -s + .comment ``. + +* The -Map option is supported. With that, you can print out section + and symbol information to a specified file. This feature is useful + for analyzing link results. + +* The file format for the -reproduce option has changed from cpio to + tar. + +* When creating a copy relocation for a symbol, LLD now scans the + DSO's header to see if the symbol is in a read-only segment. If so, + space for the copy relocation is reserved in .bss.rel.ro instead of + .bss. This fixes a security issue that read-only data in a DSO + becomes writable if it is copied by a copy relocation. This issue + was disclosed originally on the binutils mailing list at + ``. + +* Compressed input sections are supported. + +* ``--oformat binary``, ``--section-start``, ``-Tbss``, ``-Tdata``, + ``-Ttext``, ``-b binary``, ``-build-id=uuid``, ``-no-rosegment``, + ``-nopie``, ``-nostdlib``, ``-omagic``, ``-retain-symbols-file``, + ``-sort-section``, ``-z max-page-size`` and ``-z wxneeded`` are + suppoorted. + +* A lot of linker script directives have been added. + +* Default image base address for x86-64 has changed from 0x10000 to + 0x200000 to make it huge-page friendly. + +* ARM port now supports GNU ifunc, the ARM C++ exceptions ABI, TLS + relocations and static linking. Problems with dlopen() on systems + using eglibc fixed. + +* MIPS port now supports input files in new R6 revision of MIPS ABIs + or N32 ABI. Generated file now contains .MIPS.abiflags section and + complete set of ELF headers flags. + +* Relocations produced by the ``-mxgot`` compiler's flag is supported + for MIPS. Now it is possible to generate "large" GOT exceeds 64K + limit. COFF Improvements ----------------- -* Item 1. - -MachO Improvements ------------------- - -* Item 1. +* Performance on Windows has been improved by parallelizing parts of the + linker and optimizing file system operations. As a result of these + improvements, LLD 4.0 has been measured to be about 2.5 times faster + than LLD 3.9 when linking a large Chromium DLL. Added: vendor/lld/dist/test/ELF/linkerscript/common-assign.s ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/lld/dist/test/ELF/linkerscript/common-assign.s Sun Jan 29 20:59:10 2017 (r312964) @@ -0,0 +1,48 @@ +# REQUIRES: x86 +# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t +# RUN: echo "SECTIONS { . = SIZEOF_HEADERS; pfoo = foo; pbar = bar; }" > %t.script +# RUN: ld.lld -o %t1 --script %t.script %t +# RUN: llvm-readobj -symbols %t1 | FileCheck %s + +# CHECK: Symbol { +# CHECK: Name: bar +# CHECK-NEXT: Value: 0x134 +# CHECK-NEXT: Size: 4 +# CHECK-NEXT: Binding: Global +# CHECK-NEXT: Type: Object +# CHECK-NEXT: Other: 0 +# CHECK-NEXT: Section: .bss +# CHECK-NEXT: } +# CHECK-NEXT: Symbol { +# CHECK-NEXT: Name: foo +# CHECK-NEXT: Value: 0x138 +# CHECK-NEXT: Size: 4 +# CHECK-NEXT: Binding: Global +# CHECK-NEXT: Type: Object +# CHECK-NEXT: Other: 0 +# CHECK-NEXT: Section: .bss +# CHECK-NEXT: } +# CHECK-NEXT: Symbol { +# CHECK-NEXT: Name: pfoo +# CHECK-NEXT: Value: 0x138 +# CHECK-NEXT: Size: 0 +# CHECK-NEXT: Binding: Global +# CHECK-NEXT: Type: None +# CHECK-NEXT: Other: 0 +# CHECK-NEXT: Section: .bss +# CHECK-NEXT: } +# CHECK-NEXT: Symbol { +# CHECK-NEXT: Name: pbar +# CHECK-NEXT: Value: 0x134 +# CHECK-NEXT: Size: 0 +# CHECK-NEXT: Binding: Global +# CHECK-NEXT: Type: None +# CHECK-NEXT: Other: 0 +# CHECK-NEXT: Section: .bss +# CHECK-NEXT: } +# CHECK-NEXT: ] + +.comm foo,4,4 +.comm bar,4,4 +movl $1, foo(%rip) +movl $2, bar(%rip) From owner-svn-src-vendor@freebsd.org Sun Jan 29 22:33:02 2017 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A867DCC7543; Sun, 29 Jan 2017 22:33:02 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 692D21EEC; Sun, 29 Jan 2017 22:33:02 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0TMX11J016316; Sun, 29 Jan 2017 22:33:01 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0TMX0hZ016308; Sun, 29 Jan 2017 22:33:00 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201701292233.v0TMX0hZ016308@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Sun, 29 Jan 2017 22:33:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r312970 - vendor/openresolv/dist X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 29 Jan 2017 22:33:02 -0000 Author: pfg Date: Sun Jan 29 22:33:00 2017 New Revision: 312970 URL: https://svnweb.freebsd.org/changeset/base/312970 Log: Import openresolv 3.9.0 Obtained from: http://roy.marples.name/projects/openresolv Modified: vendor/openresolv/dist/Makefile vendor/openresolv/dist/configure vendor/openresolv/dist/libc.in vendor/openresolv/dist/pdns_recursor.in vendor/openresolv/dist/resolvconf.8.in vendor/openresolv/dist/resolvconf.conf.5.in vendor/openresolv/dist/resolvconf.in Modified: vendor/openresolv/dist/Makefile ============================================================================== --- vendor/openresolv/dist/Makefile Sun Jan 29 22:06:52 2017 (r312969) +++ vendor/openresolv/dist/Makefile Sun Jan 29 22:33:00 2017 (r312970) @@ -37,6 +37,11 @@ SED_STATUSARG= -e 's:@STATUSARG@:${STAT DISTPREFIX?= ${PKG}-${VERSION} DISTFILEGZ?= ${DISTPREFIX}.tar.gz DISTFILE?= ${DISTPREFIX}.tar.xz +DISTINFO= ${DISTFILE}.distinfo +DISTINFOSIGN= ${DISTINFO}.asc +CKSUM?= cksum -a SHA256 +PGP?= netpgp + FOSSILID?= current .SUFFIXES: .in @@ -53,7 +58,7 @@ clean: rm -f ${TARGET} distclean: clean - rm -f config.mk ${DISTFILE} + rm -f config.mk ${DISTFILE} ${DISTINFO} ${DISTINFOSIGN} installdirs: @@ -83,3 +88,11 @@ dist: fossil tarball --name ${DISTPREFIX} ${FOSSILID} ${DISTFILEGZ} gunzip -c ${DISTFILEGZ} | xz >${DISTFILE} rm ${DISTFILEGZ} + +distinfo: dist + rm -f ${DISTINFO} ${DISTINFOSIGN} + ${CKSUM} ${DISTFILE} >${DISTINFO} + #printf "SIZE (${DISTFILE}) = %s\n" $$(wc -c <${DISTFILE}) >>${DISTINFO} + ${PGP} --clearsign --output=${DISTINFOSIGN} ${DISTINFO} + chmod 644 ${DISTINFOSIGN} + ls -l ${DISTFILE} ${DISTINFO} ${DISTINFOSIGN} Modified: vendor/openresolv/dist/configure ============================================================================== --- vendor/openresolv/dist/configure Sun Jan 29 22:06:52 2017 (r312969) +++ vendor/openresolv/dist/configure Sun Jan 29 22:33:00 2017 (r312970) @@ -120,14 +120,21 @@ echo "Configuring openresolv for ... $OS rm -rf $CONFIG_MK echo "# $OS" >$CONFIG_MK -# On FreeBSD, /etc/init.d/foo status returns 0 if foo is not enabled -# regardless of if it's not running. -# So we force onestatus to work around this silly bug. -if [ -z "$STATUSARG" ]; then - case "$OS" in - freebsd*) STATUSARG="onestatus";; - esac -fi +case "$OS" in +freebsd*) + # On FreeBSD, /etc/init.d/foo status returns 0 if foo is not enabled + # regardless of if it's not running. + # So we force onestatus to work around this silly bug. + if [ -z "$STATUSARG" ]; then + STATUSARG="onestatus" + fi + ;; +linux*) + # cksum does't support -a and netpgp is rare + echo "CKSUM= sha256sum --tag" >>$CONFIG_MK + echo "PGP= gpg2" >>$CONFIG_MK + ;; +esac for x in SYSCONFDIR SBINDIR LIBEXECDIR VARDIR MANDIR RESTARTCMD RCDIR STATUSARG do Modified: vendor/openresolv/dist/libc.in ============================================================================== --- vendor/openresolv/dist/libc.in Sun Jan 29 22:06:52 2017 (r312969) +++ vendor/openresolv/dist/libc.in Sun Jan 29 22:33:00 2017 (r312970) @@ -216,7 +216,7 @@ fi if $backup; then if [ "$newconf" = "$signature$NL" ]; then if [ -e "$resolv_conf.bak" ]; then - newconf="$(cat "$resolv_conf.bak")" + newconf="$(cat "$resolv_conf.bak")$NL" fi elif [ -e "$resolv_conf" ]; then read line <"$resolv_conf" Modified: vendor/openresolv/dist/pdns_recursor.in ============================================================================== --- vendor/openresolv/dist/pdns_recursor.in Sun Jan 29 22:06:52 2017 (r312969) +++ vendor/openresolv/dist/pdns_recursor.in Sun Jan 29 22:33:00 2017 (r312970) @@ -34,7 +34,6 @@ NL=" " : ${pdns_service:=pdns_recursor} -: ${pdns_restart:=@RESTARTCMD ${pdns_service}@} newzones= @@ -68,5 +67,12 @@ if [ ! -f "$pdns_zones" ] || \ [ "$(cat "$pdns_zones")" != "$(printf %s "$newzones")" ] then printf %s "$newzones" >"$pdns_zones" - eval $pdns_restart + if [ -n "$pdns_restart" ]; then + eval $pdns_restart + elif [ -n "$RESTARTCMD" ]; then + set -- ${pdns_service} + eval $RESTARTCMD + else + @SBINDIR@/resolvconf -r ${pdns_service} + fi fi Modified: vendor/openresolv/dist/resolvconf.8.in ============================================================================== --- vendor/openresolv/dist/resolvconf.8.in Sun Jan 29 22:06:52 2017 (r312969) +++ vendor/openresolv/dist/resolvconf.8.in Sun Jan 29 22:33:00 2017 (r312970) @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd May 7, 2016 +.Dd November 29, 2016 .Dt RESOLVCONF 8 .Os .Sh NAME @@ -45,6 +45,8 @@ .Fl il Ar pattern .Nm .Fl u +.Nm +.Fl Fl version .Sh DESCRIPTION .Nm manages @@ -106,7 +108,7 @@ See .Xr resolvconf.conf 5 for how to configure .Nm -to use a local name server. +to use a local name server and how to remove the private marking. .Pp .Nm can mark an interfaces @@ -126,7 +128,7 @@ on the .Ar interface . .Pp Here are some options for the above commands:- -.Bl -tag -width indent +.Bl -tag -width pattern_opt .It Fl f Ignore non existent interfaces. Only really useful for deleting interfaces. @@ -146,7 +148,7 @@ as exclusive when adding, otherwise only .Pp .Nm has some more commands for general usage:- -.Bl -tag -width indent +.Bl -tag -width pattern_opt .It Fl i Ar pattern List the interfaces and protocols, optionally matching .Ar pattern , @@ -168,12 +170,15 @@ to update all its subscribers. .Nm does not update the subscribers when adding a resolv.conf that matches what it already has for that interface. +.It Fl Fl version +Echo the resolvconf version to +.Em stdout . .El .Pp .Nm also has some commands designed to be used by it's subscribers and system startup:- -.Bl -tag -width indent +.Bl -tag -width pattern_opt .It Fl I Initialise the state directory .Pa @VARDIR@ . @@ -223,7 +228,7 @@ Here are some suggested protocol tags to .Pa resolv.conf file registered on an .Ar interface Ns No :- -.Bl -tag -width indent +.Bl -tag -width pattern_opt .It dhcp Dynamic Host Configuration Protocol. Initial versions of Modified: vendor/openresolv/dist/resolvconf.conf.5.in ============================================================================== --- vendor/openresolv/dist/resolvconf.conf.5.in Sun Jan 29 22:06:52 2017 (r312969) +++ vendor/openresolv/dist/resolvconf.conf.5.in Sun Jan 29 22:33:00 2017 (r312970) @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd April 28, 2016 +.Dd December 29, 2016 .Dt RESOLVCONF.CONF 5 .Os .Sh NAME @@ -69,6 +69,11 @@ If unset, defaults to the following:- These interfaces will be processed next, unless they have a metric. If unset, defaults to the following:- .D1 tap[0-9]* tun[0-9]* vpn vpn[0-9]* ppp[0-9]* ippp[0-9]* +.It Sy inclusive_interfaces +Ignore any exlcusive marking for these interfaces. +This is handy when 3rd party integrations force the +.Nm resolvconf -x +option and you want to disable it easily. .It Sy local_nameservers If unset, defaults to the following:- .D1 127.* 0.0.0.0 255.255.255.255 ::1 @@ -102,6 +107,11 @@ Requires a local nameserver other than l This is equivalent to the .Nm resolvconf -p option. +.It Sy public_interfaces +Force these interface to be public, overriding the private marking. +This is handy when 3rd party integrations force the +.Nm resolvconf -p +option and you want to disable it easily. .It Sy replace Is a space separated list of replacement keywords. The syntax is this: Modified: vendor/openresolv/dist/resolvconf.in ============================================================================== --- vendor/openresolv/dist/resolvconf.in Sun Jan 29 22:06:52 2017 (r312969) +++ vendor/openresolv/dist/resolvconf.in Sun Jan 29 22:33:00 2017 (r312970) @@ -25,13 +25,19 @@ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. RESOLVCONF="$0" -OPENRESOLV_VERSION="3.8.1" +OPENRESOLV_VERSION="3.9.0" SYSCONFDIR=@SYSCONFDIR@ LIBEXECDIR=@LIBEXECDIR@ VARDIR=@VARDIR@ RCDIR=@RCDIR@ RESTARTCMD=@RESTARTCMD@ +if [ "$1" = "--version" ]; then + echo "openresolv $OPENRESOLV_VERSION" + echo "Copyright (c) 2007-2016 Roy Marples" + exit 0 +fi + # Disregard dhcpcd setting unset interface_order state_dir @@ -90,6 +96,7 @@ usage() that match the specified pattern -u Run updates from our current DNS information + --version Echo the ${RESOLVCONF##*/} version Options: -f Ignore non existent interfaces @@ -129,6 +136,34 @@ strip_trailing_dots() printf "\n" } +private_iface() +{ + local p + + # Allow expansion + cd "$IFACEDIR" + + # Public interfaces override private ones. + for p in $public_interfaces; do + case "$iface" in + "$p"|"$p":*) return 1;; + esac + done + + if [ -e "$PRIVATEDIR/$iface" ]; then + return 0 + fi + + for p in $private_interfaces; do + case "$iface" in + "$p"|"$p":*) return 0;; + esac + done + + # Not a private interface + return 1 +} + # Parse resolv.conf's and make variables # for domain name servers, search name servers and global nameservers parse_resolv() @@ -144,20 +179,10 @@ parse_resolv() if ${new}; then iface="${line#\# resolv.conf from *}" new=false - if [ -e "$PRIVATEDIR/$iface" ]; then + if private_iface "$iface"; then private=true else - # Allow expansion - cd "$IFACEDIR" private=false - for p in $private_interfaces; do - case "$iface" in - "$p"|"$p":*) - private=true - break - ;; - esac - done fi fi ;; @@ -301,9 +326,9 @@ fi" /usr/sbin/service \$1 restart; fi" elif [ -x /bin/sv ]; then - RESTARTCMD="/bin/sv try-restart \$1" + RESTARTCMD="/bin/sv status \$1 >/dev/null 2>&1 && /bin/sv try-restart \$1" elif [ -x /usr/bin/sv ]; then - RESTARTCMD="/usr/bin/sv try-restart \$1" + RESTARTCMD="/usr/bin/sv status \$1 >/dev/null 2>&1 && /usr/bin/sv try-restart \$1" elif [ -e /etc/arch-release -a -d /etc/rc.d ]; then RCDIR=/etc/rc.d RESTARTCMD="if [ -e /var/run/daemons/\$1 ]; then @@ -378,6 +403,14 @@ list_resolv() done fi excl=true + cd "$IFACEDIR" + for i in $inclusive_interfaces; do + if [ -f "$i" -a "$list" = "$i" ]; then + list= + excl=false + break + fi + done ;; *) excl=false @@ -418,7 +451,6 @@ list_resolv() cd "$IFACEDIR" retval=1 - excl=true for i in $(uniqify $list); do # Only list interfaces which we really have if ! [ -f "$i" ]; then @@ -432,8 +464,7 @@ list_resolv() if [ "$cmd" = i -o "$cmd" = "-i" ]; then printf %s "$i " else - echo_resolv "$i" - echo + echo_resolv "$i" && echo fi [ $? = 0 -a "$retval" = 1 ] && retval=0 done From owner-svn-src-vendor@freebsd.org Sun Jan 29 22:38:15 2017 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 071C1CC7607; Sun, 29 Jan 2017 22:38:15 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 99C04E4; Sun, 29 Jan 2017 22:38:14 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0TMcDBp016534; Sun, 29 Jan 2017 22:38:13 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0TMcDG8016526; Sun, 29 Jan 2017 22:38:13 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201701292238.v0TMcDG8016526@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Sun, 29 Jan 2017 22:38:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r312971 - vendor/openresolv/3.9.0 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 29 Jan 2017 22:38:15 -0000 Author: pfg Date: Sun Jan 29 22:38:13 2017 New Revision: 312971 URL: https://svnweb.freebsd.org/changeset/base/312971 Log: Tag openresolv 3.9.0. Obtained from: http://roy.marples.name/projects/openresolv Added: vendor/openresolv/3.9.0/ - copied from r312966, vendor/openresolv/dist/ Replaced: vendor/openresolv/3.9.0/Makefile - copied unchanged from r312970, vendor/openresolv/dist/Makefile vendor/openresolv/3.9.0/configure - copied unchanged from r312970, vendor/openresolv/dist/configure vendor/openresolv/3.9.0/libc.in - copied unchanged from r312970, vendor/openresolv/dist/libc.in vendor/openresolv/3.9.0/pdns_recursor.in - copied unchanged from r312970, vendor/openresolv/dist/pdns_recursor.in vendor/openresolv/3.9.0/resolvconf.8.in - copied unchanged from r312970, vendor/openresolv/dist/resolvconf.8.in vendor/openresolv/3.9.0/resolvconf.conf.5.in - copied unchanged from r312970, vendor/openresolv/dist/resolvconf.conf.5.in vendor/openresolv/3.9.0/resolvconf.in - copied unchanged from r312970, vendor/openresolv/dist/resolvconf.in Copied: vendor/openresolv/3.9.0/Makefile (from r312970, vendor/openresolv/dist/Makefile) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/openresolv/3.9.0/Makefile Sun Jan 29 22:38:13 2017 (r312971, copy of r312970, vendor/openresolv/dist/Makefile) @@ -0,0 +1,98 @@ +PKG= openresolv + +# Nasty hack so that make clean works without configure being run +_CONFIG_MK!= test -e config.mk && echo config.mk || echo config-null.mk +CONFIG_MK?= ${_CONFIG_MK} +include ${CONFIG_MK} + +SBINDIR?= /sbin +SYSCONFDIR?= /etc +LIBEXECDIR?= /libexec/resolvconf +VARDIR?= /var/run/resolvconf + +INSTALL?= install +SED?= sed + +VERSION!= ${SED} -n 's/OPENRESOLV_VERSION="\(.*\)".*/\1/p' resolvconf.in + +BINMODE?= 0755 +DOCMODE?= 0644 +MANMODE?= 0444 + +RESOLVCONF= resolvconf resolvconf.8 resolvconf.conf.5 +SUBSCRIBERS= libc dnsmasq named pdnsd unbound +TARGET= ${RESOLVCONF} ${SUBSCRIBERS} +SRCS= ${TARGET:C,$,.in,} # pmake +SRCS:= ${TARGET:=.in} # gmake + +SED_SBINDIR= -e 's:@SBINDIR@:${SBINDIR}:g' +SED_SYSCONFDIR= -e 's:@SYSCONFDIR@:${SYSCONFDIR}:g' +SED_LIBEXECDIR= -e 's:@LIBEXECDIR@:${LIBEXECDIR}:g' +SED_VARDIR= -e 's:@VARDIR@:${VARDIR}:g' +SED_RCDIR= -e 's:@RCDIR@:${RCDIR}:g' +SED_RESTARTCMD= -e 's:@RESTARTCMD@:${RESTARTCMD}:g' +SED_RCDIR= -e 's:@RCDIR@:${RCDIR}:g' +SED_STATUSARG= -e 's:@STATUSARG@:${STATUSARG}:g' + +DISTPREFIX?= ${PKG}-${VERSION} +DISTFILEGZ?= ${DISTPREFIX}.tar.gz +DISTFILE?= ${DISTPREFIX}.tar.xz +DISTINFO= ${DISTFILE}.distinfo +DISTINFOSIGN= ${DISTINFO}.asc +CKSUM?= cksum -a SHA256 +PGP?= netpgp + +FOSSILID?= current + +.SUFFIXES: .in + +all: ${TARGET} + +.in: Makefile ${CONFIG_MK} + ${SED} ${SED_SBINDIR} ${SED_SYSCONFDIR} ${SED_LIBEXECDIR} \ + ${SED_VARDIR} \ + ${SED_RCDIR} ${SED_RESTARTCMD} ${SED_RCDIR} ${SED_STATUSARG} \ + $< > $@ + +clean: + rm -f ${TARGET} + +distclean: clean + rm -f config.mk ${DISTFILE} ${DISTINFO} ${DISTINFOSIGN} + +installdirs: + +proginstall: ${TARGET} + ${INSTALL} -d ${DESTDIR}${SBINDIR} + ${INSTALL} -m ${BINMODE} resolvconf ${DESTDIR}${SBINDIR} + ${INSTALL} -d ${DESTDIR}${SYSCONFDIR} + test -e ${DESTDIR}${SYSCONFDIR}/resolvconf.conf || \ + ${INSTALL} -m ${DOCMODE} resolvconf.conf ${DESTDIR}${SYSCONFDIR} + ${INSTALL} -d ${DESTDIR}${LIBEXECDIR} + ${INSTALL} -m ${DOCMODE} ${SUBSCRIBERS} ${DESTDIR}${LIBEXECDIR} + +maninstall: + ${INSTALL} -d ${DESTDIR}${MANDIR}/man8 + ${INSTALL} -m ${MANMODE} resolvconf.8 ${DESTDIR}${MANDIR}/man8 + ${INSTALL} -d ${DESTDIR}${MANDIR}/man5 + ${INSTALL} -m ${MANMODE} resolvconf.conf.5 ${DESTDIR}${MANDIR}/man5 + +install: proginstall maninstall + +import: + rm -rf /tmp/${DISTPREFIX} + ${INSTALL} -d /tmp/${DISTPREFIX} + cp README ${SRCS} /tmp/${DISTPREFIX} + +dist: + fossil tarball --name ${DISTPREFIX} ${FOSSILID} ${DISTFILEGZ} + gunzip -c ${DISTFILEGZ} | xz >${DISTFILE} + rm ${DISTFILEGZ} + +distinfo: dist + rm -f ${DISTINFO} ${DISTINFOSIGN} + ${CKSUM} ${DISTFILE} >${DISTINFO} + #printf "SIZE (${DISTFILE}) = %s\n" $$(wc -c <${DISTFILE}) >>${DISTINFO} + ${PGP} --clearsign --output=${DISTINFOSIGN} ${DISTINFO} + chmod 644 ${DISTINFOSIGN} + ls -l ${DISTFILE} ${DISTINFO} ${DISTINFOSIGN} Copied: vendor/openresolv/3.9.0/configure (from r312970, vendor/openresolv/dist/configure) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/openresolv/3.9.0/configure Sun Jan 29 22:38:13 2017 (r312971, copy of r312970, vendor/openresolv/dist/configure) @@ -0,0 +1,159 @@ +#!/bin/sh +# Try and be like autotools configure, but without autotools + +# Ensure that we do not inherit these from env +OS= +BUILD= +HOST= +TARGET= +RESTARTCMD= +RCDIR= +STATUSARG= + +for x do + opt=${x%%=*} + var=${x#*=} + case "$opt" in + --os|OS) OS=$var;; + --with-cc|CC) CC=$var;; + --debug) DEBUG=$var;; + --disable-debug) DEBUG=no;; + --enable-debug) DEBUG=yes;; + --prefix) PREFIX=$var;; + --sysconfdir) SYSCONFDIR=$var;; + --bindir|--sbindir) SBINDIR=$var;; + --libexecdir) LIBEXECDIR=$var;; + --statedir|--localstatedir) STATEDIR=$var;; + --dbdir) DBDIR=$var;; + --rundir) RUNDIR=$var;; + --mandir) MANDIR=$var;; + --with-ccopts|CFLAGS) CFLAGS=$var;; + CPPFLAGS) CPPFLAGS=$var;; + --build) BUILD=$var;; + --host) HOST=$var;; + --target) TARGET=$var;; + --libdir) LIBDIR=$var;; + --restartcmd) RESTARTCMD=$var;; + --rcdir) RCDIR=$var;; + --statusarg) STATUSARG=$var;; + --includedir) eval INCLUDEDIR="$INCLUDEDIR${INCLUDEDIR:+ }$var";; + --datadir|--infodir) ;; # ignore autotools + --disable-maintainer-mode|--disable-dependency-tracking) ;; + --help) echo "See the README file for available options"; exit 0;; + *) echo "$0: WARNING: unknown option $opt" >&2;; + esac +done + +if [ -z "$LIBEXECDIR" ]; then + printf "Checking for directory /libexec ... " + if [ -d /libexec ]; then + echo "yes" + LIBEXECDIR=$PREFIX/libexec/resolvconf + else + echo "no" + LIBEXECDIR=$PREFIX/lib/resolvconf + fi +fi +if [ -z "$RUNDIR" ]; then + printf "Checking for directory /run ... " + if [ -d /run ]; then + echo "yes" + RUNDIR=/run + else + echo "no" + RUNDIR=/var/run + fi +fi + +: ${SED:=sed} + +: ${SYSCONFDIR:=$PREFIX/etc} +: ${SBINDIR:=$PREFIX/sbin} +: ${LIBEXECDIR:=$PREFIX/libexec/resolvconf} +: ${STATEDIR:=/var} +: ${RUNDIR:=$STATEDIR/run} +: ${MANDIR:=${PREFIX:-/usr}/share/man} + +eval SYSCONFDIR="$SYSCONFDIR" +eval SBINDIR="$SBINDIR" +eval LIBEXECDIR="$LIBEXECDIR" +eval VARDIR="$RUNDIR/resolvconf" +eval MANDIR="$MANDIR" + +CONFIG_MK=config.mk + +if [ -z "$BUILD" ]; then + # autoconf target triplet: cpu-vendor-os + BUILD=$(uname -m)-unknown-$(uname -s | tr '[:upper:]' '[:lower:]') +fi +: ${HOST:=$BUILD} + +if [ -z "$OS" ]; then + echo "Deriving operating system from ... $HOST" + # Derive OS from cpu-vendor-[kernel-]os + CPU=${HOST%%-*} + REST=${HOST#*-} + if [ "$CPU" != "$REST" ]; then + VENDOR=${REST%%-*} + REST=${REST#*-} + if [ "$VENDOR" != "$REST" ]; then + # Use kernel if given, otherwise os + OS=${REST%%-*} + else + # 2 tupple + OS=$VENDOR + VENDOR= + fi + fi + + # Work with cpu-kernel-os, ie Debian + case "$VENDOR" in + linux*|kfreebsd*) OS=$VENDOR; VENDOR= ;; + esac + # Special case + case "$OS" in + gnu*) OS=hurd;; # No HURD support as yet + esac +fi + +echo "Configuring openresolv for ... $OS" +rm -rf $CONFIG_MK +echo "# $OS" >$CONFIG_MK + +case "$OS" in +freebsd*) + # On FreeBSD, /etc/init.d/foo status returns 0 if foo is not enabled + # regardless of if it's not running. + # So we force onestatus to work around this silly bug. + if [ -z "$STATUSARG" ]; then + STATUSARG="onestatus" + fi + ;; +linux*) + # cksum does't support -a and netpgp is rare + echo "CKSUM= sha256sum --tag" >>$CONFIG_MK + echo "PGP= gpg2" >>$CONFIG_MK + ;; +esac + +for x in SYSCONFDIR SBINDIR LIBEXECDIR VARDIR MANDIR RESTARTCMD RCDIR STATUSARG +do + eval v=\$$x + # Make files look nice for import + l=$((10 - ${#x})) + unset t + [ $l -gt 3 ] && t=" " + echo "$x=$t $v" >>$CONFIG_MK +done + +echo +echo " SYSCONFDIR = $SYSCONFDIR" +echo " SBINDIR = $SBINDIR" +echo " LIBEXECDIR = $LIBEXECDIR" +echo " VARDIR = $RUNDIR" +echo " MANDIR = $MANDIR" +echo +echo " RESTARTCMD = $RESTARTCMD" +echo " RCDIR = $RCDIR" +echo " STATUSARG = $STATUSARG" +echo Copied: vendor/openresolv/3.9.0/libc.in (from r312970, vendor/openresolv/dist/libc.in) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/openresolv/3.9.0/libc.in Sun Jan 29 22:38:13 2017 (r312971, copy of r312970, vendor/openresolv/dist/libc.in) @@ -0,0 +1,252 @@ +#!/bin/sh +# Copyright (c) 2007-2016 Roy Marples +# All rights reserved + +# libc subscriber for resolvconf + +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * 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 COPYRIGHT HOLDERS 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 COPYRIGHT +# OWNER 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. + +SYSCONFDIR=@SYSCONFDIR@ +LIBEXECDIR=@LIBEXECDIR@ +VARDIR=@VARDIR@ +IFACEDIR="$VARDIR/interfaces" +NL=" +" + +# sed may not be available, and this is faster on small files +key_get_value() +{ + local key="$1" x= line= + + shift + if [ $# -eq 0 ]; then + while read -r line; do + case "$line" in + "$key"*) echo "${line##$key}";; + esac + done + else + for x do + while read -r line; do + case "$line" in + "$key"*) echo "${line##$key}";; + esac + done < "$x" + done + fi +} + +keys_remove() +{ + local key x line found + + while read -r line; do + found=false + for key do + case "$line" in + "$key"*|"#"*|" "*|" "*|"") found=true;; + esac + $found && break + done + $found || echo "$line" + done +} + +local_nameservers="127.* 0.0.0.0 255.255.255.255 ::1" + +# Support original resolvconf configuration layout +# as well as the openresolv config file +if [ -f "$SYSCONFDIR"/resolvconf.conf ]; then + . "$SYSCONFDIR"/resolvconf.conf +elif [ -d "$SYSCONFDIR"/resolvconf ]; then + SYSCONFDIR="$SYSCONFDIR/resolvconf/resolv.conf.d" + base="$SYSCONFDIR/resolv.conf.d/base" + if [ -f "$base" ]; then + prepend_nameservers="$(key_get_value "nameserver " "$base")" + domain="$(key_get_value "domain " "$base")" + prepend_search="$(key_get_value "search " "$base")" + resolv_conf_options="$(key_get_value "options " "$base")" + resolv_conf_sortlist="$(key_get_value "sortlist " "$base")" + fi + if [ -f "$SYSCONFDIR"/resolv.conf.d/head ]; then + resolv_conf_head="$(cat "${SYSCONFDIR}"/resolv.conf.d/head)" + fi + if [ -f "$SYSCONFDIR"/resolv.conf.d/tail ]; then + resolv_conf_tail="$(cat "$SYSCONFDIR"/resolv.conf.d/tail)" + fi +fi +: ${resolv_conf:=/etc/resolv.conf} +: ${libc_service:=nscd} +: ${list_resolv:=@SBINDIR@/resolvconf -l} +if [ "${resolv_conf_head-x}" = x -a -f "$SYSCONFDIR"/resolv.conf.head ]; then + resolv_conf_head="$(cat "${SYSCONFDIR}"/resolv.conf.head)" +fi +if [ "${resolv_conf_tail-x}" = x -a -f "$SYSCONFDIR"/resolv.conf.tail ]; then + resolv_conf_tail="$(cat "$SYSCONFDIR"/resolv.conf.tail)" +fi + +backup=true +signature="# Generated by resolvconf" + +uniqify() +{ + local result= + while [ -n "$1" ]; do + case " $result " in + *" $1 "*);; + *) result="$result $1";; + esac + shift + done + echo "${result# *}" +} + +case "${resolv_conf_passthrough:-NO}" in +[Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1) + backup=false + newest= + for conf in "$IFACEDIR"/*; do + if [ -z "$newest" -o "$conf" -nt "$newest" ]; then + newest="$conf" + fi + done + [ -z "$newest" ] && exit 0 + newconf="$(cat "$newest")$NL" + ;; +/dev/null|[Nn][Uu][Ll][Ll]) + : ${resolv_conf_local_only:=NO} + if [ "$local_nameservers" = "127.* 0.0.0.0 255.255.255.255 ::1" ]; then + local_nameservers= + fi + # Need to overwrite our variables. + eval "$(@SBINDIR@/resolvconf -V)" + ;; + +*) + [ -z "$RESOLVCONF" ] && eval "$(@SBINDIR@/resolvconf -v)" + ;; +esac +case "${resolv_conf_passthrough:-NO}" in +[Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1) ;; +*) + : ${domain:=$DOMAIN} + newsearch="$(uniqify $prepend_search $SEARCH $append_search)" + NS="$LOCALNAMESERVERS $NAMESERVERS" + newns= + gotlocal=false + for n in $(uniqify $prepend_nameservers $NS $append_nameservers); do + add=true + islocal=false + for l in $local_nameservers; do + case "$n" in + $l) islocal=true; gotlocal=true; break;; + esac + done + if ! $islocal; then + case "${resolv_conf_local_only:-YES}" in + [Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1) + $gotlocal && add=false;; + esac + fi + $add && newns="$newns $n" + done + + # Hold our new resolv.conf in a variable to save on temporary files + newconf="$signature$NL" + if [ -n "$resolv_conf_head" ]; then + newconf="$newconf$resolv_conf_head$NL" + fi + + [ -n "$domain" ] && newconf="${newconf}domain $domain$NL" + if [ -n "$newsearch" -a "$newsearch" != "$domain" ]; then + newconf="${newconf}search $newsearch$NL" + fi + for n in $newns; do + newconf="${newconf}nameserver $n$NL" + done + + # Now add anything we don't care about such as sortlist and options + stuff="$($list_resolv | keys_remove nameserver domain search)" + if [ -n "$stuff" ]; then + newconf="$newconf$stuff$NL" + fi + + # Append any user defined ones + if [ -n "$resolv_conf_options" ]; then + newconf="${newconf}options $resolv_conf_options$NL" + fi + if [ -n "$resolv_conf_sortlist" ]; then + newconf="${newconf}sortlist $resolv_conf_sortlist$NL" + fi + + if [ -n "$resolv_conf_tail" ]; then + newconf="$newconf$resolv_conf_tail$NL" + fi + ;; +esac + +# Check if the file has actually changed or not +if [ -e "$resolv_conf" ]; then + [ "$(cat "$resolv_conf")" = "$(printf %s "$newconf")" ] && exit 0 +fi + +# Change is good. +# If the old file does not have our signature, back it up. +# If the new file just has our signature, restore the backup. +if $backup; then + if [ "$newconf" = "$signature$NL" ]; then + if [ -e "$resolv_conf.bak" ]; then + newconf="$(cat "$resolv_conf.bak")$NL" + fi + elif [ -e "$resolv_conf" ]; then + read line <"$resolv_conf" + if [ "$line" != "$signature" ]; then + cp "$resolv_conf" "$resolv_conf.bak" + fi + fi +fi + +# Create our resolv.conf now +(umask 022; printf %s "$newconf" >"$resolv_conf") +if [ -n "$libc_restart" ]; then + eval $libc_restart +elif [ -n "$RESTARTCMD" ]; then + set -- ${libc_service} + eval $RESTARTCMD +else + @SBINDIR@/resolvconf -r ${libc_service} +fi + +retval=0 +# Notify users of the resolver +for script in "$LIBEXECDIR"/libc.d/*; do + if [ -f "$script" ]; then + if [ -x "$script" ]; then + "$script" "$@" + else + (. "$script") + fi + retval=$(($retval + $?)) + fi +done +exit $retval Copied: vendor/openresolv/3.9.0/pdns_recursor.in (from r312970, vendor/openresolv/dist/pdns_recursor.in) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/openresolv/3.9.0/pdns_recursor.in Sun Jan 29 22:38:13 2017 (r312971, copy of r312970, vendor/openresolv/dist/pdns_recursor.in) @@ -0,0 +1,78 @@ +#!/bin/sh +# Copyright (c) 2009-2011 Roy Marples +# All rights reserved + +# PowerDNS Recursor subscriber for resolvconf + +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * 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 COPYRIGHT HOLDERS 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 COPYRIGHT +# OWNER 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. + +[ -f "@SYSCONFDIR@"/resolvconf.conf ] || exit 0 +. "@SYSCONFDIR@/resolvconf.conf" || exit 1 +[ -z "$pdns_zones" ] && exit 0 +[ -z "$RESOLVCONF" ] && eval "$(@SBINDIR@/resolvconf -v)" +NL=" +" + +: ${pdns_service:=pdns_recursor} + +newzones= + +# pds_recursor does not present support global forward servers, which +# does limit it's usefulness somewhat. +# If it did, the below code can be enabled, or something like it. +#for n in $NAMESERVERS; do +# newzones="$newzones${newzones:+,}$n" +#done +#[ -n "$newzones" ] && newzones=".=$newzones$NL" + +for d in $DOMAINS; do + newns= + ns="${d#*:}" + while [ -n "$ns" ]; do + newns="$newns${newns:+,}${ns%%,*}" + [ "$ns" = "${ns#*,}" ] && break + ns="${ns#*,}" + done + [ -n "$newns" ] && newzones="$newzones${d%%:*}=$newns$NL" +done + +# Try to ensure that config dirs exist +if type config_mkdirs >/dev/null 2>&1; then + config_mkdirs "$pdnsd_zones" +else + @SBINDIR@/resolvconf -D "$pdnsd_zones" +fi + +if [ ! -f "$pdns_zones" ] || \ + [ "$(cat "$pdns_zones")" != "$(printf %s "$newzones")" ] +then + printf %s "$newzones" >"$pdns_zones" + if [ -n "$pdns_restart" ]; then + eval $pdns_restart + elif [ -n "$RESTARTCMD" ]; then + set -- ${pdns_service} + eval $RESTARTCMD + else + @SBINDIR@/resolvconf -r ${pdns_service} + fi +fi Copied: vendor/openresolv/3.9.0/resolvconf.8.in (from r312970, vendor/openresolv/dist/resolvconf.8.in) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/openresolv/3.9.0/resolvconf.8.in Sun Jan 29 22:38:13 2017 (r312971, copy of r312970, vendor/openresolv/dist/resolvconf.8.in) @@ -0,0 +1,323 @@ +.\" Copyright (c) 2007-2016 Roy Marples +.\" All rights reserved +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.Dd November 29, 2016 +.Dt RESOLVCONF 8 +.Os +.Sh NAME +.Nm resolvconf +.Nd a framework for managing multiple DNS configurations +.Sh SYNOPSIS +.Nm +.Fl I +.Nm +.Op Fl m Ar metric +.Op Fl p +.Op Fl x +.Fl a Ar interface Ns Op Ar .protocol +.No < Ns Pa file +.Nm +.Op Fl f +.Fl d Ar interface Ns Op Ar .protocol +.Nm +.Op Fl x +.Fl il Ar pattern +.Nm +.Fl u +.Nm +.Fl Fl version +.Sh DESCRIPTION +.Nm +manages +.Xr resolv.conf 5 +files from multiple sources, such as DHCP and VPN clients. +Traditionally, the host runs just one client and that updates +.Pa /etc/resolv.conf . +More modern systems frequently have wired and wireless interfaces and there is +no guarantee both are on the same network. +With the advent of VPN and other +types of networking daemons, many things now contend for the contents of +.Pa /etc/resolv.conf . +.Pp +.Nm +solves this by letting the daemon send their +.Xr resolv.conf 5 +file to +.Nm +via +.Xr stdin 4 +with the argument +.Fl a Ar interface Ns Op Ar .protocol +instead of the filesystem. +.Nm +then updates +.Pa /etc/resolv.conf +as it thinks best. +When a local resolver other than libc is installed, such as +.Xr dnsmasq 8 +or +.Xr named 8 , +then +.Nm +will supply files that the resolver should be configured to include. +.Pp +.Nm +assumes it has a job to do. +In some situations +.Nm +needs to act as a deterrent to writing to +.Pa /etc/resolv.conf . +Where this file cannot be made immutable or you just need to toggle this +behaviour, +.Nm +can be disabled by adding +.Sy resolvconf Ns = Ns NO +to +.Xr resolvconf.conf 5 . +.Pp +.Nm +can mark an interfaces +.Pa resolv.conf +as private. +This means that the name servers listed in that +.Pa resolv.conf +are only used for queries against the domain/search listed in the same file. +This only works when a local resolver other than libc is installed. +See +.Xr resolvconf.conf 5 +for how to configure +.Nm +to use a local name server and how to remove the private marking. +.Pp +.Nm +can mark an interfaces +.Pa resolv.conf +as exclusive. +Only the latest exclusive interface is used for processing, otherwise all are. +.Pp +When an interface goes down, it should then call +.Nm +with +.Fl d Ar interface.* +arguments to delete the +.Pa resolv.conf +file(s) for all the +.Ar protocols +on the +.Ar interface . +.Pp +Here are some options for the above commands:- +.Bl -tag -width pattern_opt +.It Fl f +Ignore non existent interfaces. +Only really useful for deleting interfaces. +.It Fl m Ar metric +Set the metric of the interface when adding it, default of 0. +Lower metrics take precedence. +This affects the default order of interfaces when listed. +.It Fl p +Marks the interface +.Pa resolv.conf +as private. +.It Fl x +Mark the interface +.Pa resolv.conf +as exclusive when adding, otherwise only use the latest exclusive interface. +.El +.Pp +.Nm +has some more commands for general usage:- +.Bl -tag -width pattern_opt +.It Fl i Ar pattern +List the interfaces and protocols, optionally matching +.Ar pattern , +we have +.Pa resolv.conf +files for. +.It Fl l Ar pattern +List the +.Pa resolv.conf +files we have. +If +.Ar pattern +is specified then we list the files for the interfaces and protocols +that match it. +.It Fl u +Force +.Nm +to update all its subscribers. +.Nm +does not update the subscribers when adding a resolv.conf that matches +what it already has for that interface. +.It Fl Fl version +Echo the resolvconf version to +.Em stdout . +.El +.Pp +.Nm +also has some commands designed to be used by it's subscribers and +system startup:- +.Bl -tag -width pattern_opt +.It Fl I +Initialise the state directory +.Pa @VARDIR@ . +This only needs to be called if the initial system boot sequence does not +automatically clean it out; for example the state directory is moved +somewhere other than +.Pa /var/run . +If used, it should only be called once as early in the system boot sequence +as possible and before +.Nm +is used to add interfaces. +.It Fl R +Echo the command used to restart a service. +.It Fl r Ar service +If the +.Ar service +is running then restart it. +If the service does not exist or is not running then zero is returned, +otherwise the result of restarting the service. +.It Fl v +Echo variables DOMAINS, SEARCH and NAMESERVERS so that the subscriber can +configure the resolver easily. +.It Fl V +Same as +.Fl v +except that only the information configured in +.Xr resolvconf.conf 5 +is set. +.El +.Sh INTERFACE ORDERING +For +.Nm +to work effectively, it has to process the resolv.confs for the interfaces +in the correct order. +.Nm +first processes interfaces from the +.Sy interface_order +list, then interfaces without a metic and that match the +.Sy dynamic_order +list, then interfaces with a metric in order and finally the rest in +the operating systems lexical order. +See +.Xr resolvconf.conf 5 +for details on these lists. +.Sh PROTOCOLS +Here are some suggested protocol tags to use for each +.Pa resolv.conf +file registered on an +.Ar interface Ns No :- +.Bl -tag -width pattern_opt +.It dhcp +Dynamic Host Configuration Protocol. +Initial versions of +.Nm +did not recommend a +.Ar protocol +tag be appended to the +.Ar interface +name. +When the protocol is absent, it is assumed to be the DHCP protocol. +.It ppp +Point-to-Point Protocol. +.It ra +IPv6 Router Advertisement. +.It dhcp6 +Dynamic Host Configuration Protocol, version 6. +.El +.Sh IMPLEMENTATION NOTES +If a subscriber has the executable bit then it is executed otherwise it is +assumed to be a shell script and sourced into the current environment in a +subshell. +This is done so that subscribers can remain fast, but are also not limited +to the shell language. +.Pp +Portable subscribers should not use anything outside of +.Pa /bin +and +.Pa /sbin +because +.Pa /usr +and others may not be available when booting. +Also, it would be unwise to assume any shell specific features. +.Sh ENVIRONMENT +.Bl -ohang +.It Va IF_METRIC +If the +.Fl m +option is not present then we use +.Va IF_METRIC +for the metric. +.It Va IF_PRIVATE +Marks the interface +.Pa resolv.conf +as private. +.It Va IF_EXCLUSIVE +Marks the interface +.Pa resolv.conf +as exclusive. +.El +.Sh FILES +.Bl -ohang +.It Pa /etc/resolv.conf.bak +Backup file of the original resolv.conf. +.It Pa @SYSCONFDIR@/resolvconf.conf +Configuration file for +.Nm . +.It Pa @LIBEXECDIR@ +Directory of subscribers which are run every time +.Nm +adds, deletes or updates. +.It Pa @LIBEXECDIR@/libc.d +Directory of subscribers which are run after the libc subscriber is run. +.It Pa @VARDIR@ +State directory for +.Nm . +.El +.Sh SEE ALSO +.Xr resolver 3 , +.Xr stdin 4 , +.Xr resolv.conf 5 , +.Xr resolvconf.conf 5 +.Sh HISTORY +This implementation of +.Nm +is called openresolv and is fully command line compatible with Debian's +resolvconf, as written by Thomas Hood. +.Sh AUTHORS +.An Roy Marples Aq Mt roy@marples.name +.Sh BUGS +Please report them to +.Lk http://roy.marples.name/projects/openresolv +.Pp +.Nm +does not validate any of the files given to it. +.Pp +When running a local resolver other than libc, you will need to configure it +to include files that +.Nm +will generate. +You should consult +.Xr resolvconf.conf 5 +for instructions on how to configure your resolver. Copied: vendor/openresolv/3.9.0/resolvconf.conf.5.in (from r312970, vendor/openresolv/dist/resolvconf.conf.5.in) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/openresolv/3.9.0/resolvconf.conf.5.in Sun Jan 29 22:38:13 2017 (r312971, copy of r312970, vendor/openresolv/dist/resolvconf.conf.5.in) @@ -0,0 +1,331 @@ +.\" Copyright (c) 2009-2016 Roy Marples +.\" All rights reserved +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.Dd December 29, 2016 +.Dt RESOLVCONF.CONF 5 +.Os +.Sh NAME +.Nm resolvconf.conf +.Nd resolvconf configuration file +.Sh DESCRIPTION +.Nm +is the configuration file for +.Xr resolvconf 8 . +The +.Nm +file is a shell script that is sourced by +.Xr resolvconf 8 , +meaning that +.Nm +must contain valid shell commands. +Listed below are the standard +.Nm +variables that may be set. +If the values contain whitespace, wildcards or other special shell characters, +ensure they are quoted and escaped correctly. +See the +.Sy replace +variable for an example on quoting. +.Pp +After updating this file, you may wish to run +.Nm resolvconf -u +to apply the new configuration. +.Pp +When a dynamically generated list is appended or prepended to, the whole +is made unique where left-most wins. +.Sh RESOLVCONF OPTIONS +.Bl -tag -width indent +.It Sy resolvconf +Set to NO to disable +.Nm resolvconf +from running any subscribers. +Defaults to YES. +.It Sy interface_order +These interfaces will always be processed first. +If unset, defaults to the following:- +.D1 lo lo[0-9]* +.It Sy dynamic_order +These interfaces will be processed next, unless they have a metric. +If unset, defaults to the following:- +.D1 tap[0-9]* tun[0-9]* vpn vpn[0-9]* ppp[0-9]* ippp[0-9]* +.It Sy inclusive_interfaces *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-vendor@freebsd.org Mon Jan 30 21:06:09 2017 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A9EB1CC8CB6; Mon, 30 Jan 2017 21:06:09 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 483CC1E78; Mon, 30 Jan 2017 21:06:09 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0UL68OM066909; Mon, 30 Jan 2017 21:06:08 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0UL67k1066897; Mon, 30 Jan 2017 21:06:07 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201701302106.v0UL67k1066897@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Mon, 30 Jan 2017 21:06:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r312996 - in vendor/NetBSD/libedit: 2016-02-27 dist dist/TEST dist/readline X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Jan 2017 21:06:09 -0000 Author: pfg Date: Mon Jan 30 21:06:07 2017 New Revision: 312996 URL: https://svnweb.freebsd.org/changeset/base/312996 Log: Import libedit 2016-02-27 This basically reverts r296500: there are many changes in the latest version and this intermediate step lets us save all the work done for the previous update. Obtained from: NetBSD Added: vendor/NetBSD/libedit/2016-02-27/ - copied from r296499, vendor/NetBSD/libedit/2016-02-27/ Modified: vendor/NetBSD/libedit/dist/Makefile vendor/NetBSD/libedit/dist/TEST/Makefile vendor/NetBSD/libedit/dist/TEST/rl1.c vendor/NetBSD/libedit/dist/TEST/tc1.c vendor/NetBSD/libedit/dist/TEST/wtc1.c vendor/NetBSD/libedit/dist/chared.c vendor/NetBSD/libedit/dist/chared.h vendor/NetBSD/libedit/dist/chartype.c vendor/NetBSD/libedit/dist/chartype.h vendor/NetBSD/libedit/dist/common.c vendor/NetBSD/libedit/dist/config.h vendor/NetBSD/libedit/dist/editline.3 vendor/NetBSD/libedit/dist/el.c vendor/NetBSD/libedit/dist/el.h vendor/NetBSD/libedit/dist/eln.c vendor/NetBSD/libedit/dist/emacs.c vendor/NetBSD/libedit/dist/filecomplete.c vendor/NetBSD/libedit/dist/hist.c vendor/NetBSD/libedit/dist/hist.h vendor/NetBSD/libedit/dist/histedit.h vendor/NetBSD/libedit/dist/history.c vendor/NetBSD/libedit/dist/keymacro.c vendor/NetBSD/libedit/dist/makelist vendor/NetBSD/libedit/dist/map.c vendor/NetBSD/libedit/dist/parse.c vendor/NetBSD/libedit/dist/prompt.c vendor/NetBSD/libedit/dist/prompt.h vendor/NetBSD/libedit/dist/read.c vendor/NetBSD/libedit/dist/read.h vendor/NetBSD/libedit/dist/readline.c vendor/NetBSD/libedit/dist/readline/Makefile vendor/NetBSD/libedit/dist/readline/readline.h vendor/NetBSD/libedit/dist/refresh.c vendor/NetBSD/libedit/dist/refresh.h vendor/NetBSD/libedit/dist/search.c vendor/NetBSD/libedit/dist/search.h vendor/NetBSD/libedit/dist/sig.c vendor/NetBSD/libedit/dist/sig.h vendor/NetBSD/libedit/dist/sys.h vendor/NetBSD/libedit/dist/terminal.c vendor/NetBSD/libedit/dist/terminal.h vendor/NetBSD/libedit/dist/tokenizer.c vendor/NetBSD/libedit/dist/tty.c vendor/NetBSD/libedit/dist/tty.h vendor/NetBSD/libedit/dist/vi.c Modified: vendor/NetBSD/libedit/dist/Makefile ============================================================================== --- vendor/NetBSD/libedit/dist/Makefile Mon Jan 30 19:49:08 2017 (r312995) +++ vendor/NetBSD/libedit/dist/Makefile Mon Jan 30 21:06:07 2017 (r312996) @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.53 2015/01/29 20:30:02 joerg Exp $ +# $NetBSD: Makefile,v 1.55 2016/02/24 14:25:38 christos Exp $ # @(#)Makefile 8.1 (Berkeley) 6/4/93 USE_SHLIBDIR= yes @@ -15,7 +15,7 @@ COPTS+= -Wunused-parameter CWARNFLAGS.gcc+= -Wconversion CWARNFLAGS.clang+= -Wno-cast-qual -OSRCS= chared.c common.c el.c emacs.c fcns.c filecomplete.c help.c \ +OSRCS= chared.c common.c el.c eln.c emacs.c fcns.c filecomplete.c help.c \ hist.c keymacro.c map.c chartype.c \ parse.c prompt.c read.c refresh.c search.c sig.c terminal.c tty.c vi.c @@ -37,7 +37,6 @@ MLINKS= editline.3 el_init.3 editline.3 SRCS= editline.c readline.c tokenizer.c history.c .if ${WIDECHAR} == "yes" -OSRCS += eln.c SRCS += tokenizern.c historyn.c CLEANFILES+=tokenizern.c.tmp tokenizern.c historyn.c.tmp historyn.c CPPFLAGS+=-DWIDECHAR @@ -52,12 +51,12 @@ CLEANFILES+=editline.c CLEANFILES+=common.h.tmp editline.c.tmp emacs.h.tmp fcns.c.tmp fcns.h.tmp CLEANFILES+=help.c.tmp help.h.tmp vi.h.tmp tc1.o tc1 CLEANFILES+=tokenizern.c.tmp tokenizern.c tokenizerw.c.tmp tokenizerw.c -CPPFLAGS+=-I. -I${LIBEDITDIR} +CPPFLAGS+=-I. -I${LIBEDITDIR} CPPFLAGS+=-I. -I${.CURDIR} CPPFLAGS+=#-DDEBUG_TTY -DDEBUG_KEY -DDEBUG_READ -DDEBUG -DDEBUG_REFRESH CPPFLAGS+=#-DDEBUG_PASTE -DDEBUG_EDIT -AHDR=vi.h emacs.h common.h +AHDR=vi.h emacs.h common.h ASRC=${LIBEDITDIR}/vi.c ${LIBEDITDIR}/emacs.c ${LIBEDITDIR}/common.c DPSRCS+= ${AHDR} fcns.h help.h fcns.c help.c @@ -120,7 +119,7 @@ historyn.c: makelist Makefile tc1.o: ${LIBEDITDIR}/TEST/tc1.c -tc1: libedit.a tc1.o +tc1: libedit.a tc1.o ${_MKTARGET_LINK} ${CC} ${LDFLAGS} ${.ALLSRC} -o ${.TARGET} libedit.a ${LDADD} -ltermlib Modified: vendor/NetBSD/libedit/dist/TEST/Makefile ============================================================================== --- vendor/NetBSD/libedit/dist/TEST/Makefile Mon Jan 30 19:49:08 2017 (r312995) +++ vendor/NetBSD/libedit/dist/TEST/Makefile Mon Jan 30 21:06:07 2017 (r312996) @@ -1,4 +1,6 @@ -# $NetBSD: Makefile,v 1.5 2010/02/03 15:34:43 roy Exp $ +# $NetBSD: Makefile,v 1.6 2016/02/15 21:38:07 christos Exp $ + +WIDECHAR ?= yes NOMAN=1 PROG=wtc1 @@ -6,6 +8,10 @@ CPPFLAGS=-I${.CURDIR}/.. LDADD+=-ledit -ltermlib DPADD+=${LIBEDIT} ${LIBTERMLIB} +.if "${WIDECHAR}" == "yes" +CPPFLAGS+=-DWIDECHAR +.endif + .ifdef DEBUG CPPFLAGS+=-DDEBUG .endif Modified: vendor/NetBSD/libedit/dist/TEST/rl1.c ============================================================================== --- vendor/NetBSD/libedit/dist/TEST/rl1.c Mon Jan 30 19:49:08 2017 (r312995) +++ vendor/NetBSD/libedit/dist/TEST/rl1.c Mon Jan 30 21:06:07 2017 (r312996) @@ -1,4 +1,4 @@ -/* $NetBSD: rl1.c,v 1.2 2016/02/29 00:54:19 christos Exp $ */ +/* $NetBSD: rl1.c,v 1.1 2010/09/16 20:08:51 christos Exp $ */ /*- * Copyright (c) 2010 The NetBSD Foundation, Inc. @@ -15,6 +15,13 @@ * 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. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the NetBSD + * Foundation, Inc. and its contributors. + * 4. Neither the name of The NetBSD Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED @@ -31,7 +38,7 @@ #include #if !defined(lint) -__RCSID("$NetBSD: rl1.c,v 1.2 2016/02/29 00:54:19 christos Exp $"); +__RCSID("$NetBSD: rl1.c,v 1.1 2010/09/16 20:08:51 christos Exp $"); #endif /* not lint */ /* Modified: vendor/NetBSD/libedit/dist/TEST/tc1.c ============================================================================== --- vendor/NetBSD/libedit/dist/TEST/tc1.c Mon Jan 30 19:49:08 2017 (r312995) +++ vendor/NetBSD/libedit/dist/TEST/tc1.c Mon Jan 30 21:06:07 2017 (r312996) @@ -1,4 +1,4 @@ -/* $NetBSD: tc1.c,v 1.6 2014/06/18 20:12:15 christos Exp $ */ +/* $NetBSD: tc1.c,v 1.7 2016/02/17 19:47:49 christos Exp $ */ /*- * Copyright (c) 1992, 1993 @@ -42,22 +42,22 @@ __COPYRIGHT("@(#) Copyright (c) 1992, 19 #if 0 static char sccsid[] = "@(#)test.c 8.1 (Berkeley) 6/4/93"; #else -__RCSID("$NetBSD: tc1.c,v 1.6 2014/06/18 20:12:15 christos Exp $"); +__RCSID("$NetBSD: tc1.c,v 1.7 2016/02/17 19:47:49 christos Exp $"); #endif #endif /* not lint && not SCCSID */ /* * test.c: A little test program */ -#include -#include -#include #include #include -#include -#include #include #include +#include +#include +#include +#include +#include #include "histedit.h" @@ -157,7 +157,7 @@ main(int argc, char *argv[]) /* Add a user-defined function */ el_set(el, EL_ADDFN, "ed-complete", "Complete argument", complete); - /* Bind tab to it */ + /* Bind tab to it */ el_set(el, EL_BIND, "^I", "ed-complete", NULL); /* Modified: vendor/NetBSD/libedit/dist/TEST/wtc1.c ============================================================================== --- vendor/NetBSD/libedit/dist/TEST/wtc1.c Mon Jan 30 19:49:08 2017 (r312995) +++ vendor/NetBSD/libedit/dist/TEST/wtc1.c Mon Jan 30 21:06:07 2017 (r312996) @@ -1,14 +1,14 @@ -#include -#include -#include #include -#include #include -#include -#include #include +#include #include #include +#include +#include +#include +#include +#include #include "../histedit.h" Modified: vendor/NetBSD/libedit/dist/chared.c ============================================================================== --- vendor/NetBSD/libedit/dist/chared.c Mon Jan 30 19:49:08 2017 (r312995) +++ vendor/NetBSD/libedit/dist/chared.c Mon Jan 30 21:06:07 2017 (r312996) @@ -1,4 +1,4 @@ -/* $NetBSD: chared.c,v 1.40 2014/06/18 18:12:28 christos Exp $ */ +/* $NetBSD: chared.c,v 1.49 2016/02/24 14:29:21 christos Exp $ */ /*- * Copyright (c) 1992, 1993 @@ -37,15 +37,19 @@ #if 0 static char sccsid[] = "@(#)chared.c 8.1 (Berkeley) 6/4/93"; #else -__RCSID("$NetBSD: chared.c,v 1.40 2014/06/18 18:12:28 christos Exp $"); +__RCSID("$NetBSD: chared.c,v 1.49 2016/02/24 14:29:21 christos Exp $"); #endif #endif /* not lint && not SCCSID */ /* * chared.c: Character editor utilities */ +#include #include +#include + #include "el.h" +#include "common.h" private void ch__clearmacro (EditLine *); @@ -199,7 +203,7 @@ c_delbefore1(EditLine *el) * Return if p is part of a word according to emacs */ protected int -ce__isword(Int p) +ce__isword(wint_t p) { return Isalnum(p) || Strchr(STR("*?_-.[]~="), p) != NULL; } @@ -209,7 +213,7 @@ ce__isword(Int p) * Return if p is part of a word according to vi */ protected int -cv__isword(Int p) +cv__isword(wint_t p) { if (Isalnum(p) || p == '_') return 1; @@ -223,7 +227,7 @@ cv__isword(Int p) * Return if p is part of a big word according to vi */ protected int -cv__isWord(Int p) +cv__isWord(wint_t p) { return !Isspace(p); } @@ -233,7 +237,7 @@ cv__isWord(Int p) * Find the previous word */ protected Char * -c__prev_word(Char *p, Char *low, int n, int (*wtest)(Int)) +c__prev_word(Char *p, Char *low, int n, int (*wtest)(wint_t)) { p--; @@ -257,7 +261,7 @@ c__prev_word(Char *p, Char *low, int n, * Find the next word */ protected Char * -c__next_word(Char *p, Char *high, int n, int (*wtest)(Int)) +c__next_word(Char *p, Char *high, int n, int (*wtest)(wint_t)) { while (n--) { while ((p < high) && !(*wtest)(*p)) @@ -275,7 +279,7 @@ c__next_word(Char *p, Char *high, int n, * Find the next word vi style */ protected Char * -cv_next_word(EditLine *el, Char *p, Char *high, int n, int (*wtest)(Int)) +cv_next_word(EditLine *el, Char *p, Char *high, int n, int (*wtest)(wint_t)) { int test; @@ -304,7 +308,7 @@ cv_next_word(EditLine *el, Char *p, Char * Find the previous word vi style */ protected Char * -cv_prev_word(Char *p, Char *low, int n, int (*wtest)(Int)) +cv_prev_word(Char *p, Char *low, int n, int (*wtest)(wint_t)) { int test; @@ -368,7 +372,7 @@ cv_delfini(EditLine *el) * Go to the end of this word according to vi */ protected Char * -cv__endword(Char *p, Char *high, int n, int (*wtest)(Int)) +cv__endword(Char *p, Char *high, int n, int (*wtest)(wint_t)) { int test; @@ -522,7 +526,7 @@ ch_enlargebufs(EditLine *el, size_t addl /* zero the newly added memory, leave old data in */ (void) memset(&newbuffer[sz], 0, (newsz - sz) * sizeof(*newbuffer)); - + oldbuf = el->el_line.buffer; el->el_line.buffer = newbuffer; @@ -571,7 +575,7 @@ ch_enlargebufs(EditLine *el, size_t addl el->el_chared.c_redo.lim = newbuffer + (el->el_chared.c_redo.lim - el->el_chared.c_redo.buf); el->el_chared.c_redo.buf = newbuffer; - + if (!hist_enlargebuf(el, sz, newsz)) return 0; @@ -671,9 +675,9 @@ out: protected int c_gets(EditLine *el, Char *buf, const Char *prompt) { - Char ch; + wchar_t wch; ssize_t len; - Char *cp = el->el_line.buffer; + Char *cp = el->el_line.buffer, ch; if (prompt) { len = (ssize_t)Strlen(prompt); @@ -688,26 +692,28 @@ c_gets(EditLine *el, Char *buf, const Ch el->el_line.lastchar = cp + 1; re_refresh(el); - if (FUN(el,getc)(el, &ch) != 1) { + if (el_wgetc(el, &wch) != 1) { ed_end_of_file(el, 0); len = -1; break; } + ch = (Char)wch; switch (ch) { - case 0010: /* Delete and backspace */ + case L'\b': /* Delete and backspace */ case 0177: if (len == 0) { len = -1; break; } + len--; cp--; continue; case 0033: /* ESC */ - case '\r': /* Newline */ - case '\n': + case L'\r': /* Newline */ + case L'\n': buf[len] = ch; break; Modified: vendor/NetBSD/libedit/dist/chared.h ============================================================================== --- vendor/NetBSD/libedit/dist/chared.h Mon Jan 30 19:49:08 2017 (r312995) +++ vendor/NetBSD/libedit/dist/chared.h Mon Jan 30 21:06:07 2017 (r312996) @@ -1,4 +1,4 @@ -/* $NetBSD: chared.h,v 1.22 2014/06/18 18:12:28 christos Exp $ */ +/* $NetBSD: chared.h,v 1.27 2016/02/16 22:53:14 christos Exp $ */ /*- * Copyright (c) 1992, 1993 @@ -40,11 +40,6 @@ #ifndef _h_el_chared #define _h_el_chared -#include -#include - -#include "histedit.h" - #define EL_MAXMACRO 10 /* @@ -139,24 +134,18 @@ typedef struct el_chared_t { #define MODE_REPLACE 1 #define MODE_REPLACE_1 2 -#include "common.h" -#include "vi.h" -#include "emacs.h" -#include "search.h" -#include "fcns.h" - -protected int cv__isword(Int); -protected int cv__isWord(Int); +protected int cv__isword(wint_t); +protected int cv__isWord(wint_t); protected void cv_delfini(EditLine *); -protected Char *cv__endword(Char *, Char *, int, int (*)(Int)); -protected int ce__isword(Int); +protected Char *cv__endword(Char *, Char *, int, int (*)(wint_t)); +protected int ce__isword(wint_t); protected void cv_undo(EditLine *); protected void cv_yank(EditLine *, const Char *, int); -protected Char *cv_next_word(EditLine*, Char *, Char *, int, int (*)(Int)); -protected Char *cv_prev_word(Char *, Char *, int, int (*)(Int)); -protected Char *c__next_word(Char *, Char *, int, int (*)(Int)); -protected Char *c__prev_word(Char *, Char *, int, int (*)(Int)); +protected Char *cv_next_word(EditLine*, Char *, Char *, int, int (*)(wint_t)); +protected Char *cv_prev_word(Char *, Char *, int, int (*)(wint_t)); +protected Char *c__next_word(Char *, Char *, int, int (*)(wint_t)); +protected Char *c__prev_word(Char *, Char *, int, int (*)(wint_t)); protected void c_insert(EditLine *, int); protected void c_delbefore(EditLine *, int); protected void c_delbefore1(EditLine *); Modified: vendor/NetBSD/libedit/dist/chartype.c ============================================================================== --- vendor/NetBSD/libedit/dist/chartype.c Mon Jan 30 19:49:08 2017 (r312995) +++ vendor/NetBSD/libedit/dist/chartype.c Mon Jan 30 21:06:07 2017 (r312996) @@ -1,4 +1,4 @@ -/* $NetBSD: chartype.c,v 1.12 2015/02/22 02:16:19 christos Exp $ */ +/* $NetBSD: chartype.c,v 1.23 2016/02/28 23:02:24 christos Exp $ */ /*- * Copyright (c) 2009 The NetBSD Foundation, Inc. @@ -12,13 +12,6 @@ * 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. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the NetBSD - * Foundation, Inc. and its contributors. - * 4. Neither the name of The NetBSD Foundation nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED @@ -38,10 +31,14 @@ */ #include "config.h" #if !defined(lint) && !defined(SCCSID) -__RCSID("$NetBSD: chartype.c,v 1.12 2015/02/22 02:16:19 christos Exp $"); +__RCSID("$NetBSD: chartype.c,v 1.23 2016/02/28 23:02:24 christos Exp $"); #endif /* not lint && not SCCSID */ -#include "el.h" + +#include #include +#include + +#include "el.h" #define CT_BUFSIZ ((size_t)1024) @@ -72,7 +69,7 @@ ct_conv_wbuff_resize(ct_buffer_t *conv, { void *p; - if (wsize <= conv->wsize) + if (wsize <= conv->wsize) return 0; conv->wsize = wsize; @@ -210,6 +207,28 @@ ct_encode_char(char *dst, size_t len, Ch } return l; } + +size_t +ct_mbrtowc(wchar_t *wc, const char *s, size_t n) +{ + mbstate_t mbs; + /* This only works because UTF-8 is stateless */ + memset(&mbs, 0, sizeof(mbs)); + return mbrtowc(wc, s, n, &mbs); +} + +#else + +size_t +ct_mbrtowc(wchar_t *wc, const char *s, size_t n) + if (s == NULL) + return 0; + if (n == 0) + return (size_t)-2; + if (wc != NULL) + *wc = *s; + return *s != '\0'; +} #endif protected const Char * @@ -333,7 +352,7 @@ ct_visual_char(Char *dst, size_t len, Ch return c > 0xffff ? 8 : 7; #else *dst++ = '\\'; -#define tooctaldigit(v) ((v) + '0') +#define tooctaldigit(v) (Char)((v) + '0') *dst++ = tooctaldigit(((unsigned int) c >> 6) & 0x7); *dst++ = tooctaldigit(((unsigned int) c >> 3) & 0x7); *dst++ = tooctaldigit(((unsigned int) c ) & 0x7); Modified: vendor/NetBSD/libedit/dist/chartype.h ============================================================================== --- vendor/NetBSD/libedit/dist/chartype.h Mon Jan 30 19:49:08 2017 (r312995) +++ vendor/NetBSD/libedit/dist/chartype.h Mon Jan 30 21:06:07 2017 (r312996) @@ -1,4 +1,4 @@ -/* $NetBSD: chartype.h,v 1.15 2015/05/17 13:14:41 christos Exp $ */ +/* $NetBSD: chartype.h,v 1.23 2016/02/24 17:20:01 christos Exp $ */ /*- * Copyright (c) 2009 The NetBSD Foundation, Inc. @@ -37,7 +37,6 @@ #define _h_chartype_f - #ifdef WIDECHAR /* Ideally we should also test the value of the define to see if it @@ -60,21 +59,18 @@ #warning Build environment does not support non-BMP characters #endif -#define ct_mbtowc mbtowc -#define ct_mbtowc_reset mbtowc(0,0,(size_t)0) +#define ct_wctob wctob #define ct_wctomb wctomb #define ct_wctomb_reset wctomb(0,0) #define ct_wcstombs wcstombs #define ct_mbstowcs mbstowcs #define Char wchar_t -#define Int wint_t #define FUN(prefix,rest) prefix ## _w ## rest #define FUNW(type) type ## _w #define TYPE(type) type ## W -#define FCHAR "%lc" #define FSTR "%ls" -#define STR(x) L ## x +#define STR(x) L ## x #define UC(c) c #define Isalpha(x) iswalpha(x) #define Isalnum(x) iswalnum(x) @@ -115,21 +111,18 @@ Width(wchar_t c) #else /* NARROW */ -#define ct_mbtowc error -#define ct_mbtowc_reset +#define ct_wctob(w) ((int)(w)) #define ct_wctomb error -#define ct_wctomb_reset +#define ct_wctomb_reset #define ct_wcstombs(a, b, c) (strncpy(a, b, c), strlen(a)) #define ct_mbstowcs(a, b, c) (strncpy(a, b, c), strlen(a)) #define Char char -#define Int int #define FUN(prefix,rest) prefix ## _ ## rest #define FUNW(type) type #define TYPE(type) type -#define FCHAR "%c" #define FSTR "%s" -#define STR(x) x +#define STR(x) x #define UC(c) (unsigned char)(c) #define Isalpha(x) isalpha((unsigned char)x) @@ -218,7 +211,7 @@ protected size_t ct_enc_width(Char); #define VISUAL_WIDTH_MAX ((size_t)8) /* The terminal is thought of in terms of X columns by Y lines. In the cases - * where a wide character takes up more than one column, the adjacent + * where a wide character takes up more than one column, the adjacent * occupied column entries will contain this faux character. */ #define MB_FILL_CHAR ((Char)-1) @@ -250,5 +243,7 @@ protected const Char *ct_visual_string(c protected int ct_chr_class(Char c); #endif +size_t ct_mbrtowc(wchar_t *, const char *, size_t); + #endif /* _chartype_f */ Modified: vendor/NetBSD/libedit/dist/common.c ============================================================================== --- vendor/NetBSD/libedit/dist/common.c Mon Jan 30 19:49:08 2017 (r312995) +++ vendor/NetBSD/libedit/dist/common.c Mon Jan 30 21:06:07 2017 (r312996) @@ -1,4 +1,4 @@ -/* $NetBSD: common.c,v 1.29 2012/03/24 20:08:43 christos Exp $ */ +/* $NetBSD: common.c,v 1.39 2016/02/24 14:25:38 christos Exp $ */ /*- * Copyright (c) 1992, 1993 @@ -37,14 +37,20 @@ #if 0 static char sccsid[] = "@(#)common.c 8.1 (Berkeley) 6/4/93"; #else -__RCSID("$NetBSD: common.c,v 1.29 2012/03/24 20:08:43 christos Exp $"); +__RCSID("$NetBSD: common.c,v 1.39 2016/02/24 14:25:38 christos Exp $"); #endif #endif /* not lint && not SCCSID */ /* * common.c: Common Editor functions */ +#include +#include + #include "el.h" +#include "common.h" +#include "parse.h" +#include "vi.h" /* ed_end_of_file(): * Indicate end of file @@ -52,7 +58,7 @@ __RCSID("$NetBSD: common.c,v 1.29 2012/0 */ protected el_action_t /*ARGSUSED*/ -ed_end_of_file(EditLine *el, Int c __attribute__((__unused__))) +ed_end_of_file(EditLine *el, wint_t c __attribute__((__unused__))) { re_goto_bottom(el); @@ -66,7 +72,7 @@ ed_end_of_file(EditLine *el, Int c __att * Insert a character [bound to all insert keys] */ protected el_action_t -ed_insert(EditLine *el, Int c) +ed_insert(EditLine *el, wint_t c) { int count = el->el_state.argument; @@ -85,14 +91,14 @@ ed_insert(EditLine *el, Int c) || el->el_line.cursor >= el->el_line.lastchar) c_insert(el, 1); - *el->el_line.cursor++ = c; + *el->el_line.cursor++ = (Char)c; re_fastaddc(el); /* fast refresh for one char. */ } else { if (el->el_state.inputmode != MODE_REPLACE_1) c_insert(el, el->el_state.argument); while (count-- && el->el_line.cursor < el->el_line.lastchar) - *el->el_line.cursor++ = c; + *el->el_line.cursor++ = (Char)c; re_refresh(el); } @@ -109,7 +115,7 @@ ed_insert(EditLine *el, Int c) */ protected el_action_t /*ARGSUSED*/ -ed_delete_prev_word(EditLine *el, Int c __attribute__((__unused__))) +ed_delete_prev_word(EditLine *el, wint_t c __attribute__((__unused__))) { Char *cp, *p, *kp; @@ -137,7 +143,7 @@ ed_delete_prev_word(EditLine *el, Int c */ protected el_action_t /*ARGSUSED*/ -ed_delete_next_char(EditLine *el, Int c __attribute__((__unused__))) +ed_delete_next_char(EditLine *el, wint_t c __attribute__((__unused__))) { #ifdef DEBUG_EDIT #define EL el->el_line @@ -184,7 +190,7 @@ ed_delete_next_char(EditLine *el, Int c */ protected el_action_t /*ARGSUSED*/ -ed_kill_line(EditLine *el, Int c __attribute__((__unused__))) +ed_kill_line(EditLine *el, wint_t c __attribute__((__unused__))) { Char *kp, *cp; @@ -205,7 +211,7 @@ ed_kill_line(EditLine *el, Int c __attri */ protected el_action_t /*ARGSUSED*/ -ed_move_to_end(EditLine *el, Int c __attribute__((__unused__))) +ed_move_to_end(EditLine *el, wint_t c __attribute__((__unused__))) { el->el_line.cursor = el->el_line.lastchar; @@ -228,7 +234,7 @@ ed_move_to_end(EditLine *el, Int c __att */ protected el_action_t /*ARGSUSED*/ -ed_move_to_beg(EditLine *el, Int c __attribute__((__unused__))) +ed_move_to_beg(EditLine *el, wint_t c __attribute__((__unused__))) { el->el_line.cursor = el->el_line.buffer; @@ -251,7 +257,7 @@ ed_move_to_beg(EditLine *el, Int c __att * [^T] [^T] */ protected el_action_t -ed_transpose_chars(EditLine *el, Int c) +ed_transpose_chars(EditLine *el, wint_t c) { if (el->el_line.cursor < el->el_line.lastchar) { @@ -264,7 +270,7 @@ ed_transpose_chars(EditLine *el, Int c) /* must have at least two chars entered */ c = el->el_line.cursor[-2]; el->el_line.cursor[-2] = el->el_line.cursor[-1]; - el->el_line.cursor[-1] = c; + el->el_line.cursor[-1] = (Char)c; return CC_REFRESH; } else return CC_ERROR; @@ -277,7 +283,7 @@ ed_transpose_chars(EditLine *el, Int c) */ protected el_action_t /*ARGSUSED*/ -ed_next_char(EditLine *el, Int c __attribute__((__unused__))) +ed_next_char(EditLine *el, wint_t c __attribute__((__unused__))) { Char *lim = el->el_line.lastchar; @@ -306,7 +312,7 @@ ed_next_char(EditLine *el, Int c __attri */ protected el_action_t /*ARGSUSED*/ -ed_prev_word(EditLine *el, Int c __attribute__((__unused__))) +ed_prev_word(EditLine *el, wint_t c __attribute__((__unused__))) { if (el->el_line.cursor == el->el_line.buffer) @@ -332,7 +338,7 @@ ed_prev_word(EditLine *el, Int c __attri */ protected el_action_t /*ARGSUSED*/ -ed_prev_char(EditLine *el, Int c __attribute__((__unused__))) +ed_prev_char(EditLine *el, wint_t c __attribute__((__unused__))) { if (el->el_line.cursor > el->el_line.buffer) { @@ -356,14 +362,12 @@ ed_prev_char(EditLine *el, Int c __attri * [^V] [^V] */ protected el_action_t -ed_quoted_insert(EditLine *el, Int c) +ed_quoted_insert(EditLine *el, wint_t c) { int num; - Char tc; tty_quotemode(el); - num = FUN(el,getc)(el, &tc); - c = tc; + num = el_wgetc(el, &c); tty_noquotemode(el); if (num == 1) return ed_insert(el, c); @@ -376,7 +380,7 @@ ed_quoted_insert(EditLine *el, Int c) * Adds to argument or enters a digit */ protected el_action_t -ed_digit(EditLine *el, Int c) +ed_digit(EditLine *el, wint_t c) { if (!Isdigit(c)) @@ -404,7 +408,7 @@ ed_digit(EditLine *el, Int c) * For ESC-n */ protected el_action_t -ed_argument_digit(EditLine *el, Int c) +ed_argument_digit(EditLine *el, wint_t c) { if (!Isdigit(c)) @@ -430,7 +434,7 @@ ed_argument_digit(EditLine *el, Int c) protected el_action_t /*ARGSUSED*/ ed_unassigned(EditLine *el __attribute__((__unused__)), - Int c __attribute__((__unused__))) + wint_t c __attribute__((__unused__))) { return CC_ERROR; @@ -447,8 +451,8 @@ ed_unassigned(EditLine *el __attribute__ */ protected el_action_t /*ARGSUSED*/ -ed_tty_sigint(EditLine *el __attribute__((__unused__)), - Int c __attribute__((__unused__))) +ed_tty_sigint(EditLine *el __attribute__((__unused__)), + wint_t c __attribute__((__unused__))) { return CC_NORM; @@ -461,8 +465,8 @@ ed_tty_sigint(EditLine *el __attribute__ */ protected el_action_t /*ARGSUSED*/ -ed_tty_dsusp(EditLine *el __attribute__((__unused__)), - Int c __attribute__((__unused__))) +ed_tty_dsusp(EditLine *el __attribute__((__unused__)), + wint_t c __attribute__((__unused__))) { return CC_NORM; @@ -475,8 +479,8 @@ ed_tty_dsusp(EditLine *el __attribute__( */ protected el_action_t /*ARGSUSED*/ -ed_tty_flush_output(EditLine *el __attribute__((__unused__)), - Int c __attribute__((__unused__))) +ed_tty_flush_output(EditLine *el __attribute__((__unused__)), + wint_t c __attribute__((__unused__))) { return CC_NORM; @@ -489,8 +493,8 @@ ed_tty_flush_output(EditLine *el __attri */ protected el_action_t /*ARGSUSED*/ -ed_tty_sigquit(EditLine *el __attribute__((__unused__)), - Int c __attribute__((__unused__))) +ed_tty_sigquit(EditLine *el __attribute__((__unused__)), + wint_t c __attribute__((__unused__))) { return CC_NORM; @@ -503,8 +507,8 @@ ed_tty_sigquit(EditLine *el __attribute_ */ protected el_action_t /*ARGSUSED*/ -ed_tty_sigtstp(EditLine *el __attribute__((__unused__)), - Int c __attribute__((__unused__))) +ed_tty_sigtstp(EditLine *el __attribute__((__unused__)), + wint_t c __attribute__((__unused__))) { return CC_NORM; @@ -517,8 +521,8 @@ ed_tty_sigtstp(EditLine *el __attribute_ */ protected el_action_t /*ARGSUSED*/ -ed_tty_stop_output(EditLine *el __attribute__((__unused__)), - Int c __attribute__((__unused__))) +ed_tty_stop_output(EditLine *el __attribute__((__unused__)), + wint_t c __attribute__((__unused__))) { return CC_NORM; @@ -531,8 +535,8 @@ ed_tty_stop_output(EditLine *el __attrib */ protected el_action_t /*ARGSUSED*/ -ed_tty_start_output(EditLine *el __attribute__((__unused__)), - Int c __attribute__((__unused__))) +ed_tty_start_output(EditLine *el __attribute__((__unused__)), + wint_t c __attribute__((__unused__))) { return CC_NORM; @@ -545,7 +549,7 @@ ed_tty_start_output(EditLine *el __attri */ protected el_action_t /*ARGSUSED*/ -ed_newline(EditLine *el, Int c __attribute__((__unused__))) +ed_newline(EditLine *el, wint_t c __attribute__((__unused__))) { re_goto_bottom(el); @@ -561,7 +565,7 @@ ed_newline(EditLine *el, Int c __attribu */ protected el_action_t /*ARGSUSED*/ -ed_delete_prev_char(EditLine *el, Int c __attribute__((__unused__))) +ed_delete_prev_char(EditLine *el, wint_t c __attribute__((__unused__))) { if (el->el_line.cursor <= el->el_line.buffer) @@ -581,7 +585,7 @@ ed_delete_prev_char(EditLine *el, Int c */ protected el_action_t /*ARGSUSED*/ -ed_clear_screen(EditLine *el, Int c __attribute__((__unused__))) +ed_clear_screen(EditLine *el, wint_t c __attribute__((__unused__))) { terminal_clear_screen(el); /* clear the whole real screen */ @@ -596,8 +600,8 @@ ed_clear_screen(EditLine *el, Int c __at */ protected el_action_t /*ARGSUSED*/ -ed_redisplay(EditLine *el __attribute__((__unused__)), - Int c __attribute__((__unused__))) +ed_redisplay(EditLine *el __attribute__((__unused__)), + wint_t c __attribute__((__unused__))) { return CC_REDISPLAY; @@ -610,7 +614,7 @@ ed_redisplay(EditLine *el __attribute__( */ protected el_action_t /*ARGSUSED*/ -ed_start_over(EditLine *el, Int c __attribute__((__unused__))) +ed_start_over(EditLine *el, wint_t c __attribute__((__unused__))) { ch_reset(el, 0); @@ -624,8 +628,8 @@ ed_start_over(EditLine *el, Int c __attr */ protected el_action_t /*ARGSUSED*/ -ed_sequence_lead_in(EditLine *el __attribute__((__unused__)), - Int c __attribute__((__unused__))) +ed_sequence_lead_in(EditLine *el __attribute__((__unused__)), + wint_t c __attribute__((__unused__))) { return CC_NORM; @@ -638,7 +642,7 @@ ed_sequence_lead_in(EditLine *el __attri */ protected el_action_t /*ARGSUSED*/ -ed_prev_history(EditLine *el, Int c __attribute__((__unused__))) +ed_prev_history(EditLine *el, wint_t c __attribute__((__unused__))) { char beep = 0; int sv_event = el->el_history.eventno; @@ -658,7 +662,6 @@ ed_prev_history(EditLine *el, Int c __at if (hist_get(el) == CC_ERROR) { if (el->el_map.type == MAP_VI) { el->el_history.eventno = sv_event; - } beep = 1; /* el->el_history.eventno was fixed by first call */ @@ -676,7 +679,7 @@ ed_prev_history(EditLine *el, Int c __at */ protected el_action_t /*ARGSUSED*/ -ed_next_history(EditLine *el, Int c __attribute__((__unused__))) +ed_next_history(EditLine *el, wint_t c __attribute__((__unused__))) { el_action_t beep = CC_REFRESH, rval; @@ -703,11 +706,11 @@ ed_next_history(EditLine *el, Int c __at */ protected el_action_t /*ARGSUSED*/ -ed_search_prev_history(EditLine *el, Int c __attribute__((__unused__))) +ed_search_prev_history(EditLine *el, wint_t c __attribute__((__unused__))) { const Char *hp; int h; - bool_t found = 0; + int found = 0; el->el_chared.c_vcmd.action = NOP; el->el_chared.c_undo.len = -1; @@ -746,7 +749,7 @@ ed_search_prev_history(EditLine *el, Int (el->el_line.lastchar - el->el_line.buffer)) || hp[el->el_line.lastchar - el->el_line.buffer]) && c_hmatch(el, hp)) { - found++; + found = 1; break; } h++; @@ -771,11 +774,11 @@ ed_search_prev_history(EditLine *el, Int */ protected el_action_t /*ARGSUSED*/ -ed_search_next_history(EditLine *el, Int c __attribute__((__unused__))) +ed_search_next_history(EditLine *el, wint_t c __attribute__((__unused__))) { const Char *hp; int h; - bool_t found = 0; + int found = 0; el->el_chared.c_vcmd.action = NOP; el->el_chared.c_undo.len = -1; @@ -825,7 +828,7 @@ ed_search_next_history(EditLine *el, Int */ protected el_action_t /*ARGSUSED*/ -ed_prev_line(EditLine *el, Int c __attribute__((__unused__))) +ed_prev_line(EditLine *el, wint_t c __attribute__((__unused__))) { Char *ptr; int nchars = c_hpos(el); @@ -868,7 +871,7 @@ ed_prev_line(EditLine *el, Int c __attri */ protected el_action_t /*ARGSUSED*/ -ed_next_line(EditLine *el, Int c __attribute__((__unused__))) +ed_next_line(EditLine *el, wint_t c __attribute__((__unused__))) { Char *ptr; int nchars = c_hpos(el); @@ -902,7 +905,7 @@ ed_next_line(EditLine *el, Int c __attri */ protected el_action_t /*ARGSUSED*/ -ed_command(EditLine *el, Int c __attribute__((__unused__))) +ed_command(EditLine *el, wint_t c __attribute__((__unused__))) { Char tmpbuf[EL_BUFSIZ]; int tmplen; Modified: vendor/NetBSD/libedit/dist/config.h ============================================================================== --- vendor/NetBSD/libedit/dist/config.h Mon Jan 30 19:49:08 2017 (r312995) +++ vendor/NetBSD/libedit/dist/config.h Mon Jan 30 21:06:07 2017 (r312996) @@ -20,8 +20,8 @@ /* Define to 1 if you have the header file. */ #define HAVE_FCNTL_H 1 -/* Define to 1 if you have the `fgetln' function. */ -#define HAVE_FGETLN 1 +/* Define to 1 if you have the `getline' function. */ +#define HAVE_GETLINE 1 /* Define to 1 if you have the `fork' function. */ #define HAVE_FORK 1 @@ -187,9 +187,6 @@ /* Define to 1 if you have the `vis' function. */ #define HAVE_VIS 1 -/* Define to 1 if you have the `wcsdup' function. */ -#define HAVE_WCSDUP 1 - /* Define to 1 if `fork' works. */ *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-vendor@freebsd.org Mon Jan 30 22:35:44 2017 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A0CC0CC8E21; Mon, 30 Jan 2017 22:35:44 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 69A64B9; Mon, 30 Jan 2017 22:35:44 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0UMZhSE006216; Mon, 30 Jan 2017 22:35:43 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0UMZglh006208; Mon, 30 Jan 2017 22:35:42 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201701302235.v0UMZglh006208@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Mon, 30 Jan 2017 22:35:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r312999 - in vendor/NetBSD/libedit/dist: . TEST X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Jan 2017 22:35:44 -0000 Author: pfg Date: Mon Jan 30 22:35:42 2017 New Revision: 312999 URL: https://svnweb.freebsd.org/changeset/base/312999 Log: Import libedit 2016-03-21 Obtained from: NetBSD Modified: vendor/NetBSD/libedit/dist/Makefile vendor/NetBSD/libedit/dist/TEST/rl1.c vendor/NetBSD/libedit/dist/chartype.h vendor/NetBSD/libedit/dist/common.c vendor/NetBSD/libedit/dist/read.c vendor/NetBSD/libedit/dist/refresh.c vendor/NetBSD/libedit/dist/terminal.c vendor/NetBSD/libedit/dist/tty.c vendor/NetBSD/libedit/dist/vi.c Modified: vendor/NetBSD/libedit/dist/Makefile ============================================================================== --- vendor/NetBSD/libedit/dist/Makefile Mon Jan 30 22:29:21 2017 (r312998) +++ vendor/NetBSD/libedit/dist/Makefile Mon Jan 30 22:35:42 2017 (r312999) @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.55 2016/02/24 14:25:38 christos Exp $ +# $NetBSD: Makefile,v 1.56 2016/03/02 19:24:20 christos Exp $ # @(#)Makefile 8.1 (Berkeley) 6/4/93 USE_SHLIBDIR= yes @@ -53,8 +53,8 @@ CLEANFILES+=help.c.tmp help.h.tmp vi.h.t CLEANFILES+=tokenizern.c.tmp tokenizern.c tokenizerw.c.tmp tokenizerw.c CPPFLAGS+=-I. -I${LIBEDITDIR} CPPFLAGS+=-I. -I${.CURDIR} -CPPFLAGS+=#-DDEBUG_TTY -DDEBUG_KEY -DDEBUG_READ -DDEBUG -DDEBUG_REFRESH -CPPFLAGS+=#-DDEBUG_PASTE -DDEBUG_EDIT +#CPPFLAGS+=-DDEBUG_TTY -DDEBUG_KEY -DDEBUG_READ -DDEBUG -DDEBUG_REFRESH +#CPPFLAGS+=-DDEBUG_PASTE -DDEBUG_EDIT AHDR=vi.h emacs.h common.h ASRC=${LIBEDITDIR}/vi.c ${LIBEDITDIR}/emacs.c ${LIBEDITDIR}/common.c Modified: vendor/NetBSD/libedit/dist/TEST/rl1.c ============================================================================== --- vendor/NetBSD/libedit/dist/TEST/rl1.c Mon Jan 30 22:29:21 2017 (r312998) +++ vendor/NetBSD/libedit/dist/TEST/rl1.c Mon Jan 30 22:35:42 2017 (r312999) @@ -1,4 +1,4 @@ -/* $NetBSD: rl1.c,v 1.1 2010/09/16 20:08:51 christos Exp $ */ +/* $NetBSD: rl1.c,v 1.2 2016/02/29 00:54:19 christos Exp $ */ /*- * Copyright (c) 2010 The NetBSD Foundation, Inc. @@ -15,13 +15,6 @@ * 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. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the NetBSD - * Foundation, Inc. and its contributors. - * 4. Neither the name of The NetBSD Foundation nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED @@ -38,7 +31,7 @@ #include #if !defined(lint) -__RCSID("$NetBSD: rl1.c,v 1.1 2010/09/16 20:08:51 christos Exp $"); +__RCSID("$NetBSD: rl1.c,v 1.2 2016/02/29 00:54:19 christos Exp $"); #endif /* not lint */ /* Modified: vendor/NetBSD/libedit/dist/chartype.h ============================================================================== --- vendor/NetBSD/libedit/dist/chartype.h Mon Jan 30 22:29:21 2017 (r312998) +++ vendor/NetBSD/libedit/dist/chartype.h Mon Jan 30 22:35:42 2017 (r312999) @@ -1,4 +1,4 @@ -/* $NetBSD: chartype.h,v 1.23 2016/02/24 17:20:01 christos Exp $ */ +/* $NetBSD: chartype.h,v 1.25 2016/03/07 00:05:20 christos Exp $ */ /*- * Copyright (c) 2009 The NetBSD Foundation, Inc. @@ -12,13 +12,6 @@ * 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. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the NetBSD - * Foundation, Inc. and its contributors. - * 4. Neither the name of The NetBSD Foundation nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED @@ -70,6 +63,7 @@ #define FUNW(type) type ## _w #define TYPE(type) type ## W #define FSTR "%ls" +#define FSTARSTR "%.*ls" #define STR(x) L ## x #define UC(c) c #define Isalpha(x) iswalpha(x) @@ -122,6 +116,7 @@ Width(wchar_t c) #define FUNW(type) type #define TYPE(type) type #define FSTR "%s" +#define FSTARSTR "%.*s" #define STR(x) x #define UC(c) (unsigned char)(c) Modified: vendor/NetBSD/libedit/dist/common.c ============================================================================== --- vendor/NetBSD/libedit/dist/common.c Mon Jan 30 22:29:21 2017 (r312998) +++ vendor/NetBSD/libedit/dist/common.c Mon Jan 30 22:35:42 2017 (r312999) @@ -1,4 +1,4 @@ -/* $NetBSD: common.c,v 1.39 2016/02/24 14:25:38 christos Exp $ */ +/* $NetBSD: common.c,v 1.40 2016/03/02 19:24:20 christos Exp $ */ /*- * Copyright (c) 1992, 1993 @@ -37,7 +37,7 @@ #if 0 static char sccsid[] = "@(#)common.c 8.1 (Berkeley) 6/4/93"; #else -__RCSID("$NetBSD: common.c,v 1.39 2016/02/24 14:25:38 christos Exp $"); +__RCSID("$NetBSD: common.c,v 1.40 2016/03/02 19:24:20 christos Exp $"); #endif #endif /* not lint && not SCCSID */ @@ -147,8 +147,9 @@ ed_delete_next_char(EditLine *el, wint_t { #ifdef DEBUG_EDIT #define EL el->el_line - (void) fprintf(el->el_errlfile, - "\nD(b: %x(%s) c: %x(%s) last: %x(%s) limit: %x(%s)\n", + (void) fprintf(el->el_errfile, + "\nD(b: %p(" FSTR ") c: %p(" FSTR ") last: %p(" FSTR + ") limit: %p(" FSTR ")\n", EL.buffer, EL.buffer, EL.cursor, EL.cursor, EL.lastchar, EL.lastchar, EL.limit, EL.limit); #endif Modified: vendor/NetBSD/libedit/dist/read.c ============================================================================== --- vendor/NetBSD/libedit/dist/read.c Mon Jan 30 22:29:21 2017 (r312998) +++ vendor/NetBSD/libedit/dist/read.c Mon Jan 30 22:35:42 2017 (r312999) @@ -1,4 +1,4 @@ -/* $NetBSD: read.c,v 1.85 2016/02/24 17:20:01 christos Exp $ */ +/* $NetBSD: read.c,v 1.86 2016/03/02 19:24:20 christos Exp $ */ /*- * Copyright (c) 1992, 1993 @@ -37,7 +37,7 @@ #if 0 static char sccsid[] = "@(#)read.c 8.1 (Berkeley) 6/4/93"; #else -__RCSID("$NetBSD: read.c,v 1.85 2016/02/24 17:20:01 christos Exp $"); +__RCSID("$NetBSD: read.c,v 1.86 2016/03/02 19:24:20 christos Exp $"); #endif #endif /* not lint && not SCCSID */ @@ -615,7 +615,7 @@ FUN(el,gets)(EditLine *el, int *nread) break; if (b->name) (void) fprintf(el->el_errfile, - "Executing %s\n", b->name); + "Executing " FSTR "\n", b->name); else (void) fprintf(el->el_errfile, "Error command = %d\n", cmdnum); Modified: vendor/NetBSD/libedit/dist/refresh.c ============================================================================== --- vendor/NetBSD/libedit/dist/refresh.c Mon Jan 30 22:29:21 2017 (r312998) +++ vendor/NetBSD/libedit/dist/refresh.c Mon Jan 30 22:35:42 2017 (r312999) @@ -1,4 +1,4 @@ -/* $NetBSD: refresh.c,v 1.44 2016/02/17 19:47:49 christos Exp $ */ +/* $NetBSD: refresh.c,v 1.45 2016/03/02 19:24:20 christos Exp $ */ /*- * Copyright (c) 1992, 1993 @@ -37,7 +37,7 @@ #if 0 static char sccsid[] = "@(#)refresh.c 8.1 (Berkeley) 6/4/93"; #else -__RCSID("$NetBSD: refresh.c,v 1.44 2016/02/17 19:47:49 christos Exp $"); +__RCSID("$NetBSD: refresh.c,v 1.45 2016/03/02 19:24:20 christos Exp $"); #endif #endif /* not lint && not SCCSID */ @@ -61,7 +61,7 @@ private void re__strncopy(Char *, Char * private void re__copy_and_pad(Char *, const Char *, size_t); #ifdef DEBUG_REFRESH -private void re_printstr(EditLine *, const char *, char *, char *); +private void re_printstr(EditLine *, const char *, Char *, Char *); #define __F el->el_errfile #define ELRE_ASSERT(a, b, c) do \ if (/*CONSTCOND*/ a) { \ @@ -75,7 +75,7 @@ private void re_printstr(EditLine *, con * Print a string on the debugging pty */ private void -re_printstr(EditLine *el, const char *str, char *f, char *t) +re_printstr(EditLine *el, const char *str, Char *f, Char *t) { ELRE_DEBUG(1, (__F, "%s:\"", str)); @@ -205,7 +205,7 @@ re_refresh(EditLine *el) size_t termsz; #endif - ELRE_DEBUG(1, (__F, "el->el_line.buffer = :%s:\r\n", + ELRE_DEBUG(1, (__F, "el->el_line.buffer = :" FSTR ":\r\n", el->el_line.buffer)); /* reset the Drawing cursor */ @@ -293,7 +293,8 @@ re_refresh(EditLine *el) ELRE_DEBUG(1, (__F, "term.h=%d vcur.h=%d vcur.v=%d vdisplay[0]=\r\n:%80.80s:\r\n", el->el_terminal.t_size.h, el->el_refresh.r_cursor.h, - el->el_refresh.r_cursor.v, ct_encode_string(el->el_vdisplay[0]))); + el->el_refresh.r_cursor.v, ct_encode_string(el->el_vdisplay[0], + &el->el_scratch))); ELRE_DEBUG(1, (__F, "updating %d lines.\r\n", el->el_refresh.r_newcv)); for (i = 0; i <= el->el_refresh.r_newcv; i++) { @@ -321,7 +322,7 @@ re_refresh(EditLine *el) /* This Strlen should be safe even with MB_FILL_CHARs */ terminal_clear_EOL(el, (int) Strlen(el->el_display[i])); #ifdef DEBUG_REFRESH - terminal_overwrite(el, "C\b", (size_t)2); + terminal_overwrite(el, STR("C\b"), 2); #endif /* DEBUG_REFRESH */ el->el_display[i][0] = '\0'; } @@ -368,8 +369,9 @@ re_insert(EditLine *el __attribute__((__ ELRE_DEBUG(1, (__F, "re_insert() starting: %d at %d max %d, d == \"%s\"\n", - num, dat, dlen, ct_encode_string(d))); - ELRE_DEBUG(1, (__F, "s == \"%s\"\n", ct_encode_string(s))); + num, dat, dlen, ct_encode_string(d, &el->el_scratch))); + ELRE_DEBUG(1, (__F, "s == \"%s\"\n", ct_encode_string(s, + &el->el_scratch))); /* open up the space for num chars */ if (num > 0) { @@ -382,8 +384,9 @@ re_insert(EditLine *el __attribute__((__ ELRE_DEBUG(1, (__F, "re_insert() after insert: %d at %d max %d, d == \"%s\"\n", - num, dat, dlen, ct_encode_string(d))); - ELRE_DEBUG(1, (__F, "s == \"%s\"\n", ct_encode_string(s))); + num, dat, dlen, ct_encode_string(d, &el->el_scratch))); + ELRE_DEBUG(1, (__F, "s == \"%s\"\n", ct_encode_string(s, + &el->el_scratch))); /* copy the characters */ for (a = d + dat; (a < d + dlen) && (num > 0); num--) @@ -418,7 +421,7 @@ re_delete(EditLine *el __attribute__((__ } ELRE_DEBUG(1, (__F, "re_delete() starting: %d at %d max %d, d == \"%s\"\n", - num, dat, dlen, ct_encode_string(d))); + num, dat, dlen, ct_encode_string(d, &el->el_scratch))); /* open up the space for num chars */ if (num > 0) { @@ -430,7 +433,7 @@ re_delete(EditLine *el __attribute__((__ } ELRE_DEBUG(1, (__F, "re_delete() after delete: %d at %d max %d, d == \"%s\"\n", - num, dat, dlen, ct_encode_string(d))); + num, dat, dlen, ct_encode_string(d, &el->el_scratch))); } @@ -688,9 +691,9 @@ re_update_line(EditLine *el, Char *old, sx = (int)((nls - nse) - (ols - ose)); ELRE_DEBUG(1, (__F, "fx %d, sx %d\n", fx, sx)); - ELRE_DEBUG(1, (__F, "ofd %d, osb %d, ose %d, ols %d, oe %d\n", + ELRE_DEBUG(1, (__F, "ofd %td, osb %td, ose %td, ols %td, oe %td\n", ofd - old, osb - old, ose - old, ols - old, oe - old)); - ELRE_DEBUG(1, (__F, "nfd %d, nsb %d, nse %d, nls %d, ne %d\n", + ELRE_DEBUG(1, (__F, "nfd %td, nsb %td, nse %td, nls %td, ne %td\n", nfd - new, nsb - new, nse - new, nls - new, ne - new)); ELRE_DEBUG(1, (__F, "xxx-xxx:\"00000000001111111111222222222233333333334\"\r\n")); @@ -764,7 +767,7 @@ re_update_line(EditLine *el, Char *old, if ((nsb != nfd) && fx > 0 && ((p - old) + fx <= el->el_terminal.t_size.h)) { ELRE_DEBUG(1, - (__F, "first diff insert at %d...\r\n", nfd - new)); + (__F, "first diff insert at %td...\r\n", nfd - new)); /* * Move to the first char to insert, where the first diff is. */ @@ -803,7 +806,7 @@ re_update_line(EditLine *el, Char *old, } } else if (fx < 0) { ELRE_DEBUG(1, - (__F, "first diff delete at %d...\r\n", ofd - old)); + (__F, "first diff delete at %td...\r\n", ofd - old)); /* * move to the first char to delete where the first diff is */ @@ -850,7 +853,7 @@ re_update_line(EditLine *el, Char *old, if (sx < 0 && (ose - old) + fx < el->el_terminal.t_size.h) { ELRE_DEBUG(1, (__F, - "second diff delete at %d...\r\n", (ose - old) + fx)); + "second diff delete at %td...\r\n", (ose - old) + fx)); /* * Check if we have stuff to delete */ @@ -888,7 +891,7 @@ re_update_line(EditLine *el, Char *old, * if we have a first insert AND WE HAVEN'T ALREADY DONE IT... */ if ((nsb != nfd) && (osb - ofd) <= (nsb - nfd) && (fx == 0)) { - ELRE_DEBUG(1, (__F, "late first diff insert at %d...\r\n", + ELRE_DEBUG(1, (__F, "late first diff insert at %td...\r\n", nfd - new)); terminal_move_to_char(el, (int)(nfd - new)); Modified: vendor/NetBSD/libedit/dist/terminal.c ============================================================================== --- vendor/NetBSD/libedit/dist/terminal.c Mon Jan 30 22:29:21 2017 (r312998) +++ vendor/NetBSD/libedit/dist/terminal.c Mon Jan 30 22:35:42 2017 (r312999) @@ -1,4 +1,4 @@ -/* $NetBSD: terminal.c,v 1.22 2016/02/17 19:47:49 christos Exp $ */ +/* $NetBSD: terminal.c,v 1.24 2016/03/22 01:38:17 christos Exp $ */ /*- * Copyright (c) 1992, 1993 @@ -37,7 +37,7 @@ #if 0 static char sccsid[] = "@(#)term.c 8.2 (Berkeley) 4/30/95"; #else -__RCSID("$NetBSD: terminal.c,v 1.22 2016/02/17 19:47:49 christos Exp $"); +__RCSID("$NetBSD: terminal.c,v 1.24 2016/03/22 01:38:17 christos Exp $"); #endif #endif /* not lint && not SCCSID */ @@ -378,7 +378,7 @@ terminal_alloc(EditLine *el, const struc */ tlen = 0; for (tmp = tlist; tmp < &tlist[T_str]; tmp++) - if (*tmp != NULL && *tmp != '\0' && *tmp != *str) { + if (*tmp != NULL && **tmp != '\0' && *tmp != *str) { char *ptr; for (ptr = *tmp; *ptr != '\0'; termbuf[tlen++] = *ptr++) @@ -666,7 +666,7 @@ terminal_overwrite(EditLine *el, const C if (n > (size_t)el->el_terminal.t_size.h) { #ifdef DEBUG_SCREEN (void) fprintf(el->el_errfile, - "%s: n is ridiculous: %d\r\n", __func__, n); + "%s: n is ridiculous: %zu\r\n", __func__, n); #endif /* DEBUG_SCREEN */ return; } Modified: vendor/NetBSD/libedit/dist/tty.c ============================================================================== --- vendor/NetBSD/libedit/dist/tty.c Mon Jan 30 22:29:21 2017 (r312998) +++ vendor/NetBSD/libedit/dist/tty.c Mon Jan 30 22:35:42 2017 (r312999) @@ -1,4 +1,4 @@ -/* $NetBSD: tty.c,v 1.58 2016/02/27 18:13:21 christos Exp $ */ +/* $NetBSD: tty.c,v 1.59 2016/03/22 01:34:32 christos Exp $ */ /*- * Copyright (c) 1992, 1993 @@ -37,7 +37,7 @@ #if 0 static char sccsid[] = "@(#)tty.c 8.1 (Berkeley) 6/4/93"; #else -__RCSID("$NetBSD: tty.c,v 1.58 2016/02/27 18:13:21 christos Exp $"); +__RCSID("$NetBSD: tty.c,v 1.59 2016/03/22 01:34:32 christos Exp $"); #endif #endif /* not lint && not SCCSID */ @@ -498,10 +498,12 @@ tty_setup(EditLine *el) { int rst = 1; - el->el_tty.t_initialized = 0; if (el->el_flags & EDIT_DISABLED) return 0; + if (el->el_tty.t_initialized) + return -1; + if (!isatty(el->el_outfd)) { #ifdef DEBUG_TTY (void) fprintf(el->el_errfile, "%s: isatty: %s\n", __func__, @@ -571,6 +573,7 @@ tty_init(EditLine *el) el->el_tty.t_mode = EX_IO; el->el_tty.t_vdisable = _POSIX_VDISABLE; + el->el_tty.t_initialized = 0; (void) memcpy(el->el_tty.t_t, ttyperm, sizeof(ttyperm_t)); (void) memcpy(el->el_tty.t_c, ttychar, sizeof(ttychar_t)); return tty_setup(el); @@ -587,7 +590,7 @@ tty_end(EditLine *el) if (el->el_flags & EDIT_DISABLED) return; - if (el->el_tty.t_initialized) + if (!el->el_tty.t_initialized) return; if (tty_setty(el, TCSAFLUSH, &el->el_tty.t_or) == -1) { Modified: vendor/NetBSD/libedit/dist/vi.c ============================================================================== --- vendor/NetBSD/libedit/dist/vi.c Mon Jan 30 22:29:21 2017 (r312998) +++ vendor/NetBSD/libedit/dist/vi.c Mon Jan 30 22:35:42 2017 (r312999) @@ -1,4 +1,4 @@ -/* $NetBSD: vi.c,v 1.54 2016/02/17 19:47:49 christos Exp $ */ +/* $NetBSD: vi.c,v 1.55 2016/03/02 19:24:20 christos Exp $ */ /*- * Copyright (c) 1992, 1993 @@ -37,7 +37,7 @@ #if 0 static char sccsid[] = "@(#)vi.c 8.1 (Berkeley) 6/4/93"; #else -__RCSID("$NetBSD: vi.c,v 1.54 2016/02/17 19:47:49 christos Exp $"); +__RCSID("$NetBSD: vi.c,v 1.55 2016/03/02 19:24:20 christos Exp $"); #endif #endif /* not lint && not SCCSID */ @@ -103,7 +103,8 @@ cv_paste(EditLine *el, wint_t c) if (k->buf == NULL || len == 0) return CC_ERROR; #ifdef DEBUG_PASTE - (void) fprintf(el->el_errfile, "Paste: \"%.*s\"\n", (int)len, k->buf); + (void) fprintf(el->el_errfile, "Paste: \"" FSTARSTR "\"\n", (int)len, + k->buf); #endif cv_undo(el); From owner-svn-src-vendor@freebsd.org Mon Jan 30 22:40:45 2017 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C9FD2CC8676; Mon, 30 Jan 2017 22:40:45 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 682DEEAF; Mon, 30 Jan 2017 22:40:45 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0UMeil8006458; Mon, 30 Jan 2017 22:40:44 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0UMeiHD006451; Mon, 30 Jan 2017 22:40:44 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201701302240.v0UMeiHD006451@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Mon, 30 Jan 2017 22:40:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r313000 - in vendor/NetBSD/libedit/2016-03-21: . TEST readline X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Jan 2017 22:40:45 -0000 Author: pfg Date: Mon Jan 30 22:40:43 2017 New Revision: 313000 URL: https://svnweb.freebsd.org/changeset/base/313000 Log: Tag import of libedit 2016-03-21. Added: vendor/NetBSD/libedit/2016-03-21/ - copied from r312995, vendor/NetBSD/libedit/dist/ Replaced: vendor/NetBSD/libedit/2016-03-21/Makefile - copied unchanged from r312999, vendor/NetBSD/libedit/dist/Makefile vendor/NetBSD/libedit/2016-03-21/TEST/Makefile - copied unchanged from r312996, vendor/NetBSD/libedit/dist/TEST/Makefile vendor/NetBSD/libedit/2016-03-21/TEST/rl1.c - copied unchanged from r312999, vendor/NetBSD/libedit/dist/TEST/rl1.c vendor/NetBSD/libedit/2016-03-21/TEST/tc1.c - copied unchanged from r312996, vendor/NetBSD/libedit/dist/TEST/tc1.c vendor/NetBSD/libedit/2016-03-21/TEST/wtc1.c - copied unchanged from r312996, vendor/NetBSD/libedit/dist/TEST/wtc1.c vendor/NetBSD/libedit/2016-03-21/chared.c - copied unchanged from r312996, vendor/NetBSD/libedit/dist/chared.c vendor/NetBSD/libedit/2016-03-21/chared.h - copied unchanged from r312996, vendor/NetBSD/libedit/dist/chared.h vendor/NetBSD/libedit/2016-03-21/chartype.c - copied unchanged from r312996, vendor/NetBSD/libedit/dist/chartype.c vendor/NetBSD/libedit/2016-03-21/chartype.h - copied unchanged from r312999, vendor/NetBSD/libedit/dist/chartype.h vendor/NetBSD/libedit/2016-03-21/common.c - copied unchanged from r312999, vendor/NetBSD/libedit/dist/common.c vendor/NetBSD/libedit/2016-03-21/config.h - copied unchanged from r312996, vendor/NetBSD/libedit/dist/config.h vendor/NetBSD/libedit/2016-03-21/editline.3 - copied unchanged from r312996, vendor/NetBSD/libedit/dist/editline.3 vendor/NetBSD/libedit/2016-03-21/el.c - copied unchanged from r312996, vendor/NetBSD/libedit/dist/el.c vendor/NetBSD/libedit/2016-03-21/el.h - copied unchanged from r312996, vendor/NetBSD/libedit/dist/el.h vendor/NetBSD/libedit/2016-03-21/eln.c - copied unchanged from r312996, vendor/NetBSD/libedit/dist/eln.c vendor/NetBSD/libedit/2016-03-21/emacs.c - copied unchanged from r312996, vendor/NetBSD/libedit/dist/emacs.c vendor/NetBSD/libedit/2016-03-21/filecomplete.c - copied unchanged from r312996, vendor/NetBSD/libedit/dist/filecomplete.c vendor/NetBSD/libedit/2016-03-21/hist.c - copied unchanged from r312996, vendor/NetBSD/libedit/dist/hist.c vendor/NetBSD/libedit/2016-03-21/hist.h - copied unchanged from r312996, vendor/NetBSD/libedit/dist/hist.h vendor/NetBSD/libedit/2016-03-21/histedit.h - copied unchanged from r312996, vendor/NetBSD/libedit/dist/histedit.h vendor/NetBSD/libedit/2016-03-21/history.c - copied unchanged from r312996, vendor/NetBSD/libedit/dist/history.c vendor/NetBSD/libedit/2016-03-21/keymacro.c - copied unchanged from r312996, vendor/NetBSD/libedit/dist/keymacro.c vendor/NetBSD/libedit/2016-03-21/makelist - copied unchanged from r312996, vendor/NetBSD/libedit/dist/makelist vendor/NetBSD/libedit/2016-03-21/map.c - copied unchanged from r312996, vendor/NetBSD/libedit/dist/map.c vendor/NetBSD/libedit/2016-03-21/parse.c - copied unchanged from r312996, vendor/NetBSD/libedit/dist/parse.c vendor/NetBSD/libedit/2016-03-21/prompt.c - copied unchanged from r312996, vendor/NetBSD/libedit/dist/prompt.c vendor/NetBSD/libedit/2016-03-21/prompt.h - copied unchanged from r312996, vendor/NetBSD/libedit/dist/prompt.h vendor/NetBSD/libedit/2016-03-21/read.c - copied unchanged from r312999, vendor/NetBSD/libedit/dist/read.c vendor/NetBSD/libedit/2016-03-21/read.h - copied unchanged from r312996, vendor/NetBSD/libedit/dist/read.h vendor/NetBSD/libedit/2016-03-21/readline.c - copied unchanged from r312996, vendor/NetBSD/libedit/dist/readline.c vendor/NetBSD/libedit/2016-03-21/readline/Makefile - copied unchanged from r312996, vendor/NetBSD/libedit/dist/readline/Makefile vendor/NetBSD/libedit/2016-03-21/readline/readline.h - copied unchanged from r312996, vendor/NetBSD/libedit/dist/readline/readline.h vendor/NetBSD/libedit/2016-03-21/refresh.c - copied unchanged from r312999, vendor/NetBSD/libedit/dist/refresh.c vendor/NetBSD/libedit/2016-03-21/refresh.h - copied unchanged from r312996, vendor/NetBSD/libedit/dist/refresh.h vendor/NetBSD/libedit/2016-03-21/search.c - copied unchanged from r312996, vendor/NetBSD/libedit/dist/search.c vendor/NetBSD/libedit/2016-03-21/search.h - copied unchanged from r312996, vendor/NetBSD/libedit/dist/search.h vendor/NetBSD/libedit/2016-03-21/sig.c - copied unchanged from r312996, vendor/NetBSD/libedit/dist/sig.c vendor/NetBSD/libedit/2016-03-21/sig.h - copied unchanged from r312996, vendor/NetBSD/libedit/dist/sig.h vendor/NetBSD/libedit/2016-03-21/sys.h - copied unchanged from r312996, vendor/NetBSD/libedit/dist/sys.h vendor/NetBSD/libedit/2016-03-21/terminal.c - copied unchanged from r312999, vendor/NetBSD/libedit/dist/terminal.c vendor/NetBSD/libedit/2016-03-21/terminal.h - copied unchanged from r312996, vendor/NetBSD/libedit/dist/terminal.h vendor/NetBSD/libedit/2016-03-21/tokenizer.c - copied unchanged from r312996, vendor/NetBSD/libedit/dist/tokenizer.c vendor/NetBSD/libedit/2016-03-21/tty.c - copied unchanged from r312999, vendor/NetBSD/libedit/dist/tty.c vendor/NetBSD/libedit/2016-03-21/tty.h - copied unchanged from r312996, vendor/NetBSD/libedit/dist/tty.h vendor/NetBSD/libedit/2016-03-21/vi.c - copied unchanged from r312999, vendor/NetBSD/libedit/dist/vi.c Copied: vendor/NetBSD/libedit/2016-03-21/Makefile (from r312999, vendor/NetBSD/libedit/dist/Makefile) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/NetBSD/libedit/2016-03-21/Makefile Mon Jan 30 22:40:43 2017 (r313000, copy of r312999, vendor/NetBSD/libedit/dist/Makefile) @@ -0,0 +1,134 @@ +# $NetBSD: Makefile,v 1.56 2016/03/02 19:24:20 christos Exp $ +# @(#)Makefile 8.1 (Berkeley) 6/4/93 + +USE_SHLIBDIR= yes + +WIDECHAR ?= yes +WARNS?= 5 +LIB= edit + +LIBDPLIBS+= terminfo ${.CURDIR}/../libterminfo + +.include "bsd.own.mk" + +COPTS+= -Wunused-parameter +CWARNFLAGS.gcc+= -Wconversion +CWARNFLAGS.clang+= -Wno-cast-qual + +OSRCS= chared.c common.c el.c eln.c emacs.c fcns.c filecomplete.c help.c \ + hist.c keymacro.c map.c chartype.c \ + parse.c prompt.c read.c refresh.c search.c sig.c terminal.c tty.c vi.c + +MAN= editline.3 editrc.5 + +MLINKS= editline.3 el_init.3 editline.3 el_end.3 editline.3 el_reset.3 \ + editline.3 el_gets.3 editline.3 el_getc.3 editline.3 el_push.3 \ + editline.3 el_parse.3 editline.3 el_set.3 editline.3 el_get.3 \ + editline.3 el_source.3 editline.3 el_resize.3 editline.3 el_line.3 \ + editline.3 el_insertstr.3 editline.3 el_deletestr.3 \ + editline.3 history_init.3 editline.3 history_end.3 \ + editline.3 history.3 \ + editline.3 tok_init.3 editline.3 tok_end.3 editline.3 tok_reset.3 \ + editline.3 tok_line.3 editline.3 tok_str.3 + +# For speed and debugging +#SRCS= ${OSRCS} readline.c tokenizer.c history.c +# For protection +SRCS= editline.c readline.c tokenizer.c history.c + +.if ${WIDECHAR} == "yes" +SRCS += tokenizern.c historyn.c +CLEANFILES+=tokenizern.c.tmp tokenizern.c historyn.c.tmp historyn.c +CPPFLAGS+=-DWIDECHAR +.endif + +LIBEDITDIR?=${.CURDIR} + +INCS= histedit.h +INCSDIR=/usr/include + +CLEANFILES+=editline.c +CLEANFILES+=common.h.tmp editline.c.tmp emacs.h.tmp fcns.c.tmp fcns.h.tmp +CLEANFILES+=help.c.tmp help.h.tmp vi.h.tmp tc1.o tc1 +CLEANFILES+=tokenizern.c.tmp tokenizern.c tokenizerw.c.tmp tokenizerw.c +CPPFLAGS+=-I. -I${LIBEDITDIR} +CPPFLAGS+=-I. -I${.CURDIR} +#CPPFLAGS+=-DDEBUG_TTY -DDEBUG_KEY -DDEBUG_READ -DDEBUG -DDEBUG_REFRESH +#CPPFLAGS+=-DDEBUG_PASTE -DDEBUG_EDIT + +AHDR=vi.h emacs.h common.h +ASRC=${LIBEDITDIR}/vi.c ${LIBEDITDIR}/emacs.c ${LIBEDITDIR}/common.c + +DPSRCS+= ${AHDR} fcns.h help.h fcns.c help.c +CLEANFILES+= ${AHDR} fcns.h help.h fcns.c help.c + +SUBDIR= readline + +vi.h: vi.c makelist Makefile + ${_MKTARGET_CREATE} + ${HOST_SH} ${LIBEDITDIR}/makelist -h ${LIBEDITDIR}/vi.c \ + > ${.TARGET}.tmp && \ + mv ${.TARGET}.tmp ${.TARGET} + +emacs.h: emacs.c makelist Makefile + ${_MKTARGET_CREATE} + ${HOST_SH} ${LIBEDITDIR}/makelist -h ${LIBEDITDIR}/emacs.c \ + > ${.TARGET}.tmp && \ + mv ${.TARGET}.tmp ${.TARGET} + +common.h: common.c makelist Makefile + ${_MKTARGET_CREATE} + ${HOST_SH} ${LIBEDITDIR}/makelist -h ${LIBEDITDIR}/common.c \ + > ${.TARGET}.tmp && \ + mv ${.TARGET}.tmp ${.TARGET} + +fcns.h: ${AHDR} makelist Makefile + ${_MKTARGET_CREATE} + ${HOST_SH} ${LIBEDITDIR}/makelist -fh ${AHDR} > ${.TARGET}.tmp && \ + mv ${.TARGET}.tmp ${.TARGET} + +fcns.c: ${AHDR} fcns.h help.h makelist Makefile + ${_MKTARGET_CREATE} + ${HOST_SH} ${LIBEDITDIR}/makelist -fc ${AHDR} > ${.TARGET}.tmp && \ + mv ${.TARGET}.tmp ${.TARGET} + +help.c: ${ASRC} makelist Makefile + ${_MKTARGET_CREATE} + ${HOST_SH} ${LIBEDITDIR}/makelist -bc ${ASRC} > ${.TARGET}.tmp && \ + mv ${.TARGET}.tmp ${.TARGET} + +help.h: ${ASRC} makelist Makefile + ${_MKTARGET_CREATE} + ${HOST_SH} ${LIBEDITDIR}/makelist -bh ${ASRC} > ${.TARGET}.tmp && \ + mv ${.TARGET}.tmp ${.TARGET} + +editline.c: ${OSRCS} makelist Makefile + ${_MKTARGET_CREATE} + ${HOST_SH} ${LIBEDITDIR}/makelist -e ${OSRCS:T} > ${.TARGET}.tmp && \ + mv ${.TARGET}.tmp ${.TARGET} + +tokenizern.c: makelist Makefile + ${_MKTARGET_CREATE} + ${HOST_SH} ${LIBEDITDIR}/makelist -n tokenizer.c > ${.TARGET}.tmp && \ + mv ${.TARGET}.tmp ${.TARGET} + +historyn.c: makelist Makefile + ${_MKTARGET_CREATE} + ${HOST_SH} ${LIBEDITDIR}/makelist -n history.c > ${.TARGET}.tmp && \ + mv ${.TARGET}.tmp ${.TARGET} + +tc1.o: ${LIBEDITDIR}/TEST/tc1.c + +tc1: libedit.a tc1.o + ${_MKTARGET_LINK} + ${CC} ${LDFLAGS} ${.ALLSRC} -o ${.TARGET} libedit.a ${LDADD} -ltermlib + +.include +.include + +# XXX +.if defined(HAVE_GCC) +COPTS.editline.c+= -Wno-cast-qual +COPTS.tokenizer.c+= -Wno-cast-qual +COPTS.tokenizern.c+= -Wno-cast-qual +.endif Copied: vendor/NetBSD/libedit/2016-03-21/TEST/Makefile (from r312996, vendor/NetBSD/libedit/dist/TEST/Makefile) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/NetBSD/libedit/2016-03-21/TEST/Makefile Mon Jan 30 22:40:43 2017 (r313000, copy of r312996, vendor/NetBSD/libedit/dist/TEST/Makefile) @@ -0,0 +1,19 @@ +# $NetBSD: Makefile,v 1.6 2016/02/15 21:38:07 christos Exp $ + +WIDECHAR ?= yes + +NOMAN=1 +PROG=wtc1 +CPPFLAGS=-I${.CURDIR}/.. +LDADD+=-ledit -ltermlib +DPADD+=${LIBEDIT} ${LIBTERMLIB} + +.if "${WIDECHAR}" == "yes" +CPPFLAGS+=-DWIDECHAR +.endif + +.ifdef DEBUG +CPPFLAGS+=-DDEBUG +.endif + +.include Copied: vendor/NetBSD/libedit/2016-03-21/TEST/rl1.c (from r312999, vendor/NetBSD/libedit/dist/TEST/rl1.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/NetBSD/libedit/2016-03-21/TEST/rl1.c Mon Jan 30 22:40:43 2017 (r313000, copy of r312999, vendor/NetBSD/libedit/dist/TEST/rl1.c) @@ -0,0 +1,52 @@ +/* $NetBSD: rl1.c,v 1.2 2016/02/29 00:54:19 christos Exp $ */ + +/*- + * Copyright (c) 2010 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Christos Zoulas. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#if !defined(lint) +__RCSID("$NetBSD: rl1.c,v 1.2 2016/02/29 00:54:19 christos Exp $"); +#endif /* not lint */ + +/* + * test.c: A little test program + */ +#include +#include + +int +main(int argc, char *argv[]) +{ + char *p; + while ((p = readline("hi$")) != NULL) { + add_history(p); + printf("%d %s\n", history_length, p); + } + return 0; +} Copied: vendor/NetBSD/libedit/2016-03-21/TEST/tc1.c (from r312996, vendor/NetBSD/libedit/dist/TEST/tc1.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/NetBSD/libedit/2016-03-21/TEST/tc1.c Mon Jan 30 22:40:43 2017 (r313000, copy of r312996, vendor/NetBSD/libedit/dist/TEST/tc1.c) @@ -0,0 +1,304 @@ +/* $NetBSD: tc1.c,v 1.7 2016/02/17 19:47:49 christos Exp $ */ + +/*- + * Copyright (c) 1992, 1993 + * The Regents of the University of California. All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * Christos Zoulas of Cornell University. + * + * 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. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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 "config.h" +#ifndef lint +__COPYRIGHT("@(#) Copyright (c) 1992, 1993\n\ + The Regents of the University of California. All rights reserved.\n"); +#endif /* not lint */ + +#if !defined(lint) && !defined(SCCSID) +#if 0 +static char sccsid[] = "@(#)test.c 8.1 (Berkeley) 6/4/93"; +#else +__RCSID("$NetBSD: tc1.c,v 1.7 2016/02/17 19:47:49 christos Exp $"); +#endif +#endif /* not lint && not SCCSID */ + +/* + * test.c: A little test program + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "histedit.h" + +static int continuation = 0; +volatile sig_atomic_t gotsig = 0; + +static unsigned char complete(EditLine *, int); + int main(int, char **); +static char *prompt(EditLine *); +static void sig(int); + +static char * +prompt(EditLine *el) +{ + static char a[] = "\1\033[7m\1Edit$\1\033[0m\1 "; + static char b[] = "Edit> "; + + return (continuation ? b : a); +} + +static void +sig(int i) +{ + gotsig = i; +} + +static unsigned char +complete(EditLine *el, int ch) +{ + DIR *dd = opendir("."); + struct dirent *dp; + const char* ptr; + const LineInfo *lf = el_line(el); + int len; + int res = CC_ERROR; + + /* + * Find the last word + */ + for (ptr = lf->cursor - 1; + !isspace((unsigned char)*ptr) && ptr > lf->buffer; ptr--) + continue; + len = lf->cursor - ++ptr; + + for (dp = readdir(dd); dp != NULL; dp = readdir(dd)) { + if (len > strlen(dp->d_name)) + continue; + if (strncmp(dp->d_name, ptr, len) == 0) { + if (el_insertstr(el, &dp->d_name[len]) == -1) + res = CC_ERROR; + else + res = CC_REFRESH; + break; + } + } + + closedir(dd); + return res; +} + +int +main(int argc, char *argv[]) +{ + EditLine *el = NULL; + int num; + const char *buf; + Tokenizer *tok; +#if 0 + int lastevent = 0; +#endif + int ncontinuation; + History *hist; + HistEvent ev; + + (void) setlocale(LC_CTYPE, ""); + (void) signal(SIGINT, sig); + (void) signal(SIGQUIT, sig); + (void) signal(SIGHUP, sig); + (void) signal(SIGTERM, sig); + + hist = history_init(); /* Init the builtin history */ + /* Remember 100 events */ + history(hist, &ev, H_SETSIZE, 100); + + tok = tok_init(NULL); /* Initialize the tokenizer */ + + /* Initialize editline */ + el = el_init(*argv, stdin, stdout, stderr); + + el_set(el, EL_EDITOR, "vi"); /* Default editor is vi */ + el_set(el, EL_SIGNAL, 1); /* Handle signals gracefully */ + el_set(el, EL_PROMPT_ESC, prompt, '\1');/* Set the prompt function */ + + /* Tell editline to use this history interface */ + el_set(el, EL_HIST, history, hist); + + /* Add a user-defined function */ + el_set(el, EL_ADDFN, "ed-complete", "Complete argument", complete); + + /* Bind tab to it */ + el_set(el, EL_BIND, "^I", "ed-complete", NULL); + + /* + * Bind j, k in vi command mode to previous and next line, instead + * of previous and next history. + */ + el_set(el, EL_BIND, "-a", "k", "ed-prev-line", NULL); + el_set(el, EL_BIND, "-a", "j", "ed-next-line", NULL); + + /* + * Source the user's defaults file. + */ + el_source(el, NULL); + + while ((buf = el_gets(el, &num)) != NULL && num != 0) { + int ac, cc, co; +#ifdef DEBUG + int i; +#endif + const char **av; + const LineInfo *li; + li = el_line(el); +#ifdef DEBUG + (void) fprintf(stderr, "==> got %d %s", num, buf); + (void) fprintf(stderr, " > li `%.*s_%.*s'\n", + (li->cursor - li->buffer), li->buffer, + (li->lastchar - 1 - li->cursor), + (li->cursor >= li->lastchar) ? "" : li->cursor); + +#endif + if (gotsig) { + (void) fprintf(stderr, "Got signal %d.\n", (int)gotsig); + gotsig = 0; + el_reset(el); + } + + if (!continuation && num == 1) + continue; + + ac = cc = co = 0; + ncontinuation = tok_line(tok, li, &ac, &av, &cc, &co); + if (ncontinuation < 0) { + (void) fprintf(stderr, "Internal error\n"); + continuation = 0; + continue; + } +#ifdef DEBUG + (void) fprintf(stderr, " > nc %d ac %d cc %d co %d\n", + ncontinuation, ac, cc, co); +#endif +#if 0 + if (continuation) { + /* + * Append to the right event in case the user + * moved around in history. + */ + if (history(hist, &ev, H_SET, lastevent) == -1) + err(1, "%d: %s", lastevent, ev.str); + history(hist, &ev, H_ADD , buf); + } else { + history(hist, &ev, H_ENTER, buf); + lastevent = ev.num; + } +#else + /* Simpler */ + history(hist, &ev, continuation ? H_APPEND : H_ENTER, buf); +#endif + + continuation = ncontinuation; + ncontinuation = 0; + if (continuation) + continue; +#ifdef DEBUG + for (i = 0; i < ac; i++) { + (void) fprintf(stderr, " > arg# %2d ", i); + if (i != cc) + (void) fprintf(stderr, "`%s'\n", av[i]); + else + (void) fprintf(stderr, "`%.*s_%s'\n", + co, av[i], av[i] + co); + } +#endif + + if (strcmp(av[0], "history") == 0) { + int rv; + + switch (ac) { + case 1: + for (rv = history(hist, &ev, H_LAST); rv != -1; + rv = history(hist, &ev, H_PREV)) + (void) fprintf(stdout, "%4d %s", + ev.num, ev.str); + break; + + case 2: + if (strcmp(av[1], "clear") == 0) + history(hist, &ev, H_CLEAR); + else + goto badhist; + break; + + case 3: + if (strcmp(av[1], "load") == 0) + history(hist, &ev, H_LOAD, av[2]); + else if (strcmp(av[1], "save") == 0) + history(hist, &ev, H_SAVE, av[2]); + break; + + badhist: + default: + (void) fprintf(stderr, + "Bad history arguments\n"); + break; + } + } else if (el_parse(el, ac, av) == -1) { + switch (fork()) { + case 0: + execvp(av[0], (char *const *)__UNCONST(av)); + perror(av[0]); + _exit(1); + /*NOTREACHED*/ + break; + + case -1: + perror("fork"); + break; + + default: + if (wait(&num) == -1) + perror("wait"); + (void) fprintf(stderr, "Exit %x\n", num); + break; + } + } + + tok_reset(tok); + } + + el_end(el); + tok_end(tok); + history_end(hist); + + return (0); +} Copied: vendor/NetBSD/libedit/2016-03-21/TEST/wtc1.c (from r312996, vendor/NetBSD/libedit/dist/TEST/wtc1.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/NetBSD/libedit/2016-03-21/TEST/wtc1.c Mon Jan 30 22:40:43 2017 (r313000, copy of r312996, vendor/NetBSD/libedit/dist/TEST/wtc1.c) @@ -0,0 +1,278 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "../histedit.h" + + +static int continuation; +volatile sig_atomic_t gotsig; +static const char hfile[] = ".whistory"; + +static wchar_t * +prompt(EditLine *el) +{ + static wchar_t a[] = L"\1\033[7m\1Edit$\1\033[0m\1 "; + static wchar_t b[] = L"Edit> "; + + return continuation ? b : a; +} + + +static void +sig(int i) +{ + gotsig = i; +} + +const char * +my_wcstombs(const wchar_t *wstr) +{ + static struct { + char *str; + int len; + } buf; + + int needed = wcstombs(0, wstr, 0) + 1; + if (needed > buf.len) { + buf.str = malloc(needed); + buf.len = needed; + } + wcstombs(buf.str, wstr, needed); + buf.str[needed - 1] = 0; + + return buf.str; +} + + +static unsigned char +complete(EditLine *el, int ch) +{ + DIR *dd = opendir("."); + struct dirent *dp; + const wchar_t *ptr; + char *buf, *bptr; + const LineInfoW *lf = el_wline(el); + int len, mblen, i; + unsigned char res = 0; + wchar_t dir[1024]; + + /* Find the last word */ + for (ptr = lf->cursor -1; !iswspace(*ptr) && ptr > lf->buffer; --ptr) + continue; + len = lf->cursor - ++ptr; + + /* Convert last word to multibyte encoding, so we can compare to it */ + wctomb(NULL, 0); /* Reset shift state */ + mblen = MB_LEN_MAX * len + 1; + buf = bptr = malloc(mblen); + if (buf == NULL) + err(1, "malloc"); + for (i = 0; i < len; ++i) { + /* Note: really should test for -1 return from wctomb */ + bptr += wctomb(bptr, ptr[i]); + } + *bptr = 0; /* Terminate multibyte string */ + mblen = bptr - buf; + + /* Scan directory for matching name */ + for (dp = readdir(dd); dp != NULL; dp = readdir(dd)) { + if (mblen > strlen(dp->d_name)) + continue; + if (strncmp(dp->d_name, buf, mblen) == 0) { + mbstowcs(dir, &dp->d_name[mblen], + sizeof(dir) / sizeof(*dir)); + if (el_winsertstr(el, dir) == -1) + res = CC_ERROR; + else + res = CC_REFRESH; + break; + } + } + + closedir(dd); + free(buf); + return res; +} + + +int +main(int argc, char *argv[]) +{ + EditLine *el = NULL; + int numc, ncontinuation; + const wchar_t *line; + TokenizerW *tok; + HistoryW *hist; + HistEventW ev; +#ifdef DEBUG + int i; +#endif + + setlocale(LC_ALL, ""); + + (void)signal(SIGINT, sig); + (void)signal(SIGQUIT, sig); + (void)signal(SIGHUP, sig); + (void)signal(SIGTERM, sig); + + hist = history_winit(); /* Init built-in history */ + history_w(hist, &ev, H_SETSIZE, 100); /* Remember 100 events */ + history_w(hist, &ev, H_LOAD, hfile); + + tok = tok_winit(NULL); /* Init the tokenizer */ + + el = el_init(argv[0], stdin, stdout, stderr); + + el_wset(el, EL_EDITOR, L"vi"); /* Default editor is vi */ + el_wset(el, EL_SIGNAL, 1); /* Handle signals gracefully */ + el_wset(el, EL_PROMPT_ESC, prompt, '\1'); /* Set the prompt function */ + + el_wset(el, EL_HIST, history_w, hist); /* FIXME - history_w? */ + + /* Add a user-defined function */ + el_wset(el, EL_ADDFN, L"ed-complete", L"Complete argument", complete); + + /* Bind to it */ + el_wset(el, EL_BIND, L"^I", L"ed-complete", NULL); + + /* + * Bind j, k in vi command mode to previous and next line, instead + * of previous and next history. + */ + el_wset(el, EL_BIND, L"-a", L"k", L"ed-prev-line", NULL); + el_wset(el, EL_BIND, L"-a", L"j", L"ed-next-line", NULL); + + /* Source the user's defaults file. */ + el_source(el, NULL); + + while((line = el_wgets(el, &numc)) != NULL && numc != 0) { + int ac, cc, co, rc; + const wchar_t **av; + + const LineInfoW *li; + li = el_wline(el); + +#ifdef DEBUG + (void)fwprintf(stderr, L"==> got %d %ls", numc, line); + (void)fwprintf(stderr, L" > li `%.*ls_%.*ls'\n", + (li->cursor - li->buffer), li->buffer, + (li->lastchar - 1 - li->cursor), + (li->cursor >= li->lastchar) ? L"" : li->cursor); +#endif + + if (gotsig) { + (void)fprintf(stderr, "Got signal %d.\n", (int)gotsig); + gotsig = 0; + el_reset(el); + } + + if(!continuation && numc == 1) + continue; /* Only got a linefeed */ + + ac = cc = co = 0; + ncontinuation = tok_wline(tok, li, &ac, &av, &cc, &co); + if (ncontinuation < 0) { + (void) fprintf(stderr, "Internal error\n"); + continuation = 0; + continue; + } + +#ifdef DEBUG + (void)fprintf(stderr, " > nc %d ac %d cc %d co %d\n", + ncontinuation, ac, cc, co); +#endif + history_w(hist, &ev, continuation ? H_APPEND : H_ENTER, line); + + continuation = ncontinuation; + ncontinuation = 0; + if(continuation) + continue; + +#ifdef DEBUG + for (i = 0; i < ac; ++i) { + (void)fwprintf(stderr, L" > arg# %2d ", i); + if (i != cc) + (void)fwprintf(stderr, L"`%ls'\n", av[i]); + else + (void)fwprintf(stderr, L"`%.*ls_%ls'\n", + co, av[i], av[i] + co); + } +#endif + + if (wcscmp (av[0], L"history") == 0) { + switch(ac) { + case 1: + for(rc = history_w(hist, &ev, H_LAST); + rc != -1; + rc = history_w(hist, &ev, H_PREV)) + (void)fwprintf(stdout, L"%4d %ls", + ev.num, ev.str); + break; + case 2: + if (wcscmp(av[1], L"clear") == 0) + history_w(hist, &ev, H_CLEAR); + else + goto badhist; + break; + case 3: + if (wcscmp(av[1], L"load") == 0) + history_w(hist, &ev, H_LOAD, + my_wcstombs(av[2])); + else if (wcscmp(av[1], L"save") == 0) + history_w(hist, &ev, H_SAVE, + my_wcstombs(av[2])); + else + goto badhist; + break; + badhist: + default: + (void)fprintf(stderr, + "Bad history arguments\n"); + break; + } + } else if (el_wparse(el, ac, av) == -1) { + switch (fork()) { + case 0: { + Tokenizer *ntok = tok_init(NULL); + int nargc; + const char **nav; + tok_str(ntok, my_wcstombs(line), &nargc, &nav); + execvp(nav[0],(char **)nav); + perror(nav[0]); + _exit(1); + /* NOTREACHED */ + break; + } + case -1: + perror("fork"); + break; + default: + if (wait(&rc) == -1) + perror("wait"); + (void)fprintf(stderr, "Exit %x\n", rc); + break; + } + } + + tok_wreset(tok); + } + + el_end(el); + tok_wend(tok); + history_w(hist, &ev, H_SAVE, hfile); + history_wend(hist); + + fprintf(stdout, "\n"); + return 0; +} + + Copied: vendor/NetBSD/libedit/2016-03-21/chared.c (from r312996, vendor/NetBSD/libedit/dist/chared.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/NetBSD/libedit/2016-03-21/chared.c Mon Jan 30 22:40:43 2017 (r313000, copy of r312996, vendor/NetBSD/libedit/dist/chared.c) @@ -0,0 +1,775 @@ +/* $NetBSD: chared.c,v 1.49 2016/02/24 14:29:21 christos Exp $ */ + +/*- + * Copyright (c) 1992, 1993 + * The Regents of the University of California. All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * Christos Zoulas of Cornell University. + * + * 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. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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 "config.h" +#if !defined(lint) && !defined(SCCSID) +#if 0 +static char sccsid[] = "@(#)chared.c 8.1 (Berkeley) 6/4/93"; +#else +__RCSID("$NetBSD: chared.c,v 1.49 2016/02/24 14:29:21 christos Exp $"); +#endif +#endif /* not lint && not SCCSID */ + +/* + * chared.c: Character editor utilities + */ +#include +#include +#include + +#include "el.h" +#include "common.h" + +private void ch__clearmacro (EditLine *); + +/* value to leave unused in line buffer */ +#define EL_LEAVE 2 + +/* cv_undo(): + * Handle state for the vi undo command + */ +protected void +cv_undo(EditLine *el) +{ + c_undo_t *vu = &el->el_chared.c_undo; + c_redo_t *r = &el->el_chared.c_redo; + size_t size; + + /* Save entire line for undo */ + size = (size_t)(el->el_line.lastchar - el->el_line.buffer); + vu->len = (ssize_t)size; + vu->cursor = (int)(el->el_line.cursor - el->el_line.buffer); + (void)memcpy(vu->buf, el->el_line.buffer, size * sizeof(*vu->buf)); + + /* save command info for redo */ + r->count = el->el_state.doingarg ? el->el_state.argument : 0; + r->action = el->el_chared.c_vcmd.action; + r->pos = r->buf; + r->cmd = el->el_state.thiscmd; + r->ch = el->el_state.thisch; +} + +/* cv_yank(): + * Save yank/delete data for paste + */ +protected void +cv_yank(EditLine *el, const Char *ptr, int size) +{ + c_kill_t *k = &el->el_chared.c_kill; + + (void)memcpy(k->buf, ptr, (size_t)size * sizeof(*k->buf)); + k->last = k->buf + size; +} + + +/* c_insert(): + * Insert num characters + */ +protected void +c_insert(EditLine *el, int num) +{ + Char *cp; + + if (el->el_line.lastchar + num >= el->el_line.limit) { + if (!ch_enlargebufs(el, (size_t)num)) + return; /* can't go past end of buffer */ + } + + if (el->el_line.cursor < el->el_line.lastchar) { + /* if I must move chars */ + for (cp = el->el_line.lastchar; cp >= el->el_line.cursor; cp--) + cp[num] = *cp; + } + el->el_line.lastchar += num; +} + + +/* c_delafter(): + * Delete num characters after the cursor + */ +protected void +c_delafter(EditLine *el, int num) +{ + + if (el->el_line.cursor + num > el->el_line.lastchar) + num = (int)(el->el_line.lastchar - el->el_line.cursor); + + if (el->el_map.current != el->el_map.emacs) { + cv_undo(el); + cv_yank(el, el->el_line.cursor, num); + } + + if (num > 0) { + Char *cp; + + for (cp = el->el_line.cursor; cp <= el->el_line.lastchar; cp++) + *cp = cp[num]; + + el->el_line.lastchar -= num; + } +} + + +/* c_delafter1(): + * Delete the character after the cursor, do not yank + */ +protected void +c_delafter1(EditLine *el) +{ + Char *cp; + + for (cp = el->el_line.cursor; cp <= el->el_line.lastchar; cp++) + *cp = cp[1]; + + el->el_line.lastchar--; +} + + +/* c_delbefore(): + * Delete num characters before the cursor + */ +protected void +c_delbefore(EditLine *el, int num) +{ + + if (el->el_line.cursor - num < el->el_line.buffer) + num = (int)(el->el_line.cursor - el->el_line.buffer); + + if (el->el_map.current != el->el_map.emacs) { + cv_undo(el); + cv_yank(el, el->el_line.cursor - num, num); + } + + if (num > 0) { + Char *cp; + + for (cp = el->el_line.cursor - num; + cp <= el->el_line.lastchar; + cp++) + *cp = cp[num]; + + el->el_line.lastchar -= num; + } +} + + +/* c_delbefore1(): + * Delete the character before the cursor, do not yank + */ +protected void +c_delbefore1(EditLine *el) +{ + Char *cp; + + for (cp = el->el_line.cursor - 1; cp <= el->el_line.lastchar; cp++) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-vendor@freebsd.org Tue Jan 31 12:29:50 2017 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 87720CC9F1C; Tue, 31 Jan 2017 12:29:50 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3DDEB1C6E; Tue, 31 Jan 2017 12:29:50 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0VCTnCs043009; Tue, 31 Jan 2017 12:29:49 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0VCTn77043006; Tue, 31 Jan 2017 12:29:49 GMT (envelope-from des@FreeBSD.org) Message-Id: <201701311229.v0VCTn77043006@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Tue, 31 Jan 2017 12:29:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r313010 - in vendor-crypto/openssh/dist: . contrib contrib/cygwin contrib/redhat contrib/suse openbsd-compat openbsd-compat/regress regress regress/misc regress/misc/kexfuzz regress/uni... X-SVN-Group: vendor-crypto MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Jan 2017 12:29:50 -0000 Author: des Date: Tue Jan 31 12:29:48 2017 New Revision: 313010 URL: https://svnweb.freebsd.org/changeset/base/313010 Log: Vendor import of OpenSSH 7.3p1. Added: vendor-crypto/openssh/dist/.skipped-commit-ids vendor-crypto/openssh/dist/openbsd-compat/bsd-err.c vendor-crypto/openssh/dist/platform-tracing.c vendor-crypto/openssh/dist/regress/cfginclude.sh vendor-crypto/openssh/dist/regress/misc/ vendor-crypto/openssh/dist/regress/misc/Makefile vendor-crypto/openssh/dist/regress/misc/kexfuzz/ vendor-crypto/openssh/dist/regress/misc/kexfuzz/Makefile vendor-crypto/openssh/dist/regress/misc/kexfuzz/README vendor-crypto/openssh/dist/regress/misc/kexfuzz/kexfuzz.c vendor-crypto/openssh/dist/regress/sshcfgparse.sh vendor-crypto/openssh/dist/regress/unittests/utf8/ vendor-crypto/openssh/dist/regress/unittests/utf8/Makefile vendor-crypto/openssh/dist/regress/unittests/utf8/tests.c vendor-crypto/openssh/dist/utf8.c vendor-crypto/openssh/dist/utf8.h Deleted: vendor-crypto/openssh/dist/.cvsignore vendor-crypto/openssh/dist/openbsd-compat/.cvsignore vendor-crypto/openssh/dist/openbsd-compat/regress/.cvsignore vendor-crypto/openssh/dist/regress/.cvsignore vendor-crypto/openssh/dist/roaming.h vendor-crypto/openssh/dist/scard/ Modified: vendor-crypto/openssh/dist/ChangeLog vendor-crypto/openssh/dist/INSTALL vendor-crypto/openssh/dist/Makefile.in vendor-crypto/openssh/dist/PROTOCOL vendor-crypto/openssh/dist/PROTOCOL.agent vendor-crypto/openssh/dist/PROTOCOL.certkeys vendor-crypto/openssh/dist/PROTOCOL.chacha20poly1305 vendor-crypto/openssh/dist/README vendor-crypto/openssh/dist/audit-linux.c vendor-crypto/openssh/dist/auth-krb5.c vendor-crypto/openssh/dist/auth-options.c vendor-crypto/openssh/dist/auth-pam.c vendor-crypto/openssh/dist/auth-pam.h vendor-crypto/openssh/dist/auth-passwd.c vendor-crypto/openssh/dist/auth-rh-rsa.c vendor-crypto/openssh/dist/auth-rhosts.c vendor-crypto/openssh/dist/auth.c vendor-crypto/openssh/dist/auth.h vendor-crypto/openssh/dist/auth2-chall.c vendor-crypto/openssh/dist/auth2-hostbased.c vendor-crypto/openssh/dist/auth2.c vendor-crypto/openssh/dist/authfile.c vendor-crypto/openssh/dist/canohost.c vendor-crypto/openssh/dist/canohost.h vendor-crypto/openssh/dist/channels.c vendor-crypto/openssh/dist/cipher-bf1.c vendor-crypto/openssh/dist/cipher.c vendor-crypto/openssh/dist/clientloop.c vendor-crypto/openssh/dist/compat.c vendor-crypto/openssh/dist/config.h.in vendor-crypto/openssh/dist/configure vendor-crypto/openssh/dist/configure.ac vendor-crypto/openssh/dist/contrib/cygwin/README vendor-crypto/openssh/dist/contrib/redhat/openssh.spec vendor-crypto/openssh/dist/contrib/ssh-copy-id vendor-crypto/openssh/dist/contrib/suse/openssh.spec vendor-crypto/openssh/dist/defines.h vendor-crypto/openssh/dist/dh.c vendor-crypto/openssh/dist/dh.h vendor-crypto/openssh/dist/kex.c vendor-crypto/openssh/dist/kex.h vendor-crypto/openssh/dist/kexc25519.c vendor-crypto/openssh/dist/kexdh.c vendor-crypto/openssh/dist/kexdhc.c vendor-crypto/openssh/dist/kexdhs.c vendor-crypto/openssh/dist/kexgexs.c vendor-crypto/openssh/dist/key.c vendor-crypto/openssh/dist/log.c vendor-crypto/openssh/dist/log.h vendor-crypto/openssh/dist/mac.c vendor-crypto/openssh/dist/mac.h vendor-crypto/openssh/dist/misc.c vendor-crypto/openssh/dist/misc.h vendor-crypto/openssh/dist/moduli vendor-crypto/openssh/dist/moduli.0 vendor-crypto/openssh/dist/monitor.c vendor-crypto/openssh/dist/monitor_fdpass.c vendor-crypto/openssh/dist/monitor_wrap.c vendor-crypto/openssh/dist/monitor_wrap.h vendor-crypto/openssh/dist/mux.c vendor-crypto/openssh/dist/myproposal.h vendor-crypto/openssh/dist/opacket.h vendor-crypto/openssh/dist/openbsd-compat/Makefile.in vendor-crypto/openssh/dist/openbsd-compat/arc4random.c vendor-crypto/openssh/dist/openbsd-compat/bindresvport.c vendor-crypto/openssh/dist/openbsd-compat/bsd-asprintf.c vendor-crypto/openssh/dist/openbsd-compat/bsd-misc.c vendor-crypto/openssh/dist/openbsd-compat/bsd-misc.h vendor-crypto/openssh/dist/openbsd-compat/bsd-snprintf.c vendor-crypto/openssh/dist/openbsd-compat/inet_aton.c vendor-crypto/openssh/dist/openbsd-compat/openbsd-compat.h vendor-crypto/openssh/dist/openbsd-compat/port-solaris.h vendor-crypto/openssh/dist/openbsd-compat/vis.c vendor-crypto/openssh/dist/openbsd-compat/vis.h vendor-crypto/openssh/dist/openbsd-compat/xcrypt.c vendor-crypto/openssh/dist/packet.c vendor-crypto/openssh/dist/packet.h vendor-crypto/openssh/dist/pathnames.h vendor-crypto/openssh/dist/platform.c vendor-crypto/openssh/dist/platform.h vendor-crypto/openssh/dist/progressmeter.c vendor-crypto/openssh/dist/readconf.c vendor-crypto/openssh/dist/readconf.h vendor-crypto/openssh/dist/regress/Makefile vendor-crypto/openssh/dist/regress/agent-getpeereid.sh vendor-crypto/openssh/dist/regress/cert-hostkey.sh vendor-crypto/openssh/dist/regress/cert-userkey.sh vendor-crypto/openssh/dist/regress/cfgparse.sh vendor-crypto/openssh/dist/regress/connect-privsep.sh vendor-crypto/openssh/dist/regress/forwarding.sh vendor-crypto/openssh/dist/regress/integrity.sh vendor-crypto/openssh/dist/regress/modpipe.c vendor-crypto/openssh/dist/regress/netcat.c vendor-crypto/openssh/dist/regress/test-exec.sh vendor-crypto/openssh/dist/regress/unittests/Makefile vendor-crypto/openssh/dist/regress/unittests/sshbuf/test_sshbuf_misc.c vendor-crypto/openssh/dist/regress/unittests/sshkey/test_sshkey.c vendor-crypto/openssh/dist/regress/unittests/test_helper/Makefile vendor-crypto/openssh/dist/sandbox-seccomp-filter.c vendor-crypto/openssh/dist/scp.0 vendor-crypto/openssh/dist/scp.1 vendor-crypto/openssh/dist/scp.c vendor-crypto/openssh/dist/servconf.c vendor-crypto/openssh/dist/serverloop.c vendor-crypto/openssh/dist/session.c vendor-crypto/openssh/dist/session.h vendor-crypto/openssh/dist/sftp-client.c vendor-crypto/openssh/dist/sftp-server.0 vendor-crypto/openssh/dist/sftp-server.c vendor-crypto/openssh/dist/sftp.0 vendor-crypto/openssh/dist/sftp.1 vendor-crypto/openssh/dist/sftp.c vendor-crypto/openssh/dist/ssh-add.0 vendor-crypto/openssh/dist/ssh-agent.0 vendor-crypto/openssh/dist/ssh-agent.1 vendor-crypto/openssh/dist/ssh-agent.c vendor-crypto/openssh/dist/ssh-dss.c vendor-crypto/openssh/dist/ssh-ecdsa.c vendor-crypto/openssh/dist/ssh-ed25519.c vendor-crypto/openssh/dist/ssh-keygen.0 vendor-crypto/openssh/dist/ssh-keygen.1 vendor-crypto/openssh/dist/ssh-keygen.c vendor-crypto/openssh/dist/ssh-keyscan.0 vendor-crypto/openssh/dist/ssh-keyscan.c vendor-crypto/openssh/dist/ssh-keysign.0 vendor-crypto/openssh/dist/ssh-pkcs11-helper.0 vendor-crypto/openssh/dist/ssh-rsa.c vendor-crypto/openssh/dist/ssh.0 vendor-crypto/openssh/dist/ssh.1 vendor-crypto/openssh/dist/ssh.c vendor-crypto/openssh/dist/ssh1.h vendor-crypto/openssh/dist/ssh2.h vendor-crypto/openssh/dist/ssh_api.c vendor-crypto/openssh/dist/ssh_config.0 vendor-crypto/openssh/dist/ssh_config.5 vendor-crypto/openssh/dist/sshbuf-getput-basic.c vendor-crypto/openssh/dist/sshbuf-misc.c vendor-crypto/openssh/dist/sshbuf.h vendor-crypto/openssh/dist/sshconnect2.c vendor-crypto/openssh/dist/sshd.0 vendor-crypto/openssh/dist/sshd.c vendor-crypto/openssh/dist/sshd_config vendor-crypto/openssh/dist/sshd_config.0 vendor-crypto/openssh/dist/sshd_config.5 vendor-crypto/openssh/dist/sshkey.c vendor-crypto/openssh/dist/sshkey.h vendor-crypto/openssh/dist/ttymodes.c vendor-crypto/openssh/dist/ttymodes.h vendor-crypto/openssh/dist/version.h Added: vendor-crypto/openssh/dist/.skipped-commit-ids ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor-crypto/openssh/dist/.skipped-commit-ids Tue Jan 31 12:29:48 2017 (r313010) @@ -0,0 +1,11 @@ +321065a95a7ccebdd5fd08482a1e19afbf524e35 Update DH groups +d4f699a421504df35254cf1c6f1a7c304fb907ca Remove 1k bit groups +aafe246655b53b52bc32c8a24002bc262f4230f7 Remove intermediate moduli +8fa9cd1dee3c3339ae329cf20fb591db6d605120 put back SSH1 for 6.9 +f31327a48dd4103333cc53315ec53fe65ed8a17a Generate new moduli +edbfde98c40007b7752a4ac106095e060c25c1ef Regen moduli +052fd565e3ff2d8cec3bc957d1788f50c827f8e2 Switch to tame-based sandbox +7cf73737f357492776223da1c09179fa6ba74660 Remove moduli <2k +180d84674be1344e45a63990d60349988187c1ae Update moduli +f6ae971186ba68d066cd102e57d5b0b2c211a5ee systrace is dead. +96c5054e3e1f170c6276902d5bc65bb3b87a2603 remove DEBUGLIBS from Makefile Modified: vendor-crypto/openssh/dist/ChangeLog ============================================================================== --- vendor-crypto/openssh/dist/ChangeLog Tue Jan 31 07:13:01 2017 (r313009) +++ vendor-crypto/openssh/dist/ChangeLog Tue Jan 31 12:29:48 2017 (r313010) @@ -1,8905 +1,9202 @@ -commit 5c35450a0c901d9375fb23343a8dc82397da5f75 +commit 99522ba7ec6963a05c04a156bf20e3ba3605987c Author: Damien Miller -Date: Thu Mar 10 05:04:48 2016 +1100 +Date: Thu Jul 28 08:54:27 2016 +1000 - update versions for release - -commit 9d47b8d3f50c3a6282896df8274147e3b9a38c56 -Author: Damien Miller -Date: Thu Mar 10 05:03:39 2016 +1100 - - sanitise characters destined for xauth(1) + define _OPENBSD_SOURCE for reallocarray on NetBSD - reported by github.com/tintinweb + Report by and debugged with Hisashi T Fujinaka, dtucker nailed + the problem (lack of prototype causing return type confusion). -commit 72b061d4ba0f909501c595d709ea76e06b01e5c9 -Author: Darren Tucker -Date: Fri Feb 26 14:40:04 2016 +1100 +commit 3e1e076550c27c6bbdddf36d8f42bd79fbaaa187 +Author: Damien Miller +Date: Wed Jul 27 08:25:42 2016 +1000 - Add a note about using xlc on AIX. + KNF -commit fd4e4f2416baa2e6565ea49d52aade296bad3e28 -Author: Darren Tucker -Date: Wed Feb 24 10:44:25 2016 +1100 +commit d99ee9c4e5e217e7d05eeec84e9ce641f4675331 +Author: Damien Miller +Date: Wed Jul 27 08:25:23 2016 +1000 - Skip PrintLastLog in config dump mode. - - When DISABLE_LASTLOG is set, do not try to include PrintLastLog in the - config dump since it'll be reported as UNKNOWN. + Linux auditing also needs packet.h -commit 99135c764fa250801da5ec3b8d06cbd0111caae8 +commit 393bd381a45884b589baa9aed4394f1d250255ca Author: Damien Miller -Date: Tue Feb 23 20:17:23 2016 +1100 +Date: Wed Jul 27 08:18:05 2016 +1000 - update spec/README versions ahead of release + fix auditing on Linux + + get_remote_ipaddr() was replaced with ssh_remote_ipaddr() -commit b86a334aaaa4d1e643eb1fd71f718573d6d948b5 +commit 80e766fb089de4f3c92b1600eb99e9495e37c992 Author: Damien Miller -Date: Tue Feb 23 20:16:53 2016 +1100 +Date: Sun Jul 24 21:50:13 2016 +1000 - put back portable patchlevel to p1 + crank version numbers -commit 555dd35ff176847e3c6bd068ba2e8db4022eb24f +commit b1a478792d458f2e938a302e64bab2b520edc1b3 Author: djm@openbsd.org -Date: Tue Feb 23 09:14:34 2016 +0000 +Date: Sun Jul 24 11:45:36 2016 +0000 upstream commit - openssh-7.2 + openssh-7.3 - Upstream-ID: 9db776b26014147fc907ece8460ef2bcb0f11e78 + Upstream-ID: af106a7eb665f642648cf1993e162c899f358718 -commit 1acc058d0a7913838c830ed998a1a1fb5b7864bf -Author: Damien Miller -Date: Tue Feb 23 16:12:13 2016 +1100 +commit 353766e0881f069aeca30275ab706cd60a1a8fdd +Author: Darren Tucker +Date: Sat Jul 23 16:14:42 2016 +1000 - Disable tests where fs perms are incorrect + Move Cygwin IPPORT_RESERVED overrride to defines.h - Some tests have strict requirements on the filesystem permissions - for certain files and directories. This adds a regress/check-perm - tool that copies the relevant logic from sshd to exactly test - the paths in question. This lets us skip tests when the local - filesystem doesn't conform to our expectations rather than - continuing and failing the test run. - - ok dtucker@ + Patch from vinschen at redhat.com. -commit 39f303b1f36d934d8410b05625f25c7bcb75db4d -Author: Damien Miller -Date: Tue Feb 23 12:56:59 2016 +1100 +commit 368dd977ae07afb93f4ecea23615128c95ab2b32 +Author: djm@openbsd.org +Date: Sat Jul 23 02:54:08 2016 +0000 - fix sandbox on OSX Lion - - sshd was failing with: + upstream commit - ssh_sandbox_child: sandbox_init: dlopen(/usr/lib/libsandbox.1.dylib, 261):cw - image not found [preauth] + fix pledge violation with ssh -f; reported by Valentin + Kozamernik ok dtucker@ - caused by chroot before sandboxing. Avoid by explicitly linking libsandbox - to sshd. Spotted by Darren. + Upstream-ID: a61db7988db88d9dac3c4dd70e18876a8edf84aa -commit 0d1451a32c7436e6d3d482351e776bc5e7824ce4 +commit f00211e3c6d24d6ea2b64b4b1209f671f6c1d42e Author: djm@openbsd.org -Date: Tue Feb 23 01:34:14 2016 +0000 +Date: Fri Jul 22 07:00:46 2016 +0000 upstream commit - fix spurious error message when incorrect passphrase - entered for keys; reported by espie@ ok deraadt@ + improve wording; suggested by jmc@ - Upstream-ID: 58b2e46e63ed6912ed1ee780bd3bd8560f9a5899 + Upstream-ID: 55cb0a24c8e0618b3ceec80998dc82c85db2d2f8 -commit 09d87d79741beb85768b5e788d7dfdf4bc3543dc -Author: sobrado@openbsd.org -Date: Sat Feb 20 23:06:23 2016 +0000 +commit 83cbca693c3b0719270e6a0f2efe3f9ee93a65b8 +Author: dtucker@openbsd.org +Date: Fri Jul 22 05:46:11 2016 +0000 upstream commit - set ssh(1) protocol version to 2 only. - - ok djm@ + Lower loglevel for "Authenticated with partial success" + message similar to other similar level. bz#2599, patch from cgallek at + gmail.com, ok markus@ - Upstream-ID: e168daf9d27d7e392e3c9923826bd8e87b2b3a10 + Upstream-ID: 3faab814e947dc7b2e292edede23e94c608cb4dd -commit 9262e07826ba5eebf8423f7ac9e47ec488c47869 -Author: sobrado@openbsd.org -Date: Sat Feb 20 23:02:39 2016 +0000 +commit 10358abd087ab228b7ce2048efc4f3854a9ab9a6 +Author: Damien Miller +Date: Fri Jul 22 14:06:36 2016 +1000 - upstream commit - - add missing ~/.ssh/id_ecdsa and ~/.ssh/id_ed25519 to - IdentityFile. - - ok djm@ + retry waitpid on EINTR failure - Upstream-ID: 6ce99466312e4ae7708017c3665e3edb976f70cf + patch from Jakub Jelen on bz#2581; ok dtucker@ -commit c12f0fdce8f985fca8d71829fd64c5b89dc777f5 -Author: sobrado@openbsd.org -Date: Sat Feb 20 23:01:46 2016 +0000 +commit da88a70a89c800e74ea8e5661ffa127a3cc79a92 +Author: djm@openbsd.org +Date: Fri Jul 22 03:47:36 2016 +0000 upstream commit - AddressFamily defaults to any. - - ok djm@ - - Upstream-ID: 0d94aa06a4b889bf57a7f631c45ba36d24c13e0c - -commit 907091acb188b1057d50c2158f74c3ecf1c2302b -Author: Darren Tucker -Date: Fri Feb 19 09:05:39 2016 +1100 - - Make Solaris privs code build on older systems. + constify a few functions' arguments; patch from Jakub + Jelen bz#2581 - Not all systems with Solaris privs have priv_basicset so factor that - out and provide backward compatibility code. Similarly, not all have - PRIV_NET_ACCESS so wrap that in #ifdef. Based on code from - alex at cooperi.net and djm@ with help from carson at taltos.org and - wieland at purdue.edu. + Upstream-ID: f2043f51454ea37830ff6ad60c8b32b4220f448d -commit 292a8dee14e5e67dcd1b49ba5c7b9023e8420d59 +commit c36d91bd4ebf767f310f7cea88d61d1c15f53ddf Author: djm@openbsd.org -Date: Wed Feb 17 22:20:14 2016 +0000 +Date: Fri Jul 22 03:39:13 2016 +0000 upstream commit - rekey refactor broke SSH1; spotted by Tom G. Christensen + move debug("%p", key) to before key is free'd; probable + undefined behaviour on strict compilers; reported by Jakub Jelen bz#2581 - Upstream-ID: 43f0d57928cc077c949af0bfa71ef574dcb58243 + Upstream-ID: 767f323e1f5819508a0e35e388ec241bac2f953a -commit 3a13cb543df9919aec2fc6b75f3dd3802facaeca +commit 286f5a77c3bfec1e8892ca268087ac885ac871bf Author: djm@openbsd.org -Date: Wed Feb 17 08:57:34 2016 +0000 +Date: Fri Jul 22 03:35:11 2016 +0000 upstream commit - rsa-sha2-512,rsa-sha2-256 cannot be selected explicitly - in *KeyTypes options yet. Remove them from the lists of algorithms for now. - committing on behalf of markus@ ok djm@ + reverse the order in which -J/JumpHost proxies are visited to + be more intuitive and document - Upstream-ID: c6e8820eb8e610ac21551832c0c89684a9a51bb7 + reported by and manpage bits naddy@ + + Upstream-ID: 3a68fd6a841fd6cf8cedf6552a9607ba99df179a -commit a685ae8d1c24fb7c712c55a4f3280ee76f5f1e4b -Author: jmc@openbsd.org -Date: Wed Feb 17 07:38:19 2016 +0000 +commit fcd135c9df440bcd2d5870405ad3311743d78d97 +Author: dtucker@openbsd.org +Date: Thu Jul 21 01:39:35 2016 +0000 upstream commit - since these pages now clearly tell folks to avoid v1, - normalise the docs from a v2 perspective (i.e. stop pointing out which bits - are v2 only); + Skip passwords longer than 1k in length so clients can't + easily DoS sshd by sending very long passwords, causing it to spend CPU + hashing them. feedback djm@, ok markus@. - ok/tweaks djm ok markus + Brought to our attention by tomas.kuthan at oracle.com, shilei-c at + 360.cn and coredump at autistici.org - Upstream-ID: eb474f8c36fb6a532dc05c282f7965e38dcfa129 + Upstream-ID: d0af7d4a2190b63ba1d38eec502bc4be0be9e333 -commit c5c3f3279a0e4044b8de71b70d3570d692d0f29d -Author: djm@openbsd.org -Date: Wed Feb 17 05:29:04 2016 +0000 +commit 324583e8fb3935690be58790425793df619c6d4d +Author: naddy@openbsd.org +Date: Wed Jul 20 10:45:27 2016 +0000 upstream commit - make sandboxed privilege separation the default, not just - for new installs; "absolutely" deraadt@ + Do not clobber the global jump_host variables when + parsing an inactive configuration. ok djm@ - Upstream-ID: 5221ef3b927d2df044e9aa3f5db74ae91743f69b + Upstream-ID: 5362210944d91417d5976346d41ac0b244350d31 -commit eb3f7337a651aa01d5dec019025e6cdc124ed081 +commit 32d921c323b989d28405e78d0a8923d12913d737 Author: jmc@openbsd.org -Date: Tue Feb 16 07:47:54 2016 +0000 +Date: Tue Jul 19 12:59:16 2016 +0000 upstream commit - no need to state that protocol 2 is the default twice; + tweak previous; - Upstream-ID: b1e4c36b0c2e12e338e5b66e2978f2ac953b95eb + Upstream-ID: f3c1a5b3f05dff366f60c028728a2b43f15ff534 -commit e7901efa9b24e5b0c7e74f2c5520d47eead4d005 -Author: djm@openbsd.org -Date: Tue Feb 16 05:11:04 2016 +0000 +commit d7eabc86fa049a12ba2c3fb198bd1d51b37f7025 +Author: dtucker@openbsd.org +Date: Tue Jul 19 11:38:53 2016 +0000 upstream commit - Replace list of ciphers and MACs adjacent to -1/-2 flag - descriptions in ssh(1) with a strong recommendation not to use protocol 1. - Add a similar warning to the Protocol option descriptions in ssh_config(5) - and sshd_config(5); - - prompted by and ok mmcc@ + Allow wildcard for PermitOpen hosts as well as ports. + bz#2582, patch from openssh at mzpqnxow.com and jjelen at redhat.com. ok + markus@ - Upstream-ID: 961f99e5437d50e636feca023978950a232ead5e + Upstream-ID: af0294e9b9394c4e16e991424ca0a47a7cc605f2 -commit 5a0fcb77287342e2fc2ba1cee79b6af108973dc2 -Author: djm@openbsd.org -Date: Tue Feb 16 03:37:48 2016 +0000 +commit b98a2a8348e907b3d71caafd80f0be8fdd075943 +Author: markus@openbsd.org +Date: Mon Jul 18 11:35:33 2016 +0000 upstream commit - add a "Close session" log entry (at loglevel=verbose) to - correspond to the existing "Starting session" one. Also include the session - id number to make multiplexed sessions more apparent. - - feedback and ok dtucker@ + Reduce timing attack against obsolete CBC modes by always + computing the MAC over a fixed size of data. Reported by Jean Paul + Degabriele, Kenny Paterson, Torben Hansen and Martin Albrecht. ok djm@ - Upstream-ID: e72d2ac080e02774376325136e532cb24c2e617c + Upstream-ID: f20a13279b00ba0afbacbcc1f04e62e9d41c2912 -commit 624fd395b559820705171f460dd33d67743d13d6 -Author: djm@openbsd.org -Date: Wed Feb 17 02:24:17 2016 +0000 +commit dbf788b4d9d9490a5fff08a7b09888272bb10fcc +Author: Darren Tucker +Date: Thu Jul 21 14:17:31 2016 +1000 - upstream commit - - include bad $SSH_CONNECTION in failure output + Search users for one with a valid salt. - Upstream-Regress-ID: b22d72edfde78c403aaec2b9c9753ef633cc0529 + If the root account is locked (eg password "!!" or "*LK*") keep looking + until we find a user with a valid salt to use for crypting passwords of + invalid users. ok djm@ -commit 60d860e54b4f199e5e89963b1c086981309753cb +commit e8b58f48fbb1b524fb4f0d4865fa0005d6a4b782 Author: Darren Tucker -Date: Wed Feb 17 13:37:09 2016 +1100 +Date: Mon Jul 18 17:22:49 2016 +1000 - Rollback addition of va_start. + Explicitly specify source files for regress tools. - va_start was added in 0f754e29dd3760fc0b172c1220f18b753fb0957e, however - it has the wrong number of args and it's not usable in non-variadic - functions anyway so it breaks things (for example Solaris 2.6 as - reported by Tom G. Christensen).i ok djm@ + Since adding $(REGRESSLIBS), $? is wrong because it includes only the + changed source files. $< seems like it'd be right however it doesn't + seem to work on some non-GNU makes, so do what works everywhere. -commit 2fee909c3cee2472a98b26eb82696297b81e0d38 +commit eac1bbd06872c273f16ac0f9976b0aef026b701b Author: Darren Tucker -Date: Wed Feb 17 09:48:15 2016 +1100 +Date: Mon Jul 18 17:12:22 2016 +1000 - Look for gethostbyname in libresolv and libnsl. - - Should fix build problem on Solaris 2.6 reported by Tom G. Christensen. + Conditionally include err.h. -commit 5ac712d81a84396aab441a272ec429af5b738302 -Author: Damien Miller -Date: Tue Feb 16 10:45:02 2016 +1100 +commit 0a454147568746c503f669e1ba861f76a2e7a585 +Author: Darren Tucker +Date: Mon Jul 18 16:26:26 2016 +1000 - make existing ssh_malloc_init only for __OpenBSD__ + Remove local implementation of err, errx. + + We now have a shared implementation in libopenbsd-compat. -commit 24c9bded569d9f2449ded73f92fb6d12db7a9eec +commit eb999a4590846ba4d56ddc90bd07c23abfbab7b1 Author: djm@openbsd.org -Date: Mon Feb 15 23:32:37 2016 +0000 +Date: Mon Jul 18 06:08:01 2016 +0000 upstream commit - memleak of algorithm name in mm_answer_sign; reported by - Jakub Jelen + Add some unsigned overflow checks for extra_pad. None of + these are reachable with the amount of padding that we use internally. + bz#2566, pointed out by Torben Hansen. ok markus@ - Upstream-ID: ccd742cd25952240ebd23d7d4d6b605862584d08 + Upstream-ID: 4d4be8450ab2fc1b852d5884339f8e8c31c3fd76 -commit ffb1e7e896139a42ceb78676f637658f44612411 -Author: dtucker@openbsd.org -Date: Mon Feb 15 09:47:49 2016 +0000 +commit c71ba790c304545464bb494de974cdf0f4b5cf1e +Author: Darren Tucker +Date: Mon Jul 18 15:43:25 2016 +1000 - upstream commit - - Add a function to enable security-related malloc_options. - With and ok deraadt@, something similar has been in the snaps for a while. + Add dependency on libs for unit tests. - Upstream-ID: 43a95523b832b7f3b943d2908662191110c380ed + Makes "./configure && make tests" work again. ok djm@ -commit ef39e8c0497ff0564990a4f9e8b7338b3ba3507c -Author: Damien Miller -Date: Tue Feb 16 10:34:39 2016 +1100 +commit 8199d0311aea3e6fd0284c9025e7a83f4ece79e8 +Author: Darren Tucker +Date: Mon Jul 18 13:47:39 2016 +1000 - sync ssh-copy-id with upstream 783ef08b0a75 + Correct location for kexfuzz in clean target. -commit d2d772f55b19bb0e8d03c2fe1b9bb176d9779efd -Author: djm@openbsd.org -Date: Fri Feb 12 00:20:30 2016 +0000 +commit 01558b7b07af43da774d3a11a5c51fa9c310849d +Author: Darren Tucker +Date: Mon Jul 18 09:33:25 2016 +1000 - upstream commit + Handle PAM_MAXTRIES from modules. - avoid fatal() for PKCS11 tokens that present empty key IDs - bz#1773, ok markus@ + bz#2249: handle the case where PAM returns PAM_MAXTRIES by ceasing to offer + password and keyboard-interative authentication methods. Should prevent + "sshd ignoring max retries" warnings in the log. ok djm@ - Upstream-ID: 044a764fee526f2c4a9d530bd10695422d01fc54 + It probably won't trigger with keyboard-interactive in the default + configuration because the retry counter is stored in module-private + storage which goes away with the sshd PAM process (see bz#688). On the + other hand, those cases probably won't log a warning either. -commit e4c918a6c721410792b287c9fd21356a1bed5805 +commit 65c6c6b567ab5ab12945a5ad8e0ab3a8c26119cc Author: djm@openbsd.org -Date: Thu Feb 11 02:56:32 2016 +0000 +Date: Sun Jul 17 04:20:16 2016 +0000 upstream commit - sync crypto algorithm lists in ssh_config(5) and - sshd_config(5) with current reality. bz#2527 + support UTF-8 characters in ssh(1) banners using + schwarze@'s safe fmprintf printer; bz#2058 - Upstream-ID: d7fd1b6c1ed848d866236bcb1d7049d2bb9b2ff6 + feedback schwarze@ ok dtucker@ + + Upstream-ID: a72ce4e3644c957643c9524eea2959e41b91eea7 -commit e30cabfa4ab456a30b3224f7f545f1bdfc4a2517 -Author: djm@openbsd.org -Date: Thu Feb 11 02:21:34 2016 +0000 +commit e4eb7d910976fbfc7ce3e90c95c11b07b483d0d7 +Author: jmc@openbsd.org +Date: Sat Jul 16 06:57:55 2016 +0000 upstream commit - fix regression in openssh-6.8 sftp client: existing - destination directories would incorrectly terminate recursive uploads; - bz#2528 + - add proxyjump to the options list - formatting fixes - + update usage() - Upstream-ID: 3306be469f41f26758e3d447987ac6d662623e18 + ok djm + + Upstream-ID: 43d318e14ce677a2eec8f21ef5ba2f9f68a59457 -commit 714e367226ded4dc3897078be48b961637350b05 -Author: djm@openbsd.org -Date: Tue Feb 9 05:30:04 2016 +0000 +commit af1f084857621f14bd9391aba8033d35886c2455 +Author: dtucker@openbsd.org +Date: Fri Jul 15 05:01:58 2016 +0000 upstream commit - turn off more old crypto in the client: hmac-md5, ripemd, - truncated HMACs, RC4, blowfish. ok markus@ dtucker@ + Reduce the syslog level of some relatively common protocol + events from LOG_CRIT by replacing fatal() calls with logdie(). Part of + bz#2585, ok djm@ - Upstream-ID: 96aa11c2c082be45267a690c12f1d2aae6acd46e + Upstream-ID: 9005805227c94edf6ac02a160f0e199638d288e5 -commit 5a622844ff7f78dcb75e223399f9ef0977e8d0a3 -Author: djm@openbsd.org -Date: Mon Feb 8 23:40:12 2016 +0000 +commit bd5f2b78b69cf38d6049a0de445a79c8595e4a1f +Author: Damien Miller +Date: Fri Jul 15 19:14:48 2016 +1000 - upstream commit + missing openssl/dh.h + +commit 4a984fd342effe5f0aad874a0d538c4322d973c0 +Author: Damien Miller +Date: Fri Jul 15 18:47:07 2016 +1000 + + cast to avoid type warning in error message + +commit 5abfb15ced985c340359ae7fb65a625ed3692b3e +Author: Darren Tucker +Date: Fri Jul 15 14:48:30 2016 +1000 + + Move VA_COPY macro into compat header. - don't attempt to percent_expand() already-canonicalised - addresses, avoiding unnecessary failures when attempting to connect to scoped - IPv6 addresses (that naturally contain '%' characters) + Some AIX compilers unconditionally undefine va_copy but don't set it back + to an internal function, causing link errors. In some compat code we + already use VA_COPY instead so move the two existing instances into the + shared header and use for sshbuf-getput-basic.c too. Should fix building + with at lease some versions of AIX's compiler. bz#2589, ok djm@ + +commit 832b7443b7a8e181c95898bc5d73497b7190decd +Author: Damien Miller +Date: Fri Jul 15 14:45:34 2016 +1000 + + disable ciphers not supported by OpenSSL - Upstream-ID: f24569cffa1a7cbde5f08dc739a72f4d78aa5c6a + bz#2466 ok dtucker@ -commit 19bcf2ea2d17413f2d9730dd2a19575ff86b9b6a +commit 5fbe93fc6fbb2fe211e035703dec759d095e3dd8 +Author: Damien Miller +Date: Fri Jul 15 13:54:31 2016 +1000 + + add a --disable-pkcs11 knob + +commit 679ce88ec2a8e2fe6515261c489e8c1449bb9da9 +Author: Damien Miller +Date: Fri Jul 15 13:44:38 2016 +1000 + + fix newline escaping for unsupported_algorithms + + The hmac-ripemd160 was incorrect and could lead to broken + Makefiles on systems that lacked support for it, but I made + all the others consistent too. + +commit ed877ef653847d056bb433975d731b7a1132a979 Author: djm@openbsd.org -Date: Mon Feb 8 10:57:07 2016 +0000 +Date: Fri Jul 15 00:24:30 2016 +0000 upstream commit - refactor activation of rekeying + Add a ProxyJump ssh_config(5) option and corresponding -J + ssh(1) command-line flag to allow simplified indirection through a SSH + bastion or "jump host". - This makes automatic rekeying internal to the packet code (previously - the server and client loops needed to assist). In doing to it makes - application of rekey limits more accurate by accounting for packets - about to be sent as well as packets queued during rekeying events - themselves. + These options construct a proxy command that connects to the + specified jump host(s) (more than one may be specified) and uses + port-forwarding to establish a connection to the next destination. - Based on a patch from dtucker@ which was in turn based on a patch - Aleksander Adamowski in bz#2521; ok markus@ + This codifies the safest way of indirecting connections through SSH + servers and makes it easy to use. - Upstream-ID: a441227fd64f9739850ca97b4cf794202860fcd8 + ok markus@ + + Upstream-ID: fa899cb8b26d889da8f142eb9774c1ea36b04397 -commit 603ba41179e4b53951c7b90ee95b6ef3faa3f15d -Author: naddy@openbsd.org -Date: Fri Feb 5 13:28:19 2016 +0000 +commit 5c02dd126206a26785379e80f2d3848e4470b711 +Author: Darren Tucker +Date: Fri Jul 15 12:56:39 2016 +1000 - upstream commit + Map umac_ctx struct name too. - Only check errno if read() has returned an error. EOF is - not an error. This fixes a problem where the mux master would sporadically - fail to notice that the client had exited. ok mikeb@ djm@ + Prevents size mismatch linker warnings on Solaris 11. + +commit 283b97ff33ea2c641161950849931bd578de6946 +Author: Darren Tucker +Date: Fri Jul 15 13:49:44 2016 +1000 + + Mitigate timing of disallowed users PAM logins. - Upstream-ID: 3c2dadc21fac6ef64665688aac8a75fffd57ae53 + When sshd decides to not allow a login (eg PermitRootLogin=no) and + it's using PAM, it sends a fake password to PAM so that the timing for + the failure is not noticeably different whether or not the password + is correct. This behaviour can be detected by sending a very long + password string which is slower to hash than the fake password. + + Mitigate by constructing an invalid password that is the same length + as the one from the client and thus takes the same time to hash. + Diff from djm@ -commit 56d7dac790693ce420d225119283bc355cff9185 -Author: jsg@openbsd.org -Date: Fri Feb 5 04:31:21 2016 +0000 +commit 9286875a73b2de7736b5e50692739d314cd8d9dc +Author: Darren Tucker +Date: Fri Jul 15 13:32:45 2016 +1000 + + Determine appropriate salt for invalid users. + + When sshd is processing a non-PAM login for a non-existent user it uses + the string from the fakepw structure as the salt for crypt(3)ing the + password supplied by the client. That string has a Blowfish prefix, so on + systems that don't understand that crypt will fail fast due to an invalid + salt, and even on those that do it may have significantly different timing + from the hash methods used for real accounts (eg sha512). This allows + user enumeration by, eg, sending large password strings. This was noted + by EddieEzra.Harari at verint.com (CVE-2016-6210). + + To mitigate, use the same hash algorithm that root uses for hashing + passwords for users that do not exist on the system. ok djm@ + +commit a162dd5e58ca5b224d7500abe35e1ef32b5de071 +Author: Darren Tucker +Date: Thu Jul 14 21:19:59 2016 +1000 + + OpenSSL 1.1.x not currently supported. + +commit 7df91b01fc558a33941c5c5f31abbcdc53a729fb +Author: Darren Tucker +Date: Thu Jul 14 12:25:24 2016 +1000 + + Check for VIS_ALL. + + If we don't have it, set BROKEN_STRNVIS to activate the compat replacement. + +commit ee67716f61f1042d5e67f91c23707cca5dcdd7d0 +Author: dtucker@openbsd.org +Date: Thu Jul 14 01:24:21 2016 +0000 upstream commit - avoid an uninitialised value when NumberOfPasswordPrompts - is 0 ok markus@ djm@ + Correct equal in test. - Upstream-ID: 11b068d83c2865343aeb46acf1e9eec00f829b6b + Upstream-Regress-ID: 4e32f7a5c57a619c4e8766cb193be2a1327ec37a -commit deae7d52d59c5019c528f977360d87fdda15d20b -Author: djm@openbsd.org -Date: Fri Feb 5 03:07:06 2016 +0000 +commit 372807c2065c8572fdc6478b25cc5ac363743073 +Author: tb@openbsd.org +Date: Mon Jul 11 21:38:13 2016 +0000 upstream commit - mention internal DH-GEX fallback groups; bz#2302 + Add missing "recvfd" pledge promise: Raf Czlonka reported + ssh coredumps when Control* keywords were set in ssh_config. This patch also + fixes similar problems with scp and sftp. - Upstream-ID: e7b395fcca3122cd825515f45a2e41c9a157e09e + ok deraadt, looks good to millert + + Upstream-ID: ca2099eade1ef3e87a79614fefa26a0297ad8a3b -commit cac3b6665f884d46192c0dc98a64112e8b11a766 -Author: djm@openbsd.org -Date: Fri Feb 5 02:37:56 2016 +0000 +commit e0453f3df64bf485c61c7eb6bd12893eee9fe2cd +Author: tedu@openbsd.org +Date: Mon Jul 11 03:19:44 2016 +0000 upstream commit - better description for MaxSessions; bz#2531 + obsolete note about fascistloggin is obsolete. ok djm + dtucker - Upstream-ID: e2c0d74ee185cd1a3e9d4ca1f1b939b745b354da + Upstream-ID: dae60df23b2bb0e89f42661ddd96a7b0d1b7215a -commit 5ef4b0fdcc7a239577a754829b50022b91ab4712 +commit a2333584170a565adf4f209586772ef8053b10b8 +Author: Darren Tucker +Date: Thu Jul 14 10:59:09 2016 +1000 + + Add compat code for missing wcwidth. + + If we don't have wcwidth force fallback implementations of nl_langinfo + and mbtowc. Based on advice from Ingo Schwarze. + +commit 8aaec7050614494014c47510b7e94daf6e644c62 Author: Damien Miller -Date: Wed Jan 27 17:45:56 2016 +1100 +Date: Thu Jul 14 09:48:48 2016 +1000 - avoid FreeBSD RCS Id in comment + fix missing include for systems with err.h + +commit 6310ef27a2567cda66d6cf0c1ad290ee1167f243 +Author: Darren Tucker +Date: Wed Jul 13 14:42:35 2016 +1000 + + Move err.h replacements into compat lib. - Change old $FreeBSD version string in comment so it doesn't - become an RCS ident downstream; requested by des AT des.no + Move implementations of err.h replacement functions into their own file + in the libopenbsd-compat so we can use them in kexfuzz.c too. ok djm@ -commit 696d12683c90d20a0a9c5f4275fc916b7011fb04 -Author: djm@openbsd.org -Date: Thu Feb 4 23:43:48 2016 +0000 +commit f3f2cc8386868f51440c45210098f65f9787449a +Author: Darren Tucker +Date: Mon Jul 11 17:23:38 2016 +1000 - upstream commit + Check for wchar.h and langinfo.h - printf argument casts to avoid warnings on strict - compilers + Wrap includes in the appropriate #ifdefs. + +commit b9c50614eba9d90939b2b119b6e1b7e03b462278 +Author: Damien Miller +Date: Fri Jul 8 13:59:13 2016 +1000 + + whitelist more architectures for seccomp-bpf - Upstream-ID: 7b9f6712cef01865ad29070262d366cf13587c9c + bz#2590 - testing and patch from Jakub Jelen -commit 5658ef2501e785fbbdf5de2dc33b1ff7a4dca73a -Author: millert@openbsd.org -Date: Mon Feb 1 21:18:17 2016 +0000 +commit 18813a32b6fd964037e0f5e1893cb4468ac6a758 +Author: guenther@openbsd.org +Date: Mon Jul 4 18:01:44 2016 +0000 upstream commit - Avoid ugly "DISPLAY "(null)" invalid; disabling X11 - forwarding" message when DISPLAY is not set. This could also result in a - crash on systems with a printf that doesn't handle NULL. OK djm@ + DEBUGLIBS has been broken since the gcc4 switch, so delete + it. CFLAGS contains -g by default anyway - Upstream-ID: 20ee0cfbda678a247264c20ed75362042b90b412 + problem noted by Edgar Pettijohn (edgar (at) pettijohn-web.com) + ok millert@ kettenis@ deraadt@ + + Upstream-Regress-ID: 4a0bb72f95c63f2ae9daa8a040ac23914bddb542 -commit 537f88ec7bcf40bd444ac5584c707c5588c55c43 -Author: dtucker@openbsd.org -Date: Fri Jan 29 05:18:15 2016 +0000 +commit 6d31193d0baa3da339c196ac49625b7ba1c2ecc7 +Author: djm@openbsd.org +Date: Fri Jul 8 03:44:42 2016 +0000 upstream commit - Add regression test for RekeyLimit parsing of >32bit values - (4G and 8G). + Improve crypto ordering for Encrypt-then-MAC (EtM) mode + MAC algorithms. - Upstream-Regress-ID: 548390350c62747b6234f522a99c319eee401328 + Previously we were computing the MAC, decrypting the packet and then + checking the MAC. This gave rise to the possibility of creating a + side-channel oracle in the decryption step, though no such oracle has + been identified. + + This adds a mac_check() function that computes and checks the MAC in + one pass, and uses it to advance MAC checking for EtM algorithms to + before payload decryption. + + Reported by Jean Paul Degabriele, Kenny Paterson, Torben Hansen and + Martin Albrecht. feedback and ok markus@ + + Upstream-ID: 1999bb67cab47dda5b10b80d8155fe83d4a1867b -commit 4c6cb8330460f94e6c7ae28a364236d4188156a3 -Author: dtucker@openbsd.org -Date: Fri Jan 29 23:04:46 2016 +0000 +commit 71f5598f06941f645a451948c4a5125c83828e1c +Author: guenther@openbsd.org +Date: Mon Jul 4 18:01:44 2016 +0000 upstream commit - Remove leftover roaming dead code. ok djm markus. + DEBUGLIBS has been broken since the gcc4 switch, so + delete it. CFLAGS contains -g by default anyway - Upstream-ID: 13d1f9c8b65a5109756bcfd3b74df949d53615be + problem noted by Edgar Pettijohn (edgar (at) pettijohn-web.com) + ok millert@ kettenis@ deraadt@ + + Upstream-ID: 96c5054e3e1f170c6276902d5bc65bb3b87a2603 -commit 28136471809806d6246ef41e4341467a39fe2f91 -Author: djm@openbsd.org -Date: Fri Jan 29 05:46:01 2016 +0000 +commit e683fc6f1c8c7295648dbda679df8307786ec1ce +Author: dtucker@openbsd.org +Date: Thu Jun 30 05:17:05 2016 +0000 upstream commit - include packet type of non-data packets in debug3 output; - ok markus dtucker + Explicitly check for 100% completion to avoid potential + floating point rounding error, which could cause progressmeter to report 99% + on completion. While there invert the test so the 100% case is clearer. with + & ok djm@ - Upstream-ID: 034eaf639acc96459b9c5ce782db9fcd8bd02d41 + Upstream-ID: a166870c5878e422f3c71ff802e2ccd7032f715d -commit 6fd6e28daccafaa35f02741036abe64534c361a1 -Author: dtucker@openbsd.org -Date: Fri Jan 29 03:31:03 2016 +0000 +commit 772e6cec0ed740fc7db618dc30b4134f5a358b43 +Author: jmc@openbsd.org +Date: Wed Jun 29 17:14:28 2016 +0000 upstream commit - Revert "account for packets buffered but not yet - processed" change as it breaks for very small RekeyLimit values due to - continuous rekeying. ok djm@ + sort the -o list; - Upstream-ID: 7e03f636cb45ab60db18850236ccf19079182a19 + Upstream-ID: 1a97465ede8790b4d47cb618269978e07f41f8ac -commit 921ff00b0ac429666fb361d2d6cb1c8fff0006cb -Author: dtucker@openbsd.org -Date: Fri Jan 29 02:54:45 2016 +0000 +commit 46ecd19e554ccca15a7309cd1b6b44bc8e6b84af +Author: djm@openbsd.org +Date: Thu Jun 23 05:17:51 2016 +0000 upstream commit - Allow RekeyLimits in excess of 4G up to 2**63 bits - (limited by the return type of scan_scaled). Part of bz#2521, ok djm. + fix AuthenticationMethods during configuration re-parse; + reported by Juan Francisco Cantero Hurtado - Upstream-ID: 13bea82be566b9704821b1ea05bf7804335c7979 + Upstream-ID: 8ffa1dac25c7577eca8238e825317ab20848f9b4 -commit c0060a65296f01d4634f274eee184c0e93ba0f23 -Author: dtucker@openbsd.org -Date: Fri Jan 29 02:42:46 2016 +0000 +commit 3147e7595d0f2f842a666c844ac53e6c7a253d7e +Author: djm@openbsd.org +Date: Sun Jun 19 07:48:02 2016 +0000 upstream commit - Account for packets buffered but not yet processed when - computing whether or not it is time to perform rekeying. bz#2521, based - loosely on a patch from olo at fb.com, ok djm@ + revert 1.34; causes problems loading public keys - Upstream-ID: 67e268b547f990ed220f3cb70a5624d9bda12b8c + reported by semarie@ + + Upstream-ID: b393794f8935c8b15d98a407fe7721c62d2ed179 -commit 44cf930e670488c85c9efeb373fa5f4b455692ac -Author: djm@openbsd.org -Date: Wed Jan 27 06:44:58 2016 +0000 +commit ad23a75509f4320d43f628c50f0817e3ad12bfa7 +Author: jmc@openbsd.org +Date: Fri Jun 17 06:33:30 2016 +0000 upstream commit - change old $FreeBSD version string in comment so it doesn't - become an RCS ident downstream; requested by des AT des.no + grammar fix; - Upstream-ID: 8ca558c01f184e596b45e4fc8885534b2c864722 + Upstream-ID: 5d5b21c80f1e81db367333ce0bb3e5874fb3e463 -commit ebacd377769ac07d1bf3c75169644336056b7060 +commit 5e28b1a2a3757548b40018cc2493540a17c82e27 Author: djm@openbsd.org -Date: Wed Jan 27 00:53:12 2016 +0000 +Date: Fri Jun 17 05:06:23 2016 +0000 upstream commit - make the debug messages a bit more useful here + translate OpenSSL error codes to something more + meaninful; bz#2522 reported by Jakub Jelen, ok dtucker@ - Upstream-ID: 478ccd4e897e0af8486b294aa63aa3f90ab78d64 + Upstream-ID: 4cb0795a366381724314e6515d57790c5930ffe5 -commit 458abc2934e82034c5c281336d8dc0f910aecad3 -Author: jsg@openbsd.org -Date: Sat Jan 23 05:31:35 2016 +0000 +commit b64faeb5eda7eff8210c754d00464f9fe9d23de5 +Author: djm@openbsd.org +Date: Fri Jun 17 05:03:40 2016 +0000 upstream commit - Zero a stack buffer with explicit_bzero() instead of - memset() when returning from client_loop() for consistency with - buffer_free()/sshbuf_free(). + ban AuthenticationMethods="" and accept + AuthenticationMethods=any for the default behaviour of not requiring multiple + authentication - ok dtucker@ deraadt@ djm@ + bz#2398 from Jakub Jelen; ok dtucker@ - Upstream-ID: bc9975b2095339811c3b954694d7d15ea5c58f66 + Upstream-ID: fabd7f44d59e4518d241d0d01e226435cc23cf27 -commit 65a3c0dacbc7dbb75ddb6a70ebe22d8de084d0b0 +commit 9816fc5daee5ca924dd5c4781825afbaab728877 Author: dtucker@openbsd.org -Date: Wed Jan 20 09:22:39 2016 +0000 +Date: Thu Jun 16 11:00:17 2016 +0000 upstream commit - Include sys/time.h for gettimeofday. From sortie at - maxsi.org. + Include stdarg.h for va_copy as per man page. - Upstream-ID: 6ed0c33b836d9de0a664cd091e86523ecaa2fb3b + Upstream-ID: 105d6b2f1af2fbd9d91c893c436ab121434470bd -commit fc77ccdc2ce6d5d06628b8da5048a6a5f6ffca5a -Author: markus@openbsd.org -Date: Thu Jan 14 22:56:56 2016 +0000 +commit b6cf84b51bc0f5889db48bf29a0c771954ade283 +Author: jmc@openbsd.org +Date: Thu Jun 16 06:10:45 2016 +0000 upstream commit - fd leaks; report Qualys Security Advisory team; ok - deraadt@ *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-vendor@freebsd.org Tue Jan 31 12:31:40 2017 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1BDECCC9F84; Tue, 31 Jan 2017 12:31:40 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C722B1E96; Tue, 31 Jan 2017 12:31:39 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0VCVcnq045240; Tue, 31 Jan 2017 12:31:38 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0VCVcUi045239; Tue, 31 Jan 2017 12:31:38 GMT (envelope-from des@FreeBSD.org) Message-Id: <201701311231.v0VCVcUi045239@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Tue, 31 Jan 2017 12:31:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r313011 - vendor-crypto/openssh/7.3p1 X-SVN-Group: vendor-crypto MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Jan 2017 12:31:40 -0000 Author: des Date: Tue Jan 31 12:31:38 2017 New Revision: 313011 URL: https://svnweb.freebsd.org/changeset/base/313011 Log: Tag OpenSSH 7.3p1. Added: vendor-crypto/openssh/7.3p1/ - copied from r313010, vendor-crypto/openssh/dist/ From owner-svn-src-vendor@freebsd.org Tue Jan 31 12:33:49 2017 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 349EECC919F; Tue, 31 Jan 2017 12:33:49 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id DF24521C; Tue, 31 Jan 2017 12:33:48 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0VCXm2r046766; Tue, 31 Jan 2017 12:33:48 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0VCXlwg046761; Tue, 31 Jan 2017 12:33:47 GMT (envelope-from des@FreeBSD.org) Message-Id: <201701311233.v0VCXlwg046761@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Tue, 31 Jan 2017 12:33:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r313012 - in vendor-crypto/openssh/dist: . contrib contrib/redhat contrib/suse openbsd-compat regress regress/misc/kexfuzz regress/unittests regress/unittests/bitmap regress/unittests/h... X-SVN-Group: vendor-crypto MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Jan 2017 12:33:49 -0000 Author: des Date: Tue Jan 31 12:33:47 2017 New Revision: 313012 URL: https://svnweb.freebsd.org/changeset/base/313012 Log: Vendor import of OpenSSH 7.4p1. Added: vendor-crypto/openssh/dist/openbsd-compat/strcasestr.c vendor-crypto/openssh/dist/regress/allow-deny-users.sh vendor-crypto/openssh/dist/regress/keygen-moduli.sh vendor-crypto/openssh/dist/regress/moduli.in vendor-crypto/openssh/dist/regress/unittests/match/ vendor-crypto/openssh/dist/regress/unittests/match/Makefile vendor-crypto/openssh/dist/regress/unittests/match/tests.c Deleted: vendor-crypto/openssh/dist/auth-chall.c vendor-crypto/openssh/dist/auth-rh-rsa.c vendor-crypto/openssh/dist/auth-rsa.c vendor-crypto/openssh/dist/auth1.c vendor-crypto/openssh/dist/monitor_mm.c vendor-crypto/openssh/dist/monitor_mm.h vendor-crypto/openssh/dist/openbsd-compat/xmmap.c Modified: vendor-crypto/openssh/dist/.skipped-commit-ids vendor-crypto/openssh/dist/CREDITS vendor-crypto/openssh/dist/ChangeLog vendor-crypto/openssh/dist/INSTALL vendor-crypto/openssh/dist/Makefile.in vendor-crypto/openssh/dist/PROTOCOL vendor-crypto/openssh/dist/README vendor-crypto/openssh/dist/README.platform vendor-crypto/openssh/dist/README.privsep vendor-crypto/openssh/dist/TODO vendor-crypto/openssh/dist/aclocal.m4 vendor-crypto/openssh/dist/addrmatch.c vendor-crypto/openssh/dist/atomicio.c vendor-crypto/openssh/dist/audit-bsm.c vendor-crypto/openssh/dist/audit-linux.c vendor-crypto/openssh/dist/audit.c vendor-crypto/openssh/dist/audit.h vendor-crypto/openssh/dist/auth-options.c vendor-crypto/openssh/dist/auth-options.h vendor-crypto/openssh/dist/auth-pam.c vendor-crypto/openssh/dist/auth-pam.h vendor-crypto/openssh/dist/auth-rhosts.c vendor-crypto/openssh/dist/auth.c vendor-crypto/openssh/dist/auth.h vendor-crypto/openssh/dist/auth2-pubkey.c vendor-crypto/openssh/dist/authfile.c vendor-crypto/openssh/dist/buildpkg.sh.in vendor-crypto/openssh/dist/chacha.h vendor-crypto/openssh/dist/channels.c vendor-crypto/openssh/dist/channels.h vendor-crypto/openssh/dist/cipher-3des1.c vendor-crypto/openssh/dist/cipher-bf1.c vendor-crypto/openssh/dist/cipher-chachapoly.c vendor-crypto/openssh/dist/cipher.c vendor-crypto/openssh/dist/cipher.h vendor-crypto/openssh/dist/clientloop.c vendor-crypto/openssh/dist/clientloop.h vendor-crypto/openssh/dist/config.guess vendor-crypto/openssh/dist/config.h.in vendor-crypto/openssh/dist/config.sub vendor-crypto/openssh/dist/configure vendor-crypto/openssh/dist/configure.ac vendor-crypto/openssh/dist/contrib/Makefile vendor-crypto/openssh/dist/contrib/gnome-ssh-askpass2.c vendor-crypto/openssh/dist/contrib/redhat/openssh.spec vendor-crypto/openssh/dist/contrib/suse/openssh.spec vendor-crypto/openssh/dist/defines.h vendor-crypto/openssh/dist/dh.c vendor-crypto/openssh/dist/entropy.h vendor-crypto/openssh/dist/gss-genr.c vendor-crypto/openssh/dist/hostfile.c vendor-crypto/openssh/dist/kex.c vendor-crypto/openssh/dist/kex.h vendor-crypto/openssh/dist/kexgexc.c vendor-crypto/openssh/dist/kexgexs.c vendor-crypto/openssh/dist/key.h vendor-crypto/openssh/dist/krl.c vendor-crypto/openssh/dist/mac.c vendor-crypto/openssh/dist/match.c vendor-crypto/openssh/dist/md5crypt.h vendor-crypto/openssh/dist/mdoc2man.awk vendor-crypto/openssh/dist/misc.c vendor-crypto/openssh/dist/misc.h vendor-crypto/openssh/dist/moduli vendor-crypto/openssh/dist/moduli.c vendor-crypto/openssh/dist/monitor.c vendor-crypto/openssh/dist/monitor.h vendor-crypto/openssh/dist/monitor_wrap.c vendor-crypto/openssh/dist/monitor_wrap.h vendor-crypto/openssh/dist/mux.c vendor-crypto/openssh/dist/myproposal.h vendor-crypto/openssh/dist/opacket.h vendor-crypto/openssh/dist/openbsd-compat/Makefile.in vendor-crypto/openssh/dist/openbsd-compat/base64.h vendor-crypto/openssh/dist/openbsd-compat/bsd-asprintf.c vendor-crypto/openssh/dist/openbsd-compat/bsd-cray.c vendor-crypto/openssh/dist/openbsd-compat/bsd-cray.h vendor-crypto/openssh/dist/openbsd-compat/bsd-cygwin_util.c vendor-crypto/openssh/dist/openbsd-compat/bsd-cygwin_util.h vendor-crypto/openssh/dist/openbsd-compat/bsd-misc.c vendor-crypto/openssh/dist/openbsd-compat/bsd-misc.h vendor-crypto/openssh/dist/openbsd-compat/bsd-nextstep.c vendor-crypto/openssh/dist/openbsd-compat/bsd-nextstep.h vendor-crypto/openssh/dist/openbsd-compat/bsd-openpty.c vendor-crypto/openssh/dist/openbsd-compat/bsd-poll.c vendor-crypto/openssh/dist/openbsd-compat/bsd-setres_id.c vendor-crypto/openssh/dist/openbsd-compat/bsd-setres_id.h vendor-crypto/openssh/dist/openbsd-compat/bsd-statvfs.c vendor-crypto/openssh/dist/openbsd-compat/bsd-statvfs.h vendor-crypto/openssh/dist/openbsd-compat/bsd-waitpid.c vendor-crypto/openssh/dist/openbsd-compat/bsd-waitpid.h vendor-crypto/openssh/dist/openbsd-compat/explicit_bzero.c vendor-crypto/openssh/dist/openbsd-compat/fake-rfc2553.c vendor-crypto/openssh/dist/openbsd-compat/fake-rfc2553.h vendor-crypto/openssh/dist/openbsd-compat/getcwd.c vendor-crypto/openssh/dist/openbsd-compat/getgrouplist.c vendor-crypto/openssh/dist/openbsd-compat/openbsd-compat.h vendor-crypto/openssh/dist/openbsd-compat/openssl-compat.c vendor-crypto/openssh/dist/openbsd-compat/openssl-compat.h vendor-crypto/openssh/dist/openbsd-compat/port-aix.c vendor-crypto/openssh/dist/openbsd-compat/port-aix.h vendor-crypto/openssh/dist/openbsd-compat/port-irix.c vendor-crypto/openssh/dist/openbsd-compat/port-irix.h vendor-crypto/openssh/dist/openbsd-compat/port-linux.c vendor-crypto/openssh/dist/openbsd-compat/port-linux.h vendor-crypto/openssh/dist/openbsd-compat/port-solaris.c vendor-crypto/openssh/dist/openbsd-compat/port-solaris.h vendor-crypto/openssh/dist/openbsd-compat/port-tun.c vendor-crypto/openssh/dist/openbsd-compat/readpassphrase.c vendor-crypto/openssh/dist/openbsd-compat/setproctitle.c vendor-crypto/openssh/dist/openbsd-compat/sha2.c vendor-crypto/openssh/dist/openbsd-compat/sha2.h vendor-crypto/openssh/dist/openbsd-compat/vis.c vendor-crypto/openssh/dist/openbsd-compat/xcrypt.c vendor-crypto/openssh/dist/opensshd.init.in vendor-crypto/openssh/dist/packet.c vendor-crypto/openssh/dist/packet.h vendor-crypto/openssh/dist/platform-tracing.c vendor-crypto/openssh/dist/platform.c vendor-crypto/openssh/dist/platform.h vendor-crypto/openssh/dist/readconf.c vendor-crypto/openssh/dist/regress/Makefile vendor-crypto/openssh/dist/regress/agent-getpeereid.sh vendor-crypto/openssh/dist/regress/cert-file.sh vendor-crypto/openssh/dist/regress/cert-userkey.sh vendor-crypto/openssh/dist/regress/connect-privsep.sh vendor-crypto/openssh/dist/regress/integrity.sh vendor-crypto/openssh/dist/regress/keys-command.sh vendor-crypto/openssh/dist/regress/login-timeout.sh vendor-crypto/openssh/dist/regress/misc/kexfuzz/README vendor-crypto/openssh/dist/regress/misc/kexfuzz/kexfuzz.c vendor-crypto/openssh/dist/regress/principals-command.sh vendor-crypto/openssh/dist/regress/putty-ciphers.sh vendor-crypto/openssh/dist/regress/putty-kex.sh vendor-crypto/openssh/dist/regress/putty-transfer.sh vendor-crypto/openssh/dist/regress/reexec.sh vendor-crypto/openssh/dist/regress/sftp-chroot.sh vendor-crypto/openssh/dist/regress/test-exec.sh vendor-crypto/openssh/dist/regress/unittests/Makefile vendor-crypto/openssh/dist/regress/unittests/Makefile.inc vendor-crypto/openssh/dist/regress/unittests/bitmap/Makefile vendor-crypto/openssh/dist/regress/unittests/hostkeys/Makefile vendor-crypto/openssh/dist/regress/unittests/kex/Makefile vendor-crypto/openssh/dist/regress/unittests/sshbuf/Makefile vendor-crypto/openssh/dist/regress/unittests/sshkey/Makefile vendor-crypto/openssh/dist/regress/unittests/utf8/Makefile vendor-crypto/openssh/dist/regress/unittests/utf8/tests.c vendor-crypto/openssh/dist/sandbox-darwin.c vendor-crypto/openssh/dist/sandbox-rlimit.c vendor-crypto/openssh/dist/scp.c vendor-crypto/openssh/dist/servconf.c vendor-crypto/openssh/dist/servconf.h vendor-crypto/openssh/dist/serverloop.c vendor-crypto/openssh/dist/serverloop.h vendor-crypto/openssh/dist/session.c vendor-crypto/openssh/dist/session.h vendor-crypto/openssh/dist/sftp-client.c vendor-crypto/openssh/dist/sftp-common.c vendor-crypto/openssh/dist/sftp-server.c vendor-crypto/openssh/dist/sftp.c vendor-crypto/openssh/dist/ssh-agent.0 vendor-crypto/openssh/dist/ssh-agent.1 vendor-crypto/openssh/dist/ssh-agent.c vendor-crypto/openssh/dist/ssh-keygen.c vendor-crypto/openssh/dist/ssh-pkcs11.c vendor-crypto/openssh/dist/ssh-rsa.c vendor-crypto/openssh/dist/ssh.c vendor-crypto/openssh/dist/ssh_config.0 vendor-crypto/openssh/dist/ssh_config.5 vendor-crypto/openssh/dist/sshbuf.c vendor-crypto/openssh/dist/sshbuf.h vendor-crypto/openssh/dist/sshconnect.c vendor-crypto/openssh/dist/sshconnect1.c vendor-crypto/openssh/dist/sshconnect2.c vendor-crypto/openssh/dist/sshd.0 vendor-crypto/openssh/dist/sshd.8 vendor-crypto/openssh/dist/sshd.c vendor-crypto/openssh/dist/sshd_config vendor-crypto/openssh/dist/sshd_config.0 vendor-crypto/openssh/dist/sshd_config.5 vendor-crypto/openssh/dist/sshkey.c vendor-crypto/openssh/dist/sshkey.h vendor-crypto/openssh/dist/sshpty.c vendor-crypto/openssh/dist/sshpty.h vendor-crypto/openssh/dist/utf8.c vendor-crypto/openssh/dist/utf8.h vendor-crypto/openssh/dist/version.h Modified: vendor-crypto/openssh/dist/.skipped-commit-ids ============================================================================== --- vendor-crypto/openssh/dist/.skipped-commit-ids Tue Jan 31 12:31:38 2017 (r313011) +++ vendor-crypto/openssh/dist/.skipped-commit-ids Tue Jan 31 12:33:47 2017 (r313012) @@ -9,3 +9,5 @@ edbfde98c40007b7752a4ac106095e060c25c1ef 180d84674be1344e45a63990d60349988187c1ae Update moduli f6ae971186ba68d066cd102e57d5b0b2c211a5ee systrace is dead. 96c5054e3e1f170c6276902d5bc65bb3b87a2603 remove DEBUGLIBS from Makefile +6da9a37f74aef9f9cc639004345ad893cad582d8 Update moduli file +77bcb50e47b68c7209c7f0a5a020d73761e5143b unset REGRESS_FAIL_EARLY Modified: vendor-crypto/openssh/dist/CREDITS ============================================================================== --- vendor-crypto/openssh/dist/CREDITS Tue Jan 31 12:31:38 2017 (r313011) +++ vendor-crypto/openssh/dist/CREDITS Tue Jan 31 12:33:47 2017 (r313012) @@ -100,6 +100,3 @@ Zack Weinberg - G Apologies to anyone I have missed. Damien Miller - -$Id: CREDITS,v 1.81 2006/08/30 17:24:41 djm Exp $ - Modified: vendor-crypto/openssh/dist/ChangeLog ============================================================================== --- vendor-crypto/openssh/dist/ChangeLog Tue Jan 31 12:31:38 2017 (r313011) +++ vendor-crypto/openssh/dist/ChangeLog Tue Jan 31 12:33:47 2017 (r313012) @@ -1,9202 +1,10266 @@ -commit 99522ba7ec6963a05c04a156bf20e3ba3605987c -Author: Damien Miller -Date: Thu Jul 28 08:54:27 2016 +1000 - - define _OPENBSD_SOURCE for reallocarray on NetBSD - - Report by and debugged with Hisashi T Fujinaka, dtucker nailed - the problem (lack of prototype causing return type confusion). - -commit 3e1e076550c27c6bbdddf36d8f42bd79fbaaa187 -Author: Damien Miller -Date: Wed Jul 27 08:25:42 2016 +1000 - - KNF - -commit d99ee9c4e5e217e7d05eeec84e9ce641f4675331 +commit 4a354fc231174901f2629437c2a6e924a2dd6772 Author: Damien Miller -Date: Wed Jul 27 08:25:23 2016 +1000 - - Linux auditing also needs packet.h - -commit 393bd381a45884b589baa9aed4394f1d250255ca -Author: Damien Miller -Date: Wed Jul 27 08:18:05 2016 +1000 - - fix auditing on Linux - - get_remote_ipaddr() was replaced with ssh_remote_ipaddr() - -commit 80e766fb089de4f3c92b1600eb99e9495e37c992 -Author: Damien Miller -Date: Sun Jul 24 21:50:13 2016 +1000 +Date: Mon Dec 19 15:59:26 2016 +1100 - crank version numbers + crank version numbers for release -commit b1a478792d458f2e938a302e64bab2b520edc1b3 +commit 5f8d0bb8413d4d909cc7aa3c616fb0538224c3c9 Author: djm@openbsd.org -Date: Sun Jul 24 11:45:36 2016 +0000 +Date: Mon Dec 19 04:55:51 2016 +0000 upstream commit - openssh-7.3 - - Upstream-ID: af106a7eb665f642648cf1993e162c899f358718 - -commit 353766e0881f069aeca30275ab706cd60a1a8fdd -Author: Darren Tucker -Date: Sat Jul 23 16:14:42 2016 +1000 - - Move Cygwin IPPORT_RESERVED overrride to defines.h + openssh-7.4 - Patch from vinschen at redhat.com. + Upstream-ID: 1ee404adba6bbe10ae9277cbae3a94abe2867b79 -commit 368dd977ae07afb93f4ecea23615128c95ab2b32 +commit 3a8213ea0ed843523e34e55ab9c852332bab4c7b Author: djm@openbsd.org -Date: Sat Jul 23 02:54:08 2016 +0000 +Date: Mon Dec 19 04:55:18 2016 +0000 upstream commit - fix pledge violation with ssh -f; reported by Valentin - Kozamernik ok dtucker@ + remove testcase that depends on exact output and + behaviour of snprintf(..., "%s", NULL) - Upstream-ID: a61db7988db88d9dac3c4dd70e18876a8edf84aa + Upstream-Regress-ID: cab4288531766bd9593cb556613b91a2eeefb56f -commit f00211e3c6d24d6ea2b64b4b1209f671f6c1d42e -Author: djm@openbsd.org -Date: Fri Jul 22 07:00:46 2016 +0000 +commit eae735a82d759054f6ec7b4e887fb7a5692c66d7 +Author: dtucker@openbsd.org +Date: Mon Dec 19 03:32:57 2016 +0000 upstream commit - improve wording; suggested by jmc@ + Use LOGNAME to get current user and fall back to whoami if + not set. Mainly to benefit -portable since some platforms don't have whoami. - Upstream-ID: 55cb0a24c8e0618b3ceec80998dc82c85db2d2f8 + Upstream-Regress-ID: e3a16b7836a3ae24dc8f8a4e43fdf8127a60bdfa -commit 83cbca693c3b0719270e6a0f2efe3f9ee93a65b8 +commit 0d2f88428487518eea60602bd593989013831dcf Author: dtucker@openbsd.org -Date: Fri Jul 22 05:46:11 2016 +0000 +Date: Fri Dec 16 03:51:19 2016 +0000 upstream commit - Lower loglevel for "Authenticated with partial success" - message similar to other similar level. bz#2599, patch from cgallek at - gmail.com, ok markus@ + Add regression test for AllowUsers and DenyUsers. Patch from + Zev Weiss - Upstream-ID: 3faab814e947dc7b2e292edede23e94c608cb4dd + Upstream-Regress-ID: 8f1aac24d52728398871dac14ad26ea38b533fb9 -commit 10358abd087ab228b7ce2048efc4f3854a9ab9a6 -Author: Damien Miller -Date: Fri Jul 22 14:06:36 2016 +1000 +commit 3bc8180a008929f6fe98af4a56fb37d04444b417 +Author: Darren Tucker +Date: Fri Dec 16 15:02:24 2016 +1100 - retry waitpid on EINTR failure + Add missing monitor.h include. - patch from Jakub Jelen on bz#2581; ok dtucker@ + Fixes warning pointed out by Zev Weiss -commit da88a70a89c800e74ea8e5661ffa127a3cc79a92 +commit 410681f9015d76cc7b137dd90dac897f673244a0 Author: djm@openbsd.org -Date: Fri Jul 22 03:47:36 2016 +0000 +Date: Fri Dec 16 02:48:55 2016 +0000 upstream commit - constify a few functions' arguments; patch from Jakub - Jelen bz#2581 + revert to rev1.2; the new bits in this test depend on changes + to ssh that aren't yet committed - Upstream-ID: f2043f51454ea37830ff6ad60c8b32b4220f448d + Upstream-Regress-ID: 828ffc2c7afcf65d50ff2cf3dfc47a073ad39123 -commit c36d91bd4ebf767f310f7cea88d61d1c15f53ddf -Author: djm@openbsd.org -Date: Fri Jul 22 03:39:13 2016 +0000 +commit 2f2ffa4fbe4b671bbffa0611f15ba44cff64d58e +Author: dtucker@openbsd.org +Date: Fri Dec 16 01:06:27 2016 +0000 upstream commit - move debug("%p", key) to before key is free'd; probable - undefined behaviour on strict compilers; reported by Jakub Jelen bz#2581 + Move the "stop sshd" code into its own helper function. + Patch from Zev Weiss , ok djm@ - Upstream-ID: 767f323e1f5819508a0e35e388ec241bac2f953a + Upstream-Regress-ID: a113dea77df5bd97fb4633ea31f3d72dbe356329 -commit 286f5a77c3bfec1e8892ca268087ac885ac871bf +commit e15e7152331e3976b35475fd4e9c72897ad0f074 Author: djm@openbsd.org -Date: Fri Jul 22 03:35:11 2016 +0000 +Date: Fri Dec 16 01:01:07 2016 +0000 upstream commit - reverse the order in which -J/JumpHost proxies are visited to - be more intuitive and document - - reported by and manpage bits naddy@ + regression test for certificates along with private key + with no public half. bz#2617, mostly from Adam Eijdenberg - Upstream-ID: 3a68fd6a841fd6cf8cedf6552a9607ba99df179a + Upstream-Regress-ID: 2e74dc2c726f4dc839609b3ce045466b69f01115 -commit fcd135c9df440bcd2d5870405ad3311743d78d97 +commit 9a70ec085faf6e55db311cd1a329f1a35ad2a500 Author: dtucker@openbsd.org -Date: Thu Jul 21 01:39:35 2016 +0000 +Date: Thu Dec 15 23:50:37 2016 +0000 upstream commit - Skip passwords longer than 1k in length so clients can't - easily DoS sshd by sending very long passwords, causing it to spend CPU - hashing them. feedback djm@, ok markus@. - - Brought to our attention by tomas.kuthan at oracle.com, shilei-c at - 360.cn and coredump at autistici.org + Use $SUDO to read pidfile in case root's umask is + restricted. From portable. - Upstream-ID: d0af7d4a2190b63ba1d38eec502bc4be0be9e333 + Upstream-Regress-ID: f6b1c7ffbc5a0dfb7d430adb2883344899174a98 -commit 324583e8fb3935690be58790425793df619c6d4d -Author: naddy@openbsd.org -Date: Wed Jul 20 10:45:27 2016 +0000 +commit fe06b68f824f8f55670442fb31f2c03526dd326c +Author: dtucker@openbsd.org +Date: Thu Dec 15 21:29:05 2016 +0000 upstream commit - Do not clobber the global jump_host variables when - parsing an inactive configuration. ok djm@ + Add missing braces in DenyUsers code. Patch from zev at + bewilderbeest.net, ok deraadt@ - Upstream-ID: 5362210944d91417d5976346d41ac0b244350d31 + Upstream-ID: d747ace338dcf943b077925f90f85f789714b54e -commit 32d921c323b989d28405e78d0a8923d12913d737 -Author: jmc@openbsd.org -Date: Tue Jul 19 12:59:16 2016 +0000 +commit dcc7d74242a574fd5c4afbb4224795b1644321e7 +Author: dtucker@openbsd.org +Date: Thu Dec 15 21:20:41 2016 +0000 upstream commit - tweak previous; + Fix text in error message. Patch from zev at + bewilderbeest.net. - Upstream-ID: f3c1a5b3f05dff366f60c028728a2b43f15ff534 + Upstream-ID: deb0486e175e7282f98f9a15035d76c55c84f7f6 -commit d7eabc86fa049a12ba2c3fb198bd1d51b37f7025 -Author: dtucker@openbsd.org -Date: Tue Jul 19 11:38:53 2016 +0000 +commit b737e4d7433577403a31cff6614f6a1b0b5e22f4 +Author: djm@openbsd.org +Date: Wed Dec 14 00:36:34 2016 +0000 upstream commit - Allow wildcard for PermitOpen hosts as well as ports. - bz#2582, patch from openssh at mzpqnxow.com and jjelen at redhat.com. ok - markus@ + disable Unix-domain socket forwarding when privsep is + disabled - Upstream-ID: af0294e9b9394c4e16e991424ca0a47a7cc605f2 + Upstream-ID: ab61516ae0faadad407857808517efa900a0d6d0 -commit b98a2a8348e907b3d71caafd80f0be8fdd075943 -Author: markus@openbsd.org -Date: Mon Jul 18 11:35:33 2016 +0000 +commit 08a1e7014d65c5b59416a0e138c1f73f417496eb +Author: djm@openbsd.org +Date: Fri Dec 9 03:04:29 2016 +0000 upstream commit - Reduce timing attack against obsolete CBC modes by always - computing the MAC over a fixed size of data. Reported by Jean Paul - Degabriele, Kenny Paterson, Torben Hansen and Martin Albrecht. ok djm@ + log connections dropped in excess of MaxStartups at + verbose LogLevel; bz#2613 based on diff from Tomas Kuthan; ok dtucker@ - Upstream-ID: f20a13279b00ba0afbacbcc1f04e62e9d41c2912 + Upstream-ID: 703ae690dbf9b56620a6018f8a3b2389ce76d92b -commit dbf788b4d9d9490a5fff08a7b09888272bb10fcc +commit 10e290ec00964b2bf70faab15a10a5574bb80527 Author: Darren Tucker -Date: Thu Jul 21 14:17:31 2016 +1000 +Date: Tue Dec 13 13:51:32 2016 +1100 - Search users for one with a valid salt. - - If the root account is locked (eg password "!!" or "*LK*") keep looking - until we find a user with a valid salt to use for crypting passwords of - invalid users. ok djm@ + Get default of TEST_SSH_UTF8 from environment. -commit e8b58f48fbb1b524fb4f0d4865fa0005d6a4b782 +commit b9b8ba3f9ed92c6220b58d70d1e6d8aa3eea1104 Author: Darren Tucker -Date: Mon Jul 18 17:22:49 2016 +1000 +Date: Tue Dec 13 12:56:40 2016 +1100 - Explicitly specify source files for regress tools. + Remove commented-out includes. - Since adding $(REGRESSLIBS), $? is wrong because it includes only the - changed source files. $< seems like it'd be right however it doesn't - seem to work on some non-GNU makes, so do what works everywhere. + These commented-out includes have "Still needed?" comments. Since + they've been commented out for ~13 years I assert that they're not. -commit eac1bbd06872c273f16ac0f9976b0aef026b701b +commit 25275f1c9d5f01a0877d39444e8f90521a598ea0 Author: Darren Tucker -Date: Mon Jul 18 17:12:22 2016 +1000 +Date: Tue Dec 13 12:54:23 2016 +1100 - Conditionally include err.h. + Add prototype for strcasestr in compat library. -commit 0a454147568746c503f669e1ba861f76a2e7a585 +commit afec07732aa2985142f3e0b9a01eb6391f523dec Author: Darren Tucker -Date: Mon Jul 18 16:26:26 2016 +1000 +Date: Tue Dec 13 10:23:03 2016 +1100 - Remove local implementation of err, errx. + Add strcasestr to compat library. - We now have a shared implementation in libopenbsd-compat. + Fixes build on (at least) Solaris 10. -commit eb999a4590846ba4d56ddc90bd07c23abfbab7b1 -Author: djm@openbsd.org -Date: Mon Jul 18 06:08:01 2016 +0000 +commit dda78a03af32e7994f132d923c2046e98b7c56c8 +Author: Damien Miller +Date: Mon Dec 12 13:57:10 2016 +1100 - upstream commit + Force Turkish locales back to C/POSIX; bz#2643 - Add some unsigned overflow checks for extra_pad. None of - these are reachable with the amount of padding that we use internally. - bz#2566, pointed out by Torben Hansen. ok markus@ + Turkish locales are unique in their handling of the letters 'i' and + 'I' (yes, they are different letters) and OpenSSH isn't remotely + prepared to deal with that. For now, the best we can do is to force + OpenSSH to use the C/POSIX locale and try to preserve the UTF-8 + encoding if possible. - Upstream-ID: 4d4be8450ab2fc1b852d5884339f8e8c31c3fd76 + ok dtucker@ -commit c71ba790c304545464bb494de974cdf0f4b5cf1e +commit c35995048f41239fc8895aadc3374c5f75180554 Author: Darren Tucker -Date: Mon Jul 18 15:43:25 2016 +1000 +Date: Fri Dec 9 12:52:02 2016 +1100 - Add dependency on libs for unit tests. - - Makes "./configure && make tests" work again. ok djm@ + exit is in stdlib.h not unistd.h (that's _exit). -commit 8199d0311aea3e6fd0284c9025e7a83f4ece79e8 +commit d399a8b914aace62418c0cfa20341aa37a192f98 Author: Darren Tucker -Date: Mon Jul 18 13:47:39 2016 +1000 +Date: Fri Dec 9 12:33:25 2016 +1100 - Correct location for kexfuzz in clean target. + Include for exit in utf8 locale test. -commit 01558b7b07af43da774d3a11a5c51fa9c310849d +commit 47b8c99ab3221188ad3926108dd9d36da3b528ec Author: Darren Tucker -Date: Mon Jul 18 09:33:25 2016 +1000 +Date: Thu Dec 8 15:48:34 2016 +1100 - Handle PAM_MAXTRIES from modules. + Check for utf8 local support before testing it. - bz#2249: handle the case where PAM returns PAM_MAXTRIES by ceasing to offer - password and keyboard-interative authentication methods. Should prevent - "sshd ignoring max retries" warnings in the log. ok djm@ + Check for utf8 local support and if not found, do not attempt to run the + utf8 tests. Suggested by djm@ + +commit 4089fc1885b3a2822204effbb02b74e3da58240d +Author: Darren Tucker +Date: Thu Dec 8 12:57:24 2016 +1100 + + Use AC_PATH_TOOL for krb5-config. - It probably won't trigger with keyboard-interactive in the default - configuration because the retry counter is stored in module-private - storage which goes away with the sshd PAM process (see bz#688). On the - other hand, those cases probably won't log a warning either. + This will use the host-prefixed version when cross compiling; patch from + david.michael at coreos.com. -commit 65c6c6b567ab5ab12945a5ad8e0ab3a8c26119cc +commit b4867e0712c89b93be905220c82f0a15e6865d1e Author: djm@openbsd.org -Date: Sun Jul 17 04:20:16 2016 +0000 +Date: Tue Dec 6 07:48:01 2016 +0000 upstream commit - support UTF-8 characters in ssh(1) banners using - schwarze@'s safe fmprintf printer; bz#2058 + make IdentityFile successfully load and use certificates that + have no corresponding bare public key. E.g. just a private id_rsa and + certificate id_rsa-cert.pub (and no id_rsa.pub). - feedback schwarze@ ok dtucker@ + bz#2617 ok dtucker@ - Upstream-ID: a72ce4e3644c957643c9524eea2959e41b91eea7 + Upstream-ID: c1e9699b8c0e3b63cc4189e6972e3522b6292604 -commit e4eb7d910976fbfc7ce3e90c95c11b07b483d0d7 -Author: jmc@openbsd.org -Date: Sat Jul 16 06:57:55 2016 +0000 +commit c9792783a98881eb7ed295680013ca97a958f8ac +Author: Damien Miller +Date: Fri Nov 25 14:04:21 2016 +1100 + + Add a gnome-ssh-askpass3 target for GTK+3 version + + Based on patch from Colin Watson via bz#2640 + +commit 7be85ae02b9de0993ce0a1d1e978e11329f6e763 +Author: Damien Miller +Date: Fri Nov 25 14:03:53 2016 +1100 + + Make gnome-ssh-askpass2.c GTK+3-friendly + + Patch from Colin Watson via bz#2640 + +commit b9844a45c7f0162fd1b5465683879793d4cc4aaa +Author: djm@openbsd.org +Date: Sun Dec 4 23:54:02 2016 +0000 upstream commit - - add proxyjump to the options list - formatting fixes - - update usage() + Fix public key authentication when multiple + authentication is in use. Instead of deleting and re-preparing the entire + keys list, just reset the 'used' flags; the keys list is already in a good + order (with already- tried keys at the back) - ok djm + Analysis and patch from Vincent Brillault on bz#2642; ok dtucker@ - Upstream-ID: 43d318e14ce677a2eec8f21ef5ba2f9f68a59457 + Upstream-ID: 7123f12dc2f3bcaae715853035a97923d7300176 -commit af1f084857621f14bd9391aba8033d35886c2455 +commit f2398eb774075c687b13af5bc22009eb08889abe Author: dtucker@openbsd.org -Date: Fri Jul 15 05:01:58 2016 +0000 +Date: Sun Dec 4 22:27:25 2016 +0000 upstream commit - Reduce the syslog level of some relatively common protocol - events from LOG_CRIT by replacing fatal() calls with logdie(). Part of - bz#2585, ok djm@ + Unlink PidFile on SIGHUP and always recreate it when the + new sshd starts. Regression tests (and possibly other things) depend on the + pidfile being recreated after SIGHUP, and unlinking it means it won't contain + a stale pid if sshd fails to restart. ok djm@ markus@ - Upstream-ID: 9005805227c94edf6ac02a160f0e199638d288e5 - -commit bd5f2b78b69cf38d6049a0de445a79c8595e4a1f -Author: Damien Miller -Date: Fri Jul 15 19:14:48 2016 +1000 + Upstream-ID: 132dd6dda0c77dd49d2f15b2573b5794f6160870 - missing openssl/dh.h - -commit 4a984fd342effe5f0aad874a0d538c4322d973c0 -Author: Damien Miller -Date: Fri Jul 15 18:47:07 2016 +1000 - - cast to avoid type warning in error message - -commit 5abfb15ced985c340359ae7fb65a625ed3692b3e -Author: Darren Tucker -Date: Fri Jul 15 14:48:30 2016 +1000 +commit 85aa2efeba51a96bf6834f9accf2935d96150296 +Author: djm@openbsd.org +Date: Wed Nov 30 03:01:33 2016 +0000 - Move VA_COPY macro into compat header. + upstream commit - Some AIX compilers unconditionally undefine va_copy but don't set it back - to an internal function, causing link errors. In some compat code we - already use VA_COPY instead so move the two existing instances into the - shared header and use for sshbuf-getput-basic.c too. Should fix building - with at lease some versions of AIX's compiler. bz#2589, ok djm@ - -commit 832b7443b7a8e181c95898bc5d73497b7190decd -Author: Damien Miller -Date: Fri Jul 15 14:45:34 2016 +1000 - - disable ciphers not supported by OpenSSL + test new behaviour of cert force-command restriction vs. + authorized_key/ principals - bz#2466 ok dtucker@ + Upstream-Regress-ID: 399efa7469d40c404c0b0a295064ce75d495387c -commit 5fbe93fc6fbb2fe211e035703dec759d095e3dd8 -Author: Damien Miller -Date: Fri Jul 15 13:54:31 2016 +1000 +commit 5d333131cd8519d022389cfd3236280818dae1bc +Author: jmc@openbsd.org +Date: Wed Nov 30 06:54:26 2016 +0000 - add a --disable-pkcs11 knob + upstream commit + + tweak previous; while here fix up FILES and AUTHORS; + + Upstream-ID: 93f6e54086145a75df8d8ec7d8689bdadbbac8fa -commit 679ce88ec2a8e2fe6515261c489e8c1449bb9da9 -Author: Damien Miller -Date: Fri Jul 15 13:44:38 2016 +1000 +commit 786d5994da79151180cb14a6cf157ebbba61c0cc +Author: djm@openbsd.org +Date: Wed Nov 30 03:07:37 2016 +0000 - fix newline escaping for unsupported_algorithms + upstream commit - The hmac-ripemd160 was incorrect and could lead to broken - Makefiles on systems that lacked support for it, but I made - all the others consistent too. + add a whitelist of paths from which ssh-agent will load + (via ssh-pkcs11-helper) a PKCS#11 module; ok markus@ + + Upstream-ID: fe79769469d9cd6d26fe0dc15751b83ef2a06e8f -commit ed877ef653847d056bb433975d731b7a1132a979 +commit 7844f357cdd90530eec81340847783f1f1da010b Author: djm@openbsd.org -Date: Fri Jul 15 00:24:30 2016 +0000 +Date: Wed Nov 30 03:00:05 2016 +0000 upstream commit - Add a ProxyJump ssh_config(5) option and corresponding -J - ssh(1) command-line flag to allow simplified indirection through a SSH - bastion or "jump host". - - These options construct a proxy command that connects to the - specified jump host(s) (more than one may be specified) and uses - port-forwarding to establish a connection to the next destination. - - This codifies the safest way of indirecting connections through SSH - servers and makes it easy to use. + Add a sshd_config DisableForwaring option that disables + X11, agent, TCP, tunnel and Unix domain socket forwarding, as well as + anything else we might implement in the future. - ok markus@ + This, like the 'restrict' authorized_keys flag, is intended to be a + simple and future-proof way of restricting an account. Suggested as + a complement to 'restrict' by Jann Horn; ok markus@ - Upstream-ID: fa899cb8b26d889da8f142eb9774c1ea36b04397 + Upstream-ID: 203803f66e533a474086b38a59ceb4cf2410fcf7 -commit 5c02dd126206a26785379e80f2d3848e4470b711 -Author: Darren Tucker -Date: Fri Jul 15 12:56:39 2016 +1000 +commit fd6dcef2030d23c43f986d26979f84619c10589d +Author: djm@openbsd.org +Date: Wed Nov 30 02:57:40 2016 +0000 - Map umac_ctx struct name too. + upstream commit - Prevents size mismatch linker warnings on Solaris 11. - -commit 283b97ff33ea2c641161950849931bd578de6946 -Author: Darren Tucker -Date: Fri Jul 15 13:49:44 2016 +1000 - - Mitigate timing of disallowed users PAM logins. + When a forced-command appears in both a certificate and + an authorized keys/principals command= restriction, refuse to accept the + certificate unless they are identical. - When sshd decides to not allow a login (eg PermitRootLogin=no) and - it's using PAM, it sends a fake password to PAM so that the timing for - the failure is not noticeably different whether or not the password - is correct. This behaviour can be detected by sending a very long - password string which is slower to hash than the fake password. + The previous (documented) behaviour of having the certificate forced- + command override the other could be a bit confused and more error-prone. - Mitigate by constructing an invalid password that is the same length - as the one from the client and thus takes the same time to hash. - Diff from djm@ + Pointed out by Jann Horn of Project Zero; ok dtucker@ + + Upstream-ID: 79d811b6eb6bbe1221bf146dde6928f92d2cd05f -commit 9286875a73b2de7736b5e50692739d314cd8d9dc -Author: Darren Tucker -Date: Fri Jul 15 13:32:45 2016 +1000 +commit 7fc4766ac78abae81ee75b22b7550720bfa28a33 +Author: dtucker@openbsd.org +Date: Wed Nov 30 00:28:31 2016 +0000 - Determine appropriate salt for invalid users. + upstream commit - When sshd is processing a non-PAM login for a non-existent user it uses - the string from the fakepw structure as the salt for crypt(3)ing the - password supplied by the client. That string has a Blowfish prefix, so on - systems that don't understand that crypt will fail fast due to an invalid - salt, and even on those that do it may have significantly different timing - from the hash methods used for real accounts (eg sha512). This allows - user enumeration by, eg, sending large password strings. This was noted - by EddieEzra.Harari at verint.com (CVE-2016-6210). + On startup, check to see if sshd is already daemonized + and if so, skip the call to daemon() and do not rewrite the PidFile. This + means that when sshd re-execs itself on SIGHUP the process ID will no longer + change. Should address bz#2641. ok djm@ markus@. - To mitigate, use the same hash algorithm that root uses for hashing - passwords for users that do not exist on the system. ok djm@ + Upstream-ID: 5ea0355580056fb3b25c1fd6364307d9638a37b9 -commit a162dd5e58ca5b224d7500abe35e1ef32b5de071 -Author: Darren Tucker -Date: Thu Jul 14 21:19:59 2016 +1000 - - OpenSSL 1.1.x not currently supported. - -commit 7df91b01fc558a33941c5c5f31abbcdc53a729fb -Author: Darren Tucker -Date: Thu Jul 14 12:25:24 2016 +1000 +commit c9f880c195c65f1dddcbc4ce9d6bfea7747debcc +Author: Damien Miller +Date: Wed Nov 30 13:51:49 2016 +1100 - Check for VIS_ALL. + factor out common PRNG reseed before privdrop - If we don't have it, set BROKEN_STRNVIS to activate the compat replacement. + Add a call to RAND_poll() to ensure than more than pid+time gets + stirred into child processes states. Prompted by analysis from Jann + Horn at Project Zero. ok dtucker@ -commit ee67716f61f1042d5e67f91c23707cca5dcdd7d0 +commit 79e4829ec81dead1b30999e1626eca589319a47f Author: dtucker@openbsd.org -Date: Thu Jul 14 01:24:21 2016 +0000 +Date: Fri Nov 25 03:02:01 2016 +0000 upstream commit - Correct equal in test. + Allow PuTTY interop tests to run unattended. bz#2639, + patch from cjwatson at debian.org. - Upstream-Regress-ID: 4e32f7a5c57a619c4e8766cb193be2a1327ec37a + Upstream-Regress-ID: 4345253558ac23b2082aebabccd48377433b6fe0 -commit 372807c2065c8572fdc6478b25cc5ac363743073 -Author: tb@openbsd.org -Date: Mon Jul 11 21:38:13 2016 +0000 +commit 504c3a9a1bf090f6b27260fc3e8ea7d984d163dc +Author: dtucker@openbsd.org +Date: Fri Nov 25 02:56:49 2016 +0000 upstream commit - Add missing "recvfd" pledge promise: Raf Czlonka reported - ssh coredumps when Control* keywords were set in ssh_config. This patch also - fixes similar problems with scp and sftp. - - ok deraadt, looks good to millert + Reverse args to sshd-log-wrapper. Matches change in + portable, where it allows sshd do be optionally run under Valgrind. - Upstream-ID: ca2099eade1ef3e87a79614fefa26a0297ad8a3b + Upstream-Regress-ID: b438d1c6726dc5caa2a45153e6103a0393faa906 -commit e0453f3df64bf485c61c7eb6bd12893eee9fe2cd -Author: tedu@openbsd.org -Date: Mon Jul 11 03:19:44 2016 +0000 +commit bd13017736ec2f8f9ca498fe109fb0035f322733 +Author: dtucker@openbsd.org +Date: Fri Nov 25 02:49:18 2016 +0000 upstream commit - obsolete note about fascistloggin is obsolete. ok djm - dtucker + Fix typo in trace message; from portable. - Upstream-ID: dae60df23b2bb0e89f42661ddd96a7b0d1b7215a + Upstream-Regress-ID: 4c4a2ba0d37faf5fd230a91b4c7edb5699fbd73a -commit a2333584170a565adf4f209586772ef8053b10b8 -Author: Darren Tucker -Date: Thu Jul 14 10:59:09 2016 +1000 +commit 7da751d8b007c7f3e814fd5737c2351440d78b4c +Author: tb@openbsd.org +Date: Tue Nov 1 13:43:27 2016 +0000 - Add compat code for missing wcwidth. + upstream commit - If we don't have wcwidth force fallback implementations of nl_langinfo - and mbtowc. Based on advice from Ingo Schwarze. - -commit 8aaec7050614494014c47510b7e94daf6e644c62 -Author: Damien Miller -Date: Thu Jul 14 09:48:48 2016 +1000 - - fix missing include for systems with err.h - -commit 6310ef27a2567cda66d6cf0c1ad290ee1167f243 -Author: Darren Tucker -Date: Wed Jul 13 14:42:35 2016 +1000 - - Move err.h replacements into compat lib. + Clean up MALLOC_OPTIONS. For the unittests, move + MALLOC_OPTIONS and TEST_ENV to unittets/Makefile.inc. - Move implementations of err.h replacement functions into their own file - in the libopenbsd-compat so we can use them in kexfuzz.c too. ok djm@ - -commit f3f2cc8386868f51440c45210098f65f9787449a -Author: Darren Tucker -Date: Mon Jul 11 17:23:38 2016 +1000 - - Check for wchar.h and langinfo.h + ok otto - Wrap includes in the appropriate #ifdefs. + Upstream-Regress-ID: 890d497e0a38eeddfebb11cc429098d76cf29f12 -commit b9c50614eba9d90939b2b119b6e1b7e03b462278 -Author: Damien Miller -Date: Fri Jul 8 13:59:13 2016 +1000 +commit 36f58e68221bced35e06d1cca8d97c48807a8b71 +Author: tb@openbsd.org +Date: Mon Oct 31 23:45:08 2016 +0000 - whitelist more architectures for seccomp-bpf + upstream commit - bz#2590 - testing and patch from Jakub Jelen + Remove the obsolete A and P flags from MALLOC_OPTIONS. + + ok dtucker + + Upstream-Regress-ID: 6cc25024c8174a87e5734a0dc830194be216dd59 -commit 18813a32b6fd964037e0f5e1893cb4468ac6a758 -Author: guenther@openbsd.org -Date: Mon Jul 4 18:01:44 2016 +0000 +commit b0899ee26a6630883c0f2350098b6a35e647f512 +Author: dtucker@openbsd.org +Date: Tue Nov 29 03:54:50 2016 +0000 upstream commit - DEBUGLIBS has been broken since the gcc4 switch, so delete - it. CFLAGS contains -g by default anyway - - problem noted by Edgar Pettijohn (edgar (at) pettijohn-web.com) - ok millert@ kettenis@ deraadt@ + Factor out code to disconnect from controlling terminal + into its own function. ok djm@ - Upstream-Regress-ID: 4a0bb72f95c63f2ae9daa8a040ac23914bddb542 + Upstream-ID: 39fd9e8ebd7222615a837312face5cc7ae962885 -commit 6d31193d0baa3da339c196ac49625b7ba1c2ecc7 +commit 54d022026aae4f53fa74cc636e4a032d9689b64d Author: djm@openbsd.org -Date: Fri Jul 8 03:44:42 2016 +0000 +Date: Fri Nov 25 23:24:45 2016 +0000 upstream commit - Improve crypto ordering for Encrypt-then-MAC (EtM) mode - MAC algorithms. - - Previously we were computing the MAC, decrypting the packet and then - checking the MAC. This gave rise to the possibility of creating a - side-channel oracle in the decryption step, though no such oracle has - been identified. - - This adds a mac_check() function that computes and checks the MAC in - one pass, and uses it to advance MAC checking for EtM algorithms to - before payload decryption. + use sshbuf_allocate() to pre-allocate the buffer used for + loading keys. This avoids implicit realloc inside the buffer code, which + might theoretically leave fragments of the key on the heap. This doesn't + appear to happen in practice for normal sized keys, but was observed for + novelty oversize ones. - Reported by Jean Paul Degabriele, Kenny Paterson, Torben Hansen and - Martin Albrecht. feedback and ok markus@ + Pointed out by Jann Horn of Project Zero; ok markus@ - Upstream-ID: 1999bb67cab47dda5b10b80d8155fe83d4a1867b + Upstream-ID: d620e1d46a29fdea56aeadeda120879eddc60ab1 -commit 71f5598f06941f645a451948c4a5125c83828e1c -Author: guenther@openbsd.org -Date: Mon Jul 4 18:01:44 2016 +0000 +commit a9c746088787549bb5b1ae3add7d06a1b6d93d5e +Author: djm@openbsd.org +Date: Fri Nov 25 23:22:04 2016 +0000 upstream commit - DEBUGLIBS has been broken since the gcc4 switch, so - delete it. CFLAGS contains -g by default anyway - - problem noted by Edgar Pettijohn (edgar (at) pettijohn-web.com) - ok millert@ kettenis@ deraadt@ + split allocation out of sshbuf_reserve() into a separate + sshbuf_allocate() function; ok markus@ - Upstream-ID: 96c5054e3e1f170c6276902d5bc65bb3b87a2603 + Upstream-ID: 11b8a2795afeeb1418d508a2c8095b3355577ec2 -commit e683fc6f1c8c7295648dbda679df8307786ec1ce -Author: dtucker@openbsd.org -Date: Thu Jun 30 05:17:05 2016 +0000 +commit f0ddedee460486fa0e32fefb2950548009e5026e +Author: markus@openbsd.org +Date: Wed Nov 23 23:14:15 2016 +0000 upstream commit - Explicitly check for 100% completion to avoid potential - floating point rounding error, which could cause progressmeter to report 99% - on completion. While there invert the test so the 100% case is clearer. with - & ok djm@ + allow ClientAlive{Interval,CountMax} in Match; ok dtucker, + djm - Upstream-ID: a166870c5878e422f3c71ff802e2ccd7032f715d + Upstream-ID: 8beb4c1eadd588f1080b58932281983864979f55 -commit 772e6cec0ed740fc7db618dc30b4134f5a358b43 -Author: jmc@openbsd.org -Date: Wed Jun 29 17:14:28 2016 +0000 +commit 1a6f9d2e2493d445cd9ee496e6e3c2a2f283f66a +Author: djm@openbsd.org +Date: Tue Nov 8 22:04:34 2016 +0000 upstream commit - sort the -o list; + unbreak DenyUsers; reported by henning@ - Upstream-ID: 1a97465ede8790b4d47cb618269978e07f41f8ac + Upstream-ID: 1c67d4148f5e953c35acdb62e7c08ae8e33f7cb2 -commit 46ecd19e554ccca15a7309cd1b6b44bc8e6b84af +commit 010359b32659f455fddd2bd85fd7cc4d7a3b994a Author: djm@openbsd.org -Date: Thu Jun 23 05:17:51 2016 +0000 +Date: Sun Nov 6 05:46:37 2016 +0000 upstream commit - fix AuthenticationMethods during configuration re-parse; - reported by Juan Francisco Cantero Hurtado + Validate address ranges for AllowUser/DenyUsers at + configuration load time and refuse to accept bad ones. It was previously + possible to specify invalid CIDR address ranges (e.g. djm@127.1.2.3/55) and + these would always match. - Upstream-ID: 8ffa1dac25c7577eca8238e825317ab20848f9b4 + Thanks to Laurence Parry for a detailed bug report. ok markus (for + a previous diff version) + + Upstream-ID: 9dfcdd9672b06e65233ea4434c38226680d40bfb -commit 3147e7595d0f2f842a666c844ac53e6c7a253d7e +commit efb494e81d1317209256b38b49f4280897c61e69 Author: djm@openbsd.org -Date: Sun Jun 19 07:48:02 2016 +0000 +Date: Fri Oct 28 03:33:52 2016 +0000 upstream commit - revert 1.34; causes problems loading public keys + Improve pkcs11_add_provider() logging: demote some + excessively verbose error()s to debug()s, include PKCS#11 provider name and + slot in log messages where possible. bz#2610, based on patch from Jakub Jelen - reported by semarie@ + Upstream-ID: 3223ef693cfcbff9079edfc7e89f55bf63e1973d + +commit 5ee3fb5affd7646f141749483205ade5fc54adaf +Author: Darren Tucker +Date: Tue Nov 1 08:12:33 2016 +1100 + + Use ptrace(PT_DENY_ATTACH, ..) on OS X. + +commit 315d2a4e674d0b7115574645cb51f968420ebb34 +Author: Damien Miller +Date: Fri Oct 28 14:34:07 2016 +1100 + + Unbreak AES-CTR ciphers on old (~0.9.8) OpenSSL - Upstream-ID: b393794f8935c8b15d98a407fe7721c62d2ed179 + ok dtucker@ -commit ad23a75509f4320d43f628c50f0817e3ad12bfa7 -Author: jmc@openbsd.org -Date: Fri Jun 17 06:33:30 2016 +0000 +commit a9ff3950b8e80ff971b4d44bbce96df27aed28af +Author: Darren Tucker +Date: Fri Oct 28 14:26:58 2016 +1100 - upstream commit + Move OPENSSL_NO_RIPEMD160 to compat. - grammar fix; + Move OPENSSL_NO_RIPEMD160 to compat and add ifdefs to mac.c around the + ripemd160 MACs. + +commit bce58885160e5db2adda3054c3b81fe770f7285a +Author: Darren Tucker +Date: Fri Oct 28 13:52:31 2016 +1100 + + Check if RIPEMD160 is disabled in OpenSSL. + +commit d924640d4c355d1b5eca1f4cc60146a9975dbbff +Author: Darren Tucker +Date: Fri Oct 28 13:38:19 2016 +1100 + + Skip ssh1 specfic ciphers. - Upstream-ID: 5d5b21c80f1e81db367333ce0bb3e5874fb3e463 + cipher-3des1.c and cipher-bf1.c are specific to sshv1 so don't even try + to compile them when Protocol 1 is not enabled. -commit 5e28b1a2a3757548b40018cc2493540a17c82e27 -Author: djm@openbsd.org -Date: Fri Jun 17 05:06:23 2016 +0000 +commit 79d078e7a49caef746516d9710ec369ba45feab6 +Author: jsg@openbsd.org +Date: Tue Oct 25 04:08:13 2016 +0000 upstream commit - translate OpenSSL error codes to something more - meaninful; bz#2522 reported by Jakub Jelen, ok dtucker@ + Fix logic in add_local_forward() that inverted a test + when code was refactored out into bind_permitted(). This broke ssh port + forwarding for non-priv ports as a non root user. - Upstream-ID: 4cb0795a366381724314e6515d57790c5930ffe5 + ok dtucker@ 'looks good' deraadt@ + + Upstream-ID: ddb8156ca03cc99997de284ce7777536ff9570c9 -commit b64faeb5eda7eff8210c754d00464f9fe9d23de5 -Author: djm@openbsd.org -Date: Fri Jun 17 05:03:40 2016 +0000 +commit a903e315dee483e555c8a3a02c2946937f9b4e5d +Author: dtucker@openbsd.org +Date: Mon Oct 24 01:09:17 2016 +0000 upstream commit - ban AuthenticationMethods="" and accept - AuthenticationMethods=any for the default behaviour of not requiring multiple - authentication + Remove dead breaks, found via opencoverage.net. ok + deraadt@ - bz#2398 from Jakub Jelen; ok dtucker@ + Upstream-ID: ad9cc655829d67fad219762810770787ba913069 + +commit b4e96b4c9bea4182846e4942ba2048e6d708ee54 +Author: Darren Tucker +Date: Wed Oct 26 08:43:25 2016 +1100 *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-vendor@freebsd.org Tue Jan 31 12:34:01 2017 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0D74ECC91F6; Tue, 31 Jan 2017 12:34:01 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B11F8329; Tue, 31 Jan 2017 12:34:00 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0VCXxjH046821; Tue, 31 Jan 2017 12:33:59 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0VCXxJt046820; Tue, 31 Jan 2017 12:33:59 GMT (envelope-from des@FreeBSD.org) Message-Id: <201701311233.v0VCXxJt046820@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Tue, 31 Jan 2017 12:33:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r313013 - vendor-crypto/openssh/7.4p1 X-SVN-Group: vendor-crypto MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Jan 2017 12:34:01 -0000 Author: des Date: Tue Jan 31 12:33:59 2017 New Revision: 313013 URL: https://svnweb.freebsd.org/changeset/base/313013 Log: Tag OpenSSH 7.4p1. Added: vendor-crypto/openssh/7.4p1/ - copied from r313012, vendor-crypto/openssh/dist/ From owner-svn-src-vendor@freebsd.org Tue Jan 31 19:12:30 2017 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E1AB4CCAB03; Tue, 31 Jan 2017 19:12:30 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6189412B1; Tue, 31 Jan 2017 19:12:30 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0VJCTM9029407; Tue, 31 Jan 2017 19:12:29 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0VJCTIK029405; Tue, 31 Jan 2017 19:12:29 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201701311912.v0VJCTIK029405@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Tue, 31 Jan 2017 19:12:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r313023 - in vendor/tcpdump/4.9.0: . lbl missing tests win32 win32/prj win32/src X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Jan 2017 19:12:31 -0000 Author: glebius Date: Tue Jan 31 19:12:28 2017 New Revision: 313023 URL: https://svnweb.freebsd.org/changeset/base/313023 Log: Import tcpdump-4.9.0. Added: vendor/tcpdump/4.9.0/ vendor/tcpdump/4.9.0/CHANGES vendor/tcpdump/4.9.0/CONTRIBUTING vendor/tcpdump/4.9.0/CREDITS vendor/tcpdump/4.9.0/INSTALL.txt (contents, props changed) vendor/tcpdump/4.9.0/LICENSE vendor/tcpdump/4.9.0/Makefile-devel-adds (contents, props changed) vendor/tcpdump/4.9.0/Makefile.in (contents, props changed) vendor/tcpdump/4.9.0/PLATFORMS vendor/tcpdump/4.9.0/README (contents, props changed) vendor/tcpdump/4.9.0/README.md vendor/tcpdump/4.9.0/Readme.Win32 vendor/tcpdump/4.9.0/VERSION vendor/tcpdump/4.9.0/aclocal.m4 vendor/tcpdump/4.9.0/addrtoname.c (contents, props changed) vendor/tcpdump/4.9.0/addrtoname.h (contents, props changed) vendor/tcpdump/4.9.0/addrtostr.c (contents, props changed) vendor/tcpdump/4.9.0/addrtostr.h (contents, props changed) vendor/tcpdump/4.9.0/af.c (contents, props changed) vendor/tcpdump/4.9.0/af.h (contents, props changed) vendor/tcpdump/4.9.0/ah.h (contents, props changed) vendor/tcpdump/4.9.0/appletalk.h (contents, props changed) vendor/tcpdump/4.9.0/ascii_strcasecmp.c (contents, props changed) vendor/tcpdump/4.9.0/ascii_strcasecmp.h (contents, props changed) vendor/tcpdump/4.9.0/atime.awk (contents, props changed) vendor/tcpdump/4.9.0/atm.h (contents, props changed) vendor/tcpdump/4.9.0/bpf_dump.c (contents, props changed) vendor/tcpdump/4.9.0/chdlc.h (contents, props changed) vendor/tcpdump/4.9.0/checksum.c (contents, props changed) vendor/tcpdump/4.9.0/config.guess vendor/tcpdump/4.9.0/config.h.in (contents, props changed) vendor/tcpdump/4.9.0/config.sub vendor/tcpdump/4.9.0/configure (contents, props changed) vendor/tcpdump/4.9.0/configure.in (contents, props changed) vendor/tcpdump/4.9.0/cpack.c (contents, props changed) vendor/tcpdump/4.9.0/cpack.h (contents, props changed) vendor/tcpdump/4.9.0/ether.h (contents, props changed) vendor/tcpdump/4.9.0/ethertype.h (contents, props changed) vendor/tcpdump/4.9.0/extract.h (contents, props changed) vendor/tcpdump/4.9.0/getopt_long.h (contents, props changed) vendor/tcpdump/4.9.0/gmpls.c (contents, props changed) vendor/tcpdump/4.9.0/gmpls.h (contents, props changed) vendor/tcpdump/4.9.0/gmt2local.c (contents, props changed) vendor/tcpdump/4.9.0/gmt2local.h (contents, props changed) vendor/tcpdump/4.9.0/in_cksum.c (contents, props changed) vendor/tcpdump/4.9.0/install-sh (contents, props changed) vendor/tcpdump/4.9.0/interface.h (contents, props changed) vendor/tcpdump/4.9.0/ip.h (contents, props changed) vendor/tcpdump/4.9.0/ip6.h (contents, props changed) vendor/tcpdump/4.9.0/ipproto.c (contents, props changed) vendor/tcpdump/4.9.0/ipproto.h (contents, props changed) vendor/tcpdump/4.9.0/l2vpn.c (contents, props changed) vendor/tcpdump/4.9.0/l2vpn.h (contents, props changed) vendor/tcpdump/4.9.0/lbl/ vendor/tcpdump/4.9.0/lbl/os-osf4.h (contents, props changed) vendor/tcpdump/4.9.0/lbl/os-solaris2.h (contents, props changed) vendor/tcpdump/4.9.0/lbl/os-sunos4.h (contents, props changed) vendor/tcpdump/4.9.0/lbl/os-ultrix4.h (contents, props changed) vendor/tcpdump/4.9.0/llc.h (contents, props changed) vendor/tcpdump/4.9.0/machdep.c (contents, props changed) vendor/tcpdump/4.9.0/machdep.h (contents, props changed) vendor/tcpdump/4.9.0/makemib (contents, props changed) vendor/tcpdump/4.9.0/mib.h (contents, props changed) vendor/tcpdump/4.9.0/missing/ vendor/tcpdump/4.9.0/missing/datalinks.c (contents, props changed) vendor/tcpdump/4.9.0/missing/dlnames.c (contents, props changed) vendor/tcpdump/4.9.0/missing/getopt_long.c (contents, props changed) vendor/tcpdump/4.9.0/missing/snprintf.c (contents, props changed) vendor/tcpdump/4.9.0/missing/strdup.c (contents, props changed) vendor/tcpdump/4.9.0/missing/strlcat.c (contents, props changed) vendor/tcpdump/4.9.0/missing/strlcpy.c (contents, props changed) vendor/tcpdump/4.9.0/missing/strsep.c (contents, props changed) vendor/tcpdump/4.9.0/mkdep (contents, props changed) vendor/tcpdump/4.9.0/mpls.h (contents, props changed) vendor/tcpdump/4.9.0/nameser.h (contents, props changed) vendor/tcpdump/4.9.0/netdissect-stdinc.h (contents, props changed) vendor/tcpdump/4.9.0/netdissect.c (contents, props changed) vendor/tcpdump/4.9.0/netdissect.h (contents, props changed) vendor/tcpdump/4.9.0/nfs.h (contents, props changed) vendor/tcpdump/4.9.0/nfsfh.h (contents, props changed) vendor/tcpdump/4.9.0/nlpid.c (contents, props changed) vendor/tcpdump/4.9.0/nlpid.h (contents, props changed) vendor/tcpdump/4.9.0/openflow.h (contents, props changed) vendor/tcpdump/4.9.0/ospf.h (contents, props changed) vendor/tcpdump/4.9.0/oui.c (contents, props changed) vendor/tcpdump/4.9.0/oui.h (contents, props changed) vendor/tcpdump/4.9.0/packetdat.awk (contents, props changed) vendor/tcpdump/4.9.0/parsenfsfh.c (contents, props changed) vendor/tcpdump/4.9.0/pcap-missing.h (contents, props changed) vendor/tcpdump/4.9.0/pcap_dump_ftell.c (contents, props changed) vendor/tcpdump/4.9.0/ppp.h (contents, props changed) vendor/tcpdump/4.9.0/print-802_11.c (contents, props changed) vendor/tcpdump/4.9.0/print-802_15_4.c (contents, props changed) vendor/tcpdump/4.9.0/print-ah.c (contents, props changed) vendor/tcpdump/4.9.0/print-ahcp.c (contents, props changed) vendor/tcpdump/4.9.0/print-aodv.c (contents, props changed) vendor/tcpdump/4.9.0/print-aoe.c (contents, props changed) vendor/tcpdump/4.9.0/print-ap1394.c (contents, props changed) vendor/tcpdump/4.9.0/print-arcnet.c (contents, props changed) vendor/tcpdump/4.9.0/print-arp.c (contents, props changed) vendor/tcpdump/4.9.0/print-ascii.c (contents, props changed) vendor/tcpdump/4.9.0/print-atalk.c (contents, props changed) vendor/tcpdump/4.9.0/print-atm.c (contents, props changed) vendor/tcpdump/4.9.0/print-babel.c (contents, props changed) vendor/tcpdump/4.9.0/print-beep.c (contents, props changed) vendor/tcpdump/4.9.0/print-bfd.c (contents, props changed) vendor/tcpdump/4.9.0/print-bgp.c (contents, props changed) vendor/tcpdump/4.9.0/print-bootp.c (contents, props changed) vendor/tcpdump/4.9.0/print-bt.c (contents, props changed) vendor/tcpdump/4.9.0/print-calm-fast.c (contents, props changed) vendor/tcpdump/4.9.0/print-carp.c (contents, props changed) vendor/tcpdump/4.9.0/print-cdp.c (contents, props changed) vendor/tcpdump/4.9.0/print-cfm.c (contents, props changed) vendor/tcpdump/4.9.0/print-chdlc.c (contents, props changed) vendor/tcpdump/4.9.0/print-cip.c (contents, props changed) vendor/tcpdump/4.9.0/print-cnfp.c (contents, props changed) vendor/tcpdump/4.9.0/print-dccp.c (contents, props changed) vendor/tcpdump/4.9.0/print-decnet.c (contents, props changed) vendor/tcpdump/4.9.0/print-dhcp6.c (contents, props changed) vendor/tcpdump/4.9.0/print-domain.c (contents, props changed) vendor/tcpdump/4.9.0/print-dtp.c (contents, props changed) vendor/tcpdump/4.9.0/print-dvmrp.c (contents, props changed) vendor/tcpdump/4.9.0/print-eap.c (contents, props changed) vendor/tcpdump/4.9.0/print-egp.c (contents, props changed) vendor/tcpdump/4.9.0/print-eigrp.c (contents, props changed) vendor/tcpdump/4.9.0/print-enc.c (contents, props changed) vendor/tcpdump/4.9.0/print-esp.c (contents, props changed) vendor/tcpdump/4.9.0/print-ether.c (contents, props changed) vendor/tcpdump/4.9.0/print-fddi.c (contents, props changed) vendor/tcpdump/4.9.0/print-forces.c (contents, props changed) vendor/tcpdump/4.9.0/print-fr.c (contents, props changed) vendor/tcpdump/4.9.0/print-frag6.c (contents, props changed) vendor/tcpdump/4.9.0/print-ftp.c (contents, props changed) vendor/tcpdump/4.9.0/print-geneve.c (contents, props changed) vendor/tcpdump/4.9.0/print-geonet.c (contents, props changed) vendor/tcpdump/4.9.0/print-gre.c (contents, props changed) vendor/tcpdump/4.9.0/print-hncp.c (contents, props changed) vendor/tcpdump/4.9.0/print-hsrp.c (contents, props changed) vendor/tcpdump/4.9.0/print-http.c (contents, props changed) vendor/tcpdump/4.9.0/print-icmp.c (contents, props changed) vendor/tcpdump/4.9.0/print-icmp6.c (contents, props changed) vendor/tcpdump/4.9.0/print-igmp.c (contents, props changed) vendor/tcpdump/4.9.0/print-igrp.c (contents, props changed) vendor/tcpdump/4.9.0/print-ip.c (contents, props changed) vendor/tcpdump/4.9.0/print-ip6.c (contents, props changed) vendor/tcpdump/4.9.0/print-ip6opts.c (contents, props changed) vendor/tcpdump/4.9.0/print-ipcomp.c (contents, props changed) vendor/tcpdump/4.9.0/print-ipfc.c (contents, props changed) vendor/tcpdump/4.9.0/print-ipnet.c (contents, props changed) vendor/tcpdump/4.9.0/print-ipx.c (contents, props changed) vendor/tcpdump/4.9.0/print-isakmp.c (contents, props changed) vendor/tcpdump/4.9.0/print-isoclns.c (contents, props changed) vendor/tcpdump/4.9.0/print-juniper.c (contents, props changed) vendor/tcpdump/4.9.0/print-krb.c (contents, props changed) vendor/tcpdump/4.9.0/print-l2tp.c (contents, props changed) vendor/tcpdump/4.9.0/print-lane.c (contents, props changed) vendor/tcpdump/4.9.0/print-ldp.c (contents, props changed) vendor/tcpdump/4.9.0/print-lisp.c (contents, props changed) vendor/tcpdump/4.9.0/print-llc.c (contents, props changed) vendor/tcpdump/4.9.0/print-lldp.c (contents, props changed) vendor/tcpdump/4.9.0/print-lmp.c (contents, props changed) vendor/tcpdump/4.9.0/print-loopback.c (contents, props changed) vendor/tcpdump/4.9.0/print-lspping.c (contents, props changed) vendor/tcpdump/4.9.0/print-lwapp.c (contents, props changed) vendor/tcpdump/4.9.0/print-lwres.c (contents, props changed) vendor/tcpdump/4.9.0/print-m3ua.c (contents, props changed) vendor/tcpdump/4.9.0/print-medsa.c (contents, props changed) vendor/tcpdump/4.9.0/print-mobile.c (contents, props changed) vendor/tcpdump/4.9.0/print-mobility.c (contents, props changed) vendor/tcpdump/4.9.0/print-mpcp.c (contents, props changed) vendor/tcpdump/4.9.0/print-mpls.c (contents, props changed) vendor/tcpdump/4.9.0/print-mptcp.c (contents, props changed) vendor/tcpdump/4.9.0/print-msdp.c (contents, props changed) vendor/tcpdump/4.9.0/print-msnlb.c (contents, props changed) vendor/tcpdump/4.9.0/print-nflog.c (contents, props changed) vendor/tcpdump/4.9.0/print-nfs.c (contents, props changed) vendor/tcpdump/4.9.0/print-nsh.c (contents, props changed) vendor/tcpdump/4.9.0/print-ntp.c (contents, props changed) vendor/tcpdump/4.9.0/print-null.c (contents, props changed) vendor/tcpdump/4.9.0/print-olsr.c (contents, props changed) vendor/tcpdump/4.9.0/print-openflow-1.0.c (contents, props changed) vendor/tcpdump/4.9.0/print-openflow.c (contents, props changed) vendor/tcpdump/4.9.0/print-ospf.c (contents, props changed) vendor/tcpdump/4.9.0/print-ospf6.c (contents, props changed) vendor/tcpdump/4.9.0/print-otv.c (contents, props changed) vendor/tcpdump/4.9.0/print-pflog.c (contents, props changed) vendor/tcpdump/4.9.0/print-pgm.c (contents, props changed) vendor/tcpdump/4.9.0/print-pim.c (contents, props changed) vendor/tcpdump/4.9.0/print-pktap.c (contents, props changed) vendor/tcpdump/4.9.0/print-ppi.c (contents, props changed) vendor/tcpdump/4.9.0/print-ppp.c (contents, props changed) vendor/tcpdump/4.9.0/print-pppoe.c (contents, props changed) vendor/tcpdump/4.9.0/print-pptp.c (contents, props changed) vendor/tcpdump/4.9.0/print-radius.c (contents, props changed) vendor/tcpdump/4.9.0/print-raw.c (contents, props changed) vendor/tcpdump/4.9.0/print-resp.c (contents, props changed) vendor/tcpdump/4.9.0/print-rip.c (contents, props changed) vendor/tcpdump/4.9.0/print-ripng.c (contents, props changed) vendor/tcpdump/4.9.0/print-rpki-rtr.c (contents, props changed) vendor/tcpdump/4.9.0/print-rrcp.c (contents, props changed) vendor/tcpdump/4.9.0/print-rsvp.c (contents, props changed) vendor/tcpdump/4.9.0/print-rt6.c (contents, props changed) vendor/tcpdump/4.9.0/print-rtsp.c (contents, props changed) vendor/tcpdump/4.9.0/print-rx.c (contents, props changed) vendor/tcpdump/4.9.0/print-sctp.c (contents, props changed) vendor/tcpdump/4.9.0/print-sflow.c (contents, props changed) vendor/tcpdump/4.9.0/print-sip.c (contents, props changed) vendor/tcpdump/4.9.0/print-sl.c (contents, props changed) vendor/tcpdump/4.9.0/print-sll.c (contents, props changed) vendor/tcpdump/4.9.0/print-slow.c (contents, props changed) vendor/tcpdump/4.9.0/print-smb.c (contents, props changed) vendor/tcpdump/4.9.0/print-smtp.c (contents, props changed) vendor/tcpdump/4.9.0/print-snmp.c (contents, props changed) vendor/tcpdump/4.9.0/print-stp.c (contents, props changed) vendor/tcpdump/4.9.0/print-sunatm.c (contents, props changed) vendor/tcpdump/4.9.0/print-sunrpc.c (contents, props changed) vendor/tcpdump/4.9.0/print-symantec.c (contents, props changed) vendor/tcpdump/4.9.0/print-syslog.c (contents, props changed) vendor/tcpdump/4.9.0/print-tcp.c (contents, props changed) vendor/tcpdump/4.9.0/print-telnet.c (contents, props changed) vendor/tcpdump/4.9.0/print-tftp.c (contents, props changed) vendor/tcpdump/4.9.0/print-timed.c (contents, props changed) vendor/tcpdump/4.9.0/print-tipc.c (contents, props changed) vendor/tcpdump/4.9.0/print-token.c (contents, props changed) vendor/tcpdump/4.9.0/print-udld.c (contents, props changed) vendor/tcpdump/4.9.0/print-udp.c (contents, props changed) vendor/tcpdump/4.9.0/print-usb.c (contents, props changed) vendor/tcpdump/4.9.0/print-vjc.c (contents, props changed) vendor/tcpdump/4.9.0/print-vqp.c (contents, props changed) vendor/tcpdump/4.9.0/print-vrrp.c (contents, props changed) vendor/tcpdump/4.9.0/print-vtp.c (contents, props changed) vendor/tcpdump/4.9.0/print-vxlan-gpe.c (contents, props changed) vendor/tcpdump/4.9.0/print-vxlan.c (contents, props changed) vendor/tcpdump/4.9.0/print-wb.c (contents, props changed) vendor/tcpdump/4.9.0/print-zephyr.c (contents, props changed) vendor/tcpdump/4.9.0/print-zeromq.c (contents, props changed) vendor/tcpdump/4.9.0/print.c (contents, props changed) vendor/tcpdump/4.9.0/print.h (contents, props changed) vendor/tcpdump/4.9.0/rpc_auth.h (contents, props changed) vendor/tcpdump/4.9.0/rpc_msg.h (contents, props changed) vendor/tcpdump/4.9.0/rpl.h (contents, props changed) vendor/tcpdump/4.9.0/send-ack.awk (contents, props changed) vendor/tcpdump/4.9.0/setsignal.c (contents, props changed) vendor/tcpdump/4.9.0/setsignal.h (contents, props changed) vendor/tcpdump/4.9.0/signature.c (contents, props changed) vendor/tcpdump/4.9.0/signature.h (contents, props changed) vendor/tcpdump/4.9.0/slcompress.h (contents, props changed) vendor/tcpdump/4.9.0/smb.h (contents, props changed) vendor/tcpdump/4.9.0/smbutil.c (contents, props changed) vendor/tcpdump/4.9.0/stime.awk (contents, props changed) vendor/tcpdump/4.9.0/strtoaddr.c (contents, props changed) vendor/tcpdump/4.9.0/strtoaddr.h (contents, props changed) vendor/tcpdump/4.9.0/tcp.h (contents, props changed) vendor/tcpdump/4.9.0/tcpdump.1.in (contents, props changed) vendor/tcpdump/4.9.0/tcpdump.c (contents, props changed) vendor/tcpdump/4.9.0/tests/ vendor/tcpdump/4.9.0/tests/02-sunrise-sunset-esp.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/08-sunrise-sunset-aes.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/08-sunrise-sunset-esp2.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/3560_CDP.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/802.1D_spanning_tree.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/802.1w_rapid_STP.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/AoE_Linux.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/DECnet_Phone.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/DTP.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/EIGRP_adjacency.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/EIGRP_goodbye.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/EIGRP_subnet_down.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/EIGRP_subnet_up.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/HDLC.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/HSRP_coup.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/HSRP_election.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/HSRP_failover.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/IGMP_V1.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/IGMP_V2.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/ISAKMP_sa_setup.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/ISIS_external_lsp.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/ISIS_level1_adjacency.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/ISIS_level2_adjacency.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/ISIS_p2p_adjacency.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/LACP.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/LLDP_and_CDP.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/MSTP_Intra-Region_BPDUs.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/OLSRv1_HNA_sgw_1.out vendor/tcpdump/4.9.0/tests/OLSRv1_HNA_sgw_1.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/OSPFv3_NBMA_adjacencies.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/OSPFv3_broadcast_adjacency.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/OSPFv3_multipoint_adjacencies.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/OSPFv3_with_AH.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/PIM-DM_pruning.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/PIM-SM_join_prune.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/PIM_register_register-stop.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/PIMv2_bootstrap.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/PIMv2_hellos.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/QinQpacket.out vendor/tcpdump/4.9.0/tests/QinQpacket.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/QinQpacketv.out vendor/tcpdump/4.9.0/tests/RADIUS-RFC4675.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/RADIUS-RFC5176.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/RADIUS-port1700.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/RADIUS.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/TESTLIST vendor/tcpdump/4.9.0/tests/TESTonce (contents, props changed) vendor/tcpdump/4.9.0/tests/TESTrun.sh (contents, props changed) vendor/tcpdump/4.9.0/tests/UDLD.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/aarp-heapoverflow-1.out vendor/tcpdump/4.9.0/tests/aarp-heapoverflow-1.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/aarp-heapoverflow-2.out vendor/tcpdump/4.9.0/tests/aarp-heapoverflow-2.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/ahcp-vv.out vendor/tcpdump/4.9.0/tests/ahcp.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/aoe_1-v.out vendor/tcpdump/4.9.0/tests/aoe_1.out vendor/tcpdump/4.9.0/tests/arp-too-long-tha.out vendor/tcpdump/4.9.0/tests/arp-too-long-tha.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/atm-heapoverflow.out vendor/tcpdump/4.9.0/tests/atm-heapoverflow.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/atm-oam-heapoverflow.out vendor/tcpdump/4.9.0/tests/atm-oam-heapoverflow.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/babel.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/babel1.out vendor/tcpdump/4.9.0/tests/babel1v.out vendor/tcpdump/4.9.0/tests/babel_auth.out vendor/tcpdump/4.9.0/tests/babel_auth.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/babel_pad1.out vendor/tcpdump/4.9.0/tests/babel_pad1.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/babel_rtt.out vendor/tcpdump/4.9.0/tests/babel_rtt.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/bad-ipv4-version-pgm-heapoverflow.out vendor/tcpdump/4.9.0/tests/bad-ipv4-version-pgm-heapoverflow.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/bfd-raw-auth-md5-v.out vendor/tcpdump/4.9.0/tests/bfd-raw-auth-md5.out vendor/tcpdump/4.9.0/tests/bfd-raw-auth-md5.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/bfd-raw-auth-sha1-v.out vendor/tcpdump/4.9.0/tests/bfd-raw-auth-sha1.out vendor/tcpdump/4.9.0/tests/bfd-raw-auth-sha1.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/bfd-raw-auth-simple-v.out vendor/tcpdump/4.9.0/tests/bfd-raw-auth-simple.out vendor/tcpdump/4.9.0/tests/bfd-raw-auth-simple.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/bgp-aigp.out vendor/tcpdump/4.9.0/tests/bgp-aigp.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/bgp-infinite-loop.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/bgp-large-community.out vendor/tcpdump/4.9.0/tests/bgp-large-community.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/bgp_infloop-v.out vendor/tcpdump/4.9.0/tests/bgp_vpn_attrset.out vendor/tcpdump/4.9.0/tests/bgp_vpn_attrset.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/calm-fast-mac-lookup-heapoverflow.out vendor/tcpdump/4.9.0/tests/calm-fast-mac-lookup-heapoverflow.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/cdp-v.out vendor/tcpdump/4.9.0/tests/chdlc-slarp-short.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/chdlc-slarp.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/crypto.sh (contents, props changed) vendor/tcpdump/4.9.0/tests/cve-2014-8767-OLSR.out vendor/tcpdump/4.9.0/tests/cve-2014-8767-OLSR.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/cve-2014-8768-Geonet.out vendor/tcpdump/4.9.0/tests/cve-2014-8768-Geonet.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/cve-2014-8769-AODV.out vendor/tcpdump/4.9.0/tests/cve-2014-8769-AODV.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/cve2015-0261-crash.out vendor/tcpdump/4.9.0/tests/cve2015-0261-crash.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/cve2015-0261-ipv6.out vendor/tcpdump/4.9.0/tests/cve2015-0261-ipv6.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/dcb_ets.out vendor/tcpdump/4.9.0/tests/dcb_ets.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/dcb_pfc.out vendor/tcpdump/4.9.0/tests/dcb_pfc.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/dcb_qcn.out vendor/tcpdump/4.9.0/tests/dcb_qcn.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/dccp_partial_csum_v4_longer.out vendor/tcpdump/4.9.0/tests/dccp_partial_csum_v4_longer.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/dccp_partial_csum_v4_simple.out vendor/tcpdump/4.9.0/tests/dccp_partial_csum_v4_simple.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/dccp_partial_csum_v6_longer.out vendor/tcpdump/4.9.0/tests/dccp_partial_csum_v6_longer.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/dccp_partial_csum_v6_simple.out vendor/tcpdump/4.9.0/tests/dccp_partial_csum_v6_simple.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/decnet.out vendor/tcpdump/4.9.0/tests/dhcp-mud.out vendor/tcpdump/4.9.0/tests/dhcp-mud.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/dhcp-rfc3004-v.out vendor/tcpdump/4.9.0/tests/dhcp-rfc3004.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/dhcp-rfc5859-v.out vendor/tcpdump/4.9.0/tests/dhcp-rfc5859.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/dhcpv6-AFTR-Name-RFC6334.out vendor/tcpdump/4.9.0/tests/dhcpv6-AFTR-Name-RFC6334.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/dhcpv6-domain-list.out vendor/tcpdump/4.9.0/tests/dhcpv6-domain-list.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/dhcpv6-ia-na.out vendor/tcpdump/4.9.0/tests/dhcpv6-ia-na.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/dhcpv6-ia-pd.out vendor/tcpdump/4.9.0/tests/dhcpv6-ia-pd.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/dhcpv6-ia-ta.out vendor/tcpdump/4.9.0/tests/dhcpv6-ia-ta.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/dhcpv6-mud.out vendor/tcpdump/4.9.0/tests/dhcpv6-mud.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/dhcpv6-ntp-server.out vendor/tcpdump/4.9.0/tests/dhcpv6-ntp-server.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/dhcpv6-sip-server-d.out vendor/tcpdump/4.9.0/tests/dhcpv6-sip-server-d.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/dnssec-vv.out vendor/tcpdump/4.9.0/tests/dnssec.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/dtp-v.out vendor/tcpdump/4.9.0/tests/dvmrp.out vendor/tcpdump/4.9.0/tests/e1000g.out vendor/tcpdump/4.9.0/tests/e1000g.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/eapon1.gdbinit vendor/tcpdump/4.9.0/tests/eapon1.out vendor/tcpdump/4.9.0/tests/eapon1.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/eigrp1-v.out vendor/tcpdump/4.9.0/tests/eigrp2-v.out vendor/tcpdump/4.9.0/tests/eigrp3-v.out vendor/tcpdump/4.9.0/tests/eigrp4-v.out vendor/tcpdump/4.9.0/tests/epgm_zmtp1.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/epgm_zmtp1v.out vendor/tcpdump/4.9.0/tests/epgmv.out vendor/tcpdump/4.9.0/tests/esp-secrets.txt (contents, props changed) vendor/tcpdump/4.9.0/tests/esp0.out vendor/tcpdump/4.9.0/tests/esp1.gdbinit vendor/tcpdump/4.9.0/tests/esp1.out vendor/tcpdump/4.9.0/tests/esp2.gdbinit vendor/tcpdump/4.9.0/tests/esp2.out vendor/tcpdump/4.9.0/tests/esp3.gdbinit vendor/tcpdump/4.9.0/tests/esp4.gdbinit vendor/tcpdump/4.9.0/tests/esp5.gdbinit vendor/tcpdump/4.9.0/tests/esp5.out vendor/tcpdump/4.9.0/tests/espudp1.out vendor/tcpdump/4.9.0/tests/espudp1.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/evb.out vendor/tcpdump/4.9.0/tests/evb.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/forces1.out vendor/tcpdump/4.9.0/tests/forces1.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/forces1vvv.out vendor/tcpdump/4.9.0/tests/forces1vvvv.out vendor/tcpdump/4.9.0/tests/forces2.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/forces2v.out vendor/tcpdump/4.9.0/tests/forces2vv.out vendor/tcpdump/4.9.0/tests/forces2vvv.out vendor/tcpdump/4.9.0/tests/forces3.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/forces3vvv.out vendor/tcpdump/4.9.0/tests/frf15-heapoverflow.out vendor/tcpdump/4.9.0/tests/frf15-heapoverflow.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/geneve-tcp.out vendor/tcpdump/4.9.0/tests/geneve-vni.out vendor/tcpdump/4.9.0/tests/geneve-vv.out vendor/tcpdump/4.9.0/tests/geneve.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/geonet-mac-lookup-heapoverflow.out vendor/tcpdump/4.9.0/tests/geonet-mac-lookup-heapoverflow.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/geonet_and_calm_fast.out vendor/tcpdump/4.9.0/tests/geonet_and_calm_fast.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/gre-heapoverflow-1.out vendor/tcpdump/4.9.0/tests/gre-heapoverflow-1.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/gre-heapoverflow-2.out vendor/tcpdump/4.9.0/tests/gre-heapoverflow-2.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/hdlc1.out vendor/tcpdump/4.9.0/tests/hdlc2.out vendor/tcpdump/4.9.0/tests/hdlc3.out vendor/tcpdump/4.9.0/tests/hdlc4.out vendor/tcpdump/4.9.0/tests/hdlc_slarp.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/heap-overflow-1.out vendor/tcpdump/4.9.0/tests/heap-overflow-1.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/heap-overflow-2.out vendor/tcpdump/4.9.0/tests/heap-overflow-2.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/heapoverflow-EXTRACT_16BITS.out vendor/tcpdump/4.9.0/tests/heapoverflow-EXTRACT_16BITS.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/heapoverflow-atalk_print.out vendor/tcpdump/4.9.0/tests/heapoverflow-atalk_print.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/heapoverflow-in_checksum.out vendor/tcpdump/4.9.0/tests/heapoverflow-in_checksum.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/heapoverflow-ip_print_demux.out vendor/tcpdump/4.9.0/tests/heapoverflow-ip_print_demux.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/heapoverflow-ppp_hdlc_if_print.out vendor/tcpdump/4.9.0/tests/heapoverflow-ppp_hdlc_if_print.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/heapoverflow-q933_printq.out vendor/tcpdump/4.9.0/tests/heapoverflow-q933_printq.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/heapoverflow-sl_if_print.out vendor/tcpdump/4.9.0/tests/heapoverflow-sl_if_print.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/heapoverflow-tcp_print.out vendor/tcpdump/4.9.0/tests/heapoverflow-tcp_print.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/hncp.out vendor/tcpdump/4.9.0/tests/hncp.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/hsrp_1-v.out vendor/tcpdump/4.9.0/tests/hsrp_1.out vendor/tcpdump/4.9.0/tests/hsrp_2-v.out vendor/tcpdump/4.9.0/tests/hsrp_3-v.out vendor/tcpdump/4.9.0/tests/icmpv6.out vendor/tcpdump/4.9.0/tests/icmpv6.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/icmpv6_opt24-v.out vendor/tcpdump/4.9.0/tests/icmpv6_opt24.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/ieee802.11_exthdr.out vendor/tcpdump/4.9.0/tests/ieee802.11_exthdr.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/ieee802.11_rx-stbc.out vendor/tcpdump/4.9.0/tests/ieee802.11_rx-stbc.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/igmpv1.out vendor/tcpdump/4.9.0/tests/igmpv2.out vendor/tcpdump/4.9.0/tests/igmpv3-queries.out vendor/tcpdump/4.9.0/tests/igmpv3-queries.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/ikev2four.out vendor/tcpdump/4.9.0/tests/ikev2four.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/ikev2fourv.out vendor/tcpdump/4.9.0/tests/ikev2fourv4.out vendor/tcpdump/4.9.0/tests/ikev2pI2-secrets.txt (contents, props changed) vendor/tcpdump/4.9.0/tests/ikev2pI2-segfault-v.out vendor/tcpdump/4.9.0/tests/ikev2pI2-segfault.out vendor/tcpdump/4.9.0/tests/ikev2pI2-segfault.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/ikev2pI2.out vendor/tcpdump/4.9.0/tests/ikev2pI2.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/ipcomp-heapoverflow.out vendor/tcpdump/4.9.0/tests/ipcomp-heapoverflow.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/ipv6-bad-version.out vendor/tcpdump/4.9.0/tests/ipv6-bad-version.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/ipv6-routing-header.out vendor/tcpdump/4.9.0/tests/ipv6-routing-header.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/ipv6hdr-heapoverflow-v.out vendor/tcpdump/4.9.0/tests/ipv6hdr-heapoverflow.out vendor/tcpdump/4.9.0/tests/ipv6hdr-heapoverflow.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/isakmp-delete-segfault.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/isakmp-identification-segfault.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/isakmp-pointer-loop.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/isakmp1.out vendor/tcpdump/4.9.0/tests/isakmp2.out vendor/tcpdump/4.9.0/tests/isakmp3.out vendor/tcpdump/4.9.0/tests/isakmp4.out vendor/tcpdump/4.9.0/tests/isakmp4500.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/isakmp5-v.out vendor/tcpdump/4.9.0/tests/isis-infinite-loop.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/isis-seg-fault-1-v.out vendor/tcpdump/4.9.0/tests/isis-seg-fault-1-v.sh (contents, props changed) vendor/tcpdump/4.9.0/tests/isis-seg-fault-1.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/isis-seg-fault-2-v.out vendor/tcpdump/4.9.0/tests/isis-seg-fault-2.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/isis-seg-fault-3-v.out vendor/tcpdump/4.9.0/tests/isis-seg-fault-3.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/isis_1-v.out vendor/tcpdump/4.9.0/tests/isis_1.out vendor/tcpdump/4.9.0/tests/isis_2-v.out vendor/tcpdump/4.9.0/tests/isis_3-v.out vendor/tcpdump/4.9.0/tests/isis_4-v.out vendor/tcpdump/4.9.0/tests/isis_infloop-v.out vendor/tcpdump/4.9.0/tests/isis_poi.out vendor/tcpdump/4.9.0/tests/isis_poi.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/isis_poi2.out vendor/tcpdump/4.9.0/tests/isis_poi2.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/isoclns-heapoverflow-2.out vendor/tcpdump/4.9.0/tests/isoclns-heapoverflow-2.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/isoclns-heapoverflow-3.out vendor/tcpdump/4.9.0/tests/isoclns-heapoverflow-3.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/isoclns-heapoverflow.out vendor/tcpdump/4.9.0/tests/isoclns-heapoverflow.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/isup.out vendor/tcpdump/4.9.0/tests/isup.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/isupvv.out vendor/tcpdump/4.9.0/tests/juniper_header-heapoverflow.out vendor/tcpdump/4.9.0/tests/juniper_header-heapoverflow.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/kday1.out vendor/tcpdump/4.9.0/tests/kday1.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/kday2.out vendor/tcpdump/4.9.0/tests/kday2.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/kday3.out vendor/tcpdump/4.9.0/tests/kday3.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/kday4.out vendor/tcpdump/4.9.0/tests/kday4.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/kday5.out vendor/tcpdump/4.9.0/tests/kday5.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/kday6.out vendor/tcpdump/4.9.0/tests/kday6.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/kday7.out vendor/tcpdump/4.9.0/tests/kday7.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/kday8.out vendor/tcpdump/4.9.0/tests/kday8.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/lacp-ev.out vendor/tcpdump/4.9.0/tests/ldp-infinite-loop.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/ldp_infloop.out vendor/tcpdump/4.9.0/tests/lisp_eid_notify.out vendor/tcpdump/4.9.0/tests/lisp_eid_notify.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/lisp_eid_register.out vendor/tcpdump/4.9.0/tests/lisp_eid_register.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/lisp_ipv6.out vendor/tcpdump/4.9.0/tests/lisp_ipv6.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/llc-xid-heapoverflow.out vendor/tcpdump/4.9.0/tests/llc-xid-heapoverflow.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/lldp_cdp-ev.out vendor/tcpdump/4.9.0/tests/lldp_mudurl-v.out vendor/tcpdump/4.9.0/tests/lldp_mudurl-vv.out vendor/tcpdump/4.9.0/tests/lldp_mudurl.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/lmp-v.out vendor/tcpdump/4.9.0/tests/lmp-v.sh (contents, props changed) vendor/tcpdump/4.9.0/tests/lmp.out vendor/tcpdump/4.9.0/tests/lmp.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/loopback.out vendor/tcpdump/4.9.0/tests/loopback.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/lspping-fec-ldp-v.out vendor/tcpdump/4.9.0/tests/lspping-fec-ldp-vv.out vendor/tcpdump/4.9.0/tests/lspping-fec-ldp.out vendor/tcpdump/4.9.0/tests/lspping-fec-ldp.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/lspping-fec-rsvp-v.out vendor/tcpdump/4.9.0/tests/lspping-fec-rsvp-vv.out vendor/tcpdump/4.9.0/tests/lspping-fec-rsvp.out vendor/tcpdump/4.9.0/tests/lspping-fec-rsvp.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/medsa-e.out vendor/tcpdump/4.9.0/tests/medsa.out vendor/tcpdump/4.9.0/tests/medsa.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/mpbgp-linklocal-nexthop.out vendor/tcpdump/4.9.0/tests/mpbgp-linklocal-nexthop.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/mpls-label-heapoverflow.out vendor/tcpdump/4.9.0/tests/mpls-label-heapoverflow.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/mpls-ldp-hello.out vendor/tcpdump/4.9.0/tests/mpls-ldp-hello.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/mpls-traceroute-v.out vendor/tcpdump/4.9.0/tests/mpls-traceroute.out vendor/tcpdump/4.9.0/tests/mpls-traceroute.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/mptcp-fclose.out vendor/tcpdump/4.9.0/tests/mptcp-fclose.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/mptcp.out vendor/tcpdump/4.9.0/tests/mptcp.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/mrinfo_query.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/msnlb.out vendor/tcpdump/4.9.0/tests/msnlb.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/msnlb2.out vendor/tcpdump/4.9.0/tests/msnlb2.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/mstp-v.out vendor/tcpdump/4.9.0/tests/mtrace.out vendor/tcpdump/4.9.0/tests/mtrace.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/nflog-e.out vendor/tcpdump/4.9.0/tests/nflog-e.sh (contents, props changed) vendor/tcpdump/4.9.0/tests/nflog.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/nfs-seg-fault-1.out vendor/tcpdump/4.9.0/tests/nfs-seg-fault-1.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/nsh-over-vxlan-gpe-v.out vendor/tcpdump/4.9.0/tests/nsh-over-vxlan-gpe-vv.out vendor/tcpdump/4.9.0/tests/nsh-over-vxlan-gpe-vvv.out vendor/tcpdump/4.9.0/tests/nsh-over-vxlan-gpe.out vendor/tcpdump/4.9.0/tests/nsh-over-vxlan-gpe.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/of10_7050q-v.out vendor/tcpdump/4.9.0/tests/of10_7050q.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/of10_7050sx_bsn-vv.out vendor/tcpdump/4.9.0/tests/of10_7050sx_bsn.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/of10_p3295-vv.out vendor/tcpdump/4.9.0/tests/of10_p3295.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/of10_pf5240-vv.out vendor/tcpdump/4.9.0/tests/of10_pf5240.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/of10_s4810-vvvv.out vendor/tcpdump/4.9.0/tests/of10_s4810.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/ospf-gmpls.out vendor/tcpdump/4.9.0/tests/ospf-gmpls.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/ospf2-seg-fault-1-v.out vendor/tcpdump/4.9.0/tests/ospf2-seg-fault-1.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/ospf3_ah-vv.out vendor/tcpdump/4.9.0/tests/ospf3_auth-vv.out vendor/tcpdump/4.9.0/tests/ospf3_auth.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/ospf3_bc-vv.out vendor/tcpdump/4.9.0/tests/ospf3_mp-vv.out vendor/tcpdump/4.9.0/tests/ospf3_nbma-vv.out vendor/tcpdump/4.9.0/tests/otv-heapoverflow-1.out vendor/tcpdump/4.9.0/tests/otv-heapoverflow-1.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/otv-heapoverflow-2.out vendor/tcpdump/4.9.0/tests/otv-heapoverflow-2.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/pcap-invalid-version-1.out vendor/tcpdump/4.9.0/tests/pcap-invalid-version-1.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/pcap-invalid-version-2.out vendor/tcpdump/4.9.0/tests/pcap-invalid-version-2.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/pcap-ng-invalid-vers-1.out vendor/tcpdump/4.9.0/tests/pcap-ng-invalid-vers-1.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/pcap-ng-invalid-vers-2.out vendor/tcpdump/4.9.0/tests/pcap-ng-invalid-vers-2.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/pgm_zmtp1.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/pgm_zmtp1v.out vendor/tcpdump/4.9.0/tests/pgmv.out vendor/tcpdump/4.9.0/tests/pimv2_bootstrap-v.out vendor/tcpdump/4.9.0/tests/pimv2_dm-v.out vendor/tcpdump/4.9.0/tests/pimv2_hellos-v.out vendor/tcpdump/4.9.0/tests/pimv2_register-v.out vendor/tcpdump/4.9.0/tests/pimv2_sm-v.out vendor/tcpdump/4.9.0/tests/pppoe.out vendor/tcpdump/4.9.0/tests/pppoe.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/pppoes.out vendor/tcpdump/4.9.0/tests/pppoes.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/pppoes_id.out vendor/tcpdump/4.9.0/tests/print-A.out vendor/tcpdump/4.9.0/tests/print-AA.out vendor/tcpdump/4.9.0/tests/print-capX.out vendor/tcpdump/4.9.0/tests/print-capXX.out vendor/tcpdump/4.9.0/tests/print-flags.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/print-x.out vendor/tcpdump/4.9.0/tests/print-xx.out vendor/tcpdump/4.9.0/tests/q933-heapoverflow-2.out vendor/tcpdump/4.9.0/tests/q933-heapoverflow-2.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/radiotap-heapoverflow.out vendor/tcpdump/4.9.0/tests/radiotap-heapoverflow.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/radius-port1700-v.out vendor/tcpdump/4.9.0/tests/radius-rfc4675-v.out vendor/tcpdump/4.9.0/tests/radius-rfc5176-v.out vendor/tcpdump/4.9.0/tests/radius-v.out vendor/tcpdump/4.9.0/tests/relts-0x80000000.out vendor/tcpdump/4.9.0/tests/relts-0x80000000.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/resp_1.out vendor/tcpdump/4.9.0/tests/resp_1_benchmark.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/resp_2.out vendor/tcpdump/4.9.0/tests/resp_2_inline.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/resp_3.out vendor/tcpdump/4.9.0/tests/resp_3_malicious.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/ripv1v2.out vendor/tcpdump/4.9.0/tests/ripv1v2.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/ripv2_auth.out vendor/tcpdump/4.9.0/tests/ripv2_auth.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/rpl-14-dao.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/rpl-14-daovvv.out vendor/tcpdump/4.9.0/tests/rpl-19-pickdag.out vendor/tcpdump/4.9.0/tests/rpl-19-pickdag.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/rpl-19-pickdagvvv.out vendor/tcpdump/4.9.0/tests/rpl-26-senddaoack.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/rpl-26-senddaovv.out vendor/tcpdump/4.9.0/tests/rpvst-v.out vendor/tcpdump/4.9.0/tests/rpvstp-trunk-native-vid5.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/rstp-v.out vendor/tcpdump/4.9.0/tests/rsvp-inf-loop-2-v.out vendor/tcpdump/4.9.0/tests/rsvp-inf-loop-2.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/rsvp-infinite-loop.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/rsvp_infloop-v.out vendor/tcpdump/4.9.0/tests/rtp-seg-fault-1.out vendor/tcpdump/4.9.0/tests/rtp-seg-fault-1.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/rtp-seg-fault-2.out vendor/tcpdump/4.9.0/tests/rtp-seg-fault-2.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/scps_invalid.out vendor/tcpdump/4.9.0/tests/scps_invalid.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/sflow_multiple_counter_30_pdus-nv.out vendor/tcpdump/4.9.0/tests/sflow_multiple_counter_30_pdus.out vendor/tcpdump/4.9.0/tests/sflow_multiple_counter_30_pdus.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/snmp-heapoverflow-1.out vendor/tcpdump/4.9.0/tests/snmp-heapoverflow-1.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/snmp-heapoverflow-2.out vendor/tcpdump/4.9.0/tests/snmp-heapoverflow-2.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/spb.out vendor/tcpdump/4.9.0/tests/spb.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/spb_bpduv4-v.out vendor/tcpdump/4.9.0/tests/spb_bpduv4.out vendor/tcpdump/4.9.0/tests/spb_bpduv4.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/stp-heapoverflow-1.out vendor/tcpdump/4.9.0/tests/stp-heapoverflow-1.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/stp-heapoverflow-2.out vendor/tcpdump/4.9.0/tests/stp-heapoverflow-2.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/stp-heapoverflow-3.out vendor/tcpdump/4.9.0/tests/stp-heapoverflow-3.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/stp-heapoverflow-4.out vendor/tcpdump/4.9.0/tests/stp-heapoverflow-4.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/stp-heapoverflow-5.out vendor/tcpdump/4.9.0/tests/stp-heapoverflow-5.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/stp-v.out vendor/tcpdump/4.9.0/tests/syslog-v.out vendor/tcpdump/4.9.0/tests/syslog_udp.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/tcp-auth-heapoverflow.out vendor/tcpdump/4.9.0/tests/tcp-auth-heapoverflow.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/tcp_header_heapoverflow.out vendor/tcpdump/4.9.0/tests/tcp_header_heapoverflow.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/tfo-5c1fa7f9ae91.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/tfo.out vendor/tcpdump/4.9.0/tests/tftp-heapoverflow.out vendor/tcpdump/4.9.0/tests/tftp-heapoverflow.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/trunc_aack.out vendor/tcpdump/4.9.0/tests/truncated-aack.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/udld-inf-loop-1-v.out vendor/tcpdump/4.9.0/tests/udld-inf-loop-1.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/udld-v.out vendor/tcpdump/4.9.0/tests/udp-length-heapoverflow.out vendor/tcpdump/4.9.0/tests/udp-length-heapoverflow.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/unaligned-nfs-1.out vendor/tcpdump/4.9.0/tests/unaligned-nfs-1.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/vrrp-v.out vendor/tcpdump/4.9.0/tests/vrrp.out vendor/tcpdump/4.9.0/tests/vrrp.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/vxlan.out vendor/tcpdump/4.9.0/tests/vxlan.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/zmtp1-inf-loop-1.out vendor/tcpdump/4.9.0/tests/zmtp1-inf-loop-1.pcap (contents, props changed) vendor/tcpdump/4.9.0/tests/zmtp1.out vendor/tcpdump/4.9.0/tests/zmtp1.pcap (contents, props changed) vendor/tcpdump/4.9.0/timeval-operations.h (contents, props changed) vendor/tcpdump/4.9.0/udp.h (contents, props changed) vendor/tcpdump/4.9.0/util-print.c (contents, props changed) vendor/tcpdump/4.9.0/vfprintf.c (contents, props changed) vendor/tcpdump/4.9.0/win32/ vendor/tcpdump/4.9.0/win32/prj/ vendor/tcpdump/4.9.0/win32/prj/GNUmakefile vendor/tcpdump/4.9.0/win32/prj/WinDump.dsp vendor/tcpdump/4.9.0/win32/prj/WinDump.dsw vendor/tcpdump/4.9.0/win32/prj/WinDump.sln vendor/tcpdump/4.9.0/win32/prj/WinDump.vcproj vendor/tcpdump/4.9.0/win32/src/ vendor/tcpdump/4.9.0/win32/src/ether_ntohost.c (contents, props changed) Added: vendor/tcpdump/4.9.0/CHANGES ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/tcpdump/4.9.0/CHANGES Tue Jan 31 19:12:28 2017 (r313023) @@ -0,0 +1,1320 @@ +Wednesday January 18, 2017 devel.fx.lebail@orange.fr + Summary for 4.9.0 tcpdump release + General updates: + Improve separation frontend/backend (tcpdump/libnetdissect) + Don't require IPv6 library support in order to support IPv6 addresses + Introduce data types to use for integral values in packet structures + Fix display of timestamps with -tt, -ttt and -ttttt options + Fix some heap overflows found with American Fuzzy Lop by Hanno Boeck and others + (More information in the log with CVE-2016-* and CVE-2017-*) + Change the way protocols print link-layer addresses (Fix heap overflows + in CALM-FAST and GeoNetworking printers) + Pass correct caplen value to ether_print() and some other functions + Fix lookup_nsap() to match what isonsap_string() expects + Clean up relative time stamp printing (Fix an array overflow) + Fix some alignment issues with GCC on Solaris 10 SPARC + Add some ND_TTEST_/ND_TCHECK_ macros to simplify writing bounds checks + Add a fn_printztn() which returns the number of bytes processed + Add nd_init() and nd_cleanup() functions. Improve libsmi support + Add CONTRIBUTING file + Add a summary comment in all printers + Compile with more warning options in devel mode if supported (-Wcast-qual, ...) + Fix some leaks found by Valgrind/Memcheck + Fix a bunch of de-constifications + Squelch some Coverity warnings and some compiler warnings + Update Coverity and Travis-CI setup + Update Visual Studio files + + Frontend: + Fix capsicum support to work with zerocopy buffers in bpf + Try opening interfaces by name first, then by name-as-index + Work around pcap_create() failures fetching time stamp type lists + Fix a segmentation fault with 'tcpdump -J' + Improve addrtostr6() bounds checking + Add exit_tcpdump() function + Don't drop CAP_SYS_CHROOT before chrooting + Fixes issue where statistics not reported when -G and -W options used + + New printers supporting: + Generic Protocol Extension for VXLAN (VXLAN-GPE) + Home Networking Control Protocol (HNCP), RFCs 7787 and 7788 + Locator/Identifier Separation Protocol (LISP), type 3 and type 4 packets + Marvell Extended Distributed Switch Architecture header (MEDSA) + Network Service Header (NSH) + REdis Serialization Protocol (RESP) + + Updated printers: + 802.11: Beginnings of 11ac radiotap support + 802.11: Check the Protected bit for management frames + 802.11: Do bounds checking on last_presentp before dereferencing it (Fix a heap overflow) + 802.11: Fix the radiotap printer to handle the special bits correctly + 802.11: If we have the MCS field, it's 11n + 802.11: Only print unknown frame type or subtype messages once + 802.11: Radiotap dBm values get printed as dB; Update a test output accordingly + 802.11: Source and destination addresses were backwards + AH: Add a bounds check + AH: Report to our caller that dissection failed if a bounds check fails + AP1394: Print src > dst, not dst > src + ARP: Don't assume the target hardware address is <= 6 octets long (Fix a heap overflow) + ATALK: Add bounds and length checks (Fix heap overflows) + ATM: Add some bounds checks (Fix a heap overflow) + ATM: Fix an incorrect bounds check + BFD: Update specification from draft to RFC 5880 + BFD: Update to print optional authentication field + BGP: Add decoding of ADD-PATH capability + BGP: Add support for the AIGP attribute (RFC7311) + BGP: Print LARGE_COMMUNITY Path Attribute + BGP: Update BGP numbers from IANA; Print minor values for FSM notification + BOOTP: Add a bounds check + Babel: Add decoder for source-specific extension + CDP: Filter out non-printable characters + CFM: Fixes to match the IEEE standard, additional bounds and length checks + CSLIP: Add more bounds checks (Fix a heap overflow) + ClassicalIPoATM: Add a bounds check on LLC+SNAP header (Fix a heap overflow) + DHCP: Fix MUDURL and TZ options + DHCPv6: Process MUDURL and TZ options + DHCPv6: Update Status Codes with RFCs/IANA names + DNS: Represent the "DNSSEC OK" bit as "DO" instead of "OK". Add a test case + DTP: Improve packet integrity checks + EGP: Fix bounds checks + ESP: Don't use OpenSSL_add_all_algorithms() in OpenSSL 1.1.0 or later + ESP: Handle OpenSSL 1.1.x + Ethernet: Add some bounds checking before calling isoclns_print (Fix a heap overflow) + Ethernet: Print the Length/Type field as length when needed + FDDI: Fix -e output for FDDI + FR: Add some packet-length checks and improve Q.933 printing (Fix heap overflows) + GRE: Add some bounds checks (Fix heap overflows) + Geneve: Fix error message with invalid option length; Update list option classes + HNCP: Fix incorrect time interval format. Fix handling of IPv4 prefixes + ICMP6: Fetch a 32-bit big-endian quantity with EXTRACT_32BITS() + ICMP6: dagid is always an IPv6 address, not an opaque 128-bit string + IGMP: Add a length check + IP: Add a bounds check (Fix a heap overflow) + IP: Check before fetching the protocol version (Fix a heap overflow) + IP: Don't try to dissect if IP version != 4 (Fix a heap overflow) + IP: Stop processing IPPROTO_ values once we hit IPPROTO_IPCOMP + IPComp: Check whether we have the CPI before we fetch it (Fix a heap overflow) + IPoFC: Fix -e output (IP-over-Fibre Channel) + IPv6: Don't overwrite the destination IPv6 address for routing headers + IPv6: Fix header printing + IPv6: Stop processing IPPROTO_ values once we hit IPPROTO_IPCOMP + ISAKMP: Clean up parsing of IKEv2 Security Associations + ISOCLNS/IS-IS: Add support for Purge Originator Identifier (RFC6232) and test cases + ISOCLNS/IS-IS: Don't overwrite packet data when checking the signature + ISOCLNS/IS-IS: Filter out non-printable characters + ISOCLNS/IS-IS: Fix segmentation faults + ISOCLNS/IS-IS: Have signature_verify() do the copying and clearing + ISOCLNS: Add some bounds checks + Juniper: Make sure a Juniper header TLV isn't bigger than what's left in the packet (Fix a heap overflow) + LLC/SNAP: With -e, print the LLC header before the SNAP header; without it, cut the SNAP header + LLC: Add a bounds check (Fix a heap overflow) + LLC: Clean up printing of LLC packets + LLC: Fix the printing of RFC 948-style IP packets + LLC: Skip the LLC and SNAP headers with -x for 802.11 and some other protocols + LLDP: Implement IANA OUI and LLDP MUD option + MPLS LSP ping: Update printing for RFC 4379, bug fixes, more bounds checks + MPLS: "length" is now the *remaining* packet length + MPLS: Add bounds and length checks (Fix a heap overflow) + NFS: Add a test that makes unaligned accesses + NFS: Don't assume the ONC RPC header is nicely aligned + NFS: Don't overflow the Opaque_Handle buffer (Fix a segmentation fault) + NFS: Don't run past the end of an NFSv3 file handle + OLSR: Add a test to cover a HNA sgw case + OLSR: Fix 'Advertised networks' count + OLSR: Fix printing of smart-gateway HNAs in IPv4 + OSPF: Add a bounds check for the Hello packet options + OSPF: Do more bounds checking + OSPF: Fix a segmentation fault + OSPF: Fix printing 'ospf_topology_values' default + OTV: Add missing bounds checks + PGM: Print the formatted IP address, not the raw binary address, as a string + PIM: Add some bounds checking (Fix a heap overflow) + PIMv2: Fix checksumming of Register messages + PPI: Pass an adjusted struct pcap_pkthdr to the sub-printer + PPP: Add some bounds checks (Fix a heap overflow) + PPP: Report invalid PAP AACK/ANAK packets + Q.933: Add a missing bounds check + RADIUS: Add Value 13 "VLAN" to Tunnel-Type attribute + RADIUS: Filter out non-printable characters + RADIUS: Translate UDP/1700 as RADIUS + RESP: Do better checking of RESP packets + RPKI-RTR: Add a return value check for "fn_printn" call + RPKI-RTR: Remove printing when truncated condition already detected + RPL: Fix 'Consistency Check' control code + RPL: Fix suboption print + RSVP: An INTEGRITY object in a submessage covers only the submessage + RSVP: Fix an infinite loop; Add bounds and length checks + RSVP: Fix some if statements missing brackets + RSVP: Have signature_verify() do the copying and clearing + RTCP: Add some bounds checks + RTP: Add some bounds checks, fix two segmentation faults + SCTP: Do more bounds checking + SFLOW: Fix bounds checking + SLOW: Fix bugs, add checks + SMB: Before fetching the flags2 field, make sure we have it + SMB: Do bounds checks on NBNS resource types and resource data lengths + SNMP: Clean up the "have libsmi but no modules loaded" case + SNMP: Clean up the object abbreviation list and fix the code to match them + SNMP: Do bounds checks when printing character and octet strings + SNMP: Improve ASN.1 bounds checks + SNMP: More bounds and length checks + STP: Add a bunch of bounds checks, and fix some printing (Fix heap overflows) + STP: Filter out non-printable characters + TCP: Add bounds and length checks for packets with TCP option 20 + TCP: Correct TCP option Kind value for TCP Auth and add SCPS-TP + TCP: Fix two bounds checks (Fix heap overflows) + TCP: Make sure we have the data offset field before fetching it (Fix a heap overflow) + TCP: Put TCP-AO option decoding right + TFTP: Don't use strchr() to scan packet data (Fix a heap overflow) + Telnet: Add some bounds checks + TokenRing: Fix -e output + UDLD: Fix an infinite loop + UDP: Add a bounds check (Fix a heap overflow) + UDP: Check against the packet length first + UDP: Don't do the DDP-over-UDP heuristic check up front + VAT: Add some bounds checks + VTP: Add a test on Mgmt Domain Name length + VTP: Add bounds checks and filter out non-printable characters + VXLAN: Add a bound check and a test case + ZeroMQ: Fix an infinite loop + +Tuesday April 14, 2015 guy@alum.mit.edu + Summary for 4.8.0 tcpdump release + Fix "-x" for Apple PKTAP and PPI packets + +Friday April 10, 2015 guy@alum.mit.edu + Summary for 4.7.4 tcpdump release + RPKI to Router Protocol: Fix Segmentation Faults and other problems + RPKI to Router Protocol: print strings with fn_printn() + wb: fix some bounds checks + +Wednesday March 11, 2015 mcr@sandelman.ca + Summary for 4.7.3 tcpdump release + Capsicum fixes for FreeBSD 10 + +Tuesday March 10, 2015 mcr@sandelman.ca + Summary for 4.7.2 tcpdump release + DCCP: update Packet Types with RFC4340/IANA names + fixes for CVE-2015-0261: IPv6 mobility header check issue + fixes for CVE-2015-2153, 2154, 2155: kday packets + +Friday Nov. 12, 2014 guy@alum.mit.edu + Summary for 4.7.0 tcpdump release + changes to hex printing of CDP packets + Fix PPI printing + Radius: update Packet Type Codes and Attribute Types with RFC/IANA names + Add a routine to print "text protocols", and add FTP/HTTP/SMTP/RTSP support. + improvements to telnet printer, even if not -v + omit length for bcp, print-tcp uses it + formatting fixes for a bunch of protocols + new bounds checks for a number of protocols + split netflow 1,6, and 6 dissector up. + added geneve dissector + CVE-2014-9140 PPP dissector fixed. + +Tuesday Sep. 2, 2014 mcr@sandelman.ca + Summary for 4.6.2 tcpdump release + fix out-of-source-tree builds: find libpcap that is out of source + better configure check for libsmi + +Saturday Jul. 19, 2014 mcr@sandelman.ca + Summary for 4.6.1 tcpdump release + added FreeBSD capsicum + add a short option '#', same as long option '--number' + +Wednesday Jul. 2, 2014 mcr@sandelman.ca + Summary for 4.6.0 tcpdump release + all of tcpdump is now using the new "NDO" code base (Thanks Denis!) + nflog, mobile, forces, pptp, AODV, AHCP, IPv6, OSPFv4, RPL, DHCPv6 enhancements/fixes + M3UA decode added. + many new test cases: 82 in 4.5.1 to 133 in 4.6.0 + many improvements to travis continuous integration system: OSX, and Coverity options + cleaned up some unnecessary header files + Added bittok2str(). + a number of unaligned access faults fixed + -A flag does not consider CR to be printable anymore + fx.lebail took over coverity baby sitting + default snapshot size increased to 256K for accomodate USB captures + WARNING: this release contains a lot of very worthwhile code churn. + +Wednesday Jan. 15, 2014 guy@alum.mit.edu + Summary for 4.5.2 tcpdump release + Man page fix + Fix crashes on SPARC + +Monday Nov. 11, 2013 mcr@sandelman.ca + Summary for 4.5.1 tcpdump release + CREDITS file fixes + +Thursday Nov. 7, 2013 mcr@sandelman.ca and guy@alum.mit.edu. + Summary for 4.5.0 tcpdump release + some NFSv4 fixes for printing + fix printing of unknown TCP options, and tcp fast-open + fixes for syslog parser + some gcc-version-specific flag tuning + adopt MacOS deprecation workarounds for openssl + improvements to babel printing + add OpenFlow 1.0 (no SSL) and test cases + GeoNet printer. + added STBC Rx support + improvements to DHCPv6 decoder + clarify which autoconf is needed + Point users to the the-tcpdump-group repository on GitHub rather + than the mcr repository + Add MSDP printer. + Fixed IPv6 check on Solaris and other OSes requiring extra + networking libraries. + Add support for VXLAN (draft-mahalingam-dutt-dcops-vxlan-03), + and add "vxlan" as an option for -T. + Add support for OTV (draft-hasmit-otv-04). + fixes for DLT_IEEE802_11_RADIO datalink types + added MPTCP decoder + +Saturday April 6, 2013 guy@alum.mit.edu. + Summary for 4.4.0 tcpdump release + RPKI-RTR (RFC6810) is now official (TCP Port 323) + Fix detection of OpenSSL libcrypto. + Add DNSSL (RFC6106) support. + Add "radius" as an option for -T. + Update Action codes for handle_action function according to + 802.11s amendment. + Decode DHCPv6 AFTR-Name option (RFC6334). + Updates for Babel. + Fix printing of infinite lifetime in ICMPv6. + Added support for SPB, SPBM Service Identifier, and Unicast + Address sub-TLV in ISIS. + Decode RIPv2 authentication up to RFC4822. + Fix RIP Request/full table decoding issues. + On Linux systems with cap-ng.h, drop root privileges + using Linux Capabilities. + Add support for reading multiple files. + Add MS NLB heartbeat printer. + Separate multiple nexthops in BGP. + +Wednesday November 28, 2012 guy@alum.mit.edu. + Summary for 4.3.1 tcpdump release + Print "LLDP, length N" for LLDP packets even when not in verbose + mode, so something is printed even if only the timestamp is + present + Document "-T carp" + Print NTP poll interval correctly (it's an exponent, so print + both its raw value and 2^value) + Document that "-e" is used to get MAC addresses + More clearly document that you need to escape or quote + backslashes in filter expressions on the command line + Fix some "the the" in the man page + Use the right maximum path length + Don't treat 192_1_2, when passed to -i, as an interface number + +Friday April 3, 2012. mcr@sandelman.ca. + Summary for 4.3.0 tcpdump release + fixes for forces: SPARSE data (per RFC 5810) + some more test cases added + updates to documentation on -l, -U and -w flags. + Fix printing of BGP optional headers. + Tried to include DLT_PFSYNC support, failed due to headers required. + added TIPC support. + Fix LLDP Network Policy bit definitions. + fixes for IGMPv3's Max Response Time: it is in units of 0.1 second. + SIGUSR1 can be used rather than SIGINFO for stats + permit -n flag to affect print-ip for protocol numbers + ND_OPT_ADVINTERVAL is in milliseconds, not seconds + Teach PPPoE parser about RFC 4638 + + +Friday December 9, 2011. guy@alum.mit.edu. + Summary for 4.2.1 tcpdump release + Only build the Babel printer if IPv6 is enabled. + Support Babel on port 6696 as well as 6697. + Include ppi.h in release tarball. + Include all the test files in the release tarball, and don't + "include" test files that no longer exist. + Don't assume we have - check for it. + Support "-T carp" as a way of dissecting IP protocol 112 as CARP + rather than VRRP. + Support Hilscher NetAnalyzer link-layer header format. + Constify some pointers and fix compiler warnings. + Get rid of never-true test. + Fix an unintended fall-through in a case statement in the ARP + printer. + Fix several cases where sizeof(sizeof(XXX)) was used when just + sizeof(XXX) was intended. + Make stricter sanity checks in the ES-IS printer. + Get rid of some GCCisms that caused builds to fai with compilers + that don't support them. + Fix typo in man page. + Added length checks to Babel printer. + +Sunday July 24, 2011. mcr@sandelman.ca. + Summary for 4.2.+ + merged 802.15.4 decoder from Dmitry Eremin-Solenikov + updates to forces for new port numbers + Use "-H", not "-h", for the 802.11s option. (-h always help) + Better ICMPv6 checksum handling. + add support for the RPKI/Router Protocol, per -ietf-sidr-rpki-rtr-12 + get rid of uuencoded pcap test files, git can do binary. + sFlow changes for 64-bit counters. + fixes for PPI packet header handling and printing. + Add DCB Exchange protocol (DCBX) version 1.01. + Babel dissector, from Juliusz Chroboczek and Grégoire Henry. + improvements to radiotap for rate values > 127. + Many improvements to ForCES decode, including fix SCTP TML port + updated RPL type code to RPL-17 draft + Improve printout of DHCPv6 options. + added support and test case for QinQ (802.1q VLAN) packets + Handle DLT_IEEE802_15_4_NOFCS like DLT_IEEE802_15_4. + Build fixes for Sparc and other machines with alignment restrictions. + Merged changes from Debian package. + PGM: Add ACK decoding and add PGMCC DATA and FEEDBACK options. + Build fixes for OSX (Snow Leopard and others) + Add support for IEEE 802.15.4 packets + +Tue. July 20, 2010. guy@alum.mit.edu. + Summary for 4.1.2 tcpdump release + If -U is specified, flush the file after creating it, so it's + not zero-length + Fix TCP flags output description, and some typoes, in the man + page + Add a -h flag, and only attempt to recognize 802.11s mesh + headers if it's set + When printing the link-layer type list, send *all* output to + stderr + Include the CFLAGS setting when configure was run in the + compiler flags + +Thu. April 1, 2010. guy@alum.mit.edu. + Summary for 4.1.1 tcpdump release + Fix build on systems with PF, such as FreeBSD and OpenBSD. + Don't blow up if a zero-length link-layer address is passed to + linkaddr_string(). + +Thu. March 11, 2010. ken@netfunctional.ca/guy@alum.mit.edu. + Summary for 4.1.0 tcpdump release + Fix printing of MAC addresses for VLAN frames with a length + field + Add some additional bounds checks and use the EXTRACT_ macros + more + Add a -b flag to print the AS number in BGP packets in ASDOT + notation rather than ASPLAIN notation + Add ICMPv6 RFC 5006 support + Decode the access flags in NFS access requests + Handle the new DLT_ for memory-mapped USB captures on Linux + Make the default snapshot (-s) the maximum + Print name of device (when -L is used) + Support for OpenSolaris (and SXCE build 125 and later) + Print new TCP flags + Add support for RPL DIO + Add support for TCP User Timeout (UTO) + Add support for non-standard Ethertypes used by 3com PPPoE gear + Add support for 802.11n and 802.11s + Add support for Transparent Ethernet Bridge ethertype in GRE + Add 4 byte AS support for BGP printer + Add support for the MDT SAFI 66 BG printer + Add basic IPv6 support to print-olsr + Add USB printer + Add printer for ForCES + Handle frames with an FCS + Handle 802.11n Control Wrapper, Block Acq Req and Block Ack frames + Fix TCP sequence number printing + Report 802.2 packets as 802.2 instead of 802.3 + Don't include -L/usr/lib in LDFLAGS + On x86_64 Linux, look in lib64 directory too + Lots of code clean ups + Autoconf clean ups + Update testcases to make output changes + Fix compiling with/out smi (--with{,out}-smi) + Fix compiling without IPv6 support (--disable-ipv6) + +Mon. October 27, 2008. ken@netfunctional.ca. Summary for 4.0.0 tcpdump release + Add support for Bluetooth Sniffing + Add support for Realtek Remote Control Protocol (openrrcp.org.ru) + Add support for 802.11 AVS + Add support for SMB over TCP + Add support for 4 byte BGP AS printing + Add support for compiling on case-insensitive file systems + Add support for ikev2 printing + Update support for decoding AFS + Update DHCPv6 printer + Use newer libpcap API's (allows -B option on all platforms) + Add -I to turn on monitor mode + Bugfixes in lldp, lspping, dccp, ESP, NFS printers + Cleanup unused files and various cruft + +Mon. September 10, 2007. ken@xelerance.com. Summary for 3.9.8 tcpdump release + Rework ARP printer + Rework OSPFv3 printer + Add support for Frame-Relay ARP + Decode DHCP Option 121 (RFC 3442 Classless Static Route) + Decode DHCP Option 249 (MS Classless Static Route) the same as Option 121 + TLV: Add support for Juniper .pcap extensions + Print EGP header in new-world-order style + Converted print-isakmp.c to NETDISSECT + Moved AF specific stuff into af.h + Test subsystem now table driven, and saves outputs and diffs to one place + Require for pf definitions - allows reading of pflog formatted + libpcap files on an OS other than where the file was generated + + +Wed. July 23, 2007. mcr@xelerance.com. Summary for 3.9.7 libpcap release + + NFS: Print unsigned values as such. + RX: parse safely. + BGP: fixes for IPv6-less builds. + 801.1ag: use standard codepoint. + use /dev/bpf on systems with such a device. + 802.11: print QoS data, avoid dissect of no-data frame, ignore padding. + smb: make sure that we haven't gone past the end of the captured data. + smb: squelch an uninitialized complaint from coverity. + NFS: from NetBSD; don't interpret the reply as a possible NFS reply + if it got MSG_DENIED. + BGP: don't print TLV values that didn't fit, from www.digit-labs.org. + revised INSTALL.txt about libpcap dependancy. + +Wed. April 25, 2007. ken@xelerance.com. Summary for 3.9.6 tcpdump release + Update man page to reflect changes to libpcap + Changes to both TCP and IP Printer Output + Fix a potential buffer overflow in the 802.11 printer + Print basic info about a few more Cisco LAN protocols. + mDNS cleanup + ICMP MPLS rework of the extension code + bugfix: use the correct codepoint for the OSPF simple text auth token + entry, and use safeputs to print the password. + Add support in pflog for additional values + Add support for OIF RSVP Extensions UNI 1.0 Rev. 2 and additional RSVP objects + Add support for the Message-id NACK c-type. + Add support for 802.3ah loopback ctrl msg + Add support for Multiple-STP as per 802.1s + Add support for rapid-SPT as per 802.1w + Add support for CFM Link-trace msg, Link-trace-Reply msg, + Sender-ID tlv, private tlv, port, interface status + Add support for unidirectional link detection as per + http://www.ietf.org/internet-drafts/draft-foschiano-udld-02.txt + Add support for the olsr protocol as per RFC 3626 plus the LQ + extensions from olsr.org + Add support for variable-length checksum in DCCP, as per section 9 of + RFC 4340. + Add support for per-VLAN spanning tree and per-VLAN rapid spanning tree + Add support for Multiple-STP as per 802.1s + Add support for the cisco propriatry 'dynamic trunking protocol' + Add support for the cisco proprietary VTP protocol + Update dhcp6 options table as per IETF standardization activities + + +Tue. September 19, 2006. ken@xelerance.com. Summary for 3.9.5 tcpdump release + + Fix compiling on AIX (, at end of ENUM) + Updated list of DNS RR typecodes + Use local Ethernet defs on WIN32 + Add support for Frame-Relay ARP + Fixes for compiling under MSVC++ + Add support for parsing Juniper .pcap files + Add support for FRF.16 Multilink Frame-Relay (DLT_MFR) + Rework the OSPFv3 printer + Fix printing for 4.4BSD/NetBSD NFS Filehandles + Add support for Cisco style NLPID encapsulation + Add cisco prop. eigrp related, extended communities + Add support for BGP signaled VPLS + Cleanup the bootp printer + Add support for PPP over Frame-Relay + Add some bounds checking to the IP options code, and clean up + the options output a bit. + Add additional modp groups to ISAKMP printer + Add support for Address-Withdraw and Label-Withdraw Msgs + Add support for the BFD Discriminator TLV + Fixes for 64bit compiling + Add support for PIMv2 checksum verification + Add support for further dissection of the IPCP Compression Option + Add support for Cisco's proposed VQP protocol + Add basic support for keyed authentication TCP option + Lots of minor cosmetic changes to output printers + + +Mon. September 19, 2005. ken@xelerance.com. Summary for 3.9.4 tcpdump release + Decoder support for more Juniper link-layer types + Fix a potential buffer overflow (although it can't occur in + practice). + Fix the handling of unknown management frame types in the 802.11 + printer. + Add FRF.16 support, fix various Frame Relay bugs. + Add support for RSVP integrity objects, update fast-reroute + object printer to latest spec. + Clean up documentation of vlan filter expression, document mpls + filter expression. + Document new pppoed and pppoes filter expressions. + Update diffserver-TE codepoints as per RFC 4124. + Spelling fixes in ICMPv6. + Don't require any fields other than flags to be present in IS-IS + restart signaling TLVs, and only print the system ID in + those TLVs as system IDs, not as node IDs. + Support for DCCP. + +Tue. July 5, 2005. ken@xelerance.com. Summary for 3.9.3 tcpdump release + + Option to chroot() when dropping privs + Fixes for compiling on nearly every platform, + including improved 64bit support + Many new testcases + Support for sending packets + Many compliation fixes on most platforms + Fixes for recent version of GCC to eliminate warnings + Improved Unicode support + + Decoders & DLT Changes, Updates and New: + AES ESP support + Juniper ATM, FRF.15, FRF.16, PPPoE, + ML-FR, ML-PIC, ML-PPP, PL-PPP, LS-PIC + GGSN,ES,MONITOR,SERVICES + L2VPN + Axent Raptor/Symantec Firewall + TCP-MD5 (RFC 2385) + ESP-in-UDP (RFC 3948) + ATM OAM + LMP, LMP Service Discovery + IP over FC + IP over IEEE 1394 + BACnet MS/TP + SS7 + LDP over TCP + LACP, MARKER as per 802.3ad + PGM (RFC 3208) + LSP-PING + G.7041/Y.1303 Generic Framing Procedure + EIGRP-IP, EIGRP-IPX + ICMP6 + Radio - via radiotap + DHCPv6 + HDLC over PPP + +Tue. March 30, 2004. mcr@sandelman.ottawa.on.ca. Summary for 3.8.3 release + + No changes from 3.8.2. Version bumped only to maintain consistency + with libpcap 0.8.3. + +Mon. March 29, 2004. mcr@sandelman.ottawa.on.ca. Summary for 3.8.2 release + + Fixes for print-isakmp.c CVE: CAN-2004-0183, CAN-2004-0184 + http://www.rapid7.com/advisories/R7-0017.html + IP-over-IEEE1394 printing. + some MINGW32 changes. + updates for autoconf 2.5 + fixes for print-aodv.c - check for too short packets + formatting changes to print-ascii for hex output. + check for too short packets: print-bgp.c, print-bootp.c, print-cdp.c, + print-chdlc.c, print-domain.c, print-icmp.c, print-icmp6.c, + print-ip.c, print-lwres.c, print-ospf.c, print-pim.c, + print-ppp.c,print-pppoe.c, print-rsvp.c, print-wb.c + print-ether.c - better handling of unknown types. + print-isoclns.c - additional decoding of types. + print-llc.c - strings for LLC names added. + print-pfloc.c - various enhancements + print-radius.c - better decoding to strings. + +Wed. November 12, 2003. mcr@sandelman.ottawa.on.ca. Summary for 3.8 release + + changed syntax of -E argument so that multiple SAs can be decrypted + fixes for Digital Unix headers and Documentation + __attribute__ fixes + CDP changes from Terry Kennedy . + IPv6 mobility updates from Kazushi Sugyo + Fixes for ASN.1 decoder for 2.100.3 forms. + Added a count of packets received and processed to clarify numbers. + Incorporated WinDUMP patches for Win32 builds. + PPPoE payload length headers. + Fixes for HP C compiler builds. + Use new pcap_breakloop() and pcap_findalldevs() if we can. + BGP output split into multiple lines. + Fixes to 802.11 decoding. + Fixes to PIM decoder. + SuperH is a CPU that can't handle unaligned access. Many fixes for + unaligned access work. + Fixes to Frame-Relay decoder for Q.933/922 frames. + Clarified when Solaris can do captures as non-root. + Added tests/ subdir for examples/regression tests. + New -U flag. -flush stdout after every packet + New -A flag -print ascii only + support for decoding IS-IS inside Cisco HDLC Frames + more verbosity for tftp decoder + mDNS decoder + new BFD decoder + cross compilation patches + RFC 3561 AODV support. + UDP/TCP pseudo-checksum properly for source-route options. + sanitized all files to modified BSD license + Add support for RFC 2625 IP-over-Fibre Channel. + fixes for DECnet support. + Support RFC 2684 bridging of Ethernet, 802.5 Token Ring, and FDDI. + RFC 2684 encapsulation of BPDUs. + +Tuesday, February 25, 2003. fenner@research.att.com. 3.7.2 release + + Fixed infinite loop when parsing invalid isakmp packets. + (reported by iDefense; already fixed in CVS) + Fixed infinite loop when parsing invalid BGP packets. + Fixed buffer overflow with certain invalid NFS packets. + Pretty-print unprintable network names in 802.11 printer. + Handle truncated nbp (appletalk) packets. + Updated DHCPv6 printer to match draft-ietf-dhc-dhcpv6-22.txt + Print IP protocol name even if we don't have a printer for it. + Print IP protocol name or number for fragments. + Print the whole MPLS label stack, not just the top label. + Print request header and file handle for NFS v3 FSINFO and PATHCONF + requests. + Fix NFS packet truncation checks. + Handle "old" DR-Priority and Bidir-Capable PIM HELLO options. + Handle unknown RADIUS attributes properly. + Fix an ASN.1 parsing error that would cause e.g. the OID + 2.100.3 to be misrepresented as 4.20.3 . + +Monday, January 21, 2002. mcr@sandelman.ottawa.on.ca. Summary for 3.7 release +see http://www.tcpdump.org/cvs-log/2002-01-21.10:16:48.html for commit log. + keyword "ipx" added. + Better OSI/802.2 support on Linux. + IEEE 802.11 support, from clenahan@fortresstech.com, achirica@ttd.net. + LLC SAP support for FDDI/token ring/RFC-1483 style ATM + BXXP protocol was replaced by the BEEP protocol; + improvements to SNAP demux. + Changes to "any" interface documentation. + Documentation on pcap_stats() counters. + Fix a memory leak found by Miklos Szeredi - pcap_ether_aton(). + Added MPLS encapsulation decoding per RFC3032. + DNS dissector handles TKEY, TSIG and IXFR. + adaptive SLIP interface patch from Igor Khristophorov + SMB printing has much improved bounds checks + OUI 0x0000f8 decoded as encapsulated ethernet for Cisco-custom bridging + Zephyr support, from Nickolai Zeldovich . + Solaris - devices with digits in them. Stefan Hudson + IPX socket 0x85be is for Cisco EIGRP over IPX. + Improvements to fragmented ESP handling. + SCTP support from Armando L. Caro Jr. + Linux ARPHDR_ATM support fixed. + Added a "netbeui" keyword, which selects NetBEUI packets. + IPv6 ND improvements, MobileIP dissector, 2292bis-02 for RA option. + Handle ARPHDR_HDLC from Marcus Felipe Pereira . + Handle IPX socket 0x553 -> NetBIOS-over-IPX socket, "nwlink-dgm" + Better Linux libc5 compat. + BIND9 lwres dissector added. + MIPS and SPARC get strict alignment macros (affects print-bgp.c) + Apple LocalTalk LINKTYPE_ reserved. + New time stamp formats documented. + DHCP6 updated to draft-22.txt spec. + ICMP types/codes now accept symbolic names. + Add SIGINFO handler from LBL + encrypted CIPE tunnels in IRIX, from Franz Schaefer . + now we are -Wstrict-prototype clean. + NetBSD DLT_PPP_ETHER; adapted from Martin Husemann . + PPPoE dissector cleaned up. + Support for LocalTalk hardware, from Uns Lider . + In dissector, now the caller prints the IP addresses rather than proto. + cjclark@alum.mit.edu: print the IP proto for non-initial fragments. + LLC frames with a DSAP and LSAP of 0xe0 are IPX frames. + Linux cooked frames with a type value of LINUX_SLL_P_802_3 are IPX. + captures on the "any" device won't be done in promiscuous mode + Token Ring support on DLPI - Onno van der Linden + ARCNet support, from NetBSD. + HSRP dissector, from Julian Cowley . + Handle (GRE-encapsulated) PPTP + added -C option to rotate save file every optarg * 1,000,000 bytes. + support for "vrrp" name - NetBSD, by Klaus Klein . + PPTP support, from Motonori Shindo . + IS-IS over PPP support, from Hannes Gredler . + CNFP support for IPv6,format. Harry Raaymakers . + ESP printing updated to RFC2406. + HP-UX can now handle large number of PPAs. + MSDP printer added. + L2TP dissector improvements from Motonori Shindo. + +Tuesday January 9, 2001. mcr@sandelman.ottawa.on.ca. Summary for 3.6 release + Cleaned up documentation. + Promisc mode fixes for Linux + IPsec changes/cleanups. + Alignment fixes for picky architectures + + Removed dependency on native headers for packet dissectors. + Removed Linux specific headers that were shipped + + libpcap changes provide for exchanging capture files between + systems. Save files now have well known PACKET_ values instead of + depending upon system dependant mappings of DLT_* types. + + Support for computing/checking IP and UDP/TCP checksums. + + Updated autoconf stock files. + + IPv6 improvements: dhcp (draft-15), mobile-ip6, ppp, ospf6, + + Added dissector support for: ISOCLNS, Token Ring, IGMPv3, bxxp, + timed, vrrp, radius, chdlc, cnfp, cdp, IEEE802.1d, raw-AppleTalk + + Added filtering support for: VLANs, ESIS, ISIS + + Improvements to: print-telnet, IPTalk, bootp/dhcp, ECN, PPP, + L2TP, PPPoE + + HP-UX 11.0 -- find the right dlpi device. + Solaris 8 - IPv6 works + Linux - Added support for an "any" device to capture on all interfaces + + Security fixes: buffer overrun audit done. Strcpy replaced with + strlcpy, sprintf replaced with snprintf. + Look for lex problems, and warn about them. + + +v3.5 Fri Jan 28 18:00:00 PST 2000 + +Bill Fenner +- switch to config.h for autoconf +- unify RCSID strings +- Updated PIMv1, PIMv2, DVMRP, IGMP parsers, add Cisco Auto-RP parser +- Really fix the RIP printer +- Fix MAC address -> name translation. +- some -Wall -Wformat fixes +- update makemib to parse much of SMIv2 +- Print TCP sequence # with -vv even if you normally wouldn't +- Print as much of IP/TCP/UDP headers as possible even if truncated. + +itojun@iijlab.net +- -X will make a ascii dump. from netbsd. +- telnet command sequence decoder (ff xx xx). from netbsd. +- print-bgp.c: improve options printing. ugly code exists for + unaligned option parsing (need some fix). +- const poisoning in SMB decoder. +- -Wall -Werror clean checks. +- bring in KAME IPv6/IPsec decoding code. + +Assar Westerlund +- SNMPv2 and SNMPv3 printer +- If compiled with libsmi, tcpdump can load MIBs on the fly to decode + SNMP packets. +- Incorporate NFS parsing code from NetBSD. Adds support for nfsv3. +- portability fixes +- permit building in different directories. + +Ken Hornstein +- bring in code at + /afs/transarc.com/public/afs-contrib/tools/tcpdump for parsing + AFS3 packets + +Andrew Tridgell +- SMB printing code + +Love +- print-rx.c: add code for printing MakeDir and StoreStatus. Also + change date format to the right one. + +Michael C. Richardson +- Created tcpdump.org repository + +v3.4 Sat Jul 25 12:40:55 PDT 1998 + +- Hardwire Linux slip support since it's too hard to detect. + +- Redo configuration of "network" libraries (-lsocket and -lnsl) to + deal with IRIX. Thanks to John Hawkinson (jhawk@mit.edu) + +- Added -a which tries to translate network and broadcast addresses to + names. Suggested by Rob van Nieuwkerk (robn@verdi.et.tudelft.nl) + +- Added a configure option to disable gcc. + +- Added a "raw" packet printer. + +- Not having an interface address is no longer fatal. Requested by John + Hawkinson. + +- Rework signal setup to accommodate Linux. + +- OSPF truncation check fix. Also display the type of OSPF packets + using MD5 authentication. Thanks to Brian Wellington + (bwelling@tis.com) + +- Fix truncation check bugs in the Kerberos printer. Reported by Ezra + Peisach (epeisach@mit.edu) + +- Don't catch SIGHUP when invoked with nohup(1). Thanks to Dave Plonka + (plonka@mfa.com) + +- Specify full install target as a way of detecting if install + directory does not exist. Thanks to Dave Plonka. + +- Bit-swap FDDI addresses for BSD/OS too. Thanks to Paul Vixie + (paul@vix.com) + +- Fix off-by-one bug when testing size of ethernet packets. Thanks to + Marty Leisner (leisner@sdsp.mc.xerox.com) + +- Add a local autoconf macro to check for routines in libraries; the + autoconf version is broken (it only puts the library name in the + cache variable name). Thanks to John Hawkinson. + +- Add a local autoconf macro to check for types; the autoconf version + is broken (it uses grep instead of actually compiling a code fragment). + +- Modified to support the new BSD/OS 2.1 PPP and SLIP link layer header + formats. + +- Extend OSF ip header workaround to versions 1 and 2. + +- Fix some signed problems in the nfs printer. As reported by David + Sacerdote (davids@silence.secnet.com) + +- Detect group wheel and use it as the default since BSD/OS' install + can't hack numeric groups. Reported by David Sacerdote. + +- AIX needs special loader options. Thanks to Jonathan I. Kamens + (jik@cam.ov.com) + +- Fixed the nfs printer to print port numbers in decimal. Thanks to + Kent Vander Velden (graphix@iastate.edu) + +- Find installed libpcap in /usr/local/lib when not using gcc. + +- Disallow network masks with non-network bits set. + +- Attempt to detect "egcs" versions of gcc. + +- Add missing closing double quotes when displaying bootp strings. + Reported by Viet-Trung Luu (vluu@picard.math.uwaterloo.ca) + +v3.3 Sat Nov 30 20:56:27 PST 1996 + +- Added Linux support. + +- GRE encapsulated packet printer thanks to John Hawkinson + (jhawk@mit.edu) + +- Rewrite gmt2local() to avoid problematic os dependencies. + +- Suppress nfs truncation message on errors. + +- Add missing m4 quoting in AC_LBL_UNALIGNED_ACCESS autoconf macro. + Reported by Joachim Ott (ott@ardala.han.de) + +- Enable "ip_hl vs. ip_vhl" workaround for OSF4 too. + +- Print arp hardware type in host order. Thanks to Onno van der Linden + (onno@simplex.nl) + +- Avoid solaris compiler warnings. Thanks to Bruce Barnett + (barnett@grymoire.crd.ge.com) + +- Fix rip printer to not print one more route than is actually in the + packet. Thanks to Jean-Luc Richier (Jean-Luc.Richier@imag.fr) and + Bill Fenner (fenner@parc.xerox.com) + +- Use autoconf endian detection since BYTE_ORDER isn't defined on all systems. + +- Fix dvmrp printer truncation checks and add a dvmrp probe printer. + Thanks to Danny J. Mitzel (mitzel@ipsilon.com) + +- Rewrite ospf printer to improve truncation checks. + +- Don't parse tcp options past the EOL. As noted by David Sacerdote + (davids@secnet.com). Also, check tcp options to make sure they ar + actually in the tcp header (in addition to the normal truncation + checks). Fix the SACK code to print the N blocks (instead of the + first block N times). + +- Don't say really small UDP packets are truncated just because they + aren't big enough to be a RPC. As noted by David Sacerdote. + +v3.2.1 Sun Jul 14 03:02:26 PDT 1996 + +- Added rfc1716 icmp codes as suggested by Martin Fredriksson + (martin@msp.se) + +- Print mtu for icmp unreach need frag packets. Thanks to John + Hawkinson (jhawk@mit.edu) + +- Decode icmp router discovery messages. Thanks to Jeffrey Honig + (jch@bsdi.com) + +- Added a printer entry for DLT_IEEE802 as suggested by Tak Kushida + (kushida@trl.ibm.co.jp) + +- Check igmp checksum if possible. Thanks to John Hawkinson. + +- Made changes for SINIX. Thanks to Andrej Borsenkow + (borsenkow.msk@sni.de) + +- Use autoconf's idea of the top level directory in install targets. + Thanks to John Hawkinson. + +- Avoid infinite loop in tcp options printing code. Thanks to Jeffrey + Mogul (mogul@pa.dec.com) + +- Avoid using -lsocket in IRIX 5.2 and earlier since it breaks snoop. + Thanks to John Hawkinson. + +- Added some more packet truncation checks. + +- On systems that have it, use sigset() instead of signal() since + signal() has different semantics on these systems. + +- Fixed some more alignment problems on the alpha. + +- Add code to massage unprintable characters in the domain and ipx + printers. Thanks to John Hawkinson. + +- Added explicit netmask support. Thanks to Steve Nuchia + (steve@research.oknet.com) + +- Add "sca" keyword (for DEC cluster services) as suggested by Terry + Kennedy (terry@spcvxa.spc.edu) + +- Add "atalk" keyword as suggested by John Hawkinson. + +- Added an igrp printer. Thanks to Francis Dupont + (francis.dupont@inria.fr) + +- Print IPX net numbers in hex a la Novell Netware. Thanks to Terry + Kennedy (terry@spcvxa.spc.edu) + +- Fixed snmp extended tag field parsing bug. Thanks to Pascal Hennequin + (pascal.hennequin@hugo.int-evry.fr) + +- Added some ETHERTYPEs missing on some systems. + +- Added truncated packet macros and various checks. + +- Fixed endian problems with the DECnet printer. + +- Use $CC when checking gcc version. Thanks to Carl Lindberg + (carl_lindberg@blacksmith.com) + +- Fixes for AIX (although this system is not yet supported). Thanks to + John Hawkinson. + +- Fix bugs in the autoconf misaligned accesses code fragment. + +- Include sys/param.h to get BYTE_ORDER in a few places. Thanks to + Pavlin Ivanov Radoslavov (pavlin@cs.titech.ac.jp) + +v3.2 Sun Jun 23 02:28:10 PDT 1996 + +- Print new icmp unreachable codes as suggested by Martin Fredriksson + (martin@msp.se). Also print code value when unknown for icmp redirect + and time exceeded. *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-vendor@freebsd.org Tue Jan 31 19:17:08 2017 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CBE9BCCAC24; Tue, 31 Jan 2017 19:17:08 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 702051571; Tue, 31 Jan 2017 19:17:08 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0VJH7cW029652; Tue, 31 Jan 2017 19:17:07 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0VJH6nc029640; Tue, 31 Jan 2017 19:17:06 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201701311917.v0VJH6nc029640@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Tue, 31 Jan 2017 19:17:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r313024 - in vendor/tcpdump/dist: . lbl missing tests win32/Include win32/prj win32/src X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Jan 2017 19:17:08 -0000 Author: glebius Date: Tue Jan 31 19:17:06 2017 New Revision: 313024 URL: https://svnweb.freebsd.org/changeset/base/313024 Log: Import tcpdump-4.9.0 into dist. Added: vendor/tcpdump/dist/CONTRIBUTING vendor/tcpdump/dist/PLATFORMS vendor/tcpdump/dist/README (contents, props changed) vendor/tcpdump/dist/addrtostr.c (contents, props changed) vendor/tcpdump/dist/addrtostr.h (contents, props changed) vendor/tcpdump/dist/ascii_strcasecmp.c (contents, props changed) vendor/tcpdump/dist/ascii_strcasecmp.h (contents, props changed) vendor/tcpdump/dist/netdissect-stdinc.h (contents, props changed) vendor/tcpdump/dist/netdissect.c (contents, props changed) vendor/tcpdump/dist/print-hncp.c (contents, props changed) vendor/tcpdump/dist/print-lisp.c (contents, props changed) vendor/tcpdump/dist/print-medsa.c (contents, props changed) vendor/tcpdump/dist/print-nsh.c (contents, props changed) vendor/tcpdump/dist/print-resp.c (contents, props changed) vendor/tcpdump/dist/print-vxlan-gpe.c (contents, props changed) vendor/tcpdump/dist/print.c (contents, props changed) vendor/tcpdump/dist/print.h (contents, props changed) vendor/tcpdump/dist/strtoaddr.c (contents, props changed) vendor/tcpdump/dist/strtoaddr.h (contents, props changed) vendor/tcpdump/dist/tests/OLSRv1_HNA_sgw_1.out vendor/tcpdump/dist/tests/OLSRv1_HNA_sgw_1.pcap (contents, props changed) vendor/tcpdump/dist/tests/RADIUS-port1700.pcap (contents, props changed) vendor/tcpdump/dist/tests/aarp-heapoverflow-1.out vendor/tcpdump/dist/tests/aarp-heapoverflow-1.pcap (contents, props changed) vendor/tcpdump/dist/tests/aarp-heapoverflow-2.out vendor/tcpdump/dist/tests/aarp-heapoverflow-2.pcap (contents, props changed) vendor/tcpdump/dist/tests/arp-too-long-tha.out vendor/tcpdump/dist/tests/arp-too-long-tha.pcap (contents, props changed) vendor/tcpdump/dist/tests/atm-heapoverflow.out vendor/tcpdump/dist/tests/atm-heapoverflow.pcap (contents, props changed) vendor/tcpdump/dist/tests/atm-oam-heapoverflow.out vendor/tcpdump/dist/tests/atm-oam-heapoverflow.pcap (contents, props changed) vendor/tcpdump/dist/tests/bad-ipv4-version-pgm-heapoverflow.out vendor/tcpdump/dist/tests/bad-ipv4-version-pgm-heapoverflow.pcap (contents, props changed) vendor/tcpdump/dist/tests/bfd-raw-auth-md5-v.out vendor/tcpdump/dist/tests/bfd-raw-auth-md5.out vendor/tcpdump/dist/tests/bfd-raw-auth-md5.pcap (contents, props changed) vendor/tcpdump/dist/tests/bfd-raw-auth-sha1-v.out vendor/tcpdump/dist/tests/bfd-raw-auth-sha1.out vendor/tcpdump/dist/tests/bfd-raw-auth-sha1.pcap (contents, props changed) vendor/tcpdump/dist/tests/bfd-raw-auth-simple-v.out vendor/tcpdump/dist/tests/bfd-raw-auth-simple.out vendor/tcpdump/dist/tests/bfd-raw-auth-simple.pcap (contents, props changed) vendor/tcpdump/dist/tests/bgp-aigp.out vendor/tcpdump/dist/tests/bgp-aigp.pcap (contents, props changed) vendor/tcpdump/dist/tests/bgp-large-community.out vendor/tcpdump/dist/tests/bgp-large-community.pcap (contents, props changed) vendor/tcpdump/dist/tests/calm-fast-mac-lookup-heapoverflow.out vendor/tcpdump/dist/tests/calm-fast-mac-lookup-heapoverflow.pcap (contents, props changed) vendor/tcpdump/dist/tests/cve-2014-8767-OLSR.out vendor/tcpdump/dist/tests/cve-2014-8767-OLSR.pcap (contents, props changed) vendor/tcpdump/dist/tests/cve-2014-8768-Geonet.out vendor/tcpdump/dist/tests/cve-2014-8768-Geonet.pcap (contents, props changed) vendor/tcpdump/dist/tests/cve-2014-8769-AODV.out vendor/tcpdump/dist/tests/cve-2014-8769-AODV.pcap (contents, props changed) vendor/tcpdump/dist/tests/dhcp-mud.out vendor/tcpdump/dist/tests/dhcp-mud.pcap (contents, props changed) vendor/tcpdump/dist/tests/dhcpv6-mud.out vendor/tcpdump/dist/tests/dhcpv6-mud.pcap (contents, props changed) vendor/tcpdump/dist/tests/dnssec-vv.out vendor/tcpdump/dist/tests/dnssec.pcap (contents, props changed) vendor/tcpdump/dist/tests/frf15-heapoverflow.out vendor/tcpdump/dist/tests/frf15-heapoverflow.pcap (contents, props changed) vendor/tcpdump/dist/tests/geonet-mac-lookup-heapoverflow.out vendor/tcpdump/dist/tests/geonet-mac-lookup-heapoverflow.pcap (contents, props changed) vendor/tcpdump/dist/tests/gre-heapoverflow-1.out vendor/tcpdump/dist/tests/gre-heapoverflow-1.pcap (contents, props changed) vendor/tcpdump/dist/tests/gre-heapoverflow-2.out vendor/tcpdump/dist/tests/gre-heapoverflow-2.pcap (contents, props changed) vendor/tcpdump/dist/tests/heap-overflow-1.out vendor/tcpdump/dist/tests/heap-overflow-1.pcap (contents, props changed) vendor/tcpdump/dist/tests/heap-overflow-2.out vendor/tcpdump/dist/tests/heap-overflow-2.pcap (contents, props changed) vendor/tcpdump/dist/tests/heapoverflow-EXTRACT_16BITS.out vendor/tcpdump/dist/tests/heapoverflow-EXTRACT_16BITS.pcap (contents, props changed) vendor/tcpdump/dist/tests/heapoverflow-atalk_print.out vendor/tcpdump/dist/tests/heapoverflow-atalk_print.pcap (contents, props changed) vendor/tcpdump/dist/tests/heapoverflow-in_checksum.out vendor/tcpdump/dist/tests/heapoverflow-in_checksum.pcap (contents, props changed) vendor/tcpdump/dist/tests/heapoverflow-ip_print_demux.out vendor/tcpdump/dist/tests/heapoverflow-ip_print_demux.pcap (contents, props changed) vendor/tcpdump/dist/tests/heapoverflow-ppp_hdlc_if_print.out vendor/tcpdump/dist/tests/heapoverflow-ppp_hdlc_if_print.pcap (contents, props changed) vendor/tcpdump/dist/tests/heapoverflow-q933_printq.out vendor/tcpdump/dist/tests/heapoverflow-q933_printq.pcap (contents, props changed) vendor/tcpdump/dist/tests/heapoverflow-sl_if_print.out vendor/tcpdump/dist/tests/heapoverflow-sl_if_print.pcap (contents, props changed) vendor/tcpdump/dist/tests/heapoverflow-tcp_print.out vendor/tcpdump/dist/tests/heapoverflow-tcp_print.pcap (contents, props changed) vendor/tcpdump/dist/tests/hncp.out vendor/tcpdump/dist/tests/hncp.pcap (contents, props changed) vendor/tcpdump/dist/tests/ikev2pI2-segfault-v.out vendor/tcpdump/dist/tests/ikev2pI2-segfault.out vendor/tcpdump/dist/tests/ikev2pI2-segfault.pcap (contents, props changed) vendor/tcpdump/dist/tests/ipcomp-heapoverflow.out vendor/tcpdump/dist/tests/ipcomp-heapoverflow.pcap (contents, props changed) vendor/tcpdump/dist/tests/ipv6hdr-heapoverflow-v.out vendor/tcpdump/dist/tests/ipv6hdr-heapoverflow.out vendor/tcpdump/dist/tests/ipv6hdr-heapoverflow.pcap (contents, props changed) vendor/tcpdump/dist/tests/isis-seg-fault-1-v.out vendor/tcpdump/dist/tests/isis-seg-fault-1-v.sh (contents, props changed) vendor/tcpdump/dist/tests/isis-seg-fault-1.pcap (contents, props changed) vendor/tcpdump/dist/tests/isis-seg-fault-2-v.out vendor/tcpdump/dist/tests/isis-seg-fault-2.pcap (contents, props changed) vendor/tcpdump/dist/tests/isis-seg-fault-3-v.out vendor/tcpdump/dist/tests/isis-seg-fault-3.pcap (contents, props changed) vendor/tcpdump/dist/tests/isis_poi.out vendor/tcpdump/dist/tests/isis_poi.pcap (contents, props changed) vendor/tcpdump/dist/tests/isis_poi2.out vendor/tcpdump/dist/tests/isis_poi2.pcap (contents, props changed) vendor/tcpdump/dist/tests/isoclns-heapoverflow-2.out vendor/tcpdump/dist/tests/isoclns-heapoverflow-2.pcap (contents, props changed) vendor/tcpdump/dist/tests/isoclns-heapoverflow-3.out vendor/tcpdump/dist/tests/isoclns-heapoverflow-3.pcap (contents, props changed) vendor/tcpdump/dist/tests/isoclns-heapoverflow.out vendor/tcpdump/dist/tests/isoclns-heapoverflow.pcap (contents, props changed) vendor/tcpdump/dist/tests/juniper_header-heapoverflow.out vendor/tcpdump/dist/tests/juniper_header-heapoverflow.pcap (contents, props changed) vendor/tcpdump/dist/tests/lisp_eid_notify.out vendor/tcpdump/dist/tests/lisp_eid_notify.pcap (contents, props changed) vendor/tcpdump/dist/tests/lisp_eid_register.out vendor/tcpdump/dist/tests/lisp_eid_register.pcap (contents, props changed) vendor/tcpdump/dist/tests/lisp_ipv6.out vendor/tcpdump/dist/tests/lisp_ipv6.pcap (contents, props changed) vendor/tcpdump/dist/tests/llc-xid-heapoverflow.out vendor/tcpdump/dist/tests/llc-xid-heapoverflow.pcap (contents, props changed) vendor/tcpdump/dist/tests/lldp_mudurl-v.out vendor/tcpdump/dist/tests/lldp_mudurl-vv.out vendor/tcpdump/dist/tests/lldp_mudurl.pcap (contents, props changed) vendor/tcpdump/dist/tests/lspping-fec-ldp-v.out vendor/tcpdump/dist/tests/lspping-fec-ldp-vv.out vendor/tcpdump/dist/tests/lspping-fec-ldp.out vendor/tcpdump/dist/tests/lspping-fec-rsvp-v.out vendor/tcpdump/dist/tests/lspping-fec-rsvp-vv.out vendor/tcpdump/dist/tests/lspping-fec-rsvp.out vendor/tcpdump/dist/tests/medsa-e.out vendor/tcpdump/dist/tests/medsa.out vendor/tcpdump/dist/tests/medsa.pcap (contents, props changed) vendor/tcpdump/dist/tests/mpls-label-heapoverflow.out vendor/tcpdump/dist/tests/mpls-label-heapoverflow.pcap (contents, props changed) vendor/tcpdump/dist/tests/mpls-traceroute-v.out vendor/tcpdump/dist/tests/mpls-traceroute.out vendor/tcpdump/dist/tests/nfs-seg-fault-1.out vendor/tcpdump/dist/tests/nfs-seg-fault-1.pcap (contents, props changed) vendor/tcpdump/dist/tests/nsh-over-vxlan-gpe-v.out vendor/tcpdump/dist/tests/nsh-over-vxlan-gpe-vv.out vendor/tcpdump/dist/tests/nsh-over-vxlan-gpe-vvv.out vendor/tcpdump/dist/tests/nsh-over-vxlan-gpe.out vendor/tcpdump/dist/tests/nsh-over-vxlan-gpe.pcap (contents, props changed) vendor/tcpdump/dist/tests/ospf2-seg-fault-1-v.out vendor/tcpdump/dist/tests/ospf2-seg-fault-1.pcap (contents, props changed) vendor/tcpdump/dist/tests/otv-heapoverflow-1.out vendor/tcpdump/dist/tests/otv-heapoverflow-1.pcap (contents, props changed) vendor/tcpdump/dist/tests/otv-heapoverflow-2.out vendor/tcpdump/dist/tests/otv-heapoverflow-2.pcap (contents, props changed) vendor/tcpdump/dist/tests/pcap-invalid-version-1.out vendor/tcpdump/dist/tests/pcap-invalid-version-1.pcap (contents, props changed) vendor/tcpdump/dist/tests/pcap-invalid-version-2.out vendor/tcpdump/dist/tests/pcap-invalid-version-2.pcap (contents, props changed) vendor/tcpdump/dist/tests/pcap-ng-invalid-vers-1.out vendor/tcpdump/dist/tests/pcap-ng-invalid-vers-1.pcap (contents, props changed) vendor/tcpdump/dist/tests/pcap-ng-invalid-vers-2.out vendor/tcpdump/dist/tests/pcap-ng-invalid-vers-2.pcap (contents, props changed) vendor/tcpdump/dist/tests/q933-heapoverflow-2.out vendor/tcpdump/dist/tests/q933-heapoverflow-2.pcap (contents, props changed) vendor/tcpdump/dist/tests/radiotap-heapoverflow.out vendor/tcpdump/dist/tests/radiotap-heapoverflow.pcap (contents, props changed) vendor/tcpdump/dist/tests/radius-port1700-v.out vendor/tcpdump/dist/tests/relts-0x80000000.out vendor/tcpdump/dist/tests/relts-0x80000000.pcap (contents, props changed) vendor/tcpdump/dist/tests/resp_1.out vendor/tcpdump/dist/tests/resp_1_benchmark.pcap (contents, props changed) vendor/tcpdump/dist/tests/resp_2.out vendor/tcpdump/dist/tests/resp_2_inline.pcap (contents, props changed) vendor/tcpdump/dist/tests/resp_3.out vendor/tcpdump/dist/tests/resp_3_malicious.pcap (contents, props changed) vendor/tcpdump/dist/tests/rsvp-inf-loop-2-v.out vendor/tcpdump/dist/tests/rsvp-inf-loop-2.pcap (contents, props changed) vendor/tcpdump/dist/tests/rtp-seg-fault-1.out vendor/tcpdump/dist/tests/rtp-seg-fault-1.pcap (contents, props changed) vendor/tcpdump/dist/tests/rtp-seg-fault-2.out vendor/tcpdump/dist/tests/rtp-seg-fault-2.pcap (contents, props changed) vendor/tcpdump/dist/tests/scps_invalid.out vendor/tcpdump/dist/tests/scps_invalid.pcap (contents, props changed) vendor/tcpdump/dist/tests/snmp-heapoverflow-1.out vendor/tcpdump/dist/tests/snmp-heapoverflow-1.pcap (contents, props changed) vendor/tcpdump/dist/tests/snmp-heapoverflow-2.out vendor/tcpdump/dist/tests/snmp-heapoverflow-2.pcap (contents, props changed) vendor/tcpdump/dist/tests/spb_bpduv4-v.out vendor/tcpdump/dist/tests/stp-heapoverflow-1.out vendor/tcpdump/dist/tests/stp-heapoverflow-1.pcap (contents, props changed) vendor/tcpdump/dist/tests/stp-heapoverflow-2.out vendor/tcpdump/dist/tests/stp-heapoverflow-2.pcap (contents, props changed) vendor/tcpdump/dist/tests/stp-heapoverflow-3.out vendor/tcpdump/dist/tests/stp-heapoverflow-3.pcap (contents, props changed) vendor/tcpdump/dist/tests/stp-heapoverflow-4.out vendor/tcpdump/dist/tests/stp-heapoverflow-4.pcap (contents, props changed) vendor/tcpdump/dist/tests/stp-heapoverflow-5.out vendor/tcpdump/dist/tests/stp-heapoverflow-5.pcap (contents, props changed) vendor/tcpdump/dist/tests/tcp-auth-heapoverflow.out vendor/tcpdump/dist/tests/tcp-auth-heapoverflow.pcap (contents, props changed) vendor/tcpdump/dist/tests/tcp_header_heapoverflow.out vendor/tcpdump/dist/tests/tcp_header_heapoverflow.pcap (contents, props changed) vendor/tcpdump/dist/tests/tftp-heapoverflow.out vendor/tcpdump/dist/tests/tftp-heapoverflow.pcap (contents, props changed) vendor/tcpdump/dist/tests/trunc_aack.out vendor/tcpdump/dist/tests/truncated-aack.pcap (contents, props changed) vendor/tcpdump/dist/tests/udld-inf-loop-1-v.out vendor/tcpdump/dist/tests/udld-inf-loop-1.pcap (contents, props changed) vendor/tcpdump/dist/tests/udp-length-heapoverflow.out vendor/tcpdump/dist/tests/udp-length-heapoverflow.pcap (contents, props changed) vendor/tcpdump/dist/tests/unaligned-nfs-1.out vendor/tcpdump/dist/tests/unaligned-nfs-1.pcap (contents, props changed) vendor/tcpdump/dist/tests/vxlan.out vendor/tcpdump/dist/tests/vxlan.pcap (contents, props changed) vendor/tcpdump/dist/tests/zmtp1-inf-loop-1.out vendor/tcpdump/dist/tests/zmtp1-inf-loop-1.pcap (contents, props changed) vendor/tcpdump/dist/timeval-operations.h (contents, props changed) vendor/tcpdump/dist/util-print.c (contents, props changed) vendor/tcpdump/dist/win32/prj/WinDump.sln vendor/tcpdump/dist/win32/prj/WinDump.vcproj vendor/tcpdump/dist/win32/src/ vendor/tcpdump/dist/win32/src/ether_ntohost.c (contents, props changed) Deleted: vendor/tcpdump/dist/atmuni31.h vendor/tcpdump/dist/missing/addrinfo.h vendor/tcpdump/dist/missing/getnameinfo.c vendor/tcpdump/dist/missing/inet_aton.c vendor/tcpdump/dist/missing/inet_ntop.c vendor/tcpdump/dist/missing/inet_pton.c vendor/tcpdump/dist/strcasecmp.c vendor/tcpdump/dist/tcpdump-stdinc.h vendor/tcpdump/dist/tests/failure-outputs.txt vendor/tcpdump/dist/util.c vendor/tcpdump/dist/win32/Include/ Modified: vendor/tcpdump/dist/CHANGES vendor/tcpdump/dist/CREDITS vendor/tcpdump/dist/INSTALL.txt (contents, props changed) vendor/tcpdump/dist/Makefile.in vendor/tcpdump/dist/VERSION vendor/tcpdump/dist/aclocal.m4 vendor/tcpdump/dist/addrtoname.c vendor/tcpdump/dist/addrtoname.h vendor/tcpdump/dist/af.c vendor/tcpdump/dist/af.h vendor/tcpdump/dist/bpf_dump.c vendor/tcpdump/dist/checksum.c (contents, props changed) vendor/tcpdump/dist/config.h.in vendor/tcpdump/dist/configure vendor/tcpdump/dist/configure.in vendor/tcpdump/dist/cpack.c vendor/tcpdump/dist/cpack.h vendor/tcpdump/dist/ether.h vendor/tcpdump/dist/ethertype.h vendor/tcpdump/dist/extract.h vendor/tcpdump/dist/gmpls.c vendor/tcpdump/dist/gmt2local.c vendor/tcpdump/dist/in_cksum.c (contents, props changed) vendor/tcpdump/dist/interface.h vendor/tcpdump/dist/ip.h vendor/tcpdump/dist/ip6.h vendor/tcpdump/dist/ipproto.c vendor/tcpdump/dist/l2vpn.c vendor/tcpdump/dist/l2vpn.h vendor/tcpdump/dist/lbl/os-solaris2.h vendor/tcpdump/dist/lbl/os-sunos4.h vendor/tcpdump/dist/lbl/os-ultrix4.h vendor/tcpdump/dist/machdep.c vendor/tcpdump/dist/machdep.h vendor/tcpdump/dist/mib.h vendor/tcpdump/dist/missing/datalinks.c vendor/tcpdump/dist/missing/dlnames.c vendor/tcpdump/dist/missing/snprintf.c vendor/tcpdump/dist/missing/strdup.c vendor/tcpdump/dist/missing/strlcat.c vendor/tcpdump/dist/missing/strlcpy.c vendor/tcpdump/dist/missing/strsep.c vendor/tcpdump/dist/nameser.h vendor/tcpdump/dist/netdissect.h vendor/tcpdump/dist/nfsfh.h vendor/tcpdump/dist/nlpid.c vendor/tcpdump/dist/oui.c vendor/tcpdump/dist/oui.h vendor/tcpdump/dist/parsenfsfh.c vendor/tcpdump/dist/pcap-missing.h vendor/tcpdump/dist/print-802_11.c vendor/tcpdump/dist/print-802_15_4.c (contents, props changed) vendor/tcpdump/dist/print-ah.c vendor/tcpdump/dist/print-ahcp.c (contents, props changed) vendor/tcpdump/dist/print-aodv.c vendor/tcpdump/dist/print-aoe.c (contents, props changed) vendor/tcpdump/dist/print-ap1394.c vendor/tcpdump/dist/print-arcnet.c vendor/tcpdump/dist/print-arp.c vendor/tcpdump/dist/print-ascii.c vendor/tcpdump/dist/print-atalk.c vendor/tcpdump/dist/print-atm.c vendor/tcpdump/dist/print-babel.c (contents, props changed) vendor/tcpdump/dist/print-beep.c vendor/tcpdump/dist/print-bfd.c vendor/tcpdump/dist/print-bgp.c vendor/tcpdump/dist/print-bootp.c vendor/tcpdump/dist/print-bt.c (contents, props changed) vendor/tcpdump/dist/print-calm-fast.c (contents, props changed) vendor/tcpdump/dist/print-carp.c (contents, props changed) vendor/tcpdump/dist/print-cdp.c vendor/tcpdump/dist/print-cfm.c (contents, props changed) vendor/tcpdump/dist/print-chdlc.c vendor/tcpdump/dist/print-cip.c vendor/tcpdump/dist/print-cnfp.c vendor/tcpdump/dist/print-dccp.c vendor/tcpdump/dist/print-decnet.c vendor/tcpdump/dist/print-dhcp6.c vendor/tcpdump/dist/print-domain.c vendor/tcpdump/dist/print-dtp.c (contents, props changed) vendor/tcpdump/dist/print-dvmrp.c vendor/tcpdump/dist/print-eap.c vendor/tcpdump/dist/print-egp.c vendor/tcpdump/dist/print-eigrp.c vendor/tcpdump/dist/print-enc.c vendor/tcpdump/dist/print-esp.c vendor/tcpdump/dist/print-ether.c vendor/tcpdump/dist/print-fddi.c vendor/tcpdump/dist/print-forces.c (contents, props changed) vendor/tcpdump/dist/print-fr.c vendor/tcpdump/dist/print-frag6.c vendor/tcpdump/dist/print-ftp.c (contents, props changed) vendor/tcpdump/dist/print-geneve.c (contents, props changed) vendor/tcpdump/dist/print-geonet.c (contents, props changed) vendor/tcpdump/dist/print-gre.c vendor/tcpdump/dist/print-hsrp.c vendor/tcpdump/dist/print-http.c (contents, props changed) vendor/tcpdump/dist/print-icmp.c vendor/tcpdump/dist/print-icmp6.c vendor/tcpdump/dist/print-igmp.c vendor/tcpdump/dist/print-igrp.c vendor/tcpdump/dist/print-ip.c vendor/tcpdump/dist/print-ip6.c vendor/tcpdump/dist/print-ip6opts.c vendor/tcpdump/dist/print-ipcomp.c vendor/tcpdump/dist/print-ipfc.c vendor/tcpdump/dist/print-ipnet.c (contents, props changed) vendor/tcpdump/dist/print-ipx.c vendor/tcpdump/dist/print-isakmp.c vendor/tcpdump/dist/print-isoclns.c vendor/tcpdump/dist/print-juniper.c vendor/tcpdump/dist/print-krb.c vendor/tcpdump/dist/print-l2tp.c vendor/tcpdump/dist/print-lane.c vendor/tcpdump/dist/print-ldp.c vendor/tcpdump/dist/print-llc.c vendor/tcpdump/dist/print-lldp.c (contents, props changed) vendor/tcpdump/dist/print-lmp.c vendor/tcpdump/dist/print-loopback.c (contents, props changed) vendor/tcpdump/dist/print-lspping.c vendor/tcpdump/dist/print-lwapp.c (contents, props changed) vendor/tcpdump/dist/print-lwres.c vendor/tcpdump/dist/print-m3ua.c (contents, props changed) vendor/tcpdump/dist/print-mobile.c vendor/tcpdump/dist/print-mobility.c vendor/tcpdump/dist/print-mpcp.c (contents, props changed) vendor/tcpdump/dist/print-mpls.c vendor/tcpdump/dist/print-mptcp.c (contents, props changed) vendor/tcpdump/dist/print-msdp.c vendor/tcpdump/dist/print-msnlb.c vendor/tcpdump/dist/print-nflog.c (contents, props changed) vendor/tcpdump/dist/print-nfs.c vendor/tcpdump/dist/print-ntp.c vendor/tcpdump/dist/print-null.c vendor/tcpdump/dist/print-olsr.c vendor/tcpdump/dist/print-openflow-1.0.c (contents, props changed) vendor/tcpdump/dist/print-openflow.c (contents, props changed) vendor/tcpdump/dist/print-ospf.c vendor/tcpdump/dist/print-ospf6.c vendor/tcpdump/dist/print-otv.c vendor/tcpdump/dist/print-pflog.c vendor/tcpdump/dist/print-pgm.c vendor/tcpdump/dist/print-pim.c vendor/tcpdump/dist/print-pktap.c (contents, props changed) vendor/tcpdump/dist/print-ppi.c (contents, props changed) vendor/tcpdump/dist/print-ppp.c vendor/tcpdump/dist/print-pppoe.c vendor/tcpdump/dist/print-pptp.c vendor/tcpdump/dist/print-radius.c vendor/tcpdump/dist/print-raw.c vendor/tcpdump/dist/print-rip.c vendor/tcpdump/dist/print-ripng.c vendor/tcpdump/dist/print-rpki-rtr.c (contents, props changed) vendor/tcpdump/dist/print-rrcp.c (contents, props changed) vendor/tcpdump/dist/print-rsvp.c vendor/tcpdump/dist/print-rt6.c vendor/tcpdump/dist/print-rtsp.c (contents, props changed) vendor/tcpdump/dist/print-rx.c vendor/tcpdump/dist/print-sctp.c vendor/tcpdump/dist/print-sflow.c (contents, props changed) vendor/tcpdump/dist/print-sip.c vendor/tcpdump/dist/print-sl.c vendor/tcpdump/dist/print-sll.c vendor/tcpdump/dist/print-slow.c vendor/tcpdump/dist/print-smb.c vendor/tcpdump/dist/print-smtp.c (contents, props changed) vendor/tcpdump/dist/print-snmp.c vendor/tcpdump/dist/print-stp.c vendor/tcpdump/dist/print-sunatm.c vendor/tcpdump/dist/print-sunrpc.c vendor/tcpdump/dist/print-symantec.c vendor/tcpdump/dist/print-syslog.c vendor/tcpdump/dist/print-tcp.c vendor/tcpdump/dist/print-telnet.c vendor/tcpdump/dist/print-tftp.c vendor/tcpdump/dist/print-timed.c vendor/tcpdump/dist/print-tipc.c vendor/tcpdump/dist/print-token.c vendor/tcpdump/dist/print-udld.c (contents, props changed) vendor/tcpdump/dist/print-udp.c vendor/tcpdump/dist/print-usb.c (contents, props changed) vendor/tcpdump/dist/print-vjc.c vendor/tcpdump/dist/print-vqp.c (contents, props changed) vendor/tcpdump/dist/print-vrrp.c vendor/tcpdump/dist/print-vtp.c (contents, props changed) vendor/tcpdump/dist/print-vxlan.c vendor/tcpdump/dist/print-wb.c vendor/tcpdump/dist/print-zephyr.c vendor/tcpdump/dist/print-zeromq.c vendor/tcpdump/dist/rpl.h (contents, props changed) vendor/tcpdump/dist/setsignal.c vendor/tcpdump/dist/signature.c (contents, props changed) vendor/tcpdump/dist/signature.h (contents, props changed) vendor/tcpdump/dist/smb.h vendor/tcpdump/dist/smbutil.c vendor/tcpdump/dist/tcp.h vendor/tcpdump/dist/tcpdump.1.in (contents, props changed) vendor/tcpdump/dist/tcpdump.c vendor/tcpdump/dist/tests/TESTLIST vendor/tcpdump/dist/tests/TESTonce vendor/tcpdump/dist/tests/crypto.sh (contents, props changed) vendor/tcpdump/dist/tests/cve2015-0261-crash.pcap vendor/tcpdump/dist/tests/cve2015-0261-ipv6.out vendor/tcpdump/dist/tests/dtp-v.out vendor/tcpdump/dist/tests/evb.out vendor/tcpdump/dist/tests/ieee802.11_exthdr.out vendor/tcpdump/dist/tests/ieee802.11_rx-stbc.out vendor/tcpdump/dist/tests/kday1.out vendor/tcpdump/dist/tests/kday2.out vendor/tcpdump/dist/tests/kday3.out vendor/tcpdump/dist/tests/kday4.out vendor/tcpdump/dist/tests/kday5.out vendor/tcpdump/dist/tests/kday6.out vendor/tcpdump/dist/tests/kday7.out vendor/tcpdump/dist/tests/kday8.out vendor/tcpdump/dist/tests/lldp_cdp-ev.out vendor/tcpdump/dist/tests/lmp-v.sh (contents, props changed) vendor/tcpdump/dist/tests/mstp-v.out vendor/tcpdump/dist/tests/nflog-e.sh (contents, props changed) vendor/tcpdump/dist/tests/of10_p3295-vv.out vendor/tcpdump/dist/tests/of10_s4810-vvvv.out vendor/tcpdump/dist/tests/radius-rfc4675-v.out vendor/tcpdump/dist/tests/rpl-14-daovvv.out vendor/tcpdump/dist/tests/rpl-19-pickdag.out vendor/tcpdump/dist/tests/rpl-19-pickdagvvv.out vendor/tcpdump/dist/tests/rpl-26-senddaovv.out vendor/tcpdump/dist/tests/udld-v.out vendor/tcpdump/dist/udp.h vendor/tcpdump/dist/vfprintf.c vendor/tcpdump/dist/win32/prj/WinDump.dsp Directory Properties: vendor/tcpdump/dist/Makefile-devel-adds (props changed) vendor/tcpdump/dist/getopt_long.h (props changed) vendor/tcpdump/dist/missing/getopt_long.c (props changed) vendor/tcpdump/dist/openflow.h (props changed) vendor/tcpdump/dist/tests/TESTrun.sh (props changed) vendor/tcpdump/dist/tests/esp-secrets.txt (props changed) vendor/tcpdump/dist/tests/ikev2pI2-secrets.txt (props changed) Modified: vendor/tcpdump/dist/CHANGES ============================================================================== --- vendor/tcpdump/dist/CHANGES Tue Jan 31 19:12:28 2017 (r313023) +++ vendor/tcpdump/dist/CHANGES Tue Jan 31 19:17:06 2017 (r313024) @@ -1,3 +1,187 @@ +Wednesday January 18, 2017 devel.fx.lebail@orange.fr + Summary for 4.9.0 tcpdump release + General updates: + Improve separation frontend/backend (tcpdump/libnetdissect) + Don't require IPv6 library support in order to support IPv6 addresses + Introduce data types to use for integral values in packet structures + Fix display of timestamps with -tt, -ttt and -ttttt options + Fix some heap overflows found with American Fuzzy Lop by Hanno Boeck and others + (More information in the log with CVE-2016-* and CVE-2017-*) + Change the way protocols print link-layer addresses (Fix heap overflows + in CALM-FAST and GeoNetworking printers) + Pass correct caplen value to ether_print() and some other functions + Fix lookup_nsap() to match what isonsap_string() expects + Clean up relative time stamp printing (Fix an array overflow) + Fix some alignment issues with GCC on Solaris 10 SPARC + Add some ND_TTEST_/ND_TCHECK_ macros to simplify writing bounds checks + Add a fn_printztn() which returns the number of bytes processed + Add nd_init() and nd_cleanup() functions. Improve libsmi support + Add CONTRIBUTING file + Add a summary comment in all printers + Compile with more warning options in devel mode if supported (-Wcast-qual, ...) + Fix some leaks found by Valgrind/Memcheck + Fix a bunch of de-constifications + Squelch some Coverity warnings and some compiler warnings + Update Coverity and Travis-CI setup + Update Visual Studio files + + Frontend: + Fix capsicum support to work with zerocopy buffers in bpf + Try opening interfaces by name first, then by name-as-index + Work around pcap_create() failures fetching time stamp type lists + Fix a segmentation fault with 'tcpdump -J' + Improve addrtostr6() bounds checking + Add exit_tcpdump() function + Don't drop CAP_SYS_CHROOT before chrooting + Fixes issue where statistics not reported when -G and -W options used + + New printers supporting: + Generic Protocol Extension for VXLAN (VXLAN-GPE) + Home Networking Control Protocol (HNCP), RFCs 7787 and 7788 + Locator/Identifier Separation Protocol (LISP), type 3 and type 4 packets + Marvell Extended Distributed Switch Architecture header (MEDSA) + Network Service Header (NSH) + REdis Serialization Protocol (RESP) + + Updated printers: + 802.11: Beginnings of 11ac radiotap support + 802.11: Check the Protected bit for management frames + 802.11: Do bounds checking on last_presentp before dereferencing it (Fix a heap overflow) + 802.11: Fix the radiotap printer to handle the special bits correctly + 802.11: If we have the MCS field, it's 11n + 802.11: Only print unknown frame type or subtype messages once + 802.11: Radiotap dBm values get printed as dB; Update a test output accordingly + 802.11: Source and destination addresses were backwards + AH: Add a bounds check + AH: Report to our caller that dissection failed if a bounds check fails + AP1394: Print src > dst, not dst > src + ARP: Don't assume the target hardware address is <= 6 octets long (Fix a heap overflow) + ATALK: Add bounds and length checks (Fix heap overflows) + ATM: Add some bounds checks (Fix a heap overflow) + ATM: Fix an incorrect bounds check + BFD: Update specification from draft to RFC 5880 + BFD: Update to print optional authentication field + BGP: Add decoding of ADD-PATH capability + BGP: Add support for the AIGP attribute (RFC7311) + BGP: Print LARGE_COMMUNITY Path Attribute + BGP: Update BGP numbers from IANA; Print minor values for FSM notification + BOOTP: Add a bounds check + Babel: Add decoder for source-specific extension + CDP: Filter out non-printable characters + CFM: Fixes to match the IEEE standard, additional bounds and length checks + CSLIP: Add more bounds checks (Fix a heap overflow) + ClassicalIPoATM: Add a bounds check on LLC+SNAP header (Fix a heap overflow) + DHCP: Fix MUDURL and TZ options + DHCPv6: Process MUDURL and TZ options + DHCPv6: Update Status Codes with RFCs/IANA names + DNS: Represent the "DNSSEC OK" bit as "DO" instead of "OK". Add a test case + DTP: Improve packet integrity checks + EGP: Fix bounds checks + ESP: Don't use OpenSSL_add_all_algorithms() in OpenSSL 1.1.0 or later + ESP: Handle OpenSSL 1.1.x + Ethernet: Add some bounds checking before calling isoclns_print (Fix a heap overflow) + Ethernet: Print the Length/Type field as length when needed + FDDI: Fix -e output for FDDI + FR: Add some packet-length checks and improve Q.933 printing (Fix heap overflows) + GRE: Add some bounds checks (Fix heap overflows) + Geneve: Fix error message with invalid option length; Update list option classes + HNCP: Fix incorrect time interval format. Fix handling of IPv4 prefixes + ICMP6: Fetch a 32-bit big-endian quantity with EXTRACT_32BITS() + ICMP6: dagid is always an IPv6 address, not an opaque 128-bit string + IGMP: Add a length check + IP: Add a bounds check (Fix a heap overflow) + IP: Check before fetching the protocol version (Fix a heap overflow) + IP: Don't try to dissect if IP version != 4 (Fix a heap overflow) + IP: Stop processing IPPROTO_ values once we hit IPPROTO_IPCOMP + IPComp: Check whether we have the CPI before we fetch it (Fix a heap overflow) + IPoFC: Fix -e output (IP-over-Fibre Channel) + IPv6: Don't overwrite the destination IPv6 address for routing headers + IPv6: Fix header printing + IPv6: Stop processing IPPROTO_ values once we hit IPPROTO_IPCOMP + ISAKMP: Clean up parsing of IKEv2 Security Associations + ISOCLNS/IS-IS: Add support for Purge Originator Identifier (RFC6232) and test cases + ISOCLNS/IS-IS: Don't overwrite packet data when checking the signature + ISOCLNS/IS-IS: Filter out non-printable characters + ISOCLNS/IS-IS: Fix segmentation faults + ISOCLNS/IS-IS: Have signature_verify() do the copying and clearing + ISOCLNS: Add some bounds checks + Juniper: Make sure a Juniper header TLV isn't bigger than what's left in the packet (Fix a heap overflow) + LLC/SNAP: With -e, print the LLC header before the SNAP header; without it, cut the SNAP header + LLC: Add a bounds check (Fix a heap overflow) + LLC: Clean up printing of LLC packets + LLC: Fix the printing of RFC 948-style IP packets + LLC: Skip the LLC and SNAP headers with -x for 802.11 and some other protocols + LLDP: Implement IANA OUI and LLDP MUD option + MPLS LSP ping: Update printing for RFC 4379, bug fixes, more bounds checks + MPLS: "length" is now the *remaining* packet length + MPLS: Add bounds and length checks (Fix a heap overflow) + NFS: Add a test that makes unaligned accesses + NFS: Don't assume the ONC RPC header is nicely aligned + NFS: Don't overflow the Opaque_Handle buffer (Fix a segmentation fault) + NFS: Don't run past the end of an NFSv3 file handle + OLSR: Add a test to cover a HNA sgw case + OLSR: Fix 'Advertised networks' count + OLSR: Fix printing of smart-gateway HNAs in IPv4 + OSPF: Add a bounds check for the Hello packet options + OSPF: Do more bounds checking + OSPF: Fix a segmentation fault + OSPF: Fix printing 'ospf_topology_values' default + OTV: Add missing bounds checks + PGM: Print the formatted IP address, not the raw binary address, as a string + PIM: Add some bounds checking (Fix a heap overflow) + PIMv2: Fix checksumming of Register messages + PPI: Pass an adjusted struct pcap_pkthdr to the sub-printer + PPP: Add some bounds checks (Fix a heap overflow) + PPP: Report invalid PAP AACK/ANAK packets + Q.933: Add a missing bounds check + RADIUS: Add Value 13 "VLAN" to Tunnel-Type attribute + RADIUS: Filter out non-printable characters + RADIUS: Translate UDP/1700 as RADIUS + RESP: Do better checking of RESP packets + RPKI-RTR: Add a return value check for "fn_printn" call + RPKI-RTR: Remove printing when truncated condition already detected + RPL: Fix 'Consistency Check' control code + RPL: Fix suboption print + RSVP: An INTEGRITY object in a submessage covers only the submessage + RSVP: Fix an infinite loop; Add bounds and length checks + RSVP: Fix some if statements missing brackets + RSVP: Have signature_verify() do the copying and clearing + RTCP: Add some bounds checks + RTP: Add some bounds checks, fix two segmentation faults + SCTP: Do more bounds checking + SFLOW: Fix bounds checking + SLOW: Fix bugs, add checks + SMB: Before fetching the flags2 field, make sure we have it + SMB: Do bounds checks on NBNS resource types and resource data lengths + SNMP: Clean up the "have libsmi but no modules loaded" case + SNMP: Clean up the object abbreviation list and fix the code to match them + SNMP: Do bounds checks when printing character and octet strings + SNMP: Improve ASN.1 bounds checks + SNMP: More bounds and length checks + STP: Add a bunch of bounds checks, and fix some printing (Fix heap overflows) + STP: Filter out non-printable characters + TCP: Add bounds and length checks for packets with TCP option 20 + TCP: Correct TCP option Kind value for TCP Auth and add SCPS-TP + TCP: Fix two bounds checks (Fix heap overflows) + TCP: Make sure we have the data offset field before fetching it (Fix a heap overflow) + TCP: Put TCP-AO option decoding right + TFTP: Don't use strchr() to scan packet data (Fix a heap overflow) + Telnet: Add some bounds checks + TokenRing: Fix -e output + UDLD: Fix an infinite loop + UDP: Add a bounds check (Fix a heap overflow) + UDP: Check against the packet length first + UDP: Don't do the DDP-over-UDP heuristic check up front + VAT: Add some bounds checks + VTP: Add a test on Mgmt Domain Name length + VTP: Add bounds checks and filter out non-printable characters + VXLAN: Add a bound check and a test case + ZeroMQ: Fix an infinite loop + +Tuesday April 14, 2015 guy@alum.mit.edu + Summary for 4.8.0 tcpdump release + Fix "-x" for Apple PKTAP and PPI packets + Friday April 10, 2015 guy@alum.mit.edu Summary for 4.7.4 tcpdump release RPKI to Router Protocol: Fix Segmentation Faults and other problems @@ -464,10 +648,10 @@ Wed. November 12, 2003. mcr@sandelman. Tuesday, February 25, 2003. fenner@research.att.com. 3.7.2 release - Fixed infinite loop when parsing malformed isakmp packets. + Fixed infinite loop when parsing invalid isakmp packets. (reported by iDefense; already fixed in CVS) - Fixed infinite loop when parsing malformed BGP packets. - Fixed buffer overflow with certain malformed NFS packets. + Fixed infinite loop when parsing invalid BGP packets. + Fixed buffer overflow with certain invalid NFS packets. Pretty-print unprintable network names in 802.11 printer. Handle truncated nbp (appletalk) packets. Updated DHCPv6 printer to match draft-ietf-dhc-dhcpv6-22.txt Added: vendor/tcpdump/dist/CONTRIBUTING ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/tcpdump/dist/CONTRIBUTING Tue Jan 31 19:17:06 2017 (r313024) @@ -0,0 +1,103 @@ +Some Information for Contributors +--------------------------------- +You want to contribute to Tcpdump, Thanks! +Please, read these lines. + +1) Fork the Tcpdump repository on GitHub from + https://github.com/the-tcpdump-group/tcpdump + (See https://help.github.com/articles/fork-a-repo/) + +2) Setup an optional Travis-CI build + You can setup a travis build for your fork. So, you can test your changes + on Linux and OSX before sending pull requests. + (See http://docs.travis-ci.com/user/getting-started/) + +3) Clone your repository + git clone https://github.com//tcpdump.git + +4) Do a 'touch .devel' in your working directory. + Currently, the effect is + a) add (via configure, in Makefile) some warnings options ( -Wall + -Wmissing-prototypes -Wstrict-prototypes, ...) to the compiler if it + supports these options, + b) have the Makefile support "make depend" and the configure script run it. + +5) Configure and build + ./configure && make -s && make check + +6) Add/update sample.pcap files + We use tests directory to do regression tests on the dissection of captured + packets, by running tcpdump against a savefile sample.pcap, created with -w + option and comparing the results with a text file sample.out giving the + expected results. + + Any new/updated fields in a dissector must be present in a sample.pcap file + and the corresponding output file. + + Configuration is set in tests/TESTLIST. + Each line in this file has the following format: + test-name sample.pcap sample.out tcpdump-options + + the sample.out file can be build by: + (cd tests && ../tcpdump -n -r sample.pcap tcpdump-options > sample.out) + + It is often useful to have test outputs with different verbosity levels + (none, -v, -vv, -vvv, etc.) depending on the code. + +7) Test with 'make check' + Don't send a pull request if 'make check' gives failed tests. + +8) Rebase your commits against upstream/master + (To keep linearity) + +9) Initiate and send a pull request + (See https://help.github.com/articles/using-pull-requests/) + +Some remarks +------------ +a) A thorough reading of some other printers code is useful. + +b) Put the normative reference if any as comments (RFC, etc.). + +c) Put the format of packets/headers/options as comments. + +d) The printer may receive incomplete packet in the buffer, truncated at any + random position, for example by capturing with '-s size' option. + Thus use ND_TTEST, ND_TTEST2, ND_TCHECK or ND_TCHECK2 for bound checking. + For ND_TCHECK2: + Define : static const char tstr[] = " [|protocol]"; + Define a label: trunc + Print with: ND_PRINT((ndo, "%s", tstr)); + You can test the code via: + sudo ./tcpdump -s snaplen [-v][v][...] -i lo # in a terminal + sudo tcpreplay -i lo sample.pcap # in another terminal + You should try several values for snaplen to do various truncation. + +e) Do invalid packet checks in code: Think that your code can receive in input + not only a valid packet but any arbitrary random sequence of octets (packet + - built malformed originally by the sender or by a fuzz tester, + - became corrupted in transit). + Print with: ND_PRINT((ndo, "%s", istr)); /* to print " (invalid)" */ + +f) Use 'struct tok' for indexed strings and print them with + tok2str() or bittok2str() (for flags). + +g) Avoid empty lines in output of printers. + +h) A commit message must have: + First line: Capitalized short summary in the imperative (70 chars or less) + + Body: Detailed explanatory text, if necessary. Fold it to approximately + 72 characters. There must be an empty line separating the summary from + the body. + +i) Avoid non-ASCII characters in code and commit messages. + +j) Use the style of the modified sources. + +k) Don't mix declarations and code + +l) Don't use // for comments + Not all C compilers accept C++/C99 comments by default. + +m) Avoid trailing tabs/spaces Modified: vendor/tcpdump/dist/CREDITS ============================================================================== --- vendor/tcpdump/dist/CREDITS Tue Jan 31 19:12:28 2017 (r313023) +++ vendor/tcpdump/dist/CREDITS Tue Jan 31 19:17:06 2017 (r313024) @@ -20,11 +20,13 @@ Additional people who have contributed p Andrea Bittau Andrew Brown Andrew Church + Andrew Darqui Andrew Hintz Andrew Nording Andrew Tridgell Andy Heffernan Anton Bernal + Antonin Décimo Arkadiusz Miskiewicz Armando L. Caro Jr. Arnaldo Carvalho de Melo @@ -33,6 +35,7 @@ Additional people who have contributed p Ben Byer Ben Smithurst Bert Vermeulen + Bill Parker Bjoern A. Zeeb Bram Brent L. Bates @@ -95,6 +98,7 @@ Additional people who have contributed p Jason R. Thorpe Jefferson Ogata Jeffrey Hutzelman + Jean-Raphaël Gaglione Jesper Peterson Jesse Gross Jim Hutchins @@ -119,7 +123,7 @@ Additional people who have contributed p Larry Lile Lennert Buytenhek Loganaden Velvindron - Longinus00 + Daniel Lee Loris Degioanni Love Hörnquist-Åstrand Lucas C. Villa Real @@ -134,6 +138,7 @@ Additional people who have contributed p Markus Schöpflin Marshall Rose Martin Husemann + Matthieu Boutier Max Laier Michael A. Meffie III Michael Madore Modified: vendor/tcpdump/dist/INSTALL.txt ============================================================================== --- vendor/tcpdump/dist/INSTALL.txt Tue Jan 31 19:12:28 2017 (r313023) +++ vendor/tcpdump/dist/INSTALL.txt Tue Jan 31 19:17:06 2017 (r313024) @@ -49,9 +49,10 @@ addrtoname.c - address to hostname routi addrtoname.h - address to hostname definitions ah.h - IPSEC Authentication Header definitions appletalk.h - AppleTalk definitions +ascii_strcasecmp.c - locale-independent case-independent string comparison + routines atime.awk - TCP ack awk script atm.h - ATM traffic type definitions -atmuni31.h - ATM Q.2931 definitions bpf_dump.c - BPF program printing routines, in case libpcap doesn't have them chdlc.h - Cisco HDLC definitions @@ -100,100 +101,8 @@ pcap_dump_ftell.c - pcap_dump_ftell() im doesn't have it pcap-missing.h - declarations of functions possibly missing from libpcap ppp.h - Point to Point Protocol definitions -print-802_11.c - IEEE 802.11 printer routines -print-ap1394.c - Apple IP-over-IEEE 1394 printer routines -print-ah.c - IPSEC Authentication Header printer routines -print-aodv.c - AODV printer routines -print-arcnet.c - ARCNET printer routines -print-arp.c - Address Resolution Protocol printer routines -print-ascii.c - ASCII packet dump routines -print-atalk.c - AppleTalk printer routines -print-atm.c - ATM printer routines -print-beep.c - BEEP printer routines -print-bgp.c - Border Gateway Protocol printer routines -print-bootp.c - BOOTP and IPv4 DHCP printer routines -print-bt.c - Bluetooth printer routines -print-cdp.c - Cisco Discovery Protocol printer routines -print-chdlc.c - Cisco HDLC printer routines -print-cip.c - Classical-IP over ATM routines -print-cnfp.c - Cisco NetFlow printer routines -print-dccp.c - DCCP printer routines -print-decnet.c - DECnet printer routines -print-dhcp6.c - IPv6 DHCP printer routines -print-domain.c - Domain Name System printer routines -print-dvmrp.c - Distance Vector Multicast Routing Protocol printer routines -print-eap.c - EAP printer routines -print-enc.c - OpenBSD IPsec encapsulation BPF layer printer routines -print-egp.c - External Gateway Protocol printer routines -print-esp.c - IPSEC Encapsulating Security Payload printer routines -print-ether.c - Ethernet printer routines -print-fddi.c - Fiber Distributed Data Interface printer routines -print-fr.c - Frame Relay printer routines -print-frag6.c - IPv6 fragmentation header printer routines -print-gre.c - Generic Routing Encapsulation printer routines -print-hsrp.c - Cisco Hot Standby Router Protocol printer routines -print-icmp.c - Internet Control Message Protocol printer routines -print-icmp6.c - IPv6 Internet Control Message Protocol printer routines -print-igmp.c - Internet Group Management Protocol printer routines -print-igrp.c - Interior Gateway Routing Protocol printer routines -print-ip.c - IP printer routines -print-ip6.c - IPv6 printer routines -print-ip6opts.c - IPv6 header option printer routines -print-ipcomp.c - IP Payload Compression Protocol printer routines -print-ipx.c - IPX printer routines -print-isakmp.c - Internet Security Association and Key Management Protocol -print-isoclns.c - ISO CLNS, ESIS, and ISIS printer routines -print-krb.c - Kerberos printer routines -print-l2tp.c - Layer Two Tunneling Protocol printer routines -print-lane.c - ATM LANE printer routines -print-llc.c - IEEE 802.2 LLC printer routines -print-lspping.c - LSPPING printer routines -print-lwres.c - Lightweight Resolver protocol printer routines -print-mobile.c - IPv4 mobility printer routines -print-mobility.c - IPv6 mobility printer routines -print-mpls.c - Multi-Protocol Label Switching printer routines -print-msdp.c - Multicast Source Discovery Protocol printer routines -print-nfs.c - Network File System printer routines -print-ntp.c - Network Time Protocol printer routines -print-null.c - BSD loopback device printer routines -print-ospf.c - Open Shortest Path First printer routines -print-ospf6.c - IPv6 Open Shortest Path First printer routines -print-pflog.c - OpenBSD packet filter log file printer routines -print-pgm.c - Pragmatic General Multicast printer routines -print-pim.c - Protocol Independent Multicast printer routines -print-ppp.c - Point to Point Protocol printer routines -print-pppoe.c - PPP-over-Ethernet printer routines -print-pptp.c - Point-to-Point Tunnelling Protocol printer routines -print-radius.c - Radius protocol printer routines -print-raw.c - Raw IP printer routines -print-rip.c - Routing Information Protocol printer routines -print-ripng.c - IPv6 Routing Information Protocol printer routines -print-rrcp.c - Realtek Remote Control Protocol routines -print-rsvp.c - Resource reSerVation Protocol (RSVP) printer routines -print-rt6.c - IPv6 routing header printer routines -print-rx.c - AFS RX printer routines -print-sctp.c - Stream Control Transmission Protocol printer routines -print-sip.c - SIP printer routines -print-sl.c - Compressed Serial Line Internet Protocol printer routines -print-sll.c - Linux "cooked" capture printer routines -print-slow.c - IEEE "slow protocol" (802.3ad) printer routines -print-smb.c - SMB/CIFS printer routines -print-snmp.c - Simple Network Management Protocol printer routines -print-stp.c - IEEE 802.1d spanning tree protocol printer routines -print-sunatm.c - SunATM DLPI capture printer routines -print-sunrpc.c - Sun Remote Procedure Call printer routines -print-symantec.c - Symantec Enterprise Firewall printer routines -print-tcp.c - TCP printer routines -print-telnet.c - Telnet option printer routines -print-tftp.c - Trivial File Transfer Protocol printer routines -print-timed.c - BSD time daemon protocol printer routines -print-token.c - Token Ring printer routines -print-udp.c - UDP printer routines -print-usb.c - USB printer routines -print-vjc.c - PPP Van Jacobson compression (RFC1144) printer routines -print-vrrp.c - Virtual Router Redundancy Protocol -print-wb.c - White Board printer routines -print-zephyr.c - Zephyr printer routines +print.c - Top-level routines for protocol printing +print-*.c - The netdissect printers rpc_auth.h - definitions for ONC RPC authentication rpc_msg.h - definitions for ONC RPC messages send-ack.awk - unidirectional tcp send/ack awk script @@ -203,11 +112,11 @@ slcompress.h - SLIP/PPP Van Jacobson com smb.h - SMB/CIFS definitions smbutil.c - SMB/CIFS utility routines stime.awk - TCP send awk script -strcasecmp.c - missing routine tcp.h - TCP definitions tcpdump.1 - manual entry tcpdump.c - main program +timeval-operations.h - timeval operations macros udp.h - UDP definitions -util.c - utility routines +util-print.c - utility routines for protocol printers vfprintf.c - emulation routine win32 - headers and routines for building on Win32 systems Modified: vendor/tcpdump/dist/Makefile.in ============================================================================== --- vendor/tcpdump/dist/Makefile.in Tue Jan 31 19:12:28 2017 (r313023) +++ vendor/tcpdump/dist/Makefile.in Tue Jan 31 19:17:06 2017 (r313024) @@ -74,7 +74,9 @@ CSRC = setsignal.c tcpdump.c LIBNETDISSECT_SRC=\ addrtoname.c \ + addrtostr.c \ af.c \ + ascii_strcasecmp.c \ checksum.c \ cpack.c \ gmpls.c \ @@ -86,6 +88,7 @@ LIBNETDISSECT_SRC=\ nlpid.c \ oui.c \ parsenfsfh.c \ + print.c \ print-802_11.c \ print-802_15_4.c \ print-ah.c \ @@ -98,6 +101,7 @@ LIBNETDISSECT_SRC=\ print-ascii.c \ print-atalk.c \ print-atm.c \ + print-babel.c \ print-beep.c \ print-bfd.c \ print-bgp.c \ @@ -112,6 +116,7 @@ LIBNETDISSECT_SRC=\ print-cnfp.c \ print-dccp.c \ print-decnet.c \ + print-dhcp6.c \ print-domain.c \ print-dtp.c \ print-dvmrp.c \ @@ -124,17 +129,21 @@ LIBNETDISSECT_SRC=\ print-fddi.c \ print-forces.c \ print-fr.c \ + print-frag6.c \ print-ftp.c \ print-geneve.c \ print-geonet.c \ print-gre.c \ + print-hncp.c \ print-hsrp.c \ print-http.c \ print-icmp.c \ + print-icmp6.c \ print-igmp.c \ print-igrp.c \ print-ip.c \ print-ip6.c \ + print-ip6opts.c \ print-ipcomp.c \ print-ipfc.c \ print-ipnet.c \ @@ -146,6 +155,7 @@ LIBNETDISSECT_SRC=\ print-l2tp.c \ print-lane.c \ print-ldp.c \ + print-lisp.c \ print-llc.c \ print-lldp.c \ print-lmp.c \ @@ -154,7 +164,9 @@ LIBNETDISSECT_SRC=\ print-lwapp.c \ print-lwres.c \ print-m3ua.c \ + print-medsa.c \ print-mobile.c \ + print-mobility.c \ print-mpcp.c \ print-mpls.c \ print-mptcp.c \ @@ -162,12 +174,14 @@ LIBNETDISSECT_SRC=\ print-msnlb.c \ print-nflog.c \ print-nfs.c \ + print-nsh.c \ print-ntp.c \ print-null.c \ print-olsr.c \ print-openflow-1.0.c \ print-openflow.c \ print-ospf.c \ + print-ospf6.c \ print-otv.c \ print-pgm.c \ print-pim.c \ @@ -178,10 +192,13 @@ LIBNETDISSECT_SRC=\ print-pptp.c \ print-radius.c \ print-raw.c \ + print-resp.c \ print-rip.c \ + print-ripng.c \ print-rpki-rtr.c \ print-rrcp.c \ print-rsvp.c \ + print-rt6.c \ print-rtsp.c \ print-rx.c \ print-sctp.c \ @@ -211,11 +228,14 @@ LIBNETDISSECT_SRC=\ print-vrrp.c \ print-vtp.c \ print-vxlan.c \ + print-vxlan-gpe.c \ print-wb.c \ print-zephyr.c \ print-zeromq.c \ + netdissect.c \ signature.c \ - util.c + strtoaddr.c \ + util-print.c LOCALSRC = @LOCALSRC@ GENSRC = version.c @@ -232,11 +252,12 @@ SRC = $(CSRC) $(GENSRC) $(LOCALSRC) $(LI OBJ = $(CSRC:.c=.o) $(GENSRC:.c=.o) $(LIBNETDISSECT_OBJ) HDR = \ addrtoname.h \ + addrtostr.h \ af.h \ ah.h \ appletalk.h \ + ascii_strcasecmp.h \ atm.h \ - atmuni31.h \ chdlc.h \ cpack.h \ ether.h \ @@ -264,6 +285,7 @@ HDR = \ oui.h \ pcap-missing.h \ ppp.h \ + print.h \ rpc_auth.h \ rpc_msg.h \ rpl.h \ @@ -271,14 +293,15 @@ HDR = \ signature.h \ slcompress.h \ smb.h \ + strtoaddr.h \ tcp.h \ - tcpdump-stdinc.h \ + netdissect-stdinc.h \ + timeval-operations.h \ udp.h TAGHDR = \ /usr/include/arpa/tftp.h \ /usr/include/net/if_arp.h \ - /usr/include/net/slip.h \ /usr/include/netinet/if_ether.h \ /usr/include/netinet/in.h \ /usr/include/netinet/ip_icmp.h \ @@ -292,11 +315,14 @@ CLEANFILES = $(PROG) $(OBJ) $(GENSRC) EXTRA_DIST = \ CHANGES \ + CONTRIBUTING \ CREDITS \ INSTALL.txt \ LICENSE \ Makefile.in \ Makefile-devel-adds \ + PLATFORMS \ + README \ README.md \ Readme.Win32 \ VERSION \ @@ -314,14 +340,9 @@ EXTRA_DIST = \ lbl/os-sunos4.h \ lbl/os-ultrix4.h \ makemib \ - missing/addrinfo.h \ missing/dlnames.c \ missing/datalinks.c \ - missing/getnameinfo.c \ missing/getopt_long.c \ - missing/inet_aton.c \ - missing/inet_ntop.c \ - missing/inet_pton.c \ missing/snprintf.c \ missing/strdup.c \ missing/strlcat.c \ @@ -330,27 +351,19 @@ EXTRA_DIST = \ mkdep \ packetdat.awk \ pcap_dump_ftell.c \ - print-babel.c \ - print-dhcp6.c \ - print-frag6.c \ - print-icmp6.c \ - print-ip6opts.c \ - print-mobility.c \ - print-ospf6.c \ print-pflog.c \ - print-ripng.c \ - print-rt6.c \ print-smb.c \ send-ack.awk \ smbutil.c \ stime.awk \ - strcasecmp.c \ tcpdump.1.in \ vfprintf.c \ - win32/Include/w32_fzs.h \ win32/prj/GNUmakefile \ win32/prj/WinDump.dsp \ - win32/prj/WinDump.dsw + win32/prj/WinDump.dsw \ + win32/prj/WinDump.sln \ + win32/prj/WinDump.vcproj \ + win32/src/ether_ntohost.c TEST_DIST= `find tests \( -name 'DIFF' -prune \) -o \( -name NEW -prune \) -o -type f \! -name '.*' \! -name '*~' -print` @@ -369,16 +382,8 @@ datalinks.o: $(srcdir)/missing/datalinks $(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/datalinks.c dlnames.o: $(srcdir)/missing/dlnames.c $(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/dlnames.c -getnameinfo.o: $(srcdir)/missing/getnameinfo.c - $(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/getnameinfo.c getopt_long.o: $(srcdir)/missing/getopt_long.c $(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/getopt_long.c -inet_pton.o: $(srcdir)/missing/inet_pton.c - $(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/inet_pton.c -inet_ntop.o: $(srcdir)/missing/inet_ntop.c - $(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/inet_ntop.c -inet_aton.o: $(srcdir)/missing/inet_aton.c - $(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/inet_aton.c snprintf.o: $(srcdir)/missing/snprintf.c $(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/snprintf.c strdup.o: $(srcdir)/missing/strdup.c @@ -434,6 +439,9 @@ distclean: check: tcpdump (cd tests && ./TESTrun.sh) +extags: $(TAGFILES) + ctags $(TAGFILES) + tags: $(TAGFILES) ctags -wtd $(TAGFILES) Added: vendor/tcpdump/dist/PLATFORMS ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/tcpdump/dist/PLATFORMS Tue Jan 31 19:17:06 2017 (r313024) @@ -0,0 +1,9 @@ +== Tested platforms == +NetBSD 5.1/i386 (mcr - 2012/4/1) +Debian Linux (squeeze/i386) (mcr - 2012/4/1) + +--- +RedHat Linux 6.1/i386 (assar) +FreeBSD 2.2.8/i386 (itojun) + + Added: vendor/tcpdump/dist/README ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/tcpdump/dist/README Tue Jan 31 19:17:06 2017 (r313024) @@ -0,0 +1 @@ +link README.md \ No newline at end of file Modified: vendor/tcpdump/dist/VERSION ============================================================================== --- vendor/tcpdump/dist/VERSION Tue Jan 31 19:12:28 2017 (r313023) +++ vendor/tcpdump/dist/VERSION Tue Jan 31 19:17:06 2017 (r313024) @@ -1 +1 @@ -4.7.4 +4.9.0 Modified: vendor/tcpdump/dist/aclocal.m4 ============================================================================== --- vendor/tcpdump/dist/aclocal.m4 Tue Jan 31 19:12:28 2017 (r313023) +++ vendor/tcpdump/dist/aclocal.m4 Tue Jan 31 19:17:06 2017 (r313024) @@ -219,6 +219,36 @@ AC_DEFUN(AC_LBL_C_INIT, ]) dnl +dnl Check whether, if you pass an unknown warning option to the +dnl compiler, it fails or just prints a warning message and succeeds. +dnl Set ac_lbl_unknown_warning_option_error to the appropriate flag +dnl to force an error if it would otherwise just print a warning message +dnl and succeed. +dnl +AC_DEFUN(AC_LBL_CHECK_UNKNOWN_WARNING_OPTION_ERROR, + [ + AC_MSG_CHECKING([whether the compiler fails when given an unknown warning option]) + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Wxyzzy-this-will-never-succeed-xyzzy" + AC_TRY_COMPILE( + [], + [return 0], + [ + AC_MSG_RESULT([no]) + # + # We're assuming this is clang, where + # -Werror=unknown-warning-option is the appropriate + # option to force the compiler to fail. + # + ac_lbl_unknown_warning_option_error="-Werror=unknown-warning-option" + ], + [ + AC_MSG_RESULT([yes]) + ]) + CFLAGS="$save_CFLAGS" + ]) + +dnl dnl Check whether the compiler option specified as the second argument dnl is supported by the compiler and, if so, add it to the macro dnl specified as the first argument @@ -227,7 +257,18 @@ AC_DEFUN(AC_LBL_CHECK_COMPILER_OPT, [ AC_MSG_CHECKING([whether the compiler supports the $2 option]) save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $ac_lbl_cc_force_warning_errors $2" + if expr "x$2" : "x-W.*" >/dev/null + then + CFLAGS="$CFLAGS $ac_lbl_unknown_warning_option_error $2" + elif expr "x$2" : "x-f.*" >/dev/null + then + CFLAGS="$CFLAGS -Werror $2" + elif expr "x$2" : "x-m.*" >/dev/null + then + CFLAGS="$CFLAGS -Werror $2" + else + CFLAGS="$CFLAGS $2" + fi AC_TRY_COMPILE( [], [return 0], @@ -942,11 +983,18 @@ AC_DEFUN(AC_LBL_DEVEL, # Skip all the warning option stuff on some compilers. # if test "$ac_lbl_cc_dont_try_gcc_dashW" != yes; then + AC_LBL_CHECK_UNKNOWN_WARNING_OPTION_ERROR() AC_LBL_CHECK_COMPILER_OPT($1, -Wall) AC_LBL_CHECK_COMPILER_OPT($1, -Wmissing-prototypes) AC_LBL_CHECK_COMPILER_OPT($1, -Wstrict-prototypes) AC_LBL_CHECK_COMPILER_OPT($1, -Wwrite-strings) AC_LBL_CHECK_COMPILER_OPT($1, -Wpointer-arith) + AC_LBL_CHECK_COMPILER_OPT($1, -Wcast-qual) + AC_LBL_CHECK_COMPILER_OPT($1, -Wshadow) + AC_LBL_CHECK_COMPILER_OPT($1, -Wdeclaration-after-statement) + AC_LBL_CHECK_COMPILER_OPT($1, -Wpedantic) + AC_LBL_CHECK_COMPILER_OPT($1, -Wold-style-definition) + AC_LBL_CHECK_COMPILER_OPT($1, -Wused-but-marked-unused) AC_LBL_CHECK_COMPILER_OPT($1, -W) fi AC_LBL_CHECK_DEPENDENCY_GENERATION_OPT() @@ -1114,131 +1162,6 @@ dnl OUT OF THE USE OF THIS SOFTWARE, EVE dnl SUCH DAMAGE. dnl -dnl Checks to see if AF_INET6 is defined -AC_DEFUN(AC_CHECK_AF_INET6, [ - AC_MSG_CHECKING(for AF_INET6) - AC_CACHE_VAL($1, - AC_TRY_COMPILE([ -# include -# include ], - [int a = AF_INET6], - $1=yes, - $1=no)) - AC_MSG_RESULT($$1) - if test $$1 = yes ; then - AC_DEFINE(HAVE_AF_INET6) - fi -]) - -dnl -dnl Checks to see if the sockaddr struct has the 4.4 BSD sa_len member -dnl borrowed from LBL libpcap -AC_DEFUN(AC_CHECK_SA_LEN, [ - AC_MSG_CHECKING(if sockaddr struct has sa_len member) - AC_CACHE_VAL($1, - AC_TRY_COMPILE([ -# include -# include ], - [u_int i = sizeof(((struct sockaddr *)0)->sa_len)], - $1=yes, - $1=no)) - AC_MSG_RESULT($$1) - if test $$1 = yes ; then - AC_DEFINE(HAVE_SOCKADDR_SA_LEN) - fi -]) - -dnl -dnl Checks for addrinfo structure -AC_DEFUN(AC_STRUCT_ADDRINFO, [ - AC_MSG_CHECKING(for addrinfo) - AC_CACHE_VAL($1, - AC_TRY_COMPILE([ -# include ], - [struct addrinfo a], - $1=yes, - $1=no)) - AC_MSG_RESULT($$1) - if test $$1 = yes; then - AC_DEFINE(HAVE_ADDRINFO, 1, - [define if you have the addrinfo function]) - else - AC_DEFINE(NEED_ADDRINFO_H, 1, - [define if you need to include missing/addrinfo.h]) - fi -]) - -dnl -dnl Checks for NI_MAXSERV -AC_DEFUN(AC_NI_MAXSERV, [ - AC_MSG_CHECKING(for NI_MAXSERV) - AC_CACHE_VAL($1, - AC_EGREP_CPP(yes, [#include -#ifdef NI_MAXSERV -yes -#endif], - $1=yes, - $1=no)) - AC_MSG_RESULT($$1) - if test $$1 != yes; then - AC_DEFINE(NEED_ADDRINFO_H) - fi -]) - -dnl -dnl Checks for NI_NAMEREQD -AC_DEFUN(AC_NI_NAMEREQD, [ - AC_MSG_CHECKING(for NI_NAMEREQD) - AC_CACHE_VAL($1, - AC_EGREP_CPP(yes, [#include -#ifdef NI_NOFQDN -yes -#endif], - $1=yes, - $1=no)) - AC_MSG_RESULT($$1) - if test $$1 != yes; then - AC_DEFINE(NEED_ADDRINFO_H) - fi -]) - -dnl -dnl Checks for sockaddr_storage structure -AC_DEFUN(AC_STRUCT_SA_STORAGE, [ - AC_MSG_CHECKING(for sockaddr_storage) - AC_CACHE_VAL($1, - AC_TRY_COMPILE([ -# include -# include ], - [struct sockaddr_storage s], - $1=yes, - $1=no)) - AC_MSG_RESULT($$1) - if test $$1 = yes; then - AC_DEFINE(HAVE_SOCKADDR_STORAGE, 1, - [define if you have struct sockaddr_storage]) - fi -]) - -dnl -dnl check for h_errno -AC_DEFUN(AC_VAR_H_ERRNO, [ - AC_MSG_CHECKING(for h_errno) - AC_CACHE_VAL(ac_cv_var_h_errno, - AC_TRY_COMPILE([ -# include -# include ], - [int foo = h_errno;], - ac_cv_var_h_errno=yes, - ac_cv_var_h_errno=no)) - AC_MSG_RESULT($ac_cv_var_h_errno) - if test "$ac_cv_var_h_errno" = "yes"; then - AC_DEFINE(HAVE_H_ERRNO, 1, - [define if you have the h_errno variable]) - fi -]) - -dnl dnl Test for __attribute__ dnl Modified: vendor/tcpdump/dist/addrtoname.c ============================================================================== --- vendor/tcpdump/dist/addrtoname.c Tue Jan 31 19:12:28 2017 (r313023) +++ vendor/tcpdump/dist/addrtoname.c Tue Jan 31 19:17:06 2017 (r313024) @@ -22,12 +22,11 @@ * and address to string conversion routines */ -#define NETDISSECT_REWORKED #ifdef HAVE_CONFIG_H #include "config.h" #endif -#include +#include #ifdef USE_ETHER_NTOHOST #ifdef HAVE_NETINET_IF_ETHER_H @@ -58,8 +57,10 @@ extern int ether_ntohost(char *, const s #include #include -#include "interface.h" +#include "netdissect.h" #include "addrtoname.h" +#include "addrtostr.h" +#include "ethertype.h" #include "llc.h" #include "setsignal.h" #include "extract.h" *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-vendor@freebsd.org Wed Feb 1 20:50:46 2017 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F2AB1CCC1D6; Wed, 1 Feb 2017 20:50:45 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BF3B8C39; Wed, 1 Feb 2017 20:50:45 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v11KoiNV079339; Wed, 1 Feb 2017 20:50:44 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v11KoinW079338; Wed, 1 Feb 2017 20:50:44 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201702012050.v11KoinW079338@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Wed, 1 Feb 2017 20:50:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r313053 - vendor/tcpdump X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 Feb 2017 20:50:46 -0000 Author: glebius Date: Wed Feb 1 20:50:44 2017 New Revision: 313053 URL: https://svnweb.freebsd.org/changeset/base/313053 Log: Document tcpdump update procedure used. Added: vendor/tcpdump/FreeBSD-upgrade Added: vendor/tcpdump/FreeBSD-upgrade ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/tcpdump/FreeBSD-upgrade Wed Feb 1 20:50:44 2017 (r313053) @@ -0,0 +1,40 @@ +The last import of tcpdump 4.9.0 documentation. + +In vendor/tcpdump checkout: + +# tar xzvf tcpdump-4.9.0.tar.gz +# mv tcpdump-4.9.0 4.9.0 +# svn add 4.9.0/ +# svn propdel -R svn:keywords 4.9.0 +# svn commit 4.9.0 +# cd 4.9.0 +# rsync --archive --delete . ../dist/ +# cd ../dist/ +# svn rm $(svn stat | awk '$1 == "!" { print $2 }') +# svn add $(svn stat | awk '$1 == "?" { print $2 }') +# svn propdel -R svn:keywords . +# svn commit + +Get revision from the last command. + +In head checkout: +# cd contrib/tcpdump +# svn merge -c ${rev} svn+ssh://repo.freebsd.org/base/vendor/tcpdump/dist + +Resolve conflicts. + +Our exclusion list is: + +aclocal.m4 +Readme.Win32 +tests +win32 + +In head checkout: + +# cd usr.sbin/tcpdump + +Update Makefile if needed, and config.h. Compare to config.h generated by +configure. + +Run 'make worlds' to test that everything is compilable. Commit. From owner-svn-src-vendor@freebsd.org Wed Feb 1 21:34:52 2017 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 423A2CCCDDE; Wed, 1 Feb 2017 21:34:52 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id ECAA7C0D; Wed, 1 Feb 2017 21:34:51 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v11LYpub099774; Wed, 1 Feb 2017 21:34:51 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v11LYl2C099741; Wed, 1 Feb 2017 21:34:47 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201702012134.v11LYl2C099741@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 1 Feb 2017 21:34:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r313056 - in vendor/llvm/dist: cmake/modules include/llvm/CodeGen lib/CodeGen lib/CodeGen/AsmPrinter lib/CodeGen/SelectionDAG lib/MC lib/Target/Mips lib/Target/Mips/AsmParser lib/Target... X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 Feb 2017 21:34:52 -0000 Author: dim Date: Wed Feb 1 21:34:47 2017 New Revision: 313056 URL: https://svnweb.freebsd.org/changeset/base/313056 Log: Vendor import of llvm release_40 branch r293807: https://llvm.org/svn/llvm-project/llvm/branches/release_40@293807 Added: vendor/llvm/dist/test/CodeGen/SystemZ/pr31710.ll vendor/llvm/dist/test/DebugInfo/Mips/tls.ll vendor/llvm/dist/test/MC/MachO/ARM/no-tls-assert.ll vendor/llvm/dist/test/Transforms/IPConstantProp/naked-return.ll vendor/llvm/dist/test/Transforms/InterleavedAccess/AArch64/ vendor/llvm/dist/test/Transforms/InterleavedAccess/AArch64/interleaved-accesses-extract-user.ll vendor/llvm/dist/test/Transforms/InterleavedAccess/AArch64/interleaved-accesses.ll vendor/llvm/dist/test/Transforms/InterleavedAccess/AArch64/lit.local.cfg vendor/llvm/dist/test/Transforms/InterleavedAccess/ARM/ vendor/llvm/dist/test/Transforms/InterleavedAccess/ARM/interleaved-accesses-extract-user.ll vendor/llvm/dist/test/Transforms/InterleavedAccess/ARM/interleaved-accesses.ll vendor/llvm/dist/test/Transforms/InterleavedAccess/ARM/lit.local.cfg Deleted: vendor/llvm/dist/test/CodeGen/AArch64/aarch64-interleaved-accesses-extract-user.ll vendor/llvm/dist/test/CodeGen/AArch64/aarch64-interleaved-accesses.ll vendor/llvm/dist/test/CodeGen/ARM/arm-interleaved-accesses-extract-user.ll vendor/llvm/dist/test/CodeGen/ARM/arm-interleaved-accesses.ll vendor/llvm/dist/test/MC/Disassembler/Mips/mips4/valid-xfail-mips4.txt vendor/llvm/dist/test/MC/Mips/mips3/invalid-mips4-wrong-error.s Modified: vendor/llvm/dist/cmake/modules/DetermineGCCCompatible.cmake vendor/llvm/dist/include/llvm/CodeGen/AsmPrinter.h vendor/llvm/dist/include/llvm/CodeGen/SelectionDAGISel.h vendor/llvm/dist/lib/CodeGen/AsmPrinter/AsmPrinter.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/DIE.cpp vendor/llvm/dist/lib/CodeGen/InterleavedAccessPass.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp vendor/llvm/dist/lib/MC/MCMachOStreamer.cpp vendor/llvm/dist/lib/Target/Mips/AsmParser/MipsAsmParser.cpp vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsBaseInfo.h vendor/llvm/dist/lib/Target/Mips/MicroMipsInstrFPU.td vendor/llvm/dist/lib/Target/Mips/MicroMipsInstrFormats.td vendor/llvm/dist/lib/Target/Mips/MipsAsmPrinter.cpp vendor/llvm/dist/lib/Target/Mips/MipsAsmPrinter.h vendor/llvm/dist/lib/Target/Mips/MipsFastISel.cpp vendor/llvm/dist/lib/Target/Mips/MipsInstrFPU.td vendor/llvm/dist/lib/Target/Mips/MipsInstrFormats.td vendor/llvm/dist/lib/Target/Mips/MipsTargetObjectFile.cpp vendor/llvm/dist/lib/Target/Mips/MipsTargetObjectFile.h vendor/llvm/dist/lib/Target/PowerPC/PPCInstrInfo.td vendor/llvm/dist/lib/Target/PowerPC/PPCSchedule.td vendor/llvm/dist/lib/Target/PowerPC/PPCScheduleE500mc.td vendor/llvm/dist/lib/Target/PowerPC/PPCScheduleE5500.td vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineCompares.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp vendor/llvm/dist/lib/Transforms/Scalar/SCCP.cpp vendor/llvm/dist/test/MC/Disassembler/PowerPC/ppc64-encoding-bookIII.txt vendor/llvm/dist/test/MC/Mips/micromips/valid.s vendor/llvm/dist/test/MC/Mips/mips1/invalid-mips4-wrong-error.s vendor/llvm/dist/test/MC/Mips/mips1/invalid-mips4.s vendor/llvm/dist/test/MC/Mips/mips1/invalid-mips5-wrong-error.s vendor/llvm/dist/test/MC/Mips/mips1/invalid-mips5.s vendor/llvm/dist/test/MC/Mips/mips2/invalid-mips32.s vendor/llvm/dist/test/MC/Mips/mips2/invalid-mips32r2.s vendor/llvm/dist/test/MC/Mips/mips2/invalid-mips4-wrong-error.s vendor/llvm/dist/test/MC/Mips/mips2/invalid-mips4.s vendor/llvm/dist/test/MC/Mips/mips2/invalid-mips5.s vendor/llvm/dist/test/MC/Mips/mips3/invalid-mips4.s vendor/llvm/dist/test/MC/Mips/mips3/invalid-mips5-wrong-error.s vendor/llvm/dist/test/MC/Mips/mips3/invalid-mips5.s vendor/llvm/dist/test/MC/Mips/mips32/valid-xfail.s vendor/llvm/dist/test/MC/Mips/mips32/valid.s vendor/llvm/dist/test/MC/Mips/mips32r2/valid-xfail.s vendor/llvm/dist/test/MC/Mips/mips32r2/valid.s vendor/llvm/dist/test/MC/Mips/mips32r3/valid-xfail.s vendor/llvm/dist/test/MC/Mips/mips32r3/valid.s vendor/llvm/dist/test/MC/Mips/mips32r5/valid-xfail.s vendor/llvm/dist/test/MC/Mips/mips32r5/valid.s vendor/llvm/dist/test/MC/Mips/mips4/valid-xfail.s vendor/llvm/dist/test/MC/Mips/mips4/valid.s vendor/llvm/dist/test/MC/Mips/mips5/valid-xfail.s vendor/llvm/dist/test/MC/Mips/mips5/valid.s vendor/llvm/dist/test/MC/Mips/mips64/valid-xfail.s vendor/llvm/dist/test/MC/Mips/mips64/valid.s vendor/llvm/dist/test/MC/Mips/mips64r2/valid-xfail.s vendor/llvm/dist/test/MC/Mips/mips64r2/valid.s vendor/llvm/dist/test/MC/Mips/mips64r3/valid-xfail.s vendor/llvm/dist/test/MC/Mips/mips64r3/valid.s vendor/llvm/dist/test/MC/Mips/mips64r5/valid-xfail.s vendor/llvm/dist/test/MC/Mips/mips64r5/valid.s vendor/llvm/dist/test/MC/PowerPC/ppc64-encoding-bookIII.s vendor/llvm/dist/test/Transforms/InstCombine/indexed-gep-compares.ll vendor/llvm/dist/test/Transforms/InstCombine/load.ll vendor/llvm/dist/test/tools/llvm-symbolizer/coff-exports.test Modified: vendor/llvm/dist/cmake/modules/DetermineGCCCompatible.cmake ============================================================================== --- vendor/llvm/dist/cmake/modules/DetermineGCCCompatible.cmake Wed Feb 1 21:21:01 2017 (r313055) +++ vendor/llvm/dist/cmake/modules/DetermineGCCCompatible.cmake Wed Feb 1 21:34:47 2017 (r313056) @@ -7,5 +7,7 @@ if(NOT DEFINED LLVM_COMPILER_IS_GCC_COMP set(LLVM_COMPILER_IS_GCC_COMPATIBLE OFF) elseif( "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" ) set(LLVM_COMPILER_IS_GCC_COMPATIBLE ON) + elseif( "${CMAKE_CXX_COMPILER_ID}" MATCHES "Intel" ) + set(LLVM_COMPILER_IS_GCC_COMPATIBLE ON) endif() endif() Modified: vendor/llvm/dist/include/llvm/CodeGen/AsmPrinter.h ============================================================================== --- vendor/llvm/dist/include/llvm/CodeGen/AsmPrinter.h Wed Feb 1 21:21:01 2017 (r313055) +++ vendor/llvm/dist/include/llvm/CodeGen/AsmPrinter.h Wed Feb 1 21:34:47 2017 (r313056) @@ -480,6 +480,12 @@ public: /// Get the value for DW_AT_APPLE_isa. Zero if no isa encoding specified. virtual unsigned getISAEncoding() { return 0; } + /// Emit the directive and value for debug thread local expression + /// + /// \p Value - The value to emit. + /// \p Size - The size of the integer (in bytes) to emit. + virtual void EmitDebugValue(const MCExpr *Value, unsigned Size) const; + //===------------------------------------------------------------------===// // Dwarf Lowering Routines //===------------------------------------------------------------------===// Modified: vendor/llvm/dist/include/llvm/CodeGen/SelectionDAGISel.h ============================================================================== --- vendor/llvm/dist/include/llvm/CodeGen/SelectionDAGISel.h Wed Feb 1 21:21:01 2017 (r313055) +++ vendor/llvm/dist/include/llvm/CodeGen/SelectionDAGISel.h Wed Feb 1 21:34:47 2017 (r313056) @@ -305,7 +305,7 @@ private: std::vector OpcodeOffset; void UpdateChains(SDNode *NodeToMatch, SDValue InputChain, - const SmallVectorImpl &ChainNodesMatched, + SmallVectorImpl &ChainNodesMatched, bool isMorphNodeTo); }; Modified: vendor/llvm/dist/lib/CodeGen/AsmPrinter/AsmPrinter.cpp ============================================================================== --- vendor/llvm/dist/lib/CodeGen/AsmPrinter/AsmPrinter.cpp Wed Feb 1 21:21:01 2017 (r313055) +++ vendor/llvm/dist/lib/CodeGen/AsmPrinter/AsmPrinter.cpp Wed Feb 1 21:34:47 2017 (r313056) @@ -567,6 +567,15 @@ void AsmPrinter::EmitGlobalVariable(cons OutStreamer->AddBlankLine(); } +/// Emit the directive and value for debug thread local expression +/// +/// \p Value - The value to emit. +/// \p Size - The size of the integer (in bytes) to emit. +void AsmPrinter::EmitDebugValue(const MCExpr *Value, + unsigned Size) const { + OutStreamer->EmitValue(Value, Size); +} + /// EmitFunctionHeader - This method emits the header for the current /// function. void AsmPrinter::EmitFunctionHeader() { Modified: vendor/llvm/dist/lib/CodeGen/AsmPrinter/DIE.cpp ============================================================================== --- vendor/llvm/dist/lib/CodeGen/AsmPrinter/DIE.cpp Wed Feb 1 21:21:01 2017 (r313055) +++ vendor/llvm/dist/lib/CodeGen/AsmPrinter/DIE.cpp Wed Feb 1 21:34:47 2017 (r313056) @@ -484,7 +484,7 @@ void DIEInteger::print(raw_ostream &O) c /// EmitValue - Emit expression value. /// void DIEExpr::EmitValue(const AsmPrinter *AP, dwarf::Form Form) const { - AP->OutStreamer->EmitValue(Expr, SizeOf(AP, Form)); + AP->EmitDebugValue(Expr, SizeOf(AP, Form)); } /// SizeOf - Determine size of expression value in bytes. Modified: vendor/llvm/dist/lib/CodeGen/InterleavedAccessPass.cpp ============================================================================== --- vendor/llvm/dist/lib/CodeGen/InterleavedAccessPass.cpp Wed Feb 1 21:21:01 2017 (r313055) +++ vendor/llvm/dist/lib/CodeGen/InterleavedAccessPass.cpp Wed Feb 1 21:34:47 2017 (r313056) @@ -174,7 +174,7 @@ static bool isDeInterleaveMask(ArrayRef< /// I.e. <0, LaneLen, ... , LaneLen*(Factor - 1), 1, LaneLen + 1, ...> /// E.g. For a Factor of 2 (LaneLen=4): <0, 4, 1, 5, 2, 6, 3, 7> static bool isReInterleaveMask(ArrayRef Mask, unsigned &Factor, - unsigned MaxFactor) { + unsigned MaxFactor, unsigned OpNumElts) { unsigned NumElts = Mask.size(); if (NumElts < 4) return false; @@ -246,6 +246,9 @@ static bool isReInterleaveMask(ArrayRef< if (StartMask < 0) break; + // We must stay within the vectors; This case can happen with undefs. + if (StartMask + LaneLen > OpNumElts*2) + break; } // Found an interleaved mask of current factor. @@ -406,7 +409,8 @@ bool InterleavedAccess::lowerInterleaved // Check if the shufflevector is RE-interleave shuffle. unsigned Factor; - if (!isReInterleaveMask(SVI->getShuffleMask(), Factor, MaxFactor)) + unsigned OpNumElts = SVI->getOperand(0)->getType()->getVectorNumElements(); + if (!isReInterleaveMask(SVI->getShuffleMask(), Factor, MaxFactor, OpNumElts)) return false; DEBUG(dbgs() << "IA: Found an interleaved store: " << *SI << "\n"); Modified: vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp ============================================================================== --- vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp Wed Feb 1 21:21:01 2017 (r313055) +++ vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp Wed Feb 1 21:34:47 2017 (r313056) @@ -2248,7 +2248,7 @@ GetVBR(uint64_t Val, const unsigned char /// to use the new results. void SelectionDAGISel::UpdateChains( SDNode *NodeToMatch, SDValue InputChain, - const SmallVectorImpl &ChainNodesMatched, bool isMorphNodeTo) { + SmallVectorImpl &ChainNodesMatched, bool isMorphNodeTo) { SmallVector NowDeadNodes; // Now that all the normal results are replaced, we replace the chain and @@ -2260,6 +2260,11 @@ void SelectionDAGISel::UpdateChains( // Replace all the chain results with the final chain we ended up with. for (unsigned i = 0, e = ChainNodesMatched.size(); i != e; ++i) { SDNode *ChainNode = ChainNodesMatched[i]; + // If ChainNode is null, it's because we replaced it on a previous + // iteration and we cleared it out of the map. Just skip it. + if (!ChainNode) + continue; + assert(ChainNode->getOpcode() != ISD::DELETED_NODE && "Deleted node left in chain"); @@ -2272,6 +2277,11 @@ void SelectionDAGISel::UpdateChains( if (ChainVal.getValueType() == MVT::Glue) ChainVal = ChainVal.getValue(ChainVal->getNumValues()-2); assert(ChainVal.getValueType() == MVT::Other && "Not a chain?"); + SelectionDAG::DAGNodeDeletedListener NDL( + *CurDAG, [&](SDNode *N, SDNode *E) { + std::replace(ChainNodesMatched.begin(), ChainNodesMatched.end(), N, + static_cast(nullptr)); + }); CurDAG->ReplaceAllUsesOfValueWith(ChainVal, InputChain); // If the node became dead and we haven't already seen it, delete it. Modified: vendor/llvm/dist/lib/MC/MCMachOStreamer.cpp ============================================================================== --- vendor/llvm/dist/lib/MC/MCMachOStreamer.cpp Wed Feb 1 21:21:01 2017 (r313055) +++ vendor/llvm/dist/lib/MC/MCMachOStreamer.cpp Wed Feb 1 21:34:47 2017 (r313056) @@ -142,7 +142,8 @@ static bool canGoAfterDWARF(const MCSect if (SegName == "__TEXT" && SecName == "__eh_frame") return true; - if (SegName == "__DATA" && SecName == "__nl_symbol_ptr") + if (SegName == "__DATA" && (SecName == "__nl_symbol_ptr" || + SecName == "__thread_ptr")) return true; return false; Modified: vendor/llvm/dist/lib/Target/Mips/AsmParser/MipsAsmParser.cpp ============================================================================== --- vendor/llvm/dist/lib/Target/Mips/AsmParser/MipsAsmParser.cpp Wed Feb 1 21:21:01 2017 (r313055) +++ vendor/llvm/dist/lib/Target/Mips/AsmParser/MipsAsmParser.cpp Wed Feb 1 21:34:47 2017 (r313056) @@ -413,6 +413,7 @@ public: Match_RequiresDifferentOperands, Match_RequiresNoZeroRegister, Match_RequiresSameSrcAndDst, + Match_NoFCCRegisterForCurrentISA, Match_NonZeroOperandForSync, #define GET_OPERAND_DIAGNOSTIC_TYPES #include "MipsGenAsmMatcher.inc" @@ -1461,8 +1462,6 @@ public: bool isFCCAsmReg() const { if (!(isRegIdx() && RegIdx.Kind & RegKind_FCC)) return false; - if (!AsmParser.hasEightFccRegisters()) - return RegIdx.Index == 0; return RegIdx.Index <= 7; } bool isACCAsmReg() const { @@ -4053,6 +4052,7 @@ MipsAsmParser::checkEarlyTargetMatchPred return Match_RequiresSameSrcAndDst; } } + unsigned MipsAsmParser::checkTargetMatchPredicate(MCInst &Inst) { switch (Inst.getOpcode()) { // As described by the MIPSR6 spec, daui must not use the zero operand for @@ -4131,9 +4131,15 @@ unsigned MipsAsmParser::checkTargetMatch if (Inst.getOperand(0).getReg() == Inst.getOperand(1).getReg()) return Match_RequiresDifferentOperands; return Match_Success; - default: - return Match_Success; } + + uint64_t TSFlags = getInstDesc(Inst.getOpcode()).TSFlags; + if ((TSFlags & MipsII::HasFCCRegOperand) && + (Inst.getOperand(0).getReg() != Mips::FCC0) && !hasEightFccRegisters()) + return Match_NoFCCRegisterForCurrentISA; + + return Match_Success; + } static SMLoc RefineErrorLoc(const SMLoc Loc, const OperandVector &Operands, @@ -4191,6 +4197,9 @@ bool MipsAsmParser::MatchAndEmitInstruct return Error(IDLoc, "invalid operand ($zero) for instruction"); case Match_RequiresSameSrcAndDst: return Error(IDLoc, "source and destination must match"); + case Match_NoFCCRegisterForCurrentISA: + return Error(RefineErrorLoc(IDLoc, Operands, ErrorInfo), + "non-zero fcc register doesn't exist in current ISA level"); case Match_Immz: return Error(RefineErrorLoc(IDLoc, Operands, ErrorInfo), "expected '0'"); case Match_UImm1_0: Modified: vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsBaseInfo.h ============================================================================== --- vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsBaseInfo.h Wed Feb 1 21:21:01 2017 (r313055) +++ vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsBaseInfo.h Wed Feb 1 21:34:47 2017 (r313056) @@ -123,7 +123,9 @@ namespace MipsII { HasForbiddenSlot = 1 << 5, /// IsPCRelativeLoad - A Load instruction with implicit source register /// ($pc) with explicit offset and destination register - IsPCRelativeLoad = 1 << 6 + IsPCRelativeLoad = 1 << 6, + /// HasFCCRegOperand - Instruction uses an $fcc register. + HasFCCRegOperand = 1 << 7 }; } Modified: vendor/llvm/dist/lib/Target/Mips/MicroMipsInstrFPU.td ============================================================================== --- vendor/llvm/dist/lib/Target/Mips/MicroMipsInstrFPU.td Wed Feb 1 21:21:01 2017 (r313055) +++ vendor/llvm/dist/lib/Target/Mips/MicroMipsInstrFPU.td Wed Feb 1 21:34:47 2017 (r313056) @@ -27,9 +27,20 @@ def SUXC1_MM : MMRel, SWXC1_FT<"suxc1", SWXC1_FM_MM<0x188>, INSN_MIPS5_32R2_NOT_32R6_64R6; def FCMP_S32_MM : MMRel, CEQS_FT<"s", FGR32, II_C_CC_S, MipsFPCmp>, - CEQS_FM_MM<0>; + CEQS_FM_MM<0> { + // FIXME: This is a required to work around the fact that these instructions + // only use $fcc0. Ideally, MipsFPCmp nodes could be removed and the + // fcc register set is used directly. + bits<3> fcc = 0; +} + def FCMP_D32_MM : MMRel, CEQS_FT<"d", AFGR64, II_C_CC_D, MipsFPCmp>, - CEQS_FM_MM<1>; + CEQS_FM_MM<1> { + // FIXME: This is a required to work around the fact that these instructions + // only use $fcc0. Ideally, MipsFPCmp nodes could be removed and the + // fcc register set is used directly. + bits<3> fcc = 0; +} def BC1F_MM : MMRel, BC1F_FT<"bc1f", brtarget_mm, II_BC1F, MIPS_BRANCH_F>, BC1F_FM_MM<0x1c>, ISA_MIPS1_NOT_32R6_64R6; @@ -164,6 +175,98 @@ let AdditionalPredicates = [InMicroMips] def SWC1_MM : MMRel, SW_FT<"swc1", FGR32Opnd, mem_mm_16, II_SWC1, store>, LW_FM_MM<0x26>; } + + multiclass C_COND_MM fmt, + InstrItinClass itin> { + def C_F_#NAME#_MM : MMRel, C_COND_FT<"f", TypeStr, RC, itin>, + C_COND_FM_MM { + let BaseOpcode = "c.f."#NAME; + let isCommutable = 1; + } + def C_UN_#NAME#_MM : MMRel, C_COND_FT<"un", TypeStr, RC, itin>, + C_COND_FM_MM { + let BaseOpcode = "c.un."#NAME; + let isCommutable = 1; + } + def C_EQ_#NAME#_MM : MMRel, C_COND_FT<"eq", TypeStr, RC, itin>, + C_COND_FM_MM { + let BaseOpcode = "c.eq."#NAME; + let isCommutable = 1; + } + def C_UEQ_#NAME#_MM : MMRel, C_COND_FT<"ueq", TypeStr, RC, itin>, + C_COND_FM_MM { + let BaseOpcode = "c.ueq."#NAME; + let isCommutable = 1; + } + def C_OLT_#NAME#_MM : MMRel, C_COND_FT<"olt", TypeStr, RC, itin>, + C_COND_FM_MM { + let BaseOpcode = "c.olt."#NAME; + } + def C_ULT_#NAME#_MM : MMRel, C_COND_FT<"ult", TypeStr, RC, itin>, + C_COND_FM_MM { + let BaseOpcode = "c.ult."#NAME; + } + def C_OLE_#NAME#_MM : MMRel, C_COND_FT<"ole", TypeStr, RC, itin>, + C_COND_FM_MM { + let BaseOpcode = "c.ole."#NAME; + } + def C_ULE_#NAME#_MM : MMRel, C_COND_FT<"ule", TypeStr, RC, itin>, + C_COND_FM_MM { + let BaseOpcode = "c.ule."#NAME; + } + def C_SF_#NAME#_MM : MMRel, C_COND_FT<"sf", TypeStr, RC, itin>, + C_COND_FM_MM { + let BaseOpcode = "c.sf."#NAME; + let isCommutable = 1; + } + def C_NGLE_#NAME#_MM : MMRel, C_COND_FT<"ngle", TypeStr, RC, itin>, + C_COND_FM_MM { + let BaseOpcode = "c.ngle."#NAME; + } + def C_SEQ_#NAME#_MM : MMRel, C_COND_FT<"seq", TypeStr, RC, itin>, + C_COND_FM_MM { + let BaseOpcode = "c.seq."#NAME; + let isCommutable = 1; + } + def C_NGL_#NAME#_MM : MMRel, C_COND_FT<"ngl", TypeStr, RC, itin>, + C_COND_FM_MM { + let BaseOpcode = "c.ngl."#NAME; + } + def C_LT_#NAME#_MM : MMRel, C_COND_FT<"lt", TypeStr, RC, itin>, + C_COND_FM_MM { + let BaseOpcode = "c.lt."#NAME; + } + def C_NGE_#NAME#_MM : MMRel, C_COND_FT<"nge", TypeStr, RC, itin>, + C_COND_FM_MM { + let BaseOpcode = "c.nge."#NAME; + } + def C_LE_#NAME#_MM : MMRel, C_COND_FT<"le", TypeStr, RC, itin>, + C_COND_FM_MM { + let BaseOpcode = "c.le."#NAME; + } + def C_NGT_#NAME#_MM : MMRel, C_COND_FT<"ngt", TypeStr, RC, itin>, + C_COND_FM_MM { + let BaseOpcode = "c.ngt."#NAME; + } + } + + defm S : C_COND_MM<"s", FGR32Opnd, 0b00, II_C_CC_S>, + ISA_MIPS1_NOT_32R6_64R6; + defm D32 : C_COND_MM<"d", AFGR64Opnd, 0b01, II_C_CC_D>, + ISA_MIPS1_NOT_32R6_64R6, FGR_32; + let DecoderNamespace = "Mips64" in + defm D64 : C_COND_MM<"d", FGR64Opnd, 0b01, II_C_CC_D>, + ISA_MIPS1_NOT_32R6_64R6, FGR_64; + + defm S_MM : C_COND_ALIASES<"s", FGR32Opnd>, HARDFLOAT, + ISA_MIPS1_NOT_32R6_64R6; + defm D32_MM : C_COND_ALIASES<"d", AFGR64Opnd>, HARDFLOAT, + ISA_MIPS1_NOT_32R6_64R6, FGR_32; + defm D64_MM : C_COND_ALIASES<"d", FGR64Opnd>, HARDFLOAT, + ISA_MIPS1_NOT_32R6_64R6, FGR_64; + + defm : BC1_ALIASES, + ISA_MIPS1_NOT_32R6_64R6, HARDFLOAT; } //===----------------------------------------------------------------------===// Modified: vendor/llvm/dist/lib/Target/Mips/MicroMipsInstrFormats.td ============================================================================== --- vendor/llvm/dist/lib/Target/Mips/MicroMipsInstrFormats.td Wed Feb 1 21:21:01 2017 (r313055) +++ vendor/llvm/dist/lib/Target/Mips/MicroMipsInstrFormats.td Wed Feb 1 21:34:47 2017 (r313056) @@ -766,6 +766,7 @@ class SWXC1_FM_MM funct> : MMArc class CEQS_FM_MM fmt> : MMArch { bits<5> fs; bits<5> ft; + bits<3> fcc; bits<4> cond; bits<32> Inst; @@ -773,13 +774,17 @@ class CEQS_FM_MM fmt> : MMArch { let Inst{31-26} = 0x15; let Inst{25-21} = ft; let Inst{20-16} = fs; - let Inst{15-13} = 0x0; // cc + let Inst{15-13} = fcc; let Inst{12} = 0; let Inst{11-10} = fmt; let Inst{9-6} = cond; let Inst{5-0} = 0x3c; } +class C_COND_FM_MM fmt, bits<4> c> : CEQS_FM_MM { + let cond = c; +} + class BC1F_FM_MM tf> : MMArch { bits<16> offset; Modified: vendor/llvm/dist/lib/Target/Mips/MipsAsmPrinter.cpp ============================================================================== --- vendor/llvm/dist/lib/Target/Mips/MipsAsmPrinter.cpp Wed Feb 1 21:21:01 2017 (r313055) +++ vendor/llvm/dist/lib/Target/Mips/MipsAsmPrinter.cpp Wed Feb 1 21:34:47 2017 (r313056) @@ -1037,6 +1037,22 @@ void MipsAsmPrinter::PrintDebugValueComm // TODO: implement } +// Emit .dtprelword or .dtpreldword directive +// and value for debug thread local expression. +void MipsAsmPrinter::EmitDebugValue(const MCExpr *Value, + unsigned Size) const { + switch (Size) { + case 4: + OutStreamer->EmitDTPRel32Value(Value); + break; + case 8: + OutStreamer->EmitDTPRel64Value(Value); + break; + default: + llvm_unreachable("Unexpected size of expression value."); + } +} + // Align all targets of indirect branches on bundle size. Used only if target // is NaCl. void MipsAsmPrinter::NaClAlignIndirectJumpTargets(MachineFunction &MF) { Modified: vendor/llvm/dist/lib/Target/Mips/MipsAsmPrinter.h ============================================================================== --- vendor/llvm/dist/lib/Target/Mips/MipsAsmPrinter.h Wed Feb 1 21:21:01 2017 (r313055) +++ vendor/llvm/dist/lib/Target/Mips/MipsAsmPrinter.h Wed Feb 1 21:34:47 2017 (r313056) @@ -140,6 +140,7 @@ public: void EmitStartOfAsmFile(Module &M) override; void EmitEndOfAsmFile(Module &M) override; void PrintDebugValueComment(const MachineInstr *MI, raw_ostream &OS); + void EmitDebugValue(const MCExpr *Value, unsigned Size) const override; }; } Modified: vendor/llvm/dist/lib/Target/Mips/MipsFastISel.cpp ============================================================================== --- vendor/llvm/dist/lib/Target/Mips/MipsFastISel.cpp Wed Feb 1 21:21:01 2017 (r313055) +++ vendor/llvm/dist/lib/Target/Mips/MipsFastISel.cpp Wed Feb 1 21:34:47 2017 (r313056) @@ -698,8 +698,8 @@ bool MipsFastISel::emitCmp(unsigned Resu unsigned RegWithOne = createResultReg(&Mips::GPR32RegClass); emitInst(Mips::ADDiu, RegWithZero).addReg(Mips::ZERO).addImm(0); emitInst(Mips::ADDiu, RegWithOne).addReg(Mips::ZERO).addImm(1); - emitInst(Opc).addReg(LeftReg).addReg(RightReg).addReg( - Mips::FCC0, RegState::ImplicitDefine); + emitInst(Opc).addReg(Mips::FCC0, RegState::Define).addReg(LeftReg) + .addReg(RightReg); emitInst(CondMovOpc, ResultReg) .addReg(RegWithOne) .addReg(Mips::FCC0) Modified: vendor/llvm/dist/lib/Target/Mips/MipsInstrFPU.td ============================================================================== --- vendor/llvm/dist/lib/Target/Mips/MipsInstrFPU.td Wed Feb 1 21:21:01 2017 (r313055) +++ vendor/llvm/dist/lib/Target/Mips/MipsInstrFPU.td Wed Feb 1 21:34:47 2017 (r313056) @@ -219,6 +219,7 @@ class BC1F_FT, HARDFLOAT { let Defs = [FCC0]; let isCodeGenOnly = 1; + let hasFCCRegOperand = 1; } + +// Note: MIPS-IV introduced $fcc1-$fcc7 and renamed FCSR31[23] $fcc0. Rather +// duplicating the instruction definition for MIPS1 - MIPS3, we expand +// c.cond.ft if necessary, and reject it after constructing the +// instruction if the ISA doesn't support it. class C_COND_FT : - InstSE<(outs), (ins RC:$fs, RC:$ft), - !strconcat("c.", CondStr, ".", Typestr, "\t$fs, $ft"), [], itin, - FrmFR>, HARDFLOAT; + InstSE<(outs FCCRegsOpnd:$fcc), (ins RC:$fs, RC:$ft), + !strconcat("c.", CondStr, ".", Typestr, "\t$fcc, $fs, $ft"), [], itin, + FrmFR>, HARDFLOAT { + let isCompare = 1; + let hasFCCRegOperand = 1; +} + multiclass C_COND_M fmt, InstrItinClass itin> { - def C_F_#NAME : C_COND_FT<"f", TypeStr, RC, itin>, C_COND_FM; - def C_UN_#NAME : C_COND_FT<"un", TypeStr, RC, itin>, C_COND_FM; - def C_EQ_#NAME : C_COND_FT<"eq", TypeStr, RC, itin>, C_COND_FM; - def C_UEQ_#NAME : C_COND_FT<"ueq", TypeStr, RC, itin>, C_COND_FM; - def C_OLT_#NAME : C_COND_FT<"olt", TypeStr, RC, itin>, C_COND_FM; - def C_ULT_#NAME : C_COND_FT<"ult", TypeStr, RC, itin>, C_COND_FM; - def C_OLE_#NAME : C_COND_FT<"ole", TypeStr, RC, itin>, C_COND_FM; - def C_ULE_#NAME : C_COND_FT<"ule", TypeStr, RC, itin>, C_COND_FM; - def C_SF_#NAME : C_COND_FT<"sf", TypeStr, RC, itin>, C_COND_FM; - def C_NGLE_#NAME : C_COND_FT<"ngle", TypeStr, RC, itin>, C_COND_FM; - def C_SEQ_#NAME : C_COND_FT<"seq", TypeStr, RC, itin>, C_COND_FM; - def C_NGL_#NAME : C_COND_FT<"ngl", TypeStr, RC, itin>, C_COND_FM; - def C_LT_#NAME : C_COND_FT<"lt", TypeStr, RC, itin>, C_COND_FM; - def C_NGE_#NAME : C_COND_FT<"nge", TypeStr, RC, itin>, C_COND_FM; - def C_LE_#NAME : C_COND_FT<"le", TypeStr, RC, itin>, C_COND_FM; - def C_NGT_#NAME : C_COND_FT<"ngt", TypeStr, RC, itin>, C_COND_FM; + def C_F_#NAME : MMRel, C_COND_FT<"f", TypeStr, RC, itin>, + C_COND_FM { + let BaseOpcode = "c.f."#NAME; + let isCommutable = 1; + } + def C_UN_#NAME : MMRel, C_COND_FT<"un", TypeStr, RC, itin>, + C_COND_FM { + let BaseOpcode = "c.un."#NAME; + let isCommutable = 1; + } + def C_EQ_#NAME : MMRel, C_COND_FT<"eq", TypeStr, RC, itin>, + C_COND_FM { + let BaseOpcode = "c.eq."#NAME; + let isCommutable = 1; + } + def C_UEQ_#NAME : MMRel, C_COND_FT<"ueq", TypeStr, RC, itin>, + C_COND_FM { + let BaseOpcode = "c.ueq."#NAME; + let isCommutable = 1; + } + def C_OLT_#NAME : MMRel, C_COND_FT<"olt", TypeStr, RC, itin>, + C_COND_FM { + let BaseOpcode = "c.olt."#NAME; + } + def C_ULT_#NAME : MMRel, C_COND_FT<"ult", TypeStr, RC, itin>, + C_COND_FM { + let BaseOpcode = "c.ult."#NAME; + } + def C_OLE_#NAME : MMRel, C_COND_FT<"ole", TypeStr, RC, itin>, + C_COND_FM { + let BaseOpcode = "c.ole."#NAME; + } + def C_ULE_#NAME : MMRel, C_COND_FT<"ule", TypeStr, RC, itin>, + C_COND_FM { + let BaseOpcode = "c.ule."#NAME; + } + def C_SF_#NAME : MMRel, C_COND_FT<"sf", TypeStr, RC, itin>, + C_COND_FM { + let BaseOpcode = "c.sf."#NAME; + let isCommutable = 1; + } + def C_NGLE_#NAME : MMRel, C_COND_FT<"ngle", TypeStr, RC, itin>, + C_COND_FM { + let BaseOpcode = "c.ngle."#NAME; + } + def C_SEQ_#NAME : MMRel, C_COND_FT<"seq", TypeStr, RC, itin>, + C_COND_FM { + let BaseOpcode = "c.seq."#NAME; + let isCommutable = 1; + } + def C_NGL_#NAME : MMRel, C_COND_FT<"ngl", TypeStr, RC, itin>, + C_COND_FM { + let BaseOpcode = "c.ngl."#NAME; + } + def C_LT_#NAME : MMRel, C_COND_FT<"lt", TypeStr, RC, itin>, + C_COND_FM { + let BaseOpcode = "c.lt."#NAME; + } + def C_NGE_#NAME : MMRel, C_COND_FT<"nge", TypeStr, RC, itin>, + C_COND_FM { + let BaseOpcode = "c.nge."#NAME; + } + def C_LE_#NAME : MMRel, C_COND_FT<"le", TypeStr, RC, itin>, + C_COND_FM { + let BaseOpcode = "c.le."#NAME; + } + def C_NGT_#NAME : MMRel, C_COND_FT<"ngt", TypeStr, RC, itin>, + C_COND_FM { + let BaseOpcode = "c.ngt."#NAME; + } } +let AdditionalPredicates = [NotInMicroMips] in { defm S : C_COND_M<"s", FGR32Opnd, 16, II_C_CC_S>, ISA_MIPS1_NOT_32R6_64R6; defm D32 : C_COND_M<"d", AFGR64Opnd, 17, II_C_CC_D>, ISA_MIPS1_NOT_32R6_64R6, FGR_32; let DecoderNamespace = "Mips64" in defm D64 : C_COND_M<"d", FGR64Opnd, 17, II_C_CC_D>, ISA_MIPS1_NOT_32R6_64R6, FGR_64; - +} //===----------------------------------------------------------------------===// // Floating Point Instructions //===----------------------------------------------------------------------===// @@ -549,13 +615,29 @@ def BC1TL : MMRel, BC1F_FT<"bc1tl", brta /// Floating Point Compare let AdditionalPredicates = [NotInMicroMips] in { def FCMP_S32 : MMRel, CEQS_FT<"s", FGR32, II_C_CC_S, MipsFPCmp>, CEQS_FM<16>, - ISA_MIPS1_NOT_32R6_64R6; + ISA_MIPS1_NOT_32R6_64R6 { + + // FIXME: This is a required to work around the fact that these instructions + // only use $fcc0. Ideally, MipsFPCmp nodes could be removed and the + // fcc register set is used directly. + bits<3> fcc = 0; + } def FCMP_D32 : MMRel, CEQS_FT<"d", AFGR64, II_C_CC_D, MipsFPCmp>, CEQS_FM<17>, - ISA_MIPS1_NOT_32R6_64R6, FGR_32; + ISA_MIPS1_NOT_32R6_64R6, FGR_32 { + // FIXME: This is a required to work around the fact that these instructions + // only use $fcc0. Ideally, MipsFPCmp nodes could be removed and the + // fcc register set is used directly. + bits<3> fcc = 0; + } } let DecoderNamespace = "Mips64" in def FCMP_D64 : CEQS_FT<"d", FGR64, II_C_CC_D, MipsFPCmp>, CEQS_FM<17>, - ISA_MIPS1_NOT_32R6_64R6, FGR_64; + ISA_MIPS1_NOT_32R6_64R6, FGR_64 { + // FIXME: This is a required to work around the fact that thiese instructions + // only use $fcc0. Ideally, MipsFPCmp nodes could be removed and the + // fcc register set is used directly. + bits<3> fcc = 0; +} //===----------------------------------------------------------------------===// // Floating Point Pseudo-Instructions @@ -602,15 +684,6 @@ def PseudoTRUNC_W_D : MipsAsmPseudoInst< //===----------------------------------------------------------------------===// // InstAliases. //===----------------------------------------------------------------------===// -def : MipsInstAlias<"bc1t $offset", (BC1T FCC0, brtarget:$offset)>, - ISA_MIPS1_NOT_32R6_64R6, HARDFLOAT; -def : MipsInstAlias<"bc1tl $offset", (BC1TL FCC0, brtarget:$offset)>, - ISA_MIPS2_NOT_32R6_64R6, HARDFLOAT; -def : MipsInstAlias<"bc1f $offset", (BC1F FCC0, brtarget:$offset)>, - ISA_MIPS1_NOT_32R6_64R6, HARDFLOAT; -def : MipsInstAlias<"bc1fl $offset", (BC1FL FCC0, brtarget:$offset)>, - ISA_MIPS2_NOT_32R6_64R6, HARDFLOAT; - def : MipsInstAlias <"s.s $fd, $addr", (SWC1 FGR32Opnd:$fd, mem_simm16:$addr), 0>, ISA_MIPS2, HARDFLOAT; @@ -630,6 +703,80 @@ def : MipsInstAlias def : MipsInstAlias <"l.d $fd, $addr", (LDC164 FGR64Opnd:$fd, mem_simm16:$addr), 0>, FGR_64, ISA_MIPS2, HARDFLOAT; + +multiclass C_COND_ALIASES { + def : MipsInstAlias("C_F_"#NAME) FCC0, + RC:$fs, RC:$ft), 1>; + def : MipsInstAlias("C_UN_"#NAME) FCC0, + RC:$fs, RC:$ft), 1>; + def : MipsInstAlias("C_EQ_"#NAME) FCC0, + RC:$fs, RC:$ft), 1>; + def : MipsInstAlias("C_UEQ_"#NAME) FCC0, + RC:$fs, RC:$ft), 1>; + def : MipsInstAlias("C_OLT_"#NAME) FCC0, + RC:$fs, RC:$ft), 1>; + def : MipsInstAlias("C_ULT_"#NAME) FCC0, + RC:$fs, RC:$ft), 1>; + def : MipsInstAlias("C_OLE_"#NAME) FCC0, + RC:$fs, RC:$ft), 1>; + def : MipsInstAlias("C_ULE_"#NAME) FCC0, + RC:$fs, RC:$ft), 1>; + def : MipsInstAlias("C_SF_"#NAME) FCC0, + RC:$fs, RC:$ft), 1>; + def : MipsInstAlias("C_NGLE_"#NAME) FCC0, + RC:$fs, RC:$ft), 1>; + def : MipsInstAlias("C_SEQ_"#NAME) FCC0, + RC:$fs, RC:$ft), 1>; + def : MipsInstAlias("C_NGL_"#NAME) FCC0, + RC:$fs, RC:$ft), 1>; + def : MipsInstAlias("C_LT_"#NAME) FCC0, + RC:$fs, RC:$ft), 1>; + def : MipsInstAlias("C_NGE_"#NAME) FCC0, + RC:$fs, RC:$ft), 1>; + def : MipsInstAlias("C_LE_"#NAME) FCC0, + RC:$fs, RC:$ft), 1>; + def : MipsInstAlias("C_NGT_"#NAME) FCC0, + RC:$fs, RC:$ft), 1>; +} + +multiclass BC1_ALIASES { + def : MipsInstAlias; + + def : MipsInstAlias; +} + +let AdditionalPredicates = [NotInMicroMips] in { + defm S : C_COND_ALIASES<"s", FGR32Opnd>, HARDFLOAT, + ISA_MIPS1_NOT_32R6_64R6; + defm D32 : C_COND_ALIASES<"d", AFGR64Opnd>, HARDFLOAT, + ISA_MIPS1_NOT_32R6_64R6, FGR_32; + defm D64 : C_COND_ALIASES<"d", FGR64Opnd>, HARDFLOAT, + ISA_MIPS1_NOT_32R6_64R6, FGR_64; + + defm : BC1_ALIASES, ISA_MIPS1_NOT_32R6_64R6, + HARDFLOAT; + defm : BC1_ALIASES, ISA_MIPS2_NOT_32R6_64R6, + HARDFLOAT; +} //===----------------------------------------------------------------------===// // Floating Point Patterns //===----------------------------------------------------------------------===// Modified: vendor/llvm/dist/lib/Target/Mips/MipsInstrFormats.td ============================================================================== --- vendor/llvm/dist/lib/Target/Mips/MipsInstrFormats.td Wed Feb 1 21:21:01 2017 (r313055) +++ vendor/llvm/dist/lib/Target/Mips/MipsInstrFormats.td Wed Feb 1 21:34:47 2017 (r313056) @@ -101,12 +101,15 @@ class MipsInst register and is + // present in MIPS-I to MIPS-III. - // TSFlags layout should be kept in sync with MipsInstrInfo.h. + // TSFlags layout should be kept in sync with MCTargetDesc/MipsBaseInfo.h. let TSFlags{3-0} = FormBits; let TSFlags{4} = isCTI; let TSFlags{5} = hasForbiddenSlot; let TSFlags{6} = IsPCRelativeLoad; + let TSFlags{7} = hasFCCRegOperand; let DecoderNamespace = "Mips"; @@ -829,6 +832,7 @@ class BC1F_FM : StdArch class CEQS_FM fmt> : StdArch { bits<5> fs; bits<5> ft; + bits<3> fcc; bits<4> cond; bits<32> Inst; @@ -837,7 +841,7 @@ class CEQS_FM fmt> : StdArch { let Inst{25-21} = fmt; let Inst{20-16} = ft; let Inst{15-11} = fs; - let Inst{10-8} = 0; // cc + let Inst{10-8} = fcc; let Inst{7-4} = 0x3; let Inst{3-0} = cond; } Modified: vendor/llvm/dist/lib/Target/Mips/MipsTargetObjectFile.cpp ============================================================================== --- vendor/llvm/dist/lib/Target/Mips/MipsTargetObjectFile.cpp Wed Feb 1 21:21:01 2017 (r313055) +++ vendor/llvm/dist/lib/Target/Mips/MipsTargetObjectFile.cpp Wed Feb 1 21:34:47 2017 (r313056) @@ -148,3 +148,11 @@ MCSection *MipsTargetObjectFile::getSect // Otherwise, we work the same as ELF. return TargetLoweringObjectFileELF::getSectionForConstant(DL, Kind, C, Align); } + +const MCExpr * +MipsTargetObjectFile::getDebugThreadLocalSymbol(const MCSymbol *Sym) const { + const MCExpr *Expr = + MCSymbolRefExpr::create(Sym, MCSymbolRefExpr::VK_None, getContext()); + return MCBinaryExpr::createAdd( + Expr, MCConstantExpr::create(0x8000, getContext()), getContext()); +} Modified: vendor/llvm/dist/lib/Target/Mips/MipsTargetObjectFile.h ============================================================================== --- vendor/llvm/dist/lib/Target/Mips/MipsTargetObjectFile.h Wed Feb 1 21:21:01 2017 (r313055) +++ vendor/llvm/dist/lib/Target/Mips/MipsTargetObjectFile.h Wed Feb 1 21:34:47 2017 (r313056) @@ -42,6 +42,8 @@ class MipsTargetMachine; MCSection *getSectionForConstant(const DataLayout &DL, SectionKind Kind, const Constant *C, unsigned &Align) const override; + /// Describe a TLS variable address within debug info. + const MCExpr *getDebugThreadLocalSymbol(const MCSymbol *Sym) const override; }; } // end namespace llvm Modified: vendor/llvm/dist/lib/Target/PowerPC/PPCInstrInfo.td ============================================================================== --- vendor/llvm/dist/lib/Target/PowerPC/PPCInstrInfo.td Wed Feb 1 21:21:01 2017 (r313055) +++ vendor/llvm/dist/lib/Target/PowerPC/PPCInstrInfo.td Wed Feb 1 21:34:47 2017 (r313056) @@ -1508,8 +1508,14 @@ def DCBTST : DCB_Form_hint<246, (outs), PPC970_DGroup_Single; } // hasSideEffects = 0 +def ICBLC : XForm_icbt<31, 230, (outs), (ins u4imm:$CT, memrr:$src), + "icblc $CT, $src", IIC_LdStStore>, Requires<[HasICBT]>; +def ICBLQ : XForm_icbt<31, 198, (outs), (ins u4imm:$CT, memrr:$src), + "icblq. $CT, $src", IIC_LdStLoad>, Requires<[HasICBT]>; def ICBT : XForm_icbt<31, 22, (outs), (ins u4imm:$CT, memrr:$src), "icbt $CT, $src", IIC_LdStLoad>, Requires<[HasICBT]>; +def ICBTLS : XForm_icbt<31, 486, (outs), (ins u4imm:$CT, memrr:$src), + "icbtls $CT, $src", IIC_LdStLoad>, Requires<[HasICBT]>; def : Pat<(int_ppc_dcbt xoaddr:$dst), (DCBT 0, xoaddr:$dst)>; @@ -2381,6 +2387,13 @@ def MTSPR : XFXForm_1<31, 467, (outs), ( def MFTB : XFXForm_1<31, 371, (outs gprc:$RT), (ins i32imm:$SPR), "mftb $RT, $SPR", IIC_SprMFTB>; +def MFPMR : XFXForm_1<31, 334, (outs gprc:$RT), (ins i32imm:$SPR), + "mfpmr $RT, $SPR", IIC_SprMFPMR>; + +def MTPMR : XFXForm_1<31, 462, (outs), (ins i32imm:$SPR, gprc:$RT), + "mtpmr $SPR, $RT", IIC_SprMTPMR>; + + // A pseudo-instruction used to implement the read of the 64-bit cycle counter // on a 32-bit target. let hasSideEffects = 1, usesCustomInserter = 1 in Modified: vendor/llvm/dist/lib/Target/PowerPC/PPCSchedule.td ============================================================================== --- vendor/llvm/dist/lib/Target/PowerPC/PPCSchedule.td Wed Feb 1 21:21:01 2017 (r313055) +++ vendor/llvm/dist/lib/Target/PowerPC/PPCSchedule.td Wed Feb 1 21:34:47 2017 (r313056) @@ -118,6 +118,8 @@ def IIC_SprTLBIE : InstrItinClass; def IIC_SprABORT : InstrItinClass; def IIC_SprMSGSYNC : InstrItinClass; def IIC_SprSTOP : InstrItinClass; +def IIC_SprMFPMR : InstrItinClass; +def IIC_SprMTPMR : InstrItinClass; //===----------------------------------------------------------------------===// // Processor instruction itineraries. Modified: vendor/llvm/dist/lib/Target/PowerPC/PPCScheduleE500mc.td ============================================================================== --- vendor/llvm/dist/lib/Target/PowerPC/PPCScheduleE500mc.td Wed Feb 1 21:21:01 2017 (r313055) +++ vendor/llvm/dist/lib/Target/PowerPC/PPCScheduleE500mc.td Wed Feb 1 21:34:47 2017 (r313056) @@ -249,6 +249,10 @@ def PPCE500mcItineraries : ProcessorItin InstrStage<5, [E500_SFX0]>], [8, 1], [E500_GPR_Bypass, E500_CR_Bypass]>, + InstrItinData, + InstrStage<4, [E500_SFX0]>], + [7, 1], // Latency = 4, Repeat rate = 4 + [E500_GPR_Bypass, E500_GPR_Bypass]>, InstrItinData, InstrStage<4, [E500_SFX0]>], [7, 1], // Latency = 4, Repeat rate = 4 @@ -257,6 +261,10 @@ def PPCE500mcItineraries : ProcessorItin InstrStage<1, [E500_SFX0, E500_SFX1]>], [4, 1], // Latency = 1, Repeat rate = 1 [E500_GPR_Bypass, E500_CR_Bypass]>, + InstrItinData, + InstrStage<1, [E500_SFX0]>], + [4, 1], // Latency = 1, Repeat rate = 1 + [E500_CR_Bypass, E500_GPR_Bypass]>, InstrItinData, InstrStage<4, [E500_SFX0]>], [7, 1], // Latency = 4, Repeat rate = 4 Modified: vendor/llvm/dist/lib/Target/PowerPC/PPCScheduleE5500.td ============================================================================== --- vendor/llvm/dist/lib/Target/PowerPC/PPCScheduleE5500.td Wed Feb 1 21:21:01 2017 (r313055) +++ vendor/llvm/dist/lib/Target/PowerPC/PPCScheduleE5500.td Wed Feb 1 21:34:47 2017 (r313056) @@ -313,20 +313,24 @@ def PPCE5500Itineraries : ProcessorItine InstrStage<5, [E5500_CFX_0]>], [9, 2], // Latency = 5, Repeat rate = 5 [E5500_GPR_Bypass, E5500_CR_Bypass]>, - InstrItinData, - InstrStage<4, [E5500_SFX0]>], + InstrItinData, + InstrStage<4, [E5500_CFX_0]>], [8, 2], // Latency = 4, Repeat rate = 4 [E5500_GPR_Bypass, E5500_GPR_Bypass]>, InstrItinData, InstrStage<1, [E5500_CFX_0]>], [5], // Latency = 1, Repeat rate = 1 [E5500_GPR_Bypass]>, + InstrItinData, + InstrStage<1, [E5500_CFX_0]>], + [5], // Latency = 1, Repeat rate = 1 + [E5500_GPR_Bypass]>, InstrItinData, InstrStage<4, [E5500_CFX_0]>], [8, 2], // Latency = 4, Repeat rate = 4 [NoBypass, E5500_GPR_Bypass]>, InstrItinData, - InstrStage<1, [E5500_SFX0, E5500_SFX1]>], + InstrStage<1, [E5500_CFX_0]>], [5], // Latency = 1, Repeat rate = 1 [E5500_GPR_Bypass]>, InstrItinData, Modified: vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineCompares.cpp ============================================================================== --- vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineCompares.cpp Wed Feb 1 21:21:01 2017 (r313055) +++ vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineCompares.cpp Wed Feb 1 21:34:47 2017 (r313056) @@ -884,6 +884,10 @@ static Instruction *transformToIndexedCo if (!GEPLHS->hasAllConstantIndices()) return nullptr; + // Make sure the pointers have the same type. + if (GEPLHS->getType() != RHS->getType()) + return nullptr; + Value *PtrBase, *Index; std::tie(PtrBase, Index) = getAsConstantIndexedAddress(GEPLHS, DL); Modified: vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp ============================================================================== --- vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp Wed Feb 1 21:21:01 2017 (r313055) +++ vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp Wed Feb 1 21:34:47 2017 (r313056) @@ -502,7 +502,8 @@ static Instruction *combineLoadToOperati !DL.isNonIntegralPointerType(Ty)) { if (all_of(LI.users(), [&LI](User *U) { auto *SI = dyn_cast(U); - return SI && SI->getPointerOperand() != &LI; + return SI && SI->getPointerOperand() != &LI && + !SI->getPointerOperand()->isSwiftError(); })) { LoadInst *NewLoad = combineLoadToNewType( IC, LI, Modified: vendor/llvm/dist/lib/Transforms/Scalar/SCCP.cpp ============================================================================== --- vendor/llvm/dist/lib/Transforms/Scalar/SCCP.cpp Wed Feb 1 21:21:01 2017 (r313055) +++ vendor/llvm/dist/lib/Transforms/Scalar/SCCP.cpp Wed Feb 1 21:34:47 2017 (r313056) @@ -1705,7 +1705,10 @@ static bool runIPSCCP(Module &M, const D // If this is an exact definition of this function, then we can propagate // information about its result into callsites of it. - if (F.hasExactDefinition()) + // Don't touch naked functions. They may contain asm returning a + // value we don't see, so we may end up interprocedurally propagating + // the return value incorrectly. + if (F.hasExactDefinition() && !F.hasFnAttribute(Attribute::Naked)) Solver.AddTrackedFunction(&F); // If this function only has direct calls that we can see, we can track its Added: vendor/llvm/dist/test/CodeGen/SystemZ/pr31710.ll ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/llvm/dist/test/CodeGen/SystemZ/pr31710.ll Wed Feb 1 21:34:47 2017 (r313056) @@ -0,0 +1,39 @@ +; RUN: llc < %s -mtriple=s390x-redhat-linux | FileCheck %s +; +; Triggers a path in SelectionDAG's UpdateChains where a node is +; deleted but we try to read it later (pr31710), invoking UB in +; release mode or hitting an assert if they're enabled. + +; CHECK: btldata: +define void @btldata(i64* %u0, i32** %p0, i32** %p1, i32** %p3, i32** %p5, i32** %p7) { +entry: + %x0 = load i32*, i32** %p0, align 8, !tbaa !0 + store i64 0, i64* %u0, align 8, !tbaa !4 + %x1 = load i32*, i32** %p1, align 8, !tbaa !0 + %x2 = load i32, i32* %x1, align 4, !tbaa !6 + %x2ext = sext i32 %x2 to i64 + store i32 %x2, i32* %x1, align 4, !tbaa !6 + %x3 = load i32*, i32** %p3, align 8, !tbaa !0 + %ptr = getelementptr inbounds i32, i32* %x3, i64 %x2ext + %x4 = load i32, i32* %ptr, align 4, !tbaa !6 + %x4inc = add nsw i32 %x4, 1 + store i32 %x4inc, i32* %ptr, align 4, !tbaa !6 + store i64 undef, i64* %u0, align 8, !tbaa !4 + %x5 = load i32*, i32** %p5, align 8, !tbaa !0 + %x6 = load i32, i32* %x5, align 4, !tbaa !6 + store i32 %x6, i32* %x5, align 4, !tbaa !6 + %x7 = load i32*, i32** %p7, align 8, !tbaa !0 + %x8 = load i32, i32* %x7, align 4, !tbaa !6 + %x8inc = add nsw i32 %x8, 1 + store i32 %x8inc, i32* %x7, align 4, !tbaa !6 + ret void +} + +!0 = !{!1, !1, i64 0} +!1 = !{!"any pointer", !2, i64 0} +!2 = !{!"omnipotent char", !3, i64 0} +!3 = !{!"Simple C/C++ TBAA"} +!4 = !{!5, !5, i64 0} +!5 = !{!"long", !2, i64 0} +!6 = !{!7, !7, i64 0} +!7 = !{!"int", !2, i64 0} Added: vendor/llvm/dist/test/DebugInfo/Mips/tls.ll ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/llvm/dist/test/DebugInfo/Mips/tls.ll Wed Feb 1 21:34:47 2017 (r313056) @@ -0,0 +1,22 @@ +; RUN: llc -O0 -march=mips -mcpu=mips32r2 -filetype=asm < %s | FileCheck %s -check-prefix=CHECK-WORD +; RUN: llc -O0 -march=mips64 -mcpu=mips64r2 -filetype=asm < %s | FileCheck %s -check-prefix=CHECK-DWORD + +@x = thread_local global i32 5, align 4, !dbg !0 + +; CHECK-WORD: .dtprelword x+32768 +; CHECK-DWORD: .dtpreldword x+32768 + +!llvm.dbg.cu = !{!2} +!llvm.module.flags = !{!7, !8} +!llvm.ident = !{!9} + +!0 = !DIGlobalVariableExpression(var: !1) +!1 = distinct !DIGlobalVariable(name: "x", scope: !2, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true) +!2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 4.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5) +!3 = !DIFile(filename: "tls.c", directory: "/tmp") +!4 = !{} +!5 = !{!0} +!6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!7 = !{i32 2, !"Dwarf Version", i32 4} +!8 = !{i32 2, !"Debug Info Version", i32 3} +!9 = !{!"clang version 4.0.0"} Modified: vendor/llvm/dist/test/MC/Disassembler/PowerPC/ppc64-encoding-bookIII.txt ============================================================================== --- vendor/llvm/dist/test/MC/Disassembler/PowerPC/ppc64-encoding-bookIII.txt Wed Feb 1 21:21:01 2017 (r313055) +++ vendor/llvm/dist/test/MC/Disassembler/PowerPC/ppc64-encoding-bookIII.txt Wed Feb 1 21:34:47 2017 (r313056) @@ -134,3 +134,12 @@ 0x7c 0x0b 0x66 0x24 # CHECK: tlbsx 11, 12 0x7c 0x0b 0x67 0x24 + +# CHECK: mfpmr 5, 400 +0x7c 0xb0 0x62 0x9c +# CHECK: mtpmr 400, 6 +0x7c 0xd0 0x63 0x9c +# CHECK: icblc 0, 0, 8 +0x7c 0x00 0x41 0xcc +# CHECK: icbtls 0, 0, 9 +0x7c 0x00 0x4b 0xcc Added: vendor/llvm/dist/test/MC/MachO/ARM/no-tls-assert.ll ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/llvm/dist/test/MC/MachO/ARM/no-tls-assert.ll Wed Feb 1 21:34:47 2017 (r313056) @@ -0,0 +1,28 @@ +; RUN: llc -filetype=obj -o - %s | llvm-objdump -section-headers - | FileCheck %s +; This should not trigger the "Creating regular section after DWARF" assert. +; CHECK: __text +; CHECK: __thread_ptr 00000004 +target triple = "thumbv7-apple-ios9.0.0" + +@b = external thread_local global i32 +define i32* @func(i32 %a) !dbg !9 { + ret i32* @b +} + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!3, !4, !5, !6, !7} + +!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +!1 = !DIFile(filename: "r.ii", directory: "/") +!2 = !{} +!3 = !{i32 2, !"Dwarf Version", i32 4} +!4 = !{i32 2, !"Debug Info Version", i32 3} +!5 = !{i32 1, !"wchar_size", i32 4} +!6 = !{i32 1, !"min_enum_size", i32 4} +!7 = !{i32 1, !"PIC Level", i32 2} +!9 = distinct !DISubprogram(name: "func", scope: !1, file: !1, line: 4, type: !10, isLocal: false, isDefinition: true, scopeLine: 4, flags: DIFlagPrototyped, isOptimized: false, unit: !0, variables: !2) +!10 = !DISubroutineType(types: !11) +!11 = !{null, !12} +!12 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!13 = !DILocalVariable(name: "a", arg: 1, scope: !9, file: !1, line: 4, type: !12) +!14 = !DIExpression() Modified: vendor/llvm/dist/test/MC/Mips/micromips/valid.s ============================================================================== --- vendor/llvm/dist/test/MC/Mips/micromips/valid.s Wed Feb 1 21:21:01 2017 (r313055) +++ vendor/llvm/dist/test/MC/Mips/micromips/valid.s Wed Feb 1 21:34:47 2017 (r313056) @@ -210,6 +210,42 @@ recip.s $f2, $f4 # CHECK: rec recip.d $f2, $f4 # CHECK: recip.d $f2, $f4 # encoding: [0x54,0x44,0x52,0x3b] rsqrt.s $f3, $f5 # CHECK: rsqrt.s $f3, $f5 # encoding: [0x54,0x65,0x02,0x3b] rsqrt.d $f2, $f4 # CHECK: rsqrt.d $f2, $f4 # encoding: [0x54,0x44,0x42,0x3b] +c.eq.d $fcc1, $f14, $f14 # CHECK: c.eq.d $fcc1, $f14, $f14 # encoding: [0x55,0xce,0x24,0xbc] +c.eq.s $fcc5, $f24, $f17 # CHECK: c.eq.s $fcc5, $f24, $f17 # encoding: [0x56,0x38,0xa0,0xbc] +c.f.d $fcc4, $f10, $f20 # CHECK: c.f.d $fcc4, $f10, $f20 # encoding: [0x56,0x8a,0x84,0x3c] +c.f.s $fcc4, $f30, $f7 # CHECK: c.f.s $fcc4, $f30, $f7 # encoding: [0x54,0xfe,0x80,0x3c] +c.le.d $fcc4, $f18, $f0 # CHECK: c.le.d $fcc4, $f18, $f0 # encoding: [0x54,0x12,0x87,0xbc] +c.le.s $fcc6, $f24, $f4 # CHECK: c.le.s $fcc6, $f24, $f4 # encoding: [0x54,0x98,0xc3,0xbc] *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-vendor@freebsd.org Wed Feb 1 21:34:56 2017 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A37A4CCCDEB; Wed, 1 Feb 2017 21:34:56 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5944BC11; Wed, 1 Feb 2017 21:34:56 +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 v11LYt7b099822; Wed, 1 Feb 2017 21:34:55 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v11LYtmk099821; Wed, 1 Feb 2017 21:34:55 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201702012134.v11LYtmk099821@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 1 Feb 2017 21:34:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r313057 - vendor/llvm/llvm-release_40-r293807 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 Feb 2017 21:34:56 -0000 Author: dim Date: Wed Feb 1 21:34:55 2017 New Revision: 313057 URL: https://svnweb.freebsd.org/changeset/base/313057 Log: Tag llvm release_40 branch r293807. Added: vendor/llvm/llvm-release_40-r293807/ - copied from r313056, vendor/llvm/dist/ From owner-svn-src-vendor@freebsd.org Wed Feb 1 21:35:04 2017 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 052A6CCCE43; Wed, 1 Feb 2017 21:35:04 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id AFE18CAA; Wed, 1 Feb 2017 21:35:03 +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 v11LZ2Z1099907; Wed, 1 Feb 2017 21:35:02 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v11LZ1XP099890; Wed, 1 Feb 2017 21:35:01 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201702012135.v11LZ1XP099890@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 1 Feb 2017 21:35:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r313058 - in vendor/clang/dist: include/clang/AST include/clang/Basic include/clang/Sema lib/AST lib/CodeGen lib/Sema test/CodeGenCXX test/CodeGenObjC test/Sema test/Sema/Inputs test/Se... X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 Feb 2017 21:35:04 -0000 Author: dim Date: Wed Feb 1 21:35:00 2017 New Revision: 313058 URL: https://svnweb.freebsd.org/changeset/base/313058 Log: Vendor import of clang release_40 branch r293807: https://llvm.org/svn/llvm-project/cfe/branches/release_40@293807 Added: vendor/clang/dist/test/CodeGenObjC/block-ptr-type-crash.m vendor/clang/dist/test/Sema/Inputs/diagnose-if-warn-system-header.h (contents, props changed) Modified: vendor/clang/dist/include/clang/AST/Type.h vendor/clang/dist/include/clang/Basic/DiagnosticSemaKinds.td vendor/clang/dist/include/clang/Sema/Overload.h vendor/clang/dist/include/clang/Sema/Sema.h vendor/clang/dist/lib/AST/ExprConstant.cpp vendor/clang/dist/lib/CodeGen/CodeGenTypes.cpp vendor/clang/dist/lib/Sema/SemaChecking.cpp vendor/clang/dist/lib/Sema/SemaExpr.cpp vendor/clang/dist/lib/Sema/SemaExprCXX.cpp vendor/clang/dist/lib/Sema/SemaLookup.cpp vendor/clang/dist/lib/Sema/SemaOverload.cpp vendor/clang/dist/lib/Sema/SemaTemplateInstantiateDecl.cpp vendor/clang/dist/lib/Sema/TreeTransform.h vendor/clang/dist/test/CodeGenCXX/microsoft-abi-default-cc.cpp vendor/clang/dist/test/CodeGenObjC/encode-test.m vendor/clang/dist/test/Sema/diagnose_if.c vendor/clang/dist/test/SemaCXX/destructor.cpp vendor/clang/dist/test/SemaCXX/diagnose_if.cpp Modified: vendor/clang/dist/include/clang/AST/Type.h ============================================================================== --- vendor/clang/dist/include/clang/AST/Type.h Wed Feb 1 21:34:55 2017 (r313057) +++ vendor/clang/dist/include/clang/AST/Type.h Wed Feb 1 21:35:00 2017 (r313058) @@ -3827,13 +3827,13 @@ private: friend class ASTContext; // creates these - AttributedType(QualType canon, Kind attrKind, - QualType modified, QualType equivalent) - : Type(Attributed, canon, canon->isDependentType(), - canon->isInstantiationDependentType(), - canon->isVariablyModifiedType(), - canon->containsUnexpandedParameterPack()), - ModifiedType(modified), EquivalentType(equivalent) { + AttributedType(QualType canon, Kind attrKind, QualType modified, + QualType equivalent) + : Type(Attributed, canon, equivalent->isDependentType(), + equivalent->isInstantiationDependentType(), + equivalent->isVariablyModifiedType(), + equivalent->containsUnexpandedParameterPack()), + ModifiedType(modified), EquivalentType(equivalent) { AttributedTypeBits.AttrKind = attrKind; } Modified: vendor/clang/dist/include/clang/Basic/DiagnosticSemaKinds.td ============================================================================== --- vendor/clang/dist/include/clang/Basic/DiagnosticSemaKinds.td Wed Feb 1 21:34:55 2017 (r313057) +++ vendor/clang/dist/include/clang/Basic/DiagnosticSemaKinds.td Wed Feb 1 21:35:00 2017 (r313058) @@ -3373,7 +3373,8 @@ def note_ovl_candidate_has_pass_object_s "candidate address cannot be taken because parameter %0 has " "pass_object_size attribute">; def err_diagnose_if_succeeded : Error<"%0">; -def warn_diagnose_if_succeeded : Warning<"%0">, InGroup; +def warn_diagnose_if_succeeded : Warning<"%0">, InGroup, + ShowInSystemHeader; def note_ovl_candidate_disabled_by_function_cond_attr : Note< "candidate disabled: %0">; def note_ovl_candidate_disabled_by_extension : Note< Modified: vendor/clang/dist/include/clang/Sema/Overload.h ============================================================================== --- vendor/clang/dist/include/clang/Sema/Overload.h Wed Feb 1 21:34:55 2017 (r313057) +++ vendor/clang/dist/include/clang/Sema/Overload.h Wed Feb 1 21:35:00 2017 (r313058) @@ -675,26 +675,6 @@ namespace clang { /// to be used while performing partial ordering of function templates. unsigned ExplicitCallArguments; - /// The number of diagnose_if attributes that this overload triggered. - /// If any of the triggered attributes are errors, this won't count - /// diagnose_if warnings. - unsigned NumTriggeredDiagnoseIfs = 0; - - /// Basically a TinyPtrVector that doesn't own the vector: - /// If NumTriggeredDiagnoseIfs is 0 or 1, this is a DiagnoseIfAttr *, - /// otherwise it's a pointer to an array of `NumTriggeredDiagnoseIfs` - /// DiagnoseIfAttr *s. - llvm::PointerUnion DiagnoseIfInfo; - - /// Gets an ArrayRef for the data at DiagnoseIfInfo. Note that this may give - /// you a pointer into DiagnoseIfInfo. - ArrayRef getDiagnoseIfInfo() const { - auto *Ptr = NumTriggeredDiagnoseIfs <= 1 - ? DiagnoseIfInfo.getAddrOfPtr1() - : DiagnoseIfInfo.get(); - return {Ptr, NumTriggeredDiagnoseIfs}; - } - union { DeductionFailureInfo DeductionFailure; @@ -759,9 +739,8 @@ namespace clang { SmallVector Candidates; llvm::SmallPtrSet Functions; - // Allocator for ConversionSequenceLists and DiagnoseIfAttr* arrays. - // We store the first few of each of these inline to avoid allocation for - // small sets. + // Allocator for ConversionSequenceLists. We store the first few of these + // inline to avoid allocation for small sets. llvm::BumpPtrAllocator SlabAllocator; SourceLocation Loc; @@ -776,6 +755,8 @@ namespace clang { /// from the slab allocator. /// FIXME: It would probably be nice to have a SmallBumpPtrAllocator /// instead. + /// FIXME: Now that this only allocates ImplicitConversionSequences, do we + /// want to un-generalize this? template T *slabAllocate(unsigned N) { // It's simpler if this doesn't need to consider alignment. @@ -809,11 +790,6 @@ namespace clang { SourceLocation getLocation() const { return Loc; } CandidateSetKind getKind() const { return Kind; } - /// Make a DiagnoseIfAttr* array in a block of memory that will live for - /// as long as this OverloadCandidateSet. Returns a pointer to the start - /// of that array. - DiagnoseIfAttr **addDiagnoseIfComplaints(ArrayRef CA); - /// \brief Determine when this overload candidate will be new to the /// overload set. bool isNewCandidate(Decl *F) { Modified: vendor/clang/dist/include/clang/Sema/Sema.h ============================================================================== --- vendor/clang/dist/include/clang/Sema/Sema.h Wed Feb 1 21:34:55 2017 (r313057) +++ vendor/clang/dist/include/clang/Sema/Sema.h Wed Feb 1 21:35:00 2017 (r313058) @@ -2532,14 +2532,14 @@ public: void AddMethodCandidate(DeclAccessPair FoundDecl, QualType ObjectType, Expr::Classification ObjectClassification, - Expr *ThisArg, ArrayRef Args, + ArrayRef Args, OverloadCandidateSet& CandidateSet, bool SuppressUserConversion = false); void AddMethodCandidate(CXXMethodDecl *Method, DeclAccessPair FoundDecl, CXXRecordDecl *ActingContext, QualType ObjectType, Expr::Classification ObjectClassification, - Expr *ThisArg, ArrayRef Args, + ArrayRef Args, OverloadCandidateSet& CandidateSet, bool SuppressUserConversions = false, bool PartialOverloading = false, @@ -2550,7 +2550,6 @@ public: TemplateArgumentListInfo *ExplicitTemplateArgs, QualType ObjectType, Expr::Classification ObjectClassification, - Expr *ThisArg, ArrayRef Args, OverloadCandidateSet& CandidateSet, bool SuppressUserConversions = false, @@ -2624,37 +2623,27 @@ public: EnableIfAttr *CheckEnableIf(FunctionDecl *Function, ArrayRef Args, bool MissingImplicitThis = false); - /// Check the diagnose_if attributes on the given function. Returns the - /// first succesful fatal attribute, or null if calling Function(Args) isn't - /// an error. - /// - /// This only considers ArgDependent DiagnoseIfAttrs. - /// - /// This will populate Nonfatal with all non-error DiagnoseIfAttrs that - /// succeed. If this function returns non-null, the contents of Nonfatal are - /// unspecified. - DiagnoseIfAttr * - checkArgDependentDiagnoseIf(FunctionDecl *Function, ArrayRef Args, - SmallVectorImpl &Nonfatal, - bool MissingImplicitThis = false, - Expr *ThisArg = nullptr); - - /// Check the diagnose_if expressions on the given function. Returns the - /// first succesful fatal attribute, or null if using Function isn't - /// an error. - /// - /// This ignores all ArgDependent DiagnoseIfAttrs. - /// - /// This will populate Nonfatal with all non-error DiagnoseIfAttrs that - /// succeed. If this function returns non-null, the contents of Nonfatal are - /// unspecified. - DiagnoseIfAttr * - checkArgIndependentDiagnoseIf(FunctionDecl *Function, - SmallVectorImpl &Nonfatal); - - /// Emits the diagnostic contained in the given DiagnoseIfAttr at Loc. Also - /// emits a note about the location of said attribute. - void emitDiagnoseIfDiagnostic(SourceLocation Loc, const DiagnoseIfAttr *DIA); + /// Emit diagnostics for the diagnose_if attributes on Function, ignoring any + /// non-ArgDependent DiagnoseIfAttrs. + /// + /// Argument-dependent diagnose_if attributes should be checked each time a + /// function is used as a direct callee of a function call. + /// + /// Returns true if any errors were emitted. + bool diagnoseArgDependentDiagnoseIfAttrs(const FunctionDecl *Function, + const Expr *ThisArg, + ArrayRef Args, + SourceLocation Loc); + + /// Emit diagnostics for the diagnose_if attributes on Function, ignoring any + /// ArgDependent DiagnoseIfAttrs. + /// + /// Argument-independent diagnose_if attributes should be checked on every use + /// of a function. + /// + /// Returns true if any errors were emitted. + bool diagnoseArgIndependentDiagnoseIfAttrs(const FunctionDecl *Function, + SourceLocation Loc); /// Returns whether the given function's address can be taken or not, /// optionally emitting a diagnostic if the address can't be taken. @@ -9914,8 +9903,8 @@ private: SourceLocation Loc); void checkCall(NamedDecl *FDecl, const FunctionProtoType *Proto, - ArrayRef Args, bool IsMemberFunction, - SourceLocation Loc, SourceRange Range, + const Expr *ThisArg, ArrayRef Args, + bool IsMemberFunction, SourceLocation Loc, SourceRange Range, VariadicCallType CallType); bool CheckObjCString(Expr *Arg); Modified: vendor/clang/dist/lib/AST/ExprConstant.cpp ============================================================================== --- vendor/clang/dist/lib/AST/ExprConstant.cpp Wed Feb 1 21:34:55 2017 (r313057) +++ vendor/clang/dist/lib/AST/ExprConstant.cpp Wed Feb 1 21:35:00 2017 (r313058) @@ -2362,7 +2362,14 @@ static unsigned getBaseIndex(const CXXRe /// Extract the value of a character from a string literal. static APSInt extractStringLiteralCharacter(EvalInfo &Info, const Expr *Lit, uint64_t Index) { - // FIXME: Support ObjCEncodeExpr, MakeStringConstant + // FIXME: Support MakeStringConstant + if (const auto *ObjCEnc = dyn_cast(Lit)) { + std::string Str; + Info.Ctx.getObjCEncodingForType(ObjCEnc->getEncodedType(), Str); + assert(Index <= Str.size() && "Index too large"); + return APSInt::getUnsigned(Str.c_str()[Index]); + } + if (auto PE = dyn_cast(Lit)) Lit = PE->getFunctionName(); const StringLiteral *S = cast(Lit); Modified: vendor/clang/dist/lib/CodeGen/CodeGenTypes.cpp ============================================================================== --- vendor/clang/dist/lib/CodeGen/CodeGenTypes.cpp Wed Feb 1 21:34:55 2017 (r313057) +++ vendor/clang/dist/lib/CodeGen/CodeGenTypes.cpp Wed Feb 1 21:35:00 2017 (r313058) @@ -737,7 +737,7 @@ CodeGenTypes::getCGRecordLayout(const Re } bool CodeGenTypes::isPointerZeroInitializable(QualType T) { - assert (T->isAnyPointerType() && "Invalid type"); + assert((T->isAnyPointerType() || T->isBlockPointerType()) && "Invalid type"); return isZeroInitializable(T); } Modified: vendor/clang/dist/lib/Sema/SemaChecking.cpp ============================================================================== --- vendor/clang/dist/lib/Sema/SemaChecking.cpp Wed Feb 1 21:34:55 2017 (r313057) +++ vendor/clang/dist/lib/Sema/SemaChecking.cpp Wed Feb 1 21:35:00 2017 (r313058) @@ -2426,11 +2426,12 @@ static void CheckNonNullArguments(Sema & } /// Handles the checks for format strings, non-POD arguments to vararg -/// functions, and NULL arguments passed to non-NULL parameters. +/// functions, NULL arguments passed to non-NULL parameters, and diagnose_if +/// attributes. void Sema::checkCall(NamedDecl *FDecl, const FunctionProtoType *Proto, - ArrayRef Args, bool IsMemberFunction, - SourceLocation Loc, SourceRange Range, - VariadicCallType CallType) { + const Expr *ThisArg, ArrayRef Args, + bool IsMemberFunction, SourceLocation Loc, + SourceRange Range, VariadicCallType CallType) { // FIXME: We should check as much as we can in the template definition. if (CurContext->isDependentContext()) return; @@ -2477,6 +2478,9 @@ void Sema::checkCall(NamedDecl *FDecl, c CheckArgumentWithTypeTag(I, Args.data()); } } + + if (FD) + diagnoseArgDependentDiagnoseIfAttrs(FD, ThisArg, Args, Loc); } /// CheckConstructorCall - Check a constructor call for correctness and safety @@ -2487,8 +2491,8 @@ void Sema::CheckConstructorCall(Function SourceLocation Loc) { VariadicCallType CallType = Proto->isVariadic() ? VariadicConstructor : VariadicDoesNotApply; - checkCall(FDecl, Proto, Args, /*IsMemberFunction=*/true, Loc, SourceRange(), - CallType); + checkCall(FDecl, Proto, /*ThisArg=*/nullptr, Args, /*IsMemberFunction=*/true, + Loc, SourceRange(), CallType); } /// CheckFunctionCall - Check a direct function call for various correctness @@ -2503,14 +2507,20 @@ bool Sema::CheckFunctionCall(FunctionDec TheCall->getCallee()); Expr** Args = TheCall->getArgs(); unsigned NumArgs = TheCall->getNumArgs(); + + Expr *ImplicitThis = nullptr; if (IsMemberOperatorCall) { // If this is a call to a member operator, hide the first argument // from checkCall. // FIXME: Our choice of AST representation here is less than ideal. + ImplicitThis = Args[0]; ++Args; --NumArgs; - } - checkCall(FDecl, Proto, llvm::makeArrayRef(Args, NumArgs), + } else if (IsMemberFunction) + ImplicitThis = + cast(TheCall)->getImplicitObjectArgument(); + + checkCall(FDecl, Proto, ImplicitThis, llvm::makeArrayRef(Args, NumArgs), IsMemberFunction, TheCall->getRParenLoc(), TheCall->getCallee()->getSourceRange(), CallType); @@ -2546,8 +2556,8 @@ bool Sema::CheckObjCMethodCall(ObjCMetho VariadicCallType CallType = Method->isVariadic() ? VariadicMethod : VariadicDoesNotApply; - checkCall(Method, nullptr, Args, - /*IsMemberFunction=*/false, lbrac, Method->getSourceRange(), + checkCall(Method, nullptr, /*ThisArg=*/nullptr, Args, + /*IsMemberFunction=*/false, lbrac, Method->getSourceRange(), CallType); return false; @@ -2576,7 +2586,7 @@ bool Sema::CheckPointerCall(NamedDecl *N CallType = VariadicFunction; } - checkCall(NDecl, Proto, + checkCall(NDecl, Proto, /*ThisArg=*/nullptr, llvm::makeArrayRef(TheCall->getArgs(), TheCall->getNumArgs()), /*IsMemberFunction=*/false, TheCall->getRParenLoc(), TheCall->getCallee()->getSourceRange(), CallType); @@ -2589,7 +2599,7 @@ bool Sema::CheckPointerCall(NamedDecl *N bool Sema::CheckOtherCall(CallExpr *TheCall, const FunctionProtoType *Proto) { VariadicCallType CallType = getVariadicCallType(/*FDecl=*/nullptr, Proto, TheCall->getCallee()); - checkCall(/*FDecl=*/nullptr, Proto, + checkCall(/*FDecl=*/nullptr, Proto, /*ThisArg=*/nullptr, llvm::makeArrayRef(TheCall->getArgs(), TheCall->getNumArgs()), /*IsMemberFunction=*/false, TheCall->getRParenLoc(), TheCall->getCallee()->getSourceRange(), CallType); Modified: vendor/clang/dist/lib/Sema/SemaExpr.cpp ============================================================================== --- vendor/clang/dist/lib/Sema/SemaExpr.cpp Wed Feb 1 21:34:55 2017 (r313057) +++ vendor/clang/dist/lib/Sema/SemaExpr.cpp Wed Feb 1 21:35:00 2017 (r313058) @@ -342,7 +342,6 @@ bool Sema::DiagnoseUseOfDecl(NamedDecl * } // See if this is a deleted function. - SmallVector DiagnoseIfWarnings; if (FunctionDecl *FD = dyn_cast(D)) { if (FD->isDeleted()) { auto *Ctor = dyn_cast(FD); @@ -365,11 +364,8 @@ bool Sema::DiagnoseUseOfDecl(NamedDecl * if (getLangOpts().CUDA && !CheckCUDACall(Loc, FD)) return true; - if (const DiagnoseIfAttr *A = - checkArgIndependentDiagnoseIf(FD, DiagnoseIfWarnings)) { - emitDiagnoseIfDiagnostic(Loc, A); + if (diagnoseArgIndependentDiagnoseIfAttrs(FD, Loc)) return true; - } } // [OpenMP 4.0], 2.15 declare reduction Directive, Restrictions @@ -385,9 +381,6 @@ bool Sema::DiagnoseUseOfDecl(NamedDecl * return true; } - for (const auto *W : DiagnoseIfWarnings) - emitDiagnoseIfDiagnostic(Loc, W); - DiagnoseAvailabilityOfDecl(*this, D, Loc, UnknownObjCClass, ObjCPropertyAccess); @@ -5189,16 +5182,6 @@ static void checkDirectCallValidity(Sema << Attr->getCond()->getSourceRange() << Attr->getMessage(); return; } - - SmallVector Nonfatal; - if (const DiagnoseIfAttr *Attr = S.checkArgDependentDiagnoseIf( - Callee, ArgExprs, Nonfatal, /*MissingImplicitThis=*/true)) { - S.emitDiagnoseIfDiagnostic(Fn->getLocStart(), Attr); - return; - } - - for (const auto *W : Nonfatal) - S.emitDiagnoseIfDiagnostic(Fn->getLocStart(), W); } /// ActOnCallExpr - Handle a call to Fn with the specified array of arguments. Modified: vendor/clang/dist/lib/Sema/SemaExprCXX.cpp ============================================================================== --- vendor/clang/dist/lib/Sema/SemaExprCXX.cpp Wed Feb 1 21:34:55 2017 (r313057) +++ vendor/clang/dist/lib/Sema/SemaExprCXX.cpp Wed Feb 1 21:35:00 2017 (r313058) @@ -6712,6 +6712,11 @@ ExprResult Sema::BuildCXXMemberCallExpr( CXXMemberCallExpr *CE = new (Context) CXXMemberCallExpr(Context, ME, None, ResultType, VK, Exp.get()->getLocEnd()); + + if (CheckFunctionCall(Method, CE, + Method->getType()->castAs())) + return ExprError(); + return CE; } Modified: vendor/clang/dist/lib/Sema/SemaLookup.cpp ============================================================================== --- vendor/clang/dist/lib/Sema/SemaLookup.cpp Wed Feb 1 21:34:55 2017 (r313057) +++ vendor/clang/dist/lib/Sema/SemaLookup.cpp Wed Feb 1 21:35:00 2017 (r313058) @@ -2960,7 +2960,6 @@ Sema::SpecialMemberOverloadResult *Sema: if (CXXMethodDecl *M = dyn_cast(Cand->getUnderlyingDecl())) { if (SM == CXXCopyAssignment || SM == CXXMoveAssignment) AddMethodCandidate(M, Cand, RD, ThisTy, Classification, - /*ThisArg=*/nullptr, llvm::makeArrayRef(&Arg, NumArgs), OCS, true); else if (CtorInfo) AddOverloadCandidate(CtorInfo.Constructor, CtorInfo.FoundDecl, @@ -2973,7 +2972,7 @@ Sema::SpecialMemberOverloadResult *Sema: if (SM == CXXCopyAssignment || SM == CXXMoveAssignment) AddMethodTemplateCandidate( Tmpl, Cand, RD, nullptr, ThisTy, Classification, - /*ThisArg=*/nullptr, llvm::makeArrayRef(&Arg, NumArgs), OCS, true); + llvm::makeArrayRef(&Arg, NumArgs), OCS, true); else if (CtorInfo) AddTemplateOverloadCandidate( CtorInfo.ConstructorTmpl, CtorInfo.FoundDecl, nullptr, Modified: vendor/clang/dist/lib/Sema/SemaOverload.cpp ============================================================================== --- vendor/clang/dist/lib/Sema/SemaOverload.cpp Wed Feb 1 21:34:55 2017 (r313057) +++ vendor/clang/dist/lib/Sema/SemaOverload.cpp Wed Feb 1 21:35:00 2017 (r313058) @@ -839,20 +839,12 @@ void OverloadCandidateSet::destroyCandid void OverloadCandidateSet::clear() { destroyCandidates(); - // DiagnoseIfAttrs are just pointers, so we don't need to destroy them. SlabAllocator.Reset(); NumInlineBytesUsed = 0; Candidates.clear(); Functions.clear(); } -DiagnoseIfAttr ** -OverloadCandidateSet::addDiagnoseIfComplaints(ArrayRef CA) { - auto *DIA = slabAllocate(CA.size()); - std::uninitialized_copy(CA.begin(), CA.end(), DIA); - return DIA; -} - namespace { class UnbridgedCastsSet { struct Entry { @@ -5831,28 +5823,6 @@ static bool IsAcceptableNonMemberOperato return false; } -static void initDiagnoseIfComplaint(Sema &S, OverloadCandidateSet &CandidateSet, - OverloadCandidate &Candidate, - FunctionDecl *Function, - ArrayRef Args, - bool MissingImplicitThis = false, - Expr *ExplicitThis = nullptr) { - SmallVector Results; - if (DiagnoseIfAttr *DIA = S.checkArgDependentDiagnoseIf( - Function, Args, Results, MissingImplicitThis, ExplicitThis)) { - Results.clear(); - Results.push_back(DIA); - } - - Candidate.NumTriggeredDiagnoseIfs = Results.size(); - if (Results.empty()) - Candidate.DiagnoseIfInfo = nullptr; - else if (Results.size() == 1) - Candidate.DiagnoseIfInfo = Results[0]; - else - Candidate.DiagnoseIfInfo = CandidateSet.addDiagnoseIfComplaints(Results); -} - /// AddOverloadCandidate - Adds the given function to the set of /// candidate functions, using the given function call arguments. If /// @p SuppressUserConversions, then don't allow user-defined @@ -5886,10 +5856,9 @@ Sema::AddOverloadCandidate(FunctionDecl // object argument (C++ [over.call.func]p3), and the acting context // is irrelevant. AddMethodCandidate(Method, FoundDecl, Method->getParent(), QualType(), - Expr::Classification::makeSimpleLValue(), - /*ThisArg=*/nullptr, Args, CandidateSet, - SuppressUserConversions, PartialOverloading, - EarlyConversions); + Expr::Classification::makeSimpleLValue(), Args, + CandidateSet, SuppressUserConversions, + PartialOverloading, EarlyConversions); return; } // We treat a constructor like a non-member function, since its object @@ -6050,8 +6019,6 @@ Sema::AddOverloadCandidate(FunctionDecl Candidate.FailureKind = ovl_fail_ext_disabled; return; } - - initDiagnoseIfComplaint(*this, CandidateSet, Candidate, Function, Args); } ObjCMethodDecl * @@ -6260,85 +6227,73 @@ EnableIfAttr *Sema::CheckEnableIf(Functi return nullptr; } -static bool gatherDiagnoseIfAttrs(FunctionDecl *Function, bool ArgDependent, - SmallVectorImpl &Errors, - SmallVectorImpl &Nonfatal) { - for (auto *DIA : Function->specific_attrs()) - if (ArgDependent == DIA->getArgDependent()) { - if (DIA->isError()) - Errors.push_back(DIA); - else - Nonfatal.push_back(DIA); - } - - return !Errors.empty() || !Nonfatal.empty(); -} - template -static DiagnoseIfAttr * -checkDiagnoseIfAttrsWith(const SmallVectorImpl &Errors, - SmallVectorImpl &Nonfatal, - CheckFn &&IsSuccessful) { +static bool diagnoseDiagnoseIfAttrsWith(Sema &S, const FunctionDecl *FD, + bool ArgDependent, SourceLocation Loc, + CheckFn &&IsSuccessful) { + SmallVector Attrs; + for (const auto *DIA : FD->specific_attrs()) { + if (ArgDependent == DIA->getArgDependent()) + Attrs.push_back(DIA); + } + + // Common case: No diagnose_if attributes, so we can quit early. + if (Attrs.empty()) + return false; + + auto WarningBegin = std::stable_partition( + Attrs.begin(), Attrs.end(), + [](const DiagnoseIfAttr *DIA) { return DIA->isError(); }); + // Note that diagnose_if attributes are late-parsed, so they appear in the // correct order (unlike enable_if attributes). - auto ErrAttr = llvm::find_if(Errors, IsSuccessful); - if (ErrAttr != Errors.end()) - return *ErrAttr; - - llvm::erase_if(Nonfatal, [&](DiagnoseIfAttr *A) { return !IsSuccessful(A); }); - return nullptr; -} - -DiagnoseIfAttr * -Sema::checkArgDependentDiagnoseIf(FunctionDecl *Function, ArrayRef Args, - SmallVectorImpl &Nonfatal, - bool MissingImplicitThis, - Expr *ThisArg) { - SmallVector Errors; - if (!gatherDiagnoseIfAttrs(Function, /*ArgDependent=*/true, Errors, Nonfatal)) - return nullptr; + auto ErrAttr = llvm::find_if(llvm::make_range(Attrs.begin(), WarningBegin), + IsSuccessful); + if (ErrAttr != WarningBegin) { + const DiagnoseIfAttr *DIA = *ErrAttr; + S.Diag(Loc, diag::err_diagnose_if_succeeded) << DIA->getMessage(); + S.Diag(DIA->getLocation(), diag::note_from_diagnose_if) + << DIA->getParent() << DIA->getCond()->getSourceRange(); + return true; + } - SFINAETrap Trap(*this); - SmallVector ConvertedArgs; - Expr *ConvertedThis; - if (!convertArgsForAvailabilityChecks(*this, Function, ThisArg, Args, Trap, - MissingImplicitThis, ConvertedThis, - ConvertedArgs)) - return nullptr; + for (const auto *DIA : llvm::make_range(WarningBegin, Attrs.end())) + if (IsSuccessful(DIA)) { + S.Diag(Loc, diag::warn_diagnose_if_succeeded) << DIA->getMessage(); + S.Diag(DIA->getLocation(), diag::note_from_diagnose_if) + << DIA->getParent() << DIA->getCond()->getSourceRange(); + } - return checkDiagnoseIfAttrsWith(Errors, Nonfatal, [&](DiagnoseIfAttr *DIA) { - APValue Result; - // It's sane to use the same ConvertedArgs for any redecl of this function, - // since EvaluateWithSubstitution only cares about the position of each - // argument in the arg list, not the ParmVarDecl* it maps to. - if (!DIA->getCond()->EvaluateWithSubstitution( - Result, Context, DIA->getParent(), ConvertedArgs, ConvertedThis)) - return false; - return Result.isInt() && Result.getInt().getBoolValue(); - }); + return false; } -DiagnoseIfAttr *Sema::checkArgIndependentDiagnoseIf( - FunctionDecl *Function, SmallVectorImpl &Nonfatal) { - SmallVector Errors; - if (!gatherDiagnoseIfAttrs(Function, /*ArgDependent=*/false, Errors, - Nonfatal)) - return nullptr; - - return checkDiagnoseIfAttrsWith(Errors, Nonfatal, [&](DiagnoseIfAttr *DIA) { - bool Result; - return DIA->getCond()->EvaluateAsBooleanCondition(Result, Context) && - Result; - }); +bool Sema::diagnoseArgDependentDiagnoseIfAttrs(const FunctionDecl *Function, + const Expr *ThisArg, + ArrayRef Args, + SourceLocation Loc) { + return diagnoseDiagnoseIfAttrsWith( + *this, Function, /*ArgDependent=*/true, Loc, + [&](const DiagnoseIfAttr *DIA) { + APValue Result; + // It's sane to use the same Args for any redecl of this function, since + // EvaluateWithSubstitution only cares about the position of each + // argument in the arg list, not the ParmVarDecl* it maps to. + if (!DIA->getCond()->EvaluateWithSubstitution( + Result, Context, DIA->getParent(), Args, ThisArg)) + return false; + return Result.isInt() && Result.getInt().getBoolValue(); + }); } -void Sema::emitDiagnoseIfDiagnostic(SourceLocation Loc, - const DiagnoseIfAttr *DIA) { - auto Code = DIA->isError() ? diag::err_diagnose_if_succeeded - : diag::warn_diagnose_if_succeeded; - Diag(Loc, Code) << DIA->getMessage(); - Diag(DIA->getLocation(), diag::note_from_diagnose_if) - << DIA->getParent() << DIA->getCond()->getSourceRange(); +bool Sema::diagnoseArgIndependentDiagnoseIfAttrs(const FunctionDecl *Function, + SourceLocation Loc) { + return diagnoseDiagnoseIfAttrsWith( + *this, Function, /*ArgDependent=*/false, Loc, + [&](const DiagnoseIfAttr *DIA) { + bool Result; + return DIA->getCond()->EvaluateAsBooleanCondition(Result, Context) && + Result; + }); } /// \brief Add all of the function declarations in the given function set to @@ -6356,8 +6311,8 @@ void Sema::AddFunctionCandidates(const U AddMethodCandidate(cast(FD), F.getPair(), cast(FD)->getParent(), Args[0]->getType(), Args[0]->Classify(Context), - Args[0], Args.slice(1), CandidateSet, - SuppressUserConversions, PartialOverloading); + Args.slice(1), CandidateSet, SuppressUserConversions, + PartialOverloading); else AddOverloadCandidate(FD, F.getPair(), Args, CandidateSet, SuppressUserConversions, PartialOverloading); @@ -6369,7 +6324,7 @@ void Sema::AddFunctionCandidates(const U FunTmpl, F.getPair(), cast(FunTmpl->getDeclContext()), ExplicitTemplateArgs, Args[0]->getType(), - Args[0]->Classify(Context), Args[0], Args.slice(1), CandidateSet, + Args[0]->Classify(Context), Args.slice(1), CandidateSet, SuppressUserConversions, PartialOverloading); else AddTemplateOverloadCandidate(FunTmpl, F.getPair(), @@ -6385,7 +6340,6 @@ void Sema::AddFunctionCandidates(const U void Sema::AddMethodCandidate(DeclAccessPair FoundDecl, QualType ObjectType, Expr::Classification ObjectClassification, - Expr *ThisArg, ArrayRef Args, OverloadCandidateSet& CandidateSet, bool SuppressUserConversions) { @@ -6399,15 +6353,13 @@ void Sema::AddMethodCandidate(DeclAccess assert(isa(TD->getTemplatedDecl()) && "Expected a member function template"); AddMethodTemplateCandidate(TD, FoundDecl, ActingContext, - /*ExplicitArgs*/ nullptr, - ObjectType, ObjectClassification, - ThisArg, Args, CandidateSet, + /*ExplicitArgs*/ nullptr, ObjectType, + ObjectClassification, Args, CandidateSet, SuppressUserConversions); } else { AddMethodCandidate(cast(Decl), FoundDecl, ActingContext, - ObjectType, ObjectClassification, - ThisArg, Args, - CandidateSet, SuppressUserConversions); + ObjectType, ObjectClassification, Args, CandidateSet, + SuppressUserConversions); } } @@ -6422,7 +6374,7 @@ void Sema::AddMethodCandidate(CXXMethodDecl *Method, DeclAccessPair FoundDecl, CXXRecordDecl *ActingContext, QualType ObjectType, Expr::Classification ObjectClassification, - Expr *ThisArg, ArrayRef Args, + ArrayRef Args, OverloadCandidateSet &CandidateSet, bool SuppressUserConversions, bool PartialOverloading, @@ -6544,9 +6496,6 @@ Sema::AddMethodCandidate(CXXMethodDecl * Candidate.DeductionFailure.Data = FailedAttr; return; } - - initDiagnoseIfComplaint(*this, CandidateSet, Candidate, Method, Args, - /*MissingImplicitThis=*/!ThisArg, ThisArg); } /// \brief Add a C++ member function template as a candidate to the candidate @@ -6559,7 +6508,6 @@ Sema::AddMethodTemplateCandidate(Functio TemplateArgumentListInfo *ExplicitTemplateArgs, QualType ObjectType, Expr::Classification ObjectClassification, - Expr *ThisArg, ArrayRef Args, OverloadCandidateSet& CandidateSet, bool SuppressUserConversions, @@ -6613,9 +6561,9 @@ Sema::AddMethodTemplateCandidate(Functio assert(isa(Specialization) && "Specialization is not a member function?"); AddMethodCandidate(cast(Specialization), FoundDecl, - ActingContext, ObjectType, ObjectClassification, - /*ThisArg=*/ThisArg, Args, CandidateSet, - SuppressUserConversions, PartialOverloading, Conversions); + ActingContext, ObjectType, ObjectClassification, Args, + CandidateSet, SuppressUserConversions, PartialOverloading, + Conversions); } /// \brief Add a C++ function template specialization as a candidate @@ -6942,8 +6890,6 @@ Sema::AddConversionCandidate(CXXConversi Candidate.DeductionFailure.Data = FailedAttr; return; } - - initDiagnoseIfComplaint(*this, CandidateSet, Candidate, Conversion, None, false, From); } /// \brief Adds a conversion function template specialization @@ -7096,8 +7042,6 @@ void Sema::AddSurrogateCandidate(CXXConv Candidate.DeductionFailure.Data = FailedAttr; return; } - - initDiagnoseIfComplaint(*this, CandidateSet, Candidate, Conversion, None); } /// \brief Add overload candidates for overloaded operators that are @@ -7146,7 +7090,7 @@ void Sema::AddMemberOperatorCandidates(O Oper != OperEnd; ++Oper) AddMethodCandidate(Oper.getPair(), Args[0]->getType(), - Args[0]->Classify(Context), Args[0], Args.slice(1), + Args[0]->Classify(Context), Args.slice(1), CandidateSet, /*SuppressUserConversions=*/false); } } @@ -9178,17 +9122,6 @@ void Sema::diagnoseEquivalentInternalLin } } -static bool isCandidateUnavailableDueToDiagnoseIf(const OverloadCandidate &OC) { - ArrayRef Info = OC.getDiagnoseIfInfo(); - if (!Info.empty() && Info[0]->isError()) - return true; - - assert(llvm::all_of(Info, - [](const DiagnoseIfAttr *A) { return !A->isError(); }) && - "DiagnoseIf info shouldn't have mixed warnings and errors."); - return false; -} - /// \brief Computes the best viable function (C++ 13.3.3) /// within an overload candidate set. /// @@ -9267,19 +9200,13 @@ OverloadCandidateSet::BestViableFunction // Best is the best viable function. if (Best->Function && (Best->Function->isDeleted() || - S.isFunctionConsideredUnavailable(Best->Function) || - isCandidateUnavailableDueToDiagnoseIf(*Best))) + S.isFunctionConsideredUnavailable(Best->Function))) return OR_Deleted; if (!EquivalentCands.empty()) S.diagnoseEquivalentInternalLinkageDeclarations(Loc, Best->Function, EquivalentCands); - for (const auto *W : Best->getDiagnoseIfInfo()) { - assert(W->isWarning() && "Errors should've been caught earlier!"); - S.emitDiagnoseIfDiagnostic(Loc, W); - } - return OR_Success; } @@ -10162,14 +10089,6 @@ static void NoteFunctionCandidate(Sema & MaybeEmitInheritedConstructorNote(S, Cand->FoundDecl); return; } - if (isCandidateUnavailableDueToDiagnoseIf(*Cand)) { - auto *A = Cand->DiagnoseIfInfo.get(); - assert(A->isError() && "Non-error diagnose_if disables a candidate?"); - S.Diag(Cand->Function->getLocation(), - diag::note_ovl_candidate_disabled_by_function_cond_attr) - << A->getCond()->getSourceRange() << A->getMessage(); - return; - } // We don't really have anything else to say about viable candidates. S.NoteOverloadCandidate(Cand->FoundDecl, Fn); @@ -12113,6 +12032,10 @@ Sema::CreateOverloadedUnaryOp(SourceLoca if (CheckCallReturnType(FnDecl->getReturnType(), OpLoc, TheCall, FnDecl)) return ExprError(); + if (CheckFunctionCall(FnDecl, TheCall, + FnDecl->getType()->castAs())) + return ExprError(); + return MaybeBindToTemporary(TheCall); } else { // We matched a built-in operator. Convert the arguments, then @@ -12343,16 +12266,20 @@ Sema::CreateOverloadedBinOp(SourceLocati return ExprError(); ArrayRef ArgsArray(Args, 2); + const Expr *ImplicitThis = nullptr; // Cut off the implicit 'this'. - if (isa(FnDecl)) + if (isa(FnDecl)) { + ImplicitThis = ArgsArray[0]; ArgsArray = ArgsArray.slice(1); + } // Check for a self move. if (Op == OO_Equal) DiagnoseSelfMove(Args[0], Args[1], OpLoc); - checkCall(FnDecl, nullptr, ArgsArray, isa(FnDecl), OpLoc, - TheCall->getSourceRange(), VariadicDoesNotApply); + checkCall(FnDecl, nullptr, ImplicitThis, ArgsArray, + isa(FnDecl), OpLoc, TheCall->getSourceRange(), + VariadicDoesNotApply); return MaybeBindToTemporary(TheCall); } else { @@ -12561,6 +12488,10 @@ Sema::CreateOverloadedArraySubscriptExpr if (CheckCallReturnType(FnDecl->getReturnType(), LLoc, TheCall, FnDecl)) return ExprError(); + if (CheckFunctionCall(Method, TheCall, + Method->getType()->castAs())) + return ExprError(); + return MaybeBindToTemporary(TheCall); } else { // We matched a built-in operator. Convert the arguments, then @@ -12727,16 +12658,6 @@ Sema::BuildCallToMemberFunction(Scope *S TemplateArgs = &TemplateArgsBuffer; } - // Poor-programmer's Lazy; isImplicitAccess requires stripping - // parens/casts, which would be nice to avoid potentially doing multiple - // times. - llvm::Optional UnresolvedBase; - auto GetUnresolvedBase = [&] { - if (!UnresolvedBase.hasValue()) - UnresolvedBase = - UnresExpr->isImplicitAccess() ? nullptr : UnresExpr->getBase(); - return *UnresolvedBase; - }; for (UnresolvedMemberExpr::decls_iterator I = UnresExpr->decls_begin(), E = UnresExpr->decls_end(); I != E; ++I) { @@ -12757,14 +12678,12 @@ Sema::BuildCallToMemberFunction(Scope *S continue; AddMethodCandidate(Method, I.getPair(), ActingDC, ObjectType, - ObjectClassification, - /*ThisArg=*/GetUnresolvedBase(), Args, CandidateSet, + ObjectClassification, Args, CandidateSet, /*SuppressUserConversions=*/false); } else { AddMethodTemplateCandidate( cast(Func), I.getPair(), ActingDC, - TemplateArgs, ObjectType, ObjectClassification, - /*ThisArg=*/GetUnresolvedBase(), Args, CandidateSet, + TemplateArgs, ObjectType, ObjectClassification, Args, CandidateSet, /*SuppressUsedConversions=*/false); } } @@ -12882,16 +12801,6 @@ Sema::BuildCallToMemberFunction(Scope *S << Attr->getCond()->getSourceRange() << Attr->getMessage(); return ExprError(); } - - SmallVector Nonfatal; - if (const DiagnoseIfAttr *Attr = checkArgDependentDiagnoseIf( - Method, Args, Nonfatal, false, MemE->getBase())) { - emitDiagnoseIfDiagnostic(MemE->getMemberLoc(), Attr); - return ExprError(); - } - - for (const auto *Attr : Nonfatal) - emitDiagnoseIfDiagnostic(MemE->getMemberLoc(), Attr); } if ((isa(CurContext) || @@ -12970,9 +12879,8 @@ Sema::BuildCallToObjectOfClassType(Scope for (LookupResult::iterator Oper = R.begin(), OperEnd = R.end(); Oper != OperEnd; ++Oper) { AddMethodCandidate(Oper.getPair(), Object.get()->getType(), - Object.get()->Classify(Context), - Object.get(), Args, CandidateSet, - /*SuppressUserConversions=*/ false); + Object.get()->Classify(Context), Args, CandidateSet, + /*SuppressUserConversions=*/false); } // C++ [over.call.object]p2: @@ -13247,8 +13155,7 @@ Sema::BuildOverloadedArrowExpr(Scope *S, for (LookupResult::iterator Oper = R.begin(), OperEnd = R.end(); Oper != OperEnd; ++Oper) { AddMethodCandidate(Oper.getPair(), Base->getType(), Base->Classify(Context), - Base, None, CandidateSet, - /*SuppressUserConversions=*/false); + None, CandidateSet, /*SuppressUserConversions=*/false); } bool HadMultipleCandidates = (CandidateSet.size() > 1); @@ -13322,7 +13229,11 @@ Sema::BuildOverloadedArrowExpr(Scope *S, Base, ResultTy, VK, OpLoc, false); if (CheckCallReturnType(Method->getReturnType(), OpLoc, TheCall, Method)) - return ExprError(); + return ExprError(); + + if (CheckFunctionCall(Method, TheCall, + Method->getType()->castAs())) + return ExprError(); return MaybeBindToTemporary(TheCall); } Modified: vendor/clang/dist/lib/Sema/SemaTemplateInstantiateDecl.cpp ============================================================================== --- vendor/clang/dist/lib/Sema/SemaTemplateInstantiateDecl.cpp Wed Feb 1 21:34:55 2017 (r313057) +++ vendor/clang/dist/lib/Sema/SemaTemplateInstantiateDecl.cpp Wed Feb 1 21:35:00 2017 (r313058) @@ -4996,8 +4996,12 @@ NamedDecl *Sema::FindInstantiatedDecl(So NamedDecl *Result = nullptr; // FIXME: If the name is a dependent name, this lookup won't necessarily // find it. Does that ever matter? - if (D->getDeclName()) { - DeclContext::lookup_result Found = ParentDC->lookup(D->getDeclName()); + if (auto Name = D->getDeclName()) { + DeclarationNameInfo NameInfo(Name, D->getLocation()); + Name = SubstDeclarationNameInfo(NameInfo, TemplateArgs).getName(); + if (!Name) + return nullptr; + DeclContext::lookup_result Found = ParentDC->lookup(Name); Result = findInstantiationOf(Context, D, Found.begin(), Found.end()); } else { // Since we don't have a name for the entity we're looking for, Modified: vendor/clang/dist/lib/Sema/TreeTransform.h ============================================================================== --- vendor/clang/dist/lib/Sema/TreeTransform.h Wed Feb 1 21:34:55 2017 (r313057) +++ vendor/clang/dist/lib/Sema/TreeTransform.h Wed Feb 1 21:35:00 2017 (r313058) @@ -8818,12 +8818,18 @@ TreeTransform::TransformMemberE // base (and therefore couldn't do the check) and a // nested-name-qualifier (and therefore could do the lookup). NamedDecl *FirstQualifierInScope = nullptr; + DeclarationNameInfo MemberNameInfo = E->getMemberNameInfo(); + if (MemberNameInfo.getName()) { + MemberNameInfo = getDerived().TransformDeclarationNameInfo(MemberNameInfo); + if (!MemberNameInfo.getName()) + return ExprError(); + } return getDerived().RebuildMemberExpr(Base.get(), FakeOperatorLoc, E->isArrow(), QualifierLoc, TemplateKWLoc, - E->getMemberNameInfo(), + MemberNameInfo, Member, FoundDecl, (E->hasExplicitTemplateArgs() Modified: vendor/clang/dist/test/CodeGenCXX/microsoft-abi-default-cc.cpp ============================================================================== --- vendor/clang/dist/test/CodeGenCXX/microsoft-abi-default-cc.cpp Wed Feb 1 21:34:55 2017 (r313057) +++ vendor/clang/dist/test/CodeGenCXX/microsoft-abi-default-cc.cpp Wed Feb 1 21:35:00 2017 (r313058) @@ -45,3 +45,12 @@ void __cdecl static_baz() {} void static_qux() {} // GCABI-LABEL: define void @_Z10static_quxv // MSABI: define void @"\01?static_qux@@YAXXZ" + +namespace PR31656 { +template +void __cdecl callee(int args[I]); +// GCABI-LABEL: declare void @_ZN7PR316566calleeILi1EEEvPi( +// MSABI: declare void @"\01??$callee@$00@PR31656@@YAXQAH@Z"( + +void caller() { callee<1>(0); } +} Added: vendor/clang/dist/test/CodeGenObjC/block-ptr-type-crash.m ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/clang/dist/test/CodeGenObjC/block-ptr-type-crash.m Wed Feb 1 21:35:00 2017 (r313058) @@ -0,0 +1,28 @@ +// RUN: %clang_cc1 -Wno-objc-root-class -fblocks -o /dev/null -triple x86_64-- -emit-llvm %s +// REQUIRES: asserts +// Verify there is no assertion. + +// rdar://30111891 + +typedef unsigned long long uint64_t; +typedef enum AnEnum : uint64_t AnEnum; +enum AnEnum: uint64_t { + AnEnumA +}; + +typedef void (^BlockType)(); +@interface MyClass +@end +@implementation MyClass +- (void)_doStuff { + struct { + int identifier; + AnEnum type; + BlockType handler; + } var = { + "hello", + AnEnumA, + ((void *)0) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-vendor@freebsd.org Wed Feb 1 21:35:07 2017 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C021CCCCE4E; Wed, 1 Feb 2017 21:35:07 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7346CCEE; Wed, 1 Feb 2017 21:35:07 +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 v11LZ6cV099954; Wed, 1 Feb 2017 21:35:06 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v11LZ6VF099953; Wed, 1 Feb 2017 21:35:06 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201702012135.v11LZ6VF099953@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 1 Feb 2017 21:35:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r313059 - vendor/clang/clang-release_40-r293807 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 Feb 2017 21:35:07 -0000 Author: dim Date: Wed Feb 1 21:35:06 2017 New Revision: 313059 URL: https://svnweb.freebsd.org/changeset/base/313059 Log: Tag clang release_40 branch r293807. Added: vendor/clang/clang-release_40-r293807/ - copied from r313058, vendor/clang/dist/ From owner-svn-src-vendor@freebsd.org Wed Feb 1 21:35:10 2017 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AA8F3CCCE81; Wed, 1 Feb 2017 21:35:10 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 60CEBD4A; Wed, 1 Feb 2017 21:35:10 +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 v11LZ9eI000111; Wed, 1 Feb 2017 21:35:09 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v11LZ9g4000110; Wed, 1 Feb 2017 21:35:09 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201702012135.v11LZ9g4000110@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 1 Feb 2017 21:35:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r313060 - vendor/compiler-rt/compiler-rt-release_40-r293807 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 Feb 2017 21:35:10 -0000 Author: dim Date: Wed Feb 1 21:35:09 2017 New Revision: 313060 URL: https://svnweb.freebsd.org/changeset/base/313060 Log: Tag compiler-rt release_40 branch r293807. Added: vendor/compiler-rt/compiler-rt-release_40-r293807/ - copied from r313059, vendor/compiler-rt/dist/ From owner-svn-src-vendor@freebsd.org Wed Feb 1 21:35:16 2017 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 30709CCCED8; Wed, 1 Feb 2017 21:35:16 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id DB4D4E05; Wed, 1 Feb 2017 21:35:15 +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 v11LZEWY000210; Wed, 1 Feb 2017 21:35:14 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v11LZEOt000209; Wed, 1 Feb 2017 21:35:14 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201702012135.v11LZEOt000209@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 1 Feb 2017 21:35:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r313062 - vendor/libc++/libc++-release_40-r293807 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 Feb 2017 21:35:16 -0000 Author: dim Date: Wed Feb 1 21:35:14 2017 New Revision: 313062 URL: https://svnweb.freebsd.org/changeset/base/313062 Log: Tag libc++ release_40 branch r293807. Added: vendor/libc++/libc++-release_40-r293807/ - copied from r313061, vendor/libc++/dist/ From owner-svn-src-vendor@freebsd.org Wed Feb 1 21:35:13 2017 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 65BCCCCCEAE; Wed, 1 Feb 2017 21:35:13 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 32EE8DAF; Wed, 1 Feb 2017 21:35:13 +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 v11LZCAZ000164; Wed, 1 Feb 2017 21:35:12 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v11LZCh4000163; Wed, 1 Feb 2017 21:35:12 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201702012135.v11LZCh4000163@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 1 Feb 2017 21:35:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r313061 - vendor/libc++/dist/include X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 Feb 2017 21:35:13 -0000 Author: dim Date: Wed Feb 1 21:35:12 2017 New Revision: 313061 URL: https://svnweb.freebsd.org/changeset/base/313061 Log: Vendor import of libc++ release_40 branch r293807: https://llvm.org/svn/llvm-project/libcxx/branches/release_40@293807 Modified: vendor/libc++/dist/include/mutex Modified: vendor/libc++/dist/include/mutex ============================================================================== --- vendor/libc++/dist/include/mutex Wed Feb 1 21:35:09 2017 (r313060) +++ vendor/libc++/dist/include/mutex Wed Feb 1 21:35:12 2017 (r313061) @@ -559,7 +559,6 @@ public: #endif template -inline _LIBCPP_INLINE_VISIBILITY void __call_once_proxy(void* __vp) { From owner-svn-src-vendor@freebsd.org Wed Feb 1 21:35:23 2017 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F0DB1CCCF4F; Wed, 1 Feb 2017 21:35:23 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 97DA6EF9; Wed, 1 Feb 2017 21:35: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 v11LZMUE000315; Wed, 1 Feb 2017 21:35:22 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v11LZM2a000314; Wed, 1 Feb 2017 21:35:22 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201702012135.v11LZM2a000314@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 1 Feb 2017 21:35:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r313064 - vendor/lld/lld-release_40-r293807 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 Feb 2017 21:35:24 -0000 Author: dim Date: Wed Feb 1 21:35:22 2017 New Revision: 313064 URL: https://svnweb.freebsd.org/changeset/base/313064 Log: Tag lld release_40 branch r293807. Added: vendor/lld/lld-release_40-r293807/ - copied from r313063, vendor/lld/dist/ From owner-svn-src-vendor@freebsd.org Wed Feb 1 21:35:27 2017 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 41CA1CCCF97; Wed, 1 Feb 2017 21:35:27 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D98C2F67; Wed, 1 Feb 2017 21:35:26 +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 v11LZPfP000366; Wed, 1 Feb 2017 21:35:25 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v11LZPj9000365; Wed, 1 Feb 2017 21:35:25 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201702012135.v11LZPj9000365@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 1 Feb 2017 21:35:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r313065 - vendor/lldb/lldb-release_40-r293807 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 Feb 2017 21:35:27 -0000 Author: dim Date: Wed Feb 1 21:35:25 2017 New Revision: 313065 URL: https://svnweb.freebsd.org/changeset/base/313065 Log: Tag lldb release_40 branch r293807. Added: vendor/lldb/lldb-release_40-r293807/ - copied from r313064, vendor/lldb/dist/ From owner-svn-src-vendor@freebsd.org Wed Feb 1 21:35:19 2017 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 41A43CCCF06; Wed, 1 Feb 2017 21:35:19 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 19699E68; Wed, 1 Feb 2017 21:35:19 +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 v11LZIWi000269; Wed, 1 Feb 2017 21:35:18 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v11LZH7A000260; Wed, 1 Feb 2017 21:35:17 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201702012135.v11LZH7A000260@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 1 Feb 2017 21:35:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r313063 - in vendor/lld/dist: ELF test/ELF test/ELF/Inputs X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 Feb 2017 21:35:19 -0000 Author: dim Date: Wed Feb 1 21:35:17 2017 New Revision: 313063 URL: https://svnweb.freebsd.org/changeset/base/313063 Log: Vendor import of lld release_40 branch r293807: https://llvm.org/svn/llvm-project/lld/branches/release_40@293807 Added: vendor/lld/dist/test/ELF/Inputs/dtrace-r.o (contents, props changed) vendor/lld/dist/test/ELF/aarch64-relro.s (contents, props changed) vendor/lld/dist/test/ELF/dtrace-r.test Modified: vendor/lld/dist/ELF/InputFiles.h vendor/lld/dist/ELF/InputSection.cpp vendor/lld/dist/ELF/SyntheticSections.cpp vendor/lld/dist/ELF/SyntheticSections.h vendor/lld/dist/ELF/Writer.cpp vendor/lld/dist/test/ELF/basic-mips.s vendor/lld/dist/test/ELF/basic-ppc.s Modified: vendor/lld/dist/ELF/InputFiles.h ============================================================================== --- vendor/lld/dist/ELF/InputFiles.h Wed Feb 1 21:35:14 2017 (r313062) +++ vendor/lld/dist/ELF/InputFiles.h Wed Feb 1 21:35:17 2017 (r313063) @@ -180,10 +180,6 @@ public: // R_MIPS_GPREL16 / R_MIPS_GPREL32 relocations. uint32_t MipsGp0 = 0; - // The number is the offset in the string table. It will be used as the - // st_name of the symbol. - std::vector *, unsigned>> KeptLocalSyms; - // Name of source file obtained from STT_FILE symbol value, // or empty string if there is no such symbol in object file // symbol table. Modified: vendor/lld/dist/ELF/InputSection.cpp ============================================================================== --- vendor/lld/dist/ELF/InputSection.cpp Wed Feb 1 21:35:14 2017 (r313062) +++ vendor/lld/dist/ELF/InputSection.cpp Wed Feb 1 21:35:17 2017 (r313063) @@ -246,7 +246,8 @@ void InputSection::copyRelocations if (Config->Rela) P->r_addend = getAddend(Rel); P->r_offset = RelocatedSection->getOffset(Rel.r_offset); - P->setSymbolAndType(Body.DynsymIndex, Type, Config->Mips64EL); + P->setSymbolAndType(In::SymTab->getSymbolIndex(&Body), Type, + Config->Mips64EL); } } Modified: vendor/lld/dist/ELF/SyntheticSections.cpp ============================================================================== --- vendor/lld/dist/ELF/SyntheticSections.cpp Wed Feb 1 21:35:14 2017 (r313062) +++ vendor/lld/dist/ELF/SyntheticSections.cpp Wed Feb 1 21:35:17 2017 (r313063) @@ -1065,22 +1065,21 @@ template void SymbolTableSe this->OutSec->Info = this->Info = NumLocals + 1; this->OutSec->Entsize = this->Entsize; - if (Config->Relocatable) { - size_t I = NumLocals; - for (const SymbolTableEntry &S : Symbols) - S.Symbol->DynsymIndex = ++I; + if (Config->Relocatable) return; - } if (!StrTabSec.isDynamic()) { - std::stable_sort( - Symbols.begin(), Symbols.end(), - [](const SymbolTableEntry &L, const SymbolTableEntry &R) { - return L.Symbol->symbol()->computeBinding() == STB_LOCAL && - R.Symbol->symbol()->computeBinding() != STB_LOCAL; + auto GlobBegin = Symbols.begin() + NumLocals; + auto It = std::stable_partition( + GlobBegin, Symbols.end(), [](const SymbolTableEntry &S) { + return S.Symbol->symbol()->computeBinding() == STB_LOCAL; }); + // update sh_info with number of Global symbols output with computed + // binding of STB_LOCAL + this->OutSec->Info = this->Info = 1 + It - Symbols.begin(); return; } + if (In::GnuHashTab) // NB: It also sorts Symbols to meet the GNU hash table requirements. In::GnuHashTab->addSymbols(Symbols); @@ -1094,10 +1093,25 @@ template void SymbolTableSe S.Symbol->DynsymIndex = ++I; } -template void SymbolTableSection::addSymbol(SymbolBody *B) { +template void SymbolTableSection::addGlobal(SymbolBody *B) { Symbols.push_back({B, StrTabSec.addString(B->getName(), false)}); } +template void SymbolTableSection::addLocal(SymbolBody *B) { + assert(!StrTabSec.isDynamic()); + ++NumLocals; + Symbols.push_back({B, StrTabSec.addString(B->getName())}); +} + +template +size_t SymbolTableSection::getSymbolIndex(SymbolBody *Body) { + auto I = llvm::find_if( + Symbols, [&](const SymbolTableEntry &E) { return E.Symbol == Body; }); + if (I == Symbols.end()) + return 0; + return I - Symbols.begin() + 1; +} + template void SymbolTableSection::writeTo(uint8_t *Buf) { Buf += sizeof(Elf_Sym); @@ -1113,26 +1127,24 @@ template void SymbolTableSection::writeLocalSymbols(uint8_t *&Buf) { // Iterate over all input object files to copy their local symbols // to the output symbol table pointed by Buf. - for (ObjectFile *File : Symtab::X->getObjectFiles()) { - for (const std::pair *, size_t> &P : - File->KeptLocalSyms) { - const DefinedRegular &Body = *P.first; - InputSectionBase *Section = Body.Section; - auto *ESym = reinterpret_cast(Buf); - - if (!Section) { - ESym->st_shndx = SHN_ABS; - ESym->st_value = Body.Value; - } else { - const OutputSectionBase *OutSec = Section->OutSec; - ESym->st_shndx = OutSec->SectionIndex; - ESym->st_value = OutSec->Addr + Section->getOffset(Body); - } - ESym->st_name = P.second; - ESym->st_size = Body.template getSize(); - ESym->setBindingAndType(STB_LOCAL, Body.Type); - Buf += sizeof(*ESym); + + for (auto I = Symbols.begin(); I != Symbols.begin() + NumLocals; ++I) { + const DefinedRegular &Body = *cast>(I->Symbol); + InputSectionBase *Section = Body.Section; + auto *ESym = reinterpret_cast(Buf); + + if (!Section) { + ESym->st_shndx = SHN_ABS; + ESym->st_value = Body.Value; + } else { + const OutputSectionBase *OutSec = Section->OutSec; + ESym->st_shndx = OutSec->SectionIndex; + ESym->st_value = OutSec->Addr + Section->getOffset(Body); } + ESym->st_name = I->StrTabOffset; + ESym->st_size = Body.template getSize(); + ESym->setBindingAndType(STB_LOCAL, Body.Type); + Buf += sizeof(*ESym); } } @@ -1141,7 +1153,9 @@ void SymbolTableSection::writeGlob // Write the internal symbol table contents to the output symbol table // pointed by Buf. auto *ESym = reinterpret_cast(Buf); - for (const SymbolTableEntry &S : Symbols) { + + for (auto I = Symbols.begin() + NumLocals; I != Symbols.end(); ++I) { + const SymbolTableEntry &S = *I; SymbolBody *Body = S.Symbol; size_t StrOff = S.StrTabOffset; Modified: vendor/lld/dist/ELF/SyntheticSections.h ============================================================================== --- vendor/lld/dist/ELF/SyntheticSections.h Wed Feb 1 21:35:14 2017 (r313062) +++ vendor/lld/dist/ELF/SyntheticSections.h Wed Feb 1 21:35:17 2017 (r313063) @@ -366,23 +366,26 @@ public: void finalize() override; void writeTo(uint8_t *Buf) override; size_t getSize() const override { return getNumSymbols() * sizeof(Elf_Sym); } - void addSymbol(SymbolBody *Body); + void addGlobal(SymbolBody *Body); + void addLocal(SymbolBody *Body); StringTableSection &getStrTabSec() const { return StrTabSec; } - unsigned getNumSymbols() const { return NumLocals + Symbols.size() + 1; } + unsigned getNumSymbols() const { return Symbols.size() + 1; } + size_t getSymbolIndex(SymbolBody *Body); ArrayRef getSymbols() const { return Symbols; } static const OutputSectionBase *getOutputSection(SymbolBody *Sym); - unsigned NumLocals = 0; - StringTableSection &StrTabSec; - private: void writeLocalSymbols(uint8_t *&Buf); void writeGlobalSymbols(uint8_t *Buf); // A vector of symbols and their string table offsets. std::vector Symbols; + + StringTableSection &StrTabSec; + + unsigned NumLocals = 0; }; // Outputs GNU Hash section. For detailed explanation see: Modified: vendor/lld/dist/ELF/Writer.cpp ============================================================================== --- vendor/lld/dist/ELF/Writer.cpp Wed Feb 1 21:35:14 2017 (r313062) +++ vendor/lld/dist/ELF/Writer.cpp Wed Feb 1 21:35:17 2017 (r313063) @@ -455,11 +455,7 @@ template void Writer: InputSectionBase *Sec = DR->Section; if (!shouldKeepInSymtab(Sec, B->getName(), *B)) continue; - ++In::SymTab->NumLocals; - if (Config->Relocatable) - B->DynsymIndex = In::SymTab->NumLocals; - F->KeptLocalSyms.push_back(std::make_pair( - DR, In::SymTab->StrTabSec.addString(B->getName()))); + In::SymTab->addLocal(B); } } } @@ -1024,10 +1020,10 @@ template void Writer: if (!includeInSymtab(*Body)) continue; if (In::SymTab) - In::SymTab->addSymbol(Body); + In::SymTab->addGlobal(Body); if (In::DynSymTab && S->includeInDynsym()) { - In::DynSymTab->addSymbol(Body); + In::DynSymTab->addGlobal(Body); if (auto *SS = dyn_cast>(Body)) if (SS->file()->isNeeded()) In::VerNeed->addSymbol(SS); @@ -1466,7 +1462,7 @@ template void Writer: // The glibc dynamic loader rounds the size down, so we need to round up // to protect the last page. This is a no-op on FreeBSD which always // rounds up. - P.p_memsz = alignTo(P.p_memsz, Config->MaxPageSize); + P.p_memsz = alignTo(P.p_memsz, Target->PageSize); } // The TLS pointer goes after PT_TLS. At least glibc will align it, Added: vendor/lld/dist/test/ELF/Inputs/dtrace-r.o ============================================================================== Binary file. No diff available. Added: vendor/lld/dist/test/ELF/aarch64-relro.s ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/lld/dist/test/ELF/aarch64-relro.s Wed Feb 1 21:35:17 2017 (r313063) @@ -0,0 +1,14 @@ +# REQUIRES: aarch64 +# RUN: llvm-mc -filetype=obj -triple=aarch64-unknown-freebsd %s -o %t +# RUN: ld.lld %t -o %t2 +# RUN: llvm-readobj -program-headers %t2 | FileCheck %s + +# CHECK: Type: PT_GNU_RELRO +# CHECK-NEXT: Offset: +# CHECK-NEXT: VirtualAddress: +# CHECK-NEXT: PhysicalAddress: +# CHECK-NEXT: FileSize: +# CHECK-NEXT: MemSize: 4096 + +.section .data.rel.ro,"aw",%progbits +.byte 1 Modified: vendor/lld/dist/test/ELF/basic-mips.s ============================================================================== --- vendor/lld/dist/test/ELF/basic-mips.s Wed Feb 1 21:35:14 2017 (r313062) +++ vendor/lld/dist/test/ELF/basic-mips.s Wed Feb 1 21:35:17 2017 (r313063) @@ -176,7 +176,7 @@ __start: # CHECK-NEXT: Offset: 0x20010 # CHECK-NEXT: Size: 48 # CHECK-NEXT: Link: 10 -# CHECK-NEXT: Info: 1 +# CHECK-NEXT: Info: 2 # CHECK-NEXT: AddressAlignment: 4 # CHECK-NEXT: EntrySize: 16 # CHECK-NEXT: } Modified: vendor/lld/dist/test/ELF/basic-ppc.s ============================================================================== --- vendor/lld/dist/test/ELF/basic-ppc.s Wed Feb 1 21:35:14 2017 (r313062) +++ vendor/lld/dist/test/ELF/basic-ppc.s Wed Feb 1 21:35:17 2017 (r313063) @@ -178,7 +178,7 @@ // CHECK-NEXT: Offset: 0x2038 // CHECK-NEXT: Size: 32 // CHECK-NEXT: Link: 9 -// CHECK-NEXT: Info: 1 +// CHECK-NEXT: Info: 2 // CHECK-NEXT: AddressAlignment: 4 // CHECK-NEXT: EntrySize: 16 // CHECK-NEXT: SectionData ( Added: vendor/lld/dist/test/ELF/dtrace-r.test ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/lld/dist/test/ELF/dtrace-r.test Wed Feb 1 21:35:17 2017 (r313063) @@ -0,0 +1,8 @@ +RUN: ld.lld -r -o %t.o %p/Inputs/dtrace-r.o +RUN: llvm-readobj -r %t.o | FileCheck %s + +CHECK: Relocations [ +CHECK-NEXT: Section ({{.*}}) .rela.text { +CHECK-NEXT: 0x0 R_X86_64_NONE - 0x0 +CHECK-NEXT: } +CHECK-NEXT: ] From owner-svn-src-vendor@freebsd.org Thu Feb 2 00:20:21 2017 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 18364CCC9E1; Thu, 2 Feb 2017 00:20:21 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A8BB215A8; Thu, 2 Feb 2017 00:20:20 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v120KJ2V067991; Thu, 2 Feb 2017 00:20:19 GMT (envelope-from mm@FreeBSD.org) Received: (from mm@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v120KIk3067968; Thu, 2 Feb 2017 00:20:18 GMT (envelope-from mm@FreeBSD.org) Message-Id: <201702020020.v120KIk3067968@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mm set sender to mm@FreeBSD.org using -f From: Martin Matuska Date: Thu, 2 Feb 2017 00:20:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r313071 - in vendor/libarchive/dist: . build build/cmake libarchive libarchive/test tar tar/test X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 Feb 2017 00:20:21 -0000 Author: mm Date: Thu Feb 2 00:20:18 2017 New Revision: 313071 URL: https://svnweb.freebsd.org/changeset/base/313071 Log: Update vendor/libarchive to git d77b577b2d5aa259fca06313c4940e1e61ab1e0e Vendor changes (relevant to FreeBSD): - bugfixes, improvemens and optimizations in ACL code - NFSv4 ACLs can now be extracted from Solaris tar archives Security fixes: - cab reader: endless loop when parsing MSZIP signature (OSS-Fuzz 335) - LHA reader: heap-buffer-overflow in lha_read_file_header_1() (CVE-2017-5601) - LZ4 reader: null-pointer dereference in lz4_filter_read_legacy_stream() (OSS-Fuzz 453) - mtree reader: heap-buffer-overflow in detect_form() (OSS-Fuzz 421, 443) - WARC reader: heap-buffer-overflow in xstrpisotime() (OSS-Fuzz 382, 458) Memory leak fixes: - ACL support: free memory allocated by acl_get_qualifier() - disk writer: missing free in create_filesystem_object() - file reader: fd leak (Coverity 1016755) - gnutar writer: fix free in archive_write_gnutar_header() (Coverity 1016752) - iso 9660 reader: missing free in parse_file_info() (part. Coverity 1016754) - program reader: missing free in __archive_read_program() - program writer: missing free in __archive_write_program_free() - xar reader: missing free in xar_cleanup() - xar reader: missing frees in expat_xmlattr_setup() (Coverity 1229979-1229981) - xar writer: missing free in file_free() - zip reader: missing free in zip_read_locazip_read_local_file_header() Added: vendor/libarchive/dist/libarchive/test/test_acl_platform_nfs4.c - copied, changed from r313070, vendor/libarchive/dist/libarchive/test/test_acl_freebsd_nfs4.c vendor/libarchive/dist/libarchive/test/test_acl_platform_posix1e.c - copied, changed from r313070, vendor/libarchive/dist/libarchive/test/test_acl_freebsd_posix1e.c Deleted: vendor/libarchive/dist/libarchive/test/test_acl_freebsd_nfs4.c vendor/libarchive/dist/libarchive/test/test_acl_freebsd_posix1e.c Modified: vendor/libarchive/dist/.travis.yml vendor/libarchive/dist/CMakeLists.txt vendor/libarchive/dist/Makefile.am vendor/libarchive/dist/NEWS vendor/libarchive/dist/build/ci_build.sh vendor/libarchive/dist/build/ci_test_driver vendor/libarchive/dist/build/cmake/config.h.in vendor/libarchive/dist/configure.ac vendor/libarchive/dist/libarchive/CMakeLists.txt vendor/libarchive/dist/libarchive/archive_acl.c vendor/libarchive/dist/libarchive/archive_acl_private.h vendor/libarchive/dist/libarchive/archive_entry.c vendor/libarchive/dist/libarchive/archive_entry_strmode.c vendor/libarchive/dist/libarchive/archive_platform.h vendor/libarchive/dist/libarchive/archive_random.c vendor/libarchive/dist/libarchive/archive_read_disk_entry_from_file.c vendor/libarchive/dist/libarchive/archive_read_open_filename.c vendor/libarchive/dist/libarchive/archive_read_support_filter_lz4.c vendor/libarchive/dist/libarchive/archive_read_support_filter_program.c vendor/libarchive/dist/libarchive/archive_read_support_format_cab.c vendor/libarchive/dist/libarchive/archive_read_support_format_cpio.c vendor/libarchive/dist/libarchive/archive_read_support_format_iso9660.c vendor/libarchive/dist/libarchive/archive_read_support_format_lha.c vendor/libarchive/dist/libarchive/archive_read_support_format_mtree.c vendor/libarchive/dist/libarchive/archive_read_support_format_tar.c vendor/libarchive/dist/libarchive/archive_read_support_format_warc.c vendor/libarchive/dist/libarchive/archive_read_support_format_xar.c vendor/libarchive/dist/libarchive/archive_read_support_format_zip.c vendor/libarchive/dist/libarchive/archive_windows.c vendor/libarchive/dist/libarchive/archive_windows.h vendor/libarchive/dist/libarchive/archive_write_add_filter_program.c vendor/libarchive/dist/libarchive/archive_write_disk_acl.c vendor/libarchive/dist/libarchive/archive_write_disk_posix.c vendor/libarchive/dist/libarchive/archive_write_open.3 vendor/libarchive/dist/libarchive/archive_write_set_format_gnutar.c vendor/libarchive/dist/libarchive/archive_write_set_format_iso9660.c vendor/libarchive/dist/libarchive/archive_write_set_format_xar.c vendor/libarchive/dist/libarchive/test/CMakeLists.txt vendor/libarchive/dist/libarchive/test/main.c vendor/libarchive/dist/libarchive/test/test.h vendor/libarchive/dist/libarchive/test/test_acl_text.c vendor/libarchive/dist/libarchive/test/test_archive_string.c vendor/libarchive/dist/libarchive/test/test_compat_gtar.c vendor/libarchive/dist/libarchive/test/test_compat_solaris_tar_acl.c vendor/libarchive/dist/libarchive/test/test_compat_solaris_tar_acl.tar.uu vendor/libarchive/dist/libarchive/test/test_fuzz.c vendor/libarchive/dist/libarchive/test/test_read_disk_directory_traversals.c vendor/libarchive/dist/libarchive/test/test_read_filter_lzop.c vendor/libarchive/dist/libarchive/test/test_read_filter_lzop_multiple_parts.c vendor/libarchive/dist/libarchive/test/test_read_format_zip.c vendor/libarchive/dist/libarchive/test/test_read_format_zip_comment_stored.c vendor/libarchive/dist/libarchive/test/test_read_format_zip_mac_metadata.c vendor/libarchive/dist/libarchive/test/test_read_format_zip_malformed.c vendor/libarchive/dist/libarchive/test/test_read_format_zip_nested.c vendor/libarchive/dist/libarchive/test/test_read_format_zip_padded.c vendor/libarchive/dist/libarchive/test/test_read_format_zip_sfx.c vendor/libarchive/dist/libarchive/test/test_write_disk_secure746.c vendor/libarchive/dist/libarchive/test/test_write_filter_lz4.c vendor/libarchive/dist/libarchive/test/test_write_filter_lzop.c vendor/libarchive/dist/libarchive/test/test_write_format_zip_large.c vendor/libarchive/dist/libarchive/test/test_write_format_zip_zip64.c vendor/libarchive/dist/tar/test/test_option_uid_uname.c vendor/libarchive/dist/tar/util.c Modified: vendor/libarchive/dist/.travis.yml ============================================================================== --- vendor/libarchive/dist/.travis.yml Thu Feb 2 00:12:24 2017 (r313070) +++ vendor/libarchive/dist/.travis.yml Thu Feb 2 00:20:18 2017 (r313071) @@ -1,6 +1,14 @@ language: C -sudo: required +sudo: false dist: trusty +addons: + apt: + packages: + - libacl1-dev + - libbz2-dev + - liblzma-dev + - libzip-dev + - lzop os: - linux - osx @@ -16,8 +24,7 @@ matrix: compiler: gcc before_install: - if [ `uname` = "Darwin" ]; then brew update; fi - - if [ `uname` = "Linux" ]; then sudo apt-get install -y libbz2-dev libzip-dev liblzma-dev liblzo2-dev; fi install: - - if [ `uname` = "Darwin" ]; then brew install xz lzo lz4; fi + - if [ `uname` = "Darwin" ]; then brew install xz lzop lz4; fi script: - build/ci_build.sh Modified: vendor/libarchive/dist/CMakeLists.txt ============================================================================== --- vendor/libarchive/dist/CMakeLists.txt Thu Feb 2 00:12:24 2017 (r313070) +++ vendor/libarchive/dist/CMakeLists.txt Thu Feb 2 00:20:18 2017 (r313071) @@ -179,13 +179,15 @@ include(CTest) OPTION(ENABLE_NETTLE "Enable use of Nettle" ON) OPTION(ENABLE_OPENSSL "Enable use of OpenSSL" ON) -OPTION(ENABLE_LZMA "Enable the use of the system found LZMA library if found" ON) -OPTION(ENABLE_ZLIB "Enable the use of the system found ZLIB library if found" ON) -OPTION(ENABLE_BZip2 "Enable the use of the system found BZip2 library if found" ON) -OPTION(ENABLE_LIBXML2 "Enable the use of the system found libxml2 library if found" ON) -OPTION(ENABLE_EXPAT "Enable the use of the system found EXPAT library if found" ON) -OPTION(ENABLE_PCREPOSIX "Enable the use of the system found PCREPOSIX library if found" ON) -OPTION(ENABLE_LibGCC "Enable the use of the system found LibGCC library if found" ON) +OPTION(ENABLE_LZO "Enable the use of the system LZO library if found" OFF) +OPTION(ENABLE_LZMA "Enable the use of the system LZMA library if found" ON) + +OPTION(ENABLE_ZLIB "Enable the use of the system ZLIB library if found" ON) +OPTION(ENABLE_BZip2 "Enable the use of the system BZip2 library if found" ON) +OPTION(ENABLE_LIBXML2 "Enable the use of the system libxml2 library if found" ON) +OPTION(ENABLE_EXPAT "Enable the use of the system EXPAT library if found" ON) +OPTION(ENABLE_PCREPOSIX "Enable the use of the system PCREPOSIX library if found" ON) +OPTION(ENABLE_LibGCC "Enable the use of the system LibGCC library if found" ON) # CNG is used for encrypt/decrypt Zip archives on Windows. OPTION(ENABLE_CNG "Enable the use of CNG(Crypto Next Generation)" ON) @@ -477,15 +479,19 @@ ENDIF(LIBLZMA_FOUND) # # Find LZO2 # -IF (LZO2_INCLUDE_DIR) - # Already in cache, be silent - SET(LZO2_FIND_QUIETLY TRUE) -ENDIF (LZO2_INCLUDE_DIR) - -FIND_PATH(LZO2_INCLUDE_DIR lzo/lzoconf.h) -FIND_LIBRARY(LZO2_LIBRARY NAMES lzo2 liblzo2) -INCLUDE(FindPackageHandleStandardArgs) -FIND_PACKAGE_HANDLE_STANDARD_ARGS(LZO2 DEFAULT_MSG LZO2_LIBRARY LZO2_INCLUDE_DIR) +IF(ENABLE_LZO) + IF (LZO2_INCLUDE_DIR) + # Already in cache, be silent + SET(LZO2_FIND_QUIETLY TRUE) + ENDIF (LZO2_INCLUDE_DIR) + + FIND_PATH(LZO2_INCLUDE_DIR lzo/lzoconf.h) + FIND_LIBRARY(LZO2_LIBRARY NAMES lzo2 liblzo2) + INCLUDE(FindPackageHandleStandardArgs) + FIND_PACKAGE_HANDLE_STANDARD_ARGS(LZO2 DEFAULT_MSG LZO2_LIBRARY LZO2_INCLUDE_DIR) +ELSE(ENABLE_LZO) + SET(LIBZMA_FOUND FALSE) # Override cached value +ENDIF(ENABLE_LZO) IF(LZO2_FOUND) SET(HAVE_LIBLZO2 1) SET(HAVE_LZO_LZOCONF_H 1) @@ -608,7 +614,7 @@ IF(ENABLE_CNG) ELSE(ENABLE_CNG) UNSET(HAVE_BCRYPT_H CACHE) ENDIF(ENABLE_CNG) -# Following files need windwos.h, so we should test it after windows.h test. +# Following files need windows.h, so we should test it after windows.h test. LA_CHECK_INCLUDE_FILE("wincrypt.h" HAVE_WINCRYPT_H) LA_CHECK_INCLUDE_FILE("winioctl.h" HAVE_WINIOCTL_H) @@ -1605,10 +1611,29 @@ IF(ENABLE_ACL) CHECK_FUNCTION_EXISTS(acl_get_link_np HAVE_ACL_GET_LINK_NP) CHECK_FUNCTION_EXISTS(acl_is_trivial_np HAVE_ACL_IS_TRIVIAL_NP) CHECK_FUNCTION_EXISTS(acl_set_link_np HAVE_ACL_SET_LINK_NP) + CHECK_SYMBOL_EXISTS(ACL_TYPE_NFS4 "${INCLUDES}" HAVE_ACL_TYPE_NFS4) # MacOS has an acl.h that isn't POSIX. It can be detected by # checking for ACL_USER CHECK_SYMBOL_EXISTS(ACL_USER "${INCLUDES}" HAVE_ACL_USER) + CHECK_C_SOURCE_COMPILES("#include +#include +int main(void) { return ACL_TYPE_EXTENDED; }" HAVE_ACL_TYPE_EXTENDED) + + # Solaris and derivates ACLs + CHECK_LIBRARY_EXISTS(sec "acl_get" "" HAVE_LIBSEC) + IF(HAVE_LIBSEC) + SET(CMAKE_REQUIRED_LIBRARIES "sec") + FIND_LIBRARY(SEC_LIBRARY NAMES sec) + LIST(APPEND ADDITIONAL_LIBS ${SEC_LIBRARY}) + ENDIF(HAVE_LIBSEC) + # + CHECK_TYPE_EXISTS(aclent_t "${INCLUDES}" HAVE_ACLENT_T) + CHECK_TYPE_EXISTS(ace_t "${INCLUDES}" HAVE_ACE_T) + CHECK_FUNCTION_EXISTS(acl_get HAVE_FACL_GET) + CHECK_FUNCTION_EXISTS(facl_get HAVE_FACL_GET) + CHECK_FUNCTION_EXISTS(acl_set HAVE_FACL_SET) + CHECK_FUNCTION_EXISTS(facl_set HAVE_FACL_SET) ELSE(ENABLE_ACL) # If someone runs cmake, then disables ACL support, we need # to forcibly override the cached values for these. @@ -1623,7 +1648,15 @@ ELSE(ENABLE_ACL) SET(HAVE_ACL_SET_FD FALSE) SET(HAVE_ACL_SET_FD_NP FALSE) SET(HAVE_ACL_SET_FILE FALSE) + SET(HAVE_ACL_TYPE_NFS4 FALSE) SET(HAVE_ACL_USER FALSE) + SET(HAVE_ACL_TYPE_EXTENDED FALSE) + SET(HAVE_ACL_GET FALSE) + SET(HAVE_ACLENT_T FALSE) + SET(HAVE_ACE_T FALSE) + SET(HAVE_FACL_GET FALSE) + SET(HAVE_ACL_SET FALSE) + SET(HAVE_FACL_SET FALSE) ENDIF(ENABLE_ACL) # Modified: vendor/libarchive/dist/Makefile.am ============================================================================== --- vendor/libarchive/dist/Makefile.am Thu Feb 2 00:12:24 2017 (r313070) +++ vendor/libarchive/dist/Makefile.am Thu Feb 2 00:20:18 2017 (r313071) @@ -323,10 +323,10 @@ libarchive_test_SOURCES= \ libarchive/test/main.c \ libarchive/test/read_open_memory.c \ libarchive/test/test.h \ - libarchive/test/test_acl_freebsd_posix1e.c \ - libarchive/test/test_acl_freebsd_nfs4.c \ libarchive/test/test_acl_nfs4.c \ libarchive/test/test_acl_pax.c \ + libarchive/test/test_acl_platform_nfs4.c \ + libarchive/test/test_acl_platform_posix1e.c \ libarchive/test/test_acl_posix1e.c \ libarchive/test/test_acl_text.c \ libarchive/test/test_archive_api_feature.c \ Modified: vendor/libarchive/dist/NEWS ============================================================================== --- vendor/libarchive/dist/NEWS Thu Feb 2 00:12:24 2017 (r313070) +++ vendor/libarchive/dist/NEWS Thu Feb 2 00:20:18 2017 (r313071) @@ -1,3 +1,7 @@ +Jan 29, 2017: Limited NFSv4 ACL support for Mac OS (Darwin) + +Jan 10, 2017: POSIX.1e and NFSv4 ACL support for Solaris and derivates + Dec 27, 2016: NFSv4 ACL read and write support for pax Deprecated functions: archive_entry_acl_text(), archive_entry_acl_text_w() Modified: vendor/libarchive/dist/build/ci_build.sh ============================================================================== --- vendor/libarchive/dist/build/ci_build.sh Thu Feb 2 00:12:24 2017 (r313070) +++ vendor/libarchive/dist/build/ci_build.sh Thu Feb 2 00:20:18 2017 (r313071) @@ -12,6 +12,8 @@ ACTIONS= BUILD_SYSTEM="${BUILD_SYSTEM:-autotools}" +MAKE="${MAKE:-make}" +CMAKE="${CMAKE:-cmake}" CURDIR=`pwd` SRCDIR="${SRCDIR:-`pwd`}" RET=0 @@ -79,21 +81,21 @@ for action in ${ACTIONS}; do configure) case "${BUILD_SYSTEM}" in autotools) "${SRCDIR}/configure" ${CONFIGURE_ARGS} ;; - cmake) cmake ${CONFIGURE_ARGS} "${SRCDIR}" ;; + cmake) ${CMAKE} ${CONFIGURE_ARGS} "${SRCDIR}" ;; esac RET="$?" ;; build) - make ${MAKE_ARGS} + ${MAKE} ${MAKE_ARGS} RET="$?" ;; test) case "${BUILD_SYSTEM}" in autotools) - make ${MAKE_ARGS} check LOG_DRIVER="${SRCDIR}/build/ci_test_driver" + ${MAKE} ${MAKE_ARGS} check LOG_DRIVER="${SRCDIR}/build/ci_test_driver" ;; cmake) - make ${MAKE_ARGS} test + ${MAKE} ${MAKE_ARGS} test ;; esac RET="$?" Modified: vendor/libarchive/dist/build/ci_test_driver ============================================================================== --- vendor/libarchive/dist/build/ci_test_driver Thu Feb 2 00:12:24 2017 (r313070) +++ vendor/libarchive/dist/build/ci_test_driver Thu Feb 2 00:20:18 2017 (r313071) @@ -104,8 +104,8 @@ trap "st=141; $do_exit" 13 trap "st=143; $do_exit" 15 # Test script is run here. -"$@" | tee $log_file 2>&1 -estatus=$? +( "$@"; echo "$?" > $log_file.s ) | tee $log_file 2>&1 +estatus=`cat $log_file.s` if test $enable_hard_errors = no && test $estatus -eq 99; then tweaked_estatus=1 Modified: vendor/libarchive/dist/build/cmake/config.h.in ============================================================================== --- vendor/libarchive/dist/build/cmake/config.h.in Thu Feb 2 00:12:24 2017 (r313070) +++ vendor/libarchive/dist/build/cmake/config.h.in Thu Feb 2 00:20:18 2017 (r313071) @@ -326,6 +326,12 @@ typedef uint64_t uintmax_t; /* Define to 1 if you have the `acl_set_file' function. */ #cmakedefine HAVE_ACL_SET_FILE 1 +/* True for FreeBSD with NFSv4 ACL support */ +#cmakedefine HAVE_ACL_TYPE_NFS4 1 + +/* True for MacOS ACL support */ +#cmakedefine HAVE_ACL_TYPE_EXTENDED 1 + /* True for systems with POSIX ACL support */ #cmakedefine HAVE_ACL_USER 1 Modified: vendor/libarchive/dist/configure.ac ============================================================================== --- vendor/libarchive/dist/configure.ac Thu Feb 2 00:12:24 2017 (r313070) +++ vendor/libarchive/dist/configure.ac Thu Feb 2 00:20:18 2017 (r313071) @@ -379,9 +379,9 @@ if test "x$with_lzma" != "xno"; then fi AC_ARG_WITH([lzo2], - AS_HELP_STRING([--without-lzo2], [Don't build support for lzop through liblzo2])) + AS_HELP_STRING([--with-lzo2], [Build with LZO support from liblzo2])) -if test "x$with_lzo2" != "xno"; then +if test "x$with_lzo2" == "xyes"; then AC_CHECK_HEADERS([lzo/lzoconf.h lzo/lzo1x.h]) AC_CHECK_LIB(lzo2,lzo1x_decompress_safe) fi @@ -724,12 +724,31 @@ if test "x$enable_acl" != "xno"; then #endif ]) + # Check for ACL_TYPE_NFS4 + AC_CHECK_DECL([ACL_TYPE_NFS4], + [AC_DEFINE(HAVE_ACL_TYPE_NFS4, 1, [True for FreeBSD with NFSv4 ACL support])], + [], + [#include ]) + # MacOS has an acl.h that isn't POSIX. It can be detected by # checking for ACL_USER AC_CHECK_DECL([ACL_USER], [AC_DEFINE(HAVE_ACL_USER, 1, [True for systems with POSIX ACL support])], [], [#include ]) + + # MacOS has ACL_TYPE_EXTENDED instead + AC_CHECK_DECL([ACL_TYPE_EXTENDED], + [AC_DEFINE(HAVE_ACL_TYPE_EXTENDED, 1, [True for MacOS ACL support])], + [], + [#include + #include ]) + + # Solaris and derivates ACLs + AC_CHECK_LIB([sec], [acl_get]) + AC_CHECK_TYPES([aclent_t], [], [], [[#include ]]) + AC_CHECK_TYPES([ace_t], [], [], [[#include ]]) + AC_CHECK_FUNCS(acl_get facl_get acl_set facl_set) fi # Additional requirements Modified: vendor/libarchive/dist/libarchive/CMakeLists.txt ============================================================================== --- vendor/libarchive/dist/libarchive/CMakeLists.txt Thu Feb 2 00:12:24 2017 (r313070) +++ vendor/libarchive/dist/libarchive/CMakeLists.txt Thu Feb 2 00:20:18 2017 (r313071) @@ -168,15 +168,33 @@ SET(libarchive_MANS archive_entry_time.3 archive_read.3 archive_read_add_passphrase.3 + archive_read_data.3 archive_read_disk.3 + archive_read_extract.3 + archive_read_filter.3 + archive_read_format.3 + archive_read_free.3 + archive_read_header.3 + archive_read_new.3 + archive_read_open.3 archive_read_set_options.3 archive_util.3 archive_write.3 + archive_write_blocksize.3 + archive_write_data.3 archive_write_disk.3 + archive_write_filter.3 + archive_write_finish_entry.3 + archive_write_format.3 + archive_write_free.3 + archive_write_header.3 + archive_write_new.3 + archive_write_open.3 archive_write_set_options.3 archive_write_set_passphrase.3 cpio.5 libarchive.3 + libarchive_changes.3 libarchive_internals.3 libarchive-formats.5 mtree.5 Modified: vendor/libarchive/dist/libarchive/archive_acl.c ============================================================================== --- vendor/libarchive/dist/libarchive/archive_acl.c Thu Feb 2 00:12:24 2017 (r313070) +++ vendor/libarchive/dist/libarchive/archive_acl.c Thu Feb 2 00:20:18 2017 (r313071) @@ -349,6 +349,15 @@ archive_acl_count(struct archive_acl *ac } /* + * Return a bitmask of stored ACL types in an ACL list + */ +int +archive_acl_types(struct archive_acl *acl) +{ + return (acl->acl_types); +} + +/* * Prepare for reading entries from the ACL data. Returns a count * of entries matching "want_type", or zero if there are no * non-extended ACL entries of that type. @@ -1144,7 +1153,7 @@ archive_acl_from_text_w(struct archive_a const wchar_t *s, *st; - int numfields, fields, n, r, ret; + int numfields, fields, n, r, sol, ret; int type, types, tag, permset, id; size_t len; wchar_t sep; @@ -1192,6 +1201,7 @@ archive_acl_from_text_w(struct archive_a } n = 0; + sol = 0; id = -1; permset = 0; name.start = name.end = NULL; @@ -1263,6 +1273,7 @@ archive_acl_from_text_w(struct archive_a && ismode_w(field[n + 1].start, field[n + 1].end, &permset)) { /* This is Solaris-style "other:rwx" */ + sol = 1; } else if (fields == (n + 3) && field[n + 1].start < field[n + 1].end) { /* Invalid mask or other field */ @@ -1287,9 +1298,12 @@ archive_acl_from_text_w(struct archive_a continue; } - /* Without "default:" we expect mode in field 2 */ - if (permset == 0 && !ismode_w(field[n + 2].start, - field[n + 2].end, &permset)) { + /* + * Without "default:" we expect mode in field 2 + * Exception: Solaris other and mask fields + */ + if (permset == 0 && !ismode_w(field[n + 2 - sol].start, + field[n + 2 - sol].end, &permset)) { /* Invalid mode, skip entry */ ret = ARCHIVE_WARN; continue; @@ -1615,7 +1629,7 @@ archive_acl_from_text_l(struct archive_a } field[6], name; const char *s, *st; - int numfields, fields, n, r, ret; + int numfields, fields, n, r, sol, ret; int type, types, tag, permset, id; size_t len; char sep; @@ -1663,6 +1677,7 @@ archive_acl_from_text_l(struct archive_a } n = 0; + sol = 0; id = -1; permset = 0; name.start = name.end = NULL; @@ -1734,6 +1749,7 @@ archive_acl_from_text_l(struct archive_a && ismode(field[n + 1].start, field[n + 1].end, &permset)) { /* This is Solaris-style "other:rwx" */ + sol = 1; } else if (fields == (n + 3) && field[n + 1].start < field[n + 1].end) { /* Invalid mask or other field */ @@ -1758,9 +1774,12 @@ archive_acl_from_text_l(struct archive_a continue; } - /* Without "default:" we expect mode in field 2 */ - if (permset == 0 && !ismode(field[n + 2].start, - field[n + 2].end, &permset)) { + /* + * Without "default:" we expect mode in field 3 + * Exception: Solaris other and mask fields + */ + if (permset == 0 && !ismode(field[n + 2 - sol].start, + field[n + 2 - sol].end, &permset)) { /* Invalid mode, skip entry */ ret = ARCHIVE_WARN; continue; Modified: vendor/libarchive/dist/libarchive/archive_acl_private.h ============================================================================== --- vendor/libarchive/dist/libarchive/archive_acl_private.h Thu Feb 2 00:12:24 2017 (r313070) +++ vendor/libarchive/dist/libarchive/archive_acl_private.h Thu Feb 2 00:20:18 2017 (r313071) @@ -56,6 +56,7 @@ struct archive_acl { void archive_acl_clear(struct archive_acl *); void archive_acl_copy(struct archive_acl *, struct archive_acl *); int archive_acl_count(struct archive_acl *, int); +int archive_acl_types(struct archive_acl *); int archive_acl_reset(struct archive_acl *, int); int archive_acl_next(struct archive *, struct archive_acl *, int, int *, int *, int *, int *, const char **); Modified: vendor/libarchive/dist/libarchive/archive_entry.c ============================================================================== --- vendor/libarchive/dist/libarchive/archive_entry.c Thu Feb 2 00:12:24 2017 (r313070) +++ vendor/libarchive/dist/libarchive/archive_entry.c Thu Feb 2 00:20:18 2017 (r313071) @@ -1447,7 +1447,7 @@ archive_entry_acl_add_entry_w(struct arc int archive_entry_acl_types(struct archive_entry *entry) { - return ((&entry->acl)->acl_types); + return (archive_acl_types(&entry->acl)); } /* Modified: vendor/libarchive/dist/libarchive/archive_entry_strmode.c ============================================================================== --- vendor/libarchive/dist/libarchive/archive_entry_strmode.c Thu Feb 2 00:12:24 2017 (r313070) +++ vendor/libarchive/dist/libarchive/archive_entry_strmode.c Thu Feb 2 00:20:18 2017 (r313071) @@ -80,7 +80,7 @@ archive_entry_strmode(struct archive_ent if (mode & 0001) bp[9] = 't'; else bp[9] = 'T'; } - if (archive_entry_acl_count(entry, ARCHIVE_ENTRY_ACL_TYPE_ACCESS)) + if (archive_entry_acl_types(entry) != 0) bp[10] = '+'; return (bp); Modified: vendor/libarchive/dist/libarchive/archive_platform.h ============================================================================== --- vendor/libarchive/dist/libarchive/archive_platform.h Thu Feb 2 00:12:24 2017 (r313070) +++ vendor/libarchive/dist/libarchive/archive_platform.h Thu Feb 2 00:20:18 2017 (r313071) @@ -147,8 +147,25 @@ * acl_set_file(), and ACL_USER, we assume it has the rest of the * POSIX.1e draft functions used in archive_read_extract.c. */ -#if HAVE_SYS_ACL_H && HAVE_ACL_CREATE_ENTRY && HAVE_ACL_INIT && HAVE_ACL_SET_FILE && HAVE_ACL_USER +#if HAVE_SYS_ACL_H && HAVE_ACL_CREATE_ENTRY && HAVE_ACL_INIT && HAVE_ACL_SET_FILE +#if HAVE_ACL_USER #define HAVE_POSIX_ACL 1 +#elif HAVE_ACL_TYPE_EXTENDED +#define HAVE_DARWIN_ACL 1 +#endif +#endif + +/* + * If this platform has , acl_get(), facl_get(), acl_set(), + * facl_set() and types aclent_t and ace_t it uses Solaris-style ACL functions + */ +#if HAVE_SYS_ACL_H && HAVE_ACL_GET && HAVE_FACL_GET && HAVE_ACL_SET && HAVE_FACL_SET && HAVE_ACLENT_T && HAVE_ACE_T +#define HAVE_SUN_ACL 1 +#endif + +/* Define if platform supports NFSv4 ACLs */ +#if (HAVE_POSIX_ACL && HAVE_ACL_TYPE_NFS4) || HAVE_SUN_ACL || HAVE_DARWIN_ACL +#define HAVE_NFS4_ACL 1 #endif /* Modified: vendor/libarchive/dist/libarchive/archive_random.c ============================================================================== --- vendor/libarchive/dist/libarchive/archive_random.c Thu Feb 2 00:12:24 2017 (r313070) +++ vendor/libarchive/dist/libarchive/archive_random.c Thu Feb 2 00:20:18 2017 (r313071) @@ -80,7 +80,7 @@ archive_random(void *buf, size_t nbytes) success = CryptAcquireContext(&hProv, NULL, NULL, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT); - if (!success && GetLastError() == NTE_BAD_KEYSET) { + if (!success && GetLastError() == (DWORD)NTE_BAD_KEYSET) { success = CryptAcquireContext(&hProv, NULL, NULL, PROV_RSA_FULL, CRYPT_NEWKEYSET); } Modified: vendor/libarchive/dist/libarchive/archive_read_disk_entry_from_file.c ============================================================================== --- vendor/libarchive/dist/libarchive/archive_read_disk_entry_from_file.c Thu Feb 2 00:12:24 2017 (r313070) +++ vendor/libarchive/dist/libarchive/archive_read_disk_entry_from_file.c Thu Feb 2 00:20:18 2017 (r313071) @@ -38,6 +38,11 @@ __FBSDID("$FreeBSD: head/lib/libarchive/ #ifdef HAVE_SYS_ACL_H #include #endif +#ifdef HAVE_DARWIN_ACL +#include +#include +#include +#endif #ifdef HAVE_SYS_EXTATTR_H #include #endif @@ -118,6 +123,15 @@ __FBSDID("$FreeBSD: head/lib/libarchive/ #define ACL_GET_PERM acl_get_perm_np #endif +/* NFSv4 platform ACL type */ +#if HAVE_SUN_ACL +#define ARCHIVE_PLATFORM_ACL_TYPE_NFS4 ACE_T +#elif HAVE_DARWIN_ACL +#define ARCHIVE_PLATFORM_ACL_TYPE_NFS4 ACL_TYPE_EXTENDED +#elif HAVE_ACL_TYPE_NFS4 +#define ARCHIVE_PLATFORM_ACL_TYPE_NFS4 ACL_TYPE_NFS4 +#endif + static int setup_acls(struct archive_read_disk *, struct archive_entry *, int *fd); static int setup_mac_metadata(struct archive_read_disk *, @@ -405,17 +419,38 @@ setup_mac_metadata(struct archive_read_d } #endif +#if HAVE_DARWIN_ACL +static int translate_guid(struct archive *, acl_entry_t, + int *, int *, const char **); + +static void add_trivial_nfs4_acl(struct archive_entry *); +#endif + +#if HAVE_SUN_ACL +static int +sun_acl_is_trivial(acl_t *, mode_t, int *trivialp); +#endif -#ifdef HAVE_POSIX_ACL +#if HAVE_POSIX_ACL || HAVE_NFS4_ACL static int translate_acl(struct archive_read_disk *a, - struct archive_entry *entry, acl_t acl, int archive_entry_acl_type); + struct archive_entry *entry, +#if HAVE_SUN_ACL + acl_t *acl, +#else + acl_t acl, +#endif + int archive_entry_acl_type); static int setup_acls(struct archive_read_disk *a, struct archive_entry *entry, int *fd) { const char *accpath; - acl_t acl; +#if HAVE_SUN_ACL + acl_t *acl; +#else + acl_t acl; +#endif int r; accpath = archive_entry_sourcepath(entry); @@ -440,17 +475,20 @@ setup_acls(struct archive_read_disk *a, acl = NULL; -#ifdef ACL_TYPE_NFS4 +#if HAVE_NFS4_ACL /* Try NFSv4 ACL first. */ if (*fd >= 0) -#if HAVE_ACL_GET_FD_NP - acl = acl_get_fd_np(*fd, ACL_TYPE_NFS4); +#if HAVE_SUN_ACL + /* Solaris reads both POSIX.1e and NFSv4 ACL here */ + facl_get(*fd, 0, &acl); +#elif HAVE_ACL_GET_FD_NP + acl = acl_get_fd_np(*fd, ARCHIVE_PLATFORM_ACL_TYPE_NFS4); #else acl = acl_get_fd(*fd); #endif #if HAVE_ACL_GET_LINK_NP else if (!a->follow_symlinks) - acl = acl_get_link_np(accpath, ACL_TYPE_NFS4); + acl = acl_get_link_np(accpath, ARCHIVE_PLATFORM_ACL_TYPE_NFS4); #else else if ((!a->follow_symlinks) && (archive_entry_filetype(entry) == AE_IFLNK)) @@ -459,12 +497,24 @@ setup_acls(struct archive_read_disk *a, acl = NULL; #endif else - acl = acl_get_file(accpath, ACL_TYPE_NFS4); +#if HAVE_SUN_ACL + /* Solaris reads both POSIX.1e and NFSv4 ACLs here */ + acl_get(accpath, 0, &acl); +#else + acl = acl_get_file(accpath, ARCHIVE_PLATFORM_ACL_TYPE_NFS4); +#endif -#if HAVE_ACL_IS_TRIVIAL_NP - if (acl != NULL && acl_is_trivial_np(acl, &r) == 0) { - /* Ignore "trivial" ACLs that just mirror the file mode. */ - if (r) { + +#if HAVE_ACL_IS_TRIVIAL_NP || HAVE_SUN_ACL + /* Ignore "trivial" ACLs that just mirror the file mode. */ + if (acl != NULL) { +#if HAVE_SUN_ACL + if (sun_acl_is_trivial(acl, archive_entry_mode(entry), + &r) == 0 && r == 1) +#elif HAVE_ACL_IS_TRIVIAL_NP + if (acl_is_trivial_np(acl, &r) == 0 && r == 1) +#endif + { acl_free(acl); acl = NULL; /* @@ -474,17 +524,35 @@ setup_acls(struct archive_read_disk *a, return (ARCHIVE_OK); } } -#endif +#endif /* HAVE_ACL_IS_TRIVIAL_NP || HAVE_SUN_ACL */ if (acl != NULL) { r = translate_acl(a, entry, acl, ARCHIVE_ENTRY_ACL_TYPE_NFS4); acl_free(acl); if (r != ARCHIVE_OK) { archive_set_error(&a->archive, errno, +#if HAVE_SUN_ACL + "Couldn't translate ACLs: %s", accpath); +#else "Couldn't translate NFSv4 ACLs: %s", accpath); +#endif } +#if HAVE_DARWIN_ACL + /* + * Because Mac OS doesn't support owner@, group@ and everyone@ + * ACLs we need to add NFSv4 ACLs mirroring the file mode to + * the archive entry. Otherwise extraction on non-Mac platforms + * would lead to an invalid file mode. + */ + if (archive_entry_acl_count(entry, + ARCHIVE_ENTRY_ACL_TYPE_NFS4) > 0) + add_trivial_nfs4_acl(entry); +#endif return (r); } -#endif /* ACL_TYPE_NFS4 */ +#endif /* HAVE_NFS4_ACL */ + +#if HAVE_POSIX_ACL + /* This code path is skipped on MacOS and Solaris */ /* Retrieve access ACL from file. */ if (*fd >= 0) @@ -513,8 +581,7 @@ setup_acls(struct archive_read_disk *a, #endif if (acl != NULL) { - r = translate_acl(a, entry, acl, - ARCHIVE_ENTRY_ACL_TYPE_ACCESS); + r = translate_acl(a, entry, acl, ARCHIVE_ENTRY_ACL_TYPE_ACCESS); acl_free(acl); acl = NULL; if (r != ARCHIVE_OK) { @@ -544,72 +611,560 @@ setup_acls(struct archive_read_disk *a, } } } +#endif /* HAVE_POSIX_ACL */ return (ARCHIVE_OK); } /* - * Translate system ACL into libarchive internal structure. + * Translate system ACL permissions into libarchive internal structure */ - static struct { - int archive_perm; - int platform_perm; + int archive_perm; + int platform_perm; } acl_perm_map[] = { - {ARCHIVE_ENTRY_ACL_EXECUTE, ACL_EXECUTE}, - {ARCHIVE_ENTRY_ACL_WRITE, ACL_WRITE}, - {ARCHIVE_ENTRY_ACL_READ, ACL_READ}, -#ifdef ACL_TYPE_NFS4 - {ARCHIVE_ENTRY_ACL_READ_DATA, ACL_READ_DATA}, - {ARCHIVE_ENTRY_ACL_LIST_DIRECTORY, ACL_LIST_DIRECTORY}, - {ARCHIVE_ENTRY_ACL_WRITE_DATA, ACL_WRITE_DATA}, - {ARCHIVE_ENTRY_ACL_ADD_FILE, ACL_ADD_FILE}, - {ARCHIVE_ENTRY_ACL_APPEND_DATA, ACL_APPEND_DATA}, - {ARCHIVE_ENTRY_ACL_ADD_SUBDIRECTORY, ACL_ADD_SUBDIRECTORY}, - {ARCHIVE_ENTRY_ACL_READ_NAMED_ATTRS, ACL_READ_NAMED_ATTRS}, - {ARCHIVE_ENTRY_ACL_WRITE_NAMED_ATTRS, ACL_WRITE_NAMED_ATTRS}, - {ARCHIVE_ENTRY_ACL_DELETE_CHILD, ACL_DELETE_CHILD}, - {ARCHIVE_ENTRY_ACL_READ_ATTRIBUTES, ACL_READ_ATTRIBUTES}, - {ARCHIVE_ENTRY_ACL_WRITE_ATTRIBUTES, ACL_WRITE_ATTRIBUTES}, - {ARCHIVE_ENTRY_ACL_DELETE, ACL_DELETE}, - {ARCHIVE_ENTRY_ACL_READ_ACL, ACL_READ_ACL}, - {ARCHIVE_ENTRY_ACL_WRITE_ACL, ACL_WRITE_ACL}, - {ARCHIVE_ENTRY_ACL_WRITE_OWNER, ACL_WRITE_OWNER}, - {ARCHIVE_ENTRY_ACL_SYNCHRONIZE, ACL_SYNCHRONIZE} +#if HAVE_SUN_ACL /* Solaris NFSv4 ACL permissions */ + {ARCHIVE_ENTRY_ACL_EXECUTE, ACE_EXECUTE}, + {ARCHIVE_ENTRY_ACL_READ_DATA, ACE_READ_DATA}, + {ARCHIVE_ENTRY_ACL_LIST_DIRECTORY, ACE_LIST_DIRECTORY}, + {ARCHIVE_ENTRY_ACL_WRITE_DATA, ACE_WRITE_DATA}, + {ARCHIVE_ENTRY_ACL_ADD_FILE, ACE_ADD_FILE}, + {ARCHIVE_ENTRY_ACL_APPEND_DATA, ACE_APPEND_DATA}, + {ARCHIVE_ENTRY_ACL_ADD_SUBDIRECTORY, ACE_ADD_SUBDIRECTORY}, + {ARCHIVE_ENTRY_ACL_READ_NAMED_ATTRS, ACE_READ_NAMED_ATTRS}, + {ARCHIVE_ENTRY_ACL_WRITE_NAMED_ATTRS, ACE_WRITE_NAMED_ATTRS}, + {ARCHIVE_ENTRY_ACL_DELETE_CHILD, ACE_DELETE_CHILD}, + {ARCHIVE_ENTRY_ACL_READ_ATTRIBUTES, ACE_READ_ATTRIBUTES}, + {ARCHIVE_ENTRY_ACL_WRITE_ATTRIBUTES, ACE_WRITE_ATTRIBUTES}, + {ARCHIVE_ENTRY_ACL_DELETE, ACE_DELETE}, + {ARCHIVE_ENTRY_ACL_READ_ACL, ACE_READ_ACL}, + {ARCHIVE_ENTRY_ACL_WRITE_ACL, ACE_WRITE_ACL}, + {ARCHIVE_ENTRY_ACL_WRITE_OWNER, ACE_WRITE_OWNER}, + {ARCHIVE_ENTRY_ACL_SYNCHRONIZE, ACE_SYNCHRONIZE} +#elif HAVE_DARWIN_ACL /* MacOS ACL permissions */ + {ARCHIVE_ENTRY_ACL_READ_DATA, ACL_READ_DATA}, + {ARCHIVE_ENTRY_ACL_LIST_DIRECTORY, ACL_LIST_DIRECTORY}, + {ARCHIVE_ENTRY_ACL_WRITE_DATA, ACL_WRITE_DATA}, + {ARCHIVE_ENTRY_ACL_ADD_FILE, ACL_ADD_FILE}, + {ARCHIVE_ENTRY_ACL_EXECUTE, ACL_EXECUTE}, + {ARCHIVE_ENTRY_ACL_DELETE, ACL_DELETE}, + {ARCHIVE_ENTRY_ACL_APPEND_DATA, ACL_APPEND_DATA}, + {ARCHIVE_ENTRY_ACL_ADD_SUBDIRECTORY, ACL_ADD_SUBDIRECTORY}, + {ARCHIVE_ENTRY_ACL_DELETE_CHILD, ACL_DELETE_CHILD}, + {ARCHIVE_ENTRY_ACL_READ_ATTRIBUTES, ACL_READ_ATTRIBUTES}, + {ARCHIVE_ENTRY_ACL_WRITE_ATTRIBUTES, ACL_WRITE_ATTRIBUTES}, + {ARCHIVE_ENTRY_ACL_READ_NAMED_ATTRS, ACL_READ_EXTATTRIBUTES}, + {ARCHIVE_ENTRY_ACL_WRITE_NAMED_ATTRS, ACL_WRITE_EXTATTRIBUTES}, + {ARCHIVE_ENTRY_ACL_READ_ACL, ACL_READ_SECURITY}, + {ARCHIVE_ENTRY_ACL_WRITE_ACL, ACL_WRITE_SECURITY}, + {ARCHIVE_ENTRY_ACL_WRITE_OWNER, ACL_CHANGE_OWNER}, + {ARCHIVE_ENTRY_ACL_SYNCHRONIZE, ACL_SYNCHRONIZE} +#else /* POSIX.1e ACL permissions */ + {ARCHIVE_ENTRY_ACL_EXECUTE, ACL_EXECUTE}, + {ARCHIVE_ENTRY_ACL_WRITE, ACL_WRITE}, + {ARCHIVE_ENTRY_ACL_READ, ACL_READ}, +#if HAVE_ACL_TYPE_NFS4 /* FreeBSD NFSv4 ACL permissions */ + {ARCHIVE_ENTRY_ACL_READ_DATA, ACL_READ_DATA}, + {ARCHIVE_ENTRY_ACL_LIST_DIRECTORY, ACL_LIST_DIRECTORY}, + {ARCHIVE_ENTRY_ACL_WRITE_DATA, ACL_WRITE_DATA}, + {ARCHIVE_ENTRY_ACL_ADD_FILE, ACL_ADD_FILE}, + {ARCHIVE_ENTRY_ACL_APPEND_DATA, ACL_APPEND_DATA}, + {ARCHIVE_ENTRY_ACL_ADD_SUBDIRECTORY, ACL_ADD_SUBDIRECTORY}, + {ARCHIVE_ENTRY_ACL_READ_NAMED_ATTRS, ACL_READ_NAMED_ATTRS}, + {ARCHIVE_ENTRY_ACL_WRITE_NAMED_ATTRS, ACL_WRITE_NAMED_ATTRS}, + {ARCHIVE_ENTRY_ACL_DELETE_CHILD, ACL_DELETE_CHILD}, + {ARCHIVE_ENTRY_ACL_READ_ATTRIBUTES, ACL_READ_ATTRIBUTES}, + {ARCHIVE_ENTRY_ACL_WRITE_ATTRIBUTES, ACL_WRITE_ATTRIBUTES}, + {ARCHIVE_ENTRY_ACL_DELETE, ACL_DELETE}, + {ARCHIVE_ENTRY_ACL_READ_ACL, ACL_READ_ACL}, + {ARCHIVE_ENTRY_ACL_WRITE_ACL, ACL_WRITE_ACL}, + {ARCHIVE_ENTRY_ACL_WRITE_OWNER, ACL_WRITE_OWNER}, + {ARCHIVE_ENTRY_ACL_SYNCHRONIZE, ACL_SYNCHRONIZE} #endif +#endif /* !HAVE_SUN_ACL && !HAVE_DARWIN_ACL */ }; -#ifdef ACL_TYPE_NFS4 +#if HAVE_NFS4_ACL +/* + * Translate system NFSv4 inheritance flags into libarchive internal structure + */ static struct { - int archive_inherit; - int platform_inherit; + int archive_inherit; + int platform_inherit; } acl_inherit_map[] = { - {ARCHIVE_ENTRY_ACL_ENTRY_FILE_INHERIT, ACL_ENTRY_FILE_INHERIT}, +#if HAVE_SUN_ACL /* Solaris ACL inheritance flags */ + {ARCHIVE_ENTRY_ACL_ENTRY_FILE_INHERIT, ACE_FILE_INHERIT_ACE}, + {ARCHIVE_ENTRY_ACL_ENTRY_DIRECTORY_INHERIT, ACE_DIRECTORY_INHERIT_ACE}, + {ARCHIVE_ENTRY_ACL_ENTRY_NO_PROPAGATE_INHERIT, ACE_NO_PROPAGATE_INHERIT_ACE}, + {ARCHIVE_ENTRY_ACL_ENTRY_INHERIT_ONLY, ACE_INHERIT_ONLY_ACE}, + {ARCHIVE_ENTRY_ACL_ENTRY_SUCCESSFUL_ACCESS, ACE_SUCCESSFUL_ACCESS_ACE_FLAG}, + {ARCHIVE_ENTRY_ACL_ENTRY_FAILED_ACCESS, ACE_FAILED_ACCESS_ACE_FLAG}, + {ARCHIVE_ENTRY_ACL_ENTRY_INHERITED, ACE_INHERITED_ACE} +#elif HAVE_DARWIN_ACL /* MacOS NFSv4 inheritance flags */ + {ARCHIVE_ENTRY_ACL_ENTRY_INHERITED, ACL_ENTRY_INHERITED}, + {ARCHIVE_ENTRY_ACL_ENTRY_FILE_INHERIT, ACL_ENTRY_FILE_INHERIT}, + {ARCHIVE_ENTRY_ACL_ENTRY_DIRECTORY_INHERIT, ACL_ENTRY_DIRECTORY_INHERIT}, + {ARCHIVE_ENTRY_ACL_ENTRY_NO_PROPAGATE_INHERIT, ACL_ENTRY_LIMIT_INHERIT}, + {ARCHIVE_ENTRY_ACL_ENTRY_INHERIT_ONLY, ACL_ENTRY_ONLY_INHERIT} +#else /* FreeBSD NFSv4 ACL inheritance flags */ + {ARCHIVE_ENTRY_ACL_ENTRY_FILE_INHERIT, ACL_ENTRY_FILE_INHERIT}, {ARCHIVE_ENTRY_ACL_ENTRY_DIRECTORY_INHERIT, ACL_ENTRY_DIRECTORY_INHERIT}, {ARCHIVE_ENTRY_ACL_ENTRY_NO_PROPAGATE_INHERIT, ACL_ENTRY_NO_PROPAGATE_INHERIT}, {ARCHIVE_ENTRY_ACL_ENTRY_INHERIT_ONLY, ACL_ENTRY_INHERIT_ONLY}, {ARCHIVE_ENTRY_ACL_ENTRY_SUCCESSFUL_ACCESS, ACL_ENTRY_SUCCESSFUL_ACCESS}, {ARCHIVE_ENTRY_ACL_ENTRY_FAILED_ACCESS, ACL_ENTRY_FAILED_ACCESS}, {ARCHIVE_ENTRY_ACL_ENTRY_INHERITED, ACL_ENTRY_INHERITED} +#endif /* !HAVE_SUN_ACL && !HAVE_DARWIN_ACL */ }; -#endif +#endif /* HAVE_NFS4_ACL */ + +#if HAVE_DARWIN_ACL +static int translate_guid(struct archive *a, acl_entry_t acl_entry, + int *ae_id, int *ae_tag, const char **ae_name) +{ + void *q; + uid_t ugid; + int r, idtype; + struct passwd *pwd; + struct group *grp; + + q = acl_get_qualifier(acl_entry); + if (q == NULL) + return (1); + r = mbr_uuid_to_id((const unsigned char *)q, &ugid, &idtype); + if (r != 0) { + acl_free(q); + return (1); + } + if (idtype == ID_TYPE_UID) { + *ae_tag = ARCHIVE_ENTRY_ACL_USER; + pwd = getpwuuid(q); + if (pwd == NULL) { + *ae_id = ugid; + *ae_name = NULL; + } else { + *ae_id = pwd->pw_uid; + *ae_name = archive_read_disk_uname(a, *ae_id); + } + } else if (idtype == ID_TYPE_GID) { + *ae_tag = ARCHIVE_ENTRY_ACL_GROUP; + grp = getgruuid(q); + if (grp == NULL) { + *ae_id = ugid; + *ae_name = NULL; + } else { + *ae_id = grp->gr_gid; + *ae_name = archive_read_disk_gname(a, *ae_id); + } + } else + r = 1; + + acl_free(q); + return (r); +} + +/* + * Add trivial NFSv4 ACL entries from mode + */ +static void +add_trivial_nfs4_acl(struct archive_entry *entry) +{ + mode_t mode; + int i; + const int rperm = ARCHIVE_ENTRY_ACL_READ_DATA; + const int wperm = ARCHIVE_ENTRY_ACL_WRITE_DATA | + ARCHIVE_ENTRY_ACL_APPEND_DATA; + const int eperm = ARCHIVE_ENTRY_ACL_EXECUTE; + const int pubset = ARCHIVE_ENTRY_ACL_READ_ATTRIBUTES | + ARCHIVE_ENTRY_ACL_READ_NAMED_ATTRS | + ARCHIVE_ENTRY_ACL_READ_ACL | + ARCHIVE_ENTRY_ACL_SYNCHRONIZE; + const int ownset = pubset | ARCHIVE_ENTRY_ACL_WRITE_ATTRIBUTES | + ARCHIVE_ENTRY_ACL_WRITE_NAMED_ATTRS | + ARCHIVE_ENTRY_ACL_WRITE_ACL | + ARCHIVE_ENTRY_ACL_WRITE_OWNER; + + struct { + const int type; + const int tag; + int permset; + } tacl_entry[] = { + {ARCHIVE_ENTRY_ACL_TYPE_ALLOW, ARCHIVE_ENTRY_ACL_USER_OBJ, 0}, + {ARCHIVE_ENTRY_ACL_TYPE_DENY, ARCHIVE_ENTRY_ACL_USER_OBJ, 0}, + {ARCHIVE_ENTRY_ACL_TYPE_DENY, ARCHIVE_ENTRY_ACL_GROUP_OBJ, 0}, + {ARCHIVE_ENTRY_ACL_TYPE_ALLOW, ARCHIVE_ENTRY_ACL_USER_OBJ, ownset}, + {ARCHIVE_ENTRY_ACL_TYPE_ALLOW, ARCHIVE_ENTRY_ACL_GROUP_OBJ, pubset}, + {ARCHIVE_ENTRY_ACL_TYPE_ALLOW, ARCHIVE_ENTRY_ACL_EVERYONE, pubset} + }; + + mode = archive_entry_mode(entry); + + /* Permissions for everyone@ */ + if (mode & 0004) + tacl_entry[5].permset |= rperm; + if (mode & 0002) + tacl_entry[5].permset |= wperm; + if (mode & 0001) + tacl_entry[5].permset |= eperm; + + /* Permissions for group@ */ + if (mode & 0040) + tacl_entry[4].permset |= rperm; + else if (mode & 0004) + tacl_entry[2].permset |= rperm; + if (mode & 0020) + tacl_entry[4].permset |= wperm; + else if (mode & 0002) + tacl_entry[2].permset |= wperm; + if (mode & 0010) + tacl_entry[4].permset |= eperm; + else if (mode & 0001) + tacl_entry[2].permset |= eperm; + + /* Permissions for owner@ */ + if (mode & 0400) { + tacl_entry[3].permset |= rperm; + if (!(mode & 0040) && (mode & 0004)) + tacl_entry[0].permset |= rperm; + } else if ((mode & 0040) || (mode & 0004)) + tacl_entry[1].permset |= rperm; + if (mode & 0200) { + tacl_entry[3].permset |= wperm; + if (!(mode & 0020) && (mode & 0002)) + tacl_entry[0].permset |= wperm; + } else if ((mode & 0020) || (mode & 0002)) + tacl_entry[1].permset |= wperm; + if (mode & 0100) { + tacl_entry[3].permset |= eperm; + if (!(mode & 0010) && (mode & 0001)) + tacl_entry[0].permset |= eperm; + } else if ((mode & 0010) || (mode & 0001)) + tacl_entry[1].permset |= eperm; + + for (i = 0; i < 6; i++) { + if (tacl_entry[i].permset != 0) { + archive_entry_acl_add_entry(entry, + tacl_entry[i].type, tacl_entry[i].permset, + tacl_entry[i].tag, -1, NULL); + } + } + + return; +} +#elif HAVE_SUN_ACL +/* + * Check if acl is trivial + * This is a FreeBSD acl_is_trivial_np() implementation for Solaris + */ +static int +sun_acl_is_trivial(acl_t *acl, mode_t mode, int *trivialp) +{ + int i, p; + const uint32_t rperm = ACE_READ_DATA; + const uint32_t wperm = ACE_WRITE_DATA | ACE_APPEND_DATA; + const uint32_t eperm = ACE_EXECUTE; + const uint32_t pubset = ACE_READ_ATTRIBUTES | ACE_READ_NAMED_ATTRS | + ACE_READ_ACL | ACE_SYNCHRONIZE; + const uint32_t ownset = pubset | ACE_WRITE_ATTRIBUTES | + ACE_WRITE_NAMED_ATTRS | ACE_WRITE_ACL | ACE_WRITE_OWNER; + + ace_t *ace; + ace_t tace[6]; + + if (acl == NULL || trivialp == NULL) + return (-1); + + *trivialp = 0; + + /* ACL_IS_TRIVIAL flag must be set for both POSIX.1e and NFSv4 ACLs */ + if ((acl->acl_flags & ACL_IS_TRIVIAL) == 0) + return (0); + + /* + * POSIX.1e ACLs marked with ACL_IS_TRIVIAL are compatible with + * FreeBSD acl_is_trivial_np(). On Solaris they have 4 entries, + * incuding mask. + */ + if (acl->acl_type == ACLENT_T) { + if (acl->acl_cnt == 4) + *trivialp = 1; + return (0); + } + + if (acl->acl_type != ACE_T || acl->acl_entry_size != sizeof(ace_t)) + return (-1); + + /* + * Continue with checking NFSv4 ACLs + * + * Create list of trivial ace's to be compared + */ + + /* owner@ allow pre */ + tace[0].a_flags = ACE_OWNER; + tace[0].a_type = ACE_ACCESS_ALLOWED_ACE_TYPE; + tace[0].a_access_mask = 0; + + /* owner@ deny */ + tace[1].a_flags = ACE_OWNER; + tace[1].a_type = ACE_ACCESS_DENIED_ACE_TYPE; + tace[1].a_access_mask = 0; + + /* group@ deny */ + tace[2].a_flags = ACE_GROUP | ACE_IDENTIFIER_GROUP; + tace[2].a_type = ACE_ACCESS_DENIED_ACE_TYPE; + tace[2].a_access_mask = 0; + + /* owner@ allow */ + tace[3].a_flags = ACE_OWNER; + tace[3].a_type = ACE_ACCESS_ALLOWED_ACE_TYPE; + tace[3].a_access_mask = ownset; + + /* group@ allow */ + tace[4].a_flags = ACE_GROUP | ACE_IDENTIFIER_GROUP; + tace[4].a_type = ACE_ACCESS_ALLOWED_ACE_TYPE; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-vendor@freebsd.org Thu Feb 2 19:22:29 2017 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1B531CCD4B9; Thu, 2 Feb 2017 19:22:29 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id ABF8D16C1; Thu, 2 Feb 2017 19:22:28 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v12JMRO3044726; Thu, 2 Feb 2017 19:22:27 GMT (envelope-from jkim@FreeBSD.org) Received: (from jkim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v12JMRUF044718; Thu, 2 Feb 2017 19:22:27 GMT (envelope-from jkim@FreeBSD.org) Message-Id: <201702021922.v12JMRUF044718@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jkim set sender to jkim@FreeBSD.org using -f From: Jung-uk Kim Date: Thu, 2 Feb 2017 19:22:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r313101 - in vendor/byacc/dist: . package package/debian package/pkgsrc test test/btyacc test/yacc X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 Feb 2017 19:22:29 -0000 Author: jkim Date: Thu Feb 2 19:22:26 2017 New Revision: 313101 URL: https://svnweb.freebsd.org/changeset/base/313101 Log: Import byacc 20170201. Added: vendor/byacc/dist/test/btyacc/expr.oxout.error vendor/byacc/dist/test/btyacc/expr.oxout.output vendor/byacc/dist/test/btyacc/expr.oxout.tab.c (contents, props changed) vendor/byacc/dist/test/btyacc/expr.oxout.tab.h (contents, props changed) vendor/byacc/dist/test/expr.oxout.y vendor/byacc/dist/test/yacc/expr.oxout.error vendor/byacc/dist/test/yacc/expr.oxout.output vendor/byacc/dist/test/yacc/expr.oxout.tab.c (contents, props changed) vendor/byacc/dist/test/yacc/expr.oxout.tab.h (contents, props changed) Modified: vendor/byacc/dist/CHANGES vendor/byacc/dist/MANIFEST vendor/byacc/dist/VERSION vendor/byacc/dist/aclocal.m4 vendor/byacc/dist/config.guess vendor/byacc/dist/config.sub vendor/byacc/dist/configure vendor/byacc/dist/defs.h vendor/byacc/dist/main.c vendor/byacc/dist/package/byacc.spec vendor/byacc/dist/package/debian/changelog vendor/byacc/dist/package/debian/copyright vendor/byacc/dist/package/mingw-byacc.spec vendor/byacc/dist/package/pkgsrc/Makefile vendor/byacc/dist/reader.c Modified: vendor/byacc/dist/CHANGES ============================================================================== --- vendor/byacc/dist/CHANGES Thu Feb 2 18:27:20 2017 (r313100) +++ vendor/byacc/dist/CHANGES Thu Feb 2 19:22:26 2017 (r313101) @@ -1,3 +1,33 @@ +2017-02-01 Thomas E. Dickey + + * test/btyacc/expr.oxout.error, test/btyacc/expr.oxout.output, test/btyacc/expr.oxout.tab.c, test/btyacc/expr.oxout.tab.h, test/yacc/expr.oxout.error, test/yacc/expr.oxout.output, test/yacc/expr.oxout.tab.c, test/yacc/expr.oxout.tab.h: + RCS_BASE + + * package/debian/copyright: update copyright + + * reader.c, defs.h, main.c: + avoid using regex.h since some low-end platforms do not have this + + * test/expr.oxout.y: RCS_BASE + + * configure: regen + + * aclocal.m4: quiet a strict gcc warning in CF_MKSTEMP + +2017-02-01 Tom.Shields + + * main.c, reader.c, defs.h: + process #line directives, like bison and flex + +2017-02-01 Thomas E. Dickey + + * VERSION, package/byacc.spec, package/debian/changelog, package/mingw-byacc.spec, package/pkgsrc/Makefile: + bump + +2016-12-31 Thomas E. Dickey + + * config.guess, config.sub: 2017-01-01 + 2016-12-02 Thomas E. Dickey * test/btyacc/quote_calc4-s.tab.c, test/btyacc/varsyntax_calc1.tab.c, test/btyacc/error.tab.c, test/btyacc/grammar.tab.c, test/btyacc/inherit0.tab.c, test/btyacc/inherit1.tab.c, test/btyacc/inherit2.tab.c, test/btyacc/ok_syntax1.tab.c, test/btyacc/pure_calc.tab.c, test/btyacc/pure_error.tab.c, test/btyacc/quote_calc-s.tab.c, test/btyacc/quote_calc.tab.c, test/btyacc/quote_calc2-s.tab.c, test/btyacc/quote_calc2.tab.c, test/btyacc/quote_calc3-s.tab.c, test/btyacc/quote_calc3.tab.c, test/btyacc/quote_calc4.tab.c, test/btyacc/calc.tab.c, test/btyacc/calc1.tab.c, test/btyacc/calc2.tab.c, test/btyacc/calc3.tab.c, test/btyacc/code_calc.code.c, test/btyacc/code_error.code.c, test/btyacc/empty.tab.c, test/btyacc/err_inherit3.tab.c, test/btyacc/err_inherit4.tab.c, test/btyacc/err_syntax10.tab.c, test/btyacc/err_syntax11.tab.c, test/btyacc/err_syntax12.tab.c, test/btyacc/err_syntax18.tab.c, test/btyacc/err_syntax20.tab.c, test/btyacc/rename_debug.c, test/btyacc/btyacc_calc1.tab.c, test/btyacc /btyacc_demo.tab.c, test/btyacc/btyacc_destroy1.tab.c, test/btyacc/btyacc_destroy2.tab.c, test/btyacc/btyacc_destroy3.tab.c, btyaccpar.c: Modified: vendor/byacc/dist/MANIFEST ============================================================================== --- vendor/byacc/dist/MANIFEST Thu Feb 2 18:27:20 2017 (r313100) +++ vendor/byacc/dist/MANIFEST Thu Feb 2 19:22:26 2017 (r313101) @@ -1,4 +1,4 @@ -MANIFEST for byacc-20161202, version t20161202 +MANIFEST for byacc-20170201, version t20170201 -------------------------------------------------------------------------------- MANIFEST this file ACKNOWLEDGEMENTS original version of byacc - 1993 @@ -77,6 +77,22 @@ test/btyacc/btyacc_demo.error referenc test/btyacc/btyacc_demo.output reference output for testing test/btyacc/btyacc_demo.tab.c reference output for testing test/btyacc/btyacc_demo.tab.h reference output for testing +test/btyacc/btyacc_demo2.error reference output for testing +test/btyacc/btyacc_demo2.output reference output for testing +test/btyacc/btyacc_demo2.tab.c reference output for testing +test/btyacc/btyacc_demo2.tab.h reference output for testing +test/btyacc/btyacc_destroy1.error reference output for testing +test/btyacc/btyacc_destroy1.output reference output for testing +test/btyacc/btyacc_destroy1.tab.c reference output for testing +test/btyacc/btyacc_destroy1.tab.h reference output for testing +test/btyacc/btyacc_destroy2.error reference output for testing +test/btyacc/btyacc_destroy2.output reference output for testing +test/btyacc/btyacc_destroy2.tab.c reference output for testing +test/btyacc/btyacc_destroy2.tab.h reference output for testing +test/btyacc/btyacc_destroy3.error reference output for testing +test/btyacc/btyacc_destroy3.output reference output for testing +test/btyacc/btyacc_destroy3.tab.c reference output for testing +test/btyacc/btyacc_destroy3.tab.h reference output for testing test/btyacc/calc.error reference output for testing test/btyacc/calc.output reference output for testing test/btyacc/calc.tab.c reference output for testing @@ -256,6 +272,10 @@ test/btyacc/error.error referenc test/btyacc/error.output reference output for testing test/btyacc/error.tab.c reference output for testing test/btyacc/error.tab.h reference output for testing +test/btyacc/expr.oxout.error reference output for testing +test/btyacc/expr.oxout.output reference output for testing +test/btyacc/expr.oxout.tab.c reference output for testing +test/btyacc/expr.oxout.tab.h reference output for testing test/btyacc/grammar.dot reference output for testing test/btyacc/grammar.error reference output for testing test/btyacc/grammar.output reference output for testing @@ -359,6 +379,9 @@ test/btyacc/varsyntax_calc1.tab.h refer test subdirectory test/btyacc_calc1.y testcase for btyacc test/btyacc_demo.y testcase for btyacc +test/btyacc_destroy1.y btyacc test-case for %parse-param +test/btyacc_destroy2.y btyacc test-case for %parse-param +test/btyacc_destroy3.y btyacc test-case for %parse-param test/calc.y example from VMS freeware version of byacc test/calc1.y advanced example from Steve Johnson's paper. test/calc2.y test-cases and reference files for %lex-param / %parse-param @@ -403,6 +426,7 @@ test/err_syntax8.y testcase test/err_syntax8a.y testcase for used_reserved() test/err_syntax9.y testcase for tokenized_start() test/error.y original version of byacc - 1993 +test/expr.oxout.y test-case for "#line" feature test/grammar.y grammar from cproto test/inherit0.y testcase for btyacc test/inherit1.y testcase for btyacc @@ -577,6 +601,10 @@ test/yacc/error.error referenc test/yacc/error.output reference output for testing test/yacc/error.tab.c reference output for testing test/yacc/error.tab.h reference output for testing +test/yacc/expr.oxout.error reference output for testing +test/yacc/expr.oxout.output reference output for testing +test/yacc/expr.oxout.tab.c reference output for testing +test/yacc/expr.oxout.tab.h reference output for testing test/yacc/grammar.dot reference output for testing test/yacc/grammar.error reference output for testing test/yacc/grammar.output reference output for testing Modified: vendor/byacc/dist/VERSION ============================================================================== --- vendor/byacc/dist/VERSION Thu Feb 2 18:27:20 2017 (r313100) +++ vendor/byacc/dist/VERSION Thu Feb 2 19:22:26 2017 (r313101) @@ -1 +1 @@ -20161202 +20170201 Modified: vendor/byacc/dist/aclocal.m4 ============================================================================== --- vendor/byacc/dist/aclocal.m4 Thu Feb 2 18:27:20 2017 (r313100) +++ vendor/byacc/dist/aclocal.m4 Thu Feb 2 19:22:26 2017 (r313101) @@ -1,7 +1,7 @@ -dnl $Id: aclocal.m4,v 1.41 2016/12/02 13:03:06 tom Exp $ +dnl $Id: aclocal.m4,v 1.42 2017/02/01 10:12:21 tom Exp $ dnl Macros for byacc configure script (Thomas E. Dickey) dnl --------------------------------------------------------------------------- -dnl Copyright 2004-2015,2016 Thomas E. Dickey +dnl Copyright 2004-2016,2017 Thomas E. Dickey dnl dnl Permission is hereby granted, free of charge, to any person obtaining a dnl copy of this software and associated documentation files (the @@ -803,20 +803,26 @@ fi test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES,1,[Define to 1 if filesystem supports mixed-case filenames.]) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_MKSTEMP version: 9 updated: 2012/10/03 04:34:49 +dnl CF_MKSTEMP version: 10 updated: 2017/01/21 11:12:16 dnl ---------- dnl Check for a working mkstemp. This creates two files, checks that they are dnl successfully created and distinct (AmigaOS apparently fails on the last). AC_DEFUN([CF_MKSTEMP],[ +AC_CHECK_HEADERS( \ +unistd.h \ +) AC_CACHE_CHECK(for working mkstemp, cf_cv_func_mkstemp,[ rm -rf conftest* AC_TRY_RUN([ #include +#ifdef HAVE_UNISTD_H +#include +#endif #include #include #include #include -int main() +int main(void) { char *tmpl = "conftestXXXXXX"; char name[2][80]; Modified: vendor/byacc/dist/config.guess ============================================================================== --- vendor/byacc/dist/config.guess Thu Feb 2 18:27:20 2017 (r313100) +++ vendor/byacc/dist/config.guess Thu Feb 2 19:22:26 2017 (r313101) @@ -1,8 +1,8 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2016 Free Software Foundation, Inc. +# Copyright 1992-2017 Free Software Foundation, Inc. -timestamp='2016-10-02' +timestamp='2017-01-01' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -50,7 +50,7 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2016 Free Software Foundation, Inc. +Copyright 1992-2017 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." Modified: vendor/byacc/dist/config.sub ============================================================================== --- vendor/byacc/dist/config.sub Thu Feb 2 18:27:20 2017 (r313100) +++ vendor/byacc/dist/config.sub Thu Feb 2 19:22:26 2017 (r313101) @@ -1,8 +1,8 @@ #! /bin/sh # Configuration validation subroutine script. -# Copyright 1992-2016 Free Software Foundation, Inc. +# Copyright 1992-2017 Free Software Foundation, Inc. -timestamp='2016-11-19' +timestamp='2017-01-01' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -67,7 +67,7 @@ Report bugs and patches to &5 +for ac_header in \ +unistd.h \ + +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +echo "$as_me:3919: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line 3925 "configure" +#include "confdefs.h" +#include <$ac_header> +_ACEOF +if { (eval echo "$as_me:3929: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + egrep -v '^ *\+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:3935: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + eval "$as_ac_Header=yes" +else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 + eval "$as_ac_Header=no" +fi +rm -f conftest.err conftest.$ac_ext +fi +echo "$as_me:3954: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <&5 echo $ECHO_N "checking for working mkstemp... $ECHO_C" >&6 if test "${cf_cv_func_mkstemp+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -3922,15 +3972,18 @@ if test "$cross_compiling" = yes; then cf_cv_func_mkstemp=maybe else cat >conftest.$ac_ext <<_ACEOF -#line 3925 "configure" +#line 3975 "configure" #include "confdefs.h" #include +#ifdef HAVE_UNISTD_H +#include +#endif #include #include #include #include -int main() +int main(void) { char *tmpl = "conftestXXXXXX"; char name[2][80]; @@ -3960,15 +4013,15 @@ int main() _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:3963: \"$ac_link\"") >&5 +if { (eval echo "$as_me:4016: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:3966: \$? = $ac_status" >&5 + echo "$as_me:4019: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:3968: \"$ac_try\"") >&5 + { (eval echo "$as_me:4021: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:3971: \$? = $ac_status" >&5 + echo "$as_me:4024: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_func_mkstemp=yes @@ -3983,16 +4036,16 @@ rm -f core core.* *.core conftest$ac_exe fi fi -echo "$as_me:3986: result: $cf_cv_func_mkstemp" >&5 +echo "$as_me:4039: result: $cf_cv_func_mkstemp" >&5 echo "${ECHO_T}$cf_cv_func_mkstemp" >&6 if test "x$cf_cv_func_mkstemp" = xmaybe ; then - echo "$as_me:3989: checking for mkstemp" >&5 + echo "$as_me:4042: checking for mkstemp" >&5 echo $ECHO_N "checking for mkstemp... $ECHO_C" >&6 if test "${ac_cv_func_mkstemp+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 3995 "configure" +#line 4048 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char mkstemp (); below. */ @@ -4023,16 +4076,16 @@ f = mkstemp; /* workaround for ICC 12.0. } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:4026: \"$ac_link\"") >&5 +if { (eval echo "$as_me:4079: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:4029: \$? = $ac_status" >&5 + echo "$as_me:4082: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:4032: \"$ac_try\"") >&5 + { (eval echo "$as_me:4085: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:4035: \$? = $ac_status" >&5 + echo "$as_me:4088: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_mkstemp=yes else @@ -4042,7 +4095,7 @@ ac_cv_func_mkstemp=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:4045: result: $ac_cv_func_mkstemp" >&5 +echo "$as_me:4098: result: $ac_cv_func_mkstemp" >&5 echo "${ECHO_T}$ac_cv_func_mkstemp" >&6 fi @@ -4057,13 +4110,13 @@ fi for ac_func in vsnprintf do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:4060: checking for $ac_func" >&5 +echo "$as_me:4113: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 4066 "configure" +#line 4119 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. */ @@ -4094,16 +4147,16 @@ f = $ac_func; /* workaround for ICC 12.0 } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:4097: \"$ac_link\"") >&5 +if { (eval echo "$as_me:4150: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:4100: \$? = $ac_status" >&5 + echo "$as_me:4153: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:4103: \"$ac_try\"") >&5 + { (eval echo "$as_me:4156: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:4106: \$? = $ac_status" >&5 + echo "$as_me:4159: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_var=yes" else @@ -4113,7 +4166,7 @@ eval "$as_ac_var=no" fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:4116: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "$as_me:4169: result: `eval echo '${'$as_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <&5 +echo "$as_me:4179: checking for maximum table size" >&5 echo $ECHO_N "checking for maximum table size... $ECHO_C" >&6 # Check whether --with-max-table-size or --without-max-table-size was given. @@ -4133,12 +4186,12 @@ if test "${with_max_table_size+set}" = s fi; if test -n "$with_max_table_size" then - echo "$as_me:4136: result: $with_max_table_size" >&5 + echo "$as_me:4189: result: $with_max_table_size" >&5 echo "${ECHO_T}$with_max_table_size" >&6 check=`expr "$with_max_table_size" + 0` if test "x$check" != "x$with_max_table_size" then - { { echo "$as_me:4141: error: invalid value for --with-max-table-size: $with_max_table_size" >&5 + { { echo "$as_me:4194: error: invalid value for --with-max-table-size: $with_max_table_size" >&5 echo "$as_me: error: invalid value for --with-max-table-size: $with_max_table_size" >&2;} { (exit 1); exit 1; }; } fi @@ -4148,11 +4201,11 @@ cat >>confdefs.h <&5 + echo "$as_me:4204: result: default" >&5 echo "${ECHO_T}default" >&6 fi -echo "$as_me:4155: checking if backtracking extension is wanted" >&5 +echo "$as_me:4208: checking if backtracking extension is wanted" >&5 echo $ECHO_N "checking if backtracking extension is wanted... $ECHO_C" >&6 # Check whether --enable-btyacc or --disable-btyacc was given. @@ -4160,7 +4213,7 @@ if test "${enable_btyacc+set}" = set; th enableval="$enable_btyacc" fi; -echo "$as_me:4163: result: $enable_btyacc" >&5 +echo "$as_me:4216: result: $enable_btyacc" >&5 echo "${ECHO_T}$enable_btyacc" >&6 if test "$enable_btyacc" = "yes"; then @@ -4175,7 +4228,7 @@ fi if ( test "$GCC" = yes || test "$GXX" = yes ) then -echo "$as_me:4178: checking if you want to check for gcc warnings" >&5 +echo "$as_me:4231: checking if you want to check for gcc warnings" >&5 echo $ECHO_N "checking if you want to check for gcc warnings... $ECHO_C" >&6 # Check whether --with-warnings or --without-warnings was given. @@ -4185,7 +4238,7 @@ if test "${with_warnings+set}" = set; th else cf_opt_with_warnings=no fi; -echo "$as_me:4188: result: $cf_opt_with_warnings" >&5 +echo "$as_me:4241: result: $cf_opt_with_warnings" >&5 echo "${ECHO_T}$cf_opt_with_warnings" >&6 if test "$cf_opt_with_warnings" != no ; then @@ -4207,10 +4260,10 @@ cat > conftest.i <&5 + { echo "$as_me:4263: checking for $CC __attribute__ directives..." >&5 echo "$as_me: checking for $CC __attribute__ directives..." >&6;} cat > conftest.$ac_ext <&5 + if { (eval echo "$as_me:4315: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:4265: \$? = $ac_status" >&5 + echo "$as_me:4318: \$? = $ac_status" >&5 (exit $ac_status); }; then - test -n "$verbose" && echo "$as_me:4267: result: ... $cf_attribute" >&5 + test -n "$verbose" && echo "$as_me:4320: result: ... $cf_attribute" >&5 echo "${ECHO_T}... $cf_attribute" >&6 cat conftest.h >>confdefs.h case $cf_attribute in @@ -4328,12 +4381,12 @@ INTEL_COMPILER=no if test "$GCC" = yes ; then case $host_os in (linux*|gnu*) - echo "$as_me:4331: checking if this is really Intel C compiler" >&5 + echo "$as_me:4384: checking if this is really Intel C compiler" >&5 echo $ECHO_N "checking if this is really Intel C compiler... $ECHO_C" >&6 cf_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -no-gcc" cat >conftest.$ac_ext <<_ACEOF -#line 4336 "configure" +#line 4389 "configure" #include "confdefs.h" int @@ -4350,16 +4403,16 @@ make an error } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:4353: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:4406: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:4356: \$? = $ac_status" >&5 + echo "$as_me:4409: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:4359: \"$ac_try\"") >&5 + { (eval echo "$as_me:4412: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:4362: \$? = $ac_status" >&5 + echo "$as_me:4415: \$? = $ac_status" >&5 (exit $ac_status); }; }; then INTEL_COMPILER=yes cf_save_CFLAGS="$cf_save_CFLAGS -we147" @@ -4370,7 +4423,7 @@ cat conftest.$ac_ext >&5 fi rm -f conftest.$ac_objext conftest.$ac_ext CFLAGS="$cf_save_CFLAGS" - echo "$as_me:4373: result: $INTEL_COMPILER" >&5 + echo "$as_me:4426: result: $INTEL_COMPILER" >&5 echo "${ECHO_T}$INTEL_COMPILER" >&6 ;; esac @@ -4379,12 +4432,12 @@ fi CLANG_COMPILER=no if test "$GCC" = yes ; then - echo "$as_me:4382: checking if this is really Clang C compiler" >&5 + echo "$as_me:4435: checking if this is really Clang C compiler" >&5 echo $ECHO_N "checking if this is really Clang C compiler... $ECHO_C" >&6 cf_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -Qunused-arguments" cat >conftest.$ac_ext <<_ACEOF -#line 4387 "configure" +#line 4440 "configure" #include "confdefs.h" int @@ -4401,16 +4454,16 @@ make an error } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:4404: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:4457: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:4407: \$? = $ac_status" >&5 + echo "$as_me:4460: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:4410: \"$ac_try\"") >&5 + { (eval echo "$as_me:4463: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:4413: \$? = $ac_status" >&5 + echo "$as_me:4466: \$? = $ac_status" >&5 (exit $ac_status); }; }; then CLANG_COMPILER=yes cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments" @@ -4421,12 +4474,12 @@ cat conftest.$ac_ext >&5 fi rm -f conftest.$ac_objext conftest.$ac_ext CFLAGS="$cf_save_CFLAGS" - echo "$as_me:4424: result: $CLANG_COMPILER" >&5 + echo "$as_me:4477: result: $CLANG_COMPILER" >&5 echo "${ECHO_T}$CLANG_COMPILER" >&6 fi cat > conftest.$ac_ext <&5 + { echo "$as_me:4499: checking for $CC warning options..." >&5 echo "$as_me: checking for $CC warning options..." >&6;} cf_save_CFLAGS="$CFLAGS" EXTRA_CFLAGS="-Wall" @@ -4459,12 +4512,12 @@ echo "$as_me: checking for $CC warning o wd981 do CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt" - if { (eval echo "$as_me:4462: \"$ac_compile\"") >&5 + if { (eval echo "$as_me:4515: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:4465: \$? = $ac_status" >&5 + echo "$as_me:4518: \$? = $ac_status" >&5 (exit $ac_status); }; then - test -n "$verbose" && echo "$as_me:4467: result: ... -$cf_opt" >&5 + test -n "$verbose" && echo "$as_me:4520: result: ... -$cf_opt" >&5 echo "${ECHO_T}... -$cf_opt" >&6 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt" fi @@ -4473,7 +4526,7 @@ echo "${ECHO_T}... -$cf_opt" >&6 elif test "$GCC" = yes then - { echo "$as_me:4476: checking for $CC warning options..." >&5 + { echo "$as_me:4529: checking for $CC warning options..." >&5 echo "$as_me: checking for $CC warning options..." >&6;} cf_save_CFLAGS="$CFLAGS" EXTRA_CFLAGS= @@ -4497,12 +4550,12 @@ echo "$as_me: checking for $CC warning o Wundef $cf_gcc_warnings $cf_warn_CONST Wwrite-strings do CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt" - if { (eval echo "$as_me:4500: \"$ac_compile\"") >&5 + if { (eval echo "$as_me:4553: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:4503: \$? = $ac_status" >&5 + echo "$as_me:4556: \$? = $ac_status" >&5 (exit $ac_status); }; then - test -n "$verbose" && echo "$as_me:4505: result: ... -$cf_opt" >&5 + test -n "$verbose" && echo "$as_me:4558: result: ... -$cf_opt" >&5 echo "${ECHO_T}... -$cf_opt" >&6 case $cf_opt in (Wcast-qual) @@ -4513,7 +4566,7 @@ echo "${ECHO_T}... -$cf_opt" >&6 ([34].*) test -n "$verbose" && echo " feature is broken in gcc $GCC_VERSION" 1>&6 -echo "${as_me:-configure}:4516: testing feature is broken in gcc $GCC_VERSION ..." 1>&5 +echo "${as_me:-configure}:4569: testing feature is broken in gcc $GCC_VERSION ..." 1>&5 continue;; esac @@ -4523,7 +4576,7 @@ echo "${as_me:-configure}:4516: testing ([12].*) test -n "$verbose" && echo " feature is broken in gcc $GCC_VERSION" 1>&6 -echo "${as_me:-configure}:4526: testing feature is broken in gcc $GCC_VERSION ..." 1>&5 +echo "${as_me:-configure}:4579: testing feature is broken in gcc $GCC_VERSION ..." 1>&5 continue;; esac @@ -4539,7 +4592,7 @@ rm -rf conftest* fi fi -echo "$as_me:4542: checking if you want to see long compiling messages" >&5 +echo "$as_me:4595: checking if you want to see long compiling messages" >&5 echo $ECHO_N "checking if you want to see long compiling messages... $ECHO_C" >&6 # Check whether --enable-echo or --disable-echo was given. @@ -4573,10 +4626,10 @@ else ECHO_CC='' fi; -echo "$as_me:4576: result: $enableval" >&5 +echo "$as_me:4629: result: $enableval" >&5 echo "${ECHO_T}$enableval" >&6 -echo "$as_me:4579: checking if you want to use dmalloc for testing" >&5 +echo "$as_me:4632: checking if you want to use dmalloc for testing" >&5 echo $ECHO_N "checking if you want to use dmalloc for testing... $ECHO_C" >&6 # Check whether --with-dmalloc or --without-dmalloc was given. @@ -4593,7 +4646,7 @@ EOF else with_dmalloc= fi; -echo "$as_me:4596: result: ${with_dmalloc:-no}" >&5 +echo "$as_me:4649: result: ${with_dmalloc:-no}" >&5 echo "${ECHO_T}${with_dmalloc:-no}" >&6 case .$with_cflags in @@ -4687,23 +4740,23 @@ fi esac if test "$with_dmalloc" = yes ; then - echo "$as_me:4690: checking for dmalloc.h" >&5 + echo "$as_me:4743: checking for dmalloc.h" >&5 echo $ECHO_N "checking for dmalloc.h... $ECHO_C" >&6 if test "${ac_cv_header_dmalloc_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 4696 "configure" +#line 4749 "configure" #include "confdefs.h" #include _ACEOF -if { (eval echo "$as_me:4700: \"$ac_cpp conftest.$ac_ext\"") >&5 +if { (eval echo "$as_me:4753: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:4706: \$? = $ac_status" >&5 + echo "$as_me:4759: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag @@ -4722,11 +4775,11 @@ else fi rm -f conftest.err conftest.$ac_ext fi -echo "$as_me:4725: result: $ac_cv_header_dmalloc_h" >&5 +echo "$as_me:4778: result: $ac_cv_header_dmalloc_h" >&5 echo "${ECHO_T}$ac_cv_header_dmalloc_h" >&6 if test $ac_cv_header_dmalloc_h = yes; then -echo "$as_me:4729: checking for dmalloc_debug in -ldmalloc" >&5 +echo "$as_me:4782: checking for dmalloc_debug in -ldmalloc" >&5 echo $ECHO_N "checking for dmalloc_debug in -ldmalloc... $ECHO_C" >&6 if test "${ac_cv_lib_dmalloc_dmalloc_debug+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -4734,7 +4787,7 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-ldmalloc $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line 4737 "configure" +#line 4790 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ @@ -4753,16 +4806,16 @@ dmalloc_debug (); } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:4756: \"$ac_link\"") >&5 +if { (eval echo "$as_me:4809: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:4759: \$? = $ac_status" >&5 + echo "$as_me:4812: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:4762: \"$ac_try\"") >&5 + { (eval echo "$as_me:4815: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:4765: \$? = $ac_status" >&5 + echo "$as_me:4818: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dmalloc_dmalloc_debug=yes else @@ -4773,7 +4826,7 @@ fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:4776: result: $ac_cv_lib_dmalloc_dmalloc_debug" >&5 +echo "$as_me:4829: result: $ac_cv_lib_dmalloc_dmalloc_debug" >&5 echo "${ECHO_T}$ac_cv_lib_dmalloc_dmalloc_debug" >&6 if test $ac_cv_lib_dmalloc_dmalloc_debug = yes; then cat >>confdefs.h <&5 +echo "$as_me:4844: checking if you want to use dbmalloc for testing" >&5 echo $ECHO_N "checking if you want to use dbmalloc for testing... $ECHO_C" >&6 # Check whether --with-dbmalloc or --without-dbmalloc was given. @@ -4805,7 +4858,7 @@ EOF else with_dbmalloc= fi; -echo "$as_me:4808: result: ${with_dbmalloc:-no}" >&5 +echo "$as_me:4861: result: ${with_dbmalloc:-no}" >&5 echo "${ECHO_T}${with_dbmalloc:-no}" >&6 case .$with_cflags in @@ -4899,23 +4952,23 @@ fi esac if test "$with_dbmalloc" = yes ; then - echo "$as_me:4902: checking for dbmalloc.h" >&5 + echo "$as_me:4955: checking for dbmalloc.h" >&5 echo $ECHO_N "checking for dbmalloc.h... $ECHO_C" >&6 if test "${ac_cv_header_dbmalloc_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 4908 "configure" +#line 4961 "configure" #include "confdefs.h" #include _ACEOF -if { (eval echo "$as_me:4912: \"$ac_cpp conftest.$ac_ext\"") >&5 +if { (eval echo "$as_me:4965: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:4918: \$? = $ac_status" >&5 + echo "$as_me:4971: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag @@ -4934,11 +4987,11 @@ else fi rm -f conftest.err conftest.$ac_ext fi -echo "$as_me:4937: result: $ac_cv_header_dbmalloc_h" >&5 +echo "$as_me:4990: result: $ac_cv_header_dbmalloc_h" >&5 echo "${ECHO_T}$ac_cv_header_dbmalloc_h" >&6 if test $ac_cv_header_dbmalloc_h = yes; then -echo "$as_me:4941: checking for debug_malloc in -ldbmalloc" >&5 +echo "$as_me:4994: checking for debug_malloc in -ldbmalloc" >&5 echo $ECHO_N "checking for debug_malloc in -ldbmalloc... $ECHO_C" >&6 if test "${ac_cv_lib_dbmalloc_debug_malloc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -4946,7 +4999,7 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-ldbmalloc $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line 4949 "configure" +#line 5002 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ @@ -4965,16 +5018,16 @@ debug_malloc (); } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:4968: \"$ac_link\"") >&5 +if { (eval echo "$as_me:5021: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:4971: \$? = $ac_status" >&5 + echo "$as_me:5024: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:4974: \"$ac_try\"") >&5 + { (eval echo "$as_me:5027: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:4977: \$? = $ac_status" >&5 + echo "$as_me:5030: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dbmalloc_debug_malloc=yes else @@ -4985,7 +5038,7 @@ fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:4988: result: $ac_cv_lib_dbmalloc_debug_malloc" >&5 +echo "$as_me:5041: result: $ac_cv_lib_dbmalloc_debug_malloc" >&5 echo "${ECHO_T}$ac_cv_lib_dbmalloc_debug_malloc" >&6 if test $ac_cv_lib_dbmalloc_debug_malloc = yes; then cat >>confdefs.h <&5 +echo "$as_me:5056: checking if you want to use valgrind for testing" >&5 echo $ECHO_N "checking if you want to use valgrind for testing... $ECHO_C" >&6 # Check whether --with-valgrind or --without-valgrind was given. @@ -5017,7 +5070,7 @@ EOF else with_valgrind= fi; -echo "$as_me:5020: result: ${with_valgrind:-no}" >&5 +echo "$as_me:5073: result: ${with_valgrind:-no}" >&5 echo "${ECHO_T}${with_valgrind:-no}" >&6 case .$with_cflags in @@ -5110,7 +5163,7 @@ fi ;; esac -echo "$as_me:5113: checking if you want to perform memory-leak testing" >&5 +echo "$as_me:5166: checking if you want to perform memory-leak testing" >&5 echo $ECHO_N "checking if you want to perform memory-leak testing... $ECHO_C" >&6 # Check whether --enable-leaks or --disable-leaks was given. @@ -5120,7 +5173,7 @@ if test "${enable_leaks+set}" = set; the else : ${with_no_leaks:=no} fi; -echo "$as_me:5123: result: $with_no_leaks" >&5 +echo "$as_me:5176: result: $with_no_leaks" >&5 echo "${ECHO_T}$with_no_leaks" >&6 if test "$with_no_leaks" = yes ; then @@ -5137,7 +5190,7 @@ fi # Extract the first word of "groff", so it can be a program name with args. set dummy groff; ac_word=$2 -echo "$as_me:5140: checking for $ac_word" >&5 +echo "$as_me:5193: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_path_GROFF_PATH+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -5154,7 +5207,7 @@ for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if $as_executable_p "$ac_dir/$ac_word"; then ac_cv_path_GROFF_PATH="$ac_dir/$ac_word" - echo "$as_me:5157: found $ac_dir/$ac_word" >&5 + echo "$as_me:5210: found $ac_dir/$ac_word" >&5 break fi done @@ -5166,16 +5219,16 @@ fi GROFF_PATH=$ac_cv_path_GROFF_PATH if test -n "$GROFF_PATH"; then - echo "$as_me:5169: result: $GROFF_PATH" >&5 + echo "$as_me:5222: result: $GROFF_PATH" >&5 echo "${ECHO_T}$GROFF_PATH" >&6 else - echo "$as_me:5172: result: no" >&5 + echo "$as_me:5225: result: no" >&5 echo "${ECHO_T}no" >&6 fi # Extract the first word of "nroff", so it can be a program name with args. set dummy nroff; ac_word=$2 -echo "$as_me:5178: checking for $ac_word" >&5 +echo "$as_me:5231: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_path_NROFF_PATH+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -5192,7 +5245,7 @@ for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if $as_executable_p "$ac_dir/$ac_word"; then ac_cv_path_NROFF_PATH="$ac_dir/$ac_word" - echo "$as_me:5195: found $ac_dir/$ac_word" >&5 + echo "$as_me:5248: found $ac_dir/$ac_word" >&5 break fi done @@ -5204,10 +5257,10 @@ fi NROFF_PATH=$ac_cv_path_NROFF_PATH if test -n "$NROFF_PATH"; then - echo "$as_me:5207: result: $NROFF_PATH" >&5 + echo "$as_me:5260: result: $NROFF_PATH" >&5 echo "${ECHO_T}$NROFF_PATH" >&6 else - echo "$as_me:5210: result: no" >&5 + echo "$as_me:5263: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -5220,7 +5273,7 @@ else GROFF_NOTE= fi -echo "$as_me:5223: checking for program to convert manpage to html" >&5 +echo "$as_me:5276: checking for program to convert manpage to html" >&5 echo $ECHO_N "checking for program to convert manpage to html... $ECHO_C" >&6 # Check whether --with-man2html or --without-man2html was given. @@ -5235,11 +5288,11 @@ cf_with_groff=no case $cf_man2html in (yes) - echo "$as_me:5238: result: man2html" >&5 + echo "$as_me:5291: result: man2html" >&5 echo "${ECHO_T}man2html" >&6 # Extract the first word of "man2html", so it can be a program name with args. set dummy man2html; ac_word=$2 -echo "$as_me:5242: checking for $ac_word" >&5 +echo "$as_me:5295: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-vendor@freebsd.org Thu Feb 2 19:23:09 2017 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 44E66CCD516; Thu, 2 Feb 2017 19:23:09 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id F0A0D192D; Thu, 2 Feb 2017 19:23:08 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v12JN8uB044797; Thu, 2 Feb 2017 19:23:08 GMT (envelope-from jkim@FreeBSD.org) Received: (from jkim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v12JN8Be044796; Thu, 2 Feb 2017 19:23:08 GMT (envelope-from jkim@FreeBSD.org) Message-Id: <201702021923.v12JN8Be044796@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jkim set sender to jkim@FreeBSD.org using -f From: Jung-uk Kim Date: Thu, 2 Feb 2017 19:23:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r313102 - vendor/byacc/20170201 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 Feb 2017 19:23:09 -0000 Author: jkim Date: Thu Feb 2 19:23:07 2017 New Revision: 313102 URL: https://svnweb.freebsd.org/changeset/base/313102 Log: Tag byacc 20170201. Added: vendor/byacc/20170201/ - copied from r313101, vendor/byacc/dist/ From owner-svn-src-vendor@freebsd.org Fri Feb 3 12:48:45 2017 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B37BDCCD6BE; Fri, 3 Feb 2017 12:48:45 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 82D361D03; Fri, 3 Feb 2017 12:48:45 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v13Cmibv075789; Fri, 3 Feb 2017 12:48:44 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v13CmirH075788; Fri, 3 Feb 2017 12:48:44 GMT (envelope-from des@FreeBSD.org) Message-Id: <201702031248.v13CmirH075788@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Fri, 3 Feb 2017 12:48:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r313153 - vendor-crypto/openssh/dist X-SVN-Group: vendor-crypto MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Feb 2017 12:48:45 -0000 Author: des Date: Fri Feb 3 12:48:44 2017 New Revision: 313153 URL: https://svnweb.freebsd.org/changeset/base/313153 Log: Add missing properties Modified: Directory Properties: vendor-crypto/openssh/dist/cipher-aesctr.c (props changed) vendor-crypto/openssh/dist/cipher-aesctr.h (props changed) vendor-crypto/openssh/dist/platform-tracing.c (props changed) vendor-crypto/openssh/dist/sshbuf-getput-basic.c (props changed) vendor-crypto/openssh/dist/sshbuf-getput-crypto.c (props changed) vendor-crypto/openssh/dist/sshbuf-misc.c (props changed) vendor-crypto/openssh/dist/sshbuf.c (props changed) vendor-crypto/openssh/dist/sshbuf.h (props changed) vendor-crypto/openssh/dist/ssherr.c (props changed) vendor-crypto/openssh/dist/ssherr.h (props changed) vendor-crypto/openssh/dist/sshkey.c (props changed) vendor-crypto/openssh/dist/sshkey.h (props changed) vendor-crypto/openssh/dist/utf8.c (props changed) vendor-crypto/openssh/dist/utf8.h (props changed) From owner-svn-src-vendor@freebsd.org Fri Feb 3 12:51:41 2017 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BFFAACCD888; Fri, 3 Feb 2017 12:51:41 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9AA5828; Fri, 3 Feb 2017 12:51:41 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v13CpeYP078941; Fri, 3 Feb 2017 12:51:40 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v13Cperm078940; Fri, 3 Feb 2017 12:51:40 GMT (envelope-from des@FreeBSD.org) Message-Id: <201702031251.v13Cperm078940@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Fri, 3 Feb 2017 12:51:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r313155 - in vendor-crypto/openssh/dist: . openbsd-compat openbsd-compat/regress regress regress/misc regress/misc/kexfuzz regress/unittests regress/unittests/bitmap regress/unittests/h... X-SVN-Group: vendor-crypto MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Feb 2017 12:51:41 -0000 Author: des Date: Fri Feb 3 12:51:40 2017 New Revision: 313155 URL: https://svnweb.freebsd.org/changeset/base/313155 Log: More property fixups. Damn svn autoprops :( Modified: Directory Properties: vendor-crypto/openssh/dist/openbsd-compat/bsd-err.c (props changed) vendor-crypto/openssh/dist/openbsd-compat/kludge-fd_set.c (props changed) vendor-crypto/openssh/dist/openbsd-compat/regress/opensslvertest.c (props changed) vendor-crypto/openssh/dist/openbsd-compat/strcasestr.c (props changed) vendor-crypto/openssh/dist/platform-pledge.c (props changed) vendor-crypto/openssh/dist/regress/cert-file.sh (props changed) vendor-crypto/openssh/dist/regress/cfgparse.sh (props changed) vendor-crypto/openssh/dist/regress/check-perm.c (props changed) vendor-crypto/openssh/dist/regress/hostkey-agent.sh (props changed) vendor-crypto/openssh/dist/regress/hostkey-rotate.sh (props changed) vendor-crypto/openssh/dist/regress/keygen-knownhosts.sh (props changed) vendor-crypto/openssh/dist/regress/limit-keytype.sh (props changed) vendor-crypto/openssh/dist/regress/misc/Makefile (props changed) vendor-crypto/openssh/dist/regress/misc/kexfuzz/Makefile (props changed) vendor-crypto/openssh/dist/regress/misc/kexfuzz/kexfuzz.c (props changed) vendor-crypto/openssh/dist/regress/moduli.in (props changed) vendor-crypto/openssh/dist/regress/multipubkey.sh (props changed) vendor-crypto/openssh/dist/regress/principals-command.sh (props changed) vendor-crypto/openssh/dist/regress/unittests/Makefile (props changed) vendor-crypto/openssh/dist/regress/unittests/bitmap/Makefile (props changed) vendor-crypto/openssh/dist/regress/unittests/hostkeys/Makefile (props changed) vendor-crypto/openssh/dist/regress/unittests/hostkeys/mktestdata.sh (props changed) vendor-crypto/openssh/dist/regress/unittests/kex/Makefile (props changed) vendor-crypto/openssh/dist/regress/unittests/match/Makefile (props changed) vendor-crypto/openssh/dist/regress/unittests/match/tests.c (props changed) vendor-crypto/openssh/dist/regress/unittests/sshbuf/Makefile (props changed) vendor-crypto/openssh/dist/regress/unittests/sshbuf/test_sshbuf.c (props changed) vendor-crypto/openssh/dist/regress/unittests/sshbuf/test_sshbuf_fixed.c (props changed) vendor-crypto/openssh/dist/regress/unittests/sshbuf/test_sshbuf_fuzz.c (props changed) vendor-crypto/openssh/dist/regress/unittests/sshbuf/test_sshbuf_getput_basic.c (props changed) vendor-crypto/openssh/dist/regress/unittests/sshbuf/test_sshbuf_getput_crypto.c (props changed) vendor-crypto/openssh/dist/regress/unittests/sshbuf/test_sshbuf_getput_fuzz.c (props changed) vendor-crypto/openssh/dist/regress/unittests/sshbuf/test_sshbuf_misc.c (props changed) vendor-crypto/openssh/dist/regress/unittests/sshbuf/tests.c (props changed) vendor-crypto/openssh/dist/regress/unittests/sshkey/Makefile (props changed) vendor-crypto/openssh/dist/regress/unittests/sshkey/common.c (props changed) vendor-crypto/openssh/dist/regress/unittests/sshkey/common.h (props changed) vendor-crypto/openssh/dist/regress/unittests/sshkey/test_file.c (props changed) vendor-crypto/openssh/dist/regress/unittests/sshkey/test_fuzz.c (props changed) vendor-crypto/openssh/dist/regress/unittests/sshkey/test_sshkey.c (props changed) vendor-crypto/openssh/dist/regress/unittests/sshkey/tests.c (props changed) vendor-crypto/openssh/dist/regress/unittests/test_helper/Makefile (props changed) vendor-crypto/openssh/dist/regress/unittests/test_helper/fuzz.c (props changed) vendor-crypto/openssh/dist/regress/unittests/test_helper/test_helper.c (props changed) vendor-crypto/openssh/dist/regress/unittests/test_helper/test_helper.h (props changed) vendor-crypto/openssh/dist/regress/unittests/utf8/Makefile (props changed) vendor-crypto/openssh/dist/regress/unittests/utf8/tests.c (props changed) vendor-crypto/openssh/dist/regress/valgrind-unit.sh (props changed) vendor-crypto/openssh/dist/sandbox-pledge.c (props changed) vendor-crypto/openssh/dist/sandbox-solaris.c (props changed) From owner-svn-src-vendor@freebsd.org Fri Feb 3 13:01:02 2017 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8A20ACCDBBF; Fri, 3 Feb 2017 13:01:02 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4513D8FF; Fri, 3 Feb 2017 13:01:02 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v13D11nR080960; Fri, 3 Feb 2017 13:01:01 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v13D11xv080954; Fri, 3 Feb 2017 13:01:01 GMT (envelope-from des@FreeBSD.org) Message-Id: <201702031301.v13D11xv080954@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Fri, 3 Feb 2017 13:01:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r313156 - in vendor/ldns/dist: . compat contrib/DNS-LDNS contrib/DNS-LDNS/lib/DNS contrib/DNS-LDNS/lib/DNS/LDNS contrib/DNS-LDNS/t contrib/ldnsx contrib/python doc drill examples ldns m... X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Feb 2017 13:01:02 -0000 Author: des Date: Fri Feb 3 13:01:00 2017 New Revision: 313156 URL: https://svnweb.freebsd.org/changeset/base/313156 Log: import ldns 1.7.0 Added: vendor/ldns/dist/contrib/DNS-LDNS/META.yml vendor/ldns/dist/m4/ax_config_feature.m4 vendor/ldns/dist/m4/ax_have_poll.m4 Modified: vendor/ldns/dist/Changelog vendor/ldns/dist/Makefile.in vendor/ldns/dist/README vendor/ldns/dist/README.git vendor/ldns/dist/aclocal.m4 vendor/ldns/dist/acx_nlnetlabs.m4 vendor/ldns/dist/buffer.c vendor/ldns/dist/compat/b64_pton.c vendor/ldns/dist/compat/malloc.c vendor/ldns/dist/compat/snprintf.c vendor/ldns/dist/config.guess vendor/ldns/dist/config.sub vendor/ldns/dist/configure vendor/ldns/dist/configure.ac vendor/ldns/dist/contrib/DNS-LDNS/Changes vendor/ldns/dist/contrib/DNS-LDNS/LDNS.xs vendor/ldns/dist/contrib/DNS-LDNS/Makefile.PL vendor/ldns/dist/contrib/DNS-LDNS/README vendor/ldns/dist/contrib/DNS-LDNS/lib/DNS/LDNS.pm vendor/ldns/dist/contrib/DNS-LDNS/lib/DNS/LDNS/DNSSecDataChain.pm vendor/ldns/dist/contrib/DNS-LDNS/lib/DNS/LDNS/DNSSecName.pm vendor/ldns/dist/contrib/DNS-LDNS/lib/DNS/LDNS/DNSSecRRSets.pm vendor/ldns/dist/contrib/DNS-LDNS/lib/DNS/LDNS/DNSSecRRs.pm vendor/ldns/dist/contrib/DNS-LDNS/lib/DNS/LDNS/DNSSecTrustTree.pm vendor/ldns/dist/contrib/DNS-LDNS/lib/DNS/LDNS/DNSSecZone.pm vendor/ldns/dist/contrib/DNS-LDNS/lib/DNS/LDNS/GC.pm vendor/ldns/dist/contrib/DNS-LDNS/lib/DNS/LDNS/Key.pm vendor/ldns/dist/contrib/DNS-LDNS/lib/DNS/LDNS/KeyList.pm vendor/ldns/dist/contrib/DNS-LDNS/lib/DNS/LDNS/Packet.pm vendor/ldns/dist/contrib/DNS-LDNS/lib/DNS/LDNS/RBNode.pm vendor/ldns/dist/contrib/DNS-LDNS/lib/DNS/LDNS/RBTree.pm vendor/ldns/dist/contrib/DNS-LDNS/lib/DNS/LDNS/RData.pm vendor/ldns/dist/contrib/DNS-LDNS/lib/DNS/LDNS/RR.pm vendor/ldns/dist/contrib/DNS-LDNS/lib/DNS/LDNS/RRList.pm vendor/ldns/dist/contrib/DNS-LDNS/lib/DNS/LDNS/Resolver.pm vendor/ldns/dist/contrib/DNS-LDNS/lib/DNS/LDNS/Zone.pm vendor/ldns/dist/contrib/DNS-LDNS/t/dnssec_datachain.t vendor/ldns/dist/contrib/DNS-LDNS/t/rr.t vendor/ldns/dist/contrib/DNS-LDNS/typemap vendor/ldns/dist/contrib/ldnsx/ldnsx.py vendor/ldns/dist/contrib/python/Makefile vendor/ldns/dist/contrib/python/ldns.i vendor/ldns/dist/contrib/python/ldns_key.i vendor/ldns/dist/contrib/python/ldns_rdf.i vendor/ldns/dist/contrib/python/ldns_resolver.i vendor/ldns/dist/dane.c vendor/ldns/dist/dname.c vendor/ldns/dist/dnssec.c vendor/ldns/dist/dnssec_sign.c vendor/ldns/dist/dnssec_verify.c vendor/ldns/dist/dnssec_zone.c vendor/ldns/dist/doc/TODO vendor/ldns/dist/doc/doxyparse.pl vendor/ldns/dist/doc/function_manpages vendor/ldns/dist/doc/header.html vendor/ldns/dist/drill/chasetrace.c vendor/ldns/dist/drill/config.h.in vendor/ldns/dist/drill/configure vendor/ldns/dist/drill/configure.ac vendor/ldns/dist/drill/drill.1.in vendor/ldns/dist/drill/drill.c vendor/ldns/dist/drill/drill.h vendor/ldns/dist/drill/error.c vendor/ldns/dist/drill/securetrace.c vendor/ldns/dist/drill/work.c vendor/ldns/dist/duration.c vendor/ldns/dist/error.c vendor/ldns/dist/examples/config.h.in vendor/ldns/dist/examples/configure vendor/ldns/dist/examples/configure.ac vendor/ldns/dist/examples/ldns-compare-zones.1 vendor/ldns/dist/examples/ldns-compare-zones.c vendor/ldns/dist/examples/ldns-dane.1.in vendor/ldns/dist/examples/ldns-dane.c vendor/ldns/dist/examples/ldns-dpa.1 vendor/ldns/dist/examples/ldns-dpa.c vendor/ldns/dist/examples/ldns-gen-zone.1 vendor/ldns/dist/examples/ldns-gen-zone.c vendor/ldns/dist/examples/ldns-key2ds.1 vendor/ldns/dist/examples/ldns-key2ds.c vendor/ldns/dist/examples/ldns-keyfetcher.c vendor/ldns/dist/examples/ldns-keygen.1 vendor/ldns/dist/examples/ldns-keygen.c vendor/ldns/dist/examples/ldns-mx.c vendor/ldns/dist/examples/ldns-notify.1 vendor/ldns/dist/examples/ldns-notify.c vendor/ldns/dist/examples/ldns-read-zone.1 vendor/ldns/dist/examples/ldns-read-zone.c vendor/ldns/dist/examples/ldns-signzone.1 vendor/ldns/dist/examples/ldns-signzone.c vendor/ldns/dist/examples/ldns-test-edns.c vendor/ldns/dist/examples/ldns-testns.c vendor/ldns/dist/examples/ldns-testpkts.c vendor/ldns/dist/examples/ldns-update.1 vendor/ldns/dist/examples/ldns-update.c vendor/ldns/dist/examples/ldns-verify-zone.1.in vendor/ldns/dist/examples/ldns-verify-zone.c vendor/ldns/dist/examples/ldns-walk.c vendor/ldns/dist/examples/ldnsd.c vendor/ldns/dist/higher.c vendor/ldns/dist/host2str.c vendor/ldns/dist/host2wire.c vendor/ldns/dist/install-sh vendor/ldns/dist/keys.c vendor/ldns/dist/ldns/buffer.h vendor/ldns/dist/ldns/common.h.in vendor/ldns/dist/ldns/config.h.in vendor/ldns/dist/ldns/dane.h vendor/ldns/dist/ldns/dname.h vendor/ldns/dist/ldns/dnssec.h vendor/ldns/dist/ldns/dnssec_sign.h vendor/ldns/dist/ldns/dnssec_verify.h vendor/ldns/dist/ldns/dnssec_zone.h vendor/ldns/dist/ldns/duration.h vendor/ldns/dist/ldns/error.h vendor/ldns/dist/ldns/higher.h vendor/ldns/dist/ldns/host2str.h vendor/ldns/dist/ldns/host2wire.h vendor/ldns/dist/ldns/keys.h vendor/ldns/dist/ldns/net.h.in vendor/ldns/dist/ldns/packet.h vendor/ldns/dist/ldns/radix.h vendor/ldns/dist/ldns/rbtree.h vendor/ldns/dist/ldns/rdata.h vendor/ldns/dist/ldns/resolver.h vendor/ldns/dist/ldns/rr.h vendor/ldns/dist/ldns/str2host.h vendor/ldns/dist/ldns/tsig.h vendor/ldns/dist/ldns/update.h vendor/ldns/dist/ldns/util.h.in vendor/ldns/dist/ldns/wire2host.h vendor/ldns/dist/ldns/zone.h vendor/ldns/dist/libdns.doxygen vendor/ldns/dist/ltmain.sh vendor/ldns/dist/m4/libtool.m4 vendor/ldns/dist/m4/ltoptions.m4 vendor/ldns/dist/m4/ltsugar.m4 vendor/ldns/dist/m4/ltversion.m4 vendor/ldns/dist/m4/lt~obsolete.m4 vendor/ldns/dist/net.c vendor/ldns/dist/packaging/ldns-config.in vendor/ldns/dist/packet.c vendor/ldns/dist/parse.c vendor/ldns/dist/radix.c vendor/ldns/dist/rbtree.c vendor/ldns/dist/rdata.c vendor/ldns/dist/resolver.c vendor/ldns/dist/rr.c vendor/ldns/dist/rr_functions.c vendor/ldns/dist/str2host.c vendor/ldns/dist/tsig.c vendor/ldns/dist/update.c vendor/ldns/dist/util.c vendor/ldns/dist/wire2host.c vendor/ldns/dist/zone.c Modified: vendor/ldns/dist/Changelog ============================================================================== --- vendor/ldns/dist/Changelog Fri Feb 3 12:51:40 2017 (r313155) +++ vendor/ldns/dist/Changelog Fri Feb 3 13:01:00 2017 (r313156) @@ -1,3 +1,118 @@ +1.7.0 2016-12-20 + * Fix lookup of relative names in ldns_resolver_search. + * bugfix #548: Double free for answers > 4096 in ldns_resolver_send_pkt + * Follow CNAME's when tracing with drill (TODO dnssec trace) + * Fix #551 change Regent to Copyright holder in BSD license in + some of the headings of the file, to match the opensource.org + BSD license. + * -e option makes ldns-compare-zones exit with status code 2 on difference + * Filter out specified RR types with ldns-read-zone -e and -E options + * bugfix #563: Correct DNSKEY from DSA private key. Thanks Peter Koch. + * bugfix #562: ldns-keygen match DSA key maximum size with library. + And check keysizes with all algorithms. Thanks Peter Koch. + * ldns-verify-zone accepts only one single zonefile as argument. + * bugfix #573: ldns-keygen write private keys with mode 0600. + Thanks Leon Weber + * Fix configure to make ldns compile with LibreSSL 2.0 + * drill now also accepts dig style -y option + (-y <[algo:]name:key> i.s.o. -y ) + * OPENPGPKEY draft rr types. Enable with: --enable-rrtype-openpgpkey + * bugfix #608: Correct comment about escaped characters + * CDS and CDNSKEY rr type from RFC 7344. + --enable-rrtype-cds configure option removed + * fix: Memory leak in ldns_pkt_rr_list_by_name() + Thanks Johannes Naab + * fix: Memory leak in ldns_dname2buffer_wire_compress() + Thanks Max Liebkies + * bugfix #613: Allow tab as whitespace too in last rdata field of types + of variable length. Thanks Xiali Yan + * bugfix: strip trailing whitespace from $ORIGIN lines in zone files + * Let ldns-keygen output .ds files only for KSK keys + * Parse RFC7218 TLSA mnemonics, but do not output them + * Let ldns-dane use SPKI as the default selector i.s.o. Cert + * bugfix: Fit left over NSEC3s once more before adding empty non + terminals. Thanks Stuart Browne + * bugfix #605: Determine default trust anchor location at compile time + Thanks Peter Koch + * bugfix #697: Double free with ldns-dane create + Thanks Carsten Strotmann + * bugfix #623: Do not redefine bool type and boolean values + Thanks Jakob Petsovits + * bugfix #570: Add TLSA, CDS, CDNSKEY and OPENPGPKEY RR types to ldnsx + Thanks Shussain + * bugfix #575: ldns_pkt_clone() does not copy timestamp field + Thanks Calle Dybedahl + * bugfix #584: ldns-update fixes. Send update to port 53, bring manpage + in sync with the usage text, and don't alter the ldns_resolver passed + to ldns_update_soa_zone_mname(). Created a ldns_resolver_clone() + function in the process. Thanks Nicholas Riley. + * bugfix #633: ldns_pkt_clone() parameter isn't const. + Thanks Jakop Petsovits + * bugfix: ldns-dane manpage correction + Thanks Erwin Lansing + * Spelling fixes. Thanks Andreas Schulze + * Hyphen used as minus in manpages. Thanks Andreas Schulze. + * RFC7553 RR Type URI is supported by default. + * Fix ECDSA signature generation, do not omit leading zeroes. + * bugfix: Get rid of superfluous newline in ldns-keyfetcher + Thanks Jan-Piet Mens + * bugfix: -U option to ldns-signzone to sign with every algorithm + Thanks Guido Kroon + * const function parameters whenever possible. + Thanks Ray Bellis + * bugfix #725: allow RR-types on the type bitmap window border + Thanks Pieter Lexis + * bugfix #726: 2 typos in drill manpage. + Thanks Hugo Lombard + * Add type CSYNC support, RFC 7477. + * Prepare for ED25519, ED448 support: todo convert* routines in + dnssec.h, once openssl has support for signing with these algorithms. + The dns algorithm number is not yet allocated. These features are + not fully implemented yet, openssl (1.1) does not support the + algorithms enough to generate keys and sign and verify with them. + * Fix _answerfrom comment in ldns_struct_pkt. + * Fix drill axfr ipv4/ipv6 queries. + * Fix comment referring to mk_query in packet.h to pkt_query_new. + * Fix description of QR flag in packet.h. + * Fix for openssl 1.1.0 API changes. + * Remove commented out macro. Thanks Thiago Farina + * bugfix #641: Include install-sh in .gitignore + * bugfix #825: Module import breaks with newer SWIG versions. + Thanks Christoph Egger + * bugfix #796 - #792: Fix miscellaneous compiler warning issues. + Thanks Ngie Cooper + * bugfix #769: Add support for :: in an IPv6 address + Thanks Hajimu UMEMOTO + * bugfix #760: Detect superfluous text in presentation format + Thanks Xiali Yan + * bugfix #708: warnings and errors with xcode 6.1/7.0 + * bugfix #754: Memory leak in ldns_str2rdf_ipseckey + Thanks Xiali Yan + * bugfix #661: Fail NSEC3 signing when NSEC domainname length + would overflow. Thanks Jan-Piet Mens. + * bugfix #771: hmac-sha224, hmac-sha384 and hmac-sha512 keys. + Thanks Harald Jenny + * bugfix #680: ldns fails to reject invalidly formatted + RFC 7553 URI RRs. Thanks Robert Edmonds + * bugfix #678: Use poll i.s.o. select to support > 1024 fds + Thanks William King + * Use OpenSSL DANE functions for verification (unless explicitly + disabled with --disable-dane-ta-usage). + * Bumb .so version + * Include OPENPGPKEY RR type by default + * rdata processing for SMIMEA RR type + * Fix crash in displaying TLSA RR's. + Thanks Andreas Schulze + * Update ldns-key2ds man page to mention GOST and SHA384 hash + functions. Thanks Harald Jenny + * Add sha384 and sha512 tsig algorithm. Thanks Michael Weiser + * Clarify data ownership with consts for tsig parameters. + Thanks Michael Weiser + * bugfix: Fix detection of DSA support with OpenSSL >= 1.1.0 + * bugfix #1160: Provide sha256 for release tarballs + * --enable-gost-anyway compiles GOST support with OpenSSL >= 1.1.0 + even when the GOST engine is not available. + 1.6.17 2014-01-10 * Fix ldns_dnssec_zone_new_frm_fp_l to allow the last parsed line of a zone to be an NSEC3 (or its RRSIG) covering an empty non terminal. Modified: vendor/ldns/dist/Makefile.in ============================================================================== --- vendor/ldns/dist/Makefile.in Fri Feb 3 12:51:40 2017 (r313155) +++ vendor/ldns/dist/Makefile.in Fri Feb 3 13:01:00 2017 (r313156) @@ -12,6 +12,7 @@ datarootdir = @datarootdir@ datadir = @datadir@ libdir = @libdir@ includedir = @includedir@ +sysconfdir = @sysconfdir@ doxygen = @doxygen@ pywrapdir = $(srcdir)/contrib/python pyldnsxwrapdir = $(srcdir)/contrib/ldnsx @@ -27,13 +28,21 @@ pyldnsx_uninst = @PYLDNSXUNINST@ libtool = @libtool@ CONFIG_FILES = @CONFIG_FILES@ +LDNS_TRUST_ANCHOR_FILE = @LDNS_TRUST_ANCHOR_FILE@ +DEFAULT_CAFILE = @DEFAULT_CAFILE@ +DEFAULT_CAPATH = @DEFAULT_CAPATH@ + +edit = sed \ + -e 's|@LDNS_TRUST_ANCHOR_FILE[@]|$(LDNS_TRUST_ANCHOR_FILE)|g' \ + -e 's|@DEFAULT_CAFILE[@]|$(DEFAULT_CAFILE)|g' \ + -e 's|@DEFAULT_CAPATH[@]|$(DEFAULT_CAPATH)|g' + # override $U variable which is used by autotools for deansification (for # K&R C compilers), but causes problems if $U is defined in the env). U= - CC = @CC@ CFLAGS = @CFLAGS@ -CPPFLAGS = -I. -I$(srcdir) @CPPFLAGS@ @DEFS@ +CPPFLAGS = -I. -I$(srcdir) @CPPFLAGS@ @DEFS@ -DLDNS_TRUST_ANCHOR_FILE="\"$(LDNS_TRUST_ANCHOR_FILE)\"" LDFLAGS = @LDFLAGS@ LIBS = @LIBS@ LIBOBJDIR = compat/ @@ -92,11 +101,10 @@ LDNS_DANE_LOBJS = examples/ldns-dane.lo EX_SSL_PROGS = examples/ldns-nsec3-hash examples/ldns-revoke examples/ldns-signzone examples/ldns-verify-zone EX_SSL_LOBJS = examples/ldns-nsec3-hash.lo examples/ldns-revoke.lo examples/ldns-signzone.lo examples/ldns-verify-zone.lo - COMPILE = $(CC) $(CPPFLAGS) $(CFLAGS) COMP_LIB = $(LIBTOOL) --mode=compile $(CC) $(CPPFLAGS) $(CFLAGS) LINK = $(CC) $(CFLAGS) $(LDFLAGS) $(LIBS) -LINK_LIB = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) $(LIBS) -version-number $(version_info) -no-undefined +LINK_LIB = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) $(LIBS) -version-info $(version_info) -no-undefined LINK_EXE = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) $(LIBSSL_LDFLAGS) .PHONY: clean realclean docclean manpages doc lint all lib pyldns test @@ -129,7 +137,7 @@ putdown-builddir: if test -d drill -a ! -f drill/README ; then rmdir drill || : ; fi if test -d compat -a ! -f compat/malloc.c; then rmdir compat || : ; fi -drill: no-drill-config-h drill/drill +drill: no-drill-config-h drill/drill drill/drill.1 no-drill-config-h: @if test -e $(srcdir)/drill/config.h -o -e drill/config.h ; \ then echo "A config.h was detected in the drill subdirectory." ; \ @@ -138,10 +146,14 @@ no-drill-config-h: echo "or build drill there." ; \ exit -1 ; \ fi + drill/drill: $(DRILL_LOBJS) $(LIB) $(LINK_EXE) $(DRILL_LOBJS) $(LIBS) $(LIBSSL_LIBS) -lldns -o drill/drill -install-drill: drill/drill +drill/drill.1: $(srcdir)/drill/drill.1.in + $(edit) $(srcdir)/drill/drill.1.in > drill/drill.1 + +install-drill: drill/drill drill/drill.1 $(INSTALL) -m 755 -d $(DESTDIR)$(bindir) $(INSTALL) -m 755 -d $(DESTDIR)$(mandir) $(INSTALL) -m 755 -d $(DESTDIR)$(mandir)/man1 @@ -154,9 +166,9 @@ uninstall-drill: test ! -d $(DESTDIR)$(bindir) || rmdir -p $(DESTDIR)$(bindir) || : ; clean-drill: - $(LIBTOOL) --mode clean rm -f $(DRILL_LOBJS) drill/drill + $(LIBTOOL) --mode clean rm -f $(DRILL_LOBJS) drill/drill drill/drill.1 -examples: no-examples-config-h $(EXAMPLE_PROGS) $(TESTNS) $(LDNS_DPA) $(LDNS_DANE) $(EX_SSL_PROGS) +examples: no-examples-config-h $(EXAMPLE_PROGS) $(TESTNS) $(LDNS_DPA) $(LDNS_DANE) $(EX_SSL_PROGS) examples/ldns-dane.1 examples/ldns-verify-zone.1 no-examples-config-h: @if test -e $(srcdir)/examples/config.h -o -e examples/config.h ; \ then echo "A config.h was detected in the examples subdirectory." ; \ @@ -165,6 +177,7 @@ no-examples-config-h: echo "or build examples there." ; \ exit -1 ; \ fi + $(EXAMPLE_PROGS): $(LINK_EXE) $@.lo $(LIBS) -lldns -o $@ @@ -182,7 +195,13 @@ $(LDNS_DANE): $(EX_SSL_PROGS): $(LINK_EXE) $@.lo $(LIBS) $(LIBSSL_LIBS) -lldns -o $@ -install-examples: $(EXAMPLE_PROGS) $(TESTNS) $(LDNS_DPA) $(LDNS_DANE) $(EX_SSL_PROGS) +examples/ldns-dane.1: $(srcdir)/examples/ldns-dane.1.in + $(edit) $(srcdir)/examples/ldns-dane.1.in > examples/ldns-dane.1 + +examples/ldns-verify-zone.1: $(srcdir)/examples/ldns-verify-zone.1.in + $(edit) $(srcdir)/examples/ldns-verify-zone.1.in > examples/ldns-verify-zone.1 + +install-examples: $(EXAMPLE_PROGS) $(TESTNS) $(LDNS_DPA) $(LDNS_DANE) $(EX_SSL_PROGS) examples/ldns-dane.1 examples/ldns-verify-zone.1 $(INSTALL) -m 755 -d $(DESTDIR)$(bindir) $(INSTALL) -m 755 -d $(DESTDIR)$(mandir) $(INSTALL) -m 755 -d $(DESTDIR)$(mandir)/man1 @@ -205,6 +224,7 @@ clean-examples: $(LIBTOOL) --mode clean rm -f $(EXAMPLE_PROGS) $(LIBTOOL) --mode clean rm -f $(TESTNS) $(LDNS_DPA) $(LDNS_DANE) $(EX_SSL_PROGS) $(LIBTOOL) --mode clean rm -f $(EXAMPLE_LOBJS) + $(LIBTOOL) --mode clean rm -f examples/ldns-dane.1 examples/ldns-verify-zone.1 linktest: $(srcdir)/linktest.c libldns.la $(COMP_LIB) $(LIBSSL_CPPFLAGS) -c $(srcdir)/linktest.c -o linktest.lo @@ -224,7 +244,7 @@ mancheck: sh -c 'find . -name \*.\[13\] -exec troff -z {} \;' 2>&1 | sed "s/^\.\///" | sed "s/\(:[0\-9]\+:\)/\1 warning:/g" doxygen: manpages - if test ! -e doc/header.html ; then \ + @if test ! -e doc/header.html ; then \ $(INSTALL) -c -m 644 $(srcdir)/doc/header.html doc/ ; \ fi ; $(doxygen) $(srcdir)/libdns.doxygen @@ -236,22 +256,40 @@ manpages: $(srcdir)/doc/function_manpage @$(INSTALL) -d doc @cat $(srcdir)/ldns/*.h \ | $(srcdir)/doc/doxyparse.pl \ - -m $(srcdir)/doc/function_manpages 2>&1 \ + -m $(srcdir)/doc/function_manpages \ | grep -v ^doxygen | grep -v ^cat > doc/ldns_manpages +manpage-create-errors: $(srcdir)/doc/function_manpages + @$(INSTALL) -d doc + @cat $(srcdir)/ldns/*.h \ + | $(srcdir)/doc/doxyparse.pl -e \ + -m $(srcdir)/doc/function_manpages >/dev/null + +manpage-errors: + @man --version >/dev/null 2>&1 && \ + for m in `cat $(srcdir)/ldns/*.h | $(srcdir)/doc/doxyparse.pl -m $(srcdir)/doc/function_manpages 2>&1 | grep -v ^doxygen | grep -v ^cat` ; do\ + LC_ALL=en_US.UTF-8 MANROFFSEQ='' MANWIDTH=80 \ + man --warnings -E UTF-8 -l -Tutf8 -Z doc/man/man3/$${m}.3 2>&1 >/dev/null \ + | awk "-vpage=$${m}.3" '{printf("%s: ", page);print}'; \ + if ! lexgrog doc/man/man3/$${m}.3 >/dev/null 2>&1 ; \ + then \ + echo doc/man/man3/$${m}.3: manpage-has-bad-whatis-entry; \ + fi; \ + done || echo "WARNING!: Cannot detect manpage errors on `uname`" + pyldns: _ldns.la $(pywrapdir)/ldns_wrapper.c: $(PYLDNS_I_FILES) ldns/config.h - $(swig) $(swigpy_flags) -o $@ $(CPPFLAGS) $(PYTHON_CPPFLAGS) $(pywrapdir)/ldns.i + $(swig) $(swigpy_flags) -o $@ $(PYTHON_CPPFLAGS) $(pywrapdir)/ldns.i ldns_wrapper.lo: $(pywrapdir)/ldns_wrapper.c ldns/config.h - $(COMP_LIB) -I./include/ldns $(PYTHON_CPPFLAGS) $(PYTHON_X_CFLAGS) -c $(pywrapdir)/ldns_wrapper.c -o $@ + $(COMP_LIB) -I./include/ldns $(LIBSSL_CPPFLAGS) $(PYTHON_CPPFLAGS) $(PYTHON_X_CFLAGS) -c $(pywrapdir)/ldns_wrapper.c -o $@ _ldns.la: ldns_wrapper.lo libldns.la - $(LIBTOOL) --tag=CC --mode=link $(CC) $(CFLAGS) $(PYTHON_CFLAGS) $(LDFLAGS) $(PYTHON_LDFLAGS) -module -version-number $(version_info) -no-undefined -o $@ ldns_wrapper.lo -rpath $(python_site) -L. -L.libs -lldns $(LIBS) + $(LIBTOOL) --tag=CC --mode=link $(CC) $(CFLAGS) $(PYTHON_CFLAGS) $(LDFLAGS) $(PYTHON_LDFLAGS) -module -version-info $(version_info) -no-undefined -o $@ ldns_wrapper.lo -rpath $(python_site) -L. -L.libs -lldns $(LIBS) $(p5_dns_ldns_dir)/Makefile: $(p5_dns_ldns_dir)/Makefile.PL - BUILDDIR=`pwd`; cd $(p5_dns_ldns_dir); $(PERL) Makefile.PL PREFIX="$(prefix)" LIBS="-L$$BUILDDIR/.libs -lldns" INC="-I$$BUILDDIR" + BUILDDIR=`pwd`; cd $(p5_dns_ldns_dir); LD_LIBRARY_PATH="$$BUILDDIR/.libs:$$LD_LIBRARY_PATH" DYLD_LIBRARY_PATH="$$BUILDDIR/.libs:$$DYLD_LIBRARY_PATH" $(PERL) Makefile.PL LIBS="-L$$BUILDDIR/.libs -lldns" INC="-I$$BUILDDIR" $(p5_dns_ldns_dir)/blib/arch/auto/DNS/LDNS/LDNS.so: $(p5_dns_ldns_dir)/Makefile cd $(p5_dns_ldns_dir); $(MAKE) Modified: vendor/ldns/dist/README ============================================================================== --- vendor/ldns/dist/README Fri Feb 3 12:51:40 2017 (r313155) +++ vendor/ldns/dist/README Fri Feb 3 13:01:00 2017 (r313156) @@ -42,7 +42,9 @@ INSTALLATION If you are building from the repository you will need to have (gnu) autotools like libtool and autoreconf installed. A list of all the commands needed to build everything can be found in README.git. Note that the actual -commands may be a little bit different on your machine. Most notable, you'll need to run libtoolize (or glibtoolize), if you skip this step, you'll get an error about missing config.sub. +commands may be a little bit different on your machine. Most notably, you'll +need to run libtoolize (or glibtoolize). If you skip this step, you'll get +an error about missing config.sub. * Developers ldns is developed by the ldns team at NLnet Labs. This team currently @@ -85,7 +87,7 @@ for more information. SOLARIS -In Solaris multi-architecture systems (that have both 32-bit and +In Solaris multi-architecture systems (which have both 32-bit and 64-bit support), it can be a bit taxing to convince the system to compile in 64-bit mode. Jakob Schlyter has kindly contributed a build script that sets the right build and link options. You can find it in @@ -99,13 +101,13 @@ http://www.nlnetlabs.nl/projects/ldns/bu * pyldns Compiling pyldns produces many ``unused parameter'' warnings. Those are harmless and may safely be ignored. -Also when building with Swig which version is before 2.0.4, compiling +Also, when building with SWIG older than 2.0.4, compiling pyldns produces many ``missing initializer'' warnings. Those are harmless too. Your Support -NLnet Labs offers all of its software products as open source, most are -published under a BDS license. You can download them, not only from the +NLnet Labs offers all of its software products as open source, most +published under a BSD license. You can download them, not only from the NLnet Labs website but also through the various OS distributions for which NSD, ldns, and Unbound are packaged. We therefore have little idea who uses our software in production environments and have no direct ties Modified: vendor/ldns/dist/README.git ============================================================================== --- vendor/ldns/dist/README.git Fri Feb 3 12:51:40 2017 (r313155) +++ vendor/ldns/dist/README.git Fri Feb 3 13:01:00 2017 (r313156) @@ -13,8 +13,9 @@ # older versions of libtoolize do not support --install # so you might need to remove that (with newer versions # it is needed) -libtoolize -c --install -autoreconf --install +git submodule update --init +libtoolize -ci +autoreconf -fi ./configure --with-examples --with-drill # --with-pyldns --with-p5-dns-ldns make make doc # needs doxygen for the html pages Modified: vendor/ldns/dist/aclocal.m4 ============================================================================== --- vendor/ldns/dist/aclocal.m4 Fri Feb 3 12:51:40 2017 (r313155) +++ vendor/ldns/dist/aclocal.m4 Fri Feb 3 13:01:00 2017 (r313156) @@ -1,8 +1,7 @@ -# generated automatically by aclocal 1.11.3 -*- Autoconf -*- +# generated automatically by aclocal 1.15 -*- Autoconf -*- + +# Copyright (C) 1996-2014 Free Software Foundation, Inc. -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -# 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -12,8609 +11,11 @@ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. -# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- -# -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. -# Written by Gordon Matzigkeit, 1996 -# -# 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. - -m4_define([_LT_COPYING], [dnl -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. -# Written by Gordon Matzigkeit, 1996 -# -# This file is part of GNU Libtool. -# -# GNU Libtool is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation; either version 2 of -# the License, or (at your option) any later version. -# -# As a special exception to the GNU General Public License, -# if you distribute this file as part of a program or library that -# is built using GNU Libtool, you may include this file under the -# same distribution terms that you use for the rest of that program. -# -# GNU Libtool is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with GNU Libtool; see the file COPYING. If not, a copy -# can be downloaded from http://www.gnu.org/licenses/gpl.html, or -# obtained by writing to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -]) - -# serial 57 LT_INIT - - -# LT_PREREQ(VERSION) -# ------------------ -# Complain and exit if this libtool version is less that VERSION. -m4_defun([LT_PREREQ], -[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, - [m4_default([$3], - [m4_fatal([Libtool version $1 or higher is required], - 63)])], - [$2])]) - - -# _LT_CHECK_BUILDDIR -# ------------------ -# Complain if the absolute build directory name contains unusual characters -m4_defun([_LT_CHECK_BUILDDIR], -[case `pwd` in - *\ * | *\ *) - AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; -esac -]) - - -# LT_INIT([OPTIONS]) -# ------------------ -AC_DEFUN([LT_INIT], -[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT -AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl -AC_BEFORE([$0], [LT_LANG])dnl -AC_BEFORE([$0], [LT_OUTPUT])dnl -AC_BEFORE([$0], [LTDL_INIT])dnl -m4_require([_LT_CHECK_BUILDDIR])dnl - -dnl Autoconf doesn't catch unexpanded LT_ macros by default: -m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl -m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl -dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 -dnl unless we require an AC_DEFUNed macro: -AC_REQUIRE([LTOPTIONS_VERSION])dnl -AC_REQUIRE([LTSUGAR_VERSION])dnl -AC_REQUIRE([LTVERSION_VERSION])dnl -AC_REQUIRE([LTOBSOLETE_VERSION])dnl -m4_require([_LT_PROG_LTMAIN])dnl - -_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) - -dnl Parse OPTIONS -_LT_SET_OPTIONS([$0], [$1]) - -# This can be used to rebuild libtool when needed -LIBTOOL_DEPS="$ltmain" - -# Always use our own libtool. -LIBTOOL='$(SHELL) $(top_builddir)/libtool' -AC_SUBST(LIBTOOL)dnl - -_LT_SETUP - -# Only expand once: -m4_define([LT_INIT]) -])# LT_INIT - -# Old names: -AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) -AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_PROG_LIBTOOL], []) -dnl AC_DEFUN([AM_PROG_LIBTOOL], []) - - -# _LT_CC_BASENAME(CC) -# ------------------- -# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. -m4_defun([_LT_CC_BASENAME], -[for cc_temp in $1""; do - case $cc_temp in - compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; - distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` -]) - - -# _LT_FILEUTILS_DEFAULTS -# ---------------------- -# It is okay to use these file commands and assume they have been set -# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. -m4_defun([_LT_FILEUTILS_DEFAULTS], -[: ${CP="cp -f"} -: ${MV="mv -f"} -: ${RM="rm -f"} -])# _LT_FILEUTILS_DEFAULTS - - -# _LT_SETUP -# --------- -m4_defun([_LT_SETUP], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_CANONICAL_BUILD])dnl -AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl -AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl - -_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl -dnl -_LT_DECL([], [host_alias], [0], [The host system])dnl -_LT_DECL([], [host], [0])dnl -_LT_DECL([], [host_os], [0])dnl -dnl -_LT_DECL([], [build_alias], [0], [The build system])dnl -_LT_DECL([], [build], [0])dnl -_LT_DECL([], [build_os], [0])dnl -dnl -AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([LT_PATH_LD])dnl -AC_REQUIRE([LT_PATH_NM])dnl -dnl -AC_REQUIRE([AC_PROG_LN_S])dnl -test -z "$LN_S" && LN_S="ln -s" -_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl -dnl -AC_REQUIRE([LT_CMD_MAX_LEN])dnl -_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl -_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl -dnl -m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_CHECK_SHELL_FEATURES])dnl -m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl -m4_require([_LT_CMD_RELOAD])dnl -m4_require([_LT_CHECK_MAGIC_METHOD])dnl -m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl -m4_require([_LT_CMD_OLD_ARCHIVE])dnl -m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl -m4_require([_LT_WITH_SYSROOT])dnl - -_LT_CONFIG_LIBTOOL_INIT([ -# See if we are running on zsh, and set the options which allow our -# commands through without removal of \ escapes INIT. -if test -n "\${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST -fi -]) -if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST -fi - -_LT_CHECK_OBJDIR - -m4_require([_LT_TAG_COMPILER])dnl - -case $host_os in -aix3*) - # AIX sometimes has problems with the GCC collect2 program. For some - # reason, if we set the COLLECT_NAMES environment variable, the problems - # vanish in a puff of smoke. - if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES - fi - ;; -esac - -# Global variables: -ofile=libtool -can_build_shared=yes - -# All known linkers require a `.a' archive for static linking (except MSVC, -# which needs '.lib'). -libext=a - -with_gnu_ld="$lt_cv_prog_gnu_ld" - -old_CC="$CC" -old_CFLAGS="$CFLAGS" - -# Set sane defaults for various variables -test -z "$CC" && CC=cc -test -z "$LTCC" && LTCC=$CC -test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS -test -z "$LD" && LD=ld -test -z "$ac_objext" && ac_objext=o - -_LT_CC_BASENAME([$compiler]) - -# Only perform the check for file, if the check method requires it -test -z "$MAGIC_CMD" && MAGIC_CMD=file -case $deplibs_check_method in -file_magic*) - if test "$file_magic_cmd" = '$MAGIC_CMD'; then - _LT_PATH_MAGIC - fi - ;; -esac - -# Use C for the default configuration in the libtool script -LT_SUPPORTED_TAG([CC]) -_LT_LANG_C_CONFIG -_LT_LANG_DEFAULT_CONFIG -_LT_CONFIG_COMMANDS -])# _LT_SETUP - - -# _LT_PREPARE_SED_QUOTE_VARS -# -------------------------- -# Define a few sed substitution that help us do robust quoting. -m4_defun([_LT_PREPARE_SED_QUOTE_VARS], -[# Backslashify metacharacters that are still active within -# double-quoted strings. -sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' - -# Same as above, but do not quote variable references. -double_quote_subst='s/\([["`\\]]\)/\\\1/g' - -# Sed substitution to delay expansion of an escaped shell variable in a -# double_quote_subst'ed string. -delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' - -# Sed substitution to delay expansion of an escaped single quote. -delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' - -# Sed substitution to avoid accidental globbing in evaled expressions -no_glob_subst='s/\*/\\\*/g' -]) - -# _LT_PROG_LTMAIN -# --------------- -# Note that this code is called both from `configure', and `config.status' -# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, -# `config.status' has no value for ac_aux_dir unless we are using Automake, -# so we pass a copy along to make sure it has a sensible value anyway. -m4_defun([_LT_PROG_LTMAIN], -[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl -_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) -ltmain="$ac_aux_dir/ltmain.sh" -])# _LT_PROG_LTMAIN - - - -# So that we can recreate a full libtool script including additional -# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS -# in macros and then make a single call at the end using the `libtool' -# label. - - -# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) -# ---------------------------------------- -# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. -m4_define([_LT_CONFIG_LIBTOOL_INIT], -[m4_ifval([$1], - [m4_append([_LT_OUTPUT_LIBTOOL_INIT], - [$1 -])])]) - -# Initialize. -m4_define([_LT_OUTPUT_LIBTOOL_INIT]) - - -# _LT_CONFIG_LIBTOOL([COMMANDS]) -# ------------------------------ -# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. -m4_define([_LT_CONFIG_LIBTOOL], -[m4_ifval([$1], - [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], - [$1 -])])]) - -# Initialize. -m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) - - -# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) -# ----------------------------------------------------- -m4_defun([_LT_CONFIG_SAVE_COMMANDS], -[_LT_CONFIG_LIBTOOL([$1]) -_LT_CONFIG_LIBTOOL_INIT([$2]) -]) - - -# _LT_FORMAT_COMMENT([COMMENT]) -# ----------------------------- -# Add leading comment marks to the start of each line, and a trailing -# full-stop to the whole comment if one is not present already. -m4_define([_LT_FORMAT_COMMENT], -[m4_ifval([$1], [ -m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], - [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) -)]) - - - - - -# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) -# ------------------------------------------------------------------- -# CONFIGNAME is the name given to the value in the libtool script. -# VARNAME is the (base) name used in the configure script. -# VALUE may be 0, 1 or 2 for a computed quote escaped value based on -# VARNAME. Any other value will be used directly. -m4_define([_LT_DECL], -[lt_if_append_uniq([lt_decl_varnames], [$2], [, ], - [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], - [m4_ifval([$1], [$1], [$2])]) - lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) - m4_ifval([$4], - [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) - lt_dict_add_subkey([lt_decl_dict], [$2], - [tagged?], [m4_ifval([$5], [yes], [no])])]) -]) - - -# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) -# -------------------------------------------------------- -m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) - - -# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) -# ------------------------------------------------ -m4_define([lt_decl_tag_varnames], -[_lt_decl_filter([tagged?], [yes], $@)]) - - -# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) -# --------------------------------------------------------- -m4_define([_lt_decl_filter], -[m4_case([$#], - [0], [m4_fatal([$0: too few arguments: $#])], - [1], [m4_fatal([$0: too few arguments: $#: $1])], - [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], - [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], - [lt_dict_filter([lt_decl_dict], $@)])[]dnl -]) - - -# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) -# -------------------------------------------------- -m4_define([lt_decl_quote_varnames], -[_lt_decl_filter([value], [1], $@)]) - - -# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) -# --------------------------------------------------- -m4_define([lt_decl_dquote_varnames], -[_lt_decl_filter([value], [2], $@)]) - - -# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) -# --------------------------------------------------- -m4_define([lt_decl_varnames_tagged], -[m4_assert([$# <= 2])dnl -_$0(m4_quote(m4_default([$1], [[, ]])), - m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), - m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) -m4_define([_lt_decl_varnames_tagged], -[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) - - -# lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) -# ------------------------------------------------ -m4_define([lt_decl_all_varnames], -[_$0(m4_quote(m4_default([$1], [[, ]])), - m4_if([$2], [], - m4_quote(lt_decl_varnames), - m4_quote(m4_shift($@))))[]dnl -]) -m4_define([_lt_decl_all_varnames], -[lt_join($@, lt_decl_varnames_tagged([$1], - lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl -]) - - -# _LT_CONFIG_STATUS_DECLARE([VARNAME]) -# ------------------------------------ -# Quote a variable value, and forward it to `config.status' so that its -# declaration there will have the same value as in `configure'. VARNAME -# must have a single quote delimited value for this to work. -m4_define([_LT_CONFIG_STATUS_DECLARE], -[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) - - -# _LT_CONFIG_STATUS_DECLARATIONS -# ------------------------------ -# We delimit libtool config variables with single quotes, so when -# we write them to config.status, we have to be sure to quote all -# embedded single quotes properly. In configure, this macro expands -# each variable declared with _LT_DECL (and _LT_TAGDECL) into: -# -# ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' -m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], -[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), - [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) - - -# _LT_LIBTOOL_TAGS -# ---------------- -# Output comment and list of tags supported by the script -m4_defun([_LT_LIBTOOL_TAGS], -[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl -available_tags="_LT_TAGS"dnl -]) - - -# _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) -# ----------------------------------- -# Extract the dictionary values for VARNAME (optionally with TAG) and -# expand to a commented shell variable setting: -# -# # Some comment about what VAR is for. -# visible_name=$lt_internal_name -m4_define([_LT_LIBTOOL_DECLARE], -[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], - [description])))[]dnl -m4_pushdef([_libtool_name], - m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl -m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), - [0], [_libtool_name=[$]$1], - [1], [_libtool_name=$lt_[]$1], - [2], [_libtool_name=$lt_[]$1], - [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl -m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl -]) - - -# _LT_LIBTOOL_CONFIG_VARS -# ----------------------- -# Produce commented declarations of non-tagged libtool config variables -# suitable for insertion in the LIBTOOL CONFIG section of the `libtool' -# script. Tagged libtool config variables (even for the LIBTOOL CONFIG -# section) are produced by _LT_LIBTOOL_TAG_VARS. -m4_defun([_LT_LIBTOOL_CONFIG_VARS], -[m4_foreach([_lt_var], - m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), - [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) - - -# _LT_LIBTOOL_TAG_VARS(TAG) -# ------------------------- -m4_define([_LT_LIBTOOL_TAG_VARS], -[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), - [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) - - -# _LT_TAGVAR(VARNAME, [TAGNAME]) -# ------------------------------ -m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) - - -# _LT_CONFIG_COMMANDS -# ------------------- -# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of -# variables for single and double quote escaping we saved from calls -# to _LT_DECL, we can put quote escaped variables declarations -# into `config.status', and then the shell code to quote escape them in -# for loops in `config.status'. Finally, any additional code accumulated -# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. -m4_defun([_LT_CONFIG_COMMANDS], -[AC_PROVIDE_IFELSE([LT_OUTPUT], - dnl If the libtool generation code has been placed in $CONFIG_LT, - dnl instead of duplicating it all over again into config.status, - dnl then we will have config.status run $CONFIG_LT later, so it - dnl needs to know what name is stored there: - [AC_CONFIG_COMMANDS([libtool], - [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], - dnl If the libtool generation code is destined for config.status, - dnl expand the accumulated commands and init code now: - [AC_CONFIG_COMMANDS([libtool], - [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) -])#_LT_CONFIG_COMMANDS - - -# Initialize. -m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], -[ - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -sed_quote_subst='$sed_quote_subst' -double_quote_subst='$double_quote_subst' -delay_variable_subst='$delay_variable_subst' -_LT_CONFIG_STATUS_DECLARATIONS -LTCC='$LTCC' -LTCFLAGS='$LTCFLAGS' -compiler='$compiler_DEFAULT' - -# A function that is used when there is no print builtin or printf. -func_fallback_echo () -{ - eval 'cat <<_LTECHO_EOF -\$[]1 -_LTECHO_EOF' -} - -# Quote evaled strings. -for var in lt_decl_all_varnames([[ \ -]], lt_decl_quote_varnames); do - case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in - *[[\\\\\\\`\\"\\\$]]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" - ;; - *) - eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" - ;; - esac -done - -# Double-quote double-evaled strings. -for var in lt_decl_all_varnames([[ \ -]], lt_decl_dquote_varnames); do - case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in - *[[\\\\\\\`\\"\\\$]]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" - ;; - *) - eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" - ;; - esac -done - -_LT_OUTPUT_LIBTOOL_INIT -]) - -# _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) -# ------------------------------------ -# Generate a child script FILE with all initialization necessary to -# reuse the environment learned by the parent script, and make the -# file executable. If COMMENT is supplied, it is inserted after the -# `#!' sequence but before initialization text begins. After this -# macro, additional text can be appended to FILE to form the body of -# the child script. The macro ends with non-zero status if the -# file could not be fully written (such as if the disk is full). -m4_ifdef([AS_INIT_GENERATED], -[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], -[m4_defun([_LT_GENERATED_FILE_INIT], -[m4_require([AS_PREPARE])]dnl -[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl -[lt_write_fail=0 -cat >$1 <<_ASEOF || lt_write_fail=1 -#! $SHELL -# Generated by $as_me. -$2 -SHELL=\${CONFIG_SHELL-$SHELL} -export SHELL -_ASEOF -cat >>$1 <<\_ASEOF || lt_write_fail=1 -AS_SHELL_SANITIZE -_AS_PREPARE -exec AS_MESSAGE_FD>&1 -_ASEOF -test $lt_write_fail = 0 && chmod +x $1[]dnl -m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT - -# LT_OUTPUT -# --------- -# This macro allows early generation of the libtool script (before -# AC_OUTPUT is called), incase it is used in configure for compilation -# tests. -AC_DEFUN([LT_OUTPUT], -[: ${CONFIG_LT=./config.lt} -AC_MSG_NOTICE([creating $CONFIG_LT]) -_LT_GENERATED_FILE_INIT(["$CONFIG_LT"], -[# Run this file to recreate a libtool stub with the current configuration.]) - -cat >>"$CONFIG_LT" <<\_LTEOF -lt_cl_silent=false -exec AS_MESSAGE_LOG_FD>>config.log -{ - echo - AS_BOX([Running $as_me.]) -} >&AS_MESSAGE_LOG_FD - -lt_cl_help="\ -\`$as_me' creates a local libtool stub from the current configuration, -for use in further configure time tests before the real libtool is -generated. - -Usage: $[0] [[OPTIONS]] - - -h, --help print this help, then exit - -V, --version print version number, then exit - -q, --quiet do not print progress messages - -d, --debug don't remove temporary files - -Report bugs to ." - -lt_cl_version="\ -m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl -m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) -configured by $[0], generated by m4_PACKAGE_STRING. - -Copyright (C) 2011 Free Software Foundation, Inc. -This config.lt script is free software; the Free Software Foundation -gives unlimited permision to copy, distribute and modify it." *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-vendor@freebsd.org Fri Feb 3 13:01:35 2017 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 16357CCDC25; Fri, 3 Feb 2017 13:01:35 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BF08DA72; Fri, 3 Feb 2017 13:01:34 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v13D1X2W081036; Fri, 3 Feb 2017 13:01:33 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v13D1XA4081035; Fri, 3 Feb 2017 13:01:33 GMT (envelope-from des@FreeBSD.org) Message-Id: <201702031301.v13D1XA4081035@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Fri, 3 Feb 2017 13:01:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r313157 - vendor/ldns/1.7.0 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Feb 2017 13:01:35 -0000 Author: des Date: Fri Feb 3 13:01:33 2017 New Revision: 313157 URL: https://svnweb.freebsd.org/changeset/base/313157 Log: tag ldns 1.7.0 Added: vendor/ldns/1.7.0/ - copied from r313156, vendor/ldns/dist/ From owner-svn-src-vendor@freebsd.org Fri Feb 3 13:06:36 2017 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EDFD6CCDDC5; Fri, 3 Feb 2017 13:06:36 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 92477D4F; Fri, 3 Feb 2017 13:06:36 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v13D6ZA1084408; Fri, 3 Feb 2017 13:06:35 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v13D6Y8i084393; Fri, 3 Feb 2017 13:06:34 GMT (envelope-from des@FreeBSD.org) Message-Id: <201702031306.v13D6Y8i084393@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Fri, 3 Feb 2017 13:06:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r313158 - in vendor/unbound/dist: . cachedb contrib daemon dns64 doc iterator libunbound libunbound/python/doc libunbound/python/doc/examples pythonmod pythonmod/doc pythonmod/doc/examp... X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Feb 2017 13:06:37 -0000 Author: des Date: Fri Feb 3 13:06:34 2017 New Revision: 313158 URL: https://svnweb.freebsd.org/changeset/base/313158 Log: import unbound 1.6.0 Added: vendor/unbound/dist/.gitattributes vendor/unbound/dist/doc/CNAME-basedRedirectionDesignNotes.pdf (contents, props changed) vendor/unbound/dist/pythonmod/doc/examples/example5.rst vendor/unbound/dist/pythonmod/doc/examples/example6.rst vendor/unbound/dist/pythonmod/examples/edns.py vendor/unbound/dist/pythonmod/examples/inplace_callbacks.py vendor/unbound/dist/pythonmod/test-edns.conf vendor/unbound/dist/pythonmod/test-inplace_callbacks.py vendor/unbound/dist/services/view.c vendor/unbound/dist/services/view.h vendor/unbound/dist/testdata/local_cname.rpl vendor/unbound/dist/testdata/stop_nxdomain_minimised.rpl vendor/unbound/dist/testdata/views.rpl Modified: vendor/unbound/dist/Makefile.in vendor/unbound/dist/cachedb/cachedb.c vendor/unbound/dist/config.h.in vendor/unbound/dist/configure vendor/unbound/dist/configure.ac vendor/unbound/dist/contrib/libunbound.pc.in vendor/unbound/dist/contrib/unbound_munin_ vendor/unbound/dist/daemon/acl_list.c vendor/unbound/dist/daemon/acl_list.h vendor/unbound/dist/daemon/cachedump.c vendor/unbound/dist/daemon/daemon.c vendor/unbound/dist/daemon/daemon.h vendor/unbound/dist/daemon/remote.c vendor/unbound/dist/daemon/stats.c vendor/unbound/dist/daemon/stats.h vendor/unbound/dist/daemon/unbound.c vendor/unbound/dist/daemon/worker.c vendor/unbound/dist/daemon/worker.h vendor/unbound/dist/dns64/dns64.c vendor/unbound/dist/doc/Changelog vendor/unbound/dist/doc/README vendor/unbound/dist/doc/example.conf.in vendor/unbound/dist/doc/libunbound.3.in vendor/unbound/dist/doc/unbound-anchor.8.in vendor/unbound/dist/doc/unbound-checkconf.8.in vendor/unbound/dist/doc/unbound-control.8.in vendor/unbound/dist/doc/unbound-host.1.in vendor/unbound/dist/doc/unbound.8.in vendor/unbound/dist/doc/unbound.conf.5.in vendor/unbound/dist/iterator/iter_delegpt.c vendor/unbound/dist/iterator/iter_delegpt.h vendor/unbound/dist/iterator/iter_fwd.c vendor/unbound/dist/iterator/iter_hints.c vendor/unbound/dist/iterator/iter_utils.c vendor/unbound/dist/iterator/iterator.c vendor/unbound/dist/libunbound/context.c vendor/unbound/dist/libunbound/libunbound.c vendor/unbound/dist/libunbound/libworker.c vendor/unbound/dist/libunbound/libworker.h vendor/unbound/dist/libunbound/python/doc/conf.py vendor/unbound/dist/libunbound/python/doc/examples/example1a.rst vendor/unbound/dist/libunbound/python/doc/examples/example1b.rst vendor/unbound/dist/libunbound/python/doc/examples/example2.rst vendor/unbound/dist/libunbound/python/doc/examples/example3.rst vendor/unbound/dist/libunbound/python/doc/examples/example4.rst vendor/unbound/dist/libunbound/python/doc/examples/example5.rst vendor/unbound/dist/libunbound/python/doc/examples/example6.rst vendor/unbound/dist/libunbound/python/doc/examples/example7.rst vendor/unbound/dist/libunbound/python/doc/examples/example8.rst vendor/unbound/dist/libunbound/python/doc/examples/index.rst vendor/unbound/dist/libunbound/python/doc/install.rst vendor/unbound/dist/libunbound/python/doc/intro.rst vendor/unbound/dist/libunbound/worker.h vendor/unbound/dist/pythonmod/doc/conf.py vendor/unbound/dist/pythonmod/doc/examples/example1.rst vendor/unbound/dist/pythonmod/doc/examples/example2.rst vendor/unbound/dist/pythonmod/doc/examples/example4.rst vendor/unbound/dist/pythonmod/doc/examples/index.rst vendor/unbound/dist/pythonmod/doc/install.rst vendor/unbound/dist/pythonmod/doc/modules/functions.rst vendor/unbound/dist/pythonmod/doc/modules/struct.rst vendor/unbound/dist/pythonmod/interface.i vendor/unbound/dist/pythonmod/pythonmod.c vendor/unbound/dist/pythonmod/pythonmod.h vendor/unbound/dist/services/cache/dns.c vendor/unbound/dist/services/localzone.c vendor/unbound/dist/services/localzone.h vendor/unbound/dist/services/mesh.c vendor/unbound/dist/services/mesh.h vendor/unbound/dist/services/outside_network.c vendor/unbound/dist/services/outside_network.h vendor/unbound/dist/sldns/str2wire.c vendor/unbound/dist/sldns/wire2str.c vendor/unbound/dist/smallapp/unbound-anchor.c vendor/unbound/dist/smallapp/unbound-checkconf.c vendor/unbound/dist/smallapp/unbound-control.c vendor/unbound/dist/smallapp/worker_cb.c vendor/unbound/dist/testcode/asynclook.c vendor/unbound/dist/testcode/fake_event.c vendor/unbound/dist/testcode/memstats.c vendor/unbound/dist/testcode/perf.c vendor/unbound/dist/testcode/streamtcp.c vendor/unbound/dist/testdata/04-checkconf.tpkg vendor/unbound/dist/testdata/09-unbound-control.tpkg vendor/unbound/dist/testdata/val_cnamewctonodata.rpl vendor/unbound/dist/testdata/val_ds_sha2.crpl vendor/unbound/dist/testdata/val_ds_sha2_downgrade.crpl vendor/unbound/dist/testdata/val_nodata_failsig.rpl vendor/unbound/dist/testdata/val_nsec3_wcany.rpl vendor/unbound/dist/testdata/val_nsec3_wcany_nodeny.rpl vendor/unbound/dist/util/config_file.c vendor/unbound/dist/util/config_file.h vendor/unbound/dist/util/configlexer.c vendor/unbound/dist/util/configlexer.lex vendor/unbound/dist/util/configparser.c vendor/unbound/dist/util/configparser.h vendor/unbound/dist/util/configparser.y vendor/unbound/dist/util/data/msgencode.c vendor/unbound/dist/util/data/msgparse.c vendor/unbound/dist/util/data/msgparse.h vendor/unbound/dist/util/data/msgreply.c vendor/unbound/dist/util/data/msgreply.h vendor/unbound/dist/util/fptr_wlist.c vendor/unbound/dist/util/fptr_wlist.h vendor/unbound/dist/util/iana_ports.inc vendor/unbound/dist/util/module.c vendor/unbound/dist/util/module.h vendor/unbound/dist/validator/autotrust.c vendor/unbound/dist/validator/val_neg.c vendor/unbound/dist/validator/val_nsec.c vendor/unbound/dist/validator/val_nsec3.c vendor/unbound/dist/validator/val_secalgo.c vendor/unbound/dist/validator/val_sigcrypt.c vendor/unbound/dist/validator/val_utils.c vendor/unbound/dist/validator/validator.c Added: vendor/unbound/dist/.gitattributes ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/unbound/dist/.gitattributes Fri Feb 3 13:06:34 2017 (r313158) @@ -0,0 +1 @@ +testdata/*.[0-9] linguist-documentation Modified: vendor/unbound/dist/Makefile.in ============================================================================== --- vendor/unbound/dist/Makefile.in Fri Feb 3 13:01:33 2017 (r313157) +++ vendor/unbound/dist/Makefile.in Fri Feb 3 13:06:34 2017 (r313158) @@ -101,7 +101,7 @@ util/data/msgreply.c util/data/packed_rr iterator/iter_delegpt.c iterator/iter_donotq.c iterator/iter_fwd.c \ iterator/iter_hints.c iterator/iter_priv.c iterator/iter_resptype.c \ iterator/iter_scrub.c iterator/iter_utils.c services/listen_dnsport.c \ -services/localzone.c services/mesh.c services/modstack.c \ +services/localzone.c services/mesh.c services/modstack.c services/view.c \ services/outbound_list.c services/outside_network.c util/alloc.c \ util/config_file.c util/configlexer.c util/configparser.c \ util/fptr_wlist.c util/locks.c util/log.c util/mini_event.c util/module.c \ @@ -117,7 +117,7 @@ $(DNSTAP_SRC) COMMON_OBJ_WITHOUT_NETCALL=dns.lo infra.lo rrset.lo dname.lo msgencode.lo \ as112.lo msgparse.lo msgreply.lo packed_rrset.lo iterator.lo iter_delegpt.lo \ iter_donotq.lo iter_fwd.lo iter_hints.lo iter_priv.lo iter_resptype.lo \ -iter_scrub.lo iter_utils.lo localzone.lo mesh.lo modstack.lo \ +iter_scrub.lo iter_utils.lo localzone.lo mesh.lo modstack.lo view.lo \ outbound_list.lo alloc.lo config_file.lo configlexer.lo configparser.lo \ fptr_wlist.lo locks.lo log.lo mini_event.lo module.lo net_help.lo \ random.lo rbtree.lo regional.lo rtt.lo dnstree.lo lookup3.lo lruhash.lo \ @@ -625,7 +625,8 @@ msgencode.lo msgencode.o: $(srcdir)/util $(srcdir)/util/data/msgreply.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ $(srcdir)/sldns/rrdef.h $(srcdir)/util/data/dname.h $(srcdir)/util/regional.h $(srcdir)/util/net_help.h \ - $(srcdir)/sldns/sbuffer.h + $(srcdir)/sldns/sbuffer.h $(srcdir)/services/localzone.h $(srcdir)/util/rbtree.h \ + $(srcdir)/util/storage/dnstree.h $(srcdir)/util/module.h $(srcdir)/services/view.h msgparse.lo msgparse.o: $(srcdir)/util/data/msgparse.c config.h $(srcdir)/util/data/msgparse.h \ $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/sldns/pkthdr.h \ $(srcdir)/sldns/rrdef.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ @@ -635,7 +636,9 @@ msgreply.lo msgreply.o: $(srcdir)/util/d $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/packed_rrset.h \ $(srcdir)/util/storage/lookup3.h $(srcdir)/util/alloc.h $(srcdir)/util/netevent.h $(srcdir)/util/net_help.h \ $(srcdir)/util/data/dname.h $(srcdir)/util/regional.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ - $(srcdir)/sldns/rrdef.h $(srcdir)/util/data/msgencode.h $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/wire2str.h + $(srcdir)/sldns/rrdef.h $(srcdir)/util/data/msgencode.h $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/wire2str.h \ + $(srcdir)/util/module.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h \ + $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h packed_rrset.lo packed_rrset.o: $(srcdir)/util/data/packed_rrset.c config.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lookup3.h $(srcdir)/util/alloc.h $(srcdir)/util/regional.h \ @@ -705,25 +708,32 @@ listen_dnsport.lo listen_dnsport.o: $(sr $(srcdir)/util/net_help.h $(srcdir)/sldns/sbuffer.h localzone.lo localzone.o: $(srcdir)/services/localzone.c config.h $(srcdir)/services/localzone.h \ $(srcdir)/util/rbtree.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/storage/dnstree.h \ - $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/sbuffer.h $(srcdir)/util/regional.h \ - $(srcdir)/util/config_file.h $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lruhash.h \ - $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgencode.h $(srcdir)/util/net_help.h \ - $(srcdir)/util/netevent.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ - $(srcdir)/util/as112.h + $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ + $(srcdir)/sldns/rrdef.h $(srcdir)/services/view.h $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/sbuffer.h \ + $(srcdir)/util/regional.h $(srcdir)/util/config_file.h $(srcdir)/util/data/dname.h \ + $(srcdir)/util/data/msgencode.h $(srcdir)/util/net_help.h $(srcdir)/util/netevent.h $(srcdir)/util/as112.h mesh.lo mesh.o: $(srcdir)/services/mesh.c config.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ $(srcdir)/util/netevent.h $(srcdir)/util/data/msgparse.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ $(srcdir)/util/log.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/module.h \ $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/services/modstack.h \ $(srcdir)/services/outbound_list.h $(srcdir)/services/cache/dns.h $(srcdir)/util/net_help.h \ $(srcdir)/util/regional.h $(srcdir)/util/data/msgencode.h $(srcdir)/util/timehist.h $(srcdir)/util/fptr_wlist.h \ - $(srcdir)/util/tube.h $(srcdir)/util/alloc.h $(srcdir)/util/config_file.h $(srcdir)/sldns/sbuffer.h + $(srcdir)/util/tube.h $(srcdir)/util/alloc.h $(srcdir)/util/config_file.h $(srcdir)/sldns/sbuffer.h \ + $(srcdir)/sldns/wire2str.h $(srcdir)/services/localzone.h $(srcdir)/util/storage/dnstree.h \ + $(srcdir)/services/view.h $(srcdir)/util/data/dname.h modstack.lo modstack.o: $(srcdir)/services/modstack.c config.h $(srcdir)/services/modstack.h \ $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h \ $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/dns64/dns64.h \ $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h $(srcdir)/validator/validator.h \ - $(srcdir)/validator/val_utils.h $(PYTHONMOD_HEADER) $(srcdir)/cachedb/cachedb.h + $(srcdir)/validator/val_utils.h $(PYTHONMOD_HEADER) +view.lo view.o: $(srcdir)/services/view.c config.h $(srcdir)/services/view.h $(srcdir)/util/rbtree.h \ + $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/services/localzone.h $(srcdir)/util/storage/dnstree.h \ + $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ + $(srcdir)/sldns/rrdef.h $(srcdir)/util/config_file.h outbound_list.lo outbound_list.o: $(srcdir)/services/outbound_list.c config.h \ $(srcdir)/services/outbound_list.h $(srcdir)/services/outside_network.h $(srcdir)/util/rbtree.h \ $(srcdir)/util/netevent.h @@ -760,15 +770,15 @@ fptr_wlist.lo fptr_wlist.o: $(srcdir)/ut $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h \ $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h $(srcdir)/util/mini_event.h \ $(srcdir)/util/rbtree.h $(srcdir)/services/outside_network.h \ - $(srcdir)/services/localzone.h $(srcdir)/util/storage/dnstree.h $(srcdir)/services/cache/infra.h \ - $(srcdir)/util/rtt.h $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/dns64/dns64.h \ - $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h $(srcdir)/iterator/iter_fwd.h \ - $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h $(srcdir)/validator/val_anchor.h \ - $(srcdir)/validator/val_nsec3.h $(srcdir)/validator/val_sigcrypt.h $(srcdir)/validator/val_kentry.h \ - $(srcdir)/validator/val_neg.h $(srcdir)/validator/autotrust.h $(srcdir)/libunbound/libworker.h \ - $(srcdir)/libunbound/context.h $(srcdir)/util/alloc.h $(srcdir)/libunbound/unbound.h \ - $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h $(srcdir)/util/config_file.h \ - $(PYTHONMOD_HEADER) $(srcdir)/cachedb/cachedb.h + $(srcdir)/services/localzone.h $(srcdir)/util/storage/dnstree.h $(srcdir)/services/view.h \ + $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/services/cache/rrset.h \ + $(srcdir)/util/storage/slabhash.h $(srcdir)/dns64/dns64.h $(srcdir)/iterator/iterator.h \ + $(srcdir)/services/outbound_list.h $(srcdir)/iterator/iter_fwd.h $(srcdir)/validator/validator.h \ + $(srcdir)/validator/val_utils.h $(srcdir)/validator/val_anchor.h $(srcdir)/validator/val_nsec3.h \ + $(srcdir)/validator/val_sigcrypt.h $(srcdir)/validator/val_kentry.h $(srcdir)/validator/val_neg.h \ + $(srcdir)/validator/autotrust.h $(srcdir)/libunbound/libworker.h $(srcdir)/libunbound/context.h \ + $(srcdir)/util/alloc.h $(srcdir)/libunbound/unbound.h $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h \ + $(srcdir)/util/config_file.h $(PYTHONMOD_HEADER) locks.lo locks.o: $(srcdir)/util/locks.c config.h $(srcdir)/util/locks.h $(srcdir)/util/log.h log.lo log.o: $(srcdir)/util/log.c config.h $(srcdir)/util/log.h $(srcdir)/util/locks.h $(srcdir)/sldns/sbuffer.h mini_event.lo mini_event.o: $(srcdir)/util/mini_event.c config.h $(srcdir)/util/mini_event.h $(srcdir)/util/rbtree.h \ @@ -778,7 +788,7 @@ mini_event.lo mini_event.o: $(srcdir)/ut $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h module.lo module.o: $(srcdir)/util/module.c config.h $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h \ $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ - $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h + $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/wire2str.h netevent.lo netevent.o: $(srcdir)/util/netevent.c config.h $(srcdir)/util/netevent.h $(srcdir)/util/ub_event.h \ $(srcdir)/util/log.h $(srcdir)/util/net_help.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/storage/lruhash.h \ $(srcdir)/util/locks.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ @@ -902,14 +912,7 @@ dns64.lo dns64.o: $(srcdir)/dns64/dns64. $(srcdir)/util/storage/slabhash.h $(srcdir)/util/config_file.h $(srcdir)/util/fptr_wlist.h \ $(srcdir)/util/netevent.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ $(srcdir)/services/modstack.h $(srcdir)/util/net_help.h $(srcdir)/util/regional.h -cachedb.lo cachedb.o: $(srcdir)/cachedb/cachedb.c config.h $(srcdir)/cachedb/cachedb.h $(srcdir)/util/module.h \ - $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/msgreply.h \ - $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ - $(srcdir)/sldns/rrdef.h $(srcdir)/util/regional.h $(srcdir)/util/net_help.h $(srcdir)/util/config_file.h \ - $(srcdir)/util/data/msgencode.h $(srcdir)/services/cache/dns.h $(srcdir)/validator/val_neg.h \ - $(srcdir)/util/rbtree.h $(srcdir)/validator/val_secalgo.h $(srcdir)/iterator/iter_utils.h \ - $(srcdir)/iterator/iter_resptype.h $(srcdir)/sldns/parseutil.h $(srcdir)/sldns/wire2str.h \ - $(srcdir)/sldns/sbuffer.h +cachedb.lo cachedb.o: $(srcdir)/cachedb/cachedb.c config.h checklocks.lo checklocks.o: $(srcdir)/testcode/checklocks.c config.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ $(srcdir)/testcode/checklocks.h unitanchor.lo unitanchor.o: $(srcdir)/testcode/unitanchor.c config.h $(srcdir)/util/log.h $(srcdir)/util/data/dname.h \ @@ -956,9 +959,11 @@ testpkts.lo testpkts.o: $(srcdir)/testco unitldns.lo unitldns.o: $(srcdir)/testcode/unitldns.c config.h $(srcdir)/util/log.h $(srcdir)/testcode/unitmain.h \ $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/wire2str.h acl_list.lo acl_list.o: $(srcdir)/daemon/acl_list.c config.h $(srcdir)/daemon/acl_list.h \ - $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/util/regional.h $(srcdir)/util/log.h \ - $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h $(srcdir)/services/localzone.h $(srcdir)/util/locks.h \ - $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/rrdef.h + $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/services/view.h $(srcdir)/util/locks.h \ + $(srcdir)/util/log.h $(srcdir)/util/regional.h $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h \ + $(srcdir)/services/localzone.h $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/str2wire.h cachedump.lo cachedump.o: $(srcdir)/daemon/cachedump.c config.h $(srcdir)/daemon/cachedump.h \ $(srcdir)/daemon/remote.h $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ @@ -978,10 +983,10 @@ daemon.lo daemon.o: $(srcdir)/daemon/dae $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \ $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h \ $(srcdir)/daemon/remote.h $(srcdir)/daemon/acl_list.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h \ - $(srcdir)/util/config_file.h $(srcdir)/util/storage/lookup3.h $(srcdir)/util/storage/slabhash.h \ - $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/rrset.h $(srcdir)/services/cache/infra.h \ - $(srcdir)/util/rtt.h $(srcdir)/services/localzone.h $(srcdir)/util/random.h $(srcdir)/util/tube.h \ - $(srcdir)/util/net_help.h $(srcdir)/sldns/keyraw.h + $(srcdir)/services/view.h $(srcdir)/util/config_file.h $(srcdir)/util/storage/lookup3.h \ + $(srcdir)/util/storage/slabhash.h $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/rrset.h \ + $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/services/localzone.h $(srcdir)/util/random.h \ + $(srcdir)/util/tube.h $(srcdir)/util/net_help.h $(srcdir)/sldns/keyraw.h remote.lo remote.o: $(srcdir)/daemon/remote.c config.h $(srcdir)/daemon/remote.h $(srcdir)/daemon/worker.h \ $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h $(srcdir)/util/data/packed_rrset.h \ $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/netevent.h \ @@ -992,12 +997,12 @@ remote.lo remote.o: $(srcdir)/daemon/rem $(srcdir)/util/net_help.h $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/rrset.h \ $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/dnstree.h \ $(srcdir)/util/rbtree.h $(srcdir)/util/rtt.h $(srcdir)/services/mesh.h $(srcdir)/services/localzone.h \ - $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h $(srcdir)/util/data/dname.h $(srcdir)/validator/validator.h \ - $(srcdir)/validator/val_utils.h $(srcdir)/validator/val_kcache.h $(srcdir)/validator/val_kentry.h \ - $(srcdir)/validator/val_anchor.h $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h \ - $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_hints.h $(srcdir)/iterator/iter_delegpt.h \ - $(srcdir)/services/outside_network.h $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/parseutil.h \ - $(srcdir)/sldns/wire2str.h + $(srcdir)/services/view.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h $(srcdir)/util/data/dname.h \ + $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h $(srcdir)/validator/val_kcache.h \ + $(srcdir)/validator/val_kentry.h $(srcdir)/validator/val_anchor.h $(srcdir)/iterator/iterator.h \ + $(srcdir)/services/outbound_list.h $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_hints.h \ + $(srcdir)/iterator/iter_delegpt.h $(srcdir)/services/outside_network.h $(srcdir)/sldns/str2wire.h \ + $(srcdir)/sldns/parseutil.h $(srcdir)/sldns/wire2str.h stats.lo stats.o: $(srcdir)/daemon/stats.c config.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h \ $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ @@ -1025,8 +1030,8 @@ worker.lo worker.o: $(srcdir)/daemon/wor $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h \ $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h $(srcdir)/daemon/daemon.h \ $(srcdir)/services/modstack.h $(srcdir)/daemon/remote.h $(srcdir)/daemon/acl_list.h \ - $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/util/config_file.h $(srcdir)/util/regional.h \ - $(srcdir)/util/storage/slabhash.h $(srcdir)/services/listen_dnsport.h \ + $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/services/view.h $(srcdir)/util/config_file.h \ + $(srcdir)/util/regional.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/listen_dnsport.h \ $(srcdir)/services/outside_network.h $(srcdir)/services/outbound_list.h \ $(srcdir)/services/cache/rrset.h $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h \ $(srcdir)/services/cache/dns.h $(srcdir)/services/mesh.h $(srcdir)/services/localzone.h \ @@ -1054,8 +1059,8 @@ worker.lo worker.o: $(srcdir)/daemon/wor $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h \ $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h $(srcdir)/daemon/daemon.h \ $(srcdir)/services/modstack.h $(srcdir)/daemon/remote.h $(srcdir)/daemon/acl_list.h \ - $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/util/config_file.h $(srcdir)/util/regional.h \ - $(srcdir)/util/storage/slabhash.h $(srcdir)/services/listen_dnsport.h \ + $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/services/view.h $(srcdir)/util/config_file.h \ + $(srcdir)/util/regional.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/listen_dnsport.h \ $(srcdir)/services/outside_network.h $(srcdir)/services/outbound_list.h \ $(srcdir)/services/cache/rrset.h $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h \ $(srcdir)/services/cache/dns.h $(srcdir)/services/mesh.h $(srcdir)/services/localzone.h \ @@ -1064,9 +1069,11 @@ worker.lo worker.o: $(srcdir)/daemon/wor $(srcdir)/validator/val_anchor.h $(srcdir)/libunbound/context.h $(srcdir)/libunbound/unbound.h \ $(srcdir)/libunbound/libworker.h acl_list.lo acl_list.o: $(srcdir)/daemon/acl_list.c config.h $(srcdir)/daemon/acl_list.h \ - $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/util/regional.h $(srcdir)/util/log.h \ - $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h $(srcdir)/services/localzone.h $(srcdir)/util/locks.h \ - $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/rrdef.h + $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/services/view.h $(srcdir)/util/locks.h \ + $(srcdir)/util/log.h $(srcdir)/util/regional.h $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h \ + $(srcdir)/services/localzone.h $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/str2wire.h daemon.lo daemon.o: $(srcdir)/daemon/daemon.c config.h $(srcdir)/daemon/daemon.h $(srcdir)/util/locks.h \ $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \ $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h \ @@ -1074,10 +1081,10 @@ daemon.lo daemon.o: $(srcdir)/daemon/dae $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \ $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h \ $(srcdir)/daemon/remote.h $(srcdir)/daemon/acl_list.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h \ - $(srcdir)/util/config_file.h $(srcdir)/util/storage/lookup3.h $(srcdir)/util/storage/slabhash.h \ - $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/rrset.h $(srcdir)/services/cache/infra.h \ - $(srcdir)/util/rtt.h $(srcdir)/services/localzone.h $(srcdir)/util/random.h $(srcdir)/util/tube.h \ - $(srcdir)/util/net_help.h $(srcdir)/sldns/keyraw.h + $(srcdir)/services/view.h $(srcdir)/util/config_file.h $(srcdir)/util/storage/lookup3.h \ + $(srcdir)/util/storage/slabhash.h $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/rrset.h \ + $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/services/localzone.h $(srcdir)/util/random.h \ + $(srcdir)/util/tube.h $(srcdir)/util/net_help.h $(srcdir)/sldns/keyraw.h stats.lo stats.o: $(srcdir)/daemon/stats.c config.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h \ $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ @@ -1125,7 +1132,7 @@ unbound-checkconf.lo unbound-checkconf.o $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h $(srcdir)/iterator/iter_fwd.h \ $(srcdir)/util/rbtree.h $(srcdir)/iterator/iter_hints.h $(srcdir)/util/storage/dnstree.h \ $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h $(srcdir)/services/localzone.h \ - $(srcdir)/sldns/sbuffer.h $(PYTHONMOD_HEADER) + $(srcdir)/services/view.h $(srcdir)/sldns/sbuffer.h $(PYTHONMOD_HEADER) worker_cb.lo worker_cb.o: $(srcdir)/smallapp/worker_cb.c config.h $(srcdir)/libunbound/context.h \ $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h \ $(srcdir)/libunbound/unbound.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ @@ -1137,8 +1144,9 @@ context.lo context.o: $(srcdir)/libunbou $(srcdir)/libunbound/unbound.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ $(srcdir)/sldns/rrdef.h $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h $(srcdir)/services/localzone.h \ - $(srcdir)/util/storage/dnstree.h $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h \ - $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/sldns/sbuffer.h + $(srcdir)/util/storage/dnstree.h $(srcdir)/services/view.h $(srcdir)/services/cache/rrset.h \ + $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h \ + $(srcdir)/sldns/sbuffer.h libunbound.lo libunbound.o: $(srcdir)/libunbound/libunbound.c $(srcdir)/libunbound/unbound.h \ $(srcdir)/libunbound/unbound-event.h config.h $(srcdir)/libunbound/context.h $(srcdir)/util/locks.h \ $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h \ @@ -1146,9 +1154,9 @@ libunbound.lo libunbound.o: $(srcdir)/li $(srcdir)/util/config_file.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/regional.h \ $(srcdir)/util/random.h $(srcdir)/util/net_help.h $(srcdir)/util/tube.h $(srcdir)/util/ub_event.h \ - $(srcdir)/services/localzone.h $(srcdir)/util/storage/dnstree.h $(srcdir)/services/cache/infra.h \ - $(srcdir)/util/rtt.h $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h \ - $(srcdir)/sldns/sbuffer.h + $(srcdir)/services/localzone.h $(srcdir)/util/storage/dnstree.h $(srcdir)/services/view.h \ + $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/services/cache/rrset.h \ + $(srcdir)/util/storage/slabhash.h $(srcdir)/sldns/sbuffer.h libworker.lo libworker.o: $(srcdir)/libunbound/libworker.c config.h $(srcdir)/libunbound/libworker.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ $(srcdir)/libunbound/context.h $(srcdir)/util/alloc.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h \ @@ -1156,12 +1164,12 @@ libworker.lo libworker.o: $(srcdir)/libu $(srcdir)/libunbound/unbound-event.h $(srcdir)/services/outside_network.h $(srcdir)/util/netevent.h \ $(srcdir)/services/mesh.h $(srcdir)/util/data/msgparse.h \ $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ - $(srcdir)/services/localzone.h $(srcdir)/util/storage/dnstree.h $(srcdir)/services/cache/rrset.h \ - $(srcdir)/util/storage/slabhash.h $(srcdir)/services/outbound_list.h $(srcdir)/util/fptr_wlist.h \ - $(srcdir)/util/tube.h $(srcdir)/util/regional.h $(srcdir)/util/random.h $(srcdir)/util/config_file.h \ - $(srcdir)/util/storage/lookup3.h $(srcdir)/util/net_help.h $(srcdir)/util/data/dname.h \ - $(srcdir)/util/data/msgencode.h $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_hints.h \ - $(srcdir)/sldns/str2wire.h + $(srcdir)/services/localzone.h $(srcdir)/util/storage/dnstree.h $(srcdir)/services/view.h \ + $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/outbound_list.h \ + $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h $(srcdir)/util/regional.h $(srcdir)/util/random.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/storage/lookup3.h $(srcdir)/util/net_help.h \ + $(srcdir)/util/data/dname.h $(srcdir)/util/data/msgencode.h $(srcdir)/iterator/iter_fwd.h \ + $(srcdir)/iterator/iter_hints.h $(srcdir)/sldns/str2wire.h unbound-host.lo unbound-host.o: $(srcdir)/smallapp/unbound-host.c config.h $(srcdir)/libunbound/unbound.h \ $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/wire2str.h asynclook.lo asynclook.o: $(srcdir)/testcode/asynclook.c config.h $(srcdir)/libunbound/unbound.h \ Modified: vendor/unbound/dist/cachedb/cachedb.c ============================================================================== --- vendor/unbound/dist/cachedb/cachedb.c Fri Feb 3 13:01:33 2017 (r313157) +++ vendor/unbound/dist/cachedb/cachedb.c Fri Feb 3 13:06:34 2017 (r313158) @@ -547,8 +547,8 @@ cachedb_handle_query(struct module_qstat return; } - if(qstate->blacklist) { - /* cache is blacklisted */ + if(qstate->blacklist || qstate->no_cache_lookup) { + /* cache is blacklisted or we are instructed from edns to not look */ /* pass request to next module */ qstate->ext_state[id] = module_wait_module; return; @@ -556,10 +556,15 @@ cachedb_handle_query(struct module_qstat /* lookup inside unbound's internal cache */ if(cachedb_intcache_lookup(qstate)) { - if(verbosity >= VERB_ALGO) - log_dns_msg("cachedb internal cache lookup", - &qstate->return_msg->qinfo, - qstate->return_msg->rep); + if(verbosity >= VERB_ALGO) { + if(qstate->return_msg->rep) + log_dns_msg("cachedb internal cache lookup", + &qstate->return_msg->qinfo, + qstate->return_msg->rep); + else log_info("cachedb internal cache lookup: rcode %s", + sldns_lookup_by_id(sldns_rcodes, qstate->return_rcode)? + sldns_lookup_by_id(sldns_rcodes, qstate->return_rcode)->name:"??"); + } /* we are done with the query */ qstate->ext_state[id] = module_finished; return; @@ -595,8 +600,8 @@ static void cachedb_handle_response(struct module_qstate* qstate, struct cachedb_qstate* ATTR_UNUSED(iq), struct cachedb_env* ie, int id) { - /* check if we are enabled, and skip if not */ - if(!ie->enabled) { + /* check if we are not enabled or instructed to not cache, and skip */ + if(!ie->enabled || qstate->no_cache_store) { /* we are done with the query */ qstate->ext_state[id] = module_finished; return; @@ -649,6 +654,11 @@ cachedb_operate(struct module_qstate* qs (void)error_response(qstate, id, LDNS_RCODE_SERVFAIL); return; } + if(!iq && (event == module_event_moddone)) { + /* during priming, module done but we never started */ + qstate->ext_state[id] = module_finished; + return; + } log_err("bad event for cachedb"); (void)error_response(qstate, id, LDNS_RCODE_SERVFAIL); Modified: vendor/unbound/dist/config.h.in ============================================================================== --- vendor/unbound/dist/config.h.in Fri Feb 3 13:01:33 2017 (r313157) +++ vendor/unbound/dist/config.h.in Fri Feb 3 13:06:34 2017 (r313158) @@ -107,6 +107,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H +/* Define to 1 if you have the `DSA_SIG_set0' function. */ +#undef HAVE_DSA_SIG_SET0 + /* Define to 1 if you have the header file. */ #undef HAVE_ENDIAN_H @@ -143,6 +146,9 @@ /* Define to 1 if you have the `EVP_cleanup' function. */ #undef HAVE_EVP_CLEANUP +/* Define to 1 if you have the `EVP_dss1' function. */ +#undef HAVE_EVP_DSS1 + /* Define to 1 if you have the `EVP_MD_CTX_new' function. */ #undef HAVE_EVP_MD_CTX_NEW @@ -344,9 +350,6 @@ /* Define to 1 if you have the `recvmsg' function. */ #undef HAVE_RECVMSG -/* define if you have the sbrk() call */ -#undef HAVE_SBRK - /* Define to 1 if you have the `sendmsg' function. */ #undef HAVE_SENDMSG @@ -395,6 +398,9 @@ /* Define if you have the SSL libraries installed. */ #undef HAVE_SSL +/* Define to 1 if you have the `SSL_CTX_set_security_level' function. */ +#undef HAVE_SSL_CTX_SET_SECURITY_LEVEL + /* Define to 1 if you have the header file. */ #undef HAVE_STDARG_H Modified: vendor/unbound/dist/configure ============================================================================== --- vendor/unbound/dist/configure Fri Feb 3 13:01:33 2017 (r313157) +++ vendor/unbound/dist/configure Fri Feb 3 13:06:34 2017 (r313158) @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for unbound 1.5.10. +# Generated by GNU Autoconf 2.69 for unbound 1.6.0. # # Report bugs to . # @@ -590,8 +590,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='unbound' PACKAGE_TARNAME='unbound' -PACKAGE_VERSION='1.5.10' -PACKAGE_STRING='unbound 1.5.10' +PACKAGE_VERSION='1.6.0' +PACKAGE_STRING='unbound 1.6.0' PACKAGE_BUGREPORT='unbound-bugs@nlnetlabs.nl' PACKAGE_URL='' @@ -659,6 +659,7 @@ WINAPPS WINDRES CHECKLOCK_OBJ staticexe +PC_LIBEVENT_DEPENDENCY UNBOUND_EVENT_UNINSTALL UNBOUND_EVENT_INSTALL SSLLIB @@ -678,6 +679,7 @@ WITH_PYTHONMODULE swig SWIG_LIB SWIG +PC_PY_DEPENDENCY PY_MAJOR_VERSION PYTHON_SITE_PKG PYTHON_LDFLAGS @@ -1401,7 +1403,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures unbound 1.5.10 to adapt to many kinds of systems. +\`configure' configures unbound 1.6.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1466,7 +1468,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of unbound 1.5.10:";; + short | recursive ) echo "Configuration of unbound 1.6.0:";; esac cat <<\_ACEOF @@ -1656,7 +1658,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -unbound configure 1.5.10 +unbound configure 1.6.0 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2365,7 +2367,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by unbound $as_me 1.5.10, which was +It was created by unbound $as_me 1.6.0, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2715,13 +2717,13 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu UNBOUND_VERSION_MAJOR=1 -UNBOUND_VERSION_MINOR=5 +UNBOUND_VERSION_MINOR=6 -UNBOUND_VERSION_MICRO=10 +UNBOUND_VERSION_MICRO=0 LIBUNBOUND_CURRENT=6 -LIBUNBOUND_REVISION=2 +LIBUNBOUND_REVISION=3 LIBUNBOUND_AGE=4 # 1.0.0 had 0:12:0 # 1.0.1 had 0:13:0 @@ -2771,6 +2773,7 @@ LIBUNBOUND_AGE=4 # 1.5.8 had 6:0:4 # adds ub_ctx_set_stub # 1.5.9 had 6:1:4 # 1.5.10 had 6:2:4 +# 1.6.0 had 6:3:4 # Current -- the number of the binary API that we're implementing # Revision -- which iteration of the implementation of the binary @@ -16823,6 +16826,8 @@ $as_echo "#define HAVE_PYTHON 1" >>confd LIBS="$PYTHON_LDFLAGS $LIBS" CPPFLAGS="$CPPFLAGS $PYTHON_CPPFLAGS" ub_have_python=yes + PC_PY_DEPENDENCY="python" + # Check for SWIG ub_have_swig=no @@ -17535,7 +17540,7 @@ fi done -for ac_func in OPENSSL_config EVP_sha1 EVP_sha256 EVP_sha512 FIPS_mode EVP_MD_CTX_new OpenSSL_add_all_digests OPENSSL_init_crypto EVP_cleanup ERR_load_crypto_strings CRYPTO_cleanup_all_ex_data ERR_free_strings RAND_cleanup +for ac_func in OPENSSL_config EVP_sha1 EVP_sha256 EVP_sha512 FIPS_mode EVP_MD_CTX_new OpenSSL_add_all_digests OPENSSL_init_crypto EVP_cleanup ERR_load_crypto_strings CRYPTO_cleanup_all_ex_data ERR_free_strings RAND_cleanup DSA_SIG_set0 EVP_dss1 do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" @@ -17551,12 +17556,13 @@ done # these check_funcs need -lssl BAKLIBS="$LIBS" LIBS="-lssl $LIBS" -for ac_func in OPENSSL_init_ssl +for ac_func in OPENSSL_init_ssl SSL_CTX_set_security_level do : - ac_fn_c_check_func "$LINENO" "OPENSSL_init_ssl" "ac_cv_func_OPENSSL_init_ssl" -if test "x$ac_cv_func_OPENSSL_init_ssl" = xyes; then : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF -#define HAVE_OPENSSL_INIT_SSL 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi @@ -17925,13 +17931,13 @@ if test "${enable_dsa+set}" = set; then fi use_dsa="no" -case "$enable_ecdsa" in +case "$enable_dsa" in no) ;; *) # detect if DSA is supported, and turn it off if not. - ac_fn_c_check_func "$LINENO" "EVP_dss1" "ac_cv_func_EVP_dss1" -if test "x$ac_cv_func_EVP_dss1" = xyes; then : + ac_fn_c_check_func "$LINENO" "DSA_SIG_new" "ac_cv_func_DSA_SIG_new" +if test "x$ac_cv_func_DSA_SIG_new" = xyes; then : cat >>confdefs.h <<_ACEOF @@ -18378,6 +18384,8 @@ _ACEOF fi done # only in libev. (tested on 4.00) + PC_LIBEVENT_DEPENDENCY="libevent" + if test -n "$BAK_LDFLAGS_SET"; then LDFLAGS="$BAK_LDFLAGS" fi @@ -18959,33 +18967,6 @@ fi done -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sbrk" >&5 -$as_echo_n "checking for sbrk... " >&6; } -# catch the warning of deprecated sbrk -old_cflags="$CFLAGS" -CFLAGS="$CFLAGS -Werror" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default - -int main(void) { void* cur = sbrk(0); printf("%u\n", (unsigned)(size_t)((char*)cur - (char*)sbrk(0))); return 0; } - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -$as_echo "#define HAVE_SBRK 1" >>confdefs.h - - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -CFLAGS="$old_cflags" - # check if setreuid en setregid fail, on MacOSX10.4(darwin8). if echo $build_os | grep darwin8 > /dev/null; then @@ -19939,7 +19920,7 @@ _ACEOF -version=1.5.10 +version=1.6.0 date=`date +'%b %e, %Y'` @@ -20454,7 +20435,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_wri # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by unbound $as_me 1.5.10, which was +This file was extended by unbound $as_me 1.6.0, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -20520,7 +20501,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -unbound config.status 1.5.10 +unbound config.status 1.6.0 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Modified: vendor/unbound/dist/configure.ac ============================================================================== --- vendor/unbound/dist/configure.ac Fri Feb 3 13:01:33 2017 (r313157) +++ vendor/unbound/dist/configure.ac Fri Feb 3 13:06:34 2017 (r313158) @@ -9,15 +9,15 @@ sinclude(dnstap/dnstap.m4) # must be numbers. ac_defun because of later processing m4_define([VERSION_MAJOR],[1]) -m4_define([VERSION_MINOR],[5]) -m4_define([VERSION_MICRO],[10]) +m4_define([VERSION_MINOR],[6]) +m4_define([VERSION_MICRO],[0]) AC_INIT(unbound, m4_defn([VERSION_MAJOR]).m4_defn([VERSION_MINOR]).m4_defn([VERSION_MICRO]), unbound-bugs@nlnetlabs.nl, unbound) AC_SUBST(UNBOUND_VERSION_MAJOR, [VERSION_MAJOR]) AC_SUBST(UNBOUND_VERSION_MINOR, [VERSION_MINOR]) AC_SUBST(UNBOUND_VERSION_MICRO, [VERSION_MICRO]) LIBUNBOUND_CURRENT=6 -LIBUNBOUND_REVISION=2 +LIBUNBOUND_REVISION=3 LIBUNBOUND_AGE=4 # 1.0.0 had 0:12:0 # 1.0.1 had 0:13:0 @@ -67,6 +67,7 @@ LIBUNBOUND_AGE=4 # 1.5.8 had 6:0:4 # adds ub_ctx_set_stub # 1.5.9 had 6:1:4 # 1.5.10 had 6:2:4 +# 1.6.0 had 6:3:4 # Current -- the number of the binary API that we're implementing # Revision -- which iteration of the implementation of the binary @@ -543,6 +544,8 @@ if test x_$ub_test_python != x_no; then LIBS="$PYTHON_LDFLAGS $LIBS" CPPFLAGS="$CPPFLAGS $PYTHON_CPPFLAGS" ub_have_python=yes + PC_PY_DEPENDENCY="python" + AC_SUBST(PC_PY_DEPENDENCY) # Check for SWIG ub_have_swig=no @@ -673,12 +676,12 @@ else AC_MSG_RESULT([no]) fi AC_CHECK_HEADERS([openssl/conf.h openssl/engine.h openssl/bn.h openssl/dh.h openssl/dsa.h openssl/rsa.h],,, [AC_INCLUDES_DEFAULT]) -AC_CHECK_FUNCS([OPENSSL_config EVP_sha1 EVP_sha256 EVP_sha512 FIPS_mode EVP_MD_CTX_new OpenSSL_add_all_digests OPENSSL_init_crypto EVP_cleanup ERR_load_crypto_strings CRYPTO_cleanup_all_ex_data ERR_free_strings RAND_cleanup]) +AC_CHECK_FUNCS([OPENSSL_config EVP_sha1 EVP_sha256 EVP_sha512 FIPS_mode EVP_MD_CTX_new OpenSSL_add_all_digests OPENSSL_init_crypto EVP_cleanup ERR_load_crypto_strings CRYPTO_cleanup_all_ex_data ERR_free_strings RAND_cleanup DSA_SIG_set0 EVP_dss1]) # these check_funcs need -lssl BAKLIBS="$LIBS" LIBS="-lssl $LIBS" -AC_CHECK_FUNCS([OPENSSL_init_ssl]) +AC_CHECK_FUNCS([OPENSSL_init_ssl SSL_CTX_set_security_level]) LIBS="$BAKLIBS" AC_CHECK_DECLS([SSL_COMP_get_compression_methods,sk_SSL_COMP_pop_free,SSL_CTX_set_ecdh_auto], [], [], [ @@ -864,12 +867,12 @@ esac AC_ARG_ENABLE(dsa, AC_HELP_STRING([--disable-dsa], [Disable DSA support])) use_dsa="no" -case "$enable_ecdsa" in +case "$enable_dsa" in no) ;; *) # detect if DSA is supported, and turn it off if not. - AC_CHECK_FUNC(EVP_dss1, [ + AC_CHECK_FUNC(DSA_SIG_new, [ AC_DEFINE_UNQUOTED([USE_DSA], [1], [Define this to enable DSA support.]) ], [if test "x$enable_dsa" = "xyes"; then AC_MSG_ERROR([OpenSSL does not support DSA and you used --enable-dsa.]) fi ]) @@ -1000,6 +1003,8 @@ large outgoing port ranges. ]) AC_CHECK_FUNCS([event_base_get_method]) # only in libevent 1.4.3 and later AC_CHECK_FUNCS([ev_loop]) # only in libev. (tested on 3.51) AC_CHECK_FUNCS([ev_default_loop]) # only in libev. (tested on 4.00) + PC_LIBEVENT_DEPENDENCY="libevent" + AC_SUBST(PC_LIBEVENT_DEPENDENCY) if test -n "$BAK_LDFLAGS_SET"; then LDFLAGS="$BAK_LDFLAGS" fi @@ -1142,19 +1147,6 @@ AC_CHECK_FUNCS([tzset sigprocmask fcntl AC_CHECK_FUNCS([setresuid],,[AC_CHECK_FUNCS([setreuid])]) AC_CHECK_FUNCS([setresgid],,[AC_CHECK_FUNCS([setregid])]) -AC_MSG_CHECKING([for sbrk]) -# catch the warning of deprecated sbrk -old_cflags="$CFLAGS" -CFLAGS="$CFLAGS -Werror" -AC_COMPILE_IFELSE([AC_LANG_SOURCE(AC_INCLUDES_DEFAULT -[[ -int main(void) { void* cur = sbrk(0); printf("%u\n", (unsigned)(size_t)((char*)cur - (char*)sbrk(0))); return 0; } -]])], [ - AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_SBRK, 1, [define if you have the sbrk() call]) - ], [AC_MSG_RESULT(no)]) -CFLAGS="$old_cflags" - # check if setreuid en setregid fail, on MacOSX10.4(darwin8). if echo $build_os | grep darwin8 > /dev/null; then AC_DEFINE(DARWIN_BROKEN_SETREUID, 1, [Define this if on macOSX10.4-darwin8 and setreuid and setregid do not work]) Modified: vendor/unbound/dist/contrib/libunbound.pc.in ============================================================================== --- vendor/unbound/dist/contrib/libunbound.pc.in Fri Feb 3 13:01:33 2017 (r313157) +++ vendor/unbound/dist/contrib/libunbound.pc.in Fri Feb 3 13:06:34 2017 (r313158) @@ -7,7 +7,7 @@ Name: unbound Description: Library with validating, recursive, and caching DNS resolver URL: http://www.unbound.net Version: @PACKAGE_VERSION@ -Requires: -Libs: -L${libdir} -lunbound @SSLLIB@ @LIBS@ -Libs.private: @LDFLAGS@ +Requires: libcrypto libssl @PC_LIBEVENT_DEPENDENCY@ @PC_PY_DEPENDENCY@ +Libs: -L${libdir} -lunbound +Libs.private: @SSLLIB@ @LIBS@ Cflags: -I${includedir} Modified: vendor/unbound/dist/contrib/unbound_munin_ ============================================================================== --- vendor/unbound/dist/contrib/unbound_munin_ Fri Feb 3 13:01:33 2017 (r313157) +++ vendor/unbound/dist/contrib/unbound_munin_ Fri Feb 3 13:06:34 2017 (r313158) @@ -150,7 +150,7 @@ get_state ( ) { fi done # try to get it - echo $$ >$lock + if echo $$ >$lock ; then : ; else break; fi done # do not refetch if the file exists and only LEE seconds old if test -f $state; then @@ -266,7 +266,6 @@ if test "$1" = "config" ; then echo "graph_args --base 1024 -l 0" echo "graph_vlabel memory used in bytes" echo "graph_category DNS" - p_config "mem.total.sbrk" "Total memory" "GAUGE" p_config "mem.cache.rrset" "RRset cache memory" "GAUGE" p_config "mem.cache.message" "Message cache memory" "GAUGE" p_config "mem.mod.iterator" "Iterator module memory" "GAUGE" @@ -458,20 +457,6 @@ queue) done ;; memory) - mn=`echo mem.total.sbrk | sed $ABBREV | tr . _` - get_value 'mem.total.sbrk' - if test $value -eq 0; then - chk=`echo $ctrl | sed -e 's/-control$/-checkconf/'` - pidf=`$chk -o pidfile $conf 2>&1` - pid=`cat $pidf 2>&1` - value=`ps -p "$pid" -o rss= 2>&1` - if test "`expr $value + 1 - 1 2>&1`" -eq "$value" 2>&1; then - value=`expr $value \* 1024` - else - value=0 - fi - fi - echo "$mn.value" $value for x in mem.cache.rrset mem.cache.message mem.mod.iterator \ mem.mod.validator msg.cache.count rrset.cache.count \ infra.cache.count key.cache.count; do Modified: vendor/unbound/dist/daemon/acl_list.c ============================================================================== --- vendor/unbound/dist/daemon/acl_list.c Fri Feb 3 13:01:33 2017 (r313157) +++ vendor/unbound/dist/daemon/acl_list.c Fri Feb 3 13:06:34 2017 (r313158) @@ -170,6 +170,23 @@ acl_list_tags_cfg(struct acl_list* acl, return 1; } +/** apply acl_view string */ +static int +acl_list_view_cfg(struct acl_list* acl, const char* str, const char* str2, + struct views* vs) +{ + struct acl_addr* node; + if(!(node=acl_find_or_create(acl, str))) + return 0; + node->view = views_find_view(vs, str2, 0 /* get read lock*/); + if(!node->view) { + log_err("no view with name: %s", str2); + return 0; + } + lock_rw_unlock(&node->view->lock); + return 1; +} + /** apply acl_tag_action string */ static int acl_list_tag_action_cfg(struct acl_list* acl, struct config_file* cfg, @@ -210,15 +227,47 @@ acl_list_tag_action_cfg(struct acl_list* /** check wire data parse */ static int -check_data(const char* data) +check_data(const char* data, const struct config_strlist* head) { char buf[65536]; uint8_t rr[LDNS_RR_BUF_SIZE]; size_t len = sizeof(rr); int res; - snprintf(buf, sizeof(buf), "%s %s", "example.com.", data); + /* '.' is sufficient for validation, and it makes the call to + * sldns_wirerr_get_type() simpler below. */ + snprintf(buf, sizeof(buf), "%s %s", ".", data); res = sldns_str2wire_rr_buf(buf, rr, &len, NULL, 3600, NULL, 0, NULL, 0); + + /* Reject it if we would end up having CNAME and other data (including + * another CNAME) for the same tag. */ + if(res == 0 && head) { + const char* err_data = NULL; + + if(sldns_wirerr_get_type(rr, len, 1) == LDNS_RR_TYPE_CNAME) { + /* adding CNAME while other data already exists. */ + err_data = data; + } else { + snprintf(buf, sizeof(buf), "%s %s", ".", head->str); + len = sizeof(rr); + res = sldns_str2wire_rr_buf(buf, rr, &len, NULL, 3600, + NULL, 0, NULL, 0); + if(res != 0) { + /* This should be impossible here as head->str + * has been validated, but we check it just in + * case. */ + return 0; + } + if(sldns_wirerr_get_type(rr, len, 1) == + LDNS_RR_TYPE_CNAME) /* already have CNAME */ + err_data = head->str; + } + if(err_data) { + log_err("redirect tag data '%s' must not coexist with " + "other data.", err_data); + return 0; + } + } if(res == 0) return 1; log_err("rr data [char %d] parse error %s", @@ -258,7 +307,7 @@ acl_list_tag_data_cfg(struct acl_list* a } /* check data? */ - if(!check_data(data)) { + if(!check_data(data, node->tag_datas[tagid])) { log_err("cannot parse access-control-tag data: %s %s '%s'", str, tag, data); return 0; @@ -312,6 +361,27 @@ read_acl_tags(struct acl_list* acl, stru return 1; } +/** read acl view config */ +static int +read_acl_view(struct acl_list* acl, struct config_file* cfg, struct views* v) +{ + struct config_str2list* np, *p = cfg->acl_view; + cfg->acl_view = NULL; + while(p) { + log_assert(p->str && p->str2); + if(!acl_list_view_cfg(acl, p->str, p->str2, v)) { + return 0; + } + /* free the items as we go to free up memory */ + np = p->next; + free(p->str); + free(p->str2); + free(p); + p = np; + } + return 1; +} + /** read acl tag actions config */ static int read_acl_tag_actions(struct acl_list* acl, struct config_file* cfg) @@ -362,12 +432,15 @@ read_acl_tag_datas(struct acl_list* acl, } int -acl_list_apply_cfg(struct acl_list* acl, struct config_file* cfg) +acl_list_apply_cfg(struct acl_list* acl, struct config_file* cfg, + struct views* v) { regional_free_all(acl->region); addr_tree_init(&acl->tree); if(!read_acl_list(acl, cfg)) return 0; + if(!read_acl_view(acl, cfg, v)) + return 0; if(!read_acl_tags(acl, cfg)) return 0; if(!read_acl_tag_actions(acl, cfg)) Modified: vendor/unbound/dist/daemon/acl_list.h ============================================================================== --- vendor/unbound/dist/daemon/acl_list.h Fri Feb 3 13:01:33 2017 (r313157) +++ vendor/unbound/dist/daemon/acl_list.h Fri Feb 3 13:06:34 2017 (r313158) @@ -43,6 +43,7 @@ #ifndef DAEMON_ACL_LIST_H #define DAEMON_ACL_LIST_H #include "util/storage/dnstree.h" +#include "services/view.h" struct config_file; struct regional; @@ -100,6 +101,8 @@ struct acl_addr { struct config_strlist** tag_datas; /** size of the tag_datas array */ size_t tag_datas_size; + /* view element, NULL if none */ + struct view* view; }; /** @@ -118,9 +121,11 @@ void acl_list_delete(struct acl_list* ac * Process access control config. * @param acl: where to store. * @param cfg: config options. + * @param v: views structure * @return 0 on error. */ -int acl_list_apply_cfg(struct acl_list* acl, struct config_file* cfg); +int acl_list_apply_cfg(struct acl_list* acl, struct config_file* cfg, + struct views* v); /** * Lookup access control status for acl structure. Modified: vendor/unbound/dist/daemon/cachedump.c ============================================================================== --- vendor/unbound/dist/daemon/cachedump.c Fri Feb 3 13:01:33 2017 (r313157) +++ vendor/unbound/dist/daemon/cachedump.c Fri Feb 3 13:06:34 2017 (r313158) @@ -563,6 +563,7 @@ load_qinfo(char* str, struct query_info* qinfo->qclass = sldns_wirerr_get_class(rr, rr_len, dname_len); qinfo->qname_len = dname_len; qinfo->qname = (uint8_t*)regional_alloc_init(region, rr, dname_len); + qinfo->local_alias = NULL; if(!qinfo->qname) { log_warn("error out of memory"); return NULL; @@ -826,6 +827,7 @@ int print_deleg_lookup(SSL* ssl, struct qinfo.qname_len = nmlen; qinfo.qtype = LDNS_RR_TYPE_A; qinfo.qclass = LDNS_RR_CLASS_IN; + qinfo.local_alias = NULL; dname_str(nm, b); if(!ssl_printf(ssl, "The following name servers are used for lookup " Modified: vendor/unbound/dist/daemon/daemon.c ============================================================================== --- vendor/unbound/dist/daemon/daemon.c Fri Feb 3 13:01:33 2017 (r313157) +++ vendor/unbound/dist/daemon/daemon.c Fri Feb 3 13:06:34 2017 (r313158) @@ -79,6 +79,7 @@ #include "services/cache/rrset.h" #include "services/cache/infra.h" #include "services/localzone.h" +#include "services/view.h" #include "services/modstack.h" #include "util/module.h" #include "util/random.h" @@ -248,9 +249,16 @@ daemon_init(void) free(daemon); return NULL; } + /* init edns_known_options */ + if(!edns_known_options_init(daemon->env)) { + free(daemon->env); + free(daemon); + return NULL; + } alloc_init(&daemon->superalloc, NULL, 0); daemon->acl = acl_list_create(); if(!daemon->acl) { + edns_known_options_delete(daemon->env); free(daemon->env); free(daemon); return NULL; @@ -347,6 +355,7 @@ static void daemon_setup_modules(struct daemon->env)) { fatal_exit("failed to setup modules"); } + log_edns_known_options(VERB_ALGO, daemon->env); } /** @@ -542,8 +551,15 @@ void daemon_fork(struct daemon* daemon) { log_assert(daemon); - if(!acl_list_apply_cfg(daemon->acl, daemon->cfg)) + if(!(daemon->views = views_create())) + fatal_exit("Could not create views: out of memory"); + /* create individual views and their localzone/data trees */ + if(!views_apply_cfg(daemon->views, daemon->cfg)) + fatal_exit("Could not set up views"); + + if(!acl_list_apply_cfg(daemon->acl, daemon->cfg, daemon->views)) fatal_exit("Could not setup access control list"); + /* create global local_zones */ if(!(daemon->local_zones = local_zones_create())) fatal_exit("Could not create local zones: out of memory"); if(!local_zones_apply_cfg(daemon->local_zones, daemon->cfg)) @@ -605,6 +621,8 @@ daemon_cleanup(struct daemon* daemon) slabhash_clear(daemon->env->msg_cache); local_zones_delete(daemon->local_zones); daemon->local_zones = NULL; + views_delete(daemon->views); + daemon->views = NULL; /* key cache is cleared by module desetup during next daemon_fork() */ daemon_remote_clear(daemon->rc); for(i=0; inum; i++) @@ -634,6 +652,8 @@ daemon_delete(struct daemon* daemon) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-vendor@freebsd.org Fri Feb 3 13:07:26 2017 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 67881CCDE53; Fri, 3 Feb 2017 13:07:26 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1A69CEBF; Fri, 3 Feb 2017 13:07:26 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v13D7P4X084480; Fri, 3 Feb 2017 13:07:25 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v13D7Pxs084479; Fri, 3 Feb 2017 13:07:25 GMT (envelope-from des@FreeBSD.org) Message-Id: <201702031307.v13D7Pxs084479@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Fri, 3 Feb 2017 13:07:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r313159 - vendor/unbound/1.6.0 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Feb 2017 13:07:26 -0000 Author: des Date: Fri Feb 3 13:07:24 2017 New Revision: 313159 URL: https://svnweb.freebsd.org/changeset/base/313159 Log: tag unbound 1.6.0 Added: vendor/unbound/1.6.0/ - copied from r313158, vendor/unbound/dist/ From owner-svn-src-vendor@freebsd.org Sat Feb 4 18:11:50 2017 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6FD0DCCF7B0; Sat, 4 Feb 2017 18:11:50 +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 mx1.freebsd.org (Postfix) with ESMTPS id 0DADE140F; Sat, 4 Feb 2017 18:11:49 +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 v14IBn7W012651; Sat, 4 Feb 2017 18:11:49 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v14IBnWu012649; Sat, 4 Feb 2017 18:11:49 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201702041811.v14IBnWu012649@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 4 Feb 2017 18:11:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r313245 - in vendor/NetBSD/tests/dist: dev/audio fs/vfs kernel lib/libm net/bpf net/if X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 04 Feb 2017 18:11:50 -0000 Author: ngie Date: Sat Feb 4 18:11:48 2017 New Revision: 313245 URL: https://svnweb.freebsd.org/changeset/base/313245 Log: Pull in some minor updates to netbsd-tests from upstream Added: vendor/NetBSD/tests/dist/fs/vfs/t_mtime_otrunc.c (contents, props changed) vendor/NetBSD/tests/dist/fs/vfs/t_rwtoro.c (contents, props changed) Modified: vendor/NetBSD/tests/dist/dev/audio/t_pad_output.bz2.uue vendor/NetBSD/tests/dist/kernel/t_ptrace_wait.c vendor/NetBSD/tests/dist/lib/libm/t_pow.c vendor/NetBSD/tests/dist/net/bpf/t_bpf.c vendor/NetBSD/tests/dist/net/if/t_ifconfig.sh Modified: vendor/NetBSD/tests/dist/dev/audio/t_pad_output.bz2.uue ============================================================================== --- vendor/NetBSD/tests/dist/dev/audio/t_pad_output.bz2.uue Sat Feb 4 18:06:09 2017 (r313244) +++ vendor/NetBSD/tests/dist/dev/audio/t_pad_output.bz2.uue Sat Feb 4 18:11:48 2017 (r313245) @@ -1,1040 +1,1035 @@ begin 644 t_pad_output.bz2 -M0EIH.3%!629360S39&D`>;SS,K;%2@`2::%N=I -MVR86:*KOO>O99MMM-XP&76N]W/6T=[SW@<[G'3H:Z'K1F?=WON]WO>]S=WN^ -ML]W>^WN[[W;V\VW>[OMN^WW;;3+3/=TK*Y5E4LVE#-E5H:"S530#1IB5LS:V -MJHK6!JVA2M9LR*V:MFUJ55JBM:Q4*EL,5$`50)L6M11:P55:V%+55:U5C!I3 -M1L,BU5-5JV-%F55-5EL;:@5:K+%5:S--;5-;:M5MJVZZ[:V]>[:7NTN>][;> -M[O/MO-M[NYOM]WN^[K69ON\^][WO(Q/N8ZZ![N''=O3VP[V/>RCRX[0VJ7FW -M-FQJ%7-G0R;9MB*N\G'>PTM*5H%``-LF2NKF=-LQFU*50444`446P`&FV06V -MUE17-HDJB[#--!MBC$-1L#;!MF@JALFIM-IE3-30"JH#2D`$`!,F$R83(830 -M--,AD!H&AH`R#$9`:&AHR`Q-`,":8)D8C`3)@FF":8@P"9,$,"&)D#0)@$&D -MD$TPF@`)@```````-`"8`)@"8F$R8`F3$`)@`:&F@),R83":8$Q---,"8"8( -M,:1D#!,H--)2:$$VF##`"#329,1A-!,Q$:F)A-#$-3TT4>F4]">IZ0&U#3:@ -MVC4#`-(/4#3T@#30&@/1/1#0#1D``#$-!HR:-!)I2E$H&3TVPVH\BE/QIHC1 -M3,34T4]IE-I0WD4?IJ33T0`R:&T0`9!IM0&CRC(`!HT&AZ@`&@`````````` -M``TI$#1IHIFU,F`T:F*>"G@$F:3TP"-3T9&"&FT*/3"3R,33)I/":&C(T&(T -M4\T-`GIDR-,$T:GIJ>1B831II/(&D\C4S(::8F)HU-02:E)*!#5/%/>V,B-H -MB&"-#(TF(Q38BFVE3_48AM!-(]4_*GJ:>4>-4V*'IIE/RFIY-3RFU#$S4WJA -MH](](]&H::/1/4:>IZFF:0/2!DVIZAH-J9`>4!H:?.1!_\Q4%G*&;V=R9PT='B<1$&>Y2K7;'1?;`L!0$`X6":FH$!$6!]N]*1& -M`>)4`P7%5$G@V]E5TZFK&($]>M7]W^OSGV?[[OM^+/=V,U7MZH"`7P^J9Y.4XK0O)T]ML=,$]>C2&`+KJIP7B%-.A(A^%=L6PJT7:EU�$"\C_*-.JQ+2^W+*<`+ -M[7C&UXHH9B@ULW[I"-T:`@7%]:`B#,.N],:_+:SN\[:H0"]MG;I((-):D9I@ -MEY+M.9\`=/Z'Y5'G)UUBI`$7\=-,6\WB0M^K1(IGM("()_S^&EB%H$,(T:^: -MUJXAFG+?)LZ=2(B>DJ4`+\#0+:GW.!F9[Y0"67\4D'5N=?C<2IH"`B?%D\H0 -MGG&E/!&")G6)];))G]L??MF>!#;?]*:P<1'/-^\77VA0`%Z]R -ME-$,ZC*8W\V[=O*,`"`LNLU]SC!;I4"KG=/S#X!?7Y]N/BU*2;"=,Y6JXJ7( -M\0$Q,LORY367(RS2IZ5>L>\@(%\(7%0'&&F:-KRF&'2:+-/TMFDH`&<+FRQ] -M2/+>LL58^19Q"!7L,11[)RREOK.2B(B\T[XU`#;W%RR(G[K(5$X17%G>A! -M5%N-\(U<88J#4CQIX2R!95&T"Z:FJFOLXD$6)JV@!^C#B[K7^`23@`L&RH8#R4AD93YM`Q3];.J--PN6QM[K)JH -M(O;C-[U@O)%QFS:U:_'AEV+O+ML-FTP(.3(!E'S>H'.(0@#>MJ$"'FJI*?4K -MJ(^8_>2M:QGP"F_OWH5:].!EVM>UB'TW=R@(I#\VT2P%KT]_6]DV]DSX*:$B -M$\P$5TX-N@FLFP9/6Z#&OW(]F)2R!;.(FW!F6.80[RE%T=?O6H/*`%S(]JQ[ -MR7,>5IA_&NS_C[WLV",$5K/Y3CA9I<=R)5=2;=$"#3;X4$!A3SS<4MFG&3LO -M(C(AK8$A:MCVU5]2F6(!3!"(X/?9Y:@`ZT))M.B\B78]MY1`BX"?4#9]!56Z -M)(%K(4E%,HP1?M]'(C@/O^H")>Y@&LC0T?.?#9A!9W#]194/2$B@/0R$+"9F]7%, -M*1BYC&C`#LQ@*O)X;[/:@Q((+?>_Z#+K*>EX6<1R+?T&:\=DJ!\#0UPA_,^E -MKZ<2Y.D"5H,L:04L5`\;Q^3FH0!$N<-%2!`?/ZS>I:''+V&_V'MP$I)`W;W0 -M<("[Y"-384_['P.#[FK55I#5ZVMM[DH!4-F!?_"G;WQ+<>IO:.A1D`8W/]@0M8>%BW/(+<-&H2+N=9T(HE -M8\PHC>;Y(&31@"8(L>$>5^/YP&:Y@'%$18BM3_NBBG3?7>!ZKL^1-#L?/ -MI`&OUVRZ_+Y/!HD`*"]TF31QJ9YV"1#B\R/?U",@5[-@I;.4&_W%90)LS8U+ -M`,#YI0(2X6ML1-K;[$WRF]A\#Y!IMEPB$/?B%:LF@SS8@#$1(96`NH:/6&-` -M!:=-[T<("%]0_N*VT8X/5G4]+'5W>2@57]UECJP$[[:29VK4&^<0`O3I=VF? -MKR@)6"J[:JVG6:T`(X0_F^G'Y[@#IX#*^6`L@0>X[PUGR@1M8&GY?GK+(:KI -M_U,(@U>K55\YIW+R5A#A_I*4^UE*=FQJ$`;GLX^GP`%VFAMHQLA -MVW-FEG)_<:*\3(P705=2"A.U_T1]?;OU(#\LK5$7LA$\:N3_/7'@3_L2$4!K -MJ6$S1,[?R[77H`%;Q,<;P<]WB#C?6PY9\/V7UF*!4\2`M<&]Z=&$0`^[XVX` -MP>#"!:ZO,V=QZ_BB!8WP5-F0XF%^[*`J8WXH"<]L!5-)?B8P\`,YVUF%`M%7EW:-*$+>N64?@;# -M6+FLFTL@'_E2321+T;G=ZYGMTB0'"&+[8**(!6Z&96X#]H(:2NZ%,2"$GFN, -M1!^?3G/A^`L*^I@/+HZ6G:DLBAZ_E30+MJ_"3C6J2\[8"57T0*Q`"%5OI.Y. -M:BNS&C[E[K4@%]-&1?WDI(=$YDICRZ]&1/M.`*SX?V1W6>I79`5A)E)=C -MC=S#.CUY].X/Z]T\1.%B=8L[(9KD:Y=]^`D`AJ=I:%X(.1-A<7W`!S-]'$IU -M%-,2`BN_0O@K[OJ'6R\VPY5,3$:,BZ"HE]\AB;53X3@H[X^"Q3E2>4%#6-2: -M>^%"&#=/Z`@,;KO?/M\""U$)66_)4NJ?&F2ZTN,QPSL<'S\O.`#\I/;_'\T\ -M\-UI3`?SYZ:\L#\%AH`3:"O?XZN.EK961YEOS49"&]N%ZP3[JVOQ(P=(?G.6 -M@"M:W;)3<$\42B["?O/^=:1F#6]NZ$72@W50#Y79>"J>K0,*`@N)KT"+ -MZ#V_U(:?,N,'9\5&MI`$7^7$@&/KSB6TZC+HW]3$;[NL`N)UQ1FMLA(2OD\, -MU-4^]`5TS)K^W:"%9?8I@#2TGV8,J0KY?V?HZW)%R@*_M:XB%7\[7[?P:+XG -M]Q&X;\NX'>`&K2Z:_Q+0S=C1O(G$9#64P!8K][WE]U4>TJFLWGKV#V18-2@R -M8+PTOK0G!;/I"G/^B\0/-;"WIP@_PRA]#,0B6+V)K?EQ=JK2J^C(DC[`S_#X -MY"3TWE]1\OSVL0(N;%("2?M9ZI%FL[0`%"TQ] -MLWN_%Q7@Q^2]DUETH`>JNY1%N_++1LROZ>56$Q,7?.DD3?D:TBT$%+8?@O=, -MI("V5)HR`5A@RVJDL_?A(029R?[YENFJ2&8AT% -MAH6LF-70$`OWGS?-)?`A8JG!J?%BHFQ9=TR**BD@F:4QF(@.L`,57(WQ!&7* -MGC:=$3`_\4$,7F=+;N-@^ORPA65Q4U)$1_U9=>^G^O)/=\V,['3Z#NE@24'X -M=@U7X)-@E=Q@E'!@5_O2O$2"(_!93W=VB(#"F-EGAUAGK"PI/7HT9!#`D5[Y -M\+'#?L&`?+99C>0W1!!Z[=:J17*V6,CT(^FX5>=WB+G?#?J>A=T@<1CRU($& -M2/KW2SC-%H(8X0R]O``AJ6;Q6%^K*1B208.WI0!J4>@[T4Z6:D(9;.)+M_1- -MD"V&FA!;[J;:O3>;"4Q<%,4Y9Y.."\W*KZ:-!PZ3;$/=\"N4*'#KN#<9_N@B -MQ2=Z3G3EXJ/09W=Q:+STH`I>+,97UO,$WD!()PS]%F:D('H[F.JU@(>YN9OAUH:$_GW-1*(O^MOQS@06;P87 -M:-R?;K+]`04'98(@+A!K949?(_%S,4L9H$=7%`"GS.&9\=+H:;/X_;W^YMH< -M"`NS4-HBV;9?TX0@D-MV//U([Z4A$+WJ^K::^5S2ZJW[N0=5QIYEJ -M=&Z\W[TBD`7-[6J=-74GF61-$`:NXFO.%)=[[['PD6!H:;V/CZ?H.Q@V*Y3) -M(*(U*S_(`/X`@=4A8N1X;%PR]WU'P@+J3H?%;:O%,!M`$NVB]R")87^3W$@Z@#S-W_E3`9X%)L4B] -M6_71C'P<+:@@B2Q8.33:?)*X7!K<\Y@""[>-"CM-^)"A0$'ZQ -MUML"Y6[R\SL]`>$W58Z2ZL/G<&BN`"S?9P>JEF>9LK)Z?`TF2@=J?D?SU%]\ -MW2C2*QY;KIS^#>[A@(M]1Q3>IZ28P$!0&!DN>1#QKZ+6SW.]/5S;\E4CTD_V -MU!):LAW$J=&UU6.(N$C -MLD@@W6RR($]+)$-=IJ=G_\M`\%7E[I+&X(JO-968S9V4N@0@/FM[:` -M_DOHOVK;9]H"`YSN@MDXZ5!^\;IM^0"ZT[=\^+)':SZM<12_B%("*PA+=^-6 -M4X_PN14]E.7-."Q^B5'&6TA[JYMVGDV@!"6IH/Z6JH@=S^?QJF3 -M!%)(6*9O6O[NA.NF%0*E0`7VVG[["W;V*1;OZ\T -MW:K[M91`=CW>?L7]P`2I.^9+5TYAQM`E(0%F$ZV>R`(-RC7H&]XXFP:UY%BC -M`)R"D*N0[730$"U_3>;"DF%<'PC3?1;![F/0$!`7,+9HVZ(Q&0*AY&)ULVCY -M+1$(Q-SG5-O"<=//)P//$5`7SK)KA'4P'#J4"OU;LGD;/`VB,,ES0$FE7$DK=#UHE`B"R(_/."6="48`%=C -MEUSNIQ$$'36Q-I&5Q98XY)(("#_'Q/I0`.M?]'YG8[&O\#T,WD(20@3N/DL_0J^9;`\([->'9A>G7GCX\9E -M0@!M=I66J/(],51@(@0?HS\478WX*Y0T*XJ_O=U@*6WFC3'B"(E.&1'DANP8 -MA"9[NDG#6V]/W#46R."#QGG`O/#C)\[4?2`5H^5G3W+1P5.,(-QBP&W;-.%? -M>-((FRE+9_]=P/6!9$?X[H"/MB#IS`3J?[;1Z39%A=G\K;XFA6OI;)8DN$C" -M7BML%@PI!R4,UBVE3B=_ZKF<0@AH@GWQH836)<,FH8K\Z1<`_]C"$EEWC%^! -M/Y>[K2`I79%TH]PM=ML)@!SW*@GM%S$@J3N28M)R-`A+=E0XY^IL#V`"]FQ+ -M^_4^]%/H2!_ZO.Z:1OO/.8$>DXQ6NJ6@RJ$@&7W`;:(MKWWPFQW;(@(#-U?F -M5&F]RJ`A#+VFVB@-@,'YAF.IL?V!1W3A`*O%]39V9A:^=$086@"=9YY/=SI% -MP.43I]O%5,)TL*VCMQ>K<+1@HN)6`Y+R!4_X_[?Z1FD()>SVM"YCWW&/D(N1E:+:6?SS"^T^ -M>=9VH1@3/V1P?4WZR_1P%2B?BLO6(!4HEY]22&L[0O;91=\SO%,3IA"MH[!B -M%CFMX;((MF&F@-:$#^/NR4^?H#P+/T?`(?"H1O\3JUR+0$3,YUPX/"V!XHN$ -M4I81(I##TI)/`O^DT'P/ALO4[G$M3G3UU0\M=O((04/Q>A^QPA4[V'_/X-$'J#` -MO++H<>8QCBZ$W -M)UR&A$!99;W<4^-+"5>D]I#=H>!H8G2&P7(Q_(!?:3VM_H>=M^AN) -M]$08[0JX/,N;+V:J5'I6(6V.$(:0ZX_O4^QL.>\MF$P#[-^RDL0I]Q%IA\Z7&&FQAHOC`D/9^WQY/_D&5RP';_%[KSXRXR"- -MF8_*GR>O=!,]"!HE3EGA09H#U/^0V%;4=#9/YAX%'X,O\!"!B0Q? -M0.$N*`P//0.Z40@-,IF["EION'/2:'+N!#DP74'%[`W6W$.LT!L1>2LAH-3&4=%D#P&9C[JB -M];D8SD-)BOV;`_Z^+M/#??G`.L6]X+VMQ,0,SZ)HV(7+922%)EYPV/>7YUQJ -M!F5L#3[/:P0.`4%JR2QH)>8$]JHLV*0:[,(?IQ8<-C8[FQCJ78RA5_6X:=%? -ML;9!'+Z7+@8YD,W0.Z!V<.E@:$%BG_<]G3G5ZM]/H,].8:E4@PJ!J(D)H".9OD;4' -M"EQJXO^TH/ZS1L+=5L$%Z]`8O]7IOZY=8C-N1>,Q1=^BFR@T+P:'@C3,3:*. -M3`"L]U%/UP=A9X#@_-05U7IC2>XUP/.GC'>F"Y[4=*YQM^4F*N%V!PAFPKE1 -M6C!"G!@N@+W^R3SZV=E77GWPH-/N38#!++$4!=X:K+&1A2:W][17AS990I0; -M_Y#W\L@\:%VI#A:K9PY?,VY!>'`[-/7_S]GZET(W$\(#P:6IV9-1`H;VP=R? -M$`$G:%9(6N(ABM$"PMCR#P^[&TL]\"<,%S_QL -MQ(0B^P3W;T0R$$,%O,Q.5^I:K:OQNEMR8W^HR9"+KL.A[&]/%$`O)-.G_<7: -MIEO@!2J#72LI4S)[\@T]>'F\[H=F?&BM:7\O0^-ICQSRP&+Y9<=`EM^-,*'X -M?.R(5S.U$/)84-J#B5/5X#K<8L^0]0=L2#DD7]O],#(!9[U@83@F_Q:-[OF*D/&+-'5/=5`+VG)*RF0!&^C -M6JEQSUE0R*U.P`*S^=SAK8%RM=JW9#^Y\7`(?6_56S7G8;R>EHQ[,XHQCI_6 -M:2&_SJDYG\[4`..FZBLFED?N/A(KAL;1^9VFA:LF05>S^-5\:T/A\T.W2`9Z -MCR5SH84"^^CO0=:VV;P.D748UHW-!?N2_1E1I$^UWXVY#??7?O7MSNQE*Y-H -M`P:-/D3G!;1RA!ZK]T"0R3#7TR$X)IH7CXG#@3499,D8:^1/?H!S7?-HM(@Q -M5K9@4,%"4ZEMT/"_\0SAXXEGRN_`)&U1H,4XI9J%((D#1[,AX1TPPPPBAZA& -M!3:"V2`C$8#"*&6;GU'3+`_,_6_`]S@AW#.X23A3AL[JPI?;_?6!8+%_D?YJ -M"=RQ9,"'UT26,!(G^/'S\&#HPY'/H]/]YA#ZW![^Q`)_(&S?W>C!PZDI$S*_ -MUF+Y[5.P1GTK/PX0EJ?`18=(:`&YJA^N]`U#AQ"+T\#6/?[DT&&`FCR7_5SE -M3GT=O`34]-,T2!`[DP:*Y=PT_6.H1]9U[%)JHU=TQC$I`Y;L,@;.$8:7L$%I -MM"XSG]H0%WK:P_]@,2PP)2Z[_1E93+*BL864BUC^]U@OC2?, -M5HK_HTJ(^6Z-<^88P#OK\;*<(OS,[<;O2_HSYBTHY1P_+Q'R&J6YG@G!0OC: -M>\X;HTP3T>WODBO/KV&');,/W9PJI3G"N7[P80""\*]K-:J[PN8WX-`')Z0Q -M--X#0N7R,,".J0^Z!RMW)_]S`QNHH4L"$:\H;!ENOD+(_R]9VD9X/7%Q)JQ[ -MY9[BYU8,+$#4ST5"'!V*CZA;H/`[?D#]_FIH,]/BKM(!O7/T:`3.2LX]F,#- -M[&$7Y@#SAXL^MW08\-[)B=,(V35`ZHLV.H?2C%@DT.Q^0G;L;W8S,YX'S5FQ -M0]`-49S:KL`7G8CO5,>\PM[OA%:@E#8=HV(YA%,P&#W:#`)SIG$0JJYFRR/@ -M(+%6W79$,W]AO<]5W6UR([/ON4,7;95RLCA'%$_H<%;3OAEL?Y*9]>;#3](/ -M-R@-JH$4LK_`R'1W(2^VPAL`8/K@^'`+$>7=IVL\&G3>NVAYP3\X<%:[TM`< -M+"9Y@CBSG?P=]85NZ'DQNQPA!/)PX)?/^[,<+7DFE6(ATIMM]^U008;L8X"W -M[8QF_,%\FX'5WG$,N8?F+;B7G56R`2>UAA`.;N#K#>-B/V":GQTZEP/"@+2& -MM-+T9%?KWB3'YE+;FW'U5"7A(PKWH;VK.F%=ZR -MS(3]Q`&IWIBP]V+H4P=LP3L=6"K5"Q!G2@<(:94)[VKP&H^:!QE?V@6C?E), -MA4_]'=&O[1+0WBN:K)FZG#59EBBC)ZRR15_BZIL0V4+V[VH?0'#+A<$__@*: -M1$AF]*;V'!.;(TG+1/DO!74UZ1,RB[-,9@O7`ZQMR^81(%,/IHK.9)N=HY+J -M37V]PXP0V*+*^_O=>@,TN;S0AFDU#U+)-BRD?9MJ[U>W/BZE9/])=8,]$&EZ -M-Z39$`8='K/B)J?HK#-E2]+<55)7Y&H@J2T:"NY[7`PCXUIG0`QX[;&;C@%; -M;&NIZ^J,7XHX7#2P-7?AB>�K5LYFY=Y -M?>J;Q;S[(`!>@[EW>7(]]!87MS_!V'$>`/2*"7SXXURC&\UN(&G0';=SP@7+ -MVNAG47FKWFQVT\M&VP^@";ZN!DB&`R26G&XEN>YYQSY0TZ!(-B`EO>HF'`86 -M,#9Z;[R_`0AA)_K.`#-#T?P?T.UTGTR5.Y9\QA/20\KYWM?DZ1I*,56:J`?J -M`<%`JBA\SG0%)YC\Y]/C';2K_N94D+)VP-.#6J[.J0D"*&/'$1Z#4\9?C"_#R^!U=*?2B4 -M$O5>N6J@)VM%-A"%>T7Z<[%`W1,_8CPJVZ!]I2H'MGX\859[G^:;[;.ZT@K2 -MXD/QA?6&O;P39*5)-]]-!88S!6L>*9IUY)MRD(OKWQ;C(LFW*,/)LR0&.IS0 -M*BDINQ+[8/GQ$OIDDC.$:;IWCB5CYV4MA6Y_[PU[)W.K'OOG!J605KP./&_@ -M9>_3AG1%CUH("==L#X3WT%UMUM>O>8O<#OH@O#>DK+CV8J]I]Z++#\?\@"3# -M7&*,YQ)VG)<3AKJ..-128TQGSL\E]G]MT*S_L+849W@I1C>-;)FK,/*H7KR -M*W'9T`MJ,UV%J)E-X;(.TQAC=CV63Q[;`TQ;6EC-6^OAH?ZY8X^W%YHPXYOK -MJ(5*.U*W0]@^VE4!(N%D;#CC&>YZ^\K[=.QZ/N-%]TS/3O=.$KLF<=V7_@8D -MHVW1N<_W4^R#N&+6H:W2S0Q&@,=)Z,/G9'J=O#[2:X"KS4 *4E+FJA=+MIBA.]H>Q78=?8#9:.G@*9W:JJLW@HI>6Y-:[VB4+=@Q!O_T -M+^?.I*GUM.AGE44K_[PI*NZJ?YG3[DQE+;!QH$J:`F&I85,[_J>UR$]Y]_I" -MK)#L[22+9XSI4+CC[9*R]'64IG+*KR`;=.Z@-L4Q/O:%,3V%7LE%ZIN\$_.* -MP$987+OB2FN'*F\M11A6MHY1E(\4D2Q#D%*M1\WXSIE=;*?9F(IYT@BI`M;J -MNBC-P7<#+SYY$?:&(Q/G>KJQ\YFKXWW -M-2QBHGCI#\_Z"C;C2F;(0AX=:D/T[3!P -MI`RQ@#5U=#2]%(&<_6$$_"-&P-D9]??T^\>AAG.&@009*9,DAU:7U#7-GS.' -M*,*!ECV-23)VX_1Z/B2_,G,]"D@5?7P^_8<@@Z7 -MF'?9XZ6-B]O:`*R;E1.X09Z#%H="PVY^^%3V8'!+@[^L%Z'D3&DV-TR -MFN"DMW,-!*[?E')VOE]F>QWJ(A8L/M8+YZ<[KPVC8&7>"7QC#%NYJ.S,6C_T -M-@_IZ6L9^@>G\N*69H*7-C3#1>G7:]J'0,*RPG7S2<%$P;,:#3$K_',B;KIZ -MSXKNY@.[6\S:F"CV1;.5!DPVKB<(UB:]*WR9AL!_2_HG[SZJ.T_!NSEW/$>! -M@O%K:V5/"!V&RTS?S^7YG+-?W4;LU\A"F04VLZ1Q!@8,9?1&+%T/K-K+\.YO -M';3N&L19V=E=\CB<'`0]I'&==V-<_L<+@ENI+=&QR?OF9:_&OEDL.^U@UII< -MZX6RLGR&GS/8THS3VLF;@^@B3U%!/QDMP>GU6`HMCRX`C\,[(Q\ -M@0%&)S2>O$Z9H/7A0@*%^XUITX;\A1`KPKDO<6/Z,\PCEM(BC-884!CC8HM) -MF=3146A@FSQ@F=<)^_*J3W8>!#NO7?.T\&D#)_9W.5\[`*)Z]I)*G\9I(P:U -M@I"4D8JJJ'OT@?I&8^6(=28]6\HNX8$I&&YF3 -M#L#OXN;7LJ`2/!&SDLZ(O5Q_5&*.Y$*FK#:9XQQ?)!?Y!,&CT2=^,HFS1G]: -MPN.WO7,A!3)$*G4#^YNOJR8'Z"+T"J'(Y0-]'XUPJA@YM>>C!L,>NE'1S]*# -MAKO>,3+%V9K>L#BU.W;)-\BV]74>NU\SE422.BPFD&\VN#BM&<,6?0$S2&+T -MW]7@6U%Y$^]M.P'_MMDGHW'F3[+0<%!C<]8!*31_W\--]';+?ZN=6U6XG7'L -M6Q+(UV2OW3G<:O"7P0MI=BGUEJQ#UVL?+A995B40&\&@$M&#I:C&EH`\]^!S -M8,,5$QEJ?/8NL<0K]&F&;BSOK1.X]L_HOOUE)8;YF+\S'Q5S`U2DEM%B[A5] -MT*`UM3&Q[BV77-G;(8KL^<3:0\$!`B@@2S%RH>QY:"L@$HN8;\):5)UN6*SJ -M4G1AOW9J++H*\.;=PM)^E'%VAA;PX$G'_#5O4^T#BHY&\AK+_92,K777?5!8 -MR&YA<51GK$?5I<]H;30:ZPPL+%PKO7ODJ4NYZQKSK%@[&,J=(OS.=NKG%<8F -M7U^NFS]-&;2+S^R@=DQ&,-='/FH^4R[JXD.52=G*4X'"/^O^\_@'Z?[#$^4_ -M*:2GZEA\J*J"2%$MH,(?F2?^J*463X2'FH&F\OT(A\J6/@3M/E>?91+.U>UY -M':#DQ]1O^?//&`6!F<`/#M&2X#MI9<4G:9)1R'.,9EU.,WG:_?,WJZH-K%=H -MNUL]B1!8ST=)^)J:N9N=^JJ.U.IW-2U/(R -MWEA5-[O-YQ`\BDI=4)3VRASN)S_;M@;9A3;7=UT]NG -M+Z[I4\NG40>U>!4_+;-$;9]^4I]?J1W*)7HWJ]X431VG$X'>T\.]Z%'73#F'= -M\+IW)V:S-N-MI:`K)]=A;K@;D#N)0K-RH5Z,\0N+,1YL.'&=5Z=QKF!>G7MN -MP_CJH79C-W_7>1JF>`6J>XPY"ZAB8\"J>/2>B'HR>B",/D(3X1]TDUFR(18!]L`OVC2,8B0]J -MQ?1%$\"CW#)MOQL`,[H]YZ/5\9.58>E`/=0W&PLL[:D]/&NCG*/$9WEB.63# -MG4,ZXCF2EYQEE=1P[9J+D!24HTMQ5?P3J1`&;-R;YZDZ:;XSNB,Z_AE'5\=M -MO_?)W9V+YIZ=LD'S#5TE_`QX,[2.C2)7I)V"9F6674*J89HTKQF7:%1J`&=R -M=0E):BI7,U^#R&M02/K5]QE;?)\\/S<[?N+,R]Z9UV]BW")?Z5W_U2WEMRY3 -MY)3Z>H5`V7\5E):H#U[Z17"1ZW[@38>KC\RV75A(A21Q!TVQ4N[G(YU$H)./ -MG*:"=GUPVKV5+1+V??9_"17,E9L>^S.GD1*;&$:'A<@Y)+(654C@ZR -M_U"SG(2TF9^;EA2P#.V-_ZJC$V5PE/M-EIY_6I4V&$N8/([%`C.&W[BJ\[4[ -M=_;>H;I\_R4O^)`N-$L'WXRK)K84< -M&/WZ$ON<:V&ZDJ7B]D[2?[0ZJWB12F"=#'/#/%H!7-42(#,'E=8'R"+>VT\* -M11-):53)F$*Q4)454&*EJ'ER#G!4C.VS,/5NQY.L$I0$D99I3C7+4Y4T.*VC -MFKFF,_&S0CA<`7!CQP%0+(*J&_/=V58(![P01B23`3Y[`XA^ZH4" -M$\!.F!'@'(R\5?FAFHZUKS"",#APY>A&^M\T;\Q)U^\71U1^\U!J8NHD?YE= -M6:=%?L2P/%9U_\>'1&0?JNM+D+[0_8$P.;GEFDEYO)9?E1QIS?([>FCD(>U7DO*-5?3(_]?\^C$`OQ"4SWG7/^)3 -MJ,2\KBKG>H@#B_Y$9R>49,K^1_A/7B1"MTW&!BH6N5_RG$M8@6PK7*B)JU6$ -MD1.SSE\\&P")E#IAR59+U.;ZX3K[,Q]+29>45>#`E$Q<4O>N>=X-0_-4B%*< -MG9\PW@0YAV[%,M2Y]>I40C!EVJ;H8&OKZ\43D#YHVO.,15X,8Q@5>_FH#QWL -MM%Q23`#!8P"GXE#W.*%]#&(3$^_5U'N@8@>%B?$>8&!'?70')C&1&'5[EF=; -M"[@M3IU_K3F6Z-'_!2+SC0?L5K&.J?1C1T=,YD^&+&?%K4\W_: -MV]+LM_T3'&@UX?,975H)WBA!&>-C)1*R\-N_$1OU!YZ;`<:*$9A23T/^DXMI -MSHBHF.AXALIVVFQ$$39-S1Y5B19.KZ&6"91#_^CYB&E;V5S4BNK#;E%M-GEWK)S.;)!QT9`6>V;59[F9I17'5]56"L/N?S_QNGZ6_&E1`U3XS1 -M$?C6L5!0AB82X&LC4DF((*DGS__?V*?32_$?8^F/JWZ3ZA_2?&^^=I_H8)T- -M;)X;/R6:%FFF-UE?HY,.\K7^B'L-Q\YI.JL]>OP!?HL2U7))C-\XDE#^8R.L -M`3!O/`;5JPR?N):V_[&BH3AZ&GCDY[;#I\\U?5N?*#.1]@B=-NI+MBLG; -M2-=DA72[K4NO!O^RL.L8_Q+EP8*$4S&V*[^W9,W?RF.R.<[O[>%T -MMTNP3*[&EWEE1HK],U,8>WBVU*?RIY_^*=E^Q1J![C6L.KR3<:RCUIR,P& -M*./;G"OU6+H4"'9^MU9T+$0"'O#1T250J*7,Y>XM=H%,V=ZM+DP<+2+MQUD= -M+Z[(.8F7?ZD_U?:M(_QZ#&@V#FUN27XM:J[0S$M(3X3KI^!S5^)8BIR>SRO5 -M03_W/V=I;_!7EL>L\O4X].]R:VK]>.3Y71'E`'G]$#6Z*E#'7Q>QC!B?+I\0 -M]8%#X@5GQ`8,A[)%5!1@'Q(.+*_$M)*(Q9/\#)[7XV'M,GS8L]_@^74..E)8 -MC%+!&(.NPI3G`VH#-A4U`$4QQODU]-]=_%]]]I)=65.1W[#)Q:%$E4/_?+W1 -MJ/2(591#`U1B6PS2WZ\ -M3KQBC`Z\3KLIB@E,A'_ZUX+0E51&!$KUO??&70LJZM*#WG%AB"PJ;%DA^/B^AK5WJ9G>/>Y92TS@^_\+P.Q.W4H#K]=@J=M!8PBC`>/[OKZ7@PU.=@6G9P#9A@H?N=R'4;OUI]*--R$ -M^QCC0K]".78^3M:(>I]K(ZFG8D<1!LK>NMR7YA#Q1>'YC4B>$,*DV[&F -M3="[\K=SM.Z=-:26I@ME67XJ@IU<^E/T[W578(WS\KL-[G1=MU%3D5`0JV_K -MJW?)ECVU'P5W?:^>QR>9\/^]WL?'YOL8C>HYSWR)-76D\?U]ZR+VV51NW5 -M2W3?A(\VM^OR'D_?6SZZ>V:\K*R^D5TYMEHZ'$O>:"/;O7O"-!3X5\75%\3; -M\R^55##>!1!JW@PL*"\JHHD.7(V5(3!9*6EB?AR%`YB%3DX:I[KJ\3V7%F9 -M[4R'2_.XU#Z6<:$(J#NQY[J]7D4ME0K>!->H;NN+QET"'-CT,>41/*%M -M\EJP/1A@LL8HPA0\M*=M)/*HL8R%%\L4/'N'Y_W?Q?DX^M^@\?V/^>S]2M/^ -M5('7UH43YAK'&C\IK_5,GY9ZL*7\Z\ZA34=NO3JLS*B8F)B6IID1U%)(9U%1 -M,V&5X_J%2;LD^['7T<)P@=84LWJ["X%58BFQ@#X&"%0H.`K*2?+ZH5'4V0]* -M+'595;2J"D@4K2J*B<"$_G,*(H:G,/;#XO.5CQY_"7R\J!$ -M#!UAE@0?>SV8KTH]NKB/'#JP0GK\_^VF$TCF+QT;%><8EWI=+8ATM/0_ZT)U -MKXH[:AMN3]/;]7-FY_'H:.C-H;)7!@3/;)2\0+J!+H'HTL)Y8#/*T60/F`8P -M#M34'C\IY4\MFK4&]644U:'0FFM=:89IE#4-P':R4OE_)767%M#W?^2;TE[G -MK$Y?=NG]Z6;.)_X9SIX2?DJDYW1:XDV<]HZ&A/GT&O9^\XU-[<#T[K]?QQU^ -MNCOE1*IP_0X=D@GKC:4/3/`13TP5%MD/3#T[8B*0*1&&,"$"#$8B?P($B@!` -M92`%?.>U]//U#\&CJ5M;\1W_9BP1^9M%W.(OBCW+!722E4!#8G:E%9)2;4*B -MFHI2F=4E9%4*C4YXE1-JYQ7554]B$2F^Y0S*0H9B9H^,\9XIXY'QM)12*2>- -M%C)/'(L$45(&S!LJF!RE#Q?S]^6;^^=GLO9GG6><\H\?@\X]?\OZW_O@MN7R -M^R;_/`C7LCDC_<,/-.5DQR5(K)TZ*8Q^4K^SF6EH@6M,)AW7'>7,4M+O)@\I -MY3R]VWRH."(J>BA&"(^6R1D&*G+9!D5FPTL)RYO"[X;^_X1RPY1O?M#P/F?G -M>_[S_3[>B=?H_3C#]G.[ZUVE^[S'S/*-;5T2HK+"!26$B965UA6D5@UTZ.-. -MX'W(`YR;P7?.P[*8MD:RUHJPG?`4BD#O@,$-Y@";SQX\#$1X$&\2`_XP<*AQ -M'A9'0:T.-[R^ZE4?RW9PULTP3\I0>_IUAT:=DF6U=5W2PL!7D5@R.BD5135U -M9RBUR>U*TN1;J8&=',\8YU=01XF,Y$Y"G(!$G(%7!5$G()QV4"(@'((B(SD, -M`10Y%%:4"SD,ZJ1UO<]]7XE)Q05/`'S/@[!.Q(7P'9BP,0$ -MB*C`-01B/F/'@<8$`XD#YYP.(.).`!.)$'%0Y=>2DOWN?5R=GL=?X/P^;?[& -M?Z%@J*R1CV@TIEI*IIT"1(B3)FX-Q7T>*2/W\W[Q]QK>3N\?DKE9?_6:<[C=MG<7.\FV]O7,_5ZU"74`U)%E%=E<<> -MNP%*Z,`8:D.R`B(R3L`8*(L)V1[]I;";SS@0/GS`CX?KGZSJX3CF&VC$'IZ<=-$W)#ID' -M%*,DP$1('3`0W65(%*S+I@GO:AA]/JGSQ?4GF4[V]K;#@TZ.2E09\O+A2UZ% -M2:$62Q=N''J0GSZFJ)7I41(TY]\?"2`,X,SDT,Z='-99@55@=$!0#4`Q(I)T -M0$42((2D8@4*D"".,$I<7Q'>'5'+'L?.NY#X7SO-6A_KZ'Q5Q?A\8 -MYEWNNZX.Z'CBE(HDIJHDTS5D$[18&9D@`21'2$ZGMZBA.N3J=6*BI)VB#&2= -M8J6AVE"3`:P44SS%-7XS,'Q/35_O][^OW9FYOF9F5-9W/F=B3Z81B$/I3B5" -M!JF<6]IE!+R")8R3,$1BA+R*<:RP+%*9`SR*9V0<[%0YA6@T<#P56NZQU-?[ -M.GL?(7V$S[S/RO:Y?TPRYO[?I)NL-IHB8LL@8D5[5`8;S -MJ/$?(_^_@OM'X1_I^S[J9_B)GP9ARB+WN.+T#%])3%/H11$$8!1>5]'G7P%0 -M$@/R,$PPB2,04`\R?Y63Q8I#FYJ%)0)A!!3%$!C)&QL$;(Q[7K?6_%_J4?*] -M\&?!THIK2S,UP-W)KH9%TV`F;;0V$&,`I%-*4`I%#X?^RF$`VQ19#:&&YVB( -MR;1=GN'':NUV:;2,?T'-BXKZ?^>0;0K[,S*YN[[`3=T6>_S1W-+>-.,4XU@( -M2DA+"!8PI"6`,5D-$-#0D*DSZ*JEA?H4T'@?'ZY[3D\?]*SXA6'$G,-WV/?7 -M)R26Y*+C((8(H&2,23.`L,TE$%@%D.]I@PQD"BDHA<"E7`C@.JZCJCE[!'3N -M7!<'3V;U304:PX6'/'UWNMVW.+HZ?,H;CP[N@=U.W=R*FY0Z";MV,&+8&)'= -MC`%(@Q0#S)#@Q0FZ&Z=&X$W;J4W8W,8(QW,(-/#'2C'F7_F?OG^;Z,F239\K -M+JVI))!4J@T@0#5J`K#J#!TITI2=4!0PRKAG:=6H@(`BLD-X;XHL-_>.KK\/ -MU)^-]3B]CZ#RXO)C7R)EQY''DJ8'&6&*<>5!RM[=I#``P1BH$U23)"JR%F+3 -M)`3C9K$P?`?>?YS_PK'O?52^U"JSGRZ4L4`?AAA8(5?"@0A49"D!$!!0YI, -M/M\6`8`YJ59#5`2TAB#4LAS/T=4+4JBI3B0Z3=TR].!%%#I)4.C$LW$:ZL0#I`6*2:4@@PFL/#)6?0QT9] -M[6=WZW('^3W^3FV]+IDCC(51!5@?@-6`0`0/92I?>)2I*A%(8`%`8J!F(7H5-)HA8"F:J-*B -M@,&"^7R^\O+\RGXI;SN=YG&Y^J8C%BLX\!KJ:[18%`8Q83B(1=:2H2@+B2HL -M0"HI#$8@Q&$TN)O'=_=\;V78/B\.FF?H["OHMNW -M;MMJS8;`V$B1)-A(QMI)L@B(,)LE2&@LV"S9-'9,>34)7>-S-V=I_:[S?M>C -M\OM?%P]C#4X5MX=E=8U:H*&J"13!.L:JH*H=0JR=00WR`Q"=4#:J&,4628)U -M")TQ(S?U8O4>HUITG3N[/G.#LX.$0M)PCPV,X8*3AD'SF@<)$49#A(JPX8<" -M`]NV]U<7#P4Z9@N,8JG%Q);.'B3A:K#B)@(L!$(< -M4`4!&!Q(09!96Q(<0<3*K`H-M8<)QYA#FQ\/1<04H"QG?D.N>'T^][W -M^)V/,/E'$,/>;NQ3KHFN.LVFXW4-VXW&X,,^:W0E0W2+)4A@DPR&Z;DHDH"P -MW!NYIR'SG>]#BX3SNY[@IYQYPGVN;G"*O@W-6U5'3#P>+HVXE"S;5:);2;`VPVMU6&" -M0VR.VPVLL@L\MJ(3`;:63;W:S4=W4?,X*88SQHWV4%')[)PCA=73-HPHX=/" -MZ?J,(!44DTY#U6G4+)@LLD&"L0-,FDP1TVI4X6F;6$1PF?1\'_]X?P>Y\?J= -M/Q'=R[^^90R$RY4B9%,L+$#*112,3"$^;@*:`&@"Z`NAGIHII,>?NC\/C^#E -MET''T=SBG&'$!QR+#4T8%@HLG&V#`*"@H&%JIAF'"JDTS"\+3>5IZQV*.EP> -M4<0MD%4)?(4P"AA+Y!S5"\:35LAJLP -M!>WE&D7]HB9CH'-YN74W=BTR,@^)")UN@Z:*0TU9WK-F>S #%LU0!$V#") -M(B$-@9LLQ0-D48DV;'ME(Z"7`Z*LC^K`.7JPUN@L>W6Y8VXWX4$+KY?4OHPA -M'D`*(&8A@0*6(+`,Q+&6)8D#,"Y@S/JKZL#X84?#I>#SSVN_:EF2BB*(-$4J -M;;%4-D$$&&:9R@LSF;4K(R+(*C"9P-25@9)+DH5)35%(7)DEMK=;;R"V[9V\ -MV*RL2'(@R&1:0Y`#6E0EA%J`:IER8Q+@7HRZ.CQ -M`X#@AP+.`X`[A%(I#@(+.!A1"4.!(482G`R<%CLN,&-O5Q;S$&_;O -MG,WN9;CXMYQC.)D9YMUN:FWY/OL.FF_APFSR!YJ.V6VQ86VU518I:$Q45`*`+:H -M"H18@BD,9,:6RC;93C*;"ZG:W]OB[&R=YT?7[?V#SNQL9LQ>,OU:S5F#,&:J -M*#5@9DF:2*!F@"A,TFJA%S4F;5U5.?O;18]'I]WN=W=B;;;=BZ7-Q=<"PN@" -M(8$)=)%N0&`7(,I!;BZZ1@**C=E&W-MP8*[PK5N[K8._V7ZIBA;?@54@$*HJ -M0@F$"@IG@+)>@(19*HI9#/(L!B`0H(%4E`H2$&%0215$1A+CNS4W\F+'P>]> -MU'7W@\'L]FPQ2DP(FPBPV$FP`1)L:K(%(I%`U(*IJ:E4U-0U#*<7:-KF'P_` -M\0Z1T.AO8]2LAW]FP[_F+ML=NQVM*K#;)L9J2;2&Q-KB(':A%6$1$M(8@I#: -MJAVE)M=NW%QC3R.P[WI^+DY.3(UIDVH:SCXZ:\8M7C+27CQ36@DPUEA-:'"S -MM)J%9-4%FM"MM(4(:33`Q&'$X>,.C?+76YG&/E_@>VXN7+K,R!DUDMRN5L0H -M&AR,#1-22D%%"2(DF@02M(:@&,F8::6K*&?1H:7O!R^\3.^KN]\?!-_NGO\H -MLPEK:VA:%J*`DM8%*(2C&DM5F(D"D,=JUPJ!0&TO(V5Y*[TB"YZ`M"`/R/R60(!`820J/D)M>:.W%MW&V6%P7<*ZHEU2@*A%)<$BPN`6Y%` -M$$$@H)JFB0TBI4!*417<;-2JQ7'7*CF*WM[7!+++@KX-_2/5Z3U^`WS=OF^% -M`63>3I0F]PA+#>P4*)"R,2&H%WUM$-Z8E4W[YTG@ZK>;/S/Z6_=V#?Y60RW< -M?4W>1<270B@72`H7$+A"((@U06F,PG%.KL^J['<]R:'U&@-!ZE70%06/J+*J -MB0[D$8L1`P0AW"=Q(49"QY[`9P8L*//7@YN+G\FO[MX-#/3CXQUVX[E[I\_!JIA%("`LEZJ%^>+G=JL^7I9MKD^)ENZ&[LC= -M26VX\0ACH$06&,BP%DR(&2*1DR061F6+*Q3&1@'7BTV2TV=FPV+ -M1\%U#J*Z*[^OE$*,@Z>'L?5[/7C'!>IZE010QTMDD,!(I*JBD-S64W+#HW8P -M%DE0P!AFYA$)N8544H`UV"&LZ[14=PX865?P^9?SN#>Z8I;QK;MS)F -M"N"F95+99,[9+(*3,DF<)4R64%0469%#(7!=MUN97*5@W#K=#+73U>KR_+_$ -M];S^?LZ-&?GV:VC6UBHZU)K2:R1@YZ*36`UF00%U(2C`H0Z$*DL1%)T3H;;$ -M7G._HUJ2M'!P>%YENT;NW5IERY,EQD,BY$%R3(B0,CD:P&`YV!,$6$L%,Q?8[IM[7/]CO\GDFK?Q.A9FSCG0M3/FS1'U?V_9Z7:^LZ'@9!6QI;K6Y: -MLE0520)!()$D((`I$P];!0U,DH2'7"*2M9`[0**#U2=<[3U^EZ7D\G3O3YCR -MY9>+(USAXSC*IQ/&%(LX(*063CA[9EM4EMD&0X[:K`2+%XV$#3G:-?2[@Z80\"#%-D%AM2,!=+8%(*;6 -MH4!$V@B<7535,SR6^KS8W=!7=^R\C#Q3C5=CT[2K32LJTM):T(=K)%EB"22T -M!8"P+8*H6B*A;9;I60*QVS';Q>-TJW#P#Q/6&R4%! -M2<QAY=KK]CT^;Z/W1[_X?) -MHZ6Z.AG.72FD,$-"(PT0C"+-&+4EA&(&@+!3"32:(AI;=#0T>3E?==\ZGR[? -MA7?V3+J#$R:F295LHI"Z"@HC)E`4,TE8&@3#%K`J.FB)H6!- -M-5MTS;VW9LFT4NOHUXFT>5O]W?CN6W&;5MR71EJ5+B199!9+DIA*@+%+F`PB -MA<%PXJ"KK<&.[:K(59RKNZ/$Y'(,G/XG%Z=KMJ,V&CH:&,8#!HS29H3225(# -M,THU*P*`NCIC!3,\MKEVIJ%:F7+E$\.[J'J -M-YH;-DTQ39IJ4V!*`[*3)DE"2M8%D-C(NR@,N>-A7>5VHGC\/N6[3U?A9[M' -MT)X.0U\>NNO!R)9S2W3?GLFP-C$--$@;&1D58-L$"960U`E299J+%#B'$-O*V'&G'KI@ACMXQ),$!9,3C<3`4!(LF*63%7%H.+: -M0ZSAV<1OZN.KKJZS6S70X]=5)8:TK)0BG$U`FL#"5#6)#N!;22 -MNH;&\3QE$UFTR[J<_=X]-?M[9PG$\1Q3A9Q2SAXJ*1%DK(,A\Q98"PE`4.)# -MB8,%.YCAQQ%'BEO:.'3R5O,>3C^0>5Y.^\Z.A\43O-I8KJ3O3[. -MG?'MX/>_#\X\T/-`\T?-IAPPP",\U&`I)YI'53V[A@%`$S@G&`SCG`L*A?50HA"^!20+V\*9FO? -M@??6-&`,AAUT(AWN=DYCCH=E>$K@!!)<#S%#H#H*&E:1`V6HA4(@(A)LA.5) -M-@1U)BA0ZF4C@=!+0;/)F3E%R.)R(B3)C".5@(19#4 -M0RAK:Y5JAE8:A4(50)P$$^"<34H[M/I=Y"R+I/6]YR -M?-\4Z^2\.OCA;:3B8DX^*DL!2!\N"BDX`Z>4C)RD!A0%=*WIB8=,8A@O]OP& -M.,SUU1#1BGK08)FGHKM"V"DM)C9*82T)%@=J1<"L@@E*`H@3Q"U0AA6$V,&K -M2Q]O+8@3E0+)M8(XHLH2OF$B$1E)D*ASAS@*$YN>R,F.>P#4!4!0$.=B<]0\ -M'90IJQNQ3<[NSG?+NW>EIGU\NLKDG)D:U!89`:T)A)D3#!9(D4U6S#)E%->4 -MRM*9996]KC,CJZS+T#;Z'=RUNOAUZ^[52S*M!CKRP(2=LD,,(D63)BU@6"<% -M`82*!H">9P>&D=FW);ZG5\;)S;//%VS=$`Y4,4-81"*(@1*1SU"JG.\Z!8%$ -M@L%(,#GPXP!4("B$@")2!#$"I`6M&D:U!%2@Y]*ET-W#>VZ5J%\/O^#;7:[3 -M:&U@R*38R(0VB#)4VS:@[5`4!5=5Y2'@+3MI2MK738AYF[=KMB=(1GT$GT"$ -MG@G#C$*0R*$ULF`J`I$FL>/A,)IJJ3Y\,!,*4*%&MJ;_=7(&[AN -M2@2W'@^7PKKX)0H'B'X%(4R%`3-)#,&IJ$U"RM3-FU;"K.'@U.=T^\ZW1QF' -M3PF$4TTPE1285=-L9"P`PC2!*`1TQBP8*+#2CIE"85KA5I\+6-WA<%>-XVT: -MF'A8<,:#"89A2+!`PB19!A%@I,)#2*3@9R@,14G#3$Y70P2J1++;W[&*ICK4 -M6@:`*2**+0A:TRXL8PI+D4&%S(H#`+:J0N&DP,L9!)%DP%K:RZ68++"Q2[2T -M2W15Q='4RMJKT.#HCMUX;>$85A$,0-R,"4B.E218J2$4@01&2`W*$4W)$G1N -MH3%I!"88,4-U3=T(IK)0J7P_,<=!KNUEKUQ`+NON6!8YO=]J$6=F[ -M=><>5XTIA=HP8&UBD$21@;4A&!M9*@*@<((NE2CR/@O91+ZZH>U0^[=L[[UY -MJPTW8U[-<6'WMH(FT(;0-J0ML!(H;=MA8"BS;JHF4WS)EU*W^AUNIQ.O<8C" -M;V+>JRK`V"L=6QP5@3`$Y&,!UF+@AR0-0@5)0,D.1(4B@HD,,E"B)&DUFV]9 -MDNL+@Q&H([I:#=%)[2-L50V6P!E0F=L4!0LF8RVDY&2@%%Y3EN9N!IQI%+E& -MBG.UZ^OT.&H[P:NKRN4+0BE,,4:K"(B1$!$JDA9)SI&0YTA&$?<\^"525I:D -MYL&+B)$]!++#6V;0CR/.--$4:%$UE::1HD(TQ0%"--*C"&%)I,)4(8$(R!OO>CV>\.IZO)I-$'/2C8&C"I2& -M@)HR4`MLBDJ10B0-#,-#/E'+R?2?1:^K7EEN-W3>DY,N2.+AR)#(AQY9 -M^7WO3Z)X=Y;=YOW[T(].^H4FY@DG2[V`LC(;TA$F$I:"*;T97?.># -MTUZ-V[U+=&&JVXW;&!W4P/K,>#QUGV!0I?1]'T?(*%]'R"`'Q4B$T=HCMI*( -M#(*3NF%D=4\,/=">3R9Z?;^SW>S/EUAQAPG`\4XJ)PZN+$L"H09)CZ2J&Q@" -MD*)IL,,PH)IX>'P\8O#MUWQ^CWW%Q'$.0Y^@^+MUAPG$<4XD0XI#B& -M2,#B8%0BH!ID(`43301H-,%#.5=/2&CIQY:RSL->Q8M0B%(6J$M+;J*A<8L% -MDL`7`W,9+FE0E0ERU4QL@6`=LG;(%!
&1$,4R/;TW5?@V<'3M.?S]?=,= -MMI5J+Q)IRU0N8EP%R10&`H%Q)C808%R%S"F)"XN$9=K&//F-7KXC@4X7@G<< -M/`BIC@08IP`<`E9"R`=Q!)W!!)>"BP[EG`IP2[-W:O%W4TZOA^'U_5^B]3PO -M6>'V=_H7];EZVML:VP*:]:VNA>)KDUXTT$UHA%!A->(%C"@FE-"1'2HUR]T& -MN;LX=.SO.]X1N]CFY;CC&+);+;JA4N1EP&)4@R2YE,-)AA(DG*%L`*2L*P#E -M(\M(RV\@AQ,G1YHWN`&).GJ@ -M(2QBP!(I[9`C)-;$8+(,.);36@,GJJ,)#"1'2I-,!:HK1I4J0^>MX/'Q9:S7KUUG&+-=:)#6C$@R>X8L4(A*R37`UH -MZDUFOCFLXSPY%6VW9L#48>IFF7H -M(`I57A?FOIH63-$!(7LO8&9D+))8(H2,EZC(DS5I6&!#!8MYN!Q'<.6?8<%W -M(WN-M:N4KQZTR3)$UZJ9281)DP*)*2(A-5Y?/Z''W-75GH&9PK/4$S@9XR,#.,!(=N8K=JW$8C$XL6*;N.K,:%D,:U8-A0MD!RK1H" -M0R6,D8&3"*1(9(I!@8V%)4QHP3'0.[L)L;`<38YG,Z7K-[>^S^IS?"OX7`>7 -ML\'N_2,%WZK9OW0WUWW>;]Y.G>"I;8;[90-[(,DWH=QA$@+(L*3>MHM#I:XJ -M3`*B5`;MZE9JFH-_'(`>*K$)M&*$0@:2;;8%DVS -M:;5/+AAM#"-47;6NXWW^,\V_9U7WWA8%FQ8$2Q!D0B2)%B$02)2H*A8//8DG -M/&%9*0.<1>=,)#!,+%DSH"YR^N7?L>'U>MCV/5N\W6W8[2ZQ+;"J,%B%I<)< -ML;@+FJJQMLI8R%S$06"@,)B#*A9(ZZJ)1"ARL8=Y[]--.]WYXPET5[\N#G]G -M:V(ADA@@2!'GH'P\Q]A1@1]'E141'R2@P(4`8$8@1D,S*J9E-3-6:HCSK]+9 -MV>#G=WN=+JV[=VW95MUPN,+;:*)*D+;92K","4#""%HD2*6I$TY;L[)A[O:P -M]/OSUIAPCAT8G$8ISZ^U@Q,C5(9%M"9*PC(&0K("0F0!0*$%8F4!1,(:1HBC -M"WNW.=_KW?A['AS,&&S#!L/P)`D#X#^I9?@)@D+T!9&0TE1$(P+QI%)4?(,! -M"E++Y#[N)*NQBPX<*]K4:]2.QW_,]+UQ?&LB"'-,)`1WH&<#/,ZYZE0J(S., -M8"@L,\!K!@2]`L9*A+V(D4$)>BD&&2\-4=E*+[+S.5VD";F&41[TQ8^ -M?B'[PS*73W1PQZT<,$*&`/@/E($`5"JA!>BRRJ%`9"]$0@D+U$IL9"R-ZH^Z -M00_OZ[YX>''C&+O?W+)/;M-!+#5E2'`X`X2CA!28FA,Y-$6`@#I94`I(9KHV -M1=3J6()@L*H4,U+`+H:O:EF\Z[O^-S9_O!WG=6!V;(LQ\J&/BB-(S@J#'<'1 -MT$O17%J(0J=`D%((06($@0",A"$"F,1V2BZHIS!@8H8":AIXQ-CAQX+.KZ3I -M]QU3.='1HOSN?D:,XYH7@S.R@#.P82]%`OLHI(%A`SK%C(1)+`O`SU11GSWG -M(T&^+]NYN5>Q]&/[5.3JZL#T&3"Q^)3"(8AE$BT8U0QI&A)1G0`/0=%QA)$A -M@8&I`H'0:K"PZ$*PO0C.@>@]R?\C+?EOGI^QRW,SY6YN>I,IE4RRJ51=83(8 -M*023*VLB@,#(XV@H0HBL51/!*3Y*%2D.EX>6.'@=HNKOBAL41'1I4G'`CB(X -M$8:#!@9HB08&>E6$0*K`9&DH="E)WCO!YA!.]@N?(YP/J.D?!ZW&F9=:LXV' -M&W$+B.%P#1@@*&B,#1(P-+;I0"DK`$FB$D.(V&P7)-B^+PW>5M2][XBU9'', -MUM*(:((:#01JBH2B7,D9`L$1!06022T48"2Y@+0)%%#14M)N%NYMB87'=9ZN -M_[?WPS^7Z?AO=/+NY=Y<."G4J4JEM3L\'4=3$'J+$G4C;0.HAU'N+)9`JC%D -M6"0ZA!.IB'56JAU([ZG2=._6['W!^'[\;>CO%QO76RRKANA;<#:TA9=)@C`2 -M2X4&"!+A1D%D0ESC9*N1+`:IH"RI*M4;)U!U/3=2YX&[T=99_9F>&O/Q#E=G -M%,]-L,S!?(UQKZ^OJ20WQ3U)M<4V0V4P5*-F!LJH39C(R!LCZ^@H"RJD9-D8 -M,=H-C:VJH\*7.N?F>B%33,!RY9%$DY(R`R&0B -MA$DM&4A"C&8S&KCG/.6/4]GD[O*?+^]Y9H\SW9@^KVGH].PXF'ZB_@_/UN"W -M5R"13(E6XA-220)(B"1"$!*`$H"(=<0,(4`ZV(BP$A.N3K\5QVZ&(:A9)*TQ -M;B!O;2& -M^,G&ED-Z()!(=+`0!4*E0:52H*@VAWFUL[:J-K9Z(R;>YW"R_BZGD>L\ZM\T -MF:S^(?2;?>]EESR?J.QHYG4&)/$'AZUFV"+9-H@I:-FT&%"B*2"AA-U&)!0$ -MDW>.E$C`I%@,..[J0L8!9)U;(Q!,>/&RWT*P<_F')^>#/&V]OF%'"0YM.EUS -M-=`61V5C:6)[=@@&R(HI-3(6`9B5(5`%#4&4A0:AJ`<\QMV3(7\'?]??W_?: -M?'U+.MES%WQQ<76R9J1"+C"!Q%>#Q0@`NA7D"*'B%"(0!*(_9-#`,#(5),R. -M:B5"D49F-LW)?8Q1!,@R:@QV`O*^B_]_G/?+TU+;=E'`XX'"`J@.%M"0@629 -MXM(@P!SJQ96`4GT[,W"30,&A<#2,NNDN!VP>$>*871ZFQ-FM^5HCE.I5>6\' -MV&]`^CP!'=E3NL9#;W8V%1@%ML[I3`X=3"P-#E$$(^&/$/DADR8\+L!H^$R2 -MM=A'=I%O1_1?U^3[8*SS!,[:;FOU3<#-29H:I)F8D6$*3,J]HU`0F98R1D-$ -M8Q(NQD0[LV]V=V)2FW;W9>SQESJ+%9$74Y7ZI]13IJO=[WL?9YAS-KGU,7+Y -MN.]>S*Z7M0D2"N2!6,H+V+(8[Z6"0[%U4A8!JB/<;(,#L)(F%$"H*Y))"$5Z -MQ%>NQE<>TEEEDJYW_,Q?FL.9X(HT+:YTJ[DN2ZW(`JQDF12+&#"*9%5,B62C -M(@9X9D@S.6T6?`G(^(/$XWC7,RIDS,S.5V?"J;8I;A$<Z$.\%PPF\8+`0B\3)&!OB#.E!FIK,`UQSY&A\;CHS,.#>W -M_#?;FR;>8>/T/L,I*2&C1(=R>OZ^0O&XZ/;FX-W>'I-HVDVMI-FD3:-IC`-H -M8,8LB!':H7OL"R%&"3OVV=X.\>^;_;Q[#V>`>]X/7^H[Q^K_'>M]B=\50Q[< -MY=#9_/\M2D<*:?$]/N--0`.L^[4!Q.A.)G%R/`XQB#B8@`Y2.$LAX4AJ"ZKX -M7!"HP1@'A13PTJQ8,DE8PQ3[;[JS4P0E8LG`R6$]T&,408SFY&-0.CI31)C& -MBG4'.@5;M/=?EU3>C2YU`;QW!IK^E)Z]2%50'T;'<_':SGA6[:67D5L8ED$L -MH!E80)0@ST!!((0"4@@D9)J`BG[MA6\R3(:7091!;_.B^16,K)$RDDC'1&G8A#Q(BA%5QC=ZFZ^O-K#QY`E2HD*1,C;F]O.3*]((9;Y9)R>\OX5`BJTE.2[A`H?=/3DHWX$I(E% -MM53ID_`*X:9C,R?8T&GO*'/9XX@1_!SP>RC$4WP,%]+XY!*)?))`%])P*D&$ -MY?!5>SP6260F`58P0YLLLK@?=5Q^QZW0[Y>3V>?;GKHS?6PH@.72DER'WJ1% -MGXH_C6;QJS,BKTA2UTT<67=3C;7<&*ONQ2FK)')M3>1HZ5W:$+S>?GOS1EU7 -M+_7P+'F8.O@&QID%X['6()V+&%$PL"RBE3G!.ZYJ0&#S6F1"%,1((84Q@'X/ -MQQ5ICP/&VC!.U,[!D8X5=6__5G*"&H8`T5G#4.HPLN.C8<.2KE:$VJ$1U\:S -M*BD\[GXBYL-+QO?"<\7%^T0"4G/^M/)3_B^S]TA16EA&K4!H.L8[+BOP$SV# -MN*AFM2X7JG;;W=ET^U[7M?*]KLX>W:;EJJ.;$=9QHIF[O+J?G+G\?X].@X_F5ZC?<5HI];CP";5'!!K0[O -MIQZCQUQ[W&WMX&7<&X8=Q#U/-A!:DL1/?64(8<,^CLLFI)0CZ@'94P.*P,!" -M@XGPQQQ0D(LLT\IZA2^^=CU+511^)T=?+Y4W+R51&&;XJWMCT:;9X[UG0D5- -M@L_]$U-&P4M?^[&J\J$QG7NHM>_-3,@/M'XI,]8NH:UM77%E"Q++>SS\GEO2 -M)G1^$']+Q=^+[`8QZ5/=)OAD8GW[<^HJF*45!8 -M/XE5H$IWUK1(Y!=6!FE8CIJ=F><]ITN/OZK6?!%4I<;/H"'DT!QTW\>,;&(; -MJ!TD(,1*(F\0C$023Q^K3#*J2,">8"B`L$DA#'&(X&!BA(0IUD7+RB]2KOLY/\L`MPF^%6\;P5+ -M!JLX$:-M6W;]U;,)XEE?FAZ5KZE6=TR]-N64R6$3#_#[G/\9KCNP1:(AU./9 -MBG\D2Z?(&]:?MV_%\7Q)I$W0J[K4P)O,*(46RDGJH -MB*1@1]2GJHQ!2"2-OC:@C``XH009[LPL*1]BA-!!C=PK!TP>P.N;Z,O#\88J -M&=[]?R47F.05_'3\*KZ6&S<90WQRFJ3\YP\2V0'85ONGK/6A.(I#$(DV-.=N -M>8O@AAE/M02W+(>=JD@Q`%+D:/$H4.0+[E+HYVBNC]34KW)*&5=I5[=W4QG7P_6SI_LAZ?0`R[D/SOL>DA['KSV#RZ -MF'L+IUV'L`"GF/KJ/KVR"`5FB44D7UXP9JU7']J_[/A':/4K\+ZO\K]J?P># -M'^GH_GGQX05G5H'G4\]L-"7^CZ?-2 -M1R]Q62]"--Q":-2O=;YU41UM?.$6AO-8!_!QK.BSXT"?H*JW>DWN?<;,NUAS -MHFQ]&YRSA\/U)_3\@\=>G,&,+.S7B'9;&@YW9/8V45`]@QBHD#Z -M%B)'YBU!8PD^A7V2D*2?0C#W]D&5!C`XP,+V;$V@WQX#&0FD)T/8G1.Y-C-^ -M:>!T?MG!Z<5V(G7QF7XB90:MPP_`P[_IW9(#ZS[S$0>T([/X+JG1BX]^3>-: -MX&;*'+*FO.[?SL9BS%G._KD6I^C5*._G&0P=>=3%96Y\L]+=P8/3YU$?!?X/*LX>VI;M0_* -M[5RV#CX]G4Y'?[O"T/Z!<.^''WG.\;L@]D-P1AT/%G34#<3Q1Y]`4V0DKJTQ -M1$121)/H$^+[6,!QI23S^U0M*OHM6LP.('P4S,'21\^`<5&?.AAZ#CIL!%-F -M!LY.#@GL._:L)2/YGF8O&"UTM/LHR%*%=DGIT:#X?ZYYC%#RW"ZG:-=PL`\H -M#L"B93=3J+#1(REMQ5K=&"'RBHM1Y\$+<`SP0Z72HK[?X-@5Y5\OP4:Y\ANR -MLV1@8O[RY[_ADI^"8,^.-56_^\JB^U$/ZN]N0C^H-!6%88H, -M.)BZK/-)G>9-@R9_#NNML\IS5H^/-!RG&A44_;(/I].P';K[QYQW%Q&5V>?_ -M;F:\+MG7-->[9>MGI@,#;NTG74#&M]CS=K0MK,[O$`,\*WQPVGXGB\3:\5U: -MH23QY)A>^O-45MF@\M;UIK6(4X"G<33\?>O]_9.A*+Q[K(S.5M;(MP7:GT.; -M4'&D.@:S46EA'N+Q9NHPW(">J871RD_*T3O<.P>*K_HIC9GDG]9MK(/<#F%J -M@9OL8M)F(A>JC\7I-)75DS9'/U\8.;T%[`9W#O1UE60@G-7S5RW1NTX;DA:]H+*WY<)( -MQF-], -M(FH2;>HO:)NB1HJJBLK)I#Q%1=:82-D:.,ZRA(E27/EGPC?;%MS(7LZ4 -MZ;]<]6NDWG2M#"CSH*B-G,-(AJ$)'U(QQC-YX@V@B1&(P]!""JL//8!1"9D0 -M]"O@V4L(STR*LG\=F.W>VIAL_5_(IB'RXD?91A]4S^&?)^2?)[5+\A$#P3=O -MYBZ0]KYKW"N-%K1B3#/ZTIR9K8Z8?2<-]RR"5YY0J`G1N?TPW/WAG2=ILJ#FIQ$!C)ZUK!$H"_Z%"?\VV6O_@/.IQAA`/ -M5V=Y?D21G+"JRD%'45&W\\&G)7V,GLBU1Z$QGR^U -MNL9E&EN#\2B-A-WEF#15&?,+"#_+>S-O*P.7COG?7);1GP-0[1+G?MW_NA.0 -MPT3(-8GJ,R^R$)N[*=EA,VLS53L.X_;_<$^AX*['$WO?,][[H^/ZRR?%$9UZ_:DGQ8JF1D#ZT% -M8#"'UJJOXNU7ZS_/<)'SE2'A9!"XQGS1#1))!!<(`#C$A`T0'4,+,&-A%PM( -M'NWHN!HL?0&?I=,W7`S]M/N9S6Z"-X!@Y3G@V?8VCW?K+8 -MUZABR2.V2LRL4=T!J4(]?)\B1CO=8*Q;\J[*\_#R@G4@5C,X["?OPP@S\BD> -M^*86+UQ87_SS03E=_[\<6;_0?GE&^:[?EXMOC4T?[C.6,WA_7-^N+#"^X\W2 -M*N*Z(<6W5;#F5K#V+.)QY?-6-8"5OQ%Q?I1ZL:1]7ZJJPV*`''9"@4=E,#+L -M8!I75BTTP:(_!OH_"5^)4C;1NY]"LJ),CEL9I\#@+OHK7`#PT47>Q6%7<<-= -M8-!#!3*M)!B -M2F1^/XQP56^Z9=#E(B_,PWN@.U7\"NO626++K%8769KM;`TFPQW0!=>H'(9, -M#9@'CBU^>@4*.C1X078$XT4N_@;)+S?2O;]V?>7OAOA2)8 -M>*.+JES6;(WV\_@+?UP@5G)E,!^@G*3":[L"T5RF,#@BIK'?CF#=IF+I(HUI -MQ&'?:!B+>,$QGT!C!J?@CF`L+P_>*X"QC9@:58\1@.Q/O2VMR&2)M8_MMH.$ -M[&A8-&.[E5?"T4KG993<-<(RR-Z-!::Q@&L._;-9?`,#K[:+!P5)O,WN,^IO -M3>24)IS]CB[LZ.;U=?#(2%BZ5X3L.MKVNTQF6UIH2KPAZXAL]`1_I>!$9#Q$ -M=-Y/-BX@NC+ODES$3']Z?6J8T+5BNMY.N?,?3G)#N^]2U>(SZETO>'SE7&E\ -MA$YMPSDP,,*U<CQAZ-0_HA6C -M1R)V!I-3^NTT5C;(<3@V@_H=Z;$*=10AFUU@I?M#^I<%O%IP,#++Q;[%?BAM -M$R<4*?,[D36.,,#G.,3PJ:9LW>IW>*C6`8:S -M+["BV=P-9?/%HU3=4S`->/RGH*X,/D??G-AY_`L,?*RFI^79U&-B.1!6$(Z" -MGVF"NM`75`?*3.9[$B=+E,L'DM!QK:>-K-PQ]C?SGUC/(AVWV_Q_LI]D_+4GZ/45('SV)44'Z]*2 -M'[%"7]L%BS\"DLD%#ML/G62P#C!D,1'!,8B<]^-^:M:R4(4![.FM!Z#Y;^\, -M[UXC^!3*OD/!(O;#1;K8=QH,#LISY!^"4><5/N&77I&:[I4'&\\"S-,QM'5; -MLJSY/GA4'E[]YLLX@+]>D?NPF/02AS=\(P1>;D')55L&@UGD*\P!!,N6*F'9 -M-#GQ_!&I>)3IW#';>;WD'.1G;YY)'5#\U8]CRE;@6Y:2]Y>@LVS_9O<'M4N< -M3P9FS)PKX6X9-.\*$(!Y,WW4>[1796#-IJ2?2"%Q/_C=O+55UI(X[ICO`XG+ -MQ8K*@=D@7)H?F.&+=^IV-D+E!M;5"V<6PU]%\=/Z&%#OMS]L`-88.C\7I[77 -MH:*0_9B7>V/;(8,*/^>1.ST]1&+QSSI#=D].F#U;>",^2(O>8#M-YI/2$Z&1 -M;R?K=.@,R7UP@8B;-#:]\QGB/XC)LHV8-$NR#G4RR.BP\?C[Y-](1,&_G'IP -MG/`G./=A>:IAO#"9/7^%VT0_4QX$EH@<[]QCPH]);ST[7[5/J)]EB_6\DC=&V3PZ@SC.81#:^D42JT/%;#U%3)\< -M0"`OFE&A3H%+9GV?@"`HZ17?R3U?#6C+H^@\)$:)<8]Q!&PXH&NYL;!;.DTI*7I\+Q:=;Y]O*2S*.594W8F -M8B!%$9\RM>*:,':\!H$[#Q:TP&S(L(DXL>?C'$_F('U/:=4<+:%UKLP&>!L@ -MX"Z5E,\`_&,)\P!'EIVJL8(P)_<0GD,XKU+*1)]JE3]@Q83\WK4?XG^MCJ!Z -M5#OJZEFE.W$[4'Z"?;6'XS/`\_T,!_50[F0YAD7#R9P`X6:L@V;9S-V<>9P: -M->LR"$':8UMS6OTY9.M,%6:%%KX75H+P(4 -MJ/E\WS?^<^)8[8+=IER"5WYCW?:BC?(50M_E1CBD/=EZ/TD,D(/H6&* -MD=>:\3G3<[T&K.EMG'FJ[-Y38'J/*OPHS9:K.MV.I^FI^,!!JKTM@B16#[A6 -M)Q!5UM[@M!I2S-I=X;R!>Z)._Q"H]J!`:+U'@8[;EZQVY3"C/7X14+[PP#I0 -M'R'L3IS_^["D$SQ5F-?=ICG`/S\-4;)KH66.#=9>T-OMWTE[=Q4.'@?+B3P> -M8H51@E//_BC17&A;UX9]^-#_8PN]JW(Q8XYD,:"]7_07=\\DTYN(;K*HX+SZ -MAHH..,&B5$VPMN8,"%HQ%ZXEMM[+O+,_QYLKQG+G3H.$-KIM4>,3:2IK!Q_. -M8!5XB*5C=KVS`G`*1DH6B&^>(F -M4M#.L-Y*[FAC!'.5O5-0Y'5+L&.TC[0X<]7H-]&&A+]_5&FO[CR5C!HLA*!I -M-N?KQB@_ES9Y78I8WGM-J-EU3N*3]LWHM][SAH<]F!9W8XQNX)^4AMN6K-%[ -M4ON#XJ!;-F8SD]-3D3BM*@A%F'1YW!*02JW+X'-N(M49N*+A&L:PM:X"IZ:X -MX%]2V-`7'JCG&R+/=F>..D&:WZ89_M\'TTVFEU'-[3%E->6;XU-K,J!J!NS5 -ME!DX*%I1;WLOI3R*(LV_-\LB=C"`L#"`8K0NN>E)CGYASQNCXGW8@<\UM?BH -MP1)^QL/<,Z7]'=^-G]N?Y[/I6*'+H; -MMZ[X#U=X_=3"!O0ZQ7^3&[=&/I]5`!OIRP16/M1@.WYHES'A;!X:KIAW6PL+ -MW]SO..`/Y1AVBL389V6:]C0X1`:J%JWKEE&)CM:W=&P^7_'F[<05#O^S -M?"[^DGR^(FB!35P"CWLAM_(OZLQ6TFDM&W6F9EAP`^5N&3%:7946I%#_`5PJ -MY]\PP-VD6VSZAY'YD1+M<+_2^#$':4.F_/J!H?KML?!T#H8:`X$30]SDW@#! -MA+>"*3H:+@FBN(\#:,30Y[I3NR67I->C!*J1K0U;EWUT0=*:_GQ_G@KA;ZK_ -ML,IM7E=E>]#K-_D-D+3#51HABC0+5:+M-FDNZ$6MC\K_-VBI_0-<=LS"TM18 -M?UNTT[]$K4]TGB&R%"X\TV(0Y&!GRR<\=]('37I$V%`3'U.X('US+_^C>;M* -MNTC##KS-6,_SX0\3EA;V:E#B'!@^'N%OZP#\#UA5J5YDFX^+8&$K:A^4_U*M -MR0/-Z<28[[754/#JC@V;KG5)PC.1*Z -MP:@%I]/86BI*FA>+WJ`K6PG;'XZ[0_LD`=_#K?^"/WU0/H3O@'#-:,H*>@!^ -M[L#P"MAE:UF1N?)Q3B7IU;'5,JP/^CQ2EF<'H<\L7.B?=7D\0@?3OQPILT(E -MJ%M46O3_[1"_9OAB:PFR=`T9VB]$1\F"J`AZD>0W=,)@M%:5$''FBN/')CXI -M-3[_F@Y]=9Q`&R\^\-CG#]\@U,!19S0UCA:C`;S6LDKJC,LZ^.]D1#C`.SSE -M4S(23!(R];LJ9)=+[O'3/=]Q5+[E3UQXG<_#U6MWAH5\N(&.+2U/FXP"F8N2 -MK>"I-YY@"WS)PP.:L_PS^C"@3AVU3>%^NS.T2[M158(_O/'8RI*%X)W(?O-% -M311H2/&>0/!Y;UN.#RKN]=ZB0+"P%/1G-05OX=:;)NVE",$PY0PX)4D9R@'6 -M\XZ!05/A)9P/O%2XT*7>7JWVF:7`TCT!S3`\T=Y5N`+,Q_$T*,Z4[Z_2+72M -M-@-?J[\M:QFH^^0\/M[VB`[>X-*X/L[^/-+.6H+H?#G&X)H;RHJ#>_SQ[XA^ -MK9(GBR+039BE)9<"V]0=+U\$E5M.B0.3M=Q;'[ORRDF\SI"+TDN>_;Z6!Y+- -M/2F2,AM/SW'>+CK`B4^R:N6!.RCK8C2N1V3*D7>?CBX6(VG!.OXP'A,].!"\ -M*T[,VG*-W1W%N_VK,+'\3"7H-@:PZ`)K9&4\48PJXP+7KQODI]3["<$1J&\X -M:K>TN#/K"W3J7BQ&K450P!+G>#0G+2>]%[0B#U)>WR$BE/:8"]"LJ6OX_.XJ -M9#9X]O'%4@]ICX+*/,6M_S'*2,GFTUG8\9(##ML9Q3L'^ -MOOZ`)`8O_>@X$^L-<:F^]HQ?S(-W=XT0N]MDQ)+<9@E77VB[ZNR"07W@X44D -MI+P"8_)CPA$`EV"&R=]K/G`!%%:BBE^*N);6US>=77`)/46)(*Y_'[A%[T$ -M223UUM4?$JX"^C0A_#T;U,@!:W11GF-MM76UAV!`L\RB(@];9_DTVACSQ%#9 -M>U;ZX9_<#^SP#^(B0A)S+,)%39;7SV6Z=V>";*47CN?AR?82O$-%9IV"J]A$ -MZK7ZZJ2')\.;J`?!,6*RQ316:^O[?H_1_K?W2D0A?5LL=P'B("*OI$H_7#EG -M@]+_RR:%0_G?C:_4A(O!]C^[;3&EQFPOJAXENW)3PY45$,<2!\_/`&DT5\;* -M5G]\KX49P-6[S8+;VM)K1E&AAW2-_/$!D5(?D: -MW7'R*S1Y_D$-!;..@[3OW:KCMO$`M',%>X^O]1\OO^R7BRWTA^JB0_I"0YF& -MS1HNFC.;F$_Z_4B*0Z6K\3CG1G/Q@^N?)0\03)L)Y]EI,^!\_;D1_7+;&R.N -M,CN%F^-@L1HLY/Y;,W?X`&T272NQ9*^.J:3Z0G,/@K;B8.P&P_R[]1G6S]CX -M2L/HC6Y/<0HP&P%;BWN""6_G7R_YZG#1@.!>O4<]YD3E&Q9S'3J_VSUYLMMJ -M)#"BRIEWN&RV<[\74L9G:K.'`-*0.Q(]'\Y#VX'R39&@]8UFG%W,+Z:<"[C; -M'5_6,8YLT!/;2$QE-F_N0AC2ARARL%S-E+:J'*MJ(@Z<'#A77>TPE)33FR=9 -M=^=C964X[T`Z_RD[!_1P/0AOD'21@/8W94&:.U4'=&3F:0J]*3I_SWX7)'[# -MY!^J*V_J"_@\9H4;UU9PO99[92.#K[VF`YM8)XV%SY4V]:(73M)T@TES\PY' -M\@K:T^"6FJ9NIP5M8X&@.?@=@P@#UL:!?3),=!RZ>]^AH24S8&P20?Z[6+^_ -M-%3_Y[FP4]^#F-*:D*O9N.\20490'$F29KM9G$D%\EWIOQ#.M;DN)5"C -M^B`$#L\O.M"BI0.*^S9YC!:;4+SC;<:*/D(,Y'^3#.%/_FNWV@+T8V/*:9`0 -MJ?IXO>WQBX5/_`R"D367BP-&<&_I+9(,36'BG9H_?+"^^R@#"XZ[X.$(>`W& -M0TP$IY:$V.UZ<^:'F+=\HU$Q>9F9+*YVQP.WEK_+] -M"]:0J/F08O&5=^G0V4U=Q_O?30?Z`IJ^&_-@5:/S-6S539%E8O)AC=6&3.%- -M_]3XWCYWT]-Q_!"`5O`6#N^@;`F^L^Z;4$,)TLV6Y.ET.]X@-1I&7\XN/YM& -M@(/V$#;G<&R(TI3A-VKE`+<..U.X -M)T:O(R.#*?@T7H3MCFR*&I,+1!DA*7R?/@^I&"Z;W;1+40NEBN/'MSRAIT%; -M$4*`AQ_]VO!:#Q.&!W"GI'3^8^`_=W;;4A;:F&5#@#.^U)>I8-"PW4:!MYZ* -M-@Y"@-V8K+2_O#Q*,;%@EEJW.@8[4@L&.JG)TXQXM;H -M,>1>^8/I7(L0O%F;W7U)P2?"@048V.YLJU>ZA:6`I:-+XRJ?`W -MJY9=,+.+A38T'W)/@2JH#Q4:[X#Q";_%(!2;6UAY`Z!,KG&`F97!7#CAV"&/ -MZF0VIS-N&GZ?S7=H:*8*[C36JHB%)WM!8#69@\4_W5&#@$K_`*;!S'4!;\1I -M;X1>W+;":.%.S_7(O;M\3:JW2V!\JC@D7O^-W\$?!BCXV&G(LJQSWO.-O/`< -ML*LZV?.B)$.TFFW#&9,&4ZW.J`)1\5=4<5-(/'7-OKE07O^UW6R9T;[C2(`8 -M_J$=P&V67*1``XZ>Y"MCS59"D#O9-)'JHB*TOSZ,E0!,C$1S$M6QXD_N@IG_H>A.)7 -M0QKP11RIQGGA9L\+_B^$%R\&ZW4/MTILWR$$?3.3(\8A&Y3B(D1TN+PN81*N -M'&3[+BSQ#07,&X\T"&L-.;^($Y;Z,V-7^=X0S[;`476`$E08QU.%(<2!(6SD -M:9(TOC4Z#/R/[1NB5`'/P^(V7ZM-!]."(B'-#O)N;`;ES.;8Y -M"<,`;JW06_'T!ZI(O5#;%IHR[/ISOMJB&F=30HUG'H6T`-6XK(J"_H>&#"43 -MW18#G5=TJ"\[\3XAWUOF7)#[4,=%G^)GR+N=MD6M)I$-R0G,%LN;!`-=Z,^U6=X$:'-?R*D80&O,`7])GB$#?8C -M-,K4"5"Y\I@4@9,]JS8S]$"67+-,]%^M_1`2PR(S9O/._)_`I31J -M[VN((A>8+I5TR"O@P`Q6&AAF,(!6`KMGU:*&07I90U!:[(AG:J3W9#@=;J'K -MY?JO#%0!`5.ZOO)VO+T(Q$X$X=P63&=-Q<^0'S:F*?C_ZYT`7>ORN[/C65I$ -M^*\0;%_H(RA`#)7]X[\H0#%KDA*'7\X\)8_#(FAH5\QB4M/YW7QH4,@:?S^EZ[_SI$#5A/,R?;_2]7I0#\9)#5 -M2/?45*?-[;XGCL@0`$-IUN+NXK_=,I$`$WJY!S"8^1;/Y\@2<.WS>^,J[I1'UT1W8G];+J"`$'Y9>L/[3 -M"2?MF_[V-H8>`)4X%5OW2ET&[2>'^?=:.W)UC"VY-$1$C5M%R^!7X7D]5KZ; -M7C/MK&]]6I`@BMS")#GF_/UY#W+R1$"&U1_3LMQA:JN -MVRLLTT3W'S-(0"GOFD[_48TU>OJ\86EGB!BXGM?;<22F`00=MWO.9Y8EPYS' -MR6B4VU9RW2!1T=4!!GIOPD/*]MT[-=W,S'DX1$[32"TX+I):?''N/D`I/IM' -M4OBO@J$>9X2@^`-HD<_V2GNMVOYN#7DD/$Y>ADA;'?[BO4P!W*N*CHVV>W+\ -M9Q84@"C5^1-0&SEE[#`97J331$WN<>*2Q/D!^#\+&.UU<<<`"6G]6]3'FJ^G -M92&9E=;K50=H?!!.3=$G6*J\]@X<7B*0!,-/C125LA;!O[9$%/*D&T>2@`1[?E_6BXQA<='_(;Y>7#JGTJ8`9(T["8PF>E%_ -ME6^"4.OQOY.HR!>=P@2W@[ZM7YA-QSAGQED0(+ZL*M=+4!*WPFN3_9<^"&IW -M?VY3P6\H-XPM4FFU.1K5K[A[$IQ&? -M4[C]X^*D/,671D`)/LW;,Z2(T[*F\1[NXN%0`$OW'2U?8`B&G&77Z>XBO(T; -MIP3I$'-5B/L/=U#&XMBPY0SBDD`N=R[07^H+BZ-@=&C -ME)`*>1:EL0:3C9@(Y,245D=UZC&WX,-)A`!OL2NPA -M=U9HR!)=)XERANOX4R`;(G\IO,1$0;E -M#I3)2^`/W+)&X;9'QLR(`!\SNI[]:!W:.O>N'$L:=K1DHR!62?0_FNE?;76W -M5W:)AFO\4R+W5N7TV07)UA_`_"UL(-$`%WSVXC9^<ZD_O-)1$6O^4M.4Y"S'+V.I<;/6'P%.R\!3FZBN -M'O,K*'CX(8RSB=6NNM^"TE9`-^`J\@);/\T1`:A\@DKJ -MMX"5DZ5($U#F\/HH"*1EG6G)H8H=LF"_`ANFJWT]"339WT)`<7YR+V!A_O:7COO> -MQ.ZO,>;EOJ2`73]8%-ON2*W]T!X",9R*)=+]=CWYU<8FOC;*PLJ9+(A0<`%C -M';J6GLB=4,ZU]5$17%S@>SME_81ZY.3H(D^!.O`"]E]Q -MS^<.YZB^7N5:`X7'?K3T1Y`7_S>W)P\A""&KN&H\-W-G``!B-W9LDY[',0*7 -MXWP\Y[ZP+;TZM$TWTPF86+23"ROSX&< -MQL'G[;HY7B2R$%/]T$P;O/PWCKZ3;/G7LZ[\K*41!O;VHKGDJ_$B-68=..Y\ -M`17>(35W$KZ)1OCY%#3X$91/KA1#'>IR-_)"0&+I'1=-/(2<]N6[29K#I4!$ -M_VQ%Z*C`Y]6:];]D,"O`I`!PW\%YOX$X]3Z3VW-XI@LTZ^A/)C6B!-SR!?>IK$\GH`>!YU:_G^[U^).")MO_$0;<7L+$\*:%.^U$1?80>5H]SP -MH30D,]RUB)?DL`#\=6D()@LHJY]S.P'P2Y<2P']T]3T4:/JGR"UU,@G@@\=+ -M0O`E)A?Z:TA&GC@@WBA6,&X/`KN^NV0@*599L!]YSO)<;@IC:<7,JE$!_,EJ -M`C!0Z5OMOF,2ML&A@41$VZ>YK`,+,<6VF]4C/D2GS>Q)$$<7OVR\.B]F,]NP -M0J1*+?#9LBR=1)QVL71]4"-)(IL`4+.=%A"OVM^CM2#:;;'A,J#;&F$1+V+O -M`%BI;**:12N[VO%:Z5((@QQ$@25,M;D-_)GB&Y5/F14?\V7B_[;0:B@`?,Y2 -M$5_]MPU?N#$1UU3!$(C(M%U;DAB/Y5_YGL=LSH`7$L%?T`6NC0C[N'A?7*&0 -MD"_G6!?!\CY[,H]YQXK/2QD<]YT@`?2& -MC%7R$)5.#(;#':[*O(O2S_6!YCFLGP/3X2`3+T9A9ZG6C,NUT"(A[D\^"QTO -MZ^AL>DEZ=(EM/*+DL%1G9<1WF.D,"\<7KR-5-2XC5;PT!]JF" -M#UF91M0-]]8`AN+`OF5IBLRVA<=>4]UTI%?=AGG""_<=#19D,)+/T0$!F'2S -M(9J,WF.FD>=P6!4X*,B\^.TO@(\YD#SD@`9_G@#ZJ/L6!B)[#D4CZJI"+>@!PXK>5-1R%,%[J.C -M(@DX%)%]!C?*VB4P+_;8&^(J;`8H,W"3CC-:(A%9"80+R@"OEA5",&HL?,?7!KS01D4[R@KS)`#K*,/Q,M>"5DJ(9=$"VA`+75HX9);&Q/1!0?D9!DF=41,JW]1WJCH -M,0/D/ART_6D,OO_'^^M!8[9(`*LBZ2![=N^?EQ3H"%A1,#\`557[T6^2=M,V -M)FO6T8"9>)FM($_92'&Q@?#ZIGO+HFV5^207VA#'Q\K2(-UV\/7`"[U%.QGW -MD1D^D@L5>`N?K\MJ3@M.?Z"9NE'GWXZ"B5D@57]J39)"JX;MHQ_2[FX&7:/( -MZ,B<"''G)T`,5W7%G7=P23Y(LGU"'1U?2'!T,YD2;T`(37A9I'^IW5(AU]9J -M[+2\#*=#Q(2%CE)@$/=R/Q!B5\"*50$HU7GE.^^D0F$(AL\6E:X0$ -MQ=_M83[A&7=\MMQB+(72,(T>YZQ\OB[\=M?P0]%UYUZ8Q.^/W:GO39"FEB)P -M1\S0+W1K]!CT),'6UR20%#&CNO24EI3OCWFX1@KV*(A4V6EKEP920LI%,C`Y -M'6@EEKY1$&#=;FO5;T;F-9HVY/)")6\DO3S0!?/RZO:IZKF=]PU4,C%++$!. -M>!IA'K8\Q$C,0D6[\4H"&P2,8?*DUH57*'54 -M8"Z9_2'37'/[0RX\3:`@XUW*?B!8_2I?VH8:HE76#3IY(%S.]($2P]=G^N_L -MAFC,I$+C"A/>^0$XBEK^U\7Z$`Y<0\W--KIV;`!P%VIW5B#70XH!8O!:+=Q"BFS.;<*U -M>N4T@E`%NJ_>2Q`FY+&EWE'G)%+=*9$!5.1`-3_<_7&C?QF1YTX/9 -M(#+SV6'HZDHD+R`ONS@M/H/'-R$EESXY+HJ`F#.OBQ#Y2?#TE4R';(MEFOL6 -M6","$N_U-%=$0_JTL+% -MQ."K+3NKY7&"0%G?*G_EV?2`W4-\HDJEJQ$*D!3L1`+"U/8F%3/?81!@4:ST -MVY$&&HLNFO)]AH]!91%J*A,`)>`,0)96L"M3OQR>L9:"'"=3I4P`N&0B!]4K -MN!/0DP@R\,>4R&BLR!2'3W.X2LZ'CYCAOI$*R`/J=XO(9I1>T/L]O1:QJ6($ -M!3:!D\(M=7G&R/;)::;4P:-6Z8.B(DBT^K/SDU[J:P`N503,`J5.4].I[Z(./"X?*S^K!%">>`:5F[[4A>1%E]1X+D@+/^?,'_.8\2$.U -MOE,%`(9D@!8S]XO7S"U.1IX=^+1CR->#];K^:A=IIF>.EDU7RT\/AHB`JWRHS6Q#^:243'3F_ -M(AG9*`W5/L$QXC'0;3BG2#>1)C(R/#9H4&10%C)/1D1;#<^N8-P5TIB80#S4 -MS3UB(O1%^-ZFK+/UVVW$L:!`.L5);#2]JH];,FP8E*XJ`18[2J?OU>9//>>A -M49:?*\:BE\H")IH'SHQ50P#:QH4POC=G`+_KO018+U=]G@IMT8/S&I*8$AM6 -MGNWC.`34J\+R*F@,J-4>A&1B7.D@*]:(`0@B'!1HDS@'C2:WKJNC"EJP1:O> -M]Q,V-OVT0S*NG(R$'2>?H]?]%L$!SV;C+ZJDRSY'_UFHUNAE0F9L,1$$/1@E -M.`VORJ]R8,'C?VX,>-#"F`OEZ:.]TMVO*Z5]+>B-,=LX1,!!_8W=WQ^A_NW2 -MU$]I<80'?F$?$T:TQ<-`7?_J>Z[KURF99P`.KXYJ2I[?7'X+[_/R.WORQ$3( -MEV;"IG=`U0"QHCJUEUHP3H2CI%@RFV5L]!.[""+>TSWP,+L5@5^0QHYKD@`);D%:,NF9"A%(V1LK_TIM+)7S",$083.2HU,IAAFT'XT4$ -M?KD3U7')$I1"I._]\#P!!78-ZZX%HIIC4@)GI="3J]'-G"($!/F";"$X;)_"2&TDDA)\#BWJV=LP`]FAV799YS"0\=-?CU[U[ -M]/CISW_1L5^$A`#N#].H2;S%@=VHZ>RV_5"=L-6G!$*Q=R5^L65DQ&(P(P&2:S4C7` -MI8:*T>=/$0=6%U>^QJ]19]OB[<$K&%()RS

-M2X_PW\A4?`_T,KO6V2"`&K3MT,)!CK(Q.$F)Q>PD._D?Y*B^4D*2DD`6%-K8_P_JX2!'5M`WMGAS"KQWJHOF+*UVOQ:T[Y9-3P0*:WWIXLJ?C- -MUZV=DJTK6B``2W7?Q^C,9G.S@>+J0P=!_WD]A`#3_>Y.LY!9N]=.H@! -M5<3DW_A4"O%8FJ8(JMD+#XY#2LZ&2YJ4@!!8^J9Q;X_04\]2WO:]/KHT8(N#N? -M.RP'[7_8W^LB&QHZJGJ<0EMX$D^/^9T'!QBWAHT1$+>ZL+"U4V0E\.+S$-7& -M?.E_'!DT,GI3P(DFW0K0NYLF4^AB>9#5?NG)A+!%U^U&1$P=C,+:I:Z(R=?"9MF:$RKNC2@@'_$L?IRA.PM&PI@"V4DW;=.NQE$!G*O0 -M<2FBEN>ST^PK:4`G?N8HG(2#9=4[9NBPU,@75J,&4W(#B$5)7,">)F//)?JD -M(AAW?&JOS\C;2`8+C-,ECG&;S4V'-F2`BPY76`6C*^TZ<3!ICXBW8Q+(R(IJ -MPD=_V;-<]R\W$)-FF7_LY%TD10_/HQ$.J)0(EAUOI;$\Z-U/"3#'J)?$)`D@ -MT\)L()ABS_02AY,@?!#2]]K`&)V-5J5[<\[M]U\$4M_NV6/ZE)Y$6/%P&&)" -M@##\T3#,]>TX^FMTL@4^0$9,B46EIO_7PTT?JDP$5D\SBBVD6P38:VFJ"(9> -MFWL4HA?5`(4HB`C77YOO')]QKNZYYI^/"QJ>B(%>Q4-LY?.D'#;^-D.`AO\Z -MRP:C/<+\M"$$70[\XF(*$95EYG<%2A1GP0B/7`R#]N4>DDNA506P\X(M\*3B -MYPB@%N)A+!NKIQ7;$^,XIB`^[6,,>0'(WC733>(+6T3*<5RPD$`Q[ZGZQ%$R -MK>_NCIQV9E4NK]JWP)0!6HSR:0_@Y;)SFUH?^7TF^51@A083IZWJJ'*;HWE[ -M!B3-9KT$IQ=$D`$VR-[!;XBS"*"^;+RLFF!H0@#Q6<6D..:(%V[6?%W$:[E: -MW1;9L;^3PJK7V5/0H2U_DO1=@J$OY%>3:5662$!$.'F[;RI9 -M"GX^Q74GI[))>;981@$CSTG`D#;II8WJ2D_P9URN*!((B=OJ<[I%%/N23OH] -M,.9U_'>;^(20![J&#(A5/G*P8MXF7!FZ+CJFH1P7?K$)I$*S-9JV#BFLC)JW -M?,)92?8D\_[=:E``13__IP%L$]^JMVD*JLCH@_%VK58MEKU\E-(`:KZ10`? -M%J[A`OY&P2@0ZF.Z8`A5S7YA.I5[$)0]#8KPJ2`%&7(N_@Y[!`:/8C^SL -M7UN+$XNDTE6R5"40'77+[7T9"S7[+0O]A0LS,XL28`%+NXOFS/%6`JZC?-]M -MM.AUDM2>%,!;B?!+":PA6=>AIF!SS4LBL_CJT)$XYC7R'FL>]VVNNK_O[)I$ -M*F?/_ZR$!E\D.K!KH5LHV)LD:SUT]/4KLCG"(N7\G^9($?A?^_KWHR_G_Y\; -M4[1.VL/[3@0U4S%LY$)Z,P`ZZG4U%#5?#"1D7S[WW[9%XNB_<=]O]3PNVG64 -MDGI((2KQ#XC[B71.G5+,;_A\3XW:(`#X)-!4:M>(N\XL;V]*4&H[/M9*)%92 -MM7FVB:``R3`!2HD$A^&FX*?Q3O$<61]KDD@BHU4!>R?]8Z^?][&\>5$"'8B- -M-)D`Z2./Q[,EG+YQE=6>W`'Y3P0P1C -MP;\VHB%?D)99.NY(&`&/>9NBD%\4BHID!;K7NR"&3LY+AOU0_;[1J -MVX;__9AP3@ABJ4B`$WG;6*"X79OW62Q*;A)B`P5+H31`?$7O5G7UG-#JS-=Y -M]+3[M4(#SNW(GM*1"3'.T>SU\0C)U2E7AA_7T%Y(^M(!#@-W]D0I:`SS,V"W -M=J02^2-RUZ-"1"N7[T`2O/2K%7?^0W]M,9!2Z^8]\FF`$R9ER4D/:(=^]8 -MN/4)\\G>JG9PC(!IK`_=?&[B:NG*;0$`P_CQ+$:0&42BW*HF4$JW-L+N)K6I -M(*XFZOP@3@T]+P`-/@T&,KZK7``L\OLPB>Z0SFL -M9T+85;%-("3U;S5$6WE_,-,FUW?8,V\)O-MTD`?09,@DP&)E(_HU9\"C=MKP -MB(;[,X#:Y=-S"O=6'1:%I88?3!)I`>F@[)`<&6/G#O>:^>Y&0ZR30R!$ -M(/Z]I?I+A6C$(++YCND`G\G1-QW2Z3N>WP -MDB!?R#!.&Y^9%VG.LA+W^89(0'[/I$4P\>F$D-S0^X0]OG]:.]2<"4 -MJP@)^C^ML,>]8_QX:PB+4;/9^0$&.$_#_Y_BT?7=+#+E?8.3AY]"FD`X8Z:(0F-E -M$Z2S"6DZEPH2`#8@O(FHYW?+_X6UWA?QB)0!B(9C:$1Z\"I9RD'']_5,-=7# -MG7T>ED0JZF;N_NUT><`%6I9Y^<6]`G]Z;T",`;JTL:4@/WRF7DC8\^)RW;DD -M0'X3N>"&^?&5N&_2\\\]])<497ZK'=4B*][<)H;]8E;L;)9V,ZN[+?)8&]6: -M,A%#:O^@VN#*.OB6Z%&1>AZ:@`)SVIC6F]QG=]FH#(]"SGZK=*.^3@3]KI/T -MN<`1#G?\S=B^5J!^J8Y=1C8U$,1$E?#Y?N6]29WZ.CAD$I$V]T@*+N?]9 -MEBHVFE$`&YR1%RT&CE+E:VNC^2$BQZ\1#NOFKV4$_I?CY(Z.\%#FTR'ME4`) -M*7*^8`-I.])!NZ*3'*3^!/J\%,0&E@"`NZE-9P.'=8?0J=ED:FQH)-Y64XB' -M<]OV[G7_3R"*.0Q+=UZ=5XO#9.%RUBCLXGDP`P_0H`$8""BP8R\=N5BNYRD@ -MN[2I``[T``5GK,GSKOPI_QC,>Y+(03KWXQK(#.B8\.&F0U.MIT]#XT -M<2BB9=,!"+Y5!X&7;`%LCKDM>2'S6K<%WO(P1^2'FWM6N(0.1GY'^RI`>;"]N+7P4@9XL172P.,X -M$0ZW98YYBB=#JM+/61X.>C[2<0%B`5(W5>C$!WT9CXW+1N=EWW163@O4WVH` -M'<43H?//N?_:2-6`GKQ`[U2CDX%#V,URIF:(AYQ]]:T*W12,,;1HP.MJ7D@3 -M(E^;+3JHF[$.E<)?;N/TL^IPX/5^5:(%(,?BH0!P4=YH>OG-UU--,)9!G]*; -M3P4(1!0QZ;)L^D'U$H*,DS'0&74[G>@%NH7&Y%.BV1QUVG&])T@Y*3Z/Q!"N -MJ0>.N4BQ;VRE:),!6K6"%VOX1FZM/!?I2]UECP,^;SE`F$!.PVY\6.%!9@O' *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-vendor@freebsd.org Sat Feb 4 18:13:16 2017 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E255FCCF8B8; Sat, 4 Feb 2017 18:13:16 +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 mx1.freebsd.org (Postfix) with ESMTPS id 97BA01715; Sat, 4 Feb 2017 18:13:16 +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 v14IDFKb013586; Sat, 4 Feb 2017 18:13:15 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v14IDFjj013585; Sat, 4 Feb 2017 18:13:15 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201702041813.v14IDFjj013585@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 4 Feb 2017 18:13:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r313246 - vendor/NetBSD/tests/02.04.2017_10.12 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 04 Feb 2017 18:13:17 -0000 Author: ngie Date: Sat Feb 4 18:13:15 2017 New Revision: 313246 URL: https://svnweb.freebsd.org/changeset/base/313246 Log: Copy ^/vendor/NetBSD/tests/dist to ^/vendor/NetBSD/tests/02.04.2017_10.12 Added: vendor/NetBSD/tests/02.04.2017_10.12/ - copied from r313245, vendor/NetBSD/tests/dist/