update master-with-bazel from master branch
diff --git a/src/rust/bssl-sys/build.rs b/src/rust/bssl-sys/build.rs
index 91a9f8a..ede6411 100644
--- a/src/rust/bssl-sys/build.rs
+++ b/src/rust/bssl-sys/build.rs
@@ -78,6 +78,23 @@
     return Path::new(&crate_dir).join("../../build");
 }
 
+fn get_cpp_runtime_lib() -> Option<String> {
+    println!("cargo:rerun-if-env-changed=BORINGSSL_RUST_CPPLIB");
+
+    if let Ok(cpp_lib) = env::var("BORINGSSL_RUST_CPPLIB") {
+        return Some(cpp_lib);
+    }
+
+    if env::var_os("CARGO_CFG_UNIX").is_some() {
+        match env::var("CARGO_CFG_TARGET_OS").unwrap().as_ref() {
+            "macos" => Some("c++".into()),
+            _ => Some("stdc++".into()),
+        }
+    } else {
+        None
+    }
+}
+
 fn main() {
     let bssl_build_dir = get_bssl_build_dir();
     let bssl_sys_build_dir = bssl_build_dir.join("rust/bssl-sys");
@@ -106,5 +123,9 @@
     );
     println!("cargo:rustc-link-lib=static=rust_wrapper");
 
+    if let Some(cpp_lib) = get_cpp_runtime_lib() {
+        println!("cargo:rustc-link-lib={}", cpp_lib);
+    }
+
     println!("cargo:conf={}", OSSL_CONF_DEFINES.join(","));
 }