]> granicus.if.org Git - clang/commitdiff
Frontend: Add -target-linker-version, for specifying the version string of the
authorDaniel Dunbar <daniel@zuster.org>
Wed, 11 Aug 2010 23:07:42 +0000 (23:07 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Wed, 11 Aug 2010 23:07:42 +0000 (23:07 +0000)
linker in use.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110871 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Basic/TargetOptions.h
include/clang/Driver/CC1Options.td
lib/Frontend/CompilerInvocation.cpp

index 19b0cbbf5820e993f96fec49ceaa2d214a4191bb..b88b1f590e9e34c45cf5b143ac02963be046f4e3 100644 (file)
@@ -37,6 +37,9 @@ public:
   /// to "itanium".
   std::string CXXABI;
 
+  /// If given, the version string of the linker in use.
+  std::string LinkerVersion;
+
   /// The list of target specific features to enable or disable -- this should
   /// be a list of strings starting with by '+' or '-'.
   std::vector<std::string> Features;
index 20c23215ec0e1e216220d35d597e77a7b1979550..c83818a4b7333ead0e15d5a113845592345fc7ef 100644 (file)
@@ -26,6 +26,8 @@ def target_cpu : Separate<"-target-cpu">,
   HelpText<"Target a specific cpu type">;
 def target_feature : Separate<"-target-feature">,
   HelpText<"Target specific attributes">;
+def target_linker_version : Separate<"-target-linker-version">,
+  HelpText<"Target linker version">;
 def triple : Separate<"-triple">,
   HelpText<"Specify target triple (e.g. i686-apple-darwin9)">;
 def triple_EQ : Joined<"-triple=">, Alias<triple>;
index aa0c317dd83e8d19ab280af5ca96e1286d4c1930..2756c0784ad9f8f25376a6b29bffd6da21a419a8 100644 (file)
@@ -698,6 +698,10 @@ static void TargetOptsToArgs(const TargetOptions &Opts,
     Res.push_back("-target-abi");
     Res.push_back(Opts.ABI);
   }
+  if (!Opts.LinkerVersion.empty()) {
+    Res.push_back("-target-linker-version");
+    Res.push_back(Opts.LinkerVersion);
+  }
   Res.push_back("-cxx-abi");
   Res.push_back(Opts.CXXABI);
   for (unsigned i = 0, e = Opts.Features.size(); i != e; ++i) {
@@ -1441,8 +1445,9 @@ static void ParseTargetArgs(TargetOptions &Opts, ArgList &Args) {
   Opts.ABI = Args.getLastArgValue(OPT_target_abi);
   Opts.CXXABI = Args.getLastArgValue(OPT_cxx_abi);
   Opts.CPU = Args.getLastArgValue(OPT_target_cpu);
-  Opts.Triple = Args.getLastArgValue(OPT_triple);
   Opts.Features = Args.getAllArgValues(OPT_target_feature);
+  Opts.LinkerVersion = Args.getLastArgValue(OPT_target_linker_version);
+  Opts.Triple = Args.getLastArgValue(OPT_triple);
 
   // Use the host triple if unspecified.
   if (Opts.Triple.empty())