]>
Commit | Line | Data |
---|---|---|
29967ef6 XL |
1 | # `codegen-backend` |
2 | ||
3 | The tracking issue for this feature is: [#77933](https://github.com/rust-lang/rust/issues/77933). | |
4 | ||
5 | ------------------------ | |
6 | ||
7 | This feature allows you to specify a path to a dynamic library to use as rustc's | |
8 | code generation backend at runtime. | |
9 | ||
10 | Set the `-Zcodegen-backend=<path>` compiler flag to specify the location of the | |
11 | backend. The library must be of crate type `dylib` and must contain a function | |
12 | named `__rustc_codegen_backend` with a signature of `fn() -> Box<dyn rustc_codegen_ssa::traits::CodegenBackend>`. | |
13 | ||
14 | ## Example | |
15 | See also the [`hotplug_codegen_backend`](https://github.com/rust-lang/rust/tree/master/src/test/run-make-fulldeps/hotplug_codegen_backend) test | |
16 | for a full example. | |
17 | ||
18 | ```rust,ignore | |
19 | use rustc_codegen_ssa::traits::CodegenBackend; | |
20 | ||
21 | struct MyBackend; | |
22 | ||
23 | impl CodegenBackend for MyBackend { | |
24 | // Implement codegen methods | |
25 | } | |
26 | ||
27 | #[no_mangle] | |
28 | pub fn __rustc_codegen_backend() -> Box<dyn CodegenBackend> { | |
29 | Box::new(MyBackend) | |
30 | } | |
31 | ``` |