commit | 15e93788c5fa4b098dde2dcc5ecc457cc020b689 | [log] [tgz] |
---|---|---|
author | Martin Storsjo <martin@martin.st> | Wed Sep 04 20:34:00 2019 +0000 |
committer | Martin Storsjo <martin@martin.st> | Wed Sep 04 20:34:00 2019 +0000 |
tree | 813926a9580b03212e33a365007da98014a4ee44 | |
parent | 5542545ce7d176e066e0d7fe5b574295b4fa0372 [diff] |
[LLD] [COFF] Implement MinGW default manifest handling In mingw environments, resources are normally compiled to resource object files directly, instead of letting the linker convert them to COFF format. Since some time, GCC supports the notion of a default manifest object. When invoking the linker, GCC looks for the default manifest object file, and if found in the expected path, it is added to linker commands. The default manifest is one that indicates support for the latest known versions of windows, to implicitly unlock the modern behaviours of certain APIs. Not all mingw/gcc distributions include this file, but e.g. in msys2, the default manifest object is distributed in a separate package (which can be but might not always be installed). This means that even if user projects only use one single resource object file, the linker can end up with two resource object files, and thus needs to support merging them. The default manifest has a language id of zero, and GNU ld has got logic for dropping a manifest with a zero language id, if there's another manifest present with a nonzero language id. If there are multiple manifests with a nonzero language id, the merging process errors out. Differential Revision: https://reviews.llvm.org/D66825 git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@370974 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.