qemu/rust/qemu-api
Paolo Bonzini 4f7521916d rust: modernize link_section usage for ELF platforms
Some newer ABI implementations do not provide .ctors; and while
some linkers rewrite .ctors into .init_array, not all of them do.
Use the newer .init_array ABI, which works more reliably, and
apply it to all non-Apple, non-Windows platforms.

This is similar to how the ctor crate operates; without this change,
"#[derive(Object)]" does not work on Fedora 41.

Reviewed-by: Junjie Mao <junjie.mao@hotmail.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2024-11-05 14:18:15 +01:00
..
src rust: modernize link_section usage for ELF platforms 2024-11-05 14:18:15 +01:00
.gitignore rust: add crate to expose bindings and interfaces 2024-10-11 12:32:17 +02:00
build.rs rust: add crate to expose bindings and interfaces 2024-10-11 12:32:17 +02:00
Cargo.lock rust: add crate to expose bindings and interfaces 2024-10-11 12:32:17 +02:00
Cargo.toml rust: add crate to expose bindings and interfaces 2024-10-11 12:32:17 +02:00
meson.build meson: pass rustc_args when building all crates 2024-11-05 14:18:15 +01:00
README.md rust: add crate to expose bindings and interfaces 2024-10-11 12:32:17 +02:00

QEMU bindings and API wrappers

This library exports helper Rust types, Rust macros and C FFI bindings for internal QEMU APIs.

The C bindings can be generated with bindgen, using this build target:

$ ninja bindings.rs

Generate Rust documentation

To generate docs for this crate, including private items:

cargo doc --no-deps --document-private-items