GNU: Add --no-export-dynamic command line option.

llvm-svn: 228749
This commit is contained in:
Rui Ueyama 2015-02-10 21:27:31 +00:00
parent 13d0b11d7b
commit 2050b61451
3 changed files with 17 additions and 2 deletions

View File

@ -508,8 +508,9 @@ bool GnuLdDriver::parse(int argc, const char *argv[],
if (parsedArgs->hasArg(OPT_noinhibit_exec)) if (parsedArgs->hasArg(OPT_noinhibit_exec))
ctx->setAllowRemainingUndefines(true); ctx->setAllowRemainingUndefines(true);
if (parsedArgs->hasArg(OPT_export_dynamic)) if (auto val = getBool(*parsedArgs, OPT_export_dynamic,
ctx->setExportDynamic(true); OPT_no_export_dynamic))
ctx->setExportDynamic(*val);
if (parsedArgs->hasArg(OPT_allow_multiple_definition)) if (parsedArgs->hasArg(OPT_allow_multiple_definition))
ctx->setAllowDuplicates(true); ctx->setAllowDuplicates(true);

View File

@ -156,6 +156,8 @@ def export_dynamic : Flag<["-", "--"], "export-dynamic">,
Group<grp_main>; Group<grp_main>;
def alias_export_dynamic: Flag<["-"], "E">, def alias_export_dynamic: Flag<["-"], "E">,
Alias<export_dynamic>; Alias<export_dynamic>;
def no_export_dynamic : Flag<["--"], "no-export-dynamic">,
Group<grp_main>;
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
/// Dynamic Library Options /// Dynamic Library Options

View File

@ -91,6 +91,18 @@ TEST_F(GnuLdParserTest, EntryJoined) {
EXPECT_EQ("foo", _context->entrySymbolName()); EXPECT_EQ("foo", _context->entrySymbolName());
} }
// --export-dynamic
TEST_F(GnuLdParserTest, ExportDynamic) {
EXPECT_TRUE(parse("ld", "a.o", "--export-dynamic", nullptr));
EXPECT_TRUE(_context->shouldExportDynamic());
}
TEST_F(GnuLdParserTest, NoExportDynamic) {
EXPECT_TRUE(parse("ld", "a.o", "--no-export-dynamic", nullptr));
EXPECT_FALSE(_context->shouldExportDynamic());
}
// --init // --init
TEST_F(GnuLdParserTest, Init) { TEST_F(GnuLdParserTest, Init) {