You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
use std::error::Error;fnf(target:&str) -> Result<(),Box<dynError>>{let bindings = bindgen::Builder::default().clang_arg(format!("--target={target}")).header_contents("embed.h","static inline int hack() { return 0; }").override_abi(bindgen::Abi::CUnwind,"hack").wrap_static_fns(true).wrap_static_fns_path(format!("wrap_{target}")).generate()?;println!("/* binding for {target} */");println!("{}", bindings);Ok(())}fnmain() -> Result<(),Box<dynError>>{f("x86_64-linux-gnu")?;f("aarch64-linux-gnu")?;f("x86_64-apple-macos")?;f("aarch64-apple-macos")?;f("x86_64-pc-windows-msvc")?;f("aarch64-pc-windows-msvc")?;Ok(())}
Expected to see 6 files are generated. However, only 4 files (wrap_x86_64-linux-gnu.c, wrap_aarch64-linux-gnu.c, wrap_x86_64-pc-windows-msvc.c, wrap_aarch64-pc-windows-msvc.c) are generated.
If .override_abi(bindgen::Abi::CUnwind, "hack") is removed, all 6 files are generated.
The output of this code:
/* binding for x86_64-linux-gnu *//* automatically generated by rust-bindgen 0.71.1 */unsafeextern"C-unwind"{#[link_name = "hack__extern"]pubfnhack() -> ::std::os::raw::c_int;}/* binding for aarch64-linux-gnu *//* automatically generated by rust-bindgen 0.71.1 */unsafeextern"C-unwind"{#[link_name = "hack__extern"]pubfnhack() -> ::std::os::raw::c_int;}/* binding for x86_64-apple-macos *//* automatically generated by rust-bindgen 0.71.1 */unsafeextern"C-unwind"{#[link_name = "\u{1}_hack"]pubfnhack() -> ::std::os::raw::c_int;}/* binding for aarch64-apple-macos *//* automatically generated by rust-bindgen 0.71.1 */unsafeextern"C-unwind"{#[link_name = "\u{1}_hack"]pubfnhack() -> ::std::os::raw::c_int;}/* binding for x86_64-pc-windows-msvc *//* automatically generated by rust-bindgen 0.71.1 */unsafeextern"C-unwind"{#[link_name = "hack__extern"]pubfnhack() -> ::std::os::raw::c_int;}/* binding for aarch64-pc-windows-msvc *//* automatically generated by rust-bindgen 0.71.1 */unsafeextern"C-unwind"{#[link_name = "hack__extern"]pubfnhack() -> ::std::os::raw::c_int;}
The text was updated successfully, but these errors were encountered:
usamoi
changed the title
if override_abi and wrap_static_fns are used, wrap_static_fns does not work targetting macos
if both override_abi and wrap_static_fns are used, targetting macos, wrap_static_fns does not work
Feb 25, 2025
Expected to see 6 files are generated. However, only 4 files (
wrap_x86_64-linux-gnu.c
,wrap_aarch64-linux-gnu.c
,wrap_x86_64-pc-windows-msvc.c
,wrap_aarch64-pc-windows-msvc.c
) are generated.If
.override_abi(bindgen::Abi::CUnwind, "hack")
is removed, all 6 files are generated.The output of this code:
The text was updated successfully, but these errors were encountered: