File boringssl-sys-no-static.patch of Package signal-desktop
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.)
--- Signal-Desktop-5.61.1/node_modules/@signalapp/libsignal-client/vendor/boring-sys/build.rs.old 2022-09-29 10:04:43.847085795 +0200
+++ Signal-Desktop-5.61.1/node_modules/@signalapp/libsignal-client/vendor/boring-sys/build.rs 2022-10-05 12:19:34.475896732 +0200
@@ -649,9 +649,10 @@ fn main() {
link_in_precompiled_bcm_o(&bssl_dir);
}
- println!("cargo:rustc-link-lib=static=crypto");
+ println!("cargo:rustc-link-lib=crypto");
if cfg!(feature = "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 = env::var("BORING_BSSL_INCLUDE_PATH").unwrap_or_else(|_| {