diff options
| author | Martin Storsjo <martin@martin.st> | 2017-10-12 05:37:18 +0000 |
|---|---|---|
| committer | Martin Storsjo <martin@martin.st> | 2017-10-12 05:37:18 +0000 |
| commit | a84a47741a09daddb6a4f609d8b10be368f84653 (patch) | |
| tree | 10ddcad1540136b7a91a65042a21a0794595d19e | |
| parent | 7f71acdcd70a1c74e82d80720e541966f6ab73a9 (diff) | |
| download | bcm5719-llvm-a84a47741a09daddb6a4f609d8b10be368f84653.tar.gz bcm5719-llvm-a84a47741a09daddb6a4f609d8b10be368f84653.zip | |
[MinGW] Hook up the --export-all-symbols and --output-def options
Differential Revision: https://reviews.llvm.org/D38761
llvm-svn: 315563
| -rw-r--r-- | lld/MinGW/Driver.cpp | 4 | ||||
| -rw-r--r-- | lld/MinGW/Options.td | 3 | ||||
| -rw-r--r-- | lld/test/MinGW/driver.test | 6 |
3 files changed, 13 insertions, 0 deletions
diff --git a/lld/MinGW/Driver.cpp b/lld/MinGW/Driver.cpp index 375dd1ad704..ebb66125fdd 100644 --- a/lld/MinGW/Driver.cpp +++ b/lld/MinGW/Driver.cpp @@ -136,6 +136,8 @@ bool mingw::link(ArrayRef<const char *> ArgsArr, raw_ostream &Diag) { Add("-implib:" + StringRef(A->getValue())); if (auto *A = Args.getLastArg(OPT_stack)) 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)) Add("-out:" + StringRef(A->getValue())); @@ -148,6 +150,8 @@ bool mingw::link(ArrayRef<const char *> ArgsArr, raw_ostream &Diag) { Add("-dll"); if (Args.hasArg(OPT_verbose)) Add("-verbose"); + if (Args.hasArg(OPT_export_all_symbols)) + Add("-export-all-symbols"); if (auto *A = Args.getLastArg(OPT_m)) { StringRef S = A->getValue(); diff --git a/lld/MinGW/Options.td b/lld/MinGW/Options.td index 7909341817a..1d516888273 100644 --- a/lld/MinGW/Options.td +++ b/lld/MinGW/Options.td @@ -8,6 +8,8 @@ def L: JoinedOrSeparate<["-"], "L">, MetaVarName<"<dir>">, HelpText<"Add a directory to the library search path">; def entry: S<"entry">, MetaVarName<"<entry>">, 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>">, HelpText<"Root name of library to use">; 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>">, HelpText<"Path to file to write output">; 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 subs: S<"subsystem">, HelpText<"Specify subsystem">; def stack: S<"stack">; diff --git a/lld/test/MinGW/driver.test b/lld/test/MinGW/driver.test index 1d4d23cc55d..8360ccb7020 100644 --- a/lld/test/MinGW/driver.test +++ b/lld/test/MinGW/driver.test @@ -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 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 |

