summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Abseil Team <absl-team@google.com>2023-06-29 12:58:39 -0700
committerGravatar Copybara-Service <copybara-worker@google.com>2023-06-29 12:59:30 -0700
commit4eaff9e61e173079bcac644db18f5536cec12d8b (patch)
tree8edd0196ad53c1a7d1d2806b9919d09f32b04a14
parent9402bd32fbb24f762f7923ece6afe131a5b57f35 (diff)
Support Qualcomm Hexagon DSP targets.
PiperOrigin-RevId: 544438364 Change-Id: I22d461f2d0aa8638a0e640eebecdc7e5e2b49ea3
-rw-r--r--absl/base/config.h2
-rw-r--r--absl/base/internal/sysinfo.cc8
-rw-r--r--absl/base/internal/thread_identity.cc2
-rw-r--r--absl/debugging/internal/elf_mem_image.h2
-rw-r--r--absl/log/internal/conditions.h2
-rw-r--r--absl/log/internal/nullstream.h4
6 files changed, 15 insertions, 5 deletions
diff --git a/absl/base/config.h b/absl/base/config.h
index 6d38d3f4..e6c9d0c2 100644
--- a/absl/base/config.h
+++ b/absl/base/config.h
@@ -487,6 +487,8 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] != 'h' ||
#elif defined(__Fuchsia__)
// Signals don't exist on fuchsia.
#elif defined(__native_client__)
+// Signals don't exist on hexagon/QuRT
+#elif defined(__hexagon__)
#else
// other standard libraries
#define ABSL_HAVE_ALARM 1
diff --git a/absl/base/internal/sysinfo.cc b/absl/base/internal/sysinfo.cc
index 605a11eb..8bcc4faf 100644
--- a/absl/base/internal/sysinfo.cc
+++ b/absl/base/internal/sysinfo.cc
@@ -190,7 +190,13 @@ static double GetNominalCPUFrequency() {
// and the memory location pointed to by value is set to the value read.
static bool ReadLongFromFile(const char *file, long *value) {
bool ret = false;
- int fd = open(file, O_RDONLY | O_CLOEXEC);
+#if defined(_POSIX_C_SOURCE)
+ const int file_mode = (O_RDONLY | O_CLOEXEC);
+#else
+ const int file_mode = O_RDONLY;
+#endif
+
+ int fd = open(file, file_mode);
if (fd != -1) {
char line[1024];
char *err;
diff --git a/absl/base/internal/thread_identity.cc b/absl/base/internal/thread_identity.cc
index 0eeb7d00..252443eb 100644
--- a/absl/base/internal/thread_identity.cc
+++ b/absl/base/internal/thread_identity.cc
@@ -80,7 +80,7 @@ void SetCurrentThreadIdentity(ThreadIdentity* identity,
absl::call_once(init_thread_identity_key_once, AllocateThreadIdentityKey,
reclaimer);
-#if defined(__EMSCRIPTEN__) || defined(__MINGW32__)
+#if defined(__EMSCRIPTEN__) || defined(__MINGW32__) || defined(__hexagon__)
// Emscripten and MinGW pthread implementations does not support signals.
// See https://kripken.github.io/emscripten-site/docs/porting/pthreads.html
// for more information.
diff --git a/absl/debugging/internal/elf_mem_image.h b/absl/debugging/internal/elf_mem_image.h
index 8d95d0ba..e7fe6ab0 100644
--- a/absl/debugging/internal/elf_mem_image.h
+++ b/absl/debugging/internal/elf_mem_image.h
@@ -34,7 +34,7 @@
#if defined(__ELF__) && !defined(__OpenBSD__) && !defined(__QNX__) && \
!defined(__native_client__) && !defined(__asmjs__) && \
!defined(__wasm__) && !defined(__HAIKU__) && !defined(__sun) && \
- !defined(__VXWORKS__)
+ !defined(__VXWORKS__) && !defined(__hexagon__)
#define ABSL_HAVE_ELF_MEM_IMAGE 1
#endif
diff --git a/absl/log/internal/conditions.h b/absl/log/internal/conditions.h
index b3ce2574..f576d650 100644
--- a/absl/log/internal/conditions.h
+++ b/absl/log/internal/conditions.h
@@ -23,7 +23,7 @@
#ifndef ABSL_LOG_INTERNAL_CONDITIONS_H_
#define ABSL_LOG_INTERNAL_CONDITIONS_H_
-#ifdef _WIN32
+#if defined(_WIN32) || defined(__hexagon__)
#include <cstdlib>
#else
#include <unistd.h>
diff --git a/absl/log/internal/nullstream.h b/absl/log/internal/nullstream.h
index 16f5f495..9266852e 100644
--- a/absl/log/internal/nullstream.h
+++ b/absl/log/internal/nullstream.h
@@ -102,7 +102,9 @@ class NullStreamMaybeFatal final : public NullStream {
explicit NullStreamMaybeFatal(absl::LogSeverity severity)
: fatal_(severity == absl::LogSeverity::kFatal) {}
~NullStreamMaybeFatal() {
- if (fatal_) _exit(1);
+ if (fatal_) {
+ _exit(1);
+ }
}
private: