1 Star 0 Fork 49

lixing/third_party_abseil-cpp_04082

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
adapter-ohos.patch 9.88 KB
一键复制 编辑 原始数据 按行查看 历史
lixing 提交于 2025-04-08 11:05 +08:00 . 差异同步
diff --git a/CMake/AbseilDll.cmake b/CMake/AbseilDll.cmake
index f0d984a..875517b 100644
--- a/CMake/AbseilDll.cmake
+++ b/CMake/AbseilDll.cmake
@@ -624,24 +624,7 @@ set(ABSL_INTERNAL_TEST_DLL_TARGETS
include(CheckCXXSourceCompiles)
-check_cxx_source_compiles(
- [==[
-#ifdef _MSC_VER
-# if _MSVC_LANG < 201700L
-# error "The compiler defaults or is configured for C++ < 17"
-# endif
-#elif __cplusplus < 201700L
-# error "The compiler defaults or is configured for C++ < 17"
-#endif
-int main() { return 0; }
-]==]
- ABSL_INTERNAL_AT_LEAST_CXX17)
-
-if(ABSL_INTERNAL_AT_LEAST_CXX17)
- set(ABSL_INTERNAL_CXX_STD_FEATURE cxx_std_17)
-else()
- set(ABSL_INTERNAL_CXX_STD_FEATURE cxx_std_14)
-endif()
+set(ABSL_INTERNAL_CXX_STD_FEATURE cxx_std_14)
function(absl_internal_dll_contains)
cmake_parse_arguments(ABSL_INTERNAL_DLL
diff --git a/absl/base/internal/low_level_alloc.cc b/absl/base/internal/low_level_alloc.cc
index 6d2cfea..9adbedb 100644
--- a/absl/base/internal/low_level_alloc.cc
+++ b/absl/base/internal/low_level_alloc.cc
@@ -42,10 +42,6 @@
#include <windows.h>
#endif
-#ifdef __linux__
-#include <sys/prctl.h>
-#endif
-
#include <string.h>
#include <algorithm>
@@ -569,18 +565,6 @@ static void *DoAllocWithArena(size_t request, LowLevelAlloc::Arena *arena) {
ABSL_RAW_LOG(FATAL, "mmap error: %d", errno);
}
-#ifdef __linux__
-#if defined(PR_SET_VMA) && defined(PR_SET_VMA_ANON_NAME)
- // Attempt to name the allocated address range in /proc/$PID/smaps on
- // Linux.
- //
- // This invocation of prctl() may fail if the Linux kernel was not
- // configured with the CONFIG_ANON_VMA_NAME option. This is OK since
- // the naming of arenas is primarily a debugging aid.
- prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, new_pages, new_pages_size,
- "absl");
-#endif
-#endif // __linux__
#endif // _WIN32
arena->mu.Lock();
s = reinterpret_cast<AllocList *>(new_pages);
diff --git a/absl/debugging/internal/elf_mem_image.h b/absl/debugging/internal/elf_mem_image.h
index e7fe6ab..09ada21 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(__hexagon__)
+ !defined(__VXWORKS__) && !defined(__hexagon__) && !defined(__OHOS__)
#define ABSL_HAVE_ELF_MEM_IMAGE 1
#endif
diff --git a/absl/debugging/internal/stacktrace_config.h b/absl/debugging/internal/stacktrace_config.h
index 3929b1b..83bc8ee 100644
--- a/absl/debugging/internal/stacktrace_config.h
+++ b/absl/debugging/internal/stacktrace_config.h
@@ -26,6 +26,10 @@
#if defined(ABSL_STACKTRACE_INL_HEADER)
#error ABSL_STACKTRACE_INL_HEADER cannot be directly set
+#elif defined(__OHOS__)
+#define ABSL_STACKTRACE_INL_HEADER \
+ "absl/debugging/internal/stacktrace_unimplemented-inl.inc"
+
#elif defined(_WIN32)
#define ABSL_STACKTRACE_INL_HEADER \
"absl/debugging/internal/stacktrace_win32-inl.inc"
diff --git a/absl/debugging/failure_signal_handler.cc b/absl/debugging/failure_signal_handler.cc
index 992c89c..dcfa752 100644
--- a/absl/debugging/failure_signal_handler.cc
+++ b/absl/debugging/failure_signal_handler.cc
@@ -36,7 +36,7 @@
#endif
#endif
-#ifdef __linux__
+#if defined __linux__ && !defined(__OHOS__)
#include <sys/prctl.h>
#endif
@@ -177,7 +177,7 @@ static bool SetupAlternateStackOnce() {
ABSL_RAW_LOG(FATAL, "sigaltstack() failed with errno=%d", errno);
}
-#ifdef __linux__
+#if defined __linux__ && !defined(__OHOS__)
#if defined(PR_SET_VMA) && defined(PR_SET_VMA_ANON_NAME)
// Make a best-effort attempt to name the allocated region in
// /proc/$PID/smaps.
diff --git a/absl/debugging/internal/examine_stack.cc b/absl/debugging/internal/examine_stack.cc
index c2bab71..0fdd4b9 100644
--- a/absl/debugging/internal/examine_stack.cc
+++ b/absl/debugging/internal/examine_stack.cc
@@ -33,7 +33,9 @@
#include <sys/ucontext.h>
#endif
+#if !defined(__OHOS__)
#include <csignal>
+#endif
#include <cstdio>
#include "absl/base/attributes.h"
@@ -155,6 +157,7 @@ SymbolizeUrlEmitter GetDebugStackTraceHook() { return debug_stack_trace_hook; }
// unknown. vuc is a ucontext_t*. We use void* to avoid the use of
// ucontext_t on non-POSIX systems.
void* GetProgramCounter(void* const vuc) {
+#if !defined(__OHOS__)
#ifdef __linux__
if (vuc != nullptr) {
ucontext_t* context = reinterpret_cast<ucontext_t*>(vuc);
@@ -233,7 +236,8 @@ void* GetProgramCounter(void* const vuc) {
return reinterpret_cast<void*>(get_user_ctx_pc(ctx));
#endif
static_cast<void>(vuc);
- return nullptr;
+#endif
+return nullptr;
}
void DumpPCAndFrameSizesAndStackTrace(void* const pc, void* const stack[],
diff --git a/absl/crc/internal/cpu_detect.cc b/absl/crc/internal/cpu_detect.cc
index 8383808..0f0fd22 100644
--- a/absl/crc/internal/cpu_detect.cc
+++ b/absl/crc/internal/cpu_detect.cc
@@ -19,7 +19,7 @@
#include "absl/base/config.h"
-#if defined(__aarch64__) && defined(__linux__)
+#if defined(__aarch64__) && defined(__linux__) && !defined(__OHOS__)
#include <asm/hwcap.h>
#include <sys/auxv.h>
#endif
@@ -215,7 +215,7 @@ CpuType GetCpuType() {
bool SupportsArmCRC32PMULL() { return false; }
-#elif defined(__aarch64__) && defined(__linux__)
+#elif defined(__aarch64__) && defined(__linux__) && !defined(__OHOS__)
#ifndef HWCAP_CPUID
#define HWCAP_CPUID (1 << 11)
diff --git a/CMake/AbseilDll.cmake b/CMake/AbseilDll.cmake
index 875517b..9e39aea 100644
--- a/CMake/AbseilDll.cmake
+++ b/CMake/AbseilDll.cmake
@@ -788,12 +788,12 @@ Cflags: -I\${includedir}${PC_CFLAGS}\n")
${_dll_consume}
)
- if(ABSL_PROPAGATE_CXX_STD)
+ # if(ABSL_PROPAGATE_CXX_STD)
# Abseil libraries require C++14 as the current minimum standard. When
# compiled with C++17 (either because it is the compiler's default or
# explicitly requested), then Abseil requires C++17.
target_compile_features(${_dll} PUBLIC ${ABSL_INTERNAL_CXX_STD_FEATURE})
- endif()
+ # endif()
install(TARGETS ${_dll} EXPORT ${PROJECT_NAME}Targets
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
diff --git a/CMake/AbseilHelpers.cmake b/CMake/AbseilHelpers.cmake
index 3bd33ce..1deea98 100644
--- a/CMake/AbseilHelpers.cmake
+++ b/CMake/AbseilHelpers.cmake
@@ -285,12 +285,12 @@ Cflags: -I\${includedir}${PC_CFLAGS}\n")
set_property(TARGET ${_NAME} PROPERTY FOLDER ${ABSL_IDE_FOLDER}/internal)
endif()
- if(ABSL_PROPAGATE_CXX_STD)
+ # if(ABSL_PROPAGATE_CXX_STD)
# Abseil libraries require C++14 as the current minimum standard. When
# compiled with C++17 (either because it is the compiler's default or
# explicitly requested), then Abseil requires C++17.
target_compile_features(${_NAME} PUBLIC ${ABSL_INTERNAL_CXX_STD_FEATURE})
- endif()
+ # endif()
# When being installed, we lose the absl_ prefix. We want to put it back
# to have properly named lib files. This is a no-op when we are not being
@@ -322,12 +322,12 @@ Cflags: -I\${includedir}${PC_CFLAGS}\n")
)
target_compile_definitions(${_NAME} INTERFACE ${ABSL_CC_LIB_DEFINES})
- if(ABSL_PROPAGATE_CXX_STD)
+ # if(ABSL_PROPAGATE_CXX_STD)
# Abseil libraries require C++14 as the current minimum standard.
# Top-level application CMake projects should ensure a consistent C++
# standard for all compiled sources by setting CMAKE_CXX_STANDARD.
target_compile_features(${_NAME} INTERFACE ${ABSL_INTERNAL_CXX_STD_FEATURE})
- endif()
+ # endif()
endif()
if(ABSL_ENABLE_INSTALL)
@@ -434,12 +434,12 @@ function(absl_cc_test)
# Add all Abseil targets to a folder in the IDE for organization.
set_property(TARGET ${_NAME} PROPERTY FOLDER ${ABSL_IDE_FOLDER}/test)
- if(ABSL_PROPAGATE_CXX_STD)
+ # if(ABSL_PROPAGATE_CXX_STD)
# Abseil libraries require C++14 as the current minimum standard.
# Top-level application CMake projects should ensure a consistent C++
# standard for all compiled sources by setting CMAKE_CXX_STANDARD.
target_compile_features(${_NAME} PUBLIC ${ABSL_INTERNAL_CXX_STD_FEATURE})
- endif()
+ # endif()
add_test(NAME ${_NAME} COMMAND ${_NAME})
endfunction()
diff --git a/absl/debugging/internal/examine_stack.cc b/absl/debugging/internal/examine_stack.cc
index 68c33d4..24d9727 100644
--- a/absl/debugging/internal/examine_stack.cc
+++ b/absl/debugging/internal/examine_stack.cc
@@ -29,9 +29,11 @@
#endif
#endif
-#if defined(__linux__) || defined(__APPLE__)
+#if !defined(__OHOS__)
+#if defined(__linux__) || defined(__APPLE__)
#include <sys/ucontext.h>
#endif
+#endif
#if !defined(__OHOS__)
#include <csignal>
diff --git a/absl/log/internal/log_message.cc b/absl/log/internal/log_message.cc
index 10ac245..bddc95d 100644
--- a/absl/log/internal/log_message.cc
+++ b/absl/log/internal/log_message.cc
@@ -315,11 +315,6 @@ LogMessage& LogMessage::ToSinkOnly(absl::LogSink* sink) {
return *this;
}
-#ifdef __ELF__
-extern "C" void __gcov_dump() ABSL_ATTRIBUTE_WEAK;
-extern "C" void __gcov_flush() ABSL_ATTRIBUTE_WEAK;
-#endif
-
void LogMessage::FailWithoutStackTrace() {
// Now suppress repeated trace logging:
log_internal::SetSuppressSigabortTrace(true);
@@ -327,16 +322,6 @@ void LogMessage::FailWithoutStackTrace() {
// When debugging on windows, avoid the obnoxious dialog.
__debugbreak();
#endif
-
-#ifdef __ELF__
- // For b/8737634, flush coverage if we are in coverage mode.
- if (&__gcov_dump != nullptr) {
- __gcov_dump();
- } else if (&__gcov_flush != nullptr) {
- __gcov_flush();
- }
-#endif
-
abort();
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/lixing0101/third_party_abseil-cpp_04082.git
git@gitee.com:lixing0101/third_party_abseil-cpp_04082.git
lixing0101
third_party_abseil-cpp_04082
third_party_abseil-cpp_04082
master

搜索帮助