Index: lib/CodeGen/BackendUtil.cpp =================================================================== --- lib/CodeGen/BackendUtil.cpp +++ lib/CodeGen/BackendUtil.cpp @@ -423,6 +423,13 @@ case 3: OptLevel = CodeGenOpt::Aggressive; break; } + llvm::PICLevel::Level PL = llvm::PICLevel::Default; + switch (LangOpts.PICLevel) { + default: break; + case 1: PL = llvm::PICLevel::Small; break; + case 2: PL = llvm::PICLevel::Large; break; + } + llvm::TargetOptions Options; if (CodeGenOpts.DisableIntegratedAS) @@ -488,7 +495,7 @@ TargetMachine *TM = TheTarget->createTargetMachine(Triple, TargetOpts.CPU, FeaturesStr, Options, - RM, CM, OptLevel); + RM, CM, OptLevel, PL); return TM; } Index: tools/driver/cc1as_main.cpp =================================================================== --- tools/driver/cc1as_main.cpp +++ tools/driver/cc1as_main.cpp @@ -327,7 +327,8 @@ MCContext Ctx(MAI.get(), MRI.get(), MOFI.get(), &SrcMgr); // FIXME: Assembler behavior can change with -static. MOFI->InitMCObjectFileInfo(Opts.Triple, - Reloc::Default, CodeModel::Default, Ctx); + Reloc::Default, CodeModel::Default, + PICLevel::Default, Ctx); if (Opts.SaveTemporaryLabels) Ctx.setAllowTemporaryLabels(false); if (Opts.GenDwarfForAssembly)