Mercurial > hg > vamp-build-and-test
comparison DEPENDENCIES/generic/include/boost/predef/other/endian.h @ 101:c530137014c0
Update Boost headers (1.58.0)
author | Chris Cannam |
---|---|
date | Mon, 07 Sep 2015 11:12:49 +0100 |
parents | 2665513ce2d3 |
children |
comparison
equal
deleted
inserted
replaced
100:793467b5e61c | 101:c530137014c0 |
---|---|
1 /* | 1 /* |
2 Copyright Redshift Software, Inc. 2013 | 2 Copyright Rene Rivera 2013-2014 |
3 Distributed under the Boost Software License, Version 1.0. | 3 Distributed under the Boost Software License, Version 1.0. |
4 (See accompanying file LICENSE_1_0.txt or copy at | 4 (See accompanying file LICENSE_1_0.txt or copy at |
5 http://www.boost.org/LICENSE_1_0.txt) | 5 http://www.boost.org/LICENSE_1_0.txt) |
6 */ | 6 */ |
7 | 7 |
11 #include <boost/predef/version_number.h> | 11 #include <boost/predef/version_number.h> |
12 #include <boost/predef/make.h> | 12 #include <boost/predef/make.h> |
13 #include <boost/predef/library/c/gnu.h> | 13 #include <boost/predef/library/c/gnu.h> |
14 #include <boost/predef/os/macos.h> | 14 #include <boost/predef/os/macos.h> |
15 #include <boost/predef/os/bsd.h> | 15 #include <boost/predef/os/bsd.h> |
16 #include <boost/predef/os/android.h> | |
16 | 17 |
17 /*` | 18 /*` |
18 [heading `BOOST_ENDIAN_*`] | 19 [heading `BOOST_ENDIAN_*`] |
19 | 20 |
20 Detection of endian memory ordering. There are four defined macros | 21 Detection of endian memory ordering. There are four defined macros |
51 /* GNU libc provides a header defining __BYTE_ORDER, or _BYTE_ORDER. | 52 /* GNU libc provides a header defining __BYTE_ORDER, or _BYTE_ORDER. |
52 * And some OSs provide some for of endian header also. | 53 * And some OSs provide some for of endian header also. |
53 */ | 54 */ |
54 #if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \ | 55 #if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \ |
55 !BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD | 56 !BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD |
56 # if BOOST_LIB_C_GNU | 57 # if BOOST_LIB_C_GNU || BOOST_OS_ANDROID |
57 # include <endian.h> | 58 # include <endian.h> |
58 # else | 59 # else |
59 # if BOOST_OS_MACOS | 60 # if BOOST_OS_MACOS |
60 # include <machine/endian.h> | 61 # include <machine/endian.h> |
61 # else | 62 # else |
67 # endif | 68 # endif |
68 # endif | 69 # endif |
69 # endif | 70 # endif |
70 # endif | 71 # endif |
71 # if defined(__BYTE_ORDER) | 72 # if defined(__BYTE_ORDER) |
72 # if (__BYTE_ORDER == __BIG_ENDIAN) | 73 # if defined(__BIG_ENDIAN) && (__BYTE_ORDER == __BIG_ENDIAN) |
73 # undef BOOST_ENDIAN_BIG_BYTE | 74 # undef BOOST_ENDIAN_BIG_BYTE |
74 # define BOOST_ENDIAN_BIG_BYTE BOOST_VERSION_NUMBER_AVAILABLE | 75 # define BOOST_ENDIAN_BIG_BYTE BOOST_VERSION_NUMBER_AVAILABLE |
75 # endif | 76 # endif |
76 # if (__BYTE_ORDER == __LITTLE_ENDIAN) | 77 # if defined(__LITTLE_ENDIAN) && (__BYTE_ORDER == __LITTLE_ENDIAN) |
77 # undef BOOST_ENDIAN_LITTLE_BYTE | 78 # undef BOOST_ENDIAN_LITTLE_BYTE |
78 # define BOOST_ENDIAN_LITTLE_BYTE BOOST_VERSION_NUMBER_AVAILABLE | 79 # define BOOST_ENDIAN_LITTLE_BYTE BOOST_VERSION_NUMBER_AVAILABLE |
79 # endif | 80 # endif |
80 # if (__BYTE_ORDER == __PDP_ENDIAN) | 81 # if defined(__PDP_ENDIAN) && (__BYTE_ORDER == __PDP_ENDIAN) |
81 # undef BOOST_ENDIAN_LITTLE_WORD | 82 # undef BOOST_ENDIAN_LITTLE_WORD |
82 # define BOOST_ENDIAN_LITTLE_WORD BOOST_VERSION_NUMBER_AVAILABLE | 83 # define BOOST_ENDIAN_LITTLE_WORD BOOST_VERSION_NUMBER_AVAILABLE |
83 # endif | 84 # endif |
84 # endif | 85 # endif |
85 # if !defined(__BYTE_ORDER) && defined(_BYTE_ORDER) | 86 # if !defined(__BYTE_ORDER) && defined(_BYTE_ORDER) |
86 # if (_BYTE_ORDER == _BIG_ENDIAN) | 87 # if defined(_BIG_ENDIAN) && (_BYTE_ORDER == _BIG_ENDIAN) |
87 # undef BOOST_ENDIAN_BIG_BYTE | 88 # undef BOOST_ENDIAN_BIG_BYTE |
88 # define BOOST_ENDIAN_BIG_BYTE BOOST_VERSION_NUMBER_AVAILABLE | 89 # define BOOST_ENDIAN_BIG_BYTE BOOST_VERSION_NUMBER_AVAILABLE |
89 # endif | 90 # endif |
90 # if (_BYTE_ORDER == _LITTLE_ENDIAN) | 91 # if defined(_LITTLE_ENDIAN) && (_BYTE_ORDER == _LITTLE_ENDIAN) |
91 # undef BOOST_ENDIAN_LITTLE_BYTE | 92 # undef BOOST_ENDIAN_LITTLE_BYTE |
92 # define BOOST_ENDIAN_LITTLE_BYTE BOOST_VERSION_NUMBER_AVAILABLE | 93 # define BOOST_ENDIAN_LITTLE_BYTE BOOST_VERSION_NUMBER_AVAILABLE |
93 # endif | 94 # endif |
94 # if (_BYTE_ORDER == _PDP_ENDIAN) | 95 # if defined(_PDP_ENDIAN) && (_BYTE_ORDER == _PDP_ENDIAN) |
95 # undef BOOST_ENDIAN_LITTLE_WORD | 96 # undef BOOST_ENDIAN_LITTLE_WORD |
96 # define BOOST_ENDIAN_LITTLE_WORD BOOST_VERSION_NUMBER_AVAILABLE | 97 # define BOOST_ENDIAN_LITTLE_WORD BOOST_VERSION_NUMBER_AVAILABLE |
97 # endif | 98 # endif |
98 # endif | 99 # endif |
99 #endif | 100 #endif |
100 | 101 |
101 /* Built-in byte-swpped big-endian macros. | 102 /* Built-in byte-swpped big-endian macros. |
102 */ | 103 */ |
103 #if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \ | 104 #if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \ |
104 !BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD | 105 !BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD |
105 # if !BOOST_ENDIAN_BIG_BYTE | 106 # if (defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__)) || \ |
106 # if (defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__)) || \ | 107 (defined(_BIG_ENDIAN) && !defined(_LITTLE_ENDIAN)) || \ |
107 defined(__ARMEB__) || \ | 108 defined(__ARMEB__) || \ |
108 defined(__THUMBEB__) || \ | 109 defined(__THUMBEB__) || \ |
109 defined(__AARCH64EB__) || \ | 110 defined(__AARCH64EB__) || \ |
110 defined(_MIPSEB) || \ | 111 defined(_MIPSEB) || \ |
111 defined(__MIPSEB) || \ | 112 defined(__MIPSEB) || \ |
112 defined(__MIPSEB__) | 113 defined(__MIPSEB__) |
113 # undef BOOST_ENDIAN_BIG_BYTE | 114 # undef BOOST_ENDIAN_BIG_BYTE |
114 # define BOOST_ENDIAN_BIG_BYTE BOOST_VERSION_NUMBER_AVAILABLE | 115 # define BOOST_ENDIAN_BIG_BYTE BOOST_VERSION_NUMBER_AVAILABLE |
115 # endif | |
116 # endif | 116 # endif |
117 #endif | 117 #endif |
118 | 118 |
119 /* Built-in byte-swpped little-endian macros. | 119 /* Built-in byte-swpped little-endian macros. |
120 */ | 120 */ |
121 #if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \ | 121 #if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \ |
122 !BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD | 122 !BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD |
123 # if !BOOST_ENDIAN_LITTLE_BYTE | 123 # if (defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__)) || \ |
124 # if (defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__)) || \ | 124 (defined(_LITTLE_ENDIAN) && !defined(_BIG_ENDIAN)) || \ |
125 defined(__ARMEL__) || \ | 125 defined(__ARMEL__) || \ |
126 defined(__THUMBEL__) || \ | 126 defined(__THUMBEL__) || \ |
127 defined(__AARCH64EL__) || \ | 127 defined(__AARCH64EL__) || \ |
128 defined(_MIPSEL) || \ | 128 defined(_MIPSEL) || \ |
129 defined(__MIPSEL) || \ | 129 defined(__MIPSEL) || \ |
130 defined(__MIPSEL__) | 130 defined(__MIPSEL__) |
131 # undef BOOST_ENDIAN_LITTLE_BYTE | 131 # undef BOOST_ENDIAN_LITTLE_BYTE |
132 # define BOOST_ENDIAN_LITTLE_BYTE BOOST_VERSION_NUMBER_AVAILABLE | 132 # define BOOST_ENDIAN_LITTLE_BYTE BOOST_VERSION_NUMBER_AVAILABLE |
133 # endif | |
134 # endif | 133 # endif |
135 #endif | 134 #endif |
136 | 135 |
137 /* Some architectures are strictly one endianess (as opposed | 136 /* Some architectures are strictly one endianess (as opposed |
138 * the current common bi-endianess). | 137 * the current common bi-endianess). |
140 #if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \ | 139 #if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \ |
141 !BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD | 140 !BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD |
142 # include <boost/predef/architecture.h> | 141 # include <boost/predef/architecture.h> |
143 # if BOOST_ARCH_M68K || \ | 142 # if BOOST_ARCH_M68K || \ |
144 BOOST_ARCH_PARISK || \ | 143 BOOST_ARCH_PARISK || \ |
144 BOOST_ARCH_SPARC || \ | |
145 BOOST_ARCH_SYS370 || \ | 145 BOOST_ARCH_SYS370 || \ |
146 BOOST_ARCH_SYS390 || \ | 146 BOOST_ARCH_SYS390 || \ |
147 BOOST_ARCH_Z | 147 BOOST_ARCH_Z |
148 # undef BOOST_ENDIAN_BIG_BYTE | 148 # undef BOOST_ENDIAN_BIG_BYTE |
149 # define BOOST_ENDIAN_BIG_BYTE BOOST_VERSION_NUMBER_AVAILABLE | 149 # define BOOST_ENDIAN_BIG_BYTE BOOST_VERSION_NUMBER_AVAILABLE |