[libcxxabi] Fix -Werror build for 32-bit non-ARM.

Summary:
The inclusion of Unwind-EHABI.h was insufficiently guarded
(LIBCXXABI_ARM_EHABI was beign checked without ever being defined).

Move the check into the header file itself, add the check to the
source file, and clean up the existing checks.

LIBCXXABI_ARM_EHABI didn't have a canonical defintion; it was
duplicated across cxxabi.h, libunwind.h, and unwind.h. Move the
definition into __cxxabi_config.h and clean up the old cruft (note: we
will have to ship this header).

There are also a few drive-by formatting/whitespace cleanups.

Reviewers: jroelofs, thakis, compnerd

Reviewed By: compnerd

Subscribers: compnerd, aemerson, cfe-commits

Differential Revision: http://reviews.llvm.org/D7419

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@228363 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/__cxxabi_config.h b/include/__cxxabi_config.h
new file mode 100644
index 0000000..c040a06
--- /dev/null
+++ b/include/__cxxabi_config.h
@@ -0,0 +1,20 @@
+//===-------------------------- __cxxabi_config.h -------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef ____CXXABI_CONFIG_H
+#define ____CXXABI_CONFIG_H
+
+#if defined(__arm__) && !defined(__USING_SJLJ_EXCEPTIONS__) && \
+    !defined(__ARM_DWARF_EH__)
+#define LIBCXXABI_ARM_EHABI 1
+#else
+#define LIBCXXABI_ARM_EHABI 0
+#endif
+
+#endif // ____CXXABI_CONFIG_H
diff --git a/include/cxxabi.h b/include/cxxabi.h
index ae75f86..767acfe 100644
--- a/include/cxxabi.h
+++ b/include/cxxabi.h
@@ -18,17 +18,11 @@
 #include <stddef.h>
 #include <stdint.h>
 
+#include <__cxxabi_config.h>
+
 #define _LIBCPPABI_VERSION 1001
 #define LIBCXXABI_NORETURN  __attribute__((noreturn))
 
-// FIXME: This is also in unwind.h and libunwind.h, can we consolidate?
-#if !defined(__USING_SJLJ_EXCEPTIONS__) && defined(__arm__) && \
-    !defined(__ARM_DWARF_EH__) && !defined(__APPLE__)
-#define LIBCXXABI_ARM_EHABI 1
-#else
-#define LIBCXXABI_ARM_EHABI 0
-#endif
-
 #ifdef __cplusplus
 
 namespace std {
diff --git a/include/libunwind.h b/include/libunwind.h
index 9c69551..b0f6979 100644
--- a/include/libunwind.h
+++ b/include/libunwind.h
@@ -17,13 +17,7 @@
 #include <stdint.h>
 #include <stddef.h>
 
-// FIXME: This is also in unwind.h and cxxabi.h, can we consolidate?
-#if !defined(__USING_SJLJ_EXCEPTIONS__) && defined(__arm__) && \
-    !defined(__ARM_DWARF_EH__) && !defined(__APPLE__)
-#define LIBCXXABI_ARM_EHABI 1
-#else
-#define LIBCXXABI_ARM_EHABI 0
-#endif
+#include <__cxxabi_config.h>
 
 #ifdef __APPLE__
   #include <Availability.h>
diff --git a/include/unwind.h b/include/unwind.h
index 6a265cc..3d889cf 100644
--- a/include/unwind.h
+++ b/include/unwind.h
@@ -23,13 +23,7 @@
 #define LIBUNWIND_UNAVAIL
 #endif
 
-// FIXME: This is also in cxxabi.h and libunwind.h, can we consolidate?
-#if !defined(__USING_SJLJ_EXCEPTIONS__) && defined(__arm__) && \
-    !defined(__ARM_DWARF_EH__) && !defined(__APPLE__)
-#define LIBCXXABI_ARM_EHABI 1
-#else
-#define LIBCXXABI_ARM_EHABI 0
-#endif
+#include <__cxxabi_config.h>
 
 typedef enum {
   _URC_NO_REASON = 0,
@@ -208,9 +202,7 @@
 _Unwind_VRS_Pop(_Unwind_Context *context, _Unwind_VRS_RegClass regclass,
                 uint32_t discriminator,
                 _Unwind_VRS_DataRepresentation representation);
-#endif
 
-#if LIBCXXABI_ARM_EHABI
 static inline uintptr_t _Unwind_GetGR(struct _Unwind_Context* context,
                                       int index) {
   uintptr_t value = 0;
diff --git a/src/Unwind/Unwind-EHABI.cpp b/src/Unwind/Unwind-EHABI.cpp
index 3211cf1..e2fced2 100644
--- a/src/Unwind/Unwind-EHABI.cpp
+++ b/src/Unwind/Unwind-EHABI.cpp
@@ -12,7 +12,7 @@
 
 #include "Unwind-EHABI.h"
 
-#include <unwind.h>
+#if LIBCXXABI_ARM_EHABI
 
 #include <stdbool.h>
 #include <stdint.h>
@@ -26,7 +26,6 @@
 #include "unwind.h"
 #include "../private_typeinfo.h"
 
-#if LIBCXXABI_ARM_EHABI
 namespace {
 
 // Strange order: take words in order, but inside word, take from most to least
diff --git a/src/Unwind/Unwind-EHABI.h b/src/Unwind/Unwind-EHABI.h
index 2011a67..5a3c293 100644
--- a/src/Unwind/Unwind-EHABI.h
+++ b/src/Unwind/Unwind-EHABI.h
@@ -11,6 +11,10 @@
 #ifndef __UNWIND_EHABI_H__
 #define __UNWIND_EHABI_H__
 
+#include <__cxxabi_config.h>
+
+#if LIBCXXABI_ARM_EHABI
+
 #include <stdint.h>
 #include <unwind.h>
 
@@ -44,6 +48,6 @@
 } // extern "C"
 #endif
 
-#endif
+#endif // LIBCXXABI_ARM_EHABI
 
 #endif  // __UNWIND_EHABI_H__
diff --git a/src/Unwind/UnwindCursor.hpp b/src/Unwind/UnwindCursor.hpp
index db6e188..b50c09e 100644
--- a/src/Unwind/UnwindCursor.hpp
+++ b/src/Unwind/UnwindCursor.hpp
@@ -23,17 +23,15 @@
   #include <mach-o/dyld.h>
 #endif
 
-#include "libunwind.h"
-
-#include "AddressSpace.hpp"
-#include "Registers.hpp"
-#include "DwarfInstructions.hpp"
-#include "CompactUnwinder.hpp"
 #include "config.h"
 
-#if LIBCXXABI_ARM_EHABI
+#include "AddressSpace.hpp"
+#include "CompactUnwinder.hpp"
+#include "config.h"
+#include "DwarfInstructions.hpp"
+#include "libunwind.h"
+#include "Registers.hpp"
 #include "Unwind-EHABI.h"
-#endif
 
 namespace libunwind {
 
diff --git a/src/Unwind/UnwindLevel1-gcc-ext.c b/src/Unwind/UnwindLevel1-gcc-ext.c
index b8c70bf..4c2e9cc 100644
--- a/src/Unwind/UnwindLevel1-gcc-ext.c
+++ b/src/Unwind/UnwindLevel1-gcc-ext.c
@@ -16,14 +16,11 @@
 #include <stdio.h>
 #include <stdlib.h>
 
-#include "libunwind.h"
-#include "unwind.h"
-#include "libunwind_ext.h"
 #include "config.h"
-
-#if LIBCXXABI_ARM_EHABI
+#include "libunwind_ext.h"
+#include "libunwind.h"
 #include "Unwind-EHABI.h"
-#endif
+#include "unwind.h"
 
 #if _LIBUNWIND_BUILD_ZERO_COST_APIS