From 8e0a9aa417f119d62d21ba270fde014d982cd747 Mon Sep 17 00:00:00 2001 From: Kent Russell Date: Mon, 26 Oct 2020 13:49:01 -0400 Subject: [PATCH] Set -no-undefined properly if it's CC Address-sanitizer doesn't like it at all. And it's called differently under clang than gcc, so adjust accordingly Change-Id: Iebe8cd68618d3f7a4c310419c64b4f73d7ecfda4 --- CMakeLists.txt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7970114c2d..398cbfe272 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -94,7 +94,7 @@ set ( HSAKMT_LINKER_SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/src/libhsakmt.ver" ) ## Linker Flags ## Add --enable-new-dtags to generate DT_RUNPATH -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") +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") ## Address Sanitize Flag if ( ${ADDRESS_SANITIZER} ) @@ -102,6 +102,12 @@ if ( ${ADDRESS_SANITIZER} ) set ( HSAKMT_LINK_FLAGS "${HSAKMT_LINK_FLAGS}" -fsanitize=address ) message( STATUS "ADDRESS_SANITIZE: HSAKMT_C_FLAGS=: ${HSAKMT_C_FLAGS}" ) message( STATUS "ADDRESS_SANITIZE: HSAKMT_LINK_FLAGS=: ${HSAKMT_LINK_FLAGS}" ) +else () + if ( CMAKE_COMPILER_IS_GNUCC ) + set ( HSAKMT_LINK_FLAGS "${HSAKMT_LINK_FLAGS}" -Wl,-no-undefined ) + else () + set ( HSAKMT_LINK_FLAGS "${HSAKMT_LINK_FLAGS}" -Wl,-undefined,error ) + endif () endif () ## Source files