Change the ABI version and ABI namespace to be `_LIBCPP_VERSION`
when _LIBCPP_ABI_UNSTABLE is defined.

User defined _LIBCPP_ABI_NAMESPACE will still be respected,
but the default version namespace in unstable mode will be the libc++ version
(Currently '__9000').

Previously  `_LIBCPP_ABI_VERSION` and `_LIBCPP_ABI_NAMESPACE` were
`1` and `__1` respectively, whuch conflicted with the stable ABI

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@364354 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/__config b/include/__config
index 5eb69b4..54d4672 100644
--- a/include/__config
+++ b/include/__config
@@ -34,10 +34,6 @@
 
 #define _LIBCPP_VERSION 9000
 
-#ifndef _LIBCPP_ABI_VERSION
-#  define _LIBCPP_ABI_VERSION 1
-#endif
-
 #ifndef __STDC_HOSTED__
 #  define _LIBCPP_FREESTANDING
 #endif
@@ -66,7 +62,18 @@
 #  error Unknown object file format
 #endif
 
-#if defined(_LIBCPP_ABI_UNSTABLE) || _LIBCPP_ABI_VERSION >= 2
+#if defined(_LIBCPP_ABI_UNSTABLE)
+# ifdef _LIBCPP_ABI_VERSION
+#   error _LIBCPP_ABI_VERSION cannot be defined with _LIBCPP_ABI_UNSTABLE
+# endif
+# define _LIBCPP_ABI_VERSION _LIBCPP_VERSION
+#endif
+
+#ifndef _LIBCPP_ABI_VERSION
+#  define _LIBCPP_ABI_VERSION 1
+#endif
+
+#if _LIBCPP_ABI_VERSION >= 2
 // Change short string representation so that string data starts at offset 0,
 // improving its alignment in some cases.
 #  define _LIBCPP_ABI_ALTERNATE_STRING_LAYOUT