| Index: third_party/protobuf/config.h
|
| diff --git a/third_party/protobuf/config.h b/third_party/protobuf/config.h
|
| index dcc0041c2fe5847b509398f6e600b76c3e538555..dc4f1a4558125d933cd4e267a3e821081a99949d 100644
|
| --- a/third_party/protobuf/config.h
|
| +++ b/third_party/protobuf/config.h
|
| @@ -1,29 +1,69 @@
|
| +/* Modified for Chromium to support stlport and libc++ adaptively */
|
| /* config.h. Generated from config.h.in by configure. */
|
| /* config.h.in. Generated from configure.ac by autoheader. */
|
|
|
| -/* the name of <hash_set> */
|
| +/* We want to detect which header files to include for the unordered (hash)
|
| + collections standardized in C++11 but first introduced as part of TR1.
|
| + Specifically, we want to avoid including ext/ headers when using libc++ as
|
| + it will generate noisy build warnings.
|
| +
|
| + We take a several-tier approach. First, attempt to use clang's __has_include
|
| + and test for libc++'s configuration header. If that isn't available, include
|
| + <new> which will define libc++'s version macro (if using libc++).
|
| +
|
| + There are no really good alternative headers that do less work. For example,
|
| + ciso646 and cstdbool and commonly recommended, but they both have issues.
|
| + The first has side effects with MSVC, and the second does not exists on Apple
|
| + platforms (the system libstdc++ is too old).
|
| +
|
| + This dynamic check is necessary to allow using this normally dynamically
|
| + generated header with Chromium's many supported build configurations. It
|
| + should be expanded to import the right header on other platforms as
|
| + desired. */
|
| +
|
| +#if defined(__has_include)
|
| +#if __has_include(<__config>)
|
| +#include <__config>
|
| +#else // __has_include(<__config>)
|
| +#include <new>
|
| +#endif // __has_include(<__config>)
|
| +#endif // defined(__has_include)
|
| +
|
| +/* the name of <hash_map> */
|
| +#if defined(_LIBCPP_VERSION)
|
| +#define HASH_MAP_CLASS unordered_map
|
| +#else
|
| #define HASH_MAP_CLASS hash_map
|
| +#endif
|
|
|
| -/* the location of <hash_map> */
|
| +/* the location of <unordered_map> or <hash_map> */
|
| #if defined(USE_STLPORT)
|
| #define HASH_MAP_H <hash_map>
|
| +#elif defined(_LIBCPP_VERSION)
|
| +#define HASH_MAP_H <unordered_map>
|
| #else
|
| #define HASH_MAP_H <ext/hash_map>
|
| #endif
|
|
|
| /* the namespace of hash_map/hash_set */
|
| -#if defined(USE_STLPORT)
|
| +#if defined(USE_STLPORT) || defined(_LIBCPP_VERSION)
|
| #define HASH_NAMESPACE std
|
| #else
|
| #define HASH_NAMESPACE __gnu_cxx
|
| #endif
|
|
|
| /* the name of <hash_set> */
|
| +#if defined(_LIBCPP_VERSION)
|
| +#define HASH_SET_CLASS unordered_set
|
| +#else
|
| #define HASH_SET_CLASS hash_set
|
| +#endif
|
|
|
| -/* the location of <hash_set> */
|
| +/* the location of <unordered_set> or <hash_set> */
|
| #if defined(USE_STLPORT)
|
| #define HASH_SET_H <hash_set>
|
| +#elif defined(_LIBCPP_VERSION)
|
| +#define HASH_SET_H <unordered_set>
|
| #else
|
| #define HASH_SET_H <ext/hash_set>
|
| #endif
|
|
|