]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
cmake: prevent ASAN_OPTIONS from detect_odr_violation
authorKefu Chai <tchaikov@gmail.com>
Sun, 24 Mar 2024 13:40:28 +0000 (21:40 +0800)
committerKefu Chai <tchaikov@gmail.com>
Tue, 26 Mar 2024 23:35:28 +0000 (07:35 +0800)
turns out we have multiple copies of following symbol defined by rbd executable:
```
AddressSanitizer: odr-violation: global 'ceph::buffer::list::always_empty_bptr' at /home/jenkins-build/build/workspace/ceph-pull-requests/src/common/buffer.cc:1267:34
```
before addressing it. let's disable this warning.

Refs https://tracker.ceph.com/issues/65098

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
cmake/modules/AddCephTest.cmake

index 45bb26aa6155dad74461c14107164c9ba3ffea85..4593070fe17de129de693f762a5a3b5a3d7573dc 100644 (file)
@@ -25,6 +25,15 @@ function(add_ceph_test test_name test_path)
       PROPERTY ENVIRONMENT
       UBSAN_OPTIONS=halt_on_error=1:print_stacktrace=1)
   endif()
+  if(WITH_ASAN)
+    # AddressSanitizer: odr-violation: global 'ceph::buffer::list::always_empty_bptr' at
+    # /home/jenkins-build/build/workspace/ceph-pull-requests/src/common/buffer.cc:1267:34
+    # see https://tracker.ceph.com/issues/65098
+    set_property(TEST ${test_name}
+      APPEND
+      PROPERTY ENVIRONMENT
+      ASAN_OPTIONS=detect_odr_violation=0)
+  endif()
   set_property(TEST ${test_name}
     PROPERTY TIMEOUT ${CEPH_TEST_TIMEOUT})
   # Crimson seastar unittest always run with --smp N to start N threads. By default, crimson seastar unittest