Tell new Bazel that our toolchains can make shared objects

Change-Id: I6ce12d8c254e3f78024a2fc1db62960cf9d2012d
diff --git a/tools/cpp/CROSSTOOL b/tools/cpp/CROSSTOOL
index f483e2b..e1a1701 100644
--- a/tools/cpp/CROSSTOOL
+++ b/tools/cpp/CROSSTOOL
@@ -89,6 +89,7 @@
   objcopy_embed_flag: "binary"
   tool_path { name: "objdump" path: "/usr/bin/objdump" }
   tool_path { name: "strip" path: "/usr/bin/strip" }
+  linking_mode_flags { mode: DYNAMIC }
 
   # TODO(bazel-team): In theory, the path here ought to exactly match the path
   # used by gcc. That works because bazel currently doesn't track files at
@@ -311,6 +312,7 @@
   objcopy_embed_flag: "binary"
   tool_path { name: "objdump" path: "arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-objdump" }
   tool_path { name: "strip" path: "arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-strip" }
+  linking_mode_flags { mode: DYNAMIC }
 
   compiler_flag: "--sysroot=external/arm_frc_linux_gnueabi_repo/usr/arm-frc-linux-gnueabi"
   compiler_flag: "-nostdinc"
@@ -563,6 +565,7 @@
   objcopy_embed_flag: "binary"
   tool_path { name: "objdump" path: "linaro_linux_gcc/arm-linux-gnueabihf-objdump" }
   tool_path { name: "strip" path: "linaro_linux_gcc/arm-linux-gnueabihf-strip" }
+  linking_mode_flags { mode: DYNAMIC }
 
   compiler_flag: "-target"
   compiler_flag: "armv7a-arm-linux-gnueabif"