llvm-project/llvm/lib/Object
Martin Storsjo d581dd5013 [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

llvm-svn: 370974
2019-09-04 20:34:00 +00:00
..
Archive.cpp [llvm-ar] Fix support for archives with members larger than 4GB 2019-07-23 14:44:21 +00:00
ArchiveWriter.cpp [llvm-ar] Fix support for archives with members larger than 4GB 2019-07-23 14:44:21 +00:00
Binary.cpp [Object] Add tapi files to object 2019-08-21 23:30:53 +00:00
CMakeLists.txt [Object] Add tapi files to object 2019-08-21 23:30:53 +00:00
COFFImportFile.cpp [llvm-dlltool] Respect NONAME keyword 2019-05-22 09:49:54 +00:00
COFFModuleDefinition.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
COFFObjectFile.cpp [COFF] Add a ResourceSectionRef method for getting resource contents 2019-08-30 06:55:49 +00:00
Decompressor.cpp Recommit r368812 "[llvm/Object] - Convert SectionRef::getName() to return Expected<>" 2019-08-14 11:10:11 +00:00
ELF.cpp [Object/ELF.h] - Improve error reporting. 2019-07-05 11:28:49 +00:00
ELFObjectFile.cpp [llvm-objdump] Add the missing ARMv8 subarch detection 2019-08-28 06:37:22 +00:00
Error.cpp [Object] isNotObjectErrorInvalidFileType: simplify 2019-07-13 09:28:33 +00:00
IRObjectFile.cpp Recommit [Object] Change object::SectionRef::getContents() to return Expected<StringRef> 2019-05-16 13:24:04 +00:00
IRSymtab.cpp [ELF] Implement Dependent Libraries Feature 2019-05-17 03:44:15 +00:00
LLVMBuild.txt [Object] Add tapi files to object 2019-08-21 23:30:53 +00:00
MachOObjectFile.cpp [yaml2obj/obj2yaml][MachO] Allow setting custom section data 2019-08-20 08:49:07 +00:00
MachOUniversal.cpp [Object] Add public MaxSectionAlignment to MachOUniversal 2019-07-25 00:29:13 +00:00
Minidump.cpp Minidump: Add support for the MemoryList stream 2019-05-16 15:17:30 +00:00
ModuleSymbolTable.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Object.cpp Recommit r368812 "[llvm/Object] - Convert SectionRef::getName() to return Expected<>" 2019-08-14 11:10:11 +00:00
ObjectFile.cpp Recommit r370661 "[llvm-nm] - Add a test case for case when we dump a symbol that belongs to a section with a broken sh_name." 2019-09-02 14:57:35 +00:00
RecordStreamer.cpp [AsmPrinter] Remove hidden flag -print-schedule. 2019-02-04 12:51:26 +00:00
RecordStreamer.h [AsmPrinter] Remove hidden flag -print-schedule. 2019-02-04 12:51:26 +00:00
RelocationResolver.cpp [BPF] Fix bpf llvm-objdump issues. 2019-08-17 22:12:00 +00:00
SymbolSize.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
SymbolicFile.cpp [BinaryFormat] Teach identify_magic about Tapi files. 2019-08-21 21:00:16 +00:00
TapiFile.cpp [Object] FIX: update PlatformKind name in TapiFile 2019-08-21 23:57:57 +00:00
TapiUniversal.cpp [Object] Add tapi files to object 2019-08-21 23:30:53 +00:00
WasmObjectFile.cpp [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
WindowsMachineFlag.cpp Share /machine: handling code with llvm-cvtres too 2019-06-12 11:32:43 +00:00
WindowsResource.cpp [LLD] [COFF] Implement MinGW default manifest handling 2019-09-04 20:34:00 +00:00
XCOFFObjectFile.cpp [XCOFF][AIX] Generate symbol table entries with llvm-readobj 2019-08-27 18:54:46 +00:00