This is an automated email from the ASF dual-hosted git repository.

SYaoJun pushed a commit to branch ci-arrow-source-gating
in repository https://gitbox.apache.org/repos/asf/incubator-graphar.git

commit 92c6d0ac256dd6bfa489db51703172a6959c5be9
Author: Jason <[email protected]>
AuthorDate: Mon Jul 20 21:29:35 2026 +0800

    fix: unify Arrow linking in benchmarks and add ASan options via 
CROSSCOMPILING_EMULATOR
    
    - benchmarks: replace raw arrow/parquet lib names with CMake imported 
targets (Arrow::arrow_static/Parquet::parquet_static) to properly propagate 
transitive deps like abseil
    - tests: set CROSSCOMPILING_EMULATOR with 
ASAN_OPTIONS=detect_container_overflow=0 to suppress false positives from 
non-instrumented Arrow static libs during test discovery
    
    Signed-off-by: Jason <[email protected]>
---
 cpp/benchmarks/CMakeLists.txt | 42 +++++++++++++++++++++++++++---------------
 cpp/test/CMakeLists.txt       |  6 ++++++
 2 files changed, 33 insertions(+), 15 deletions(-)

diff --git a/cpp/benchmarks/CMakeLists.txt b/cpp/benchmarks/CMakeLists.txt
index 75d28f97..8cacc153 100644
--- a/cpp/benchmarks/CMakeLists.txt
+++ b/cpp/benchmarks/CMakeLists.txt
@@ -29,21 +29,11 @@ macro(add_benchmark target)
   add_executable(${target} ${add_test_SRCS})
   target_compile_features(${target} PRIVATE cxx_std_${GAR_CXX_STANDARD})
   target_include_directories(${target} PRIVATE 
${PROJECT_SOURCE_DIR}/thirdparty)
-  if(APPLE)
-    target_link_libraries(${target}
-                          PRIVATE benchmark::benchmark_main
-                                  graphar
-                                  Arrow::arrow_shared
-                                  Parquet::parquet_shared
-                                  ${CMAKE_DL_LIBS})
-  else()
-    target_link_libraries(${target}
-                          PRIVATE benchmark::benchmark_main
-                                  graphar
-                                  parquet
-                                  arrow
-                                  ${CMAKE_DL_LIBS})
-  endif()
+  target_link_libraries(${target}
+                        PRIVATE benchmark::benchmark_main
+                                graphar
+                                ${CMAKE_DL_LIBS})
+
   if(BUILD_ARROW_FROM_SOURCE)
     target_include_directories(${target} SYSTEM BEFORE PRIVATE 
${GAR_ARROW_INCLUDE_DIR})
     if(APPLE)
@@ -65,6 +55,28 @@ macro(add_benchmark target)
                                     "${GAR_ARROW_BUNDLED_DEPS_STATIC_LIB}"
                                     -Wl,--no-whole-archive)
     endif()
+  else()
+    if(APPLE)
+      if(USE_STATIC_ARROW)
+        target_link_libraries(${target} PRIVATE -Wl,-force_load 
Arrow::arrow_static
+                                                Parquet::parquet_static)
+      else()
+        target_link_libraries(${target} PRIVATE Arrow::arrow_shared
+                                                Parquet::parquet_shared)
+      endif()
+    else()
+      if(USE_STATIC_ARROW)
+        target_link_libraries(${target}
+                              PRIVATE -Wl,--exclude-libs,ALL
+                                      -Wl,--whole-archive
+                                      Arrow::arrow_static
+                                      Parquet::parquet_static
+                                      -Wl,--no-whole-archive)
+      else()
+        target_link_libraries(${target} PRIVATE Arrow::arrow_shared
+                                                Parquet::parquet_shared)
+      endif()
+    endif()
   endif()
 endmacro()
 
diff --git a/cpp/test/CMakeLists.txt b/cpp/test/CMakeLists.txt
index 827b50b8..187e91b0 100644
--- a/cpp/test/CMakeLists.txt
+++ b/cpp/test/CMakeLists.txt
@@ -82,6 +82,12 @@ macro(add_graphar_test target)
 
   include(CTest)
   include(Catch)
+
+  if(GRAPHAR_ENABLE_SANITIZER)
+    set_target_properties(${target}
+      PROPERTIES CROSSCOMPILING_EMULATOR 
"env;ASAN_OPTIONS=detect_container_overflow=0"
+    )
+  endif()
   catch_discover_tests(${target})
 endmacro()
 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to