From dfbdbdfee63f32a1757bc1a608cd168bd443599b Mon Sep 17 00:00:00 2001 From: msclock Date: Wed, 3 Apr 2024 02:18:27 +0800 Subject: [PATCH] fix: handle sanitizer_flags (#81) Signed-off-by: msclock --- cmake/build/Hardening.cmake | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/cmake/build/Hardening.cmake b/cmake/build/Hardening.cmake index cff5587..92d3442 100644 --- a/cmake/build/Hardening.cmake +++ b/cmake/build/Hardening.cmake @@ -125,15 +125,20 @@ endif() flags_to_list(hardening_links "${hardening_links}") # Handle the conflics between hardening ubsan and asan -if(san_available_flags - AND san_available_flags MATCHES "-fsanitize=address" - AND hardening_flags MATCHES "-fsanitize-minimal-runtime") - message( - WARNING "Try to disable usan minimal runtime due to conflict with asan") - list(REMOVE_ITEM hardening_flags "-fsanitize=undefined" - "-fsanitize-minimal-runtime" "-fno-sanitize-recover=undefined") - list(REMOVE_ITEM hardening_links "-fsanitize=undefined" - "-fsanitize-minimal-runtime" "-fno-sanitize-recover=undefined") + +if(TARGET sanitizer_flags) + get_target_property(_san sanitizer_flags _san) + + if(_san + AND _san MATCHES "-fsanitize=address" + AND hardening_flags MATCHES "-fsanitize-minimal-runtime") + message( + WARNING "Try to disable usan minimal runtime due to conflict with asan") + list(REMOVE_ITEM hardening_flags "-fsanitize=undefined" + "-fsanitize-minimal-runtime" "-fno-sanitize-recover=undefined") + list(REMOVE_ITEM hardening_links "-fsanitize=undefined" + "-fsanitize-minimal-runtime" "-fno-sanitize-recover=undefined") + endif() endif() message(STATUS "Hardening final flags: ${hardening_flags}")