diff options
author | Douglas Katzman <dougk@google.com> | 2015-10-02 18:39:08 +0000 |
---|---|---|
committer | Douglas Katzman <dougk@google.com> | 2015-10-02 18:39:08 +0000 |
commit | 9e31cb9ea7be1a7f5c8690e36d827f483f5d7ae1 (patch) | |
tree | 4c720f67285228ce1ff142f8b53a9d401b62d70c /clang/lib/Driver/Tools.cpp | |
parent | 4b5507a037af420b28600a792bab1e6850b5cc73 (diff) | |
download | bcm5719-llvm-9e31cb9ea7be1a7f5c8690e36d827f483f5d7ae1.tar.gz bcm5719-llvm-9e31cb9ea7be1a7f5c8690e36d827f483f5d7ae1.zip |
[Myriad]: Accept '-nostdlib' option
llvm-svn: 249166
Diffstat (limited to 'clang/lib/Driver/Tools.cpp')
-rw-r--r-- | clang/lib/Driver/Tools.cpp | 40 |
1 files changed, 23 insertions, 17 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index 932122236b5..f20e5cd8ef8 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -9760,6 +9760,8 @@ void tools::Myriad::Linker::ConstructJob(Compilation &C, const JobAction &JA, const llvm::Triple &T = TC.getTriple(); ArgStringList CmdArgs; bool UseStartfiles = !Args.hasArg(options::OPT_nostartfiles); + bool UseDefaultLibs = !Args.hasArg(options::OPT_nostdlib) && + !Args.hasArg(options::OPT_nodefaultlibs); std::string StartFilesDir, BuiltinLibDir; TC.getCompilerSupportDir(StartFilesDir); @@ -9796,27 +9798,31 @@ void tools::Myriad::Linker::ConstructJob(Compilation &C, const JobAction &JA, 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)); + if (UseDefaultLibs) { + // 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)); + } AddLinkerInputs(getToolChain(), Inputs, Args, CmdArgs); - if (T.getOS() == llvm::Triple::RTEMS) { - CmdArgs.push_back("--start-group"); - CmdArgs.push_back("-lc"); - // You must provide your own "-L" option to enable finding these. - CmdArgs.push_back("-lrtemscpu"); - CmdArgs.push_back("-lrtemsbsp"); - CmdArgs.push_back("--end-group"); - } else { - CmdArgs.push_back("-lc"); + if (UseDefaultLibs) { + if (T.getOS() == llvm::Triple::RTEMS) { + CmdArgs.push_back("--start-group"); + CmdArgs.push_back("-lc"); + // You must provide your own "-L" option to enable finding these. + CmdArgs.push_back("-lrtemscpu"); + CmdArgs.push_back("-lrtemsbsp"); + CmdArgs.push_back("--end-group"); + } else { + CmdArgs.push_back("-lc"); + } + if (C.getDriver().CCCIsCXX()) + CmdArgs.push_back("-lstdc++"); + CmdArgs.push_back("-lgcc"); } - if (C.getDriver().CCCIsCXX()) - CmdArgs.push_back("-lstdc++"); - CmdArgs.push_back("-lgcc"); if (UseStartfiles) { CmdArgs.push_back(Args.MakeArgString(StartFilesDir + "/crtend.o")); CmdArgs.push_back(Args.MakeArgString(StartFilesDir + "/crtn.o")); |