]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
ceph.in: do not preload libasan if it is not found 28275/head
authorKefu Chai <kchai@redhat.com>
Wed, 29 May 2019 01:45:57 +0000 (09:45 +0800)
committerKefu Chai <kchai@redhat.com>
Wed, 29 May 2019 02:20:39 +0000 (10:20 +0800)
before this change, `asan_lib_path` could be `None` when we check it to
see if it ends with `NOTFOUND`. this happens if WITH_SEASTAR=OFF or
WITH_ASAN=OFF, as in that case, find_package(Sanitizers) is not called,
hence `ASAN_LIBRARY` won't be set.

in this change, libasan is only preloaded if

- (WITH_SEASTAR=ON and CMAKE_BUILD_TYPE=Debug and ASAN_LIBRARY is found)
  or
- (WITH_ASAN)

Signed-off-by: Kefu Chai <kchai@redhat.com>
src/ceph.in

index 751c2fdcf5dd5d548226f3563c9b042a81b571c3..0f734c158da8142cfe57a45444c638861b5fb9e9 100755 (executable)
@@ -129,9 +129,8 @@ if os.path.exists(os.path.join(MYPDIR, "CMakeCache.txt")) \
         pythonlib_path = os.path.join(lib_path,
                                       "cython_modules",
                                       get_pythonlib_dir())
-        if asan_lib_path.endswith('NOTFOUND'):
-            with_asan = False
-        elif with_seastar and build_type == 'Debug':
+        if (with_seastar and build_type == 'Debug' and
+            not asan_lib_path.endswith('NOTFOUND')):
             with_asan = True
         respawn_in_path(lib_path, pybind_path, pythonlib_path,
                         asan_lib_path if with_asan else None)