- if (RM == Reloc::Default)
- RM = Reloc::DynamicNoPIC;
- X->InitMCCodeGenInfo(RM, CM);
+ 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, OL);