]> granicus.if.org Git - clang/commitdiff
This reverts commit r194330, r194329 and r194328.
authorRafael Espindola <rafael.espindola@gmail.com>
Sat, 9 Nov 2013 20:07:19 +0000 (20:07 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Sat, 9 Nov 2013 20:07:19 +0000 (20:07 +0000)
The test was still failing on OS X and mingw.

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

include/clang/Basic/DiagnosticDriverKinds.td
include/clang/Driver/Options.td
include/clang/Driver/ToolChain.h
lib/Driver/ToolChain.cpp
lib/Driver/Tools.cpp
test/Driver/Inputs/basic_freebsd_tree/usr/bin/ld.bfd [deleted file]
test/Driver/Inputs/basic_freebsd_tree/usr/bin/ld.gold [deleted file]
test/Driver/fuse_ld.c [deleted file]

index 5d54642becd83800cb33a553ba63625ec7c46457..ed49006b215d44145cbd36ff880e6647bc7c9f79 100644 (file)
@@ -20,8 +20,6 @@ def err_drv_unknown_stdin_type : Error<
 def err_drv_unknown_language : Error<"language not recognized: '%0'">;
 def err_drv_invalid_arch_name : Error<
   "invalid arch name '%0'">;
-def err_drv_invalid_linker_name : Error<
-  "invalid linker name in argument '%0'">;
 def err_drv_invalid_rtlib_name : Error<
   "invalid runtime library name in argument '%0'">;
 def err_drv_unsupported_rtlib_for_platform : Error<
index 45a46e267b8c0679fca09cf0b34ebcbb2ab41965..faaaee1e931123666000dc0e0c0480ecbcc12164 100644 (file)
@@ -1434,8 +1434,7 @@ def fprofile_dir : Joined<["-"], "fprofile-dir=">, Group<clang_ignored_f_Group>;
 
 defm profile_use : BooleanFFlag<"profile-use">, Group<clang_ignored_f_Group>;
 def fprofile_use_EQ : Joined<["-"], "fprofile-use=">, Group<clang_ignored_f_Group>;
-def fuse_ld_EQ : Joined<["-", "--"], "fuse-ld=">, Group<f_Group>,
-  HelpText<"The suffix of the linker to use (e.g. bfd for ld.bfd).">;
+def fuse_ld_EQ : Joined<["-"], "fuse-ld=">, Group<clang_ignored_f_Group>;
 
 defm align_functions : BooleanFFlag<"align-functions">, Group<clang_ignored_f_Group>;
 def falign_functions_EQ : Joined<["-"], "falign-functions=">, Group<clang_ignored_f_Group>;
index a0d757c46fd6992c6db878cd6aa64541c07fa642..12bce286b9dde819ec067032f159416a7cce502a 100644 (file)
@@ -126,9 +126,6 @@ public:
 
   path_list &getProgramPaths() { return ProgramPaths; }
   const path_list &getProgramPaths() const { return ProgramPaths; }
-  /// Returns the linker path, respecting the -fuse-ld= argument to determine
-  /// the linker suffix or name.
-  std::string GetLinkerPath() const;
 
   const SanitizerArgs& getSanitizerArgs() const;
 
index 20e37ff6b8cac2422a4d58b7106fa7bd6e36b2fe..9fe03799f1d61dd2b5de7502d557d728079278e6 100644 (file)
@@ -146,28 +146,6 @@ std::string ToolChain::GetProgramPath(const char *Name) const {
   return D.GetProgramPath(Name, *this);
 }
 
-std::string ToolChain::GetLinkerPath() const {
-  if (Arg *A = Args.getLastArg(options::OPT_fuse_ld_EQ)) {
-    StringRef Value = A->getValue();
-    // If we're passed -fuse-ld= with no argument, or with the argument ld,
-    // then use whatever the default system linker is.
-    if (Value.empty() || Value == "ld")
-      return GetProgramPath("ld");
-    std::string LinkerName = Value.str();
-    std::string LD("ld.");
-    LD += LinkerName;
-    std::string LinkerPath = GetProgramPath(LD.c_str());
-    bool Exists;
-    if (!llvm::sys::fs::exists(LinkerPath, Exists) && Exists)
-      return LinkerPath;
-    getDriver().Diag(diag::err_drv_invalid_linker_name)
-      << A->getAsString(Args);
-    return "";
-  }
-  return GetProgramPath("ld");
-}
-
-
 types::ID ToolChain::LookupTypeForExtension(const char *Ext) const {
   return types::lookupTypeForExtension(Ext);
 }
index 378cc4e11d719be23460a407c6397aa3b97042ec..7c987191d8006e731f4f4c8d9f9075ff57aad31e 100644 (file)
@@ -5184,7 +5184,7 @@ void solaris::Link::ConstructJob(Compilation &C, const JobAction &JA,
   addProfileRT(getToolChain(), Args, CmdArgs, getToolChain().getTriple());
 
   const char *Exec =
-      Args.MakeArgString(getToolChain().GetLinkerPath());
+    Args.MakeArgString(getToolChain().GetProgramPath("ld"));
   C.addCommand(new Command(JA, *this, Exec, CmdArgs));
 }
 
@@ -5296,7 +5296,7 @@ void auroraux::Link::ConstructJob(Compilation &C, const JobAction &JA,
   addProfileRT(getToolChain(), Args, CmdArgs, getToolChain().getTriple());
 
   const char *Exec =
-    Args.MakeArgString(getToolChain().GetLinkerPath());
+    Args.MakeArgString(getToolChain().GetProgramPath("ld"));
   C.addCommand(new Command(JA, *this, Exec, CmdArgs));
 }
 
@@ -5447,7 +5447,7 @@ void openbsd::Link::ConstructJob(Compilation &C, const JobAction &JA,
   }
 
   const char *Exec =
-    Args.MakeArgString(getToolChain().GetLinkerPath());
+    Args.MakeArgString(getToolChain().GetProgramPath("ld"));
   C.addCommand(new Command(JA, *this, Exec, CmdArgs));
 }
 
@@ -5587,7 +5587,7 @@ void bitrig::Link::ConstructJob(Compilation &C, const JobAction &JA,
   }
 
   const char *Exec =
-    Args.MakeArgString(getToolChain().GetLinkerPath());
+    Args.MakeArgString(getToolChain().GetProgramPath("ld"));
   C.addCommand(new Command(JA, *this, Exec, CmdArgs));
 }
 
@@ -5838,7 +5838,7 @@ void freebsd::Link::ConstructJob(Compilation &C, const JobAction &JA,
   addProfileRT(ToolChain, Args, CmdArgs, ToolChain.getTriple());
 
   const char *Exec =
-    Args.MakeArgString(getToolChain().GetLinkerPath());
+    Args.MakeArgString(ToolChain.GetProgramPath("ld"));
   C.addCommand(new Command(JA, *this, Exec, CmdArgs));
 }
 
@@ -5992,7 +5992,7 @@ void netbsd::Link::ConstructJob(Compilation &C, const JobAction &JA,
 
   addProfileRT(getToolChain(), Args, CmdArgs, getToolChain().getTriple());
 
-  const char *Exec = Args.MakeArgString(getToolChain().GetLinkerPath());
+  const char *Exec = Args.MakeArgString(getToolChain().GetProgramPath("ld"));
   C.addCommand(new Command(JA, *this, Exec, CmdArgs));
 }
 
@@ -6503,7 +6503,7 @@ void minix::Link::ConstructJob(Compilation &C, const JobAction &JA,
          Args.MakeArgString(getToolChain().GetFilePath("crtend.o")));
   }
 
-  const char *Exec = Args.MakeArgString(getToolChain().GetLinkerPath());
+  const char *Exec = Args.MakeArgString(getToolChain().GetProgramPath("ld"));
   C.addCommand(new Command(JA, *this, Exec, CmdArgs));
 }
 
@@ -6687,7 +6687,7 @@ void dragonfly::Link::ConstructJob(Compilation &C, const JobAction &JA,
   addProfileRT(getToolChain(), Args, CmdArgs, getToolChain().getTriple());
 
   const char *Exec =
-    Args.MakeArgString(getToolChain().GetLinkerPath());
+    Args.MakeArgString(getToolChain().GetProgramPath("ld"));
   C.addCommand(new Command(JA, *this, Exec, CmdArgs));
 }
 
diff --git a/test/Driver/Inputs/basic_freebsd_tree/usr/bin/ld.bfd b/test/Driver/Inputs/basic_freebsd_tree/usr/bin/ld.bfd
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/test/Driver/Inputs/basic_freebsd_tree/usr/bin/ld.gold b/test/Driver/Inputs/basic_freebsd_tree/usr/bin/ld.gold
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/test/Driver/fuse_ld.c b/test/Driver/fuse_ld.c
deleted file mode 100644 (file)
index e9a1996..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-// RUN: %clang %s -target x86_64-unknown-freebsd -### 2>&1 | FileCheck %s
-// CHECK: ld
-// RUN: %clang -fuse-ld=bfd --sysroot=%S/Inputs/basic_freebsd_tree \
-// RUN:   -target x86_64-unknown-freebsd \
-// RUN:   -B%S/Inputs/basic_freebsd_tree %s  -### 2>&1 | \
-// RUN:    FileCheck -check-prefix=CHECK-BFD %s
-// CHECK-BFD: ld.bfd
-// RUN: %clang -fuse-ld=gold --sysroot=%S/Inputs/basic_freebsd_tree \
-// RUN:   -target x86_64-unknown-freebsd \
-// RUN:   -B%S/Inputs/basic_freebsd_tree %s -### 2>&1 | \
-// RUN:    FileCheck -check-prefix=CHECK-GOLD %s
-// CHECK-GOLD: ld.gold
-// RUN: %clang -fuse-ld=plib --sysroot=%S/Inputs/basic_freebsd_tree \
-// RUN:   -target x86_64-unknown-freebsd \
-// RUN:   -B%S/Inputs/basic_freebsd_tree %s -### 2>&1 | \
-// RUN:    FileCheck -check-prefix=CHECK-PLIB %s
-// CHECK-PLIB: error: invalid linker name