commit | a8872150a9858acc8b415534a0928c66ce13e71e | [log] [tgz] |
---|---|---|
author | Nico Weber <nicolasweber@gmx.de> | Thu Jan 31 16:14:33 2019 +0000 |
committer | Nico Weber <nicolasweber@gmx.de> | Thu Jan 31 16:14:33 2019 +0000 |
tree | d767f3c5f5a50f911acc52d142daeb1f2a23628e | |
parent | a29f0d266a02379fff68a217d083c3d331503d55 [diff] |
lld-link: Allow mixing 'discard' and 'largest' comdat selections cl.exe and clang-cl.exe put vftables in a 'discard' comdat when building with RTTI disabled (/GR-) but in a 'largest' comdat when building with RTTI enabled. To be able to link /GR- code with /GR code, lld-link needs to accept comdats that have this type of comdat selection conflict. For example, static libraries in the Visual Studio standard library are built with /GR, and without this it's impossible to build client code with /GR- and still link to the standard library. link.exe also accepts merging 'discard' with 'largest', and it accepts merging 'largest' with any other selection type. lld-link is still a bit stricter since it only allows merging 'largest' with 'discard' for symmetry. Differential Revision: https://reviews.llvm.org/D57515 git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@352765 91177308-0d34-0410-b5e6-96231b3b80d8
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.
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.