| Index: webrtc/rtc_base/arch.h
|
| diff --git a/webrtc/rtc_base/arch.h b/webrtc/rtc_base/arch.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..0137503d2e390aa338c0640edb66c8f7b9274310
|
| --- /dev/null
|
| +++ b/webrtc/rtc_base/arch.h
|
| @@ -0,0 +1,58 @@
|
| +/*
|
| + * Copyright (c) 2017 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.
|
| + */
|
| +
|
| +// This file contains platform-specific defines.
|
| +// Much of it is derived from Chromium's build/build_config.h.
|
| +
|
| +#ifndef WEBRTC_RTC_BASE_ARCH_H_
|
| +#define WEBRTC_RTC_BASE_ARCH_H_
|
| +
|
| +// Processor architecture detection. For more info on what's defined, see:
|
| +// http://msdn.microsoft.com/en-us/library/b0084kay.aspx
|
| +// http://www.agner.org/optimize/calling_conventions.pdf
|
| +// or with gcc, run: "echo | gcc -E -dM -"
|
| +#if defined(_M_X64) || defined(__x86_64__)
|
| +#define WEBRTC_ARCH_X86_FAMILY
|
| +#define WEBRTC_ARCH_X86_64
|
| +#define WEBRTC_ARCH_64_BITS
|
| +#define WEBRTC_ARCH_LITTLE_ENDIAN
|
| +#elif defined(__aarch64__)
|
| +#define WEBRTC_ARCH_ARM_FAMILY
|
| +#define WEBRTC_ARCH_64_BITS
|
| +#define WEBRTC_ARCH_LITTLE_ENDIAN
|
| +#elif defined(_M_IX86) || defined(__i386__)
|
| +#define WEBRTC_ARCH_X86_FAMILY
|
| +#define WEBRTC_ARCH_X86
|
| +#define WEBRTC_ARCH_32_BITS
|
| +#define WEBRTC_ARCH_LITTLE_ENDIAN
|
| +#elif defined(__ARMEL__)
|
| +#define WEBRTC_ARCH_ARM_FAMILY
|
| +#define WEBRTC_ARCH_32_BITS
|
| +#define WEBRTC_ARCH_LITTLE_ENDIAN
|
| +#elif defined(__MIPSEL__)
|
| +#define WEBRTC_ARCH_MIPS_FAMILY
|
| +#if defined(__LP64__)
|
| +#define WEBRTC_ARCH_64_BITS
|
| +#else
|
| +#define WEBRTC_ARCH_32_BITS
|
| +#endif
|
| +#define WEBRTC_ARCH_LITTLE_ENDIAN
|
| +#elif defined(__pnacl__)
|
| +#define WEBRTC_ARCH_32_BITS
|
| +#define WEBRTC_ARCH_LITTLE_ENDIAN
|
| +#else
|
| +#error Please add support for your architecture in rtc_base/arch.h
|
| +#endif
|
| +
|
| +#if !(defined(WEBRTC_ARCH_LITTLE_ENDIAN) ^ defined(WEBRTC_ARCH_BIG_ENDIAN))
|
| +#error Define either WEBRTC_ARCH_LITTLE_ENDIAN or WEBRTC_ARCH_BIG_ENDIAN
|
| +#endif
|
| +
|
| +#endif // WEBRTC_RTC_BASE_ARCH_H_
|
|
|