In the method RuntimeDyldCOFFX86_64::resolveRelocation there is this bit of code:
if (Value < ImageBase || ((Value - ImageBase) > UINT32_MAX)) {
llvm::errs() << “IMAGE_REL_AMD64_ADDR32NB relocation requires an”
<< “ordered section layout.\n”;
write32BitOffset(Target, 0, 0);
}
If the address math “wraps” during the relocation, that sounds like a fatal error. But here the code complains and then continues. Is this really a recoverable condition? I’m not an expert in this area so detailed explanations are welcomed.
Thanks,
Dale