<rdar://problem/6944342> libLTO for darwin should add -static when assembling .s
authorNick Kledzik <kledzik@apple.com>
Thu, 4 Jun 2009 19:14:08 +0000 (19:14 +0000)
committerNick Kledzik <kledzik@apple.com>
Thu, 4 Jun 2009 19:14:08 +0000 (19:14 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72881 91177308-0d34-0410-b5e6-96231b3b80d8

tools/lto/LTOCodeGenerator.cpp

index 17c83bb5cf68426a47e5f7dcbcb0929cd5f22781..0bd2abe245586921c140182a7e49fa564e227710 100644 (file)
@@ -249,6 +249,7 @@ bool LTOCodeGenerator::assemble(const std::string& asmPath,
     std::string targetTriple = _linker.getModule()->getTargetTriple();
     args.push_back(tool.c_str());
     if ( targetTriple.find("darwin") != targetTriple.size() ) {
+        // darwin specific command line options
         if (strncmp(targetTriple.c_str(), "i386-apple-", 11) == 0) {
             args.push_back("-arch");
             args.push_back("i386");
@@ -286,6 +287,9 @@ bool LTOCodeGenerator::assemble(const std::string& asmPath,
             args.push_back("-arch");
             args.push_back("armv6");
         }
+        // add -static to assembler command line when code model requires
+        if ( (_assemblerPath != NULL) && (_codeModel == LTO_CODEGEN_PIC_MODEL_STATIC) )
+            args.push_back("-static");
     }
     if ( needsCompilerOptions ) {
         args.push_back("-c");