From 19b0a812af23091ccee762c8d693e560a7a11817 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E4=BF=8A=E9=BE=99?= Date: Thu, 14 Aug 2025 15:06:43 +0800 Subject: [PATCH 1/2] =?UTF-8?q?add=20abseil=20code=20Signed-off-by:=20?= =?UTF-8?q?=E7=8E=8B=E4=BF=8A=E9=BE=99=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- adapter-ohos.patch | 158 +++++++++++++++++++++++++++++++++++++++++++++ install.sh | 2 + install_for_mac.sh | 1 + install_no_lock.sh | 4 +- 4 files changed, 164 insertions(+), 1 deletion(-) create mode 100644 adapter-ohos.patch diff --git a/adapter-ohos.patch b/adapter-ohos.patch new file mode 100644 index 0000000..248b240 --- /dev/null +++ b/adapter-ohos.patch @@ -0,0 +1,158 @@ +diff --git a/absl/base/internal/low_level_alloc.cc b/absl/base/internal/low_level_alloc.cc +index a563f7b..27b2321 100644 +--- a/absl/base/internal/low_level_alloc.cc ++++ b/absl/base/internal/low_level_alloc.cc +@@ -42,7 +42,7 @@ +#include +#endif + +-#ifdef __linux__ ++#if defined __linux__ && !defined(__OHOS__) + #include + #endif + +@@ -569,7 +569,7 @@ static void *DoALLocWithArena(size_t request, LowLevelAlloc::Arena *arena) { + ABSL_RAW_LOG(FATAL, "mmap error: %d", errno); + } + +-#ifdef __linux__ ++#if defined __linux__ && !defined(__OHOS__) + #if defined(PR_SET_VMA) && defined(PR_SET_VMA_ANON_NAME) + // Attempt to name the allocated address rangn in /proc/$PID/smaps on + // Linux. +diff --git a/absl/crc/internal/cpu_detect.cc b/absl/crc/internal/cpu_detect.cc +index c59f773..162ac9d 100644 +--- a/absl/crc/internal/cpu_detect.cc ++++ b/absl/crc/internal/cpu_detect.cc +@@ -20,7 +20,7 @@ + #include "absl/base/config.h" + #include "absl/types/optional.h" // IWYU pragma: keep + +-#if defined(__aarch64__) && defined(__linux__) ++#if defined(__aarch64__) && defined(__linux__) && !defined(__OHOS__) + #include + #include + #endif +@@ -230,7 +230,7 @@ CpuType GetCpuType() { + + bool SupportsArmCRC32PMULL() { return false; } + +-#endif defined(__aarch64__) && defined(__linux__) ++#endif defined(__aarch64__) && defined(__linux__) && !defined(__OHOS__) + + #ifndef HWCAP_CPUID + #define HWCAP_CPUID (1 << 11) +diff --git a/absl/debugging/failure_signal_hander.cc b/absl/debugging/failure_signal_hander.cc +index d31f5a1..df8eb08 100644 +--- a/absl/debugging/failure_signal_hander.cc ++++ b/absl/debugging/failure_signal_hander.cc +@@ -37,7 +37,7 @@ + #endif + #endif + +-#ifdef __linux__ ++#if defined __linux__ && !defined(__OHOS__) + #include + #endif + +@@ -195,7 +195,7 @@ static bool SetupAlternateStackOnce() { + ABSL_RAW_LOG(FATAL, "sigaltstack() failed with erron=%d", errno); + } + +-#ifdef __linux__ ++#if defined __linux__ && !defined(__OHOS__) + #if defined(PR_SET_VMA) && defined(PR_SET_VMA_ANON_NAME) + // Make the best-effort attempt to name the allocated address region in + // /proc/$PID/smaps. +diff --git a/absl/debugging/internal/elf_mem_image.h b/absl/debugging/internal/elf_mem_image.h +index 1fac29c..60bceff 100644 +--- a/absl/debugging/internal/elf_mem_image.h ++++ b/absl/debugging/internal/elf_mem_image.h +@@ -35,7 +35,7 @@ + #if defined(__ELF__) && !defined(__OpenBSD__) && !defined(__QNX) && \ + !defined(__native_client__) && !defined(__asmjs__) && \ + !defined(__wasm__) && !defined(__HAIKU__) && !defined(__sun)&& \ +- !defined(__VXWORKS__) && !defined(__hexagon__) && !defined(__XTENSA__) ++ !defined(__VXWORKS__) && !defined(__hexagon__) && !defined(__XTENSA__) && !defined(__OHOS__) + #define ABSL_INTERNAL_HAVE_ELF_MEM_IMAGE 1 + #endif + +diff --git a/absl/debugging/internal/examine_stack.cc b/absl/debugging/internal/examine_stack.cc +index 3dd6ba1..7d5d9ca 100644 +--- a/absl/debugging/internal/examine_stack.cc ++++ b/absl/debugging/internal/examine_stack.cc +@@ -29,11 +29,15 @@ + #endif + #endif + ++#if !defined(__OHOS__) + #if defined(__linux__) || defined(__APPLE__) + #include + #endif ++#endif + ++#if !defined(__OHOS__) + #include ++#endif + #include + + #include "absl/base/attributes.h" +@@ -155,6 +159,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* const uc = reinterpret_cast(vuc); +@@ -233,6 +238,7 @@ void* GetProgramCounter(void* const vuc) { + return reinterpret_cast(get_user_ctx_pc(ctx)); + #endif + static_cast(vuc); ++#endif + return nullptr; + } + +diff --git a/absl/debugging/internal/stacktrace_config.h b/absl/debugging/internal/stacktrace_config.h +index 88949fe..e982015 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/base/config.h b/absl/base/config.h +index 0b24865..257b9bb 100644 +--- a/absl/base/config.h ++++ b/absl/base/config.h +@@ -862,7 +862,7 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] != 'h' || + // available. + #ifdef ABSL_INTERNAL_HAS_CXA_DEMANGLE + #error ABSL_INTERNAL_HAS_CXA_DEMANGLE cannot be directly set +-#elif defined(OS_ANDROID) && (defined(__i386__) || defined(__x86_64__)) ++#elif defined(OS_ANDROID) && (defined(__i386__) || defined(__x86_64__)) && !defined(__OHOS__) + #define ABSL_INTERNAL_HAS_CXA_DEMANGLE 0 + #elif defined(__GNUC__) + #define ABSL_INTERNAL_HAS_CXA_DEMANGLE 1 + +diff --git a/CMake/AbseilHelpers.cmake b/CMake/AbseilHelpers.cmake +index d8fb9fe..02688f2 100644 +--- a/CMake/AbseilHelpers.cmake ++++ b/CMake/AbseilHelpers.cmake +@@ -256,7 +256,7 @@ Cflags: -I\${includedir}${PC_CFLAGS}\n") + ) + + elseif(_build_type STREQUAL "static" OR _build_type STREQUAL "shared") +- add_library(${_NAME} "") ++ add_library(${_NAME} STATIC "") + target_sources(${_NAME} PRIVATE ${ABSL_CC_LIB_SRCS} ${ABSL_CC_LIB_HDRS}) + if(APPLE) + set_target_properties(${_NAME} PROPERTIES \ No newline at end of file diff --git a/install.sh b/install.sh index 1935fff..f32151f 100755 --- a/install.sh +++ b/install.sh @@ -17,7 +17,9 @@ tar zxvf $2/abseil-cpp-20250127.0.tar.gz mv abseil-cpp-20250127.0 abseil-cpp cd abseil-cpp patch -p1 < $2/fix-mingw-complier-error.patch +patch -p1 < $2/adapter-ohos.patch patch -p1 < $2/fix-mac-complier-error.patch +sed -i '/find_library/d' ./absl/base/CMakeLists.txt flock -u 100 } 100<>lock_file.lock exit 0 \ No newline at end of file diff --git a/install_for_mac.sh b/install_for_mac.sh index ff999fb..b47b8c9 100755 --- a/install_for_mac.sh +++ b/install_for_mac.sh @@ -15,4 +15,5 @@ tar zxvf $2/abseil-cpp-20250127.0.tar.gz mv abseil-cpp-20250127.0 abseil-cpp cd abseil-cpp patch -p1 < $2/fix-mingw-complier-error.patch +patch -p1 < $2/adapter-ohos.patch exit 0 diff --git a/install_no_lock.sh b/install_no_lock.sh index 11a0be9..1310a79 100755 --- a/install_no_lock.sh +++ b/install_no_lock.sh @@ -9,11 +9,13 @@ set -e cd $1 if [ -d "abseil-cpp" ];then - rm -rf abseil-cpp + echo "abseil-cpp exists" fi tar zxvf $2/abseil-cpp-20250127.0.tar.gz mv abseil-cpp-20250127.0 abseil-cpp cd abseil-cpp patch -p1 < $2/fix-mingw-complier-error.patch +patch -p1 < $2/adapter-ohos.patch patch -p1 < $2/fix-mac-complier-error.patch +sed -i '/find_library/d' ./absl/base/CMakeLists.txt exit 0 -- Gitee From ad21ce8d1c5d470e2cff02b3e3eb31d6908a1e19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E4=BF=8A=E9=BE=99?= Date: Thu, 14 Aug 2025 15:37:06 +0800 Subject: [PATCH 2/2] =?UTF-8?q?add=20abseil=20code=20Signed-off-by:=20?= =?UTF-8?q?=E7=8E=8B=E4=BF=8A=E9=BE=99=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- adapter-ohos.patch | 32 ++++++++++++++++---------------- install_for_mac.sh | 1 + install_no_lock.sh | 1 + 3 files changed, 18 insertions(+), 16 deletions(-) diff --git a/adapter-ohos.patch b/adapter-ohos.patch index 248b240..6bdc1c0 100644 --- a/adapter-ohos.patch +++ b/adapter-ohos.patch @@ -3,22 +3,22 @@ index a563f7b..27b2321 100644 --- a/absl/base/internal/low_level_alloc.cc +++ b/absl/base/internal/low_level_alloc.cc @@ -42,7 +42,7 @@ -#include -#endif + #include + #endif -#ifdef __linux__ +#if defined __linux__ && !defined(__OHOS__) #include #endif -@@ -569,7 +569,7 @@ static void *DoALLocWithArena(size_t request, LowLevelAlloc::Arena *arena) { +@@ -569,7 +569,7 @@ static void *DoAllocWithArena(size_t request, LowLevelAlloc::Arena *arena) { ABSL_RAW_LOG(FATAL, "mmap error: %d", errno); } -#ifdef __linux__ +#if defined __linux__ && !defined(__OHOS__) #if defined(PR_SET_VMA) && defined(PR_SET_VMA_ANON_NAME) - // Attempt to name the allocated address rangn in /proc/$PID/smaps on + // Attempt to name the allocated address range in /proc/$PID/smaps on // Linux. diff --git a/absl/crc/internal/cpu_detect.cc b/absl/crc/internal/cpu_detect.cc index c59f773..162ac9d 100644 @@ -37,15 +37,15 @@ index c59f773..162ac9d 100644 bool SupportsArmCRC32PMULL() { return false; } --#endif defined(__aarch64__) && defined(__linux__) -+#endif defined(__aarch64__) && defined(__linux__) && !defined(__OHOS__) +-#elif defined(__aarch64__) && defined(__linux__) ++#elif defined(__aarch64__) && defined(__linux__) && !defined(__OHOS__) #ifndef HWCAP_CPUID #define HWCAP_CPUID (1 << 11) -diff --git a/absl/debugging/failure_signal_hander.cc b/absl/debugging/failure_signal_hander.cc +diff --git a/absl/debugging/failure_signal_handler.cc b/absl/debugging/failure_signal_handler.cc index d31f5a1..df8eb08 100644 ---- a/absl/debugging/failure_signal_hander.cc -+++ b/absl/debugging/failure_signal_hander.cc +--- a/absl/debugging/failure_signal_handler.cc ++++ b/absl/debugging/failure_signal_handler.cc @@ -37,7 +37,7 @@ #endif #endif @@ -56,25 +56,25 @@ index d31f5a1..df8eb08 100644 #endif @@ -195,7 +195,7 @@ static bool SetupAlternateStackOnce() { - ABSL_RAW_LOG(FATAL, "sigaltstack() failed with erron=%d", errno); + 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 the best-effort attempt to name the allocated address region in + // Make a best-effort attempt to name the allocated region in // /proc/$PID/smaps. diff --git a/absl/debugging/internal/elf_mem_image.h b/absl/debugging/internal/elf_mem_image.h index 1fac29c..60bceff 100644 --- a/absl/debugging/internal/elf_mem_image.h +++ b/absl/debugging/internal/elf_mem_image.h @@ -35,7 +35,7 @@ - #if defined(__ELF__) && !defined(__OpenBSD__) && !defined(__QNX) && \ + #if defined(__ELF__) && !defined(__OpenBSD__) && !defined(__QNX__) && \ !defined(__native_client__) && !defined(__asmjs__) && \ !defined(__wasm__) && !defined(__HAIKU__) && !defined(__sun)&& \ - !defined(__VXWORKS__) && !defined(__hexagon__) && !defined(__XTENSA__) + !defined(__VXWORKS__) && !defined(__hexagon__) && !defined(__XTENSA__) && !defined(__OHOS__) - #define ABSL_INTERNAL_HAVE_ELF_MEM_IMAGE 1 + #define ABSL_HAVE_ELF_MEM_IMAGE 1 #endif diff --git a/absl/debugging/internal/examine_stack.cc b/absl/debugging/internal/examine_stack.cc @@ -104,7 +104,7 @@ index 3dd6ba1..7d5d9ca 100644 +#if !defined(__OHOS__) #ifdef __linux__ if (vuc != nullptr) { - ucontext_t* const uc = reinterpret_cast(vuc); + ucontext_t* context = reinterpret_cast(vuc); @@ -233,6 +238,7 @@ void* GetProgramCounter(void* const vuc) { return reinterpret_cast(get_user_ctx_pc(ctx)); #endif @@ -125,7 +125,7 @@ index 88949fe..e982015 100644 +#define ABSL_STACKTRACE_INL_HEADER \ + "absl/debugging/internal/stacktrace_unimplemented-inl.inc" + - #elif defined(__WIN32) + #elif defined(_WIN32) #define ABSL_STACKTRACE_INL_HEADER \ "absl/debugging/internal/stacktrace_win32-inl.inc" @@ -138,7 +138,7 @@ index 0b24865..257b9bb 100644 #ifdef ABSL_INTERNAL_HAS_CXA_DEMANGLE #error ABSL_INTERNAL_HAS_CXA_DEMANGLE cannot be directly set -#elif defined(OS_ANDROID) && (defined(__i386__) || defined(__x86_64__)) -+#elif defined(OS_ANDROID) && (defined(__i386__) || defined(__x86_64__)) && !defined(__OHOS__) ++#elif defined(OS_ANDROID) && (defined(__i386__) || defined(__x86_64__)) || defined(__OHOS__) #define ABSL_INTERNAL_HAS_CXA_DEMANGLE 0 #elif defined(__GNUC__) #define ABSL_INTERNAL_HAS_CXA_DEMANGLE 1 diff --git a/install_for_mac.sh b/install_for_mac.sh index b47b8c9..924e6ff 100755 --- a/install_for_mac.sh +++ b/install_for_mac.sh @@ -16,4 +16,5 @@ mv abseil-cpp-20250127.0 abseil-cpp cd abseil-cpp patch -p1 < $2/fix-mingw-complier-error.patch patch -p1 < $2/adapter-ohos.patch +patch -p1 < $2/fix-mac-complier-error.patch exit 0 diff --git a/install_no_lock.sh b/install_no_lock.sh index 1310a79..18ea40a 100755 --- a/install_no_lock.sh +++ b/install_no_lock.sh @@ -10,6 +10,7 @@ set -e cd $1 if [ -d "abseil-cpp" ];then echo "abseil-cpp exists" + exit 0 fi tar zxvf $2/abseil-cpp-20250127.0.tar.gz mv abseil-cpp-20250127.0 abseil-cpp -- Gitee