summaryrefslogtreecommitdiff
path: root/tools/lto
diff options
context:
space:
mode:
authorNick Kledzik <kledzik@apple.com>2009-06-04 19:14:08 +0000
committerNick Kledzik <kledzik@apple.com>2009-06-04 19:14:08 +0000
commitd8b4711a16a38f446f2d0e902d13790e03196dee (patch)
tree9fc54e7386035229f07a6a77ff89d852acbba9a5 /tools/lto
parentac2764040f9617e50688d336d99f504da8cdc35e (diff)
downloadllvm-d8b4711a16a38f446f2d0e902d13790e03196dee.tar.gz
llvm-d8b4711a16a38f446f2d0e902d13790e03196dee.tar.bz2
llvm-d8b4711a16a38f446f2d0e902d13790e03196dee.tar.xz
<rdar://problem/6944342> libLTO for darwin should add -static when assembling .s
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72881 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/lto')
-rw-r--r--tools/lto/LTOCodeGenerator.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/tools/lto/LTOCodeGenerator.cpp b/tools/lto/LTOCodeGenerator.cpp
index 17c83bb5cf..0bd2abe245 100644
--- a/tools/lto/LTOCodeGenerator.cpp
+++ b/tools/lto/LTOCodeGenerator.cpp
@@ -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");