提交 bef01c09 编写于 作者: Y yan

Merge

...@@ -23,3 +23,10 @@ d8eb2738db6b148911177d9bcfe888109b7f2f71 jdk7-b44 ...@@ -23,3 +23,10 @@ d8eb2738db6b148911177d9bcfe888109b7f2f71 jdk7-b44
4b03e27a44090d1f646af28dc58f9ead827e24c7 jdk7-b46 4b03e27a44090d1f646af28dc58f9ead827e24c7 jdk7-b46
b4ac413b1f129eeef0acab3f31081c1b7dfe3b27 jdk7-b47 b4ac413b1f129eeef0acab3f31081c1b7dfe3b27 jdk7-b47
5fbd9ea7def17186693b6f7099b5d0dc73903eee jdk7-b48 5fbd9ea7def17186693b6f7099b5d0dc73903eee jdk7-b48
8311105ea7a3db7bcbcb2b696459127c7f2297a4 jdk7-b49
58ba2cd5a25053684ec53205d95edeeaa0006f13 jdk7-b50
fea0898259ae41c73620b1815aa48f036216155c jdk7-b51
bcbeadb4a5d759b29e876ee2c83401e91ff22f60 jdk7-b52
a2033addca678f9e4c0d92ffa1e389171cc9321d jdk7-b53
d1c43d1f5676a24ba86221ac7cad5694f3a9afda jdk7-b54
522bb5aa17e0c0cff00b1ed7d1b51bc4db2cfef9 jdk7-b55
...@@ -61,6 +61,28 @@ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN ...@@ -61,6 +61,28 @@ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
THE POSSIBILITY OF SUCH DAMAGE. THE POSSIBILITY OF SUCH DAMAGE.
%% This notice is provided with respect to littlecms, which may be included with this software:
Little cms
Copyright (C) 1998-2004 Marti Maria
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
%% This notice is provided with respect to zlib 1.1.3, which may be included with this software: %% This notice is provided with respect to zlib 1.1.3, which may be included with this software:
Acknowledgments: Acknowledgments:
...@@ -115,16 +137,6 @@ COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQ ...@@ -115,16 +137,6 @@ COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQ
The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to the software without specific, written prior permission. Title to copyright in this software and any associated documentation will at all times remain with copyright holders. The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to the software without specific, written prior permission. Title to copyright in this software and any associated documentation will at all times remain with copyright holders.
____________________________________ ____________________________________
This formulation of W3C's notice and license became active on August 14 1998 so as to improve compatibility with GPL. This version ensures that W3C software licensing terms are no more restrictive than GPL and consequently W3C software may be distributed in GPL packages. See the older formulation for the policy prior to this date. Please see our Copyright FAQ for common questions about using materials from our site, including specific terms and conditions for packages like libwww, Amaya, and Jigsaw. Other questions about this notice can be directed to site-policy@w3.org. This formulation of W3C's notice and license became active on August 14 1998 so as to improve compatibility with GPL. This version ensures that W3C software licensing terms are no more restrictive than GPL and consequently W3C software may be distributed in GPL packages. See the older formulation for the policy prior to this date. Please see our Copyright FAQ for common questions about using materials from our site, including specific terms and conditions for packages like libwww, Amaya, and Jigsaw. Other questions about this notice can be directed to site-policy@w3.org.
 
%% This notice is provided with respect to jscheme.jar, which may be included with this software:
Software License Agreement
Copyright © 1998-2002 by Peter Norvig.
Permission is granted to anyone to use this software, in source or object code form, on any computer system, and to modify, compile, decompile, run, and redistribute it to anyone else, subject to the following restrictions:
1.The author makes no warranty of any kind, either expressed or implied, about the suitability of this software for any purpose.
2.The author accepts no liability of any kind for damages or other consequences of the use of this software, even if they arise from defects in the software.
3.The origin of this software must not be misrepresented, either by explicit claim or by omission.
4.Altered versions must be plainly marked as such, and must not be misrepresented as being the original software. Altered versions may be distributed in packages under other licenses (such as the GNU license).
If you find this software useful, it would be nice if you let me (peter@norvig.com) know about it, and nicer still if you send me modifications that you are willing to share. However, you are not required to do so.
%% This notice is provided with respect to PC/SC Lite for Suse Linux v. 1.1.1, which may be included with this software: %% This notice is provided with respect to PC/SC Lite for Suse Linux v. 1.1.1, which may be included with this software:
......
...@@ -41,7 +41,15 @@ include $(BUILDDIR)/common/Defs.gmk ...@@ -41,7 +41,15 @@ include $(BUILDDIR)/common/Defs.gmk
# Note : some targets are double colon rules and some single colon rules # Note : some targets are double colon rules and some single colon rules
# within common included gmk files : that is why the following for loop # within common included gmk files : that is why the following for loop
# has been duplicated. # has been duplicated.
SUBDIRS = snmp
# When building the openjdk, build snmp only if importing binary plugs,
ifdef OPENJDK
ifeq ($(IMPORT_BINARY_PLUGS),true)
SUBDIRS = snmp
endif
else
SUBDIRS = snmp
endif
all build: all build:
$(SUBDIRS-loop) $(SUBDIRS-loop)
......
...@@ -94,6 +94,9 @@ ifndef OPTIMIZATION_LEVEL ...@@ -94,6 +94,9 @@ ifndef OPTIMIZATION_LEVEL
OPTIMIZATION_LEVEL = LOWER OPTIMIZATION_LEVEL = LOWER
endif endif
endif endif
ifndef FASTDEBUG_OPTIMIZATION_LEVEL
FASTDEBUG_OPTIMIZATION_LEVEL = LOWER
endif
CC_OPT/NONE = CC_OPT/NONE =
CC_OPT/LOWER = -O2 CC_OPT/LOWER = -O2
...@@ -116,6 +119,14 @@ LDFLAGS_COMMON_sparc += -m32 -mcpu=v9 ...@@ -116,6 +119,14 @@ LDFLAGS_COMMON_sparc += -m32 -mcpu=v9
CFLAGS_REQUIRED = $(CFLAGS_REQUIRED_$(ARCH)) CFLAGS_REQUIRED = $(CFLAGS_REQUIRED_$(ARCH))
LDFLAGS_COMMON += $(LDFLAGS_COMMON_$(ARCH)) LDFLAGS_COMMON += $(LDFLAGS_COMMON_$(ARCH))
# If this is a --hash-style=gnu system, use --hash-style=both
# The gnu .hash section won't work on some Linux systems like SuSE 10.
_HAS_HASH_STYLE_GNU:=$(shell $(CC) -dumpspecs | $(GREP) -- '--hash-style=gnu')
ifneq ($(_HAS_HASH_STYLE_GNU),)
LDFLAGS_HASH_STYLE = -Wl,--hash-style=both
endif
LDFLAGS_COMMON += $(LDFLAGS_HASH_STYLE)
# #
# Selection of warning messages # Selection of warning messages
# #
...@@ -165,8 +176,8 @@ CXXFLAGS_COMMON += $(CFLAGS_REQUIRED) ...@@ -165,8 +176,8 @@ CXXFLAGS_COMMON += $(CFLAGS_REQUIRED)
# FASTDEBUG: Optimize the code in the -g versions, gives us a faster debug java # FASTDEBUG: Optimize the code in the -g versions, gives us a faster debug java
ifeq ($(FASTDEBUG), true) ifeq ($(FASTDEBUG), true)
CFLAGS_DBG += $(CC_OPT/LOWER) CFLAGS_DBG += $(CC_OPT/$(FASTDEBUG_OPTIMIZATION_LEVEL))
CXXFLAGS_DBG += $(CC_OPT/LOWER) CXXFLAGS_DBG += $(CC_OPT/$(FASTDEBUG_OPTIMIZATION_LEVEL))
endif endif
CPPFLAGS_COMMON = -D$(ARCH) -DARCH='"$(ARCH)"' -DLINUX $(VERSION_DEFINES) \ CPPFLAGS_COMMON = -D$(ARCH) -DARCH='"$(ARCH)"' -DLINUX $(VERSION_DEFINES) \
......
...@@ -93,6 +93,9 @@ ifndef OPTIMIZATION_LEVEL ...@@ -93,6 +93,9 @@ ifndef OPTIMIZATION_LEVEL
OPTIMIZATION_LEVEL = LOWER OPTIMIZATION_LEVEL = LOWER
endif endif
endif endif
ifndef FASTDEBUG_OPTIMIZATION_LEVEL
FASTDEBUG_OPTIMIZATION_LEVEL = LOWER
endif
# #
# If -Xa is in CFLAGS_COMMON it will end up ahead of $(CC_OPT) for the # If -Xa is in CFLAGS_COMMON it will end up ahead of $(CC_OPT) for the
...@@ -143,8 +146,8 @@ endif ...@@ -143,8 +146,8 @@ endif
# Performance/size of files should be about the same, maybe smaller. # Performance/size of files should be about the same, maybe smaller.
# #
ifeq ($(FASTDEBUG), true) ifeq ($(FASTDEBUG), true)
CFLAGS_DEBUG_OPTION = -g $(CC_OPT/LOWER) CFLAGS_DEBUG_OPTION = -g $(CC_OPT/$(FASTDEBUG_OPTIMIZATION_LEVEL))
CXXFLAGS_DEBUG_OPTION = -g0 $(CXX_OPT/LOWER) CXXFLAGS_DEBUG_OPTION = -g0 $(CXX_OPT/$(FASTDEBUG_OPTIMIZATION_LEVEL))
endif endif
CFLAGS_COMMON = -L$(OBJDIR) CFLAGS_COMMON = -L$(OBJDIR)
......
...@@ -70,7 +70,6 @@ PLATFORM_INCLUDE = $(INCLUDEDIR)/$(PLATFORM_INCLUDE_NAME) ...@@ -70,7 +70,6 @@ PLATFORM_INCLUDE = $(INCLUDEDIR)/$(PLATFORM_INCLUDE_NAME)
# not to be REBASEd, see deploy/make/common/Release.gmk. # not to be REBASEd, see deploy/make/common/Release.gmk.
# msvcrt.dll, msvcrnn.dll [msvcr71 or msvcr80 or msvcr90] : Microsoft runtimes # msvcrt.dll, msvcrnn.dll [msvcr71 or msvcr80 or msvcr90] : Microsoft runtimes
MS_RUNTIME_LIBRARIES = msvcrt.dll MS_RUNTIME_LIBRARIES = msvcrt.dll
MSVCRNN_DLL =
ifeq ($(ARCH_DATA_MODEL), 32) ifeq ($(ARCH_DATA_MODEL), 32)
ifeq ($(COMPILER_VERSION), VS2003) ifeq ($(COMPILER_VERSION), VS2003)
MSVCRNN_DLL = msvcr71.dll MSVCRNN_DLL = msvcr71.dll
...@@ -89,6 +88,13 @@ ifeq ($(ARCH_DATA_MODEL), 32) ...@@ -89,6 +88,13 @@ ifeq ($(ARCH_DATA_MODEL), 32)
endif endif
endif endif
ifeq ($(ARCH_DATA_MODEL), 64)
ifeq ($(COMPILER_VERSION), VS2008)
MSVCRNN_DLL = msvcr90.dll
MSVCPNN_DLL = msvcp90.dll
MS_RUNTIME_LIBRARIES += $(MSVCRNN_DLL)
endif
endif
EXTRA_LFLAGS += /LIBPATH:$(DXSDK_LIB_PATH) EXTRA_LFLAGS += /LIBPATH:$(DXSDK_LIB_PATH)
...@@ -105,6 +111,9 @@ ifndef OPTIMIZATION_LEVEL ...@@ -105,6 +111,9 @@ ifndef OPTIMIZATION_LEVEL
OPTIMIZATION_LEVEL = LOWER OPTIMIZATION_LEVEL = LOWER
endif endif
endif endif
ifndef FASTDEBUG_OPTIMIZATION_LEVEL
FASTDEBUG_OPTIMIZATION_LEVEL = LOWER
endif
ifeq ($(CC_VERSION),msvc) ifeq ($(CC_VERSION),msvc)
# Visual Studio .NET 2003 or VS2003 compiler option definitions: # Visual Studio .NET 2003 or VS2003 compiler option definitions:
...@@ -344,17 +353,12 @@ CFLAGS_COMMON += -Fd$(OBJDIR)/$(basename $(@F)).pdb -Fm$(OBJDIR)/$(basename $(@F ...@@ -344,17 +353,12 @@ CFLAGS_COMMON += -Fd$(OBJDIR)/$(basename $(@F)).pdb -Fm$(OBJDIR)/$(basename $(@F
COMPILER_WARNINGS_TO_IGNORE = 4800 COMPILER_WARNINGS_TO_IGNORE = 4800
CFLAGS_COMMON += $(COMPILER_WARNINGS_TO_IGNORE:%=-wd%) CFLAGS_COMMON += $(COMPILER_WARNINGS_TO_IGNORE:%=-wd%)
#
# Add warnings and extra on 64bit issues
#
ifeq ($(ARCH_DATA_MODEL), 64)
CFLAGS_COMMON += -Wp64
endif
# #
# Treat compiler warnings as errors, if requested # Treat compiler warnings as errors, if requested
# #
CFLAGS_COMMON += -W$(COMPILER_WARNING_LEVEL) CFLAGS_COMMON += -W$(COMPILER_WARNING_LEVEL)
# Turn off security warnings about using the standard C library function strcpy
CFLAGS_COMMON += -D _CRT_SECURE_NO_DEPRECATE
ifeq ($(COMPILER_WARNINGS_FATAL),true) ifeq ($(COMPILER_WARNINGS_FATAL),true)
CFLAGS_COMMON += -WX CFLAGS_COMMON += -WX
endif endif
...@@ -398,16 +402,7 @@ ifeq ($(ARCH), ia64) ...@@ -398,16 +402,7 @@ ifeq ($(ARCH), ia64)
# SA will never be supported here. # SA will never be supported here.
INCLUDE_SA = false INCLUDE_SA = false
else else
# Hopefully, SA will be supported here one of these days, INCLUDE_SA = true
# and these will be changed to true. Until then,
# to build SA on windows, do a control build with
# BUILD_WIN_SA=1
# on the make command.
ifdef BUILD_WIN_SA
INCLUDE_SA = true
else
INCLUDE_SA = false
endif
endif endif
# Settings for the VERSIONINFO tap on windows. # Settings for the VERSIONINFO tap on windows.
......
...@@ -145,6 +145,11 @@ endif ...@@ -145,6 +145,11 @@ endif
# 2. ALT_BINARY_PLUGS_PATH overrides all locations of classes and libraries # 2. ALT_BINARY_PLUGS_PATH overrides all locations of classes and libraries
# 3. ALT_BUILD_BINARY_PLUGS_PATH is used to find a ALT_BINARY_PLUGS_PATH # 3. ALT_BUILD_BINARY_PLUGS_PATH is used to find a ALT_BINARY_PLUGS_PATH
# 4. ALT_CLOSED_JDK_IMPORT_PATH is used to locate classes and libraries # 4. ALT_CLOSED_JDK_IMPORT_PATH is used to locate classes and libraries
# Note: If any of the ALT_ variables are modified here, it is assumed
# that the build should be done with IMPORT_BINARY_PLUGS=true as
# well. Otherwise the default will be IMPORT_BINARY_PLUGS=false.
# Lastly, setting IMPORT_BINARY_PLUGS=false on the command line
# will override this logic, and plugs will not be imported.
# #
# Always needed, defines the name of the imported/exported jarfile # Always needed, defines the name of the imported/exported jarfile
...@@ -155,9 +160,11 @@ ifdef OPENJDK ...@@ -155,9 +160,11 @@ ifdef OPENJDK
CLOSED_JDK_IMPORT_PATH = $(ALT_CLOSED_JDK_IMPORT_PATH) CLOSED_JDK_IMPORT_PATH = $(ALT_CLOSED_JDK_IMPORT_PATH)
BINARY_PLUGS_PATH = $(CLOSED_JDK_IMPORT_PATH) BINARY_PLUGS_PATH = $(CLOSED_JDK_IMPORT_PATH)
BINARY_PLUGS_JARFILE = $(CLOSED_JDK_IMPORT_PATH)/jre/lib/rt.jar BINARY_PLUGS_JARFILE = $(CLOSED_JDK_IMPORT_PATH)/jre/lib/rt.jar
IMPORT_BINARY_PLUGS=true
endif endif
ifdef ALT_BUILD_BINARY_PLUGS_PATH ifdef ALT_BUILD_BINARY_PLUGS_PATH
BUILD_BINARY_PLUGS_PATH = $(ALT_BUILD_BINARY_PLUGS_PATH) BUILD_BINARY_PLUGS_PATH = $(ALT_BUILD_BINARY_PLUGS_PATH)
IMPORT_BINARY_PLUGS=true
else else
BUILD_BINARY_PLUGS_PATH = $(SLASH_JAVA)/re/jdk/$(JDK_VERSION)/promoted/latest/openjdk/binaryplugs BUILD_BINARY_PLUGS_PATH = $(SLASH_JAVA)/re/jdk/$(JDK_VERSION)/promoted/latest/openjdk/binaryplugs
endif endif
...@@ -166,9 +173,11 @@ ifdef OPENJDK ...@@ -166,9 +173,11 @@ ifdef OPENJDK
ifdef ALT_BINARY_PLUGS_PATH ifdef ALT_BINARY_PLUGS_PATH
BINARY_PLUGS_PATH = $(ALT_BINARY_PLUGS_PATH) BINARY_PLUGS_PATH = $(ALT_BINARY_PLUGS_PATH)
BINARY_PLUGS_JARFILE = $(BINARY_PLUGS_PATH)/jre/lib/$(BINARY_PLUGS_JARNAME) BINARY_PLUGS_JARFILE = $(BINARY_PLUGS_PATH)/jre/lib/$(BINARY_PLUGS_JARNAME)
IMPORT_BINARY_PLUGS=true
endif endif
ifdef ALT_BINARY_PLUGS_JARFILE ifdef ALT_BINARY_PLUGS_JARFILE
BINARY_PLUGS_JARFILE = $(ALT_BINARY_PLUGS_JARFILE) BINARY_PLUGS_JARFILE = $(ALT_BINARY_PLUGS_JARFILE)
IMPORT_BINARY_PLUGS=true
endif endif
endif # OPENJDK endif # OPENJDK
......
...@@ -27,8 +27,6 @@ ...@@ -27,8 +27,6 @@
# GCC Compiler settings # GCC Compiler settings
# #
COMPILER_NAME=GCC
ifeq ($(PLATFORM), windows) ifeq ($(PLATFORM), windows)
# Settings specific to Windows, pretty stale, hasn't been used # Settings specific to Windows, pretty stale, hasn't been used
...@@ -68,24 +66,6 @@ ifeq ($(PLATFORM), linux) ...@@ -68,24 +66,6 @@ ifeq ($(PLATFORM), linux)
else else
CXX = $(COMPILER_PATH)g++ CXX = $(COMPILER_PATH)g++
endif endif
ifneq ("$(findstring sparc,$(ARCH))", "")
# sparc or sparcv9
REQUIRED_CC_VER = 4.0
REQUIRED_GCC_VER = 4.0.*
else
REQUIRED_CC_VER = 3.2
ifeq ($(ARCH_DATA_MODEL), 32)
REQUIRED_GCC_VER = 3.2.1*
REQUIRED_GCC_VER_INT = 3.2.1-7a
else
ifeq ($(ARCH), amd64)
REQUIRED_GCC_VER = 3.2.*
endif
ifeq ($(ARCH), ia64)
REQUIRED_GCC_VER = 2.9[56789].*
endif
endif
endif
# Option used to create a shared library # Option used to create a shared library
SHARED_LIBRARY_FLAG = -shared -mimpure-text SHARED_LIBRARY_FLAG = -shared -mimpure-text
SUN_COMP_VER := $(shell $(CC) --verbose 2>&1 ) SUN_COMP_VER := $(shell $(CC) --verbose 2>&1 )
...@@ -98,21 +78,17 @@ ifeq ($(PLATFORM), solaris) ...@@ -98,21 +78,17 @@ ifeq ($(PLATFORM), solaris)
CC = $(COMPILER_PATH)gcc CC = $(COMPILER_PATH)gcc
CPP = $(COMPILER_PATH)gcc -E CPP = $(COMPILER_PATH)gcc -E
CXX = $(COMPILER_PATH)g++ CXX = $(COMPILER_PATH)g++
REQUIRED_CC_VER = 3.2
# Option used to create a shared library # Option used to create a shared library
SHARED_LIBRARY_FLAG = -G SHARED_LIBRARY_FLAG = -G
# But gcc is still needed no matter what on 32bit
ifeq ($(ARCH_DATA_MODEL), 32)
REQUIRED_GCC_VER = 2.95
GCC =$(GCC_COMPILER_PATH)gcc
_GCC_VER :=$(shell $(GCC) -dumpversion 2>&1 )
GCC_VER :=$(call GetVersion,"$(_GCC_VER)")
endif
endif endif
# Get gcc version # Get gcc version
_CC_VER :=$(shell $(CC) -dumpversion 2>&1 ) _CC_VER :=$(shell $(CC) -dumpversion 2>&1 )
CC_VER :=$(call GetVersion,"$(_CC_VER)") CC_VER :=$(call GetVersion,"$(_CC_VER)")
# Name of compiler
COMPILER_NAME = GCC$(call MajorVersion,$(CC_VER))
COMPILER_VERSION = $(COMPILER_NAME)
...@@ -41,8 +41,6 @@ ifeq ($(PLATFORM), windows) ...@@ -41,8 +41,6 @@ ifeq ($(PLATFORM), windows)
# Fill in unknown values # Fill in unknown values
COMPILER_NAME=Unknown MSVC Compiler COMPILER_NAME=Unknown MSVC Compiler
COMPILER_VERSION= COMPILER_VERSION=
REQUIRED_CC_VER=
REQUIRED_LINK_VER=
# unset any GNU Make settings of MFLAGS and MAKEFLAGS which may mess up nmake # unset any GNU Make settings of MFLAGS and MAKEFLAGS which may mess up nmake
NMAKE = MFLAGS= MAKEFLAGS= $(COMPILER_PATH)nmake -nologo NMAKE = MFLAGS= MAKEFLAGS= $(COMPILER_PATH)nmake -nologo
...@@ -56,8 +54,6 @@ ifeq ($(PLATFORM), windows) ...@@ -56,8 +54,6 @@ ifeq ($(PLATFORM), windows)
CC_MAJORVER :=$(call MajorVersion,$(CC_VER)) CC_MAJORVER :=$(call MajorVersion,$(CC_VER))
ifeq ($(CC_MAJORVER), 13) ifeq ($(CC_MAJORVER), 13)
# This should be: CC_VER=13.10.3077 LINK_VER=7.10.3077 # This should be: CC_VER=13.10.3077 LINK_VER=7.10.3077
REQUIRED_CC_VER = 13.10.3077
REQUIRED_LINK_VER = 7.10.3077
COMPILER_NAME=Visual Studio .NET 2003 Professional C++ COMPILER_NAME=Visual Studio .NET 2003 Professional C++
COMPILER_VERSION=VS2003 COMPILER_VERSION=VS2003
REBASE = $(COMPILER_PATH)../../Common7/Tools/Bin/rebase REBASE = $(COMPILER_PATH)../../Common7/Tools/Bin/rebase
...@@ -67,9 +63,6 @@ ifeq ($(PLATFORM), windows) ...@@ -67,9 +63,6 @@ ifeq ($(PLATFORM), windows)
endif endif
endif endif
ifeq ($(CC_MAJORVER), 14) ifeq ($(CC_MAJORVER), 14)
# This should be: CC_VER=14.00.50727.42 LINK_VER=8.00.50727.42
REQUIRED_CC_VER = 14.00.50727.42
REQUIRED_LINK_VER = 8.00.50727.42
COMPILER_NAME=Visual Studio 8 COMPILER_NAME=Visual Studio 8
COMPILER_VERSION=VS2005 COMPILER_VERSION=VS2005
REBASE = $(COMPILER_PATH)../../Common8/Tools/Bin/rebase REBASE = $(COMPILER_PATH)../../Common8/Tools/Bin/rebase
...@@ -80,9 +73,6 @@ ifeq ($(PLATFORM), windows) ...@@ -80,9 +73,6 @@ ifeq ($(PLATFORM), windows)
endif endif
endif endif
ifeq ($(CC_MAJORVER), 15) ifeq ($(CC_MAJORVER), 15)
# This should be: CC_VER=15.00.21022.08 LINK_VER=9.00.21022.08
REQUIRED_CC_VER = 15.00.21022.08
REQUIRED_LINK_VER = 9.00.21022.08
COMPILER_NAME=Visual Studio 9 COMPILER_NAME=Visual Studio 9
COMPILER_VERSION=VS2008 COMPILER_VERSION=VS2008
#rebase and midl moved out of Visual Studio into the SDK: #rebase and midl moved out of Visual Studio into the SDK:
...@@ -99,14 +89,6 @@ ifeq ($(PLATFORM), windows) ...@@ -99,14 +89,6 @@ ifeq ($(PLATFORM), windows)
CC_MAJORVER :=$(call MajorVersion,$(CC_VER)) CC_MAJORVER :=$(call MajorVersion,$(CC_VER))
CC_MINORVER :=$(call MinorVersion,$(CC_VER)) CC_MINORVER :=$(call MinorVersion,$(CC_VER))
CC_MICROVER :=$(call MicroVersion,$(CC_VER)) CC_MICROVER :=$(call MicroVersion,$(CC_VER))
ifeq ($(ARCH), ia64)
REQUIRED_CC_VER = 13.00.9337.7
REQUIRED_LINK_VER = 7.00.9337.7
endif
ifeq ($(ARCH), amd64)
REQUIRED_CC_VER = 14.00.40310.41
REQUIRED_LINK_VER = 8.00.40310.39
endif
ifeq ($(CC_MAJORVER), 13) ifeq ($(CC_MAJORVER), 13)
ifeq ($(ARCH), ia64) ifeq ($(ARCH), ia64)
# This should be: CC_VER=13.00.9337.7 LINK_VER=7.00.9337.7 # This should be: CC_VER=13.00.9337.7 LINK_VER=7.00.9337.7
...@@ -130,6 +112,12 @@ ifeq ($(PLATFORM), windows) ...@@ -130,6 +112,12 @@ ifeq ($(PLATFORM), windows)
endif endif
endif endif
endif endif
ifeq ($(CC_MAJORVER), 15)
COMPILER_NAME=Microsoft Windows SDK with Visual Studio 9 (6001.18000.367)
COMPILER_VERSION=VS2008
RC = $(MSSDK61)/Bin/X64/rc.exe
MT = $(MSSDK61)/Bin/X64/mt.exe
endif
# This will cause problems if ALT_COMPILER_PATH is defined to "" # This will cause problems if ALT_COMPILER_PATH is defined to ""
# which is a directive to use the PATH. # which is a directive to use the PATH.
REBASE = $(COMPILER_PATH)../REBASE REBASE = $(COMPILER_PATH)../REBASE
......
...@@ -27,32 +27,20 @@ ...@@ -27,32 +27,20 @@
# Sun Studio Compiler settings # Sun Studio Compiler settings
# #
COMPILER_NAME=Sun Studio
# Sun Studio Compiler settings specific to Solaris # Sun Studio Compiler settings specific to Solaris
ifeq ($(PLATFORM), solaris) ifeq ($(PLATFORM), solaris)
COMPILER_VERSION=SS12
REQUIRED_CC_VER=5.9
CC = $(COMPILER_PATH)cc CC = $(COMPILER_PATH)cc
CPP = $(COMPILER_PATH)cc -E CPP = $(COMPILER_PATH)cc -E
CXX = $(COMPILER_PATH)CC CXX = $(COMPILER_PATH)CC
LINT = $(COMPILER_PATH)lint LINT = $(COMPILER_PATH)lint
# Option used to create a shared library # Option used to create a shared library
SHARED_LIBRARY_FLAG = -G SHARED_LIBRARY_FLAG = -G
# But gcc is still needed no matter what on 32bit GCC =$(GCC_COMPILER_PATH)gcc
ifeq ($(ARCH_DATA_MODEL), 32)
REQUIRED_GCC_VER = 2.95
GCC =$(GCC_COMPILER_PATH)gcc
_GCC_VER :=$(shell $(GCC) -dumpversion 2>&1 )
GCC_VER :=$(call GetVersion,"$(_GCC_VER)")
endif
endif endif
# Sun Studio Compiler settings specific to Linux # Sun Studio Compiler settings specific to Linux
ifeq ($(PLATFORM), linux) ifeq ($(PLATFORM), linux)
# This has not been tested # This has not been tested
COMPILER_VERSION=SS12
REQUIRED_CC_VER=5.9
CC = $(COMPILER_PATH)cc CC = $(COMPILER_PATH)cc
CPP = $(COMPILER_PATH)cc -E CPP = $(COMPILER_PATH)cc -E
CXX = $(COMPILER_PATH)CC CXX = $(COMPILER_PATH)CC
...@@ -74,6 +62,18 @@ endif ...@@ -74,6 +62,18 @@ endif
_CC_VER :=$(shell $(CC) -V 2>&1 | $(HEAD) -n 1) _CC_VER :=$(shell $(CC) -V 2>&1 | $(HEAD) -n 1)
CC_VER :=$(call GetVersion,"$(_CC_VER)") CC_VER :=$(call GetVersion,"$(_CC_VER)")
# Name of compilers being used
COMPILER_VERSION-5.7 = SS10
COMPILER_NAME-5.7 = Sun Studio 10
COMPILER_VERSION-5.8 = SS11
COMPILER_NAME-5.8 = Sun Studio 11
COMPILER_VERSION-5.9 = SS12
COMPILER_NAME-5.9 = Sun Studio 12
COMPILER_VERSION-5.10 = SS13
COMPILER_NAME-5.10 = Sun Studio 13
COMPILER_VERSION = $(COMPILER_VERSION-$(CC_VER))
COMPILER_NAME = $(COMPILER_NAME-$(CC_VER))
# Arch specific settings (determines type of .o files and instruction set) # Arch specific settings (determines type of .o files and instruction set)
# Starting in SS12 (5.9), the arch options changed. # Starting in SS12 (5.9), the arch options changed.
# The assembler /usr/ccs/bin/as wants older SS11 (5.8) style options. # The assembler /usr/ccs/bin/as wants older SS11 (5.8) style options.
......
...@@ -59,7 +59,15 @@ else ...@@ -59,7 +59,15 @@ else
ADD_CLIENT_VM_OPTION = true ADD_CLIENT_VM_OPTION = true
endif endif
endif endif
JAVA_JVM_FLAGS =
# Options for hotspot to turn off printing of options with fastdebug version
# and creating the hotspot.log file.
JAVA_HOTSPOT_DISABLE_PRINT_VMOPTIONS = \
-XX:-PrintVMOptions -XX:+UnlockDiagnosticVMOptions -XX:-LogVMOutput
# JVM options
JAVA_JVM_FLAGS = $(JAVA_HOTSPOT_DISABLE_PRINT_VMOPTIONS)
ifeq ($(ADD_CLIENT_VM_OPTION), true) ifeq ($(ADD_CLIENT_VM_OPTION), true)
JAVA_JVM_FLAGS += -client JAVA_JVM_FLAGS += -client
endif endif
...@@ -129,6 +137,9 @@ JAVACFLAGS += $(OTHER_JAVACFLAGS) ...@@ -129,6 +137,9 @@ JAVACFLAGS += $(OTHER_JAVACFLAGS)
# Needed for javah # Needed for javah
JAVAHFLAGS += -bootclasspath $(CLASSBINDIR) JAVAHFLAGS += -bootclasspath $(CLASSBINDIR)
# Needed for JAVADOC and BOOT_JAVACFLAGS
NO_PROPRIETARY_API_WARNINGS = -XDignore.symbol.file=true
# Langtools # Langtools
ifdef LANGTOOLS_DIST ifdef LANGTOOLS_DIST
JAVAC_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/javac.jar JAVAC_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/javac.jar
...@@ -192,6 +203,8 @@ endif ...@@ -192,6 +203,8 @@ endif
BOOT_JAVACFLAGS += -encoding ascii BOOT_JAVACFLAGS += -encoding ascii
BOOT_JAR_JFLAGS += $(JAR_JFLAGS) BOOT_JAR_JFLAGS += $(JAR_JFLAGS)
BOOT_JAVACFLAGS += $(NO_PROPRIETARY_API_WARNINGS)
BOOT_JAVA_CMD = $(BOOTDIR)/bin/java $(JAVA_TOOLS_FLAGS) BOOT_JAVA_CMD = $(BOOTDIR)/bin/java $(JAVA_TOOLS_FLAGS)
BOOT_JAVAC_CMD = $(BOOTDIR)/bin/javac $(JAVAC_JVM_FLAGS) $(BOOT_JAVACFLAGS) BOOT_JAVAC_CMD = $(BOOTDIR)/bin/javac $(JAVAC_JVM_FLAGS) $(BOOT_JAVACFLAGS)
BOOT_JAR_CMD = $(BOOTDIR)/bin/jar BOOT_JAR_CMD = $(BOOTDIR)/bin/jar
......
...@@ -91,14 +91,14 @@ endif ...@@ -91,14 +91,14 @@ endif
ifneq "$(origin ALT_COMPILER_PATH)" "undefined" ifneq "$(origin ALT_COMPILER_PATH)" "undefined"
COMPILER_PATH :=$(call PrefixPath,$(ALT_COMPILER_PATH)) COMPILER_PATH :=$(call PrefixPath,$(ALT_COMPILER_PATH))
else else
# Careful here, COMPILER_VERSION may not be defined yet (see Compiler.gmk) # Careful here, REQUIRED_COMPILER_VERSION may not be defined yet (see Defs-versions.gmk)
# If the place where we keep a set of Sun Studio compilers doesn't exist, # If the place where we keep a set of Sun Studio compilers doesn't exist,
# try and use /opt/SUNWspro, the default location for the SS compilers. # try and use /opt/SUNWspro, the default location for the SS compilers.
# (DirExists checks for this path twice, an automount double check) # (DirExists checks for this path twice, an automount double check)
_SUNSTUDIO_SET_ROOT=$(JDK_DEVTOOLS_DIR)/$(ARCH_FAMILY)/SUNWspro _SUNSTUDIO_SET_ROOT=$(JDK_DEVTOOLS_DIR)/$(ARCH_FAMILY)/SUNWspro
SUNSTUDIO_SET_ROOT:=$(call DirExists,$(_SUNSTUDIO_SET_ROOT),$(_SUNSTUDIO_SET_ROOT),) SUNSTUDIO_SET_ROOT:=$(call DirExists,$(_SUNSTUDIO_SET_ROOT),$(_SUNSTUDIO_SET_ROOT),)
ifneq ($(SUNSTUDIO_SET_ROOT),) ifneq ($(SUNSTUDIO_SET_ROOT),)
COMPILER_PATH =$(SUNSTUDIO_SET_ROOT)/$(COMPILER_VERSION)/bin/ COMPILER_PATH =$(SUNSTUDIO_SET_ROOT)/$(REQUIRED_COMPILER_VERSION)/bin/
else else
COMPILER_PATH =/opt/SUNWspro/bin/ COMPILER_PATH =/opt/SUNWspro/bin/
endif endif
......
#
# Copyright 2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Sun designates this
# particular file as subject to the "Classpath" exception as provided
# by Sun in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
# CA 95054 USA or visit www.sun.com if you need additional information or
# have any questions.
#
#
# WARNING: This file is shared with other workspaces.
#
# This file needs these set: CC_VERSION, PLATFORM, ARCH_FAMILY, and ARCH_DATA_MODEL.
##########################################################################
#
# List of JDK official minimum, expected, or required versions:
#
# REQUIRED_ALSA_VERSION
# Linux only: The ALSA sound library version expected.
#
# REQUIRED_ANT_VER
# The minimum 'ant' version.
#
# REQUIRED_BOOT_VER
# The minimum boot jdk version.
#
# REQUIRED_CC_VER
# The primary C compiler version expected.
#
# REQUIRED_COMPILER_NAME
# The long descriptive name of the compiler we should use
#
# REQUIRED_COMPILER_VERSION
# The one word name that identifies the compilers being used.
#
# REQUIRED_CYGWIN_VER
# Windows only: If CYGWIN is used, the minimum CYGWIN version.
#
# REQUIRED_DXSDK_VER
# Windows only: The version of DirectX SDK expected.
#
# REQUIRED_FREE_SPACE
# The minimum disk space needed as determined by running 'du -sk' on a fully
# built workspace.
#
# REQUIRED_FREETYPE_VERSION
# If we are using freetype, the freetype version expected.
#
# REQUIRED_GCC_VER
# Solaris and Linux only. The required version of gcc/g++ for the plugin.
#
# REQUIRED_LINK_VER
# Windows only: The version of link.exe expected.
#
# REQUIRED_MAKE_VER
# The minimum version of GNU make.
#
# REQUIRED_MKS_VER
# Windows only: If MKS used instead of CYGWIN, the minimum version of MKS.
#
# REQUIRED_OS_VARIANT_NAME
# The OS variation name required.
# Solaris: Solaris or OpenSolaris
# Windows: Windows2000, WindowsXP, Windows2003, etc.
# Linux: Fedora, RedHat, SuSE, Ubuntu, etc.
#
# REQUIRED_OS_VARIANT_VERSION
# The version number associated with the above OS variant name.
# Solaris: output of uname -r
# Windows: 5.0 for Windows2000, 5.1 for WindowsXP, 5.2 for Windows2003, etc.
# Linux: number for the variant, e.g. 9 for Fedora 9
#
# REQUIRED_OS_VERSION
# The formal OS version number.
# Solaris & Windows: same as REQUIRED_OS_VARIANT_VERSION
# Linux: the kernel version, or output of uname -r
#
# REQUIRED_UNZIP_VER
# The minimum version of unzip.
#
# REQUIRED_ZIP_VER
# The minimum version of unzip.
#
###########
#
# Differences in the build platform from these versions may trigger warnings
# messages during the sanity checking when building the JDK.
#
# When building the OpenJDK most of these required or expected versions are
# ignored or allowed to vary widely to accomodate the many build situations
# of the OpenJDK.
#
##########################################################################
# Solaris specific
ifeq ($(PLATFORM), solaris)
REQUIRED_OS_VERSION = 5.10
REQUIRED_OS_VARIANT_NAME = Solaris
REQUIRED_OS_VARIANT_VERSION = $(REQUIRED_OS_VERSION)
ifeq ($(ARCH_FAMILY), sparc)
REQUIRED_FREE_SPACE = 1300000
else
REQUIRED_FREE_SPACE = 1040000
endif
REQUIRED_COMPILER_NAME = Sun Studio 12
REQUIRED_COMPILER_VERSION = SS12
ifeq ($(CC_VERSION),sun)
REQUIRED_CC_VER = 5.9
endif
ifeq ($(CC_VERSION),gcc)
REQUIRED_CC_VER = 3.4.3
endif
REQUIRED_GCC_VER = 2.95.2
endif
# Linux specific
ifeq ($(PLATFORM), linux)
REQUIRED_OS_VERSION = 2.6
REQUIRED_OS_VARIANT_NAME = Fedora
REQUIRED_OS_VARIANT_VERSION = 9
REQUIRED_FREE_SPACE = 1460000
REQUIRED_ALSA_VERSION = 0.9.1
REQUIRED_COMPILER_NAME = GCC4
REQUIRED_COMPILER_VERSION = GCC4
REQUIRED_GCC_VER = 2.95
ifeq ($(CC_VERSION),gcc)
REQUIRED_CC_VER = 4.3.0
endif
ifeq ($(CC_VERSION),sun)
REQUIRED_CC_VER = 5.9
endif
endif
# Windows specific
ifeq ($(PLATFORM), windows)
ifeq ($(ARCH_DATA_MODEL),64)
REQUIRED_OS_VERSION = 5.2
REQUIRED_OS_VARIANT_NAME = Windows2003
else
REQUIRED_OS_VERSION = 5.1
REQUIRED_OS_VARIANT_NAME = WindowsXP
endif
REQUIRED_OS_VARIANT_VERSION = $(REQUIRED_OS_VERSION)
REQUIRED_CYGWIN_VER = 4.0
REQUIRED_MKS_VER = 6.1
REQUIRED_FREE_SPACE = 500000
REQUIRED_DXSDK_VER = 0x0900
ifeq ($(CC_VERSION),msvc)
ifeq ($(ARCH_DATA_MODEL), 32)
REQUIRED_COMPILER_NAME = Visual Studio 9
REQUIRED_COMPILER_VERSION = VS2008
REQUIRED_CC_VER = 15.00.21022.08
REQUIRED_LINK_VER = 9.00.21022.08
else
ifeq ($(ARCH), ia64)
REQUIRED_COMPILER_NAME = Microsoft Platform SDK - November 2001 Edition
REQUIRED_COMPILER_VERSION = VS2003
REQUIRED_CC_VER = 13.00.9337.7
REQUIRED_LINK_VER = 7.00.9337.7
endif
ifeq ($(ARCH), amd64)
REQUIRED_COMPILER_NAME = Microsoft Windows SDK with Visual Studio 9 (6001.18000.367)
REQUIRED_COMPILER_VERSION = VS2008
REQUIRED_CC_VER = 15.00.21022.08
REQUIRED_LINK_VER = 9.00.21022.08
endif
endif
endif
ifeq ($(CC_VERSION),gcc)
REQUIRED_CC_VER = 3.4.3
endif
endif
# Generic
REQUIRED_ANT_VER = 1.6.3
REQUIRED_BOOT_VER = 1.5
REQUIRED_FREETYPE_VERSION = 2.3.0
REQUIRED_MAKE_VER = 3.78
REQUIRED_UNZIP_VER = 5.12
REQUIRED_ZIP_VER = 2.2
...@@ -136,10 +136,7 @@ endif ...@@ -136,10 +136,7 @@ endif
UNIXCOMMAND_PATH:=$(call AltCheckSpaces,UNIXCOMMAND_PATH) UNIXCOMMAND_PATH:=$(call AltCheckSpaces,UNIXCOMMAND_PATH)
# Get version of MKS or CYGWIN # Get version of MKS or CYGWIN
ifdef USING_CYGWIN ifndef USING_CYGWIN
_CYGWIN_VER :=$(shell $(UNAME))
CYGWIN_VER :=$(call GetVersion,$(_CYGWIN_VER))
else # MKS
_MKS_VER :=$(shell $(MKSINFO) 2>&1 | $(GREP) Release | $(TAIL) -1 | $(SED) -e 's@.*\(Release.*\)@\1@') _MKS_VER :=$(shell $(MKSINFO) 2>&1 | $(GREP) Release | $(TAIL) -1 | $(SED) -e 's@.*\(Release.*\)@\1@')
MKS_VER :=$(call GetVersion,$(_MKS_VER)) MKS_VER :=$(call GetVersion,$(_MKS_VER))
# At this point, we can re-define FullPath to use DOSNAME_CMD # At this point, we can re-define FullPath to use DOSNAME_CMD
...@@ -202,6 +199,7 @@ else ...@@ -202,6 +199,7 @@ else
endif endif
ifeq ($(ARCH_DATA_MODEL), 32) ifeq ($(ARCH_DATA_MODEL), 32)
_program_files :=$(call FullPath,$(xPROGRAMFILES)) _program_files :=$(call FullPath,$(xPROGRAMFILES))
_program_files32 :=$(_program_files)
else else
ifdef PROGRAMW6432 ifdef PROGRAMW6432
xPROGRAMW6432 :="$(subst \,/,$(PROGRAMW6432))" xPROGRAMW6432 :="$(subst \,/,$(PROGRAMW6432))"
...@@ -255,39 +253,51 @@ ifeq ($(ARCH_DATA_MODEL), 32) ...@@ -255,39 +253,51 @@ ifeq ($(ARCH_DATA_MODEL), 32)
_vs90tools :=$(call FullPath,$(xVS90COMNTOOLS)) _vs90tools :=$(call FullPath,$(xVS90COMNTOOLS))
endif endif
ifneq ($(_vs90tools),) ifneq ($(_vs90tools),)
_msvc_dir :=$(_vs90tools)/../../Vc _msvc_dir :=$(_vs90tools)/../../Vc
_redist_sdk :=$(_msvc_dir)/../SDK/v3.5/Bin else
endif ifdef VS80COMNTOOLS # /Common/Tools directory, use ../../Vc
ifdef VS80COMNTOOLS # /Common/Tools directory, use ../../Vc xVS80COMNTOOLS :="$(subst \,/,$(VS80COMNTOOLS))"
xVS80COMNTOOLS :="$(subst \,/,$(VS80COMNTOOLS))" _vs80tools :=$(call FullPath,$(xVS80COMNTOOLS))
_vs80tools :=$(call FullPath,$(xVS80COMNTOOLS)) endif
endif ifneq ($(_vs80tools),)
ifneq ($(_vs80tools),) _msvc_dir :=$(_vs80tools)/../../Vc
_msvc_dir :=$(_vs80tools)/../../Vc else
_redist_sdk :=$(_msvc_dir)/../SDK/v2.0/Bin ifdef VS71COMNTOOLS # /Common/Tools directory, use ../../Vc7
endif xVS71COMNTOOLS :="$(subst \,/,$(VS71COMNTOOLS))"
ifdef VS71COMNTOOLS # /Common/Tools directory, use ../../Vc7 _vs71tools :=$(call FullPath,$(xVS71COMNTOOLS))
xVS71COMNTOOLS :="$(subst \,/,$(VS71COMNTOOLS))" endif
_vs71tools :=$(call FullPath,$(xVS71COMNTOOLS)) ifneq ($(_vs71tools),)
endif _msvc_dir :=$(_vs71tools)/../../Vc7
ifneq ($(_vs71tools),) endif
_msvc_dir :=$(_vs71tools)/../../Vc7 endif
_redist_sdk :=$(_vs71tools)/../..
endif endif
endif endif
ifneq ($(_msvc_dir),) ifneq ($(_msvc_dir),)
_compiler_bin :=$(_msvc_dir)/Bin _compiler_bin :=$(_msvc_dir)/Bin
_ms_sdk :=$(_msvc_dir)/PlatformSDK # Assume PlatformSDK is in VS71 (will be empty if VS90)
_ms_sdk :=$(call FullPath,$(_msvc_dir)/PlatformSDK)
# Assume VS90, then VS80, then VS71
_redist_sdk :=$(call FullPath,$(_msvc_dir)/../SDK/v3.5/Bin)
ifeq ($(_redist_sdk),)
_redist_sdk :=$(call FullPath,$(_msvc_dir)/../SDK/v2.0/Bin)
ifeq ($(_redist_sdk),)
_redist_sdk :=$(call FullPath,$(_msvc_dir)/../SDK/v1.1/Bin)
endif
endif
endif endif
endif endif
# The Microsoft Platform SDK installed by itself # The Microsoft Platform SDK installed by itself
ifneq ($(_program_files),) ifneq ($(_program_files),)
xPSDK :="$(_program_files)/Microsoft Platform SDK" _PSDK :="$(_program_files)/Microsoft SDKs/Windows/v6.1/"
_psdk :=$(call FullPath,$(xPSDK)) _psdk :=$(call FullPath,$(xMSSDK61))
ifeq ($(_psdk),) ifeq ($(_psdk),)
xPSDK :="$(_program_files)/Microsoft SDK" xPSDK :="$(_program_files)/Microsoft Platform SDK"
_psdk :=$(call FullPath,$(xMSSDK)) _psdk :=$(call FullPath,$(xPSDK))
ifeq ($(_psdk),)
xPSDK :="$(_program_files)/Microsoft SDK"
_psdk :=$(call FullPath,$(xMSSDK))
endif
endif endif
endif endif
...@@ -308,13 +318,22 @@ endif ...@@ -308,13 +318,22 @@ endif
# Compilers for 64bit are from SDK # Compilers for 64bit are from SDK
ifeq ($(ARCH_DATA_MODEL), 64) ifeq ($(ARCH_DATA_MODEL), 64)
ifneq ($(_ms_sdk),) xVS2008 :="$(_program_files32)/Microsoft Visual Studio 9.0/"
ifeq ($(ARCH), ia64) VS2008 :=$(call FullPath,$(xVS2008))
_compiler_bin :=$(_ms_sdk)/Bin/Win64 ifneq ($(VS2008),)
endif _compiler_bin :=$(VS2008)/VC/Bin/$(ARCH)
ifeq ($(ARCH), amd64) xMSSDK61 :="$(_program_files)/Microsoft SDKs/Windows/v6.1/"
_compiler_bin :=$(_ms_sdk)/Bin/Win64/x86/$(ARCH) MSSDK61 :=$(call FullPath,$(xMSSDK61))
_redist_sdk :=$(_ms_sdk)/redist/win64/AMD64 _redist_sdk :=$(VS2008)/VC/redist/x86/Microsoft.VC90.CRT
else
ifneq ($(_ms_sdk),)
ifeq ($(ARCH), ia64)
_compiler_bin :=$(_ms_sdk)/Bin/Win64
endif
ifeq ($(ARCH), amd64)
_compiler_bin :=$(_ms_sdk)/Bin/Win64/x86/$(ARCH)
_redist_sdk :=$(_ms_sdk)/redist/win64/AMD64
endif
endif endif
endif endif
endif endif
...@@ -417,70 +436,39 @@ ifndef ALT_BOOTDIR ...@@ -417,70 +436,39 @@ ifndef ALT_BOOTDIR
_BOOTDIR2 =$(USRJDKINSTANCES_PATH)/jdk$(PREVIOUS_JDK_VERSION) _BOOTDIR2 =$(USRJDKINSTANCES_PATH)/jdk$(PREVIOUS_JDK_VERSION)
endif endif
# See if SDK area has a msvcrt.dll file, directory may exist w/o msvcr* files # 32 bit always needs 2 runtimes, 64 bit usually does too
_REDIST_SDK_EXISTS := $(shell \
if [ -f "$(_redist_sdk)/msvcrt.dll" ]; then \
echo "true"; \
else \
echo "false"; \
fi)
_REDISTNN_SDK_EXISTS := $(shell \
if [ -f "$(_redist_sdk)/$(MSVCRNN_DLL)" ]; then \
echo "true"; \
else \
echo "false"; \
fi)
# 32 bit needs 2 runtimes
ifeq ($(ARCH_DATA_MODEL), 32)
# MSVCRT_DLL_PATH: location of msvcrt.dll that will be re-distributed # MSVCRT_DLL_PATH: location of msvcrt.dll that will be re-distributed
ifdef ALT_MSVCRT_DLL_PATH ifdef ALT_MSVCRT_DLL_PATH
xALT_MSVCRT_DLL_PATH :="$(subst \,/,$(ALT_MSVCRT_DLL_PATH))" xALT_MSVCRT_DLL_PATH :="$(subst \,/,$(ALT_MSVCRT_DLL_PATH))"
MSVCRT_DLL_PATH :=$(call FullPath,$(xALT_MSVCRT_DLL_PATH)) MSVCRT_DLL_PATH :=$(call FullPath,$(xALT_MSVCRT_DLL_PATH))
else
MSVCRT_DLL_PATH :=$(call FullPath,$(_system_root)/system32/)
endif
MSVCRT_DLL_PATH:=$(call AltCheckSpaces,MSVCRT_DLL_PATH)
MSVCRT_DLL_PATH:=$(call AltCheckValue,MSVCRT_DLL_PATH)
# 32bit always needs the MSVCRNN runtime, 64bit does when using VS2008
ifeq ($(ARCH_DATA_MODEL), 32)
_NEEDS_MSVCRNN = true
else
ifeq ($(VS2008),)
_NEEDS_MSVCRNN = false
else else
ifeq ($(_REDIST_SDK_EXISTS), true) _NEEDS_MSVCRNN = true
xREDIST_DIR :=$(_redist_sdk)
else
xREDIST_DIR :=$(_system_root)/system32
endif
MSVCRT_DLL_PATH :=$(call FullPath,$(xREDIST_DIR))
endif endif
MSVCRT_DLL_PATH:=$(call AltCheckSpaces,MSVCRT_DLL_PATH) endif
MSVCRT_DLL_PATH:=$(call AltCheckValue,MSVCRT_DLL_PATH)
ifeq ($(_NEEDS_MSVCRNN), true)
# MSVCRNN_DLL_PATH: location of msvcrnn.dll that will be re-distributed # MSVCRNN_DLL_PATH: location of msvcrnn.dll that will be re-distributed
ifdef ALT_MSVCRNN_DLL_PATH ifdef ALT_MSVCRNN_DLL_PATH
xALT_MSVCRNN_DLL_PATH :="$(subst \,/,$(ALT_MSVCRNN_DLL_PATH))" xALT_MSVCRNN_DLL_PATH :="$(subst \,/,$(ALT_MSVCRNN_DLL_PATH))"
MSVCRNN_DLL_PATH :=$(call FullPath,$(xALT_MSVCRNN_DLL_PATH)) MSVCRNN_DLL_PATH :=$(call FullPath,$(xALT_MSVCRNN_DLL_PATH))
else else
ifeq ($(_REDISTNN_SDK_EXISTS), true) MSVCRNN_DLL_PATH :=$(_redist_sdk)
xREDISTNN_DIR :=$(_redist_sdk)
else
xREDISTNN_DIR :=$(_system_root)/system32
endif
MSVCRNN_DLL_PATH :=$(call FullPath,$(xREDISTNN_DIR))
endif endif
MSVCRNN_DLL_PATH :=$(call AltCheckSpaces,MSVCRNN_DLL_PATH) MSVCRNN_DLL_PATH :=$(call AltCheckSpaces,MSVCRNN_DLL_PATH)
MSVCRNN_DLL_PATH:=$(call AltCheckValue,MSVCRNN_DLL_PATH) MSVCRNN_DLL_PATH:=$(call AltCheckValue,MSVCRNN_DLL_PATH)
else
# MSVCRT_DLL_PATH: location of msvcrt.dll that will be re-distributed
ifdef ALT_MSVCRT_DLL_PATH
xALT_MSVCRT_DLL_PATH :="$(subst \,/,$(ALT_MSVCRT_DLL_PATH))"
MSVCRT_DLL_PATH :=$(call FullPath,$(xALT_MSVCRT_DLL_PATH))
else
ifeq ($(_REDIST_SDK_EXISTS), true)
xREDIST_DIR :=$(_redist_sdk)
else
xREDIST_DIR :=$(_system_root)/SysWOW64
endif
MSVCRT_DLL_PATH :=$(call FullPath,$(xREDIST_DIR))
endif
MSVCRT_DLL_PATH:=$(call AltCheckSpaces,MSVCRT_DLL_PATH)
MSVCRT_DLL_PATH:=$(call AltCheckValue,MSVCRT_DLL_PATH)
endif endif
# DXSDK_PATH: path to Microsoft DirectX SDK Include and Lib # DXSDK_PATH: path to Microsoft DirectX SDK Include and Lib
...@@ -539,7 +527,7 @@ ifdef ALT_INSTALL_MSIVAL2 ...@@ -539,7 +527,7 @@ ifdef ALT_INSTALL_MSIVAL2
xALT_INSTALL_MSIVAL2 :="$(subst \,/,$(ALT_INSTALL_MSIVAL2))" xALT_INSTALL_MSIVAL2 :="$(subst \,/,$(ALT_INSTALL_MSIVAL2))"
INSTALL_MSIVAL2 :=$(call FullPath,$(xALT_INSTALL_MSIVAL2)) INSTALL_MSIVAL2 :=$(call FullPath,$(xALT_INSTALL_MSIVAL2))
else else
INSTALL_MSIVAL2 :=$(_program_files)/MsiVal2 INSTALL_MSIVAL2 :=$(_program_files32)/MsiVal2
endif endif
INSTALL_MSIVAL2:=$(call AltCheckSpaces,INSTALL_MSIVAL2) INSTALL_MSIVAL2:=$(call AltCheckSpaces,INSTALL_MSIVAL2)
......
...@@ -116,9 +116,9 @@ $(shell \ ...@@ -116,9 +116,9 @@ $(shell \
fi) fi)
endef endef
# Given a line of text, get the major.minor version number from it # Given a line of text, get the version number from it
define GetVersion define GetVersion
$(shell echo $1 | sed -e 's@[^1-9]*\([1-9][0-9]*\.[0-9][0-9]*\).*@\1@' ) $(shell echo $1 | sed -e 's@[^0-9]*\([0-9][0-9]*\.[0-9][.0-9]*\).*@\1@' )
endef endef
# Given a major.minor.micro version, return the major, minor, or micro number # Given a major.minor.micro version, return the major, minor, or micro number
...@@ -133,26 +133,26 @@ $(if $(word 3, $(subst ., ,$1)),$(word 3, $(subst ., ,$1)),0) ...@@ -133,26 +133,26 @@ $(if $(word 3, $(subst ., ,$1)),$(word 3, $(subst ., ,$1)),0)
endef endef
# Macro that returns missing, same, newer, or older $1=version $2=required # Macro that returns missing, same, newer, or older $1=version $2=required
# (currently does not check the micro number)
define CheckVersions define CheckVersions
$(shell \ $(shell \
if [ "$1" = "" -o "$2" = "" ]; then \ if [ "$1" = "" -o "$2" = "" ]; then \
echo missing; \ echo missing; \
elif [ "$1" = "$2" ]; then \
echo same; \
elif [ $(call MajorVersion,$1) -lt $(call MajorVersion,$2) ] ; then \
echo older; \
elif [ $(call MajorVersion,$1) -gt $(call MajorVersion,$2) ] ; then \
echo newer; \
elif [ $(call MinorVersion,$1) -lt $(call MinorVersion,$2) ]; then \
echo older; \
elif [ $(call MinorVersion,$1) -gt $(call MinorVersion,$2) ]; then \
echo newer; \
elif [ $(call MicroVersion,$1) -lt $(call MicroVersion,$2) ]; then \
echo older; \
elif [ $(call MicroVersion,$1) -gt $(call MicroVersion,$2) ]; then \
echo newer; \
else \ else \
if [ "$1" = "$2" ]; then \ echo same; \
echo same; \
else \
if [ $(call MajorVersion,$1) -lt $(call MajorVersion,$2) ] ; then \
echo older; \
else \
if [ $(call MajorVersion,$1) -eq $(call MajorVersion,$2) -a \
$(call MinorVersion,$1) -lt $(call MinorVersion,$2) ]; then \
echo older; \
else \
echo newer; \
fi; \
fi; \
fi; \
fi) fi)
endef endef
...@@ -558,6 +558,24 @@ else ...@@ -558,6 +558,24 @@ else
COPYRIGHT_YEAR = $(shell $(DATE) '+%Y') COPYRIGHT_YEAR = $(shell $(DATE) '+%Y')
endif endif
# Get shared compiler settings # Windows uses Microsoft compilers by default
include $(JDK_MAKE_SHARED_DIR)/Compiler.gmk ifeq ($(PLATFORM), windows)
override CC_VERSION = msvc
endif
# Solaris uses Sun Studio compilers by default
ifeq ($(PLATFORM), solaris)
override CC_VERSION = sun
endif
# Linux uses GNU compilers by default
ifeq ($(PLATFORM), linux)
override CC_VERSION = gcc
endif
# Get the REQUIRED versions (needs CC_VERSION set)
include $(JDK_MAKE_SHARED_DIR)/Defs-versions.gmk
# Get the compiler specific settings
include $(JDK_MAKE_SHARED_DIR)/Compiler-$(CC_VERSION).gmk
...@@ -51,9 +51,6 @@ PLATFORM_SHARED=done ...@@ -51,9 +51,6 @@ PLATFORM_SHARED=done
# USER login name of user (minus blanks) # USER login name of user (minus blanks)
# PLATFORM windows, solaris, or linux # PLATFORM windows, solaris, or linux
# VARIANT OPT or DBG, OPT is the default # VARIANT OPT or DBG, OPT is the default
# OS_NAME solaris, linux, or nt
# OS_VERSION specific version of os, 5.10, 2.4.9-e.3, etc.
# OS_VENDOR company name
# TEMP_DISK /tmp or C:/temp # TEMP_DISK /tmp or C:/temp
# ARCH_DATA_MODEL 32 or 64 # ARCH_DATA_MODEL 32 or 64
# ARCH sparc, sparcv9, i586, amd64, or ia64 # ARCH sparc, sparcv9, i586, amd64, or ia64
...@@ -72,29 +69,11 @@ PLATFORM_SHARED=done ...@@ -72,29 +69,11 @@ PLATFORM_SHARED=done
# ISA_DIR solaris only: /sparcv9 or /amd64 # ISA_DIR solaris only: /sparcv9 or /amd64
# LIBARCH32 solaris only: sparc or i386 # LIBARCH32 solaris only: sparc or i386
# LIBARCH64 solaris only: sparcv9 or amd64 # LIBARCH64 solaris only: sparcv9 or amd64
# REQUIRED_WINDOWS_VERSION windows only: specific version of windows
# USING_CYGWIN windows only: true or false # USING_CYGWIN windows only: true or false
# WINDOWS_NT_VERSION_STRING windows only: long version name
# REQUIRED_OS_VERSION required OS version, e.g. 5.10, 2.4
# REQUIRED_FREE_SPACE minimum disk space needed for outputdir
# ISHIELD_TEMP_MIN windows only: minimum disk space in temp area # ISHIELD_TEMP_MIN windows only: minimum disk space in temp area
# REQUIRED_ZIP_VER required version of zip
# REQUIRED_UNZIP_VER required version of unzip
# REQUIRED_DXSDK_VER windows only: required version of DirectX
# LINUX_VERSION_INFO linux only: location of linux release file
# REQUIRED_LINUX_VER linux only: required version of linux
# REQUIRED_LINUX_FULLVER linux only: required full version of linux
# REQUIRED_ALSA_VERSION linux only: required version of ALSA
# REQUIRED_FREETYPE_VERSION openjdk only: required version of freetype
SYSTEM_UNAME := $(shell uname) SYSTEM_UNAME := $(shell uname)
# Normal boot jdk is previous release, but a hard requirement is a 1.5 boot
REQUIRED_BOOT_VER = 1.5
# If we are using freetype, this is the required version
REQUIRED_FREETYPE_VERSION=2.3.0
# #
# Prune out all known SCM (Source Code Management) directories # Prune out all known SCM (Source Code Management) directories
# so they will not be included when copying directory trees # so they will not be included when copying directory trees
...@@ -113,8 +92,6 @@ endif ...@@ -113,8 +92,6 @@ endif
# Platform settings specific to Solaris # Platform settings specific to Solaris
ifeq ($(SYSTEM_UNAME), SunOS) ifeq ($(SYSTEM_UNAME), SunOS)
PLATFORM = solaris PLATFORM = solaris
OS_NAME = solaris
OS_VERSION := $(shell uname -r)
# Solaris sparc build can be either 32-bit or 64-bit. # Solaris sparc build can be either 32-bit or 64-bit.
# Default to 32, but allow explicit setting to 32 or 64. # Default to 32, but allow explicit setting to 32 or 64.
ifndef ARCH_DATA_MODEL ifndef ARCH_DATA_MODEL
...@@ -166,16 +143,6 @@ ifeq ($(SYSTEM_UNAME), SunOS) ...@@ -166,16 +143,6 @@ ifeq ($(SYSTEM_UNAME), SunOS)
endif endif
# Suffix for file bundles used in previous release # Suffix for file bundles used in previous release
BUNDLE_FILE_SUFFIX=.tar BUNDLE_FILE_SUFFIX=.tar
OS_VENDOR = Sun Microsystems
# Required Solaris version
REQUIRED_OS_VERSION = 5.10
# Minimum disk space needed as determined by running 'du -sk' on
# a fully built workspace.
ifeq ($(ARCH_FAMILY), sparc)
REQUIRED_FREE_SPACE=1300000
else
REQUIRED_FREE_SPACE=1040000
endif
# How much RAM does this machine have: # How much RAM does this machine have:
MB_OF_MEMORY=$(shell /etc/prtconf | fgrep 'Memory size:' | expand | cut -d' ' -f3) MB_OF_MEMORY=$(shell /etc/prtconf | fgrep 'Memory size:' | expand | cut -d' ' -f3)
endif endif
...@@ -183,8 +150,6 @@ endif ...@@ -183,8 +150,6 @@ endif
# Platform settings specific to Linux # Platform settings specific to Linux
ifeq ($(SYSTEM_UNAME), Linux) ifeq ($(SYSTEM_UNAME), Linux)
PLATFORM = linux PLATFORM = linux
OS_NAME = linux
OS_VERSION := $(shell uname -r)
# Arch and OS name/version # Arch and OS name/version
mach := $(shell uname -m) mach := $(shell uname -m)
archExpr = case "$(mach)" in \ archExpr = case "$(mach)" in \
...@@ -242,32 +207,6 @@ ifeq ($(SYSTEM_UNAME), Linux) ...@@ -242,32 +207,6 @@ ifeq ($(SYSTEM_UNAME), Linux)
# Suffix for file bundles used in previous release # Suffix for file bundles used in previous release
BUNDLE_FILE_SUFFIX=.tar.gz BUNDLE_FILE_SUFFIX=.tar.gz
# Minimum disk space needed as determined by running 'du -sk' on
# a fully built workspace.
REQUIRED_FREE_SPACE=1460000
LINUX_VERSION_INFO = /etc/redhat-release
OS_VENDOR = Red Hat
ifeq ($(ARCH_DATA_MODEL), 32)
REQUIRED_LINUX_VER = Advanced Server
REQUIRED_LINUX_FULLVER = Advanced Server release 2.1AS
REQUIRED_OS_VERSION = 2.4.9-e.3
else
ifeq ($(ARCH), amd64)
LINUX_VERSION_INFO = /etc/SuSE-release
OS_VENDOR = SuSE Enterprise
REQUIRED_LINUX_VER = 8.1
REQUIRED_LINUX_FULLVER = $(REQUIRED_LINUX_VER) SLSE AMD64
REQUIRED_OS_VERSION = 2.4.19-SMP
else
REQUIRED_LINUX_VER = Advanced Server
REQUIRED_LINUX_FULLVER = Advanced Server release 2.1AS 64 bit
REQUIRED_OS_VERSION = 2.4.19-SMP
endif
endif
ifneq ($(ARCH), ia64)
# ALSA 0.9.1 and above
REQUIRED_ALSA_VERSION = ^((0[.]9[.][1-9])|(1[.]0[.][0-9]))[0-9]*
endif
# How much RAM does this machine have: # How much RAM does this machine have:
MB_OF_MEMORY := $(shell free -m | fgrep Mem: | awk '{print $$2;}' ) MB_OF_MEMORY := $(shell free -m | fgrep Mem: | awk '{print $$2;}' )
endif endif
...@@ -275,34 +214,34 @@ endif ...@@ -275,34 +214,34 @@ endif
# Windows with and without CYGWIN will be slightly different # Windows with and without CYGWIN will be slightly different
ifeq ($(SYSTEM_UNAME), Windows_NT) ifeq ($(SYSTEM_UNAME), Windows_NT)
PLATFORM = windows PLATFORM = windows
OS_VERSION := $(shell uname -r)
WINDOWS_NT_VERSION_STRING=Windows_NT
REQUIRED_MKS_VER=6.1
endif endif
ifneq (,$(findstring CYGWIN,$(SYSTEM_UNAME))) ifneq (,$(findstring CYGWIN,$(SYSTEM_UNAME)))
PLATFORM = windows PLATFORM = windows
OS_VERSION := 5
USING_CYGWIN = true USING_CYGWIN = true
export USING_CYGWIN export USING_CYGWIN
WINDOWS_NT_VERSION_STRING=CYGWIN_NT
REQUIRED_CYGWIN_VER=4.0
endif endif
# Platform settings specific to Windows # Platform settings specific to Windows
ifeq ($(PLATFORM), windows) ifeq ($(PLATFORM), windows)
OS_NAME = nt
REQUIRED_OS_VERSION=5
# Windows builds default to the appropriate for the underlaying # Windows builds default to the appropriate for the underlaying
# architecture. # architecture.
# Temporary disk area # Temporary disk area
TEMP_DISK=C:/temp TEMP_DISK=C:/temp
# GNU Make or MKS overrides $(PROCESSOR_ARCHITECTURE) to always # GNU Make or MKS overrides $(PROCESSOR_ARCHITECTURE) to always
# return "x86". Use the first word of $(PROCESSOR_IDENTIFIER) instead. # return "x86". Use the first word of $(PROCESSOR_IDENTIFIER) instead.
PROC_ARCH:=$(word 1, $(PROCESSOR_IDENTIFIER))
PROC_ARCH:=$(subst x86,X86,$(PROC_ARCH))
PROC_ARCH:=$(subst Intel64,X64,$(PROC_ARCH))
PROC_ARCH:=$(subst em64t,X64,$(PROC_ARCH))
PROC_ARCH:=$(subst EM64T,X64,$(PROC_ARCH))
PROC_ARCH:=$(subst amd64,X64,$(PROC_ARCH))
PROC_ARCH:=$(subst AMD64,X64,$(PROC_ARCH))
PROC_ARCH:=$(subst ia64,IA64,$(PROC_ARCH))
ifndef ARCH_DATA_MODEL ifndef ARCH_DATA_MODEL
ifeq ($(word 1, $(PROCESSOR_IDENTIFIER)),ia64) ifeq ($(PROC_ARCH),IA64)
ARCH_DATA_MODEL=64 ARCH_DATA_MODEL=64
else else
ifeq ($(word 1, $(PROCESSOR_IDENTIFIER)),AMD64) ifeq ($(PROC_ARCH),X64)
ARCH_DATA_MODEL=64 ARCH_DATA_MODEL=64
else else
ARCH_DATA_MODEL=32 ARCH_DATA_MODEL=32
...@@ -314,18 +253,17 @@ ifeq ($(PLATFORM), windows) ...@@ -314,18 +253,17 @@ ifeq ($(PLATFORM), windows)
# If the user wants to perform a cross compile build then they must # If the user wants to perform a cross compile build then they must
# - set ARCH_DATA_MODEL=64 and either # - set ARCH_DATA_MODEL=64 and either
# + set ARCH to ia64 or amd64, or # + set ARCH to ia64 or amd64, or
REQUIRED_WINDOWS_VERSION=Server 2003 Enterprise x64 Edition ifeq ($(PROC_ARCH),X64)
ifeq ($(word 1, $(PROCESSOR_IDENTIFIER)), AMD64)
ARCH=amd64 ARCH=amd64
else else
ARCH=ia64 ifeq ($(PROC_ARCH),IA64)
ARCH=ia64
endif
endif endif
LIBARCH=$(ARCH) LIBARCH=$(ARCH)
# Value of Java os.arch property # Value of Java os.arch property
ARCHPROP=$(LIBARCH) ARCHPROP=$(LIBARCH)
else else
REQUIRED_WINDOWS_VERSION=2000 or Unknown
#REQUIRED_WINDOWS_VERSION=XP Professional
# LIBARCH is used to preserve the jre/lib/i386 directory name for 32-bit intel # LIBARCH is used to preserve the jre/lib/i386 directory name for 32-bit intel
ARCH=i586 ARCH=i586
LIBARCH=i386 LIBARCH=i386
...@@ -364,14 +302,9 @@ ifeq ($(PLATFORM), windows) ...@@ -364,14 +302,9 @@ ifeq ($(PLATFORM), windows)
ARCH_VM_SUBDIR=jre/bin ARCH_VM_SUBDIR=jre/bin
# Suffix for file bundles used in previous release # Suffix for file bundles used in previous release
BUNDLE_FILE_SUFFIX=.tar BUNDLE_FILE_SUFFIX=.tar
# Minimum disk space needed as determined by running 'du -sk' on
# a fully built workspace.
REQUIRED_FREE_SPACE=500000
# ISHIELD_TEMP_MIN is the difference of an empty C:\TEMP vs. one after a # ISHIELD_TEMP_MIN is the difference of an empty C:\TEMP vs. one after a
# bundles build on windows. # bundles build on windows.
ISHIELD_TEMP_MIN=250000 ISHIELD_TEMP_MIN=250000
REQUIRED_DXSDK_VER = 0x0900
OS_VENDOR = Microsoft
# How much RAM does this machine have: # How much RAM does this machine have:
ifeq ($(JDK_HAS_MEM_INFO),) ifeq ($(JDK_HAS_MEM_INFO),)
ifeq ($(USING_CYGWIN),true) ifeq ($(USING_CYGWIN),true)
...@@ -410,10 +343,6 @@ ifeq ($(PLATFORM), windows) ...@@ -410,10 +343,6 @@ ifeq ($(PLATFORM), windows)
endif endif
endif endif
REQUIRED_ZIP_VER = 2.2
REQUIRED_UNZIP_VER = 5.12
REQUIRED_MAKE_VER = 3.78
# Unix type settings (same for all unix platforms) # Unix type settings (same for all unix platforms)
ifneq ($(PLATFORM), windows) ifneq ($(PLATFORM), windows)
# Temporary disk area # Temporary disk area
......
...@@ -97,7 +97,7 @@ ifeq ($(PLATFORM),solaris) ...@@ -97,7 +97,7 @@ ifeq ($(PLATFORM),solaris)
endif endif
ifeq ($(PLATFORM),windows) ifeq ($(PLATFORM),windows)
ALL_SETTINGS+=$(call addAltSetting,MSVCRT_DLL_PATH) ALL_SETTINGS+=$(call addAltSetting,MSVCRT_DLL_PATH)
ifeq ($(ARCH_DATA_MODEL), 32) ifneq ($(MSVCRNN_DLL),)
ALL_SETTINGS+=$(call addAltSetting,MSVCRNN_DLL_PATH) ALL_SETTINGS+=$(call addAltSetting,MSVCRNN_DLL_PATH)
endif endif
ALL_SETTINGS+=$(call addAltSetting,MSDEVTOOLS_PATH) ALL_SETTINGS+=$(call addAltSetting,MSDEVTOOLS_PATH)
...@@ -167,8 +167,6 @@ ALL_SETTINGS+=$(call addRequiredSetting,ARCHPROP) ...@@ -167,8 +167,6 @@ ALL_SETTINGS+=$(call addRequiredSetting,ARCHPROP)
ifeq ($(PLATFORM),windows) ifeq ($(PLATFORM),windows)
ALL_SETTINGS+=$(call addRequiredSetting,PROCESSOR_ARCHITECTURE) ALL_SETTINGS+=$(call addRequiredSetting,PROCESSOR_ARCHITECTURE)
ALL_SETTINGS+=$(call addRequiredSetting,PROCESSOR_IDENTIFIER) ALL_SETTINGS+=$(call addRequiredSetting,PROCESSOR_IDENTIFIER)
ALL_SETTINGS+=$(call addRequiredSetting,WINDOWS_VERSION)
ALL_SETTINGS+=$(call addRequiredSetting,WINDOWS_NT_VERSION_STRING)
ifdef USING_CYGWIN ifdef USING_CYGWIN
ALL_SETTINGS+=$(call addRequiredSetting,USING_CYGWIN) ALL_SETTINGS+=$(call addRequiredSetting,USING_CYGWIN)
ALL_SETTINGS+=$(call addRequiredVersionSetting,CYGWIN_VER) ALL_SETTINGS+=$(call addRequiredVersionSetting,CYGWIN_VER)
...@@ -179,13 +177,11 @@ ifeq ($(PLATFORM),windows) ...@@ -179,13 +177,11 @@ ifeq ($(PLATFORM),windows)
endif endif
endif endif
ifeq ($(PLATFORM),linux) ifeq ($(PLATFORM),linux)
ALL_SETTINGS+=$(call addRequiredSetting,LINUX_VERSION) ALL_SETTINGS+=$(call addRequiredSetting,ALSA_VERSION)
ifneq ($(ARCH), ia64)
ALL_SETTINGS+=$(call addRequiredSetting,ALSA_VERSION)
endif
endif endif
ALL_SETTINGS+=$(call addRequiredVersionSetting,OS_VERSION) ALL_SETTINGS+=$(call addRequiredVersionSetting,OS_VERSION)
ALL_SETTINGS+=$(call addRequiredSetting,OS_NAME) ALL_SETTINGS+=$(call addOptionalSetting,OS_VARIANT_NAME)
ALL_SETTINGS+=$(call addOptionalSetting,OS_VARIANT_VERSION)
ALL_SETTINGS+=$(call addRequiredSetting,TEMP_FREE_SPACE) ALL_SETTINGS+=$(call addRequiredSetting,TEMP_FREE_SPACE)
ALL_SETTINGS+=$(call addRequiredSetting,FREE_SPACE) ALL_SETTINGS+=$(call addRequiredSetting,FREE_SPACE)
ALL_SETTINGS+=$(call addRequiredSetting,MB_OF_MEMORY) ALL_SETTINGS+=$(call addRequiredSetting,MB_OF_MEMORY)
...@@ -249,6 +245,7 @@ ifdef OPENJDK ...@@ -249,6 +245,7 @@ ifdef OPENJDK
ALL_SETTINGS+=$(call addAltSetting,FREETYPE_HEADERS_PATH) ALL_SETTINGS+=$(call addAltSetting,FREETYPE_HEADERS_PATH)
ALL_SETTINGS+=$(call addAltSetting,FREETYPE_LIB_PATH) ALL_SETTINGS+=$(call addAltSetting,FREETYPE_LIB_PATH)
ALL_SETTINGS+=$(call addHeading,OPENJDK Import Binary Plug Settings) ALL_SETTINGS+=$(call addHeading,OPENJDK Import Binary Plug Settings)
ALL_SETTINGS+=$(call addOptionalSetting,IMPORT_BINARY_PLUGS)
ALL_SETTINGS+=$(call addAltSetting,BINARY_PLUGS_JARFILE) ALL_SETTINGS+=$(call addAltSetting,BINARY_PLUGS_JARFILE)
ALL_SETTINGS+=$(call addAltSetting,BINARY_PLUGS_PATH) ALL_SETTINGS+=$(call addAltSetting,BINARY_PLUGS_PATH)
ALL_SETTINGS+=$(call addAltSetting,BUILD_BINARY_PLUGS_PATH) ALL_SETTINGS+=$(call addAltSetting,BUILD_BINARY_PLUGS_PATH)
......
...@@ -38,60 +38,106 @@ ...@@ -38,60 +38,106 @@
SANITY_FILES = $(ERROR_FILE) $(WARNING_FILE) $(MESSAGE_FILE) SANITY_FILES = $(ERROR_FILE) $(WARNING_FILE) $(MESSAGE_FILE)
# How to say "The Release Engineering people use this" # How to say "The Release Engineering people use this"
THE_OFFICIAL_USES=The official $(PLATFORM) builds use THE_OFFICIAL_USES=The official builds on $(PLATFORM) use
# How to say "You are using:" # How to say "You are using:"
YOU_ARE_USING=You appear to be using YOU_ARE_USING=You appear to be using
# Error message
define SanityError
$(ECHO) "ERROR: $1\n" >> $(ERROR_FILE)
endef
# Warning message
define SanityWarning
$(ECHO) "WARNING: $1\n" >> $(WARNING_FILE)
endef
# Official version error message: name version required_version
define OfficialErrorMessage
$(call SanityError,\
$(THE_OFFICIAL_USES) $1 $3. Your $1 $(if $2,undefined,$2) will not work.)
endef
# Official version warning message: name version required_version
define OfficialWarningMessage
$(call SanityWarning,\
$(THE_OFFICIAL_USES) $1 $3. $(YOU_ARE_USING) $1 $2.)
endef
# Settings and rules to validate the JDK build environment. # Settings and rules to validate the JDK build environment.
ifeq ($(PLATFORM), solaris) ifeq ($(PLATFORM), solaris)
FREE_SPACE := $(shell $(DF) -b $(OUTPUTDIR) | $(TAIL) -1 | $(NAWK) '{print $$2;}') FREE_SPACE := $(shell $(DF) -b $(OUTPUTDIR) | $(TAIL) -1 | $(NAWK) '{print $$2;}')
TEMP_FREE_SPACE := $(shell $(DF) -b $(TEMP_DISK) | $(TAIL) -1 | $(NAWK) '{print $$2;}') TEMP_FREE_SPACE := $(shell $(DF) -b $(TEMP_DISK) | $(TAIL) -1 | $(NAWK) '{print $$2;}')
# What kind of system we are using (Variations are Solaris and OpenSolaris)
OS_VERSION := $(shell uname -r)
OS_VARIANT_NAME := $(strip $(shell head -1 /etc/release | awk '{print $$1;}') )
OS_VARIANT_VERSION := $(OS_VERSION)
REQ_PATCH_LIST = $(JDK_TOPDIR)/make/PatchList.solaris REQ_PATCH_LIST = $(JDK_TOPDIR)/make/PatchList.solaris
ifeq ($(ARCH_FAMILY), sparc) ifeq ($(ARCH_FAMILY), sparc)
PATCH_POSITION = $$4 PATCH_POSITION = $$4
else else
PATCH_POSITION = $$6 PATCH_POSITION = $$6
endif endif
ifndef OPENJDK
_GCC_VER :=$(shell $(GCC) -dumpversion 2>&1 )
GCC_VER :=$(call GetVersion,"$(_GCC_VER)")
endif
endif endif
ifeq ($(PLATFORM), linux) ifeq ($(PLATFORM), linux)
FREE_SPACE := $(shell $(DF) --sync -kP $(OUTPUTDIR) | $(TAIL) -1 | $(NAWK) '{print $$4;}') FREE_SPACE := $(shell $(DF) --sync -kP $(OUTPUTDIR) | $(TAIL) -1 | $(NAWK) '{print $$4;}')
TEMP_FREE_SPACE := $(shell $(DF) --sync -kP $(TEMP_DISK) | $(TAIL) -1 | $(NAWK) '{print $$4;}') TEMP_FREE_SPACE := $(shell $(DF) --sync -kP $(TEMP_DISK) | $(TAIL) -1 | $(NAWK) '{print $$4;}')
ifeq ($(ARCH), amd64) # What kind of system we are using (Variation is the Linux vendor)
LINUX_VERSION := $(shell \ OS_VERSION := $(shell uname -r)
if [ -r "$(LINUX_VERSION_INFO)" ] ; then \ OS_VARIANT_NAME := $(shell \
$(CAT) $(LINUX_VERSION_INFO) | $(TAIL) -1 | $(NAWK) '{ print $$3; }';\ if [ -f /etc/fedora-release ] ; then \
else \ echo "Fedora"; \
$(ECHO) "Unknown linux"; \ elif [ -f /etc/redhat-release ] ; then \
fi ) echo "RedHat"; \
else elif [ -f /etc/SuSE-release ] ; then \
LINUX_VERSION := $(shell \ echo "SuSE"; \
if [ -r "$(LINUX_VERSION_INFO)" ] ; then \ else \
$(NAWK) '{ print $$4" "$$5; }' $(LINUX_VERSION_INFO) ; \ echo "Unknown"; \
else \ fi)
$(ECHO) "Unknown linux"; \ OS_VARIANT_VERSION := $(shell \
fi ) if [ "$(OS_VARIANT_NAME)" = "Fedora" ] ; then \
endif $(CAT) /etc/fedora-release | $(HEAD) -1 | $(NAWK) '{ print $$3; }' ; \
ifneq ($(ARCH), ia64) fi)
# dummy program that outputs ALSA's version (created in target sane-alsa-versioncheck) ALSA_INCLUDE=/usr/include/alsa/version.h
ALSA_VERSION_CHECK = $(TEMPDIR)/alsaversioncheck ALSA_LIBRARY=/usr/lib/libasound.so
ALSA_VERSION = `if [ -f "$(ALSA_VERSION_CHECK)" ] ; then $(ALSA_VERSION_CHECK) ; fi` _ALSA_VERSION := $(shell $(EGREP) SND_LIB_VERSION_STR $(ALSA_INCLUDE) | \
endif $(SED) -e 's@.*\"\(.*\)\".*@\1@' )
ALSA_VERSION := $(call GetVersion,$(_ALSA_VERSION))
endif endif
ifeq ($(PLATFORM), windows) ifeq ($(PLATFORM), windows)
FREE_SPACE := $(shell $(DF) -kP $(OUTPUTDIR) | $(TAIL) -1 | $(NAWK) '{print $$4;}') FREE_SPACE := $(shell $(DF) -kP $(OUTPUTDIR) | $(TAIL) -1 | $(NAWK) '{print $$4;}')
TEMP_FREE_SPACE := $(shell $(DF) -kP $(TEMP_DISK) | $(TAIL) -1 | $(NAWK) '{print $$4;}') TEMP_FREE_SPACE := $(shell $(DF) -kP $(TEMP_DISK) | $(TAIL) -1 | $(NAWK) '{print $$4;}')
# Localized systeminfo has localized labels, but not localized values. # Windows 2000 is 5.0, Windows XP is 5.1, Windows 2003 is 5.2
_WINDOWS_VERSION := \ # Assume 5.0 (Windows 2000) if systeminfo does not help
$(shell systeminfo 2> $(DEV_NULL) | grep 'Microsoft' | grep 'Windows' | \ WINDOWS_MAPPING-5.0 := Windows2000
cut -d':' -f2) WINDOWS_MAPPING-5.1 := WindowsXP
ifeq ($(_WINDOWS_VERSION),) WINDOWS_MAPPING-5.2 := Windows2003
_WINDOWS_VERSION := Windows 2000 or Unknown (no systeminfo utility) # What kind of system we are using (Variation is the common name)
_OS_VERSION := \
$(shell systeminfo 2> $(DEV_NULL) | \
egrep '^OS Version:' | \
awk '{print $$3;}' )
ifeq ($(_OS_VERSION),)
OS_VERSION = 5.0
else
OS_VERSION = $(call MajorVersion,$(_OS_VERSION)).$(call MinorVersion,$(_OS_VERSION))
endif
OS_VARIANT_NAME := $(WINDOWS_MAPPING-$(OS_VERSION))
OS_VARIANT_VERSION := $(OS_VERSION)
ifdef USING_CYGWIN
# CYGWIN version
_CYGWIN_VER := $(SYSTEM_UNAME)
CYGWIN_VER :=$(call GetVersion,$(_CYGWIN_VER))
endif endif
WINDOWS_VERSION := $(strip $(_WINDOWS_VERSION))
DXSDK_VER := $(shell $(EGREP) DIRECT3D_VERSION $(DXSDK_INCLUDE_PATH)/d3d9.h 2>&1 | \ DXSDK_VER := $(shell $(EGREP) DIRECT3D_VERSION $(DXSDK_INCLUDE_PATH)/d3d9.h 2>&1 | \
$(EGREP) "\#define" | $(NAWK) '{print $$3}') $(EGREP) "\#define" | $(NAWK) '{print $$3}')
endif endif
...@@ -106,7 +152,6 @@ ZIP_VER :=$(call GetVersion,"$(_ZIP_VER)") ...@@ -106,7 +152,6 @@ ZIP_VER :=$(call GetVersion,"$(_ZIP_VER)")
UNZIP_VER :=$(call GetVersion,"$(_UNZIP_VER)") UNZIP_VER :=$(call GetVersion,"$(_UNZIP_VER)")
BOOT_VER :=$(call GetVersion,"$(_BOOT_VER)") BOOT_VER :=$(call GetVersion,"$(_BOOT_VER)")
REQUIRED_ANT_VER := 1.6.3
_ANT_VER:=$(shell $(ANT) -version 2>&1 ) _ANT_VER:=$(shell $(ANT) -version 2>&1 )
ANT_VER:=$(call GetVersion,"$(_ANT_VER)") ANT_VER:=$(call GetVersion,"$(_ANT_VER)")
...@@ -167,7 +212,6 @@ include $(JDK_MAKE_SHARED_DIR)/Sanity-Settings.gmk ...@@ -167,7 +212,6 @@ include $(JDK_MAKE_SHARED_DIR)/Sanity-Settings.gmk
sane-compiler \ sane-compiler \
sane-link \ sane-link \
sane-cacerts \ sane-cacerts \
sane-alsa-versioncheck \
sane-alsa-headers \ sane-alsa-headers \
sane-ant_version \ sane-ant_version \
sane-zip_version \ sane-zip_version \
...@@ -239,35 +283,29 @@ sane-arch_data_model: ...@@ -239,35 +283,29 @@ sane-arch_data_model:
# generate a fatal sanity error, and a warning about the official # generate a fatal sanity error, and a warning about the official
# build platform just becomes clutter. # build platform just becomes clutter.
###################################################### ######################################################
OS_CHECK :=$(call CheckVersions,$(OS_VERSION),$(REQUIRED_OS_VERSION)) ifndef OPENJDK
OS_VERSION_CHECK := \
$(call CheckVersions,$(OS_VERSION),$(REQUIRED_OS_VERSION))
ifeq ($(OS_VARIANT_NAME),$(REQUIRED_OS_VARIANT_NAME))
OS_VARIANT_VERSION_CHECK := \
$(call CheckVersions,$(OS_VARIANT_VERSION),$(REQUIRED_OS_VARIANT_VERSION))
endif
endif
sane-os_version:: sane-arch_data_model sane-memory_check sane-locale sane-os_patch_level sane-os_version:: sane-arch_data_model sane-memory_check sane-locale sane-os_patch_level
ifndef OPENJDK ifndef OPENJDK
@if [ "$(OS_CHECK)" = "missing" ]; then \ ifneq ($(OS_VARIANT_NAME),$(REQUIRED_OS_VARIANT_NAME))
$(ECHO) "ERROR: The $(PLATFORM) OS version is undefined (Try: uname -r). \n" \ ifeq ($(OS_VERSION_CHECK),missing)
"" >> $(ERROR_FILE) ; \ @$(call OfficialErrorMessage,OS version,$(OS_VERSION),$(REQUIRED_OS_VERSION))
fi endif
@if [ "$(OS_CHECK)" != "same" ]; then \ ifneq ($(OS_VERSION_CHECK),same)
$(ECHO) "WARNING: $(THE_OFFICIAL_USES) OS version $(REQUIRED_OS_VERSION). \n" \ @$(call OfficialWarningMessage,OS version,$(OS_VERSION),$(REQUIRED_OS_VERSION))
" $(YOU_ARE_USING) OS version $(OS_VERSION). \n" \ endif
"" >> $(WARNING_FILE) ; \ @$(call OfficialWarningMessage,OS variant,$(OS_VARIANT_NAME),$(REQUIRED_OS_VARIANT_NAME))
fi else
ifeq ($(PLATFORM), windows) ifneq ($(OS_VARIANT_VERSION_CHECK),same)
@if [ "$(findstring $(REQUIRED_WINDOWS_VERSION),$(WINDOWS_VERSION))" = "" ]; then \ @$(call OfficialWarningMessage,$(OS_VARIANT_NAME) version,$(OS_VARIANT_VERSION),$(REQUIRED_OS_VARIANT_VERSION))
$(ECHO) "WARNING: $(YOU_ARE_USING) an unknown version of Windows. \n" \ endif
" The required version is $(REQUIRED_WINDOWS_VERSION). \n" \ endif
" $(YOU_ARE_USING) $(WINDOWS_VERSION) \n" \
"" >> $(WARNING_FILE) ; \
fi
endif # windows
ifeq ($(PLATFORM), linux)
@if [ `$(ECHO) "$(LINUX_VERSION)" | $(EGREP) -c '$(REQUIRED_LINUX_VER)'` -ne 1 ]; then \
$(ECHO) "WARNING: The build is being done on Linux $(LINUX_VERSION). \n" \
" $(THE_OFFICIAL_USES) Linux $(REQUIRED_LINUX_VER), \n" \
" specifically Linux $(REQUIRED_LINUX_FULLVER). \n" \
" The version found was '$(OS_VERSION)'. \n" \
"" >> $(WARNING_FILE) ; \
fi
endif # linux
endif # OPENJDK endif # OPENJDK
ifeq ($(PLATFORM), windows) ifeq ($(PLATFORM), windows)
...@@ -308,16 +346,12 @@ ifeq ($(PLATFORM), windows) ...@@ -308,16 +346,12 @@ ifeq ($(PLATFORM), windows)
CYGWIN_CHECK :=$(call CheckVersions,$(CYGWIN_VER),$(REQUIRED_CYGWIN_VER)) CYGWIN_CHECK :=$(call CheckVersions,$(CYGWIN_VER),$(REQUIRED_CYGWIN_VER))
sane-cygwin: sane-cygwin:
ifdef USING_CYGWIN ifdef USING_CYGWIN
@if [ "$(CYGWIN_CHECK)" = "missing" ]; then \ ifeq ($(CYGWIN_CHECK),missing)
$(ECHO) "ERROR: The CYGWIN version is undefined. \n" \ @$(call OfficialErrorMessage,CYGWIN version,$(CYGWIN_VER),$(REQUIRED_CYGWIN_VER))
" $(THE_OFFICIAL_USES) CYGWIN $(REQUIRED_CYGWIN_VER). \n" \ endif
"" >> $(ERROR_FILE) ; \ ifeq ($(CYGWIN_CHECK),older)
fi @$(call OfficialWarningMessage,CYGWIN version,$(CYGWIN_VER),$(REQUIRED_CYGWIN_VER))
@if [ "$(CYGWIN_CHECK)" = "older" ]; then \ endif
$(ECHO) "ERROR: The build cannot be done on CYGWIN $(CYGWIN_VER). \n" \
" Use CYGWIN $(REQUIRED_CYGWIN_VER) or higher. \n" \
"" >> $(ERROR_FILE) ; \
fi
endif endif
endif endif
...@@ -345,16 +379,12 @@ ifeq ($(PLATFORM), windows) ...@@ -345,16 +379,12 @@ ifeq ($(PLATFORM), windows)
MKS_CHECK :=$(call CheckVersions,$(MKS_VER),$(REQUIRED_MKS_VER)) MKS_CHECK :=$(call CheckVersions,$(MKS_VER),$(REQUIRED_MKS_VER))
sane-mks: sane-mks:
ifndef USING_CYGWIN ifndef USING_CYGWIN
@if [ "$(MKS_CHECK)" = "missing" ]; then \ ifeq ($(MKS_CHECK),missing)
$(ECHO) "ERROR: The MKS version is undefined. \n" \ @$(call OfficialErrorMessage,MKS version,$(MKS_VER),$(REQUIRED_MKS_VER))
" $(THE_OFFICIAL_USES) MKS $(REQUIRED_MKS_VER). \n" \ endif
"" >> $(ERROR_FILE) ; \ ifeq ($(MKS_CHECK),older)
fi @$(call OfficialErrorMessage,MKS version,$(MKS_VER),$(REQUIRED_MKS_VER))
@if [ "$(MKS_CHECK)" = "older" ]; then \ endif
$(ECHO) "ERROR: The build cannot be done on MKS $(MKS_VER). \n" \
" Use MKS $(REQUIRED_MKS_VER) or higher. \n" \
"" >> $(ERROR_FILE) ; \
fi
endif endif
endif endif
...@@ -472,13 +502,15 @@ endif ...@@ -472,13 +502,15 @@ endif
###################################################### ######################################################
ifdef OPENJDK ifdef OPENJDK
sane-binary-plugs: sane-binary-plugs:
ifeq ($(IMPORT_BINARY_PLUGS),true)
@if [ ! -d "$(BINARY_PLUGS_PATH)" ]; then \ @if [ ! -d "$(BINARY_PLUGS_PATH)" ]; then \
$(ECHO) "ERROR: Can't locate pre-built libraries. \n" \ $(ECHO) "WARNING: Can't locate pre-built libraries. \n" \
" Please check your access to \n" \ " Please check your access to \n" \
" $(BINARY_PLUGS_PATH) \n" \ " $(BINARY_PLUGS_PATH) \n" \
" and/or check your value of ALT_BINARY_PLUGS_PATH. \n" \ " and/or check your value of ALT_BINARY_PLUGS_PATH. \n" \
"" >> $(ERROR_FILE); \ "" >> $(WARNING_FILE); \
fi fi
endif
endif endif
###################################################### ######################################################
...@@ -834,7 +866,7 @@ ifeq ($(PLATFORM), windows) ...@@ -834,7 +866,7 @@ ifeq ($(PLATFORM), windows)
" and/or check your value of ALT_MSVCRT_DLL_PATH. \n" \ " and/or check your value of ALT_MSVCRT_DLL_PATH. \n" \
"" >> $(ERROR_FILE) ; \ "" >> $(ERROR_FILE) ; \
fi fi
ifeq ($(ARCH_DATA_MODEL), 32) ifneq ($(MSVCRNN_DLL),)
@if [ ! -r "$(MSVCRNN_DLL_PATH)/$(MSVCRNN_DLL)" ]; then \ @if [ ! -r "$(MSVCRNN_DLL_PATH)/$(MSVCRNN_DLL)" ]; then \
$(ECHO) "ERROR: You do not have access to $(MSVCRNN_DLL). \n" \ $(ECHO) "ERROR: You do not have access to $(MSVCRNN_DLL). \n" \
" Please check your access to \n" \ " Please check your access to \n" \
...@@ -1284,8 +1316,8 @@ ifdef LINK_VER ...@@ -1284,8 +1316,8 @@ ifdef LINK_VER
fi fi
@if [ "$(LINK_CHECK)" != "same" ]; then \ @if [ "$(LINK_CHECK)" != "same" ]; then \
$(ECHO) "WARNING: To build Java 2 SDK $(JDK_VERSION) you need : \n" \ $(ECHO) "WARNING: To build Java 2 SDK $(JDK_VERSION) you need : \n" \
" $(COMPILER_VERSION) - link.exe version \"$(REQUIRED_LINK_VER)\" \n" \ " $(REQUIRED_COMPILER_VERSION) - link.exe version \"$(REQUIRED_LINK_VER)\" \n" \
" Specifically the $(COMPILER_NAME) link.exe. \n " \ " Specifically the $(REQUIRED_COMPILER_NAME) link.exe. \n " \
" $(YOU_ARE_USING) Linker version \"$(LINK_VER)\" \n" \ " $(YOU_ARE_USING) Linker version \"$(LINK_VER)\" \n" \
"" >> $(WARNING_FILE) ; \ "" >> $(WARNING_FILE) ; \
fi fi
...@@ -1295,11 +1327,6 @@ endif ...@@ -1295,11 +1327,6 @@ endif
# Check the compiler version(s) # Check the compiler version(s)
###################################################### ######################################################
CC_CHECK :=$(call CheckVersions,$(CC_VER),$(REQUIRED_CC_VER)) CC_CHECK :=$(call CheckVersions,$(CC_VER),$(REQUIRED_CC_VER))
ifeq ($(PLATFORM), solaris)
ifeq ($(ARCH_DATA_MODEL), 32)
GCC_CHECK :=$(call CheckVersions,$(GCC_VER),$(REQUIRED_GCC_VER))
endif
endif
sane-compiler: sane-link sane-compiler: sane-link
@if [ "$(CC_CHECK)" = "missing" ]; then \ @if [ "$(CC_CHECK)" = "missing" ]; then \
$(ECHO) "ERROR: The Compiler version is undefined. \n" \ $(ECHO) "ERROR: The Compiler version is undefined. \n" \
...@@ -1307,69 +1334,36 @@ sane-compiler: sane-link ...@@ -1307,69 +1334,36 @@ sane-compiler: sane-link
fi fi
ifndef OPENJDK ifndef OPENJDK
@if [ "$(CC_CHECK)" != "same" ]; then \ @if [ "$(CC_CHECK)" != "same" ]; then \
$(ECHO) "WARNING: The $(PLATFORM) compiler is not version $(COMPILER_VERSION) $(REQUIRED_CC_VER) \n" \ $(ECHO) "WARNING: The $(PLATFORM) compiler is not version $(REQUIRED_COMPILER_VERSION) $(REQUIRED_CC_VER) \n" \
" Specifically the $(COMPILER_NAME) compiler. \n " \ " Specifically the $(REQUIRED_COMPILER_NAME) compiler. \n " \
" $(YOU_ARE_USING) compiler version: $(CC_VER) \n" \ " $(YOU_ARE_USING) $(COMPILER_VERSION): $(CC_VER) \n" \
" The compiler was obtained from the following location: \n" \ " The compiler was obtained from the following location: \n" \
" $(COMPILER_PATH) \n" \ " $(COMPILER_PATH) \n" \
"" >> $(WARNING_FILE) ; \ "" >> $(WARNING_FILE) ; \
fi fi
ifdef GCC_CHECK
@if [ "$(GCC_CHECK)" != "same" ]; then \
$(ECHO) "WARNING: The $(PLATFORM) GCC compiler must be version $(REQUIRED_GCC_VER) \n" \
" $(YOU_ARE_USING) compiler version: $(GCC_VER) \n" \
" The compiler was obtained from the following location: \n" \
" $(GCC_COMPILER_PATH) \n" \
" Please change your compiler. \n" \
"" >> $(WARNING_FILE) ; \
fi
endif
ifeq ($(PLATFORM), windows)
ifeq ($(ARCH_DATA_MODEL), 64)
ifneq ($(COMPILER_VERSION), VS2005)
@$(ECHO) "WARNING: Should be using VS2005 compiler on 64bit platform. \n" \
"" >> $(WARNING_FILE)
endif
endif
endif
endif endif
###################################################### ######################################################
# Check that ALSA headers and libs are installed and # Check that ALSA headers and libs are installed and
# that the header has the right version. We only # that the header has the right version. We only
# need /usr/include/alsa/*.h and /usr/lib/libasound.so # need /usr/include/alsa/version.h and /usr/lib/libasound.so
###################################################### ######################################################
ifdef ALSA_VERSION_CHECK ifdef REQUIRED_ALSA_VERSION
$(ALSA_VERSION_CHECK): $(ALSA_VERSION_CHECK).c ALSA_CHECK := $(call CheckVersions,$(ALSA_VERSION),$(REQUIRED_ALSA_VERSION))
@$(prep-target)
@$(CC) -lasound -o $@ $<
$(ALSA_VERSION_CHECK).c:
@$(prep-target)
@$(ECHO) "#include <alsa/asoundlib.h>\n" \
"#include <stdio.h>\n" \
"int main(int argc, char** argv) {\n" \
" printf(\"%s\", SND_LIB_VERSION_STR);\n" \
" return 0;\n" \
"}\n" \
> $@
endif endif
sane-alsa-headers:
sane-alsa-versioncheck: $(ALSA_VERSION_CHECK) ifdef REQUIRED_ALSA_VERSION
sane-alsa-headers: sane-alsa-versioncheck if [ "$(ALSA_CHECK)" != "same" -a "$(ALSA_CHECK)" != "newer" ] ; then \
ifdef ALSA_VERSION_CHECK $(ECHO) "ERROR: The ALSA version must be $(REQUIRED_ALSA_VERSION) or higher. \n" \
@if [ -f "$(ALSA_VERSION_CHECK)" ]; then \ " You have the following ALSA version installed: $${alsa_version) \n" \
if [ `$(ALSA_VERSION_CHECK) | $(EGREP) -c '$(REQUIRED_ALSA_VERSION)'` -ne 1 ] ; then \
$(ECHO) "ERROR: The ALSA version must be 0.9.1 or higher. \n" \
" You have the following ALSA version installed: $(ALSA_VERSION) \n" \
" Please reinstall ALSA (drivers and lib). You can download \n" \ " Please reinstall ALSA (drivers and lib). You can download \n" \
" the source distribution from http://www.alsa-project.org \n" \ " the source distribution from http://www.alsa-project.org \n" \
" or go to http://www.freshrpms.net/docs/alsa/ for precompiled RPM packages. \n" \ " or go to http://www.freshrpms.net/docs/alsa/ for precompiled RPM packages. \n" \
"" >> $(ERROR_FILE) ; \ "" >> $(ERROR_FILE) ; \
fi \ fi \
else \ else \
$(ECHO) "ERROR: You seem to not have installed ALSA 0.9.1 or higher. \n" \ $(ECHO) "ERROR: You seem to not have installed ALSA $(REQUIRED_ALSA_VERSION) or higher. \n" \
" Please install ALSA (drivers and lib). You can download the \n" \ " Please install ALSA (drivers and lib). You can download the \n" \
" source distribution from http://www.alsa-project.org or go to \n" \ " source distribution from http://www.alsa-project.org or go to \n" \
" http://www.freshrpms.net/docs/alsa/ for precompiled RPM packages. \n" \ " http://www.freshrpms.net/docs/alsa/ for precompiled RPM packages. \n" \
...@@ -1384,7 +1378,7 @@ $(SANITY_FILES): ...@@ -1384,7 +1378,7 @@ $(SANITY_FILES):
###################################################### ######################################################
# dump out the variable settings... # dump out the variable settings...
###################################################### ######################################################
sane-settings:: sane-alsa-versioncheck sane-settings::
@$(ECHO) >> $(MESSAGE_FILE) @$(ECHO) >> $(MESSAGE_FILE)
@$(ECHO) $(ALL_SETTINGS) >> $(MESSAGE_FILE) @$(ECHO) $(ALL_SETTINGS) >> $(MESSAGE_FILE)
@$(ECHO) >> $(MESSAGE_FILE) @$(ECHO) >> $(MESSAGE_FILE)
...@@ -1453,8 +1447,8 @@ sane-gcc-compiler: ...@@ -1453,8 +1447,8 @@ sane-gcc-compiler:
ifeq ($(PLATFORM), solaris) ifeq ($(PLATFORM), solaris)
ifndef OPENJDK ifndef OPENJDK
@if [ -r $(GCC_COMPILER_PATH) ]; then \ @if [ -r $(GCC_COMPILER_PATH) ]; then \
if [ ! "$(GCC_VER)" = 2.95.2 ]; then \ if [ ! "$(GCC_VER)" = $(REQUIRED_GCC_VERSION) ]; then \
$(ECHO) "ERROR: The Solaris GCC compiler version must be 2.95.2. \n" \ $(ECHO) "ERROR: The Solaris GCC compiler version must be $(REQUIRED_GCC_VERSION). \n" \
" You are using the following compiler version: $(GCC_VER) \n" \ " You are using the following compiler version: $(GCC_VER) \n" \
" The compiler was obtained from the following location: \n" \ " The compiler was obtained from the following location: \n" \
" $(GCC_COMPILER_PATH) \n" \ " $(GCC_COMPILER_PATH) \n" \
......
# #
# Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. # Copyright 2001-2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it
...@@ -110,6 +110,9 @@ CORE_PKGS = \ ...@@ -110,6 +110,9 @@ CORE_PKGS = \
java.nio.channels.spi \ java.nio.channels.spi \
java.nio.charset \ java.nio.charset \
java.nio.charset.spi \ java.nio.charset.spi \
java.nio.file \
java.nio.file.attribute \
java.nio.file.spi \
java.rmi \ java.rmi \
java.rmi.activation \ java.rmi.activation \
java.rmi.dgc \ java.rmi.dgc \
......
# #
# Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. # Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it
...@@ -45,6 +45,7 @@ endif ...@@ -45,6 +45,7 @@ endif
DOCSTMPDIR = $(TEMPDIR)/doctmp DOCSTMPDIR = $(TEMPDIR)/doctmp
COMMON_JAVADOCFLAGS = \ COMMON_JAVADOCFLAGS = \
$(NO_PROPRIETARY_API_WARNINGS) \
-source 1.5 \ -source 1.5 \
-quiet \ -quiet \
-use \ -use \
...@@ -203,6 +204,9 @@ JDI_DOCTITLE = "Java$(TRADEMARK) Debug Interface" ...@@ -203,6 +204,9 @@ JDI_DOCTITLE = "Java$(TRADEMARK) Debug Interface"
JDI_HEADER = "Java Debug Interface" JDI_HEADER = "Java Debug Interface"
# JDI_PKGS is located in NON_CORE_PKGS.gmk # JDI_PKGS is located in NON_CORE_PKGS.gmk
# Variables used by security components
SECURITYAPI_JAVADOCBOTTOM = '<font size="-1"><a href="http://bugs.sun.com/services/bugreport/index.jsp">Report a bug or request a feature.</a><br>Copyright $(THIS_YEAR) Sun Microsystems, Inc. All Rights Reserved. Use is subject to license terms.</font>'
# #
# Variables used by JAAS target # Variables used by JAAS target
# #
...@@ -220,6 +224,7 @@ JAAS_JAVADOCFLAGS = $(COMMON_JAVADOCFLAGS) \ ...@@ -220,6 +224,7 @@ JAAS_JAVADOCFLAGS = $(COMMON_JAVADOCFLAGS) \
-windowtitle $(JAAS_WINDOWTITLE) \ -windowtitle $(JAAS_WINDOWTITLE) \
-doctitle $(JAAS_DOCTITLE) \ -doctitle $(JAAS_DOCTITLE) \
-header $(JAAS_JAVADOCHEADER) \ -header $(JAAS_JAVADOCHEADER) \
-bottom $(SECURITYAPI_JAVADOCBOTTOM) \
-linkoffline ../../../../../api $(DOCSDIR)/api/ \ -linkoffline ../../../../../api $(DOCSDIR)/api/ \
-overview $(TOPDIR)/src/share/classes/com/sun/security/auth/jaas-overview.html -overview $(TOPDIR)/src/share/classes/com/sun/security/auth/jaas-overview.html
JAAS_WINDOWTITLE = "Java Authentication and Authorization Service " JAAS_WINDOWTITLE = "Java Authentication and Authorization Service "
...@@ -242,6 +247,7 @@ JGSS_JAVADOCFLAGS = $(COMMON_JAVADOCFLAGS) \ ...@@ -242,6 +247,7 @@ JGSS_JAVADOCFLAGS = $(COMMON_JAVADOCFLAGS) \
-windowtitle $(JGSS_WINDOWTITLE) \ -windowtitle $(JGSS_WINDOWTITLE) \
-doctitle $(JGSS_DOCTITLE) \ -doctitle $(JGSS_DOCTITLE) \
-header $(JGSS_JAVADOCHEADER) \ -header $(JGSS_JAVADOCHEADER) \
-bottom $(SECURITYAPI_JAVADOCBOTTOM) \
-linkoffline ../../../../../api $(DOCSDIR)/api/ \ -linkoffline ../../../../../api $(DOCSDIR)/api/ \
-overview $(JGSS_SOURCEPATH)/com/sun/security/jgss/jgss-overview.html -overview $(JGSS_SOURCEPATH)/com/sun/security/jgss/jgss-overview.html
...@@ -265,6 +271,7 @@ SMARTCARDIO_JAVADOCFLAGS = $(COMMON_JAVADOCFLAGS) \ ...@@ -265,6 +271,7 @@ SMARTCARDIO_JAVADOCFLAGS = $(COMMON_JAVADOCFLAGS) \
-windowtitle $(SMARTCARDIO_WINDOWTITLE) \ -windowtitle $(SMARTCARDIO_WINDOWTITLE) \
-doctitle $(SMARTCARDIO_DOCTITLE) \ -doctitle $(SMARTCARDIO_DOCTITLE) \
-header $(SMARTCARDIO_JAVADOCHEADER) \ -header $(SMARTCARDIO_JAVADOCHEADER) \
-bottom $(SECURITYAPI_JAVADOCBOTTOM) \
-linkoffline ../../../../../api $(DOCSDIR)/api/ -linkoffline ../../../../../api $(DOCSDIR)/api/
SMARTCARDIO_WINDOWTITLE = "Java Smart Card I/O" SMARTCARDIO_WINDOWTITLE = "Java Smart Card I/O"
......
# #
# Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. # Copyright 2002-2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it
...@@ -65,6 +65,8 @@ OLD_JSSE_PKGS = com.sun.net.ssl ...@@ -65,6 +65,8 @@ OLD_JSSE_PKGS = com.sun.net.ssl
HTTPSERVER_PKGS = com.sun.net.httpserver \ HTTPSERVER_PKGS = com.sun.net.httpserver \
com.sun.net.httpserver.spi com.sun.net.httpserver.spi
NIO_PKGS = com.sun.nio.file
DOCLETAPI_PKGS = com.sun.javadoc DOCLETAPI_PKGS = com.sun.javadoc
TAGLETAPI_FILE = com/sun/tools/doclets/Taglet.java TAGLETAPI_FILE = com/sun/tools/doclets/Taglet.java
...@@ -92,6 +94,7 @@ NON_CORE_PKGS = $(DOMAPI_PKGS) \ ...@@ -92,6 +94,7 @@ NON_CORE_PKGS = $(DOMAPI_PKGS) \
$(MGMT_PKGS) \ $(MGMT_PKGS) \
$(JAAS_PKGS) \ $(JAAS_PKGS) \
$(JGSS_PKGS) \ $(JGSS_PKGS) \
$(NIO_PKGS) \
$(OLD_JSSE_PKGS) \ $(OLD_JSSE_PKGS) \
$(HTTPSERVER_PKGS) \ $(HTTPSERVER_PKGS) \
$(SMARTCARDIO_PKGS) \ $(SMARTCARDIO_PKGS) \
......
...@@ -45,6 +45,7 @@ FDLIBM_SRC = $(SHARE_SRC)/native/java/lang/fdlibm ...@@ -45,6 +45,7 @@ FDLIBM_SRC = $(SHARE_SRC)/native/java/lang/fdlibm
ifeq ($(PLATFORM),windows) ifeq ($(PLATFORM),windows)
# Turn all optimizations off # Turn all optimizations off
OPTIMIZATION_LEVEL = NONE OPTIMIZATION_LEVEL = NONE
FASTDEBUG_OPTIMIZATION_LEVEL = NONE
OTHER_CFLAGS = OTHER_CFLAGS =
CPPFLAGS_DBG += -DLOGGING CPPFLAGS_DBG += -DLOGGING
endif endif
...@@ -56,6 +57,7 @@ endif ...@@ -56,6 +57,7 @@ endif
ifeq ($(PLATFORM),linux) ifeq ($(PLATFORM),linux)
# Turn all optimizations off # Turn all optimizations off
OPTIMIZATION_LEVEL = NONE OPTIMIZATION_LEVEL = NONE
FASTDEBUG_OPTIMIZATION_LEVEL = NONE
endif endif
# #
......
...@@ -449,7 +449,6 @@ JAVA_JAVA_java = \ ...@@ -449,7 +449,6 @@ JAVA_JAVA_java = \
sun/misc/Service.java \ sun/misc/Service.java \
sun/misc/JavaLangAccess.java \ sun/misc/JavaLangAccess.java \
sun/misc/JavaIOAccess.java \ sun/misc/JavaIOAccess.java \
sun/misc/JavaIODeleteOnExitAccess.java \
sun/misc/JavaIOFileDescriptorAccess.java \ sun/misc/JavaIOFileDescriptorAccess.java \
sun/misc/JavaNioAccess.java sun/misc/JavaNioAccess.java
......
# #
# Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. # Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it
...@@ -135,7 +135,8 @@ SUNWprivate_1.1 { ...@@ -135,7 +135,8 @@ SUNWprivate_1.1 {
Java_java_lang_ClassLoader_00024NativeLibrary_find; Java_java_lang_ClassLoader_00024NativeLibrary_find;
Java_java_lang_ClassLoader_00024NativeLibrary_load; Java_java_lang_ClassLoader_00024NativeLibrary_load;
Java_java_lang_ClassLoader_00024NativeLibrary_unload; Java_java_lang_ClassLoader_00024NativeLibrary_unload;
Java_java_lang_ClassLoader_registerNatives; Java_java_lang_ClassLoader_getCaller;
Java_java_lang_ClassLoader_registerNatives;
Java_java_lang_Compiler_registerNatives; Java_java_lang_Compiler_registerNatives;
Java_java_lang_Double_longBitsToDouble; Java_java_lang_Double_longBitsToDouble;
Java_java_lang_Double_doubleToRawLongBits; Java_java_lang_Double_doubleToRawLongBits;
......
...@@ -46,6 +46,8 @@ include $(BUILDDIR)/common/Mapfile-vers.gmk ...@@ -46,6 +46,8 @@ include $(BUILDDIR)/common/Mapfile-vers.gmk
# #
include FILES_c.gmk include FILES_c.gmk
# We don't need snmp here.
AUTO_JAVA_PRUNE = snmp
AUTO_FILES_JAVA_DIRS = java/lang/management com/sun/management sun/management AUTO_FILES_JAVA_DIRS = java/lang/management com/sun/management sun/management
include Exportedfiles.gmk include Exportedfiles.gmk
......
...@@ -39,6 +39,10 @@ FILES_c = \ ...@@ -39,6 +39,10 @@ FILES_c = \
ResolverConfigurationImpl.c \ ResolverConfigurationImpl.c \
DefaultProxySelector.c DefaultProxySelector.c
ifeq ($(PLATFORM), solaris)
FILES_c += SdpProvider.c
endif
ifeq ($(PLATFORM), linux) ifeq ($(PLATFORM), linux)
FILES_c += linux_close.c FILES_c += linux_close.c
endif endif
......
...@@ -108,11 +108,24 @@ CLASSES.export += java.lang.Integer java.io.FileDescriptor java.net.InetAddressI ...@@ -108,11 +108,24 @@ CLASSES.export += java.lang.Integer java.io.FileDescriptor java.net.InetAddressI
# #
LOCALE_SET_DEFINITION = jre LOCALE_SET_DEFINITION = jre
properties: $(LIBDIR) $(LIBDIR)/net.properties MISC_FILES = $(LIBDIR) $(LIBDIR)/net.properties
$(LIBDIR)/net.properties: $(SHARE_SRC)/lib/net.properties $(LIBDIR)/net.properties: $(SHARE_SRC)/lib/net.properties
@$(RM) $@ @$(RM) $@
$(CP) $< $@ $(CP) $< $@
build: properties #
# SDP configuration template
#
ifeq ($(PLATFORM), solaris)
SDP_PATH = sdp/sdp.conf.template
SDP_CONF = $(LIBDIR)/$(SDP_PATH)
$(SDP_CONF): $(PLATFORM_SRC)/lib/$(SDP_PATH)
@$(RM) $*
$(install-file)
MISC_FILES += $(SDP_CONF)
endif
build: $(MISC_FILES)
...@@ -90,6 +90,7 @@ SUNWprivate_1.1 { ...@@ -90,6 +90,7 @@ SUNWprivate_1.1 {
Java_sun_net_dns_ResolverConfigurationImpl_fallbackDomain0; Java_sun_net_dns_ResolverConfigurationImpl_fallbackDomain0;
Java_sun_net_spi_DefaultProxySelector_init; Java_sun_net_spi_DefaultProxySelector_init;
Java_sun_net_spi_DefaultProxySelector_getSystemProxy; Java_sun_net_spi_DefaultProxySelector_getSystemProxy;
Java_sun_net_spi_SdpProvider_convert;
NET_AllocSockaddr; NET_AllocSockaddr;
NET_SockaddrToInetAddress; NET_SockaddrToInetAddress;
NET_SockaddrEqualsInetAddress; NET_SockaddrEqualsInetAddress;
......
# #
# Copyright 2000-2005 Sun Microsystems, Inc. All Rights Reserved. # Copyright 2000-2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it
...@@ -33,7 +33,7 @@ FILES_export = \ ...@@ -33,7 +33,7 @@ FILES_export = \
sun/nio/ch/DatagramChannelImpl.java \ sun/nio/ch/DatagramChannelImpl.java \
sun/nio/ch/DatagramDispatcher.java \ sun/nio/ch/DatagramDispatcher.java \
sun/nio/ch/FileChannelImpl.java \ sun/nio/ch/FileChannelImpl.java \
sun/nio/ch/FileDispatcher.java \ sun/nio/ch/FileDispatcherImpl.java \
sun/nio/ch/FileKey.java \ sun/nio/ch/FileKey.java \
sun/nio/ch/FileLockImpl.java \ sun/nio/ch/FileLockImpl.java \
sun/nio/ch/IOStatus.java \ sun/nio/ch/IOStatus.java \
......
# #
# Copyright 2000-2005 Sun Microsystems, Inc. All Rights Reserved. # Copyright 2000-2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it
...@@ -27,7 +27,7 @@ FILES_c = \ ...@@ -27,7 +27,7 @@ FILES_c = \
DatagramChannelImpl.c \ DatagramChannelImpl.c \
DatagramDispatcher.c \ DatagramDispatcher.c \
FileChannelImpl.c \ FileChannelImpl.c \
FileDispatcher.c \ FileDispatcherImpl.c \
FileKey.c \ FileKey.c \
IOUtil.c \ IOUtil.c \
MappedByteBuffer.c \ MappedByteBuffer.c \
......
# #
# Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. # Copyright 2000-2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it
...@@ -31,19 +31,29 @@ FILES_src = \ ...@@ -31,19 +31,29 @@ FILES_src = \
java/nio/MappedByteBuffer.java \ java/nio/MappedByteBuffer.java \
java/nio/StringCharBuffer.java \ java/nio/StringCharBuffer.java \
\ \
java/nio/channels/AsynchronousByteChannel.java \
java/nio/channels/AsynchronousChannel.java \
java/nio/channels/AsynchronousChannelGroup.java \
java/nio/channels/AsynchronousDatagramChannel.java \
java/nio/channels/AsynchronousFileChannel.java \
java/nio/channels/AsynchronousServerSocketChannel.java \
java/nio/channels/AsynchronousSocketChannel.java \
java/nio/channels/ByteChannel.java \ java/nio/channels/ByteChannel.java \
java/nio/channels/Channel.java \ java/nio/channels/Channel.java \
java/nio/channels/Channels.java \ java/nio/channels/Channels.java \
java/nio/channels/CompletionHandler.java \
java/nio/channels/DatagramChannel.java \ java/nio/channels/DatagramChannel.java \
java/nio/channels/FileChannel.java \ java/nio/channels/FileChannel.java \
java/nio/channels/FileLock.java \ java/nio/channels/FileLock.java \
java/nio/channels/GatheringByteChannel.java \ java/nio/channels/GatheringByteChannel.java \
java/nio/channels/InterruptibleChannel.java \ java/nio/channels/InterruptibleChannel.java \
java/nio/channels/Pipe.java \
java/nio/channels/MembershipKey.java \ java/nio/channels/MembershipKey.java \
java/nio/channels/MulticastChannel.java \ java/nio/channels/MulticastChannel.java \
java/nio/channels/NetworkChannel.java \ java/nio/channels/NetworkChannel.java \
java/nio/channels/ReadableByteChannel.java \ java/nio/channels/ReadableByteChannel.java \
java/nio/channels/ScatteringByteChannel.java \ java/nio/channels/ScatteringByteChannel.java \
java/nio/channels/SeekableByteChannel.java \
java/nio/channels/SelectableChannel.java \ java/nio/channels/SelectableChannel.java \
java/nio/channels/Selector.java \ java/nio/channels/Selector.java \
java/nio/channels/SelectionKey.java \ java/nio/channels/SelectionKey.java \
...@@ -55,6 +65,7 @@ FILES_src = \ ...@@ -55,6 +65,7 @@ FILES_src = \
java/nio/channels/spi/AbstractSelectableChannel.java \ java/nio/channels/spi/AbstractSelectableChannel.java \
java/nio/channels/spi/AbstractSelectionKey.java \ java/nio/channels/spi/AbstractSelectionKey.java \
java/nio/channels/spi/AbstractSelector.java \ java/nio/channels/spi/AbstractSelector.java \
java/nio/channels/spi/AsynchronousChannelProvider.java \
java/nio/channels/spi/SelectorProvider.java \ java/nio/channels/spi/SelectorProvider.java \
\ \
java/nio/charset/Charset.java \ java/nio/charset/Charset.java \
...@@ -66,21 +77,117 @@ FILES_src = \ ...@@ -66,21 +77,117 @@ FILES_src = \
\ \
java/nio/charset/spi/CharsetProvider.java \ java/nio/charset/spi/CharsetProvider.java \
\ \
java/nio/file/AccessDeniedException.java \
java/nio/file/AccessMode.java \
java/nio/file/AtomicMoveNotSupportedException.java \
java/nio/file/ClosedDirectoryStreamException.java \
java/nio/file/ClosedFileSystemException.java \
java/nio/file/ClosedWatchServiceException.java \
java/nio/file/CopyOption.java \
java/nio/file/DirectoryNotEmptyException.java \
java/nio/file/DirectoryStream.java \
java/nio/file/DirectoryStreamFilters.java \
java/nio/file/FileAction.java \
java/nio/file/FileAlreadyExistsException.java \
java/nio/file/FileRef.java \
java/nio/file/FileStore.java \
java/nio/file/FileSystem.java \
java/nio/file/FileSystemAlreadyExistsException.java \
java/nio/file/FileSystemException.java \
java/nio/file/FileSystemNotFoundException.java \
java/nio/file/FileSystems.java \
java/nio/file/FileTreeWalker.java \
java/nio/file/FileVisitOption.java \
java/nio/file/FileVisitResult.java \
java/nio/file/FileVisitor.java \
java/nio/file/Files.java \
java/nio/file/InvalidPathException.java \
java/nio/file/LinkOption.java \
java/nio/file/LinkPermission.java \
java/nio/file/NoSuchFileException.java \
java/nio/file/NotDirectoryException.java \
java/nio/file/NotLinkException.java \
java/nio/file/OpenOption.java \
java/nio/file/Path.java \
java/nio/file/PathMatcher.java \
java/nio/file/Paths.java \
java/nio/file/ProviderMismatchException.java \
java/nio/file/ProviderNotFoundException.java \
java/nio/file/ReadOnlyFileSystemException.java \
java/nio/file/SecureDirectoryStream.java \
java/nio/file/SimpleFileVisitor.java \
java/nio/file/StandardCopyOption.java \
java/nio/file/StandardOpenOption.java \
java/nio/file/StandardWatchEventKind.java \
java/nio/file/WatchEvent.java \
java/nio/file/WatchKey.java \
java/nio/file/WatchService.java \
java/nio/file/Watchable.java \
\
java/nio/file/attribute/AclEntry.java \
java/nio/file/attribute/AclEntryFlag.java \
java/nio/file/attribute/AclEntryPermission.java \
java/nio/file/attribute/AclEntryType.java \
java/nio/file/attribute/AclFileAttributeView.java \
java/nio/file/attribute/AttributeView.java \
java/nio/file/attribute/Attributes.java \
java/nio/file/attribute/BasicFileAttributeView.java \
java/nio/file/attribute/BasicFileAttributes.java \
java/nio/file/attribute/DosFileAttributeView.java \
java/nio/file/attribute/DosFileAttributes.java \
java/nio/file/attribute/FileAttribute.java \
java/nio/file/attribute/FileAttributeView.java \
java/nio/file/attribute/FileOwnerAttributeView.java \
java/nio/file/attribute/FileStoreAttributeView.java \
java/nio/file/attribute/FileStoreSpaceAttributeView.java \
java/nio/file/attribute/FileStoreSpaceAttributes.java \
java/nio/file/attribute/GroupPrincipal.java \
java/nio/file/attribute/UserDefinedFileAttributeView.java \
java/nio/file/attribute/PosixFileAttributeView.java \
java/nio/file/attribute/PosixFileAttributes.java \
java/nio/file/attribute/PosixFilePermission.java \
java/nio/file/attribute/PosixFilePermissions.java \
java/nio/file/attribute/UserPrincipal.java \
java/nio/file/attribute/UserPrincipalLookupService.java \
java/nio/file/attribute/UserPrincipalNotFoundException.java \
\
java/nio/file/spi/AbstractPath.java \
java/nio/file/spi/FileSystemProvider.java \
java/nio/file/spi/FileTypeDetector.java \
\
com/sun/nio/file/ExtendedCopyOption.java \
com/sun/nio/file/ExtendedOpenOption.java \
com/sun/nio/file/ExtendedWatchEventModifier.java \
com/sun/nio/file/SensitivityWatchEventModifier.java \
\
sun/nio/ByteBuffered.java \ sun/nio/ByteBuffered.java \
\ \
sun/nio/ch/AbstractFuture.java \
sun/nio/ch/AbstractPollArrayWrapper.java \ sun/nio/ch/AbstractPollArrayWrapper.java \
sun/nio/ch/AllocatedNativeObject.java \ sun/nio/ch/AllocatedNativeObject.java \
sun/nio/ch/AsynchronousChannelGroupImpl.java \
sun/nio/ch/AsynchronousFileChannelImpl.java \
sun/nio/ch/AsynchronousServerSocketChannelImpl.java \
sun/nio/ch/AsynchronousSocketChannelImpl.java \
sun/nio/ch/Cancellable.java \
sun/nio/ch/ChannelInputStream.java \ sun/nio/ch/ChannelInputStream.java \
sun/nio/ch/CompletedFuture.java \
sun/nio/ch/DatagramChannelImpl.java \ sun/nio/ch/DatagramChannelImpl.java \
sun/nio/ch/DatagramDispatcher.java \ sun/nio/ch/DatagramDispatcher.java \
sun/nio/ch/DatagramSocketAdaptor.java \ sun/nio/ch/DatagramSocketAdaptor.java \
sun/nio/ch/DefaultAsynchronousChannelProvider.java \
sun/nio/ch/DefaultSelectorProvider.java \ sun/nio/ch/DefaultSelectorProvider.java \
sun/nio/ch/DirectBuffer.java \ sun/nio/ch/DirectBuffer.java \
sun/nio/ch/ExtendedSocketOption.java \ sun/nio/ch/ExtendedSocketOption.java \
sun/nio/ch/FileChannelImpl.java \ sun/nio/ch/FileChannelImpl.java \
sun/nio/ch/FileDispatcher.java \ sun/nio/ch/FileDispatcher.java \
sun/nio/ch/FileDispatcherImpl.java \
sun/nio/ch/FileKey.java \ sun/nio/ch/FileKey.java \
sun/nio/ch/FileLockImpl.java \
sun/nio/ch/FileLockTable.java \
sun/nio/ch/Groupable.java \
sun/nio/ch/Interruptible.java \ sun/nio/ch/Interruptible.java \
sun/nio/ch/Invoker.java \
sun/nio/ch/IOUtil.java \ sun/nio/ch/IOUtil.java \
sun/nio/ch/IOStatus.java \ sun/nio/ch/IOStatus.java \
sun/nio/ch/IOVecWrapper.java \ sun/nio/ch/IOVecWrapper.java \
...@@ -92,6 +199,7 @@ FILES_src = \ ...@@ -92,6 +199,7 @@ FILES_src = \
sun/nio/ch/NativeThreadSet.java \ sun/nio/ch/NativeThreadSet.java \
sun/nio/ch/Net.java \ sun/nio/ch/Net.java \
sun/nio/ch/OptionKey.java \ sun/nio/ch/OptionKey.java \
sun/nio/ch/PendingFuture.java \
sun/nio/ch/PipeImpl.java \ sun/nio/ch/PipeImpl.java \
sun/nio/ch/PollArrayWrapper.java \ sun/nio/ch/PollArrayWrapper.java \
sun/nio/ch/Reflect.java \ sun/nio/ch/Reflect.java \
...@@ -101,15 +209,19 @@ FILES_src = \ ...@@ -101,15 +209,19 @@ FILES_src = \
sun/nio/ch/SelChImpl.java \ sun/nio/ch/SelChImpl.java \
sun/nio/ch/ServerSocketAdaptor.java \ sun/nio/ch/ServerSocketAdaptor.java \
sun/nio/ch/ServerSocketChannelImpl.java \ sun/nio/ch/ServerSocketChannelImpl.java \
sun/nio/ch/SimpleAsynchronousDatagramChannelImpl.java \
sun/nio/ch/SinkChannelImpl.java \ sun/nio/ch/SinkChannelImpl.java \
sun/nio/ch/SocketAdaptor.java \ sun/nio/ch/SocketAdaptor.java \
sun/nio/ch/SocketChannelImpl.java \ sun/nio/ch/SocketChannelImpl.java \
sun/nio/ch/SocketDispatcher.java \ sun/nio/ch/SocketDispatcher.java \
sun/nio/ch/SocketOptionRegistry.java \ sun/nio/ch/SocketOptionRegistry.java \
sun/nio/ch/SourceChannelImpl.java \ sun/nio/ch/SourceChannelImpl.java \
sun/nio/ch/ThreadPool.java \
sun/nio/ch/Util.java \ sun/nio/ch/Util.java \
\ \
sun/nio/cs/AbstractCharsetProvider.java \ sun/nio/cs/AbstractCharsetProvider.java \
sun/nio/cs/ArrayDecoder.java \
sun/nio/cs/ArrayEncoder.java \
sun/nio/cs/FastCharsetProvider.java \ sun/nio/cs/FastCharsetProvider.java \
sun/nio/cs/HistoricallyNamedCharset.java \ sun/nio/cs/HistoricallyNamedCharset.java \
sun/nio/cs/ISO_8859_1.java \ sun/nio/cs/ISO_8859_1.java \
...@@ -134,6 +246,25 @@ FILES_src = \ ...@@ -134,6 +246,25 @@ FILES_src = \
sun/nio/cs/UTF_32LE_BOM.java \ sun/nio/cs/UTF_32LE_BOM.java \
sun/nio/cs/UTF_32Coder.java \ sun/nio/cs/UTF_32Coder.java \
\ \
sun/nio/fs/AbstractAclFileAttributeView.java \
sun/nio/fs/AbstractBasicFileAttributeView.java \
sun/nio/fs/AbstractFileStoreSpaceAttributeView.java \
sun/nio/fs/AbstractFileTypeDetector.java \
sun/nio/fs/AbstractPoller.java \
sun/nio/fs/AbstractUserDefinedFileAttributeView.java \
sun/nio/fs/AbstractWatchKey.java \
sun/nio/fs/AbstractWatchService.java \
sun/nio/fs/BasicFileAttributesHolder.java \
sun/nio/fs/Cancellable.java \
sun/nio/fs/DefaultFileSystemProvider.java \
sun/nio/fs/DefaultFileTypeDetector.java \
sun/nio/fs/FileOwnerAttributeViewImpl.java \
sun/nio/fs/Globs.java \
sun/nio/fs/MimeType.java \
sun/nio/fs/NativeBuffer.java \
sun/nio/fs/NativeBuffers.java \
sun/nio/fs/Reflect.java \
\
java/net/DatagramSocket.java \ java/net/DatagramSocket.java \
java/net/DatagramSocketImpl.java \ java/net/DatagramSocketImpl.java \
java/net/PlainSocketImpl.java \ java/net/PlainSocketImpl.java \
...@@ -244,24 +375,31 @@ FILES_gen_ex = \ ...@@ -244,24 +375,31 @@ FILES_gen_ex = \
java/nio/InvalidMarkException.java \ java/nio/InvalidMarkException.java \
java/nio/ReadOnlyBufferException.java \ java/nio/ReadOnlyBufferException.java \
\ \
java/nio/channels/AcceptPendingException.java \
java/nio/channels/AlreadyBoundException.java \ java/nio/channels/AlreadyBoundException.java \
java/nio/channels/AlreadyConnectedException.java \ java/nio/channels/AlreadyConnectedException.java \
java/nio/channels/AsynchronousCloseException.java \ java/nio/channels/AsynchronousCloseException.java \
java/nio/channels/CancelledKeyException.java \
java/nio/channels/ClosedByInterruptException.java \ java/nio/channels/ClosedByInterruptException.java \
java/nio/channels/ClosedChannelException.java \ java/nio/channels/ClosedChannelException.java \
java/nio/channels/ClosedSelectorException.java \ java/nio/channels/ClosedSelectorException.java \
java/nio/channels/ConnectionPendingException.java \ java/nio/channels/ConnectionPendingException.java \
java/nio/channels/FileLockInterruptionException.java \ java/nio/channels/FileLockInterruptionException.java \
java/nio/channels/IllegalBlockingModeException.java \ java/nio/channels/IllegalBlockingModeException.java \
java/nio/channels/IllegalChannelGroupException.java \
java/nio/channels/IllegalSelectorException.java \ java/nio/channels/IllegalSelectorException.java \
java/nio/channels/InterruptedByTimeoutException.java \
java/nio/channels/NoConnectionPendingException.java \ java/nio/channels/NoConnectionPendingException.java \
java/nio/channels/NonReadableChannelException.java \ java/nio/channels/NonReadableChannelException.java \
java/nio/channels/NonWritableChannelException.java \ java/nio/channels/NonWritableChannelException.java \
java/nio/channels/NotYetBoundException.java \ java/nio/channels/NotYetBoundException.java \
java/nio/channels/NotYetConnectedException.java \ java/nio/channels/NotYetConnectedException.java \
java/nio/channels/OverlappingFileLockException.java \ java/nio/channels/OverlappingFileLockException.java \
java/nio/channels/ReadPendingException.java \
java/nio/channels/ShutdownChannelGroupException.java \
java/nio/channels/UnresolvedAddressException.java \ java/nio/channels/UnresolvedAddressException.java \
java/nio/channels/UnsupportedAddressTypeException.java \ java/nio/channels/UnsupportedAddressTypeException.java \
java/nio/channels/WritePendingException.java \
\ \
java/nio/charset/CharacterCodingException.java \ java/nio/charset/CharacterCodingException.java \
java/nio/charset/IllegalCharsetNameException.java \ java/nio/charset/IllegalCharsetNameException.java \
......
# #
# Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. # Copyright 2000-2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it
...@@ -56,56 +56,214 @@ FILES_java += \ ...@@ -56,56 +56,214 @@ FILES_java += \
sun/nio/ch/DevPollSelectorProvider.java \ sun/nio/ch/DevPollSelectorProvider.java \
sun/nio/ch/InheritedChannel.java \ sun/nio/ch/InheritedChannel.java \
sun/nio/ch/PollSelectorProvider.java \ sun/nio/ch/PollSelectorProvider.java \
sun/nio/ch/PollSelectorImpl.java sun/nio/ch/PollSelectorImpl.java \
sun/nio/ch/Port.java \
sun/nio/ch/SimpleAsynchronousFileChannelImpl.java \
sun/nio/ch/SolarisAsynchronousChannelProvider.java \
sun/nio/ch/SolarisEventPort.java \
sun/nio/ch/UnixAsynchronousServerSocketChannelImpl.java \
sun/nio/ch/UnixAsynchronousSocketChannelImpl.java \
\
sun/nio/fs/GnomeFileTypeDetector.java \
sun/nio/fs/PollingWatchService.java \
sun/nio/fs/SolarisAclFileAttributeView.java \
sun/nio/fs/SolarisFileStore.java \
sun/nio/fs/SolarisFileSystem.java \
sun/nio/fs/SolarisFileSystemProvider.java \
sun/nio/fs/SolarisUserDefinedFileAttributeView.java \
sun/nio/fs/SolarisNativeDispatcher.java \
sun/nio/fs/SolarisWatchService.java \
sun/nio/fs/UnixChannelFactory.java \
sun/nio/fs/UnixCopyFile.java \
sun/nio/fs/UnixDirectoryStream.java \
sun/nio/fs/UnixException.java \
sun/nio/fs/UnixFileAttributeViews.java \
sun/nio/fs/UnixFileAttributes.java \
sun/nio/fs/UnixFileKey.java \
sun/nio/fs/UnixFileModeAttribute.java \
sun/nio/fs/UnixFileStore.java \
sun/nio/fs/UnixFileStoreAttributes.java \
sun/nio/fs/UnixFileSystem.java \
sun/nio/fs/UnixFileSystemProvider.java \
sun/nio/fs/UnixMountEntry.java \
sun/nio/fs/UnixNativeDispatcher.java \
sun/nio/fs/UnixPath.java \
sun/nio/fs/UnixSecureDirectoryStream.java \
sun/nio/fs/UnixUriUtils.java \
sun/nio/fs/UnixUserPrincipals.java
FILES_c += \ FILES_c += \
DevPollArrayWrapper.c \ DevPollArrayWrapper.c \
InheritedChannel.c \ InheritedChannel.c \
NativeThread.c \ NativeThread.c \
PollArrayWrapper.c PollArrayWrapper.c \
SolarisEventPort.c \
UnixAsynchronousServerSocketChannelImpl.c \
UnixAsynchronousSocketChannelImpl.c \
\
GnomeFileTypeDetector.c \
SolarisNativeDispatcher.c \
SolarisWatchService.c \
UnixCopyFile.c \
UnixNativeDispatcher.c
FILES_export += \ FILES_export += \
sun/nio/ch/DevPollArrayWrapper.java \ sun/nio/ch/DevPollArrayWrapper.java \
sun/nio/ch/InheritedChannel.java \ sun/nio/ch/InheritedChannel.java \
sun/nio/ch/NativeThread.java sun/nio/ch/NativeThread.java \
sun/nio/ch/SolarisEventPort.java \
sun/nio/ch/UnixAsynchronousServerSocketChannelImpl.java \
sun/nio/ch/UnixAsynchronousSocketChannelImpl.java \
\
sun/nio/fs/GnomeFileTypeDetector.java \
sun/nio/fs/SolarisNativeDispatcher.java \
sun/nio/fs/SolarisWatchService.java \
sun/nio/fs/UnixCopyFile.java \
sun/nio/fs/UnixNativeDispatcher.java
FILES_gen += \
sun/nio/fs/SolarisConstants.java \
sun/nio/fs/UnixConstants.java
endif # PLATFORM = solaris endif # PLATFORM = solaris
ifeq ($(PLATFORM), windows) ifeq ($(PLATFORM), windows)
FILES_java += \ FILES_java += \
sun/nio/ch/Iocp.java \
sun/nio/ch/PendingIoCache.java \
sun/nio/ch/WindowsAsynchronousChannelProvider.java \
sun/nio/ch/WindowsAsynchronousFileChannelImpl.java \
sun/nio/ch/WindowsAsynchronousServerSocketChannelImpl.java \
sun/nio/ch/WindowsAsynchronousSocketChannelImpl.java \
sun/nio/ch/WindowsSelectorImpl.java \ sun/nio/ch/WindowsSelectorImpl.java \
sun/nio/ch/WindowsSelectorProvider.java sun/nio/ch/WindowsSelectorProvider.java \
\
sun/nio/fs/RegistryFileTypeDetector.java \
sun/nio/fs/WindowsAclFileAttributeView.java \
sun/nio/fs/WindowsChannelFactory.java \
sun/nio/fs/WindowsConstants.java \
sun/nio/fs/WindowsDirectoryStream.java \
sun/nio/fs/WindowsException.java \
sun/nio/fs/WindowsFileAttributeViews.java \
sun/nio/fs/WindowsFileAttributes.java \
sun/nio/fs/WindowsFileCopy.java \
sun/nio/fs/WindowsFileStore.java \
sun/nio/fs/WindowsFileSystem.java \
sun/nio/fs/WindowsFileSystemProvider.java \
sun/nio/fs/WindowsLinkSupport.java \
sun/nio/fs/WindowsUserDefinedFileAttributeView.java \
sun/nio/fs/WindowsNativeDispatcher.java \
sun/nio/fs/WindowsPath.java \
sun/nio/fs/WindowsPathParser.java \
sun/nio/fs/WindowsPathType.java \
sun/nio/fs/WindowsSecurity.java \
sun/nio/fs/WindowsSecurityDescriptor.java \
sun/nio/fs/WindowsUriSupport.java \
sun/nio/fs/WindowsUserPrincipals.java \
sun/nio/fs/WindowsWatchService.java
FILES_c += \ FILES_c += \
Iocp.c \
RegistryFileTypeDetector.c \
WindowsAsynchronousFileChannelImpl.c \
WindowsAsynchronousServerSocketChannelImpl.c \
WindowsAsynchronousSocketChannelImpl.c \
WindowsNativeDispatcher.c \
WindowsSelectorImpl.c WindowsSelectorImpl.c
FILES_export += \ FILES_export += \
sun/nio/ch/WindowsSelectorImpl.java sun/nio/ch/Iocp.java \
sun/nio/ch/WindowsAsynchronousFileChannelImpl.java \
sun/nio/ch/WindowsAsynchronousServerSocketChannelImpl.java \
sun/nio/ch/WindowsAsynchronousSocketChannelImpl.java \
sun/nio/ch/WindowsSelectorImpl.java \
sun/nio/fs/WindowsNativeDispatcher.java \
sun/nio/fs/RegistryFileTypeDetector.java
endif # PLATFORM = windows endif # PLATFORM = windows
ifeq ($(PLATFORM), linux) ifeq ($(PLATFORM), linux)
FILES_java += \ FILES_java += \
sun/nio/ch/AbstractPollSelectorImpl.java \ sun/nio/ch/AbstractPollSelectorImpl.java \
sun/nio/ch/EPoll.java \
sun/nio/ch/EPollArrayWrapper.java \ sun/nio/ch/EPollArrayWrapper.java \
sun/nio/ch/EPollPort.java \
sun/nio/ch/EPollSelectorProvider.java \ sun/nio/ch/EPollSelectorProvider.java \
sun/nio/ch/EPollSelectorImpl.java \ sun/nio/ch/EPollSelectorImpl.java \
sun/nio/ch/InheritedChannel.java \ sun/nio/ch/InheritedChannel.java \
sun/nio/ch/LinuxAsynchronousChannelProvider.java \
sun/nio/ch/PollSelectorProvider.java \ sun/nio/ch/PollSelectorProvider.java \
sun/nio/ch/PollSelectorImpl.java sun/nio/ch/PollSelectorImpl.java \
sun/nio/ch/Port.java \
sun/nio/ch/SimpleAsynchronousFileChannelImpl.java \
sun/nio/ch/UnixAsynchronousServerSocketChannelImpl.java \
sun/nio/ch/UnixAsynchronousSocketChannelImpl.java \
\
sun/nio/fs/GnomeFileTypeDetector.java \
sun/nio/fs/LinuxDosFileAttributeView.java \
sun/nio/fs/LinuxFileStore.java \
sun/nio/fs/LinuxFileSystem.java \
sun/nio/fs/LinuxFileSystemProvider.java \
sun/nio/fs/LinuxUserDefinedFileAttributeView.java \
sun/nio/fs/LinuxNativeDispatcher.java \
sun/nio/fs/LinuxWatchService.java \
sun/nio/fs/PollingWatchService.java \
sun/nio/fs/UnixChannelFactory.java \
sun/nio/fs/UnixCopyFile.java \
sun/nio/fs/UnixDirectoryStream.java \
sun/nio/fs/UnixException.java \
sun/nio/fs/UnixFileAttributeViews.java \
sun/nio/fs/UnixFileAttributes.java \
sun/nio/fs/UnixFileKey.java \
sun/nio/fs/UnixFileModeAttribute.java \
sun/nio/fs/UnixFileStore.java \
sun/nio/fs/UnixFileStoreAttributes.java \
sun/nio/fs/UnixFileSystem.java \
sun/nio/fs/UnixFileSystemProvider.java \
sun/nio/fs/UnixMountEntry.java \
sun/nio/fs/UnixNativeDispatcher.java \
sun/nio/fs/UnixPath.java \
sun/nio/fs/UnixSecureDirectoryStream.java \
sun/nio/fs/UnixUriUtils.java \
sun/nio/fs/UnixUserPrincipals.java
FILES_c += \ FILES_c += \
EPoll.c \
EPollArrayWrapper.c \ EPollArrayWrapper.c \
EPollPort.c \
InheritedChannel.c \ InheritedChannel.c \
NativeThread.c \ NativeThread.c \
PollArrayWrapper.c PollArrayWrapper.c \
UnixAsynchronousServerSocketChannelImpl.c \
UnixAsynchronousSocketChannelImpl.c \
\
GnomeFileTypeDetector.c \
LinuxNativeDispatcher.c \
LinuxWatchService.c \
UnixCopyFile.c \
UnixNativeDispatcher.c
FILES_export += \ FILES_export += \
sun/nio/ch/EPoll.java \
sun/nio/ch/EPollArrayWrapper.java \ sun/nio/ch/EPollArrayWrapper.java \
sun/nio/ch/EPollPort.java \
sun/nio/ch/InheritedChannel.java \ sun/nio/ch/InheritedChannel.java \
sun/nio/ch/NativeThread.java sun/nio/ch/NativeThread.java \
sun/nio/ch/UnixAsynchronousServerSocketChannelImpl.java \
sun/nio/ch/UnixAsynchronousSocketChannelImpl.java \
\
sun/nio/fs/GnomeFileTypeDetector.java \
sun/nio/fs/LinuxNativeDispatcher.java \
sun/nio/fs/LinuxWatchService.java \
sun/nio/fs/UnixCopyFile.java \
sun/nio/fs/UnixNativeDispatcher.java
FILES_gen += \
sun/nio/fs/UnixConstants.java
endif # PLATFORM = linux endif # PLATFORM = linux
#
# Find platform-specific C source files # Find platform-specific C source files
# #
vpath %.c $(PLATFORM_SRC)/native/sun/nio/fs
vpath %.c $(PLATFORM_SRC)/native/sun/nio/ch vpath %.c $(PLATFORM_SRC)/native/sun/nio/ch
vpath %.c $(SHARE_SRC)/native/sun/nio/ch vpath %.c $(SHARE_SRC)/native/sun/nio/ch
...@@ -175,12 +333,14 @@ CH_SRC=$(NIO_SRC)/channels ...@@ -175,12 +333,14 @@ CH_SRC=$(NIO_SRC)/channels
CS_SRC=$(NIO_SRC)/charset CS_SRC=$(NIO_SRC)/charset
SCH_SRC=$(SNIO_SRC)/ch SCH_SRC=$(SNIO_SRC)/ch
SCS_SRC=$(SNIO_SRC)/cs SCS_SRC=$(SNIO_SRC)/cs
SFS_SRC=$(SNIO_SRC)/fs
BUF_GEN=$(NIO_GEN) BUF_GEN=$(NIO_GEN)
CH_GEN=$(NIO_GEN)/channels CH_GEN=$(NIO_GEN)/channels
CS_GEN=$(NIO_GEN)/charset CS_GEN=$(NIO_GEN)/charset
SCH_GEN=$(SNIO_GEN)/ch SCH_GEN=$(SNIO_GEN)/ch
SCS_GEN=$(SNIO_GEN)/cs SCS_GEN=$(SNIO_GEN)/cs
SFS_GEN=$(SNIO_GEN)/fs
FILES_gensbcs_out = $(FILES_gen_sbcs:%.java=$(GENSRCDIR)/%.java) FILES_gensbcs_out = $(FILES_gen_sbcs:%.java=$(GENSRCDIR)/%.java)
...@@ -670,4 +830,40 @@ $(FILES_gensbcs_out): $(GENCSSRC)/SingleByte-X.java $(GENCSSRC)/sbcs ...@@ -670,4 +830,40 @@ $(FILES_gensbcs_out): $(GENCSSRC)/SingleByte-X.java $(GENCSSRC)/sbcs
$(BOOT_JAVA_CMD) -cp $(CHARSETMAPPING_JARFILE) build.tools.charsetmapping.GenerateSBCS \ $(BOOT_JAVA_CMD) -cp $(CHARSETMAPPING_JARFILE) build.tools.charsetmapping.GenerateSBCS \
$(GENCSSRC) $(SCS_GEN) sbcs $(GENCSSRC) $(SCS_GEN) sbcs
#
# Generated file system implementation classes (Unix only)
#
GENUC_SRC = $(PLATFORM_SRC)/native/sun/nio/fs/genUnixConstants.c
GENUC_EXE = $(TEMPDIR)/genUnixConstants
GENUC_COPYRIGHT_YEARS = $(shell $(CAT) $(GENUC_SRC) | \
$(NAWK) '/^.*Copyright.*Sun/ { print $$3 }')
$(GENUC_EXE) : $(GENUC_SRC)
$(prep-target)
$(CC) $(CPPFLAGS) -o $@ $(GENUC_SRC)
$(SFS_GEN)/UnixConstants.java: $(GENUC_EXE)
$(prep-target)
NAWK="$(NAWK)" SH="$(SH)" $(SH) -e addNotices.sh $(GENUC_COPYRIGHT_YEARS) > $@
$(GENUC_EXE) >> $@
GENSC_SRC = $(PLATFORM_SRC)/native/sun/nio/fs/genSolarisConstants.c
GENSC_EXE = $(TEMPDIR)/genSolarisConstants
GENSC_COPYRIGHT_YEARS = $(shell $(CAT) $(GENSC_SRC) | \
$(NAWK) '/^.*Copyright.*Sun/ { print $$3 }')
$(GENSC_EXE) : $(GENSC_SRC)
$(prep-target)
$(CC) $(CPPFLAGS) -o $@ $(GENSC_SRC)
$(SFS_GEN)/SolarisConstants.java: $(GENSC_EXE)
$(prep-target)
NAWK="$(NAWK)" SH="$(SH)" $(SH) -e addNotices.sh $(GENSC_COPYRIGHT_YEARS) > $@
$(GENSC_EXE) >> $@
.PHONY: sources .PHONY: sources
# #
# Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. # Copyright 2001-2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it
...@@ -44,27 +44,38 @@ SUNWprivate_1.1 { ...@@ -44,27 +44,38 @@ SUNWprivate_1.1 {
Java_sun_nio_ch_EPollArrayWrapper_interrupt; Java_sun_nio_ch_EPollArrayWrapper_interrupt;
Java_sun_nio_ch_EPollArrayWrapper_offsetofData; Java_sun_nio_ch_EPollArrayWrapper_offsetofData;
Java_sun_nio_ch_EPollArrayWrapper_sizeofEPollEvent; Java_sun_nio_ch_EPollArrayWrapper_sizeofEPollEvent;
Java_sun_nio_ch_EPoll_init;
Java_sun_nio_ch_EPoll_eventSize;
Java_sun_nio_ch_EPoll_eventsOffset;
Java_sun_nio_ch_EPoll_dataOffset;
Java_sun_nio_ch_EPoll_epollCreate;
Java_sun_nio_ch_EPoll_epollCtl;
Java_sun_nio_ch_EPoll_epollWait;
Java_sun_nio_ch_EPollPort_close0;
Java_sun_nio_ch_EPollPort_drain1;
Java_sun_nio_ch_EPollPort_interrupt;
Java_sun_nio_ch_EPollPort_socketpair;
Java_sun_nio_ch_FileChannelImpl_close0; Java_sun_nio_ch_FileChannelImpl_close0;
Java_sun_nio_ch_FileChannelImpl_force0;
Java_sun_nio_ch_FileChannelImpl_initIDs; Java_sun_nio_ch_FileChannelImpl_initIDs;
Java_sun_nio_ch_FileChannelImpl_lock0;
Java_sun_nio_ch_FileChannelImpl_map0; Java_sun_nio_ch_FileChannelImpl_map0;
Java_sun_nio_ch_FileChannelImpl_position0; Java_sun_nio_ch_FileChannelImpl_position0;
Java_sun_nio_ch_FileChannelImpl_release0;
Java_sun_nio_ch_FileChannelImpl_size0;
Java_sun_nio_ch_FileChannelImpl_transferTo0; Java_sun_nio_ch_FileChannelImpl_transferTo0;
Java_sun_nio_ch_FileChannelImpl_truncate0;
Java_sun_nio_ch_FileChannelImpl_unmap0; Java_sun_nio_ch_FileChannelImpl_unmap0;
Java_sun_nio_ch_FileDispatcher_close0; Java_sun_nio_ch_FileDispatcherImpl_close0;
Java_sun_nio_ch_FileDispatcher_closeIntFD; Java_sun_nio_ch_FileDispatcherImpl_closeIntFD;
Java_sun_nio_ch_FileDispatcher_init; Java_sun_nio_ch_FileDispatcherImpl_force0;
Java_sun_nio_ch_FileDispatcher_preClose0; Java_sun_nio_ch_FileDispatcherImpl_init;
Java_sun_nio_ch_FileDispatcher_pread0; Java_sun_nio_ch_FileDispatcherImpl_lock0;
Java_sun_nio_ch_FileDispatcher_pwrite0; Java_sun_nio_ch_FileDispatcherImpl_preClose0;
Java_sun_nio_ch_FileDispatcher_read0; Java_sun_nio_ch_FileDispatcherImpl_pread0;
Java_sun_nio_ch_FileDispatcher_readv0; Java_sun_nio_ch_FileDispatcherImpl_pwrite0;
Java_sun_nio_ch_FileDispatcher_write0; Java_sun_nio_ch_FileDispatcherImpl_read0;
Java_sun_nio_ch_FileDispatcher_writev0; Java_sun_nio_ch_FileDispatcherImpl_readv0;
Java_sun_nio_ch_FileDispatcherImpl_release0;
Java_sun_nio_ch_FileDispatcherImpl_size0;
Java_sun_nio_ch_FileDispatcherImpl_truncate0;
Java_sun_nio_ch_FileDispatcherImpl_write0;
Java_sun_nio_ch_FileDispatcherImpl_writev0;
Java_sun_nio_ch_FileKey_init; Java_sun_nio_ch_FileKey_init;
Java_sun_nio_ch_FileKey_initIDs; Java_sun_nio_ch_FileKey_initIDs;
Java_sun_nio_ch_InheritedChannel_close0; Java_sun_nio_ch_InheritedChannel_close0;
...@@ -108,6 +119,76 @@ SUNWprivate_1.1 { ...@@ -108,6 +119,76 @@ SUNWprivate_1.1 {
Java_sun_nio_ch_ServerSocketChannelImpl_accept0; Java_sun_nio_ch_ServerSocketChannelImpl_accept0;
Java_sun_nio_ch_ServerSocketChannelImpl_initIDs; Java_sun_nio_ch_ServerSocketChannelImpl_initIDs;
Java_sun_nio_ch_SocketChannelImpl_checkConnect; Java_sun_nio_ch_SocketChannelImpl_checkConnect;
Java_sun_nio_ch_UnixAsynchronousServerSocketChannelImpl_accept0;
Java_sun_nio_ch_UnixAsynchronousServerSocketChannelImpl_initIDs;
Java_sun_nio_ch_UnixAsynchronousSocketChannelImpl_checkConnect;
Java_sun_nio_fs_GnomeFileTypeDetector_initializeGio;
Java_sun_nio_fs_GnomeFileTypeDetector_probeUsingGio;
Java_sun_nio_fs_GnomeFileTypeDetector_initializeGnomeVfs;
Java_sun_nio_fs_GnomeFileTypeDetector_probeUsingGnomeVfs;
Java_sun_nio_fs_LinuxWatchService_init;
Java_sun_nio_fs_LinuxWatchService_eventSize;
Java_sun_nio_fs_LinuxWatchService_eventOffsets;
Java_sun_nio_fs_LinuxWatchService_inotifyInit;
Java_sun_nio_fs_LinuxWatchService_inotifyAddWatch;
Java_sun_nio_fs_LinuxWatchService_inotifyRmWatch;
Java_sun_nio_fs_LinuxWatchService_configureBlocking;
Java_sun_nio_fs_LinuxWatchService_socketpair;
Java_sun_nio_fs_LinuxWatchService_poll;
Java_sun_nio_fs_LinuxNativeDispatcher_init;
Java_sun_nio_fs_LinuxNativeDispatcher_fgetxattr0;
Java_sun_nio_fs_LinuxNativeDispatcher_flistxattr;
Java_sun_nio_fs_LinuxNativeDispatcher_fsetxattr0;
Java_sun_nio_fs_LinuxNativeDispatcher_fremovexattr0;
Java_sun_nio_fs_LinuxNativeDispatcher_setmntent0;
Java_sun_nio_fs_LinuxNativeDispatcher_endmntent;
Java_sun_nio_fs_UnixNativeDispatcher_initIDs;
Java_sun_nio_fs_UnixNativeDispatcher_getcwd;
Java_sun_nio_fs_UnixNativeDispatcher_strerror;
Java_sun_nio_fs_UnixNativeDispatcher_dup;
Java_sun_nio_fs_UnixNativeDispatcher_access0;
Java_sun_nio_fs_UnixNativeDispatcher_stat0;
Java_sun_nio_fs_UnixNativeDispatcher_lstat0;
Java_sun_nio_fs_UnixNativeDispatcher_fstat;
Java_sun_nio_fs_UnixNativeDispatcher_fstatat0;
Java_sun_nio_fs_UnixNativeDispatcher_chmod0;
Java_sun_nio_fs_UnixNativeDispatcher_fchmod;
Java_sun_nio_fs_UnixNativeDispatcher_chown0;
Java_sun_nio_fs_UnixNativeDispatcher_lchown0;
Java_sun_nio_fs_UnixNativeDispatcher_fchown;
Java_sun_nio_fs_UnixNativeDispatcher_utimes0;
Java_sun_nio_fs_UnixNativeDispatcher_futimes;
Java_sun_nio_fs_UnixNativeDispatcher_open0;
Java_sun_nio_fs_UnixNativeDispatcher_openat0;
Java_sun_nio_fs_UnixNativeDispatcher_close;
Java_sun_nio_fs_UnixNativeDispatcher_read;
Java_sun_nio_fs_UnixNativeDispatcher_write;
Java_sun_nio_fs_UnixNativeDispatcher_fopen0;
Java_sun_nio_fs_UnixNativeDispatcher_fclose;
Java_sun_nio_fs_UnixNativeDispatcher_opendir0;
Java_sun_nio_fs_UnixNativeDispatcher_fdopendir;
Java_sun_nio_fs_UnixNativeDispatcher_readdir;
Java_sun_nio_fs_UnixNativeDispatcher_closedir;
Java_sun_nio_fs_UnixNativeDispatcher_link0;
Java_sun_nio_fs_UnixNativeDispatcher_unlink0;
Java_sun_nio_fs_UnixNativeDispatcher_unlinkat0;
Java_sun_nio_fs_UnixNativeDispatcher_rename0;
Java_sun_nio_fs_UnixNativeDispatcher_renameat0;
Java_sun_nio_fs_UnixNativeDispatcher_mkdir0;
Java_sun_nio_fs_UnixNativeDispatcher_rmdir0;
Java_sun_nio_fs_UnixNativeDispatcher_symlink0;
Java_sun_nio_fs_UnixNativeDispatcher_readlink0;
Java_sun_nio_fs_UnixNativeDispatcher_realpath0;
Java_sun_nio_fs_UnixNativeDispatcher_statvfs0;
Java_sun_nio_fs_UnixNativeDispatcher_pathconf0;
Java_sun_nio_fs_UnixNativeDispatcher_fpathconf;
Java_sun_nio_fs_UnixNativeDispatcher_mknod0;
Java_sun_nio_fs_UnixNativeDispatcher_getpwuid;
Java_sun_nio_fs_UnixNativeDispatcher_getgrgid;
Java_sun_nio_fs_UnixNativeDispatcher_getpwnam0;
Java_sun_nio_fs_UnixNativeDispatcher_getgrnam0;
Java_sun_nio_fs_UnixNativeDispatcher_getextmntent;
Java_sun_nio_fs_UnixCopyFile_transfer;
local: local:
*; *;
......
# #
# Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. # Copyright 2001-2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it
...@@ -43,26 +43,26 @@ SUNWprivate_1.1 { ...@@ -43,26 +43,26 @@ SUNWprivate_1.1 {
Java_sun_nio_ch_DevPollArrayWrapper_register; Java_sun_nio_ch_DevPollArrayWrapper_register;
Java_sun_nio_ch_DevPollArrayWrapper_registerMultiple; Java_sun_nio_ch_DevPollArrayWrapper_registerMultiple;
Java_sun_nio_ch_FileChannelImpl_close0; Java_sun_nio_ch_FileChannelImpl_close0;
Java_sun_nio_ch_FileChannelImpl_force0;
Java_sun_nio_ch_FileChannelImpl_initIDs; Java_sun_nio_ch_FileChannelImpl_initIDs;
Java_sun_nio_ch_FileChannelImpl_lock0;
Java_sun_nio_ch_FileChannelImpl_map0; Java_sun_nio_ch_FileChannelImpl_map0;
Java_sun_nio_ch_FileChannelImpl_position0; Java_sun_nio_ch_FileChannelImpl_position0;
Java_sun_nio_ch_FileChannelImpl_release0;
Java_sun_nio_ch_FileChannelImpl_size0;
Java_sun_nio_ch_FileChannelImpl_transferTo0; Java_sun_nio_ch_FileChannelImpl_transferTo0;
Java_sun_nio_ch_FileChannelImpl_truncate0;
Java_sun_nio_ch_FileChannelImpl_unmap0; Java_sun_nio_ch_FileChannelImpl_unmap0;
Java_sun_nio_ch_FileDispatcher_close0; Java_sun_nio_ch_FileDispatcherImpl_close0;
Java_sun_nio_ch_FileDispatcher_closeIntFD; Java_sun_nio_ch_FileDispatcherImpl_closeIntFD;
Java_sun_nio_ch_FileDispatcher_init; Java_sun_nio_ch_FileDispatcherImpl_force0;
Java_sun_nio_ch_FileDispatcher_preClose0; Java_sun_nio_ch_FileDispatcherImpl_init;
Java_sun_nio_ch_FileDispatcher_pread0; Java_sun_nio_ch_FileDispatcherImpl_lock0;
Java_sun_nio_ch_FileDispatcher_pwrite0; Java_sun_nio_ch_FileDispatcherImpl_preClose0;
Java_sun_nio_ch_FileDispatcher_read0; Java_sun_nio_ch_FileDispatcherImpl_pread0;
Java_sun_nio_ch_FileDispatcher_readv0; Java_sun_nio_ch_FileDispatcherImpl_pwrite0;
Java_sun_nio_ch_FileDispatcher_write0; Java_sun_nio_ch_FileDispatcherImpl_read0;
Java_sun_nio_ch_FileDispatcher_writev0; Java_sun_nio_ch_FileDispatcherImpl_readv0;
Java_sun_nio_ch_FileDispatcherImpl_release0;
Java_sun_nio_ch_FileDispatcherImpl_size0;
Java_sun_nio_ch_FileDispatcherImpl_truncate0;
Java_sun_nio_ch_FileDispatcherImpl_write0;
Java_sun_nio_ch_FileDispatcherImpl_writev0;
Java_sun_nio_ch_FileKey_init; Java_sun_nio_ch_FileKey_init;
Java_sun_nio_ch_FileKey_initIDs; Java_sun_nio_ch_FileKey_initIDs;
Java_sun_nio_ch_InheritedChannel_close0; Java_sun_nio_ch_InheritedChannel_close0;
...@@ -106,6 +106,75 @@ SUNWprivate_1.1 { ...@@ -106,6 +106,75 @@ SUNWprivate_1.1 {
Java_sun_nio_ch_ServerSocketChannelImpl_accept0; Java_sun_nio_ch_ServerSocketChannelImpl_accept0;
Java_sun_nio_ch_ServerSocketChannelImpl_initIDs; Java_sun_nio_ch_ServerSocketChannelImpl_initIDs;
Java_sun_nio_ch_SocketChannelImpl_checkConnect; Java_sun_nio_ch_SocketChannelImpl_checkConnect;
Java_sun_nio_ch_UnixAsynchronousServerSocketChannelImpl_accept0;
Java_sun_nio_ch_UnixAsynchronousServerSocketChannelImpl_initIDs;
Java_sun_nio_ch_UnixAsynchronousSocketChannelImpl_checkConnect;
Java_sun_nio_ch_SolarisEventPort_init;
Java_sun_nio_ch_SolarisEventPort_portCreate;
Java_sun_nio_ch_SolarisEventPort_portClose;
Java_sun_nio_ch_SolarisEventPort_portAssociate;
Java_sun_nio_ch_SolarisEventPort_portGet;
Java_sun_nio_ch_SolarisEventPort_portGetn;
Java_sun_nio_ch_SolarisEventPort_portSend;
Java_sun_nio_fs_GnomeFileTypeDetector_initializeGio;
Java_sun_nio_fs_GnomeFileTypeDetector_probeUsingGio;
Java_sun_nio_fs_GnomeFileTypeDetector_initializeGnomeVfs;
Java_sun_nio_fs_GnomeFileTypeDetector_probeUsingGnomeVfs;
Java_sun_nio_fs_UnixNativeDispatcher_initIDs;
Java_sun_nio_fs_UnixNativeDispatcher_getcwd;
Java_sun_nio_fs_UnixNativeDispatcher_strerror;
Java_sun_nio_fs_UnixNativeDispatcher_dup;
Java_sun_nio_fs_UnixNativeDispatcher_access0;
Java_sun_nio_fs_UnixNativeDispatcher_stat0;
Java_sun_nio_fs_UnixNativeDispatcher_lstat0;
Java_sun_nio_fs_UnixNativeDispatcher_fstat;
Java_sun_nio_fs_UnixNativeDispatcher_fstatat0;
Java_sun_nio_fs_UnixNativeDispatcher_chmod0;
Java_sun_nio_fs_UnixNativeDispatcher_fchmod;
Java_sun_nio_fs_UnixNativeDispatcher_chown0;
Java_sun_nio_fs_UnixNativeDispatcher_lchown0;
Java_sun_nio_fs_UnixNativeDispatcher_fchown;
Java_sun_nio_fs_UnixNativeDispatcher_utimes0;
Java_sun_nio_fs_UnixNativeDispatcher_futimes;
Java_sun_nio_fs_UnixNativeDispatcher_open0;
Java_sun_nio_fs_UnixNativeDispatcher_openat0;
Java_sun_nio_fs_UnixNativeDispatcher_close;
Java_sun_nio_fs_UnixNativeDispatcher_read;
Java_sun_nio_fs_UnixNativeDispatcher_write;
Java_sun_nio_fs_UnixNativeDispatcher_fopen0;
Java_sun_nio_fs_UnixNativeDispatcher_fclose;
Java_sun_nio_fs_UnixNativeDispatcher_opendir0;
Java_sun_nio_fs_UnixNativeDispatcher_fdopendir;
Java_sun_nio_fs_UnixNativeDispatcher_readdir;
Java_sun_nio_fs_UnixNativeDispatcher_closedir;
Java_sun_nio_fs_UnixNativeDispatcher_link0;
Java_sun_nio_fs_UnixNativeDispatcher_unlink0;
Java_sun_nio_fs_UnixNativeDispatcher_unlinkat0;
Java_sun_nio_fs_UnixNativeDispatcher_rename0;
Java_sun_nio_fs_UnixNativeDispatcher_renameat0;
Java_sun_nio_fs_UnixNativeDispatcher_mkdir0;
Java_sun_nio_fs_UnixNativeDispatcher_rmdir0;
Java_sun_nio_fs_UnixNativeDispatcher_symlink0;
Java_sun_nio_fs_UnixNativeDispatcher_readlink0;
Java_sun_nio_fs_UnixNativeDispatcher_realpath0;
Java_sun_nio_fs_UnixNativeDispatcher_statvfs0;
Java_sun_nio_fs_UnixNativeDispatcher_pathconf0;
Java_sun_nio_fs_UnixNativeDispatcher_fpathconf;
Java_sun_nio_fs_UnixNativeDispatcher_mknod0;
Java_sun_nio_fs_UnixNativeDispatcher_getpwuid;
Java_sun_nio_fs_UnixNativeDispatcher_getgrgid;
Java_sun_nio_fs_UnixNativeDispatcher_getpwnam0;
Java_sun_nio_fs_UnixNativeDispatcher_getgrnam0;
Java_sun_nio_fs_UnixNativeDispatcher_getextmntent;
Java_sun_nio_fs_UnixCopyFile_transfer;
Java_sun_nio_fs_SolarisNativeDispatcher_init;
Java_sun_nio_fs_SolarisNativeDispatcher_facl;
Java_sun_nio_fs_SolarisWatchService_init;
Java_sun_nio_fs_SolarisWatchService_portCreate;
Java_sun_nio_fs_SolarisWatchService_portAssociate;
Java_sun_nio_fs_SolarisWatchService_portDissociate;
Java_sun_nio_fs_SolarisWatchService_portSend;
Java_sun_nio_fs_SolarisWatchService_portGetn;
local: local:
*; *;
......
...@@ -251,9 +251,11 @@ endif # INCLUDE_SA ...@@ -251,9 +251,11 @@ endif # INCLUDE_SA
# #
ifdef OPENJDK ifdef OPENJDK
include $(BUILDDIR)/common/internal/BinaryPlugs.gmk ifeq ($(IMPORT_BINARY_PLUGS),true)
include $(BUILDDIR)/common/internal/BinaryPlugs.gmk
build: import-binary-plugs build: import-binary-plugs
endif
else # !OPENJDK else # !OPENJDK
......
...@@ -92,11 +92,11 @@ FILES_java = \ ...@@ -92,11 +92,11 @@ FILES_java = \
sun/text/normalizer/SymbolTable.java \ sun/text/normalizer/SymbolTable.java \
sun/text/normalizer/Trie.java \ sun/text/normalizer/Trie.java \
sun/text/normalizer/TrieIterator.java \ sun/text/normalizer/TrieIterator.java \
sun/text/normalizer/UBiDiProps.java \
sun/text/normalizer/UCharacter.java \ sun/text/normalizer/UCharacter.java \
sun/text/normalizer/UCharacterIterator.java \ sun/text/normalizer/UCharacterIterator.java \
sun/text/normalizer/UCharacterProperty.java \ sun/text/normalizer/UCharacterProperty.java \
sun/text/normalizer/UCharacterPropertyReader.java \ sun/text/normalizer/UCharacterPropertyReader.java \
sun/text/normalizer/UProperty.java \
sun/text/normalizer/UTF16.java \ sun/text/normalizer/UTF16.java \
sun/text/normalizer/UnicodeMatcher.java \ sun/text/normalizer/UnicodeMatcher.java \
sun/text/normalizer/UnicodeSet.java \ sun/text/normalizer/UnicodeSet.java \
......
...@@ -64,7 +64,8 @@ BIFILES = $(TEXT_CLASSDIR)/CharacterBreakIteratorData \ ...@@ -64,7 +64,8 @@ BIFILES = $(TEXT_CLASSDIR)/CharacterBreakIteratorData \
$(TEXT_CLASSDIR)/SentenceBreakIteratorData $(TEXT_CLASSDIR)/SentenceBreakIteratorData
ICU_FILES = $(TEXT_CLASSDIR)/unorm.icu \ ICU_FILES = $(TEXT_CLASSDIR)/unorm.icu \
$(TEXT_CLASSDIR)/uprops.icu $(TEXT_CLASSDIR)/uprops.icu \
$(TEXT_CLASSDIR)/ubidi.icu
# builder # builder
GENERATEBREAKITERATORDATA_JARFILE = \ GENERATEBREAKITERATORDATA_JARFILE = \
...@@ -89,7 +90,7 @@ $(BIFILES): $(GENERATEBREAKITERATORDATA_JARFILE) \ ...@@ -89,7 +90,7 @@ $(BIFILES): $(GENERATEBREAKITERATORDATA_JARFILE) \
build: $(BIFILES) $(ICU_FILES) build: $(BIFILES) $(ICU_FILES)
# #
# Extra rules to copy unorm.icu and uprops.icu # Extra rules to copy unorm.icu, uprops.icu, and ubidi.icu
# #
$(TEXT_CLASSDIR)/unorm.icu: $(TEXT_SRCDIR)/unorm.icu $(TEXT_CLASSDIR)/unorm.icu: $(TEXT_SRCDIR)/unorm.icu
$(install-file) $(install-file)
...@@ -97,6 +98,9 @@ $(TEXT_CLASSDIR)/unorm.icu: $(TEXT_SRCDIR)/unorm.icu ...@@ -97,6 +98,9 @@ $(TEXT_CLASSDIR)/unorm.icu: $(TEXT_SRCDIR)/unorm.icu
$(TEXT_CLASSDIR)/uprops.icu: $(TEXT_SRCDIR)/uprops.icu $(TEXT_CLASSDIR)/uprops.icu: $(TEXT_SRCDIR)/uprops.icu
$(install-file) $(install-file)
$(TEXT_CLASSDIR)/ubidi.icu: $(TEXT_SRCDIR)/ubidi.icu
$(install-file)
clean clobber:: clean clobber::
$(RM) -r $(TEXT_CLASSES) $(RM) -r $(TEXT_CLASSES)
$(RM) -r $(BIFILES) $(RM) -r $(BIFILES)
......
...@@ -35,6 +35,7 @@ include $(BUILDDIR)/common/Defs.gmk ...@@ -35,6 +35,7 @@ include $(BUILDDIR)/common/Defs.gmk
# #
# Files to compile # Files to compile
# #
AUTO_JAVA_PRUNE = snmp
AUTO_FILES_JAVA_DIRS = javax/management com/sun/jmx com/sun/management/jmx AUTO_FILES_JAVA_DIRS = javax/management com/sun/jmx com/sun/management/jmx
# #
......
...@@ -47,7 +47,7 @@ swing-1.2-beans-debug: ...@@ -47,7 +47,7 @@ swing-1.2-beans-debug:
LOCAL_JAVADOC = $(JAVADOC_CMD) $(JAVADOCFLAGS) LOCAL_JAVADOC = $(JAVADOC_CMD) $(JAVADOCFLAGS)
# get the absolute path to the jar command. # get the absolute path to the jar command.
PREFIX = 1.2 PREFIX = 1.2
JAVADOCFLAGS = $(LANGUAGE_VERSION) JAVADOCFLAGS = $(NO_PROPRIETARY_API_WARNINGS) $(LANGUAGE_VERSION)
SWINGPKG = javax/swing SWINGPKG = javax/swing
LOCAL_JAVAC_FLAGS = $(OTHER_JAVACFLAGS) LOCAL_JAVAC_FLAGS = $(OTHER_JAVACFLAGS)
......
...@@ -174,7 +174,8 @@ else ...@@ -174,7 +174,8 @@ else
# Check CYGWIN (should have already been done) # Check CYGWIN (should have already been done)
# Assumption here is that you are in a shell window via cygwin. # Assumption here is that you are in a shell window via cygwin.
if [ "$(echo ${PROCESSOR_IDENTIFIER} | fgrep AMD64)" != "" ] ; then proc_arch=`echo "$(PROCESSOR_IDENTIFIER)" | expand | cut -d' ' -f1 | sed -e 's@x86@X86@g' -e 's@Intel64@X64@g' -e 's@em64t@X64@g' -e 's@EM64T@X64@g' -e 's@amd64@X64@g' -e 's@AMD64@X64@g' -e 's@ia64@IA64@g'`
if [ "${proc_arch}" = "X64" ] ; then
windows_arch=amd64 windows_arch=amd64
else else
windows_arch=i586 windows_arch=i586
......
#!echo "This is not a shell script"
#############################################################################
#
# Copyright 2006-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Sun designates this
# particular file as subject to the "Classpath" exception as provided
# by Sun in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
# CA 95054 USA or visit www.sun.com if you need additional information or
# have any questions.
#
#############################################################################
#
# JPRT shell configuration for building.
#
# Input environment variables:
# ALT_BOOTDIR
# ALT_SLASH_JAVA
# ALT_JDK_IMPORT_PATH
# OPENJDK
# Windows Only:
# PATH
# VS71COMNTOOLS
# PROCESSOR_IDENTIFIER
# ROOTDIR
#
# Output variable settings:
# make Full path to GNU make
# compiler_path Path to compiler bin directory
# compiler_name Unique name of this compiler
#
# Output environment variables:
# PATH
# ALT_COMPILER_PATH
# OPENJDK only:
# ALT_CLOSED_JDK_IMPORT_PATH
# ALT_JDK_DEVTOOLS_DIR
# Windows Only:
# ALT_MSDEVTOOLS_PATH
# ALT_DEVTOOLS_PATH (To avoid the C:/UTILS default)
# LIB
# INCLUDE
#
# After JDK6, most settings will be found via ALT_SLASH_JAVA or
# by way of other system environment variables. If this was JDK5
# or an older JDK, you might need to export more ALT_* variables.
#
# On Windows AMD64, if MSSDK is not set, assumes Platform SDK is installed at:
# C:/Program Files/Microsoft Platform SDK
#
#############################################################################
#############################################################################
# Error
error() # message
{
echo "ERROR: $1"
exit 6
}
# Directory must exist
dirMustExist() # dir name
{
if [ ! -d "$1" ] ; then
error "Directory for $2 does not exist: $1"
fi
}
# File must exist
fileMustExist() # dir name
{
if [ ! -f "$1" ] ; then
error "File for $2 does not exist: $1"
fi
}
#############################################################################
# Should be set by JPRT as the 3 basic inputs
bootdir="${ALT_BOOTDIR}"
slashjava="${ALT_SLASH_JAVA}"
jdk_import="${ALT_JDK_IMPORT_PATH}"
# The /java/devtools items
jdk_devtools="${slashjava}/devtools"
share="${jdk_devtools}/share"
# Needed for langtools, maybe other parts of the build
ANT_HOME="${share}/ant/latest"
export ANT_HOME
# The 3 bin directories in common to all platforms
sharebin="${share}/bin"
antbin="${ANT_HOME}/bin"
# Check input
dirMustExist "${bootdir}" ALT_BOOTDIR
dirMustExist "${slashjava}" ALT_SLASH_JAVA
dirMustExist "${jdk_import}" ALT_JDK_IMPORT_PATH
dirMustExist "${ANT_HOME}" ANT_HOME
# Use the JDK import for now (FIXME: use the binary plugs?)
if [ "${OPENJDK}" = true ] ; then
ALT_CLOSED_JDK_IMPORT_PATH="${jdk_import}"
export ALT_CLOSED_JDK_IMPORT_PATH
fi
# Uses 'uname -s', but only expect SunOS or Linux, assume Windows otherwise.
osname=`uname -s`
if [ "${osname}" = SunOS ] ; then
# SOLARIS: Sparc or X86
osarch=`uname -p`
if [ "${osarch}" = sparc ] ; then
solaris_arch=sparc
else
solaris_arch=i386
fi
# Get the compilers into path (make sure it matches ALT setting)
if [ "${JPRT_SOLARIS_COMPILER_NAME}" != "" ] ; then
compiler_name=${JPRT_SOLARIS_COMPILER_NAME}
else
compiler_name=SS12
fi
compiler_path=${jdk_devtools}/${solaris_arch}/SUNWspro/${compiler_name}/bin
ALT_COMPILER_PATH="${compiler_path}"
export ALT_COMPILER_PATH
dirMustExist "${compiler_path}" ALT_COMPILER_PATH
path4sdk=${compiler_path}:${sharebin}:${antbin}
# Add basic solaris system paths
path4sdk=${path4sdk}:/usr/ccs/bin:/usr/ccs/lib:/usr/bin:/bin:/usr/sfw/bin
# Get the previous JDK to be used to bootstrap the build
path4sdk=${bootdir}/bin:${path4sdk}
# Find GNU make
make=/usr/sfw/bin/gmake
if [ ! -f ${make} ] ; then
make=/opt/sfw/bin/gmake
if [ ! -f ${make} ] ; then
make=${jdk_devtools}/${solaris_arch}/bin/gnumake
fi
fi
fileMustExist "${make}" make
# File creation mask
umask 002
elif [ "${osname}" = Linux ] ; then
# LINUX: X86, AMD64
osarch=`uname -m`
if [ "${osarch}" = i686 ] ; then
linux_arch=i586
elif [ "${osarch}" = x86_64 ] ; then
linux_arch=amd64
fi
# Get the compilers into path (make sure it matches ALT setting)
compiler_path=/usr/bin
compiler_name=usr_bin
ALT_COMPILER_PATH="${compiler_path}"
export ALT_COMPILER_PATH
dirMustExist "${compiler_path}" ALT_COMPILER_PATH
path4sdk=${compiler_path}:${sharebin}:${antbin}
# Add basic paths
path4sdk=${path4sdk}:/usr/bin:/bin:/usr/sbin:/sbin
# Get the previous JDK to be used to bootstrap the build
path4sdk=${bootdir}/bin:${path4sdk}
# Find GNU make
make=/usr/bin/make
fileMustExist "${make}" make
umask 002
# Linux platform may be old, use motif files from the devtools area
if [ "${OPENJDK}" = true ] ; then
ALT_JDK_DEVTOOLS_DIR="${jdk_devtools}"
export ALT_JDK_DEVTOOLS_DIR
fi
else
# Windows: Differs on CYGWIN vs. MKS, and the compiler available.
# Also, blanks in pathnames gives GNU make headaches, so anything placed
# in any ALT_* variable should be the short windows dosname.
# WINDOWS: Install and use MKS or CYGWIN (should have already been done)
# Assumption here is that you are in a shell window via MKS or cygwin.
# MKS install should have defined the environment variable ROOTDIR.
# We also need to figure out which one we have: X86, AMD64
if [ "`echo ${PROCESSOR_IDENTIFIER} | fgrep AMD64`" != "" ] ; then
windows_arch=amd64
else
windows_arch=i586
fi
# We need to determine if we are running a CYGWIN shell or an MKS shell
# (if uname isn't available, then it will be unix_toolset=unknown)
unix_toolset=unknown
if [ "`uname -a | fgrep Cygwin`" = "" -a -d "${ROOTDIR}" ] ; then
# We kind of assume ROOTDIR is where MKS is and it's ok
unix_toolset=MKS
mkshome=`dosname -s "${ROOTDIR}"`
# Utility to convert to short pathnames without spaces
dosname="${mkshome}/mksnt/dosname -s"
# Most unix utilities are in the mksnt directory of ROOTDIR
unixcommand_path="${mkshome}/mksnt"
path4sdk="${sharebin};${antbin};${unixcommand_path}"
dirMustExist "${unixcommand_path}" ALT_UNIXCOMMAND_PATH
devtools_path="${jdk_devtools}/win32/bin"
path4sdk="${devtools_path};${path4sdk}"
# Normally this need not be set, but on Windows it's default is C:/UTILS
ALT_DEVTOOLS_PATH="${devtools_path}"
export ALT_DEVTOOLS_PATH
dirMustExist "${devtools_path}" ALT_DEVTOOLS_PATH
# Find GNU make
make="${devtools_path}/gnumake.exe"
fileMustExist "${make}" make
elif [ "`uname -a | fgrep Cygwin`" != "" -a -f /bin/cygpath ] ; then
# For CYGWIN, uname will have "Cygwin" in it, and /bin/cygpath should exist
unix_toolset=CYGWIN
# Utility to convert to short pathnames without spaces
dosname="/usr/bin/cygpath -a -m -s"
# Most unix utilities are in the /usr/bin
unixcommand_path="/usr/bin"
path4sdk="${sharebin};${antbin};${unixcommand_path}"
dirMustExist "${unixcommand_path}" ALT_UNIXCOMMAND_PATH
# Find GNU make
make="${unixcommand_path}/make.exe"
fileMustExist "${make}" make
else
echo "WARNING: Cannot figure out if this is MKS or CYGWIN"
fi
# WINDOWS: Compiler setup (nasty part)
# NOTE: You can use vcvars32.bat to set PATH, LIB, and INCLUDE.
# NOTE: CYGWIN has a link.exe too, make sure the compilers are first
if [ "${windows_arch}" = i586 ] ; then
# 32bit Windows compiler settings
# VisualStudio .NET 2003 VC++ 7.1 (VS71COMNTOOLS should be defined)
vs_root=`${dosname} "${VS71COMNTOOLS}/../.."`
# Fill in PATH, LIB, and INCLUDE (unset all others to make sure)
msdev_root="${vs_root}/Common7/Tools"
msdevtools_path="${msdev_root}/bin"
vc7_root="${vs_root}/Vc7"
compiler_path="${vc7_root}/bin"
compiler_name=VS2003
platform_sdk="${vc7_root}/PlatformSDK"
# LIB and INCLUDE must use ; as a separator
include4sdk="${vc7_root}/atlmfc/include"
include4sdk="${include4sdk};${vc7_root}/include"
include4sdk="${include4sdk};${platform_sdk}/include/prerelease"
include4sdk="${include4sdk};${platform_sdk}/include"
include4sdk="${include4sdk};${vs_root}/SDK/v1.1/include"
lib4sdk="${vc7_root}/atlmfc/lib"
lib4sdk="${lib4sdk};${vc7_root}/lib"
lib4sdk="${lib4sdk};${platform_sdk}/lib/prerelease"
lib4sdk="${lib4sdk};${platform_sdk}/lib"
lib4sdk="${lib4sdk};${vs_root}/SDK/v1.1/lib"
# Search path and DLL locating path
# WARNING: CYGWIN has a link.exe too, make sure compilers are first
path4sdk="${vs_root}/Common7/Tools/bin;${path4sdk}"
path4sdk="${vs_root}/SDK/v1.1/bin;${path4sdk}"
path4sdk="${vs_root}/Common7/Tools;${path4sdk}"
path4sdk="${vs_root}/Common7/Tools/bin/prerelease;${path4sdk}"
path4sdk="${vs_root}/Common7/IDE;${path4sdk}"
path4sdk="${compiler_path};${path4sdk}"
elif [ "${windows_arch}" = amd64 ] ; then
# AMD64 64bit Windows compiler settings
if [ "${MSSDK}" != "" ] ; then
platform_sdk="${MSSDK}"
else
platform_sdk=`${dosname} "C:/Program Files/Microsoft Platform SDK/"`
fi
compiler_path="${platform_sdk}/Bin/win64/x86/AMD64"
compiler_name=VS2005_PSDK
msdevtools_path="${platform_sdk}/Bin"
# LIB and INCLUDE must use ; as a separator
include4sdk="${platform_sdk}/Include"
include4sdk="${include4sdk};${platform_sdk}/Include/crt/sys"
include4sdk="${include4sdk};${platform_sdk}/Include/mfc"
include4sdk="${include4sdk};${platform_sdk}/Include/atl"
include4sdk="${include4sdk};${platform_sdk}/Include/crt"
lib4sdk="${platform_sdk}/Lib/AMD64"
lib4sdk="${lib4sdk};${platform_sdk}/Lib/AMD64/atlmfc"
# Search path and DLL locating path
# WARNING: CYGWIN has a link.exe too, make sure compilers are first
path4sdk="${platform_sdk}/bin;${path4sdk}"
path4sdk="${compiler_path};${path4sdk}"
fi
# Export LIB and INCLUDE
unset lib
unset Lib
LIB="${lib4sdk}"
export LIB
unset include
unset Include
INCLUDE="${include4sdk}"
export INCLUDE
# Set the ALT variable
ALT_COMPILER_PATH=`${dosname} "${compiler_path}"`
export ALT_COMPILER_PATH
dirMustExist "${compiler_path}" ALT_COMPILER_PATH
ALT_MSDEVTOOLS_PATH=`${dosname} "${msdevtools_path}"`
export ALT_MSDEVTOOLS_PATH
dirMustExist "${msdevtools_path}" ALT_MSDEVTOOLS_PATH
# WINDOWS: Get the previous JDK to be used to bootstrap the build
path4sdk="${bootdir}/bin;${path4sdk}"
# Turn all \\ into /, remove duplicates and trailing /
slash_path="`echo ${path4sdk} | sed -e 's@\\\\@/@g' -e 's@//@/@g' -e 's@/$@@' -e 's@/;@;@g'`"
# For windows, it's hard to know where the system is, so we just add this
# to PATH.
path4sdk="${slash_path};${PATH}"
# Convert path4sdk to cygwin style
if [ "${unix_toolset}" = CYGWIN ] ; then
path4sdk="`/usr/bin/cygpath -p ${path4sdk}`"
fi
# Set special windows ALT variables
ALT_ISHIELDDIR="C:/ishield802"
export ALT_ISHIELDDIR
# Sponsors binaries
ALT_SPONSOR1DIR=C:/sponsor_binaries
export ALT_SPONSOR1DIR
ALT_SPONSOR2DIR=C:/sponsor_binaries
export ALT_SPONSOR2DIR
fi
# Export PATH setting
PATH="${path4sdk}"
export PATH
# Things we need to unset
unset LD_LIBRARY_PATH
unset LD_LIBRARY_PATH_32
unset LD_LIBRARY_PATH_64
unset JAVA_HOME
...@@ -53,6 +53,19 @@ jprt.solaris_x64.build.platform.match32=solaris_i586_5.10 ...@@ -53,6 +53,19 @@ jprt.solaris_x64.build.platform.match32=solaris_i586_5.10
# Standard list of jprt test targets for this workspace # Standard list of jprt test targets for this workspace
jprt.test.targets=*-*-*-jvm98 jprt.test.targets=*-*-*-jvm98
jprt.regression.test.targets= \
*-*-*-java/lang, \
*-*-*-java/security, \
*-*-*-java/text, \
*-*-*-java/util
#jprt.regression.test.targets= \
# *-*-*-java/awt, \
# *-*-*-java/beans, \
# *-*-*-java/io, \
# *-*-*-java/net, \
# *-*-*-java/nio, \
# *-*-*-java/rmi, \
# Directories needed to build # Directories needed to build
jprt.bundle.exclude.src.dirs=build jprt.bundle.exclude.src.dirs=build
......
# #
# Copyright 2004-2008 Sun Microsystems, Inc. All Rights Reserved. # Copyright 2004-2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it
...@@ -31,7 +31,7 @@ BUILDDIR = ../.. ...@@ -31,7 +31,7 @@ BUILDDIR = ../..
PRODUCT = java PRODUCT = java
include $(BUILDDIR)/common/Defs.gmk include $(BUILDDIR)/common/Defs.gmk
SUBDIRS = multicast server SUBDIRS = file multicast server
all build clean clobber:: all build clean clobber::
$(SUBDIRS-loop) $(SUBDIRS-loop)
......
# #
# Copyright 2005 Sun Microsystems, Inc. All Rights Reserved. # Copyright 2008-2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it
...@@ -24,24 +24,33 @@ ...@@ -24,24 +24,33 @@
# #
# #
# Compiler settings for all platforms and the default compiler for each. # Makefile for the nio/file sample code
# #
# Windows uses Microsoft compilers by default BUILDDIR = ../../..
ifeq ($(PLATFORM), windows)
override CC_VERSION = msvc
endif
# Solaris uses Sun Studio compilers by default PRODUCT = java
ifeq ($(PLATFORM), solaris)
override CC_VERSION = sun
endif
# Linux uses GNU compilers by default include $(BUILDDIR)/common/Defs.gmk
ifeq ($(PLATFORM), linux)
override CC_VERSION = gcc
endif
# Get the compiler specific settings SAMPLE_SRC_DIR = $(SHARE_SRC)/sample/nio/file
include $(JDK_MAKE_SHARED_DIR)/Compiler-$(CC_VERSION).gmk SAMPLE_DST_DIR = $(SAMPLEDIR)/nio/file
SAMPLE_FILES = \
$(SAMPLE_DST_DIR)/AclEdit.java \
$(SAMPLE_DST_DIR)/Chmod.java \
$(SAMPLE_DST_DIR)/Copy.java \
$(SAMPLE_DST_DIR)/DiskUsage.java \
$(SAMPLE_DST_DIR)/FileType.java \
$(SAMPLE_DST_DIR)/WatchDir.java \
$(SAMPLE_DST_DIR)/Xdd.java
all build: $(SAMPLE_FILES)
$(SAMPLE_DST_DIR)/%: $(SAMPLE_SRC_DIR)/%
$(install-file)
clean clobber:
$(RM) -r $(SAMPLE_DST_DIR)
.PHONY: all build clean clobber
...@@ -340,8 +340,7 @@ ifeq ($(PLATFORM), windows) ...@@ -340,8 +340,7 @@ ifeq ($(PLATFORM), windows)
FONTCONFIGS_SRC = $(PLATFORM_SRC)/classes/sun/awt/windows FONTCONFIGS_SRC = $(PLATFORM_SRC)/classes/sun/awt/windows
_FONTCONFIGS = \ _FONTCONFIGS = \
fontconfig.properties \ fontconfig.properties
fontconfig.98.properties
FONTCONFIGS_SRC_PREFIX = FONTCONFIGS_SRC_PREFIX =
......
...@@ -35,7 +35,16 @@ MGMT_LIB_SRC = $(SHARE_SRC)/lib/management ...@@ -35,7 +35,16 @@ MGMT_LIB_SRC = $(SHARE_SRC)/lib/management
all build:: properties aclfile jmxremotefiles all build:: properties aclfile jmxremotefiles
SUBDIRS = snmp jmxremote # When building the openjdk, build snmp only if importing binary plugs,
ifdef OPENJDK
ifeq ($(IMPORT_BINARY_PLUGS),true)
SUBDIRS = snmp
endif
else
SUBDIRS = snmp
endif
SUBDIRS += jmxremote
all build clean clobber:: all build clean clobber::
$(SUBDIRS-loop) $(SUBDIRS-loop)
......
...@@ -39,6 +39,7 @@ FILES_java = \ ...@@ -39,6 +39,7 @@ FILES_java = \
sun/net/TransferProtocolClient.java \ sun/net/TransferProtocolClient.java \
sun/net/ConnectionResetException.java \ sun/net/ConnectionResetException.java \
sun/net/NetProperties.java \ sun/net/NetProperties.java \
sun/net/NetHooks.java \
sun/net/util/IPAddressUtil.java \ sun/net/util/IPAddressUtil.java \
sun/net/dns/ResolverConfiguration.java \ sun/net/dns/ResolverConfiguration.java \
sun/net/dns/ResolverConfigurationImpl.java \ sun/net/dns/ResolverConfigurationImpl.java \
...@@ -123,3 +124,7 @@ FILES_java = \ ...@@ -123,3 +124,7 @@ FILES_java = \
ifeq ($(PLATFORM), windows) ifeq ($(PLATFORM), windows)
FILES_java += sun/net/www/protocol/http/NTLMAuthSequence.java FILES_java += sun/net/www/protocol/http/NTLMAuthSequence.java
endif endif
ifeq ($(PLATFORM), solaris)
FILES_java += sun/net/spi/SdpProvider.java
endif
...@@ -318,12 +318,14 @@ SUNWprivate_1.1 { ...@@ -318,12 +318,14 @@ SUNWprivate_1.1 {
Java_java_awt_FileDialog_initIDs; Java_java_awt_FileDialog_initIDs;
Java_sun_awt_X11_XWindow_initIDs; Java_sun_awt_X11_XWindow_initIDs;
Java_sun_java2d_opengl_OGLContext_getOGLIdString;
Java_sun_java2d_opengl_OGLMaskFill_maskFill; Java_sun_java2d_opengl_OGLMaskFill_maskFill;
Java_sun_java2d_opengl_OGLRenderer_drawPoly; Java_sun_java2d_opengl_OGLRenderer_drawPoly;
Java_sun_java2d_opengl_OGLRenderQueue_flushBuffer; Java_sun_java2d_opengl_OGLRenderQueue_flushBuffer;
Java_sun_java2d_opengl_OGLSurfaceData_initTexture; Java_sun_java2d_opengl_OGLSurfaceData_initTexture;
Java_sun_java2d_opengl_OGLSurfaceData_initFBObject; Java_sun_java2d_opengl_OGLSurfaceData_initFBObject;
Java_sun_java2d_opengl_OGLSurfaceData_initFlipBackbuffer; Java_sun_java2d_opengl_OGLSurfaceData_initFlipBackbuffer;
Java_sun_java2d_opengl_OGLSurfaceData_getTextureID;
Java_sun_java2d_opengl_OGLSurfaceData_getTextureTarget; Java_sun_java2d_opengl_OGLSurfaceData_getTextureTarget;
Java_sun_java2d_opengl_OGLTextRenderer_drawGlyphList; Java_sun_java2d_opengl_OGLTextRenderer_drawGlyphList;
Java_sun_java2d_opengl_GLXGraphicsConfig_getGLXConfigInfo; Java_sun_java2d_opengl_GLXGraphicsConfig_getGLXConfigInfo;
......
...@@ -144,6 +144,55 @@ class CharacterData00 extends CharacterData { ...@@ -144,6 +144,55 @@ class CharacterData00 extends CharacterData {
case 0x1FBC : mapChar = 0x1FB3; break; case 0x1FBC : mapChar = 0x1FB3; break;
case 0x1FCC : mapChar = 0x1FC3; break; case 0x1FCC : mapChar = 0x1FC3; break;
case 0x1FFC : mapChar = 0x1FF3; break; case 0x1FFC : mapChar = 0x1FF3; break;
case 0x023A : mapChar = 0x2C65; break;
case 0x023E : mapChar = 0x2C66; break;
case 0x10A0 : mapChar = 0x2D00; break;
case 0x10A1 : mapChar = 0x2D01; break;
case 0x10A2 : mapChar = 0x2D02; break;
case 0x10A3 : mapChar = 0x2D03; break;
case 0x10A4 : mapChar = 0x2D04; break;
case 0x10A5 : mapChar = 0x2D05; break;
case 0x10A6 : mapChar = 0x2D06; break;
case 0x10A7 : mapChar = 0x2D07; break;
case 0x10A8 : mapChar = 0x2D08; break;
case 0x10A9 : mapChar = 0x2D09; break;
case 0x10AA : mapChar = 0x2D0A; break;
case 0x10AB : mapChar = 0x2D0B; break;
case 0x10AC : mapChar = 0x2D0C; break;
case 0x10AD : mapChar = 0x2D0D; break;
case 0x10AE : mapChar = 0x2D0E; break;
case 0x10AF : mapChar = 0x2D0F; break;
case 0x10B0 : mapChar = 0x2D10; break;
case 0x10B1 : mapChar = 0x2D11; break;
case 0x10B2 : mapChar = 0x2D12; break;
case 0x10B3 : mapChar = 0x2D13; break;
case 0x10B4 : mapChar = 0x2D14; break;
case 0x10B5 : mapChar = 0x2D15; break;
case 0x10B6 : mapChar = 0x2D16; break;
case 0x10B7 : mapChar = 0x2D17; break;
case 0x10B8 : mapChar = 0x2D18; break;
case 0x10B9 : mapChar = 0x2D19; break;
case 0x10BA : mapChar = 0x2D1A; break;
case 0x10BB : mapChar = 0x2D1B; break;
case 0x10BC : mapChar = 0x2D1C; break;
case 0x10BD : mapChar = 0x2D1D; break;
case 0x10BE : mapChar = 0x2D1E; break;
case 0x10BF : mapChar = 0x2D1F; break;
case 0x10C0 : mapChar = 0x2D20; break;
case 0x10C1 : mapChar = 0x2D21; break;
case 0x10C2 : mapChar = 0x2D22; break;
case 0x10C3 : mapChar = 0x2D23; break;
case 0x10C4 : mapChar = 0x2D24; break;
case 0x10C5 : mapChar = 0x2D25; break;
case 0x1E9E : mapChar = 0x00DF; break;
case 0x2C62 : mapChar = 0x026B; break;
case 0x2C63 : mapChar = 0x1D7D; break;
case 0x2C64 : mapChar = 0x027D; break;
case 0x2C6D : mapChar = 0x0251; break;
case 0x2C6E : mapChar = 0x0271; break;
case 0x2C6F : mapChar = 0x0250; break;
case 0xA77D : mapChar = 0x1D79; break;
// default mapChar is already set, so no // default mapChar is already set, so no
// need to redo it here. // need to redo it here.
// default : mapChar = ch; // default : mapChar = ch;
...@@ -196,6 +245,54 @@ class CharacterData00 extends CharacterData { ...@@ -196,6 +245,54 @@ class CharacterData00 extends CharacterData {
case 0x1FB3 : mapChar = 0x1FBC; break; case 0x1FB3 : mapChar = 0x1FBC; break;
case 0x1FC3 : mapChar = 0x1FCC; break; case 0x1FC3 : mapChar = 0x1FCC; break;
case 0x1FF3 : mapChar = 0x1FFC; break; case 0x1FF3 : mapChar = 0x1FFC; break;
case 0x0250 : mapChar = 0x2C6F; break;
case 0x0251 : mapChar = 0x2C6D; break;
case 0x026B : mapChar = 0x2C62; break;
case 0x0271 : mapChar = 0x2C6E; break;
case 0x027D : mapChar = 0x2C64; break;
case 0x1D79 : mapChar = 0xA77D; break;
case 0x1D7D : mapChar = 0x2C63; break;
case 0x2C65 : mapChar = 0x023A; break;
case 0x2C66 : mapChar = 0x023E; break;
case 0x2D00 : mapChar = 0x10A0; break;
case 0x2D01 : mapChar = 0x10A1; break;
case 0x2D02 : mapChar = 0x10A2; break;
case 0x2D03 : mapChar = 0x10A3; break;
case 0x2D04 : mapChar = 0x10A4; break;
case 0x2D05 : mapChar = 0x10A5; break;
case 0x2D06 : mapChar = 0x10A6; break;
case 0x2D07 : mapChar = 0x10A7; break;
case 0x2D08 : mapChar = 0x10A8; break;
case 0x2D09 : mapChar = 0x10A9; break;
case 0x2D0A : mapChar = 0x10AA; break;
case 0x2D0B : mapChar = 0x10AB; break;
case 0x2D0C : mapChar = 0x10AC; break;
case 0x2D0D : mapChar = 0x10AD; break;
case 0x2D0E : mapChar = 0x10AE; break;
case 0x2D0F : mapChar = 0x10AF; break;
case 0x2D10 : mapChar = 0x10B0; break;
case 0x2D11 : mapChar = 0x10B1; break;
case 0x2D12 : mapChar = 0x10B2; break;
case 0x2D13 : mapChar = 0x10B3; break;
case 0x2D14 : mapChar = 0x10B4; break;
case 0x2D15 : mapChar = 0x10B5; break;
case 0x2D16 : mapChar = 0x10B6; break;
case 0x2D17 : mapChar = 0x10B7; break;
case 0x2D18 : mapChar = 0x10B8; break;
case 0x2D19 : mapChar = 0x10B9; break;
case 0x2D1A : mapChar = 0x10BA; break;
case 0x2D1B : mapChar = 0x10BB; break;
case 0x2D1C : mapChar = 0x10BC; break;
case 0x2D1D : mapChar = 0x10BD; break;
case 0x2D1E : mapChar = 0x10BE; break;
case 0x2D1F : mapChar = 0x10BF; break;
case 0x2D20 : mapChar = 0x10C0; break;
case 0x2D21 : mapChar = 0x10C1; break;
case 0x2D22 : mapChar = 0x10C2; break;
case 0x2D23 : mapChar = 0x10C3; break;
case 0x2D24 : mapChar = 0x10C4; break;
case 0x2D25 : mapChar = 0x10C5; break;
// ch must have a 1:M case mapping, but we // ch must have a 1:M case mapping, but we
// can't handle it here. Return ch. // can't handle it here. Return ch.
// since mapChar is already set, no need // since mapChar is already set, no need
...@@ -315,6 +412,12 @@ class CharacterData00 extends CharacterData { ...@@ -315,6 +412,12 @@ class CharacterData00 extends CharacterData {
case 0x32BE: retval = 49; break; // CIRCLED NUMBER FORTY NINE case 0x32BE: retval = 49; break; // CIRCLED NUMBER FORTY NINE
case 0x32BF: retval = 50; break; // CIRCLED NUMBER FIFTY case 0x32BF: retval = 50; break; // CIRCLED NUMBER FIFTY
case 0x0D71: retval = 100; break; // MALAYALAM NUMBER ONE HUNDRED
case 0x0D72: retval = 1000; break; // MALAYALAM NUMBER ONE THOUSAND
case 0x2186: retval = 50; break; // ROMAN NUMERAL FIFTY EARLY FORM
case 0x2187: retval = 50000; break; // ROMAN NUMERAL FIFTY THOUSAND
case 0x2188: retval = 100000; break; // ROMAN NUMERAL ONE HUNDRED THOUSAND
default: retval = -2; break; default: retval = -2; break;
} }
break; break;
...@@ -383,6 +486,54 @@ class CharacterData00 extends CharacterData { ...@@ -383,6 +486,54 @@ class CharacterData00 extends CharacterData {
case 0x00B5 : mapChar = 0x039C; break; case 0x00B5 : mapChar = 0x039C; break;
case 0x017F : mapChar = 0x0053; break; case 0x017F : mapChar = 0x0053; break;
case 0x1FBE : mapChar = 0x0399; break; case 0x1FBE : mapChar = 0x0399; break;
case 0x0250 : mapChar = 0x2C6F; break;
case 0x0251 : mapChar = 0x2C6D; break;
case 0x026B : mapChar = 0x2C62; break;
case 0x0271 : mapChar = 0x2C6E; break;
case 0x027D : mapChar = 0x2C64; break;
case 0x1D79 : mapChar = 0xA77D; break;
case 0x1D7D : mapChar = 0x2C63; break;
case 0x2C65 : mapChar = 0x023A; break;
case 0x2C66 : mapChar = 0x023E; break;
case 0x2D00 : mapChar = 0x10A0; break;
case 0x2D01 : mapChar = 0x10A1; break;
case 0x2D02 : mapChar = 0x10A2; break;
case 0x2D03 : mapChar = 0x10A3; break;
case 0x2D04 : mapChar = 0x10A4; break;
case 0x2D05 : mapChar = 0x10A5; break;
case 0x2D06 : mapChar = 0x10A6; break;
case 0x2D07 : mapChar = 0x10A7; break;
case 0x2D08 : mapChar = 0x10A8; break;
case 0x2D09 : mapChar = 0x10A9; break;
case 0x2D0A : mapChar = 0x10AA; break;
case 0x2D0B : mapChar = 0x10AB; break;
case 0x2D0C : mapChar = 0x10AC; break;
case 0x2D0D : mapChar = 0x10AD; break;
case 0x2D0E : mapChar = 0x10AE; break;
case 0x2D0F : mapChar = 0x10AF; break;
case 0x2D10 : mapChar = 0x10B0; break;
case 0x2D11 : mapChar = 0x10B1; break;
case 0x2D12 : mapChar = 0x10B2; break;
case 0x2D13 : mapChar = 0x10B3; break;
case 0x2D14 : mapChar = 0x10B4; break;
case 0x2D15 : mapChar = 0x10B5; break;
case 0x2D16 : mapChar = 0x10B6; break;
case 0x2D17 : mapChar = 0x10B7; break;
case 0x2D18 : mapChar = 0x10B8; break;
case 0x2D19 : mapChar = 0x10B9; break;
case 0x2D1A : mapChar = 0x10BA; break;
case 0x2D1B : mapChar = 0x10BB; break;
case 0x2D1C : mapChar = 0x10BC; break;
case 0x2D1D : mapChar = 0x10BD; break;
case 0x2D1E : mapChar = 0x10BE; break;
case 0x2D1F : mapChar = 0x10BF; break;
case 0x2D20 : mapChar = 0x10C0; break;
case 0x2D21 : mapChar = 0x10C1; break;
case 0x2D22 : mapChar = 0x10C2; break;
case 0x2D23 : mapChar = 0x10C3; break;
case 0x2D24 : mapChar = 0x10C4; break;
case 0x2D25 : mapChar = 0x10C5; break;
default : mapChar = Character.ERROR; break; default : mapChar = Character.ERROR; break;
} }
} }
......
...@@ -218,6 +218,48 @@ class CharacterData01 extends CharacterData { ...@@ -218,6 +218,48 @@ class CharacterData01 extends CharacterData {
case 0x10132: retval = 80000; break; // AEGEAN NUMBER EIGHTY THOUSAND case 0x10132: retval = 80000; break; // AEGEAN NUMBER EIGHTY THOUSAND
case 0x10133: retval = 90000; break; // AEGEAN NUMBER NINETY THOUSAND case 0x10133: retval = 90000; break; // AEGEAN NUMBER NINETY THOUSAND
case 0x10323: retval = 50; break; // OLD ITALIC NUMERAL FIFTY case 0x10323: retval = 50; break; // OLD ITALIC NUMERAL FIFTY
case 0x010144: retval = 50; break; // ACROPHONIC ATTIC FIFTY
case 0x010145: retval = 500; break; // ACROPHONIC ATTIC FIVE HUNDRED
case 0x010146: retval = 5000; break; // ACROPHONIC ATTIC FIVE THOUSAND
case 0x010147: retval = 50000; break; // ACROPHONIC ATTIC FIFTY THOUSAND
case 0x01014A: retval = 50; break; // ACROPHONIC ATTIC FIFTY TALENTS
case 0x01014B: retval = 100; break; // ACROPHONIC ATTIC ONE HUNDRED TALENTS
case 0x01014C: retval = 500; break; // ACROPHONIC ATTIC FIVE HUNDRED TALENTS
case 0x01014D: retval = 1000; break; // ACROPHONIC ATTIC ONE THOUSAND TALENTS
case 0x01014E: retval = 5000; break; // ACROPHONIC ATTIC FIVE THOUSAND TALENTS
case 0x010151: retval = 50; break; // ACROPHONIC ATTIC FIFTY STATERS
case 0x010152: retval = 100; break; // ACROPHONIC ATTIC ONE HUNDRED STATERS
case 0x010153: retval = 500; break; // ACROPHONIC ATTIC FIVE HUNDRED STATERS
case 0x010154: retval = 1000; break; // ACROPHONIC ATTIC ONE THOUSAND STATERS
case 0x010155: retval = 10000; break; // ACROPHONIC ATTIC TEN THOUSAND STATERS
case 0x010156: retval = 50000; break; // ACROPHONIC ATTIC FIFTY THOUSAND STATERS
case 0x010166: retval = 50; break; // ACROPHONIC TROEZENIAN FIFTY
case 0x010167: retval = 50; break; // ACROPHONIC TROEZENIAN FIFTY ALTERNATE FORM
case 0x010168: retval = 50; break; // ACROPHONIC HERMIONIAN FIFTY
case 0x010169: retval = 50; break; // ACROPHONIC THESPIAN FIFTY
case 0x01016A: retval = 100; break; // ACROPHONIC THESPIAN ONE HUNDRED
case 0x01016B: retval = 300; break; // ACROPHONIC THESPIAN THREE HUNDRED
case 0x01016C: retval = 500; break; // ACROPHONIC EPIDAUREAN FIVE HUNDRED
case 0x01016D: retval = 500; break; // ACROPHONIC TROEZENIAN FIVE HUNDRED
case 0x01016E: retval = 500; break; // ACROPHONIC THESPIAN FIVE HUNDRED
case 0x01016F: retval = 500; break; // ACROPHONIC CARYSTIAN FIVE HUNDRED
case 0x010170: retval = 500; break; // ACROPHONIC NAXIAN FIVE HUNDRED
case 0x010171: retval = 1000; break; // ACROPHONIC THESPIAN ONE THOUSAND
case 0x010172: retval = 5000; break; // ACROPHONIC THESPIAN FIVE THOUSAND
case 0x010174: retval = 50; break; // ACROPHONIC STRATIAN FIFTY MNAS
case 0x010341: retval = 90; break; // GOTHIC LETTER NINETY
case 0x01034A: retval = 900; break; // GOTHIC LETTER NINE HUNDRED
case 0x0103D5: retval = 100; break; // OLD PERSIAN NUMBER HUNDRED
case 0x010919: retval = 100; break; // PHOENICIAN NUMBER ONE HUNDRED
case 0x010A46: retval = 100; break; // KHAROSHTHI NUMBER ONE HUNDRED
case 0x010A47: retval = 1000; break; // KHAROSHTHI NUMBER ONE THOUSAND
case 0x01D36C: retval = 40; break; // COUNTING ROD TENS DIGIT FOUR
case 0x01D36D: retval = 50; break; // COUNTING ROD TENS DIGIT FIVE
case 0x01D36E: retval = 60; break; // COUNTING ROD TENS DIGIT SIX
case 0x01D36F: retval = 70; break; // COUNTING ROD TENS DIGIT SEVEN
case 0x01D370: retval = 80; break; // COUNTING ROD TENS DIGIT EIGHT
case 0x01D371: retval = 90; break; // COUNTING ROD TENS DIGIT NINE
default: retval = -2; break; default: retval = -2; break;
} }
......
# SpecialCasing-4.0.0.txt # SpecialCasing-5.1.0.txt
# Date: 2003-03-14, 20:22:04 GMT [MD] # Date: 2008-03-03, 21:58:10 GMT [MD]
#
# Unicode Character Database
# Copyright (c) 1991-2008 Unicode, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
# For documentation, see UCD.html
# #
# Special Casing Properties # Special Casing Properties
# #
# This file is a supplement to the UnicodeData file. # This file is a supplement to the UnicodeData file.
# It contains additional information about the casing of Unicode characters. # It contains additional information about the casing of Unicode characters.
# (For compatibility, the UnicodeData.txt file only contains case mappings for # (For compatibility, the UnicodeData.txt file only contains case mappings for
# characters where they are 1-1, and does not have locale-specific mappings.) # characters where they are 1-1, and independent of context and language.
# For more information, see the discussion of Case Mappings in the Unicode Standard. # For more information, see the discussion of Case Mappings in the Unicode Standard.
# #
# All code points not listed in this file that do not have a simple case mappings # All code points not listed in this file that do not have a simple case mappings
...@@ -18,31 +23,31 @@ ...@@ -18,31 +23,31 @@
# #
# <code>; <lower> ; <title> ; <upper> ; (<condition_list> ;)? # <comment> # <code>; <lower> ; <title> ; <upper> ; (<condition_list> ;)? # <comment>
# #
# <code>, <lower>, <title>, and <upper> provide character values in hex. If there is more than # <code>, <lower>, <title>, and <upper> provide character values in hex. If there is more
# one character, they are separated by spaces. Other than as used to separate elements, # than one character, they are separated by spaces. Other than as used to separate
# spaces are to be ignored. # elements, spaces are to be ignored.
# #
# The <condition_list> is optional. Where present, it consists of one or more locales or contexts, # The <condition_list> is optional. Where present, it consists of one or more language IDs
# separated by spaces. In these conditions: # or contexts, separated by spaces. In these conditions:
# - A condition list overrides the normal behavior if all of the listed conditions are true. # - A condition list overrides the normal behavior if all of the listed conditions are true.
# - The context is always the context of the characters in the original string, # - The context is always the context of the characters in the original string,
# NOT in the resulting string. # NOT in the resulting string.
# - Case distinctions in the condition list are not significant. # - Case distinctions in the condition list are not significant.
# - Conditions preceded by "Not_" represent the negation of the condition. # - Conditions preceded by "Not_" represent the negation of the condition.
# The condition list is not represented in the UCD as a formal property.
# #
# A locale is defined as: # A language ID is defined by BCP 47, with '-' and '_' treated equivalently.
# <locale> := <ISO_639_code> ( "_" <ISO_3166_code> ( "_" <variant> )? )?
# <ISO_3166_code> := 2-letter ISO country code,
# <ISO_639_code> := 2-letter ISO language code
# #
# A context is one of the following, as defined in the Unicode Standard: # A context for a character C is defined by Section 3.13 Default Case
# Final_Sigma, After_Soft_Dotted, More_Above, Before_Dot, Not_Before_Dot, After_I # Operations, of The Unicode Standard, Version 5.0.
# (This is identical to the context defined by Unicode 4.1.0,
# as specified in http://www.unicode.org/versions/Unicode4.1.0/)
# #
# Parsers of this file must be prepared to deal with future additions to this format: # Parsers of this file must be prepared to deal with future additions to this format:
# * Additional contexts # * Additional contexts
# * Additional fields # * Additional fields
# ================================================================================ # ================================================================================
# @missing 0000..10FFFF; <slc>; <stc>; <suc>
# ================================================================================ # ================================================================================
# Unconditional mappings # Unconditional mappings
# ================================================================================ # ================================================================================
...@@ -170,7 +175,7 @@ FB17; FB17; 0544 056D; 0544 053D; # ARMENIAN SMALL LIGATURE MEN XEH ...@@ -170,7 +175,7 @@ FB17; FB17; 0544 056D; 0544 053D; # ARMENIAN SMALL LIGATURE MEN XEH
1FF3; 1FF3; 1FFC; 03A9 0399; # GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI 1FF3; 1FF3; 1FFC; 03A9 0399; # GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI
1FFC; 1FF3; 1FFC; 03A9 0399; # GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI 1FFC; 1FF3; 1FFC; 03A9 0399; # GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
# Some characters with YPOGEGRAMMENI are also have no corresponding titlecases # Some characters with YPOGEGRAMMENI also have no corresponding titlecases
1FB2; 1FB2; 1FBA 0345; 1FBA 0399; # GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI 1FB2; 1FB2; 1FBA 0345; 1FBA 0399; # GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI
1FB4; 1FB4; 0386 0345; 0386 0399; # GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI 1FB4; 1FB4; 0386 0345; 0386 0399; # GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
...@@ -184,7 +189,14 @@ FB17; FB17; 0544 056D; 0544 053D; # ARMENIAN SMALL LIGATURE MEN XEH ...@@ -184,7 +189,14 @@ FB17; FB17; 0544 056D; 0544 053D; # ARMENIAN SMALL LIGATURE MEN XEH
1FF7; 1FF7; 03A9 0342 0345; 03A9 0342 0399; # GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI 1FF7; 1FF7; 03A9 0342 0345; 03A9 0342 0399; # GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
# ================================================================================ # ================================================================================
# Conditional mappings # Conditional Mappings
# The remainder of this file provides conditional casing data used to produce
# full case mappings.
# ================================================================================
# Language-Insensitive Mappings
# These are characters whose full case mappings do not depend on language, but do
# depend on context (which characters come before or after). For more information
# see the header of this file and the Unicode Standard.
# ================================================================================ # ================================================================================
# Special case for final form of sigma # Special case for final form of sigma
...@@ -203,7 +215,10 @@ FB17; FB17; 0544 056D; 0544 053D; # ARMENIAN SMALL LIGATURE MEN XEH ...@@ -203,7 +215,10 @@ FB17; FB17; 0544 056D; 0544 053D; # ARMENIAN SMALL LIGATURE MEN XEH
# 03C2; 03C3; 03A3; 03A3; Not_Final_Sigma; # GREEK SMALL LETTER FINAL SIGMA # 03C2; 03C3; 03A3; 03A3; Not_Final_Sigma; # GREEK SMALL LETTER FINAL SIGMA
# ================================================================================ # ================================================================================
# Locale-sensitive mappings # Language-Sensitive Mappings
# These are characters whose full case mappings depend on language and perhaps also
# context (which characters come before or after). For more information
# see the header of this file and the Unicode Standard.
# ================================================================================ # ================================================================================
# Lithuanian # Lithuanian
...@@ -254,3 +269,6 @@ FB17; FB17; 0544 056D; 0544 053D; # ARMENIAN SMALL LIGATURE MEN XEH ...@@ -254,3 +269,6 @@ FB17; FB17; 0544 056D; 0544 053D; # ARMENIAN SMALL LIGATURE MEN XEH
# Note: the following case is already in the UnicodeData file. # Note: the following case is already in the UnicodeData file.
# 0131; 0131; 0049; 0049; tr; # LATIN SMALL LETTER DOTLESS I # 0131; 0131; 0049; 0049; tr; # LATIN SMALL LETTER DOTLESS I
# EOF
...@@ -153,7 +153,7 @@ public class GIFImageMetadata extends GIFMetadata { ...@@ -153,7 +153,7 @@ public class GIFImageMetadata extends GIFMetadata {
node.setAttribute("imageWidth", Integer.toString(imageWidth)); node.setAttribute("imageWidth", Integer.toString(imageWidth));
node.setAttribute("imageHeight", Integer.toString(imageHeight)); node.setAttribute("imageHeight", Integer.toString(imageHeight));
node.setAttribute("interlaceFlag", node.setAttribute("interlaceFlag",
interlaceFlag ? "true" : "false"); interlaceFlag ? "TRUE" : "FALSE");
root.appendChild(node); root.appendChild(node);
// Local color table // Local color table
...@@ -185,9 +185,9 @@ public class GIFImageMetadata extends GIFMetadata { ...@@ -185,9 +185,9 @@ public class GIFImageMetadata extends GIFMetadata {
node.setAttribute("disposalMethod", node.setAttribute("disposalMethod",
disposalMethodNames[disposalMethod]); disposalMethodNames[disposalMethod]);
node.setAttribute("userInputFlag", node.setAttribute("userInputFlag",
userInputFlag ? "true" : "false"); userInputFlag ? "TRUE" : "FALSE");
node.setAttribute("transparentColorFlag", node.setAttribute("transparentColorFlag",
transparentColorFlag ? "true" : "false"); transparentColorFlag ? "TRUE" : "FALSE");
node.setAttribute("delayTime", node.setAttribute("delayTime",
Integer.toString(delayTime)); Integer.toString(delayTime));
node.setAttribute("transparentColorIndex", node.setAttribute("transparentColorIndex",
......
...@@ -55,6 +55,7 @@ import org.w3c.dom.Node; ...@@ -55,6 +55,7 @@ import org.w3c.dom.Node;
import org.w3c.dom.NodeList; import org.w3c.dom.NodeList;
import com.sun.imageio.plugins.common.LZWCompressor; import com.sun.imageio.plugins.common.LZWCompressor;
import com.sun.imageio.plugins.common.PaletteBuilder; import com.sun.imageio.plugins.common.PaletteBuilder;
import sun.awt.image.ByteComponentRaster;
public class GIFImageWriter extends ImageWriter { public class GIFImageWriter extends ImageWriter {
private static final boolean DEBUG = false; // XXX false for release! private static final boolean DEBUG = false; // XXX false for release!
...@@ -905,10 +906,18 @@ public class GIFImageWriter extends ImageWriter { ...@@ -905,10 +906,18 @@ public class GIFImageWriter extends ImageWriter {
LZWCompressor compressor = LZWCompressor compressor =
new LZWCompressor(stream, initCodeSize, false); new LZWCompressor(stream, initCodeSize, false);
/* At this moment we know that input image is indexed image.
* We can directly copy data iff:
* - no subsampling required (periodX = 1, periodY = 0)
* - we can access data directly (image is non-tiled,
* i.e. image data are in single block)
* - we can calculate offset in data buffer (next 3 lines)
*/
boolean isOptimizedCase = boolean isOptimizedCase =
periodX == 1 && periodY == 1 && periodX == 1 && periodY == 1 &&
sampleModel instanceof ComponentSampleModel &&
image.getNumXTiles() == 1 && image.getNumYTiles() == 1 && image.getNumXTiles() == 1 && image.getNumYTiles() == 1 &&
sampleModel instanceof ComponentSampleModel &&
image.getTile(0, 0) instanceof ByteComponentRaster &&
image.getTile(0, 0).getDataBuffer() instanceof DataBufferByte; image.getTile(0, 0).getDataBuffer() instanceof DataBufferByte;
int numRowsWritten = 0; int numRowsWritten = 0;
...@@ -921,11 +930,14 @@ public class GIFImageWriter extends ImageWriter { ...@@ -921,11 +930,14 @@ public class GIFImageWriter extends ImageWriter {
if (DEBUG) System.out.println("Writing interlaced"); if (DEBUG) System.out.println("Writing interlaced");
if (isOptimizedCase) { if (isOptimizedCase) {
Raster tile = image.getTile(0, 0); ByteComponentRaster tile =
(ByteComponentRaster)image.getTile(0, 0);
byte[] data = ((DataBufferByte)tile.getDataBuffer()).getData(); byte[] data = ((DataBufferByte)tile.getDataBuffer()).getData();
ComponentSampleModel csm = ComponentSampleModel csm =
(ComponentSampleModel)tile.getSampleModel(); (ComponentSampleModel)tile.getSampleModel();
int offset = csm.getOffset(sourceXOffset, sourceYOffset, 0); int offset = csm.getOffset(sourceXOffset, sourceYOffset, 0);
// take into account the raster data offset
offset += tile.getDataOffset(0);
int lineStride = csm.getScanlineStride(); int lineStride = csm.getScanlineStride();
writeRowsOpt(data, offset, lineStride, compressor, writeRowsOpt(data, offset, lineStride, compressor,
......
...@@ -158,13 +158,10 @@ abstract class GIFMetadata extends IIOMetadata { ...@@ -158,13 +158,10 @@ abstract class GIFMetadata extends IIOMetadata {
} }
} }
String value = attr.getNodeValue(); String value = attr.getNodeValue();
// XXX Should be able to use equals() here instead of // Allow lower case booleans for backward compatibility, #5082756
// equalsIgnoreCase() but some boolean attributes are incorrectly if (value.equals("TRUE") || value.equals("true")) {
// set to "true" or "false" by the J2SE core metadata classes
// getAsTree() method (which are duplicated above). See bug 5082756.
if (value.equalsIgnoreCase("TRUE")) {
return true; return true;
} else if (value.equalsIgnoreCase("FALSE")) { } else if (value.equals("FALSE") || value.equals("false")) {
return false; return false;
} else { } else {
fatal(node, "Attribute " + name + " must be 'TRUE' or 'FALSE'!"); fatal(node, "Attribute " + name + " must be 'TRUE' or 'FALSE'!");
......
...@@ -202,7 +202,7 @@ public class GIFStreamMetadata extends GIFMetadata { ...@@ -202,7 +202,7 @@ public class GIFStreamMetadata extends GIFMetadata {
compression_node.appendChild(node); compression_node.appendChild(node);
node = new IIOMetadataNode("Lossless"); node = new IIOMetadataNode("Lossless");
node.setAttribute("value", "true"); node.setAttribute("value", "TRUE");
compression_node.appendChild(node); compression_node.appendChild(node);
// NumProgressiveScans not in stream // NumProgressiveScans not in stream
......
...@@ -1003,7 +1003,7 @@ class JFIFMarkerSegment extends MarkerSegment { ...@@ -1003,7 +1003,7 @@ class JFIFMarkerSegment extends MarkerSegment {
3, 3,
new int [] {0, 1, 2}, new int [] {0, 1, 2},
null); null);
ColorModel cm = new ComponentColorModel(JPEG.sRGB, ColorModel cm = new ComponentColorModel(JPEG.JCS.sRGB,
false, false,
false, false,
ColorModel.OPAQUE, ColorModel.OPAQUE,
......
...@@ -208,15 +208,24 @@ public class JPEG { ...@@ -208,15 +208,24 @@ public class JPEG {
public static final int [] bOffsRGB = { 2, 1, 0 }; public static final int [] bOffsRGB = { 2, 1, 0 };
protected static final ColorSpace sRGB = /* These are kept in the inner class to avoid static initialization
ColorSpace.getInstance(ColorSpace.CS_sRGB); * of the CMM class until someone actually needs it.
protected static ColorSpace YCC = null; // Can't be final * (e.g. do not init CMM on the request for jpeg mime types)
*/
static { public static class JCS {
try { public static final ColorSpace sRGB =
YCC = ColorSpace.getInstance(ColorSpace.CS_PYCC); ColorSpace.getInstance(ColorSpace.CS_sRGB);
} catch (IllegalArgumentException e) { public static final ColorSpace YCC;
// PYCC.pf may not always be installed
static {
ColorSpace cs = null;
try {
cs = ColorSpace.getInstance(ColorSpace.CS_PYCC);
} catch (IllegalArgumentException e) {
// PYCC.pf may not always be installed
} finally {
YCC = cs;
}
} }
} }
......
...@@ -228,31 +228,31 @@ public class JPEGImageReader extends ImageReader { ...@@ -228,31 +228,31 @@ public class JPEGImageReader extends ImageReader {
(BufferedImage.TYPE_BYTE_GRAY); (BufferedImage.TYPE_BYTE_GRAY);
defaultTypes[JPEG.JCS_RGB] = defaultTypes[JPEG.JCS_RGB] =
ImageTypeSpecifier.createInterleaved ImageTypeSpecifier.createInterleaved
(JPEG.sRGB, (JPEG.JCS.sRGB,
JPEG.bOffsRGB, JPEG.bOffsRGB,
DataBuffer.TYPE_BYTE, DataBuffer.TYPE_BYTE,
false, false,
false); false);
defaultTypes[JPEG.JCS_RGBA] = defaultTypes[JPEG.JCS_RGBA] =
ImageTypeSpecifier.createPacked ImageTypeSpecifier.createPacked
(JPEG.sRGB, (JPEG.JCS.sRGB,
0xff000000, 0xff000000,
0x00ff0000, 0x00ff0000,
0x0000ff00, 0x0000ff00,
0x000000ff, 0x000000ff,
DataBuffer.TYPE_INT, DataBuffer.TYPE_INT,
false); false);
if (JPEG.YCC != null) { if (JPEG.JCS.YCC != null) {
defaultTypes[JPEG.JCS_YCC] = defaultTypes[JPEG.JCS_YCC] =
ImageTypeSpecifier.createInterleaved ImageTypeSpecifier.createInterleaved
(JPEG.YCC, (JPEG.JCS.YCC,
JPEG.bandOffsets[2], JPEG.bandOffsets[2],
DataBuffer.TYPE_BYTE, DataBuffer.TYPE_BYTE,
false, false,
false); false);
defaultTypes[JPEG.JCS_YCCA] = defaultTypes[JPEG.JCS_YCCA] =
ImageTypeSpecifier.createInterleaved ImageTypeSpecifier.createInterleaved
(JPEG.YCC, (JPEG.JCS.YCC,
JPEG.bandOffsets[3], JPEG.bandOffsets[3],
DataBuffer.TYPE_BYTE, DataBuffer.TYPE_BYTE,
true, true,
...@@ -774,7 +774,7 @@ public class JPEGImageReader extends ImageReader { ...@@ -774,7 +774,7 @@ public class JPEGImageReader extends ImageReader {
case JPEG.JCS_RGB: case JPEG.JCS_RGB:
list.add(raw); list.add(raw);
list.add(getImageType(JPEG.JCS_GRAYSCALE)); list.add(getImageType(JPEG.JCS_GRAYSCALE));
if (JPEG.YCC != null) { if (JPEG.JCS.YCC != null) {
list.add(getImageType(JPEG.JCS_YCC)); list.add(getImageType(JPEG.JCS_YCC));
} }
break; break;
...@@ -811,7 +811,7 @@ public class JPEGImageReader extends ImageReader { ...@@ -811,7 +811,7 @@ public class JPEGImageReader extends ImageReader {
} }
list.add(getImageType(JPEG.JCS_GRAYSCALE)); list.add(getImageType(JPEG.JCS_GRAYSCALE));
if (JPEG.YCC != null) { // Might be null if PYCC.pf not installed if (JPEG.JCS.YCC != null) { // Might be null if PYCC.pf not installed
list.add(getImageType(JPEG.JCS_YCC)); list.add(getImageType(JPEG.JCS_YCC));
} }
break; break;
...@@ -893,7 +893,7 @@ public class JPEGImageReader extends ImageReader { ...@@ -893,7 +893,7 @@ public class JPEGImageReader extends ImageReader {
(!cs.isCS_sRGB()) && (!cs.isCS_sRGB()) &&
(cm.getNumComponents() == numComponents)) { (cm.getNumComponents() == numComponents)) {
// Target isn't sRGB, so convert from sRGB to the target // Target isn't sRGB, so convert from sRGB to the target
convert = new ColorConvertOp(JPEG.sRGB, cs, null); convert = new ColorConvertOp(JPEG.JCS.sRGB, cs, null);
} else if (csType != ColorSpace.TYPE_RGB) { } else if (csType != ColorSpace.TYPE_RGB) {
throw new IIOException("Incompatible color conversion"); throw new IIOException("Incompatible color conversion");
} }
...@@ -906,18 +906,18 @@ public class JPEGImageReader extends ImageReader { ...@@ -906,18 +906,18 @@ public class JPEGImageReader extends ImageReader {
} }
break; break;
case JPEG.JCS_YCC: case JPEG.JCS_YCC:
if (JPEG.YCC == null) { // We can't do YCC at all if (JPEG.JCS.YCC == null) { // We can't do YCC at all
throw new IIOException("Incompatible color conversion"); throw new IIOException("Incompatible color conversion");
} }
if ((cs != JPEG.YCC) && if ((cs != JPEG.JCS.YCC) &&
(cm.getNumComponents() == numComponents)) { (cm.getNumComponents() == numComponents)) {
convert = new ColorConvertOp(JPEG.YCC, cs, null); convert = new ColorConvertOp(JPEG.JCS.YCC, cs, null);
} }
break; break;
case JPEG.JCS_YCCA: case JPEG.JCS_YCCA:
// No conversions available; image must be YCCA // No conversions available; image must be YCCA
if ((JPEG.YCC == null) || // We can't do YCC at all if ((JPEG.JCS.YCC == null) || // We can't do YCC at all
(cs != JPEG.YCC) || (cs != JPEG.JCS.YCC) ||
(cm.getNumComponents() != numComponents)) { (cm.getNumComponents() != numComponents)) {
throw new IIOException("Incompatible color conversion"); throw new IIOException("Incompatible color conversion");
} }
......
...@@ -39,8 +39,6 @@ public class JPEGImageReaderSpi extends ImageReaderSpi { ...@@ -39,8 +39,6 @@ public class JPEGImageReaderSpi extends ImageReaderSpi {
private static String [] writerSpiNames = private static String [] writerSpiNames =
{"com.sun.imageio.plugins.jpeg.JPEGImageWriterSpi"}; {"com.sun.imageio.plugins.jpeg.JPEGImageWriterSpi"};
private boolean registered = false;
public JPEGImageReaderSpi() { public JPEGImageReaderSpi() {
super(JPEG.vendor, super(JPEG.vendor,
JPEG.version, JPEG.version,
...@@ -61,26 +59,6 @@ public class JPEGImageReaderSpi extends ImageReaderSpi { ...@@ -61,26 +59,6 @@ public class JPEGImageReaderSpi extends ImageReaderSpi {
); );
} }
public void onRegistration(ServiceRegistry registry,
Class<?> category) {
if (registered) {
return;
}
try {
java.security.AccessController.doPrivileged(
new sun.security.action.LoadLibraryAction("jpeg"));
// Stuff it all into one lib for first pass
//java.security.AccessController.doPrivileged(
//new sun.security.action.LoadLibraryAction("imageioIJG"));
} catch (Throwable e) { // Fail on any Throwable
// if it can't be loaded, deregister and return
registry.deregisterServiceProvider(this);
return;
}
registered = true;
}
public String getDescription(Locale locale) { public String getDescription(Locale locale) {
return "Standard JPEG Image Reader"; return "Standard JPEG Image Reader";
} }
......
...@@ -812,13 +812,13 @@ public class JPEGImageWriter extends ImageWriter { ...@@ -812,13 +812,13 @@ public class JPEGImageWriter extends ImageWriter {
} }
break; break;
case ColorSpace.TYPE_3CLR: case ColorSpace.TYPE_3CLR:
if (cs == JPEG.YCC) { if (cs == JPEG.JCS.YCC) {
if (!alpha) { if (!alpha) {
if (jfif != null) { if (jfif != null) {
convertTosRGB = true; convertTosRGB = true;
convertOp = convertOp =
new ColorConvertOp(cs, new ColorConvertOp(cs,
JPEG.sRGB, JPEG.JCS.sRGB,
null); null);
outCsType = JPEG.JCS_YCbCr; outCsType = JPEG.JCS_YCbCr;
} else if (adobe != null) { } else if (adobe != null) {
...@@ -1494,7 +1494,7 @@ public class JPEGImageWriter extends ImageWriter { ...@@ -1494,7 +1494,7 @@ public class JPEGImageWriter extends ImageWriter {
} }
break; break;
case ColorSpace.TYPE_3CLR: case ColorSpace.TYPE_3CLR:
if (cs == JPEG.YCC) { if (cs == JPEG.JCS.YCC) {
if (alpha) { if (alpha) {
retval = JPEG.JCS_YCCA; retval = JPEG.JCS_YCCA;
} else { } else {
...@@ -1533,7 +1533,7 @@ public class JPEGImageWriter extends ImageWriter { ...@@ -1533,7 +1533,7 @@ public class JPEGImageWriter extends ImageWriter {
} }
break; break;
case ColorSpace.TYPE_3CLR: case ColorSpace.TYPE_3CLR:
if (cs == JPEG.YCC) { if (cs == JPEG.JCS.YCC) {
if (alpha) { if (alpha) {
retval = JPEG.JCS_YCCA; retval = JPEG.JCS_YCCA;
} else { } else {
...@@ -1579,7 +1579,7 @@ public class JPEGImageWriter extends ImageWriter { ...@@ -1579,7 +1579,7 @@ public class JPEGImageWriter extends ImageWriter {
} }
break; break;
case ColorSpace.TYPE_3CLR: case ColorSpace.TYPE_3CLR:
if (cs == JPEG.YCC) { if (cs == JPEG.JCS.YCC) {
if (alpha) { if (alpha) {
retval = JPEG.JCS_YCCA; retval = JPEG.JCS_YCCA;
} else { } else {
......
...@@ -42,8 +42,6 @@ public class JPEGImageWriterSpi extends ImageWriterSpi { ...@@ -42,8 +42,6 @@ public class JPEGImageWriterSpi extends ImageWriterSpi {
private static String [] readerSpiNames = private static String [] readerSpiNames =
{"com.sun.imageio.plugins.jpeg.JPEGImageReaderSpi"}; {"com.sun.imageio.plugins.jpeg.JPEGImageReaderSpi"};
private boolean registered = false;
public JPEGImageWriterSpi() { public JPEGImageWriterSpi() {
super(JPEG.vendor, super(JPEG.vendor,
JPEG.version, JPEG.version,
...@@ -68,23 +66,6 @@ public class JPEGImageWriterSpi extends ImageWriterSpi { ...@@ -68,23 +66,6 @@ public class JPEGImageWriterSpi extends ImageWriterSpi {
return "Standard JPEG Image Writer"; return "Standard JPEG Image Writer";
} }
public void onRegistration(ServiceRegistry registry,
Class<?> category) {
if (registered) {
return;
}
try {
java.security.AccessController.doPrivileged(
new sun.security.action.LoadLibraryAction("jpeg"));
} catch (Throwable e) { // Fail on any Throwable
// if it can't be loaded, deregister and return
registry.deregisterServiceProvider(this);
return;
}
registered = true;
}
public boolean isFormatLossless() { public boolean isFormatLossless() {
return false; return false;
} }
......
...@@ -490,7 +490,7 @@ public class JPEGMetadata extends IIOMetadata implements Cloneable { ...@@ -490,7 +490,7 @@ public class JPEGMetadata extends IIOMetadata implements Cloneable {
} }
break; break;
case ColorSpace.TYPE_3CLR: case ColorSpace.TYPE_3CLR:
if (cs == JPEG.YCC) { if (cs == JPEG.JCS.YCC) {
wantJFIF = false; wantJFIF = false;
componentIDs[0] = (byte) 'Y'; componentIDs[0] = (byte) 'Y';
componentIDs[1] = (byte) 'C'; componentIDs[1] = (byte) 'C';
...@@ -955,7 +955,7 @@ public class JPEGMetadata extends IIOMetadata implements Cloneable { ...@@ -955,7 +955,7 @@ public class JPEGMetadata extends IIOMetadata implements Cloneable {
// Lossless - false // Lossless - false
IIOMetadataNode lossless = new IIOMetadataNode("Lossless"); IIOMetadataNode lossless = new IIOMetadataNode("Lossless");
lossless.setAttribute("value", "false"); lossless.setAttribute("value", "FALSE");
compression.appendChild(lossless); compression.appendChild(lossless);
// NumProgressiveScans - count sos segments // NumProgressiveScans - count sos segments
......
...@@ -37,6 +37,7 @@ import java.awt.image.WritableRaster; ...@@ -37,6 +37,7 @@ import java.awt.image.WritableRaster;
import java.io.BufferedInputStream; import java.io.BufferedInputStream;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import java.io.DataInputStream; import java.io.DataInputStream;
import java.io.EOFException;
import java.io.InputStream; import java.io.InputStream;
import java.io.IOException; import java.io.IOException;
import java.io.SequenceInputStream; import java.io.SequenceInputStream;
...@@ -59,7 +60,7 @@ import com.sun.imageio.plugins.common.SubImageInputStream; ...@@ -59,7 +60,7 @@ import com.sun.imageio.plugins.common.SubImageInputStream;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import sun.awt.image.ByteInterleavedRaster; import sun.awt.image.ByteInterleavedRaster;
class PNGImageDataEnumeration implements Enumeration { class PNGImageDataEnumeration implements Enumeration<InputStream> {
boolean firstTime = true; boolean firstTime = true;
ImageInputStream stream; ImageInputStream stream;
...@@ -72,7 +73,7 @@ class PNGImageDataEnumeration implements Enumeration { ...@@ -72,7 +73,7 @@ class PNGImageDataEnumeration implements Enumeration {
int type = stream.readInt(); // skip chunk type int type = stream.readInt(); // skip chunk type
} }
public Object nextElement() { public InputStream nextElement() {
try { try {
firstTime = false; firstTime = false;
ImageInputStream iis = new SubImageInputStream(stream, length); ImageInputStream iis = new SubImageInputStream(stream, length);
...@@ -207,25 +208,17 @@ public class PNGImageReader extends ImageReader { ...@@ -207,25 +208,17 @@ public class PNGImageReader extends ImageReader {
resetStreamSettings(); resetStreamSettings();
} }
private String readNullTerminatedString(String charset) throws IOException { private String readNullTerminatedString(String charset, int maxLen) throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream(); ByteArrayOutputStream baos = new ByteArrayOutputStream();
int b; int b;
while ((b = stream.read()) != 0) { int count = 0;
while ((maxLen > count++) && ((b = stream.read()) != 0)) {
if (b == -1) throw new EOFException();
baos.write(b); baos.write(b);
} }
return new String(baos.toByteArray(), charset); return new String(baos.toByteArray(), charset);
} }
private String readNullTerminatedString() throws IOException {
StringBuilder b = new StringBuilder();
int c;
while ((c = stream.read()) != 0) {
b.append((char)c);
}
return b.toString();
}
private void readHeader() throws IIOException { private void readHeader() throws IIOException {
if (gotHeader) { if (gotHeader) {
return; return;
...@@ -434,7 +427,7 @@ public class PNGImageReader extends ImageReader { ...@@ -434,7 +427,7 @@ public class PNGImageReader extends ImageReader {
} }
private void parse_iCCP_chunk(int chunkLength) throws IOException { private void parse_iCCP_chunk(int chunkLength) throws IOException {
String keyword = readNullTerminatedString(); String keyword = readNullTerminatedString("ISO-8859-1", 80);
metadata.iCCP_profileName = keyword; metadata.iCCP_profileName = keyword;
metadata.iCCP_compressionMethod = stream.readUnsignedByte(); metadata.iCCP_compressionMethod = stream.readUnsignedByte();
...@@ -450,7 +443,7 @@ public class PNGImageReader extends ImageReader { ...@@ -450,7 +443,7 @@ public class PNGImageReader extends ImageReader {
private void parse_iTXt_chunk(int chunkLength) throws IOException { private void parse_iTXt_chunk(int chunkLength) throws IOException {
long chunkStart = stream.getStreamPosition(); long chunkStart = stream.getStreamPosition();
String keyword = readNullTerminatedString(); String keyword = readNullTerminatedString("ISO-8859-1", 80);
metadata.iTXt_keyword.add(keyword); metadata.iTXt_keyword.add(keyword);
int compressionFlag = stream.readUnsignedByte(); int compressionFlag = stream.readUnsignedByte();
...@@ -459,15 +452,17 @@ public class PNGImageReader extends ImageReader { ...@@ -459,15 +452,17 @@ public class PNGImageReader extends ImageReader {
int compressionMethod = stream.readUnsignedByte(); int compressionMethod = stream.readUnsignedByte();
metadata.iTXt_compressionMethod.add(Integer.valueOf(compressionMethod)); metadata.iTXt_compressionMethod.add(Integer.valueOf(compressionMethod));
String languageTag = readNullTerminatedString("UTF8"); String languageTag = readNullTerminatedString("UTF8", 80);
metadata.iTXt_languageTag.add(languageTag); metadata.iTXt_languageTag.add(languageTag);
long pos = stream.getStreamPosition();
int maxLen = (int)(chunkStart + chunkLength - pos);
String translatedKeyword = String translatedKeyword =
readNullTerminatedString("UTF8"); readNullTerminatedString("UTF8", maxLen);
metadata.iTXt_translatedKeyword.add(translatedKeyword); metadata.iTXt_translatedKeyword.add(translatedKeyword);
String text; String text;
long pos = stream.getStreamPosition(); pos = stream.getStreamPosition();
byte[] b = new byte[(int)(chunkStart + chunkLength - pos)]; byte[] b = new byte[(int)(chunkStart + chunkLength - pos)];
stream.readFully(b); stream.readFully(b);
...@@ -511,7 +506,7 @@ public class PNGImageReader extends ImageReader { ...@@ -511,7 +506,7 @@ public class PNGImageReader extends ImageReader {
private void parse_sPLT_chunk(int chunkLength) private void parse_sPLT_chunk(int chunkLength)
throws IOException, IIOException { throws IOException, IIOException {
metadata.sPLT_paletteName = readNullTerminatedString(); metadata.sPLT_paletteName = readNullTerminatedString("ISO-8859-1", 80);
chunkLength -= metadata.sPLT_paletteName.length() + 1; chunkLength -= metadata.sPLT_paletteName.length() + 1;
int sampleDepth = stream.readUnsignedByte(); int sampleDepth = stream.readUnsignedByte();
...@@ -554,12 +549,12 @@ public class PNGImageReader extends ImageReader { ...@@ -554,12 +549,12 @@ public class PNGImageReader extends ImageReader {
} }
private void parse_tEXt_chunk(int chunkLength) throws IOException { private void parse_tEXt_chunk(int chunkLength) throws IOException {
String keyword = readNullTerminatedString(); String keyword = readNullTerminatedString("ISO-8859-1", 80);
metadata.tEXt_keyword.add(keyword); metadata.tEXt_keyword.add(keyword);
byte[] b = new byte[chunkLength - keyword.length() - 1]; byte[] b = new byte[chunkLength - keyword.length() - 1];
stream.readFully(b); stream.readFully(b);
metadata.tEXt_text.add(new String(b)); metadata.tEXt_text.add(new String(b, "ISO-8859-1"));
} }
private void parse_tIME_chunk() throws IOException { private void parse_tIME_chunk() throws IOException {
...@@ -640,7 +635,7 @@ public class PNGImageReader extends ImageReader { ...@@ -640,7 +635,7 @@ public class PNGImageReader extends ImageReader {
} }
private void parse_zTXt_chunk(int chunkLength) throws IOException { private void parse_zTXt_chunk(int chunkLength) throws IOException {
String keyword = readNullTerminatedString(); String keyword = readNullTerminatedString("ISO-8859-1", 80);
metadata.zTXt_keyword.add(keyword); metadata.zTXt_keyword.add(keyword);
int method = stream.readUnsignedByte(); int method = stream.readUnsignedByte();
...@@ -648,7 +643,7 @@ public class PNGImageReader extends ImageReader { ...@@ -648,7 +643,7 @@ public class PNGImageReader extends ImageReader {
byte[] b = new byte[chunkLength - keyword.length() - 2]; byte[] b = new byte[chunkLength - keyword.length() - 2];
stream.readFully(b); stream.readFully(b);
metadata.zTXt_text.add(new String(inflate(b))); metadata.zTXt_text.add(new String(inflate(b), "ISO-8859-1"));
} }
private void readMetadata() throws IIOException { private void readMetadata() throws IIOException {
...@@ -1263,7 +1258,7 @@ public class PNGImageReader extends ImageReader { ...@@ -1263,7 +1258,7 @@ public class PNGImageReader extends ImageReader {
try { try {
stream.seek(imageStartPosition); stream.seek(imageStartPosition);
Enumeration e = new PNGImageDataEnumeration(stream); Enumeration<InputStream> e = new PNGImageDataEnumeration(stream);
InputStream is = new SequenceInputStream(e); InputStream is = new SequenceInputStream(e);
/* InflaterInputStream uses an Inflater instance which consumes /* InflaterInputStream uses an Inflater instance which consumes
......
...@@ -674,13 +674,8 @@ public class PNGImageWriter extends ImageWriter { ...@@ -674,13 +674,8 @@ public class PNGImageWriter extends ImageWriter {
private byte[] deflate(byte[] b) throws IOException { private byte[] deflate(byte[] b) throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream(); ByteArrayOutputStream baos = new ByteArrayOutputStream();
DeflaterOutputStream dos = new DeflaterOutputStream(baos); DeflaterOutputStream dos = new DeflaterOutputStream(baos);
dos.write(b);
int len = b.length;
for (int i = 0; i < len; i++) {
dos.write((int)(0xff & b[i]));
}
dos.close(); dos.close();
return baos.toByteArray(); return baos.toByteArray();
} }
...@@ -736,7 +731,7 @@ public class PNGImageWriter extends ImageWriter { ...@@ -736,7 +731,7 @@ public class PNGImageWriter extends ImageWriter {
cs.writeByte(compressionMethod); cs.writeByte(compressionMethod);
String text = (String)textIter.next(); String text = (String)textIter.next();
cs.write(deflate(text.getBytes())); cs.write(deflate(text.getBytes("ISO-8859-1")));
cs.finish(); cs.finish();
} }
} }
......
...@@ -211,8 +211,8 @@ public class PNGMetadata extends IIOMetadata implements Cloneable { ...@@ -211,8 +211,8 @@ public class PNGMetadata extends IIOMetadata implements Cloneable {
public int sRGB_renderingIntent; public int sRGB_renderingIntent;
// tEXt chunk // tEXt chunk
public ArrayList tEXt_keyword = new ArrayList(); // 1-79 char Strings public ArrayList<String> tEXt_keyword = new ArrayList<String>(); // 1-79 characters
public ArrayList tEXt_text = new ArrayList(); // Strings public ArrayList<String> tEXt_text = new ArrayList<String>();
// tIME chunk // tIME chunk
public boolean tIME_present; public boolean tIME_present;
...@@ -235,13 +235,13 @@ public class PNGMetadata extends IIOMetadata implements Cloneable { ...@@ -235,13 +235,13 @@ public class PNGMetadata extends IIOMetadata implements Cloneable {
public int tRNS_blue; public int tRNS_blue;
// zTXt chunk // zTXt chunk
public ArrayList zTXt_keyword = new ArrayList(); // Strings public ArrayList<String> zTXt_keyword = new ArrayList<String>();
public ArrayList zTXt_compressionMethod = new ArrayList(); // Integers public ArrayList<Integer> zTXt_compressionMethod = new ArrayList<Integer>();
public ArrayList zTXt_text = new ArrayList(); // Strings public ArrayList<String> zTXt_text = new ArrayList<String>();
// Unknown chunks // Unknown chunks
public ArrayList unknownChunkType = new ArrayList(); // Strings public ArrayList<String> unknownChunkType = new ArrayList<String>();
public ArrayList unknownChunkData = new ArrayList(); // byte arrays public ArrayList<byte[]> unknownChunkData = new ArrayList<byte[]>();
public PNGMetadata() { public PNGMetadata() {
super(true, super(true,
...@@ -426,21 +426,14 @@ public class PNGMetadata extends IIOMetadata implements Cloneable { ...@@ -426,21 +426,14 @@ public class PNGMetadata extends IIOMetadata implements Cloneable {
return false; return false;
} }
private ArrayList cloneBytesArrayList(ArrayList in) { private ArrayList<byte[]> cloneBytesArrayList(ArrayList<byte[]> in) {
if (in == null) { if (in == null) {
return null; return null;
} else { } else {
ArrayList list = new ArrayList(in.size()); ArrayList<byte[]> list = new ArrayList<byte[]>(in.size());
Iterator iter = in.iterator(); for (byte[] b: in) {
while (iter.hasNext()) { list.add((b == null) ? null : (byte[])b.clone());
Object o = iter.next();
if (o == null) {
list.add(null);
} else {
list.add(((byte[])o).clone());
}
} }
return list; return list;
} }
} }
...@@ -600,7 +593,7 @@ public class PNGMetadata extends IIOMetadata implements Cloneable { ...@@ -600,7 +593,7 @@ public class PNGMetadata extends IIOMetadata implements Cloneable {
IIOMetadataNode iTXt_node = new IIOMetadataNode("iTXtEntry"); IIOMetadataNode iTXt_node = new IIOMetadataNode("iTXtEntry");
iTXt_node.setAttribute("keyword", iTXt_keyword.get(i)); iTXt_node.setAttribute("keyword", iTXt_keyword.get(i));
iTXt_node.setAttribute("compressionFlag", iTXt_node.setAttribute("compressionFlag",
iTXt_compressionFlag.get(i) ? "1" : "0"); iTXt_compressionFlag.get(i) ? "TRUE" : "FALSE");
iTXt_node.setAttribute("compressionMethod", iTXt_node.setAttribute("compressionMethod",
iTXt_compressionMethod.get(i).toString()); iTXt_compressionMethod.get(i).toString());
iTXt_node.setAttribute("languageTag", iTXt_node.setAttribute("languageTag",
...@@ -832,7 +825,7 @@ public class PNGMetadata extends IIOMetadata implements Cloneable { ...@@ -832,7 +825,7 @@ public class PNGMetadata extends IIOMetadata implements Cloneable {
} }
node = new IIOMetadataNode("BlackIsZero"); node = new IIOMetadataNode("BlackIsZero");
node.setAttribute("value", "true"); node.setAttribute("value", "TRUE");
chroma_node.appendChild(node); chroma_node.appendChild(node);
if (PLTE_present) { if (PLTE_present) {
...@@ -894,7 +887,7 @@ public class PNGMetadata extends IIOMetadata implements Cloneable { ...@@ -894,7 +887,7 @@ public class PNGMetadata extends IIOMetadata implements Cloneable {
compression_node.appendChild(node); compression_node.appendChild(node);
node = new IIOMetadataNode("Lossless"); node = new IIOMetadataNode("Lossless");
node.setAttribute("value", "true"); node.setAttribute("value", "TRUE");
compression_node.appendChild(node); compression_node.appendChild(node);
node = new IIOMetadataNode("NumProgressiveScans"); node = new IIOMetadataNode("NumProgressiveScans");
...@@ -1040,7 +1033,7 @@ public class PNGMetadata extends IIOMetadata implements Cloneable { ...@@ -1040,7 +1033,7 @@ public class PNGMetadata extends IIOMetadata implements Cloneable {
node.setAttribute("language", node.setAttribute("language",
iTXt_languageTag.get(i)); iTXt_languageTag.get(i));
if (iTXt_compressionFlag.get(i)) { if (iTXt_compressionFlag.get(i)) {
node.setAttribute("compression", "deflate"); node.setAttribute("compression", "zip");
} else { } else {
node.setAttribute("compression", "none"); node.setAttribute("compression", "none");
} }
...@@ -1052,7 +1045,7 @@ public class PNGMetadata extends IIOMetadata implements Cloneable { ...@@ -1052,7 +1045,7 @@ public class PNGMetadata extends IIOMetadata implements Cloneable {
node = new IIOMetadataNode("TextEntry"); node = new IIOMetadataNode("TextEntry");
node.setAttribute("keyword", (String)zTXt_keyword.get(i)); node.setAttribute("keyword", (String)zTXt_keyword.get(i));
node.setAttribute("value", (String)zTXt_text.get(i)); node.setAttribute("value", (String)zTXt_text.get(i));
node.setAttribute("compression", "deflate"); node.setAttribute("compression", "zip");
text_node.appendChild(node); text_node.appendChild(node);
} }
...@@ -1162,12 +1155,13 @@ public class PNGMetadata extends IIOMetadata implements Cloneable { ...@@ -1162,12 +1155,13 @@ public class PNGMetadata extends IIOMetadata implements Cloneable {
} }
} }
String value = attr.getNodeValue(); String value = attr.getNodeValue();
if (value.equals("true")) { // Allow lower case booleans for backward compatibility, #5082756
if (value.equals("TRUE") || value.equals("true")) {
return true; return true;
} else if (value.equals("false")) { } else if (value.equals("FALSE") || value.equals("false")) {
return false; return false;
} else { } else {
fatal(node, "Attribute " + name + " must be 'true' or 'false'!"); fatal(node, "Attribute " + name + " must be 'TRUE' or 'FALSE'!");
return false; return false;
} }
} }
...@@ -1421,26 +1415,30 @@ public class PNGMetadata extends IIOMetadata implements Cloneable { ...@@ -1421,26 +1415,30 @@ public class PNGMetadata extends IIOMetadata implements Cloneable {
} }
String keyword = getAttribute(iTXt_node, "keyword"); String keyword = getAttribute(iTXt_node, "keyword");
iTXt_keyword.add(keyword); if (isValidKeyword(keyword)) {
iTXt_keyword.add(keyword);
boolean compressionFlag =
getBooleanAttribute(iTXt_node, "compressionFlag");
iTXt_compressionFlag.add(Boolean.valueOf(compressionFlag));
boolean compressionFlag = String compressionMethod =
getBooleanAttribute(iTXt_node, "compressionFlag"); getAttribute(iTXt_node, "compressionMethod");
iTXt_compressionFlag.add(Boolean.valueOf(compressionFlag)); iTXt_compressionMethod.add(Integer.valueOf(compressionMethod));
String compressionMethod = String languageTag =
getAttribute(iTXt_node, "compressionMethod"); getAttribute(iTXt_node, "languageTag");
iTXt_compressionMethod.add(Integer.valueOf(compressionMethod)); iTXt_languageTag.add(languageTag);
String languageTag = String translatedKeyword =
getAttribute(iTXt_node, "languageTag"); getAttribute(iTXt_node, "translatedKeyword");
iTXt_languageTag.add(languageTag); iTXt_translatedKeyword.add(translatedKeyword);
String translatedKeyword = String text = getAttribute(iTXt_node, "text");
getAttribute(iTXt_node, "translatedKeyword"); iTXt_text.add(text);
iTXt_translatedKeyword.add(translatedKeyword);
String text = getAttribute(iTXt_node, "text"); }
iTXt_text.add(text); // silently skip invalid text entry
iTXt_node = iTXt_node.getNextSibling(); iTXt_node = iTXt_node.getNextSibling();
} }
...@@ -1692,11 +1690,45 @@ public class PNGMetadata extends IIOMetadata implements Cloneable { ...@@ -1692,11 +1690,45 @@ public class PNGMetadata extends IIOMetadata implements Cloneable {
} }
} }
private boolean isISOLatin(String s) { /*
* Accrding to PNG spec, keywords are restricted to 1 to 79 bytes
* in length. Keywords shall contain only printable Latin-1 characters
* and spaces; To reduce the chances for human misreading of a keyword,
* leading spaces, trailing spaces, and consecutive spaces are not
* permitted in keywords.
*
* See: http://www.w3.org/TR/PNG/#11keywords
*/
private boolean isValidKeyword(String s) {
int len = s.length();
if (len < 1 || len >= 80) {
return false;
}
if (s.startsWith(" ") || s.endsWith(" ") || s.contains(" ")) {
return false;
}
return isISOLatin(s, false);
}
/*
* According to PNG spec, keyword shall contain only printable
* Latin-1 [ISO-8859-1] characters and spaces; that is, only
* character codes 32-126 and 161-255 decimal are allowed.
* For Latin-1 value fields the 0x10 (linefeed) control
* character is aloowed too.
*
* See: http://www.w3.org/TR/PNG/#11keywords
*/
private boolean isISOLatin(String s, boolean isLineFeedAllowed) {
int len = s.length(); int len = s.length();
for (int i = 0; i < len; i++) { for (int i = 0; i < len; i++) {
if (s.charAt(i) > 255) { char c = s.charAt(i);
return false; if (c < 32 || c > 255 || (c > 126 && c < 161)) {
// not printable. Check whether this is an allowed
// control char
if (!isLineFeedAllowed || c != 0x10) {
return false;
}
} }
} }
return true; return true;
...@@ -1929,19 +1961,22 @@ public class PNGMetadata extends IIOMetadata implements Cloneable { ...@@ -1929,19 +1961,22 @@ public class PNGMetadata extends IIOMetadata implements Cloneable {
while (child != null) { while (child != null) {
String childName = child.getNodeName(); String childName = child.getNodeName();
if (childName.equals("TextEntry")) { if (childName.equals("TextEntry")) {
String keyword = getAttribute(child, "keyword"); String keyword =
getAttribute(child, "keyword", "", false);
String value = getAttribute(child, "value"); String value = getAttribute(child, "value");
String encoding = getAttribute(child, "encoding"); String language =
String language = getAttribute(child, "language"); getAttribute(child, "language", "", false);
String compression = String compression =
getAttribute(child, "compression"); getAttribute(child, "compression", "none", false);
if (isISOLatin(value)) { if (!isValidKeyword(keyword)) {
// Just ignore this node, PNG requires keywords
} else if (isISOLatin(value, true)) {
if (compression.equals("zip")) { if (compression.equals("zip")) {
// Use a zTXt node // Use a zTXt node
zTXt_keyword.add(keyword); zTXt_keyword.add(keyword);
zTXt_text.add(value); zTXt_text.add(value);
zTXt_compressionMethod.add(new Integer(0)); zTXt_compressionMethod.add(Integer.valueOf(0));
} else { } else {
// Use a tEXt node // Use a tEXt node
tEXt_keyword.add(keyword); tEXt_keyword.add(keyword);
...@@ -1998,14 +2033,14 @@ public class PNGMetadata extends IIOMetadata implements Cloneable { ...@@ -1998,14 +2033,14 @@ public class PNGMetadata extends IIOMetadata implements Cloneable {
sBIT_present = false; sBIT_present = false;
sPLT_present = false; sPLT_present = false;
sRGB_present = false; sRGB_present = false;
tEXt_keyword = new ArrayList(); tEXt_keyword = new ArrayList<String>();
tEXt_text = new ArrayList(); tEXt_text = new ArrayList<String>();
tIME_present = false; tIME_present = false;
tRNS_present = false; tRNS_present = false;
zTXt_keyword = new ArrayList(); zTXt_keyword = new ArrayList<String>();
zTXt_compressionMethod = new ArrayList(); zTXt_compressionMethod = new ArrayList<Integer>();
zTXt_text = new ArrayList(); zTXt_text = new ArrayList<String>();
unknownChunkType = new ArrayList(); unknownChunkType = new ArrayList<String>();
unknownChunkData = new ArrayList(); unknownChunkData = new ArrayList<byte[]>();
} }
} }
...@@ -94,6 +94,10 @@ public class StreamCloser { ...@@ -94,6 +94,10 @@ public class StreamCloser {
tgn != null; tgn != null;
tg = tgn, tgn = tg.getParent()); tg = tgn, tgn = tg.getParent());
streamCloser = new Thread(tg, streamCloserRunnable); streamCloser = new Thread(tg, streamCloserRunnable);
/* Set context class loader to null in order to avoid
* keeping a strong reference to an application classloader.
*/
streamCloser.setContextClassLoader(null);
Runtime.getRuntime().addShutdownHook(streamCloser); Runtime.getRuntime().addShutdownHook(streamCloser);
return null; return null;
} }
......
...@@ -279,20 +279,22 @@ class GTKIconFactory { ...@@ -279,20 +279,22 @@ class GTKIconFactory {
public void paintIcon(SynthContext context, Graphics g, int x, int y, public void paintIcon(SynthContext context, Graphics g, int x, int y,
int w, int h) { int w, int h) {
JToolBar toolbar = (JToolBar)context.getComponent(); if (context != null) {
Orientation orientation = JToolBar toolbar = (JToolBar)context.getComponent();
(toolbar.getOrientation() == JToolBar.HORIZONTAL ? Orientation orientation =
Orientation.HORIZONTAL : Orientation.VERTICAL); (toolbar.getOrientation() == JToolBar.HORIZONTAL ?
Orientation.HORIZONTAL : Orientation.VERTICAL);
if (style == null) {
style = SynthLookAndFeel.getStyleFactory().getStyle( if (style == null) {
context.getComponent(), GTKRegion.HANDLE_BOX); style = SynthLookAndFeel.getStyleFactory().getStyle(
} context.getComponent(), GTKRegion.HANDLE_BOX);
context = new SynthContext(toolbar, GTKRegion.HANDLE_BOX, }
style, SynthConstants.ENABLED); context = new SynthContext(toolbar, GTKRegion.HANDLE_BOX,
style, SynthConstants.ENABLED);
GTKPainter.INSTANCE.paintIcon(context, g, GTKPainter.INSTANCE.paintIcon(context, g,
getMethod(), x, y, w, h, orientation); getMethod(), x, y, w, h, orientation);
}
} }
public int getIconWidth(SynthContext context) { public int getIconWidth(SynthContext context) {
...@@ -336,12 +338,14 @@ class GTKIconFactory { ...@@ -336,12 +338,14 @@ class GTKIconFactory {
public void paintIcon(SynthContext context, Graphics g, int x, int y, public void paintIcon(SynthContext context, Graphics g, int x, int y,
int w, int h) { int w, int h) {
ArrowType arrowDir = ArrowType.RIGHT; if (context != null) {
if (!context.getComponent().getComponentOrientation().isLeftToRight()) { ArrowType arrowDir = ArrowType.RIGHT;
arrowDir = ArrowType.LEFT; if (!context.getComponent().getComponentOrientation().isLeftToRight()) {
arrowDir = ArrowType.LEFT;
}
GTKPainter.INSTANCE.paintIcon(context, g,
getMethod(), x, y, w, h, arrowDir);
} }
GTKPainter.INSTANCE.paintIcon(context, g,
getMethod(), x, y, w, h, arrowDir);
} }
} }
} }
...@@ -39,6 +39,8 @@ import java.io.File; ...@@ -39,6 +39,8 @@ import java.io.File;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
import java.io.IOException; import java.io.IOException;
import java.util.*; import java.util.*;
import java.security.AccessController;
import java.security.PrivilegedAction;
import sun.awt.shell.ShellFolder; import sun.awt.shell.ShellFolder;
import sun.awt.OSInfo; import sun.awt.OSInfo;
...@@ -1143,7 +1145,11 @@ public class WindowsFileChooserUI extends BasicFileChooserUI { ...@@ -1143,7 +1145,11 @@ public class WindowsFileChooserUI extends BasicFileChooserUI {
File[] baseFolders; File[] baseFolders;
if (useShellFolder) { if (useShellFolder) {
baseFolders = (File[])ShellFolder.get("fileChooserComboBoxFolders"); baseFolders = AccessController.doPrivileged(new PrivilegedAction<File[]>() {
public File[] run() {
return (File[]) ShellFolder.get("fileChooserComboBoxFolders");
}
});
} else { } else {
baseFolders = fsv.getRoots(); baseFolders = fsv.getRoots();
} }
......
/*
* Copyright 2007-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Sun designates this
* particular file as subject to the "Classpath" exception as provided
* by Sun in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
*/
package com.sun.nio.file;
import java.nio.file.CopyOption;
/**
* Defines <em>extended</em> copy options supported on some platforms
* by Sun's provider implementation.
*
* @since 1.7
*/
public enum ExtendedCopyOption implements CopyOption {
/**
* The copy may be interrupted by the {@link Thread#interrupt interrupt}
* method.
*/
INTERRUPTIBLE,
}
/*
* Copyright 2007-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Sun designates this
* particular file as subject to the "Classpath" exception as provided
* by Sun in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
*/
package com.sun.nio.file;
import java.nio.file.OpenOption;
/**
* Defines <em>extended</em> open options supported on some platforms
* by Sun's provider implementation.
*
* @since 1.7
*/
public enum ExtendedOpenOption implements OpenOption {
/**
* Prevent operations on the file that request read access.
*/
NOSHARE_READ,
/**
* Prevent operations on the file that request write access.
*/
NOSHARE_WRITE,
/**
* Prevent operations on the file that request delete access.
*/
NOSHARE_DELETE;
}
/*
* Copyright 2007-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Sun designates this
* particular file as subject to the "Classpath" exception as provided
* by Sun in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
*/
package com.sun.nio.file;
import java.nio.file.WatchEvent.Modifier;
/**
* Defines <em>extended</em> watch event modifiers supported on some platforms
* by Sun's provider implementation.
*
* @since 1.7
*/
public enum ExtendedWatchEventModifier implements Modifier {
/**
* Register a file tree instead of a single directory.
*/
FILE_TREE,
}
/*
* Copyright 2007-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Sun designates this
* particular file as subject to the "Classpath" exception as provided
* by Sun in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
*/
package com.sun.nio.file;
import java.nio.file.WatchEvent.Modifier;
/**
* Defines the <em>sensitivity levels</em> when registering objects with a
* watch service implementation that polls the file system.
*
* @since 1.7
*/
public enum SensitivityWatchEventModifier implements Modifier {
/**
* High sensitivity.
*/
HIGH(2),
/**
* Medium sensitivity.
*/
MEDIUM(10),
/**
* Low sensitivity.
*/
LOW(30);
/**
* Returns the sensitivity in seconds.
*/
public int sensitivityValueInSeconds() {
return sensitivity;
}
private final int sensitivity;
private SensitivityWatchEventModifier(int sensitivity) {
this.sensitivity = sensitivity;
}
}
...@@ -68,7 +68,7 @@ a:visited,a:visited code{color:#917E9C} ...@@ -68,7 +68,7 @@ a:visited,a:visited code{color:#917E9C}
<table width="708" border="0" cellspacing="0" cellpadding="3"> <table width="708" border="0" cellspacing="0" cellpadding="3">
<tr valign="top"> <tr valign="top">
<td width="126" height="35"> <td width="126" height="35">
<form name="form1" method="post" action="@@REGISTRATION_URL@@" enctype="text/xml"> <form name="form1" method="post" action="@@REGISTRATION_URL@@">
<input type="hidden" name="servicetag_payload" value="@@REGISTRATION_PAYLOAD@@"> <input type="hidden" name="servicetag_payload" value="@@REGISTRATION_PAYLOAD@@">
<input type="submit" name="Submit"border="0" class="buttonblue" onmouseover="this.style.color='#fbe249';" onmouseout="this.style.color='#FFF';" value="Register My JDK"> <input type="submit" name="Submit"border="0" class="buttonblue" onmouseover="this.style.color='#fbe249';" onmouseout="this.style.color='#FFF';" value="Register My JDK">
</form></td> </form></td>
......
...@@ -62,7 +62,7 @@ a:visited,a:visited code{color:#917E9C} ...@@ -62,7 +62,7 @@ a:visited,a:visited code{color:#917E9C}
<p class="style1">必要になるのは、Sun 開発者向けネットワークアカウントまたはその他の Sun オンラインアカウントだけです。 まだアカウントがない場合は、アカウントの作成が求められます。 </p> <p class="style1">必要になるのは、Sun 開発者向けネットワークアカウントまたはその他の Sun オンラインアカウントだけです。 まだアカウントがない場合は、アカウントの作成が求められます。 </p>
<table width="708" border="0" cellspacing="0" cellpadding="3"> <table width="708" border="0" cellspacing="0" cellpadding="3">
<tr valign="top"> <tr valign="top">
<td width="126" height="35"><form name="form1" method="post" action="@@REGISTRATION_URL@@" enctype="text/xml"> <td width="126" height="35"><form name="form1" method="post" action="@@REGISTRATION_URL@@">
<input type="hidden" name="servicetag_payload" value="@@REGISTRATION_PAYLOAD@@"> <input type="hidden" name="servicetag_payload" value="@@REGISTRATION_PAYLOAD@@">
<input type="submit" name="Submit"border="0" class="buttonblue" onmouseover="this.style.color='#fbe249';" onmouseout="this.style.color='#FFF';" value="JDK 製品登録"> <input type="submit" name="Submit"border="0" class="buttonblue" onmouseover="this.style.color='#fbe249';" onmouseout="this.style.color='#FFF';" value="JDK 製品登録">
</form></td> </form></td>
......
...@@ -63,7 +63,7 @@ a:visited,a:visited code{color:#917E9C} ...@@ -63,7 +63,7 @@ a:visited,a:visited code{color:#917E9C}
<p class="style1">您需要具有 Sun 开发者网络或其他 Sun 联机帐户。如果您没有,系统将提示您创建一个。 </p> <p class="style1">您需要具有 Sun 开发者网络或其他 Sun 联机帐户。如果您没有,系统将提示您创建一个。 </p>
<table width="708" border="0" cellspacing="0" cellpadding="3"> <table width="708" border="0" cellspacing="0" cellpadding="3">
<tr valign="top"> <tr valign="top">
<td width="126" height="35"><form name="form1" method="post" action="@@REGISTRATION_URL@@" enctype="text/xml"> <td width="126" height="35"><form name="form1" method="post" action="@@REGISTRATION_URL@@">
<input type="hidden" name="servicetag_payload" value="@@REGISTRATION_PAYLOAD@@"> <input type="hidden" name="servicetag_payload" value="@@REGISTRATION_PAYLOAD@@">
<input type="submit" name="Submit"border="0" class="buttonblue" onmouseover="this.style.color='#fbe249';" onmouseout="this.style.color='#FFF';" value="注册我的 JDK"> <input type="submit" name="Submit"border="0" class="buttonblue" onmouseover="this.style.color='#fbe249';" onmouseout="this.style.color='#FFF';" value="注册我的 JDK">
</form></td> </form></td>
......
...@@ -356,6 +356,9 @@ public abstract class GraphicsEnvironment { ...@@ -356,6 +356,9 @@ public abstract class GraphicsEnvironment {
* @since 1.5 * @since 1.5
*/ */
public void preferLocaleFonts() { public void preferLocaleFonts() {
if (!(this instanceof SunGraphicsEnvironment)) {
return;
}
sun.font.FontManager.preferLocaleFonts(); sun.font.FontManager.preferLocaleFonts();
} }
...@@ -376,6 +379,9 @@ public abstract class GraphicsEnvironment { ...@@ -376,6 +379,9 @@ public abstract class GraphicsEnvironment {
* @since 1.5 * @since 1.5
*/ */
public void preferProportionalFonts() { public void preferProportionalFonts() {
if (!(this instanceof SunGraphicsEnvironment)) {
return;
}
sun.font.FontManager.preferProportionalFonts(); sun.font.FontManager.preferProportionalFonts();
} }
......
...@@ -737,7 +737,7 @@ public class ICC_Profile implements Serializable { ...@@ -737,7 +737,7 @@ public class ICC_Profile implements Serializable {
ICC_Profile(ProfileDeferralInfo pdi) { ICC_Profile(ProfileDeferralInfo pdi) {
this.deferralInfo = pdi; this.deferralInfo = pdi;
this.profileActivator = new ProfileActivator() { this.profileActivator = new ProfileActivator() {
public void activate() { public void activate() throws ProfileDataException {
activateDeferredProfile(); activateDeferredProfile();
} }
}; };
...@@ -830,20 +830,16 @@ public class ICC_Profile implements Serializable { ...@@ -830,20 +830,16 @@ public class ICC_Profile implements Serializable {
case ColorSpace.CS_sRGB: case ColorSpace.CS_sRGB:
synchronized(ICC_Profile.class) { synchronized(ICC_Profile.class) {
if (sRGBprofile == null) { if (sRGBprofile == null) {
try { /*
/* * Deferral is only used for standard profiles.
* Deferral is only used for standard profiles. * Enabling the appropriate access privileges is handled
* Enabling the appropriate access privileges is handled * at a lower level.
* at a lower level. */
*/ ProfileDeferralInfo pInfo =
sRGBprofile = getDeferredInstance( new ProfileDeferralInfo("sRGB.pf",
new ProfileDeferralInfo("sRGB.pf", ColorSpace.TYPE_RGB, 3,
ColorSpace.TYPE_RGB, CLASS_DISPLAY);
3, CLASS_DISPLAY)); sRGBprofile = getDeferredInstance(pInfo);
} catch (IOException e) {
throw new IllegalArgumentException(
"Can't load standard profile: sRGB.pf");
}
} }
thisProfile = sRGBprofile; thisProfile = sRGBprofile;
} }
...@@ -853,7 +849,11 @@ public class ICC_Profile implements Serializable { ...@@ -853,7 +849,11 @@ public class ICC_Profile implements Serializable {
case ColorSpace.CS_CIEXYZ: case ColorSpace.CS_CIEXYZ:
synchronized(ICC_Profile.class) { synchronized(ICC_Profile.class) {
if (XYZprofile == null) { if (XYZprofile == null) {
XYZprofile = getStandardProfile("CIEXYZ.pf"); ProfileDeferralInfo pInfo =
new ProfileDeferralInfo("CIEXYZ.pf",
ColorSpace.TYPE_XYZ, 3,
CLASS_DISPLAY);
XYZprofile = getDeferredInstance(pInfo);
} }
thisProfile = XYZprofile; thisProfile = XYZprofile;
} }
...@@ -863,7 +863,11 @@ public class ICC_Profile implements Serializable { ...@@ -863,7 +863,11 @@ public class ICC_Profile implements Serializable {
case ColorSpace.CS_PYCC: case ColorSpace.CS_PYCC:
synchronized(ICC_Profile.class) { synchronized(ICC_Profile.class) {
if (PYCCprofile == null) { if (PYCCprofile == null) {
PYCCprofile = getStandardProfile("PYCC.pf"); ProfileDeferralInfo pInfo =
new ProfileDeferralInfo("PYCC.pf",
ColorSpace.TYPE_3CLR, 3,
CLASS_DISPLAY);
PYCCprofile = getDeferredInstance(pInfo);
} }
thisProfile = PYCCprofile; thisProfile = PYCCprofile;
} }
...@@ -873,7 +877,11 @@ public class ICC_Profile implements Serializable { ...@@ -873,7 +877,11 @@ public class ICC_Profile implements Serializable {
case ColorSpace.CS_GRAY: case ColorSpace.CS_GRAY:
synchronized(ICC_Profile.class) { synchronized(ICC_Profile.class) {
if (GRAYprofile == null) { if (GRAYprofile == null) {
GRAYprofile = getStandardProfile("GRAY.pf"); ProfileDeferralInfo pInfo =
new ProfileDeferralInfo("GRAY.pf",
ColorSpace.TYPE_GRAY, 1,
CLASS_DISPLAY);
GRAYprofile = getDeferredInstance(pInfo);
} }
thisProfile = GRAYprofile; thisProfile = GRAYprofile;
} }
...@@ -883,7 +891,11 @@ public class ICC_Profile implements Serializable { ...@@ -883,7 +891,11 @@ public class ICC_Profile implements Serializable {
case ColorSpace.CS_LINEAR_RGB: case ColorSpace.CS_LINEAR_RGB:
synchronized(ICC_Profile.class) { synchronized(ICC_Profile.class) {
if (LINEAR_RGBprofile == null) { if (LINEAR_RGBprofile == null) {
LINEAR_RGBprofile = getStandardProfile("LINEAR_RGB.pf"); ProfileDeferralInfo pInfo =
new ProfileDeferralInfo("LINEAR_RGB.pf",
ColorSpace.TYPE_RGB, 3,
CLASS_DISPLAY);
LINEAR_RGBprofile = getDeferredInstance(pInfo);
} }
thisProfile = LINEAR_RGBprofile; thisProfile = LINEAR_RGBprofile;
} }
...@@ -1047,9 +1059,7 @@ public class ICC_Profile implements Serializable { ...@@ -1047,9 +1059,7 @@ public class ICC_Profile implements Serializable {
* code will take care of access privileges. * code will take care of access privileges.
* @see activateDeferredProfile() * @see activateDeferredProfile()
*/ */
static ICC_Profile getDeferredInstance(ProfileDeferralInfo pdi) static ICC_Profile getDeferredInstance(ProfileDeferralInfo pdi) {
throws IOException {
if (!ProfileDeferralMgr.deferring) { if (!ProfileDeferralMgr.deferring) {
return getStandardProfile(pdi.filename); return getStandardProfile(pdi.filename);
} }
...@@ -1063,33 +1073,37 @@ public class ICC_Profile implements Serializable { ...@@ -1063,33 +1073,37 @@ public class ICC_Profile implements Serializable {
} }
void activateDeferredProfile() { void activateDeferredProfile() throws ProfileDataException {
byte profileData[]; byte profileData[];
FileInputStream fis; FileInputStream fis;
String fileName = deferralInfo.filename; String fileName = deferralInfo.filename;
profileActivator = null; profileActivator = null;
deferralInfo = null; deferralInfo = null;
if ((fis = openProfile(fileName)) == null) { if ((fis = openProfile(fileName)) == null) {
throw new IllegalArgumentException("Cannot open file " + fileName); throw new ProfileDataException("Cannot open file " + fileName);
} }
try { try {
profileData = getProfileDataFromStream(fis); profileData = getProfileDataFromStream(fis);
fis.close(); /* close the file */ fis.close(); /* close the file */
} }
catch (IOException e) { catch (IOException e) {
throw new IllegalArgumentException("Invalid ICC Profile Data" + ProfileDataException pde = new
fileName); ProfileDataException("Invalid ICC Profile Data" + fileName);
pde.initCause(e);
throw pde;
} }
if (profileData == null) { if (profileData == null) {
throw new IllegalArgumentException("Invalid ICC Profile Data" + throw new ProfileDataException("Invalid ICC Profile Data" +
fileName); fileName);
} }
try { try {
ID = CMSManager.getModule().loadProfile(profileData); ID = CMSManager.getModule().loadProfile(profileData);
} catch (CMMException c) { } catch (CMMException c) {
throw new IllegalArgumentException("Invalid ICC Profile Data" + ProfileDataException pde = new
fileName); ProfileDataException("Invalid ICC Profile Data" + fileName);
pde.initCause(c);
throw pde;
} }
} }
......
/* /*
* Copyright 1996-2006 Sun Microsystems, Inc. All Rights Reserved. * Copyright 1996-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -27,26 +27,41 @@ package java.beans; ...@@ -27,26 +27,41 @@ package java.beans;
import com.sun.beans.finder.ClassFinder; import com.sun.beans.finder.ClassFinder;
import java.applet.*; import java.applet.Applet;
import java.applet.AppletContext;
import java.applet.AppletStub;
import java.applet.AudioClip;
import java.awt.*; import java.awt.GraphicsEnvironment;
import java.awt.Image;
import java.beans.AppletInitializer;
import java.beans.beancontext.BeanContext; import java.beans.beancontext.BeanContext;
import java.io.*; import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Constructor; import java.io.ObjectInputStream;
import java.io.ObjectStreamClass;
import java.io.StreamCorruptedException;
import java.net.URL; import java.net.URL;
import java.lang.reflect.Array;
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.Vector;
import sun.awt.AppContext;
/** /**
* This class provides some general purpose beans control methods. * This class provides some general purpose beans control methods.
*/ */
public class Beans { public class Beans {
private static final Object DESIGN_TIME = new Object();
private static final Object GUI_AVAILABLE = new Object();
/** /**
* <p> * <p>
...@@ -59,12 +74,12 @@ public class Beans { ...@@ -59,12 +74,12 @@ public class Beans {
* @param beanName the name of the bean within the class-loader. * @param beanName the name of the bean within the class-loader.
* For example "sun.beanbox.foobah" * For example "sun.beanbox.foobah"
* *
* @exception java.lang.ClassNotFoundException if the class of a serialized * @exception ClassNotFoundException if the class of a serialized
* object could not be found. * object could not be found.
* @exception java.io.IOException if an I/O error occurs. * @exception IOException if an I/O error occurs.
*/ */
public static Object instantiate(ClassLoader cls, String beanName) throws java.io.IOException, ClassNotFoundException { public static Object instantiate(ClassLoader cls, String beanName) throws IOException, ClassNotFoundException {
return Beans.instantiate(cls, beanName, null, null); return Beans.instantiate(cls, beanName, null, null);
} }
...@@ -80,12 +95,12 @@ public class Beans { ...@@ -80,12 +95,12 @@ public class Beans {
* For example "sun.beanbox.foobah" * For example "sun.beanbox.foobah"
* @param beanContext The BeanContext in which to nest the new bean * @param beanContext The BeanContext in which to nest the new bean
* *
* @exception java.lang.ClassNotFoundException if the class of a serialized * @exception ClassNotFoundException if the class of a serialized
* object could not be found. * object could not be found.
* @exception java.io.IOException if an I/O error occurs. * @exception IOException if an I/O error occurs.
*/ */
public static Object instantiate(ClassLoader cls, String beanName, BeanContext beanContext) throws java.io.IOException, ClassNotFoundException { public static Object instantiate(ClassLoader cls, String beanName, BeanContext beanContext) throws IOException, ClassNotFoundException {
return Beans.instantiate(cls, beanName, beanContext, null); return Beans.instantiate(cls, beanName, beanContext, null);
} }
...@@ -135,19 +150,19 @@ public class Beans { ...@@ -135,19 +150,19 @@ public class Beans {
* @param beanContext The BeanContext in which to nest the new bean * @param beanContext The BeanContext in which to nest the new bean
* @param initializer The AppletInitializer for the new bean * @param initializer The AppletInitializer for the new bean
* *
* @exception java.lang.ClassNotFoundException if the class of a serialized * @exception ClassNotFoundException if the class of a serialized
* object could not be found. * object could not be found.
* @exception java.io.IOException if an I/O error occurs. * @exception IOException if an I/O error occurs.
*/ */
public static Object instantiate(ClassLoader cls, String beanName, BeanContext beanContext, AppletInitializer initializer) public static Object instantiate(ClassLoader cls, String beanName, BeanContext beanContext, AppletInitializer initializer)
throws java.io.IOException, ClassNotFoundException { throws IOException, ClassNotFoundException {
java.io.InputStream ins; InputStream ins;
java.io.ObjectInputStream oins = null; ObjectInputStream oins = null;
Object result = null; Object result = null;
boolean serialized = false; boolean serialized = false;
java.io.IOException serex = null; IOException serex = null;
// If the given classloader is null, we check if an // If the given classloader is null, we check if an
// system classloader is available and (if so) // system classloader is available and (if so)
...@@ -166,8 +181,8 @@ public class Beans { ...@@ -166,8 +181,8 @@ public class Beans {
// Try to find a serialized object with this name // Try to find a serialized object with this name
final String serName = beanName.replace('.','/').concat(".ser"); final String serName = beanName.replace('.','/').concat(".ser");
final ClassLoader loader = cls; final ClassLoader loader = cls;
ins = (InputStream)java.security.AccessController.doPrivileged ins = (InputStream)AccessController.doPrivileged
(new java.security.PrivilegedAction() { (new PrivilegedAction() {
public Object run() { public Object run() {
if (loader == null) if (loader == null)
return ClassLoader.getSystemResourceAsStream(serName); return ClassLoader.getSystemResourceAsStream(serName);
...@@ -185,7 +200,7 @@ public class Beans { ...@@ -185,7 +200,7 @@ public class Beans {
result = oins.readObject(); result = oins.readObject();
serialized = true; serialized = true;
oins.close(); oins.close();
} catch (java.io.IOException ex) { } catch (IOException ex) {
ins.close(); ins.close();
// Drop through and try opening the class. But remember // Drop through and try opening the class. But remember
// the exception in case we can't find the class either. // the exception in case we can't find the class either.
...@@ -264,8 +279,8 @@ public class Beans { ...@@ -264,8 +279,8 @@ public class Beans {
final ClassLoader cloader = cls; final ClassLoader cloader = cls;
objectUrl = (URL) objectUrl = (URL)
java.security.AccessController.doPrivileged AccessController.doPrivileged
(new java.security.PrivilegedAction() { (new PrivilegedAction() {
public Object run() { public Object run() {
if (cloader == null) if (cloader == null)
return ClassLoader.getSystemResource return ClassLoader.getSystemResource
...@@ -377,10 +392,11 @@ public class Beans { ...@@ -377,10 +392,11 @@ public class Beans {
* @return True if we are running in an application construction * @return True if we are running in an application construction
* environment. * environment.
* *
* @see java.beans.DesignMode * @see DesignMode
*/ */
public static boolean isDesignTime() { public static boolean isDesignTime() {
return designTime; Object value = AppContext.getAppContext().get(DESIGN_TIME);
return (value instanceof Boolean) && (Boolean) value;
} }
/** /**
...@@ -393,11 +409,12 @@ public class Beans { ...@@ -393,11 +409,12 @@ public class Beans {
* false in a server environment or if an application is * false in a server environment or if an application is
* running as part of a batch job. * running as part of a batch job.
* *
* @see java.beans.Visibility * @see Visibility
* *
*/ */
public static boolean isGuiAvailable() { public static boolean isGuiAvailable() {
return guiAvailable; Object value = AppContext.getAppContext().get(GUI_AVAILABLE);
return (value instanceof Boolean) ? (Boolean) value : !GraphicsEnvironment.isHeadless();
} }
/** /**
...@@ -423,7 +440,7 @@ public class Beans { ...@@ -423,7 +440,7 @@ public class Beans {
if (sm != null) { if (sm != null) {
sm.checkPropertiesAccess(); sm.checkPropertiesAccess();
} }
designTime = isDesignTime; AppContext.getAppContext().put(DESIGN_TIME, Boolean.valueOf(isDesignTime));
} }
/** /**
...@@ -449,14 +466,7 @@ public class Beans { ...@@ -449,14 +466,7 @@ public class Beans {
if (sm != null) { if (sm != null) {
sm.checkPropertiesAccess(); sm.checkPropertiesAccess();
} }
guiAvailable = isGuiAvailable; AppContext.getAppContext().put(GUI_AVAILABLE, Boolean.valueOf(isGuiAvailable));
}
private static boolean designTime;
private static boolean guiAvailable;
static {
guiAvailable = !GraphicsEnvironment.isHeadless();
} }
} }
...@@ -501,7 +511,7 @@ class ObjectInputStreamWithLoader extends ObjectInputStream ...@@ -501,7 +511,7 @@ class ObjectInputStreamWithLoader extends ObjectInputStream
class BeansAppletContext implements AppletContext { class BeansAppletContext implements AppletContext {
Applet target; Applet target;
java.util.Hashtable imageCache = new java.util.Hashtable(); Hashtable imageCache = new Hashtable();
BeansAppletContext(Applet target) { BeansAppletContext(Applet target) {
this.target = target; this.target = target;
...@@ -546,8 +556,8 @@ class BeansAppletContext implements AppletContext { ...@@ -546,8 +556,8 @@ class BeansAppletContext implements AppletContext {
return null; return null;
} }
public java.util.Enumeration getApplets() { public Enumeration getApplets() {
java.util.Vector applets = new java.util.Vector(); Vector applets = new Vector();
applets.addElement(target); applets.addElement(target);
return applets.elements(); return applets.elements();
} }
...@@ -573,7 +583,7 @@ class BeansAppletContext implements AppletContext { ...@@ -573,7 +583,7 @@ class BeansAppletContext implements AppletContext {
return null; return null;
} }
public java.util.Iterator getStreamKeys(){ public Iterator getStreamKeys(){
// We do nothing. // We do nothing.
return null; return null;
} }
......
/* /*
* Copyright 2003 Sun Microsystems, Inc. All Rights Reserved. * Copyright 2003-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -41,6 +41,7 @@ package java.beans; ...@@ -41,6 +41,7 @@ package java.beans;
* @author Mark Davidson * @author Mark Davidson
*/ */
public class IndexedPropertyChangeEvent extends PropertyChangeEvent { public class IndexedPropertyChangeEvent extends PropertyChangeEvent {
private static final long serialVersionUID = -320227448495806870L;
private int index; private int index;
......
/* /*
* Copyright 1996-1998 Sun Microsystems, Inc. All Rights Reserved. * Copyright 1996-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -36,6 +36,7 @@ package java.beans; ...@@ -36,6 +36,7 @@ package java.beans;
public public
class IntrospectionException extends Exception { class IntrospectionException extends Exception {
private static final long serialVersionUID = -3728150539969542619L;
/** /**
* Constructs an <code>IntrospectionException</code> with a * Constructs an <code>IntrospectionException</code> with a
......
/* /*
* Copyright 1996-2006 Sun Microsystems, Inc. All Rights Reserved. * Copyright 1996-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -44,6 +44,7 @@ package java.beans; ...@@ -44,6 +44,7 @@ package java.beans;
*/ */
public class PropertyChangeEvent extends java.util.EventObject { public class PropertyChangeEvent extends java.util.EventObject {
private static final long serialVersionUID = 7042693688939648123L;
/** /**
* Constructs a new <code>PropertyChangeEvent</code>. * Constructs a new <code>PropertyChangeEvent</code>.
......
/* /*
* Copyright 1996-1998 Sun Microsystems, Inc. All Rights Reserved. * Copyright 1996-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -33,7 +33,7 @@ package java.beans; ...@@ -33,7 +33,7 @@ package java.beans;
public public
class PropertyVetoException extends Exception { class PropertyVetoException extends Exception {
private static final long serialVersionUID = 129596057694162164L;
/** /**
* Constructs a <code>PropertyVetoException</code> with a * Constructs a <code>PropertyVetoException</code> with a
......
/* /*
* Copyright 1997-2003 Sun Microsystems, Inc. All Rights Reserved. * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -48,6 +48,7 @@ import java.beans.beancontext.BeanContext; ...@@ -48,6 +48,7 @@ import java.beans.beancontext.BeanContext;
*/ */
public abstract class BeanContextEvent extends EventObject { public abstract class BeanContextEvent extends EventObject {
private static final long serialVersionUID = 7267998073569045052L;
/** /**
* Contruct a BeanContextEvent * Contruct a BeanContextEvent
......
/* /*
* Copyright 1997-2004 Sun Microsystems, Inc. All Rights Reserved. * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -55,6 +55,7 @@ import java.util.Iterator; ...@@ -55,6 +55,7 @@ import java.util.Iterator;
* @see java.beans.beancontext.BeanContextMembershipListener * @see java.beans.beancontext.BeanContextMembershipListener
*/ */
public class BeanContextMembershipEvent extends BeanContextEvent { public class BeanContextMembershipEvent extends BeanContextEvent {
private static final long serialVersionUID = 3499346510334590959L;
/** /**
* Contruct a BeanContextMembershipEvent * Contruct a BeanContextMembershipEvent
......
/* /*
* Copyright 1998-2004 Sun Microsystems, Inc. All Rights Reserved. * Copyright 1998-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -40,6 +40,7 @@ import java.util.Iterator; ...@@ -40,6 +40,7 @@ import java.util.Iterator;
*/ */
public class BeanContextServiceAvailableEvent extends BeanContextEvent { public class BeanContextServiceAvailableEvent extends BeanContextEvent {
private static final long serialVersionUID = -5333985775656400778L;
/** /**
* Construct a <code>BeanContextAvailableServiceEvent</code>. * Construct a <code>BeanContextAvailableServiceEvent</code>.
......
/* /*
* Copyright 1998-2004 Sun Microsystems, Inc. All Rights Reserved. * Copyright 1998-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -37,6 +37,7 @@ import java.beans.beancontext.BeanContextServices; ...@@ -37,6 +37,7 @@ import java.beans.beancontext.BeanContextServices;
* </p> * </p>
*/ */
public class BeanContextServiceRevokedEvent extends BeanContextEvent { public class BeanContextServiceRevokedEvent extends BeanContextEvent {
private static final long serialVersionUID = -1295543154724961754L;
/** /**
* Construct a <code>BeanContextServiceEvent</code>. * Construct a <code>BeanContextServiceEvent</code>.
......
/* /*
* Copyright 1998-2006 Sun Microsystems, Inc. All Rights Reserved. * Copyright 1998-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -60,6 +60,7 @@ import java.util.Locale; ...@@ -60,6 +60,7 @@ import java.util.Locale;
public class BeanContextServicesSupport extends BeanContextSupport public class BeanContextServicesSupport extends BeanContextSupport
implements BeanContextServices { implements BeanContextServices {
private static final long serialVersionUID = -8494482757288719206L;
/** /**
* <p> * <p>
...@@ -594,6 +595,7 @@ public class BeanContextServicesSupport extends BeanContextSupport ...@@ -594,6 +595,7 @@ public class BeanContextServicesSupport extends BeanContextSupport
*/ */
protected static class BCSSServiceProvider implements Serializable { protected static class BCSSServiceProvider implements Serializable {
private static final long serialVersionUID = 861278251667444782L;
BCSSServiceProvider(Class sc, BeanContextServiceProvider bcsp) { BCSSServiceProvider(Class sc, BeanContextServiceProvider bcsp) {
super(); super();
......
此差异已折叠。
...@@ -74,6 +74,7 @@ final class ConditionalSpecialCasing { ...@@ -74,6 +74,7 @@ final class ConditionalSpecialCasing {
new Entry(0x00CC, new char[]{0x0069, 0x0307, 0x0300}, new char[]{0x00CC}, "lt", 0), // # LATIN CAPITAL LETTER I WITH GRAVE new Entry(0x00CC, new char[]{0x0069, 0x0307, 0x0300}, new char[]{0x00CC}, "lt", 0), // # LATIN CAPITAL LETTER I WITH GRAVE
new Entry(0x00CD, new char[]{0x0069, 0x0307, 0x0301}, new char[]{0x00CD}, "lt", 0), // # LATIN CAPITAL LETTER I WITH ACUTE new Entry(0x00CD, new char[]{0x0069, 0x0307, 0x0301}, new char[]{0x00CD}, "lt", 0), // # LATIN CAPITAL LETTER I WITH ACUTE
new Entry(0x0128, new char[]{0x0069, 0x0307, 0x0303}, new char[]{0x0128}, "lt", 0), // # LATIN CAPITAL LETTER I WITH TILDE new Entry(0x0128, new char[]{0x0069, 0x0307, 0x0303}, new char[]{0x0128}, "lt", 0), // # LATIN CAPITAL LETTER I WITH TILDE
new Entry(0x0130, new char[]{0x0069, 0x0307}, new char[]{0x0130}, "lt", 0), // # LATIN CAPITAL LETTER I WITH DOT ABOVE
//# ================================================================================ //# ================================================================================
//# Turkish and Azeri //# Turkish and Azeri
...@@ -84,7 +85,10 @@ final class ConditionalSpecialCasing { ...@@ -84,7 +85,10 @@ final class ConditionalSpecialCasing {
new Entry(0x0049, new char[]{0x0131}, new char[]{0x0049}, "tr", NOT_BEFORE_DOT), // # LATIN CAPITAL LETTER I new Entry(0x0049, new char[]{0x0131}, new char[]{0x0049}, "tr", NOT_BEFORE_DOT), // # LATIN CAPITAL LETTER I
new Entry(0x0049, new char[]{0x0131}, new char[]{0x0049}, "az", NOT_BEFORE_DOT), // # LATIN CAPITAL LETTER I new Entry(0x0049, new char[]{0x0131}, new char[]{0x0049}, "az", NOT_BEFORE_DOT), // # LATIN CAPITAL LETTER I
new Entry(0x0069, new char[]{0x0069}, new char[]{0x0130}, "tr", 0), // # LATIN SMALL LETTER I new Entry(0x0069, new char[]{0x0069}, new char[]{0x0130}, "tr", 0), // # LATIN SMALL LETTER I
new Entry(0x0069, new char[]{0x0069}, new char[]{0x0130}, "az", 0) // # LATIN SMALL LETTER I new Entry(0x0069, new char[]{0x0069}, new char[]{0x0130}, "az", 0), // # LATIN SMALL LETTER I
//# ================================================================================
//# Other
new Entry(0x0130, new char[]{0x0069, 0x0307}, new char[]{0x0130}, "en", 0), // # LATIN CAPITALLETTER I WITH DOT ABOVE
}; };
// A hash table that contains the above entries // A hash table that contains the above entries
......
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册