# HG changeset patch # User cl # Date 1298504959 28800 # Node ID 29efcc797dc68968d5c57ec9dc5a4870fdcd89f4 # Parent 6a5f458575cffedcb1f471945b8cfc39a535e28f# Parent b502abe966ed19dcda5abd44cd5bc43537bc46e7 Merge diff -r 6a5f458575cf -r 29efcc797dc6 jdk/LICENSE --- a/jdk/LICENSE Fri Feb 18 14:23:48 2011 -0800 +++ b/jdk/LICENSE Wed Feb 23 15:49:19 2011 -0800 @@ -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 -r 6a5f458575cf -r 29efcc797dc6 jdk/make/common/Defs-windows.gmk --- a/jdk/make/common/Defs-windows.gmk Fri Feb 18 14:23:48 2011 -0800 +++ b/jdk/make/common/Defs-windows.gmk Wed Feb 23 15:49:19 2011 -0800 @@ -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 -r 6a5f458575cf -r 29efcc797dc6 jdk/make/common/Release.gmk --- a/jdk/make/common/Release.gmk Fri Feb 18 14:23:48 2011 -0800 +++ b/jdk/make/common/Release.gmk Wed Feb 23 15:49:19 2011 -0800 @@ -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 -r 6a5f458575cf -r 29efcc797dc6 jdk/make/common/shared/Defs-windows.gmk --- a/jdk/make/common/shared/Defs-windows.gmk Fri Feb 18 14:23:48 2011 -0800 +++ b/jdk/make/common/shared/Defs-windows.gmk Wed Feb 23 15:49:19 2011 -0800 @@ -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