Merge branch 'vs-win10-sdk' into release
diff --git a/Modules/CMakeDetermineCompilerId.cmake b/Modules/CMakeDetermineCompilerId.cmake
index 81c2509..5b3c7f2 100644
--- a/Modules/CMakeDetermineCompilerId.cmake
+++ b/Modules/CMakeDetermineCompilerId.cmake
@@ -182,9 +182,6 @@
       set(v 6)
       set(ext dsp)
     endif()
-    if("${id_platform}" STREQUAL "Itanium")
-      set(id_platform ia64)
-    endif()
     if(CMAKE_VS_PLATFORM_TOOLSET)
       if(CMAKE_VS_PLATFORM_NAME STREQUAL "Tegra-Android")
         set(id_toolset "<NdkToolchainVersion>${CMAKE_VS_PLATFORM_TOOLSET}</NdkToolchainVersion>")
diff --git a/Modules/FindJava.cmake b/Modules/FindJava.cmake
index 9f87997..cc67df6 100644
--- a/Modules/FindJava.cmake
+++ b/Modules/FindJava.cmake
@@ -228,12 +228,12 @@
       endif()
     elseif(component STREQUAL "IdlJ")
       list(APPEND _JAVA_REQUIRED_VARS Java_IDLJ_EXECUTABLE)
-      if(Java_IdlJ_EXECUTABLE)
-        set(Java_Extra_FOUND TRUE)
+      if(Java_IDLJ_EXECUTABLE)
+        set(Java_IdlJ_FOUND TRUE)
       endif()
     elseif(component STREQUAL "JarSigner")
       list(APPEND _JAVA_REQUIRED_VARS Java_JARSIGNER_EXECUTABLE)
-      if(Java_IDLJ_EXECUTABLE)
+      if(Java_JARSIGNER_EXECUTABLE)
         set(Java_JarSigner_FOUND TRUE)
       endif()
     else()
diff --git a/Modules/Platform/AIX-GNU.cmake b/Modules/Platform/AIX-GNU.cmake
index e5d9434..d6f5331 100644
--- a/Modules/Platform/AIX-GNU.cmake
+++ b/Modules/Platform/AIX-GNU.cmake
@@ -18,10 +18,20 @@
 endif()
 set(__AIX_COMPILER_GNU 1)
 
+#
+# By default, runtime linking is enabled. All shared objects specified on the command line
+# will be listed, even if there are no symbols referenced, in the output file.
+set (CMAKE_SHARED_LINKER_FLAGS_INIT "-Wl,-brtl")
+set (CMAKE_MODULE_LINKER_FLAGS_INIT "-Wl,-brtl")
+set (CMAKE_EXE_LINKER_FLAGS_INIT "-Wl,-brtl")
+
+
 macro(__aix_compiler_gnu lang)
   set(CMAKE_SHARED_LIBRARY_RUNTIME_${lang}_FLAG "-Wl,-blibpath:")
   set(CMAKE_SHARED_LIBRARY_RUNTIME_${lang}_FLAG_SEP ":")
   set(CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS "${CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS} -Wl,-G,-bnoipath")
-  set(CMAKE_SHARED_LIBRARY_LINK_${lang}_FLAGS "-Wl,-brtl,-bnoipath,-bexpall")  # +s, flag for exe link to use shared lib
+  set(CMAKE_SHARED_LIBRARY_LINK_${lang}_FLAGS "-Wl,-bexpall")
   set(CMAKE_${lang}_USE_IMPLICIT_LINK_DIRECTORIES_IN_RUNTIME_PATH 1)
+
+  set(CMAKE_${lang}_LINK_FLAGS "-Wl,-bnoipath")
 endmacro()
diff --git a/Modules/Platform/AIX-XL.cmake b/Modules/Platform/AIX-XL.cmake
index abf3855..5470441 100644
--- a/Modules/Platform/AIX-XL.cmake
+++ b/Modules/Platform/AIX-XL.cmake
@@ -18,11 +18,21 @@
 endif()
 set(__AIX_COMPILER_XL 1)
 
+#
+# By default, runtime linking is enabled. All shared objects specified on the command line
+# will be listed, even if there are no symbols referenced, in the output file.
+set(CMAKE_SHARED_LINKER_FLAGS_INIT "-Wl,-brtl")
+set(CMAKE_MODULE_LINKER_FLAGS_INIT "-Wl,-brtl")
+set(CMAKE_EXE_LINKER_FLAGS_INIT "-Wl,-brtl")
+
+
 macro(__aix_compiler_xl lang)
   set(CMAKE_SHARED_LIBRARY_RUNTIME_${lang}_FLAG "-Wl,-blibpath:")
   set(CMAKE_SHARED_LIBRARY_RUNTIME_${lang}_FLAG_SEP ":")
   set(CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS "-G -Wl,-bnoipath")  # -shared
-  set(CMAKE_SHARED_LIBRARY_LINK_${lang}_FLAGS "-Wl,-brtl,-bnoipath,-bexpall")  # +s, flag for exe link to use shared lib
+  set(CMAKE_SHARED_LIBRARY_LINK_${lang}_FLAGS "-Wl,-bexpall")
   set(CMAKE_SHARED_LIBRARY_${lang}_FLAGS " ")
   set(CMAKE_SHARED_MODULE_${lang}_FLAGS  " ")
+
+  set(CMAKE_${lang}_LINK_FLAGS "-Wl,-bnoipath")
 endmacro()
diff --git a/Modules/Platform/HP-UX-GNU.cmake b/Modules/Platform/HP-UX-GNU.cmake
index eb909fe..6c71784 100644
--- a/Modules/Platform/HP-UX-GNU.cmake
+++ b/Modules/Platform/HP-UX-GNU.cmake
@@ -20,8 +20,10 @@
 
 macro(__hpux_compiler_gnu lang)
   set(CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS "${CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS} -Wl,-E,-b,+nodefaultrpath")
-  set(CMAKE_SHARED_LIBRARY_LINK_${lang}_FLAGS "-Wl,+s,-E,+nodefaultrpath")
+  set(CMAKE_SHARED_LIBRARY_LINK_${lang}_FLAGS "-Wl,-E")
   set(CMAKE_SHARED_LIBRARY_RUNTIME_${lang}_FLAG "-Wl,+b")
   set(CMAKE_SHARED_LIBRARY_RUNTIME_${lang}_FLAG_SEP ":")
   set(CMAKE_SHARED_LIBRARY_SONAME_${lang}_FLAG "-Wl,+h")
+
+  set(CMAKE_${lang}_LINK_FLAGS "-Wl,+s,+nodefaultrpath")
 endmacro()
diff --git a/Modules/Platform/HP-UX-HP.cmake b/Modules/Platform/HP-UX-HP.cmake
index 871ea13..3935c31 100644
--- a/Modules/Platform/HP-UX-HP.cmake
+++ b/Modules/Platform/HP-UX-HP.cmake
@@ -22,10 +22,12 @@
   set(CMAKE_${lang}_COMPILE_OPTIONS_PIC "+Z")
   set(CMAKE_SHARED_LIBRARY_${lang}_FLAGS "+Z")
   set(CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS "-Wl,-E,+nodefaultrpath -b -L/usr/lib")
-  set(CMAKE_SHARED_LIBRARY_LINK_${lang}_FLAGS "-Wl,+s,-E,+nodefaultrpath")
+  set(CMAKE_SHARED_LIBRARY_LINK_${lang}_FLAGS "-Wl,-E")
   set(CMAKE_SHARED_LIBRARY_RUNTIME_${lang}_FLAG "-Wl,+b")
   set(CMAKE_SHARED_LIBRARY_RUNTIME_${lang}_FLAG_SEP ":")
   set(CMAKE_SHARED_LIBRARY_SONAME_${lang}_FLAG "-Wl,+h")
 
   set(CMAKE_${lang}_FLAGS_INIT "")
+
+  set(CMAKE_${lang}_LINK_FLAGS "-Wl,+s,+nodefaultrpath")
 endmacro()
diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx
index 1de2847..6b46773 100644
--- a/Source/cmVisualStudio10TargetGenerator.cxx
+++ b/Source/cmVisualStudio10TargetGenerator.cxx
@@ -2579,11 +2579,27 @@
 
     if(linkOptions.IsDebug() || flags.find("/debug") != flags.npos)
       {
-      linkOptions.AddFlag("GenerateDebugInformation", "true");
+      if (this->LocalGenerator->GetVersion() >=
+          cmGlobalVisualStudioGenerator::VS14)
+        {
+        linkOptions.AddFlag("GenerateDebugInformation", "Debug");
+        }
+      else
+        {
+        linkOptions.AddFlag("GenerateDebugInformation", "true");
+        }
       }
     else
       {
-      linkOptions.AddFlag("GenerateDebugInformation", "false");
+      if (this->LocalGenerator->GetVersion() >=
+          cmGlobalVisualStudioGenerator::VS14)
+        {
+        linkOptions.AddFlag("GenerateDebugInformation", "No");
+        }
+      else
+        {
+        linkOptions.AddFlag("GenerateDebugInformation", "false");
+        }
       }
     std::string pdb = this->Target->GetPDBDirectory(config.c_str());
     pdb += "/";