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

alexey pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kudu.git


The following commit(s) were added to refs/heads/master by this push:
     new 259fcc2b5 [CMakeLists] Make kudu_test_main static
259fcc2b5 is described below

commit 259fcc2b501077402e3d0e0d474a7ca475b70b5f
Author: Ádám Bakai <aba...@cloudera.com>
AuthorDate: Wed Apr 10 13:57:47 2024 +0200

    [CMakeLists] Make kudu_test_main static
    
    This change makes sure that kudu_util.so is loaded at the beginning of
    the library search order. This is needed because in unwind_safeness.cc
    there is a dlsym execution in the constructor function, that creates a
    wrapper for dlopen and dlclose to prevent a potential deadlock during
    unwind stack resolve. It looks for the next declaration of the functions
    called "dlopen" and "dlclose" in shared object files. If kudu_util is
    loaded too late, then it won't find these functions and throws an error.
    This happens in ubuntu 22.04 test runs. To solve this issue, the
    kudu_test_main was changed to a static library and kudu_util was moved
    to the front of the library list.
    
    This is a best effort fix, and it should only have impact on test
    execution.
    
    Change-Id: I0dfeb1fa04ed91e95fd1f8d789f020dd44289fea
    Reviewed-on: http://gerrit.cloudera.org:8080/21282
    Tested-by: Alexey Serbin <ale...@apache.org>
    Reviewed-by: Alexey Serbin <ale...@apache.org>
---
 src/kudu/util/CMakeLists.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/kudu/util/CMakeLists.txt b/src/kudu/util/CMakeLists.txt
index 06a426169..d32450c97 100644
--- a/src/kudu/util/CMakeLists.txt
+++ b/src/kudu/util/CMakeLists.txt
@@ -466,15 +466,15 @@ endif()
 # kudu_test_main
 #######################################
 if(NOT NO_TESTS)
-  add_library(kudu_test_main
+  add_library(kudu_test_main STATIC
     test_main.cc)
   target_link_libraries(kudu_test_main
+    kudu_util
     ${KRB5_REALM_OVERRIDE}
     gflags
     glog
     gmock
     gtest
-    kudu_util
     kudu_test_util)
 
   if(NOT APPLE)

Reply via email to