[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