[MinGW] Hook up the --export-all-symbols and --output-def options

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

llvm-svn: 315563
This commit is contained in:
Martin Storsjo 2017-10-12 05:37:18 +00:00
parent 7f71acdcd7
commit a84a47741a
3 changed files with 13 additions and 0 deletions

View File

@ -136,6 +136,8 @@ bool mingw::link(ArrayRef<const char *> ArgsArr, raw_ostream &Diag) {
Add("-implib:" + StringRef(A->getValue())); Add("-implib:" + StringRef(A->getValue()));
if (auto *A = Args.getLastArg(OPT_stack)) if (auto *A = Args.getLastArg(OPT_stack))
Add("-stack:" + StringRef(A->getValue())); Add("-stack:" + StringRef(A->getValue()));
if (auto *A = Args.getLastArg(OPT_output_def))
Add("-output-def:" + StringRef(A->getValue()));
if (auto *A = Args.getLastArg(OPT_o)) if (auto *A = Args.getLastArg(OPT_o))
Add("-out:" + StringRef(A->getValue())); Add("-out:" + StringRef(A->getValue()));
@ -148,6 +150,8 @@ bool mingw::link(ArrayRef<const char *> ArgsArr, raw_ostream &Diag) {
Add("-dll"); Add("-dll");
if (Args.hasArg(OPT_verbose)) if (Args.hasArg(OPT_verbose))
Add("-verbose"); Add("-verbose");
if (Args.hasArg(OPT_export_all_symbols))
Add("-export-all-symbols");
if (auto *A = Args.getLastArg(OPT_m)) { if (auto *A = Args.getLastArg(OPT_m)) {
StringRef S = A->getValue(); StringRef S = A->getValue();

View File

@ -8,6 +8,8 @@ def L: JoinedOrSeparate<["-"], "L">, MetaVarName<"<dir>">,
HelpText<"Add a directory to the library search path">; HelpText<"Add a directory to the library search path">;
def entry: S<"entry">, MetaVarName<"<entry>">, def entry: S<"entry">, MetaVarName<"<entry>">,
HelpText<"Name of entry point symbol">; HelpText<"Name of entry point symbol">;
def export_all_symbols: F<"export-all-symbols">,
HelpText<"Export all symbols even if a def file or dllexport attributes are used">;
def l: JoinedOrSeparate<["-"], "l">, MetaVarName<"<libName>">, def l: JoinedOrSeparate<["-"], "l">, MetaVarName<"<libName>">,
HelpText<"Root name of library to use">; HelpText<"Root name of library to use">;
def m: JoinedOrSeparate<["-"], "m">, HelpText<"Set target emulation">; def m: JoinedOrSeparate<["-"], "m">, HelpText<"Set target emulation">;
@ -17,6 +19,7 @@ def no_whole_archive: F<"no-whole-archive">,
def o: JoinedOrSeparate<["-"], "o">, MetaVarName<"<path>">, def o: JoinedOrSeparate<["-"], "o">, MetaVarName<"<path>">,
HelpText<"Path to file to write output">; HelpText<"Path to file to write output">;
def out_implib: Separate<["--"], "out-implib">, HelpText<"Import library name">; def out_implib: Separate<["--"], "out-implib">, HelpText<"Import library name">;
def output_def: S<"output-def">, HelpText<"Output def file">;
def shared: F<"shared">, HelpText<"Build a shared object">; def shared: F<"shared">, HelpText<"Build a shared object">;
def subs: S<"subsystem">, HelpText<"Specify subsystem">; def subs: S<"subsystem">, HelpText<"Specify subsystem">;
def stack: S<"stack">; def stack: S<"stack">;

View File

@ -72,3 +72,9 @@ WHOLE-ARCHIVE: foo.o -wholearchive:bar.a baz.a
RUN: ld.lld -### -m i386pep foo.o | FileCheck -check-prefix MINGW-FLAG %s RUN: ld.lld -### -m i386pep foo.o | FileCheck -check-prefix MINGW-FLAG %s
MINGW-FLAG: -lldmingw MINGW-FLAG: -lldmingw
RUN: ld.lld -### -m i386pep foo.o --export-all-symbols | FileCheck -check-prefix EXPORT-ALL %s
EXPORT-ALL: -export-all-symbols
RUN: ld.lld -### -m i386pep foo.o --output-def out.def | FileCheck -check-prefix OUTPUT-DEF %s
OUTPUT-DEF: -output-def:out.def