[PATCH] D45801: COFF: Use (name, output characteristics) as a key when grouping input sections into output sections.

Reid Kleckner via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 19 09:38:43 PDT 2018


rnk added a comment.

> because of the previous
>  permission merging semantics, the .CRT sections were causing the entire
>  .rdata section to become writable, which caused the SEH runtime to
>  crash because it apparently requires .xdata to be read-only. This
>  change also implements the same special case.

Wow. So, 32-bit Chromium linked with LLD had a writable .rdata. We definitely don't want to ship that. Thanks for investigating this!



================
Comment at: lld/COFF/Writer.cpp:719
+    }
+    To->merge(From);
+  }
----------------
Do we need to remove `From` somehow? What are the semantics of `/merge:.foo=.bar /merge:.baz=.foo`? Move all input sections in .foo to .bar, and then move all input sections from .baz to .foo? Or, everything in .bar?


https://reviews.llvm.org/D45801





More information about the llvm-commits mailing list