summaryrefslogtreecommitdiff
path: root/lib/LTO
diff options
context:
space:
mode:
authorJames Molloy <james.molloy@arm.com>2014-04-14 13:54:16 +0000
committerJames Molloy <james.molloy@arm.com>2014-04-14 13:54:16 +0000
commit555f97f2bc7cc9215734edbdc0c180a341fc3748 (patch)
treea04d1b1263f42166f78a033a7e5c2b445da1125f /lib/LTO
parentf86c5472c00b89ddb8980ae17c6568e9619aaf54 (diff)
downloadllvm-555f97f2bc7cc9215734edbdc0c180a341fc3748.tar.gz
llvm-555f97f2bc7cc9215734edbdc0c180a341fc3748.tar.bz2
llvm-555f97f2bc7cc9215734edbdc0c180a341fc3748.tar.xz
Teach llvm-lto to respect the given RelocModel.
Patch by Nick Tomlinson! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@206177 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/LTO')
-rw-r--r--lib/LTO/LTOCodeGenerator.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/LTO/LTOCodeGenerator.cpp b/lib/LTO/LTOCodeGenerator.cpp
index 7fe143bd5d..2ba90fad84 100644
--- a/lib/LTO/LTOCodeGenerator.cpp
+++ b/lib/LTO/LTOCodeGenerator.cpp
@@ -65,7 +65,7 @@ const char* LTOCodeGenerator::getVersionString() {
LTOCodeGenerator::LTOCodeGenerator()
: Context(getGlobalContext()), Linker(new Module("ld-temp.o", Context)),
TargetMach(NULL), EmitDwarfDebugInfo(false), ScopeRestrictionsDone(false),
- CodeModel(LTO_CODEGEN_PIC_MODEL_DYNAMIC), NativeObjectFile(NULL),
+ CodeModel(LTO_CODEGEN_PIC_MODEL_DEFAULT), NativeObjectFile(NULL),
DiagHandler(NULL), DiagContext(NULL) {
initializeLTOPasses();
}
@@ -161,6 +161,7 @@ void LTOCodeGenerator::setCodePICModel(lto_codegen_model model) {
case LTO_CODEGEN_PIC_MODEL_STATIC:
case LTO_CODEGEN_PIC_MODEL_DYNAMIC:
case LTO_CODEGEN_PIC_MODEL_DYNAMIC_NO_PIC:
+ case LTO_CODEGEN_PIC_MODEL_DEFAULT:
CodeModel = model;
return;
}
@@ -295,6 +296,9 @@ bool LTOCodeGenerator::determineTarget(std::string &errMsg) {
case LTO_CODEGEN_PIC_MODEL_DYNAMIC_NO_PIC:
RelocModel = Reloc::DynamicNoPIC;
break;
+ case LTO_CODEGEN_PIC_MODEL_DEFAULT:
+ // RelocModel is already the default, so leave it that way.
+ break;
}
// construct LTOModule, hand over ownership of module and target