Skip to content

Commit

Permalink
Rollup merge of #77934 - XAMPPRocky:codegen-backend-docs, r=jonas-sch…
Browse files Browse the repository at this point in the history
…ievink

Document -Z codegen-backend in the unstable book

### [Rendered](https://github.com/XAMPPRocky/rust/blob/codegen-backend-docs/src/doc/unstable-book/src/compiler-flags/codegen-backend.md)

Companion PR to #77933 tracking issue.

cc @bjorn3
  • Loading branch information
JohnTitor authored Oct 14, 2020
2 parents b3f9512 + 6ae5f36 commit 0cf86c2
Showing 1 changed file with 31 additions and 0 deletions.
31 changes: 31 additions & 0 deletions src/doc/unstable-book/src/compiler-flags/codegen-backend.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# `codegen-backend`

The tracking issue for this feature is: [#77933](https://github.com/rust-lang/rust/issues/77933).

------------------------

This feature allows you to specify a path to a dynamic library to use as rustc's
code generation backend at runtime.

Set the `-Zcodegen-backend=<path>` compiler flag to specify the location of the
backend. The library must be of crate type `dylib` and must contain a function
named `__rustc_codegen_backend` with a signature of `fn() -> Box<dyn rustc_codegen_ssa::traits::CodegenBackend>`.

## Example
See also the [`hotplug_codegen_backend`](https://github.com/rust-lang/rust/tree/master/src/test/run-make-fulldeps/hotplug_codegen_backend) test
for a full example.

```rust,ignore
use rustc_codegen_ssa::traits::CodegenBackend;
struct MyBackend;
impl CodegenBackend for MyBackend {
// Implement codegen methods
}
#[no_mangle]
pub fn __rustc_codegen_backend() -> Box<dyn CodegenBackend> {
Box::new(MyBackend)
}
```

0 comments on commit 0cf86c2

Please sign in to comment.