llvm-project/lld
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
..
COFF Do not pass archive files containing non-native object files. 2017-03-16 21:19:36 +00:00
ELF [ELF] - Rename Config->Is64Bit() to is64(). NFC. 2017-03-16 13:41:29 +00:00
cmake/modules [lld][cmake] Fix BUILD_SHARED_LIBS installation 2017-01-24 10:41:02 +00:00
docs Improve the documentation. Patch from genewitch. Found on https://github.com/llvm-mirror/lld/pull/5 2017-03-02 10:40:24 +00:00
include/lld [ELF] - Allow the Code Model flag when using LTO 2017-02-28 23:43:26 +00:00
lib [ELF] - Allow the Code Model flag when using LTO 2017-02-28 23:43:26 +00:00
test Do not pass archive files containing non-native object files. 2017-03-16 21:19:36 +00:00
tools/lld s/Mac/macOS/ because that's now the official name of the OS. 2017-02-23 02:58:14 +00:00
unittests [CMake] Fix pthread handling for out-of-tree builds 2017-02-10 01:59:20 +00:00
.arcconfig Upgrade all the .arcconfigs to https. 2016-07-14 13:15:37 +00:00
.clang-format
.gitignore
CMakeLists.txt [cmake] Support running tests in stand-alone builds 2017-01-31 14:10:20 +00:00
CODE_OWNERS.TXT Add initial CODE_OWNERS.TXT file 2015-07-25 00:44:37 +00:00
LICENSE.TXT Update copyright year to 2016. 2016-03-30 22:40:59 +00:00
README.md

README.md

LLVM Linker (lld)

This directory and its subdirectories contain source code for the LLVM Linker, a modular cross platform linker which is built as part of the LLVM compiler infrastructure project.

lld is open source software. You may freely distribute it under the terms of the license agreement found in LICENSE.txt.