[llvm-dev] (no subject)

Eric Astor via llvm-dev llvm-dev at lists.llvm.org
Wed Sep 23 12:45:31 PDT 2020


Hi all,

While working on alias support for the LLVM-ML project, I ran into a
feature implemented back in 2010: default-null weak externals in COFF, a
GNU extension.
https://reviews.llvm.org/rG17990d56907b
I'd like to disable this feature when targeting MSVC compatibility. Does
anyone have more context on this, and why it'd be a terrible idea?

For context: This seems to be designed to let LLVM implement a GNU
extension in COFF libraries. However, it leads to very different behavior
than we see for cl.exe (and ml.exe) on Windows; for already-defined
aliasees, it injects an alternate placeholder
".weak.<alias>.default.<uniquifier>" symbol which resolves back to the
current location. I admit, I'm not quite sure how this helps. If anyone can
explain the purpose, I'd really appreciate it!

In Windows PE/COFF files, aliases typically just resolve to their target
symbol. For an example, see https://reviews.llvm.org/D87403#inline-811289.

Thanks,
- Eric
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200923/0e0c108e/attachment.html>


More information about the llvm-dev mailing list