| 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