hanchenye-llvm-project/lld
Martin Storsjo 90b4388f56 [COFF] Fix wholearchive with thin archives
The Archive object created when loading an archive specified with
wholearchive got cleaned up immediately, when the owning std::unique_ptr
went out of scope, even if persisted StringRefs pointed to memory that
belonged to the archive, which no longer was mapped in memory.

This hasn't been an issue with regular (as opposed to thin) archives,
as references to the member objects has kept the mapping for the whole
archive file alive - but with thin archives, all such references point
to other files.

Add the std::unique_ptr to the arena allocator, to retain it as long
as necessary.

This fixes (the last issue raised in) PR42388.

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

llvm-svn: 367599
2019-08-01 18:47:27 +00:00
..
COFF [COFF] Fix wholearchive with thin archives 2019-08-01 18:47:27 +00:00
Common [ELF] With --vs-diagnostics, print a separate message for each location of a duplicate symbol. 2019-08-01 09:58:03 +00:00
ELF [ELF] Add -z separate-code and pad the last page of last PF_X PT_LOAD with traps only if -z separate-code is specified 2019-08-01 09:58:25 +00:00
MinGW [Coding style change][lld] Rename variables for non-ELF ports 2019-07-11 05:40:30 +00:00
cmake/modules
docs Bump the trunk version to 10.0.0svn 2019-07-18 11:51:05 +00:00
include/lld [ELF] With --vs-diagnostics, print a separate message for each location of a duplicate symbol. 2019-08-01 09:58:03 +00:00
lib [Coding style change][lld] Rename variables for non-ELF ports 2019-07-11 05:40:30 +00:00
test [COFF] Fix wholearchive with thin archives 2019-08-01 18:47:27 +00:00
tools/lld Fix build breakage on Darwin. 2019-07-11 06:12:18 +00:00
unittests Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
utils Python 2/3 compatibility 2019-03-20 07:42:13 +00:00
wasm [WebAssembly] Set __tls_align to 1 when there is no TLS 2019-07-24 21:48:14 +00:00
.arcconfig
.clang-format
.gitignore
CMakeLists.txt [CMake] Don't set Python_ADDITIONAL_VERSIONS 2019-07-18 15:17:42 +00:00
CODE_OWNERS.TXT
LICENSE.TXT Fix typos throughout the license files that somehow I and my reviewers 2019-01-21 09:52:34 +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.

Benchmarking

In order to make sure various developers can evaluate patches over the same tests, we create a collection of self contained programs.

It is hosted at https://s3-us-west-2.amazonaws.com/linker-tests/lld-speed-test.tar.xz

The current sha256 is 10eec685463d5a8bbf08d77f4ca96282161d396c65bd97dc99dbde644a31610f.