llvm-project/lld/COFF
Rui Ueyama e1bf1365d7 Do not pass archive files containing non-native object files.
The MSVC linker doesn't like archive files containing non-native object
files.

When we are doing an LTO build, we may create archive files containing
both LLVM bitcode files and native object files. For example, if a
project contains assembly files and C++ files, we create native object
files for the assembly files and LLVM bitcode files for the C++ files.

With the /msvclto option, LLD passes archive files to the MSVC linker.
Previously, we didn't pass archive files if they contain at least one
bitcode files. That wasn't correct because the native object files that
weren't passed to the MSVC linker may be needed to complete linking.

In this patch, we create new temporary archive files to strip bitcode
files.

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

llvm-svn: 297997
2017-03-16 21:19:36 +00:00
..
CMakeLists.txt [CMake] Fix pthread handling for out-of-tree builds 2017-02-10 01:59:20 +00:00
Chunks.cpp Do not use errs() or outs() directly. Instead use message(), log() or error() 2017-02-21 23:22:56 +00:00
Chunks.h COFF: Change the /lldmap output format to be more like the ELF linker. 2017-01-14 03:14:46 +00:00
Config.h [COFF] added support for /lldsavetemps 2017-02-08 18:36:41 +00:00
DLL.cpp COFF: New symbol table design. 2016-12-09 21:55:24 +00:00
DLL.h Make these headers as being c++. 2015-08-14 14:12:54 +00:00
Driver.cpp Do not pass archive files containing non-native object files. 2017-03-16 21:19:36 +00:00
Driver.h Fix /msvclto. 2017-02-23 00:26:42 +00:00
DriverUtils.cpp Fix /msvclto. 2017-02-23 00:26:42 +00:00
Error.cpp Do not use errs() or outs() directly. Instead use message(), log() or error() 2017-02-21 23:22:56 +00:00
Error.h Do not pass archive files containing non-native object files. 2017-03-16 21:19:36 +00:00
ICF.cpp Do not use errs() or outs() directly. Instead use message(), log() or error() 2017-02-21 23:22:56 +00:00
InputFiles.cpp refactor COFF linker to use new LTO API 2017-02-02 23:58:14 +00:00
InputFiles.h refactor COFF linker to use new LTO API 2017-02-02 23:58:14 +00:00
LTO.cpp [COFF] added support for /lldsavetemps 2017-02-08 18:36:41 +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
Librarian.cpp Fix wrong assertion failure. 2017-03-09 04:47:33 +00:00
MapFile.cpp Print alignment in decimal instead of hexadecimal. 2017-01-31 20:42:34 +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: New symbol table design. 2016-12-09 21:55:24 +00:00
Memory.h Remove lld/Support/Memory.h. 2016-12-18 14:06:06 +00:00
ModuleDef.cpp Remove lld/Support/Memory.h. 2016-12-18 14:06:06 +00:00
Options.td Revert "[COFF] support /ERRORLIMIT option" 2017-02-19 02:25:47 +00:00
PDB.cpp [pdb] Write the module info and symbol record streams. 2017-03-15 22:18:53 +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 Windows buildbots. 2016-12-07 23:24:32 +00:00
Strings.h COFF: Define overloaded toString functions. 2016-12-07 23:17:02 +00:00
SymbolTable.cpp Do not use errs() or outs() directly. Instead use message(), log() or error() 2017-02-21 23:22:56 +00:00
SymbolTable.h Add an option to use the MSVC linker to link LTO-generated object files. 2017-02-06 20:47:55 +00:00
Symbols.cpp refactor COFF linker to use new LTO API 2017-02-02 23:58:14 +00:00
Symbols.h fix nullptr dereference in COFF/Symbol.h 2017-02-03 23:05:17 +00:00
Writer.cpp COFF: prevent nullptr dereference 2017-02-07 04:28:02 +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