llvm-project/lld/COFF
Zachary Turner a1f85f8bdd [PDB] Emit old fpo data to the PDB file.
r342003 added support for emitting FPO data from the
DEBUG_S_FRAMEDATA subsection of the .debug$S section to the PDB
file.  However, that is not the end of the story.  FPO can end
up in two different destinations in a PDB, each corresponding to
a different FPO data source.

The case handled by r342003 involves copying data from the
DEBUG_S_FRAMEDATA subsection of the .debug$S section to the
"New FPO" stream in the PDB, which is then referred to by the
DBI stream.  The case handled by this patch involves copying
records from the .debug$F section of an object file to the "FPO"
stream (or perhaps more aptly, the "Old FPO" stream) in the PDB
file, which is also referred to by the DBI stream.

The formats are largely similar, and the difference is mostly
only visible in masm generated object files, such as some of the
low-level CRT object files like memcpy.  MASM doesn't appear to
support writing the DEBUG_S_FRAMEDATA subsection, and instead
just writes these records to the .debug$F section.

Although clang-cl does not emit a .debug$F section ever, lld still
needs to support it so we have good debugging for CRT functions.

Differential Revision: https://reviews.llvm.org/D51958

llvm-svn: 342080
2018-09-12 21:02:01 +00:00
..
CMakeLists.txt Merge {COFF,ELF}/Strings.cpp to Common/Strings.cpp. 2018-02-28 17:38:19 +00:00
Chunks.cpp [COFF] When doing automatic dll imports, replace whole .refptr.<var> chunks with __imp_<var> 2018-08-31 07:45:20 +00:00
Chunks.h [COFF] When doing automatic dll imports, replace whole .refptr.<var> chunks with __imp_<var> 2018-08-31 07:45:20 +00:00
Config.h [PDB] Add PDBSourcePath flag to support absolutize source file path 2018-07-19 04:56:22 +00:00
DLL.cpp Consistent (non) use of empty lines in include blocks 2018-02-20 21:53:18 +00:00
DLL.h COFF: Process /merge flag as we create output sections. 2018-04-07 00:46:55 +00:00
Driver.cpp [COFF] Allow exporting all symbols from system libraries specfied with -wholearchive: 2018-09-04 20:56:56 +00:00
Driver.h lld-link: Fix subsystem inference for non-console apps on 32-bit, and fix entry point inference on 32-bit with /nodefaultlib 2018-08-03 12:00:12 +00:00
DriverUtils.cpp lld-link: Remove /msvclto option 2018-08-01 19:00:49 +00:00
ICF.cpp [COFF] When doing automatic dll imports, replace whole .refptr.<var> chunks with __imp_<var> 2018-08-31 07:45:20 +00:00
ICF.h Consistent use of header file for ICF and MarkLive 2018-02-20 22:09:59 +00:00
InputFiles.cpp COFF: Implement safe ICF on rodata using address-significance tables. 2018-08-23 17:44:42 +00:00
InputFiles.h COFF: Implement safe ICF on rodata using address-significance tables. 2018-08-23 17:44:42 +00:00
LTO.cpp Code cleanup in preparation for adding LTO for wasm. NFC. 2018-05-22 20:20:25 +00:00
LTO.h Code cleanup in preparation for adding LTO for wasm. NFC. 2018-05-22 20:20:25 +00:00
MapFile.cpp COFF: Move assignment of section RVAs to assignAddresses(). NFCI. 2018-03-15 21:13:46 +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] When doing automatic dll imports, replace whole .refptr.<var> chunks with __imp_<var> 2018-08-31 07:45:20 +00:00
MarkLive.h Consistent use of header file for ICF and MarkLive 2018-02-20 22:09:59 +00:00
MinGW.cpp [COFF] Allow exporting all symbols from system libraries specfied with -wholearchive: 2018-09-04 20:56:56 +00:00
MinGW.h [COFF] Allow exporting all symbols from system libraries specfied with -wholearchive: 2018-09-04 20:56:56 +00:00
Options.td lld-link: Remove /msvclto option 2018-08-01 19:00:49 +00:00
PDB.cpp [PDB] Emit old fpo data to the PDB file. 2018-09-12 21:02:01 +00:00
PDB.h COFF: Friendlier undefined symbol errors. 2018-04-17 23:32:33 +00:00
README.md Update the documents of the new LLD. 2016-03-12 06:06:40 +00:00
SymbolTable.cpp [COFF] don't mark lazy symbols as used in regular objects 2018-09-06 20:23:56 +00:00
SymbolTable.h [COFF] don't mark lazy symbols as used in regular objects 2018-09-06 20:23:56 +00:00
Symbols.cpp [COFF] When doing automatic dll imports, replace whole .refptr.<var> chunks with __imp_<var> 2018-08-31 07:45:20 +00:00
Symbols.h fix comment typo 2018-08-27 14:22:25 +00:00
Writer.cpp Remove an effectively unused local variable. 2018-09-10 13:20:16 +00:00
Writer.h COFF: Use (name, output characteristics) as a key when grouping input sections into output sections. 2018-04-20 21:10:33 +00:00

README.md

See docs/NewLLD.rst