# `codegen-backend`

The tracking issue for this feature is: #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` test for a full example.

    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)
    }