[llvm-dev] LLD handling of orphaned sections

Peter Smith via llvm-dev llvm-dev at lists.llvm.org
Fri Jun 21 05:27:43 PDT 2019


On Fri, 21 Jun 2019 at 13:05, Rui Ueyama via llvm-dev
<llvm-dev at lists.llvm.org> wrote:
>
> I think Geroge (cc'ed) knows better than me in that area.
>
> lld is underdocumented, and in particular there is virtually no documentation about its linker script support. Our basic strategy is to follow the GNU's documentation and the implementations unless it is too hard or doesn't match with the rest of lld. So, as long as it works just like GNU, it's fine, but if not, it is hard to say whether it is intended or not, just as you explained. This is an area that we need to improve.
>

I think it would be helpful if we could come up with some user-level
documentation on the intentional differences between LLD and GNU ld,
particularly in the less well specified areas like orphan section
assignment and program header generation. I think we'd have to be very
careful with what we wrote down though, to a first approximation we
have differences that are intentional or non-intentional; and on a
separate axis differences that are stable or subject to change. We'd
want to concentrate on documenting differences that are intentional
and stable, such as back references being allowed in library
selection.

If there is interest in working this out I'm willing to start a list
of the differences, whether it is in the document or just a text file
alongside the source. It is something that could be built up
incrementally and over time we can identify the stable differences?

Peter

> On Thu, Jun 20, 2019 at 11:18 PM Roger Pau Monné via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>>
>> Hello,
>>
>> The handling of orphaned sections in LLD 8 has changed from GNU LD
>> behavior (note that LLD 7 didn't show this behavior). I've reported
>> this as:
>>
>> https://bugs.llvm.org/show_bug.cgi?id=42327
>>
>> It's not clear to me however whether this is intentional or a
>> regression when compared to LLD 7.
>>
>> As stated in that bug report it would be helpful for me to get some
>> kind of documentation that describes LLD intended handling of orphaned
>> sections, so that I can justify fixes in order to support LLD, and
>> that I can be sure what I modify is going to be robust against future
>> changes in LLD. For example GNU LD has:
>>
>> https://sourceware.org/binutils/docs/ld/Orphan-Sections.html
>>
>> Having something like this for LLD (if it's going to diverge from GNU
>> LD behavior) would be very helpful, and would allow me to implement
>> future proof support for LLD in Xen.
>>
>> Thanks, Roger.
>> _______________________________________________
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org
>> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev


More information about the llvm-dev mailing list