Issue 161812
Summary coff lld relocation out of range error from `tailMergeARM64` chunk to `__delayLoadHelper2`
Labels backend:AArch64, lld:COFF, platform:windows
Assignees
Reporter zmodem
    I don't have a great reproducer to share yet, but we're hitting `lld-link: error: relocation out of range` when building Chromium for Win/ARM64.

The relocation in question is from a `TailMergeChunkARM64` to the `__delayLoadHelper2` symbol: https://github.com/llvm/llvm-project/blob/4647cd7344f3683a6a0e094c4f751a846b4bcfb4/lld/COFF/DLL.cpp#L560

I suppose `__delayLoadHelper2` may have ended up closer to the start of the text section, which is now large engouh that now we can't reach it from `.didat` directly.

@rnk and @mstorsjo who looked at this in https://reviews.llvm.org/D64288

Do you have ideas on how to best fix this?

Would it be reasonable to change the call sequence, doing something like: https://github.com/zmodem/llvm-project/commit/ed21d8edb16104ebd689f455c1068eb6c98aa4cf

Or is there a handy of way of making lld emit a thunk/branch island for the call?
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to