Delete rtc_base/basictypes.h

Only remaining user was rtc_base/byteorder.h, which is changed to use
rtc_base/system/arch.h.

Bug: webrtc:6853
Change-Id: If3b21831adc60adfd989061027d661867c938a0f
Reviewed-on: https://webrtc-review.googlesource.com/78740
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23406}
diff --git a/rtc_base/BUILD.gn b/rtc_base/BUILD.gn
index 96822ca..b9cf3b9 100644
--- a/rtc_base/BUILD.gn
+++ b/rtc_base/BUILD.gn
@@ -104,7 +104,6 @@
 rtc_source_set("macromagic") {
   sources = [
     "arraysize.h",
-    "basictypes.h",
     "constructormagic.h",
     "format_macros.h",
     "stringize_macros.h",
@@ -385,6 +384,7 @@
     ":timeutils",
     ":type_traits",
     "../:typedefs",
+    "system:arch",
   ]
 
   sources = [
@@ -1104,7 +1104,6 @@
     sources = [
       "atomicops_unittest.cc",
       "base64_unittest.cc",
-      "basictypes_unittest.cc",
       "bind_unittest.cc",
       "bitbuffer_unittest.cc",
       "bitrateallocationstrategy_unittest.cc",
diff --git a/rtc_base/atomicops.h b/rtc_base/atomicops.h
index c0ff1a6..a4f9a4f 100644
--- a/rtc_base/atomicops.h
+++ b/rtc_base/atomicops.h
@@ -13,9 +13,8 @@
 
 #if defined(WEBRTC_WIN)
 // Include winsock2.h before including <windows.h> to maintain consistency with
-// win32.h.  We can't include win32.h directly here since it pulls in
-// headers such as basictypes.h which causes problems in Chromium where webrtc
-// exists as two separate projects, webrtc and libjingle.
+// win32.h. To include win32.h directly, it must be broken out into its own
+// build target.
 #include <winsock2.h>
 #include <windows.h>
 #endif  // defined(WEBRTC_WIN)
diff --git a/rtc_base/basictypes.h b/rtc_base/basictypes.h
deleted file mode 100644
index 1d149d6..0000000
--- a/rtc_base/basictypes.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- *  Copyright 2004 The WebRTC Project Authors. All rights reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS.  All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-#ifndef RTC_BASE_BASICTYPES_H_
-#define RTC_BASE_BASICTYPES_H_
-
-// Detect compiler is for x86 or x64.
-#if defined(__x86_64__) || defined(_M_X64) || \
-    defined(__i386__) || defined(_M_IX86)
-#define CPU_X86 1
-#endif
-
-// Detect compiler is for arm.
-#if defined(__arm__) || defined(_M_ARM)
-#define CPU_ARM 1
-#endif
-
-#if defined(CPU_X86) && defined(CPU_ARM)
-#error CPU_X86 and CPU_ARM both defined.
-#endif
-
-#if !defined(RTC_ARCH_CPU_BIG_ENDIAN) && !defined(RTC_ARCH_CPU_LITTLE_ENDIAN)
-// x86, arm or GCC provided __BYTE_ORDER__ macros
-#if defined(CPU_X86) || defined(CPU_ARM) ||                             \
-  (defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)
-#define RTC_ARCH_CPU_LITTLE_ENDIAN
-#elif defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
-#define RTC_ARCH_CPU_BIG_ENDIAN
-#else
-#error RTC_ARCH_CPU_BIG_ENDIAN or RTC_ARCH_CPU_LITTLE_ENDIAN should be defined.
-#endif
-#endif
-
-#if defined(RTC_ARCH_CPU_BIG_ENDIAN) && defined(RTC_ARCH_CPU_LITTLE_ENDIAN)
-#error RTC_ARCH_CPU_BIG_ENDIAN and RTC_ARCH_CPU_LITTLE_ENDIAN both defined.
-#endif
-
-#endif  // RTC_BASE_BASICTYPES_H_
diff --git a/rtc_base/basictypes_unittest.cc b/rtc_base/basictypes_unittest.cc
deleted file mode 100644
index a8b0533..0000000
--- a/rtc_base/basictypes_unittest.cc
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- *  Copyright 2012 The WebRTC Project Authors. All rights reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS.  All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-#include "rtc_base/basictypes.h"
-
-#include "rtc_base/gunit.h"
-
-namespace rtc {
-
-TEST(BasicTypesTest, Endian) {
-  uint16_t v16 = 0x1234u;
-  uint8_t first_byte = *reinterpret_cast<uint8_t*>(&v16);
-#if defined(RTC_ARCH_CPU_LITTLE_ENDIAN)
-  EXPECT_EQ(0x34u, first_byte);
-#elif defined(RTC_ARCH_CPU_BIG_ENDIAN)
-  EXPECT_EQ(0x12u, first_byte);
-#endif
-}
-
-TEST(BasicTypesTest, SizeOfConstants) {
-  EXPECT_EQ(8u, sizeof(INT64_C(0)));
-  EXPECT_EQ(8u, sizeof(UINT64_C(0)));
-  EXPECT_EQ(8u, sizeof(INT64_C(0x1234567887654321)));
-  EXPECT_EQ(8u, sizeof(UINT64_C(0x8765432112345678)));
-}
-
-// Test CPU_ macros
-#if !defined(CPU_ARM) && defined(__arm__)
-#error expected CPU_ARM to be defined.
-#endif
-#if !defined(CPU_X86) && (defined(WEBRTC_WIN) || defined(WEBRTC_MAC) && !defined(WEBRTC_IOS))
-#error expected CPU_X86 to be defined.
-#endif
-#if !defined(RTC_ARCH_CPU_LITTLE_ENDIAN) && \
-  (defined(WEBRTC_WIN) || defined(WEBRTC_MAC) && !defined(WEBRTC_IOS) || defined(CPU_X86))
-#error expected RTC_ARCH_CPU_LITTLE_ENDIAN to be defined.
-#endif
-
-// TODO(fbarchard): Test all macros in basictypes.h
-
-}  // namespace rtc
diff --git a/rtc_base/byteorder.h b/rtc_base/byteorder.h
index 43cfb36..86546a5 100644
--- a/rtc_base/byteorder.h
+++ b/rtc_base/byteorder.h
@@ -17,7 +17,7 @@
 #include <arpa/inet.h>
 #endif
 
-#include "rtc_base/basictypes.h"
+#include "rtc_base/system/arch.h"
 
 #if defined(WEBRTC_MAC)
 #include <libkern/OSByteOrder.h>
@@ -53,7 +53,7 @@
 #define be64toh(v) ntohll(v)
 #endif
 
-#if defined(RTC_ARCH_CPU_LITTLE_ENDIAN)
+#if defined(WEBRTC_ARCH_LITTLE_ENDIAN)
 #define htole16(v) (v)
 #define htole32(v) (v)
 #define htole64(v) (v)
@@ -64,7 +64,7 @@
 #define htobe64(v) __builtin_bswap64(v)
 #define be64toh(v) __builtin_bswap64(v)
 #endif
-#elif defined(RTC_ARCH_CPU_BIG_ENDIAN)
+#elif defined(WEBRTC_ARCH_BIG_ENDIAN)
 #define htole16(v) __builtin_bswap16(v)
 #define htole32(v) __builtin_bswap32(v)
 #define htole64(v) __builtin_bswap64(v)
@@ -76,8 +76,8 @@
 #define be64toh(v) (v)
 #endif
 #else
-#error RTC_ARCH_CPU_BIG_ENDIAN or RTC_ARCH_CPU_LITTLE_ENDIAN must be defined.
-#endif  // defined(RTC_ARCH_CPU_LITTLE_ENDIAN)
+#error WEBRTC_ARCH_BIG_ENDIAN or WEBRTC_ARCH_LITTLE_ENDIAN must be defined.
+#endif  // defined(WEBRTC_ARCH_LITTLE_ENDIAN)
 #elif defined(WEBRTC_POSIX)
 #include <endian.h>
 #endif
@@ -144,7 +144,7 @@
 
 // Check if the current host is big endian.
 inline bool IsHostBigEndian() {
-#if defined(RTC_ARCH_CPU_BIG_ENDIAN)
+#if defined(WEBRTC_ARCH_BIG_ENDIAN)
   return true;
 #else
   return false;
diff --git a/rtc_base/criticalsection.h b/rtc_base/criticalsection.h
index 569e147..6abdbe5 100644
--- a/rtc_base/criticalsection.h
+++ b/rtc_base/criticalsection.h
@@ -19,9 +19,8 @@
 
 #if defined(WEBRTC_WIN)
 // Include winsock2.h before including <windows.h> to maintain consistency with
-// win32.h.  We can't include win32.h directly here since it pulls in
-// headers such as basictypes.h which causes problems in Chromium where webrtc
-// exists as two separate projects, webrtc and libjingle.
+// win32.h. To include win32.h directly, it must be broken out into its own
+// build target.
 #include <winsock2.h>
 #include <windows.h>
 #include <sal.h>  // must come after windows headers.
diff --git a/rtc_base/task_queue_win.cc b/rtc_base/task_queue_win.cc
index cbf86a6..5cc9f88 100644
--- a/rtc_base/task_queue_win.cc
+++ b/rtc_base/task_queue_win.cc
@@ -11,9 +11,8 @@
 #include "rtc_base/task_queue.h"
 
 // Include winsock2.h before including <windows.h> to maintain consistency with
-// win32.h.  We can't include win32.h directly here since it pulls in
-// headers such as basictypes.h which causes problems in Chromium where webrtc
-// exists as two separate projects, webrtc and libjingle.
+// win32.h. To include win32.h directly, it must be broken out into its own
+// build target.
 #include <winsock2.h>
 #include <windows.h>
 #include <sal.h>  // Must come after windows headers.