diff --git a/OAT.xml b/OAT.xml index f977703803c0a2000a7ddc994291a5dffc219cc5..715e4703286eff2110d76fd2d16dc23ddf390e4d 100644 --- a/OAT.xml +++ b/OAT.xml @@ -52,7 +52,7 @@ - + diff --git a/adapter-ohos.patch b/adapter-ohos.patch new file mode 100644 index 0000000000000000000000000000000000000000..2b4696bbb544c04bf97c527239fbb89bd69b4e20 --- /dev/null +++ b/adapter-ohos.patch @@ -0,0 +1,291 @@ +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 + #endif + +-#ifdef __linux__ +-#include +-#endif +- + #include + + #include +@@ -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(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 + #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 + #endif + ++#if !defined(__OHOS__) + #include ++#endif + #include + + #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(vuc); +@@ -233,7 +236,8 @@ void* GetProgramCounter(void* const vuc) { + return reinterpret_cast(get_user_ctx_pc(ctx)); + #endif + static_cast(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 + #include + #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 + #endif ++#endif + + #if !defined(__OHOS__) + #include + +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(); + } diff --git a/install_no_lock.sh b/install_no_lock.sh index 883b635e485cd910ed4a2d3d5c4e7a5cc68bd260..0be3018d884b97228f4abc8763ecfed6c804901b 100755 --- a/install_no_lock.sh +++ b/install_no_lock.sh @@ -18,5 +18,6 @@ patch -p1 < $1/abseil-cpp-20210324.2-sw.patch patch -p1 < $1/0001-add-loongarch-suopport-for-abseil-cpp.patch patch -p1 < $1/0002-PR-1644-unscaledcycleclock-remove-RISC-V-support.patch patch -p1 < $1/fix-mingw-complier-error.patch +patch -p1 < $1/adapter-ohos.patch patch -p1 < $1/backport-CVE-2025-0838.patch exit 0