bd1976llvm added a comment.

Sorry for the delay in updating this.

I hoped to post an updated patch today for this but I realized that I first 
need to investigate whether section relative references might interact badly 
with multiple sections with the same name.. I will be able to update the patch 
tomorrow.

Below is the code comment from the new patch explaining the new approach, 
please take a look and see if you have any questions/comments:

  // If two globals with differing sizes end up in the same mergeable
  // section that section can be assigned an incorrect entry size. Normally,
  // the assembler avoids this by putting incompatible globals into
  // differently named sections. However, globals can be explicitly assigned
  // to a section by specifying the section name. In this case, if unique
  // section names are available (-unique-section-names in LLVM) then we
  // bin compatible globals into different mergeable sections with the same 
name.
  // Otherwise, if incompatible globals have been explicitly assigned to 
section by a
  // fine-grained/per-symbol mechanism (e.g. via  
_attribute_((section(“myname”)))) then
  // we issue an error and the user can then change the section assignment. If 
the
  // section assignment is not via a fine-grained means (e.g. via pragma clang 
section)
  // then we simply do not make the resulting section mergeable as there is 
nothing
  // that the user can easily change to fix the resulting problem.


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

https://reviews.llvm.org/D68101



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

Reply via email to