| Index: src/IceTargetLoweringX8632.cpp
 | 
| diff --git a/src/IceTargetLoweringX8632.cpp b/src/IceTargetLoweringX8632.cpp
 | 
| index ebf55f56d52d048eeadbae339ace4bea09dd6ff3..072116881f178b0de6951bf825028aa020c000fb 100644
 | 
| --- a/src/IceTargetLoweringX8632.cpp
 | 
| +++ b/src/IceTargetLoweringX8632.cpp
 | 
| @@ -41,9 +41,13 @@ void staticInit(::Ice::GlobalContext *Ctx) {
 | 
|      // pexe) so we need to register it as such so that ELF emission won't barf
 | 
|      // on an "unknown" symbol. The GOT is added to the External symbols list
 | 
|      // here because staticInit() is invoked in a single-thread context.
 | 
| -    Ctx->getConstantExternSym(::Ice::GlobalOffsetTable);
 | 
| +    Ctx->getConstantExternSym(Ctx->getGlobalString(::Ice::GlobalOffsetTable));
 | 
|    }
 | 
|  }
 | 
| +
 | 
| +bool shouldBePooled(const class ::Ice::Constant *C) {
 | 
| +  return ::Ice::X8632::TargetX8632::shouldBePooled(C);
 | 
| +}
 | 
|  } // end of namespace X8632
 | 
|  
 | 
|  namespace Ice {
 | 
| @@ -252,9 +256,10 @@ void TargetX8632::emitGetIP(CfgNode *Node) {
 | 
|  
 | 
|      const RelocOffsetT ImmSize = -typeWidthInBytes(IceType_i32);
 | 
|  
 | 
| -    auto *GotFromPc = llvm::cast<ConstantRelocatable>(
 | 
| -        Ctx->getConstantSym(ImmSize, {AfterAddReloc, BeforeAddReloc},
 | 
| -                            GlobalOffsetTable, GlobalOffsetTable));
 | 
| +    auto *GotFromPc =
 | 
| +        llvm::cast<ConstantRelocatable>(Ctx->getConstantSymWithEmitString(
 | 
| +            ImmSize, {AfterAddReloc, BeforeAddReloc},
 | 
| +            Ctx->getGlobalString(GlobalOffsetTable), GlobalOffsetTable));
 | 
|  
 | 
|      // Insert a new version of InstX86GetIP.
 | 
|      Context.insert<Traits::Insts::GetIP>(CallDest);
 | 
| 
 |