Merge
diff --git a/.hgtags b/.hgtags
index 453018d..6c91e6f 100644
--- a/.hgtags
+++ b/.hgtags
@@ -105,3 +105,4 @@
f08682e23279d6cccbdcafda1eb0647ba4900874 jdk7-b128
14cd5d54a8d0b9c368d60ea83a066735b9931015 jdk7-b129
bdc069d3f9101f89ec3f81c2950ee2d68fa846d3 jdk7-b130
+8ac52c85f9e91336dc00b52ef90b42eecf3230b3 jdk7-b131
diff --git a/LICENSE b/LICENSE
index eeab58c..b40a0f4 100644
--- a/LICENSE
+++ b/LICENSE
@@ -325,11 +325,11 @@
"CLASSPATH" EXCEPTION TO THE GPL
-Certain source files distributed by Sun Microsystems, Inc. are subject to
-the following clarification and special exception to the GPL, but only where
-Sun has expressly included in the particular source file's header the words
-"Sun designates this particular file as subject to the "Classpath" exception
-as provided by Sun in the LICENSE file that accompanied this code."
+Certain source files distributed by Oracle America and/or its affiliates are
+subject to the following clarification and special exception to the GPL, but
+only where Oracle has expressly included in the particular source file's header
+the words "Oracle designates this particular file as subject to the "Classpath"
+exception as provided by Oracle in the LICENSE file that accompanied this code."
Linking this library statically or dynamically with other modules is making
a combined work based on this library. Thus, the terms and conditions of
diff --git a/make/common/Defs-windows.gmk b/make/common/Defs-windows.gmk
index 7899b0e..87bc793 100644
--- a/make/common/Defs-windows.gmk
+++ b/make/common/Defs-windows.gmk
@@ -359,7 +359,13 @@
# VS2008 has bufferoverflow baked in:
LFLAGS_VS2008 =
- LFLAGS_VS2010 =
+
+ # VS2010, always need safe exception handlers, not needed on 64bit
+ ifeq ($(ARCH_DATA_MODEL), 32)
+ LFLAGS_VS2010 = -SAFESEH
+ else
+ LFLAGS_VS2010 =
+ endif
# LFLAGS are the flags given to $(LINK) and used to build the actual DLL file
BASELFLAGS = -nologo /opt:REF /incremental:no
diff --git a/make/common/Release.gmk b/make/common/Release.gmk
index 9af023f..224dcd1 100644
--- a/make/common/Release.gmk
+++ b/make/common/Release.gmk
@@ -124,9 +124,11 @@
tnameserv.1 \
unpack200.1
+ifndef OPENJDK
ifeq ($(ARCH_DATA_MODEL),32)
JRE_MAN_PAGES += javaws.1
endif
+endif
JDK_MAN_PAGES = \
$(JRE_MAN_PAGES) \
diff --git a/make/common/shared/Defs-windows.gmk b/make/common/shared/Defs-windows.gmk
index 461913a..d928448 100644
--- a/make/common/shared/Defs-windows.gmk
+++ b/make/common/shared/Defs-windows.gmk
@@ -772,9 +772,20 @@
BANNED_DLLS=msvcp100[.]dll|msvcr100d[.]dll|msvcrtd[.]dll
endif
-# Macro to check it's input file for banned dependencies and verify the
-# binary was built properly. Relies on process exit code.
-define binary_file_verification # binary_file
+# Check for /safeseh (only used on 32bit)
+define binary_file_safeseh_verification # binary_file
+( \
+ $(ECHO) "Checking for /SAFESEH usage in: $1" && \
+ if [ "`$(DUMPBIN) /loadconfig $1 | $(EGREP) -i 'Safe Exception Handler Table'`" = "" ] ; then \
+ $(ECHO) "ERROR: Did not find 'Safe Exception Handler Table' in loadconfig: $1" ; \
+ $(DUMPBIN) /loadconfig $1 ; \
+ exit 6 ; \
+ fi ; \
+)
+endef
+
+# Check for /NXCOMPAT usage
+define binary_file_nxcompat_verification # binary_file
( \
$(ECHO) "Checking for /NXCOMPAT usage in: $1" && \
if [ "`$(DUMPBIN) /headers $1 | $(EGREP) -i 'NX compatible'`" = "" ] ; then \
@@ -782,12 +793,24 @@
$(DUMPBIN) /headers $1 ; \
exit 7 ; \
fi ; \
+)
+endef
+
+# Check for /DYNAMICBASE usage
+define binary_file_dynamicbase_verification # binary_file
+( \
$(ECHO) "Checking for /DYNAMICBASE usage in: $1" && \
if [ "`$(DUMPBIN) /headers $1 | $(EGREP) -i 'Dynamic base'`" = "" ] ; then \
$(ECHO) "ERROR: Did not find 'Dynamic base' in headers: $1" ; \
$(DUMPBIN) /headers $1 ; \
exit 8 ; \
fi ; \
+)
+endef
+
+# Check for banned dll usage
+define binary_file_dll_verification # binary_file
+( \
$(ECHO) "Checking for banned dependencies in: $1" && \
if [ "`$(DUMPBIN) /dependents $1 | $(EGREP) -i '$(BANNED_DLLS)'`" != "" ] ; then \
$(ECHO) "ERROR: Found use of $(BANNED_DLLS)"; \
@@ -797,6 +820,27 @@
)
endef
+# Macro to check it's input file for properly built executables.
+# Relies on process exit code. Different for 32bit vs 64bit.
+ifeq ($(ARCH_DATA_MODEL),32)
+define binary_file_verification # binary_file
+( \
+ $(call binary_file_safeseh_verification,$1); \
+ $(call binary_file_nxcompat_verification,$1); \
+ $(call binary_file_dynamicbase_verification,$1); \
+ $(call binary_file_dll_verification,$1); \
+)
+endef
+else
+define binary_file_verification # binary_file
+( \
+ $(call binary_file_nxcompat_verification,$1); \
+ $(call binary_file_dynamicbase_verification,$1); \
+ $(call binary_file_dll_verification,$1); \
+)
+endef
+endif
+
else
# Macro to check it's input file for banned dependencies and verify the