Index: lib/Driver/Tools.cpp |
diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp |
index f4f7c4e1d36c937ab54a185d76b6fc53721683fb..6df472c336efb58c7d0436c518e6d170fb2f6182 100644 |
--- a/lib/Driver/Tools.cpp |
+++ b/lib/Driver/Tools.cpp |
@@ -8223,10 +8223,15 @@ void pnacltools::Link::ConstructJob(Compilation &C, const JobAction &JA, |
CmdArgs.push_back(Args.MakeArgString("--sysroot=" + D.SysRoot)); |
if (Arg *A = Args.getLastArg(options::OPT_shared, |
- options::OPT_dynamic, |
- options::OPT_rdynamic)) |
+ options::OPT_dynamic)) |
D.Diag(diag::err_drv_unsupported_opt) << A->getOption().getName(); |
+ // This option does not currently have any effect for bitcode linking, |
+ // but we support it for backwards compatibility with the legacy driver |
+ // and existing software packages. |
+ if (Args.hasArg(options::OPT_rdynamic)) |
+ CmdArgs.push_back("-export-dynamic"); |
+ |
std::string TripleStr = ToolChain.ComputeEffectiveClangTriple(Args); |
if (ToolChain.getArch() != llvm::Triple::le32) |
D.Diag(diag::err_target_unsupported_arch) << ToolChain.getArchName() |