File boringssl-sys-no-static.patch of Package libsignal
Make rustc believe boringssl is a “dylib”.
(It is not, but this makes rustc call gcc to do the linking,
which is needed as only gcc itself can link its own LTO objects.)
--- libsignal-client/vendor/boring-sys/build/main.rs.old 2022-09-29 10:04:43.847085795 +0200
+++ libsignal-client/vendor/boring-sys/build/main.rs 2022-10-05 12:19:34.475896732 +0200
@@ -668,9 +668,10 @@ fn main() {
link_in_precompiled_bcm_o(&config);
}
- println!("cargo:rustc-link-lib=static=crypto");
+ println!("cargo:rustc-link-lib=crypto");
if config.features.ssl {
- println!("cargo:rustc-link-lib=static=ssl");
+ println!("cargo:rustc-link-lib=ssl");
+ println!("cargo:rustc-link-lib=crypto"); // help resolve linker ordering issues causing missing symbols
}
let include_path = config.env.include_path.clone().unwrap_or_else(|| {