From 4b5fa5bb42a1a96d4d29a26ac8237a075b764cf3 Mon Sep 17 00:00:00 2001 From: Gefei Jiang Date: Fri, 16 Oct 2020 12:49:26 -0700 Subject: [PATCH] CMakeLists.txt: Address Sanitizer Support 1. add sanitize flag to link flags 2. use ${ADDRESS_SANITIZER} as a condition to turn on/off instead of (DEFINED ADDRESS_SANITIZER). The latter will always turn the feature on regardless of the value as long as there is "-DADDRESS_SANITIZER in cmake command line,which will be an issue when merging to the mainline Amended: put -fsanitize=address at the begining in link flags Change-Id: I84df0e5b6d7fb8f02f18bf7961f25f15cac10443 Signed-off-by: Gefei Jiang [ROCm/ROCR-Runtime commit: d3bc75d22968f5c12dfc988b8b1a5e7ebb3bc3c8] --- projects/rocr-runtime/CMakeLists.txt | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/projects/rocr-runtime/CMakeLists.txt b/projects/rocr-runtime/CMakeLists.txt index 58f8f2ee9f..b397ead855 100644 --- a/projects/rocr-runtime/CMakeLists.txt +++ b/projects/rocr-runtime/CMakeLists.txt @@ -90,19 +90,21 @@ else () set ( HSAKMT_C_FLAGS "${HSAKMT_C_FLAGS}" -g ) endif () -## Address Sanitize Flag -if (DEFINED ADDRESS_SANITIZER) - set ( HSAKMT_C_FLAGS "${HSAKMT_C_FLAGS}" -fsanitize=address ) - # for debugging - # toDo: remove this line when merging to mainline - message( STATUS "ADDRESS_SANITIZE: HSAKMT_C_FLAGS=: ${HSAKMT_C_FLAGS}" ) -endif () - set ( HSAKMT_LINKER_SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/src/libhsakmt.ver" ) +## Address Sanitize Flag +if ( ${ADDRESS_SANITIZER} ) + set ( HSAKMT_C_FLAGS "${HSAKMT_C_FLAGS}" -fsanitize=address ) + message( STATUS "ADDRESS_SANITIZE: HSAKMT_C_FLAGS=: ${HSAKMT_C_FLAGS}" ) + set ( HSAKMT_LINK_FLAGS "-fsanitize=address" ) +endif () + ## Linker Flags ## Add --enable-new-dtags to generate DT_RUNPATH -set (HSAKMT_LINK_FLAGS "-Wl,--enable-new-dtags -Wl,--version-script=${HSAKMT_LINKER_SCRIPT} -Wl,-soname=${HSAKMT_COMPONENT}.so.${LIB_VERSION_MAJOR} -Wl,-z,nodelete -Wl,-no-undefined" ) +set (HSAKMT_LINK_FLAGS "${HSAKMT_LINK_FLAGS} -Wl,--enable-new-dtags -Wl,--version-script=${HSAKMT_LINKER_SCRIPT} -Wl,-soname=${HSAKMT_COMPONENT}.so.${LIB_VERSION_MAJOR} -Wl,-z,nodelete -Wl,-no-undefined" ) + +# for debug +message( STATUS "ADDRESS_SANITIZE: HSAKMT_LINK_FLAGS=: ${HSAKMT_LINK_FLAGS}" ) ## Source files set ( HSAKMT_SRC "src/debug.c"