package/glog: fix build without threads
Fixes: - http://autobuild.buildroot.net/results/5320bbe1205e782e3516d9bead8d1ed825bcbaad Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
This commit is contained in:
parent
797736770f
commit
314396b095
|
@ -0,0 +1,81 @@
|
|||
From 5a1857a2b537a95234a6ad40bc382e6e75de45de Mon Sep 17 00:00:00 2001
|
||||
From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
||||
Date: Tue, 29 Oct 2019 13:52:34 +0100
|
||||
Subject: [PATCH] src/utilities: fix build without pthread
|
||||
|
||||
Fixes:
|
||||
- http://autobuild.buildroot.net/results/5320bbe1205e782e3516d9bead8d1ed825bcbaad
|
||||
|
||||
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
||||
[Upstream status: not sent yet]
|
||||
---
|
||||
src/utilities.cc | 8 +++++++-
|
||||
src/utilities.h | 2 ++
|
||||
2 files changed, 9 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/utilities.cc b/src/utilities.cc
|
||||
index 6562a54..8ad0319 100644
|
||||
--- a/src/utilities.cc
|
||||
+++ b/src/utilities.cc
|
||||
@@ -61,7 +61,9 @@ using std::string;
|
||||
_START_GOOGLE_NAMESPACE_
|
||||
|
||||
static const char* g_program_invocation_short_name = NULL;
|
||||
+#ifdef HAVE_PTHREAD
|
||||
static pthread_t g_main_thread_id;
|
||||
+#endif
|
||||
|
||||
_END_GOOGLE_NAMESPACE_
|
||||
|
||||
@@ -181,6 +183,7 @@ bool IsGoogleLoggingInitialized() {
|
||||
return g_program_invocation_short_name != NULL;
|
||||
}
|
||||
|
||||
+#ifdef HAVE_PTRHEAD
|
||||
bool is_default_thread() {
|
||||
if (g_program_invocation_short_name == NULL) {
|
||||
// InitGoogleLogging() not yet called, so unlikely to be in a different
|
||||
@@ -190,6 +193,7 @@ bool is_default_thread() {
|
||||
return pthread_equal(pthread_self(), g_main_thread_id);
|
||||
}
|
||||
}
|
||||
+#endif
|
||||
|
||||
#ifdef OS_WINDOWS
|
||||
struct timeval {
|
||||
@@ -276,7 +280,7 @@ pid_t GetTID() {
|
||||
return getpid(); // Linux: getpid returns thread ID when gettid is absent
|
||||
#elif defined OS_WINDOWS && !defined OS_CYGWIN
|
||||
return GetCurrentThreadId();
|
||||
-#else
|
||||
+#elif HAVE_PTHREAD
|
||||
// If none of the techniques above worked, we use pthread_self().
|
||||
return (pid_t)(uintptr_t)pthread_self();
|
||||
#endif
|
||||
@@ -350,7 +354,9 @@ void InitGoogleLoggingUtilities(const char* argv0) {
|
||||
if (!slash) slash = strrchr(argv0, '\\');
|
||||
#endif
|
||||
g_program_invocation_short_name = slash ? slash + 1 : argv0;
|
||||
+#ifdef HAVE_PTHREAD
|
||||
g_main_thread_id = pthread_self();
|
||||
+#endif
|
||||
|
||||
#ifdef HAVE_STACKTRACE
|
||||
InstallFailureFunction(&DumpStackTraceAndExit);
|
||||
diff --git a/src/utilities.h b/src/utilities.h
|
||||
index ca21cfb..af969d3 100644
|
||||
--- a/src/utilities.h
|
||||
+++ b/src/utilities.h
|
||||
@@ -163,7 +163,9 @@ const char* ProgramInvocationShortName();
|
||||
|
||||
bool IsGoogleLoggingInitialized();
|
||||
|
||||
+#ifdef HAVE_PTHREAD
|
||||
bool is_default_thread();
|
||||
+#endif
|
||||
|
||||
int64 CycleClock_Now();
|
||||
|
||||
--
|
||||
2.23.0
|
||||
|
Loading…
Reference in a new issue