summaryrefslogtreecommitdiff
path: root/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp
diff options
context:
space:
mode:
authorJim Grosbach <grosbach@apple.com>2011-09-30 17:41:35 +0000
committerJim Grosbach <grosbach@apple.com>2011-09-30 17:41:35 +0000
commit6f09fcf5dae14d68ec9f8731b8c91c04868532e2 (patch)
tree3bfd65ad67e16210d9e90992ad156d3b787715e6 /lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp
parenta64556ffda503a416b2594104f8f82345734b4d9 (diff)
downloadllvm-6f09fcf5dae14d68ec9f8731b8c91c04868532e2.tar.gz
llvm-6f09fcf5dae14d68ec9f8731b8c91c04868532e2.tar.bz2
llvm-6f09fcf5dae14d68ec9f8731b8c91c04868532e2.tar.xz
ARM Darwin default relocation model is PIC.
This matches clang, so default options in llc and friends are now closer to clang's defaults. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140863 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp')
-rw-r--r--lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp b/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp
index 5c582ca37f..a55c41075d 100644
--- a/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp
+++ b/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp
@@ -139,8 +139,11 @@ static MCAsmInfo *createARMMCAsmInfo(const Target &T, StringRef TT) {
static MCCodeGenInfo *createARMMCCodeGenInfo(StringRef TT, Reloc::Model RM,
CodeModel::Model CM) {
MCCodeGenInfo *X = new MCCodeGenInfo();
- if (RM == Reloc::Default)
- RM = Reloc::DynamicNoPIC;
+ if (RM == Reloc::Default) {
+ Triple TheTriple(TT);
+ // Default relocation model on Darwin is PIC, not DynamicNoPIC.
+ RM = TheTriple.isOSDarwin() ? Reloc::PIC_ : Reloc::DynamicNoPIC;
+ }
X->InitMCCodeGenInfo(RM, CM);
return X;
}