summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver/Tools.cpp
diff options
context:
space:
mode:
authorDouglas Katzman <dougk@google.com>2015-11-18 16:24:46 +0000
committerDouglas Katzman <dougk@google.com>2015-11-18 16:24:46 +0000
commit674a31243bebfab1aaf3897e07108147f90c54b8 (patch)
tree6e24867a94bf1695851db7330e24750c22ec21cf /clang/lib/Driver/Tools.cpp
parentc02670ed50f009eeb24ad7f0fe00cbf887e008d0 (diff)
downloadbcm5719-llvm-674a31243bebfab1aaf3897e07108147f90c54b8.tar.gz
bcm5719-llvm-674a31243bebfab1aaf3897e07108147f90c54b8.zip
[Myriad]: insert -L paths into linker cmd only when they exist.
Differential Revision: http://reviews.llvm.org/D14754 llvm-svn: 253467
Diffstat (limited to 'clang/lib/Driver/Tools.cpp')
-rw-r--r--clang/lib/Driver/Tools.cpp18
1 files changed, 5 insertions, 13 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp
index 2685687ba69..d951a48510a 100644
--- a/clang/lib/Driver/Tools.cpp
+++ b/clang/lib/Driver/Tools.cpp
@@ -9945,10 +9945,6 @@ void tools::Myriad::Linker::ConstructJob(Compilation &C, const JobAction &JA,
bool UseDefaultLibs =
!Args.hasArg(options::OPT_nostdlib, options::OPT_nodefaultlibs);
- std::string StartFilesDir, BuiltinLibDir;
- TC.getCompilerSupportDir(StartFilesDir);
- TC.getBuiltinLibDir(BuiltinLibDir);
-
if (T.getArch() == llvm::Triple::sparc)
CmdArgs.push_back("-EB");
else // SHAVE assumes little-endian, and sparcel is expressly so.
@@ -9972,19 +9968,15 @@ void tools::Myriad::Linker::ConstructJob(Compilation &C, const JobAction &JA,
if (UseStartfiles) {
// If you want startfiles, it means you want the builtin crti and crtbegin,
// but not crt0. Myriad link commands provide their own crt0.o as needed.
- CmdArgs.push_back(Args.MakeArgString(StartFilesDir + "/crti.o"));
- CmdArgs.push_back(Args.MakeArgString(StartFilesDir + "/crtbegin.o"));
+ CmdArgs.push_back(Args.MakeArgString(TC.GetFilePath("crti.o")));
+ CmdArgs.push_back(Args.MakeArgString(TC.GetFilePath("crtbegin.o")));
}
Args.AddAllArgs(CmdArgs, {options::OPT_L, options::OPT_T_Group,
options::OPT_e, options::OPT_s, options::OPT_t,
options::OPT_Z_Flag, options::OPT_r});
- // The linker doesn't use these builtin paths unless directed to,
- // because it was not compiled for support with sysroots, nor does
- // it have a default of little-endian with FPU.
- CmdArgs.push_back(Args.MakeArgString("-L" + BuiltinLibDir));
- CmdArgs.push_back(Args.MakeArgString("-L" + StartFilesDir));
+ TC.AddFilePathLibArgs(Args, CmdArgs);
AddLinkerInputs(getToolChain(), Inputs, Args, CmdArgs);
@@ -10004,8 +9996,8 @@ void tools::Myriad::Linker::ConstructJob(Compilation &C, const JobAction &JA,
CmdArgs.push_back("-lgcc");
}
if (UseStartfiles) {
- CmdArgs.push_back(Args.MakeArgString(StartFilesDir + "/crtend.o"));
- CmdArgs.push_back(Args.MakeArgString(StartFilesDir + "/crtn.o"));
+ CmdArgs.push_back(Args.MakeArgString(TC.GetFilePath("crtend.o")));
+ CmdArgs.push_back(Args.MakeArgString(TC.GetFilePath("crtn.o")));
}
std::string Exec =
OpenPOWER on IntegriCloud