]> granicus.if.org Git - clang/commitdiff
Handle -nostartfiles.
authorRafael Espindola <rafael.espindola@gmail.com>
Wed, 1 Dec 2010 01:52:43 +0000 (01:52 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Wed, 1 Dec 2010 01:52:43 +0000 (01:52 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120528 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Driver/Tools.cpp

index 8d27bf593868eb460bcb5113073e36593adf5450..e4f807e59ecdb1ee0b86a3623b29ef7ec4d16869 100644 (file)
@@ -3298,7 +3298,8 @@ void linuxtools::Link::ConstructJob(Compilation &C, const JobAction &JA,
   CmdArgs.push_back("-o");
   CmdArgs.push_back(Output.getFilename());
 
-  if (!Args.hasArg(options::OPT_nostdlib)) {
+  if (!Args.hasArg(options::OPT_nostdlib) &&
+      !Args.hasArg(options::OPT_nostartfiles)) {
     const char *crt1 = NULL;
     if (!Args.hasArg(options::OPT_shared)){
       if (Args.hasArg(options::OPT_pie))
@@ -3384,15 +3385,17 @@ void linuxtools::Link::ConstructJob(Compilation &C, const JobAction &JA,
         CmdArgs.push_back("-lgcc");
     }
 
-    const char *crtend;
-    if (Args.hasArg(options::OPT_shared) || Args.hasArg(options::OPT_pie))
-      crtend = "crtendS.o";
-    else
-      crtend = "crtend.o";
 
-    CmdArgs.push_back(Args.MakeArgString(ToolChain.GetFilePath(crtend)));
+    if (!Args.hasArg(options::OPT_nostartfiles)) {
+      const char *crtend;
+      if (Args.hasArg(options::OPT_shared) || Args.hasArg(options::OPT_pie))
+        crtend = "crtendS.o";
+      else
+        crtend = "crtend.o";
 
-    CmdArgs.push_back(Args.MakeArgString(ToolChain.GetFilePath("crtn.o")));
+      CmdArgs.push_back(Args.MakeArgString(ToolChain.GetFilePath(crtend)));
+      CmdArgs.push_back(Args.MakeArgString(ToolChain.GetFilePath("crtn.o")));
+    }
   }
 
   if (Args.hasArg(options::OPT_use_gold_plugin)) {