diff --git a/lld/MinGW/Driver.cpp b/lld/MinGW/Driver.cpp index 920afd1d6d5b..55e9416bd8d5 100644 --- a/lld/MinGW/Driver.cpp +++ b/lld/MinGW/Driver.cpp @@ -176,6 +176,8 @@ bool mingw::link(ArrayRef ArgsArr, raw_ostream &Diag) { Add("-dll"); if (Args.hasArg(OPT_verbose)) Add("-verbose"); + if (Args.hasArg(OPT_exclude_all_symbols)) + Add("-exclude-all-symbols"); if (Args.hasArg(OPT_export_all_symbols)) Add("-export-all-symbols"); if (Args.hasArg(OPT_large_address_aware)) diff --git a/lld/MinGW/Options.td b/lld/MinGW/Options.td index 1eee1caf3441..67698056bbf7 100644 --- a/lld/MinGW/Options.td +++ b/lld/MinGW/Options.td @@ -11,6 +11,8 @@ def Bstatic: F<"Bstatic">, HelpText<"Do not link against shared libraries">; def dynamicbase: F<"dynamicbase">, HelpText<"Enable ASLR">; def entry: S<"entry">, MetaVarName<"">, HelpText<"Name of entry point symbol">; +def exclude_all_symbols: F<"exclude-all-symbols">, + HelpText<"Don't automatically export any symbols">; def export_all_symbols: F<"export-all-symbols">, HelpText<"Export all symbols even if a def file or dllexport attributes are used">; def gc_sections: F<"gc-sections">, HelpText<"Remove unused sections">; diff --git a/lld/test/MinGW/driver.test b/lld/test/MinGW/driver.test index f944994bb6a3..15c67dbc73c8 100644 --- a/lld/test/MinGW/driver.test +++ b/lld/test/MinGW/driver.test @@ -74,6 +74,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 --exclude-all-symbols | FileCheck -check-prefix EXCLUDE-ALL %s +EXCLUDE-ALL: -exclude-all-symbols + RUN: ld.lld -### -m i386pep foo.o --export-all-symbols | FileCheck -check-prefix EXPORT-ALL %s EXPORT-ALL: -export-all-symbols