7178670: runtime/7158800/BadUtf8.java fails in SymbolTable::rehash_table
Summary: Cannot delete _buckets and HashtableEntries in shared space (CDS)
Reviewed-by: acorn, kvn, dlong, dcubed, kamg
#
# Copyright (c) 2011, 2012, Oracle and/or its affiliates. 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. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
include $(SPEC)
include MakeBase.gmk
include JavaCompilation.gmk
include Setup.gmk
default: $(IMAGES_OUTPUTDIR)/_the.images
include Tools.gmk
JARS:=
##########################################################################################
JCONSOLE_JAR_DEPS := \
$(shell $(FIND) $(JDK_OUTPUTDIR)/newclasses/sun/tools/jconsole/ -name "_the.package") \
$(shell $(FIND) $(JDK_OUTPUTDIR)/newclasses/com/sun/tools/jconsole/ -name "_the.package")
$(eval $(call SetupArchive,BUILD_JCONSOLE_JAR,$(JCONSOLE_JAR_DEPS),\
SRCS:=$(JDK_OUTPUTDIR)/newclasses,\
SUFFIXES:=.class .gif .png,\
INCLUDES:=sun/tools/jconsole com/sun/tools/jconsole,\
JARMAIN:=sun.tools.jconsole.JConsole,\
JAR:=$(JDK_OUTPUTDIR)/lib/jconsole.jar,\
SKIP_METAINF:=true))
JARS+=$(JDK_OUTPUTDIR)/lib/jconsole.jar
##########################################################################################
CHARSETS_JAR_DEPS :=
$(eval $(call SetupArchive,BUILD_CHARSETS_JAR,$(CHARSETS_JAR_DEPS),\
SRCS:=$(JDK_OUTPUTDIR)/newclasses, \
SUFFIXES:=.class .dat,\
INCLUDES:=sun/nio/cs/ext,\
EXTRA_FILES := sun/awt/HKSCS.class \
sun/awt/motif/X11GBK.class \
'sun/awt/motif/X11GB2312$$$$Decoder.class' \
sun/awt/motif/X11GB2312.class \
'sun/awt/motif/X11KSC5601$$$$Decoder.class' \
'sun/awt/motif/X11KSC5601$$$$Encoder.class' \
'sun/awt/motif/X11GB2312$$$$Encoder.class' \
'sun/awt/motif/X11GBK$$$$Encoder.class' \
sun/awt/motif/X11KSC5601.class \
META-INF/services/java.nio.charset.spi.CharsetProvider, \
JAR:=$(JDK_OUTPUTDIR)/lib/charsets.jar, \
JARMAIN := NONE, \
SKIP_METAINF := true))
JARS+=$(JDK_OUTPUTDIR)/lib/charsets.jar
##########################################################################################
SUNPKCS11_JAR_DST := $(JDK_OUTPUTDIR)/lib/ext/sunpkcs11.jar
ifndef OPENJDK
SUNPKCS11_JAR_SRC := $(JDK_TOPDIR)/make/closed/tools/crypto/pkcs11/sunpkcs11.jar
$(SUNPKCS11_JAR_DST) : $(SUNPKCS11_JAR_SRC)
@$(ECHO) "\n>>>Installing prebuilt SunPKCS11 provider..."
$(RM) $@
$(CP) $< $@
else
$(eval $(call SetupArchive,BUILD_SUNPKCS11_JAR,$(SUNPKCS11_JAR_DEPS),\
SRCS:=$(JDK_OUTPUTDIR)/newclasses, \
SUFFIXES:=.class,\
INCLUDES:=sun/security/pkcs11,\
JAR:=$(SUNPKCS11_JAR_DST), \
JARMAIN := NONE, \
SKIP_METAINF := true))
endif
JARS += $(SUNPKCS11_JAR_DST)
##########################################################################################
SUNEC_JAR_DST := $(JDK_OUTPUTDIR)/lib/ext/sunec.jar
ifndef OPENJDK
SUNEC_JAR_SRC := $(JDK_TOPDIR)/make/closed/tools/crypto/ec/sunec.jar
$(SUNEC_JAR_DST) : $(SUNEC_JAR_SRC)
@$(ECHO) "\n>>>Installing prebuilt SunEC provider..."
$(RM) $@
$(CP) $< $@
else
$(eval $(call SetupArchive,BUILD_SUNEC_JAR,$(SUNEC_JAR_DEPS),\
SRCS:=$(JDK_OUTPUTDIR)/newclasses, \
SUFFIXES:=.class,\
INCLUDES:=sun/security/ec,\
EXCLUDE_FILES := \
sun/security/ec/ECKeyFactory.class \
sun/security/ec/ECParameters.class \
sun/security/ec/ECPrivateKeyImpl.class \
sun/security/ec/ECPublicKeyImpl.class \
sun/security/ec/NamedCurve.class \
'sun/security/ec/ECKeyFactory$$$$1.class' \
'sun/security/ec/ECKeyFactory$$$$2.class' ,\
JAR:=$(SUNEC_JAR_DST), \
JARMAIN := NONE, \
SKIP_METAINF := true))
endif
JARS += $(SUNEC_JAR_DST)
##########################################################################################
# TODO: deps?
$(eval $(call SetupArchive,BUILD_SWINGBEANS_JAR,$(SWINGBEANS_JAR_DEPS),\
SRCS:=$(JDK_OUTPUTDIR)/newclasses,\
SUFFIXES:=BeanInfo.class .gif,\
INCLUDES:=javax/swing sun/swing,\
EXCLUDES:=javax/swing/plaf,\
EXTRA_FILES:=javax/swing/SwingBeanInfoBase.class sun/swing/BeanInfoUtils.class,\
JAR:=$(JDK_OUTPUTDIR)/lib/dt.jar,\
JARMAIN:=NONE,\
SKIP_METAINF:=true))
JARS+=$(JDK_OUTPUTDIR)/lib/dt.jar
##########################################################################################
# Need to define BUILDDIR for Release.gmk to work
BUILDDIR=$(JDK_TOPDIR)/makefiles
include common/Defs.gmk
include common/Release.gmk
# A rudimentary attempt at band-aiding the dependency tracking.
DEPS:= $(shell $(FIND) $(JDK_OUTPUTDIR)/newclasses -name "*.class" -type f) \
$(shell $(FIND) $(JDK_OUTPUTDIR)/bin -type f) \
$(shell $(FIND) $(JDK_OUTPUTDIR)/lib -type f)
$(IMAGES_OUTPUTDIR)/_the.images : $(DEPS) $(JARS)
$(MKDIR) -p $(@D)
# Restart this makefile, ugly, but since double colon (::) rules
# have been used in Release.gmk, it is impossible to craft on
# dependencies on these. I.e. -do-not-use- :: rules!!!!!
# Repeat after me: -do-not-use- :: rules!!!!!
$(MAKE) -j1 -f OldImages.gmk $(IMAGES_MAKE_ARGS) images
$(TOUCH) $@
.PHONY: default