probinson added a comment.

In D97446#2587996 <https://reviews.llvm.org/D97446#2587996>, @MaskRay wrote:

> In D97446#2587806 <https://reviews.llvm.org/D97446#2587806>, @probinson wrote:
>
>>> GNU ld has a rule "start_/stop_ references from a live input section retain 
>>> the associated C identifier name sections", which LLD may change in the 
>>> future (D96914 <https://reviews.llvm.org/D96914>).
>>
>> The phrasing "may change" implies LLD could eliminate the rule; in fact 
>> D96914 <https://reviews.llvm.org/D96914> will only add a way to opt-out of 
>> the rule.  You can't eliminate the rule entirely without breaking a lot of 
>> useful cases.
>
> Reworded this sentence. D96914 <https://reviews.llvm.org/D96914> does add a 
> way to opt-out of the rule. In the future (when toolchains are more mature) 
> we may try. My internal tests and Linux kernel tests are try to state that we 
> may not have many dependent cases.

My guess is that many use-cases for `__start_/__stop_` and `used` sections are 
in test and debugging code; it might not be obvious where a dependency is, and 
it might well be the case that GC-ing these sections will make something 
useless without actively breaking it.  The behavior of `__start_/__stop_` has 
been in place for a very long time, IIUC, and it would be very hard to prove 
that nothing bad will happen if you eliminate that behavior.  I don't think 
"Linux will still boot" is a particularly exhaustive test case.

Rather than just make vague worried noises, I will work on putting up a patch 
with my particular use-case, and we can see whether I am worried over nothing.  
If we're lucky I can do that tomorrow, or it might take another week.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D97446/new/

https://reviews.llvm.org/D97446

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to