From c56036a8cb759bc4ea911e8849ceec687c8545be Mon Sep 17 00:00:00 2001
From: Nat Goodspeed <nat@lindenlab.com>
Date: Thu, 11 Dec 2014 12:13:07 -0500
Subject: [PATCH] Add /SAFESEH:NO /NODEFAULTLIB:LIBCMT to viewer linker
 switches. zlib cannot be linked with SAFESEH, which is the VS 2013 default,
 so every consumer must set /SAFESEH:NO. /NODEFAULTLIB:LIBCMT seems to
 eliminate many duplicate-symbol link errors.

---
 indra/cmake/00-Common.cmake | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake
index d2faa2d8c5b..ec076837f4b 100755
--- a/indra/cmake/00-Common.cmake
+++ b/indra/cmake/00-Common.cmake
@@ -54,7 +54,8 @@ if (WINDOWS)
   set(CMAKE_CXX_FLAGS_RELEASE
       "${CMAKE_CXX_FLAGS_RELEASE} ${LL_CXX_FLAGS} /O2 /Zi /MD /MP /Ob2 -D_SECURE_STL=0 -D_HAS_ITERATOR_DEBUGGING=0"
       CACHE STRING "C++ compiler release options" FORCE)
-  set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /LARGEADDRESSAWARE")
+  # zlib has assembly-language object files incompatible with SAFESEH
+  set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /LARGEADDRESSAWARE /SAFESEH:NO /NODEFAULTLIB:LIBCMT")
 
   set(CMAKE_CXX_STANDARD_LIBRARIES "")
   set(CMAKE_C_STANDARD_LIBRARIES "")
-- 
GitLab