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

Galina Kistanova via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 19 13:29:03 PDT 2018


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:     4883EC1831C0C74424140000000048
> 89542408894C24044883C418C3
> +  - 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:     202F44454641554C544C49423A6C69
> 62636D742E6C6962202F44454641554C544C49423A6F6C646E616D65732E6C6962
> +  - Name:            '.debug$S'
> +    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA,
> IMAGE_SCN_MEM_DISCARDABLE, IMAGE_SCN_MEM_READ ]
> +    Alignment:       4
> +    SectionData:     04000000F10000002F0000002D003C
> 1101000000D0000700000000000000581B000000000000636C616E672076
> 657273696F6E20372E302E30200000F1000000760000002A004711000000
> 0000000000000000001C0000000000000000000000031000000000000000
> 00006D61696E000D003E117400000001006172676300120045114F010000
> 0400000017000000000005000D003E110010000001006172677600120045
> 114F01000008000000170000000000050002004F110000F2000000280000
> 0000000000000000001C00000000000000020000001C0000000000000002
> 0000001700000003000000F40000001800000001000000100139E9A066A1
> 995A99DD01F5A392F26D7C0000F30000003000000000443A5C7372635C6C
> 6C766D6275696C645C636C5C52656C656173655C7836345C67656E657269
> 632E63707000000000
> +    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:     040000000A000210700600000C0001
> 000E0001120200000074000000001000000E000810740000000000020001
> 1000001200011600000000021000006D61696E00F3F2F1
> +    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
> +      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, compression=None
> +CHECK-SECOND-NEXT: Second Natvis Test
> +
> +CHECK-THIRD:      {{.*}}natvis-3.natvis (18 bytes): obj=<null>,
> vname={{.*}}natvis-3.natvis, crc=2069719849, 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/9f19d3dd/attachment.html>


More information about the llvm-commits mailing list