Support linking Rust code into a C++ binary

This is based on a version of my upstream PR:
https://github.com/bazelbuild/rules_rust/pull/1350

Change-Id: Ica7097c10666d2e0017336cf7d81420605238493
Signed-off-by: Brian Silverman <bsilver16384@gmail.com>
diff --git a/build_tests/rust_in_cc.cc b/build_tests/rust_in_cc.cc
new file mode 100644
index 0000000..9c13b1b
--- /dev/null
+++ b/build_tests/rust_in_cc.cc
@@ -0,0 +1,19 @@
+// A very minimal rust_library linked into a cc_binary to make sure we still get
+// the allocator symbols linked in.
+
+#include <stdint.h>
+#include <stdio.h>
+
+extern "C" int32_t rust_return5();
+
+extern "C" uint8_t c_return5() { return 5; }
+
+extern "C" void c_take5(uint8_t *) {}
+
+int main() {
+  const int rust_result = rust_return5();
+  printf("Rust says: %d\n", rust_result);
+  if (rust_result != 5) {
+    return 1;
+  }
+}