aboutsummaryrefslogtreecommitdiff
path: root/external
diff options
context:
space:
mode:
Diffstat (limited to 'external')
-rw-r--r--external/CMakeLists.txt5
-rw-r--r--external/db_drivers/CMakeLists.txt3
-rw-r--r--external/easylogging++/easylogging++.cc27
-rw-r--r--external/easylogging++/easylogging++.h20
m---------external/miniupnp0
m---------external/rapidjson0
m---------external/trezor-common0
m---------external/unbound0
8 files changed, 44 insertions, 11 deletions
diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt
index 1fc4d64c1..7553f87ea 100644
--- a/external/CMakeLists.txt
+++ b/external/CMakeLists.txt
@@ -38,15 +38,16 @@
find_package(Miniupnpc REQUIRED)
message(STATUS "Using in-tree miniupnpc")
-
add_subdirectory(miniupnp/miniupnpc)
-
set_property(TARGET libminiupnpc-static PROPERTY FOLDER "external")
if(MSVC)
set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -wd4244 -wd4267")
elseif(NOT MSVC)
set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-undef -Wno-unused-result -Wno-unused-value")
endif()
+if(CMAKE_SYSTEM_NAME MATCHES "NetBSD")
+ set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -D_NETBSD_SOURCE")
+endif()
set(UPNP_LIBRARIES "libminiupnpc-static" PARENT_SCOPE)
diff --git a/external/db_drivers/CMakeLists.txt b/external/db_drivers/CMakeLists.txt
index 13f70aa40..d537ec029 100644
--- a/external/db_drivers/CMakeLists.txt
+++ b/external/db_drivers/CMakeLists.txt
@@ -32,3 +32,6 @@ message(STATUS "Using ${ARCH_WIDTH}-bit LMDB from source tree")
add_subdirectory(liblmdb)
set(LMDB_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/liblmdb" CACHE STRING "LMDB Include path")
set(LMDB_LIBRARY "lmdb" CACHE STRING "LMDB Library name")
+if(CMAKE_SYSTEM_NAME MATCHES "NetBSD")
+ set_property(TARGET lmdb APPEND_STRING PROPERTY COMPILE_FLAGS " -D_SEM_SEMUN_UNDEFINED")
+endif()
diff --git a/external/easylogging++/easylogging++.cc b/external/easylogging++/easylogging++.cc
index 212a1822d..a4bdad4cf 100644
--- a/external/easylogging++/easylogging++.cc
+++ b/external/easylogging++/easylogging++.cc
@@ -1967,17 +1967,19 @@ void VRegistry::setCategories(const char* categories, bool clear) {
base::threading::ScopedLock scopedLock(lock());
auto insert = [&](std::stringstream& ss, Level level) {
m_categories.push_back(std::make_pair(ss.str(), level));
+ m_cached_allowed_categories.clear();
};
if (clear) {
m_categories.clear();
+ m_cached_allowed_categories.clear();
m_categoriesString.clear();
}
+ if (!categories)
+ return;
if (!m_categoriesString.empty())
m_categoriesString += ",";
m_categoriesString += categories;
- if (!categories)
- return;
bool isCat = true;
bool isLevel = false;
@@ -2033,15 +2035,22 @@ static int priority(Level level) {
bool VRegistry::allowed(Level level, const char* category) {
base::threading::ScopedLock scopedLock(lock());
+ const std::string scategory = category;
+ const std::map<std::string, int>::const_iterator it = m_cached_allowed_categories.find(scategory);
+ if (it != m_cached_allowed_categories.end())
+ return priority(level) <= it->second;
if (m_categories.empty() || category == nullptr) {
return false;
} else {
std::deque<std::pair<std::string, Level>>::const_reverse_iterator it = m_categories.rbegin();
for (; it != m_categories.rend(); ++it) {
if (base::utils::Str::wildCardMatch(category, it->first.c_str())) {
- return priority(level) <= priority(it->second);
+ const int p = priority(it->second);
+ m_cached_allowed_categories.insert(std::make_pair(std::move(scategory), p));
+ return priority(level) <= p;
}
}
+ m_cached_allowed_categories.insert(std::make_pair(std::move(scategory), -1));
return false;
}
}
@@ -2083,6 +2092,17 @@ void VRegistry::setFromArgs(const base::utils::CommandLineArgs* commandLineArgs)
# define ELPP_DEFAULT_LOGGING_FLAGS 0x0
#endif // !defined(ELPP_DEFAULT_LOGGING_FLAGS)
// Storage
+el::base::type::StoragePointer getresetELPP(bool reset)
+{
+ static el::base::type::StoragePointer p(new el::base::Storage(el::LogBuilderPtr(new el::base::DefaultLogBuilder())));
+ if (reset)
+ p = NULL;
+ return p;
+}
+el::base::type::StoragePointer el::base::Storage::getELPP()
+{
+ return getresetELPP(false);
+}
#if ELPP_ASYNC_LOGGING
Storage::Storage(const LogBuilderPtr& defaultLogBuilder, base::IWorker* asyncDispatchWorker) :
#else
@@ -2131,6 +2151,7 @@ Storage::Storage(const LogBuilderPtr& defaultLogBuilder) :
Storage::~Storage(void) {
ELPP_INTERNAL_INFO(4, "Destroying storage");
+ getresetELPP(true);
#if ELPP_ASYNC_LOGGING
ELPP_INTERNAL_INFO(5, "Replacing log dispatch callback to synchronous");
uninstallLogDispatchCallback<base::AsyncLogDispatchCallback>(std::string("AsyncLogDispatchCallback"));
diff --git a/external/easylogging++/easylogging++.h b/external/easylogging++/easylogging++.h
index 3270bd607..8e8b7094b 100644
--- a/external/easylogging++/easylogging++.h
+++ b/external/easylogging++/easylogging++.h
@@ -104,6 +104,11 @@
#else
# define ELPP_OS_OPENBSD 0
#endif
+#if (defined(__NetBSD__))
+# define ELPP_OS_NETBSD 1
+#else
+# define ELPP_OS_NETBSD 0
+#endif
#if (defined(__sun))
# define ELPP_OS_SOLARIS 1
#else
@@ -115,7 +120,7 @@
# define ELPP_OS_DRAGONFLY 0
#endif
// Unix
-#if ((ELPP_OS_LINUX || ELPP_OS_MAC || ELPP_OS_FREEBSD || ELPP_OS_SOLARIS || ELPP_OS_DRAGONFLY || ELPP_OS_OPENBSD) && (!ELPP_OS_WINDOWS))
+#if ((ELPP_OS_LINUX || ELPP_OS_MAC || ELPP_OS_FREEBSD || ELPP_OS_SOLARIS || ELPP_OS_DRAGONFLY || ELPP_OS_OPENBSD || ELPP_OS_NETBSD ) && (!ELPP_OS_WINDOWS))
# define ELPP_OS_UNIX 1
#else
# define ELPP_OS_UNIX 0
@@ -200,7 +205,7 @@ ELPP_INTERNAL_DEBUGGING_OUT_INFO << ELPP_INTERNAL_DEBUGGING_MSG(internalInfoStre
# define ELPP_INTERNAL_INFO(lvl, msg)
#endif // (defined(ELPP_DEBUG_INFO))
#if (defined(ELPP_FEATURE_ALL)) || (defined(ELPP_FEATURE_CRASH_LOG))
-# if (ELPP_COMPILER_GCC && !ELPP_MINGW && !ELPP_OS_OPENBSD)
+# if (ELPP_COMPILER_GCC && !ELPP_MINGW && !ELPP_OS_OPENBSD && !ELPP_OS_NETBSD)
# define ELPP_STACKTRACE 1
# else
# define ELPP_STACKTRACE 0
@@ -2485,6 +2490,7 @@ class VRegistry : base::NoCopy, public base::threading::ThreadSafe {
inline void clearCategories(void) {
base::threading::ScopedLock scopedLock(lock());
m_categories.clear();
+ m_cached_allowed_categories.clear();
}
inline void clearModules(void) {
@@ -2526,6 +2532,7 @@ class VRegistry : base::NoCopy, public base::threading::ThreadSafe {
base::type::EnumType* m_pFlags;
std::map<std::string, base::type::VerboseLevel> m_modules;
std::deque<std::pair<std::string, Level>> m_categories;
+ std::map<std::string, int> m_cached_allowed_categories;
std::string m_categoriesString;
std::string m_filenameCommonPrefix;
};
@@ -2764,6 +2771,8 @@ class Storage : base::NoCopy, public base::threading::ThreadSafe {
return it->second;
}
+ static el::base::type::StoragePointer getELPP();
+
private:
base::RegisteredHitCounters* m_registeredHitCounters;
base::RegisteredLoggers* m_registeredLoggers;
@@ -2796,7 +2805,7 @@ class Storage : base::NoCopy, public base::threading::ThreadSafe {
}
};
extern ELPP_EXPORT base::type::StoragePointer elStorage;
-#define ELPP el::base::elStorage
+#define ELPP el::base::Storage::getELPP()
class DefaultLogDispatchCallback : public LogDispatchCallback {
protected:
void handle(const LogDispatchData* data);
@@ -4626,10 +4635,9 @@ el::base::debug::CrashHandler elCrashHandler(ELPP_USE_DEF_CRASH_HANDLER); \
}
#if ELPP_ASYNC_LOGGING
-# define INITIALIZE_EASYLOGGINGPP ELPP_INIT_EASYLOGGINGPP(new el::base::Storage(el::LogBuilderPtr(new el::base::DefaultLogBuilder()),\
-new el::base::AsyncDispatchWorker()))
+# define INITIALIZE_EASYLOGGINGPP ELPP_INIT_EASYLOGGINGPP(NULL)
#else
-# define INITIALIZE_EASYLOGGINGPP ELPP_INIT_EASYLOGGINGPP(new el::base::Storage(el::LogBuilderPtr(new el::base::DefaultLogBuilder())))
+# define INITIALIZE_EASYLOGGINGPP ELPP_INIT_EASYLOGGINGPP(NULL)
#endif // ELPP_ASYNC_LOGGING
#define INITIALIZE_NULL_EASYLOGGINGPP \
namespace el {\
diff --git a/external/miniupnp b/external/miniupnp
-Subproject 6a63f9954959119568fbc4af57d7b491b9428d8
+Subproject 6b9b73a567e351b844f96c077f7b752ea92e298
diff --git a/external/rapidjson b/external/rapidjson
-Subproject af223d44f4e8d3772cb1ac0ce8bc2a132b51717
+Subproject 129d19ba7f496df5e33658527a7158c79b99c21
diff --git a/external/trezor-common b/external/trezor-common
new file mode 160000
+Subproject 588f8e03f5ac111adf719f0a437de67481a26ae
diff --git a/external/unbound b/external/unbound
-Subproject 193bdc4ee3fe2b0d17e547e86512528c2614483
+Subproject 7f23967954736dcaa366806b9eaba7e2bdfede1