[llvm-dev] [LLD] Relocation overflows and .nv_fatbin

Fangrui Song via llvm-dev llvm-dev at lists.llvm.org
Wed Sep 8 12:01:14 PDT 2021


On 2021-09-08, Alexander Yermolovich via llvm-dev wrote:
>Hello
>
>I am seeing relocation overflows from .text section in to .nv_fatbin. The whole thing, nv_fatbin, is a bit of a black box, but there does appear to be only one. We have a downstream patch in LLD, that moves .nv_fatbin section(s) that have relocations in to to the "top". Looking around at what's in .nv_fartbin the rest of the code should be bunch of cuda stuff. So, in theory that can grow, and we shouldn't get any more relocation overflows. At least due to the size of .nv_fatbin.
>
>I was wondering if there is a better way of doing it. Maybe with a linker script? I investigated it, and that answer seems to be no, but I am not an expert in linker scripts.
>
>Thank You
>Alex

I implemented INSERT [AFTER|BEFORE] for orphan sections in https://reviews.llvm.org/D74375
You may consider moving .nv* and __nv* sections after .bss

But linker synthesized etext/_etext may be in a weird position.
To fix that, use the OVERWRITE_SECTIONS feature I added for LLD 13.0.0

OVERWRITE_SECTIONS {
   .tdata : { etext = .; _etext = .; *(.tdata) }
}


More information about the llvm-dev mailing list