diff --git a/test cases/rust/27 objects/lib1-dylib.rs b/test cases/rust/27 objects/lib1-dylib.rs new file mode 100644 index 000000000000..ed1cc8c9a6f9 --- /dev/null +++ b/test cases/rust/27 objects/lib1-dylib.rs @@ -0,0 +1,15 @@ +unsafe extern "C" { + unsafe fn from_lib1(); +} + +#[no_mangle] +extern "C" fn from_lib2() +{ + println!("hello world"); +} + +#[no_mangle] +pub extern "C" fn c_func() +{ + unsafe { from_lib1(); } +} diff --git a/test cases/rust/27 objects/meson.build b/test cases/rust/27 objects/meson.build index b8afa0a50141..873e01447adf 100644 --- a/test cases/rust/27 objects/meson.build +++ b/test cases/rust/27 objects/meson.build @@ -14,3 +14,7 @@ executable('lib1objs_as_dep', 'main.rs', executable('lib2objs_as_dep', 'main.rs', dependencies: declare_dependency(objects: lib2.extract_all_objects(recursive: false)), link_with: lib1) + +lib12 = shared_library('lib12', 'lib1-dylib.rs', objects: lib2.extract_all_objects(recursive: false), + rust_abi: 'c') +executable('lib12', 'main.rs', link_with: lib12)