$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)
 
