From owner-svn-src-projects@freebsd.org Sun Dec 9 11:36:12 2018 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6469C1317C56 for ; Sun, 9 Dec 2018 11:36:12 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 14C4C85C48; Sun, 9 Dec 2018 11:36: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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E57EC10BEF; Sun, 9 Dec 2018 11:36:11 +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 wB9BaBlG014975; Sun, 9 Dec 2018 11:36:11 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wB9Ba5So014940; Sun, 9 Dec 2018 11:36:05 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201812091136.wB9Ba5So014940@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 9 Dec 2018 11:36:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r341763 - in projects/clang700-import: contrib/libc++/src/filesystem contrib/llvm/include/llvm/DebugInfo/PDB/Native contrib/llvm/include/llvm/ExecutionEngine/Orc contrib/llvm/include/ll... X-SVN-Group: projects X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in projects/clang700-import: contrib/libc++/src/filesystem contrib/llvm/include/llvm/DebugInfo/PDB/Native contrib/llvm/include/llvm/ExecutionEngine/Orc contrib/llvm/include/llvm/MC contrib/llvm/includ... X-SVN-Commit-Revision: 341763 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 14C4C85C48 X-Spamd-Result: default: False [-2.98 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.99)[-0.987,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-0.99)[-0.993,0] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 Dec 2018 11:36:12 -0000 Author: dim Date: Sun Dec 9 11:36:04 2018 New Revision: 341763 URL: https://svnweb.freebsd.org/changeset/base/341763 Log: Merge llvm, clang, lld, lldb, compiler-rt and libc++ release_70 branch r348686 (effectively 7.0.1 rc3), resolve conflicts, and bump version numbers. PR: 230240, 230355 Modified: projects/clang700-import/contrib/libc++/src/filesystem/operations.cpp projects/clang700-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/GlobalsStream.h projects/clang700-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/ModuleDebugStream.h projects/clang700-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/Core.h projects/clang700-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h projects/clang700-import/contrib/llvm/include/llvm/MC/MCAsmBackend.h projects/clang700-import/contrib/llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h projects/clang700-import/contrib/llvm/include/llvm/Support/GenericDomTreeConstruction.h projects/clang700-import/contrib/llvm/include/llvm/Transforms/Utils/SSAUpdater.h projects/clang700-import/contrib/llvm/include/llvm/Transforms/Utils/SSAUpdaterImpl.h projects/clang700-import/contrib/llvm/lib/Analysis/MemorySSA.cpp projects/clang700-import/contrib/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp projects/clang700-import/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp projects/clang700-import/contrib/llvm/lib/MC/MCExpr.cpp projects/clang700-import/contrib/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp projects/clang700-import/contrib/llvm/lib/Target/AMDGPU/AMDGPULibFunc.cpp projects/clang700-import/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp projects/clang700-import/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.h projects/clang700-import/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.cpp projects/clang700-import/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.h projects/clang700-import/contrib/llvm/lib/Target/Mips/MicroMips32r6InstrInfo.td projects/clang700-import/contrib/llvm/lib/Target/Mips/Mips64InstrInfo.td projects/clang700-import/contrib/llvm/lib/Target/Mips/Mips64r6InstrInfo.td projects/clang700-import/contrib/llvm/lib/Target/Mips/MipsFastISel.cpp projects/clang700-import/contrib/llvm/lib/Target/Mips/MipsInstrFPU.td projects/clang700-import/contrib/llvm/lib/Target/Mips/MipsSEFrameLowering.cpp projects/clang700-import/contrib/llvm/lib/Target/Mips/MipsSEISelDAGToDAG.cpp projects/clang700-import/contrib/llvm/lib/Target/Mips/MipsSEInstrInfo.cpp projects/clang700-import/contrib/llvm/lib/Target/PowerPC/P9InstrResources.td projects/clang700-import/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.cpp projects/clang700-import/contrib/llvm/lib/Target/PowerPC/PPCInstrVSX.td projects/clang700-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp projects/clang700-import/contrib/llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp projects/clang700-import/contrib/llvm/lib/Transforms/Utils/LCSSA.cpp projects/clang700-import/contrib/llvm/lib/Transforms/Utils/SSAUpdater.cpp projects/clang700-import/contrib/llvm/tools/clang/include/clang/AST/DeclBase.h projects/clang700-import/contrib/llvm/tools/clang/include/clang/Basic/Attr.td projects/clang700-import/contrib/llvm/tools/clang/include/clang/Basic/AttrDocs.td projects/clang700-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticFrontendKinds.td projects/clang700-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td projects/clang700-import/contrib/llvm/tools/clang/lib/AST/ASTContext.cpp projects/clang700-import/contrib/llvm/tools/clang/lib/AST/Decl.cpp projects/clang700-import/contrib/llvm/tools/clang/lib/CodeGen/CodeGenFunction.cpp projects/clang700-import/contrib/llvm/tools/clang/lib/CodeGen/CodeGenFunction.h projects/clang700-import/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.cpp projects/clang700-import/contrib/llvm/tools/clang/lib/CodeGen/CoverageMappingGen.cpp projects/clang700-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/PPC.cpp projects/clang700-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/PPC.h projects/clang700-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/OpenBSD.cpp projects/clang700-import/contrib/llvm/tools/clang/lib/Headers/altivec.h projects/clang700-import/contrib/llvm/tools/clang/lib/Sema/SemaInit.cpp projects/clang700-import/contrib/llvm/tools/clang/lib/Serialization/ASTWriter.cpp projects/clang700-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp projects/clang700-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp projects/clang700-import/lib/clang/include/clang/Basic/Version.inc projects/clang700-import/lib/clang/include/lld/Common/Version.inc projects/clang700-import/lib/clang/include/llvm/Support/VCSRevision.h Directory Properties: projects/clang700-import/contrib/compiler-rt/ (props changed) projects/clang700-import/contrib/libc++/ (props changed) projects/clang700-import/contrib/llvm/ (props changed) projects/clang700-import/contrib/llvm/tools/clang/ (props changed) projects/clang700-import/contrib/llvm/tools/lld/ (props changed) projects/clang700-import/contrib/llvm/tools/lldb/ (props changed) Modified: projects/clang700-import/contrib/libc++/src/filesystem/operations.cpp ============================================================================== --- projects/clang700-import/contrib/libc++/src/filesystem/operations.cpp Sun Dec 9 06:52:25 2018 (r341762) +++ projects/clang700-import/contrib/libc++/src/filesystem/operations.cpp Sun Dec 9 11:36:04 2018 (r341763) @@ -352,7 +352,6 @@ struct FileDescriptor { ~FileDescriptor() { close(); } - FileDescriptor() = default; FileDescriptor(FileDescriptor const&) = delete; FileDescriptor& operator=(FileDescriptor const&) = delete; Modified: projects/clang700-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/GlobalsStream.h ============================================================================== --- projects/clang700-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/GlobalsStream.h Sun Dec 9 06:52:25 2018 (r341762) +++ projects/clang700-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/GlobalsStream.h Sun Dec 9 11:36:04 2018 (r341763) @@ -30,8 +30,6 @@ class GSIHashIterator GSIHashIterator, FixedStreamArrayIterator, std::random_access_iterator_tag, const uint32_t> { public: - GSIHashIterator() = default; - template GSIHashIterator(T &&v) : GSIHashIterator::iterator_adaptor_base(std::forward(v)) {} Modified: projects/clang700-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/ModuleDebugStream.h ============================================================================== --- projects/clang700-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/ModuleDebugStream.h Sun Dec 9 06:52:25 2018 (r341762) +++ projects/clang700-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/ModuleDebugStream.h Sun Dec 9 11:36:04 2018 (r341763) @@ -49,7 +49,7 @@ class ModuleDebugStreamRef { (public) BinarySubstreamRef getC13LinesSubstream() const; BinarySubstreamRef getGlobalRefsSubstream() const; - ModuleDebugStreamRef &operator=(ModuleDebugStreamRef &&Other) = default; + ModuleDebugStreamRef &operator=(ModuleDebugStreamRef &&Other) = delete; iterator_range subsections() const; codeview::DebugSubsectionArray getSubsectionsArray() const { Modified: projects/clang700-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/Core.h ============================================================================== --- projects/clang700-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/Core.h Sun Dec 9 06:52:25 2018 (r341762) +++ projects/clang700-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/Core.h Sun Dec 9 11:36:04 2018 (r341763) @@ -126,7 +126,7 @@ class MaterializationResponsibility { public: MaterializationResponsibility(MaterializationResponsibility &&) = default; MaterializationResponsibility & - operator=(MaterializationResponsibility &&) = default; + operator=(MaterializationResponsibility &&) = delete; /// Destruct a MaterializationResponsibility instance. In debug mode /// this asserts that all symbols being tracked have been either Modified: projects/clang700-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h ============================================================================== --- projects/clang700-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h Sun Dec 9 06:52:25 2018 (r341762) +++ projects/clang700-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h Sun Dec 9 11:36:04 2018 (r341763) @@ -70,8 +70,7 @@ class OrcRemoteTargetClient (public) RemoteRTDyldMemoryManager & operator=(const RemoteRTDyldMemoryManager &) = delete; RemoteRTDyldMemoryManager(RemoteRTDyldMemoryManager &&) = default; - RemoteRTDyldMemoryManager & - operator=(RemoteRTDyldMemoryManager &&) = default; + RemoteRTDyldMemoryManager &operator=(RemoteRTDyldMemoryManager &&) = delete; uint8_t *allocateCodeSection(uintptr_t Size, unsigned Alignment, unsigned SectionID, Modified: projects/clang700-import/contrib/llvm/include/llvm/MC/MCAsmBackend.h ============================================================================== --- projects/clang700-import/contrib/llvm/include/llvm/MC/MCAsmBackend.h Sun Dec 9 06:52:25 2018 (r341762) +++ projects/clang700-import/contrib/llvm/include/llvm/MC/MCAsmBackend.h Sun Dec 9 11:36:04 2018 (r341763) @@ -165,6 +165,11 @@ class MCAsmBackend { (public) return 0; } + /// Check whether a given symbol has been flagged with MICROMIPS flag. + virtual bool isMicroMips(const MCSymbol *Sym) const { + return false; + } + /// Handles all target related code padding when starting to write a new /// basic block to an object file. /// Modified: projects/clang700-import/contrib/llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h ============================================================================== --- projects/clang700-import/contrib/llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h Sun Dec 9 06:52:25 2018 (r341762) +++ projects/clang700-import/contrib/llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h Sun Dec 9 11:36:04 2018 (r341763) @@ -641,8 +641,6 @@ class LineCoverageIterator (public) this->operator++(); } - LineCoverageIterator &operator=(const LineCoverageIterator &R) = default; - bool operator==(const LineCoverageIterator &R) const { return &CD == &R.CD && Next == R.Next && Ended == R.Ended; } Modified: projects/clang700-import/contrib/llvm/include/llvm/Support/GenericDomTreeConstruction.h ============================================================================== --- projects/clang700-import/contrib/llvm/include/llvm/Support/GenericDomTreeConstruction.h Sun Dec 9 06:52:25 2018 (r341762) +++ projects/clang700-import/contrib/llvm/include/llvm/Support/GenericDomTreeConstruction.h Sun Dec 9 11:36:04 2018 (r341763) @@ -1186,6 +1186,20 @@ struct SemiNCAInfo { << '\t' << U << "\n"); LLVM_DEBUG(dbgs() << "\n"); + // Recalculate the DominatorTree when the number of updates + // exceeds a threshold, which usually makes direct updating slower than + // recalculation. We select this threshold proportional to the + // size of the DominatorTree. The constant is selected + // by choosing the one with an acceptable performance on some real-world + // inputs. + + // Make unittests of the incremental algorithm work + if (DT.DomTreeNodes.size() <= 100) { + if (NumLegalized > DT.DomTreeNodes.size()) + CalculateFromScratch(DT, &BUI); + } else if (NumLegalized > DT.DomTreeNodes.size() / 40) + CalculateFromScratch(DT, &BUI); + // If the DominatorTree was recalculated at some point, stop the batch // updates. Full recalculations ignore batch updates and look at the actual // CFG. Modified: projects/clang700-import/contrib/llvm/include/llvm/Transforms/Utils/SSAUpdater.h ============================================================================== --- projects/clang700-import/contrib/llvm/include/llvm/Transforms/Utils/SSAUpdater.h Sun Dec 9 06:52:25 2018 (r341762) +++ projects/clang700-import/contrib/llvm/include/llvm/Transforms/Utils/SSAUpdater.h Sun Dec 9 11:36:04 2018 (r341763) @@ -76,6 +76,10 @@ class SSAUpdater { (public) /// block. bool HasValueForBlock(BasicBlock *BB) const; + /// Return the value for the specified block if the SSAUpdater has one, + /// otherwise return nullptr. + Value *FindValueForBlock(BasicBlock *BB) const; + /// Construct SSA form, materializing a value that is live at the end /// of the specified block. Value *GetValueAtEndOfBlock(BasicBlock *BB); Modified: projects/clang700-import/contrib/llvm/include/llvm/Transforms/Utils/SSAUpdaterImpl.h ============================================================================== --- projects/clang700-import/contrib/llvm/include/llvm/Transforms/Utils/SSAUpdaterImpl.h Sun Dec 9 06:52:25 2018 (r341762) +++ projects/clang700-import/contrib/llvm/include/llvm/Transforms/Utils/SSAUpdaterImpl.h Sun Dec 9 11:36:04 2018 (r341763) @@ -357,10 +357,9 @@ class SSAUpdaterImpl { (public) BBInfo *Info = *I; if (Info->DefBB != Info) { - // Record the available value at join nodes to speed up subsequent - // uses of this SSAUpdater for the same value. - if (Info->NumPreds > 1) - (*AvailableVals)[Info->BB] = Info->DefBB->AvailableVal; + // Record the available value to speed up subsequent uses of this + // SSAUpdater for the same value. + (*AvailableVals)[Info->BB] = Info->DefBB->AvailableVal; continue; } Modified: projects/clang700-import/contrib/llvm/lib/Analysis/MemorySSA.cpp ============================================================================== --- projects/clang700-import/contrib/llvm/lib/Analysis/MemorySSA.cpp Sun Dec 9 06:52:25 2018 (r341762) +++ projects/clang700-import/contrib/llvm/lib/Analysis/MemorySSA.cpp Sun Dec 9 11:36:04 2018 (r341763) @@ -119,7 +119,6 @@ class MemoryLocOrCall { public: bool IsCall = false; - MemoryLocOrCall() = default; MemoryLocOrCall(MemoryUseOrDef *MUD) : MemoryLocOrCall(MUD->getMemoryInst()) {} MemoryLocOrCall(const MemoryUseOrDef *MUD) Modified: projects/clang700-import/contrib/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp ============================================================================== --- projects/clang700-import/contrib/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp Sun Dec 9 06:52:25 2018 (r341762) +++ projects/clang700-import/contrib/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp Sun Dec 9 11:36:04 2018 (r341763) @@ -1156,10 +1156,11 @@ MCSection *TargetLoweringObjectFileCOFF::SelectSection MCSymbol *Sym = TM.getSymbol(ComdatGV); StringRef COMDATSymName = Sym->getName(); - // Append "$symbol" to the section name when targetting mingw. The ld.bfd + // Append "$symbol" to the section name *before* IR-level mangling is + // applied when targetting mingw. This is what GCC does, and the ld.bfd // COFF linker will not properly handle comdats otherwise. if (getTargetTriple().isWindowsGNUEnvironment()) - raw_svector_ostream(Name) << '$' << COMDATSymName; + raw_svector_ostream(Name) << '$' << ComdatGV->getName(); return getContext().getCOFFSection(Name, Characteristics, Kind, COMDATSymName, Selection, UniqueID); Modified: projects/clang700-import/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp ============================================================================== --- projects/clang700-import/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp Sun Dec 9 06:52:25 2018 (r341762) +++ projects/clang700-import/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp Sun Dec 9 11:36:04 2018 (r341763) @@ -275,7 +275,7 @@ RuntimeDyldImpl::loadObjectImpl(const object::ObjectFi uint64_t Size = I->getCommonSize(); if (!CommonAlign) CommonAlign = Align; - CommonSize += alignTo(CommonSize, Align) + Size; + CommonSize = alignTo(CommonSize, Align) + Size; CommonSymbolsToAllocate.push_back(*I); } } else Modified: projects/clang700-import/contrib/llvm/lib/MC/MCExpr.cpp ============================================================================== --- projects/clang700-import/contrib/llvm/lib/MC/MCExpr.cpp Sun Dec 9 06:52:25 2018 (r341762) +++ projects/clang700-import/contrib/llvm/lib/MC/MCExpr.cpp Sun Dec 9 11:36:04 2018 (r341763) @@ -524,6 +524,11 @@ static void AttemptToFoldSymbolOffsetDifference( if (Asm->isThumbFunc(&SA)) Addend |= 1; + // If symbol is labeled as micromips, we set low-bit to ensure + // correct offset in .gcc_except_table + if (Asm->getBackend().isMicroMips(&SA)) + Addend |= 1; + // Clear the symbol expr pointers to indicate we have folded these // operands. A = B = nullptr; Modified: projects/clang700-import/contrib/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp ============================================================================== --- projects/clang700-import/contrib/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp Sun Dec 9 06:52:25 2018 (r341762) +++ projects/clang700-import/contrib/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp Sun Dec 9 11:36:04 2018 (r341763) @@ -1515,39 +1515,50 @@ static SDValue emitComparison(SDValue LHS, SDValue RHS /// The CCMP/CCMN/FCCMP/FCCMPE instructions allow the conditional execution of /// a comparison. They set the NZCV flags to a predefined value if their /// predicate is false. This allows to express arbitrary conjunctions, for -/// example "cmp 0 (and (setCA (cmp A)) (setCB (cmp B))))" +/// example "cmp 0 (and (setCA (cmp A)) (setCB (cmp B)))" /// expressed as: /// cmp A /// ccmp B, inv(CB), CA /// check for CB flags /// -/// In general we can create code for arbitrary "... (and (and A B) C)" -/// sequences. We can also implement some "or" expressions, because "(or A B)" -/// is equivalent to "not (and (not A) (not B))" and we can implement some -/// negation operations: -/// We can negate the results of a single comparison by inverting the flags -/// used when the predicate fails and inverting the flags tested in the next -/// instruction; We can also negate the results of the whole previous -/// conditional compare sequence by inverting the flags tested in the next -/// instruction. However there is no way to negate the result of a partial -/// sequence. +/// This naturally lets us implement chains of AND operations with SETCC +/// operands. And we can even implement some other situations by transforming +/// them: +/// - We can implement (NEG SETCC) i.e. negating a single comparison by +/// negating the flags used in a CCMP/FCCMP operations. +/// - We can negate the result of a whole chain of CMP/CCMP/FCCMP operations +/// by negating the flags we test for afterwards. i.e. +/// NEG (CMP CCMP CCCMP ...) can be implemented. +/// - Note that we can only ever negate all previously processed results. +/// What we can not implement by flipping the flags to test is a negation +/// of two sub-trees (because the negation affects all sub-trees emitted so +/// far, so the 2nd sub-tree we emit would also affect the first). +/// With those tools we can implement some OR operations: +/// - (OR (SETCC A) (SETCC B)) can be implemented via: +/// NEG (AND (NEG (SETCC A)) (NEG (SETCC B))) +/// - After transforming OR to NEG/AND combinations we may be able to use NEG +/// elimination rules from earlier to implement the whole thing as a +/// CCMP/FCCMP chain. /// -/// Therefore on encountering an "or" expression we can negate the subtree on -/// one side and have to be able to push the negate to the leafs of the subtree -/// on the other side (see also the comments in code). As complete example: -/// "or (or (setCA (cmp A)) (setCB (cmp B))) -/// (and (setCC (cmp C)) (setCD (cmp D)))" -/// is transformed to -/// "not (and (not (and (setCC (cmp C)) (setCC (cmp D)))) -/// (and (not (setCA (cmp A)) (not (setCB (cmp B))))))" -/// and implemented as: +/// As complete example: +/// or (or (setCA (cmp A)) (setCB (cmp B))) +/// (and (setCC (cmp C)) (setCD (cmp D)))" +/// can be reassociated to: +/// or (and (setCC (cmp C)) setCD (cmp D)) +// (or (setCA (cmp A)) (setCB (cmp B))) +/// can be transformed to: +/// not (and (not (and (setCC (cmp C)) (setCD (cmp D)))) +/// (and (not (setCA (cmp A)) (not (setCB (cmp B))))))" +/// which can be implemented as: /// cmp C /// ccmp D, inv(CD), CC /// ccmp A, CA, inv(CD) /// ccmp B, CB, inv(CA) /// check for CB flags -/// A counterexample is "or (and A B) (and C D)" which cannot be implemented -/// by conditional compare sequences. +/// +/// A counterexample is "or (and A B) (and C D)" which translates to +/// not (and (not (and (not A) (not B))) (not (and (not C) (not D)))), we +/// can only implement 1 of the inner (not) operations, but not both! /// @{ /// Create a conditional comparison; Use CCMP, CCMN or FCCMP as appropriate. @@ -1585,14 +1596,23 @@ static SDValue emitConditionalComparison(SDValue LHS, return DAG.getNode(Opcode, DL, MVT_CC, LHS, RHS, NZCVOp, Condition, CCOp); } -/// Returns true if @p Val is a tree of AND/OR/SETCC operations. -/// CanPushNegate is set to true if we can push a negate operation through -/// the tree in a was that we are left with AND operations and negate operations -/// at the leafs only. i.e. "not (or (or x y) z)" can be changed to -/// "and (and (not x) (not y)) (not z)"; "not (or (and x y) z)" cannot be -/// brought into such a form. -static bool isConjunctionDisjunctionTree(const SDValue Val, bool &CanNegate, - unsigned Depth = 0) { +/// Returns true if @p Val is a tree of AND/OR/SETCC operations that can be +/// expressed as a conjunction. See \ref AArch64CCMP. +/// \param CanNegate Set to true if we can negate the whole sub-tree just by +/// changing the conditions on the SETCC tests. +/// (this means we can call emitConjunctionRec() with +/// Negate==true on this sub-tree) +/// \param MustBeFirst Set to true if this subtree needs to be negated and we +/// cannot do the negation naturally. We are required to +/// emit the subtree first in this case. +/// \param WillNegate Is true if are called when the result of this +/// subexpression must be negated. This happens when the +/// outer expression is an OR. We can use this fact to know +/// that we have a double negation (or (or ...) ...) that +/// can be implemented for free. +static bool canEmitConjunction(const SDValue Val, bool &CanNegate, + bool &MustBeFirst, bool WillNegate, + unsigned Depth = 0) { if (!Val.hasOneUse()) return false; unsigned Opcode = Val->getOpcode(); @@ -1600,39 +1620,44 @@ static bool isConjunctionDisjunctionTree(const SDValue if (Val->getOperand(0).getValueType() == MVT::f128) return false; CanNegate = true; + MustBeFirst = false; return true; } // Protect against exponential runtime and stack overflow. if (Depth > 6) return false; if (Opcode == ISD::AND || Opcode == ISD::OR) { + bool IsOR = Opcode == ISD::OR; SDValue O0 = Val->getOperand(0); SDValue O1 = Val->getOperand(1); bool CanNegateL; - if (!isConjunctionDisjunctionTree(O0, CanNegateL, Depth+1)) + bool MustBeFirstL; + if (!canEmitConjunction(O0, CanNegateL, MustBeFirstL, IsOR, Depth+1)) return false; bool CanNegateR; - if (!isConjunctionDisjunctionTree(O1, CanNegateR, Depth+1)) + bool MustBeFirstR; + if (!canEmitConjunction(O1, CanNegateR, MustBeFirstR, IsOR, Depth+1)) return false; - if (Opcode == ISD::OR) { - // For an OR expression we need to be able to negate at least one side or - // we cannot do the transformation at all. + if (MustBeFirstL && MustBeFirstR) + return false; + + if (IsOR) { + // For an OR expression we need to be able to naturally negate at least + // one side or we cannot do the transformation at all. if (!CanNegateL && !CanNegateR) return false; - // We can however change a (not (or x y)) to (and (not x) (not y)) if we - // can negate the x and y subtrees. - CanNegate = CanNegateL && CanNegateR; + // If we the result of the OR will be negated and we can naturally negate + // the leafs, then this sub-tree as a whole negates naturally. + CanNegate = WillNegate && CanNegateL && CanNegateR; + // If we cannot naturally negate the whole sub-tree, then this must be + // emitted first. + MustBeFirst = !CanNegate; } else { - // If the operands are OR expressions then we finally need to negate their - // outputs, we can only do that for the operand with emitted last by - // negating OutCC, not for both operands. - bool NeedsNegOutL = O0->getOpcode() == ISD::OR; - bool NeedsNegOutR = O1->getOpcode() == ISD::OR; - if (NeedsNegOutL && NeedsNegOutR) - return false; - // We cannot negate an AND operation (it would become an OR), + assert(Opcode == ISD::AND && "Must be OR or AND"); + // We cannot naturally negate an AND operation. CanNegate = false; + MustBeFirst = MustBeFirstL || MustBeFirstR; } return true; } @@ -1645,11 +1670,9 @@ static bool isConjunctionDisjunctionTree(const SDValue /// and conditional compare operations. @returns an NZCV flags producing node /// and sets @p OutCC to the flags that should be tested or returns SDValue() if /// transformation was not possible. -/// On recursive invocations @p PushNegate may be set to true to have negation -/// effects pushed to the tree leafs; @p Predicate is an NZCV flag predicate -/// for the comparisons in the current subtree; @p Depth limits the search -/// depth to avoid stack overflow. -static SDValue emitConjunctionDisjunctionTreeRec(SelectionDAG &DAG, SDValue Val, +/// \p Negate is true if we want this sub-tree being negated just by changing +/// SETCC conditions. +static SDValue emitConjunctionRec(SelectionDAG &DAG, SDValue Val, AArch64CC::CondCode &OutCC, bool Negate, SDValue CCOp, AArch64CC::CondCode Predicate) { // We're at a tree leaf, produce a conditional comparison operation. @@ -1690,76 +1713,85 @@ static SDValue emitConjunctionDisjunctionTreeRec(Selec return emitConditionalComparison(LHS, RHS, CC, CCOp, Predicate, OutCC, DL, DAG); } - assert((Opcode == ISD::AND || (Opcode == ISD::OR && Val->hasOneUse())) && - "Valid conjunction/disjunction tree"); + assert(Val->hasOneUse() && "Valid conjunction/disjunction tree"); - // Check if both sides can be transformed. + bool IsOR = Opcode == ISD::OR; + SDValue LHS = Val->getOperand(0); + bool CanNegateL; + bool MustBeFirstL; + bool ValidL = canEmitConjunction(LHS, CanNegateL, MustBeFirstL, IsOR); + assert(ValidL && "Valid conjunction/disjunction tree"); + (void)ValidL; + SDValue RHS = Val->getOperand(1); + bool CanNegateR; + bool MustBeFirstR; + bool ValidR = canEmitConjunction(RHS, CanNegateR, MustBeFirstR, IsOR); + assert(ValidR && "Valid conjunction/disjunction tree"); + (void)ValidR; - // In case of an OR we need to negate our operands and the result. - // (A v B) <=> not(not(A) ^ not(B)) - bool NegateOpsAndResult = Opcode == ISD::OR; - // We can negate the results of all previous operations by inverting the - // predicate flags giving us a free negation for one side. The other side - // must be negatable by itself. - if (NegateOpsAndResult) { - // See which side we can negate. - bool CanNegateL; - bool isValidL = isConjunctionDisjunctionTree(LHS, CanNegateL); - assert(isValidL && "Valid conjunction/disjunction tree"); - (void)isValidL; + // Swap sub-tree that must come first to the right side. + if (MustBeFirstL) { + assert(!MustBeFirstR && "Valid conjunction/disjunction tree"); + std::swap(LHS, RHS); + std::swap(CanNegateL, CanNegateR); + std::swap(MustBeFirstL, MustBeFirstR); + } -#ifndef NDEBUG - bool CanNegateR; - bool isValidR = isConjunctionDisjunctionTree(RHS, CanNegateR); - assert(isValidR && "Valid conjunction/disjunction tree"); - assert((CanNegateL || CanNegateR) && "Valid conjunction/disjunction tree"); -#endif - - // Order the side which we cannot negate to RHS so we can emit it first. - if (!CanNegateL) + bool NegateR; + bool NegateAfterR; + bool NegateL; + bool NegateAfterAll; + if (Opcode == ISD::OR) { + // Swap the sub-tree that we can negate naturally to the left. + if (!CanNegateL) { + assert(CanNegateR && "at least one side must be negatable"); + assert(!MustBeFirstR && "invalid conjunction/disjunction tree"); + assert(!Negate); std::swap(LHS, RHS); + NegateR = false; + NegateAfterR = true; + } else { + // Negate the left sub-tree if possible, otherwise negate the result. + NegateR = CanNegateR; + NegateAfterR = !CanNegateR; + } + NegateL = true; + NegateAfterAll = !Negate; } else { - bool NeedsNegOutL = LHS->getOpcode() == ISD::OR; - assert((!NeedsNegOutL || RHS->getOpcode() != ISD::OR) && - "Valid conjunction/disjunction tree"); - // Order the side where we need to negate the output flags to RHS so it - // gets emitted first. - if (NeedsNegOutL) - std::swap(LHS, RHS); + assert(Opcode == ISD::AND && "Valid conjunction/disjunction tree"); + assert(!Negate && "Valid conjunction/disjunction tree"); + + NegateL = false; + NegateR = false; + NegateAfterR = false; + NegateAfterAll = false; } - // Emit RHS. If we want to negate the tree we only need to push a negate - // through if we are already in a PushNegate case, otherwise we can negate - // the "flags to test" afterwards. + // Emit sub-trees. AArch64CC::CondCode RHSCC; - SDValue CmpR = emitConjunctionDisjunctionTreeRec(DAG, RHS, RHSCC, Negate, - CCOp, Predicate); - if (NegateOpsAndResult && !Negate) + SDValue CmpR = emitConjunctionRec(DAG, RHS, RHSCC, NegateR, CCOp, Predicate); + if (NegateAfterR) RHSCC = AArch64CC::getInvertedCondCode(RHSCC); - // Emit LHS. We may need to negate it. - SDValue CmpL = emitConjunctionDisjunctionTreeRec(DAG, LHS, OutCC, - NegateOpsAndResult, CmpR, - RHSCC); - // If we transformed an OR to and AND then we have to negate the result - // (or absorb the Negate parameter). - if (NegateOpsAndResult && !Negate) + SDValue CmpL = emitConjunctionRec(DAG, LHS, OutCC, NegateL, CmpR, RHSCC); + if (NegateAfterAll) OutCC = AArch64CC::getInvertedCondCode(OutCC); return CmpL; } -/// Emit conjunction or disjunction tree with the CMP/FCMP followed by a chain -/// of CCMP/CFCMP ops. See @ref AArch64CCMP. -/// \see emitConjunctionDisjunctionTreeRec(). -static SDValue emitConjunctionDisjunctionTree(SelectionDAG &DAG, SDValue Val, - AArch64CC::CondCode &OutCC) { - bool CanNegate; - if (!isConjunctionDisjunctionTree(Val, CanNegate)) +/// Emit expression as a conjunction (a series of CCMP/CFCMP ops). +/// In some cases this is even possible with OR operations in the expression. +/// See \ref AArch64CCMP. +/// \see emitConjunctionRec(). +static SDValue emitConjunction(SelectionDAG &DAG, SDValue Val, + AArch64CC::CondCode &OutCC) { + bool DummyCanNegate; + bool DummyMustBeFirst; + if (!canEmitConjunction(Val, DummyCanNegate, DummyMustBeFirst, false)) return SDValue(); - return emitConjunctionDisjunctionTreeRec(DAG, Val, OutCC, false, SDValue(), - AArch64CC::AL); + return emitConjunctionRec(DAG, Val, OutCC, false, SDValue(), AArch64CC::AL); } /// @} @@ -1859,7 +1891,7 @@ static SDValue getAArch64Cmp(SDValue LHS, SDValue RHS, } if (!Cmp && (RHSC->isNullValue() || RHSC->isOne())) { - if ((Cmp = emitConjunctionDisjunctionTree(DAG, LHS, AArch64CC))) { + if ((Cmp = emitConjunction(DAG, LHS, AArch64CC))) { if ((CC == ISD::SETNE) ^ RHSC->isNullValue()) AArch64CC = AArch64CC::getInvertedCondCode(AArch64CC); } Modified: projects/clang700-import/contrib/llvm/lib/Target/AMDGPU/AMDGPULibFunc.cpp ============================================================================== --- projects/clang700-import/contrib/llvm/lib/Target/AMDGPU/AMDGPULibFunc.cpp Sun Dec 9 06:52:25 2018 (r341762) +++ projects/clang700-import/contrib/llvm/lib/Target/AMDGPU/AMDGPULibFunc.cpp Sun Dec 9 11:36:04 2018 (r341763) @@ -90,7 +90,6 @@ class UnmangledFuncInfo { public: using ID = AMDGPULibFunc::EFuncId; - UnmangledFuncInfo() = default; UnmangledFuncInfo(StringRef _Name, unsigned _NumArgs) : Name(_Name), NumArgs(_NumArgs) {} // Get index to Table by function name. Modified: projects/clang700-import/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp ============================================================================== --- projects/clang700-import/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp Sun Dec 9 06:52:25 2018 (r341762) +++ projects/clang700-import/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp Sun Dec 9 11:36:04 2018 (r341763) @@ -25,6 +25,7 @@ #include "llvm/MC/MCFixupKindInfo.h" #include "llvm/MC/MCObjectWriter.h" #include "llvm/MC/MCSubtargetInfo.h" +#include "llvm/MC/MCSymbolELF.h" #include "llvm/MC/MCTargetOptions.h" #include "llvm/MC/MCValue.h" #include "llvm/Support/ErrorHandling.h" @@ -566,6 +567,14 @@ bool MipsAsmBackend::shouldForceRelocation(const MCAss case Mips::fixup_MICROMIPS_TLS_TPREL_LO16: return true; } +} + +bool MipsAsmBackend::isMicroMips(const MCSymbol *Sym) const { + if (const auto *ElfSym = dyn_cast(Sym)) { + if (ElfSym->getOther() & ELF::STO_MIPS_MICROMIPS) + return true; + } + return false; } MCAsmBackend *llvm::createMipsAsmBackend(const Target &T, Modified: projects/clang700-import/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.h ============================================================================== --- projects/clang700-import/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.h Sun Dec 9 06:52:25 2018 (r341762) +++ projects/clang700-import/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.h Sun Dec 9 11:36:04 2018 (r341763) @@ -25,6 +25,7 @@ class MCAssembler; struct MCFixupKindInfo; class MCObjectWriter; class MCRegisterInfo; +class MCSymbolELF; class Target; class MipsAsmBackend : public MCAsmBackend { @@ -90,6 +91,7 @@ class MipsAsmBackend : public MCAsmBackend { (public) bool shouldForceRelocation(const MCAssembler &Asm, const MCFixup &Fixup, const MCValue &Target) override; + bool isMicroMips(const MCSymbol *Sym) const override; }; // class MipsAsmBackend } // namespace Modified: projects/clang700-import/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.cpp ============================================================================== --- projects/clang700-import/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.cpp Sun Dec 9 06:52:25 2018 (r341762) +++ projects/clang700-import/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.cpp Sun Dec 9 11:36:04 2018 (r341763) @@ -15,6 +15,7 @@ #include "llvm/MC/MCAssembler.h" #include "llvm/MC/MCCodeEmitter.h" #include "llvm/MC/MCContext.h" +#include "llvm/MC/MCDwarf.h" #include "llvm/MC/MCInst.h" #include "llvm/MC/MCObjectWriter.h" #include "llvm/MC/MCSymbolELF.h" @@ -51,6 +52,22 @@ void MipsELFStreamer::EmitInstruction(const MCInst &In } createPendingLabelRelocs(); +} + +void MipsELFStreamer::EmitCFIStartProcImpl(MCDwarfFrameInfo &Frame) { + Frame.Begin = getContext().createTempSymbol(); + MCELFStreamer::EmitLabel(Frame.Begin); +} + +MCSymbol *MipsELFStreamer::EmitCFILabel() { + MCSymbol *Label = getContext().createTempSymbol("cfi", true); + MCELFStreamer::EmitLabel(Label); + return Label; +} + +void MipsELFStreamer::EmitCFIEndProcImpl(MCDwarfFrameInfo &Frame) { + Frame.End = getContext().createTempSymbol(); + MCELFStreamer::EmitLabel(Frame.End); } void MipsELFStreamer::createPendingLabelRelocs() { Modified: projects/clang700-import/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.h ============================================================================== --- projects/clang700-import/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.h Sun Dec 9 06:52:25 2018 (r341762) +++ projects/clang700-import/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.h Sun Dec 9 11:36:04 2018 (r341763) @@ -26,6 +26,7 @@ class MCAsmBackend; class MCCodeEmitter; class MCContext; class MCSubtargetInfo; +struct MCDwarfFrameInfo; class MipsELFStreamer : public MCELFStreamer { SmallVector, 8> MipsOptionRecords; @@ -59,6 +60,12 @@ class MipsELFStreamer : public MCELFStreamer { (public /// directives are emitted. void EmitValueImpl(const MCExpr *Value, unsigned Size, SMLoc Loc) override; void EmitIntValue(uint64_t Value, unsigned Size) override; + + // Overriding these functions allows us to avoid recording of these labels + // in EmitLabel and later marking them as microMIPS. + void EmitCFIStartProcImpl(MCDwarfFrameInfo &Frame) override; + void EmitCFIEndProcImpl(MCDwarfFrameInfo &Frame) override; + MCSymbol *EmitCFILabel() override; /// Emits all the option records stored up until the point it's called. void EmitMipsOptionRecords(); Modified: projects/clang700-import/contrib/llvm/lib/Target/Mips/MicroMips32r6InstrInfo.td ============================================================================== --- projects/clang700-import/contrib/llvm/lib/Target/Mips/MicroMips32r6InstrInfo.td Sun Dec 9 06:52:25 2018 (r341762) +++ projects/clang700-import/contrib/llvm/lib/Target/Mips/MicroMips32r6InstrInfo.td Sun Dec 9 11:36:04 2018 (r341763) @@ -1733,7 +1733,7 @@ defm S_MMR6 : Cmp_Pats, ISA_MICRO defm D_MMR6 : Cmp_Pats, ISA_MICROMIPS32R6; def : MipsPat<(f32 fpimm0), (MTC1_MMR6 ZERO)>, ISA_MICROMIPS32R6; -def : MipsPat<(f32 fpimm0neg), (FNEG_S_MMR6 (MTC1 ZERO))>, ISA_MICROMIPS32R6; +def : MipsPat<(f32 fpimm0neg), (FNEG_S_MMR6 (MTC1_MMR6 ZERO))>, ISA_MICROMIPS32R6; def : MipsPat<(MipsTruncIntFP FGR64Opnd:$src), (TRUNC_W_D_MMR6 FGR64Opnd:$src)>, ISA_MICROMIPS32R6; Modified: projects/clang700-import/contrib/llvm/lib/Target/Mips/Mips64InstrInfo.td ============================================================================== --- projects/clang700-import/contrib/llvm/lib/Target/Mips/Mips64InstrInfo.td Sun Dec 9 06:52:25 2018 (r341762) +++ projects/clang700-import/contrib/llvm/lib/Target/Mips/Mips64InstrInfo.td Sun Dec 9 11:36:04 2018 (r341763) @@ -838,7 +838,7 @@ def : MipsPat<(i64 (sext (i32 (sub GPR32:$src, GPR32:$ (SUBu GPR32:$src, GPR32:$src2), sub_32)>; def : MipsPat<(i64 (sext (i32 (mul GPR32:$src, GPR32:$src2)))), (INSERT_SUBREG (i64 (IMPLICIT_DEF)), - (MUL GPR32:$src, GPR32:$src2), sub_32)>; + (MUL GPR32:$src, GPR32:$src2), sub_32)>, ISA_MIPS3_NOT_32R6_64R6; def : MipsPat<(i64 (sext (i32 (MipsMFHI ACC64:$src)))), (INSERT_SUBREG (i64 (IMPLICIT_DEF)), (PseudoMFHI ACC64:$src), sub_32)>; @@ -1139,3 +1139,6 @@ def SLTUImm64 : MipsAsmPseudoInst<(outs GPR64Opnd:$rs) "sltu\t$rs, $rt, $imm">, GPR_64; def : MipsInstAlias<"sltu\t$rs, $imm", (SLTUImm64 GPR64Opnd:$rs, GPR64Opnd:$rs, imm64:$imm)>, GPR_64; + +def : MipsInstAlias<"rdhwr $rt, $rs", + (RDHWR64 GPR64Opnd:$rt, HWRegsOpnd:$rs, 0), 1>, GPR_64; Modified: projects/clang700-import/contrib/llvm/lib/Target/Mips/Mips64r6InstrInfo.td ============================================================================== --- projects/clang700-import/contrib/llvm/lib/Target/Mips/Mips64r6InstrInfo.td Sun Dec 9 06:52:25 2018 (r341762) +++ projects/clang700-import/contrib/llvm/lib/Target/Mips/Mips64r6InstrInfo.td Sun Dec 9 11:36:04 2018 (r341763) @@ -301,6 +301,9 @@ def : MipsPat<(select (i32 (seteq i32:$cond, immz)), i // Patterns used for matching away redundant sign extensions. // MIPS32 arithmetic instructions sign extend their result implicitly. +def : MipsPat<(i64 (sext (i32 (mul GPR32:$src, GPR32:$src2)))), + (INSERT_SUBREG (i64 (IMPLICIT_DEF)), + (MUL_R6 GPR32:$src, GPR32:$src2), sub_32)>, ISA_MIPS64R6; def : MipsPat<(i64 (sext (i32 (sdiv GPR32:$src, GPR32:$src2)))), (INSERT_SUBREG (i64 (IMPLICIT_DEF)), (DIV GPR32:$src, GPR32:$src2), sub_32)>, ISA_MIPS64R6; Modified: projects/clang700-import/contrib/llvm/lib/Target/Mips/MipsFastISel.cpp ============================================================================== --- projects/clang700-import/contrib/llvm/lib/Target/Mips/MipsFastISel.cpp Sun Dec 9 06:52:25 2018 (r341762) +++ projects/clang700-import/contrib/llvm/lib/Target/Mips/MipsFastISel.cpp Sun Dec 9 11:36:04 2018 (r341763) @@ -953,6 +953,11 @@ bool MipsFastISel::selectBranch(const Instruction *I) MachineBasicBlock *FBB = FuncInfo.MBBMap[BI->getSuccessor(1)]; // For now, just try the simplest case where it's fed by a compare. if (const CmpInst *CI = dyn_cast(BI->getCondition())) { + MVT CIMVT = + TLI.getValueType(DL, CI->getOperand(0)->getType(), true).getSimpleVT(); + if (CIMVT == MVT::i1) + return false; + unsigned CondReg = getRegForValue(CI); BuildMI(*BrBB, FuncInfo.InsertPt, DbgLoc, TII.get(Mips::BGTZ)) .addReg(CondReg) Modified: projects/clang700-import/contrib/llvm/lib/Target/Mips/MipsInstrFPU.td ============================================================================== --- projects/clang700-import/contrib/llvm/lib/Target/Mips/MipsInstrFPU.td Sun Dec 9 06:52:25 2018 (r341762) +++ projects/clang700-import/contrib/llvm/lib/Target/Mips/MipsInstrFPU.td Sun Dec 9 11:36:04 2018 (r341763) @@ -485,14 +485,14 @@ let AdditionalPredicates = [NotInMicroMips] in { def CTC1 : MMRel, MTC1_FT<"ctc1", CCROpnd, GPR32Opnd, II_CTC1>, MFC1_FM<6>, ISA_MIPS1; - def MFC1 : MMRel, MFC1_FT<"mfc1", GPR32Opnd, FGR32Opnd, II_MFC1, - bitconvert>, MFC1_FM<0>, ISA_MIPS1; + def MFC1 : MMRel, StdMMR6Rel, MFC1_FT<"mfc1", GPR32Opnd, FGR32Opnd, II_MFC1, + bitconvert>, MFC1_FM<0>, ISA_MIPS1; def MFC1_D64 : MFC1_FT<"mfc1", GPR32Opnd, FGR64Opnd, II_MFC1>, MFC1_FM<0>, ISA_MIPS1, FGR_64 { let DecoderNamespace = "MipsFP64"; } - def MTC1 : MMRel, MTC1_FT<"mtc1", FGR32Opnd, GPR32Opnd, II_MTC1, - bitconvert>, MFC1_FM<4>, ISA_MIPS1; + def MTC1 : MMRel, StdMMR6Rel, MTC1_FT<"mtc1", FGR32Opnd, GPR32Opnd, II_MTC1, + bitconvert>, MFC1_FM<4>, ISA_MIPS1; def MTC1_D64 : MTC1_FT<"mtc1", FGR64Opnd, GPR32Opnd, II_MTC1>, MFC1_FM<4>, ISA_MIPS1, FGR_64 { let DecoderNamespace = "MipsFP64"; Modified: projects/clang700-import/contrib/llvm/lib/Target/Mips/MipsSEFrameLowering.cpp ============================================================================== --- projects/clang700-import/contrib/llvm/lib/Target/Mips/MipsSEFrameLowering.cpp Sun Dec 9 06:52:25 2018 (r341762) +++ projects/clang700-import/contrib/llvm/lib/Target/Mips/MipsSEFrameLowering.cpp Sun Dec 9 11:36:04 2018 (r341763) @@ -299,8 +299,12 @@ bool ExpandPseudo::expandBuildPairF64(MachineBasicBloc // register). Unfortunately, we have to make this decision before register // allocation so for now we use a spill/reload sequence for all // double-precision values in regardless of being an odd/even register. - if ((Subtarget.isABI_FPXX() && !Subtarget.hasMTHC1()) || - (FP64 && !Subtarget.useOddSPReg())) { + // + // For the cases that should be covered here MipsSEISelDAGToDAG adds $sp as + // implicit operand, so other passes (like ShrinkWrapping) are aware that + // stack is used. + if (I->getNumOperands() == 4 && I->getOperand(3).isReg() + && I->getOperand(3).getReg() == Mips::SP) { unsigned DstReg = I->getOperand(0).getReg(); unsigned LoReg = I->getOperand(1).getReg(); unsigned HiReg = I->getOperand(2).getReg(); @@ -360,9 +364,12 @@ bool ExpandPseudo::expandExtractElementF64(MachineBasi // register). Unfortunately, we have to make this decision before register // allocation so for now we use a spill/reload sequence for all // double-precision values in regardless of being an odd/even register. - - if ((Subtarget.isABI_FPXX() && !Subtarget.hasMTHC1()) || - (FP64 && !Subtarget.useOddSPReg())) { + // + // For the cases that should be covered here MipsSEISelDAGToDAG adds $sp as + // implicit operand, so other passes (like ShrinkWrapping) are aware that + // stack is used. + if (I->getNumOperands() == 4 && I->getOperand(3).isReg() + && I->getOperand(3).getReg() == Mips::SP) { unsigned DstReg = I->getOperand(0).getReg(); unsigned SrcReg = Op1.getReg(); unsigned N = Op2.getImm(); Modified: projects/clang700-import/contrib/llvm/lib/Target/Mips/MipsSEISelDAGToDAG.cpp ============================================================================== --- projects/clang700-import/contrib/llvm/lib/Target/Mips/MipsSEISelDAGToDAG.cpp Sun Dec 9 06:52:25 2018 (r341762) +++ projects/clang700-import/contrib/llvm/lib/Target/Mips/MipsSEISelDAGToDAG.cpp Sun Dec 9 11:36:04 2018 (r341763) @@ -238,6 +238,18 @@ void MipsSEDAGToDAGISel::processFunctionAfterISel(Mach case Mips::WRDSP: addDSPCtrlRegOperands(true, MI, MF); break; + case Mips::BuildPairF64_64: + case Mips::ExtractElementF64_64: + if (!Subtarget->useOddSPReg()) { + MI.addOperand(MachineOperand::CreateReg(Mips::SP, false, true)); + break; + } + // fallthrough + case Mips::BuildPairF64: + case Mips::ExtractElementF64: + if (Subtarget->isABI_FPXX() && !Subtarget->hasMTHC1()) + MI.addOperand(MachineOperand::CreateReg(Mips::SP, false, true)); + break; default: replaceUsesWithZeroReg(MRI, MI); } Modified: projects/clang700-import/contrib/llvm/lib/Target/Mips/MipsSEInstrInfo.cpp ============================================================================== --- projects/clang700-import/contrib/llvm/lib/Target/Mips/MipsSEInstrInfo.cpp Sun Dec 9 06:52:25 2018 (r341762) +++ projects/clang700-import/contrib/llvm/lib/Target/Mips/MipsSEInstrInfo.cpp Sun Dec 9 11:36:04 2018 (r341763) @@ -25,9 +25,14 @@ using namespace llvm; +static unsigned getUnconditionalBranch(const MipsSubtarget &STI) { + if (STI.inMicroMipsMode()) + return STI.isPositionIndependent() ? Mips::B_MM : Mips::J_MM; + return STI.isPositionIndependent() ? Mips::B : Mips::J; +} + MipsSEInstrInfo::MipsSEInstrInfo(const MipsSubtarget &STI) - : MipsInstrInfo(STI, STI.isPositionIndependent() ? Mips::B : Mips::J), - RI() {} + : MipsInstrInfo(STI, getUnconditionalBranch(STI)), RI() {} const MipsRegisterInfo &MipsSEInstrInfo::getRegisterInfo() const { return RI; @@ -643,7 +648,7 @@ unsigned MipsSEInstrInfo::getAnalyzableBrOpc(unsigned Opc == Mips::BNE64 || Opc == Mips::BGTZ64 || Opc == Mips::BGEZ64 || Opc == Mips::BLTZ64 || Opc == Mips::BLEZ64 || Opc == Mips::BC1T || Opc == Mips::BC1F || Opc == Mips::B || Opc == Mips::J || - Opc == Mips::B_MM || Opc == Mips::BEQZC_MM || + Opc == Mips::J_MM || Opc == Mips::B_MM || Opc == Mips::BEQZC_MM || Opc == Mips::BNEZC_MM || Opc == Mips::BEQC || Opc == Mips::BNEC || Opc == Mips::BLTC || Opc == Mips::BGEC || Opc == Mips::BLTUC || Opc == Mips::BGEUC || Opc == Mips::BGTZC || Opc == Mips::BLEZC || Modified: projects/clang700-import/contrib/llvm/lib/Target/PowerPC/P9InstrResources.td ============================================================================== --- projects/clang700-import/contrib/llvm/lib/Target/PowerPC/P9InstrResources.td Sun Dec 9 06:52:25 2018 (r341762) +++ projects/clang700-import/contrib/llvm/lib/Target/PowerPC/P9InstrResources.td Sun Dec 9 11:36:04 2018 (r341763) @@ -592,6 +592,7 @@ def : InstRW<[P9_PM_3C, IP_EXECO_1C, IP_EXECE_1C, DISP XXPERM, XXPERMR, XXSLDWI, + XXSLDWIs, XXSPLTIB, XXSPLTW, XXSPLTWs, Modified: projects/clang700-import/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.cpp ============================================================================== --- projects/clang700-import/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.cpp Sun Dec 9 06:52:25 2018 (r341762) +++ projects/clang700-import/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.cpp Sun Dec 9 11:36:04 2018 (r341763) @@ -8454,17 +8454,6 @@ SDValue PPCTargetLowering::LowerVECTOR_SHUFFLE(SDValue if (V2.isUndef() && PPC::isSplatShuffleMask(SVOp, 4)) { int SplatIdx = PPC::getVSPLTImmediate(SVOp, 4, DAG); - // If the source for the shuffle is a scalar_to_vector that came from a - // 32-bit load, it will have used LXVWSX so we don't need to splat again. - if (Subtarget.hasP9Vector() && - ((isLittleEndian && SplatIdx == 3) || - (!isLittleEndian && SplatIdx == 0))) { - SDValue Src = V1.getOperand(0); - if (Src.getOpcode() == ISD::SCALAR_TO_VECTOR && - Src.getOperand(0).getOpcode() == ISD::LOAD && - Src.getOperand(0).hasOneUse()) - return V1; - } SDValue Conv = DAG.getNode(ISD::BITCAST, dl, MVT::v4i32, V1); SDValue Splat = DAG.getNode(PPCISD::XXSPLT, dl, MVT::v4i32, Conv, DAG.getConstant(SplatIdx, dl, MVT::i32)); Modified: projects/clang700-import/contrib/llvm/lib/Target/PowerPC/PPCInstrVSX.td ============================================================================== --- projects/clang700-import/contrib/llvm/lib/Target/PowerPC/PPCInstrVSX.td Sun Dec 9 06:52:25 2018 (r341762) +++ projects/clang700-import/contrib/llvm/lib/Target/PowerPC/PPCInstrVSX.td Sun Dec 9 11:36:04 2018 (r341763) @@ -877,6 +877,12 @@ let Uses = [RM] in { "xxsldwi $XT, $XA, $XB, $SHW", IIC_VecPerm, [(set v4i32:$XT, (PPCvecshl v4i32:$XA, v4i32:$XB, imm32SExt16:$SHW))]>; + + let isCodeGenOnly = 1 in + def XXSLDWIs : XX3Form_2s<60, 2, + (outs vsrc:$XT), (ins vsfrc:$XA, u2imm:$SHW), + "xxsldwi $XT, $XA, $XA, $SHW", IIC_VecPerm, []>; + def XXSPLTW : XX2Form_2<60, 164, (outs vsrc:$XT), (ins vsrc:$XB, u2imm:$UIM), "xxspltw $XT, $XB, $UIM", IIC_VecPerm, @@ -886,6 +892,7 @@ let Uses = [RM] in { def XXSPLTWs : XX2Form_2<60, 164, (outs vsrc:$XT), (ins vfrc:$XB, u2imm:$UIM), "xxspltw $XT, $XB, $UIM", IIC_VecPerm, []>; + } // hasSideEffects } // UseVSXReg = 1 @@ -1466,8 +1473,6 @@ let AddedComplexity = 400 in { // Prefer VSX patterns (f64 (PPCmtvsra (i64 (vector_extract v2i64:$S, 1)))))), (f32 (XSCVUXDSP (COPY_TO_REGCLASS (XXPERMDI $S, $S, 2), VSFRC)))>; } - def : Pat<(v4i32 (scalar_to_vector ScalarLoads.Li32)), - (v4i32 (XXSPLTWs (LIWAX xoaddr:$src), 1))>; // Instructions for converting float to i64 feeding a store. let Predicates = [NoP9Vector] in { @@ -3050,14 +3055,48 @@ let AddedComplexity = 400, Predicates = [HasP9Vector] (STXVX $rS, xoaddr:$dst)>; def : Pat<(int_ppc_vsx_stxvd2x v2f64:$rS, xoaddr:$dst), (STXVX $rS, xoaddr:$dst)>; - def : Pat<(v4i32 (scalar_to_vector (i32 (load xoaddr:$src)))), - (v4i32 (LXVWSX xoaddr:$src))>; - def : Pat<(v4f32 (scalar_to_vector (f32 (load xoaddr:$src)))), - (v4f32 (LXVWSX xoaddr:$src))>; - def : Pat<(v4f32 (scalar_to_vector - (f32 (fpround (f64 (extloadf32 xoaddr:$src)))))), - (v4f32 (LXVWSX xoaddr:$src))>; + let AddedComplexity = 400 in { + // LIWAX - This instruction is used for sign extending i32 -> i64. + // LIWZX - This instruction will be emitted for i32, f32, and when + // zero-extending i32 to i64 (zext i32 -> i64). + let Predicates = [IsLittleEndian] in { + + def : Pat<(v2i64 (scalar_to_vector (i64 (sextloadi32 xoaddr:$src)))), + (v2i64 (XXPERMDIs + (COPY_TO_REGCLASS (LIWAX xoaddr:$src), VSRC), 2))>; + + def : Pat<(v2i64 (scalar_to_vector (i64 (zextloadi32 xoaddr:$src)))), + (v2i64 (XXPERMDIs + (COPY_TO_REGCLASS (LIWZX xoaddr:$src), VSRC), 2))>; + + def : Pat<(v4i32 (scalar_to_vector (i32 (load xoaddr:$src)))), + (v4i32 (XXPERMDIs + (COPY_TO_REGCLASS (LIWZX xoaddr:$src), VSRC), 2))>; + + def : Pat<(v4f32 (scalar_to_vector (f32 (load xoaddr:$src)))), + (v4f32 (XXPERMDIs + (COPY_TO_REGCLASS (LIWZX xoaddr:$src), VSRC), 2))>; + } + + let Predicates = [IsBigEndian] in { + def : Pat<(v2i64 (scalar_to_vector (i64 (sextloadi32 xoaddr:$src)))), + (v2i64 (COPY_TO_REGCLASS (LIWAX xoaddr:$src), VSRC))>; + + def : Pat<(v2i64 (scalar_to_vector (i64 (zextloadi32 xoaddr:$src)))), + (v2i64 (COPY_TO_REGCLASS (LIWZX xoaddr:$src), VSRC))>; + + def : Pat<(v4i32 (scalar_to_vector (i32 (load xoaddr:$src)))), + (v4i32 (XXSLDWIs + (COPY_TO_REGCLASS (LIWZX xoaddr:$src), VSRC), 1))>; + + def : Pat<(v4f32 (scalar_to_vector (f32 (load xoaddr:$src)))), + (v4f32 (XXSLDWIs + (COPY_TO_REGCLASS (LIWZX xoaddr:$src), VSRC), 1))>; + } + + } + // Build vectors from i8 loads def : Pat<(v16i8 (scalar_to_vector ScalarLoads.Li8)), (v16i8 (VSPLTBs 7, (LXSIBZX xoaddr:$src)))>; @@ -3218,6 +3257,39 @@ let AddedComplexity = 400, Predicates = [HasP9Vector] def : Pat<(f32 (fpround (f64 (extloadf32 ixaddr:$src)))), (f32 (DFLOADf32 ixaddr:$src))>; + + let AddedComplexity = 400 in { + // The following pseudoinstructions are used to ensure the utilization + // of all 64 VSX registers. + let Predicates = [IsLittleEndian, HasP9Vector] in { + def : Pat<(v2i64 (scalar_to_vector (i64 (load ixaddr:$src)))), + (v2i64 (XXPERMDIs + (COPY_TO_REGCLASS (DFLOADf64 ixaddr:$src), VSRC), 2))>; + def : Pat<(v2i64 (scalar_to_vector (i64 (load xaddr:$src)))), + (v2i64 (XXPERMDIs + (COPY_TO_REGCLASS (XFLOADf64 xaddr:$src), VSRC), 2))>; + + def : Pat<(v2f64 (scalar_to_vector (f64 (load ixaddr:$src)))), + (v2f64 (XXPERMDIs + (COPY_TO_REGCLASS (DFLOADf64 ixaddr:$src), VSRC), 2))>; + def : Pat<(v2f64 (scalar_to_vector (f64 (load xaddr:$src)))), + (v2f64 (XXPERMDIs + (COPY_TO_REGCLASS (XFLOADf64 xaddr:$src), VSRC), 2))>; + } + + let Predicates = [IsBigEndian, HasP9Vector] in { + def : Pat<(v2i64 (scalar_to_vector (i64 (load ixaddr:$src)))), + (v2i64 (COPY_TO_REGCLASS (DFLOADf64 ixaddr:$src), VSRC))>; + def : Pat<(v2i64 (scalar_to_vector (i64 (load xaddr:$src)))), + (v2i64 (COPY_TO_REGCLASS (XFLOADf64 xaddr:$src), VSRC))>; + + def : Pat<(v2f64 (scalar_to_vector (f64 (load ixaddr:$src)))), + (v2f64 (COPY_TO_REGCLASS (DFLOADf64 ixaddr:$src), VSRC))>; + def : Pat<(v2f64 (scalar_to_vector (f64 (load xaddr:$src)))), + (v2f64 (COPY_TO_REGCLASS (XFLOADf64 xaddr:$src), VSRC))>; + } + } + let Predicates = [IsBigEndian, HasP9Vector] in { // (Un)Signed DWord vector extract -> QP @@ -3932,3 +4004,4 @@ let AddedComplexity = 400 in { (v4i32 (VEXTSH2W $A))>; } } + Modified: projects/clang700-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp ============================================================================== --- projects/clang700-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp Sun Dec 9 06:52:25 2018 (r341762) +++ projects/clang700-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp Sun Dec 9 11:36:04 2018 (r341763) @@ -2924,12 +2924,20 @@ static Value *foldICmpWithLowBitMaskedVal(ICmpInst &I, // x & (-1 >> y) s>= x -> x s<= (-1 >> y) if (X != I.getOperand(1)) // X must be on RHS of comparison! return nullptr; // Ignore the other case. + if (!match(M, m_Constant())) // Can not do this fold with non-constant. + return nullptr; + if (!match(M, m_NonNegative())) // Must not have any -1 vector elements. + return nullptr; DstPred = ICmpInst::Predicate::ICMP_SLE; break; case ICmpInst::Predicate::ICMP_SLT: // x & (-1 >> y) s< x -> x s> (-1 >> y) if (X != I.getOperand(1)) // X must be on RHS of comparison! return nullptr; // Ignore the other case. + if (!match(M, m_Constant())) // Can not do this fold with non-constant. + return nullptr; + if (!match(M, m_NonNegative())) // Must not have any -1 vector elements. + return nullptr; DstPred = ICmpInst::Predicate::ICMP_SGT; break; case ICmpInst::Predicate::ICMP_SLE: Modified: projects/clang700-import/contrib/llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp ============================================================================== --- projects/clang700-import/contrib/llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp Sun Dec 9 06:52:25 2018 (r341762) +++ projects/clang700-import/contrib/llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp Sun Dec 9 11:36:04 2018 (r341763) @@ -231,17 +231,17 @@ struct TransformedFunction { TransformedFunction& operator=(TransformedFunction&&) = default; /// Type of the function before the transformation. - FunctionType* const OriginalType; + FunctionType *OriginalType; /// Type of the function after the transformation. - FunctionType* const TransformedType; + FunctionType *TransformedType; /// Transforming a function may change the position of arguments. This /// member records the mapping from each argument's old position to its new /// position. Argument positions are zero-indexed. If the transformation /// from F to F' made the first argument of F into the third argument of F', /// then ArgumentIndexMapping[0] will equal 2. - const std::vector ArgumentIndexMapping; + std::vector ArgumentIndexMapping; }; /// Given function attributes from a call site for the original function, Modified: projects/clang700-import/contrib/llvm/lib/Transforms/Utils/LCSSA.cpp ============================================================================== --- projects/clang700-import/contrib/llvm/lib/Transforms/Utils/LCSSA.cpp Sun Dec 9 06:52:25 2018 (r341762) +++ projects/clang700-import/contrib/llvm/lib/Transforms/Utils/LCSSA.cpp Sun Dec 9 11:36:04 2018 (r341763) @@ -41,6 +41,7 @@ #include "llvm/IR/Dominators.h" #include "llvm/IR/Function.h" #include "llvm/IR/Instructions.h" +#include "llvm/IR/IntrinsicInst.h" #include "llvm/IR/PredIteratorCache.h" #include "llvm/Pass.h" #include "llvm/Transforms/Utils.h" *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Sun Dec 9 11:39:56 2018 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5D1381317E9C for ; Sun, 9 Dec 2018 11:39:55 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E5B6885F04; Sun, 9 Dec 2018 11:39:54 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C623610BF5; Sun, 9 Dec 2018 11:39:54 +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 wB9BdsTB015243; Sun, 9 Dec 2018 11:39:54 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wB9BdlKf015207; Sun, 9 Dec 2018 11:39:47 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201812091139.wB9BdlKf015207@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 9 Dec 2018 11:39:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r341764 - in projects/clang700-import: . bin/dd bin/pkill bin/sh bin/sh/tests/errors bin/sh/tests/expansion contrib/bmake contrib/bmake/mk contrib/bmake/unit-tests contrib/ipfilter cont... X-SVN-Group: projects X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in projects/clang700-import: . bin/dd bin/pkill bin/sh bin/sh/tests/errors bin/sh/tests/expansion contrib/bmake contrib/bmake/mk contrib/bmake/unit-tests contrib/ipfilter contrib/ipfilter/ipsend contr... X-SVN-Commit-Revision: 341764 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: E5B6885F04 X-Spamd-Result: default: False [-2.98 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_SHORT(-0.99)[-0.987,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_LONG(-0.99)[-0.994,0] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 Dec 2018 11:39:56 -0000 Author: dim Date: Sun Dec 9 11:39:45 2018 New Revision: 341764 URL: https://svnweb.freebsd.org/changeset/base/341764 Log: Merge ^/head r340918 through r341763. Added: projects/clang700-import/bin/sh/tests/errors/script-error1.0 - copied unchanged from r341763, head/bin/sh/tests/errors/script-error1.0 projects/clang700-import/bin/sh/tests/expansion/question2.0 - copied unchanged from r341763, head/bin/sh/tests/expansion/question2.0 projects/clang700-import/contrib/bmake/unit-tests/varquote.exp - copied unchanged from r341763, head/contrib/bmake/unit-tests/varquote.exp projects/clang700-import/contrib/bmake/unit-tests/varquote.mk - copied unchanged from r341763, head/contrib/bmake/unit-tests/varquote.mk projects/clang700-import/contrib/wpa/src/ap/dpp_hostapd.c - copied unchanged from r341763, head/contrib/wpa/src/ap/dpp_hostapd.c projects/clang700-import/contrib/wpa/src/ap/dpp_hostapd.h - copied unchanged from r341763, head/contrib/wpa/src/ap/dpp_hostapd.h projects/clang700-import/contrib/wpa/src/ap/eth_p_oui.c - copied unchanged from r341763, head/contrib/wpa/src/ap/eth_p_oui.c projects/clang700-import/contrib/wpa/src/ap/eth_p_oui.h - copied unchanged from r341763, head/contrib/wpa/src/ap/eth_p_oui.h projects/clang700-import/contrib/wpa/src/ap/fils_hlp.c - copied unchanged from r341763, head/contrib/wpa/src/ap/fils_hlp.c projects/clang700-import/contrib/wpa/src/ap/fils_hlp.h - copied unchanged from r341763, head/contrib/wpa/src/ap/fils_hlp.h projects/clang700-import/contrib/wpa/src/ap/gas_query_ap.c - copied unchanged from r341763, head/contrib/wpa/src/ap/gas_query_ap.c projects/clang700-import/contrib/wpa/src/ap/gas_query_ap.h - copied unchanged from r341763, head/contrib/wpa/src/ap/gas_query_ap.h projects/clang700-import/contrib/wpa/src/ap/ieee802_11_he.c - copied unchanged from r341763, head/contrib/wpa/src/ap/ieee802_11_he.c projects/clang700-import/contrib/wpa/src/common/dhcp.h - copied unchanged from r341763, head/contrib/wpa/src/common/dhcp.h projects/clang700-import/contrib/wpa/src/common/dpp.c - copied unchanged from r341763, head/contrib/wpa/src/common/dpp.c projects/clang700-import/contrib/wpa/src/common/dpp.h - copied unchanged from r341763, head/contrib/wpa/src/common/dpp.h projects/clang700-import/contrib/wpa/src/common/gas_server.c - copied unchanged from r341763, head/contrib/wpa/src/common/gas_server.c projects/clang700-import/contrib/wpa/src/common/gas_server.h - copied unchanged from r341763, head/contrib/wpa/src/common/gas_server.h projects/clang700-import/contrib/wpa/src/crypto/crypto_linux.c - copied unchanged from r341763, head/contrib/wpa/src/crypto/crypto_linux.c projects/clang700-import/contrib/wpa/src/crypto/crypto_nettle.c - copied unchanged from r341763, head/contrib/wpa/src/crypto/crypto_nettle.c projects/clang700-import/contrib/wpa/src/crypto/crypto_wolfssl.c - copied unchanged from r341763, head/contrib/wpa/src/crypto/crypto_wolfssl.c projects/clang700-import/contrib/wpa/src/crypto/fips_prf_wolfssl.c - copied unchanged from r341763, head/contrib/wpa/src/crypto/fips_prf_wolfssl.c projects/clang700-import/contrib/wpa/src/crypto/sha384-kdf.c - copied unchanged from r341763, head/contrib/wpa/src/crypto/sha384-kdf.c projects/clang700-import/contrib/wpa/src/crypto/sha384.c - copied unchanged from r341763, head/contrib/wpa/src/crypto/sha384.c projects/clang700-import/contrib/wpa/src/crypto/sha512-kdf.c - copied unchanged from r341763, head/contrib/wpa/src/crypto/sha512-kdf.c projects/clang700-import/contrib/wpa/src/crypto/sha512-prf.c - copied unchanged from r341763, head/contrib/wpa/src/crypto/sha512-prf.c projects/clang700-import/contrib/wpa/src/crypto/sha512.h - copied unchanged from r341763, head/contrib/wpa/src/crypto/sha512.h projects/clang700-import/contrib/wpa/src/crypto/tls_wolfssl.c - copied unchanged from r341763, head/contrib/wpa/src/crypto/tls_wolfssl.c projects/clang700-import/contrib/wpa/src/drivers/driver_macsec_linux.c - copied unchanged from r341763, head/contrib/wpa/src/drivers/driver_macsec_linux.c projects/clang700-import/contrib/wpa/src/drivers/driver_wired_common.c - copied unchanged from r341763, head/contrib/wpa/src/drivers/driver_wired_common.c projects/clang700-import/contrib/wpa/src/drivers/driver_wired_common.h - copied unchanged from r341763, head/contrib/wpa/src/drivers/driver_wired_common.h projects/clang700-import/contrib/wpa/src/utils/crc32.c - copied unchanged from r341763, head/contrib/wpa/src/utils/crc32.c projects/clang700-import/contrib/wpa/src/utils/crc32.h - copied unchanged from r341763, head/contrib/wpa/src/utils/crc32.h projects/clang700-import/contrib/wpa/src/utils/json.c - copied unchanged from r341763, head/contrib/wpa/src/utils/json.c projects/clang700-import/contrib/wpa/src/utils/json.h - copied unchanged from r341763, head/contrib/wpa/src/utils/json.h projects/clang700-import/contrib/wpa/wpa_supplicant/dpp_supplicant.c - copied unchanged from r341763, head/contrib/wpa/wpa_supplicant/dpp_supplicant.c projects/clang700-import/contrib/wpa/wpa_supplicant/dpp_supplicant.h - copied unchanged from r341763, head/contrib/wpa/wpa_supplicant/dpp_supplicant.h projects/clang700-import/contrib/wpa/wpa_supplicant/examples/dpp-qrcode.py - copied unchanged from r341763, head/contrib/wpa/wpa_supplicant/examples/dpp-qrcode.py projects/clang700-import/contrib/wpa/wpa_supplicant/op_classes.c - copied unchanged from r341763, head/contrib/wpa/wpa_supplicant/op_classes.c projects/clang700-import/contrib/wpa/wpa_supplicant/rrm.c - copied unchanged from r341763, head/contrib/wpa/wpa_supplicant/rrm.c projects/clang700-import/lib/libc/sys/fhlink.2 - copied unchanged from r341763, head/lib/libc/sys/fhlink.2 projects/clang700-import/lib/libc/sys/fhreadlink.2 - copied unchanged from r341763, head/lib/libc/sys/fhreadlink.2 projects/clang700-import/release/arm64/PINEBOOK.conf - copied unchanged from r341763, head/release/arm64/PINEBOOK.conf projects/clang700-import/sbin/nvmecontrol/modules/ - copied from r341763, head/sbin/nvmecontrol/modules/ projects/clang700-import/share/monetdef/ga_IE.UTF-8.src - copied unchanged from r341763, head/share/monetdef/ga_IE.UTF-8.src projects/clang700-import/share/msgdef/ga_IE.UTF-8.src - copied unchanged from r341763, head/share/msgdef/ga_IE.UTF-8.src projects/clang700-import/share/timedef/ga_IE.UTF-8.src - copied unchanged from r341763, head/share/timedef/ga_IE.UTF-8.src projects/clang700-import/stand/i386/btx/lib/btxsys.S - copied unchanged from r341763, head/stand/i386/btx/lib/btxsys.S projects/clang700-import/stand/i386/btx/lib/btxv86.S - copied unchanged from r341763, head/stand/i386/btx/lib/btxv86.S projects/clang700-import/stand/i386/kgzldr/crt.S - copied unchanged from r341763, head/stand/i386/kgzldr/crt.S projects/clang700-import/stand/i386/kgzldr/sio.S - copied unchanged from r341763, head/stand/i386/kgzldr/sio.S projects/clang700-import/stand/i386/kgzldr/start.S - copied unchanged from r341763, head/stand/i386/kgzldr/start.S projects/clang700-import/stand/i386/libi386/pxetramp.S - copied unchanged from r341763, head/stand/i386/libi386/pxetramp.S projects/clang700-import/stand/i386/mbr/mbr.S - copied unchanged from r341763, head/stand/i386/mbr/mbr.S projects/clang700-import/stand/i386/pmbr/pmbr.S - copied unchanged from r341763, head/stand/i386/pmbr/pmbr.S projects/clang700-import/sys/arm64/rockchip/clk/rk3399_cru.c - copied unchanged from r341763, head/sys/arm64/rockchip/clk/rk3399_cru.c projects/clang700-import/sys/arm64/rockchip/clk/rk3399_pmucru.c - copied unchanged from r341763, head/sys/arm64/rockchip/clk/rk3399_pmucru.c projects/clang700-import/sys/arm64/rockchip/rk805.c - copied unchanged from r341763, head/sys/arm64/rockchip/rk805.c projects/clang700-import/sys/arm64/rockchip/rk805reg.h - copied unchanged from r341763, head/sys/arm64/rockchip/rk805reg.h projects/clang700-import/sys/dev/acpica/acpi_pxm.c - copied unchanged from r341763, head/sys/dev/acpica/acpi_pxm.c projects/clang700-import/sys/dev/cxgbe/t4_clip.c - copied unchanged from r341763, head/sys/dev/cxgbe/t4_clip.c projects/clang700-import/sys/dev/cxgbe/t4_clip.h - copied unchanged from r341763, head/sys/dev/cxgbe/t4_clip.h projects/clang700-import/sys/dev/iicbus/syr827.c - copied unchanged from r341763, head/sys/dev/iicbus/syr827.c projects/clang700-import/sys/dev/mlx5/mlx5_accel/ - copied from r341763, head/sys/dev/mlx5/mlx5_accel/ projects/clang700-import/sys/dev/mlx5/mlx5_fpga/ - copied from r341763, head/sys/dev/mlx5/mlx5_fpga/ projects/clang700-import/sys/dev/mlx5/mlx5_fpga_tools/ - copied from r341763, head/sys/dev/mlx5/mlx5_fpga_tools/ projects/clang700-import/sys/dev/mlx5/mlx5_lib/ - copied from r341763, head/sys/dev/mlx5/mlx5_lib/ projects/clang700-import/sys/dev/netmap/netmap_kloop.c - copied unchanged from r341763, head/sys/dev/netmap/netmap_kloop.c projects/clang700-import/sys/dev/netmap/netmap_null.c - copied unchanged from r341763, head/sys/dev/netmap/netmap_null.c projects/clang700-import/sys/dev/sfxge/common/ef10_image.c - copied unchanged from r341763, head/sys/dev/sfxge/common/ef10_image.c projects/clang700-import/sys/dev/sfxge/common/ef10_signed_image_layout.h - copied unchanged from r341763, head/sys/dev/sfxge/common/ef10_signed_image_layout.h projects/clang700-import/sys/dev/sfxge/common/efx_annote.h - copied unchanged from r341763, head/sys/dev/sfxge/common/efx_annote.h projects/clang700-import/sys/dev/sfxge/common/efx_regs_mcdi_aoe.h - copied unchanged from r341763, head/sys/dev/sfxge/common/efx_regs_mcdi_aoe.h projects/clang700-import/sys/dev/sfxge/common/efx_regs_mcdi_strs.h - copied unchanged from r341763, head/sys/dev/sfxge/common/efx_regs_mcdi_strs.h projects/clang700-import/sys/dev/sfxge/common/efx_tunnel.c - copied unchanged from r341763, head/sys/dev/sfxge/common/efx_tunnel.c projects/clang700-import/sys/dev/sfxge/common/medford2_impl.h - copied unchanged from r341763, head/sys/dev/sfxge/common/medford2_impl.h projects/clang700-import/sys/dev/sfxge/common/medford2_nic.c - copied unchanged from r341763, head/sys/dev/sfxge/common/medford2_nic.c projects/clang700-import/sys/dts/arm64/overlays/sun50i-a64-opp.dtso - copied unchanged from r341763, head/sys/dts/arm64/overlays/sun50i-a64-opp.dtso projects/clang700-import/sys/modules/dtb/rockchip/ - copied from r341763, head/sys/modules/dtb/rockchip/ projects/clang700-import/sys/modules/mlx5fpga_tools/ - copied from r341763, head/sys/modules/mlx5fpga_tools/ projects/clang700-import/sys/modules/rockchip/rk805/ - copied from r341763, head/sys/modules/rockchip/rk805/ projects/clang700-import/tests/sys/geom/class/mirror/component_selection.sh - copied unchanged from r341763, head/tests/sys/geom/class/mirror/component_selection.sh projects/clang700-import/tests/sys/kern/sigaltstack.c - copied unchanged from r341763, head/tests/sys/kern/sigaltstack.c projects/clang700-import/tests/sys/netpfil/pf/names.sh - copied unchanged from r341763, head/tests/sys/netpfil/pf/names.sh projects/clang700-import/usr.bin/clang/llvm-objdump/llvm-objdump.1 - copied unchanged from r341763, head/usr.bin/clang/llvm-objdump/llvm-objdump.1 projects/clang700-import/usr.bin/truss/riscv-freebsd.c - copied unchanged from r341763, head/usr.bin/truss/riscv-freebsd.c Deleted: projects/clang700-import/contrib/wpa/src/ap/peerkey_auth.c projects/clang700-import/contrib/wpa/src/rsn_supp/peerkey.c projects/clang700-import/contrib/wpa/src/rsn_supp/peerkey.h projects/clang700-import/sbin/nvmecontrol/wdc.c projects/clang700-import/share/monetdef/en_IE.UTF-8.src projects/clang700-import/stand/i386/btx/lib/btxsys.s projects/clang700-import/stand/i386/btx/lib/btxv86.s projects/clang700-import/stand/i386/kgzldr/crt.s projects/clang700-import/stand/i386/kgzldr/sio.s projects/clang700-import/stand/i386/kgzldr/start.s projects/clang700-import/stand/i386/libi386/bioscd.c projects/clang700-import/stand/i386/libi386/pxetramp.s projects/clang700-import/stand/i386/mbr/mbr.s projects/clang700-import/stand/i386/pmbr/pmbr.s projects/clang700-import/sys/dev/netmap/if_em_netmap.h projects/clang700-import/sys/dev/netmap/if_igb_netmap.h projects/clang700-import/sys/dev/netmap/if_ixl_netmap.h projects/clang700-import/sys/dev/netmap/if_lem_netmap.h projects/clang700-import/sys/dev/netmap/ixgbe_netmap.h projects/clang700-import/sys/net/altq/altq_cdnr.c projects/clang700-import/tools/KSE/ projects/clang700-import/usr.bin/truss/riscv64-freebsd.c Modified: projects/clang700-import/Makefile.inc1 projects/clang700-import/ObsoleteFiles.inc projects/clang700-import/UPDATING projects/clang700-import/bin/dd/dd.c projects/clang700-import/bin/dd/dd.h projects/clang700-import/bin/pkill/pkill.1 projects/clang700-import/bin/sh/expand.c projects/clang700-import/bin/sh/input.c projects/clang700-import/bin/sh/sh.1 projects/clang700-import/bin/sh/tests/errors/Makefile projects/clang700-import/bin/sh/tests/expansion/Makefile projects/clang700-import/contrib/bmake/ChangeLog projects/clang700-import/contrib/bmake/FILES projects/clang700-import/contrib/bmake/Makefile.config.in projects/clang700-import/contrib/bmake/VERSION projects/clang700-import/contrib/bmake/bmake.1 projects/clang700-import/contrib/bmake/dir.c projects/clang700-import/contrib/bmake/make.1 projects/clang700-import/contrib/bmake/mk/ChangeLog projects/clang700-import/contrib/bmake/mk/dirdeps-options.mk projects/clang700-import/contrib/bmake/mk/dirdeps.mk projects/clang700-import/contrib/bmake/mk/gendirdeps.mk projects/clang700-import/contrib/bmake/mk/install-mk projects/clang700-import/contrib/bmake/mk/meta.autodep.mk projects/clang700-import/contrib/bmake/mk/meta.stage.mk projects/clang700-import/contrib/bmake/unit-tests/Makefile.in projects/clang700-import/contrib/bmake/var.c projects/clang700-import/contrib/ipfilter/ip_fil.c projects/clang700-import/contrib/ipfilter/ipsend/ip.c projects/clang700-import/contrib/ipfilter/ipsend/resend.c projects/clang700-import/contrib/libarchive/libarchive/archive_acl.c projects/clang700-import/contrib/libarchive/libarchive/archive_write_disk_posix.c projects/clang700-import/contrib/libarchive/libarchive/test/test_extattr_freebsd.c projects/clang700-import/contrib/libarchive/libarchive/test/test_read_format_rar5.c projects/clang700-import/contrib/nvi/common/encoding.c projects/clang700-import/contrib/ofed/libibverbs/sysfs.c projects/clang700-import/contrib/ofed/opensm/opensm/main.c projects/clang700-import/contrib/openbsm/bin/auditdistd/trail.c projects/clang700-import/contrib/wpa/CONTRIBUTIONS projects/clang700-import/contrib/wpa/COPYING projects/clang700-import/contrib/wpa/README projects/clang700-import/contrib/wpa/hostapd/ChangeLog projects/clang700-import/contrib/wpa/hostapd/README projects/clang700-import/contrib/wpa/hostapd/config_file.c projects/clang700-import/contrib/wpa/hostapd/config_file.h projects/clang700-import/contrib/wpa/hostapd/ctrl_iface.c projects/clang700-import/contrib/wpa/hostapd/defconfig projects/clang700-import/contrib/wpa/hostapd/hlr_auc_gw.c projects/clang700-import/contrib/wpa/hostapd/hostapd.conf projects/clang700-import/contrib/wpa/hostapd/hostapd.eap_user_sqlite projects/clang700-import/contrib/wpa/hostapd/hostapd_cli.c projects/clang700-import/contrib/wpa/hostapd/main.c projects/clang700-import/contrib/wpa/hs20/client/est.c projects/clang700-import/contrib/wpa/hs20/client/oma_dm_client.c projects/clang700-import/contrib/wpa/hs20/client/osu_client.c projects/clang700-import/contrib/wpa/hs20/client/osu_client.h projects/clang700-import/contrib/wpa/src/ap/acs.c projects/clang700-import/contrib/wpa/src/ap/acs.h projects/clang700-import/contrib/wpa/src/ap/ap_config.c projects/clang700-import/contrib/wpa/src/ap/ap_config.h projects/clang700-import/contrib/wpa/src/ap/ap_drv_ops.c projects/clang700-import/contrib/wpa/src/ap/ap_drv_ops.h projects/clang700-import/contrib/wpa/src/ap/ap_mlme.c projects/clang700-import/contrib/wpa/src/ap/authsrv.c projects/clang700-import/contrib/wpa/src/ap/beacon.c projects/clang700-import/contrib/wpa/src/ap/beacon.h projects/clang700-import/contrib/wpa/src/ap/bss_load.c projects/clang700-import/contrib/wpa/src/ap/ctrl_iface_ap.c projects/clang700-import/contrib/wpa/src/ap/ctrl_iface_ap.h projects/clang700-import/contrib/wpa/src/ap/dfs.c projects/clang700-import/contrib/wpa/src/ap/dfs.h projects/clang700-import/contrib/wpa/src/ap/dhcp_snoop.c projects/clang700-import/contrib/wpa/src/ap/drv_callbacks.c projects/clang700-import/contrib/wpa/src/ap/eap_user_db.c projects/clang700-import/contrib/wpa/src/ap/gas_serv.c projects/clang700-import/contrib/wpa/src/ap/gas_serv.h projects/clang700-import/contrib/wpa/src/ap/hostapd.c projects/clang700-import/contrib/wpa/src/ap/hostapd.h projects/clang700-import/contrib/wpa/src/ap/hs20.c projects/clang700-import/contrib/wpa/src/ap/hs20.h projects/clang700-import/contrib/wpa/src/ap/hw_features.c projects/clang700-import/contrib/wpa/src/ap/ieee802_11.c projects/clang700-import/contrib/wpa/src/ap/ieee802_11.h projects/clang700-import/contrib/wpa/src/ap/ieee802_11_auth.c projects/clang700-import/contrib/wpa/src/ap/ieee802_11_auth.h projects/clang700-import/contrib/wpa/src/ap/ieee802_11_ht.c projects/clang700-import/contrib/wpa/src/ap/ieee802_11_shared.c projects/clang700-import/contrib/wpa/src/ap/ieee802_11_vht.c projects/clang700-import/contrib/wpa/src/ap/ieee802_1x.c projects/clang700-import/contrib/wpa/src/ap/ieee802_1x.h projects/clang700-import/contrib/wpa/src/ap/ndisc_snoop.c projects/clang700-import/contrib/wpa/src/ap/neighbor_db.c projects/clang700-import/contrib/wpa/src/ap/neighbor_db.h projects/clang700-import/contrib/wpa/src/ap/pmksa_cache_auth.c projects/clang700-import/contrib/wpa/src/ap/pmksa_cache_auth.h projects/clang700-import/contrib/wpa/src/ap/rrm.c projects/clang700-import/contrib/wpa/src/ap/rrm.h projects/clang700-import/contrib/wpa/src/ap/sta_info.c projects/clang700-import/contrib/wpa/src/ap/sta_info.h projects/clang700-import/contrib/wpa/src/ap/taxonomy.c projects/clang700-import/contrib/wpa/src/ap/tkip_countermeasures.c projects/clang700-import/contrib/wpa/src/ap/vlan_init.c projects/clang700-import/contrib/wpa/src/ap/wmm.c projects/clang700-import/contrib/wpa/src/ap/wnm_ap.c projects/clang700-import/contrib/wpa/src/ap/wnm_ap.h projects/clang700-import/contrib/wpa/src/ap/wpa_auth.c projects/clang700-import/contrib/wpa/src/ap/wpa_auth.h projects/clang700-import/contrib/wpa/src/ap/wpa_auth_ft.c projects/clang700-import/contrib/wpa/src/ap/wpa_auth_glue.c projects/clang700-import/contrib/wpa/src/ap/wpa_auth_i.h projects/clang700-import/contrib/wpa/src/ap/wpa_auth_ie.c projects/clang700-import/contrib/wpa/src/ap/wpa_auth_ie.h projects/clang700-import/contrib/wpa/src/ap/wps_hostapd.c projects/clang700-import/contrib/wpa/src/common/common_module_tests.c projects/clang700-import/contrib/wpa/src/common/ctrl_iface_common.c projects/clang700-import/contrib/wpa/src/common/ctrl_iface_common.h projects/clang700-import/contrib/wpa/src/common/defs.h projects/clang700-import/contrib/wpa/src/common/gas.c projects/clang700-import/contrib/wpa/src/common/gas.h projects/clang700-import/contrib/wpa/src/common/hw_features_common.c projects/clang700-import/contrib/wpa/src/common/hw_features_common.h projects/clang700-import/contrib/wpa/src/common/ieee802_11_common.c projects/clang700-import/contrib/wpa/src/common/ieee802_11_common.h projects/clang700-import/contrib/wpa/src/common/ieee802_11_defs.h projects/clang700-import/contrib/wpa/src/common/ieee802_1x_defs.h projects/clang700-import/contrib/wpa/src/common/privsep_commands.h projects/clang700-import/contrib/wpa/src/common/qca-vendor.h projects/clang700-import/contrib/wpa/src/common/sae.c projects/clang700-import/contrib/wpa/src/common/sae.h projects/clang700-import/contrib/wpa/src/common/version.h projects/clang700-import/contrib/wpa/src/common/wpa_common.c projects/clang700-import/contrib/wpa/src/common/wpa_common.h projects/clang700-import/contrib/wpa/src/common/wpa_ctrl.h projects/clang700-import/contrib/wpa/src/common/wpa_helpers.c projects/clang700-import/contrib/wpa/src/crypto/aes-ctr.c projects/clang700-import/contrib/wpa/src/crypto/aes-internal-dec.c projects/clang700-import/contrib/wpa/src/crypto/aes-internal-enc.c projects/clang700-import/contrib/wpa/src/crypto/aes-siv.c projects/clang700-import/contrib/wpa/src/crypto/aes.h projects/clang700-import/contrib/wpa/src/crypto/aes_siv.h projects/clang700-import/contrib/wpa/src/crypto/aes_wrap.h projects/clang700-import/contrib/wpa/src/crypto/crypto.h projects/clang700-import/contrib/wpa/src/crypto/crypto_gnutls.c projects/clang700-import/contrib/wpa/src/crypto/crypto_internal-modexp.c projects/clang700-import/contrib/wpa/src/crypto/crypto_libtomcrypt.c projects/clang700-import/contrib/wpa/src/crypto/crypto_module_tests.c projects/clang700-import/contrib/wpa/src/crypto/crypto_none.c projects/clang700-import/contrib/wpa/src/crypto/crypto_openssl.c projects/clang700-import/contrib/wpa/src/crypto/des-internal.c projects/clang700-import/contrib/wpa/src/crypto/dh_groups.c projects/clang700-import/contrib/wpa/src/crypto/ms_funcs.c projects/clang700-import/contrib/wpa/src/crypto/ms_funcs.h projects/clang700-import/contrib/wpa/src/crypto/random.c projects/clang700-import/contrib/wpa/src/crypto/sha1-internal.c projects/clang700-import/contrib/wpa/src/crypto/sha256-internal.c projects/clang700-import/contrib/wpa/src/crypto/sha256-kdf.c projects/clang700-import/contrib/wpa/src/crypto/sha384-prf.c projects/clang700-import/contrib/wpa/src/crypto/sha384.h projects/clang700-import/contrib/wpa/src/crypto/tls.h projects/clang700-import/contrib/wpa/src/crypto/tls_gnutls.c projects/clang700-import/contrib/wpa/src/crypto/tls_internal.c projects/clang700-import/contrib/wpa/src/crypto/tls_none.c projects/clang700-import/contrib/wpa/src/crypto/tls_openssl.c projects/clang700-import/contrib/wpa/src/drivers/driver.h projects/clang700-import/contrib/wpa/src/drivers/driver_common.c projects/clang700-import/contrib/wpa/src/drivers/driver_macsec_qca.c projects/clang700-import/contrib/wpa/src/drivers/driver_ndis.c projects/clang700-import/contrib/wpa/src/drivers/driver_nl80211.h projects/clang700-import/contrib/wpa/src/drivers/driver_nl80211_capa.c projects/clang700-import/contrib/wpa/src/drivers/driver_nl80211_event.c projects/clang700-import/contrib/wpa/src/drivers/driver_nl80211_monitor.c projects/clang700-import/contrib/wpa/src/drivers/driver_nl80211_scan.c projects/clang700-import/contrib/wpa/src/drivers/driver_privsep.c projects/clang700-import/contrib/wpa/src/drivers/driver_wired.c projects/clang700-import/contrib/wpa/src/drivers/drivers.c projects/clang700-import/contrib/wpa/src/eap_common/eap_eke_common.c projects/clang700-import/contrib/wpa/src/eap_common/eap_fast_common.c projects/clang700-import/contrib/wpa/src/eap_common/eap_pwd_common.c projects/clang700-import/contrib/wpa/src/eap_common/eap_pwd_common.h projects/clang700-import/contrib/wpa/src/eap_common/eap_sim_common.c projects/clang700-import/contrib/wpa/src/eap_peer/eap.c projects/clang700-import/contrib/wpa/src/eap_peer/eap.h projects/clang700-import/contrib/wpa/src/eap_peer/eap_aka.c projects/clang700-import/contrib/wpa/src/eap_peer/eap_config.h projects/clang700-import/contrib/wpa/src/eap_peer/eap_eke.c projects/clang700-import/contrib/wpa/src/eap_peer/eap_fast.c projects/clang700-import/contrib/wpa/src/eap_peer/eap_fast_pac.c projects/clang700-import/contrib/wpa/src/eap_peer/eap_gpsk.c projects/clang700-import/contrib/wpa/src/eap_peer/eap_i.h projects/clang700-import/contrib/wpa/src/eap_peer/eap_ikev2.c projects/clang700-import/contrib/wpa/src/eap_peer/eap_leap.c projects/clang700-import/contrib/wpa/src/eap_peer/eap_mschapv2.c projects/clang700-import/contrib/wpa/src/eap_peer/eap_pax.c projects/clang700-import/contrib/wpa/src/eap_peer/eap_peap.c projects/clang700-import/contrib/wpa/src/eap_peer/eap_proxy.h projects/clang700-import/contrib/wpa/src/eap_peer/eap_proxy_dummy.c projects/clang700-import/contrib/wpa/src/eap_peer/eap_psk.c projects/clang700-import/contrib/wpa/src/eap_peer/eap_pwd.c projects/clang700-import/contrib/wpa/src/eap_peer/eap_sake.c projects/clang700-import/contrib/wpa/src/eap_peer/eap_sim.c projects/clang700-import/contrib/wpa/src/eap_peer/eap_tls.c projects/clang700-import/contrib/wpa/src/eap_peer/eap_tls_common.c projects/clang700-import/contrib/wpa/src/eap_peer/eap_tls_common.h projects/clang700-import/contrib/wpa/src/eap_peer/eap_ttls.c projects/clang700-import/contrib/wpa/src/eap_peer/ikev2.c projects/clang700-import/contrib/wpa/src/eap_peer/tncc.c projects/clang700-import/contrib/wpa/src/eap_server/eap.h projects/clang700-import/contrib/wpa/src/eap_server/eap_i.h projects/clang700-import/contrib/wpa/src/eap_server/eap_server.c projects/clang700-import/contrib/wpa/src/eap_server/eap_server_aka.c projects/clang700-import/contrib/wpa/src/eap_server/eap_server_eke.c projects/clang700-import/contrib/wpa/src/eap_server/eap_server_fast.c projects/clang700-import/contrib/wpa/src/eap_server/eap_server_gpsk.c projects/clang700-import/contrib/wpa/src/eap_server/eap_server_gtc.c projects/clang700-import/contrib/wpa/src/eap_server/eap_server_ikev2.c projects/clang700-import/contrib/wpa/src/eap_server/eap_server_mschapv2.c projects/clang700-import/contrib/wpa/src/eap_server/eap_server_pax.c projects/clang700-import/contrib/wpa/src/eap_server/eap_server_psk.c projects/clang700-import/contrib/wpa/src/eap_server/eap_server_pwd.c projects/clang700-import/contrib/wpa/src/eap_server/eap_server_sake.c projects/clang700-import/contrib/wpa/src/eap_server/eap_server_sim.c projects/clang700-import/contrib/wpa/src/eap_server/eap_server_tls.c projects/clang700-import/contrib/wpa/src/eap_server/eap_server_tls_common.c projects/clang700-import/contrib/wpa/src/eap_server/eap_server_ttls.c projects/clang700-import/contrib/wpa/src/eap_server/eap_server_wsc.c projects/clang700-import/contrib/wpa/src/eap_server/eap_tls_common.h projects/clang700-import/contrib/wpa/src/eap_server/ikev2.c projects/clang700-import/contrib/wpa/src/eap_server/tncs.c projects/clang700-import/contrib/wpa/src/eapol_auth/eapol_auth_sm.c projects/clang700-import/contrib/wpa/src/eapol_auth/eapol_auth_sm.h projects/clang700-import/contrib/wpa/src/eapol_supp/eapol_supp_sm.c projects/clang700-import/contrib/wpa/src/eapol_supp/eapol_supp_sm.h projects/clang700-import/contrib/wpa/src/fst/fst_ctrl_aux.h projects/clang700-import/contrib/wpa/src/fst/fst_ctrl_iface.c projects/clang700-import/contrib/wpa/src/fst/fst_group.c projects/clang700-import/contrib/wpa/src/fst/fst_iface.h projects/clang700-import/contrib/wpa/src/fst/fst_session.c projects/clang700-import/contrib/wpa/src/l2_packet/l2_packet.h projects/clang700-import/contrib/wpa/src/l2_packet/l2_packet_privsep.c projects/clang700-import/contrib/wpa/src/p2p/p2p.c projects/clang700-import/contrib/wpa/src/p2p/p2p.h projects/clang700-import/contrib/wpa/src/p2p/p2p_go_neg.c projects/clang700-import/contrib/wpa/src/p2p/p2p_group.c projects/clang700-import/contrib/wpa/src/p2p/p2p_i.h projects/clang700-import/contrib/wpa/src/p2p/p2p_pd.c projects/clang700-import/contrib/wpa/src/p2p/p2p_sd.c projects/clang700-import/contrib/wpa/src/pae/ieee802_1x_cp.c projects/clang700-import/contrib/wpa/src/pae/ieee802_1x_kay.c projects/clang700-import/contrib/wpa/src/pae/ieee802_1x_kay.h projects/clang700-import/contrib/wpa/src/pae/ieee802_1x_kay_i.h projects/clang700-import/contrib/wpa/src/pae/ieee802_1x_secy_ops.c projects/clang700-import/contrib/wpa/src/pae/ieee802_1x_secy_ops.h projects/clang700-import/contrib/wpa/src/radius/radius.c projects/clang700-import/contrib/wpa/src/radius/radius.h projects/clang700-import/contrib/wpa/src/radius/radius_client.c projects/clang700-import/contrib/wpa/src/radius/radius_das.c projects/clang700-import/contrib/wpa/src/radius/radius_das.h projects/clang700-import/contrib/wpa/src/radius/radius_server.c projects/clang700-import/contrib/wpa/src/radius/radius_server.h projects/clang700-import/contrib/wpa/src/rsn_supp/pmksa_cache.c projects/clang700-import/contrib/wpa/src/rsn_supp/pmksa_cache.h projects/clang700-import/contrib/wpa/src/rsn_supp/preauth.c projects/clang700-import/contrib/wpa/src/rsn_supp/tdls.c projects/clang700-import/contrib/wpa/src/rsn_supp/wpa.c projects/clang700-import/contrib/wpa/src/rsn_supp/wpa.h projects/clang700-import/contrib/wpa/src/rsn_supp/wpa_ft.c projects/clang700-import/contrib/wpa/src/rsn_supp/wpa_i.h projects/clang700-import/contrib/wpa/src/rsn_supp/wpa_ie.c projects/clang700-import/contrib/wpa/src/rsn_supp/wpa_ie.h projects/clang700-import/contrib/wpa/src/tls/libtommath.c projects/clang700-import/contrib/wpa/src/tls/rsa.c projects/clang700-import/contrib/wpa/src/tls/tlsv1_client.c projects/clang700-import/contrib/wpa/src/tls/tlsv1_client_read.c projects/clang700-import/contrib/wpa/src/tls/tlsv1_common.c projects/clang700-import/contrib/wpa/src/tls/tlsv1_cred.c projects/clang700-import/contrib/wpa/src/tls/tlsv1_server.c projects/clang700-import/contrib/wpa/src/tls/x509v3.c projects/clang700-import/contrib/wpa/src/utils/base64.c projects/clang700-import/contrib/wpa/src/utils/base64.h projects/clang700-import/contrib/wpa/src/utils/browser-wpadebug.c projects/clang700-import/contrib/wpa/src/utils/common.c projects/clang700-import/contrib/wpa/src/utils/common.h projects/clang700-import/contrib/wpa/src/utils/eloop.h projects/clang700-import/contrib/wpa/src/utils/http_curl.c projects/clang700-import/contrib/wpa/src/utils/os.h projects/clang700-import/contrib/wpa/src/utils/os_none.c projects/clang700-import/contrib/wpa/src/utils/os_unix.c projects/clang700-import/contrib/wpa/src/utils/os_win32.c projects/clang700-import/contrib/wpa/src/utils/trace.c projects/clang700-import/contrib/wpa/src/utils/utils_module_tests.c projects/clang700-import/contrib/wpa/src/utils/uuid.c projects/clang700-import/contrib/wpa/src/utils/uuid.h projects/clang700-import/contrib/wpa/src/utils/wpa_debug.c projects/clang700-import/contrib/wpa/src/utils/wpa_debug.h projects/clang700-import/contrib/wpa/src/utils/wpabuf.c projects/clang700-import/contrib/wpa/src/utils/xml-utils.c projects/clang700-import/contrib/wpa/src/wps/wps.c projects/clang700-import/contrib/wpa/src/wps/wps_common.c projects/clang700-import/contrib/wpa/src/wps/wps_er.c projects/clang700-import/contrib/wpa/src/wps/wps_registrar.c projects/clang700-import/contrib/wpa/wpa_supplicant/Android.mk projects/clang700-import/contrib/wpa/wpa_supplicant/ChangeLog projects/clang700-import/contrib/wpa/wpa_supplicant/README projects/clang700-import/contrib/wpa/wpa_supplicant/README-HS20 projects/clang700-import/contrib/wpa/wpa_supplicant/android.config projects/clang700-import/contrib/wpa/wpa_supplicant/ap.c projects/clang700-import/contrib/wpa/wpa_supplicant/ap.h projects/clang700-import/contrib/wpa/wpa_supplicant/autoscan.c projects/clang700-import/contrib/wpa/wpa_supplicant/bgscan.c projects/clang700-import/contrib/wpa/wpa_supplicant/bgscan_learn.c projects/clang700-import/contrib/wpa/wpa_supplicant/bgscan_simple.c projects/clang700-import/contrib/wpa/wpa_supplicant/bss.c projects/clang700-import/contrib/wpa/wpa_supplicant/bss.h projects/clang700-import/contrib/wpa/wpa_supplicant/config.c projects/clang700-import/contrib/wpa/wpa_supplicant/config.h projects/clang700-import/contrib/wpa/wpa_supplicant/config_file.c projects/clang700-import/contrib/wpa/wpa_supplicant/config_ssid.h projects/clang700-import/contrib/wpa/wpa_supplicant/ctrl_iface.c projects/clang700-import/contrib/wpa/wpa_supplicant/ctrl_iface_named_pipe.c projects/clang700-import/contrib/wpa/wpa_supplicant/ctrl_iface_udp.c projects/clang700-import/contrib/wpa/wpa_supplicant/ctrl_iface_unix.c projects/clang700-import/contrib/wpa/wpa_supplicant/dbus/dbus_new.c projects/clang700-import/contrib/wpa/wpa_supplicant/dbus/dbus_new.h projects/clang700-import/contrib/wpa/wpa_supplicant/dbus/dbus_new_handlers.c projects/clang700-import/contrib/wpa/wpa_supplicant/dbus/dbus_new_handlers.h projects/clang700-import/contrib/wpa/wpa_supplicant/dbus/dbus_new_handlers_p2p.c projects/clang700-import/contrib/wpa/wpa_supplicant/dbus/dbus_new_handlers_wps.c projects/clang700-import/contrib/wpa/wpa_supplicant/defconfig projects/clang700-import/contrib/wpa/wpa_supplicant/driver_i.h projects/clang700-import/contrib/wpa/wpa_supplicant/events.c projects/clang700-import/contrib/wpa/wpa_supplicant/examples/wps-ap-cli projects/clang700-import/contrib/wpa/wpa_supplicant/gas_query.c projects/clang700-import/contrib/wpa/wpa_supplicant/gas_query.h projects/clang700-import/contrib/wpa/wpa_supplicant/hs20_supplicant.c projects/clang700-import/contrib/wpa/wpa_supplicant/hs20_supplicant.h projects/clang700-import/contrib/wpa/wpa_supplicant/ibss_rsn.c projects/clang700-import/contrib/wpa/wpa_supplicant/interworking.c projects/clang700-import/contrib/wpa/wpa_supplicant/interworking.h projects/clang700-import/contrib/wpa/wpa_supplicant/mbo.c projects/clang700-import/contrib/wpa/wpa_supplicant/mesh.c projects/clang700-import/contrib/wpa/wpa_supplicant/mesh_mpm.c projects/clang700-import/contrib/wpa/wpa_supplicant/mesh_rsn.c projects/clang700-import/contrib/wpa/wpa_supplicant/notify.c projects/clang700-import/contrib/wpa/wpa_supplicant/notify.h projects/clang700-import/contrib/wpa/wpa_supplicant/offchannel.c projects/clang700-import/contrib/wpa/wpa_supplicant/p2p_supplicant.c projects/clang700-import/contrib/wpa/wpa_supplicant/preauth_test.c projects/clang700-import/contrib/wpa/wpa_supplicant/scan.c projects/clang700-import/contrib/wpa/wpa_supplicant/sme.c projects/clang700-import/contrib/wpa/wpa_supplicant/sme.h projects/clang700-import/contrib/wpa/wpa_supplicant/wifi_display.c projects/clang700-import/contrib/wpa/wpa_supplicant/wmm_ac.c projects/clang700-import/contrib/wpa/wpa_supplicant/wnm_sta.c projects/clang700-import/contrib/wpa/wpa_supplicant/wnm_sta.h projects/clang700-import/contrib/wpa/wpa_supplicant/wpa_cli.c projects/clang700-import/contrib/wpa/wpa_supplicant/wpa_passphrase.c projects/clang700-import/contrib/wpa/wpa_supplicant/wpa_priv.c projects/clang700-import/contrib/wpa/wpa_supplicant/wpa_supplicant.c projects/clang700-import/contrib/wpa/wpa_supplicant/wpa_supplicant.conf projects/clang700-import/contrib/wpa/wpa_supplicant/wpa_supplicant_i.h projects/clang700-import/contrib/wpa/wpa_supplicant/wpa_supplicant_template.conf projects/clang700-import/contrib/wpa/wpa_supplicant/wpas_glue.c projects/clang700-import/contrib/wpa/wpa_supplicant/wpas_kay.c projects/clang700-import/contrib/wpa/wpa_supplicant/wpas_kay.h projects/clang700-import/contrib/wpa/wpa_supplicant/wps_supplicant.c projects/clang700-import/etc/mtree/BSD.debug.dist projects/clang700-import/etc/mtree/BSD.root.dist projects/clang700-import/etc/mtree/BSD.usr.dist projects/clang700-import/gnu/usr.bin/binutils/Makefile projects/clang700-import/lib/geom/part/geom_part.c projects/clang700-import/lib/geom/part/gpart.8 projects/clang700-import/lib/libc/amd64/Symbol.map projects/clang700-import/lib/libc/amd64/string/memmove.S projects/clang700-import/lib/libc/arm/Symbol.map projects/clang700-import/lib/libc/gen/elf_utils.c projects/clang700-import/lib/libc/gen/syslog.3 projects/clang700-import/lib/libc/i386/Symbol.map projects/clang700-import/lib/libc/mips/Symbol.map projects/clang700-import/lib/libc/net/nscachedcli.c projects/clang700-import/lib/libc/powerpc/Symbol.map projects/clang700-import/lib/libc/powerpc64/Symbol.map projects/clang700-import/lib/libc/sparc64/Symbol.map projects/clang700-import/lib/libc/sys/Makefile.inc projects/clang700-import/lib/libc/sys/Symbol.map projects/clang700-import/lib/libc/sys/getfh.2 projects/clang700-import/lib/libc/sys/stat.2 projects/clang700-import/lib/libcasper/services/cap_fileargs/cap_fileargs.c projects/clang700-import/lib/libcasper/services/cap_syslog/cap_syslog.c projects/clang700-import/lib/libedit/chartype.c projects/clang700-import/lib/libedit/chartype.h projects/clang700-import/lib/libedit/el.c projects/clang700-import/lib/libedit/el.h projects/clang700-import/lib/libedit/read.c projects/clang700-import/lib/libfetch/common.c projects/clang700-import/lib/libfetch/fetch.c projects/clang700-import/lib/libfetch/ftp.c projects/clang700-import/lib/libfetch/http.c projects/clang700-import/lib/libopenbsd/Makefile projects/clang700-import/lib/libprocstat/libprocstat.c projects/clang700-import/lib/libprocstat/libprocstat.h projects/clang700-import/lib/libthr/Makefile projects/clang700-import/lib/libthr/thread/thr_create.c projects/clang700-import/lib/libthr/thread/thr_fork.c projects/clang700-import/lib/libthr/thread/thr_kern.c projects/clang700-import/lib/libthr/thread/thr_private.h projects/clang700-import/lib/libthr/thread/thr_spinlock.c projects/clang700-import/lib/libufs/libufs.3 projects/clang700-import/lib/libufs/libufs.h projects/clang700-import/lib/libufs/sblock.c projects/clang700-import/lib/libz/Makefile projects/clang700-import/lib/libz/Symbol.map projects/clang700-import/lib/libz/Versions.def projects/clang700-import/lib/libz/zopen.3 projects/clang700-import/lib/libz/zopen.c projects/clang700-import/libexec/rtld-elf/Makefile projects/clang700-import/libexec/rtld-elf/aarch64/reloc.c projects/clang700-import/libexec/rtld-elf/aarch64/rtld_start.S projects/clang700-import/libexec/rtld-elf/rtld.c projects/clang700-import/libexec/rtld-elf/rtld.h projects/clang700-import/release/amd64/mkisoimages.sh projects/clang700-import/release/arm64/PINE64-LTS.conf projects/clang700-import/release/arm64/PINE64.conf projects/clang700-import/release/tools/arm.subr projects/clang700-import/release/tools/gce.conf projects/clang700-import/sbin/bectl/bectl.c projects/clang700-import/sbin/dump/main.c projects/clang700-import/sbin/fsck_ffs/fsck.h projects/clang700-import/sbin/fsck_ffs/fsutil.c projects/clang700-import/sbin/fsck_ffs/inode.c projects/clang700-import/sbin/fsck_ffs/pass1.c projects/clang700-import/sbin/fsck_ffs/pass5.c projects/clang700-import/sbin/fsck_ffs/setup.c projects/clang700-import/sbin/fsirand/fsirand.c projects/clang700-import/sbin/ggate/ggated/ggated.c projects/clang700-import/sbin/growfs/growfs.c projects/clang700-import/sbin/ipfw/ipfw.8 projects/clang700-import/sbin/ipfw/ipfw2.c projects/clang700-import/sbin/ipfw/ipfw2.h projects/clang700-import/sbin/ipfw/main.c projects/clang700-import/sbin/nvmecontrol/Makefile projects/clang700-import/sbin/nvmecontrol/devlist.c projects/clang700-import/sbin/nvmecontrol/firmware.c projects/clang700-import/sbin/nvmecontrol/format.c projects/clang700-import/sbin/nvmecontrol/identify.c projects/clang700-import/sbin/nvmecontrol/logpage.c projects/clang700-import/sbin/nvmecontrol/ns.c projects/clang700-import/sbin/nvmecontrol/nvmecontrol.8 projects/clang700-import/sbin/nvmecontrol/nvmecontrol.c projects/clang700-import/sbin/nvmecontrol/nvmecontrol.h projects/clang700-import/sbin/nvmecontrol/perftest.c projects/clang700-import/sbin/nvmecontrol/power.c projects/clang700-import/sbin/nvmecontrol/reset.c projects/clang700-import/sbin/quotacheck/quotacheck.c projects/clang700-import/sbin/savecore/Makefile projects/clang700-import/share/colldef/Makefile projects/clang700-import/share/ctypedef/Makefile projects/clang700-import/share/man/man4/Makefile projects/clang700-import/share/man/man4/ddb.4 projects/clang700-import/share/man/man4/muge.4 projects/clang700-import/share/man/man4/netdump.4 projects/clang700-import/share/man/man4/netmap.4 projects/clang700-import/share/man/man4/nvme.4 projects/clang700-import/share/man/man4/pfsync.4 projects/clang700-import/share/man/man4/sfxge.4 projects/clang700-import/share/man/man4/textdump.4 projects/clang700-import/share/man/man4/vmci.4 projects/clang700-import/share/man/man4/vxlan.4 projects/clang700-import/share/man/man5/ext2fs.5 projects/clang700-import/share/man/man5/src.conf.5 projects/clang700-import/share/man/man7/build.7 projects/clang700-import/share/man/man7/development.7 projects/clang700-import/share/man/man7/hier.7 projects/clang700-import/share/misc/committers-ports.dot projects/clang700-import/share/mk/src.opts.mk projects/clang700-import/share/monetdef/Makefile projects/clang700-import/share/msgdef/Makefile projects/clang700-import/share/numericdef/Makefile projects/clang700-import/share/termcap/termcap projects/clang700-import/share/timedef/Makefile projects/clang700-import/stand/common/bcache.c projects/clang700-import/stand/common/interp_forth.c projects/clang700-import/stand/defs.mk projects/clang700-import/stand/efi/libefi/efi_console.c projects/clang700-import/stand/i386/btx/lib/Makefile projects/clang700-import/stand/i386/common/bootargs.h projects/clang700-import/stand/i386/gptboot/gptboot.c projects/clang700-import/stand/i386/kgzldr/Makefile projects/clang700-import/stand/i386/libi386/Makefile projects/clang700-import/stand/i386/libi386/biosdisk.c projects/clang700-import/stand/i386/libi386/bootinfo32.c projects/clang700-import/stand/i386/libi386/libi386.h projects/clang700-import/stand/i386/loader/chain.c projects/clang700-import/stand/i386/loader/conf.c projects/clang700-import/stand/i386/loader/main.c projects/clang700-import/stand/i386/mbr/Makefile projects/clang700-import/stand/i386/pmbr/Makefile projects/clang700-import/stand/i386/pxeldr/pxeboot.8 projects/clang700-import/stand/i386/zfsboot/zfsboot.c projects/clang700-import/stand/libsa/arp.c projects/clang700-import/stand/libsa/assert.c projects/clang700-import/stand/libsa/bzipfs.c projects/clang700-import/stand/libsa/netif.c projects/clang700-import/stand/libsa/sbrk.c projects/clang700-import/stand/libsa/ufs.c projects/clang700-import/stand/libsa/zfs/libzfs.h projects/clang700-import/stand/uboot/common/main.c projects/clang700-import/stand/uboot/lib/copy.c projects/clang700-import/stand/uboot/lib/net.c projects/clang700-import/sys/amd64/amd64/machdep.c projects/clang700-import/sys/amd64/amd64/pmap.c projects/clang700-import/sys/amd64/amd64/support.S projects/clang700-import/sys/amd64/ia32/ia32_reg.c projects/clang700-import/sys/amd64/ia32/ia32_signal.c projects/clang700-import/sys/arm/allwinner/aw_usbphy.c projects/clang700-import/sys/arm/arm/machdep.c projects/clang700-import/sys/arm/arm/machdep_kdb.c projects/clang700-import/sys/arm/arm/physmem.c projects/clang700-import/sys/arm/arm/pmap-v6.c projects/clang700-import/sys/arm/include/atomic-v6.h projects/clang700-import/sys/arm/mv/mv_pci_ctrl.c projects/clang700-import/sys/arm/ti/ti_pruss.c projects/clang700-import/sys/arm64/acpica/acpi_machdep.c projects/clang700-import/sys/arm64/arm64/machdep.c projects/clang700-import/sys/arm64/arm64/mp_machdep.c projects/clang700-import/sys/arm64/conf/GENERIC projects/clang700-import/sys/arm64/rockchip/clk/rk3328_cru.c projects/clang700-import/sys/arm64/rockchip/clk/rk_clk_armclk.c projects/clang700-import/sys/arm64/rockchip/clk/rk_clk_composite.c projects/clang700-import/sys/arm64/rockchip/clk/rk_clk_pll.c projects/clang700-import/sys/arm64/rockchip/clk/rk_clk_pll.h projects/clang700-import/sys/arm64/rockchip/clk/rk_cru.c projects/clang700-import/sys/arm64/rockchip/clk/rk_cru.h projects/clang700-import/sys/arm64/rockchip/if_dwc_rk.c projects/clang700-import/sys/arm64/rockchip/rk_grf.c projects/clang700-import/sys/arm64/rockchip/rk_i2c.c projects/clang700-import/sys/arm64/rockchip/rk_pinctrl.c projects/clang700-import/sys/cam/cam_iosched.c projects/clang700-import/sys/cam/cam_iosched.h projects/clang700-import/sys/cam/cam_xpt.c projects/clang700-import/sys/cam/scsi/scsi_da.c projects/clang700-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c projects/clang700-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c projects/clang700-import/sys/compat/cloudabi32/cloudabi32_module.c projects/clang700-import/sys/compat/cloudabi64/cloudabi64_module.c projects/clang700-import/sys/compat/freebsd32/freebsd32_misc.c projects/clang700-import/sys/compat/freebsd32/freebsd32_syscall.h projects/clang700-import/sys/compat/freebsd32/freebsd32_syscalls.c projects/clang700-import/sys/compat/freebsd32/freebsd32_sysent.c projects/clang700-import/sys/compat/freebsd32/freebsd32_systrace_args.c projects/clang700-import/sys/compat/freebsd32/syscalls.master projects/clang700-import/sys/compat/linuxkpi/common/include/asm/atomic-long.h projects/clang700-import/sys/compat/linuxkpi/common/include/linux/cdev.h projects/clang700-import/sys/compat/linuxkpi/common/include/linux/fs.h projects/clang700-import/sys/compat/linuxkpi/common/include/linux/idr.h projects/clang700-import/sys/compat/linuxkpi/common/include/linux/inetdevice.h projects/clang700-import/sys/compat/linuxkpi/common/include/linux/netdevice.h projects/clang700-import/sys/compat/linuxkpi/common/include/linux/pci.h projects/clang700-import/sys/compat/linuxkpi/common/src/linux_compat.c projects/clang700-import/sys/compat/linuxkpi/common/src/linux_pci.c projects/clang700-import/sys/conf/files projects/clang700-import/sys/conf/files.amd64 projects/clang700-import/sys/conf/files.arm64 projects/clang700-import/sys/conf/files.i386 projects/clang700-import/sys/conf/newvers.sh projects/clang700-import/sys/conf/options.arm64 projects/clang700-import/sys/contrib/ck/include/gcc/sparcv9/ck_pr.h projects/clang700-import/sys/contrib/ipfilter/netinet/ip_compat.h projects/clang700-import/sys/contrib/ipfilter/netinet/ip_fil.h projects/clang700-import/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c projects/clang700-import/sys/contrib/ipfilter/netinet/ip_log.c projects/clang700-import/sys/contrib/rdma/krping/krping_dev.c projects/clang700-import/sys/contrib/vchiq/interface/compat/vchi_bsd.h projects/clang700-import/sys/dev/acpi_support/atk0110.c projects/clang700-import/sys/dev/acpica/acpi.c projects/clang700-import/sys/dev/acpica/acpi_ec.c projects/clang700-import/sys/dev/acpica/acpi_hpet.c projects/clang700-import/sys/dev/acpica/acpivar.h projects/clang700-import/sys/dev/altera/avgen/altera_avgen.c projects/clang700-import/sys/dev/cxgbe/adapter.h projects/clang700-import/sys/dev/cxgbe/common/common.h projects/clang700-import/sys/dev/cxgbe/common/t4_hw.c projects/clang700-import/sys/dev/cxgbe/cxgbei/cxgbei.c projects/clang700-import/sys/dev/cxgbe/t4_main.c projects/clang700-import/sys/dev/cxgbe/t4_netmap.c projects/clang700-import/sys/dev/cxgbe/t4_sge.c projects/clang700-import/sys/dev/cxgbe/tom/t4_connect.c projects/clang700-import/sys/dev/cxgbe/tom/t4_listen.c projects/clang700-import/sys/dev/cxgbe/tom/t4_tom.c projects/clang700-import/sys/dev/cxgbe/tom/t4_tom.h projects/clang700-import/sys/dev/evdev/evdev_utils.c projects/clang700-import/sys/dev/extres/clk/clk.c projects/clang700-import/sys/dev/extres/regulator/regulator_fixed.c projects/clang700-import/sys/dev/ixgbe/ix_txrx.c projects/clang700-import/sys/dev/ixl/ixl_txrx.c projects/clang700-import/sys/dev/mlx4/device.h projects/clang700-import/sys/dev/mlx4/driver.h projects/clang700-import/sys/dev/mlx4/mlx4_core/mlx4.h projects/clang700-import/sys/dev/mlx4/mlx4_core/mlx4_cmd.c projects/clang700-import/sys/dev/mlx4/mlx4_core/mlx4_eq.c projects/clang700-import/sys/dev/mlx4/mlx4_core/mlx4_icm.c projects/clang700-import/sys/dev/mlx4/mlx4_core/mlx4_intf.c projects/clang700-import/sys/dev/mlx4/mlx4_core/mlx4_main.c projects/clang700-import/sys/dev/mlx4/mlx4_en/en.h projects/clang700-import/sys/dev/mlx4/mlx4_en/mlx4_en_cq.c projects/clang700-import/sys/dev/mlx4/mlx4_en/mlx4_en_netdev.c projects/clang700-import/sys/dev/mlx4/mlx4_en/mlx4_en_port.c projects/clang700-import/sys/dev/mlx4/mlx4_en/mlx4_en_rx.c projects/clang700-import/sys/dev/mlx4/mlx4_en/mlx4_en_tx.c projects/clang700-import/sys/dev/mlx4/mlx4_ib/mlx4_ib_main.c projects/clang700-import/sys/dev/mlx5/device.h projects/clang700-import/sys/dev/mlx5/driver.h projects/clang700-import/sys/dev/mlx5/mlx5_core/mlx5_cmd.c projects/clang700-import/sys/dev/mlx5/mlx5_core/mlx5_core.h projects/clang700-import/sys/dev/mlx5/mlx5_core/mlx5_eq.c projects/clang700-import/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c projects/clang700-import/sys/dev/mlx5/mlx5_core/mlx5_health.c projects/clang700-import/sys/dev/mlx5/mlx5_core/mlx5_main.c projects/clang700-import/sys/dev/mlx5/mlx5_core/mlx5_mr.c projects/clang700-import/sys/dev/mlx5/mlx5_core/mlx5_pagealloc.c projects/clang700-import/sys/dev/mlx5/mlx5_core/mlx5_port.c projects/clang700-import/sys/dev/mlx5/mlx5_core/mlx5_vport.c projects/clang700-import/sys/dev/mlx5/mlx5_core/wq.h projects/clang700-import/sys/dev/mlx5/mlx5_en/en.h projects/clang700-import/sys/dev/mlx5/mlx5_en/en_rl.h projects/clang700-import/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c projects/clang700-import/sys/dev/mlx5/mlx5_en/mlx5_en_main.c projects/clang700-import/sys/dev/mlx5/mlx5_en/mlx5_en_rl.c projects/clang700-import/sys/dev/mlx5/mlx5_en/mlx5_en_rx.c projects/clang700-import/sys/dev/mlx5/mlx5_en/mlx5_en_tx.c projects/clang700-import/sys/dev/mlx5/mlx5_ib/mlx5_ib_cong.c projects/clang700-import/sys/dev/mlx5/mlx5_ib/mlx5_ib_cq.c projects/clang700-import/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c projects/clang700-import/sys/dev/mlx5/mlx5_ib/mlx5_ib_srq.c projects/clang700-import/sys/dev/mlx5/mlx5_ifc.h projects/clang700-import/sys/dev/mlx5/mlx5io.h projects/clang700-import/sys/dev/mlx5/port.h projects/clang700-import/sys/dev/mlx5/vport.h projects/clang700-import/sys/dev/mpr/mpr.c projects/clang700-import/sys/dev/mps/mps.c projects/clang700-import/sys/dev/netmap/if_ptnet.c projects/clang700-import/sys/dev/netmap/if_vtnet_netmap.h projects/clang700-import/sys/dev/netmap/netmap.c projects/clang700-import/sys/dev/netmap/netmap_bdg.c projects/clang700-import/sys/dev/netmap/netmap_bdg.h projects/clang700-import/sys/dev/netmap/netmap_freebsd.c projects/clang700-import/sys/dev/netmap/netmap_generic.c projects/clang700-import/sys/dev/netmap/netmap_kern.h projects/clang700-import/sys/dev/netmap/netmap_legacy.c projects/clang700-import/sys/dev/netmap/netmap_mem2.c projects/clang700-import/sys/dev/netmap/netmap_mem2.h projects/clang700-import/sys/dev/netmap/netmap_pipe.c projects/clang700-import/sys/dev/netmap/netmap_vale.c projects/clang700-import/sys/dev/nvme/nvme_ctrlr.c projects/clang700-import/sys/dev/pci/pci.c projects/clang700-import/sys/dev/pci/pci_pci.c projects/clang700-import/sys/dev/sfxge/common/ef10_ev.c projects/clang700-import/sys/dev/sfxge/common/ef10_filter.c projects/clang700-import/sys/dev/sfxge/common/ef10_impl.h projects/clang700-import/sys/dev/sfxge/common/ef10_intr.c projects/clang700-import/sys/dev/sfxge/common/ef10_mac.c projects/clang700-import/sys/dev/sfxge/common/ef10_mcdi.c projects/clang700-import/sys/dev/sfxge/common/ef10_nic.c projects/clang700-import/sys/dev/sfxge/common/ef10_nvram.c projects/clang700-import/sys/dev/sfxge/common/ef10_phy.c projects/clang700-import/sys/dev/sfxge/common/ef10_rx.c projects/clang700-import/sys/dev/sfxge/common/ef10_tlv_layout.h projects/clang700-import/sys/dev/sfxge/common/ef10_tx.c projects/clang700-import/sys/dev/sfxge/common/ef10_vpd.c projects/clang700-import/sys/dev/sfxge/common/efsys.h projects/clang700-import/sys/dev/sfxge/common/efx.h projects/clang700-import/sys/dev/sfxge/common/efx_bootcfg.c projects/clang700-import/sys/dev/sfxge/common/efx_check.h projects/clang700-import/sys/dev/sfxge/common/efx_ev.c projects/clang700-import/sys/dev/sfxge/common/efx_filter.c projects/clang700-import/sys/dev/sfxge/common/efx_impl.h projects/clang700-import/sys/dev/sfxge/common/efx_intr.c projects/clang700-import/sys/dev/sfxge/common/efx_lic.c projects/clang700-import/sys/dev/sfxge/common/efx_mac.c projects/clang700-import/sys/dev/sfxge/common/efx_mcdi.c projects/clang700-import/sys/dev/sfxge/common/efx_mcdi.h projects/clang700-import/sys/dev/sfxge/common/efx_mon.c projects/clang700-import/sys/dev/sfxge/common/efx_nic.c projects/clang700-import/sys/dev/sfxge/common/efx_nvram.c projects/clang700-import/sys/dev/sfxge/common/efx_phy.c projects/clang700-import/sys/dev/sfxge/common/efx_port.c projects/clang700-import/sys/dev/sfxge/common/efx_regs_ef10.h projects/clang700-import/sys/dev/sfxge/common/efx_regs_mcdi.h projects/clang700-import/sys/dev/sfxge/common/efx_rx.c projects/clang700-import/sys/dev/sfxge/common/efx_sram.c projects/clang700-import/sys/dev/sfxge/common/efx_tx.c projects/clang700-import/sys/dev/sfxge/common/efx_types.h projects/clang700-import/sys/dev/sfxge/common/efx_vpd.c projects/clang700-import/sys/dev/sfxge/common/hunt_nic.c projects/clang700-import/sys/dev/sfxge/common/mcdi_mon.c projects/clang700-import/sys/dev/sfxge/common/mcdi_mon.h projects/clang700-import/sys/dev/sfxge/common/medford_nic.c projects/clang700-import/sys/dev/sfxge/common/siena_flash.h projects/clang700-import/sys/dev/sfxge/common/siena_mac.c projects/clang700-import/sys/dev/sfxge/common/siena_mcdi.c projects/clang700-import/sys/dev/sfxge/common/siena_nic.c projects/clang700-import/sys/dev/sfxge/common/siena_nvram.c projects/clang700-import/sys/dev/sfxge/common/siena_phy.c projects/clang700-import/sys/dev/sfxge/common/siena_vpd.c projects/clang700-import/sys/dev/sfxge/sfxge.c projects/clang700-import/sys/dev/sfxge/sfxge.h projects/clang700-import/sys/dev/sfxge/sfxge_dma.c projects/clang700-import/sys/dev/sfxge/sfxge_port.c projects/clang700-import/sys/dev/sfxge/sfxge_tx.c projects/clang700-import/sys/dev/sound/pcm/dsp.c projects/clang700-import/sys/dev/terasic/mtl/terasic_mtl_reg.c projects/clang700-import/sys/dev/terasic/mtl/terasic_mtl_text.c projects/clang700-import/sys/dev/xen/gntdev/gntdev.c projects/clang700-import/sys/fs/procfs/procfs_dbregs.c projects/clang700-import/sys/fs/procfs/procfs_fpregs.c projects/clang700-import/sys/fs/procfs/procfs_regs.c projects/clang700-import/sys/geom/geom_dev.c projects/clang700-import/sys/geom/journal/g_journal_ufs.c projects/clang700-import/sys/geom/label/g_label_ufs.c projects/clang700-import/sys/geom/mirror/g_mirror.c projects/clang700-import/sys/geom/mirror/g_mirror.h projects/clang700-import/sys/geom/part/g_part.c projects/clang700-import/sys/geom/part/g_part.h projects/clang700-import/sys/geom/part/g_part_mbr.c projects/clang700-import/sys/i386/i386/machdep.c projects/clang700-import/sys/i386/i386/mpboot.s projects/clang700-import/sys/i386/i386/pmap.c projects/clang700-import/sys/kern/imgact_binmisc.c projects/clang700-import/sys/kern/imgact_elf.c projects/clang700-import/sys/kern/imgact_shell.c projects/clang700-import/sys/kern/init_main.c projects/clang700-import/sys/kern/init_sysent.c projects/clang700-import/sys/kern/kern_clock.c projects/clang700-import/sys/kern/kern_context.c projects/clang700-import/sys/kern/kern_descrip.c projects/clang700-import/sys/kern/kern_event.c projects/clang700-import/sys/kern/kern_exec.c projects/clang700-import/sys/kern/kern_exit.c projects/clang700-import/sys/kern/kern_fork.c projects/clang700-import/sys/kern/kern_jail.c projects/clang700-import/sys/kern/kern_lock.c projects/clang700-import/sys/kern/kern_loginclass.c projects/clang700-import/sys/kern/kern_priv.c projects/clang700-import/sys/kern/kern_proc.c projects/clang700-import/sys/kern/kern_prot.c projects/clang700-import/sys/kern/kern_racct.c projects/clang700-import/sys/kern/kern_resource.c projects/clang700-import/sys/kern/kern_sig.c projects/clang700-import/sys/kern/kern_sx.c projects/clang700-import/sys/kern/kern_synch.c projects/clang700-import/sys/kern/kern_umtx.c projects/clang700-import/sys/kern/kern_xxx.c projects/clang700-import/sys/kern/subr_blist.c projects/clang700-import/sys/kern/subr_syscall.c projects/clang700-import/sys/kern/subr_trap.c projects/clang700-import/sys/kern/sys_capability.c projects/clang700-import/sys/kern/sys_process.c projects/clang700-import/sys/kern/syscalls.c projects/clang700-import/sys/kern/syscalls.master projects/clang700-import/sys/kern/systrace_args.c projects/clang700-import/sys/kern/uipc_syscalls.c projects/clang700-import/sys/kern/vfs_aio.c projects/clang700-import/sys/kern/vfs_bio.c projects/clang700-import/sys/kern/vfs_cache.c projects/clang700-import/sys/kern/vfs_lookup.c projects/clang700-import/sys/kern/vfs_syscalls.c projects/clang700-import/sys/mips/conf/ERL projects/clang700-import/sys/mips/mips/freebsd32_machdep.c projects/clang700-import/sys/modules/Makefile projects/clang700-import/sys/modules/cxgbe/if_cxgbe/Makefile projects/clang700-import/sys/modules/dtb/allwinner/Makefile projects/clang700-import/sys/modules/iavf/Makefile projects/clang700-import/sys/modules/mlx5/Makefile projects/clang700-import/sys/modules/mlx5en/Makefile projects/clang700-import/sys/modules/mlx5ib/Makefile projects/clang700-import/sys/modules/netgraph/Makefile projects/clang700-import/sys/modules/netmap/Makefile projects/clang700-import/sys/modules/rockchip/Makefile projects/clang700-import/sys/modules/sfxge/Makefile projects/clang700-import/sys/net/altq/altq.h projects/clang700-import/sys/net/altq/altq_cbq.c projects/clang700-import/sys/net/altq/altq_cbq.h projects/clang700-import/sys/net/altq/altq_hfsc.c projects/clang700-import/sys/net/altq/altq_hfsc.h projects/clang700-import/sys/net/altq/altq_priq.c projects/clang700-import/sys/net/altq/altq_priq.h projects/clang700-import/sys/net/altq/altq_red.c projects/clang700-import/sys/net/altq/altq_red.h projects/clang700-import/sys/net/altq/altq_rio.c projects/clang700-import/sys/net/altq/altq_rio.h projects/clang700-import/sys/net/altq/altq_rmclass.c projects/clang700-import/sys/net/altq/altq_subr.c projects/clang700-import/sys/net/if.c projects/clang700-import/sys/net/if.h projects/clang700-import/sys/net/iflib.c projects/clang700-import/sys/net/iflib_private.h projects/clang700-import/sys/net/netmap.h projects/clang700-import/sys/net/netmap_user.h projects/clang700-import/sys/net/netmap_virt.h projects/clang700-import/sys/net/route.h projects/clang700-import/sys/net/rtsock.c projects/clang700-import/sys/netgraph/ng_source.c projects/clang700-import/sys/netinet/cc/cc.h projects/clang700-import/sys/netinet/in_pcb.c projects/clang700-import/sys/netinet/in_pcb.h projects/clang700-import/sys/netinet/ip_fw.h projects/clang700-import/sys/netinet/tcp_usrreq.c projects/clang700-import/sys/netinet6/in6_pcb.c projects/clang700-import/sys/netpfil/ipfw/ip_fw_dynamic.c projects/clang700-import/sys/netpfil/ipfw/ip_fw_eaction.c projects/clang700-import/sys/netpfil/ipfw/ip_fw_private.h projects/clang700-import/sys/netpfil/ipfw/ip_fw_sockopt.c projects/clang700-import/sys/netpfil/ipfw/nat64/nat64lsn_control.c projects/clang700-import/sys/netpfil/ipfw/nat64/nat64stl_control.c projects/clang700-import/sys/netpfil/ipfw/nptv6/nptv6.c projects/clang700-import/sys/netpfil/pf/if_pfsync.c projects/clang700-import/sys/netpfil/pf/pf_if.c projects/clang700-import/sys/netpfil/pf/pf_lb.c projects/clang700-import/sys/ofed/drivers/infiniband/core/ib_addr.c projects/clang700-import/sys/ofed/drivers/infiniband/core/ib_cm.c projects/clang700-import/sys/ofed/drivers/infiniband/core/ib_cma.c projects/clang700-import/sys/ofed/drivers/infiniband/core/ib_iwcm.c projects/clang700-import/sys/ofed/drivers/infiniband/core/ib_mad.c projects/clang700-import/sys/ofed/drivers/infiniband/core/ib_multicast.c projects/clang700-import/sys/ofed/drivers/infiniband/core/ib_roce_gid_mgmt.c projects/clang700-import/sys/ofed/drivers/infiniband/core/ib_sysfs.c projects/clang700-import/sys/ofed/drivers/infiniband/core/ib_user_mad.c projects/clang700-import/sys/ofed/drivers/infiniband/core/ib_verbs.c projects/clang700-import/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib.h projects/clang700-import/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_ib.c projects/clang700-import/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c projects/clang700-import/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_multicast.c projects/clang700-import/sys/powerpc/aim/locore32.S projects/clang700-import/sys/powerpc/aim/locore64.S projects/clang700-import/sys/powerpc/booke/booke_machdep.c projects/clang700-import/sys/powerpc/booke/locore.S projects/clang700-import/sys/powerpc/booke/pmap.c projects/clang700-import/sys/powerpc/booke/spe.c projects/clang700-import/sys/powerpc/conf/GENERIC projects/clang700-import/sys/powerpc/cpufreq/pmcr.c projects/clang700-import/sys/powerpc/include/vmparam.h projects/clang700-import/sys/powerpc/mpc85xx/platform_mpc85xx.c projects/clang700-import/sys/powerpc/ofw/ofw_pcib_pci.c projects/clang700-import/sys/powerpc/ofw/ofw_pcibus.c projects/clang700-import/sys/powerpc/ofw/openpic_ofw.c projects/clang700-import/sys/powerpc/powermac/cpcht.c projects/clang700-import/sys/powerpc/powermac/macgpio.c projects/clang700-import/sys/powerpc/powermac/macio.c projects/clang700-import/sys/powerpc/powermac/pmu.c projects/clang700-import/sys/powerpc/powermac/smu.c projects/clang700-import/sys/powerpc/powermac/uninorth.c projects/clang700-import/sys/powerpc/powermac/uninorthpci.c projects/clang700-import/sys/powerpc/powerpc/elf64_machdep.c projects/clang700-import/sys/powerpc/powerpc/exec_machdep.c projects/clang700-import/sys/powerpc/powerpc/genassym.c projects/clang700-import/sys/powerpc/powerpc/machdep.c projects/clang700-import/sys/powerpc/powerpc/mp_machdep.c projects/clang700-import/sys/riscv/include/cpufunc.h projects/clang700-import/sys/riscv/include/vmparam.h projects/clang700-import/sys/riscv/riscv/locore.S projects/clang700-import/sys/riscv/riscv/machdep.c projects/clang700-import/sys/riscv/riscv/pmap.c projects/clang700-import/sys/riscv/riscv/swtch.S projects/clang700-import/sys/security/audit/audit.c projects/clang700-import/sys/security/audit/audit.h projects/clang700-import/sys/sparc64/sparc64/machdep.c projects/clang700-import/sys/sys/filedesc.h projects/clang700-import/sys/sys/imgact.h projects/clang700-import/sys/sys/jail.h projects/clang700-import/sys/sys/mount.h projects/clang700-import/sys/sys/mutex.h projects/clang700-import/sys/sys/proc.h projects/clang700-import/sys/sys/racct.h projects/clang700-import/sys/sys/refcount.h projects/clang700-import/sys/sys/sdt.h projects/clang700-import/sys/sys/sx.h projects/clang700-import/sys/sys/syscall.h projects/clang700-import/sys/sys/syscall.mk projects/clang700-import/sys/sys/sysproto.h projects/clang700-import/sys/sys/systm.h projects/clang700-import/sys/sys/types.h projects/clang700-import/sys/sys/user.h projects/clang700-import/sys/ufs/ffs/ffs_alloc.c projects/clang700-import/sys/ufs/ffs/ffs_extern.h projects/clang700-import/sys/ufs/ffs/ffs_snapshot.c projects/clang700-import/sys/ufs/ffs/ffs_subr.c projects/clang700-import/sys/ufs/ffs/ffs_vfsops.c projects/clang700-import/sys/vm/device_pager.c projects/clang700-import/sys/vm/sg_pager.c projects/clang700-import/sys/vm/swap_pager.c projects/clang700-import/sys/vm/uma_core.c projects/clang700-import/sys/vm/uma_int.h projects/clang700-import/sys/vm/vm_map.c projects/clang700-import/sys/vm/vm_mmap.c projects/clang700-import/sys/vm/vm_object.c projects/clang700-import/sys/vm/vm_object.h projects/clang700-import/sys/vm/vm_page.c projects/clang700-import/sys/x86/acpica/srat.c projects/clang700-import/tests/sys/geom/class/eli/Makefile projects/clang700-import/tests/sys/geom/class/eli/attach_test.sh projects/clang700-import/tests/sys/geom/class/eli/conf.sh projects/clang700-import/tests/sys/geom/class/eli/configure_test.sh projects/clang700-import/tests/sys/geom/class/eli/delkey_test.sh projects/clang700-import/tests/sys/geom/class/eli/detach_test.sh projects/clang700-import/tests/sys/geom/class/eli/init_test.sh projects/clang700-import/tests/sys/geom/class/eli/integrity_test.sh projects/clang700-import/tests/sys/geom/class/eli/kill_test.sh projects/clang700-import/tests/sys/geom/class/eli/misc_test.sh projects/clang700-import/tests/sys/geom/class/eli/onetime_test.sh projects/clang700-import/tests/sys/geom/class/eli/resize_test.sh projects/clang700-import/tests/sys/geom/class/eli/setkey_test.sh projects/clang700-import/tests/sys/geom/class/geom_subr.sh projects/clang700-import/tests/sys/geom/class/mirror/Makefile projects/clang700-import/tests/sys/geom/class/mirror/conf.sh projects/clang700-import/tests/sys/geom/class/mirror/sync_error.sh projects/clang700-import/tests/sys/kern/Makefile projects/clang700-import/tests/sys/kqueue/libkqueue/kqueue_test.sh projects/clang700-import/tests/sys/kqueue/libkqueue/main.c projects/clang700-import/tests/sys/kqueue/libkqueue/proc.c projects/clang700-import/tests/sys/kqueue/libkqueue/signal.c projects/clang700-import/tests/sys/kqueue/libkqueue/timer.c projects/clang700-import/tests/sys/kqueue/libkqueue/user.c projects/clang700-import/tests/sys/kqueue/libkqueue/vnode.c projects/clang700-import/tests/sys/netpfil/pf/Makefile projects/clang700-import/tests/sys/netpfil/pf/pass_block.sh projects/clang700-import/tests/sys/netpfil/pf/pfsync.sh projects/clang700-import/tools/build/mk/OptionalObsoleteFiles.inc projects/clang700-import/tools/build/options/WITHOUT_BINUTILS projects/clang700-import/tools/build/options/WITH_BINUTILS projects/clang700-import/tools/tools/locale/Makefile projects/clang700-import/tools/tools/locale/etc/charmaps.xml projects/clang700-import/tools/tools/netmap/pkt-gen.c projects/clang700-import/usr.bin/bmake/Makefile.config projects/clang700-import/usr.bin/bmake/unit-tests/Makefile projects/clang700-import/usr.bin/clang/llvm-objdump/Makefile projects/clang700-import/usr.bin/fstat/fstat.c projects/clang700-import/usr.bin/procstat/procstat_files.c projects/clang700-import/usr.bin/procstat/tests/procstat_test.sh projects/clang700-import/usr.bin/top/top.c projects/clang700-import/usr.bin/truss/powerpc64-freebsd.c projects/clang700-import/usr.sbin/bhyve/fwctl.c projects/clang700-import/usr.sbin/bhyve/iov.c projects/clang700-import/usr.sbin/bhyve/iov.h projects/clang700-import/usr.sbin/bhyve/pci_virtio_scsi.c projects/clang700-import/usr.sbin/boot0cfg/boot0cfg.c projects/clang700-import/usr.sbin/ctld/kernel.c projects/clang700-import/usr.sbin/etcupdate/etcupdate.8 projects/clang700-import/usr.sbin/fstyp/ufs.c projects/clang700-import/usr.sbin/iscsid/iscsid.c projects/clang700-import/usr.sbin/jail/jail.8 projects/clang700-import/usr.sbin/mergemaster/mergemaster.8 projects/clang700-import/usr.sbin/mountd/mountd.c projects/clang700-import/usr.sbin/newsyslog/newsyslog.c projects/clang700-import/usr.sbin/nscd/nscdcli.c projects/clang700-import/usr.sbin/nscd/query.c projects/clang700-import/usr.sbin/quot/quot.c projects/clang700-import/usr.sbin/unbound/setup/local-unbound-setup.sh projects/clang700-import/usr.sbin/wpa/Makefile.crypto projects/clang700-import/usr.sbin/wpa/Makefile.inc projects/clang700-import/usr.sbin/wpa/hostapd/Makefile projects/clang700-import/usr.sbin/wpa/wpa_cli/Makefile projects/clang700-import/usr.sbin/wpa/wpa_supplicant/Makefile Directory Properties: projects/clang700-import/ (props changed) projects/clang700-import/contrib/bmake/ (props changed) projects/clang700-import/contrib/ipfilter/ (props changed) projects/clang700-import/contrib/libarchive/ (props changed) projects/clang700-import/contrib/nvi/ (props changed) projects/clang700-import/contrib/openbsm/ (props changed) projects/clang700-import/contrib/wpa/ (props changed) projects/clang700-import/gnu/usr.bin/binutils/ (props changed) projects/clang700-import/lib/libedit/ (props changed) projects/clang700-import/sys/cddl/contrib/opensolaris/ (props changed) projects/clang700-import/sys/contrib/ck/ (props changed) projects/clang700-import/sys/contrib/ipfilter/ (props changed) Modified: projects/clang700-import/Makefile.inc1 ============================================================================== --- projects/clang700-import/Makefile.inc1 Sun Dec 9 11:36:04 2018 (r341763) +++ projects/clang700-import/Makefile.inc1 Sun Dec 9 11:39:45 2018 (r341764) @@ -2215,6 +2215,8 @@ _basic_bootstrap_tools+=usr.bin/ldd _basic_bootstrap_tools+=usr.sbin/services_mkdb usr.sbin/pwd_mkdb # sysctl/chflags are required for installkernel: _basic_bootstrap_tools+=sbin/sysctl bin/chflags +# mkfifo is used by sys/conf/newvers.sh +_basic_bootstrap_tools+=usr.bin/mkfifo .if ${MK_AMD} != "no" # unifdef is only used by usr.sbin/amd/libamu/Makefile @@ -2689,8 +2691,10 @@ _prereq_libs+= gnu/lib/libssp/libssp_nonshared # gnu/lib/csu, gnu/lib/libgcc, lib/csu and lib/libc must be built before # all shared libraries for ELF. # -_startup_libs= gnu/lib/csu -_startup_libs+= lib/csu +_startup_libs= lib/csu +.if ${MK_BSD_CRTBEGIN} == "no" +_startup_libs+= gnu/lib/csu +.endif _startup_libs+= lib/libcompiler_rt _startup_libs+= lib/libc _startup_libs+= lib/libc_nonshared Modified: projects/clang700-import/ObsoleteFiles.inc ============================================================================== --- projects/clang700-import/ObsoleteFiles.inc Sun Dec 9 11:36:04 2018 (r341763) +++ projects/clang700-import/ObsoleteFiles.inc Sun Dec 9 11:39:45 2018 (r341764) @@ -203,6 +203,8 @@ OLD_LIBS+=usr/lib32/libcap_pwd.so.0 OLD_LIBS+=usr/lib32/libcap_random.so.0 OLD_LIBS+=usr/lib32/libcap_dns.so.0 OLD_LIBS+=usr/lib32/libcap_syslog.so.0 +# 20181012: rename of ixlv(4) to iavf(4) +OLD_FILES+=usr/share/man/man4/ixlv.4.gz # 20181009: OpenSSL 1.1.1 OLD_FILES+=usr/include/openssl/des_old.h OLD_FILES+=usr/include/openssl/dso.h Modified: projects/clang700-import/UPDATING ============================================================================== --- projects/clang700-import/UPDATING Sun Dec 9 11:36:04 2018 (r341763) +++ projects/clang700-import/UPDATING Sun Dec 9 11:39:45 2018 (r341764) @@ -31,6 +31,12 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 13.x IS SLOW: disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20181126: + On amd64, arm64 and armv7 (architectures that install LLVM's ld.lld + linker as /usr/bin/ld) GNU ld is no longer installed as ld.bfd, as + it produces broken binaries when ifuncs are in use. Users needing + GNU ld should install the binutils port or package. + 20181123: The BSD crtbegin and crtend code has been enabled by default. It has had extensive testing on amd64, arm64, and i386. It can be disabled @@ -76,6 +82,13 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 13.x IS SLOW: cross-threading surprises, especially with automatic driver loading from X11 startup. These will become the defaults in 13-current shortly. + +20181012: + The ixlv(4) driver has been renamed to iavf(4). As a consequence, + custom kernel and module loading configuration files must be updated + accordingly. Moreover, interfaces previous presented as ixlvN to the + system are now exposed as iavfN and network configuration files must + be adjusted as necessary. 20181009: OpenSSL has been updated to version 1.1.1. This update included Modified: projects/clang700-import/bin/dd/dd.c ============================================================================== --- projects/clang700-import/bin/dd/dd.c Sun Dec 9 11:36:04 2018 (r341763) +++ projects/clang700-import/bin/dd/dd.c Sun Dec 9 11:39:45 2018 (r341764) @@ -511,7 +511,7 @@ void dd_out(int force) { u_char *outp; - size_t cnt, i, n; + size_t cnt, n; ssize_t nw; static int warned; int sparse; @@ -544,12 +544,8 @@ dd_out(int force) do { sparse = 0; if (ddflags & C_SPARSE) { - sparse = 1; /* Is buffer sparse? */ - for (i = 0; i < cnt; i++) - if (outp[i] != 0) { - sparse = 0; - break; - } + /* Is buffer sparse? */ + sparse = BISZERO(outp, cnt); } if (sparse && !force) { pending += cnt; Modified: projects/clang700-import/bin/dd/dd.h ============================================================================== --- projects/clang700-import/bin/dd/dd.h Sun Dec 9 11:36:04 2018 (r341763) +++ projects/clang700-import/bin/dd/dd.h Sun Dec 9 11:39:45 2018 (r341764) @@ -103,3 +103,7 @@ typedef struct { #define C_PROGRESS 0x40000000 #define C_PARITY (C_PAREVEN | C_PARODD | C_PARNONE | C_PARSET) + +#define BISZERO(p, s) ((s) > 0 && *((const char *)p) == 0 && !memcmp( \ + (const void *)(p), (const void *) \ + ((const char *)p + 1), (s) - 1)) Modified: projects/clang700-import/bin/pkill/pkill.1 ============================================================================== --- projects/clang700-import/bin/pkill/pkill.1 Sun Dec 9 11:36:04 2018 (r341763) +++ projects/clang700-import/bin/pkill/pkill.1 Sun Dec 9 11:39:45 2018 (r341764) @@ -29,7 +29,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.Dd June 5, 2017 +.Dd December 3, 2018 .Dt PKILL 1 .Os .Sh NAME @@ -221,7 +221,7 @@ This option is valid only when given as the first argu .Pp If any .Ar pattern -operands are specified, they are used as regular expressions to match +operands are specified, they are used as extended regular expressions to match the command name or full argument list of each process. If the .Fl f @@ -241,6 +241,18 @@ or .Nm pkill process will never consider itself nor system processes (kernel threads) as a potential match. +.Sh IMPLEMENTATION NOTES +The Sun Solaris implementation utilised procfs to obtain process information. +This implementation utilises +.Xr kvm 3 +instead. +On a live system, +.Xr kvm 3 +uses +.Va kern.proc +MIB to obtain the list of processes, kernel memory through +.Pa /dev/kmem +is not accessed. .Sh EXIT STATUS The .Nm pgrep @@ -277,6 +289,7 @@ is deprecated, and its use is discouraged in favor of .Xr flock 2 , .Xr kill 2 , .Xr sigaction 2 , +.Xr kvm 3 , .Xr pidfile 3 , .Xr re_format 7 .\" Xr signal 7 Modified: projects/clang700-import/bin/sh/expand.c ============================================================================== --- projects/clang700-import/bin/sh/expand.c Sun Dec 9 11:36:04 2018 (r341763) +++ projects/clang700-import/bin/sh/expand.c Sun Dec 9 11:39:45 2018 (r341764) @@ -623,10 +623,11 @@ static const char * subevalvar_misc(const char *p, struct nodelist **restrict argbackq, const char *var, int subtype, int startloc, int varflags) { + const char *end; char *startp; int amount; - p = argstr(p, argbackq, EXP_TILDE, NULL); + end = argstr(p, argbackq, EXP_TILDE, NULL); STACKSTRNUL(expdest); startp = stackblock() + startloc; @@ -635,7 +636,7 @@ subevalvar_misc(const char *p, struct nodelist **restr setvar(var, startp, 0); amount = startp - expdest; STADJUST(amount, expdest); - return p; + return end; case VSQUESTION: if (*p != CTLENDVAR) { Modified: projects/clang700-import/bin/sh/input.c ============================================================================== --- projects/clang700-import/bin/sh/input.c Sun Dec 9 11:36:04 2018 (r341763) +++ projects/clang700-import/bin/sh/input.c Sun Dec 9 11:39:45 2018 (r341764) @@ -359,12 +359,16 @@ popstring(void) void setinputfile(const char *fname, int push) { + int e; int fd; int fd2; INTOFF; - if ((fd = open(fname, O_RDONLY | O_CLOEXEC)) < 0) - error("cannot open %s: %s", fname, strerror(errno)); + if ((fd = open(fname, O_RDONLY | O_CLOEXEC)) < 0) { + e = errno; + errorwithstatus(e == ENOENT || e == ENOTDIR ? 127 : 126, + "cannot open %s: %s", fname, strerror(e)); + } if (fd < 10) { fd2 = fcntl(fd, F_DUPFD_CLOEXEC, 10); close(fd); Modified: projects/clang700-import/bin/sh/sh.1 ============================================================================== --- projects/clang700-import/bin/sh/sh.1 Sun Dec 9 11:36:04 2018 (r341763) +++ projects/clang700-import/bin/sh/sh.1 Sun Dec 9 11:39:45 2018 (r341764) @@ -32,7 +32,7 @@ .\" from: @(#)sh.1 8.6 (Berkeley) 5/4/95 .\" $FreeBSD$ .\" -.Dd July 19, 2018 +.Dd December 8, 2018 .Dt SH 1 .Os .Sh NAME @@ -2485,8 +2485,8 @@ lines, suitable for re-input to the shell. See the .Sx Functions subsection. -.It Ic set Oo Fl /+abCEefIimnpTuVvx Oc Oo Fl /+o Ar longname Oc Oo -.Fl c Ar string Oc Op Fl - Ar arg ... +.It Ic set Oo Fl /+abCEefIimnpTuVvx Oc Oo Fl /+o Ar longname +.Oc Op Fl - Ar arg ... The .Ic set command performs three different functions: @@ -2819,7 +2819,11 @@ Shell database. Privileged shell profile. .El .Sh EXIT STATUS -Errors that are detected by the shell, such as a syntax error, will +If the +.Ar script +cannot be found, the exit status will be 127; +if it cannot be opened for another reason, the exit status will be 126. +Other errors that are detected by the shell, such as a syntax error, will cause the shell to exit with a non-zero exit status. If the shell is not an interactive shell, the execution of the shell file will be aborted. Modified: projects/clang700-import/bin/sh/tests/errors/Makefile ============================================================================== --- projects/clang700-import/bin/sh/tests/errors/Makefile Sun Dec 9 11:36:04 2018 (r341763) +++ projects/clang700-import/bin/sh/tests/errors/Makefile Sun Dec 9 11:39:45 2018 (r341764) @@ -30,6 +30,7 @@ ${PACKAGE}FILES+= redirection-error5.0 ${PACKAGE}FILES+= redirection-error6.0 ${PACKAGE}FILES+= redirection-error7.0 ${PACKAGE}FILES+= redirection-error8.0 +${PACKAGE}FILES+= script-error1.0 ${PACKAGE}FILES+= write-error1.0 .include Copied: projects/clang700-import/bin/sh/tests/errors/script-error1.0 (from r341763, head/bin/sh/tests/errors/script-error1.0) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang700-import/bin/sh/tests/errors/script-error1.0 Sun Dec 9 11:39:45 2018 (r341764, copy of r341763, head/bin/sh/tests/errors/script-error1.0) @@ -0,0 +1,5 @@ +# $FreeBSD$ + +{ stderr=$(${SH} /var/empty/nosuchscript 2>&1 >&3); } 3>&1 +r=$? +[ -n "$stderr" ] && [ "$r" = 127 ] Modified: projects/clang700-import/bin/sh/tests/expansion/Makefile ============================================================================== --- projects/clang700-import/bin/sh/tests/expansion/Makefile Sun Dec 9 11:36:04 2018 (r341763) +++ projects/clang700-import/bin/sh/tests/expansion/Makefile Sun Dec 9 11:39:45 2018 (r341764) @@ -86,6 +86,7 @@ ${PACKAGE}FILES+= plus-minus7.0 ${PACKAGE}FILES+= plus-minus8.0 ${PACKAGE}FILES+= plus-minus9.0 ${PACKAGE}FILES+= question1.0 +${PACKAGE}FILES+= question2.0 ${PACKAGE}FILES+= readonly1.0 ${PACKAGE}FILES+= redir1.0 ${PACKAGE}FILES+= set-u1.0 Copied: projects/clang700-import/bin/sh/tests/expansion/question2.0 (from r341763, head/bin/sh/tests/expansion/question2.0) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang700-import/bin/sh/tests/expansion/question2.0 Sun Dec 9 11:39:45 2018 (r341764, copy of r341763, head/bin/sh/tests/expansion/question2.0) @@ -0,0 +1,11 @@ +# $FreeBSD$ + +unset dummyvar +msg=`(: ${dummyvar?}) 2>&1` +r=$? +[ "$r" != 0 ] && case $msg in +*dummyvar?* | *?dummyvar*) : ;; +*) + printf 'Bad message: [%s]\n' "$msg" + exit 1 +esac Modified: projects/clang700-import/contrib/bmake/ChangeLog ============================================================================== --- projects/clang700-import/contrib/bmake/ChangeLog Sun Dec 9 11:36:04 2018 (r341763) +++ projects/clang700-import/contrib/bmake/ChangeLog Sun Dec 9 11:39:45 2018 (r341764) @@ -1,3 +1,14 @@ +2018-09-21 Simon J. Gerraty + + * VERSION: 20180919 + Merge with NetBSD make, pick up + o var.c: add :q + o dir.c: cleanup caching of stats + +2018-09-21 Simon J Gerraty + + * Makefile.config.in: use += where it makes sense. + 2018-05-12 Simon J. Gerraty * VERSION: 20180512 Modified: projects/clang700-import/contrib/bmake/FILES ============================================================================== --- projects/clang700-import/contrib/bmake/FILES Sun Dec 9 11:36:04 2018 (r341763) +++ projects/clang700-import/contrib/bmake/FILES Sun Dec 9 11:39:45 2018 (r341764) @@ -163,6 +163,8 @@ unit-tests/varcmd.exp unit-tests/varcmd.mk unit-tests/varmisc.exp unit-tests/varmisc.mk +unit-tests/varquote.exp +unit-tests/varquote.mk unit-tests/varshell.exp unit-tests/varshell.mk util.c Modified: projects/clang700-import/contrib/bmake/Makefile.config.in ============================================================================== --- projects/clang700-import/contrib/bmake/Makefile.config.in Sun Dec 9 11:36:04 2018 (r341763) +++ projects/clang700-import/contrib/bmake/Makefile.config.in Sun Dec 9 11:39:45 2018 (r341764) @@ -1,6 +1,6 @@ # things set by configure -_MAKE_VERSION=@_MAKE_VERSION@ +_MAKE_VERSION?=@_MAKE_VERSION@ prefix?= @prefix@ srcdir= @srcdir@ @@ -11,9 +11,9 @@ DEFAULT_SYS_PATH?= @default_sys_path@ CPPFLAGS+= @CPPFLAGS@ CFLAGS+= ${CPPFLAGS} @DEFS@ -LDFLAGS= @LDFLAGS@ -LIBOBJS= @LIBOBJS@ -LDADD= @LIBS@ +LDFLAGS+= @LDFLAGS@ +LIBOBJS+= @LIBOBJS@ +LDADD+= @LIBS@ USE_META= @use_meta@ FILEMON_H?= @filemon_h@ BMAKE_PATH_MAX?= @bmake_path_max@ Modified: projects/clang700-import/contrib/bmake/VERSION ============================================================================== --- projects/clang700-import/contrib/bmake/VERSION Sun Dec 9 11:36:04 2018 (r341763) +++ projects/clang700-import/contrib/bmake/VERSION Sun Dec 9 11:39:45 2018 (r341764) @@ -1,2 +1,2 @@ # keep this compatible with sh and make -_MAKE_VERSION=20180512 +_MAKE_VERSION=20180919 Modified: projects/clang700-import/contrib/bmake/bmake.1 ============================================================================== --- projects/clang700-import/contrib/bmake/bmake.1 Sun Dec 9 11:36:04 2018 (r341763) +++ projects/clang700-import/contrib/bmake/bmake.1 Sun Dec 9 11:39:45 2018 (r341764) @@ -1,4 +1,4 @@ -.\" $NetBSD: make.1,v 1.272 2018/04/02 04:26:17 dholland Exp $ +.\" $NetBSD: make.1,v 1.273 2018/05/27 01:14:51 christos Exp $ .\" .\" Copyright (c) 1990, 1993 .\" The Regents of the University of California. All rights reserved. @@ -29,7 +29,7 @@ .\" .\" from: @(#)make.1 8.4 (Berkeley) 3/19/94 .\" -.Dd June 22, 2017 +.Dd May 26, 2018 .Dt BMAKE 1 .Os .Sh NAME @@ -1227,8 +1227,15 @@ due uno quattro tre .Ed .It Cm \&:Q Quotes every shell meta-character in the variable, so that it can be passed +safely to the shell. +.It Cm \&:q +Quotes every shell meta-character in the variable, and also doubles +.Sq $ +characters so that it can be passed safely through recursive invocations of .Nm . +This is equivalent to: +.Sq \&:S/\e\&$/&&/g:Q . .It Cm \&:R Replaces each word in the variable with everything but its suffix. .It Cm \&:range[=count] Modified: projects/clang700-import/contrib/bmake/dir.c ============================================================================== --- projects/clang700-import/contrib/bmake/dir.c Sun Dec 9 11:36:04 2018 (r341763) +++ projects/clang700-import/contrib/bmake/dir.c Sun Dec 9 11:39:45 2018 (r341764) @@ -1,4 +1,4 @@ -/* $NetBSD: dir.c,v 1.71 2017/04/16 21:14:47 riastradh Exp $ */ +/* $NetBSD: dir.c,v 1.73 2018/07/12 18:03:31 christos Exp $ */ /* * Copyright (c) 1988, 1989, 1990 The Regents of the University of California. @@ -70,14 +70,14 @@ */ #ifndef MAKE_NATIVE -static char rcsid[] = "$NetBSD: dir.c,v 1.71 2017/04/16 21:14:47 riastradh Exp $"; +static char rcsid[] = "$NetBSD: dir.c,v 1.73 2018/07/12 18:03:31 christos Exp $"; #else #include #ifndef lint #if 0 static char sccsid[] = "@(#)dir.c 8.2 (Berkeley) 1/2/94"; #else -__RCSID("$NetBSD: dir.c,v 1.71 2017/04/16 21:14:47 riastradh Exp $"); +__RCSID("$NetBSD: dir.c,v 1.73 2018/07/12 18:03:31 christos Exp $"); #endif #endif /* not lint */ #endif @@ -268,15 +268,6 @@ struct cache_st { }; /* minimize changes below */ -static time_t -Hash_GetTimeValue(Hash_Entry *entry) -{ - struct cache_st *cst; - - cst = entry->clientPtr; - return cst->mtime; -} - #define CST_LSTAT 1 #define CST_UPDATE 2 @@ -298,6 +289,10 @@ cached_stats(Hash_Table *htp, const char *pathname, st memset(st, 0, sizeof(*st)); st->st_mtime = cst->mtime; st->st_mode = cst->mode; + if (DEBUG(DIR)) { + fprintf(debug_file, "Using cached time %s for %s\n", + Targ_FmtTime(st->st_mtime), pathname); + } return 0; } @@ -315,6 +310,10 @@ cached_stats(Hash_Table *htp, const char *pathname, st cst = entry->clientPtr; cst->mtime = st->st_mtime; cst->mode = st->st_mode; + if (DEBUG(DIR)) { + fprintf(debug_file, " Caching %s for %s\n", + Targ_FmtTime(st->st_mtime), pathname); + } return 0; } @@ -995,14 +994,6 @@ DirLookupSubdir(Path *p, const char *name) } if (cached_stat(file, &stb) == 0) { - /* - * Save the modification time so if it's needed, we don't have - * to fetch it again. - */ - if (DEBUG(DIR)) { - fprintf(debug_file, " Caching %s for %s\n", Targ_FmtTime(stb.st_mtime), - file); - } nearmisses += 1; return (file); } @@ -1134,7 +1125,6 @@ Dir_FindFile(const char *name, Lst path) Boolean hasLastDot = FALSE; /* true we should search dot last */ Boolean hasSlash; /* true if 'name' contains a / */ struct stat stb; /* Buffer for stat, if necessary */ - Hash_Entry *entry; /* Entry for mtimes table */ const char *trailing_dot = "."; /* @@ -1395,24 +1385,14 @@ Dir_FindFile(const char *name, Lst path) } bigmisses += 1; - entry = Hash_FindEntry(&mtimes, name); - if (entry != NULL) { - if (DEBUG(DIR)) { - fprintf(debug_file, " got it (in mtime cache)\n"); - } - return(bmake_strdup(name)); - } else if (cached_stat(name, &stb) == 0) { - if (DEBUG(DIR)) { - fprintf(debug_file, " Caching %s for %s\n", Targ_FmtTime(stb.st_mtime), - name); - } + if (cached_stat(name, &stb) == 0) { return (bmake_strdup(name)); - } else { - if (DEBUG(DIR)) { - fprintf(debug_file, " failed. Returning NULL\n"); - } - return NULL; } + + if (DEBUG(DIR)) { + fprintf(debug_file, " failed. Returning NULL\n"); + } + return NULL; #endif /* notdef */ } @@ -1518,7 +1498,6 @@ Dir_MTime(GNode *gn, Boolean recheck) { char *fullName; /* the full pathname of name */ struct stat stb; /* buffer for finding the mod time */ - Hash_Entry *entry; if (gn->type & OP_ARCHV) { return Arch_MTime(gn); @@ -1569,17 +1548,7 @@ Dir_MTime(GNode *gn, Boolean recheck) fullName = bmake_strdup(gn->name); } - if (!recheck) - entry = Hash_FindEntry(&mtimes, fullName); - else - entry = NULL; - if (entry != NULL) { - stb.st_mtime = Hash_GetTimeValue(entry); - if (DEBUG(DIR)) { - fprintf(debug_file, "Using cached time %s for %s\n", - Targ_FmtTime(stb.st_mtime), fullName); - } - } else if (cached_stats(&mtimes, fullName, &stb, recheck ? CST_UPDATE : 0) < 0) { + if (cached_stats(&mtimes, fullName, &stb, recheck ? CST_UPDATE : 0) < 0) { if (gn->type & OP_MEMBER) { if (fullName != gn->path) free(fullName); Modified: projects/clang700-import/contrib/bmake/make.1 ============================================================================== --- projects/clang700-import/contrib/bmake/make.1 Sun Dec 9 11:36:04 2018 (r341763) +++ projects/clang700-import/contrib/bmake/make.1 Sun Dec 9 11:39:45 2018 (r341764) @@ -1,4 +1,4 @@ -.\" $NetBSD: make.1,v 1.272 2018/04/02 04:26:17 dholland Exp $ +.\" $NetBSD: make.1,v 1.273 2018/05/27 01:14:51 christos Exp $ .\" .\" Copyright (c) 1990, 1993 .\" The Regents of the University of California. All rights reserved. @@ -29,7 +29,7 @@ .\" .\" from: @(#)make.1 8.4 (Berkeley) 3/19/94 .\" -.Dd September 27, 2018 +.Dd December 5, 2018 .Dt MAKE 1 .Os .Sh NAME @@ -1238,8 +1238,15 @@ due uno quattro tre .Ed .It Cm \&:Q Quotes every shell meta-character in the variable, so that it can be passed +safely to the shell. +.It Cm \&:q +Quotes every shell meta-character in the variable, and also doubles +.Sq $ +characters so that it can be passed safely through recursive invocations of .Nm . +This is equivalent to: +.Sq \&:S/\e\&$/&&/g:Q . .It Cm \&:R Replaces each word in the variable with everything but its suffix. .It Cm \&:range[=count] Modified: projects/clang700-import/contrib/bmake/mk/ChangeLog ============================================================================== --- projects/clang700-import/contrib/bmake/mk/ChangeLog Sun Dec 9 11:36:04 2018 (r341763) +++ projects/clang700-import/contrib/bmake/mk/ChangeLog Sun Dec 9 11:39:45 2018 (r341764) @@ -1,3 +1,25 @@ +2018-09-19 Simon J Gerraty + + * install-mk (MK_VERSION): 20180919 + + * dirdeps-options.mk: .undef cannot handle var that expands to + more than one var. + +2018-07-08 Simon J Gerraty + + * meta.stage.mk: allow wildcards in STAGE_FILES.* etc. + +2018-06-01 Simon J Gerraty + + * meta.autodep.mk: export META_FILES to avoid command line limit + * gendirdeps.mk: if we have lots of .meta files put them in + an @list + +2018-05-28 Simon J Gerraty + + * dirdeps-options.mk: use local.dirdeps-options.mk + not local.dirdeps-option.mk + 2018-04-20 Simon J Gerraty * install-mk (MK_VERSION): 20180420 Modified: projects/clang700-import/contrib/bmake/mk/dirdeps-options.mk ============================================================================== --- projects/clang700-import/contrib/bmake/mk/dirdeps-options.mk Sun Dec 9 11:36:04 2018 (r341763) +++ projects/clang700-import/contrib/bmake/mk/dirdeps-options.mk Sun Dec 9 11:39:45 2018 (r341764) @@ -1,4 +1,4 @@ -# $Id: dirdeps-options.mk,v 1.5 2018/04/18 15:53:57 sjg Exp $ +# $Id: dirdeps-options.mk,v 1.9 2018/09/20 00:07:19 sjg Exp $ # # @(#) Copyright (c) 2018, Simon J. Gerraty # @@ -25,7 +25,7 @@ # If a Makefile.depend.options file exists, it will be included by # dirdeps.mk and meta.autodep.mk # -# We include local.dirdeps-option.mk which may also define DIRDEPS.* +# We include local.dirdeps-options.mk which may also define DIRDEPS.* # for options. # # Thus a directory, that is affected by an option FOO would have @@ -35,7 +35,7 @@ # DIRDEPS.FOO.yes # DIRDEPS.FOO.no # to whatever applies for that dir, or it can rely on globals -# set in local.dirdeps-option.mk +# set in local.dirdeps-options.mk # Either way, we will .undef DIRDEPS.* when done. # This should have been set by Makefile.depend.options @@ -43,7 +43,7 @@ DIRDEPS_OPTIONS ?= # pickup any DIRDEPS.* we need -.-include +.-include .if ${.MAKE.LEVEL} == 0 # :U below avoids potential errors when we := @@ -52,7 +52,10 @@ DIRDEPS += ${DIRDEPS.$o.${MK_$o:U}:U} .endfor DIRDEPS := ${DIRDEPS:O:u} # avoid cross contamination -.undef ${DIRDEPS_OPTIONS:tu:@o@DIRDEPS.$o.yes DIRDEPS.$o.no@} +.for o in ${DIRDEPS_OPTIONS:tu} +.undef DIRDEPS.$o.yes +.undef DIRDEPS.$o.no +.endfor .else # whether options are enabled or not, # we want to filter out the relevant DIRDEPS.* Modified: projects/clang700-import/contrib/bmake/mk/dirdeps.mk ============================================================================== --- projects/clang700-import/contrib/bmake/mk/dirdeps.mk Sun Dec 9 11:36:04 2018 (r341763) +++ projects/clang700-import/contrib/bmake/mk/dirdeps.mk Sun Dec 9 11:39:45 2018 (r341764) @@ -1,4 +1,4 @@ -# $Id: dirdeps.mk,v 1.95 2018/04/23 17:53:56 sjg Exp $ +# $Id: dirdeps.mk,v 1.96 2018/06/20 22:26:39 sjg Exp $ # Copyright (c) 2010-2013, Juniper Networks, Inc. # All rights reserved. @@ -731,6 +731,8 @@ DIRDEPS = .info loading ${_m} for ${d:E} .endif .include <${_m}> +.else +.-include .endif .endif .endif @@ -746,7 +748,7 @@ DIRDEPS = DEP_RELDIR := ${RELDIR} _DEP_RELDIR := ${RELDIR} # Since we are/should be included by .MAKE.DEPENDFILE -# is is a final opportunity to add/hook global rules. +# This is a final opportunity to add/hook global rules. .-include # pickup local dependencies Modified: projects/clang700-import/contrib/bmake/mk/gendirdeps.mk ============================================================================== --- projects/clang700-import/contrib/bmake/mk/gendirdeps.mk Sun Dec 9 11:36:04 2018 (r341763) +++ projects/clang700-import/contrib/bmake/mk/gendirdeps.mk Sun Dec 9 11:39:45 2018 (r341764) @@ -1,4 +1,4 @@ -# $Id: gendirdeps.mk,v 1.38 2018/03/10 00:53:52 sjg Exp $ +# $Id: gendirdeps.mk,v 1.39 2018/06/08 01:25:31 sjg Exp $ # Copyright (c) 2010-2013, Juniper Networks, Inc. # All rights reserved. @@ -171,11 +171,27 @@ GENDIRDEPS_SEDCMDS += \ # we canonicalize them to keep things simple # if we are using a split-fs sandbox, it gets a little messier. _objtop := ${_OBJTOP:tA} + +# some people put *.meta in META_XTRAS to make sure we get here +_meta_files := ${META_FILES:N\*.meta:O:u} +# assume a big list +_meta_files_arg= @meta.list +.if empty(_meta_files) && ${META_FILES:M\*.meta} != "" +# XXX this should be considered a bad idea, +# since we cannot ignore stale .meta +x != cd ${_OBJDIR} && find . -name '*.meta' -print -o \( -type d ! -name . -prune \) | sed 's,^./,,' > meta.list; echo +.elif ${_meta_files:[#]} > 500 +.export _meta_files +x != echo; for m in $$_meta_files; do echo $$m; done > meta.list +.else +_meta_files_arg:= ${_meta_files} +.endif + dir_list != cd ${_OBJDIR} && \ ${META2DEPS_CMD} MACHINE=${MACHINE} \ SRCTOP=${SRCTOP} RELDIR=${RELDIR} CURDIR=${_CURDIR} \ ${META2DEPS_ARGS} \ - ${META_FILES:O:u} | ${META2DEPS_FILTER} ${_skip_gendirdeps} \ + ${_meta_files_arg} | ${META2DEPS_FILTER} ${_skip_gendirdeps} \ sed ${GENDIRDEPS_SEDCMDS} .if ${dir_list:M*ERROR\:*} != "" Modified: projects/clang700-import/contrib/bmake/mk/install-mk ============================================================================== --- projects/clang700-import/contrib/bmake/mk/install-mk Sun Dec 9 11:36:04 2018 (r341763) +++ projects/clang700-import/contrib/bmake/mk/install-mk Sun Dec 9 11:39:45 2018 (r341764) @@ -55,7 +55,7 @@ # Simon J. Gerraty # RCSid: -# $Id: install-mk,v 1.156 2018/04/22 04:42:47 sjg Exp $ +# $Id: install-mk,v 1.160 2018/09/20 00:07:19 sjg Exp $ # # @(#) Copyright (c) 1994 Simon J. Gerraty # @@ -70,7 +70,7 @@ # sjg@crufty.net # -MK_VERSION=20180420 +MK_VERSION=20180919 OWNER= GROUP= MODE=444 Modified: projects/clang700-import/contrib/bmake/mk/meta.autodep.mk ============================================================================== --- projects/clang700-import/contrib/bmake/mk/meta.autodep.mk Sun Dec 9 11:36:04 2018 (r341763) +++ projects/clang700-import/contrib/bmake/mk/meta.autodep.mk Sun Dec 9 11:39:45 2018 (r341764) @@ -1,4 +1,4 @@ -# $Id: meta.autodep.mk,v 1.48 2018/04/15 06:30:04 sjg Exp $ +# $Id: meta.autodep.mk,v 1.50 2018/06/08 01:25:31 sjg Exp $ # # @(#) Copyright (c) 2010, Simon J. Gerraty @@ -20,9 +20,11 @@ __${_this}__: .NOTMAIN .-include +PICO?= .pico + .if defined(SRCS) # it would be nice to be able to query .SUFFIXES -OBJ_EXTENSIONS+= .o .po .lo .So +OBJ_EXTENSIONS+= .o .po .lo ${PICO} # explicit dependencies help short-circuit .SUFFIX searches SRCS_DEP_FILTER+= N*.[hly] @@ -178,7 +180,7 @@ DEPEND_SUFFIXES += .c .h .cpp .hpp .cxx .hxx .cc .hh @case "${.MAKE.META.FILES:T:M*.po.*}" in \ *.po.*) mv $@.${.MAKE.PID} $@;; \ *) { cat $@.${.MAKE.PID}; \ - sed 's,\.So:,.o:,;s,\.o:,.po:,' $@.${.MAKE.PID}; } | sort -u > $@; \ + sed 's,\${PICO}:,.o:,;s,\.o:,.po:,' $@.${.MAKE.PID}; } | sort -u > $@; \ rm -f $@.${.MAKE.PID};; \ esac .else @@ -243,7 +245,7 @@ META_FILES = *.meta .elif ${OPTIMIZE_OBJECT_META_FILES:Uno:tl} == "no" META_FILES = ${.MAKE.META.FILES:T:N.depend*:O:u} .else -# if we have 1000's of .o.meta, .So.meta etc we need only look at one set +# if we have 1000's of .o.meta, ${PICO}.meta etc we need only look at one set # it is left as an exercise for the reader to work out what this does META_FILES = ${.MAKE.META.FILES:T:N.depend*:N*o.meta:O:u} \ ${.MAKE.META.FILES:T:M*.${.MAKE.META.FILES:M*o.meta:R:E:O:u:[1]}.meta:O:u} @@ -260,6 +262,9 @@ META_FILES = ${.MAKE.META.FILES:T:N.depend*:N*o.meta:O .if !empty(GENDIRDEPS_FILTER) .export GENDIRDEPS_FILTER .endif +# export to avoid blowing command line limit +META_FILES := ${META_XTRAS:U:O:u} ${META_FILES:U:T:O:u:${META_FILE_FILTER:ts:}} +.export META_FILES .endif # we might have .../ in MAKESYSPATH @@ -270,8 +275,7 @@ ${_DEPENDFILE}: ${_depend} ${.PARSEDIR}/gendirdeps.mk SKIP_GENDIRDEPS='${SKIP_GENDIRDEPS:O:u}' \ DPADD='${FORCE_DPADD:O:u}' ${_gendirdeps_mutex} \ MAKESYSPATH=${_makesyspath} \ - ${.MAKE} -f gendirdeps.mk RELDIR=${RELDIR} _DEPENDFILE=${_DEPENDFILE} \ - META_FILES='${META_XTRAS:O:u} ${META_FILES:T:O:u:${META_FILE_FILTER:ts:}}') + ${.MAKE} -f gendirdeps.mk RELDIR=${RELDIR} _DEPENDFILE=${_DEPENDFILE}) @test -s $@ && touch $@; : .endif Modified: projects/clang700-import/contrib/bmake/mk/meta.stage.mk ============================================================================== --- projects/clang700-import/contrib/bmake/mk/meta.stage.mk Sun Dec 9 11:36:04 2018 (r341763) +++ projects/clang700-import/contrib/bmake/mk/meta.stage.mk Sun Dec 9 11:39:45 2018 (r341764) @@ -1,4 +1,4 @@ -# $Id: meta.stage.mk,v 1.55 2017/10/27 01:17:09 sjg Exp $ +# $Id: meta.stage.mk,v 1.56 2018/07/08 17:12:54 sjg Exp $ # # @(#) Copyright (c) 2011-2017, Simon J. Gerraty # @@ -141,7 +141,7 @@ _STAGE_AS_BASENAME_USE: .USE .dirdep ${.TARGET: .if !empty(STAGE_INCSDIR) .if !empty(STAGE_INCS) -stage_incs: ${STAGE_INCS} +stage_incs: ${STAGE_INCS:N*\**} .endif .if target(stage_incs) || !empty(.ALLTARGETS:Mstage_includes) STAGE_TARGETS += stage_incs @@ -156,7 +156,7 @@ stage_incs: .dirdep .if !empty(STAGE_LIBDIR) .if !empty(STAGE_LIBS) -stage_libs: ${STAGE_LIBS} +stage_libs: ${STAGE_LIBS:N*\**} .endif .if target(stage_libs) STAGE_TARGETS += stage_libs @@ -191,7 +191,7 @@ CLEANFILES += ${STAGE_SETS:@s@stage*$s@} # some makefiles need to populate multiple directories .for s in ${STAGE_SETS:O:u} .if !empty(STAGE_FILES.$s) -stage_files.$s: ${STAGE_FILES.$s} +stage_files.$s: ${STAGE_FILES.$s:N*\**} .endif .if target(stage_files.$s) || target(stage_files${s:S,^,.,:N._default}) STAGE_TARGETS += stage_files @@ -262,7 +262,7 @@ CLEANFILES += ${STAGE_AS_SETS:@s@stage*$s@} # both operations happen together .for s in ${STAGE_AS_SETS:O:u} .if !empty(STAGE_AS.$s) -stage_as.$s: ${STAGE_AS.$s} +stage_as.$s: ${STAGE_AS.$s:N*\**} .endif .if target(stage_as.$s) STAGE_TARGETS += stage_as @@ -277,7 +277,7 @@ stage_as.$s: .dirdep .endif .if !empty(STAGE_AS_AND_SYMLINK.$s) -stage_as_and_symlink.$s: ${STAGE_AS_AND_SYMLINK.$s} +stage_as_and_symlink.$s: ${STAGE_AS_AND_SYMLINK.$s:N*\**} .endif .if target(stage_as_and_symlink.$s) STAGE_TARGETS += stage_as_and_symlink Modified: projects/clang700-import/contrib/bmake/unit-tests/Makefile.in ============================================================================== --- projects/clang700-import/contrib/bmake/unit-tests/Makefile.in Sun Dec 9 11:36:04 2018 (r341763) +++ projects/clang700-import/contrib/bmake/unit-tests/Makefile.in Sun Dec 9 11:39:45 2018 (r341764) @@ -1,6 +1,6 @@ -# $Id: Makefile.in,v 1.48 2015/12/07 04:06:29 sjg Exp $ +# $Id: Makefile.in,v 1.49 2018/09/21 21:39:05 sjg Exp $ # -# $NetBSD: Makefile,v 1.52 2015/05/05 21:51:09 sjg Exp $ +# $NetBSD: Makefile,v 1.53 2018/05/24 00:25:44 christos Exp $ # # Unit tests for make(1) # The main targets are: @@ -54,6 +54,7 @@ TESTNAMES= \ unexport-env \ varcmd \ varmisc \ + varquote \ varshell # these tests were broken by referting POSIX chanegs Copied: projects/clang700-import/contrib/bmake/unit-tests/varquote.exp (from r341763, head/contrib/bmake/unit-tests/varquote.exp) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang700-import/contrib/bmake/unit-tests/varquote.exp Sun Dec 9 11:39:45 2018 (r341764, copy of r341763, head/contrib/bmake/unit-tests/varquote.exp) @@ -0,0 +1,3 @@ +-fdebug-prefix-map=$NETBSDSRCDIR=/usr/src -fdebug-regex-map=/usr/src/(.*)/obj$=/usr/obj/\1 +-fdebug-prefix-map=$NETBSDSRCDIR=/usr/src -fdebug-regex-map=/usr/src/(.*)/obj$=/usr/obj/\1 +exit status 0 Copied: projects/clang700-import/contrib/bmake/unit-tests/varquote.mk (from r341763, head/contrib/bmake/unit-tests/varquote.mk) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang700-import/contrib/bmake/unit-tests/varquote.mk Sun Dec 9 11:39:45 2018 (r341764, copy of r341763, head/contrib/bmake/unit-tests/varquote.mk) @@ -0,0 +1,14 @@ +# $NetBSD: varquote.mk,v 1.2 2018/05/27 01:14:51 christos Exp $ +# +# Test VAR:q modifier + +.if !defined(REPROFLAGS) +REPROFLAGS+= -fdebug-prefix-map=\$$NETBSDSRCDIR=/usr/src +REPROFLAGS+= -fdebug-regex-map='/usr/src/(.*)/obj$$=/usr/obj/\1' +all: + @${MAKE} -f ${MAKEFILE} REPROFLAGS=${REPROFLAGS:S/\$/&&/g:Q} + @${MAKE} -f ${MAKEFILE} REPROFLAGS=${REPROFLAGS:q} +.else +all: + @echo ${REPROFLAGS} +.endif Modified: projects/clang700-import/contrib/bmake/var.c ============================================================================== --- projects/clang700-import/contrib/bmake/var.c Sun Dec 9 11:36:04 2018 (r341763) +++ projects/clang700-import/contrib/bmake/var.c Sun Dec 9 11:39:45 2018 (r341764) @@ -1,4 +1,4 @@ -/* $NetBSD: var.c,v 1.218 2018/02/18 00:52:42 sjg Exp $ */ +/* $NetBSD: var.c,v 1.220 2018/05/27 01:14:51 christos Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -69,14 +69,14 @@ */ #ifndef MAKE_NATIVE -static char rcsid[] = "$NetBSD: var.c,v 1.218 2018/02/18 00:52:42 sjg Exp $"; +static char rcsid[] = "$NetBSD: var.c,v 1.220 2018/05/27 01:14:51 christos Exp $"; #else #include #ifndef lint #if 0 static char sccsid[] = "@(#)var.c 8.3 (Berkeley) 3/19/94"; #else -__RCSID("$NetBSD: var.c,v 1.218 2018/02/18 00:52:42 sjg Exp $"); +__RCSID("$NetBSD: var.c,v 1.220 2018/05/27 01:14:51 christos Exp $"); #endif #endif /* not lint */ #endif @@ -324,7 +324,7 @@ static Boolean VarLoopExpand(GNode *, Var_Parse_State static char *VarGetPattern(GNode *, Var_Parse_State *, int, const char **, int, int *, int *, VarPattern *); -static char *VarQuote(char *); +static char *VarQuote(char *, Boolean); static char *VarHash(char *); static char *VarModify(GNode *, Var_Parse_State *, const char *, @@ -2315,6 +2315,7 @@ VarGetPattern(GNode *ctxt, Var_Parse_State *vpstate MA *----------------------------------------------------------------------- * VarQuote -- * Quote shell meta-characters and space characters in the string + * if quoteDollar is set, also quote and double any '$' characters. * * Results: * The quoted string @@ -2325,7 +2326,7 @@ VarGetPattern(GNode *ctxt, Var_Parse_State *vpstate MA *----------------------------------------------------------------------- */ static char * -VarQuote(char *str) +VarQuote(char *str, Boolean quoteDollar) { Buffer buf; @@ -2346,6 +2347,8 @@ VarQuote(char *str) if (isspace((unsigned char)*str) || ismeta((unsigned char)*str)) Buf_AddByte(&buf, '\\'); Buf_AddByte(&buf, *str); + if (quoteDollar && *str == '$') + Buf_AddBytes(&buf, 2, "\\$"); } str = Buf_Destroy(&buf, FALSE); @@ -3485,9 +3488,10 @@ ApplyModifiers(char *nstr, const char *tstr, break; } #endif + case 'q': case 'Q': if (tstr[1] == endc || tstr[1] == ':') { - newStr = VarQuote(nstr); + newStr = VarQuote(nstr, modifier == 'q'); cp = tstr + 1; termc = *cp; break; Modified: projects/clang700-import/contrib/ipfilter/ip_fil.c ============================================================================== --- projects/clang700-import/contrib/ipfilter/ip_fil.c Sun Dec 9 11:36:04 2018 (r341763) +++ projects/clang700-import/contrib/ipfilter/ip_fil.c Sun Dec 9 11:39:45 2018 (r341764) @@ -482,14 +482,7 @@ ipf_fastroute(m, mpp, fin, fdp) m->mb_ifp = ifp; printpacket(fin->fin_out, m); -#if defined(__sgi) && (IRIX < 60500) - (*ifp->if_output)(ifp, (void *)ip, NULL); -# if TRU64 >= 1885 - (*ifp->if_output)(ifp, (void *)m, NULL, 0, 0); -# else (*ifp->if_output)(ifp, (void *)m, NULL, 0); -# endif -#endif done: fin->fin_ifp = sifp; fin->fin_out = sout; Modified: projects/clang700-import/contrib/ipfilter/ipsend/ip.c ============================================================================== --- projects/clang700-import/contrib/ipfilter/ipsend/ip.c Sun Dec 9 11:36:04 2018 (r341763) +++ projects/clang700-import/contrib/ipfilter/ipsend/ip.c Sun Dec 9 11:39:45 2018 (r341764) @@ -67,9 +67,9 @@ int send_ether(nfd, buf, len, gwip) bcopy((char *)buf, s + sizeof(*eh), len); if (gwip.s_addr == last_gw.s_addr) { - bcopy(last_arp, (char *)A_A eh->ether_dhost, 6); + bcopy(last_arp, (char *) &eh->ether_dhost, 6); } - else if (arp((char *)&gwip, (char *)A_A eh->ether_dhost) == -1) + else if (arp((char *)&gwip, (char *) &eh->ether_dhost) == -1) { perror("arp"); return -2; @@ -109,17 +109,17 @@ int send_ip(nfd, mtu, ip, gwip, frag) eh = (ether_header_t *)ipbuf; - bzero((char *)A_A eh->ether_shost, sizeof(eh->ether_shost)); + bzero((char *) &eh->ether_shost, sizeof(eh->ether_shost)); if (last_gw.s_addr && (gwip.s_addr == last_gw.s_addr)) { - bcopy(last_arp, (char *)A_A eh->ether_dhost, 6); + bcopy(last_arp, (char *) &eh->ether_dhost, 6); } - else if (arp((char *)&gwip, (char *)A_A eh->ether_dhost) == -1) + else if (arp((char *)&gwip, (char *) &eh->ether_dhost) == -1) { perror("arp"); return -2; } - bcopy((char *)A_A eh->ether_dhost, last_arp, sizeof(last_arp)); + bcopy((char *) &eh->ether_dhost, last_arp, sizeof(last_arp)); eh->ether_type = htons(ETHERTYPE_IP); bcopy((char *)ip, (char *)&ipsv, sizeof(*ip)); @@ -136,11 +136,11 @@ int send_ip(nfd, mtu, ip, gwip, frag) } if (ip->ip_src.s_addr != local_ip.s_addr) { - (void) arp((char *)&ip->ip_src, (char *)A_A local_arp); - bcopy(local_arp, (char *)A_A eh->ether_shost,sizeof(last_arp)); + (void) arp((char *)&ip->ip_src, (char *) &local_arp); + bcopy(local_arp, (char *) &eh->ether_shost,sizeof(last_arp)); local_ip = ip->ip_src; } else - bcopy(local_arp, (char *)A_A eh->ether_shost, 6); + bcopy(local_arp, (char *) &eh->ether_shost, 6); if (!frag || (sizeof(*eh) + iplen < mtu)) { Modified: projects/clang700-import/contrib/ipfilter/ipsend/resend.c ============================================================================== --- projects/clang700-import/contrib/ipfilter/ipsend/resend.c Sun Dec 9 11:36:04 2018 (r341763) +++ projects/clang700-import/contrib/ipfilter/ipsend/resend.c Sun Dec 9 11:39:45 2018 (r341764) @@ -97,7 +97,7 @@ int ip_resend(dev, mtu, r, gwip, datain) return -2; } - bzero((char *)A_A eh->ether_shost, sizeof(eh->ether_shost)); + bzero((char *) &eh->ether_shost, sizeof(eh->ether_shost)); if (gwip.s_addr && (arp((char *)&gwip, dhost) == -1)) { perror("arp"); @@ -113,12 +113,12 @@ int ip_resend(dev, mtu, r, gwip, datain) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Tue Dec 11 06:45:54 2018 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DA3BF1323678 for ; Tue, 11 Dec 2018 06:45:54 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 75DEA86C19; Tue, 11 Dec 2018 06:45:54 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ABA42BE50; Tue, 11 Dec 2018 06:45:54 +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 wBB6jsbx067245; Tue, 11 Dec 2018 06:45:54 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBB6js8A067244; Tue, 11 Dec 2018 06:45:54 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201812110645.wBB6js8A067244@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 11 Dec 2018 06:45:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r341812 - projects/clang700-import/share/mk X-SVN-Group: projects X-SVN-Commit-Author: dim X-SVN-Commit-Paths: projects/clang700-import/share/mk X-SVN-Commit-Revision: 341812 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 75DEA86C19 X-Spamd-Result: default: False [-2.96 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_LONG(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.97)[-0.967,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Dec 2018 06:45:55 -0000 Author: dim Date: Tue Dec 11 06:45:53 2018 New Revision: 341812 URL: https://svnweb.freebsd.org/changeset/base/341812 Log: For arm and armv6, only enable LLVM target support for arm by default, to shrink libllvm.a. This is a workaround for "relocation truncated to fit" errors with BFD ld 2.17.50 on arm and armv6, when linking executables against it. The required range extensions are not yet supported by this very old version of BFD ld. When arm and armv6 userland can be successfully linked by lld, this workaround can be removed. Modified: projects/clang700-import/share/mk/src.opts.mk Modified: projects/clang700-import/share/mk/src.opts.mk ============================================================================== --- projects/clang700-import/share/mk/src.opts.mk Tue Dec 11 05:10:22 2018 (r341811) +++ projects/clang700-import/share/mk/src.opts.mk Tue Dec 11 06:45:53 2018 (r341812) @@ -269,6 +269,10 @@ __LLVM_TARGET_FILT= C/(amd64|i386)/x86/:S/sparc64/spar # Default the given TARGET's LLVM_TARGET support to the value of MK_CLANG. .if ${__TT:${__LLVM_TARGET_FILT}} == ${__llt} __DEFAULT_DEPENDENT_OPTIONS+= LLVM_TARGET_${__llt:${__LLVM_TARGET_FILT}:tu}/CLANG +# Disable other targets for arm and armv6, to work around "relocation truncated +# to fit" errors with BFD ld, since libllvm.a will get too large to link. +.elif ${__T} == "arm" || ${__T} == "armv6" +__DEFAULT_NO_OPTIONS+=LLVM_TARGET_${__llt:tu} # aarch64 needs arm for -m32 support. .elif ${__TT} == "arm64" && ${__llt} == "arm" __DEFAULT_DEPENDENT_OPTIONS+= LLVM_TARGET_ARM/LLVM_TARGET_AARCH64 From owner-svn-src-projects@freebsd.org Tue Dec 11 06:47:13 2018 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id ED08113236AC for ; Tue, 11 Dec 2018 06:47:12 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9CFCA86D1B; Tue, 11 Dec 2018 06:47: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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E54AE2BE52; Tue, 11 Dec 2018 06:47: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 wBB6l9OH067381; Tue, 11 Dec 2018 06:47:09 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBB6l57V067356; Tue, 11 Dec 2018 06:47:05 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201812110647.wBB6l57V067356@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 11 Dec 2018 06:47:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r341813 - in projects/clang700-import: . lib/libc/sys libexec/rc sbin/ipfw sbin/ping share/vt/keymaps stand/powerpc/uboot sys/arm/include sys/cam/scsi sys/compat/linuxkpi/common/include... X-SVN-Group: projects X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in projects/clang700-import: . lib/libc/sys libexec/rc sbin/ipfw sbin/ping share/vt/keymaps stand/powerpc/uboot sys/arm/include sys/cam/scsi sys/compat/linuxkpi/common/include/asm sys/dev/ahci sys/dev... X-SVN-Commit-Revision: 341813 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 9CFCA86D1B X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.97)[-0.972,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-0.999,0] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Dec 2018 06:47:13 -0000 Author: dim Date: Tue Dec 11 06:47:04 2018 New Revision: 341813 URL: https://svnweb.freebsd.org/changeset/base/341813 Log: Merge ^/head r341764 through r341812. Added: projects/clang700-import/share/vt/keymaps/uk.macbook.kbd - copied unchanged from r341812, head/share/vt/keymaps/uk.macbook.kbd projects/clang700-import/stand/powerpc/uboot/ppc64_elf_freebsd.c - copied unchanged from r341812, head/stand/powerpc/uboot/ppc64_elf_freebsd.c Deleted: projects/clang700-import/sys/mips/conf/ADM5120.hints projects/clang700-import/sys/mips/conf/IDT.hints Modified: projects/clang700-import/Makefile.inc1 projects/clang700-import/lib/libc/sys/getfh.2 projects/clang700-import/libexec/rc/rc.subr projects/clang700-import/sbin/ipfw/ipfw2.c projects/clang700-import/sbin/ping/ping.c projects/clang700-import/share/vt/keymaps/INDEX.keymaps projects/clang700-import/share/vt/keymaps/Makefile projects/clang700-import/stand/powerpc/uboot/Makefile projects/clang700-import/stand/powerpc/uboot/conf.c projects/clang700-import/sys/arm/include/atomic.h projects/clang700-import/sys/cam/scsi/scsi_all.c projects/clang700-import/sys/compat/linuxkpi/common/include/asm/atomic-long.h projects/clang700-import/sys/compat/linuxkpi/common/include/asm/atomic.h projects/clang700-import/sys/dev/ahci/ahci_pci.c projects/clang700-import/sys/dev/md/md.c projects/clang700-import/sys/dev/rtwn/usb/rtwn_usb_attach.h projects/clang700-import/sys/dev/sfxge/common/efx.h projects/clang700-import/sys/dev/sfxge/common/efx_nic.c projects/clang700-import/sys/dev/sfxge/sfxge.c projects/clang700-import/sys/dev/sfxge/sfxge.h projects/clang700-import/sys/dev/sfxge/sfxge_ev.c projects/clang700-import/sys/dev/sfxge/sfxge_tx.c projects/clang700-import/sys/dev/sfxge/sfxge_tx.h projects/clang700-import/sys/dev/usb/usbdevs projects/clang700-import/sys/dev/usb/wlan/if_rsu.c projects/clang700-import/sys/kern/kern_sig.c projects/clang700-import/sys/kern/kern_thread.c projects/clang700-import/sys/kern/subr_blist.c projects/clang700-import/sys/kern/vfs_syscalls.c projects/clang700-import/sys/mips/include/atomic.h projects/clang700-import/sys/modules/Makefile projects/clang700-import/sys/powerpc/aim/aim_machdep.c projects/clang700-import/sys/powerpc/booke/locore.S projects/clang700-import/sys/powerpc/include/atomic.h projects/clang700-import/sys/powerpc/include/trap.h projects/clang700-import/sys/powerpc/mpc85xx/platform_mpc85xx.c projects/clang700-import/sys/powerpc/powerpc/db_trace.c projects/clang700-import/sys/powerpc/powerpc/trap.c projects/clang700-import/sys/riscv/riscv/pmap.c projects/clang700-import/sys/x86/x86/mp_x86.c projects/clang700-import/tests/sys/kern/ptrace_test.c projects/clang700-import/usr.bin/truss/main.c Directory Properties: projects/clang700-import/ (props changed) Modified: projects/clang700-import/Makefile.inc1 ============================================================================== --- projects/clang700-import/Makefile.inc1 Tue Dec 11 06:45:53 2018 (r341812) +++ projects/clang700-import/Makefile.inc1 Tue Dec 11 06:47:04 2018 (r341813) @@ -977,6 +977,14 @@ _cleanobj_fast_depend_hack: .PHONY rm -f ${OBJTOP}/usr.sbin/ntp/libntpevent/.depend.*; \ fi +# 20181209 r341759 track migration across wpa update + @if [ -e "${OBJTOP}/usr.sbin/wpa/wpa_supplicant/.depend.rrm.o" ] && \ + egrep -q 'src/ap/rrm.c' \ + ${OBJTOP}/usr.sbin/wpa/wpa_supplicant/.depend.rrm.o; then \ + echo "Removing stale wpa dependencies and objects"; \ + rm -f ${OBJTOP}/usr.sbin/wpa/*/.depend*; \ + fi + _worldtmp: .PHONY @echo @echo "--------------------------------------------------------------" Modified: projects/clang700-import/lib/libc/sys/getfh.2 ============================================================================== --- projects/clang700-import/lib/libc/sys/getfh.2 Tue Dec 11 06:45:53 2018 (r341812) +++ projects/clang700-import/lib/libc/sys/getfh.2 Tue Dec 11 06:47:04 2018 (r341813) @@ -29,7 +29,7 @@ .\" @(#)getfh.2 8.1 (Berkeley) 6/9/93 .\" $FreeBSD$ .\" -.Dd December 7, 2018 +.Dd December 11, 2018 .Dt GETFH 2 .Os .Sh NAME @@ -76,12 +76,12 @@ and .Fn lgetfh except when the .Fa path -specifies a relative or NULL path, or the +specifies a relative path, or the .Dv AT_BENEATH flag is provided. For .Fn getfhat -and relative or NULL +and relative .Fa path , the status is retrieved from a file relative to the directory associated with the file descriptor Modified: projects/clang700-import/libexec/rc/rc.subr ============================================================================== --- projects/clang700-import/libexec/rc/rc.subr Tue Dec 11 06:45:53 2018 (r341812) +++ projects/clang700-import/libexec/rc/rc.subr Tue Dec 11 06:47:04 2018 (r341813) @@ -58,17 +58,29 @@ JID=0 # --------- # list_vars pattern -# List vars matching pattern. +# List variables matching glob pattern. # list_vars() { - set | { while read LINE; do - var="${LINE%%=*}" - case "$var" in - "$LINE"|*[!a-zA-Z0-9_]*) continue ;; - $1) echo $var + # Localize 'set' option below. + local - + local IFS=$'\n' line varname + + # Disable path expansion in unquoted 'for' parameters below. + set -o noglob + + for line in $(set); do + varname="${line%%=*}" + + case "$varname" in + "$line"|*[!a-zA-Z0-9_]*) + continue + ;; + $1) + echo $varname + ;; esac - done; } + done } # set_rcvar [var] [defval] [desc] Modified: projects/clang700-import/sbin/ipfw/ipfw2.c ============================================================================== --- projects/clang700-import/sbin/ipfw/ipfw2.c Tue Dec 11 06:45:53 2018 (r341812) +++ projects/clang700-import/sbin/ipfw/ipfw2.c Tue Dec 11 06:47:04 2018 (r341813) @@ -1256,7 +1256,8 @@ print_ip(struct buf_pr *bp, const struct format_opts * (cmd->o.opcode == O_IP_SRC || cmd->o.opcode == O_IP_DST) ? 32 : contigmask((uint8_t *)&(a[1]), 32); if (mb == 32 && co.do_resolv) - he = gethostbyaddr((char *)&(a[0]), sizeof(u_long), AF_INET); + he = gethostbyaddr((char *)&(a[0]), sizeof(in_addr_t), + AF_INET); if (he != NULL) /* resolved to name */ bprintf(bp, "%s", he->h_name); else if (mb == 0) /* any */ @@ -1510,6 +1511,7 @@ print_instruction(struct buf_pr *bp, const struct form bprintf(bp, " %s", pe->p_name); else bprintf(bp, " %u", cmd->arg1); + state->proto = cmd->arg1; break; case O_MACADDR2: print_mac(bp, insntod(cmd, mac)); @@ -1991,10 +1993,10 @@ print_proto(struct buf_pr *bp, struct format_opts *fo, struct show_state *state) { ipfw_insn *cmd; - int l, proto, ip4, ip6, tmp; + int l, proto, ip4, ip6; /* Count all O_PROTO, O_IP4, O_IP6 instructions. */ - proto = tmp = ip4 = ip6 = 0; + proto = ip4 = ip6 = 0; for (l = state->rule->act_ofs, cmd = state->rule->cmd; l > 0; l -= F_LEN(cmd), cmd += F_LEN(cmd)) { switch (cmd->opcode) { @@ -2030,18 +2032,13 @@ print_proto(struct buf_pr *bp, struct format_opts *fo, if (cmd == NULL || (cmd->len & F_OR)) for (l = proto; l > 0; l--) { cmd = print_opcode(bp, fo, state, O_PROTO); - if (cmd != NULL && (cmd->len & F_OR) == 0) + if (cmd == NULL || (cmd->len & F_OR) == 0) break; - tmp = cmd->arg1; } /* Initialize proto, it is used by print_newports() */ - if (tmp != 0) - state->proto = tmp; - else if (ip6 != 0) - state->proto = IPPROTO_IPV6; - else - state->proto = IPPROTO_IP; state->flags |= HAVE_PROTO; + if (state->proto == 0 && ip6 != 0) + state->proto = IPPROTO_IPV6; } static int Modified: projects/clang700-import/sbin/ping/ping.c ============================================================================== --- projects/clang700-import/sbin/ping/ping.c Tue Dec 11 06:45:53 2018 (r341812) +++ projects/clang700-import/sbin/ping/ping.c Tue Dec 11 06:47:04 2018 (r341813) @@ -313,7 +313,7 @@ main(int argc, char *const *argv) break; case 'c': ltmp = strtol(optarg, &ep, 0); - if (*ep || ep == optarg || ltmp > LONG_MAX || ltmp <=0) + if (*ep || ep == optarg || ltmp <= 0) errx(EX_USAGE, "invalid count of packets to transmit: `%s'", optarg); Modified: projects/clang700-import/share/vt/keymaps/INDEX.keymaps ============================================================================== --- projects/clang700-import/share/vt/keymaps/INDEX.keymaps Tue Dec 11 06:45:53 2018 (r341812) +++ projects/clang700-import/share/vt/keymaps/INDEX.keymaps Tue Dec 11 06:47:04 2018 (r341813) @@ -520,6 +520,12 @@ uk.dvorak.kbd:fr:Royaume Uni Dvorak uk.dvorak.kbd:pt:Reino Unido Dvorak uk.dvorak.kbd:es:Británico Dvorak +uk.macbook.kbd:en:United Kingdom Macbook +uk.macbook.kbd:de:Vereinigtes Königreich Macbook +uk.macbook.kbd:fr:Royaume Uni Macbook +uk.macbook.kbd:pt:Reino Unido Macbook +uk.macbook.kbd:es:Británico Macbook + us.kbd:en:United States of America us.kbd:de:US-amerikanisch us.kbd:fr:États Unis d'Amérique Modified: projects/clang700-import/share/vt/keymaps/Makefile ============================================================================== --- projects/clang700-import/share/vt/keymaps/Makefile Tue Dec 11 06:45:53 2018 (r341812) +++ projects/clang700-import/share/vt/keymaps/Makefile Tue Dec 11 06:47:04 2018 (r341813) @@ -74,6 +74,7 @@ FILES= INDEX.keymaps \ uk.capsctrl.kbd \ uk.dvorak.kbd \ uk.kbd \ + uk.macbook.kbd \ us.acc.kbd \ us.ctrl.kbd \ us.dvorak.kbd \ Copied: projects/clang700-import/share/vt/keymaps/uk.macbook.kbd (from r341812, head/share/vt/keymaps/uk.macbook.kbd) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang700-import/share/vt/keymaps/uk.macbook.kbd Tue Dec 11 06:47:04 2018 (r341813, copy of r341812, head/share/vt/keymaps/uk.macbook.kbd) @@ -0,0 +1,115 @@ +# $FreeBSD$ +# by James Wright +# alt +# scan cntrl alt alt cntrl lock +# code base shift cntrl shift alt shift cntrl shift state +# ------------------------------------------------------------------ + 000 nop nop nop nop nop nop nop nop O + 001 esc esc esc esc esc esc debug esc O + 002 '1' '!' nop nop '1' '!' nop nop O + 003 '2' '@' nul nul 0x20ac '@' nul nul O + 004 '3' 0xa3 nop nop '#' 0xa3 nop nop O + 005 '4' '$' nop nop '4' '$' nop nop O + 006 '5' '%' nop nop '5' '%' nop nop O + 007 '6' '^' rs rs '6' '^' rs rs O + 008 '7' '&' nop nop '7' '&' nop nop O + 009 '8' '*' nop nop '8' '*' nop nop O + 010 '9' '(' nop nop '9' '(' nop nop O + 011 '0' ')' nop nop '0' ')' nop nop O + 012 '-' '_' us us '-' '_' us us O + 013 '=' '+' nop nop '=' '+' nop nop O + 014 bs bs del del bs bs del del O + 015 ht btab nop nop ht btab nop nop O + 016 'q' 'Q' dc1 dc1 'q' 'Q' dc1 dc1 C + 017 'w' 'W' etb etb 'w' 'W' etb etb C + 018 'e' 'E' enq enq 'e' 'E' enq enq C + 019 'r' 'R' dc2 dc2 'r' 'R' dc2 dc2 C + 020 't' 'T' dc4 dc4 't' 'T' dc4 dc4 C + 021 'y' 'Y' em em 'y' 'Y' em em C + 022 'u' 'U' nak nak 'u' 'U' nak nak C + 023 'i' 'I' ht ht 'i' 'I' ht ht C + 024 'o' 'O' si si 'o' 'O' si si C + 025 'p' 'P' dle dle 'p' 'P' dle dle C + 026 '[' '{' esc esc '[' '{' esc esc O + 027 ']' '}' gs gs ']' '}' gs gs O + 028 cr cr nl nl cr cr nl nl O + 029 lctrl lctrl lctrl lctrl lctrl lctrl lctrl lctrl O + 030 'a' 'A' soh soh 'a' 'A' soh soh C + 031 's' 'S' dc3 dc3 's' 'S' dc3 dc3 C + 032 'd' 'D' eot eot 'd' 'D' eot eot C + 033 'f' 'F' ack ack 'f' 'F' ack ack C + 034 'g' 'G' bel bel 'g' 'G' bel bel C + 035 'h' 'H' bs bs 'h' 'H' bs bs C + 036 'j' 'J' nl nl 'j' 'J' nl nl C + 037 'k' 'K' vt vt 'k' 'K' vt vt C + 038 'l' 'L' ff ff 'l' 'L' ff ff C + 039 ';' ':' nop nop ';' ':' nop nop O + 040 ''' '"' nop nop ''' '"' nop nop O + 041 0xa7 0xb1 nop nop 0xa7 0xb1 nop nop O + 042 lshift lshift lshift lshift lshift lshift lshift lshift O + 043 '\' '|' fs fs '\' '|' fs fs O + 044 'z' 'Z' sub sub 'z' 'Z' sub sub C + 045 'x' 'X' can can 'x' 'X' can can C + 046 'c' 'C' etx etx 'c' 'C' etx etx C + 047 'v' 'V' syn syn 'v' 'V' syn syn C + 048 'b' 'B' stx stx 'b' 'B' stx stx C + 049 'n' 'N' so so 'n' 'N' so so C + 050 'm' 'M' cr cr 'm' 'M' cr cr C + 051 ',' '<' nop nop ',' '<' nop nop O + 052 '.' '>' nop nop '.' '>' nop nop O + 053 '/' '?' nop nop '/' '?' nop nop O + 054 rshift rshift rshift rshift rshift rshift rshift rshift O + 055 '*' '*' '*' '*' '*' '*' '*' '*' O + 056 lalt lalt lalt lalt lalt lalt lalt lalt O + 057 ' ' ' ' nul ' ' ' ' ' ' susp ' ' O + 058 clock clock clock clock clock clock clock clock O + 059 fkey01 fkey13 fkey25 fkey37 scr01 scr11 scr01 scr11 O + 060 fkey02 fkey14 fkey26 fkey38 scr02 scr12 scr02 scr12 O + 061 fkey03 fkey15 fkey27 fkey39 scr03 scr13 scr03 scr13 O + 062 fkey04 fkey16 fkey28 fkey40 scr04 scr14 scr04 scr14 O + 063 fkey05 fkey17 fkey29 fkey41 scr05 scr15 scr05 scr15 O + 064 fkey06 fkey18 fkey30 fkey42 scr06 scr16 scr06 scr16 O + 065 fkey07 fkey19 fkey31 fkey43 scr07 scr07 scr07 scr07 O + 066 fkey08 fkey20 fkey32 fkey44 scr08 scr08 scr08 scr08 O + 067 fkey09 fkey21 fkey33 fkey45 scr09 scr09 scr09 scr09 O + 068 fkey10 fkey22 fkey34 fkey46 scr10 scr10 scr10 scr10 O + 069 nlock nlock nlock nlock nlock nlock nlock nlock O + 070 slock slock slock slock slock slock slock slock O + 071 fkey49 '7' '7' '7' '7' '7' '7' '7' N + 072 fkey50 '8' '8' '8' '8' '8' '8' '8' N + 073 fkey51 '9' '9' '9' '9' '9' '9' '9' N + 074 fkey52 '-' '-' '-' '-' '-' '-' '-' N + 075 fkey53 '4' '4' '4' '4' '4' '4' '4' N + 076 fkey54 '5' '5' '5' '5' '5' '5' '5' N + 077 fkey55 '6' '6' '6' '6' '6' '6' '6' N + 078 fkey56 '+' '+' '+' '+' '+' '+' '+' N + 079 fkey57 '1' '1' '1' '1' '1' '1' '1' N + 080 fkey58 '2' '2' '2' '2' '2' '2' '2' N + 081 fkey59 '3' '3' '3' '3' '3' '3' '3' N + 082 fkey60 '0' '0' '0' '0' '0' '0' '0' N + 083 del '.' '.' '.' '.' '.' boot boot N + 084 nop nop nop nop nop nop nop nop O + 085 nop nop nop nop nop nop nop nop O + 086 '`' '~' nop nop '`' '~' nop nop O + 087 fkey11 fkey23 fkey35 fkey47 scr11 scr11 scr11 scr11 O + 088 fkey12 fkey24 fkey36 fkey48 scr12 scr12 scr12 scr12 O + 089 cr cr nl nl cr cr nl nl O + 090 rctrl rctrl rctrl rctrl rctrl rctrl rctrl rctrl O + 091 '/' '/' '/' '/' '/' '/' '/' '/' N + 092 nscr pscr debug debug nop nop nop nop O + 093 ralt ralt ralt ralt ralt ralt ralt ralt O + 094 fkey49 fkey49 fkey49 fkey49 fkey49 fkey49 fkey49 fkey49 O + 095 fkey50 fkey50 fkey50 fkey50 fkey50 fkey50 fkey50 fkey50 O + 096 fkey51 fkey51 fkey51 fkey51 fkey51 fkey51 fkey51 fkey51 O + 097 fkey53 fkey53 fkey53 fkey53 fkey53 fkey53 fkey53 fkey53 O + 098 fkey55 fkey55 fkey55 fkey55 fkey55 fkey55 fkey55 fkey55 O + 099 fkey57 fkey57 fkey57 fkey57 fkey57 fkey57 fkey57 fkey57 O + 100 fkey58 fkey58 fkey58 fkey58 fkey58 fkey58 fkey58 fkey58 O + 101 fkey59 fkey59 fkey59 fkey59 fkey59 fkey59 fkey59 fkey59 O + 102 fkey60 paste fkey60 fkey60 fkey60 fkey60 fkey60 fkey60 O + 103 fkey61 fkey61 fkey61 fkey61 fkey61 fkey61 boot fkey61 O + 104 slock saver slock saver susp nop susp nop O + 105 fkey62 fkey62 fkey62 fkey62 fkey62 fkey62 fkey62 fkey62 O + 106 fkey63 fkey63 fkey63 fkey63 fkey63 fkey63 fkey63 fkey63 O + 107 fkey64 fkey64 fkey64 fkey64 fkey64 fkey64 fkey64 fkey64 O + 108 nop nop nop nop nop nop nop nop O Modified: projects/clang700-import/stand/powerpc/uboot/Makefile ============================================================================== --- projects/clang700-import/stand/powerpc/uboot/Makefile Tue Dec 11 06:45:53 2018 (r341812) +++ projects/clang700-import/stand/powerpc/uboot/Makefile Tue Dec 11 06:47:04 2018 (r341813) @@ -16,7 +16,7 @@ NEWVERSWHAT= "U-Boot loader" ${MACHINE_ARCH} INSTALLFLAGS= -b # Architecture-specific loader code -SRCS= start.S conf.c vers.c +SRCS= start.S conf.c vers.c ppc64_elf_freebsd.c SRCS+= ucmpdi2.c # Always add MI sources Modified: projects/clang700-import/stand/powerpc/uboot/conf.c ============================================================================== --- projects/clang700-import/stand/powerpc/uboot/conf.c Tue Dec 11 06:45:53 2018 (r341812) +++ projects/clang700-import/stand/powerpc/uboot/conf.c Tue Dec 11 06:47:04 2018 (r341813) @@ -95,9 +95,11 @@ struct netif_driver *netif_drivers[] = { * Sort formats so that those that can detect based on arguments * rather than reading the file go first. */ +extern struct file_format uboot_elf64; struct file_format *file_formats[] = { &uboot_elf, + &uboot_elf64, NULL }; Copied: projects/clang700-import/stand/powerpc/uboot/ppc64_elf_freebsd.c (from r341812, head/stand/powerpc/uboot/ppc64_elf_freebsd.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang700-import/stand/powerpc/uboot/ppc64_elf_freebsd.c Tue Dec 11 06:47:04 2018 (r341813, copy of r341812, head/stand/powerpc/uboot/ppc64_elf_freebsd.c) @@ -0,0 +1,101 @@ +/*- + * Copyright (c) 2001 Benno Rice + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#define __ELF_WORD_SIZE 64 + +#include +#include + +#include +#include +#include + +#include + +#include "bootstrap.h" +#include "libuboot.h" + +vm_offset_t md_load64(char *args, vm_offset_t *modulep, vm_offset_t *dtb); +extern char end[]; +extern vm_offset_t reloc; /* From /conf.c */ + +int +ppc64_uboot_elf_loadfile(char *filename, uint64_t dest, + struct preloaded_file **result) +{ + int r; + + r = __elfN(loadfile)(filename, dest, result); + if (r != 0) + return (r); + + /* + * No need to sync the icache for modules: this will + * be done by the kernel after relocation. + */ + if (!strcmp((*result)->f_type, "elf kernel")) + __syncicache((void *) (*result)->f_addr, (*result)->f_size); + return (0); +} + +int +ppc64_uboot_elf_exec(struct preloaded_file *fp) +{ + struct file_metadata *fmp; + vm_offset_t mdp, dtbp; + Elf_Ehdr *e; + int error; + void (*entry)(void *); + + if ((fmp = file_findmetadata(fp, MODINFOMD_ELFHDR)) == NULL) { + return(EFTYPE); + } + e = (Elf_Ehdr *)&fmp->md_data; + + /* Handle function descriptor for ELFv1 kernels */ + if ((e->e_flags & 3) == 2) + entry = (void (*)(void*))(intptr_t)e->e_entry; + else + entry = *(void (*)(void*))(uint64_t *)(intptr_t)e->e_entry; + + if ((error = md_load64(fp->f_args, &mdp, &dtbp)) != 0) + return (error); + + dev_cleanup(); + printf("Kernel args: %s\n", fp->f_args); + + (*entry)((void *)mdp); + panic("exec returned"); +} + +struct file_format uboot_elf64 = +{ + ppc64_uboot_elf_loadfile, + ppc64_uboot_elf_exec +}; Modified: projects/clang700-import/sys/arm/include/atomic.h ============================================================================== --- projects/clang700-import/sys/arm/include/atomic.h Tue Dec 11 06:45:53 2018 (r341812) +++ projects/clang700-import/sys/arm/include/atomic.h Tue Dec 11 06:47:04 2018 (r341813) @@ -55,6 +55,13 @@ #include #endif /* Arch >= v6 */ +static __inline u_long +atomic_swap_long(volatile u_long *p, u_long v) +{ + + return (atomic_swap_32((volatile uint32_t *)p, v)); +} + #define atomic_clear_ptr atomic_clear_32 #define atomic_clear_acq_ptr atomic_clear_acq_32 #define atomic_clear_rel_ptr atomic_clear_rel_32 Modified: projects/clang700-import/sys/cam/scsi/scsi_all.c ============================================================================== --- projects/clang700-import/sys/cam/scsi/scsi_all.c Tue Dec 11 06:45:53 2018 (r341812) +++ projects/clang700-import/sys/cam/scsi/scsi_all.c Tue Dec 11 06:47:04 2018 (r341813) @@ -1165,7 +1165,7 @@ static struct asc_table_entry asc_table[] = { { SST(0x04, 0x1B, SS_RDEF, /* XXX TBD */ "Logical unit not ready, sanitize in progress") }, /* DT MAEB */ - { SST(0x04, 0x1C, SS_RDEF, /* XXX TBD */ + { SST(0x04, 0x1C, SS_START | SSQ_DECREMENT_COUNT | ENXIO, "Logical unit not ready, additional power use not yet granted") }, /* D */ { SST(0x04, 0x1D, SS_RDEF, /* XXX TBD */ Modified: projects/clang700-import/sys/compat/linuxkpi/common/include/asm/atomic-long.h ============================================================================== --- projects/clang700-import/sys/compat/linuxkpi/common/include/asm/atomic-long.h Tue Dec 11 06:45:53 2018 (r341812) +++ projects/clang700-import/sys/compat/linuxkpi/common/include/asm/atomic-long.h Tue Dec 11 06:47:04 2018 (r341813) @@ -78,15 +78,7 @@ atomic_long_dec(atomic_long_t *v) static inline long atomic_long_xchg(atomic_long_t *v, long val) { -#if defined(__i386__) || defined(__amd64__) || defined(__aarch64__) return atomic_swap_long(&v->counter, val); -#else - long ret = atomic_long_read(v); - - while (!atomic_fcmpset_long(&v->counter, &ret, val)) - ; - return (ret); -#endif } static inline long Modified: projects/clang700-import/sys/compat/linuxkpi/common/include/asm/atomic.h ============================================================================== --- projects/clang700-import/sys/compat/linuxkpi/common/include/asm/atomic.h Tue Dec 11 06:45:53 2018 (r341812) +++ projects/clang700-import/sys/compat/linuxkpi/common/include/asm/atomic.h Tue Dec 11 06:47:04 2018 (r341813) @@ -128,15 +128,7 @@ atomic_clear_mask(unsigned int mask, atomic_t *v) static inline int atomic_xchg(atomic_t *v, int i) { -#if !defined(__mips__) return (atomic_swap_int(&v->counter, i)); -#else - int ret = atomic_read(v); - - while (!atomic_fcmpset_int(&v->counter, &ret, i)) - ; - return (ret); -#endif } static inline int Modified: projects/clang700-import/sys/dev/ahci/ahci_pci.c ============================================================================== --- projects/clang700-import/sys/dev/ahci/ahci_pci.c Tue Dec 11 06:45:53 2018 (r341812) +++ projects/clang700-import/sys/dev/ahci/ahci_pci.c Tue Dec 11 06:47:04 2018 (r341813) @@ -358,10 +358,7 @@ static int ahci_pci_ctlr_reset(device_t dev) { - if (pci_read_config(dev, PCIR_DEVVENDOR, 4) == 0x28298086 && - (pci_read_config(dev, 0x92, 1) & 0xfe) == 0x04) - pci_write_config(dev, 0x92, 0x01, 1); - return ahci_ctlr_reset(dev); + return(ahci_ctlr_reset(dev)); } static int Modified: projects/clang700-import/sys/dev/md/md.c ============================================================================== --- projects/clang700-import/sys/dev/md/md.c Tue Dec 11 06:45:53 2018 (r341812) +++ projects/clang700-import/sys/dev/md/md.c Tue Dec 11 06:47:04 2018 (r341813) @@ -1241,10 +1241,10 @@ md_kthread(void *arg) if (error != -1) { bp->bio_completed = bp->bio_length; - if ((bp->bio_cmd == BIO_READ) || (bp->bio_cmd == BIO_WRITE)) - devstat_end_transaction_bio(sc->devstat, bp); g_io_deliver(bp, error); } + if (bp->bio_cmd == BIO_READ || bp->bio_cmd == BIO_WRITE) + devstat_end_transaction_bio(sc->devstat, bp); } } Modified: projects/clang700-import/sys/dev/rtwn/usb/rtwn_usb_attach.h ============================================================================== --- projects/clang700-import/sys/dev/rtwn/usb/rtwn_usb_attach.h Tue Dec 11 06:45:53 2018 (r341812) +++ projects/clang700-import/sys/dev/rtwn/usb/rtwn_usb_attach.h Tue Dec 11 06:47:04 2018 (r341813) @@ -118,6 +118,7 @@ static const STRUCT_USB_HOST_ID rtwn_devs[] = { RTWN_RTL8188EU_DEV(DLINK, DWA123D1), RTWN_RTL8188EU_DEV(DLINK, DWA125D1), RTWN_RTL8188EU_DEV(ELECOM, WDC150SU2M), + RTWN_RTL8188EU_DEV(TPLINK, WN722N), RTWN_RTL8188EU_DEV(REALTEK, RTL8188ETV), RTWN_RTL8188EU_DEV(REALTEK, RTL8188EU), #undef RTWN_RTL8188EU_DEV Modified: projects/clang700-import/sys/dev/sfxge/common/efx.h ============================================================================== --- projects/clang700-import/sys/dev/sfxge/common/efx.h Tue Dec 11 06:45:53 2018 (r341812) +++ projects/clang700-import/sys/dev/sfxge/common/efx.h Tue Dec 11 06:47:04 2018 (r341813) @@ -1261,6 +1261,7 @@ efx_bist_stop( #define EFX_FEATURE_FW_ASSISTED_TSO 0x00001000 #define EFX_FEATURE_FW_ASSISTED_TSO_V2 0x00002000 #define EFX_FEATURE_PACKED_STREAM 0x00004000 +#define EFX_FEATURE_TXQ_CKSUM_OP_DESC 0x00008000 typedef enum efx_tunnel_protocol_e { EFX_TUNNEL_PROTOCOL_NONE = 0, Modified: projects/clang700-import/sys/dev/sfxge/common/efx_nic.c ============================================================================== --- projects/clang700-import/sys/dev/sfxge/common/efx_nic.c Tue Dec 11 06:45:53 2018 (r341812) +++ projects/clang700-import/sys/dev/sfxge/common/efx_nic.c Tue Dec 11 06:47:04 2018 (r341813) @@ -257,7 +257,8 @@ efx_nic_create( EFX_FEATURE_PIO_BUFFERS | EFX_FEATURE_FW_ASSISTED_TSO | EFX_FEATURE_FW_ASSISTED_TSO_V2 | - EFX_FEATURE_PACKED_STREAM; + EFX_FEATURE_PACKED_STREAM | + EFX_FEATURE_TXQ_CKSUM_OP_DESC; break; #endif /* EFSYS_OPT_HUNTINGTON */ @@ -277,7 +278,8 @@ efx_nic_create( EFX_FEATURE_MCDI_DMA | EFX_FEATURE_PIO_BUFFERS | EFX_FEATURE_FW_ASSISTED_TSO_V2 | - EFX_FEATURE_PACKED_STREAM; + EFX_FEATURE_PACKED_STREAM | + EFX_FEATURE_TXQ_CKSUM_OP_DESC; break; #endif /* EFSYS_OPT_MEDFORD */ @@ -293,7 +295,8 @@ efx_nic_create( EFX_FEATURE_MCDI_DMA | EFX_FEATURE_PIO_BUFFERS | EFX_FEATURE_FW_ASSISTED_TSO_V2 | - EFX_FEATURE_PACKED_STREAM; + EFX_FEATURE_PACKED_STREAM | + EFX_FEATURE_TXQ_CKSUM_OP_DESC; break; #endif /* EFSYS_OPT_MEDFORD2 */ Modified: projects/clang700-import/sys/dev/sfxge/sfxge.c ============================================================================== --- projects/clang700-import/sys/dev/sfxge/sfxge.c Tue Dec 11 06:45:53 2018 (r341812) +++ projects/clang700-import/sys/dev/sfxge/sfxge.c Tue Dec 11 06:47:04 2018 (r341813) @@ -151,8 +151,8 @@ sfxge_estimate_rsrc_limits(struct sfxge_softc *sc) limits.edl_min_evq_count = 1; limits.edl_max_evq_count = evq_max; - limits.edl_min_txq_count = SFXGE_TXQ_NTYPES; - limits.edl_max_txq_count = evq_max + SFXGE_TXQ_NTYPES - 1; + limits.edl_min_txq_count = SFXGE_EVQ0_N_TXQ(sc); + limits.edl_max_txq_count = evq_max + SFXGE_EVQ0_N_TXQ(sc) - 1; limits.edl_min_rxq_count = 1; limits.edl_max_rxq_count = evq_max; @@ -168,12 +168,12 @@ sfxge_estimate_rsrc_limits(struct sfxge_softc *sc) return (rc); } - KASSERT(txq_allocated >= SFXGE_TXQ_NTYPES, - ("txq_allocated < SFXGE_TXQ_NTYPES")); + KASSERT(txq_allocated >= SFXGE_EVQ0_N_TXQ(sc), + ("txq_allocated < %u", SFXGE_EVQ0_N_TXQ(sc))); sc->evq_max = MIN(evq_allocated, evq_max); sc->evq_max = MIN(rxq_allocated, sc->evq_max); - sc->evq_max = MIN(txq_allocated - (SFXGE_TXQ_NTYPES - 1), + sc->evq_max = MIN(txq_allocated - (SFXGE_EVQ0_N_TXQ(sc) - 1), sc->evq_max); KASSERT(sc->evq_max <= evq_max, @@ -205,7 +205,7 @@ sfxge_set_drv_limits(struct sfxge_softc *sc) limits.edl_min_evq_count = limits.edl_max_evq_count = sc->intr.n_alloc; limits.edl_min_txq_count = limits.edl_max_txq_count = - sc->intr.n_alloc + SFXGE_TXQ_NTYPES - 1; + sc->intr.n_alloc + SFXGE_EVQ0_N_TXQ(sc) - 1; limits.edl_min_rxq_count = limits.edl_max_rxq_count = sc->intr.n_alloc; @@ -761,6 +761,11 @@ sfxge_create(struct sfxge_softc *sc) goto fail_rx_ring_entries; } sc->rxq_entries = sfxge_rx_ring_entries; + + if (efx_nic_cfg_get(enp)->enc_features & EFX_FEATURE_TXQ_CKSUM_OP_DESC) + sc->txq_dynamic_cksum_toggle_supported = B_TRUE; + else + sc->txq_dynamic_cksum_toggle_supported = B_FALSE; if (!ISP2(sfxge_tx_ring_entries) || (sfxge_tx_ring_entries < EFX_TXQ_MINNDESCS) || Modified: projects/clang700-import/sys/dev/sfxge/sfxge.h ============================================================================== --- projects/clang700-import/sys/dev/sfxge/sfxge.h Tue Dec 11 06:45:53 2018 (r341812) +++ projects/clang700-import/sys/dev/sfxge/sfxge.h Tue Dec 11 06:47:04 2018 (r341813) @@ -184,6 +184,10 @@ struct sfxge_evq { unsigned int buf_base_id; unsigned int entries; char lock_name[SFXGE_LOCK_NAME_MAX]; +#if EFSYS_OPT_QSTATS + clock_t stats_update_time; + uint64_t stats[EV_NQSTATS]; +#endif } __aligned(CACHE_LINE_SIZE); #define SFXGE_NDESCS 1024 @@ -275,6 +279,9 @@ struct sfxge_softc { struct ifnet *ifnet; unsigned int if_flags; struct sysctl_oid *stats_node; +#if EFSYS_OPT_QSTATS + struct sysctl_oid *evqs_stats_node; +#endif struct sysctl_oid *txqs_node; struct task task_reset; @@ -286,6 +293,8 @@ struct sfxge_softc { size_t vpd_size; efx_nic_t *enp; efsys_lock_t enp_lock; + + boolean_t txq_dynamic_cksum_toggle_supported; unsigned int rxq_entries; unsigned int txq_entries; Modified: projects/clang700-import/sys/dev/sfxge/sfxge_ev.c ============================================================================== --- projects/clang700-import/sys/dev/sfxge/sfxge_ev.c Tue Dec 11 06:45:53 2018 (r341812) +++ projects/clang700-import/sys/dev/sfxge/sfxge_ev.c Tue Dec 11 06:47:04 2018 (r341813) @@ -269,9 +269,13 @@ sfxge_get_txq_by_label(struct sfxge_evq *evq, enum sfx { unsigned int index; - KASSERT((evq->index == 0 && label < SFXGE_TXQ_NTYPES) || - (label == SFXGE_TXQ_IP_TCP_UDP_CKSUM), ("unexpected txq label")); - index = (evq->index == 0) ? label : (evq->index - 1 + SFXGE_TXQ_NTYPES); + KASSERT((evq->sc->txq_dynamic_cksum_toggle_supported) ? (label == 0) : + ((evq->index == 0 && label < SFXGE_TXQ_NTYPES) || + (label == SFXGE_TXQ_IP_TCP_UDP_CKSUM)), + ("unexpected txq label")); + + index = (evq->index == 0) ? + label : (evq->index - 1 + SFXGE_EVQ0_N_TXQ(evq->sc)); return (evq->sc->txq[index]); } @@ -443,29 +447,94 @@ sfxge_ev_wake_up(void *arg, uint32_t index) #if EFSYS_OPT_QSTATS static void +sfxge_evq_stat_update(struct sfxge_evq *evq) +{ + clock_t now; + + SFXGE_EVQ_LOCK(evq); + + if (__predict_false(evq->init_state != SFXGE_EVQ_STARTED)) + goto out; + + now = ticks; + if ((unsigned int)(now - evq->stats_update_time) < (unsigned int)hz) + goto out; + + evq->stats_update_time = now; + efx_ev_qstats_update(evq->common, evq->stats); + +out: + SFXGE_EVQ_UNLOCK(evq); +} + +static int +sfxge_evq_stat_handler(SYSCTL_HANDLER_ARGS) +{ + struct sfxge_evq *evq = arg1; + struct sfxge_softc *sc = evq->sc; + unsigned int id = arg2; + + SFXGE_ADAPTER_LOCK(sc); + + sfxge_evq_stat_update(evq); + + SFXGE_ADAPTER_UNLOCK(sc); + + return (SYSCTL_OUT(req, &evq->stats[id], sizeof(evq->stats[id]))); +} + +static int +sfxge_evq_stat_init(struct sfxge_evq *evq) +{ + struct sfxge_softc *sc = evq->sc; + struct sysctl_ctx_list *ctx = device_get_sysctl_ctx(sc->dev); + char name[16]; + struct sysctl_oid *evq_stats_node; + unsigned int id; + + snprintf(name, sizeof(name), "%u", evq->index); + evq_stats_node = SYSCTL_ADD_NODE(ctx, + SYSCTL_CHILDREN(sc->evqs_stats_node), + OID_AUTO, name, CTLFLAG_RD, NULL, ""); + if (evq_stats_node == NULL) + return (ENOMEM); + + for (id = 0; id < EV_NQSTATS; id++) { + SYSCTL_ADD_PROC( + ctx, SYSCTL_CHILDREN(evq_stats_node), + OID_AUTO, efx_ev_qstat_name(sc->enp, id), + CTLTYPE_U64|CTLFLAG_RD, + evq, id, sfxge_evq_stat_handler, "Q", + ""); + } + + return (0); +} + +static void sfxge_ev_stat_update(struct sfxge_softc *sc) { struct sfxge_evq *evq; unsigned int index; clock_t now; + unsigned int id; SFXGE_ADAPTER_LOCK(sc); - if (__predict_false(sc->evq[0]->init_state != SFXGE_EVQ_STARTED)) - goto out; - now = ticks; if ((unsigned int)(now - sc->ev_stats_update_time) < (unsigned int)hz) goto out; sc->ev_stats_update_time = now; - /* Add event counts from each event queue in turn */ + memset(sc->ev_stats, 0, sizeof(sc->ev_stats)); + + /* Update and add event counts from each event queue in turn */ for (index = 0; index < sc->evq_count; index++) { evq = sc->evq[index]; - SFXGE_EVQ_LOCK(evq); - efx_ev_qstats_update(evq->common, sc->ev_stats); - SFXGE_EVQ_UNLOCK(evq); + sfxge_evq_stat_update(evq); + for (id = 0; id < EV_NQSTATS; id++) + sc->ev_stats[id] += evq->stats[id]; } out: SFXGE_ADAPTER_UNLOCK(sc); @@ -672,7 +741,7 @@ sfxge_ev_qstop(struct sfxge_softc *sc, unsigned int in #if EFSYS_OPT_QSTATS /* Add event counts before discarding the common evq state */ - efx_ev_qstats_update(evq->common, sc->ev_stats); + efx_ev_qstats_update(evq->common, evq->stats); #endif efx_ev_qdestroy(evq->common); @@ -873,7 +942,24 @@ sfxge_ev_qinit(struct sfxge_softc *sc, unsigned int in evq->init_state = SFXGE_EVQ_INITIALIZED; +#if EFSYS_OPT_QSTATS + rc = sfxge_evq_stat_init(evq); + if (rc != 0) + goto fail_evq_stat_init; +#endif + return (0); + +#if EFSYS_OPT_QSTATS +fail_evq_stat_init: + evq->init_state = SFXGE_EVQ_UNINITIALIZED; + SFXGE_EVQ_LOCK_DESTROY(evq); + sfxge_dma_free(esmp); + sc->evq[index] = NULL; + free(evq, M_SFXGE); + + return (rc); +#endif } void @@ -922,6 +1008,16 @@ sfxge_ev_init(struct sfxge_softc *sc) sc, 0, sfxge_int_mod_handler, "IU", "sfxge interrupt moderation (us)"); +#if EFSYS_OPT_QSTATS + sc->evqs_stats_node = SYSCTL_ADD_NODE( + device_get_sysctl_ctx(sc->dev), SYSCTL_CHILDREN(sc->stats_node), + OID_AUTO, "evq", CTLFLAG_RD, NULL, "Event queues stats"); + if (sc->evqs_stats_node == NULL) { + rc = ENOMEM; + goto fail_evqs_stats_node; + } +#endif + /* * Initialize the event queue(s) - one per interrupt. */ @@ -940,6 +1036,9 @@ fail: while (--index >= 0) sfxge_ev_qfini(sc, index); +#if EFSYS_OPT_QSTATS +fail_evqs_stats_node: +#endif sc->evq_count = 0; return (rc); } Modified: projects/clang700-import/sys/dev/sfxge/sfxge_tx.c ============================================================================== --- projects/clang700-import/sys/dev/sfxge/sfxge_tx.c Tue Dec 11 06:45:53 2018 (r341812) +++ projects/clang700-import/sys/dev/sfxge/sfxge_tx.c Tue Dec 11 06:47:04 2018 (r341813) @@ -35,7 +35,7 @@ /* Theory of operation: * - * Tx queues allocation and mapping + * Tx queues allocation and mapping on Siena * * One Tx queue with enabled checksum offload is allocated per Rx channel * (event queue). Also 2 Tx queues (one without checksum offload and one @@ -46,6 +46,17 @@ * if event queue index is 0, TxQ-index = TxQ-label * [0..SFXGE_TXQ_NTYPES) * else TxQ-index = SFXGE_TXQ_NTYPES + EvQ-index - 1 * See sfxge_get_txq_by_label() sfxge_ev.c + * + * Tx queue allocation and mapping on EF10 + * + * One Tx queue with enabled checksum offload is allocated per Rx + * channel (event queue). Checksum offload on all Tx queues is enabled or + * disabled dynamically by inserting option descriptors, so the additional + * queues used on Siena are not required. + * + * TxQ label is always set to zero on EF10 hardware. + * So, event queue to Tx queue mapping is simple: + * TxQ-index = EvQ-index */ #include @@ -139,38 +150,75 @@ static void sfxge_tx_qlist_post(struct sfxge_txq *txq) static void sfxge_tx_qunblock(struct sfxge_txq *txq); static int sfxge_tx_queue_tso(struct sfxge_txq *txq, struct mbuf *mbuf, const bus_dma_segment_t *dma_seg, int n_dma_seg, - int vlan_tagged); + int n_extra_descs); +static inline void +sfxge_next_stmp(struct sfxge_txq *txq, struct sfxge_tx_mapping **pstmp) +{ + KASSERT((*pstmp)->flags == 0, ("stmp flags are not 0")); + if (__predict_false(*pstmp == + &txq->stmp[txq->ptr_mask])) + *pstmp = &txq->stmp[0]; + else + (*pstmp)++; +} + static int -sfxge_tx_maybe_insert_tag(struct sfxge_txq *txq, struct mbuf *mbuf) +sfxge_tx_maybe_toggle_cksum_offload(struct sfxge_txq *txq, struct mbuf *mbuf, + struct sfxge_tx_mapping **pstmp) { + uint16_t new_hw_cksum_flags; + efx_desc_t *desc; + + if (mbuf->m_pkthdr.csum_flags & + (CSUM_DELAY_DATA | CSUM_DELAY_DATA_IPV6 | CSUM_TSO)) { + /* + * We always set EFX_TXQ_CKSUM_IPV4 here because this + * configuration is the most useful, and this won't + * cause any trouble in case of IPv6 traffic anyway. + */ + new_hw_cksum_flags = EFX_TXQ_CKSUM_IPV4 | EFX_TXQ_CKSUM_TCPUDP; + } else if (mbuf->m_pkthdr.csum_flags & CSUM_DELAY_IP) { + new_hw_cksum_flags = EFX_TXQ_CKSUM_IPV4; + } else { + new_hw_cksum_flags = 0; + } + + if (new_hw_cksum_flags == txq->hw_cksum_flags) + return (0); + + desc = &txq->pend_desc[txq->n_pend_desc]; + efx_tx_qdesc_checksum_create(txq->common, new_hw_cksum_flags, desc); + txq->hw_cksum_flags = new_hw_cksum_flags; + txq->n_pend_desc++; + + sfxge_next_stmp(txq, pstmp); + + return (1); +} + +static int +sfxge_tx_maybe_insert_tag(struct sfxge_txq *txq, struct mbuf *mbuf, + struct sfxge_tx_mapping **pstmp) +{ uint16_t this_tag = ((mbuf->m_flags & M_VLANTAG) ? mbuf->m_pkthdr.ether_vtag : 0); + efx_desc_t *desc; if (this_tag == txq->hw_vlan_tci) return (0); - efx_tx_qdesc_vlantci_create(txq->common, - bswap16(this_tag), - &txq->pend_desc[0]); - txq->n_pend_desc = 1; + desc = &txq->pend_desc[txq->n_pend_desc]; + efx_tx_qdesc_vlantci_create(txq->common, bswap16(this_tag), desc); txq->hw_vlan_tci = this_tag; + txq->n_pend_desc++; + + sfxge_next_stmp(txq, pstmp); + return (1); } -static inline void -sfxge_next_stmp(struct sfxge_txq *txq, struct sfxge_tx_mapping **pstmp) -{ - KASSERT((*pstmp)->flags == 0, ("stmp flags are not 0")); - if (__predict_false(*pstmp == - &txq->stmp[txq->ptr_mask])) - *pstmp = &txq->stmp[0]; - else - (*pstmp)++; -} - - void sfxge_tx_qcomplete(struct sfxge_txq *txq, struct sfxge_evq *evq) { @@ -361,8 +409,9 @@ static int sfxge_tx_queue_mbuf(struct sfxge_txq *txq, int rc; int i; int eop; + uint16_t hw_cksum_flags_prev; uint16_t hw_vlan_tci_prev; - int vlan_tagged; + int n_extra_descs; KASSERT(!txq->blocked, ("txq->blocked")); @@ -413,14 +462,20 @@ static int sfxge_tx_queue_mbuf(struct sfxge_txq *txq, used_map = &stmp->map; + hw_cksum_flags_prev = txq->hw_cksum_flags; hw_vlan_tci_prev = txq->hw_vlan_tci; - vlan_tagged = sfxge_tx_maybe_insert_tag(txq, mbuf); - if (vlan_tagged) { - sfxge_next_stmp(txq, &stmp); - } + /* + * The order of option descriptors, which are used to leverage VLAN tag + * and checksum offloads, might be important. Changing checksum offload + * between VLAN option and packet descriptors probably does not work. + */ + n_extra_descs = sfxge_tx_maybe_toggle_cksum_offload(txq, mbuf, &stmp); + n_extra_descs += sfxge_tx_maybe_insert_tag(txq, mbuf, &stmp); + if (mbuf->m_pkthdr.csum_flags & CSUM_TSO) { - rc = sfxge_tx_queue_tso(txq, mbuf, dma_seg, n_dma_seg, vlan_tagged); + rc = sfxge_tx_queue_tso(txq, mbuf, dma_seg, n_dma_seg, + n_extra_descs); if (rc < 0) goto reject_mapped; stmp = &txq->stmp[(rc - 1) & txq->ptr_mask]; @@ -431,7 +486,7 @@ static int sfxge_tx_queue_mbuf(struct sfxge_txq *txq, i = 0; for (;;) { - desc = &txq->pend_desc[i + vlan_tagged]; + desc = &txq->pend_desc[i + n_extra_descs]; eop = (i == n_dma_seg - 1); efx_tx_qdesc_dma_create(txq->common, dma_seg[i].ds_addr, @@ -443,7 +498,7 @@ static int sfxge_tx_queue_mbuf(struct sfxge_txq *txq, i++; sfxge_next_stmp(txq, &stmp); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Tue Dec 11 17:39:50 2018 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BDE55130BF6F for ; Tue, 11 Dec 2018 17:39:50 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4AF90828E9; Tue, 11 Dec 2018 17:39:50 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2BCA82E6B; Tue, 11 Dec 2018 17:39:50 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBBHdni9006987; Tue, 11 Dec 2018 17:39:49 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBBHdn5Z006985; Tue, 11 Dec 2018 17:39:49 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201812111739.wBBHdn5Z006985@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 11 Dec 2018 17:39:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r341823 - projects/clang700-import X-SVN-Group: projects X-SVN-Commit-Author: dim X-SVN-Commit-Paths: projects/clang700-import X-SVN-Commit-Revision: 341823 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 4AF90828E9 X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-0.53 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_SHORT(-0.53)[-0.527,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Dec 2018 17:39:50 -0000 Author: dim Date: Tue Dec 11 17:39:49 2018 New Revision: 341823 URL: https://svnweb.freebsd.org/changeset/base/341823 Log: Set tentative merge date, and add UPDATING note. Modified: projects/clang700-import/ObsoleteFiles.inc projects/clang700-import/UPDATING Modified: projects/clang700-import/ObsoleteFiles.inc ============================================================================== --- projects/clang700-import/ObsoleteFiles.inc Tue Dec 11 17:14:12 2018 (r341822) +++ projects/clang700-import/ObsoleteFiles.inc Tue Dec 11 17:39:49 2018 (r341823) @@ -38,7 +38,7 @@ # xargs -n1 | sort | uniq -d; # done -# 2018mmdd: new clang import which bumps version from 6.0.1 to 7.0.1. +# 20181218: new clang import which bumps version from 6.0.1 to 7.0.1. OLD_FILES+=usr/lib/clang/6.0.1/include/sanitizer/allocator_interface.h OLD_FILES+=usr/lib/clang/6.0.1/include/sanitizer/asan_interface.h OLD_FILES+=usr/lib/clang/6.0.1/include/sanitizer/common_interface_defs.h Modified: projects/clang700-import/UPDATING ============================================================================== --- projects/clang700-import/UPDATING Tue Dec 11 17:14:12 2018 (r341822) +++ projects/clang700-import/UPDATING Tue Dec 11 17:39:49 2018 (r341823) @@ -31,6 +31,12 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 13.x IS SLOW: disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20181218: + Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to + 7.0.1. Please see the 20141231 entry below for information about + prerequisites and upgrading, if you are not already using clang 3.5.0 + or higher. + 20181126: On amd64, arm64 and armv7 (architectures that install LLVM's ld.lld linker as /usr/bin/ld) GNU ld is no longer installed as ld.bfd, as