llvm-project/lld/COFF
Zachary Turner 6c4bfba8f3 [PDB] Teach libpdb to write DBI Stream ECNames.
Based strictly on the name, this seems to have something to do
width edit & continue.  The goal of this patch has nothing to do
with supporting edit and continue though.  msvc link.exe writes
very basic information into this area even when *not* compiling
with support for E&C, and so the goal here is to bring lld-link
to parity.  Since we cannot know what assumptions standard tools
make about the content of PDB files, we need to be as close as
possible.

This ECNames data structure is a standard PDB string hash table.
link.exe puts a single string into this hash table, which is the
full path to the PDB file on disk.  It then references this string
from the module descriptor for the compiler generated `* Linker *`
module.

With this patch, lld-link will generate the exact same sequence of
bytes as MSVC link for this subsection for a given object file
input (as reported by `llvm-pdbutil bytes -ec`).

llvm-svn: 307356
2017-07-07 05:04:36 +00:00
..
CMakeLists.txt Add BinaryFormat to lld libraries 2017-06-07 18:06:11 +00:00
Chunks.cpp [COFF] Allow debug info to relocate against discarded symbols 2017-06-28 17:06:35 +00:00
Chunks.h [COFF] Allow debug info to relocate against discarded symbols 2017-06-28 17:06:35 +00:00
Config.h [COFF] Add initial support for linking ARM64 binaries 2017-07-01 20:29:27 +00:00
DLL.cpp Revert "Merge IAT and ILT." 2017-06-02 18:49:38 +00:00
DLL.h Revert "Merge IAT and ILT." 2017-06-02 18:49:38 +00:00
Driver.cpp [COFF] Improve synthetic symbol handling 2017-06-26 15:39:52 +00:00
Driver.h Remove unused declarations 2017-06-30 00:34:35 +00:00
DriverUtils.cpp Revert "Revert "Revert "Switch external cvtres.exe for llvm's own resource library.""" 2017-07-05 23:46:06 +00:00
Error.cpp Flush output in log() 2017-04-28 21:35:02 +00:00
Error.h Do not pass archive files containing non-native object files. 2017-03-16 21:19:36 +00:00
ICF.cpp Fix the sanitizer-windows bot. 2017-05-24 20:32:23 +00:00
InputFiles.cpp [COFF] Add initial support for linking ARM64 binaries 2017-07-01 20:29:27 +00:00
InputFiles.h [PDB] Add a module descriptor for every object file 2017-06-13 15:49:13 +00:00
LTO.cpp [coff] default to multiple parallel ThinLTO jobs 2017-04-12 18:36:13 +00:00
LTO.h Add an option to use the MSVC linker to link LTO-generated object files. 2017-02-06 20:47:55 +00:00
MapFile.cpp [Support] Move Parallel algorithms from LLD to LLVM. 2017-05-11 00:03:52 +00:00
MapFile.h COFF: Change the /lldmap output format to be more like the ELF linker. 2017-01-14 03:14:46 +00:00
MarkLive.cpp [COFF] Allow debug info to relocate against discarded symbols 2017-06-28 17:06:35 +00:00
Memory.h Remove lld/Support/Memory.h. 2016-12-18 14:06:06 +00:00
Options.td Remove /dumppdb option from LLD. 2017-06-16 23:41:44 +00:00
PDB.cpp [PDB] Teach libpdb to write DBI Stream ECNames. 2017-07-07 05:04:36 +00:00
PDB.h COFF: tie the execute and the PDB together 2017-01-04 17:56:54 +00:00
README.md Update the documents of the new LLD. 2016-03-12 06:06:40 +00:00
Strings.cpp Fix build breakage. 2017-06-19 18:04:34 +00:00
Strings.h COFF: Define overloaded toString functions. 2016-12-07 23:17:02 +00:00
SymbolTable.cpp [COFF] Improve synthetic symbol handling 2017-06-26 15:39:52 +00:00
SymbolTable.h [COFF] Improve synthetic symbol handling 2017-06-26 15:39:52 +00:00
Symbols.cpp [COFF] Fix SECTION and SECREL relocation handling for absolute symbols 2017-06-22 23:33:04 +00:00
Symbols.h [COFF] Allow debug info to relocate against discarded symbols 2017-06-28 17:06:35 +00:00
Writer.cpp Remove unused declarations 2017-06-30 00:34:35 +00:00
Writer.h COFF: Change the /lldmap output format to be more like the ELF linker. 2017-01-14 03:14:46 +00:00

README.md

See docs/NewLLD.rst