[MinGW] Add an lld specific option for requesting to delay load libraries
With GNU tools, delayload is handled completely differently. (One creates a specific delayload import library using dlltool and then links against it instead of the normal import library.) Instead of requiring using -Xlink=-delayload:lib.dll, we can provide an lld specific option for this. Differential Revision: https://reviews.llvm.org/D65728 llvm-svn: 367837
This commit is contained in:
parent
a0cbe16ed5
commit
c92b3563c6
|
@ -303,6 +303,8 @@ bool mingw::link(ArrayRef<const char *> argsArr, raw_ostream &diag) {
|
|||
add("-include:" + StringRef(a->getValue()));
|
||||
for (auto *a : args.filtered(OPT_undefined))
|
||||
add("-includeoptional:" + StringRef(a->getValue()));
|
||||
for (auto *a : args.filtered(OPT_delayload))
|
||||
add("-delayload:" + StringRef(a->getValue()));
|
||||
|
||||
std::vector<StringRef> searchPaths;
|
||||
for (auto *a : args.filtered(OPT_L)) {
|
||||
|
|
|
@ -80,6 +80,8 @@ def require_defined_eq: J<"require-defined=">, Alias<require_defined>;
|
|||
def _HASH_HASH_HASH : Flag<["-"], "###">,
|
||||
HelpText<"Print (but do not run) the commands to run for this compilation">;
|
||||
def appcontainer: F<"appcontainer">, HelpText<"Set the appcontainer flag in the executable">;
|
||||
def delayload: S<"delayload">, HelpText<"DLL to load only on demand">;
|
||||
def delayload_eq: J<"delayload=">, Alias<delayload>;
|
||||
def mllvm: S<"mllvm">;
|
||||
def pdb: S<"pdb">, HelpText<"Output PDB debug info file, chosen implicitly if the argument is empty">;
|
||||
def pdb_eq: J<"pdb=">, Alias<pdb>;
|
||||
|
|
|
@ -200,3 +200,7 @@ APPCONTAINER: -appcontainer
|
|||
# RUN: ld.lld -m i386pep --help 2>&1 | FileCheck -check-prefix=HELP %s
|
||||
# HELP: USAGE:
|
||||
# HELP: --enable-auto-import
|
||||
|
||||
RUN: ld.lld -### -m i386pep foo.o -delayload user32.dll --delayload shell32.dll | FileCheck -check-prefix DELAYLOAD %s
|
||||
RUN: ld.lld -### -m i386pep foo.o -delayload=user32.dll --delayload=shell32.dll | FileCheck -check-prefix DELAYLOAD %s
|
||||
DELAYLOAD: -delayload:user32.dll -delayload:shell32.dll
|
||||
|
|
Loading…
Reference in New Issue