[PATCH] D68101: [MC][ELF] Prevent globals with an explicit section from being mergeable

ben via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 3 18:58:48 PST 2020


bd1976llvm added a comment.

In D68101#1802280 <https://reviews.llvm.org/D68101#1802280>, @rjmccall wrote:

> The solution described in that comment is not acceptable.  We are not going to tell users that they cannot assign symbols explicitly to sections because LLVM is unable to promise not to miscompile if they do.  It is LLVM's responsibility to correctly compile valid code; enabling mergeability for a section containing `unnamed_addr` symbols is an optimization, and if it is not safe, it needs to be disabled until we can figure out a way to make it safe.


Thanks for the feedback. Apologies that you had to repeat yourself.

> I laid out a series of three options before:
> 
> - Emit different object-file sections for different mergeability settings.
> - Only mark an object-file section as mergeable if all the symbols in it would have the same mergeability settings.
> - Stop implicitly using mergeability for "ordinary" sections (i.e. sections other than the string section).
> 
>   Did you investigate these?

I looked into these today. I think we can do the first of these. I have put a WIP patch up here: https://reviews.llvm.org/D72194. Could you comment on the approach taken?


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

https://reviews.llvm.org/D68101





More information about the llvm-commits mailing list