<div dir="ltr"><div>Some time ago I posted here regarding a relocation overflow on Windows (among other things), but the issue disappeared and so the thread got left. I've started this new thread because a) I didn't want to necro the old one and b) it felt like its own.</div><div>I've now encountered the issue again and am noting down all the information I can get about it whilst it's happening.</div><div><br></div><div>The issues is that I am getting a relocation overflow assertion inside RuntimeDyldCOFFX86_64.h inside the COFF::IMAGE_REL_AMD64_REL32 case.</div><div>However, the other thread left me with the impression that I shouldn't be getting such relocation when I'm compiling for 64 bit. The only reason I can think of for this that I'm not supposed to get 32 bit relocations in the code I'm building rather than all the code being loaded.</div><div><br></div><div>The LLVM side of the call stack looks like this:</div><div><br></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div><div>_wassert(const wchar_t * expr, const wchar_t * filename, unsigned int lineno) Line 369<span class="" style="white-space:pre">       </span>C</div></div><div><div>llvm::RuntimeDyldCOFFX86_64::resolveRelocation(const llvm::RelocationEntry & RE, unsigned __int64 Value) Line 81<span class="" style="white-space:pre">       </span>C++</div></div><div><div>llvm::RuntimeDyldImpl::resolveRelocationList(const llvm::SmallVector<llvm::RelocationEntry,64> & Relocs, unsigned __int64 Value) Line 796<span class="" style="white-space:pre">      </span>C++</div></div><div><div>llvm::RuntimeDyldImpl::resolveExternalSymbols() Line 849<span class="" style="white-space:pre"> </span>C++</div></div><div><div>llvm::RuntimeDyldImpl::resolveRelocations() Line 95<span class="" style="white-space:pre">      </span>C++</div></div><div><div>llvm::RuntimeDyld::resolveRelocations() Line 961<span class="" style="white-space:pre"> </span>C++</div></div><div><div>llvm::orc::ObjectLinkingLayer<llvm::orc::DoNothingOnNotifyLoaded>::ConcreteLinkedObjectSet<std::shared_ptr<llvm::SectionMemoryManager>,ClangClasses::LLVMExecutionEngine::LinkingResolver * __ptr64>::Finalize() Line 112<span class="" style="white-space:pre">      </span>C++</div></div><div><div>llvm::orc::ObjectLinkingLayer<llvm::orc::DoNothingOnNotifyLoaded>::findSymbolIn::__l19::<lambda>() Line 246<span class="" style="white-space:pre">  </span>C++</div></div><div><div>std::_Callable_obj<unsigned __int64 <lambda>(void),0>::_ApplyX<unsigned __int64>() Line 284<span class="" style="white-space:pre">    </span>C++</div></div><div><div>std::_Func_impl<std::_Callable_obj<unsigned __int64 <lambda>(void),0>,std::allocator<std::_Func_class<unsigned __int64> >,unsigned __int64>::_Do_call() Line 229<span class="" style="white-space:pre">   </span>C++</div></div><div><div>std::_Func_class<unsigned __int64>::operator()() Line 316<span class="" style="white-space:pre">  </span>C++</div></div><div><div>llvm::orc::JITSymbol::getAddress() Line 62<span class="" style="white-space:pre">       </span>C++</div></div></blockquote><div><br></div><div>RelType is 4 (IMAGE_REL_AMD64_REL32).</div><div>Value is 139830239098107<span style="white-space:pre">.</span></div><div><span style="white-space:pre">Addend is 0.</span></div><div><br></div><div>The symbol that is currently being resolved is _fperrraise. I did some researching and it appears that this symbol resides in libcmtd.lib (for me the path is C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\lib\amd64\libcmtd.lib).</div><div>The relocation type stated in that library (information gathered from dumpbin) is REL32.</div><div><br></div><div>I'm not sure what other information there is for me to gather, could somebody please help me resolve this?</div><div><br></div><div>Many thanks in advance!</div><div><div><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><p dir="ltr">--<br> Joshua Gerrard<br> JUCE Software Developer<br></p><p dir="ltr"><font size="2"><i>ROLI’s </i><a href="http://www.telegraph.co.uk/luxury/design/31520/the-seaboard-grand-piano-wins-designs-of-the-year-2014-award.html" target="_blank"><i><font color="#1155cc">award-winning</font></i></a><i> Seaboard GRAND, celebrated as the “</i><a href="http://edition.cnn.com/2013/09/27/tech/innovation/hans-zimmer-seaboard-future-piano/" target="_blank"><i><font color="#1155cc">piano of the future</font></i></a><i>”, is now joined by the </i><a href="https://www.youtube.com/watch?v=fGr7VbDiRNw" target="_blank"><i><font color="#1155cc">Seaboard RISE</font></i></a><i>, “</i><a href="http://www.soundonsound.com/news?NewsID=18726" target="_blank"><i><font color="#1155cc">every bit as slimline and attractive as its bigger brother</font></i></a><i>”. The press is hailing the Seaboard RISE as “</i><a href="http://www.wired.co.uk/news/archive/2015-09/10/seaboard-rise-digital-keyboard-launch-uk-price" target="_blank"><i><font color="#1155cc">innovative</font></i></a><i>”, “</i><a href="http://createdigitalmusic.com/2015/09/new-roli-instrument-wants-make-expressive-control-mainstream/" target="_blank"><i><font color="#1155cc">expressive</font></i></a><i>”, “</i><a href="http://createdigitalmusic.com/2015/09/new-roli-instrument-wants-make-expressive-control-mainstream/" target="_blank"><i><font color="#1155cc">accessible</font></i></a><i>”, and “</i><a href="http://www.slashgear.com/roli-seaboard-rise-is-like-3d-touch-for-musicians-11404216/" target="_blank"><i><font color="#1155cc">a keyboard controller that does to piano keys what 3D touch does to the iPhone</font></i></a><i>”. Now available for preorder at </i><a href="http://www.roli.com/" target="_blank"><i><font color="#1155cc">www.roli.com</font></i></a><i>.</i></font><br><br></p></div></div></div></div></div></div></div></div></div></div>
</div></div>