summaryrefslogtreecommitdiff
path: root/src/include/openssl/base.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/openssl/base.h')
-rw-r--r--src/include/openssl/base.h29
1 files changed, 27 insertions, 2 deletions
diff --git a/src/include/openssl/base.h b/src/include/openssl/base.h
index aa1be1f7..d1349934 100644
--- a/src/include/openssl/base.h
+++ b/src/include/openssl/base.h
@@ -71,6 +71,10 @@
#include <openssl/is_boringssl.h>
#include <openssl/opensslconf.h>
+#if defined(BORINGSSL_PREFIX)
+#include <boringssl_prefix_symbols.h>
+#endif
+
#if defined(__cplusplus)
extern "C" {
#endif
@@ -227,9 +231,17 @@ extern "C" {
#endif
#if __has_feature(memory_sanitizer)
#define OPENSSL_MSAN
+#define OPENSSL_ASM_INCOMPATIBLE
#endif
#endif
+#if defined(OPENSSL_ASM_INCOMPATIBLE)
+#undef OPENSSL_ASM_INCOMPATIBLE
+#if !defined(OPENSSL_NO_ASM)
+#define OPENSSL_NO_ASM
+#endif
+#endif // OPENSSL_ASM_INCOMPATIBLE
+
// CRYPTO_THREADID is a dummy value.
typedef int CRYPTO_THREADID;
@@ -358,6 +370,18 @@ typedef void *OPENSSL_BLOCK;
#define BORINGSSL_NO_CXX
#endif
+#if defined(BORINGSSL_PREFIX)
+#define BSSL_NAMESPACE_BEGIN \
+ namespace bssl { \
+ inline namespace BORINGSSL_PREFIX {
+#define BSSL_NAMESPACE_END \
+ } \
+ }
+#else
+#define BSSL_NAMESPACE_BEGIN namespace bssl {
+#define BSSL_NAMESPACE_END }
+#endif
+
// MSVC doesn't set __cplusplus to 201103 to indicate C++11 support (see
// https://connect.microsoft.com/VisualStudio/feedback/details/763051/a-value-of-predefined-macro-cplusplus-is-still-199711l)
// so MSVC is just assumed to support C++11.
@@ -366,6 +390,7 @@ typedef void *OPENSSL_BLOCK;
#endif
#if !defined(BORINGSSL_NO_CXX)
+
extern "C++" {
#include <memory>
@@ -387,7 +412,7 @@ extern "C++" {
extern "C++" {
-namespace bssl {
+BSSL_NAMESPACE_BEGIN
namespace internal {
@@ -464,7 +489,7 @@ using UniquePtr = std::unique_ptr<T, internal::Deleter<T>>;
return UpRef(ptr.get()); \
}
-} // namespace bssl
+BSSL_NAMESPACE_END
} // extern C++