]> git.lizzy.rs Git - rust.git/commit
Auto merge of #84171 - ricobbe:raw-dylib-via-llvm, r=petrochenkov
authorbors <bors@rust-lang.org>
Sun, 6 Jun 2021 03:59:17 +0000 (03:59 +0000)
committerbors <bors@rust-lang.org>
Sun, 6 Jun 2021 03:59:17 +0000 (03:59 +0000)
commitdf47bce145934355a281ca4c95d230d880b61363
tree2ea88e0287b9e4b974ae22423f7f6dcbac828042
parentd7db869e7d85d1bc052b29a35f914ab9684b8baa
parent1248ff139d85c0f9f9aec0684d991e62013541b7
Auto merge of #84171 - ricobbe:raw-dylib-via-llvm, r=petrochenkov

Partial support for raw-dylib linkage

First cut of functionality for issue #58713: add support for `#[link(kind = "raw-dylib")]` on `extern` blocks in lib crates compiled to .rlib files.  Does not yet support `#[link_name]` attributes on functions, or the `#[link_ordinal]` attribute, or `#[link(kind = "raw-dylib")]` on `extern` blocks in bin crates; I intend to publish subsequent PRs to fill those gaps.  It's also not yet clear whether this works for functions in `extern "stdcall"` blocks; I also intend to investigate that shortly and make any necessary changes as a follow-on PR.

This implementation calls out to an LLVM function to construct the actual `.idata` sections as temporary `.lib` files on disk and then links those into the generated .rlib.