diff options
author | Douglas Katzman <dougk@google.com> | 2015-11-18 16:24:46 +0000 |
---|---|---|
committer | Douglas Katzman <dougk@google.com> | 2015-11-18 16:24:46 +0000 |
commit | 674a31243bebfab1aaf3897e07108147f90c54b8 (patch) | |
tree | 6e24867a94bf1695851db7330e24750c22ec21cf /clang/lib/Driver/Tools.cpp | |
parent | c02670ed50f009eeb24ad7f0fe00cbf887e008d0 (diff) | |
download | bcm5719-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.cpp | 18 |
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 = |