llvm-project/lld
Rui Ueyama 680210fe7d [PECOFF] Fix priority of locally imported symbols.
Linker should create _imp_ symbols for local use only when such
symbols cannot be resolved in any other way. If it overrides real
imported symbols, such symbols remain virtually unresolved without
error, causing odd issues. I observed that a program linked with
LLD entered an infinite loop before reaching main() because of
this issue.

This patch moves the virtual file creating _imp_ symbols to the
very end of the input file list. Previously, the file is at the end
of the library file group. Linker might revisit the group many times,
so it was not really at the end of the input file list.

llvm-svn: 207605
2014-04-30 03:31:46 +00:00
..
cmake/modules Add VTune as an optional external dependency and add task tracking. 2013-04-06 00:56:40 +00:00
docs Add support for building Sphinx documentation when being built inside LLVM source tree and using CMake. 2014-04-18 21:59:05 +00:00
include/lld [PECOFF] Allow multiple directives in one module-definition file. 2014-04-26 00:25:02 +00:00
lib [PECOFF] Fix priority of locally imported symbols. 2014-04-30 03:31:46 +00:00
test [PECOFF] Fix priority of locally imported symbols. 2014-04-30 03:31:46 +00:00
tools [PECOFF] Rename link.exe -> lld-link.exe. 2014-03-21 20:41:48 +00:00
unittests [PECOFF] Allow multiple directives in one module-definition file. 2014-04-26 00:25:02 +00:00
utils Replace OwningPtr with std::unique_ptr. 2014-03-13 16:20:38 +00:00
.arcconfig Update Phabricator server. 2014-04-07 04:52:24 +00:00
.clang-format Add .clang-format file to ensure C++11 LLVM coding style. 2013-12-11 22:39:33 +00:00
.gitignore docs: Sketch Sphinx based docs structure. 2012-04-06 21:02:20 +00:00
CMakeLists.txt Add support for building Sphinx documentation when being built inside LLVM source tree and using CMake. 2014-04-18 21:59:05 +00:00
LICENSE.TXT Update the copyright credits -- Happy new year 2014! 2014-01-01 08:27:31 +00:00
README.md Test commit 2012-09-14 00:00:39 +00:00

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.