aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Target/ARM/ARMTargetMachine.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2016-05-27 21:44:18 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2016-05-27 21:44:18 +0000
commitf9bda6805be8b4908e22ca9777a4b71b329ba381 (patch)
tree73bd3546ca86f9822b265e49c1e1c283f77780a1 /llvm/lib/Target/ARM/ARMTargetMachine.cpp
parent74d23ad49818fca69ff5feb21ed6d21429883123 (diff)
downloadllvm-f9bda6805be8b4908e22ca9777a4b71b329ba381.zip
llvm-f9bda6805be8b4908e22ca9777a4b71b329ba381.tar.gz
llvm-f9bda6805be8b4908e22ca9777a4b71b329ba381.tar.bz2
Map DynamicNoPIC to Static on non-darwin.
DynamicNoPIC was only every used on darwin. This maps it to static on ELF. It matches what is done on X86. llvm-svn: 271052
Diffstat (limited to 'llvm/lib/Target/ARM/ARMTargetMachine.cpp')
-rw-r--r--llvm/lib/Target/ARM/ARMTargetMachine.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM/ARMTargetMachine.cpp b/llvm/lib/Target/ARM/ARMTargetMachine.cpp
index 81127f7..d3276f7 100644
--- a/llvm/lib/Target/ARM/ARMTargetMachine.cpp
+++ b/llvm/lib/Target/ARM/ARMTargetMachine.cpp
@@ -177,6 +177,11 @@ static Reloc::Model getEffectiveRelocModel(const Triple &TT,
if (!RM.hasValue())
// Default relocation model on Darwin is PIC, not DynamicNoPIC.
return TT.isOSDarwin() ? Reloc::PIC_ : Reloc::DynamicNoPIC;
+
+ // DynamicNoPIC is only used on darwin.
+ if (*RM == Reloc::DynamicNoPIC && !TT.isOSDarwin())
+ return Reloc::Static;
+
return *RM;
}