[lld] r327895 - Support embedding natvis files in PDBs.

Zachary Turner via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 19 13:32:46 PDT 2018


Hmm, this test should not even be running on these platforms due to the
`REQUIRES: diasdk` line.

On Mon, Mar 19, 2018 at 1:29 PM Galina Kistanova <gkistanova at gmail.com>
wrote:

> Hello Zachary,
>
> This commit added broken test one of our builders:
>
> http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast
> . . .
> Failing Tests (2):
>    . . .
>     lld :: COFF/pdb-natvis.test
>
> Please have a look?
>
> The builder was already red and did not send notifications on this.
>
> Thanks
>
>
> Galina
>
> On Mon, Mar 19, 2018 at 12:53 PM, Zachary Turner via llvm-commits <
> llvm-commits at lists.llvm.org> wrote:
>
>> Author: zturner
>> Date: Mon Mar 19 12:53:51 2018
>> New Revision: 327895
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=327895&view=rev
>> Log:
>> Support embedding natvis files in PDBs.
>>
>> Natvis is a debug language supported by Visual Studio for
>> specifying custom visualizers.  The /NATVIS option is an
>> undocumented link.exe flag which will take a .natvis file
>> and "inject" it into the PDB.  This way, you can ship the
>> debug visualizers for a program along with the PDB, which
>> is very useful for postmortem debugging.
>>
>> This is implemented by adding a new "named stream" to the
>> PDB with a special name of /src/files/<natvis file name>
>> and simply copying the contents of the xml into this file.
>>
>> Additionally, we need to emit a single stream named
>> /src/headerblock which contains a hash table of embedded
>> files to records describing them.
>>
>> This patch adds this functionality, including the /NATVIS
>> option to lld-link.
>>
>> Differential Revision: https://reviews.llvm.org/D44328
>>
>> Added:
>>     lld/trunk/test/COFF/Inputs/generic.yaml
>>     lld/trunk/test/COFF/Inputs/natvis-1.natvis
>>     lld/trunk/test/COFF/Inputs/natvis-2.natvis
>>     lld/trunk/test/COFF/Inputs/natvis-3.natvis
>>     lld/trunk/test/COFF/pdb-natvis.test
>> Modified:
>>     lld/trunk/COFF/Config.h
>>     lld/trunk/COFF/Driver.cpp
>>     lld/trunk/COFF/Options.td
>>     lld/trunk/COFF/PDB.cpp
>>     lld/trunk/test/lit.cfg.py
>>     lld/trunk/test/lit.site.cfg.py.in
>>
>> Modified: lld/trunk/COFF/Config.h
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/Config.h?rev=327895&r1=327894&r2=327895&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/COFF/Config.h (original)
>> +++ lld/trunk/COFF/Config.h Mon Mar 19 12:53:51 2018
>> @@ -99,6 +99,7 @@ struct Configuration {
>>    bool DebugGHashes = false;
>>    bool ShowTiming = false;
>>    unsigned DebugTypes = static_cast<unsigned>(DebugType::None);
>> +  std::vector<std::string> NatvisFiles;
>>    llvm::SmallString<128> PDBPath;
>>    std::vector<llvm::StringRef> Argv;
>>
>>
>> Modified: lld/trunk/COFF/Driver.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/Driver.cpp?rev=327895&r1=327894&r2=327895&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/COFF/Driver.cpp (original)
>> +++ lld/trunk/COFF/Driver.cpp Mon Mar 19 12:53:51 2018
>> @@ -933,9 +933,12 @@ void LinkerDriver::link(ArrayRef<const c
>>
>>    // Handle /pdb
>>    bool ShouldCreatePDB = Args.hasArg(OPT_debug, OPT_debug_ghash);
>> -  if (ShouldCreatePDB)
>> +  if (ShouldCreatePDB) {
>>      if (auto *Arg = Args.getLastArg(OPT_pdb))
>>        Config->PDBPath = Arg->getValue();
>> +    if (Args.hasArg(OPT_natvis))
>> +      Config->NatvisFiles = Args.getAllArgValues(OPT_natvis);
>> +  }
>>
>>    // Handle /noentry
>>    if (Args.hasArg(OPT_noentry)) {
>>
>> Modified: lld/trunk/COFF/Options.td
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/Options.td?rev=327895&r1=327894&r2=327895&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/COFF/Options.td (original)
>> +++ lld/trunk/COFF/Options.td Mon Mar 19 12:53:51 2018
>> @@ -45,6 +45,7 @@ def nodefaultlib : P<"nodefaultlib", "Re
>>  def opt     : P<"opt", "Control optimizations">;
>>  def order   : P<"order", "Put functions in order">;
>>  def out     : P<"out", "Path to file to write output">;
>> +def natvis : P<"natvis", "Path to natvis file to embed in the PDB">;
>>  def pdb : P<"pdb", "PDB file path">;
>>  def section : P<"section", "Specify section attributes">;
>>  def stack   : P<"stack", "Size of the stack">;
>> @@ -162,7 +163,6 @@ def delay : QF<"delay">;
>>  def errorreport : QF<"errorreport">;
>>  def idlout : QF<"idlout">;
>>  def maxilksize : QF<"maxilksize">;
>> -def natvis : QF<"natvis">;
>>  def pdbaltpath : QF<"pdbaltpath">;
>>  def tlbid : QF<"tlbid">;
>>  def tlbout : QF<"tlbout">;
>>
>> Modified: lld/trunk/COFF/PDB.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/PDB.cpp?rev=327895&r1=327894&r2=327895&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/COFF/PDB.cpp (original)
>> +++ lld/trunk/COFF/PDB.cpp Mon Mar 19 12:53:51 2018
>> @@ -90,6 +90,9 @@ public:
>>    /// Emit the basic PDB structure: initial streams, headers, etc.
>>    void initialize(const llvm::codeview::DebugInfo &BuildId);
>>
>> +  /// Add natvis files specified on the command line.
>> +  void addNatvisFiles();
>> +
>>    /// Link CodeView from each object file in the symbol table into the
>> PDB.
>>    void addObjectsToPDB();
>>
>> @@ -961,6 +964,18 @@ void PDBLinker::addObjectsToPDB() {
>>    }
>>  }
>>
>> +void PDBLinker::addNatvisFiles() {
>> +  for (StringRef File : Config->NatvisFiles) {
>> +    ErrorOr<std::unique_ptr<MemoryBuffer>> DataOrErr =
>> +        MemoryBuffer::getFile(File);
>> +    if (!DataOrErr) {
>> +      warn("Cannot open input file: " + File);
>> +      continue;
>> +    }
>> +    Builder.addInjectedSource(File, std::move(*DataOrErr));
>> +  }
>> +}
>> +
>>  static void addCommonLinkerModuleSymbols(StringRef Path,
>>                                           pdb::DbiModuleDescriptorBuilder
>> &Mod,
>>                                           BumpPtrAllocator &Allocator) {
>> @@ -1041,6 +1056,7 @@ void coff::createPDB(SymbolTable *Symtab
>>    PDB.initialize(BuildId);
>>    PDB.addObjectsToPDB();
>>    PDB.addSections(OutputSections, SectionTable);
>> +  PDB.addNatvisFiles();
>>
>>    ScopedTimer T2(DiskCommitTimer);
>>    PDB.commit();
>>
>> Added: lld/trunk/test/COFF/Inputs/generic.yaml
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/Inputs/generic.yaml?rev=327895&view=auto
>>
>> ==============================================================================
>> --- lld/trunk/test/COFF/Inputs/generic.yaml (added)
>> +++ lld/trunk/test/COFF/Inputs/generic.yaml Mon Mar 19 12:53:51 2018
>> @@ -0,0 +1,282 @@
>> +--- !COFF
>> +header:
>> +  Machine:         IMAGE_FILE_MACHINE_AMD64
>> +  Characteristics: [  ]
>> +sections:
>> +  - Name:            .text
>> +    Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE,
>> IMAGE_SCN_MEM_READ ]
>> +    Alignment:       16
>> +    SectionData:
>>  4883EC1831C0C7442414000000004889542408894C24044883C418C3
>> +  - Name:            .data
>> +    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA,
>> IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ]
>> +    Alignment:       4
>> +    SectionData:     ''
>> +  - Name:            .bss
>> +    Characteristics: [ IMAGE_SCN_CNT_UNINITIALIZED_DATA,
>> IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ]
>> +    Alignment:       4
>> +    SectionData:     ''
>> +  - Name:            .xdata
>> +    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA,
>> IMAGE_SCN_MEM_READ ]
>> +    Alignment:       4
>> +    SectionData:     '0104010004220000'
>> +  - Name:            .drectve
>> +    Characteristics: [ IMAGE_SCN_LNK_INFO, IMAGE_SCN_LNK_REMOVE ]
>> +    Alignment:       1
>> +    SectionData:
>>  202F44454641554C544C49423A6C6962636D742E6C6962202F44454641554C544C49423A6F6C646E616D65732E6C6962
>> +  - Name:            '.debug$S'
>> +    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA,
>> IMAGE_SCN_MEM_DISCARDABLE, IMAGE_SCN_MEM_READ ]
>> +    Alignment:       4
>> +    SectionData:
>>  04000000F10000002F0000002D003C1101000000D0000700000000000000581B000000000000636C616E672076657273696F6E20372E302E30200000F1000000760000002A0047110000000000000000000000001C000000000000000000000003100000000000000000006D61696E000D003E117400000001006172676300120045114F0100000400000017000000000005000D003E110010000001006172677600120045114F01000008000000170000000000050002004F110000F20000002800000000000000000000001C00000000000000020000001C00000000000000020000001700000003000000F40000001800000001000000100139E9A066A1995A99DD01F5A392F26D7C0000F30000003000000000443A5C7372635C6C6C766D6275696C645C636C5C52656C656173655C7836345C67656E657269632E63707000000000
>> +    Subsections:
>> +      - !Symbols
>> +        Records:
>> +          - Kind:            S_COMPILE3
>> +            Compile3Sym:
>> +              Flags:           [  ]
>> +              Machine:         X64
>> +              FrontendMajor:   7
>> +              FrontendMinor:   0
>> +              FrontendBuild:   0
>> +              FrontendQFE:     0
>> +              BackendMajor:    7000
>> +              BackendMinor:    0
>> +              BackendBuild:    0
>> +              BackendQFE:      0
>> +              Version:         'clang version 7.0.0 '
>> +      - !Symbols
>> +        Records:
>> +          - Kind:            S_GPROC32_ID
>> +            ProcSym:
>> +              CodeSize:        28
>> +              DbgStart:        0
>> +              DbgEnd:          0
>> +              FunctionType:    4099
>> +              Flags:           [  ]
>> +              DisplayName:     main
>> +          - Kind:            S_LOCAL
>> +            LocalSym:
>> +              Type:            116
>> +              Flags:           [ IsParameter ]
>> +              VarName:         argc
>> +          - Kind:            S_DEFRANGE_REGISTER_REL
>> +            DefRangeRegisterRelSym:
>> +              Register:        335
>> +              Flags:           0
>> +              BasePointerOffset: 4
>> +              Range:
>> +                OffsetStart:     23
>> +                ISectStart:      0
>> +                Range:           5
>> +              Gaps:
>> +          - Kind:            S_LOCAL
>> +            LocalSym:
>> +              Type:            4096
>> +              Flags:           [ IsParameter ]
>> +              VarName:         argv
>> +          - Kind:            S_DEFRANGE_REGISTER_REL
>> +            DefRangeRegisterRelSym:
>> +              Register:        335
>> +              Flags:           0
>> +              BasePointerOffset: 8
>> +              Range:
>> +                OffsetStart:     23
>> +                ISectStart:      0
>> +                Range:           5
>> +              Gaps:
>> +          - Kind:            S_PROC_ID_END
>> +            ScopeEndSym:
>> +      - !Lines
>> +        CodeSize:        28
>> +        Flags:           [  ]
>> +        RelocOffset:     0
>> +        RelocSegment:    0
>> +        Blocks:
>> +          - FileName:
>> 'D:\src\llvmbuild\cl\Release\x64\generic.cpp'
>> +            Lines:
>> +              - Offset:          0
>> +                LineStart:       2
>> +                IsStatement:     false
>> +                EndDelta:        0
>> +              - Offset:          23
>> +                LineStart:       3
>> +                IsStatement:     false
>> +                EndDelta:        0
>> +            Columns:
>> +      - !FileChecksums
>> +        Checksums:
>> +          - FileName:
>> 'D:\src\llvmbuild\cl\Release\x64\generic.cpp'
>> +            Kind:            MD5
>> +            Checksum:        39E9A066A1995A99DD01F5A392F26D7C
>> +      - !StringTable
>> +        Strings:
>> +          - 'D:\src\llvmbuild\cl\Release\x64\generic.cpp'
>> +          - ''
>> +          - ''
>> +          - ''
>> +    Relocations:
>> +      - VirtualAddress:  100
>> +        SymbolName:      main
>> +        Type:            IMAGE_REL_AMD64_SECREL
>> +      - VirtualAddress:  104
>> +        SymbolName:      main
>> +        Type:            IMAGE_REL_AMD64_SECTION
>> +      - VirtualAddress:  139
>> +        SymbolName:      .text
>> +        Type:            IMAGE_REL_AMD64_SECREL
>> +      - VirtualAddress:  143
>> +        SymbolName:      .text
>> +        Type:            IMAGE_REL_AMD64_SECTION
>> +      - VirtualAddress:  174
>> +        SymbolName:      .text
>> +        Type:            IMAGE_REL_AMD64_SECREL
>> +      - VirtualAddress:  178
>> +        SymbolName:      .text
>> +        Type:            IMAGE_REL_AMD64_SECTION
>> +      - VirtualAddress:  196
>> +        SymbolName:      main
>> +        Type:            IMAGE_REL_AMD64_SECREL
>> +      - VirtualAddress:  200
>> +        SymbolName:      main
>> +        Type:            IMAGE_REL_AMD64_SECTION
>> +  - Name:            '.debug$T'
>> +    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA,
>> IMAGE_SCN_MEM_DISCARDABLE, IMAGE_SCN_MEM_READ ]
>> +    Alignment:       4
>> +    SectionData:
>>  040000000A000210700600000C0001000E0001120200000074000000001000000E0008107400000000000200011000001200011600000000021000006D61696E00F3F2F1
>> +    Types:
>> +      - Kind:            LF_POINTER
>> +        Pointer:
>> +          ReferentType:    1648
>> +          Attrs:           65548
>> +      - Kind:            LF_ARGLIST
>> +        ArgList:
>> +          ArgIndices:      [ 116, 4096 ]
>> +      - Kind:            LF_PROCEDURE
>> +        Procedure:
>> +          ReturnType:      116
>> +          CallConv:        NearC
>> +          Options:         [ None ]
>> +          ParameterCount:  2
>> +          ArgumentList:    4097
>> +      - Kind:            LF_FUNC_ID
>> +        FuncId:
>> +          ParentScope:     0
>> +          FunctionType:    4098
>> +          Name:            main
>> +  - Name:            .pdata
>> +    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA,
>> IMAGE_SCN_MEM_READ ]
>> +    Alignment:       4
>> +    SectionData:     000000001C00000000000000
>> +    Relocations:
>> +      - VirtualAddress:  0
>> +        SymbolName:      main
>> +        Type:            IMAGE_REL_AMD64_ADDR32NB
>> +      - VirtualAddress:  4
>> +        SymbolName:      main
>> +        Type:            IMAGE_REL_AMD64_ADDR32NB
>> +      - VirtualAddress:  8
>> +        SymbolName:      .xdata
>> +        Type:            IMAGE_REL_AMD64_ADDR32NB
>> +symbols:
>> +  - Name:            .text
>> +    Value:           0
>> +    SectionNumber:   1
>> +    SimpleType:      IMAGE_SYM_TYPE_NULL
>> +    ComplexType:     IMAGE_SYM_DTYPE_NULL
>> +    StorageClass:    IMAGE_SYM_CLASS_STATIC
>> +    SectionDefinition:
>> +      Length:          28
>> +      NumberOfRelocations: 0
>> +      NumberOfLinenumbers: 0
>> +      CheckSum:        594448369
>> +      Number:          1
>> +  - Name:            .data
>> +    Value:           0
>> +    SectionNumber:   2
>> +    SimpleType:      IMAGE_SYM_TYPE_NULL
>> +    ComplexType:     IMAGE_SYM_DTYPE_NULL
>> +    StorageClass:    IMAGE_SYM_CLASS_STATIC
>> +    SectionDefinition:
>> +      Length:          0
>> +      NumberOfRelocations: 0
>> +      NumberOfLinenumbers: 0
>> +      CheckSum:        0
>> +      Number:          2
>> +  - Name:            .bss
>> +    Value:           0
>> +    SectionNumber:   3
>> +    SimpleType:      IMAGE_SYM_TYPE_NULL
>> +    ComplexType:     IMAGE_SYM_DTYPE_NULL
>> +    StorageClass:    IMAGE_SYM_CLASS_STATIC
>> +    SectionDefinition:
>> +      Length:          0
>> +      NumberOfRelocations: 0
>> +      NumberOfLinenumbers: 0
>> +      CheckSum:        0
>> +      Number:          3
>> +  - Name:            .xdata
>> +    Value:           0
>> +    SectionNumber:   4
>> +    SimpleType:      IMAGE_SYM_TYPE_NULL
>> +    ComplexType:     IMAGE_SYM_DTYPE_NULL
>> +    StorageClass:    IMAGE_SYM_CLASS_STATIC
>> +    SectionDefinition:
>> +      Length:          8
>> +      NumberOfRelocations: 0
>> +      NumberOfLinenumbers: 0
>> +      CheckSum:        1192424177
>> +      Number:          4
>> +  - Name:            .drectve
>> +    Value:           0
>> +    SectionNumber:   5
>> +    SimpleType:      IMAGE_SYM_TYPE_NULL
>> +    ComplexType:     IMAGE_SYM_DTYPE_NULL
>> +    StorageClass:    IMAGE_SYM_CLASS_STATIC
>> +    SectionDefinition:
>> +      Length:          48
>> +      NumberOfRelocations: 0
>> +      NumberOfLinenumbers: 0
>> +      CheckSum:        149686238
>> +      Number:          5
>> +  - Name:            '.debug$S'
>> +    Value:           0
>> +    SectionNumber:   6
>> +    SimpleType:      IMAGE_SYM_TYPE_NULL
>> +    ComplexType:     IMAGE_SYM_DTYPE_NULL
>> +    StorageClass:    IMAGE_SYM_CLASS_STATIC
>> +    SectionDefinition:
>> +      Length:          324
>> +      NumberOfRelocations: 8
>> +      NumberOfLinenumbers: 0
>> +      CheckSum:        4196717433 <(419)%20671-7433>
>> +      Number:          6
>> +  - Name:            '.debug$T'
>> +    Value:           0
>> +    SectionNumber:   7
>> +    SimpleType:      IMAGE_SYM_TYPE_NULL
>> +    ComplexType:     IMAGE_SYM_DTYPE_NULL
>> +    StorageClass:    IMAGE_SYM_CLASS_STATIC
>> +    SectionDefinition:
>> +      Length:          68
>> +      NumberOfRelocations: 0
>> +      NumberOfLinenumbers: 0
>> +      CheckSum:        485351071
>> +      Number:          7
>> +  - Name:            .pdata
>> +    Value:           0
>> +    SectionNumber:   8
>> +    SimpleType:      IMAGE_SYM_TYPE_NULL
>> +    ComplexType:     IMAGE_SYM_DTYPE_NULL
>> +    StorageClass:    IMAGE_SYM_CLASS_STATIC
>> +    SectionDefinition:
>> +      Length:          12
>> +      NumberOfRelocations: 3
>> +      NumberOfLinenumbers: 0
>> +      CheckSum:        722740324
>> +      Number:          8
>> +  - Name:            main
>> +    Value:           0
>> +    SectionNumber:   1
>> +    SimpleType:      IMAGE_SYM_TYPE_NULL
>> +    ComplexType:     IMAGE_SYM_DTYPE_FUNCTION
>> +    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
>> +...
>>
>> Added: lld/trunk/test/COFF/Inputs/natvis-1.natvis
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/Inputs/natvis-1.natvis?rev=327895&view=auto
>>
>> ==============================================================================
>> --- lld/trunk/test/COFF/Inputs/natvis-1.natvis (added)
>> +++ lld/trunk/test/COFF/Inputs/natvis-1.natvis Mon Mar 19 12:53:51 2018
>> @@ -0,0 +1 @@
>> +1st Natvis Test
>>
>> Added: lld/trunk/test/COFF/Inputs/natvis-2.natvis
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/Inputs/natvis-2.natvis?rev=327895&view=auto
>>
>> ==============================================================================
>> --- lld/trunk/test/COFF/Inputs/natvis-2.natvis (added)
>> +++ lld/trunk/test/COFF/Inputs/natvis-2.natvis Mon Mar 19 12:53:51 2018
>> @@ -0,0 +1 @@
>> +Second Natvis Test
>>
>> Added: lld/trunk/test/COFF/Inputs/natvis-3.natvis
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/Inputs/natvis-3.natvis?rev=327895&view=auto
>>
>> ==============================================================================
>> --- lld/trunk/test/COFF/Inputs/natvis-3.natvis (added)
>> +++ lld/trunk/test/COFF/Inputs/natvis-3.natvis Mon Mar 19 12:53:51 2018
>> @@ -0,0 +1 @@
>> +Third Natvis Test
>>
>> Added: lld/trunk/test/COFF/pdb-natvis.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/pdb-natvis.test?rev=327895&view=auto
>>
>> ==============================================================================
>> --- lld/trunk/test/COFF/pdb-natvis.test (added)
>> +++ lld/trunk/test/COFF/pdb-natvis.test Mon Mar 19 12:53:51 2018
>> @@ -0,0 +1,26 @@
>> +REQUIRES: diasdk
>> +
>> +RUN: yaml2obj %p/Inputs/generic.yaml > %t.obj
>> +RUN: lld-link /DEBUG %t.obj /nodefaultlib /entry:main
>> /NATVIS:%p/Inputs/natvis-1.natvis \
>> +RUN:   /NATVIS:%p/Inputs/natvis-2.natvis
>> /NATVIS:%p/Inputs/natvis-3.natvis /OUT:%t.exe \
>> +RUN:   /PDB:%t.pdb
>> +RUN: llvm-pdbutil pretty -injected-sources -injected-source-content
>> %t.pdb | FileCheck \
>> +RUN:   --check-prefix=CHECK-FIRST %s
>> +RUN: llvm-pdbutil pretty -injected-sources -injected-source-content
>> %t.pdb | FileCheck \
>> +RUN:   --check-prefix=CHECK-SECOND %s
>> +RUN: llvm-pdbutil pretty -injected-sources -injected-source-content
>> %t.pdb | FileCheck \
>> +RUN:   --check-prefix=CHECK-THIRD %s
>> +
>> +RUN: lld-link /DEBUG %t.obj /nodefaultlib /entry:main
>> /NATVIS:%p/Inputs/test2.natvis \
>> +RUN:   /OUT:%t.exe /PDB:%t.pdb 2>&1 | FileCheck
>> --check-prefix=CHECK-MISSING %s
>> +
>> +CHECK-FIRST:      {{.*}}natvis-1.natvis (16 bytes): obj=<null>,
>> vname={{.*}}natvis-1.natvis, crc=355285096, compression=None
>> +CHECK-FIRST-NEXT: 1st Natvis Test
>> +
>> +CHECK-SECOND:      {{.*}}natvis-2.natvis (19 bytes): obj=<null>,
>> vname={{.*}}natvis-2.natvis, crc=4252640062 <(425)%20264-0062>,
>> compression=None
>> +CHECK-SECOND-NEXT: Second Natvis Test
>> +
>> +CHECK-THIRD:      {{.*}}natvis-3.natvis (18 bytes): obj=<null>,
>> vname={{.*}}natvis-3.natvis, crc=2069719849 <(206)%20971-9849>,
>> compression=None
>> +CHECK-THIRD-NEXT: Third Natvis Test
>> +
>> +CHECK-MISSING: Cannot open input file: {{.*}}test2.natvis
>> \ No newline at end of file
>>
>> Modified: lld/trunk/test/lit.cfg.py
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/lit.cfg.py?rev=327895&r1=327894&r2=327895&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/lit.cfg.py (original)
>> +++ lld/trunk/test/lit.cfg.py Mon Mar 19 12:53:51 2018
>> @@ -85,6 +85,9 @@ if (lit.util.which('cvtres', config.envi
>>  if (config.llvm_libxml2_enabled == '1'):
>>      config.available_features.add('libxml2')
>>
>> +if config.have_dia_sdk:
>> +    config.available_features.add("diasdk")
>> +
>>  tar_executable = lit.util.which('tar', config.environment['PATH'])
>>  if tar_executable:
>>      tar_version = subprocess.Popen(
>>
>> Modified: lld/trunk/test/lit.site.cfg.py.in
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/lit.site.cfg.py.in?rev=327895&r1=327894&r2=327895&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/lit.site.cfg.py.in (original)
>> +++ lld/trunk/test/lit.site.cfg.py.in Mon Mar 19 12:53:51 2018
>> @@ -1,5 +1,6 @@
>>  @LIT_SITE_CFG_IN_HEADER@
>>
>> +config.have_dia_sdk = "@LLVM_ENABLE_DIA_SDK@"
>>  config.llvm_src_root = "@LLVM_SOURCE_DIR@"
>>  config.llvm_obj_root = "@LLVM_BINARY_DIR@"
>>  config.llvm_tools_dir = "@LLVM_TOOLS_DIR@"
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180319/8ff71c30/attachment-0001.html>


More information about the llvm-commits mailing list