From 4eaff9e61e173079bcac644db18f5536cec12d8b Mon Sep 17 00:00:00 2001 From: Abseil Team Date: Thu, 29 Jun 2023 12:58:39 -0700 Subject: Support Qualcomm Hexagon DSP targets. PiperOrigin-RevId: 544438364 Change-Id: I22d461f2d0aa8638a0e640eebecdc7e5e2b49ea3 --- absl/base/config.h | 2 ++ absl/base/internal/sysinfo.cc | 8 +++++++- absl/base/internal/thread_identity.cc | 2 +- absl/debugging/internal/elf_mem_image.h | 2 +- absl/log/internal/conditions.h | 2 +- absl/log/internal/nullstream.h | 4 +++- 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 #else #include 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: -- cgit v1.2.3