diff --git a/opencl/CMakeLists.txt b/opencl/CMakeLists.txt index 658547f118..0223ffd0fa 100644 --- a/opencl/CMakeLists.txt +++ b/opencl/CMakeLists.txt @@ -18,6 +18,7 @@ option(BUILD_TESTS "Enable building OpenCL tests" OFF) option(BUILD_ICD "Enable building OpenCL ICD Loader" ON) option(EMU_ENV "Enable building for emulation environment" OFF) option(FILE_REORG_BACKWARD_COMPATIBILITY "Enable File Reorganization backward compatibility" OFF) +option(ENABLE_ADDRESS_SANITIZER "Option to enable ASAN build" OFF) # Add flags to generate PDB files with full symbolic information if(MSVC) @@ -25,6 +26,16 @@ if(MSVC) set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /DEBUG:FULL") endif() +# Address sanitizer options +if(ENABLE_ADDRESS_SANITIZER) + message(STATUS "Building ocltst tests with Address Sanitizer options") + set(CMAKE_C_COMPILER clang) + set(CMAKE_CXX_COMPILER clang++) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address -shared-libasan -g -gz") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -shared-libasan -g -gz") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--enable-new-dtags -fuse-ld=lld -fsanitize=address -shared-libasan -g -gz -Wl,--build-id=sha1 -L${ROCM_PATH}/lib/asan") +endif() + set(OPENCL_ICD_LOADER_HEADERS_DIR "${CMAKE_CURRENT_LIST_DIR}/khronos/headers/opencl2.2" CACHE PATH "") if(BUILD_ICD) add_subdirectory(khronos/icd)