$NetBSD: patch-CMakeLists.txt,v 1.3 2016/02/02 04:33:57 dbj Exp $ use correct linker flags for undefined symbols with Clang --- CMakeLists.txt.orig 2016-01-15 12:00:55.000000000 +0000 +++ CMakeLists.txt @@ -610,11 +610,17 @@ ELSE (WIN32) SET(DLLEXPORT "") ENDIF() - IF(PEDANTIC AND NOT APPLE) - SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined") - SET(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--no-undefined") - SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--no-undefined") - ENDIF(PEDANTIC AND NOT APPLE) + IF(PEDANTIC) + IF (CMAKE_CXX_COMPILER_ID MATCHES "Clang") + SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-undefined,error") + SET(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,-undefined,error") + SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-undefined,error") + ELSE() + SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined") + SET(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--no-undefined") + SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--no-undefined") + ENDIF() + ENDIF(PEDANTIC) ENDIF(WIN32)