Turn off extern templates for most uses.  It is causing more problems than it is worth.  The extern templates will still be built into the dylib, mainly for ABI stability purposes.  And the client can still turn these back on with a #define if desire.  This fixes http://llvm.org/bugs/show_bug.cgi?id=17027.  However there's no associated test for the test suite because http://llvm.org/bugs/show_bug.cgi?id=17027 needs mismatched dylib and headers to fire.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@189610 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/src/valarray.cpp b/src/valarray.cpp
index 2d8db52..e4c9ed0 100644
--- a/src/valarray.cpp
+++ b/src/valarray.cpp
@@ -7,6 +7,8 @@
 //
 //===----------------------------------------------------------------------===//
 
+#define _LIBCPP_EXTERN_TEMPLATE(...) extern template __VA_ARGS__;
+
 #include "valarray"
 
 _LIBCPP_BEGIN_NAMESPACE_STD