From dc1b76ddfc687c713a55cc9e3e054e9a0de1aa74 Mon Sep 17 00:00:00 2001
From: Rafael Espindola <rafael.espindola@gmail.com>
Date: Sun, 7 Nov 2010 22:57:16 +0000
Subject: [PATCH] Add support for -rdynamic.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118384 91177308-0d34-0410-b5e6-96231b3b80d8
---
 include/clang/Driver/Options.td | 1 +
 lib/Driver/Tools.cpp            | 3 +++
 2 files changed, 4 insertions(+)

diff --git a/include/clang/Driver/Options.td b/include/clang/Driver/Options.td
index c61d71b120..db71fdeae2 100644
--- a/include/clang/Driver/Options.td
+++ b/include/clang/Driver/Options.td
@@ -566,6 +566,7 @@ def read__only__relocs : Separate<"-read_only_relocs">;
 def remap : Flag<"-remap">;
 def rewrite_objc : Flag<"-rewrite-objc">, Flags<[DriverOption]>,
   HelpText<"Rewrite Objective-C source to C++">;
+def rdynamic : Flag<"-rdynamic">;
 def rpath : Separate<"-rpath">, Flags<[LinkerInput]>;
 def r : Flag<"-r">;
 def save_temps : Flag<"-save-temps">, Flags<[DriverOption]>,
diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp
index 4d6cbf747f..e28078deaa 100644
--- a/lib/Driver/Tools.cpp
+++ b/lib/Driver/Tools.cpp
@@ -3151,6 +3151,9 @@ void linuxtools::Link::ConstructJob(Compilation &C, const JobAction &JA,
     CmdArgs.push_back(A->getValue(Args));
   }
 
+  if (Args.hasArg(options::OPT_rdynamic))
+    CmdArgs.push_back("-export-dynamic");
+
   for (std::vector<std::string>::const_iterator i = ToolChain.ExtraOpts.begin(),
          e = ToolChain.ExtraOpts.end();
        i != e; ++i)
-- 
2.40.0