Merge jdk8-b34
authorduke
Wed, 05 Jul 2017 18:07:57 +0200
changeset 12343 0ae89825c75c
parent 12342 122a0aede750 (diff)
parent 12252 d50eb4456ae0 (current diff)
child 12344 c4b68a7ae6bb
child 12345 499f1fc13620
child 12346 f81ec813e7ee
child 12348 990e362f6829
child 12350 39133c9704e9
child 12353 b8ea05aeddf8
child 12355 4bca4ac90e85
child 12357 dc30e060f828
child 12359 55cc12e59097
child 12365 ec2b9f11794a
child 12394 7ded3320efee
child 12408 8e95f7b85140
Merge
--- a/.hgtags-top-repo	Wed Jul 05 18:07:12 2017 +0200
+++ b/.hgtags-top-repo	Wed Jul 05 18:07:57 2017 +0200
@@ -154,3 +154,4 @@
 6cea54809b51db92979c22fd8aa8fcb1cb13d12e jdk8-b30
 0b66f43b89a6c0ac1c15d7ec51992c541cdc9089 jdk8-b31
 88176171e940f02916a312c265a34c32552a8376 jdk8-b32
+42f275168fa5d9e7c70b246614dca8cf81f52c2e jdk8-b33
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/autoconf/Makefile.in	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,26 @@
+#
+# 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.
+#
+# 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.
+#
+
+# Generated Makefile @DATE_WHEN_CONFIGURED@
+SPEC:=@OUTPUT_ROOT@/spec.gmk
+include @SRC_ROOT@/common/makefiles/Makefile
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/autoconf/autogen.sh	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,26 @@
+#!/bin/sh
+#
+# 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.
+#
+# 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.
+#
+
+autoconf configure.ac > configure
+rm -rf config.status config.log autom4te.cache
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/autoconf/build-aux/config.guess	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,1531 @@
+#! /bin/sh
+# Attempt to guess a canonical system name.
+#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+#   Free Software Foundation, Inc.
+
+timestamp='2008-01-23'
+
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program 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 for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+
+# Originally written by Per Bothner <per@bothner.com>.
+# Please send patches to <config-patches@gnu.org>.  Submit a context
+# diff and a properly formatted ChangeLog entry.
+#
+# This script attempts to guess a canonical system name similar to
+# config.sub.  If it succeeds, it prints the system name on stdout, and
+# exits with 0.  Otherwise, it exits with 1.
+#
+# The plan is that this can be called by configure scripts if you
+# don't specify an explicit build system type.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION]
+
+Output the configuration name of the system \`$me' is run on.
+
+Operation modes:
+  -h, --help         print this help, then exit
+  -t, --time-stamp   print date of last modification, then exit
+  -v, --version      print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.guess ($timestamp)
+
+Originally written by Per Bothner.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+  case $1 in
+    --time-stamp | --time* | -t )
+       echo "$timestamp" ; exit ;;
+    --version | -v )
+       echo "$version" ; exit ;;
+    --help | --h* | -h )
+       echo "$usage"; exit ;;
+    -- )     # Stop option processing
+       shift; break ;;
+    - )	# Use stdin as input.
+       break ;;
+    -* )
+       echo "$me: invalid option $1$help" >&2
+       exit 1 ;;
+    * )
+       break ;;
+  esac
+done
+
+if test $# != 0; then
+  echo "$me: too many arguments$help" >&2
+  exit 1
+fi
+
+trap 'exit 1' 1 2 15
+
+# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
+# compiler to aid in system detection is discouraged as it requires
+# temporary files to be created and, as you can see below, it is a
+# headache to deal with in a portable fashion.
+
+# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
+# use `HOST_CC' if defined, but it is deprecated.
+
+# Portable tmp directory creation inspired by the Autoconf team.
+
+set_cc_for_build='
+trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
+trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
+: ${TMPDIR=/tmp} ;
+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
+dummy=$tmp/dummy ;
+tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
+case $CC_FOR_BUILD,$HOST_CC,$CC in
+ ,,)    echo "int x;" > $dummy.c ;
+	for c in cc gcc c89 c99 ; do
+	  if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
+	     CC_FOR_BUILD="$c"; break ;
+	  fi ;
+	done ;
+	if test x"$CC_FOR_BUILD" = x ; then
+	  CC_FOR_BUILD=no_compiler_found ;
+	fi
+	;;
+ ,,*)   CC_FOR_BUILD=$CC ;;
+ ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
+esac ; set_cc_for_build= ;'
+
+# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+# (ghazi@noc.rutgers.edu 1994-08-24)
+if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+	PATH=$PATH:/.attbin ; export PATH
+fi
+
+UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
+UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
+UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+
+# Note: order is significant - the case branches are not exclusive.
+
+case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+    *:NetBSD:*:*)
+	# NetBSD (nbsd) targets should (where applicable) match one or
+	# more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
+	# *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
+	# switched to ELF, *-*-netbsd* would select the old
+	# object file format.  This provides both forward
+	# compatibility and a consistent mechanism for selecting the
+	# object file format.
+	#
+	# Note: NetBSD doesn't particularly care about the vendor
+	# portion of the name.  We always set it to "unknown".
+	sysctl="sysctl -n hw.machine_arch"
+	UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
+	    /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
+	case "${UNAME_MACHINE_ARCH}" in
+	    armeb) machine=armeb-unknown ;;
+	    arm*) machine=arm-unknown ;;
+	    sh3el) machine=shl-unknown ;;
+	    sh3eb) machine=sh-unknown ;;
+	    sh5el) machine=sh5le-unknown ;;
+	    *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+	esac
+	# The Operating System including object format, if it has switched
+	# to ELF recently, or will in the future.
+	case "${UNAME_MACHINE_ARCH}" in
+	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+		eval $set_cc_for_build
+		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+			| grep __ELF__ >/dev/null
+		then
+		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
+		    # Return netbsd for either.  FIX?
+		    os=netbsd
+		else
+		    os=netbsdelf
+		fi
+		;;
+	    *)
+	        os=netbsd
+		;;
+	esac
+	# The OS release
+	# Debian GNU/NetBSD machines have a different userland, and
+	# thus, need a distinct triplet. However, they do not need
+	# kernel version information, so it can be replaced with a
+	# suitable tag, in the style of linux-gnu.
+	case "${UNAME_VERSION}" in
+	    Debian*)
+		release='-gnu'
+		;;
+	    *)
+		release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+		;;
+	esac
+	# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
+	# contains redundant information, the shorter form:
+	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+	echo "${machine}-${os}${release}"
+	exit ;;
+    *:OpenBSD:*:*)
+	UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
+	echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
+	exit ;;
+    *:ekkoBSD:*:*)
+	echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
+	exit ;;
+    *:SolidBSD:*:*)
+	echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
+	exit ;;
+    macppc:MirBSD:*:*)
+	echo powerpc-unknown-mirbsd${UNAME_RELEASE}
+	exit ;;
+    *:MirBSD:*:*)
+	echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
+	exit ;;
+    alpha:OSF1:*:*)
+	case $UNAME_RELEASE in
+	*4.0)
+		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+		;;
+	*5.*)
+	        UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+		;;
+	esac
+	# According to Compaq, /usr/sbin/psrinfo has been available on
+	# OSF/1 and Tru64 systems produced since 1995.  I hope that
+	# covers most systems running today.  This code pipes the CPU
+	# types through head -n 1, so we only detect the type of CPU 0.
+	ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
+	case "$ALPHA_CPU_TYPE" in
+	    "EV4 (21064)")
+		UNAME_MACHINE="alpha" ;;
+	    "EV4.5 (21064)")
+		UNAME_MACHINE="alpha" ;;
+	    "LCA4 (21066/21068)")
+		UNAME_MACHINE="alpha" ;;
+	    "EV5 (21164)")
+		UNAME_MACHINE="alphaev5" ;;
+	    "EV5.6 (21164A)")
+		UNAME_MACHINE="alphaev56" ;;
+	    "EV5.6 (21164PC)")
+		UNAME_MACHINE="alphapca56" ;;
+	    "EV5.7 (21164PC)")
+		UNAME_MACHINE="alphapca57" ;;
+	    "EV6 (21264)")
+		UNAME_MACHINE="alphaev6" ;;
+	    "EV6.7 (21264A)")
+		UNAME_MACHINE="alphaev67" ;;
+	    "EV6.8CB (21264C)")
+		UNAME_MACHINE="alphaev68" ;;
+	    "EV6.8AL (21264B)")
+		UNAME_MACHINE="alphaev68" ;;
+	    "EV6.8CX (21264D)")
+		UNAME_MACHINE="alphaev68" ;;
+	    "EV6.9A (21264/EV69A)")
+		UNAME_MACHINE="alphaev69" ;;
+	    "EV7 (21364)")
+		UNAME_MACHINE="alphaev7" ;;
+	    "EV7.9 (21364A)")
+		UNAME_MACHINE="alphaev79" ;;
+	esac
+	# A Pn.n version is a patched version.
+	# A Vn.n version is a released version.
+	# A Tn.n version is a released field test version.
+	# A Xn.n version is an unreleased experimental baselevel.
+	# 1.2 uses "1.2" for uname -r.
+	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+	exit ;;
+    Alpha\ *:Windows_NT*:*)
+	# How do we know it's Interix rather than the generic POSIX subsystem?
+	# Should we change UNAME_MACHINE based on the output of uname instead
+	# of the specific Alpha model?
+	echo alpha-pc-interix
+	exit ;;
+    21064:Windows_NT:50:3)
+	echo alpha-dec-winnt3.5
+	exit ;;
+    Amiga*:UNIX_System_V:4.0:*)
+	echo m68k-unknown-sysv4
+	exit ;;
+    *:[Aa]miga[Oo][Ss]:*:*)
+	echo ${UNAME_MACHINE}-unknown-amigaos
+	exit ;;
+    *:[Mm]orph[Oo][Ss]:*:*)
+	echo ${UNAME_MACHINE}-unknown-morphos
+	exit ;;
+    *:OS/390:*:*)
+	echo i370-ibm-openedition
+	exit ;;
+    *:z/VM:*:*)
+	echo s390-ibm-zvmoe
+	exit ;;
+    *:OS400:*:*)
+        echo powerpc-ibm-os400
+	exit ;;
+    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+	echo arm-acorn-riscix${UNAME_RELEASE}
+	exit ;;
+    arm:riscos:*:*|arm:RISCOS:*:*)
+	echo arm-unknown-riscos
+	exit ;;
+    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
+	echo hppa1.1-hitachi-hiuxmpp
+	exit ;;
+    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
+	# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
+	if test "`(/bin/universe) 2>/dev/null`" = att ; then
+		echo pyramid-pyramid-sysv3
+	else
+		echo pyramid-pyramid-bsd
+	fi
+	exit ;;
+    NILE*:*:*:dcosx)
+	echo pyramid-pyramid-svr4
+	exit ;;
+    DRS?6000:unix:4.0:6*)
+	echo sparc-icl-nx6
+	exit ;;
+    DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
+	case `/usr/bin/uname -p` in
+	    sparc) echo sparc-icl-nx7; exit ;;
+	esac ;;
+    sun4H:SunOS:5.*:*)
+	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
+	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
+	echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    sun4*:SunOS:6*:*)
+	# According to config.sub, this is the proper way to canonicalize
+	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but
+	# it's likely to be more like Solaris than SunOS4.
+	echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    sun4*:SunOS:*:*)
+	case "`/usr/bin/arch -k`" in
+	    Series*|S4*)
+		UNAME_RELEASE=`uname -v`
+		;;
+	esac
+	# Japanese Language versions have a version number like `4.1.3-JL'.
+	echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+	exit ;;
+    sun3*:SunOS:*:*)
+	echo m68k-sun-sunos${UNAME_RELEASE}
+	exit ;;
+    sun*:*:4.2BSD:*)
+	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+	test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+	case "`/bin/arch`" in
+	    sun3)
+		echo m68k-sun-sunos${UNAME_RELEASE}
+		;;
+	    sun4)
+		echo sparc-sun-sunos${UNAME_RELEASE}
+		;;
+	esac
+	exit ;;
+    aushp:SunOS:*:*)
+	echo sparc-auspex-sunos${UNAME_RELEASE}
+	exit ;;
+    # The situation for MiNT is a little confusing.  The machine name
+    # can be virtually everything (everything which is not
+    # "atarist" or "atariste" at least should have a processor
+    # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
+    # to the lowercase version "mint" (or "freemint").  Finally
+    # the system name "TOS" denotes a system which is actually not
+    # MiNT.  But MiNT is downward compatible to TOS, so this should
+    # be no problem.
+    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
+        echo m68k-atari-mint${UNAME_RELEASE}
+	exit ;;
+    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+	echo m68k-atari-mint${UNAME_RELEASE}
+        exit ;;
+    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
+        echo m68k-atari-mint${UNAME_RELEASE}
+	exit ;;
+    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
+        echo m68k-milan-mint${UNAME_RELEASE}
+        exit ;;
+    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
+        echo m68k-hades-mint${UNAME_RELEASE}
+        exit ;;
+    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+        echo m68k-unknown-mint${UNAME_RELEASE}
+        exit ;;
+    m68k:machten:*:*)
+	echo m68k-apple-machten${UNAME_RELEASE}
+	exit ;;
+    powerpc:machten:*:*)
+	echo powerpc-apple-machten${UNAME_RELEASE}
+	exit ;;
+    RISC*:Mach:*:*)
+	echo mips-dec-mach_bsd4.3
+	exit ;;
+    RISC*:ULTRIX:*:*)
+	echo mips-dec-ultrix${UNAME_RELEASE}
+	exit ;;
+    VAX*:ULTRIX*:*:*)
+	echo vax-dec-ultrix${UNAME_RELEASE}
+	exit ;;
+    2020:CLIX:*:* | 2430:CLIX:*:*)
+	echo clipper-intergraph-clix${UNAME_RELEASE}
+	exit ;;
+    mips:*:*:UMIPS | mips:*:*:RISCos)
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+#ifdef __cplusplus
+#include <stdio.h>  /* for printf() prototype */
+	int main (int argc, char *argv[]) {
+#else
+	int main (argc, argv) int argc; char *argv[]; {
+#endif
+	#if defined (host_mips) && defined (MIPSEB)
+	#if defined (SYSTYPE_SYSV)
+	  printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+	#endif
+	#if defined (SYSTYPE_SVR4)
+	  printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
+	#endif
+	#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
+	  printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
+	#endif
+	#endif
+	  exit (-1);
+	}
+EOF
+	$CC_FOR_BUILD -o $dummy $dummy.c &&
+	  dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
+	  SYSTEM_NAME=`$dummy $dummyarg` &&
+	    { echo "$SYSTEM_NAME"; exit; }
+	echo mips-mips-riscos${UNAME_RELEASE}
+	exit ;;
+    Motorola:PowerMAX_OS:*:*)
+	echo powerpc-motorola-powermax
+	exit ;;
+    Motorola:*:4.3:PL8-*)
+	echo powerpc-harris-powermax
+	exit ;;
+    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
+	echo powerpc-harris-powermax
+	exit ;;
+    Night_Hawk:Power_UNIX:*:*)
+	echo powerpc-harris-powerunix
+	exit ;;
+    m88k:CX/UX:7*:*)
+	echo m88k-harris-cxux7
+	exit ;;
+    m88k:*:4*:R4*)
+	echo m88k-motorola-sysv4
+	exit ;;
+    m88k:*:3*:R3*)
+	echo m88k-motorola-sysv3
+	exit ;;
+    AViiON:dgux:*:*)
+        # DG/UX returns AViiON for all architectures
+        UNAME_PROCESSOR=`/usr/bin/uname -p`
+	if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+	then
+	    if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
+	       [ ${TARGET_BINARY_INTERFACE}x = x ]
+	    then
+		echo m88k-dg-dgux${UNAME_RELEASE}
+	    else
+		echo m88k-dg-dguxbcs${UNAME_RELEASE}
+	    fi
+	else
+	    echo i586-dg-dgux${UNAME_RELEASE}
+	fi
+ 	exit ;;
+    M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
+	echo m88k-dolphin-sysv3
+	exit ;;
+    M88*:*:R3*:*)
+	# Delta 88k system running SVR3
+	echo m88k-motorola-sysv3
+	exit ;;
+    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
+	echo m88k-tektronix-sysv3
+	exit ;;
+    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
+	echo m68k-tektronix-bsd
+	exit ;;
+    *:IRIX*:*:*)
+	echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+	exit ;;
+    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
+	echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
+	exit ;;               # Note that: echo "'`uname -s`'" gives 'AIX '
+    i*86:AIX:*:*)
+	echo i386-ibm-aix
+	exit ;;
+    ia64:AIX:*:*)
+	if [ -x /usr/bin/oslevel ] ; then
+		IBM_REV=`/usr/bin/oslevel`
+	else
+		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+	fi
+	echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+	exit ;;
+    *:AIX:2:3)
+	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
+		eval $set_cc_for_build
+		sed 's/^		//' << EOF >$dummy.c
+		#include <sys/systemcfg.h>
+
+		main()
+			{
+			if (!__power_pc())
+				exit(1);
+			puts("powerpc-ibm-aix3.2.5");
+			exit(0);
+			}
+EOF
+		if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
+		then
+			echo "$SYSTEM_NAME"
+		else
+			echo rs6000-ibm-aix3.2.5
+		fi
+	elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
+		echo rs6000-ibm-aix3.2.4
+	else
+		echo rs6000-ibm-aix3.2
+	fi
+	exit ;;
+    *:AIX:*:[456])
+	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
+	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+		IBM_ARCH=rs6000
+	else
+		IBM_ARCH=powerpc
+	fi
+	if [ -x /usr/bin/oslevel ] ; then
+		IBM_REV=`/usr/bin/oslevel`
+	else
+		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+	fi
+	echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+	exit ;;
+    *:AIX:*:*)
+	echo rs6000-ibm-aix
+	exit ;;
+    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+	echo romp-ibm-bsd4.4
+	exit ;;
+    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
+	echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
+	exit ;;                             # report: romp-ibm BSD 4.3
+    *:BOSX:*:*)
+	echo rs6000-bull-bosx
+	exit ;;
+    DPX/2?00:B.O.S.:*:*)
+	echo m68k-bull-sysv3
+	exit ;;
+    9000/[34]??:4.3bsd:1.*:*)
+	echo m68k-hp-bsd
+	exit ;;
+    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
+	echo m68k-hp-bsd4.4
+	exit ;;
+    9000/[34678]??:HP-UX:*:*)
+	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+	case "${UNAME_MACHINE}" in
+	    9000/31? )            HP_ARCH=m68000 ;;
+	    9000/[34]?? )         HP_ARCH=m68k ;;
+	    9000/[678][0-9][0-9])
+		if [ -x /usr/bin/getconf ]; then
+		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+                    case "${sc_cpu_version}" in
+                      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+                      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+                      532)                      # CPU_PA_RISC2_0
+                        case "${sc_kernel_bits}" in
+                          32) HP_ARCH="hppa2.0n" ;;
+                          64) HP_ARCH="hppa2.0w" ;;
+			  '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
+                        esac ;;
+                    esac
+		fi
+		if [ "${HP_ARCH}" = "" ]; then
+		    eval $set_cc_for_build
+		    sed 's/^              //' << EOF >$dummy.c
+
+              #define _HPUX_SOURCE
+              #include <stdlib.h>
+              #include <unistd.h>
+
+              int main ()
+              {
+              #if defined(_SC_KERNEL_BITS)
+                  long bits = sysconf(_SC_KERNEL_BITS);
+              #endif
+                  long cpu  = sysconf (_SC_CPU_VERSION);
+
+                  switch (cpu)
+              	{
+              	case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+              	case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+              	case CPU_PA_RISC2_0:
+              #if defined(_SC_KERNEL_BITS)
+              	    switch (bits)
+              		{
+              		case 64: puts ("hppa2.0w"); break;
+              		case 32: puts ("hppa2.0n"); break;
+              		default: puts ("hppa2.0"); break;
+              		} break;
+              #else  /* !defined(_SC_KERNEL_BITS) */
+              	    puts ("hppa2.0"); break;
+              #endif
+              	default: puts ("hppa1.0"); break;
+              	}
+                  exit (0);
+              }
+EOF
+		    (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+		    test -z "$HP_ARCH" && HP_ARCH=hppa
+		fi ;;
+	esac
+	if [ ${HP_ARCH} = "hppa2.0w" ]
+	then
+	    eval $set_cc_for_build
+
+	    # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
+	    # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
+	    # generating 64-bit code.  GNU and HP use different nomenclature:
+	    #
+	    # $ CC_FOR_BUILD=cc ./config.guess
+	    # => hppa2.0w-hp-hpux11.23
+	    # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
+	    # => hppa64-hp-hpux11.23
+
+	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
+		grep __LP64__ >/dev/null
+	    then
+		HP_ARCH="hppa2.0w"
+	    else
+		HP_ARCH="hppa64"
+	    fi
+	fi
+	echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+	exit ;;
+    ia64:HP-UX:*:*)
+	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+	echo ia64-hp-hpux${HPUX_REV}
+	exit ;;
+    3050*:HI-UX:*:*)
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#include <unistd.h>
+	int
+	main ()
+	{
+	  long cpu = sysconf (_SC_CPU_VERSION);
+	  /* The order matters, because CPU_IS_HP_MC68K erroneously returns
+	     true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
+	     results, however.  */
+	  if (CPU_IS_PA_RISC (cpu))
+	    {
+	      switch (cpu)
+		{
+		  case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
+		  case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
+		  case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
+		  default: puts ("hppa-hitachi-hiuxwe2"); break;
+		}
+	    }
+	  else if (CPU_IS_HP_MC68K (cpu))
+	    puts ("m68k-hitachi-hiuxwe2");
+	  else puts ("unknown-hitachi-hiuxwe2");
+	  exit (0);
+	}
+EOF
+	$CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
+		{ echo "$SYSTEM_NAME"; exit; }
+	echo unknown-hitachi-hiuxwe2
+	exit ;;
+    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+	echo hppa1.1-hp-bsd
+	exit ;;
+    9000/8??:4.3bsd:*:*)
+	echo hppa1.0-hp-bsd
+	exit ;;
+    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
+	echo hppa1.0-hp-mpeix
+	exit ;;
+    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+	echo hppa1.1-hp-osf
+	exit ;;
+    hp8??:OSF1:*:*)
+	echo hppa1.0-hp-osf
+	exit ;;
+    i*86:OSF1:*:*)
+	if [ -x /usr/sbin/sysversion ] ; then
+	    echo ${UNAME_MACHINE}-unknown-osf1mk
+	else
+	    echo ${UNAME_MACHINE}-unknown-osf1
+	fi
+	exit ;;
+    parisc*:Lites*:*:*)
+	echo hppa1.1-hp-lites
+	exit ;;
+    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+	echo c1-convex-bsd
+        exit ;;
+    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
+	if getsysinfo -f scalar_acc
+	then echo c32-convex-bsd
+	else echo c2-convex-bsd
+	fi
+        exit ;;
+    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
+	echo c34-convex-bsd
+        exit ;;
+    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
+	echo c38-convex-bsd
+        exit ;;
+    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
+	echo c4-convex-bsd
+        exit ;;
+    CRAY*Y-MP:*:*:*)
+	echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    CRAY*[A-Z]90:*:*:*)
+	echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
+	      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
+	      -e 's/\.[^.]*$/.X/'
+	exit ;;
+    CRAY*TS:*:*:*)
+	echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    CRAY*T3E:*:*:*)
+	echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    CRAY*SV1:*:*:*)
+	echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    *:UNICOS/mp:*:*)
+	echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
+	FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+        exit ;;
+    5000:UNIX_System_V:4.*:*)
+        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+        FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+        echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+	exit ;;
+    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+	exit ;;
+    sparc*:BSD/OS:*:*)
+	echo sparc-unknown-bsdi${UNAME_RELEASE}
+	exit ;;
+    *:BSD/OS:*:*)
+	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+	exit ;;
+    *:FreeBSD:*:*)
+	case ${UNAME_MACHINE} in
+	    pc98)
+		echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+	    amd64)
+		echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+	    *)
+		echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+	esac
+	exit ;;
+    i*:CYGWIN*:*)
+	echo ${UNAME_MACHINE}-pc-cygwin
+	exit ;;
+    *:MINGW*:*)
+	echo ${UNAME_MACHINE}-pc-mingw32
+	exit ;;
+    i*:windows32*:*)
+    	# uname -m includes "-pc" on this system.
+    	echo ${UNAME_MACHINE}-mingw32
+	exit ;;
+    i*:PW*:*)
+	echo ${UNAME_MACHINE}-pc-pw32
+	exit ;;
+    *:Interix*:[3456]*)
+    	case ${UNAME_MACHINE} in
+	    x86)
+		echo i586-pc-interix${UNAME_RELEASE}
+		exit ;;
+	    EM64T | authenticamd)
+		echo x86_64-unknown-interix${UNAME_RELEASE}
+		exit ;;
+	    IA64)
+		echo ia64-unknown-interix${UNAME_RELEASE}
+		exit ;;
+	esac ;;
+    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
+	echo i${UNAME_MACHINE}-pc-mks
+	exit ;;
+    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
+	# How do we know it's Interix rather than the generic POSIX subsystem?
+	# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
+	# UNAME_MACHINE based on the output of uname instead of i386?
+	echo i586-pc-interix
+	exit ;;
+    i*:UWIN*:*)
+	echo ${UNAME_MACHINE}-pc-uwin
+	exit ;;
+    amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
+	echo x86_64-unknown-cygwin
+	exit ;;
+    p*:CYGWIN*:*)
+	echo powerpcle-unknown-cygwin
+	exit ;;
+    prep*:SunOS:5.*:*)
+	echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    *:GNU:*:*)
+	# the GNU system
+	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+	exit ;;
+    *:GNU/*:*:*)
+	# other systems with GNU libc and userland
+	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
+	exit ;;
+    i*86:Minix:*:*)
+	echo ${UNAME_MACHINE}-pc-minix
+	exit ;;
+    arm*:Linux:*:*)
+	eval $set_cc_for_build
+	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
+	    | grep -q __ARM_EABI__
+	then
+	    echo ${UNAME_MACHINE}-unknown-linux-gnu
+	else
+	    echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+	fi
+	exit ;;
+    avr32*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    cris:Linux:*:*)
+	echo cris-axis-linux-gnu
+	exit ;;
+    crisv32:Linux:*:*)
+	echo crisv32-axis-linux-gnu
+	exit ;;
+    frv:Linux:*:*)
+    	echo frv-unknown-linux-gnu
+	exit ;;
+    ia64:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    m32r*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    m68*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    mips:Linux:*:*)
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#undef CPU
+	#undef mips
+	#undef mipsel
+	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+	CPU=mipsel
+	#else
+	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+	CPU=mips
+	#else
+	CPU=
+	#endif
+	#endif
+EOF
+	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
+	    /^CPU/{
+		s: ::g
+		p
+	    }'`"
+	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+	;;
+    mips64:Linux:*:*)
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#undef CPU
+	#undef mips64
+	#undef mips64el
+	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+	CPU=mips64el
+	#else
+	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+	CPU=mips64
+	#else
+	CPU=
+	#endif
+	#endif
+EOF
+	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
+	    /^CPU/{
+		s: ::g
+		p
+	    }'`"
+	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+	;;
+    or32:Linux:*:*)
+	echo or32-unknown-linux-gnu
+	exit ;;
+    ppc:Linux:*:*)
+	echo powerpc-unknown-linux-gnu
+	exit ;;
+    ppc64:Linux:*:*)
+	echo powerpc64-unknown-linux-gnu
+	exit ;;
+    alpha:Linux:*:*)
+	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+	  EV5)   UNAME_MACHINE=alphaev5 ;;
+	  EV56)  UNAME_MACHINE=alphaev56 ;;
+	  PCA56) UNAME_MACHINE=alphapca56 ;;
+	  PCA57) UNAME_MACHINE=alphapca56 ;;
+	  EV6)   UNAME_MACHINE=alphaev6 ;;
+	  EV67)  UNAME_MACHINE=alphaev67 ;;
+	  EV68*) UNAME_MACHINE=alphaev68 ;;
+        esac
+	objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
+	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
+	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+	exit ;;
+    parisc:Linux:*:* | hppa:Linux:*:*)
+	# Look for CPU level
+	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
+	  PA7*) echo hppa1.1-unknown-linux-gnu ;;
+	  PA8*) echo hppa2.0-unknown-linux-gnu ;;
+	  *)    echo hppa-unknown-linux-gnu ;;
+	esac
+	exit ;;
+    parisc64:Linux:*:* | hppa64:Linux:*:*)
+	echo hppa64-unknown-linux-gnu
+	exit ;;
+    s390:Linux:*:* | s390x:Linux:*:*)
+	echo ${UNAME_MACHINE}-ibm-linux
+	exit ;;
+    sh64*:Linux:*:*)
+    	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    sh*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    sparc:Linux:*:* | sparc64:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    vax:Linux:*:*)
+	echo ${UNAME_MACHINE}-dec-linux-gnu
+	exit ;;
+    x86_64:Linux:*:*)
+	echo x86_64-unknown-linux-gnu
+	exit ;;
+    xtensa*:Linux:*:*)
+    	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    i*86:Linux:*:*)
+	# The BFD linker knows what the default object file format is, so
+	# first see if it will tell us. cd to the root directory to prevent
+	# problems with other programs or directories called `ld' in the path.
+	# Set LC_ALL=C to ensure ld outputs messages in English.
+	ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
+			 | sed -ne '/supported targets:/!d
+				    s/[ 	][ 	]*/ /g
+				    s/.*supported targets: *//
+				    s/ .*//
+				    p'`
+        case "$ld_supported_targets" in
+	  elf32-i386)
+		TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
+		;;
+	  a.out-i386-linux)
+		echo "${UNAME_MACHINE}-pc-linux-gnuaout"
+		exit ;;
+	  coff-i386)
+		echo "${UNAME_MACHINE}-pc-linux-gnucoff"
+		exit ;;
+	  "")
+		# Either a pre-BFD a.out linker (linux-gnuoldld) or
+		# one that does not give us useful --help.
+		echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
+		exit ;;
+	esac
+	# Determine whether the default compiler is a.out or elf
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#include <features.h>
+	#ifdef __ELF__
+	# ifdef __GLIBC__
+	#  if __GLIBC__ >= 2
+	LIBC=gnu
+	#  else
+	LIBC=gnulibc1
+	#  endif
+	# else
+	LIBC=gnulibc1
+	# endif
+	#else
+	#if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC)
+	LIBC=gnu
+	#else
+	LIBC=gnuaout
+	#endif
+	#endif
+	#ifdef __dietlibc__
+	LIBC=dietlibc
+	#endif
+EOF
+	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
+	    /^LIBC/{
+		s: ::g
+		p
+	    }'`"
+	test x"${LIBC}" != x && {
+		echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
+		exit
+	}
+	test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
+	;;
+    i*86:DYNIX/ptx:4*:*)
+	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
+	# earlier versions are messed up and put the nodename in both
+	# sysname and nodename.
+	echo i386-sequent-sysv4
+	exit ;;
+    i*86:UNIX_SV:4.2MP:2.*)
+        # Unixware is an offshoot of SVR4, but it has its own version
+        # number series starting with 2...
+        # I am not positive that other SVR4 systems won't match this,
+	# I just have to hope.  -- rms.
+        # Use sysv4.2uw... so that sysv4* matches it.
+	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+	exit ;;
+    i*86:OS/2:*:*)
+	# If we were able to find `uname', then EMX Unix compatibility
+	# is probably installed.
+	echo ${UNAME_MACHINE}-pc-os2-emx
+	exit ;;
+    i*86:XTS-300:*:STOP)
+	echo ${UNAME_MACHINE}-unknown-stop
+	exit ;;
+    i*86:atheos:*:*)
+	echo ${UNAME_MACHINE}-unknown-atheos
+	exit ;;
+    i*86:syllable:*:*)
+	echo ${UNAME_MACHINE}-pc-syllable
+	exit ;;
+    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
+	echo i386-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    i*86:*DOS:*:*)
+	echo ${UNAME_MACHINE}-pc-msdosdjgpp
+	exit ;;
+    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
+	UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
+		echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+	else
+		echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+	fi
+	exit ;;
+    i*86:*:5:[678]*)
+    	# UnixWare 7.x, OpenUNIX and OpenServer 6.
+	case `/bin/uname -X | grep "^Machine"` in
+	    *486*)	     UNAME_MACHINE=i486 ;;
+	    *Pentium)	     UNAME_MACHINE=i586 ;;
+	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
+	esac
+	echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+	exit ;;
+    i*86:*:3.2:*)
+	if test -f /usr/options/cb.name; then
+		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
+		echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+	elif /bin/uname -X 2>/dev/null >/dev/null ; then
+		UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
+		(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
+		(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
+			&& UNAME_MACHINE=i586
+		(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
+			&& UNAME_MACHINE=i686
+		(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
+			&& UNAME_MACHINE=i686
+		echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+	else
+		echo ${UNAME_MACHINE}-pc-sysv32
+	fi
+	exit ;;
+    pc:*:*:*)
+	# Left here for compatibility:
+        # uname -m prints for DJGPP always 'pc', but it prints nothing about
+        # the processor, so we play safe by assuming i386.
+	echo i386-pc-msdosdjgpp
+        exit ;;
+    Intel:Mach:3*:*)
+	echo i386-pc-mach3
+	exit ;;
+    paragon:*:*:*)
+	echo i860-intel-osf1
+	exit ;;
+    i860:*:4.*:*) # i860-SVR4
+	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
+	  echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+	else # Add other i860-SVR4 vendors below as they are discovered.
+	  echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
+	fi
+	exit ;;
+    mini*:CTIX:SYS*5:*)
+	# "miniframe"
+	echo m68010-convergent-sysv
+	exit ;;
+    mc68k:UNIX:SYSTEM5:3.51m)
+	echo m68k-convergent-sysv
+	exit ;;
+    M680?0:D-NIX:5.3:*)
+	echo m68k-diab-dnix
+	exit ;;
+    M68*:*:R3V[5678]*:*)
+	test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
+    3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
+	OS_REL=''
+	test -r /etc/.relid \
+	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+	  && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+	  && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
+        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+          && { echo i486-ncr-sysv4; exit; } ;;
+    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
+	echo m68k-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    mc68030:UNIX_System_V:4.*:*)
+	echo m68k-atari-sysv4
+	exit ;;
+    TSUNAMI:LynxOS:2.*:*)
+	echo sparc-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    rs6000:LynxOS:2.*:*)
+	echo rs6000-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
+	echo powerpc-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    SM[BE]S:UNIX_SV:*:*)
+	echo mips-dde-sysv${UNAME_RELEASE}
+	exit ;;
+    RM*:ReliantUNIX-*:*:*)
+	echo mips-sni-sysv4
+	exit ;;
+    RM*:SINIX-*:*:*)
+	echo mips-sni-sysv4
+	exit ;;
+    *:SINIX-*:*:*)
+	if uname -p 2>/dev/null >/dev/null ; then
+		UNAME_MACHINE=`(uname -p) 2>/dev/null`
+		echo ${UNAME_MACHINE}-sni-sysv4
+	else
+		echo ns32k-sni-sysv
+	fi
+	exit ;;
+    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+                      # says <Richard.M.Bartel@ccMail.Census.GOV>
+        echo i586-unisys-sysv4
+        exit ;;
+    *:UNIX_System_V:4*:FTX*)
+	# From Gerald Hewes <hewes@openmarket.com>.
+	# How about differentiating between stratus architectures? -djm
+	echo hppa1.1-stratus-sysv4
+	exit ;;
+    *:*:*:FTX*)
+	# From seanf@swdc.stratus.com.
+	echo i860-stratus-sysv4
+	exit ;;
+    i*86:VOS:*:*)
+	# From Paul.Green@stratus.com.
+	echo ${UNAME_MACHINE}-stratus-vos
+	exit ;;
+    *:VOS:*:*)
+	# From Paul.Green@stratus.com.
+	echo hppa1.1-stratus-vos
+	exit ;;
+    mc68*:A/UX:*:*)
+	echo m68k-apple-aux${UNAME_RELEASE}
+	exit ;;
+    news*:NEWS-OS:6*:*)
+	echo mips-sony-newsos6
+	exit ;;
+    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
+	if [ -d /usr/nec ]; then
+	        echo mips-nec-sysv${UNAME_RELEASE}
+	else
+	        echo mips-unknown-sysv${UNAME_RELEASE}
+	fi
+        exit ;;
+    BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
+	echo powerpc-be-beos
+	exit ;;
+    BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
+	echo powerpc-apple-beos
+	exit ;;
+    BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
+	echo i586-pc-beos
+	exit ;;
+    SX-4:SUPER-UX:*:*)
+	echo sx4-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-5:SUPER-UX:*:*)
+	echo sx5-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-6:SUPER-UX:*:*)
+	echo sx6-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-7:SUPER-UX:*:*)
+	echo sx7-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-8:SUPER-UX:*:*)
+	echo sx8-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-8R:SUPER-UX:*:*)
+	echo sx8r-nec-superux${UNAME_RELEASE}
+	exit ;;
+    Power*:Rhapsody:*:*)
+	echo powerpc-apple-rhapsody${UNAME_RELEASE}
+	exit ;;
+    *:Rhapsody:*:*)
+	echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+	exit ;;
+    *:Darwin:*:*)
+	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
+	eval $set_cc_for_build
+	echo "int main(){}" > $dummy.c
+        if test "`$CC_FOR_BUILD -o $dummy $dummy.c; file $dummy |  grep -c x86_64`" = 1 ; then
+             UNAME_PROCESSOR=x86_64
+        fi
+	case $UNAME_PROCESSOR in
+	    unknown) UNAME_PROCESSOR=powerpc ;;
+	esac
+	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
+	exit ;;
+    *:procnto*:*:* | *:QNX:[0123456789]*:*)
+	UNAME_PROCESSOR=`uname -p`
+	if test "$UNAME_PROCESSOR" = "x86"; then
+		UNAME_PROCESSOR=i386
+		UNAME_MACHINE=pc
+	fi
+	echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+	exit ;;
+    *:QNX:*:4*)
+	echo i386-pc-qnx
+	exit ;;
+    NSE-?:NONSTOP_KERNEL:*:*)
+	echo nse-tandem-nsk${UNAME_RELEASE}
+	exit ;;
+    NSR-?:NONSTOP_KERNEL:*:*)
+	echo nsr-tandem-nsk${UNAME_RELEASE}
+	exit ;;
+    *:NonStop-UX:*:*)
+	echo mips-compaq-nonstopux
+	exit ;;
+    BS2000:POSIX*:*:*)
+	echo bs2000-siemens-sysv
+	exit ;;
+    DS/*:UNIX_System_V:*:*)
+	echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+	exit ;;
+    *:Plan9:*:*)
+	# "uname -m" is not consistent, so use $cputype instead. 386
+	# is converted to i386 for consistency with other x86
+	# operating systems.
+	if test "$cputype" = "386"; then
+	    UNAME_MACHINE=i386
+	else
+	    UNAME_MACHINE="$cputype"
+	fi
+	echo ${UNAME_MACHINE}-unknown-plan9
+	exit ;;
+    *:TOPS-10:*:*)
+	echo pdp10-unknown-tops10
+	exit ;;
+    *:TENEX:*:*)
+	echo pdp10-unknown-tenex
+	exit ;;
+    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
+	echo pdp10-dec-tops20
+	exit ;;
+    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
+	echo pdp10-xkl-tops20
+	exit ;;
+    *:TOPS-20:*:*)
+	echo pdp10-unknown-tops20
+	exit ;;
+    *:ITS:*:*)
+	echo pdp10-unknown-its
+	exit ;;
+    SEI:*:*:SEIUX)
+        echo mips-sei-seiux${UNAME_RELEASE}
+	exit ;;
+    *:DragonFly:*:*)
+	echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+	exit ;;
+    *:*VMS:*:*)
+    	UNAME_MACHINE=`(uname -p) 2>/dev/null`
+	case "${UNAME_MACHINE}" in
+	    A*) echo alpha-dec-vms ; exit ;;
+	    I*) echo ia64-dec-vms ; exit ;;
+	    V*) echo vax-dec-vms ; exit ;;
+	esac ;;
+    *:XENIX:*:SysV)
+	echo i386-pc-xenix
+	exit ;;
+    i*86:skyos:*:*)
+	echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
+	exit ;;
+    i*86:rdos:*:*)
+	echo ${UNAME_MACHINE}-pc-rdos
+	exit ;;
+esac
+
+#echo '(No uname command or uname output not recognized.)' 1>&2
+#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
+
+eval $set_cc_for_build
+cat >$dummy.c <<EOF
+#ifdef _SEQUENT_
+# include <sys/types.h>
+# include <sys/utsname.h>
+#endif
+main ()
+{
+#if defined (sony)
+#if defined (MIPSEB)
+  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
+     I don't know....  */
+  printf ("mips-sony-bsd\n"); exit (0);
+#else
+#include <sys/param.h>
+  printf ("m68k-sony-newsos%s\n",
+#ifdef NEWSOS4
+          "4"
+#else
+	  ""
+#endif
+         ); exit (0);
+#endif
+#endif
+
+#if defined (__arm) && defined (__acorn) && defined (__unix)
+  printf ("arm-acorn-riscix\n"); exit (0);
+#endif
+
+#if defined (hp300) && !defined (hpux)
+  printf ("m68k-hp-bsd\n"); exit (0);
+#endif
+
+#if defined (NeXT)
+#if !defined (__ARCHITECTURE__)
+#define __ARCHITECTURE__ "m68k"
+#endif
+  int version;
+  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+  if (version < 4)
+    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+  else
+    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
+  exit (0);
+#endif
+
+#if defined (MULTIMAX) || defined (n16)
+#if defined (UMAXV)
+  printf ("ns32k-encore-sysv\n"); exit (0);
+#else
+#if defined (CMU)
+  printf ("ns32k-encore-mach\n"); exit (0);
+#else
+  printf ("ns32k-encore-bsd\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (__386BSD__)
+  printf ("i386-pc-bsd\n"); exit (0);
+#endif
+
+#if defined (sequent)
+#if defined (i386)
+  printf ("i386-sequent-dynix\n"); exit (0);
+#endif
+#if defined (ns32000)
+  printf ("ns32k-sequent-dynix\n"); exit (0);
+#endif
+#endif
+
+#if defined (_SEQUENT_)
+    struct utsname un;
+
+    uname(&un);
+
+    if (strncmp(un.version, "V2", 2) == 0) {
+	printf ("i386-sequent-ptx2\n"); exit (0);
+    }
+    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
+	printf ("i386-sequent-ptx1\n"); exit (0);
+    }
+    printf ("i386-sequent-ptx\n"); exit (0);
+
+#endif
+
+#if defined (vax)
+# if !defined (ultrix)
+#  include <sys/param.h>
+#  if defined (BSD)
+#   if BSD == 43
+      printf ("vax-dec-bsd4.3\n"); exit (0);
+#   else
+#    if BSD == 199006
+      printf ("vax-dec-bsd4.3reno\n"); exit (0);
+#    else
+      printf ("vax-dec-bsd\n"); exit (0);
+#    endif
+#   endif
+#  else
+    printf ("vax-dec-bsd\n"); exit (0);
+#  endif
+# else
+    printf ("vax-dec-ultrix\n"); exit (0);
+# endif
+#endif
+
+#if defined (alliant) && defined (i860)
+  printf ("i860-alliant-bsd\n"); exit (0);
+#endif
+
+  exit (1);
+}
+EOF
+
+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
+	{ echo "$SYSTEM_NAME"; exit; }
+
+# Apollos put the system type in the environment.
+
+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
+
+# Convex versions that predate uname can use getsysinfo(1)
+
+if [ -x /usr/convex/getsysinfo ]
+then
+    case `getsysinfo -f cpu_type` in
+    c1*)
+	echo c1-convex-bsd
+	exit ;;
+    c2*)
+	if getsysinfo -f scalar_acc
+	then echo c32-convex-bsd
+	else echo c2-convex-bsd
+	fi
+	exit ;;
+    c34*)
+	echo c34-convex-bsd
+	exit ;;
+    c38*)
+	echo c38-convex-bsd
+	exit ;;
+    c4*)
+	echo c4-convex-bsd
+	exit ;;
+    esac
+fi
+
+cat >&2 <<EOF
+$0: unable to guess system type
+
+This script, last modified $timestamp, has failed to recognize
+the operating system you are using. It is advised that you
+download the most up to date version of the config scripts from
+
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+and
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+
+If the version you run ($0) is already up to date, please
+send the following data and any information you think might be
+pertinent to <config-patches@gnu.org> in order to provide the needed
+information to handle your system.
+
+config.guess timestamp = $timestamp
+
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
+
+hostinfo               = `(hostinfo) 2>/dev/null`
+/bin/universe          = `(/bin/universe) 2>/dev/null`
+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
+/bin/arch              = `(/bin/arch) 2>/dev/null`
+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
+
+UNAME_MACHINE = ${UNAME_MACHINE}
+UNAME_RELEASE = ${UNAME_RELEASE}
+UNAME_SYSTEM  = ${UNAME_SYSTEM}
+UNAME_VERSION = ${UNAME_VERSION}
+EOF
+
+exit 1
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/autoconf/build-aux/config.sub	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,1658 @@
+#! /bin/sh
+# Configuration validation subroutine script.
+#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+#   Free Software Foundation, Inc.
+
+timestamp='2008-01-16'
+
+# This file is (in principle) common to ALL GNU software.
+# The presence of a machine in this file suggests that SOME GNU software
+# can handle that machine.  It does not imply ALL GNU software can.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program 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 for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+
+# Please send patches to <config-patches@gnu.org>.  Submit a context
+# diff and a properly formatted ChangeLog entry.
+#
+# Configuration subroutine to validate and canonicalize a configuration type.
+# Supply the specified configuration type as an argument.
+# If it is invalid, we print an error message on stderr and exit with code 1.
+# Otherwise, we print the canonical config type on stdout and succeed.
+
+# This file is supposed to be the same for all GNU packages
+# and recognize all the CPU types, system types and aliases
+# that are meaningful with *any* GNU software.
+# Each package is responsible for reporting which valid configurations
+# it does not support.  The user should be able to distinguish
+# a failure to support a valid configuration from a meaningless
+# configuration.
+
+# The goal of this file is to map all the various variations of a given
+# machine specification into a single specification in the form:
+#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or in some cases, the newer four-part form:
+#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# It is wrong to echo any other type of specification.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION] CPU-MFR-OPSYS
+       $0 [OPTION] ALIAS
+
+Canonicalize a configuration name.
+
+Operation modes:
+  -h, --help         print this help, then exit
+  -t, --time-stamp   print date of last modification, then exit
+  -v, --version      print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.sub ($timestamp)
+
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+  case $1 in
+    --time-stamp | --time* | -t )
+       echo "$timestamp" ; exit ;;
+    --version | -v )
+       echo "$version" ; exit ;;
+    --help | --h* | -h )
+       echo "$usage"; exit ;;
+    -- )     # Stop option processing
+       shift; break ;;
+    - )	# Use stdin as input.
+       break ;;
+    -* )
+       echo "$me: invalid option $1$help"
+       exit 1 ;;
+
+    *local*)
+       # First pass through any local machine types.
+       echo $1
+       exit ;;
+
+    * )
+       break ;;
+  esac
+done
+
+case $# in
+ 0) echo "$me: missing argument$help" >&2
+    exit 1;;
+ 1) ;;
+ *) echo "$me: too many arguments$help" >&2
+    exit 1;;
+esac
+
+# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
+# Here we must recognize all the valid KERNEL-OS combinations.
+maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+case $maybe_os in
+  nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
+  uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
+  storm-chaos* | os2-emx* | rtmk-nova*)
+    os=-$maybe_os
+    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+    ;;
+  *)
+    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
+    if [ $basic_machine != $1 ]
+    then os=`echo $1 | sed 's/.*-/-/'`
+    else os=; fi
+    ;;
+esac
+
+### Let's recognize common machines as not being operating systems so
+### that things like config.sub decstation-3100 work.  We also
+### recognize some manufacturers as not being operating systems, so we
+### can provide default operating systems below.
+case $os in
+	-sun*os*)
+		# Prevent following clause from handling this invalid input.
+		;;
+	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
+	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
+	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
+	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
+	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
+	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
+	-apple | -axis | -knuth | -cray)
+		os=
+		basic_machine=$1
+		;;
+	-sim | -cisco | -oki | -wec | -winbond)
+		os=
+		basic_machine=$1
+		;;
+	-scout)
+		;;
+	-wrs)
+		os=-vxworks
+		basic_machine=$1
+		;;
+	-chorusos*)
+		os=-chorusos
+		basic_machine=$1
+		;;
+ 	-chorusrdb)
+ 		os=-chorusrdb
+		basic_machine=$1
+ 		;;
+	-hiux*)
+		os=-hiuxwe2
+		;;
+	-sco6)
+		os=-sco5v6
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco5)
+		os=-sco3.2v5
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco4)
+		os=-sco3.2v4
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco3.2.[4-9]*)
+		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco3.2v[4-9]*)
+		# Don't forget version if it is 3.2v4 or newer.
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco5v6*)
+		# Don't forget version if it is 3.2v4 or newer.
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco*)
+		os=-sco3.2v2
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-udk*)
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-isc)
+		os=-isc2.2
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-clix*)
+		basic_machine=clipper-intergraph
+		;;
+	-isc*)
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-lynx*)
+		os=-lynxos
+		;;
+	-ptx*)
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+		;;
+	-windowsnt*)
+		os=`echo $os | sed -e 's/windowsnt/winnt/'`
+		;;
+	-psos*)
+		os=-psos
+		;;
+	-mint | -mint[0-9]*)
+		basic_machine=m68k-atari
+		os=-mint
+		;;
+esac
+
+# Decode aliases for certain CPU-COMPANY combinations.
+case $basic_machine in
+	# Recognize the basic CPU types without company name.
+	# Some are omitted here because they have special meanings below.
+	1750a | 580 \
+	| a29k \
+	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
+	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
+	| am33_2.0 \
+	| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
+	| bfin \
+	| c4x | clipper \
+	| d10v | d30v | dlx | dsp16xx \
+	| fido | fr30 | frv \
+	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+	| i370 | i860 | i960 | ia64 \
+	| ip2k | iq2000 \
+	| m32c | m32r | m32rle | m68000 | m68k | m88k \
+	| maxq | mb | microblaze | mcore | mep \
+	| mips | mipsbe | mipseb | mipsel | mipsle \
+	| mips16 \
+	| mips64 | mips64el \
+	| mips64vr | mips64vrel \
+	| mips64orion | mips64orionel \
+	| mips64vr4100 | mips64vr4100el \
+	| mips64vr4300 | mips64vr4300el \
+	| mips64vr5000 | mips64vr5000el \
+	| mips64vr5900 | mips64vr5900el \
+	| mipsisa32 | mipsisa32el \
+	| mipsisa32r2 | mipsisa32r2el \
+	| mipsisa64 | mipsisa64el \
+	| mipsisa64r2 | mipsisa64r2el \
+	| mipsisa64sb1 | mipsisa64sb1el \
+	| mipsisa64sr71k | mipsisa64sr71kel \
+	| mipstx39 | mipstx39el \
+	| mn10200 | mn10300 \
+	| mt \
+	| msp430 \
+	| nios | nios2 \
+	| ns16k | ns32k \
+	| or32 \
+	| pdp10 | pdp11 | pj | pjl \
+	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
+	| pyramid \
+	| score \
+	| sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
+	| sh64 | sh64le \
+	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
+	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
+	| spu | strongarm \
+	| tahoe | thumb | tic4x | tic80 | tron \
+	| v850 | v850e \
+	| we32k \
+	| x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
+	| z8k)
+		basic_machine=$basic_machine-unknown
+		;;
+	m6811 | m68hc11 | m6812 | m68hc12)
+		# Motorola 68HC11/12.
+		basic_machine=$basic_machine-unknown
+		os=-none
+		;;
+	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+		;;
+	ms1)
+		basic_machine=mt-unknown
+		;;
+
+	# We use `pc' rather than `unknown'
+	# because (1) that's what they normally are, and
+	# (2) the word "unknown" tends to confuse beginning users.
+	i*86 | x86_64)
+	  basic_machine=$basic_machine-pc
+	  ;;
+	# Object if more than one company name word.
+	*-*-*)
+		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+		exit 1
+		;;
+	# Recognize the basic CPU types with company name.
+	580-* \
+	| a29k-* \
+	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
+	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
+	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
+	| avr-* | avr32-* \
+	| bfin-* | bs2000-* \
+	| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
+	| clipper-* | craynv-* | cydra-* \
+	| d10v-* | d30v-* | dlx-* \
+	| elxsi-* \
+	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
+	| h8300-* | h8500-* \
+	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+	| i*86-* | i860-* | i960-* | ia64-* \
+	| ip2k-* | iq2000-* \
+	| m32c-* | m32r-* | m32rle-* \
+	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
+	| m88110-* | m88k-* | maxq-* | mcore-* \
+	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
+	| mips16-* \
+	| mips64-* | mips64el-* \
+	| mips64vr-* | mips64vrel-* \
+	| mips64orion-* | mips64orionel-* \
+	| mips64vr4100-* | mips64vr4100el-* \
+	| mips64vr4300-* | mips64vr4300el-* \
+	| mips64vr5000-* | mips64vr5000el-* \
+	| mips64vr5900-* | mips64vr5900el-* \
+	| mipsisa32-* | mipsisa32el-* \
+	| mipsisa32r2-* | mipsisa32r2el-* \
+	| mipsisa64-* | mipsisa64el-* \
+	| mipsisa64r2-* | mipsisa64r2el-* \
+	| mipsisa64sb1-* | mipsisa64sb1el-* \
+	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
+	| mipstx39-* | mipstx39el-* \
+	| mmix-* \
+	| mt-* \
+	| msp430-* \
+	| nios-* | nios2-* \
+	| none-* | np1-* | ns16k-* | ns32k-* \
+	| orion-* \
+	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
+	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
+	| pyramid-* \
+	| romp-* | rs6000-* \
+	| sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
+	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
+	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
+	| sparclite-* \
+	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
+	| tahoe-* | thumb-* \
+	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+	| tron-* \
+	| v850-* | v850e-* | vax-* \
+	| we32k-* \
+	| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
+	| xstormy16-* | xtensa*-* \
+	| ymp-* \
+	| z8k-*)
+		;;
+	# Recognize the basic CPU types without company name, with glob match.
+	xtensa*)
+		basic_machine=$basic_machine-unknown
+		;;
+	# Recognize the various machine names and aliases which stand
+	# for a CPU type and a company and sometimes even an OS.
+	386bsd)
+		basic_machine=i386-unknown
+		os=-bsd
+		;;
+	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
+		basic_machine=m68000-att
+		;;
+	3b*)
+		basic_machine=we32k-att
+		;;
+	a29khif)
+		basic_machine=a29k-amd
+		os=-udi
+		;;
+    	abacus)
+		basic_machine=abacus-unknown
+		;;
+	adobe68k)
+		basic_machine=m68010-adobe
+		os=-scout
+		;;
+	alliant | fx80)
+		basic_machine=fx80-alliant
+		;;
+	altos | altos3068)
+		basic_machine=m68k-altos
+		;;
+	am29k)
+		basic_machine=a29k-none
+		os=-bsd
+		;;
+	amd64)
+		basic_machine=x86_64-pc
+		;;
+	amd64-*)
+		basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	amdahl)
+		basic_machine=580-amdahl
+		os=-sysv
+		;;
+	amiga | amiga-*)
+		basic_machine=m68k-unknown
+		;;
+	amigaos | amigados)
+		basic_machine=m68k-unknown
+		os=-amigaos
+		;;
+	amigaunix | amix)
+		basic_machine=m68k-unknown
+		os=-sysv4
+		;;
+	apollo68)
+		basic_machine=m68k-apollo
+		os=-sysv
+		;;
+	apollo68bsd)
+		basic_machine=m68k-apollo
+		os=-bsd
+		;;
+	aux)
+		basic_machine=m68k-apple
+		os=-aux
+		;;
+	balance)
+		basic_machine=ns32k-sequent
+		os=-dynix
+		;;
+	blackfin)
+		basic_machine=bfin-unknown
+		os=-linux
+		;;
+	blackfin-*)
+		basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=-linux
+		;;
+	c90)
+		basic_machine=c90-cray
+		os=-unicos
+		;;
+	convex-c1)
+		basic_machine=c1-convex
+		os=-bsd
+		;;
+	convex-c2)
+		basic_machine=c2-convex
+		os=-bsd
+		;;
+	convex-c32)
+		basic_machine=c32-convex
+		os=-bsd
+		;;
+	convex-c34)
+		basic_machine=c34-convex
+		os=-bsd
+		;;
+	convex-c38)
+		basic_machine=c38-convex
+		os=-bsd
+		;;
+	cray | j90)
+		basic_machine=j90-cray
+		os=-unicos
+		;;
+	craynv)
+		basic_machine=craynv-cray
+		os=-unicosmp
+		;;
+	cr16)
+		basic_machine=cr16-unknown
+		os=-elf
+		;;
+	crds | unos)
+		basic_machine=m68k-crds
+		;;
+	crisv32 | crisv32-* | etraxfs*)
+		basic_machine=crisv32-axis
+		;;
+	cris | cris-* | etrax*)
+		basic_machine=cris-axis
+		;;
+	crx)
+		basic_machine=crx-unknown
+		os=-elf
+		;;
+	da30 | da30-*)
+		basic_machine=m68k-da30
+		;;
+	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
+		basic_machine=mips-dec
+		;;
+	decsystem10* | dec10*)
+		basic_machine=pdp10-dec
+		os=-tops10
+		;;
+	decsystem20* | dec20*)
+		basic_machine=pdp10-dec
+		os=-tops20
+		;;
+	delta | 3300 | motorola-3300 | motorola-delta \
+	      | 3300-motorola | delta-motorola)
+		basic_machine=m68k-motorola
+		;;
+	delta88)
+		basic_machine=m88k-motorola
+		os=-sysv3
+		;;
+	djgpp)
+		basic_machine=i586-pc
+		os=-msdosdjgpp
+		;;
+	dpx20 | dpx20-*)
+		basic_machine=rs6000-bull
+		os=-bosx
+		;;
+	dpx2* | dpx2*-bull)
+		basic_machine=m68k-bull
+		os=-sysv3
+		;;
+	ebmon29k)
+		basic_machine=a29k-amd
+		os=-ebmon
+		;;
+	elxsi)
+		basic_machine=elxsi-elxsi
+		os=-bsd
+		;;
+	encore | umax | mmax)
+		basic_machine=ns32k-encore
+		;;
+	es1800 | OSE68k | ose68k | ose | OSE)
+		basic_machine=m68k-ericsson
+		os=-ose
+		;;
+	fx2800)
+		basic_machine=i860-alliant
+		;;
+	genix)
+		basic_machine=ns32k-ns
+		;;
+	gmicro)
+		basic_machine=tron-gmicro
+		os=-sysv
+		;;
+	go32)
+		basic_machine=i386-pc
+		os=-go32
+		;;
+	h3050r* | hiux*)
+		basic_machine=hppa1.1-hitachi
+		os=-hiuxwe2
+		;;
+	h8300hms)
+		basic_machine=h8300-hitachi
+		os=-hms
+		;;
+	h8300xray)
+		basic_machine=h8300-hitachi
+		os=-xray
+		;;
+	h8500hms)
+		basic_machine=h8500-hitachi
+		os=-hms
+		;;
+	harris)
+		basic_machine=m88k-harris
+		os=-sysv3
+		;;
+	hp300-*)
+		basic_machine=m68k-hp
+		;;
+	hp300bsd)
+		basic_machine=m68k-hp
+		os=-bsd
+		;;
+	hp300hpux)
+		basic_machine=m68k-hp
+		os=-hpux
+		;;
+	hp3k9[0-9][0-9] | hp9[0-9][0-9])
+		basic_machine=hppa1.0-hp
+		;;
+	hp9k2[0-9][0-9] | hp9k31[0-9])
+		basic_machine=m68000-hp
+		;;
+	hp9k3[2-9][0-9])
+		basic_machine=m68k-hp
+		;;
+	hp9k6[0-9][0-9] | hp6[0-9][0-9])
+		basic_machine=hppa1.0-hp
+		;;
+	hp9k7[0-79][0-9] | hp7[0-79][0-9])
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k78[0-9] | hp78[0-9])
+		# FIXME: really hppa2.0-hp
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
+		# FIXME: really hppa2.0-hp
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k8[0-9][13679] | hp8[0-9][13679])
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k8[0-9][0-9] | hp8[0-9][0-9])
+		basic_machine=hppa1.0-hp
+		;;
+	hppa-next)
+		os=-nextstep3
+		;;
+	hppaosf)
+		basic_machine=hppa1.1-hp
+		os=-osf
+		;;
+	hppro)
+		basic_machine=hppa1.1-hp
+		os=-proelf
+		;;
+	i370-ibm* | ibm*)
+		basic_machine=i370-ibm
+		;;
+# I'm not sure what "Sysv32" means.  Should this be sysv3.2?
+	i*86v32)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-sysv32
+		;;
+	i*86v4*)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-sysv4
+		;;
+	i*86v)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-sysv
+		;;
+	i*86sol2)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-solaris2
+		;;
+	i386mach)
+		basic_machine=i386-mach
+		os=-mach
+		;;
+	i386-vsta | vsta)
+		basic_machine=i386-unknown
+		os=-vsta
+		;;
+	iris | iris4d)
+		basic_machine=mips-sgi
+		case $os in
+		    -irix*)
+			;;
+		    *)
+			os=-irix4
+			;;
+		esac
+		;;
+	isi68 | isi)
+		basic_machine=m68k-isi
+		os=-sysv
+		;;
+	m68knommu)
+		basic_machine=m68k-unknown
+		os=-linux
+		;;
+	m68knommu-*)
+		basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=-linux
+		;;
+	m88k-omron*)
+		basic_machine=m88k-omron
+		;;
+	magnum | m3230)
+		basic_machine=mips-mips
+		os=-sysv
+		;;
+	merlin)
+		basic_machine=ns32k-utek
+		os=-sysv
+		;;
+	mingw32)
+		basic_machine=i386-pc
+		os=-mingw32
+		;;
+	mingw32ce)
+		basic_machine=arm-unknown
+		os=-mingw32ce
+		;;
+	miniframe)
+		basic_machine=m68000-convergent
+		;;
+	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
+		basic_machine=m68k-atari
+		os=-mint
+		;;
+	mips3*-*)
+		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+		;;
+	mips3*)
+		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
+		;;
+	monitor)
+		basic_machine=m68k-rom68k
+		os=-coff
+		;;
+	morphos)
+		basic_machine=powerpc-unknown
+		os=-morphos
+		;;
+	msdos)
+		basic_machine=i386-pc
+		os=-msdos
+		;;
+	ms1-*)
+		basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
+		;;
+	mvs)
+		basic_machine=i370-ibm
+		os=-mvs
+		;;
+	ncr3000)
+		basic_machine=i486-ncr
+		os=-sysv4
+		;;
+	netbsd386)
+		basic_machine=i386-unknown
+		os=-netbsd
+		;;
+	netwinder)
+		basic_machine=armv4l-rebel
+		os=-linux
+		;;
+	news | news700 | news800 | news900)
+		basic_machine=m68k-sony
+		os=-newsos
+		;;
+	news1000)
+		basic_machine=m68030-sony
+		os=-newsos
+		;;
+	news-3600 | risc-news)
+		basic_machine=mips-sony
+		os=-newsos
+		;;
+	necv70)
+		basic_machine=v70-nec
+		os=-sysv
+		;;
+	next | m*-next )
+		basic_machine=m68k-next
+		case $os in
+		    -nextstep* )
+			;;
+		    -ns2*)
+		      os=-nextstep2
+			;;
+		    *)
+		      os=-nextstep3
+			;;
+		esac
+		;;
+	nh3000)
+		basic_machine=m68k-harris
+		os=-cxux
+		;;
+	nh[45]000)
+		basic_machine=m88k-harris
+		os=-cxux
+		;;
+	nindy960)
+		basic_machine=i960-intel
+		os=-nindy
+		;;
+	mon960)
+		basic_machine=i960-intel
+		os=-mon960
+		;;
+	nonstopux)
+		basic_machine=mips-compaq
+		os=-nonstopux
+		;;
+	np1)
+		basic_machine=np1-gould
+		;;
+	nsr-tandem)
+		basic_machine=nsr-tandem
+		;;
+	op50n-* | op60c-*)
+		basic_machine=hppa1.1-oki
+		os=-proelf
+		;;
+	openrisc | openrisc-*)
+		basic_machine=or32-unknown
+		;;
+	os400)
+		basic_machine=powerpc-ibm
+		os=-os400
+		;;
+	OSE68000 | ose68000)
+		basic_machine=m68000-ericsson
+		os=-ose
+		;;
+	os68k)
+		basic_machine=m68k-none
+		os=-os68k
+		;;
+	pa-hitachi)
+		basic_machine=hppa1.1-hitachi
+		os=-hiuxwe2
+		;;
+	paragon)
+		basic_machine=i860-intel
+		os=-osf
+		;;
+	parisc)
+		basic_machine=hppa-unknown
+		os=-linux
+		;;
+	parisc-*)
+		basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=-linux
+		;;
+	pbd)
+		basic_machine=sparc-tti
+		;;
+	pbb)
+		basic_machine=m68k-tti
+		;;
+	pc532 | pc532-*)
+		basic_machine=ns32k-pc532
+		;;
+	pc98)
+		basic_machine=i386-pc
+		;;
+	pc98-*)
+		basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentium | p5 | k5 | k6 | nexgen | viac3)
+		basic_machine=i586-pc
+		;;
+	pentiumpro | p6 | 6x86 | athlon | athlon_*)
+		basic_machine=i686-pc
+		;;
+	pentiumii | pentium2 | pentiumiii | pentium3)
+		basic_machine=i686-pc
+		;;
+	pentium4)
+		basic_machine=i786-pc
+		;;
+	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentiumpro-* | p6-* | 6x86-* | athlon-*)
+		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentium4-*)
+		basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pn)
+		basic_machine=pn-gould
+		;;
+	power)	basic_machine=power-ibm
+		;;
+	ppc)	basic_machine=powerpc-unknown
+		;;
+	ppc-*)	basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ppcle | powerpclittle | ppc-le | powerpc-little)
+		basic_machine=powerpcle-unknown
+		;;
+	ppcle-* | powerpclittle-*)
+		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ppc64)	basic_machine=powerpc64-unknown
+		;;
+	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ppc64le | powerpc64little | ppc64-le | powerpc64-little)
+		basic_machine=powerpc64le-unknown
+		;;
+	ppc64le-* | powerpc64little-*)
+		basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ps2)
+		basic_machine=i386-ibm
+		;;
+	pw32)
+		basic_machine=i586-unknown
+		os=-pw32
+		;;
+	rdos)
+		basic_machine=i386-pc
+		os=-rdos
+		;;
+	rom68k)
+		basic_machine=m68k-rom68k
+		os=-coff
+		;;
+	rm[46]00)
+		basic_machine=mips-siemens
+		;;
+	rtpc | rtpc-*)
+		basic_machine=romp-ibm
+		;;
+	s390 | s390-*)
+		basic_machine=s390-ibm
+		;;
+	s390x | s390x-*)
+		basic_machine=s390x-ibm
+		;;
+	sa29200)
+		basic_machine=a29k-amd
+		os=-udi
+		;;
+	sb1)
+		basic_machine=mipsisa64sb1-unknown
+		;;
+	sb1el)
+		basic_machine=mipsisa64sb1el-unknown
+		;;
+	sde)
+		basic_machine=mipsisa32-sde
+		os=-elf
+		;;
+	sei)
+		basic_machine=mips-sei
+		os=-seiux
+		;;
+	sequent)
+		basic_machine=i386-sequent
+		;;
+	sh)
+		basic_machine=sh-hitachi
+		os=-hms
+		;;
+	sh5el)
+		basic_machine=sh5le-unknown
+		;;
+	sh64)
+		basic_machine=sh64-unknown
+		;;
+	sparclite-wrs | simso-wrs)
+		basic_machine=sparclite-wrs
+		os=-vxworks
+		;;
+	sps7)
+		basic_machine=m68k-bull
+		os=-sysv2
+		;;
+	spur)
+		basic_machine=spur-unknown
+		;;
+	st2000)
+		basic_machine=m68k-tandem
+		;;
+	stratus)
+		basic_machine=i860-stratus
+		os=-sysv4
+		;;
+	sun2)
+		basic_machine=m68000-sun
+		;;
+	sun2os3)
+		basic_machine=m68000-sun
+		os=-sunos3
+		;;
+	sun2os4)
+		basic_machine=m68000-sun
+		os=-sunos4
+		;;
+	sun3os3)
+		basic_machine=m68k-sun
+		os=-sunos3
+		;;
+	sun3os4)
+		basic_machine=m68k-sun
+		os=-sunos4
+		;;
+	sun4os3)
+		basic_machine=sparc-sun
+		os=-sunos3
+		;;
+	sun4os4)
+		basic_machine=sparc-sun
+		os=-sunos4
+		;;
+	sun4sol2)
+		basic_machine=sparc-sun
+		os=-solaris2
+		;;
+	sun3 | sun3-*)
+		basic_machine=m68k-sun
+		;;
+	sun4)
+		basic_machine=sparc-sun
+		;;
+	sun386 | sun386i | roadrunner)
+		basic_machine=i386-sun
+		;;
+	sv1)
+		basic_machine=sv1-cray
+		os=-unicos
+		;;
+	symmetry)
+		basic_machine=i386-sequent
+		os=-dynix
+		;;
+	t3e)
+		basic_machine=alphaev5-cray
+		os=-unicos
+		;;
+	t90)
+		basic_machine=t90-cray
+		os=-unicos
+		;;
+	tic54x | c54x*)
+		basic_machine=tic54x-unknown
+		os=-coff
+		;;
+	tic55x | c55x*)
+		basic_machine=tic55x-unknown
+		os=-coff
+		;;
+	tic6x | c6x*)
+		basic_machine=tic6x-unknown
+		os=-coff
+		;;
+	tile*)
+		basic_machine=tile-unknown
+		os=-linux-gnu
+		;;
+	tx39)
+		basic_machine=mipstx39-unknown
+		;;
+	tx39el)
+		basic_machine=mipstx39el-unknown
+		;;
+	toad1)
+		basic_machine=pdp10-xkl
+		os=-tops20
+		;;
+	tower | tower-32)
+		basic_machine=m68k-ncr
+		;;
+	tpf)
+		basic_machine=s390x-ibm
+		os=-tpf
+		;;
+	udi29k)
+		basic_machine=a29k-amd
+		os=-udi
+		;;
+	ultra3)
+		basic_machine=a29k-nyu
+		os=-sym1
+		;;
+	v810 | necv810)
+		basic_machine=v810-nec
+		os=-none
+		;;
+	vaxv)
+		basic_machine=vax-dec
+		os=-sysv
+		;;
+	vms)
+		basic_machine=vax-dec
+		os=-vms
+		;;
+	vpp*|vx|vx-*)
+		basic_machine=f301-fujitsu
+		;;
+	vxworks960)
+		basic_machine=i960-wrs
+		os=-vxworks
+		;;
+	vxworks68)
+		basic_machine=m68k-wrs
+		os=-vxworks
+		;;
+	vxworks29k)
+		basic_machine=a29k-wrs
+		os=-vxworks
+		;;
+	w65*)
+		basic_machine=w65-wdc
+		os=-none
+		;;
+	w89k-*)
+		basic_machine=hppa1.1-winbond
+		os=-proelf
+		;;
+	xbox)
+		basic_machine=i686-pc
+		os=-mingw32
+		;;
+	xps | xps100)
+		basic_machine=xps100-honeywell
+		;;
+	ymp)
+		basic_machine=ymp-cray
+		os=-unicos
+		;;
+	z8k-*-coff)
+		basic_machine=z8k-unknown
+		os=-sim
+		;;
+	none)
+		basic_machine=none-none
+		os=-none
+		;;
+
+# Here we handle the default manufacturer of certain CPU types.  It is in
+# some cases the only manufacturer, in others, it is the most popular.
+	w89k)
+		basic_machine=hppa1.1-winbond
+		;;
+	op50n)
+		basic_machine=hppa1.1-oki
+		;;
+	op60c)
+		basic_machine=hppa1.1-oki
+		;;
+	romp)
+		basic_machine=romp-ibm
+		;;
+	mmix)
+		basic_machine=mmix-knuth
+		;;
+	rs6000)
+		basic_machine=rs6000-ibm
+		;;
+	vax)
+		basic_machine=vax-dec
+		;;
+	pdp10)
+		# there are many clones, so DEC is not a safe bet
+		basic_machine=pdp10-unknown
+		;;
+	pdp11)
+		basic_machine=pdp11-dec
+		;;
+	we32k)
+		basic_machine=we32k-att
+		;;
+	sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
+		basic_machine=sh-unknown
+		;;
+	sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
+		basic_machine=sparc-sun
+		;;
+	cydra)
+		basic_machine=cydra-cydrome
+		;;
+	orion)
+		basic_machine=orion-highlevel
+		;;
+	orion105)
+		basic_machine=clipper-highlevel
+		;;
+	mac | mpw | mac-mpw)
+		basic_machine=m68k-apple
+		;;
+	pmac | pmac-mpw)
+		basic_machine=powerpc-apple
+		;;
+	*-unknown)
+		# Make sure to match an already-canonicalized machine name.
+		;;
+	*)
+		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+		exit 1
+		;;
+esac
+
+# Here we canonicalize certain aliases for manufacturers.
+case $basic_machine in
+	*-digital*)
+		basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
+		;;
+	*-commodore*)
+		basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
+		;;
+	*)
+		;;
+esac
+
+# Decode manufacturer-specific aliases for certain operating systems.
+
+if [ x"$os" != x"" ]
+then
+case $os in
+        # First match some system type aliases
+        # that might get confused with valid system types.
+	# -solaris* is a basic system type, with this one exception.
+	-solaris1 | -solaris1.*)
+		os=`echo $os | sed -e 's|solaris1|sunos4|'`
+		;;
+	-solaris)
+		os=-solaris2
+		;;
+	-svr4*)
+		os=-sysv4
+		;;
+	-unixware*)
+		os=-sysv4.2uw
+		;;
+	-gnu/linux*)
+		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
+		;;
+	# First accept the basic system types.
+	# The portable systems comes first.
+	# Each alternative MUST END IN A *, to match a version number.
+	# -sysv* is not here because it comes later, after sysvr4.
+	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
+	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
+	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
+	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
+	      | -aos* \
+	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
+	      | -openbsd* | -solidbsd* \
+	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
+	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+	      | -chorusos* | -chorusrdb* \
+	      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+	      | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
+	      | -uxpv* | -beos* | -mpeix* | -udk* \
+	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
+	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
+	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
+	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
+	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
+	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
+	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops*)
+	# Remember, each alternative MUST END IN *, to match a version number.
+		;;
+	-qnx*)
+		case $basic_machine in
+		    x86-* | i*86-*)
+			;;
+		    *)
+			os=-nto$os
+			;;
+		esac
+		;;
+	-nto-qnx*)
+		;;
+	-nto*)
+		os=`echo $os | sed -e 's|nto|nto-qnx|'`
+		;;
+	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
+	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
+	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
+		;;
+	-mac*)
+		os=`echo $os | sed -e 's|mac|macos|'`
+		;;
+	-linux-dietlibc)
+		os=-linux-dietlibc
+		;;
+	-linux*)
+		os=`echo $os | sed -e 's|linux|linux-gnu|'`
+		;;
+	-sunos5*)
+		os=`echo $os | sed -e 's|sunos5|solaris2|'`
+		;;
+	-sunos6*)
+		os=`echo $os | sed -e 's|sunos6|solaris3|'`
+		;;
+	-opened*)
+		os=-openedition
+		;;
+        -os400*)
+		os=-os400
+		;;
+	-wince*)
+		os=-wince
+		;;
+	-osfrose*)
+		os=-osfrose
+		;;
+	-osf*)
+		os=-osf
+		;;
+	-utek*)
+		os=-bsd
+		;;
+	-dynix*)
+		os=-bsd
+		;;
+	-acis*)
+		os=-aos
+		;;
+	-atheos*)
+		os=-atheos
+		;;
+	-syllable*)
+		os=-syllable
+		;;
+	-386bsd)
+		os=-bsd
+		;;
+	-ctix* | -uts*)
+		os=-sysv
+		;;
+	-nova*)
+		os=-rtmk-nova
+		;;
+	-ns2 )
+		os=-nextstep2
+		;;
+	-nsk*)
+		os=-nsk
+		;;
+	# Preserve the version number of sinix5.
+	-sinix5.*)
+		os=`echo $os | sed -e 's|sinix|sysv|'`
+		;;
+	-sinix*)
+		os=-sysv4
+		;;
+        -tpf*)
+		os=-tpf
+		;;
+	-triton*)
+		os=-sysv3
+		;;
+	-oss*)
+		os=-sysv3
+		;;
+	-svr4)
+		os=-sysv4
+		;;
+	-svr3)
+		os=-sysv3
+		;;
+	-sysvr4)
+		os=-sysv4
+		;;
+	# This must come after -sysvr4.
+	-sysv*)
+		;;
+	-ose*)
+		os=-ose
+		;;
+	-es1800*)
+		os=-ose
+		;;
+	-xenix)
+		os=-xenix
+		;;
+	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+		os=-mint
+		;;
+	-aros*)
+		os=-aros
+		;;
+	-kaos*)
+		os=-kaos
+		;;
+	-zvmoe)
+		os=-zvmoe
+		;;
+	-none)
+		;;
+	*)
+		# Get rid of the `-' at the beginning of $os.
+		os=`echo $os | sed 's/[^-]*-//'`
+		echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
+		exit 1
+		;;
+esac
+else
+
+# Here we handle the default operating systems that come with various machines.
+# The value should be what the vendor currently ships out the door with their
+# machine or put another way, the most popular os provided with the machine.
+
+# Note that if you're going to try to match "-MANUFACTURER" here (say,
+# "-sun"), then you have to tell the case statement up towards the top
+# that MANUFACTURER isn't an operating system.  Otherwise, code above
+# will signal an error saying that MANUFACTURER isn't an operating
+# system, and we'll never get to this point.
+
+case $basic_machine in
+        score-*)
+		os=-elf
+		;;
+        spu-*)
+		os=-elf
+		;;
+	*-acorn)
+		os=-riscix1.2
+		;;
+	arm*-rebel)
+		os=-linux
+		;;
+	arm*-semi)
+		os=-aout
+		;;
+        c4x-* | tic4x-*)
+        	os=-coff
+		;;
+	# This must come before the *-dec entry.
+	pdp10-*)
+		os=-tops20
+		;;
+	pdp11-*)
+		os=-none
+		;;
+	*-dec | vax-*)
+		os=-ultrix4.2
+		;;
+	m68*-apollo)
+		os=-domain
+		;;
+	i386-sun)
+		os=-sunos4.0.2
+		;;
+	m68000-sun)
+		os=-sunos3
+		# This also exists in the configure program, but was not the
+		# default.
+		# os=-sunos4
+		;;
+	m68*-cisco)
+		os=-aout
+		;;
+        mep-*)
+		os=-elf
+		;;
+	mips*-cisco)
+		os=-elf
+		;;
+	mips*-*)
+		os=-elf
+		;;
+	or32-*)
+		os=-coff
+		;;
+	*-tti)	# must be before sparc entry or we get the wrong os.
+		os=-sysv3
+		;;
+	sparc-* | *-sun)
+		os=-sunos4.1.1
+		;;
+	*-be)
+		os=-beos
+		;;
+	*-haiku)
+		os=-haiku
+		;;
+	*-ibm)
+		os=-aix
+		;;
+    	*-knuth)
+		os=-mmixware
+		;;
+	*-wec)
+		os=-proelf
+		;;
+	*-winbond)
+		os=-proelf
+		;;
+	*-oki)
+		os=-proelf
+		;;
+	*-hp)
+		os=-hpux
+		;;
+	*-hitachi)
+		os=-hiux
+		;;
+	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
+		os=-sysv
+		;;
+	*-cbm)
+		os=-amigaos
+		;;
+	*-dg)
+		os=-dgux
+		;;
+	*-dolphin)
+		os=-sysv3
+		;;
+	m68k-ccur)
+		os=-rtu
+		;;
+	m88k-omron*)
+		os=-luna
+		;;
+	*-next )
+		os=-nextstep
+		;;
+	*-sequent)
+		os=-ptx
+		;;
+	*-crds)
+		os=-unos
+		;;
+	*-ns)
+		os=-genix
+		;;
+	i370-*)
+		os=-mvs
+		;;
+	*-next)
+		os=-nextstep3
+		;;
+	*-gould)
+		os=-sysv
+		;;
+	*-highlevel)
+		os=-bsd
+		;;
+	*-encore)
+		os=-bsd
+		;;
+	*-sgi)
+		os=-irix
+		;;
+	*-siemens)
+		os=-sysv4
+		;;
+	*-masscomp)
+		os=-rtu
+		;;
+	f30[01]-fujitsu | f700-fujitsu)
+		os=-uxpv
+		;;
+	*-rom68k)
+		os=-coff
+		;;
+	*-*bug)
+		os=-coff
+		;;
+	*-apple)
+		os=-macos
+		;;
+	*-atari*)
+		os=-mint
+		;;
+	*)
+		os=-none
+		;;
+esac
+fi
+
+# Here we handle the case where we know the os, and the CPU type, but not the
+# manufacturer.  We pick the logical manufacturer.
+vendor=unknown
+case $basic_machine in
+	*-unknown)
+		case $os in
+			-riscix*)
+				vendor=acorn
+				;;
+			-sunos*)
+				vendor=sun
+				;;
+			-aix*)
+				vendor=ibm
+				;;
+			-beos*)
+				vendor=be
+				;;
+			-hpux*)
+				vendor=hp
+				;;
+			-mpeix*)
+				vendor=hp
+				;;
+			-hiux*)
+				vendor=hitachi
+				;;
+			-unos*)
+				vendor=crds
+				;;
+			-dgux*)
+				vendor=dg
+				;;
+			-luna*)
+				vendor=omron
+				;;
+			-genix*)
+				vendor=ns
+				;;
+			-mvs* | -opened*)
+				vendor=ibm
+				;;
+			-os400*)
+				vendor=ibm
+				;;
+			-ptx*)
+				vendor=sequent
+				;;
+			-tpf*)
+				vendor=ibm
+				;;
+			-vxsim* | -vxworks* | -windiss*)
+				vendor=wrs
+				;;
+			-aux*)
+				vendor=apple
+				;;
+			-hms*)
+				vendor=hitachi
+				;;
+			-mpw* | -macos*)
+				vendor=apple
+				;;
+			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+				vendor=atari
+				;;
+			-vos*)
+				vendor=stratus
+				;;
+		esac
+		basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
+		;;
+esac
+
+echo $basic_machine$os
+exit
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/autoconf/build-aux/install.sh	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,5 @@
+#!/bin/sh 
+echo >&2 "No suitable 'install' command found.'" 
+echo >&2 "If automake is installed, running 'automake -fa'" 
+echo >&2 "(and ignoring the errors) might produce one." 
+exit 1 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/autoconf/build-aux/pkg.m4	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,155 @@
+# pkg.m4 - Macros to locate and utilise pkg-config.            -*- Autoconf -*-
+# 
+# Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program 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 for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# PKG_PROG_PKG_CONFIG([MIN-VERSION])
+# ----------------------------------
+AC_DEFUN([PKG_PROG_PKG_CONFIG],
+[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
+m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
+AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+	AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
+fi
+if test -n "$PKG_CONFIG"; then
+	_pkg_min_version=m4_default([$1], [0.9.0])
+	AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
+	if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+		AC_MSG_RESULT([yes])
+	else
+		AC_MSG_RESULT([no])
+		PKG_CONFIG=""
+	fi
+		
+fi[]dnl
+])# PKG_PROG_PKG_CONFIG
+
+# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+#
+# Check to see whether a particular set of modules exists.  Similar
+# to PKG_CHECK_MODULES(), but does not set variables or print errors.
+#
+#
+# Similar to PKG_CHECK_MODULES, make sure that the first instance of
+# this or PKG_CHECK_MODULES is called, or make sure to call
+# PKG_CHECK_EXISTS manually
+# --------------------------------------------------------------
+AC_DEFUN([PKG_CHECK_EXISTS],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+if test -n "$PKG_CONFIG" && \
+    AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
+  m4_ifval([$2], [$2], [:])
+m4_ifvaln([$3], [else
+  $3])dnl
+fi])
+
+
+# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
+# ---------------------------------------------
+m4_define([_PKG_CONFIG],
+[if test -n "$$1"; then
+    pkg_cv_[]$1="$$1"
+ elif test -n "$PKG_CONFIG"; then
+    PKG_CHECK_EXISTS([$3],
+                     [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
+		     [pkg_failed=yes])
+ else
+    pkg_failed=untried
+fi[]dnl
+])# _PKG_CONFIG
+
+# _PKG_SHORT_ERRORS_SUPPORTED
+# -----------------------------
+AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi[]dnl
+])# _PKG_SHORT_ERRORS_SUPPORTED
+
+
+# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
+# [ACTION-IF-NOT-FOUND])
+#
+#
+# Note that if there is a possibility the first call to
+# PKG_CHECK_MODULES might not happen, you should be sure to include an
+# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
+#
+#
+# --------------------------------------------------------------
+AC_DEFUN([PKG_CHECK_MODULES],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
+AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
+
+pkg_failed=no
+AC_MSG_CHECKING([for $1])
+
+_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
+_PKG_CONFIG([$1][_LIBS], [libs], [$2])
+
+m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
+and $1[]_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.])
+
+if test $pkg_failed = yes; then
+        _PKG_SHORT_ERRORS_SUPPORTED
+        if test $_pkg_short_errors_supported = yes; then
+	        $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1`
+        else 
+	        $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
+
+	ifelse([$4], , [AC_MSG_ERROR(dnl
+[Package requirements ($2) were not met:
+
+$$1_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+_PKG_TEXT
+])],
+		[AC_MSG_RESULT([no])
+                $4])
+elif test $pkg_failed = untried; then
+	ifelse([$4], , [AC_MSG_FAILURE(dnl
+[The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+_PKG_TEXT
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.])],
+		[$4])
+else
+	$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
+	$1[]_LIBS=$pkg_cv_[]$1[]_LIBS
+        AC_MSG_RESULT([yes])
+	ifelse([$3], , :, [$3])
+fi[]dnl
+])# PKG_CHECK_MODULES
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/autoconf/builddeps.conf.example	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,66 @@
+#
+# 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.
+#
+# 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.
+#
+
+# This is a configuration example using builddeps
+# that are downloaded from an ftp server.
+# This is how you use it:
+
+#configure --with-builddeps-server=ftp://builddeps.server/adir \
+#          --with-builddeps-conf=..../builddeps.conf.example
+#          --with-builddeps-dir=/localdisk/mybuilddeps
+
+# Translate a configuration triplet/quadruplet into something
+# known by this configuration file.
+# If no rewrite was found, then rewritten_host=${host}
+REWRITE_i686_pc_linux_gnu=i686-unknown-linux-gnu
+REWRITE_i386_pc_solaris2_10=i686-sun-solaris2_10
+ 
+# The needed cups builddeps are host independent header files.
+# I.e. they need not be part of the devkit.
+builddep_cups=lib/cups_1_3_9.zip
+builddep_cups_CFLAGS=-I${depdir}
+
+# The devkit is the cross compiler tools and sys-roots
+# for the build platform.
+builddep_devkit=sdk/sdk-${rewritten_build}-20110921.tar.gz
+
+# The freetype dependency is partyl host dependent.
+# It is stored inside the sys-root.
+builddep_freetype2=sdk/sdk-${rewritten_build}-20110921.tar.gz
+builddep_freetype2_CFLAGS=-I${depdir}/${rewritten_host}/sys-root/usr/include/freetype2
+builddep_freetype2_LIBS=-lfreetype
+
+# There are many other build dependencies, but they are implicitly
+# found inside the devkit sys-root.
+
+# The boot jdk runs on the build system and is used to compile and run
+# Java build tools and of course, the bootstrap javac.
+builddep_bootjdk_BUILD_i386_pc_solaris2=java/jdk-7u2-fcs-bin-b13-solaris-i586-17_nov_2011.zip
+builddep_bootjdk_BUILD_x86_64_pc_solaris2=java/jdk-7u2-fcs-bin-b13-solaris-x64-17_nov_2011.zip
+builddep_bootjdk_BUILD_i686_unknown_linux_gnu=java/jdk-7u2-fcs-bin-b13-linux-i586-17_nov_2011.zip
+builddep_bootjdk_BUILD_x86_64_unknown_linux_gnu=java/jdk-7u2-fcs-bin-b13-linux-x64-17_nov_2011.zip
+builddep_bootjdk_BUILD_sparc_solaris2=java/jdk-7u2-fcs-bin-b13-solaris-sparc-17_nov_2011.zip
+builddep_bootjdk_BUILD_sparcv9_solaris2=java/jdk-7u2-fcs-bin-b13-solaris-sparcv9-17_nov_2011.zip
+builddep_bootjdk_BUILD_i386_pc_windows=java/jdk-7u2-fcs-bin-b13-windows-i586-17_nov_2011.zip
+builddep_bootjdk_BUILD_x86_64_pc_windows=java/jdk-7u2-fcs-bin-b13-windows-x64-17_nov_2011.zip
+builddep_bootjdk_ROOT=${depdir}/jdk7_02/jdk1.7.0_02
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/autoconf/builddeps.conf.nfs.example	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,43 @@
+#
+# Copyright (c) 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.
+#
+# 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.
+#
+
+# This is a configuration example using an nfs-mount /java
+# it will use the builddeps directly from the nfs mounted directory.
+# This is how you use it:
+
+#configure --with-builddeps-conf=..../builddeps.conf.nfs.example
+
+REWRITE_i686_pc_linux_gnu=i686-unknown-linux-gnu
+REWRITE_i386_pc_solaris2_10=i686-sun-solaris2_10
+ 
+DEVTOOLS=/java/devtools
+
+builddep_cups=${DEVTOOLS}/linux/cups/include
+builddep_cups_CFLAGS=-I${depdir}
+
+JDK_ROOT=/java/re/jdk/7u4/latest/binaries
+builddep_bootjdk_BUILD_i386_pc_solaris2=${JDK_ROOT}/solaris-i586
+builddep_bootjdk_BUILD_x86_64_pc_solaris2=${JDK_ROOT}/solaris-amd64
+builddep_bootjdk_BUILD_i686_unknown_linux_gnu=${JDK_ROOT}/linux-i586
+builddep_bootjdk_BUILD_x86_64_unknown_linux_gnu=${JDK_ROOT}/linux-amd64
+builddep_bootjdk_ROOT=
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/autoconf/builddeps.m4	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,231 @@
+#
+# 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.
+#
+
+AC_DEFUN([BDEPS_SCAN_FOR_BUILDDEPS],
+[
+    define(LIST_OF_BUILD_DEPENDENCIES,)
+    if test "x$with_builddeps_server" != x || test "x$with_builddeps_conf" != x; then
+        if test "x$with_builddeps_conf" != x; then
+            AC_MSG_CHECKING([for supplied builddeps configuration file])
+            builddepsfile=$with_builddeps_conf        
+            if test -s $builddepsfile; then
+                . $builddepsfile
+                AC_MSG_RESULT([loaded!])
+            else
+               AC_ERROR([The given builddeps conf file $with_builddeps_conf could not be loaded!])
+           fi
+        else
+            AC_MSG_CHECKING([for builddeps.conf files in sources...])
+            builddepsfile=`mktemp`
+            touch $builddepsfile
+            # Put all found confs into a single file.
+            find ${SRC_ROOT} -name builddeps.conf -exec cat \{\} \; >> $builddepsfile
+            # Source the file to acquire the variables
+            if test -s $builddepsfile; then
+                . $builddepsfile
+                AC_MSG_RESULT([found at least one!])
+            else
+               AC_ERROR([Could not find any builddeps.conf at all!])
+           fi
+        fi
+        # Create build and host names that use _ instead of "-" and ".".
+        # This is necessary to use them in variable names.
+        build_var=`echo ${build} | tr '-' '_' | tr '.' '_'`
+        host_var=`echo ${host} | tr '-' '_' | tr '.' '_'`
+        # Extract rewrite information for build and host
+        eval rewritten_build=\${REWRITE_${build_var}}
+        if test "x$rewritten_build" = x; then
+            rewritten_build=${build}
+            echo Build stays the same $rewritten_build
+        else
+            echo Rewriting build for builddeps into $rewritten_build
+        fi
+        eval rewritten_host=\${REWRITE_${host_var}}
+        if test "x$rewritten_host" = x; then
+            rewritten_host=${host}
+            echo Host stays the same $rewritten_host
+        else
+            echo Rewriting host for builddeps into $rewritten_host
+        fi
+        rewritten_build_var=`echo ${rewritten_build} | tr '-' '_' | tr '.' '_'`
+        rewritten_host_var=`echo ${rewritten_host} | tr '-' '_' | tr '.' '_'`        
+    fi
+    AC_CHECK_PROGS(BDEPS_UNZIP, [7z unzip])
+    if test "x$BDEPS_UNZIP" = x7z; then
+        BDEPS_UNZIP="7z x"
+    fi
+
+    AC_CHECK_PROGS(BDEPS_FTP, [wget lftp ftp]) 
+])
+
+AC_DEFUN([BDEPS_FTPGET],
+[
+    # $1 is the ftp://abuilddeps.server.com/libs/cups.zip
+    # $2 is the local file name for the downloaded file.
+    VALID_TOOL=no
+    if test "x$BDEPS_FTP" = xwget; then
+       VALID_TOOL=yes
+       wget -O $2 $1
+    fi
+    if test "x$BDEPS_FTP" = xlftp; then
+       VALID_TOOL=yes
+       lftp -c "get $1 -o $2"
+    fi
+    if test "x$BDEPS_FTP" = xftp; then
+        VALID_TOOL=yes
+        FTPSERVER=`echo $1 | cut -f 3 -d '/'`
+        FTPPATH=`echo $1 | cut -f 4- -d '/'`
+        FTPUSERPWD=${FTPSERVER%%@*}
+        if test "x$FTPSERVER" != "x$FTPUSERPWD"; then
+            FTPUSER=${userpwd%%:*}
+            FTPPWD=${userpwd#*@}
+            FTPSERVER=${FTPSERVER#*@}
+        else
+            FTPUSER=ftp
+            FTPPWD=ftp
+        fi
+        # the "pass" command does not work on some
+        # ftp clients (read ftp.exe) but if it works,
+        # passive mode is better!
+        (\
+            echo "user $FTPUSER $FTPPWD"        ;\
+            echo "pass"                         ;\
+            echo "bin"                          ;\
+            echo "get $FTPPATH $2"              ;\
+        ) | ftp -in $FTPSERVER
+    fi
+    if test "x$VALID_TOOL" != xyes; then
+       AC_ERROR([I do not know how to use the tool: $BDEPS_FTP])
+    fi
+])
+
+AC_DEFUN([BDEPS_CHECK_MODULE],
+[
+    define([LIST_OF_BUILD_DEPENDENCIES],LIST_OF_BUILD_DEPENDENCIES[$2=$3'\n'])
+    if test "x$with_builddeps_server" != x || test "x$with_builddeps_conf" != x; then
+        # Source the builddeps file again, to make sure it uses the latest variables!
+        . $builddepsfile
+        # Look for a host and build machine specific resource!
+        eval resource=\${builddep_$2_BUILD_${rewritten_build_var}_HOST_${rewritten_host_var}}
+        if test "x$resource" = x; then
+            # Ok, lets instead look for a host specific resource
+            eval resource=\${builddep_$2_HOST_${rewritten_host_var}}
+        fi
+        if test "x$resource" = x; then
+            # Ok, lets instead look for a build specific resource
+            eval resource=\${builddep_$2_BUILD_${rewritten_build_var}}
+        fi
+        if test "x$resource" = x; then
+            # Ok, lets instead look for a generic resource
+            # (The $2 comes from M4 and not the shell, thus no need for eval here.)
+            resource=${builddep_$2}
+        fi
+        if test "x$resource" != x; then
+            AC_MSG_NOTICE([Using builddeps $resource for $2])
+	    # If the resource in the builddeps.conf file is an existing directory,
+	    # for example /java/linux/cups
+	    if test -d ${resource}; then
+	       depdir=${resource}
+	    else
+		BDEPS_FETCH($2, $resource, $with_builddeps_server, $with_builddeps_dir, depdir)
+	    fi
+            # Source the builddeps file again, because in the previous command, the depdir
+            # was updated to point at the current build dependency install directory.
+            . $builddepsfile
+            # Now extract variables from the builddeps.conf files.
+            theroot=${builddep_$2_ROOT}
+            thecflags=${builddep_$2_CFLAGS}
+            thelibs=${builddep_$2_LIBS}
+            if test "x$depdir" = x; then
+                AC_ERROR([Could not download build dependency $2])
+            fi
+            $1=$depdir
+            if test "x$theroot" != x; then
+               $1="$theroot"
+            fi
+            if test "x$thecflags" != x; then
+               $1_CFLAGS="$thecflags"
+            fi
+            if test "x$thelibs" != x; then
+               $1_LIBS="$thelibs"
+            fi
+            m4_default([$4], [:])
+            m4_ifvaln([$5], [else $5])
+        fi
+        m4_ifvaln([$5], [else $5])
+    fi
+])
+
+AC_DEFUN([BDEPS_FETCH],
+[
+# $1 is for example mymodule
+# $2 is for example libs/general/libmymod_1_2_3.zip
+# $3 is for example ftp://mybuilddeps.myserver.com/builddeps
+# $4 is for example /localhome/builddeps
+# $5 is the name of the variable into which we store the depdir, eg MYMOD
+# Will download ftp://mybuilddeps.myserver.com/builddeps/libs/general/libmymod_1_2_3.zip and
+# unzip into the directory: /localhome/builddeps/libmymod_1_2_3
+    filename=`basename $2`
+    filebase=`echo $filename | sed 's/\.[[^\.]]*$//'`
+    filebase=${filename%%.*}
+    extension=${filename#*.}
+    installdir=$4/$filebase
+    if test ! -f $installdir/$filename.unpacked; then
+        AC_MSG_NOTICE([Downloading build dependency $1 from $3/$2 and installing into $installdir])
+        if test ! -d $installdir; then
+            mkdir -p $installdir
+        fi
+        if test ! -d $installdir; then
+            AC_ERROR([Could not create directory $installdir])
+        fi
+        tmpfile=`mktemp $installdir/$1.XXXXXXXXX`
+        touch $tmpfile    
+        if test ! -f $tmpfile; then
+            AC_ERROR([Could not create files in directory $installdir])
+        fi
+        BDEPS_FTPGET([$3/$2] , [$tmpfile])
+        mv $tmpfile $installdir/$filename
+        if test ! -s $installdir/$filename; then 
+            AC_ERROR([Could not download $3/$2])
+        fi
+        case "$extension" in
+            zip)  echo "Unzipping $installdir/$filename..."
+               (cd $installdir ; rm -f $installdir/$filename.unpacked ; $BDEPS_UNZIP $installdir/$filename > /dev/null && touch $installdir/$filename.unpacked)
+            ;;
+            tar.gz) echo "Untaring $installdir/$filename..."
+               (cd $installdir ; rm -f $installdir/$filename.unpacked ; tar xzf $installdir/$filename && touch $installdir/$filename.unpacked)
+            ;;
+            tgz) echo "Untaring $installdir/$filename..."
+               (cd $installdir ; rm -f $installdir/$filename.unpacked ; tar xzf $installdir/$filename && touch $installdir/$filename.unpacked)
+            ;;
+            *) AC_ERROR([Cannot handle build depency archive with extension $extension])
+            ;;
+        esac
+    fi
+    if test -f $installdir/$filename.unpacked; then
+        $5=$installdir
+    fi
+])
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/autoconf/closed.version.numbers	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,28 @@
+#
+# Copyright (c) 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.
+#
+# 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.
+#
+
+LAUNCHER_NAME=java
+PRODUCT_NAME="Java(TM)"
+PRODUCT_SUFFIX="SE Runtime Environment"
+JDK_RC_PLATFORM_NAME="Platform SE"
+COMPANY_NAME="Oracle Corporation"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/autoconf/config.h.in	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,49 @@
+/*
+ * 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.
+ */
+
+#define PACKAGE_NAME "openjdk"
+#define PACKAGE_TARNAME "openjdk"
+#define PACKAGE_VERSION "version-0.1"
+#define PACKAGE_STRING "openjdk version-0.1"
+#define PACKAGE_BUGREPORT "build-infra-dev@openjdk.java.net"
+#define PACKAGE_URL ""
+#define STDC_HEADERS
+#define HAVE_SYS_TYPES_H
+#define HAVE_SYS_STAT_H
+#define HAVE_STDLIB_H
+#define HAVE_STRING_H
+#define HAVE_MEMORY_H
+#define HAVE_STRINGS_H
+#define HAVE_INTTYPES_H
+#define HAVE_STDINT_H
+#define HAVE_UNISTD_H
+#define SIZEOF_INT_P 8
+#define HAVE_CUPS_CUPS_H
+#define HAVE_CUPS_PPD_H
+#define HAVE_LIBJPEG
+#define HAVE_LIBGIF
+#define HAVE_LIBZ
+#define HAVE_LIBM
+#define HAVE_ALTZONE 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/autoconf/configure	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,16395 @@
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.67 for openjdk version-0.1.
+#
+# Report bugs to <build-infra-dev@openjdk.java.net>.
+#
+#
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
+# Foundation, Inc.
+#
+#
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='print -r --'
+  as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='printf %s\n'
+  as_echo_n='printf %s'
+else
+  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+    as_echo_n='/usr/ucb/echo -n'
+  else
+    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+    as_echo_n_body='eval
+      arg=$1;
+      case $arg in #(
+      *"$as_nl"*)
+	expr "X$arg" : "X\\(.*\\)$as_nl";
+	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+      esac;
+      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+    '
+    export as_echo_n_body
+    as_echo_n='sh -c $as_echo_n_body as_echo'
+  fi
+  export as_echo_body
+  as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  PATH_SEPARATOR=:
+  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+      PATH_SEPARATOR=';'
+  }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" ""	$as_nl"
+
+# Find who we are.  Look in the path if we contain no directory separator.
+case $0 in #((
+  *[\\/]* ) as_myself=$0 ;;
+  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+  done
+IFS=$as_save_IFS
+
+     ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+  as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there.  '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+if test "x$CONFIG_SHELL" = x; then
+  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '\${1+\"\$@\"}'='\"\$@\"'
+  setopt NO_GLOB_SUBST
+else
+  case \`(set -o) 2>/dev/null\` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
+esac
+fi
+"
+  as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
+
+exitcode=0
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+else
+  exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1"
+  as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+  as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+  eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+  test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
+test \$(( 1 + 1 )) = 2 || exit 1"
+  if (eval "$as_required") 2>/dev/null; then :
+  as_have_required=yes
+else
+  as_have_required=no
+fi
+  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+
+else
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  as_found=:
+  case $as_dir in #(
+	 /*)
+	   for as_base in sh bash ksh sh5; do
+	     # Try only shells that exist, to save several forks.
+	     as_shell=$as_dir/$as_base
+	     if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+		    { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+  CONFIG_SHELL=$as_shell as_have_required=yes
+		   if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+  break 2
+fi
+fi
+	   done;;
+       esac
+  as_found=false
+done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+	      { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+  CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
+IFS=$as_save_IFS
+
+
+      if test "x$CONFIG_SHELL" != x; then :
+  # We cannot yet assume a decent shell, so we have to provide a
+	# neutralization value for shells without unset; and this also
+	# works around shells that cannot unset nonexistent variables.
+	BASH_ENV=/dev/null
+	ENV=/dev/null
+	(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+	export CONFIG_SHELL
+	exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
+fi
+
+    if test x$as_have_required = xno; then :
+  $as_echo "$0: This script requires a shell more modern than all"
+  $as_echo "$0: the shells that I found on your system."
+  if test x${ZSH_VERSION+set} = xset ; then
+    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+  else
+    $as_echo "$0: Please tell bug-autoconf@gnu.org and
+$0: build-infra-dev@openjdk.java.net about your system,
+$0: including any error possibly output before this
+$0: message. Then install a modern shell, or manually run
+$0: the script under such a shell if you do have one."
+  fi
+  exit 1
+fi
+fi
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
+
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+  { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+  return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+  set +e
+  as_fn_set_status $1
+  exit $1
+} # as_fn_exit
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || eval $as_mkdir_p || {
+    as_dirs=
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+      test -d "$as_dir" && break
+    done
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+  eval 'as_fn_append ()
+  {
+    eval $1+=\$2
+  }'
+else
+  as_fn_append ()
+  {
+    eval $1=\$$1\$2
+  }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+  eval 'as_fn_arith ()
+  {
+    as_val=$(( $* ))
+  }'
+else
+  as_fn_arith ()
+  {
+    as_val=`expr "$@" || test $? -eq 1`
+  }
+fi # as_fn_arith
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+  as_status=$1; test $as_status -eq 0 && as_status=1
+  if test "$4"; then
+    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+  fi
+  $as_echo "$as_me: error: $2" >&2
+  as_fn_exit $as_status
+} # as_fn_error
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+
+  as_lineno_1=$LINENO as_lineno_1a=$LINENO
+  as_lineno_2=$LINENO as_lineno_2a=$LINENO
+  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
+  sed -n '
+    p
+    /[$]LINENO/=
+  ' <$as_myself |
+    sed '
+      s/[$]LINENO.*/&-/
+      t lineno
+      b
+      :lineno
+      N
+      :loop
+      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+      t loop
+      s/-\n.*//
+    ' >$as_me.lineno &&
+  chmod +x "$as_me.lineno" ||
+    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+
+  # Don't try to exec as it changes $[0], causing all sort of problems
+  # (the dirname of $[0] is not the place where we might find the
+  # original and so on.  Autoconf is especially sensitive to this).
+  . "./$as_me.lineno"
+  # Exit status is that of the last command.
+  exit
+}
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+  case `echo 'xy\c'` in
+  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
+  xy)  ECHO_C='\c';;
+  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
+       ECHO_T='	';;
+  esac;;
+*)
+  ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+  rm -f conf$$.dir/conf$$.file
+else
+  rm -f conf$$.dir
+  mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+  if ln -s conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s='ln -s'
+    # ... but there are two gotchas:
+    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+    # In both cases, we have to default to `cp -p'.
+    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+      as_ln_s='cp -p'
+  elif ln conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s=ln
+  else
+    as_ln_s='cp -p'
+  fi
+else
+  as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p='mkdir -p "$as_dir"'
+else
+  test -d ./-p && rmdir ./-p
+  as_mkdir_p=false
+fi
+
+if test -x / >/dev/null 2>&1; then
+  as_test_x='test -x'
+else
+  if ls -dL / >/dev/null 2>&1; then
+    as_ls_L_option=L
+  else
+    as_ls_L_option=
+  fi
+  as_test_x='
+    eval sh -c '\''
+      if test -d "$1"; then
+	test -d "$1/.";
+      else
+	case $1 in #(
+	-*)set "./$1";;
+	esac;
+	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
+	???[sx]*):;;*)false;;esac;fi
+    '\'' sh
+  '
+fi
+as_executable_p=$as_test_x
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+test -n "$DJDIR" || exec 7<&0 </dev/null
+exec 6>&1
+
+# Name of the host.
+# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_clean_files=
+ac_config_libobj_dir=.
+LIBOBJS=
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+
+# Identity of this package.
+PACKAGE_NAME='openjdk'
+PACKAGE_TARNAME='openjdk'
+PACKAGE_VERSION='version-0.1'
+PACKAGE_STRING='openjdk version-0.1'
+PACKAGE_BUGREPORT='build-infra-dev@openjdk.java.net'
+PACKAGE_URL=''
+
+# Factoring default headers for most tests.
+ac_includes_default="\
+#include <stdio.h>
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# ifdef HAVE_STDLIB_H
+#  include <stdlib.h>
+# endif
+#endif
+#ifdef HAVE_STRING_H
+# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
+#  include <memory.h>
+# endif
+# include <string.h>
+#endif
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#ifdef HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
+#ifdef HAVE_STDINT_H
+# include <stdint.h>
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif"
+
+ac_subst_vars='LTLIBOBJS
+LIBOBJS
+TEST_IN_BUILD
+LIBCXX
+LDFLAGS_JDKEXE_SUFFIX
+LDFLAGS_JDKLIB_SUFFIX
+LDFLAGS_JDKEXE
+LDFLAGS_JDKLIB
+CXXFLAGS_JDKEXE
+CXXFLAGS_JDKLIB
+CFLAGS_JDKEXE
+CFLAGS_JDKLIB
+PACKAGE_PATH
+IMAGES_MAKE_ARGS
+IMAGES_OUTPUTDIR
+JDK_MAKE_ARGS
+JDK_OUTPUTDIR
+HOTSPOT_MAKE_ARGS
+HOTSPOT_DIST
+HOTSPOT_OUTPUTDIR
+JAXWS_MAKE_ARGS
+JAXWS_DIST
+JAXWS_OUTPUTDIR
+JAXP_MAKE_ARGS
+JAXP_DIST
+JAXP_OUTPUTDIR
+CORBA_MAKE_ARGS
+CORBA_DIST
+CORBA_OUTPUTDIR
+LANGTOOLS_MAKE_ARGS
+LANGTOOLS_DIST
+LANGTOOLS_OUTPUTDIR
+CXX_O_FLAG_NONE
+CXX_O_FLAG_NORM
+CXX_O_FLAG_HI
+C_O_FLAG_NONE
+C_O_FLAG_NORM
+C_O_FLAG_HI
+DISABLE_NIMBUS
+GENERATE_DOCS
+ENABLE_DOCS
+LIBM
+USE_EXTERNAL_LIBZ
+USE_EXTERNAL_LIBGIF
+USE_EXTERNAL_LIBJPEG
+PULSE_LIBS
+PULSE_CFLAGS
+LIBPULSE_LIBS
+LIBPULSE_CFLAGS
+ALSA_LIBS
+ALSA_CFLAGS
+FREETYPE2_LIB_PATH
+USING_SYSTEM_FT_LIB
+FREETYPE2_LIBS
+FREETYPE2_CFLAGS
+CUPS_LIBS
+CUPS_CFLAGS
+OPENWIN_HOME
+X_EXTRA_LIBS
+X_LIBS
+X_PRE_LIBS
+X_CFLAGS
+XMKMF
+JAVAC_USE_MODE
+JAVAC_USE_DEPS
+JAVAC_SERVER_CORES
+JAVAC_SERVERS
+JAVAC_USE_REMOTE
+SERVER_JAVA
+BOOT_JDK_JVMARGS
+OVERRIDE_SRC_ROOT
+ADD_SRC_ROOT
+RMIC
+JAR
+JAVAH
+JAVAC_FLAGS
+JAVAC
+BOOT_JDK_SOURCETARGET
+JAVA
+BOOT_TOOLSJAR
+BOOT_RTJAR
+BOOT_JDK
+JAVA_CHECK
+JAVAC_CHECK
+ENDIAN
+SET_SHARED_LIBRARY_ORIGIN
+SET_SHARED_LIBRARY_MAPFILE
+SET_SHARED_LIBRARY_NAME
+SHARED_LIBRARY_FLAGS
+EXE_SUFFIX
+STATIC_LIBRARY_SUFFIX
+SHARED_LIBRARY_SUFFIX
+LIBRARY_PREFIX
+STATIC_LIBRARY
+SHARED_LIBRARY
+OBJ_SUFFIX
+USE_PRECOMPILED_HEADER
+ARCH_DATA_MODEL
+LP64
+BUILD_LOG_WRAPPER
+BUILD_LOG
+CCACHE
+UNCYGDRIVE
+MCS
+STRIP
+NM
+ASFLAGS
+AS
+CXXCPP
+CPP
+COMPILER_TYPE
+RC_FLAGS
+DUMPBIN
+WINAR
+RC
+MT
+WINLD
+ARFLAGS
+AR
+LDEXECXX
+LDCXX
+LDEXE
+LD
+ac_ct_OBJC
+OBJCFLAGS
+OBJC
+ac_ct_CXX
+CXXFLAGS
+CXX
+OBJEXT
+EXEEXT
+ac_ct_CC
+CPPFLAGS
+LDFLAGS
+CFLAGS
+CC
+HOSTCXX
+HOSTCC
+HOST_CXX
+HOST_CC
+DEFINE_CROSS_COMPILE_ARCH
+AR_OUT_OPTION
+LD_OUT_OPTION
+EXE_OUT_OPTION
+CC_OUT_OPTION
+SYS_ROOT
+BDEPS_FTP
+BDEPS_UNZIP
+PKG_CONFIG
+JDK_TOPDIR
+HOTSPOT_TOPDIR
+JAXWS_TOPDIR
+JAXP_TOPDIR
+CORBA_TOPDIR
+LANGTOOLS_TOPDIR
+OUTPUT_ROOT
+SPEC
+MSVCR100DLL
+CHECK_FOR_VCINSTALLDIR
+SETUPDEVENV
+COOKED_BUILD_NUMBER
+FULL_VERSION
+RELEASE
+JDK_VERSION
+RUNTIME_NAME
+COPYRIGHT_YEAR
+COMPANY_NAME
+JDK_RC_PLATFORM_NAME
+PRODUCT_SUFFIX
+PRODUCT_NAME
+LAUNCHER_NAME
+MILESTONE
+JDK_BUILD_NUMBER
+JDK_UPDATE_VERSION
+JDK_MICRO_VERSION
+JDK_MINOR_VERSION
+JDK_MAJOR_VERSION
+BUILD_VARIANT_RELEASE
+DEBUG_CLASSFILES
+FASTDEBUG
+VARIANT
+DEBUG_LEVEL
+JVM_VARIANT_ZEROSHARK
+JVM_VARIANT_ZERO
+JVM_VARIANT_KERNEL
+JVM_VARIANT_CLIENT
+JVM_VARIANT_SERVER
+JVM_VARIANTS
+BUILD_HEADLESS_ONLY
+BUILD_HEADLESS
+SUPPORT_HEADFUL
+SUPPORT_HEADLESS
+JDK_VARIANT
+MINIMIZE_RAM_USAGE
+JAVASE_EMBEDDED
+JIGSAW
+SET_OPENJDK
+PATH_SEP
+CYGPATH
+SRC_ROOT
+MEMORY_SIZE
+CONCURRENT_BUILD_JOBS
+NUM_CORES
+DATE_WHEN_CONFIGURED
+LEGACY_BUILD_CPU3
+LEGACY_BUILD_CPU2
+LEGACY_BUILD_CPU1
+BUILD_CPU_ENDIAN
+BUILD_CPU_BITS
+BUILD_CPU_ARCH
+BUILD_CPU
+LEGACY_BUILD_OS_API
+BUILD_OS_API
+BUILD_OS_FAMILY
+BUILD_OS
+LEGACY_HOST_CPU3
+LEGACY_HOST_CPU2
+LEGACY_HOST_CPU1
+HOST_CPU_ENDIAN
+HOST_CPU_BITS
+HOST_CPU_ARCH
+HOST_CPU
+LEGACY_HOST_OS_API
+HOST_OS_API
+HOST_OS_FAMILY
+HOST_OS
+BUILD
+HOST
+host_os
+host_vendor
+host_cpu
+host
+build_os
+build_vendor
+build_cpu
+build
+FILE
+EXPR
+READELF
+OTOOL
+LDD
+UNZIP
+ZIP
+XARGS
+WC
+TOUCH
+TR
+TEE
+TAIL
+TAR
+SORT
+SH
+SED
+RM
+THEPWDCMD
+PRINTF
+NAWK
+MV
+MKDIR
+MAKE
+LS
+LN
+HEAD
+FIND_DELETE
+FIND
+FGREP
+EGREP
+GREP
+ECHO
+DIFF
+DF
+DATE
+CUT
+CPIO
+CP
+CHMOD
+CAT
+AWK
+READLINK
+CONFIGURE_COMMAND_LINE
+PKGHANDLER
+target_alias
+host_alias
+build_alias
+LIBS
+ECHO_T
+ECHO_N
+ECHO_C
+DEFS
+mandir
+localedir
+libdir
+psdir
+pdfdir
+dvidir
+htmldir
+infodir
+docdir
+oldincludedir
+includedir
+localstatedir
+sharedstatedir
+sysconfdir
+datadir
+datarootdir
+libexecdir
+sbindir
+bindir
+program_transform_name
+prefix
+exec_prefix
+PACKAGE_URL
+PACKAGE_BUGREPORT
+PACKAGE_STRING
+PACKAGE_VERSION
+PACKAGE_TARNAME
+PACKAGE_NAME
+PATH_SEPARATOR
+SHELL'
+ac_subst_files=''
+ac_user_opts='
+enable_option_checking
+with_data_model
+with_num_cores
+with_memory_size
+enable_openjdk
+enable_jigsaw
+with_jdk_variant
+enable_headful
+with_jvm_variants
+enable_debug
+with_debug_level
+with_msvcr100dll
+with_builddeps_conf
+with_builddeps_server
+with_builddeps_dir
+with_builddeps_group
+enable_list_builddeps
+with_sys_root
+enable_ccache
+with_ccache_dir
+enable_precompiled_headers
+with_boot_jdk
+with_add_source_root
+with_override_source_root
+with_adds_and_overrides
+with_override_langtools
+with_override_corba
+with_override_jaxp
+with_override_jaxws
+with_override_hotspot
+with_override_jdk
+with_boot_jdk_jvmargs
+with_server_java
+enable_javac_server
+with_javac_server_cores
+enable_javac_deps
+enable_javac_multi_core
+enable_macosx_runtime_support
+with_x
+with_cups
+with_cups_include
+with_cups_lib
+with_freetype
+with_alsa
+with_alsa_include
+with_alsa_lib
+with_pulse
+with_pulse_include
+with_pulse_lib
+enable_docs
+enable_nimbus
+enable_static_link_stdc__
+enable_hotspot_test_in_build
+'
+      ac_precious_vars='build_alias
+host_alias
+target_alias
+PKG_CONFIG
+CC
+CFLAGS
+LDFLAGS
+LIBS
+CPPFLAGS
+CXX
+CXXFLAGS
+CCC
+OBJC
+OBJCFLAGS
+CPP
+CXXCPP
+XMKMF
+FREETYPE2_CFLAGS
+FREETYPE2_LIBS
+ALSA_CFLAGS
+ALSA_LIBS
+LIBPULSE_CFLAGS
+LIBPULSE_LIBS'
+
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+ac_unrecognized_opts=
+ac_unrecognized_sep=
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+# (The list follows the same order as the GNU Coding Standards.)
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
+
+ac_prev=
+ac_dashdash=
+for ac_option
+do
+  # If the previous option needs an argument, assign it.
+  if test -n "$ac_prev"; then
+    eval $ac_prev=\$ac_option
+    ac_prev=
+    continue
+  fi
+
+  case $ac_option in
+  *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+  *=)   ac_optarg= ;;
+  *)    ac_optarg=yes ;;
+  esac
+
+  # Accept the important Cygnus configure options, so we can diagnose typos.
+
+  case $ac_dashdash$ac_option in
+  --)
+    ac_dashdash=yes ;;
+
+  -bindir | --bindir | --bindi | --bind | --bin | --bi)
+    ac_prev=bindir ;;
+  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+    bindir=$ac_optarg ;;
+
+  -build | --build | --buil | --bui | --bu)
+    ac_prev=build_alias ;;
+  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+    build_alias=$ac_optarg ;;
+
+  -cache-file | --cache-file | --cache-fil | --cache-fi \
+  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+    ac_prev=cache_file ;;
+  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+    cache_file=$ac_optarg ;;
+
+  --config-cache | -C)
+    cache_file=config.cache ;;
+
+  -datadir | --datadir | --datadi | --datad)
+    ac_prev=datadir ;;
+  -datadir=* | --datadir=* | --datadi=* | --datad=*)
+    datadir=$ac_optarg ;;
+
+  -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+  | --dataroo | --dataro | --datar)
+    ac_prev=datarootdir ;;
+  -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+  | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+    datarootdir=$ac_optarg ;;
+
+  -disable-* | --disable-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      as_fn_error $? "invalid feature name: $ac_useropt"
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"enable_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval enable_$ac_useropt=no ;;
+
+  -docdir | --docdir | --docdi | --doc | --do)
+    ac_prev=docdir ;;
+  -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+    docdir=$ac_optarg ;;
+
+  -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+    ac_prev=dvidir ;;
+  -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+    dvidir=$ac_optarg ;;
+
+  -enable-* | --enable-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      as_fn_error $? "invalid feature name: $ac_useropt"
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"enable_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval enable_$ac_useropt=\$ac_optarg ;;
+
+  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+  | --exec | --exe | --ex)
+    ac_prev=exec_prefix ;;
+  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+  | --exec=* | --exe=* | --ex=*)
+    exec_prefix=$ac_optarg ;;
+
+  -gas | --gas | --ga | --g)
+    # Obsolete; use --with-gas.
+    with_gas=yes ;;
+
+  -help | --help | --hel | --he | -h)
+    ac_init_help=long ;;
+  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+    ac_init_help=recursive ;;
+  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+    ac_init_help=short ;;
+
+  -host | --host | --hos | --ho)
+    ac_prev=host_alias ;;
+  -host=* | --host=* | --hos=* | --ho=*)
+    host_alias=$ac_optarg ;;
+
+  -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+    ac_prev=htmldir ;;
+  -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+  | --ht=*)
+    htmldir=$ac_optarg ;;
+
+  -includedir | --includedir | --includedi | --included | --include \
+  | --includ | --inclu | --incl | --inc)
+    ac_prev=includedir ;;
+  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+  | --includ=* | --inclu=* | --incl=* | --inc=*)
+    includedir=$ac_optarg ;;
+
+  -infodir | --infodir | --infodi | --infod | --info | --inf)
+    ac_prev=infodir ;;
+  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+    infodir=$ac_optarg ;;
+
+  -libdir | --libdir | --libdi | --libd)
+    ac_prev=libdir ;;
+  -libdir=* | --libdir=* | --libdi=* | --libd=*)
+    libdir=$ac_optarg ;;
+
+  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+  | --libexe | --libex | --libe)
+    ac_prev=libexecdir ;;
+  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+  | --libexe=* | --libex=* | --libe=*)
+    libexecdir=$ac_optarg ;;
+
+  -localedir | --localedir | --localedi | --localed | --locale)
+    ac_prev=localedir ;;
+  -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+    localedir=$ac_optarg ;;
+
+  -localstatedir | --localstatedir | --localstatedi | --localstated \
+  | --localstate | --localstat | --localsta | --localst | --locals)
+    ac_prev=localstatedir ;;
+  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+  | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
+    localstatedir=$ac_optarg ;;
+
+  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+    ac_prev=mandir ;;
+  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+    mandir=$ac_optarg ;;
+
+  -nfp | --nfp | --nf)
+    # Obsolete; use --without-fp.
+    with_fp=no ;;
+
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c | -n)
+    no_create=yes ;;
+
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+    no_recursion=yes ;;
+
+  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+  | --oldin | --oldi | --old | --ol | --o)
+    ac_prev=oldincludedir ;;
+  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+    oldincludedir=$ac_optarg ;;
+
+  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+    ac_prev=prefix ;;
+  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+    prefix=$ac_optarg ;;
+
+  -program-prefix | --program-prefix | --program-prefi | --program-pref \
+  | --program-pre | --program-pr | --program-p)
+    ac_prev=program_prefix ;;
+  -program-prefix=* | --program-prefix=* | --program-prefi=* \
+  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+    program_prefix=$ac_optarg ;;
+
+  -program-suffix | --program-suffix | --program-suffi | --program-suff \
+  | --program-suf | --program-su | --program-s)
+    ac_prev=program_suffix ;;
+  -program-suffix=* | --program-suffix=* | --program-suffi=* \
+  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+    program_suffix=$ac_optarg ;;
+
+  -program-transform-name | --program-transform-name \
+  | --program-transform-nam | --program-transform-na \
+  | --program-transform-n | --program-transform- \
+  | --program-transform | --program-transfor \
+  | --program-transfo | --program-transf \
+  | --program-trans | --program-tran \
+  | --progr-tra | --program-tr | --program-t)
+    ac_prev=program_transform_name ;;
+  -program-transform-name=* | --program-transform-name=* \
+  | --program-transform-nam=* | --program-transform-na=* \
+  | --program-transform-n=* | --program-transform-=* \
+  | --program-transform=* | --program-transfor=* \
+  | --program-transfo=* | --program-transf=* \
+  | --program-trans=* | --program-tran=* \
+  | --progr-tra=* | --program-tr=* | --program-t=*)
+    program_transform_name=$ac_optarg ;;
+
+  -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+    ac_prev=pdfdir ;;
+  -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+    pdfdir=$ac_optarg ;;
+
+  -psdir | --psdir | --psdi | --psd | --ps)
+    ac_prev=psdir ;;
+  -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+    psdir=$ac_optarg ;;
+
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil)
+    silent=yes ;;
+
+  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+    ac_prev=sbindir ;;
+  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+  | --sbi=* | --sb=*)
+    sbindir=$ac_optarg ;;
+
+  -sharedstatedir | --sharedstatedir | --sharedstatedi \
+  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+  | --sharedst | --shareds | --shared | --share | --shar \
+  | --sha | --sh)
+    ac_prev=sharedstatedir ;;
+  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+  | --sha=* | --sh=*)
+    sharedstatedir=$ac_optarg ;;
+
+  -site | --site | --sit)
+    ac_prev=site ;;
+  -site=* | --site=* | --sit=*)
+    site=$ac_optarg ;;
+
+  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+    ac_prev=srcdir ;;
+  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+    srcdir=$ac_optarg ;;
+
+  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+  | --syscon | --sysco | --sysc | --sys | --sy)
+    ac_prev=sysconfdir ;;
+  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+    sysconfdir=$ac_optarg ;;
+
+  -target | --target | --targe | --targ | --tar | --ta | --t)
+    ac_prev=target_alias ;;
+  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+    target_alias=$ac_optarg ;;
+
+  -v | -verbose | --verbose | --verbos | --verbo | --verb)
+    verbose=yes ;;
+
+  -version | --version | --versio | --versi | --vers | -V)
+    ac_init_version=: ;;
+
+  -with-* | --with-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      as_fn_error $? "invalid package name: $ac_useropt"
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"with_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval with_$ac_useropt=\$ac_optarg ;;
+
+  -without-* | --without-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      as_fn_error $? "invalid package name: $ac_useropt"
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"with_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval with_$ac_useropt=no ;;
+
+  --x)
+    # Obsolete; use --with-x.
+    with_x=yes ;;
+
+  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+  | --x-incl | --x-inc | --x-in | --x-i)
+    ac_prev=x_includes ;;
+  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+    x_includes=$ac_optarg ;;
+
+  -x-libraries | --x-libraries | --x-librarie | --x-librari \
+  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+    ac_prev=x_libraries ;;
+  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+    x_libraries=$ac_optarg ;;
+
+  -*) as_fn_error $? "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information"
+    ;;
+
+  *=*)
+    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+    # Reject names that are not valid shell variable names.
+    case $ac_envvar in #(
+      '' | [0-9]* | *[!_$as_cr_alnum]* )
+      as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
+    esac
+    eval $ac_envvar=\$ac_optarg
+    export $ac_envvar ;;
+
+  *)
+    # FIXME: should be removed in autoconf 3.0.
+    $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+      $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+    ;;
+
+  esac
+done
+
+if test -n "$ac_prev"; then
+  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+  as_fn_error $? "missing argument to $ac_option"
+fi
+
+if test -n "$ac_unrecognized_opts"; then
+  case $enable_option_checking in
+    no) ;;
+    fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
+    *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+  esac
+fi
+
+# Check all directory arguments for consistency.
+for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
+		datadir sysconfdir sharedstatedir localstatedir includedir \
+		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+		libdir localedir mandir
+do
+  eval ac_val=\$$ac_var
+  # Remove trailing slashes.
+  case $ac_val in
+    */ )
+      ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
+      eval $ac_var=\$ac_val;;
+  esac
+  # Be sure to have absolute directory names.
+  case $ac_val in
+    [\\/$]* | ?:[\\/]* )  continue;;
+    NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
+  esac
+  as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+  if test "x$build_alias" = x; then
+    cross_compiling=maybe
+    $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host.
+    If a cross compiler is detected then cross compile mode will be used" >&2
+  elif test "x$build_alias" != "x$host_alias"; then
+    cross_compiling=yes
+  fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ac_ls_di=`ls -di .` &&
+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+  as_fn_error $? "working directory cannot be determined"
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+  as_fn_error $? "pwd does not report name of working directory"
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+  ac_srcdir_defaulted=yes
+  # Try the directory containing this script, then the parent directory.
+  ac_confdir=`$as_dirname -- "$as_myself" ||
+$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_myself" : 'X\(//\)[^/]' \| \
+	 X"$as_myself" : 'X\(//\)$' \| \
+	 X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_myself" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+  srcdir=$ac_confdir
+  if test ! -r "$srcdir/$ac_unique_file"; then
+    srcdir=..
+  fi
+else
+  ac_srcdir_defaulted=no
+fi
+if test ! -r "$srcdir/$ac_unique_file"; then
+  test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+  as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
+fi
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_abs_confdir=`(
+	cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
+	pwd)`
+# When building in place, set srcdir=.
+if test "$ac_abs_confdir" = "$ac_pwd"; then
+  srcdir=.
+fi
+# Remove unnecessary trailing slashes from srcdir.
+# Double slashes in file names in object file debugging info
+# mess up M-x gdb in Emacs.
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
+for ac_var in $ac_precious_vars; do
+  eval ac_env_${ac_var}_set=\${${ac_var}+set}
+  eval ac_env_${ac_var}_value=\$${ac_var}
+  eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+  eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+  # Omit some internal or obsolete options to make the list less imposing.
+  # This message is too long to be a string in the A/UX 3.1 sh.
+  cat <<_ACEOF
+\`configure' configures openjdk version-0.1 to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE.  See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+  -h, --help              display this help and exit
+      --help=short        display options specific to this package
+      --help=recursive    display the short help of all the included packages
+  -V, --version           display version information and exit
+  -q, --quiet, --silent   do not print \`checking ...' messages
+      --cache-file=FILE   cache test results in FILE [disabled]
+  -C, --config-cache      alias for \`--cache-file=config.cache'
+  -n, --no-create         do not create output files
+      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
+
+Installation directories:
+  --prefix=PREFIX         install architecture-independent files in PREFIX
+                          [$ac_default_prefix]
+  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
+                          [PREFIX]
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+  --bindir=DIR            user executables [EPREFIX/bin]
+  --sbindir=DIR           system admin executables [EPREFIX/sbin]
+  --libexecdir=DIR        program executables [EPREFIX/libexec]
+  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
+  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
+  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
+  --libdir=DIR            object code libraries [EPREFIX/lib]
+  --includedir=DIR        C header files [PREFIX/include]
+  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
+  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
+  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
+  --infodir=DIR           info documentation [DATAROOTDIR/info]
+  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
+  --mandir=DIR            man documentation [DATAROOTDIR/man]
+  --docdir=DIR            documentation root [DATAROOTDIR/doc/openjdk]
+  --htmldir=DIR           html documentation [DOCDIR]
+  --dvidir=DIR            dvi documentation [DOCDIR]
+  --pdfdir=DIR            pdf documentation [DOCDIR]
+  --psdir=DIR             ps documentation [DOCDIR]
+_ACEOF
+
+  cat <<\_ACEOF
+
+X features:
+  --x-includes=DIR    X include files are in DIR
+  --x-libraries=DIR   X library files are in DIR
+
+System types:
+  --build=BUILD     configure for building on BUILD [guessed]
+  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+  case $ac_init_help in
+     short | recursive ) echo "Configuration of openjdk version-0.1:";;
+   esac
+  cat <<\_ACEOF
+
+Optional Features:
+  --disable-option-checking  ignore unrecognized --enable/--with options
+  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --enable-openjdk        build OpenJDK regardless of the presence of closed
+                          repositories [disabled]
+  --enable-jigsaw         build Jigsaw images (not yet available) [disabled]
+  --disable-headful       build headful support (graphical UI support)
+                          [enabled]
+  --enable-debug          set the debug level to fastdebug (shorthand for
+                          --with-debug-level=fastdebug) [disabled]
+  --enable-list-builddeps list all build dependencies known to the configure
+                          script
+  --disable-ccache        use ccache to speed up recompilations [enabled]
+  --disable-precompiled-headers
+                          use precompiled headers when compiling C++ [enabled]
+  --enable-javac-server   enable the shared javac server during the build
+                          process [disabled]
+  --enable-javac-deps     enable the dependency tracking between Java packages
+                          [disabled]
+  --enable-javac-multi-core
+                          compile Java packages concurrently [disabled]
+  --disable-macosx-runtime-support
+                          disable the use of MacOSX Java runtime support
+                          framework [enabled]
+  --enable-docs           enable generation of Javadoc documentation
+                          [disabled]
+  --disable-nimbus        disable Nimbus L&F [enabled]
+  --disable-static-link-stdc++
+                          disable static linking of the C++ runtime on Linux
+                          [enabled]
+  --enable-hotspot-test-in-build
+                          enable running of Queens test after Hotspot build
+                          (not yet available) [disabled]
+
+Optional Packages:
+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --with-data-model       build 32-bit or 64-bit binaries (for platforms that
+                          support it), e.g. --with-data-model=32 [guessed]
+  --with-num-cores        number of cores in the build system, e.g.
+                          --with-num-cores=8 [probed]
+  --with-memory-size      memory (in MB) available in the build system, e.g.
+                          --with-memory-size=1024 [probed]
+  --with-jdk-variant      JDK variant to build (normal, embedded) [normal]
+  --with-jvm-variants     JVM variants (separated by commas) to build (server,
+                          client, kernel, zero, zeroshark) [server]
+  --with-debug-level      set the debug level (release, fastdebug, slowdebug)
+                          [release]
+  --with-msvcr100dll      copy this msvcr100.dll into the built JDK
+  --with-builddeps-conf   use this configuration file for the builddeps
+  --with-builddeps-server download and use build dependencies from this server
+                          url, e.g.
+                          --with-builddeps-server=ftp://example.com/dir
+  --with-builddeps-dir    store downloaded build dependencies here
+                          [d/localhome/builddeps]
+  --with-builddeps-group  chgrp the downloaded build dependencies to this
+                          group
+  --with-sys-root         pass this sys-root to the compilers and linker
+                          (useful if the sys-root encoded in the cross
+                          compiler tools is incorrect)
+  --with-ccache-dir       where to store ccache files [~/.ccache]
+  --with-boot-jdk         path to Boot JDK (used to bootstrap build) [probed]
+  --with-add-source-root  for each and every source directory, look in this
+                          additional source root for the same directory; if it
+                          exists and have files in it, include it in the build
+  --with-override-source-root
+                          for each and every source directory, look in this
+                          override source root for the same directory; if it
+                          exists, use that directory instead and ignore the
+                          directory in the original source root
+  --with-adds-and-overrides
+                          use the subdirs 'adds' and 'overrides' in the
+                          specified directory as add-source-root and
+                          override-source-root
+  --with-override-langtools
+                          use this langtools dir for the build
+  --with-override-corba   use this corba dir for the build
+  --with-override-jaxp    use this jaxp dir for the build
+  --with-override-jaxws   use this jaxws dir for the build
+  --with-override-hotspot use this hotspot dir for the build
+  --with-override-jdk     use this jdk dir for the build
+  --with-boot-jdk-jvmargs specify JVM arguments to be passed to all
+                          invocations of the Boot JDK, overriding the default
+                          values, e.g --with-boot-jdk-jvmargs="-Xmx8G
+                          -enableassertions"
+  --with-server-java      use this java binary for running the javac
+                          background server and other long running java tasks
+                          in the build process, e.g.
+                          ---with-server-java="/opt/jrockit/bin/java -server"
+  --with-javac-server-cores
+                          use at most this number of concurrent threads on the
+                          javac server [probed]
+  --with-x                use the X Window System
+  --with-cups             specify prefix directory for the cups package
+                          (expecting the libraries under PATH/lib and the
+                          headers under PATH/include)
+  --with-cups-include     specify directory for the cups include files
+  --with-cups-lib         specify directory for the cups library
+  --with-freetype         specify prefix directory for the freetype2 package
+                          (expecting the libraries under PATH/lib and the
+                          headers under PATH/include)
+  --with-alsa             specify prefix directory for the alsa package
+                          (expecting the libraries under PATH/lib and the
+                          headers under PATH/include)
+  --with-alsa-include     specify directory for the alsa include files
+  --with-alsa-lib         specify directory for the alsa library
+  --with-pulse            specify prefix directory for the pulseaudio package
+                          (expecting the libraries under PATH/lib and the
+                          headers under PATH/include)
+  --with-pulse-include    specify directory for the pulseaudio include files
+  --with-pulse-lib        specify directory for the pulseaudio library
+
+Some influential environment variables:
+  PKG_CONFIG  path to pkg-config utility
+  CC          C compiler command
+  CFLAGS      C compiler flags
+  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
+              nonstandard directory <lib dir>
+  LIBS        libraries to pass to the linker, e.g. -l<library>
+  CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
+              you have headers in a nonstandard directory <include dir>
+  CXX         C++ compiler command
+  CXXFLAGS    C++ compiler flags
+  OBJC        Objective C compiler command
+  OBJCFLAGS   Objective C compiler flags
+  CPP         C preprocessor
+  CXXCPP      C++ preprocessor
+  XMKMF       Path to xmkmf, Makefile generator for X Window System
+  FREETYPE2_CFLAGS
+              C compiler flags for FREETYPE2, overriding pkg-config
+  FREETYPE2_LIBS
+              linker flags for FREETYPE2, overriding pkg-config
+  ALSA_CFLAGS C compiler flags for ALSA, overriding pkg-config
+  ALSA_LIBS   linker flags for ALSA, overriding pkg-config
+  LIBPULSE_CFLAGS
+              C compiler flags for LIBPULSE, overriding pkg-config
+  LIBPULSE_LIBS
+              linker flags for LIBPULSE, overriding pkg-config
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+Report bugs to <build-infra-dev@openjdk.java.net>.
+_ACEOF
+ac_status=$?
+fi
+
+if test "$ac_init_help" = "recursive"; then
+  # If there are subdirs, report their specific --help.
+  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+    test -d "$ac_dir" ||
+      { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
+      continue
+    ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+  # A ".." for each directory in $ac_dir_suffix.
+  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+  case $ac_top_builddir_sub in
+  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+  esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+  .)  # We are building in place.
+    ac_srcdir=.
+    ac_top_srcdir=$ac_top_builddir_sub
+    ac_abs_top_srcdir=$ac_pwd ;;
+  [\\/]* | ?:[\\/]* )  # Absolute name.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir
+    ac_abs_top_srcdir=$srcdir ;;
+  *) # Relative name.
+    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_build_prefix$srcdir
+    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+    cd "$ac_dir" || { ac_status=$?; continue; }
+    # Check for guested configure.
+    if test -f "$ac_srcdir/configure.gnu"; then
+      echo &&
+      $SHELL "$ac_srcdir/configure.gnu" --help=recursive
+    elif test -f "$ac_srcdir/configure"; then
+      echo &&
+      $SHELL "$ac_srcdir/configure" --help=recursive
+    else
+      $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+    fi || ac_status=$?
+    cd "$ac_pwd" || { ac_status=$?; break; }
+  done
+fi
+
+test -n "$ac_init_help" && exit $ac_status
+if $ac_init_version; then
+  cat <<\_ACEOF
+openjdk configure version-0.1
+generated by GNU Autoconf 2.67
+
+Copyright (C) 2010 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+  exit
+fi
+
+## ------------------------ ##
+## Autoconf initialization. ##
+## ------------------------ ##
+
+# ac_fn_c_try_compile LINENO
+# --------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_compile ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext
+  if { { ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compile") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_retval=1
+fi
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_compile
+
+# ac_fn_cxx_try_compile LINENO
+# ----------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_cxx_try_compile ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext
+  if { { ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compile") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+	 test -z "$ac_cxx_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_retval=1
+fi
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  as_fn_set_status $ac_retval
+
+} # ac_fn_cxx_try_compile
+
+# ac_fn_objc_try_compile LINENO
+# -----------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_objc_try_compile ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext
+  if { { ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compile") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+	 test -z "$ac_objc_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_retval=1
+fi
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  as_fn_set_status $ac_retval
+
+} # ac_fn_objc_try_compile
+
+# ac_fn_c_try_cpp LINENO
+# ----------------------
+# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_cpp ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if { { ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } > conftest.i && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+    ac_retval=1
+fi
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_cpp
+
+# ac_fn_cxx_try_cpp LINENO
+# ------------------------
+# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
+ac_fn_cxx_try_cpp ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if { { ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } > conftest.i && {
+	 test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
+	 test ! -s conftest.err
+       }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+    ac_retval=1
+fi
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  as_fn_set_status $ac_retval
+
+} # ac_fn_cxx_try_cpp
+
+# ac_fn_cxx_try_link LINENO
+# -------------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded.
+ac_fn_cxx_try_link ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext conftest$ac_exeext
+  if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+	 test -z "$ac_cxx_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_retval=1
+fi
+  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+  # interfere with the next link command; also delete a directory that is
+  # left behind by Apple's compiler.  We do this before executing the actions.
+  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  as_fn_set_status $ac_retval
+
+} # ac_fn_cxx_try_link
+
+# ac_fn_cxx_try_run LINENO
+# ------------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
+# that executables *can* be run.
+ac_fn_cxx_try_run ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
+  { { case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: program exited with status $ac_status" >&5
+       $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_retval=$ac_status
+fi
+  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  as_fn_set_status $ac_retval
+
+} # ac_fn_cxx_try_run
+
+# ac_fn_cxx_compute_int LINENO EXPR VAR INCLUDES
+# ----------------------------------------------
+# Tries to find the compile-time value of EXPR in a program that includes
+# INCLUDES, setting VAR accordingly. Returns whether the value could be
+# computed
+ac_fn_cxx_compute_int ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if test "$cross_compiling" = yes; then
+    # Depending upon the size, compute the lo and hi bounds.
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) >= 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  ac_lo=0 ac_mid=0
+  while :; do
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  ac_hi=$ac_mid; break
+else
+  as_fn_arith $ac_mid + 1 && ac_lo=$as_val
+			if test $ac_lo -le $ac_mid; then
+			  ac_lo= ac_hi=
+			  break
+			fi
+			as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) < 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  ac_hi=-1 ac_mid=-1
+  while :; do
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) >= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  ac_lo=$ac_mid; break
+else
+  as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val
+			if test $ac_mid -le $ac_hi; then
+			  ac_lo= ac_hi=
+			  break
+			fi
+			as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  ac_lo= ac_hi=
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+# Binary search between lo and hi bounds.
+while test "x$ac_lo" != "x$ac_hi"; do
+  as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  ac_hi=$ac_mid
+else
+  as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+case $ac_lo in #((
+?*) eval "$3=\$ac_lo"; ac_retval=0 ;;
+'') ac_retval=1 ;;
+esac
+  else
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+static long int longval () { return $2; }
+static unsigned long int ulongval () { return $2; }
+#include <stdio.h>
+#include <stdlib.h>
+int
+main ()
+{
+
+  FILE *f = fopen ("conftest.val", "w");
+  if (! f)
+    return 1;
+  if (($2) < 0)
+    {
+      long int i = longval ();
+      if (i != ($2))
+	return 1;
+      fprintf (f, "%ld", i);
+    }
+  else
+    {
+      unsigned long int i = ulongval ();
+      if (i != ($2))
+	return 1;
+      fprintf (f, "%lu", i);
+    }
+  /* Do not output a trailing newline, as this causes \r\n confusion
+     on some platforms.  */
+  return ferror (f) || fclose (f) != 0;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_run "$LINENO"; then :
+  echo >>conftest.val; read $3 <conftest.val; ac_retval=0
+else
+  ac_retval=1
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f conftest.val
+
+  fi
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  as_fn_set_status $ac_retval
+
+} # ac_fn_cxx_compute_int
+
+# ac_fn_cxx_check_header_compile LINENO HEADER VAR INCLUDES
+# ---------------------------------------------------------
+# Tests whether HEADER exists and can be compiled using the include files in
+# INCLUDES, setting the cache variable VAR accordingly.
+ac_fn_cxx_check_header_compile ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval "test \"\${$3+set}\"" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  eval "$3=yes"
+else
+  eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} # ac_fn_cxx_check_header_compile
+
+# ac_fn_cxx_check_func LINENO FUNC VAR
+# ------------------------------------
+# Tests whether FUNC exists, setting the cache variable VAR accordingly
+ac_fn_cxx_check_func ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval "test \"\${$3+set}\"" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $2 innocuous_$2
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $2 (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $2
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $2 ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_$2 || defined __stub___$2
+choke me
+#endif
+
+int
+main ()
+{
+return $2 ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+  eval "$3=yes"
+else
+  eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} # ac_fn_cxx_check_func
+
+# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists, giving a warning if it cannot be compiled using
+# the include files in INCLUDES and setting the cache variable VAR
+# accordingly.
+ac_fn_c_check_header_mongrel ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if eval "test \"\${$3+set}\"" = set; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval "test \"\${$3+set}\"" = set; then :
+  $as_echo_n "(cached) " >&6
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
+$as_echo_n "checking $2 usability... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_header_compiler=yes
+else
+  ac_header_compiler=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
+$as_echo_n "checking $2 presence... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <$2>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+  ac_header_preproc=yes
+else
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
+  yes:no: )
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+    ;;
+  no:yes:* )
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $2:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+( $as_echo "## ----------------------------------------------- ##
+## Report this to build-infra-dev@openjdk.java.net ##
+## ----------------------------------------------- ##"
+     ) | sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval "test \"\${$3+set}\"" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  eval "$3=\$ac_header_compiler"
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+fi
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} # ac_fn_c_check_header_mongrel
+
+# ac_fn_cxx_check_header_mongrel LINENO HEADER VAR INCLUDES
+# ---------------------------------------------------------
+# Tests whether HEADER exists, giving a warning if it cannot be compiled using
+# the include files in INCLUDES and setting the cache variable VAR
+# accordingly.
+ac_fn_cxx_check_header_mongrel ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if eval "test \"\${$3+set}\"" = set; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval "test \"\${$3+set}\"" = set; then :
+  $as_echo_n "(cached) " >&6
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
+$as_echo_n "checking $2 usability... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  ac_header_compiler=yes
+else
+  ac_header_compiler=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
+$as_echo_n "checking $2 presence... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <$2>
+_ACEOF
+if ac_fn_cxx_try_cpp "$LINENO"; then :
+  ac_header_preproc=yes
+else
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in #((
+  yes:no: )
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+    ;;
+  no:yes:* )
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $2:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+( $as_echo "## ----------------------------------------------- ##
+## Report this to build-infra-dev@openjdk.java.net ##
+## ----------------------------------------------- ##"
+     ) | sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval "test \"\${$3+set}\"" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  eval "$3=\$ac_header_compiler"
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+fi
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} # ac_fn_cxx_check_header_mongrel
+cat >config.log <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by openjdk $as_me version-0.1, which was
+generated by GNU Autoconf 2.67.  Invocation command line was
+
+  $ $0 $@
+
+_ACEOF
+exec 5>>config.log
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
+
+/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
+/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
+/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    $as_echo "PATH: $as_dir"
+  done
+IFS=$as_save_IFS
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+  for ac_arg
+  do
+    case $ac_arg in
+    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+    | -silent | --silent | --silen | --sile | --sil)
+      continue ;;
+    *\'*)
+      ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    esac
+    case $ac_pass in
+    1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
+    2)
+      as_fn_append ac_configure_args1 " '$ac_arg'"
+      if test $ac_must_keep_next = true; then
+	ac_must_keep_next=false # Got value, back to normal.
+      else
+	case $ac_arg in
+	  *=* | --config-cache | -C | -disable-* | --disable-* \
+	  | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+	  | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+	  | -with-* | --with-* | -without-* | --without-* | --x)
+	    case "$ac_configure_args0 " in
+	      "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+	    esac
+	    ;;
+	  -* ) ac_must_keep_next=true ;;
+	esac
+      fi
+      as_fn_append ac_configure_args " '$ac_arg'"
+      ;;
+    esac
+  done
+done
+{ ac_configure_args0=; unset ac_configure_args0;}
+{ ac_configure_args1=; unset ac_configure_args1;}
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log.  We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+trap 'exit_status=$?
+  # Save into config.log some information that might help in debugging.
+  {
+    echo
+
+    $as_echo "## ---------------- ##
+## Cache variables. ##
+## ---------------- ##"
+    echo
+    # The following way of writing the cache mishandles newlines in values,
+(
+  for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+    eval ac_val=\$$ac_var
+    case $ac_val in #(
+    *${as_nl}*)
+      case $ac_var in #(
+      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+      esac
+      case $ac_var in #(
+      _ | IFS | as_nl) ;; #(
+      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+      *) { eval $ac_var=; unset $ac_var;} ;;
+      esac ;;
+    esac
+  done
+  (set) 2>&1 |
+    case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+    *${as_nl}ac_space=\ *)
+      sed -n \
+	"s/'\''/'\''\\\\'\'''\''/g;
+	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+      ;; #(
+    *)
+      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+      ;;
+    esac |
+    sort
+)
+    echo
+
+    $as_echo "## ----------------- ##
+## Output variables. ##
+## ----------------- ##"
+    echo
+    for ac_var in $ac_subst_vars
+    do
+      eval ac_val=\$$ac_var
+      case $ac_val in
+      *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+      esac
+      $as_echo "$ac_var='\''$ac_val'\''"
+    done | sort
+    echo
+
+    if test -n "$ac_subst_files"; then
+      $as_echo "## ------------------- ##
+## File substitutions. ##
+## ------------------- ##"
+      echo
+      for ac_var in $ac_subst_files
+      do
+	eval ac_val=\$$ac_var
+	case $ac_val in
+	*\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+	esac
+	$as_echo "$ac_var='\''$ac_val'\''"
+      done | sort
+      echo
+    fi
+
+    if test -s confdefs.h; then
+      $as_echo "## ----------- ##
+## confdefs.h. ##
+## ----------- ##"
+      echo
+      cat confdefs.h
+      echo
+    fi
+    test "$ac_signal" != 0 &&
+      $as_echo "$as_me: caught signal $ac_signal"
+    $as_echo "$as_me: exit $exit_status"
+  } >&5
+  rm -f core *.core core.conftest.* &&
+    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
+    exit $exit_status
+' 0
+for ac_signal in 1 2 13 15; do
+  trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -f -r conftest* confdefs.h
+
+$as_echo "/* confdefs.h */" > confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_URL "$PACKAGE_URL"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer an explicitly selected file to automatically selected ones.
+ac_site_file1=NONE
+ac_site_file2=NONE
+if test -n "$CONFIG_SITE"; then
+  # We do not want a PATH search for config.site.
+  case $CONFIG_SITE in #((
+    -*)  ac_site_file1=./$CONFIG_SITE;;
+    */*) ac_site_file1=$CONFIG_SITE;;
+    *)   ac_site_file1=./$CONFIG_SITE;;
+  esac
+elif test "x$prefix" != xNONE; then
+  ac_site_file1=$prefix/share/config.site
+  ac_site_file2=$prefix/etc/config.site
+else
+  ac_site_file1=$ac_default_prefix/share/config.site
+  ac_site_file2=$ac_default_prefix/etc/config.site
+fi
+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+do
+  test "x$ac_site_file" = xNONE && continue
+  if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+$as_echo "$as_me: loading site script $ac_site_file" >&6;}
+    sed 's/^/| /' "$ac_site_file" >&5
+    . "$ac_site_file" \
+      || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "failed to load site script $ac_site_file
+See \`config.log' for more details" "$LINENO" 5 ; }
+  fi
+done
+
+if test -r "$cache_file"; then
+  # Some versions of bash will fail to source /dev/null (special files
+  # actually), so we avoid doing that.  DJGPP emulates it as a regular file.
+  if test /dev/null != "$cache_file" && test -f "$cache_file"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+$as_echo "$as_me: loading cache $cache_file" >&6;}
+    case $cache_file in
+      [\\/]* | ?:[\\/]* ) . "$cache_file";;
+      *)                      . "./$cache_file";;
+    esac
+  fi
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+$as_echo "$as_me: creating cache $cache_file" >&6;}
+  >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in $ac_precious_vars; do
+  eval ac_old_set=\$ac_cv_env_${ac_var}_set
+  eval ac_new_set=\$ac_env_${ac_var}_set
+  eval ac_old_val=\$ac_cv_env_${ac_var}_value
+  eval ac_new_val=\$ac_env_${ac_var}_value
+  case $ac_old_set,$ac_new_set in
+    set,)
+      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,set)
+      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,);;
+    *)
+      if test "x$ac_old_val" != "x$ac_new_val"; then
+	# differences in whitespace do not lead to failure.
+	ac_old_val_w=`echo x $ac_old_val`
+	ac_new_val_w=`echo x $ac_new_val`
+	if test "$ac_old_val_w" != "$ac_new_val_w"; then
+	  { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
+$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+	  ac_cache_corrupted=:
+	else
+	  { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+	  eval $ac_var=\$ac_old_val
+	fi
+	{ $as_echo "$as_me:${as_lineno-$LINENO}:   former value:  \`$ac_old_val'" >&5
+$as_echo "$as_me:   former value:  \`$ac_old_val'" >&2;}
+	{ $as_echo "$as_me:${as_lineno-$LINENO}:   current value: \`$ac_new_val'" >&5
+$as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
+      fi;;
+  esac
+  # Pass precious variables to config.status.
+  if test "$ac_new_set" = set; then
+    case $ac_new_val in
+    *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+    *) ac_arg=$ac_var=$ac_new_val ;;
+    esac
+    case " $ac_configure_args " in
+      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
+      *) as_fn_append ac_configure_args " '$ac_arg'" ;;
+    esac
+  fi
+done
+if $ac_cache_corrupted; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+  { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+  as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+fi
+## -------------------- ##
+## Main body of script. ##
+## -------------------- ##
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+ac_aux_dir=
+for ac_dir in build-aux "$srcdir"/build-aux; do
+  if test -f "$ac_dir/install-sh"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install-sh -c"
+    break
+  elif test -f "$ac_dir/install.sh"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install.sh -c"
+    break
+  elif test -f "$ac_dir/shtool"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/shtool install -c"
+    break
+  fi
+done
+if test -z "$ac_aux_dir"; then
+  as_fn_error $? "cannot find install-sh, install.sh, or shtool in build-aux \"$srcdir\"/build-aux" "$LINENO" 5
+fi
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
+ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
+ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
+
+
+
+# pkg.m4 - Macros to locate and utilise pkg-config.            -*- Autoconf -*-
+#
+# Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program 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 for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# PKG_PROG_PKG_CONFIG([MIN-VERSION])
+# ----------------------------------
+# PKG_PROG_PKG_CONFIG
+
+# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+#
+# Check to see whether a particular set of modules exists.  Similar
+# to PKG_CHECK_MODULES(), but does not set variables or print errors.
+#
+#
+# Similar to PKG_CHECK_MODULES, make sure that the first instance of
+# this or PKG_CHECK_MODULES is called, or make sure to call
+# PKG_CHECK_EXISTS manually
+# --------------------------------------------------------------
+
+
+
+# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
+# ---------------------------------------------
+# _PKG_CONFIG
+
+# _PKG_SHORT_ERRORS_SUPPORTED
+# -----------------------------
+# _PKG_SHORT_ERRORS_SUPPORTED
+
+
+# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
+# [ACTION-IF-NOT-FOUND])
+#
+#
+# Note that if there is a possibility the first call to
+# PKG_CHECK_MODULES might not happen, you should be sure to include an
+# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
+#
+#
+# --------------------------------------------------------------
+# PKG_CHECK_MODULES
+
+#
+# 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.
+#
+
+
+
+
+
+
+
+
+
+
+#
+# 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.
+#
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# Fixes paths on windows hosts to be mixed mode short.
+
+
+#
+# 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.
+#
+
+
+
+
+
+#
+# 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.
+#
+
+function help_on_build_dependency {
+    # Print a helpful message on how to acquire the necessary build dependency.
+    # $1 is the help tag: freetyp2, cups, pulse, alsa etc
+    MISSING_DEPENDENCY=$1
+    PKGHANDLER_COMMAND=
+
+    for ac_prog in apt-get yum port pkgutil pkgadd
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_PKGHANDLER+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$PKGHANDLER"; then
+  ac_cv_prog_PKGHANDLER="$PKGHANDLER" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_PKGHANDLER="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+PKGHANDLER=$ac_cv_prog_PKGHANDLER
+if test -n "$PKGHANDLER"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGHANDLER" >&5
+$as_echo "$PKGHANDLER" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$PKGHANDLER" && break
+done
+
+
+    case $PKGHANDLER in
+	apt-get)
+                apt_help     $MISSING_DEPENDENCY ;;
+        yum)
+                yum_help     $MISSING_DEPENDENCY ;;
+	port)
+                port_help    $MISSING_DEPENDENCY ;;
+	pkgutil)
+                pkgutil_help $MISSING_DEPENDENCY ;;
+	pkgadd)
+                pkgadd_help  $MISSING_DEPENDENCY ;;
+    * )
+      break ;;
+    esac
+
+    if test "x$PKGHANDLER_COMMAND" != x; then
+        HELP_MSG="Try running '$PKGHANDLER_COMMAND'."
+    fi
+}
+
+function apt_help {
+    case $1 in
+    devkit)
+        PKGHANDLER_COMMAND="sudo apt-get install build-essential" ;;
+    openjdk)
+        PKGHANDLER_COMMAND="sudo apt-get install openjdk-7-jdk" ;;
+    alsa)
+        PKGHANDLER_COMMAND="sudo apt-get install libasound2-dev" ;;
+    cups)
+        PKGHANDLER_COMMAND="sudo apt-get install libcups2-dev" ;;
+    freetype2)
+        PKGHANDLER_COMMAND="sudo apt-get install libfreetype6-dev" ;;
+    pulse)
+        PKGHANDLER_COMMAND="sudo apt-get install libpulse-dev" ;;
+    x11)
+        PKGHANDLER_COMMAND="sudo apt-get install libX11-dev libxext-dev libxrender-dev libxtst-dev" ;;
+    ccache)
+        PKGHANDLER_COMMAND="sudo apt-get install ccache" ;;
+    * )
+       break ;;
+    esac
+}
+
+function yum_help {
+    case $1 in
+    devkit)
+        PKGHANDLER_COMMAND="sudo yum groupinstall \"Development Tools\"" ;;
+    openjdk)
+        PKGHANDLER_COMMAND="sudo yum install java-1.7.0-openjdk" ;;
+    alsa)
+        PKGHANDLER_COMMAND="sudo yum install alsa-lib-devel" ;;
+    cups)
+        PKGHANDLER_COMMAND="sudo yum install cups-devel" ;;
+    freetype2)
+        PKGHANDLER_COMMAND="sudo yum install freetype2-devel" ;;
+    pulse)
+        PKGHANDLER_COMMAND="sudo yum install pulseaudio-libs-devel" ;;
+    x11)
+        PKGHANDLER_COMMAND="sudo yum install libXtst-devel" ;;
+    ccache)
+        PKGHANDLER_COMMAND="sudo yum install ccache" ;;
+    * )
+       break ;;
+    esac
+}
+
+function port_help {
+    PKGHANDLER_COMMAND=""
+}
+
+function pkgutil_help {
+    PKGHANDLER_COMMAND=""
+}
+
+function pkgadd_help {
+    PKGHANDLER_COMMAND=""
+}
+
+
+# Save the command line. Do this very early, before it is lost by calling autoconf macros.
+CONFIGURE_COMMAND_LINE="$@"
+
+
+# Locate the directory of this script.
+SCRIPT="$0"
+
+    if test "x$BUILD_OS" != xwindows; then
+        # Follow a chain of symbolic links. Use readlink
+        # where it exists, else fall back to horribly
+        # complicated shell code.
+        # Extract the first word of "readlink", so it can be a program name with args.
+set dummy readlink; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_READLINK+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $READLINK in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_READLINK="$READLINK" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_READLINK="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+READLINK=$ac_cv_path_READLINK
+if test -n "$READLINK"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $READLINK" >&5
+$as_echo "$READLINK" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+        if test "x$READLINK_TESTED" != yes; then
+            # On MacOSX there is a readlink tool with a different
+            # purpose than the GNU readlink tool. Check the found readlink.
+            ISGNU=`$READLINK --help 2>&1 | grep GNU`
+            if test "x$ISGNU" = x; then
+                 # A readlink that we do not know how to use.
+                 # Are there other non-GNU readlinks out there?
+                 READLINK_TESTED=yes
+                 READLINK=
+            fi
+        fi
+
+        if test "x$READLINK" != x; then
+            SCRIPT=`$READLINK -f $SCRIPT`
+        else
+            STARTDIR=$PWD
+            COUNTER=0
+            DIR=`dirname $SCRIPT`
+            FIL=`basename $SCRIPT`
+            while test $COUNTER -lt 20; do
+                ISLINK=`ls -l $DIR/$FIL | grep '\->' | sed -e 's/.*-> \(.*\)/\1/'`
+                if test "x$ISLINK" == x; then
+                    # This is not a symbolic link! We are done!
+                    break
+                fi
+                # The link might be relative! We have to use cd to travel safely.
+                cd $DIR
+                cd `dirname $ISLINK`
+                DIR=`pwd`
+                FIL=`basename $ISLINK`
+                let COUNTER=COUNTER+1
+            done
+            cd $STARTDIR
+            SCRIPT=$DIR/$FIL
+        fi
+    fi
+
+AUTOCONF_DIR=`dirname $0`
+
+# Start with tools that do not need have cross compilation support
+# and can be expected to be found in the default PATH. These tools are
+# used by configure. Nor are these tools expected to be found in the
+# devkit from the builddeps server either, since they are
+# needed to download the devkit.
+for ac_prog in gawk mawk nawk awk
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_AWK+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$AWK"; then
+  ac_cv_prog_AWK="$AWK" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_AWK="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+AWK=$ac_cv_prog_AWK
+if test -n "$AWK"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+$as_echo "$AWK" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$AWK" && break
+done
+
+
+    # Test that variable AWK is not empty.
+    if test "" = "$AWK"; then as_fn_error $? "Could not find awk !" "$LINENO" 5 ; fi
+
+# Extract the first word of "cat", so it can be a program name with args.
+set dummy cat; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_CAT+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $CAT in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_CAT="$CAT" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_CAT="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+CAT=$ac_cv_path_CAT
+if test -n "$CAT"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CAT" >&5
+$as_echo "$CAT" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+    # Test that variable CAT is not empty.
+    if test "" = "$CAT"; then as_fn_error $? "Could not find cat !" "$LINENO" 5 ; fi
+
+# Extract the first word of "chmod", so it can be a program name with args.
+set dummy chmod; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_CHMOD+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $CHMOD in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_CHMOD="$CHMOD" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_CHMOD="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+CHMOD=$ac_cv_path_CHMOD
+if test -n "$CHMOD"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CHMOD" >&5
+$as_echo "$CHMOD" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+    # Test that variable CHMOD is not empty.
+    if test "" = "$CHMOD"; then as_fn_error $? "Could not find chmod !" "$LINENO" 5 ; fi
+
+# Extract the first word of "cp", so it can be a program name with args.
+set dummy cp; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_CP+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $CP in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_CP="$CP" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_CP="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+CP=$ac_cv_path_CP
+if test -n "$CP"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CP" >&5
+$as_echo "$CP" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+    # Test that variable CP is not empty.
+    if test "" = "$CP"; then as_fn_error $? "Could not find cp !" "$LINENO" 5 ; fi
+
+# Extract the first word of "cpio", so it can be a program name with args.
+set dummy cpio; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_CPIO+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $CPIO in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_CPIO="$CPIO" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_CPIO="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+CPIO=$ac_cv_path_CPIO
+if test -n "$CPIO"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPIO" >&5
+$as_echo "$CPIO" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+    # Test that variable CPIO is not empty.
+    if test "" = "$CPIO"; then as_fn_error $? "Could not find cpio !" "$LINENO" 5 ; fi
+
+# Extract the first word of "cut", so it can be a program name with args.
+set dummy cut; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_CUT+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $CUT in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_CUT="$CUT" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_CUT="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+CUT=$ac_cv_path_CUT
+if test -n "$CUT"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CUT" >&5
+$as_echo "$CUT" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+    # Test that variable CUT is not empty.
+    if test "" = "$CUT"; then as_fn_error $? "Could not find cut !" "$LINENO" 5 ; fi
+
+# Extract the first word of "date", so it can be a program name with args.
+set dummy date; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_DATE+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $DATE in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_DATE="$DATE" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_DATE="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+DATE=$ac_cv_path_DATE
+if test -n "$DATE"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DATE" >&5
+$as_echo "$DATE" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+    # Test that variable DATE is not empty.
+    if test "" = "$DATE"; then as_fn_error $? "Could not find date !" "$LINENO" 5 ; fi
+
+# Extract the first word of "df", so it can be a program name with args.
+set dummy df; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_DF+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $DF in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_DF="$DF" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_DF="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+DF=$ac_cv_path_DF
+if test -n "$DF"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DF" >&5
+$as_echo "$DF" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+    # Test that variable DF is not empty.
+    if test "" = "$DF"; then as_fn_error $? "Could not find df !" "$LINENO" 5 ; fi
+
+# Extract the first word of "diff", so it can be a program name with args.
+set dummy diff; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_DIFF+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $DIFF in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_DIFF="$DIFF" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_DIFF="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+DIFF=$ac_cv_path_DIFF
+if test -n "$DIFF"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DIFF" >&5
+$as_echo "$DIFF" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+    # Test that variable DIFF is not empty.
+    if test "" = "$DIFF"; then as_fn_error $? "Could not find diff !" "$LINENO" 5 ; fi
+
+# Warning echo is really, really unportable!!!!! Different
+# behaviour in bash and dash and in a lot of other shells!
+# Use printf for serious work!
+# Extract the first word of "echo", so it can be a program name with args.
+set dummy echo; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ECHO+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ECHO in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ECHO="$ECHO" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ECHO="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ECHO=$ac_cv_path_ECHO
+if test -n "$ECHO"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ECHO" >&5
+$as_echo "$ECHO" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+    # Test that variable ECHO is not empty.
+    if test "" = "$ECHO"; then as_fn_error $? "Could not find echo !" "$LINENO" 5 ; fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if test "${ac_cv_path_GREP+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -z "$GREP"; then
+  ac_path_GREP_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in grep ggrep; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+      { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+  # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo 'GREP' >> "conftest.nl"
+    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
+    if test $ac_count -gt ${ac_path_GREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_GREP="$ac_path_GREP"
+      ac_path_GREP_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+      $ac_path_GREP_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_GREP"; then
+    as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+  fi
+else
+  ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if test "${ac_cv_path_EGREP+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+   then ac_cv_path_EGREP="$GREP -E"
+   else
+     if test -z "$EGREP"; then
+  ac_path_EGREP_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in egrep; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+      { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+  # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo 'EGREP' >> "conftest.nl"
+    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
+    if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_EGREP="$ac_path_EGREP"
+      ac_path_EGREP_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+      $ac_path_EGREP_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_EGREP"; then
+    as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+  fi
+else
+  ac_cv_path_EGREP=$EGREP
+fi
+
+   fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+
+
+    # Test that variable EGREP is not empty.
+    if test "" = "$EGREP"; then as_fn_error $? "Could not find egrep !" "$LINENO" 5 ; fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
+$as_echo_n "checking for fgrep... " >&6; }
+if test "${ac_cv_path_FGREP+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
+   then ac_cv_path_FGREP="$GREP -F"
+   else
+     if test -z "$FGREP"; then
+  ac_path_FGREP_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in fgrep; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
+      { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue
+# Check for GNU ac_path_FGREP and select it if it is found.
+  # Check for GNU $ac_path_FGREP
+case `"$ac_path_FGREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo 'FGREP' >> "conftest.nl"
+    "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
+    if test $ac_count -gt ${ac_path_FGREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_FGREP="$ac_path_FGREP"
+      ac_path_FGREP_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+      $ac_path_FGREP_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_FGREP"; then
+    as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+  fi
+else
+  ac_cv_path_FGREP=$FGREP
+fi
+
+   fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
+$as_echo "$ac_cv_path_FGREP" >&6; }
+ FGREP="$ac_cv_path_FGREP"
+
+
+
+    # Test that variable FGREP is not empty.
+    if test "" = "$FGREP"; then as_fn_error $? "Could not find fgrep !" "$LINENO" 5 ; fi
+
+
+# Extract the first word of "find", so it can be a program name with args.
+set dummy find; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_FIND+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $FIND in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_FIND="$FIND" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_FIND="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+FIND=$ac_cv_path_FIND
+if test -n "$FIND"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FIND" >&5
+$as_echo "$FIND" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+    # Test that variable FIND is not empty.
+    if test "" = "$FIND"; then as_fn_error $? "Could not find find !" "$LINENO" 5 ; fi
+
+
+    # Test if find supports -delete
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if find supports -delete" >&5
+$as_echo_n "checking if find supports -delete... " >&6; }
+    FIND_DELETE="-delete"
+
+    DELETEDIR=`mktemp -d tmp.XXXXXXXXXX` || (echo Could not create temporary directory!; exit $?)
+
+    echo Hejsan > $DELETEDIR/TestIfFindSupportsDelete
+
+    TEST_DELETE=`$FIND "$DELETEDIR" -name TestIfFindSupportsDelete $FIND_DELETE 2>&1`
+    if test -f $DELETEDIR/TestIfFindSupportsDelete; then
+        # No, it does not.
+        rm $DELETEDIR/TestIfFindSupportsDelete
+        FIND_DELETE="-exec rm \{\} \+"
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+    else
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+    fi
+    rmdir $DELETEDIR
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if test "${ac_cv_path_GREP+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -z "$GREP"; then
+  ac_path_GREP_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in grep ggrep; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+      { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+  # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo 'GREP' >> "conftest.nl"
+    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
+    if test $ac_count -gt ${ac_path_GREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_GREP="$ac_path_GREP"
+      ac_path_GREP_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+      $ac_path_GREP_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_GREP"; then
+    as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+  fi
+else
+  ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+
+    # Test that variable GREP is not empty.
+    if test "" = "$GREP"; then as_fn_error $? "Could not find grep !" "$LINENO" 5 ; fi
+
+# Extract the first word of "head", so it can be a program name with args.
+set dummy head; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_HEAD+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $HEAD in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_HEAD="$HEAD" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_HEAD="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+HEAD=$ac_cv_path_HEAD
+if test -n "$HEAD"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HEAD" >&5
+$as_echo "$HEAD" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+    # Test that variable HEAD is not empty.
+    if test "" = "$HEAD"; then as_fn_error $? "Could not find head !" "$LINENO" 5 ; fi
+
+# Extract the first word of "ln", so it can be a program name with args.
+set dummy ln; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_LN+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $LN in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_LN="$LN" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_LN="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+LN=$ac_cv_path_LN
+if test -n "$LN"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LN" >&5
+$as_echo "$LN" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+    # Test that variable LN is not empty.
+    if test "" = "$LN"; then as_fn_error $? "Could not find ln !" "$LINENO" 5 ; fi
+
+# Extract the first word of "ls", so it can be a program name with args.
+set dummy ls; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_LS+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $LS in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_LS="$LS" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_LS="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+LS=$ac_cv_path_LS
+if test -n "$LS"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LS" >&5
+$as_echo "$LS" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+    # Test that variable LS is not empty.
+    if test "" = "$LS"; then as_fn_error $? "Could not find ls !" "$LINENO" 5 ; fi
+
+for ac_prog in gmake make
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_MAKE+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $MAKE in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_MAKE="$MAKE" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_MAKE="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+MAKE=$ac_cv_path_MAKE
+if test -n "$MAKE"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAKE" >&5
+$as_echo "$MAKE" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$MAKE" && break
+done
+
+
+    # Test that variable MAKE is not empty.
+    if test "" = "$MAKE"; then as_fn_error $? "Could not find make !" "$LINENO" 5 ; fi
+
+MAKE_VERSION=`$MAKE --version | head -n 1 | grep '3.8[12346789]'`
+if test "x$MAKE_VERSION" = x; then
+    as_fn_error $? "You must use GNU make 3.81 or newer! Please put it in the path." "$LINENO" 5
+fi
+# Extract the first word of "mkdir", so it can be a program name with args.
+set dummy mkdir; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_MKDIR+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $MKDIR in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_MKDIR="$MKDIR" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_MKDIR="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+MKDIR=$ac_cv_path_MKDIR
+if test -n "$MKDIR"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR" >&5
+$as_echo "$MKDIR" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+    # Test that variable MKDIR is not empty.
+    if test "" = "$MKDIR"; then as_fn_error $? "Could not find mkdir !" "$LINENO" 5 ; fi
+
+# Extract the first word of "mv", so it can be a program name with args.
+set dummy mv; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_MV+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $MV in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_MV="$MV" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_MV="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+MV=$ac_cv_path_MV
+if test -n "$MV"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MV" >&5
+$as_echo "$MV" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+    # Test that variable MV is not empty.
+    if test "" = "$MV"; then as_fn_error $? "Could not find mv !" "$LINENO" 5 ; fi
+
+for ac_prog in nawk gawk awk
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_NAWK+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $NAWK in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_NAWK="$NAWK" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_NAWK="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+NAWK=$ac_cv_path_NAWK
+if test -n "$NAWK"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NAWK" >&5
+$as_echo "$NAWK" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$NAWK" && break
+done
+
+
+    # Test that variable NAWK is not empty.
+    if test "" = "$NAWK"; then as_fn_error $? "Could not find nawk !" "$LINENO" 5 ; fi
+
+# Extract the first word of "printf", so it can be a program name with args.
+set dummy printf; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_PRINTF+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $PRINTF in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_PRINTF="$PRINTF" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_PRINTF="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+PRINTF=$ac_cv_path_PRINTF
+if test -n "$PRINTF"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PRINTF" >&5
+$as_echo "$PRINTF" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+    # Test that variable PRINTF is not empty.
+    if test "" = "$PRINTF"; then as_fn_error $? "Could not find printf !" "$LINENO" 5 ; fi
+
+# Extract the first word of "pwd", so it can be a program name with args.
+set dummy pwd; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_THEPWDCMD+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $THEPWDCMD in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_THEPWDCMD="$THEPWDCMD" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_THEPWDCMD="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+THEPWDCMD=$ac_cv_path_THEPWDCMD
+if test -n "$THEPWDCMD"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $THEPWDCMD" >&5
+$as_echo "$THEPWDCMD" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+# Extract the first word of "rm", so it can be a program name with args.
+set dummy rm; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_RM+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $RM in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_RM="$RM" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_RM="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+RM=$ac_cv_path_RM
+if test -n "$RM"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RM" >&5
+$as_echo "$RM" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+    # Test that variable RM is not empty.
+    if test "" = "$RM"; then as_fn_error $? "Could not find rm !" "$LINENO" 5 ; fi
+
+RM="$RM -f"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
+$as_echo_n "checking for a sed that does not truncate output... " >&6; }
+if test "${ac_cv_path_SED+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+            ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
+     for ac_i in 1 2 3 4 5 6 7; do
+       ac_script="$ac_script$as_nl$ac_script"
+     done
+     echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
+     { ac_script=; unset ac_script;}
+     if test -z "$SED"; then
+  ac_path_SED_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in sed gsed; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
+      { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue
+# Check for GNU ac_path_SED and select it if it is found.
+  # Check for GNU $ac_path_SED
+case `"$ac_path_SED" --version 2>&1` in
+*GNU*)
+  ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo '' >> "conftest.nl"
+    "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
+    if test $ac_count -gt ${ac_path_SED_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_SED="$ac_path_SED"
+      ac_path_SED_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+      $ac_path_SED_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_SED"; then
+    as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
+  fi
+else
+  ac_cv_path_SED=$SED
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
+$as_echo "$ac_cv_path_SED" >&6; }
+ SED="$ac_cv_path_SED"
+  rm -f conftest.sed
+
+
+    # Test that variable SED is not empty.
+    if test "" = "$SED"; then as_fn_error $? "Could not find sed !" "$LINENO" 5 ; fi
+
+# Extract the first word of "sh", so it can be a program name with args.
+set dummy sh; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_SH+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $SH in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_SH="$SH" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_SH="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+SH=$ac_cv_path_SH
+if test -n "$SH"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SH" >&5
+$as_echo "$SH" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+    # Test that variable SH is not empty.
+    if test "" = "$SH"; then as_fn_error $? "Could not find sh !" "$LINENO" 5 ; fi
+
+# Extract the first word of "sort", so it can be a program name with args.
+set dummy sort; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_SORT+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $SORT in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_SORT="$SORT" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_SORT="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+SORT=$ac_cv_path_SORT
+if test -n "$SORT"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SORT" >&5
+$as_echo "$SORT" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+    # Test that variable SORT is not empty.
+    if test "" = "$SORT"; then as_fn_error $? "Could not find sort !" "$LINENO" 5 ; fi
+
+# Extract the first word of "tar", so it can be a program name with args.
+set dummy tar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_TAR+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $TAR in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_TAR="$TAR" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_TAR="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+TAR=$ac_cv_path_TAR
+if test -n "$TAR"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TAR" >&5
+$as_echo "$TAR" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+    # Test that variable TAR is not empty.
+    if test "" = "$TAR"; then as_fn_error $? "Could not find tar !" "$LINENO" 5 ; fi
+
+# Extract the first word of "tail", so it can be a program name with args.
+set dummy tail; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_TAIL+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $TAIL in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_TAIL="$TAIL" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_TAIL="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+TAIL=$ac_cv_path_TAIL
+if test -n "$TAIL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TAIL" >&5
+$as_echo "$TAIL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+    # Test that variable TAIL is not empty.
+    if test "" = "$TAIL"; then as_fn_error $? "Could not find tail !" "$LINENO" 5 ; fi
+
+# Extract the first word of "tee", so it can be a program name with args.
+set dummy tee; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_TEE+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $TEE in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_TEE="$TEE" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_TEE="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+TEE=$ac_cv_path_TEE
+if test -n "$TEE"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TEE" >&5
+$as_echo "$TEE" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+    # Test that variable TEE is not empty.
+    if test "" = "$TEE"; then as_fn_error $? "Could not find tee !" "$LINENO" 5 ; fi
+
+# Extract the first word of "tr", so it can be a program name with args.
+set dummy tr; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_TR+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $TR in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_TR="$TR" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_TR="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+TR=$ac_cv_path_TR
+if test -n "$TR"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TR" >&5
+$as_echo "$TR" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+    # Test that variable TR is not empty.
+    if test "" = "$TR"; then as_fn_error $? "Could not find tr !" "$LINENO" 5 ; fi
+
+# Extract the first word of "touch", so it can be a program name with args.
+set dummy touch; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_TOUCH+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $TOUCH in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_TOUCH="$TOUCH" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_TOUCH="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+TOUCH=$ac_cv_path_TOUCH
+if test -n "$TOUCH"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TOUCH" >&5
+$as_echo "$TOUCH" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+    # Test that variable TOUCH is not empty.
+    if test "" = "$TOUCH"; then as_fn_error $? "Could not find touch !" "$LINENO" 5 ; fi
+
+# Extract the first word of "wc", so it can be a program name with args.
+set dummy wc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_WC+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $WC in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_WC="$WC" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_WC="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+WC=$ac_cv_path_WC
+if test -n "$WC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $WC" >&5
+$as_echo "$WC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+    # Test that variable WC is not empty.
+    if test "" = "$WC"; then as_fn_error $? "Could not find wc !" "$LINENO" 5 ; fi
+
+# Extract the first word of "xargs", so it can be a program name with args.
+set dummy xargs; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_XARGS+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $XARGS in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_XARGS="$XARGS" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_XARGS="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+XARGS=$ac_cv_path_XARGS
+if test -n "$XARGS"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XARGS" >&5
+$as_echo "$XARGS" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+    # Test that variable XARGS is not empty.
+    if test "" = "$XARGS"; then as_fn_error $? "Could not find xargs !" "$LINENO" 5 ; fi
+
+# Extract the first word of "zip", so it can be a program name with args.
+set dummy zip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ZIP+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ZIP in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ZIP="$ZIP" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ZIP="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ZIP=$ac_cv_path_ZIP
+if test -n "$ZIP"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ZIP" >&5
+$as_echo "$ZIP" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+    # Test that variable ZIP is not empty.
+    if test "" = "$ZIP"; then as_fn_error $? "Could not find zip !" "$LINENO" 5 ; fi
+
+# Extract the first word of "unzip", so it can be a program name with args.
+set dummy unzip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_UNZIP+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $UNZIP in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_UNZIP="$UNZIP" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_UNZIP="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+UNZIP=$ac_cv_path_UNZIP
+if test -n "$UNZIP"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $UNZIP" >&5
+$as_echo "$UNZIP" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+    # Test that variable UNZIP is not empty.
+    if test "" = "$UNZIP"; then as_fn_error $? "Could not find unzip !" "$LINENO" 5 ; fi
+
+# Extract the first word of "ldd", so it can be a program name with args.
+set dummy ldd; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_LDD+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $LDD in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_LDD="$LDD" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_LDD="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+LDD=$ac_cv_path_LDD
+if test -n "$LDD"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LDD" >&5
+$as_echo "$LDD" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+if test "x$LDD" = "x"; then
+    # List shared lib dependencies is used for
+    # debug output and checking for forbidden dependencies.
+    # We can build without it.
+    LDD="true"
+fi
+# Extract the first word of "otool", so it can be a program name with args.
+set dummy otool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_OTOOL+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $OTOOL in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_OTOOL="$OTOOL" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_OTOOL="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+OTOOL=$ac_cv_path_OTOOL
+if test -n "$OTOOL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
+$as_echo "$OTOOL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+if test "x$OTOOL" = "x"; then
+   OTOOL="true"
+fi
+# Extract the first word of "readelf", so it can be a program name with args.
+set dummy readelf; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_READELF+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $READELF in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_READELF="$READELF" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_READELF="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+READELF=$ac_cv_path_READELF
+if test -n "$READELF"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $READELF" >&5
+$as_echo "$READELF" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+# Extract the first word of "expr", so it can be a program name with args.
+set dummy expr; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_EXPR+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $EXPR in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_EXPR="$EXPR" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_EXPR="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+EXPR=$ac_cv_path_EXPR
+if test -n "$EXPR"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $EXPR" >&5
+$as_echo "$EXPR" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+    # Test that variable EXPR is not empty.
+    if test "" = "$EXPR"; then as_fn_error $? "Could not find expr !" "$LINENO" 5 ; fi
+
+# Extract the first word of "file", so it can be a program name with args.
+set dummy file; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_FILE+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $FILE in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_FILE="$FILE" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_FILE="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+FILE=$ac_cv_path_FILE
+if test -n "$FILE"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FILE" >&5
+$as_echo "$FILE" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+    # Test that variable FILE is not empty.
+    if test "" = "$FILE"; then as_fn_error $? "Could not find file !" "$LINENO" 5 ; fi
+
+# Figure out the build and host system.
+# Make sure we can run config.sub.
+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+  as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+$as_echo_n "checking build system type... " >&6; }
+if test "${ac_cv_build+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_build_alias=$build_alias
+test "x$ac_build_alias" = x &&
+  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+test "x$ac_build_alias" = x &&
+  as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+  as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+$as_echo "$ac_cv_build" >&6; }
+case $ac_cv_build in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;;
+esac
+build=$ac_cv_build
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_build
+shift
+build_cpu=$1
+build_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+build_os=$*
+IFS=$ac_save_IFS
+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+$as_echo_n "checking host system type... " >&6; }
+if test "${ac_cv_host+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "x$host_alias" = x; then
+  ac_cv_host=$ac_cv_build
+else
+  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
+    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+$as_echo "$ac_cv_host" >&6; }
+case $ac_cv_host in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;;
+esac
+host=$ac_cv_host
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_host
+shift
+host_cpu=$1
+host_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+host_os=$*
+IFS=$ac_save_IFS
+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
+
+
+
+
+# Check whether --with-data-model was given.
+if test "${with_data_model+set}" = set; then :
+  withval=$with_data_model;
+fi
+
+
+if test "x$with_data_model" != x && \
+   test "x$with_data_model" != x32 && \
+   test "x$with_data_model" != x64 ; then
+    as_fn_error $? "The data model can only be 32 or 64!" "$LINENO" 5
+fi
+# Translate the standard cpu-vendor-kernel-os quadruplets into
+# the new HOST_.... and BUILD_... and the legacy names used by
+# the openjdk build.
+# It uses $host_os $host_cpu $build_os $build_cpu and $with_data_model
+
+    # Expects $host_os $host_cpu $build_os and $build_cpu
+    # and $with_data_model to have been setup!
+    #
+    # Translate the standard triplet(quadruplet) definition
+    # of the host/build system into
+    # HOST_OS=aix,bsd,hpux,linux,macosx,solaris,windows
+    # HOST_OS_FAMILY=bsd,gnu,sysv,win32,wince
+    # HOST_OS_API=posix,winapi
+    #
+    # HOST_CPU=ia32,x64,sparc,sparcv9,arm,arm64,ppc,ppc64
+    # HOST_CPU_ARCH=x86,sparc,pcc,arm
+    # HOST_CPU_BITS=32,64
+    # HOST_CPU_ENDIAN=big,little
+    #
+    # The same values are setup for BUILD_...
+    #
+    # And the legacy variables, for controlling the old makefiles.
+    # LEGACY_HOST_CPU1=i586,amd64,sparc,sparcv9,arm,arm64...
+    # LEGACY_HOST_CPU2=i386,amd64,sparc,sparcv9,arm,arm64...
+    # LEGACY_HOST_CPU3=sparcv9,amd64 (but only on solaris)
+    # LEGACY_HOST_OS_API=solaris,windows
+    #
+    # We also copy the autoconf trip/quadruplet
+    # verbatim to HOST and BUILD
+    HOST=${host}
+
+    BUILD=${build}
+
+
+
+
+  case "$host_os" in
+    *linux*)
+      VAR_OS=linux
+      VAR_OS_API=posix
+      VAR_OS_FAMILY=gnu
+      ;;
+    *solaris*)
+      VAR_OS=solaris
+      VAR_OS_API=posix
+      VAR_OS_FAMILY=sysv
+      ;;
+    *darwin*)
+      VAR_OS=macosx
+      VAR_OS_API=posix
+      VAR_OS_FAMILY=bsd
+      ;;
+    *bsd*)
+      VAR_OS=bsd
+      VAR_OS_API=posix
+      VAR_OS_FAMILY=bsd
+      ;;
+    *cygwin*|*windows*)
+      VAR_OS=windows
+      VAR_OS_API=winapi
+      VAR_OS_FAMILY=windows
+      ;;
+    *)
+      as_fn_error $? "unsupported host operating system $host_os" "$LINENO" 5
+      ;;
+  esac
+
+    HOST_OS="$VAR_OS"
+    HOST_OS_FAMILY="$VAR_OS_FAMILY"
+    HOST_OS_API="$VAR_OS_API"
+
+
+
+
+
+    if test "x$HOST_OS_API" = xposix; then
+        LEGACY_HOST_OS_API="solaris"
+    fi
+    if test "x$HOST_OS_API" = xwinapi; then
+        LEGACY_HOST_OS_API="windows"
+    fi
+
+
+
+
+  # First argument is the cpu name from the trip/quad
+  case "$host_cpu" in
+    x86_64)
+      VAR_CPU=x64
+      VAR_CPU_ARCH=x86
+      VAR_CPU_BITS=64
+      VAR_CPU_ENDIAN=little
+      VAR_LEGACY_CPU=amd64
+      ;;
+    i?86)
+      VAR_CPU=ia32
+      VAR_CPU_ARCH=x86
+      VAR_CPU_BITS=32
+      VAR_CPU_ENDIAN=little
+      VAR_LEGACY_CPU=i586
+      ;;
+    alpha*)
+      VAR_CPU=alpha
+      VAR_CPU_ARCH=alpha
+      VAR_CPU_BITS=64
+      VAR_CPU_ENDIAN=big
+      VAR_LEGACY_CPU=alpha
+      ;;
+    arm*)
+      VAR_CPU=arm
+      VAR_CPU_ARCH=arm
+      VAR_CPU_BITS=3264
+      VAR_CPU_ENDIAN=big
+      VAR_LEGACY_CPU=arm
+      ;;
+    mips)
+      VAR_CPU=mips
+      VAR_CPU_ARCH=mips
+      VAR_CPU_BITS=woot
+      VAR_CPU_ENDIAN=woot
+      VAR_LEGACY_CPU=mips
+       ;;
+    mipsel)
+      VAR_CPU=mipsel
+      VAR_CPU_ARCH=mips
+      VAR_CPU_BITS=woot
+      VAR_CPU_ENDIAN=woot
+      VAR_LEGACY_CPU=mipsel
+       ;;
+    powerpc)
+      VAR_CPU=ppc
+      VAR_CPU_ARCH=ppc
+      VAR_CPU_BITS=32
+      VAR_CPU_ENDIAN=big
+      VAR_LEGACY_CPU=ppc
+       ;;
+    powerpc64)
+      VAR_CPU=ppc64
+      VAR_CPU_ARCH=ppc
+      VAR_CPU_BITS=64
+      VAR_CPU_ENDIAN=32
+      VAR_LEGACY_CPU=ppc64
+       ;;
+    sparc)
+      VAR_CPU=sparc
+      VAR_CPU_ARCH=sparc
+      VAR_CPU_BITS=32
+      VAR_CPU_ENDIAN=big
+      VAR_LEGACY_CPU=sparc
+       ;;
+    sparc64)
+      VAR_CPU=sparcv9
+      VAR_CPU_ARCH=sparc
+      VAR_CPU_BITS=64
+      VAR_CPU_ENDIAN=big
+      VAR_LEGACY_CPU=sparc_sparcv9
+       ;;
+    s390)
+      VAR_CPU=s390
+      VAR_CPU_ARCH=s390
+      VAR_CPU_BITS=32
+      VAR_CPU_ENDIAN=woot
+      VAR_LEGACY_CPU=s390
+      VAR_LEGACY_CPU=s390
+       ;;
+    s390x)
+      VAR_CPU=s390x
+      VAR_CPU_ARCH=s390
+      VAR_CPU_BITS=64
+      VAR_CPU_ENDIAN=woot
+      VAR_LEGACY_CPU=s390x
+       ;;
+    *)
+      as_fn_error $? "unsupported cpu $host_cpu" "$LINENO" 5
+      ;;
+  esac
+
+  # Workaround cygwin not knowing about 64 bit.
+  if test "x$VAR_OS" = "xwindows"; then
+      if test "x$PROCESSOR_IDENTIFIER" != "x"; then
+          PROC_ARCH=`echo $PROCESSOR_IDENTIFIER | $CUT -f1 -d' '`
+          case "$PROC_ARCH" in
+            intel64|Intel64|INTEL64|em64t|EM64T|amd64|AMD64|8664|x86_64)
+              VAR_CPU=x64
+              VAR_CPU_BITS=64
+              VAR_LEGACY_CPU=amd64
+              ;;
+          esac
+      fi
+  fi
+
+  if test "x$VAR_CPU_ARCH" = "xx86"; then
+      if test "x$with_data_model" = "x64"; then
+          VAR_CPU=x64
+          VAR_CPU_BITS=64
+          VAR_LEGACY_CPU=amd64
+      fi
+      if test "x$with_data_model" = "x32"; then
+          VAR_CPU=ia32
+          VAR_CPU_BITS=32
+          VAR_LEGACY_CPU=i586
+      fi
+  fi
+
+    HOST_CPU="$VAR_CPU"
+    HOST_CPU_ARCH="$VAR_CPU_ARCH"
+    HOST_CPU_BITS="$VAR_CPU_BITS"
+    HOST_CPU_ENDIAN="$VAR_CPU_ENDIAN"
+
+
+
+
+
+
+    # Also store the legacy naming of the cpu.
+    # Ie i586 and amd64 instead of ia32 and x64
+    LEGACY_HOST_CPU1="$VAR_LEGACY_CPU"
+
+
+    # And the second legacy naming of the cpu.
+    # Ie i386 and amd64 instead of ia32 and x64.
+    LEGACY_HOST_CPU2="$LEGACY_HOST_CPU1"
+    if test "x$LEGACY_HOST_CPU1" = xi586; then
+        LEGACY_HOST_CPU2=i386
+    fi
+
+
+    # And the third legacy naming of the cpu.
+    # Ie only amd64 or sparcv9, used for the ISA_DIR on Solaris.
+    LEGACY_HOST_CPU3=""
+    if test "x$HOST_CPU" = xx64; then
+        LEGACY_HOST_CPU3=amd64
+    fi
+    if test "x$HOST_CPU" = xsparcv9; then
+        LEGACY_HOST_CPU3=sparvc9
+    fi
+
+
+
+
+
+  case "$build_os" in
+    *linux*)
+      VAR_OS=linux
+      VAR_OS_API=posix
+      VAR_OS_FAMILY=gnu
+      ;;
+    *solaris*)
+      VAR_OS=solaris
+      VAR_OS_API=posix
+      VAR_OS_FAMILY=sysv
+      ;;
+    *darwin*)
+      VAR_OS=macosx
+      VAR_OS_API=posix
+      VAR_OS_FAMILY=bsd
+      ;;
+    *bsd*)
+      VAR_OS=bsd
+      VAR_OS_API=posix
+      VAR_OS_FAMILY=bsd
+      ;;
+    *cygwin*|*windows*)
+      VAR_OS=windows
+      VAR_OS_API=winapi
+      VAR_OS_FAMILY=windows
+      ;;
+    *)
+      as_fn_error $? "unsupported host operating system $build_os" "$LINENO" 5
+      ;;
+  esac
+
+    BUILD_OS="$VAR_OS"
+    BUILD_OS_FAMILY="$VAR_OS_FAMILY"
+    BUILD_OS_API="$VAR_OS_API"
+
+
+
+
+
+    if test "x$BUILD_OS_API" = xposix; then
+        LEGACY_BUILD_OS_API="solaris"
+    fi
+    if test "x$BUILD_OS_API" = xwinapi; then
+        LEGACY_BUILD_OS_API="windows"
+    fi
+
+
+
+
+  # First argument is the cpu name from the trip/quad
+  case "$build_cpu" in
+    x86_64)
+      VAR_CPU=x64
+      VAR_CPU_ARCH=x86
+      VAR_CPU_BITS=64
+      VAR_CPU_ENDIAN=little
+      VAR_LEGACY_CPU=amd64
+      ;;
+    i?86)
+      VAR_CPU=ia32
+      VAR_CPU_ARCH=x86
+      VAR_CPU_BITS=32
+      VAR_CPU_ENDIAN=little
+      VAR_LEGACY_CPU=i586
+      ;;
+    alpha*)
+      VAR_CPU=alpha
+      VAR_CPU_ARCH=alpha
+      VAR_CPU_BITS=64
+      VAR_CPU_ENDIAN=big
+      VAR_LEGACY_CPU=alpha
+      ;;
+    arm*)
+      VAR_CPU=arm
+      VAR_CPU_ARCH=arm
+      VAR_CPU_BITS=3264
+      VAR_CPU_ENDIAN=big
+      VAR_LEGACY_CPU=arm
+      ;;
+    mips)
+      VAR_CPU=mips
+      VAR_CPU_ARCH=mips
+      VAR_CPU_BITS=woot
+      VAR_CPU_ENDIAN=woot
+      VAR_LEGACY_CPU=mips
+       ;;
+    mipsel)
+      VAR_CPU=mipsel
+      VAR_CPU_ARCH=mips
+      VAR_CPU_BITS=woot
+      VAR_CPU_ENDIAN=woot
+      VAR_LEGACY_CPU=mipsel
+       ;;
+    powerpc)
+      VAR_CPU=ppc
+      VAR_CPU_ARCH=ppc
+      VAR_CPU_BITS=32
+      VAR_CPU_ENDIAN=big
+      VAR_LEGACY_CPU=ppc
+       ;;
+    powerpc64)
+      VAR_CPU=ppc64
+      VAR_CPU_ARCH=ppc
+      VAR_CPU_BITS=64
+      VAR_CPU_ENDIAN=32
+      VAR_LEGACY_CPU=ppc64
+       ;;
+    sparc)
+      VAR_CPU=sparc
+      VAR_CPU_ARCH=sparc
+      VAR_CPU_BITS=32
+      VAR_CPU_ENDIAN=big
+      VAR_LEGACY_CPU=sparc
+       ;;
+    sparc64)
+      VAR_CPU=sparcv9
+      VAR_CPU_ARCH=sparc
+      VAR_CPU_BITS=64
+      VAR_CPU_ENDIAN=big
+      VAR_LEGACY_CPU=sparc_sparcv9
+       ;;
+    s390)
+      VAR_CPU=s390
+      VAR_CPU_ARCH=s390
+      VAR_CPU_BITS=32
+      VAR_CPU_ENDIAN=woot
+      VAR_LEGACY_CPU=s390
+      VAR_LEGACY_CPU=s390
+       ;;
+    s390x)
+      VAR_CPU=s390x
+      VAR_CPU_ARCH=s390
+      VAR_CPU_BITS=64
+      VAR_CPU_ENDIAN=woot
+      VAR_LEGACY_CPU=s390x
+       ;;
+    *)
+      as_fn_error $? "unsupported cpu $build_cpu" "$LINENO" 5
+      ;;
+  esac
+
+  # Workaround cygwin not knowing about 64 bit.
+  if test "x$VAR_OS" = "xwindows"; then
+      if test "x$PROCESSOR_IDENTIFIER" != "x"; then
+          PROC_ARCH=`echo $PROCESSOR_IDENTIFIER | $CUT -f1 -d' '`
+          case "$PROC_ARCH" in
+            intel64|Intel64|INTEL64|em64t|EM64T|amd64|AMD64|8664|x86_64)
+              VAR_CPU=x64
+              VAR_CPU_BITS=64
+              VAR_LEGACY_CPU=amd64
+              ;;
+          esac
+      fi
+  fi
+
+  if test "x$VAR_CPU_ARCH" = "xx86"; then
+      if test "x$with_data_model" = "x64"; then
+          VAR_CPU=x64
+          VAR_CPU_BITS=64
+          VAR_LEGACY_CPU=amd64
+      fi
+      if test "x$with_data_model" = "x32"; then
+          VAR_CPU=ia32
+          VAR_CPU_BITS=32
+          VAR_LEGACY_CPU=i586
+      fi
+  fi
+
+    BUILD_CPU="$VAR_CPU"
+    BUILD_CPU_ARCH="$VAR_CPU_ARCH"
+    BUILD_CPU_BITS="$VAR_CPU_BITS"
+    BUILD_CPU_ENDIAN="$VAR_CPU_ENDIAN"
+
+
+
+
+
+
+    # Also store the legacy naming of the cpu.
+    # Ie i586 and amd64 instead of ia32 and x64
+    LEGACY_BUILD_CPU1="$VAR_LEGACY_CPU"
+
+
+    # And the second legacy naming of the cpu.
+    # Ie i386 and amd64 instead of ia32 and x64.
+    LEGACY_BUILD_CPU2="$LEGACY_BUILD_CPU1"
+    if test "x$LEGACY_BUILD_CPU1" = xi586; then
+        LEGACY_BUILD_CPU2=i386
+    fi
+
+
+    # And the third legacy naming of the cpu.
+    # Ie only amd64 or sparcv9, used for the ISA_DIR on Solaris.
+    LEGACY_BUILD_CPU3=""
+    if test "x$BUILD_CPU" = xx64; then
+        LEGACY_BUILD_CPU3=amd64
+    fi
+    if test "x$BUILD_CPU" = xsparcv9; then
+        LEGACY_BUILD_CPU3=sparvc9
+    fi
+
+
+
+    if test "x$HOST_OS" != xsolaris; then
+        LEGACY_HOST_CPU3=""
+        LEGACY_BUILD_CPU3=""
+    fi
+
+# Now the following vars are defined.
+# HOST_OS=aix,bsd,hpux,linux,macosx,solaris,windows
+# HOST_OS_FAMILY=bsd,gnu,sysv,win32,wince
+# HOST_OS_API=posix,winapi
+#
+# HOST_CPU=ia32,x64,sparc,sparcv9,arm,arm64,ppc,ppc64
+# HOST_CPU_ARCH=x86,sparc,pcc,arm
+# HOST_CPU_BITS=32,64
+# HOST_CPU_ENDIAN=big,little
+#
+# There is also a:
+# LEGACY_HOST_CPU1=i586,amd64,....  # used to set the old var ARCH
+# LEGACY_HOST_CPU2=i386,amd64,.... # used to set the old var LIBARCH
+# LEGACY_HOST_CPU3=only sparcv9,amd64 # used to set the ISA_DIR on Solaris
+# There was also a BUILDARCH that had i486,amd64,... but we do not use that
+# in the new build.
+# LEGACY_HOST_OS_API=solaris,windows # used to select source roots
+
+DATE_WHEN_CONFIGURED=`LANG=C date`
+
+
+# How many cores do we have on this build system?
+
+# Check whether --with-num-cores was given.
+if test "${with_num_cores+set}" = set; then :
+  withval=$with_num_cores;
+fi
+
+if test "x$with_num_cores" = x; then
+    # The number of cores were not specified, try to probe them.
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for number of cores" >&5
+$as_echo_n "checking for number of cores... " >&6; }
+    NUM_CORES=1
+    FOUND_CORES=no
+
+    if test -f /proc/cpuinfo; then
+        # Looks like a Linux system
+        NUM_CORES=`cat /proc/cpuinfo  | grep -c processor`
+        FOUND_CORES=yes
+    fi
+
+    if test -x /usr/sbin/psrinfo; then
+        # Looks like a Solaris system
+        NUM_CORES=`LC_MESSAGES=C /usr/sbin/psrinfo -v | grep -c on-line`
+        FOUND_CORES=yes
+    fi
+
+    if test -x /usr/sbin/system_profiler; then
+        # Looks like a MacOSX system
+        NUM_CORES=`/usr/sbin/system_profiler -detailLevel full SPHardwareDataType | grep 'Cores' | awk  '{print $5}'`
+        FOUND_CORES=yes
+    fi
+
+    if test "x$build_os" = xwindows; then
+        NUM_CORES=4
+    fi
+
+    # For c/c++ code we run twice as many concurrent build
+    # jobs than we have cores, otherwise we will stall on io.
+    CONCURRENT_BUILD_JOBS=`expr $NUM_CORES \* 2`
+
+    if test "x$FOUND_CORES" = xyes; then
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NUM_CORES" >&5
+$as_echo "$NUM_CORES" >&6; }
+    else
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: could not detect number of cores, defaulting to 1!" >&5
+$as_echo "could not detect number of cores, defaulting to 1!" >&6; }
+    fi
+
+
+else
+    NUM_CORES=$with_num_cores
+    CONCURRENT_BUILD_JOBS=`expr $NUM_CORES \* 2`
+fi
+
+
+
+# How many cores do we have on this build system?
+
+# Check whether --with-memory-size was given.
+if test "${with_memory_size+set}" = set; then :
+  withval=$with_memory_size;
+fi
+
+if test "x$with_memory_size" = x; then
+    # The memory size was not specified, try to probe it.
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for memory size" >&5
+$as_echo_n "checking for memory size... " >&6; }
+    # Default to 1024MB
+    MEMORY_SIZE=1024
+    FOUND_MEM=no
+
+    if test -f /proc/cpuinfo; then
+        # Looks like a Linux system
+        MEMORY_SIZE=`cat /proc/meminfo | grep MemTotal | awk '{print $2}'`
+        MEMORY_SIZE=`expr $MEMORY_SIZE / 1024`
+        FOUND_MEM=yes
+    fi
+
+    if test -x /usr/sbin/prtconf; then
+        # Looks like a Solaris system
+        MEMORY_SIZE=`/usr/sbin/prtconf | grep "Memory size" | awk '{ print $3 }'`
+        FOUND_MEM=yes
+    fi
+
+    if test -x /usr/sbin/system_profiler; then
+        # Looks like a MacOSX system
+        MEMORY_SIZE=`/usr/sbin/system_profiler -detailLevel full SPHardwareDataType | grep 'Memory' | awk  '{print $2}'`
+        MEMORY_SIZE=`expr $MEMORY_SIZE \* 1024`
+        FOUND_MEM=yes
+    fi
+
+    if test "x$build_os" = xwindows; then
+        MEMORY_SIZE=`systeminfo | grep 'Total Physical Memory:' | awk '{ print $4 }' | sed 's/,//'`
+        FOUND_MEM=yes
+    fi
+
+    if test "x$FOUND_MEM" = xyes; then
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MEMORY_SIZE MB" >&5
+$as_echo "$MEMORY_SIZE MB" >&6; }
+    else
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: could not detect memory size defaulting to 1024MB!" >&5
+$as_echo "could not detect memory size defaulting to 1024MB!" >&6; }
+    fi
+
+else
+    MEMORY_SIZE=$with_memory_size
+fi
+
+
+# Where is the source? It is located two levels above the configure script.
+CURDIR="$PWD"
+cd "$AUTOCONF_DIR/../.."
+SRC_ROOT="`pwd`"
+
+cd "$CURDIR"
+
+# For cygwin we need cygpath first, since it is used everywhere.
+# Extract the first word of "cygpath", so it can be a program name with args.
+set dummy cygpath; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_CYGPATH+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $CYGPATH in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_CYGPATH="$CYGPATH" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_CYGPATH="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+CYGPATH=$ac_cv_path_CYGPATH
+if test -n "$CYGPATH"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CYGPATH" >&5
+$as_echo "$CYGPATH" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+PATH_SEP=":"
+if test "x$BUILD_OS" = "xwindows"; then
+    if test "x$CYGPATH" = x; then
+        as_fn_error $? "Something is wrong with your cygwin installation since I cannot find cygpath.exe in your path" "$LINENO" 5
+    fi
+    PATH_SEP=";"
+fi
+
+
+
+    # Fail with message the path to the source root if var SRC_ROOT contains a path with no spaces in it.
+    # Unless on Windows, where we can rewrite the path.
+    HAS_SPACE=`echo "$SRC_ROOT" | grep " "`
+    if test "x$HAS_SPACE" != x; then
+        if test "x$BUILD_OS" = "xwindows"; then
+            SRC_ROOT=`$CYGPATH -s -m -a "$SRC_ROOT"`
+            SRC_ROOT=`$CYGPATH -u "$SRC_ROOT"`
+        else
+            as_fn_error $? "You cannot have spaces in the path to the source root! \"$SRC_ROOT\"" "$LINENO" 5
+        fi
+    fi
+
+
+    # Fail with message the path to the current directory if var CURDIR contains a path with no spaces in it.
+    # Unless on Windows, where we can rewrite the path.
+    HAS_SPACE=`echo "$CURDIR" | grep " "`
+    if test "x$HAS_SPACE" != x; then
+        if test "x$BUILD_OS" = "xwindows"; then
+            CURDIR=`$CYGPATH -s -m -a "$CURDIR"`
+            CURDIR=`$CYGPATH -u "$CURDIR"`
+        else
+            as_fn_error $? "You cannot have spaces in the path to the current directory! \"$CURDIR\"" "$LINENO" 5
+        fi
+    fi
+
+
+if test "x$BUILD_OS" = "xsolaris"; then
+    # Also search in /usr/ccs/bin for utilities like ar and as.
+    PATH="/usr/ccs/bin:$PATH"
+fi
+
+###############################################################################
+#
+# OpenJDK or closed
+#
+# Check whether --enable-openjdk was given.
+if test "${enable_openjdk+set}" = set; then :
+  enableval=$enable_openjdk;
+fi
+
+
+if test "x$enable_openjdk" = "xyes"; then
+    OPENJDK=true
+elif test "x$enable_openjdk" = "xno"; then
+    OPENJDK=false
+elif test -d "$SRC_ROOT/jdk/src/closed"; then
+    OPENJDK=false
+else
+    OPENJDK=true
+fi
+
+if test "x$OPENJDK" = "xtrue"; then
+    SET_OPENJDK=OPENJDK=true
+fi
+
+
+
+###############################################################################
+#
+# JIGSAW or not.  The JIGSAW variable is used during the intermediate
+# stage when we are building both the old style JDK and the new style modularized JDK.
+# When the modularized JDK is finalized, this option will go away.
+#
+# Check whether --enable-jigsaw was given.
+if test "${enable_jigsaw+set}" = set; then :
+  enableval=$enable_jigsaw;
+fi
+
+
+if test "x$enable_jigsaw" = "xyes"; then
+    JIGSAW=true
+else
+    JIGSAW=false
+fi
+
+
+###############################################################################
+#
+# Check which variant of the JDK that we want to build.
+# Currently we have:
+#    normal:   standard edition
+#    embedded: cut down to a smaller footprint
+#
+# Effectively the JDK variant gives a name to a specific set of
+# modules to compile into the JDK. In the future, these modules
+# might even be Jigsaw modules.
+#
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking which variant of the JDK to build" >&5
+$as_echo_n "checking which variant of the JDK to build... " >&6; }
+
+# Check whether --with-jdk-variant was given.
+if test "${with_jdk_variant+set}" = set; then :
+  withval=$with_jdk_variant;
+fi
+
+
+if test "x$with_jdk_variant" = xnormal || test "x$with_jdk_variant" = x; then
+    JAVASE_EMBEDDED=""
+    MINIMIZE_RAM_USAGE=""
+    JDK_VARIANT="normal"
+elif test "x$with_jdk_variant" = xembedded; then
+    JAVASE_EMBEDDED="JAVASE_EMBEDDED:=true"
+    MINIMIZE_RAM_USAGE="MINIMIZE_RAM_USAGE:=true"
+    JDK_VARIANT="embedded"
+else
+    as_fn_error $? "The available JDK variants are: normal, embedded" "$LINENO" 5
+fi
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $JDK_VARIANT" >&5
+$as_echo "$JDK_VARIANT" >&6; }
+
+###############################################################################
+#
+# Should we build a JDK/JVM with head support (ie a graphical ui)?
+# We always build headless support.
+#
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking headful support" >&5
+$as_echo_n "checking headful support... " >&6; }
+# Check whether --enable-headful was given.
+if test "${enable_headful+set}" = set; then :
+  enableval=$enable_headful; SUPPORT_HEADFUL=${enable_headful}
+else
+  SUPPORT_HEADFUL=yes
+fi
+
+
+SUPPORT_HEADLESS=yes
+BUILD_HEADLESS="BUILD_HEADLESS:=true"
+
+if test "x$SUPPORT_HEADFUL" = xyes; then
+    # We are building both headful and headless.
+    BUILD_HEADLESS_ONLY=""
+    headful_msg="inlude support for both headful and headless"
+fi
+
+if test "x$SUPPORT_HEADFUL" = xno; then
+    # Thus we are building headless only.
+    BUILD_HEADLESS="BUILD_HEADLESS:=true"
+    BUILD_HEADLESS_ONLY="BUILD_HEADLESS_ONLY:=true"
+    headful_msg="headless only"
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $headful_msg" >&5
+$as_echo "$headful_msg" >&6; }
+
+
+
+
+
+
+###############################################################################
+#
+# Check which variants of the JVM that we want to build.
+# Currently we have:
+#    server: normal interpreter and a tiered C1/C2 compiler
+#    client: normal interpreter and C1 (no C2 compiler) (only 32-bit platforms)
+#    kernel: kernel footprint JVM that passes the TCK without major performance problems,
+#             ie normal interpreter and C1, only the serial GC, kernel jvmti etc
+#    zero: no machine code interpreter, no compiler
+#    zeroshark: zero interpreter and shark/llvm compiler backend
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking which variants of the JVM that should be built" >&5
+$as_echo_n "checking which variants of the JVM that should be built... " >&6; }
+
+# Check whether --with-jvm-variants was given.
+if test "${with_jvm_variants+set}" = set; then :
+  withval=$with_jvm_variants;
+fi
+
+
+if test "x$with_jvm_variants" = x; then
+    if test "x$JDK_VARIANT" = xembedded; then
+        with_jvm_variants="kernel"
+    elif test "x$HOST_CPU_BITS" = x64; then
+        with_jvm_variants="server"
+    else
+        # Yes, on 32-bit machines, the same source (almost) is compiled twice
+        # to generate two libjvm.so files. Fun, fun.
+        with_jvm_variants="client,server"
+    fi
+fi
+
+JVM_VARIANTS=",$with_jvm_variants,"
+TEST_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/server,//' -e 's/client,//' -e 's/kernel,//' -e 's/zero,//' -e 's/zeroshark,//'`
+
+if test "x$TEST_VARIANTS" != "x,"; then
+   as_fn_error $? "The available JVM variants are: server, client, kernel, zero, zeroshark" "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_jvm_variants" >&5
+$as_echo "$with_jvm_variants" >&6; }
+
+JVM_VARIANT_SERVER=`$ECHO "$JVM_VARIANTS" | $SED -e '/,server,/!s/.*/false/g' -e '/,server,/s/.*/true/g'`
+JVM_VARIANT_CLIENT=`$ECHO "$JVM_VARIANTS" | $SED -e '/,client,/!s/.*/false/g' -e '/,client,/s/.*/true/g'`
+JVM_VARIANT_KERNEL=`$ECHO "$JVM_VARIANTS" | $SED -e '/,kernel,/!s/.*/false/g' -e '/,kernel,/s/.*/true/g'`
+JVM_VARIANT_ZERO=`$ECHO "$JVM_VARIANTS" | $SED -e '/,zero,/!s/.*/false/g' -e '/,zero,/s/.*/true/g'`
+JVM_VARIANT_ZEROSHARK=`$ECHO "$JVM_VARIANTS" | $SED -e '/,zeroshark,/!s/.*/false/g' -e '/,zeroshark,/s/.*/true/g'`
+
+if test "x$JVM_VARIANT_CLIENT" = xtrue; then
+    if test "x$HOST_CPU_BITS" = x64; then
+        as_fn_error $? "You cannot build a client JVM for a 64-bit machine." "$LINENO" 5
+    fi
+fi
+if test "x$JVM_VARIANT_KERNEL" = xtrue; then
+    if test "x$HOST_CPU_BITS" = x64; then
+        as_fn_error $? "You cannot build a kernel JVM for a 64-bit machine." "$LINENO" 5
+    fi
+fi
+
+COUNT_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/server,/1/' -e 's/client,/1/' -e 's/kernel,/1/' -e 's/zero,/1/' -e 's/zeroshark,/1/'`
+# Replace the commas with AND for use in the build directory name.
+ANDED_JVM_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/^,//' -e 's/,$//' -e 's/,/AND/'`
+if test "x$COUNT_VARIANTS" != "x,1"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: NOTE! Longer build time since we are building more than one version of the libjvm! $with_jvm_variants" >&5
+$as_echo "$as_me: NOTE! Longer build time since we are building more than one version of the libjvm! $with_jvm_variants" >&6;}
+fi
+
+
+
+
+
+
+
+
+###############################################################################
+#
+# Set the debug level
+#    release: no debug information, all optimizations, no asserts.
+#    fastdebug: debug information (-g), all optimizations, all asserts
+#    slowdebug: debug information (-g), no optimizations, all asserts
+#
+DEBUG_LEVEL="release"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking which debug level to use" >&5
+$as_echo_n "checking which debug level to use... " >&6; }
+# Check whether --enable-debug was given.
+if test "${enable_debug+set}" = set; then :
+  enableval=$enable_debug;
+        ENABLE_DEBUG="${enableval}"
+        DEBUG_LEVEL="fastdebug"
+
+else
+  ENABLE_DEBUG="no"
+fi
+
+
+
+# Check whether --with-debug-level was given.
+if test "${with_debug_level+set}" = set; then :
+  withval=$with_debug_level;
+        DEBUG_LEVEL="${withval}"
+        if test "x$ENABLE_DEBUG" = xyes; then
+			as_fn_error $? "You cannot use both --enable-debug and --with-debug-level at the same time." "$LINENO" 5
+        fi
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $DEBUG_LEVEL" >&5
+$as_echo "$DEBUG_LEVEL" >&6; }
+
+if test "x$DEBUG_LEVEL" != xrelease && \
+   test "x$DEBUG_LEVEL" != xfastdebug && \
+   test "x$DEBUG_LEVEL" != xslowdebug; then
+   as_fn_error $? "Allowed debug levels are: release, fastdebug and slowdebug" "$LINENO" 5
+fi
+
+case $DEBUG_LEVEL in
+      release )
+          VARIANT="OPT"
+          FASTDEBUG="false"
+          DEBUG_CLASSFILES="false"
+          BUILD_VARIANT_RELEASE=""
+           ;;
+      fastdebug )
+          VARIANT="DBG"
+          FASTDEBUG="true"
+          DEBUG_CLASSFILES="true"
+          BUILD_VARIANT_RELEASE="-fastdebug"
+           ;;
+      slowdebug )
+          VARIANT="DBG"
+          FASTDEBUG="false"
+          DEBUG_CLASSFILES="true"
+          BUILD_VARIANT_RELEASE="-debug"
+           ;;
+esac
+
+
+
+
+
+
+
+# Source the version numbers
+. $AUTOCONF_DIR/version.numbers
+if test "x$OPENJDK" = "xfalse"; then
+    . $AUTOCONF_DIR/closed.version.numbers
+fi
+# Now set the JDK version, milestone, build number etc.
+
+
+
+
+
+
+
+
+
+
+
+
+COPYRIGHT_YEAR=`date +'%Y'`
+
+
+RUNTIME_NAME="$PRODUCT_NAME $PRODUCT_SUFFIX"
+
+
+if test "x$JDK_UPDATE_VERSION" != x; then
+    JDK_VERSION="${JDK_MAJOR_VERSION}.${JDK_MINOR_VERSION}.${JDK_MICRO_VERSION}_${JDK_UPDATE_VERSION}"
+else
+    JDK_VERSION="${JDK_MAJOR_VERSION}.${JDK_MINOR_VERSION}.${JDK_MICRO_VERSION}"
+fi
+
+
+if test "x$MILESTONE" != x; then
+    RELEASE="${JDK_VERSION}-${MILESTONE}${BUILD_VARIANT_RELEASE}"
+else
+    RELEASE="${JDK_VERSION}${BUILD_VARIANT_RELEASE}"
+fi
+
+
+if test "x$JDK_BUILD_NUMBER" != x; then
+    FULL_VERSION="${RELEASE}-${JDK_BUILD_NUMBER}"
+else
+    JDK_BUILD_NUMBER=b00
+    BUILD_DATE=`date '+%Y_%m_%d_%H_%M'`
+    # Avoid [:alnum:] since it depends on the locale.
+    CLEAN_USERNAME=`echo "$USER" | $TR -d -c 'abcdefghijklmnopqrstuvqxyz0123456789'`
+    USER_RELEASE_SUFFIX=`echo "${CLEAN_USERNAME}_${BUILD_DATE}" | $TR 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvqxyz'`
+    FULL_VERSION="${RELEASE}-${USER_RELEASE_SUFFIX}-${JDK_BUILD_NUMBER}"
+fi
+
+COOKED_BUILD_NUMBER=`$ECHO $JDK_BUILD_NUMBER | $SED -e 's/^b//' -e 's/^0//'`
+
+
+# Test from where we are running configure, in or outside of src root.
+if test "x$CURDIR" = "x$SRC_ROOT" || test "x$CURDIR" = "x$SRC_ROOT/common" || test "x$CURDIR" = "x$SRC_ROOT/common/autoconf" || test "x$CURDIR" = "x$SRC_ROOT/common/makefiles" ; then
+    # We are running configure from the src root.
+    # Create a default ./build/host-variant-debuglevel output root.
+    OUTPUT_ROOT="$SRC_ROOT/build/${HOST_OS}-${HOST_CPU}-${JDK_VARIANT}-${ANDED_JVM_VARIANTS}-${DEBUG_LEVEL}"
+    mkdir -p "$OUTPUT_ROOT"
+    if test ! -d "$OUTPUT_ROOT"; then
+        as_fn_error $? "Could not create build directory $OUTPUT_ROOT" "$LINENO" 5
+    fi
+else
+    # We are running configure from outside of the src dir.
+    # Then use the current directory as output dir!
+    OUTPUT_ROOT="$CURDIR"
+fi
+
+
+    # Fail with message the path to the output root if var OUTPUT_ROOT contains a path with no spaces in it.
+    # Unless on Windows, where we can rewrite the path.
+    HAS_SPACE=`echo "$OUTPUT_ROOT" | grep " "`
+    if test "x$HAS_SPACE" != x; then
+        if test "x$BUILD_OS" = "xwindows"; then
+            OUTPUT_ROOT=`$CYGPATH -s -m -a "$OUTPUT_ROOT"`
+            OUTPUT_ROOT=`$CYGPATH -u "$OUTPUT_ROOT"`
+        else
+            as_fn_error $? "You cannot have spaces in the path to the output root! \"$OUTPUT_ROOT\"" "$LINENO" 5
+        fi
+    fi
+
+
+# Save the arguments given to us
+echo "$CONFIGURE_COMMAND_LINE" > $OUTPUT_ROOT/configure-arguments
+
+# Check if the VS env variables were setup prior to running configure.
+# If not, then find vcvarsall.bat and run it automatically, and integrate
+# the set env variables into the spec file.
+SETUPDEVENV="# No special vars"
+if test "x$BUILD_OS" = "xwindows"; then
+    # If vcvarsall.bat has been run, then VCINSTALLDIR is set.
+    if test "x$VCINSTALLDIR" != x; then
+        # No further setup is needed. The build will happen from this kind
+        # of shell.
+        SETUPDEVENV="# This spec file expects that you are running bash from within a VS command prompt."
+        # Make sure to remind you, if you forget to run make from a cygwin bash shell
+        # that is spawned "bash -l" from a VS command prompt.
+        CHECK_FOR_VCINSTALLDIR=yes
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking if you are running from within a VS command prompt" >&5
+$as_echo_n "checking if you are running from within a VS command prompt... " >&6; }
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+    else
+        # Ah, we have not yet run vcvarsall.bat/vsvars32.bat/vsvars64.bat. Lets do that. First find it.
+        if test "x$VS100COMNTOOLS" != x; then
+            VARSBAT=`find "$VS100COMNTOOLS/../.." -name vcvarsall.bat`
+	    SEARCH_ROOT="$VS100COMNTOOLS"
+        else
+            VARSBAT=`find "$PROGRAMFILES" -name vcvarsall.bat`
+	    SEARCH_ROOT="$PROGRAMFILES"
+        fi
+        VCPATH=`dirname "$VARSBAT"`
+        VCPATH=`cygpath -w "$VCPATH"`
+	if test "x$VARSBAT" = x || test ! -d "$VCPATH"; then
+            { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can find the VS installation" >&5
+$as_echo_n "checking if we can find the VS installation... " >&6; }
+            { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+            as_fn_error $? "Tried to find a VS installation using both $SEARCH_ROOT but failed. Please run \"c:\\cygwin\\bin\\bash.exe -l\" from a VS command prompt and then run configure/make from there." "$LINENO" 5
+        fi
+        case "$LEGACY_HOST_CPU1" in
+          i?86)
+            VARSBAT_ARCH=x86
+            ;;
+          *)
+            VARSBAT_ARCH=$LEGACY_HOST_CPU1
+            ;;
+        esac
+        # Lets extract the variables that are set by vcvarsall.bat/vsvars32.bat/vsvars64.bat
+        cd $OUTPUT_ROOT
+        $SRC_ROOT/common/bin/extractvcvars.sh "$VARSBAT" "$VARSBAT_ARCH"
+	cd $CURDIR
+	if test ! -s $OUTPUT_ROOT/localdevenv.sh || test ! -s $OUTPUT_ROOT/localdevenv.gmk; then
+            { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can extract the needed env variables" >&5
+$as_echo_n "checking if we can extract the needed env variables... " >&6; }
+            { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+            as_fn_error $? "Could not succesfully extract the env variables needed for the VS setup. Please run \"c:\\cygwin\\bin\\bash.exe -l\" from a VS command prompt and then run configure/make from there." "$LINENO" 5
+        fi
+        # Now set all paths and other env variables. This will allow the rest of
+        # the configure script to find and run the compiler in the proper way.
+        . $OUTPUT_ROOT/localdevenv.sh
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can find the VS installation" >&5
+$as_echo_n "checking if we can find the VS installation... " >&6; }
+	if test "x$VCINSTALLDIR" != x; then
+            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $VCINSTALLDIR" >&5
+$as_echo "$VCINSTALLDIR" >&6; }
+        else
+            { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+            as_fn_error $? "Could not find VS installation. Please install. If you are sure you have installed VS, then please run \"c:\\cygwin\\bin\\bash.exe -l\" from a VS command prompt and then run configure/make from there." "$LINENO" 5
+        fi
+        CHECK_FOR_VCINSTALLDIR=no
+	SETUPDEVENV="include $OUTPUT_ROOT/localdevenv.gmk"
+
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for msvcr100.dll" >&5
+$as_echo_n "checking for msvcr100.dll... " >&6; }
+
+# Check whether --with-msvcr100dll was given.
+if test "${with_msvcr100dll+set}" = set; then :
+  withval=$with_msvcr100dll;
+fi
+
+        if test "x$with_msvcr100dll" != x; then
+            MSVCR100DLL="$with_msvcr100dll"
+        else
+            if test "x$HOST_CPU_BITS" = x64; then
+                MSVCR100DLL=`find "$VCINSTALLDIR/.." -name msvcr100.dll | grep x64 | head --lines 1`
+            else
+                MSVCR100DLL=`find "$VCINSTALLDIR/.." -name msvcr100.dll | grep x86 | grep -v ia64 | grep -v x64 | head --lines 1`
+                if test "x$MSVCR100DLL" = x; then
+                    MSVCR100DLL=`find "$VCINSTALLDIR/.." -name msvcr100.dll | head --lines 1`
+                fi
+            fi
+        fi
+	if test "x$MSVCR100DLL" = x; then
+           { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+	   as_fn_error $? "Could not find msvcr100.dll !" "$LINENO" 5
+        fi
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSVCR100DLL" >&5
+$as_echo "$MSVCR100DLL" >&6; }
+
+    # Fail with message the path to msvcr100.dll if var MSVCR100DLL contains a path with no spaces in it.
+    # Unless on Windows, where we can rewrite the path.
+    HAS_SPACE=`echo "$MSVCR100DLL" | grep " "`
+    if test "x$HAS_SPACE" != x; then
+        if test "x$BUILD_OS" = "xwindows"; then
+            MSVCR100DLL=`$CYGPATH -s -m -a "$MSVCR100DLL"`
+            MSVCR100DLL=`$CYGPATH -u "$MSVCR100DLL"`
+        else
+            as_fn_error $? "You cannot have spaces in the path to msvcr100.dll! \"$MSVCR100DLL\"" "$LINENO" 5
+        fi
+    fi
+
+    fi
+fi
+
+
+
+
+# Most of the probed defines are put into config.h
+ac_config_headers="$ac_config_headers $OUTPUT_ROOT/config.h:$AUTOCONF_DIR/config.h.in"
+
+# The spec.gmk file contains all variables for the make system.
+ac_config_files="$ac_config_files $OUTPUT_ROOT/spec.gmk:$AUTOCONF_DIR/spec.gmk.in"
+
+# The generated Makefile knows where the spec.gmk is and where the source is.
+# You can run make from the OUTPUT_ROOT. If you have only
+# one configured host, then you can also run make from the SRC_ROOT,
+# since it will go look for a single spec.gmk file. Or perhaps it
+# should instead make all configured hosts it can find?
+ac_config_files="$ac_config_files $OUTPUT_ROOT/Makefile:$AUTOCONF_DIR/Makefile.in"
+
+
+SPEC=$OUTPUT_ROOT/spec.gmk
+
+OUTPUT_ROOT=$OUTPUT_ROOT
+
+
+# Where are the sources. Any of these can be overridden
+# using --with-override-corba and the likes.
+LANGTOOLS_TOPDIR="$SRC_ROOT/langtools"
+CORBA_TOPDIR="$SRC_ROOT/corba"
+JAXP_TOPDIR="$SRC_ROOT/jaxp"
+JAXWS_TOPDIR="$SRC_ROOT/jaxws"
+HOTSPOT_TOPDIR="$SRC_ROOT/hotspot"
+JDK_TOPDIR="$SRC_ROOT/jdk"
+
+
+
+
+
+
+
+# Check if pkg-config is available.
+
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+	if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+if test -n "$PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
+$as_echo "$PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
+fi
+if test -n "$PKG_CONFIG"; then
+	_pkg_min_version=0.9.0
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
+$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; }
+	if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+	else
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+		PKG_CONFIG=""
+	fi
+
+fi
+
+
+# Check whether --with-builddeps-conf was given.
+if test "${with_builddeps_conf+set}" = set; then :
+  withval=$with_builddeps_conf;
+fi
+
+
+
+# Check whether --with-builddeps-server was given.
+if test "${with_builddeps_server+set}" = set; then :
+  withval=$with_builddeps_server;
+fi
+
+
+
+# Check whether --with-builddeps-dir was given.
+if test "${with_builddeps_dir+set}" = set; then :
+  withval=$with_builddeps_dir;
+else
+  with_builddeps_dir=/localhome/builddeps
+fi
+
+
+
+# Check whether --with-builddeps-group was given.
+if test "${with_builddeps_group+set}" = set; then :
+  withval=$with_builddeps_group;
+fi
+
+
+# Check whether --enable-list-builddeps was given.
+if test "${enable_list_builddeps+set}" = set; then :
+  enableval=$enable_list_builddeps; LIST_BUILDDEPS="${enableval}"
+else
+  LIST_BUILDDEPS='no'
+fi
+
+
+if test "x$LIST_BUILDDEPS" = xyes; then
+    echo
+    echo List of build dependencies known to the configure script,
+    echo that can be used in builddeps.conf files:
+    cat $SRC_ROOT/configure.ac | grep BDEPS_CHECK_MODUL | grep -v configure.ac | cut -f 2 -d ',' | tr -d ' ' | sort
+    echo
+    exit 1
+fi
+
+# If builddeps server or conf file is given. Setup buildeps usage.
+
+
+    if test "x$with_builddeps_server" != x || test "x$with_builddeps_conf" != x; then
+        if test "x$with_builddeps_conf" != x; then
+            { $as_echo "$as_me:${as_lineno-$LINENO}: checking for supplied builddeps configuration file" >&5
+$as_echo_n "checking for supplied builddeps configuration file... " >&6; }
+            builddepsfile=$with_builddeps_conf
+            if test -s $builddepsfile; then
+                . $builddepsfile
+                { $as_echo "$as_me:${as_lineno-$LINENO}: result: loaded!" >&5
+$as_echo "loaded!" >&6; }
+            else
+               as_fn_error $? "The given builddeps conf file $with_builddeps_conf could not be loaded!" "$LINENO" 5
+           fi
+        else
+            { $as_echo "$as_me:${as_lineno-$LINENO}: checking for builddeps.conf files in sources..." >&5
+$as_echo_n "checking for builddeps.conf files in sources...... " >&6; }
+            builddepsfile=`mktemp`
+            touch $builddepsfile
+            # Put all found confs into a single file.
+            find ${SRC_ROOT} -name builddeps.conf -exec cat \{\} \; >> $builddepsfile
+            # Source the file to acquire the variables
+            if test -s $builddepsfile; then
+                . $builddepsfile
+                { $as_echo "$as_me:${as_lineno-$LINENO}: result: found at least one!" >&5
+$as_echo "found at least one!" >&6; }
+            else
+               as_fn_error $? "Could not find any builddeps.conf at all!" "$LINENO" 5
+           fi
+        fi
+        # Create build and host names that use _ instead of "-" and ".".
+        # This is necessary to use them in variable names.
+        build_var=`echo ${build} | tr '-' '_' | tr '.' '_'`
+        host_var=`echo ${host} | tr '-' '_' | tr '.' '_'`
+        # Extract rewrite information for build and host
+        eval rewritten_build=\${REWRITE_${build_var}}
+        if test "x$rewritten_build" = x; then
+            rewritten_build=${build}
+            echo Build stays the same $rewritten_build
+        else
+            echo Rewriting build for builddeps into $rewritten_build
+        fi
+        eval rewritten_host=\${REWRITE_${host_var}}
+        if test "x$rewritten_host" = x; then
+            rewritten_host=${host}
+            echo Host stays the same $rewritten_host
+        else
+            echo Rewriting host for builddeps into $rewritten_host
+        fi
+        rewritten_build_var=`echo ${rewritten_build} | tr '-' '_' | tr '.' '_'`
+        rewritten_host_var=`echo ${rewritten_host} | tr '-' '_' | tr '.' '_'`
+    fi
+    for ac_prog in 7z unzip
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_BDEPS_UNZIP+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$BDEPS_UNZIP"; then
+  ac_cv_prog_BDEPS_UNZIP="$BDEPS_UNZIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_BDEPS_UNZIP="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+BDEPS_UNZIP=$ac_cv_prog_BDEPS_UNZIP
+if test -n "$BDEPS_UNZIP"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BDEPS_UNZIP" >&5
+$as_echo "$BDEPS_UNZIP" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$BDEPS_UNZIP" && break
+done
+
+    if test "x$BDEPS_UNZIP" = x7z; then
+        BDEPS_UNZIP="7z x"
+    fi
+
+    for ac_prog in wget lftp ftp
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_BDEPS_FTP+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$BDEPS_FTP"; then
+  ac_cv_prog_BDEPS_FTP="$BDEPS_FTP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_BDEPS_FTP="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+BDEPS_FTP=$ac_cv_prog_BDEPS_FTP
+if test -n "$BDEPS_FTP"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BDEPS_FTP" >&5
+$as_echo "$BDEPS_FTP" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$BDEPS_FTP" && break
+done
+
+
+
+###############################################################################
+#
+# Configure the development tool paths and potential sysroot.
+#
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+DEVKIT=
+SYS_ROOT=/
+
+
+# The option used to specify the target .o,.a or .so file.
+# When compiling, how to specify the to be created object file.
+CC_OUT_OPTION='-o$(SPACE)'
+# When linking, how to specify the to be created executable.
+EXE_OUT_OPTION='-o$(SPACE)'
+# When linking, how to specify the to be created dynamically linkable library.
+LD_OUT_OPTION='-o$(SPACE)'
+# When archiving, how to specify the to be create static archive for object files.
+AR_OUT_OPTION='rcs$(SPACE)'
+
+
+
+
+
+# If --build AND --host is set, then the configure script will find any
+# cross compilation tools in the PATH. Cross compilation tools
+# follows the cross compilation standard where they are prefixed with ${host}.
+# For example the binary i686-sun-solaris2.10-gcc
+# will cross compile for i686-sun-solaris2.10
+# If neither of build and host is not set, then build=host and the
+# default compiler found in the path will be used.
+# Setting only --host, does not seem to be really supported.
+# Please set both --build and --host if you want to cross compile.
+
+DEFINE_CROSS_COMPILE_ARCH=""
+HOSTCC=""
+HOSTCXX=""
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if this is a cross compile" >&5
+$as_echo_n "checking if this is a cross compile... " >&6; }
+if test "x$build_var" != "x$host_var"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, from $build_var to $host_var" >&5
+$as_echo "yes, from $build_var to $host_var" >&6; }
+    # We have detected a cross compile!
+    DEFINE_CROSS_COMPILE_ARCH="CROSS_COMPILE_ARCH:=$LEGACY_HOST_CPU1"
+    # Now we to find a C/C++ compiler that can build executables for the build
+    # platform. We can't use the AC_PROG_CC macro, since it can only be used
+    # once.
+    for ac_prog in cl cc gcc
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_HOSTCC+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $HOSTCC in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_HOSTCC="$HOSTCC" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_HOSTCC="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+HOSTCC=$ac_cv_path_HOSTCC
+if test -n "$HOSTCC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HOSTCC" >&5
+$as_echo "$HOSTCC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$HOSTCC" && break
+done
+
+
+    # Translate "gcc -E" into "`which gcc` -E" ie
+    # extract the full path to the binary and at the
+    # same time maintain any arguments passed to it.
+    # The command MUST exist in the path, or else!
+    tmp="$HOSTCC"
+    car="${tmp%% *}"
+    tmp="$HOSTCC EOL"
+    cdr="${tmp#* }"
+    # On windows we want paths without spaces.
+    if test "x$BUILD_OS" = "xwindows"; then
+
+    # Translate long cygdrive or C:\sdfsf path
+    # into a short mixed mode path that has no
+    # spaces in it.
+    tmp="$car"
+    if test "x$BUILD_OS" = "xwindows"; then
+        tmp=`$CYGPATH -u "$car"`
+        tmp=`which "$tmp"`
+        # If file exists with .exe appended, that's the real filename
+        # and cygpath needs that to convert to short style path.
+        if test -f "${tmp}.exe"; then
+           tmp="${tmp}.exe"
+        elif test -f "${tmp}.cmd"; then
+           tmp="${tmp}.cmd"
+        fi
+        # Convert to C:/ mixed style path without spaces.
+         tmp=`$CYGPATH -s -m "$tmp"`
+    fi
+    car="$tmp"
+
+    else
+        # "which" is not portable, but is used here
+        # because we know that the command exists!
+        car=`which $car`
+    fi
+    if test "x$cdr" != xEOL; then
+        HOSTCC="$car ${cdr% *}"
+    else
+        HOSTCC="$car"
+    fi
+
+    for ac_prog in cl CC g++
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_HOSTCXX+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $HOSTCXX in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_HOSTCXX="$HOSTCXX" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_HOSTCXX="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+HOSTCXX=$ac_cv_path_HOSTCXX
+if test -n "$HOSTCXX"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HOSTCXX" >&5
+$as_echo "$HOSTCXX" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$HOSTCXX" && break
+done
+
+
+    # Translate "gcc -E" into "`which gcc` -E" ie
+    # extract the full path to the binary and at the
+    # same time maintain any arguments passed to it.
+    # The command MUST exist in the path, or else!
+    tmp="$HOSTCXX"
+    car="${tmp%% *}"
+    tmp="$HOSTCXX EOL"
+    cdr="${tmp#* }"
+    # On windows we want paths without spaces.
+    if test "x$BUILD_OS" = "xwindows"; then
+
+    # Translate long cygdrive or C:\sdfsf path
+    # into a short mixed mode path that has no
+    # spaces in it.
+    tmp="$car"
+    if test "x$BUILD_OS" = "xwindows"; then
+        tmp=`$CYGPATH -u "$car"`
+        tmp=`which "$tmp"`
+        # If file exists with .exe appended, that's the real filename
+        # and cygpath needs that to convert to short style path.
+        if test -f "${tmp}.exe"; then
+           tmp="${tmp}.exe"
+        elif test -f "${tmp}.cmd"; then
+           tmp="${tmp}.cmd"
+        fi
+        # Convert to C:/ mixed style path without spaces.
+         tmp=`$CYGPATH -s -m "$tmp"`
+    fi
+    car="$tmp"
+
+    else
+        # "which" is not portable, but is used here
+        # because we know that the command exists!
+        car=`which $car`
+    fi
+    if test "x$cdr" != xEOL; then
+        HOSTCXX="$car ${cdr% *}"
+    else
+        HOSTCXX="$car"
+    fi
+
+    # Building for the build platform should be easy. Therefore
+    # we do not need any linkers or assemblers etc.
+else
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+# You can force the sys-root if the sys-root encoded into the cross compiler tools
+# is not correct.
+
+# Check whether --with-sys-root was given.
+if test "${with_sys_root+set}" = set; then :
+  withval=$with_sys_root;
+fi
+
+
+if test "x$with_sys_root" != x; then
+    SYS_ROOT=$with_sys_root
+fi
+
+# If a devkit is found on the builddeps server, then prepend its path to the
+# PATH variable. If there are cross compilers available in the devkit, these
+# will be found by AC_PROG_CC et al.
+
+
+    if test "x$with_builddeps_server" != x || test "x$with_builddeps_conf" != x; then
+        # Source the builddeps file again, to make sure it uses the latest variables!
+        . $builddepsfile
+        # Look for a host and build machine specific resource!
+        eval resource=\${builddep_devkit_BUILD_${rewritten_build_var}_HOST_${rewritten_host_var}}
+        if test "x$resource" = x; then
+            # Ok, lets instead look for a host specific resource
+            eval resource=\${builddep_devkit_HOST_${rewritten_host_var}}
+        fi
+        if test "x$resource" = x; then
+            # Ok, lets instead look for a build specific resource
+            eval resource=\${builddep_devkit_BUILD_${rewritten_build_var}}
+        fi
+        if test "x$resource" = x; then
+            # Ok, lets instead look for a generic resource
+            # (The devkit comes from M4 and not the shell, thus no need for eval here.)
+            resource=${builddep_devkit}
+        fi
+        if test "x$resource" != x; then
+            { $as_echo "$as_me:${as_lineno-$LINENO}: Using builddeps $resource for devkit" >&5
+$as_echo "$as_me: Using builddeps $resource for devkit" >&6;}
+	    # If the resource in the builddeps.conf file is an existing directory,
+	    # for example /java/linux/cups
+	    if test -d ${resource}; then
+	       depdir=${resource}
+	    else
+
+# devkit is for example mymodule
+# $resource is for example libs/general/libmymod_1_2_3.zip
+# $with_builddeps_server is for example ftp://mybuilddeps.myserver.com/builddeps
+# $with_builddeps_dir is for example /localhome/builddeps
+# depdir is the name of the variable into which we store the depdir, eg MYMOD
+# Will download ftp://mybuilddeps.myserver.com/builddeps/libs/general/libmymod_1_2_3.zip and
+# unzip into the directory: /localhome/builddeps/libmymod_1_2_3
+    filename=`basename $resource`
+    filebase=`echo $filename | sed 's/\.[^\.]*$//'`
+    filebase=${filename%%.*}
+    extension=${filename#*.}
+    installdir=$with_builddeps_dir/$filebase
+    if test ! -f $installdir/$filename.unpacked; then
+        { $as_echo "$as_me:${as_lineno-$LINENO}: Downloading build dependency devkit from $with_builddeps_server/$resource and installing into $installdir" >&5
+$as_echo "$as_me: Downloading build dependency devkit from $with_builddeps_server/$resource and installing into $installdir" >&6;}
+        if test ! -d $installdir; then
+            mkdir -p $installdir
+        fi
+        if test ! -d $installdir; then
+            as_fn_error $? "Could not create directory $installdir" "$LINENO" 5
+        fi
+        tmpfile=`mktemp $installdir/devkit.XXXXXXXXX`
+        touch $tmpfile
+        if test ! -f $tmpfile; then
+            as_fn_error $? "Could not create files in directory $installdir" "$LINENO" 5
+        fi
+
+    # $with_builddeps_server/$resource  is the ftp://abuilddeps.server.com/libs/cups.zip
+    # $tmpfile is the local file name for the downloaded file.
+    VALID_TOOL=no
+    if test "x$BDEPS_FTP" = xwget; then
+       VALID_TOOL=yes
+       wget -O $tmpfile $with_builddeps_server/$resource
+    fi
+    if test "x$BDEPS_FTP" = xlftp; then
+       VALID_TOOL=yes
+       lftp -c "get $with_builddeps_server/$resource  -o $tmpfile"
+    fi
+    if test "x$BDEPS_FTP" = xftp; then
+        VALID_TOOL=yes
+        FTPSERVER=`echo $with_builddeps_server/$resource  | cut -f 3 -d '/'`
+        FTPPATH=`echo $with_builddeps_server/$resource  | cut -f 4- -d '/'`
+        FTPUSERPWD=${FTPSERVER%%@*}
+        if test "x$FTPSERVER" != "x$FTPUSERPWD"; then
+            FTPUSER=${userpwd%%:*}
+            FTPPWD=${userpwd#*@}
+            FTPSERVER=${FTPSERVER#*@}
+        else
+            FTPUSER=ftp
+            FTPPWD=ftp
+        fi
+        # the "pass" command does not work on some
+        # ftp clients (read ftp.exe) but if it works,
+        # passive mode is better!
+        (\
+            echo "user $FTPUSER $FTPPWD"        ;\
+            echo "pass"                         ;\
+            echo "bin"                          ;\
+            echo "get $FTPPATH $tmpfile"              ;\
+        ) | ftp -in $FTPSERVER
+    fi
+    if test "x$VALID_TOOL" != xyes; then
+       as_fn_error $? "I do not know how to use the tool: $BDEPS_FTP" "$LINENO" 5
+    fi
+
+        mv $tmpfile $installdir/$filename
+        if test ! -s $installdir/$filename; then
+            as_fn_error $? "Could not download $with_builddeps_server/$resource" "$LINENO" 5
+        fi
+        case "$extension" in
+            zip)  echo "Unzipping $installdir/$filename..."
+               (cd $installdir ; rm -f $installdir/$filename.unpacked ; $BDEPS_UNZIP $installdir/$filename > /dev/null && touch $installdir/$filename.unpacked)
+            ;;
+            tar.gz) echo "Untaring $installdir/$filename..."
+               (cd $installdir ; rm -f $installdir/$filename.unpacked ; tar xzf $installdir/$filename && touch $installdir/$filename.unpacked)
+            ;;
+            tgz) echo "Untaring $installdir/$filename..."
+               (cd $installdir ; rm -f $installdir/$filename.unpacked ; tar xzf $installdir/$filename && touch $installdir/$filename.unpacked)
+            ;;
+            *) as_fn_error $? "Cannot handle build depency archive with extension $extension" "$LINENO" 5
+            ;;
+        esac
+    fi
+    if test -f $installdir/$filename.unpacked; then
+        depdir=$installdir
+    fi
+
+	    fi
+            # Source the builddeps file again, because in the previous command, the depdir
+            # was updated to point at the current build dependency install directory.
+            . $builddepsfile
+            # Now extract variables from the builddeps.conf files.
+            theroot=${builddep_devkit_ROOT}
+            thecflags=${builddep_devkit_CFLAGS}
+            thelibs=${builddep_devkit_LIBS}
+            if test "x$depdir" = x; then
+                as_fn_error $? "Could not download build dependency devkit" "$LINENO" 5
+            fi
+            DEVKIT=$depdir
+            if test "x$theroot" != x; then
+               DEVKIT="$theroot"
+            fi
+            if test "x$thecflags" != x; then
+               DEVKIT_CFLAGS="$thecflags"
+            fi
+            if test "x$thelibs" != x; then
+               DEVKIT_LIBS="$thelibs"
+            fi
+            # Found devkit
+                     PATH="$DEVKIT/bin:$PATH"
+                     SYS_ROOT="$DEVKIT/${rewritten_host}/sys-root"
+                     if test "x$x_includes" = "xNONE"; then
+                         x_includes="$SYS_ROOT/usr/include/X11"
+                     fi
+                     if test "x$x_libraries" = "xNONE"; then
+                         x_libraries="$SYS_ROOT/usr/lib"
+                     fi
+
+
+        fi
+
+    fi
+
+
+if test "x$SYS_ROOT" != "x/" ; then
+    CFLAGS="--sysroot=$SYS_ROOT $CFLAGS"
+    CXXFLAGS="--sysroot=$SYS_ROOT $CXXFLAGS"
+    OBJCFLAGS="--sysroot=$SYS_ROOT $OBJCFLAGS"
+    OBJCXXFLAGS="--sysroot=$SYS_ROOT $OBJCFLAGS"
+    CPPFLAGS="--sysroot=$SYS_ROOT $CPPFLAGS"
+    LDFLAGS="--sysroot=$SYS_ROOT $LDFLAGS"
+fi
+
+# Store the CFLAGS etal passed to the configure script.
+ORG_CFLAGS="$CFLAGS"
+ORG_CXXFLAGS="$CXXFLAGS"
+ORG_OBJCFLAGS="$OBJCFLAGS"
+
+# gcc is almost always present, but on Windows we
+# prefer cl.exe and on Solaris we prefer CC.
+# Thus test for them in this order.
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+  for ac_prog in cl cc gcc
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    test -n "$CC" && break
+  done
+fi
+if test -z "$CC"; then
+  ac_ct_CC=$CC
+  for ac_prog in cl cc gcc
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ac_ct_CC="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$ac_ct_CC" && break
+done
+
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
+fi
+
+
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "no acceptable C compiler found in \$PATH
+See \`config.log' for more details" "$LINENO" 5 ; }
+
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+  { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    sed '10a\
+... rest of stderr output deleted ...
+         10q' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+  fi
+  rm -f conftest.er1 conftest.err
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+done
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
+$as_echo_n "checking whether the C compiler works... " >&6; }
+ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+
+# The possible output files:
+ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
+
+ac_rmfiles=
+for ac_file in $ac_files
+do
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+    * ) ac_rmfiles="$ac_rmfiles $ac_file";;
+  esac
+done
+rm -f $ac_rmfiles
+
+if { { ac_try="$ac_link_default"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link_default") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then :
+  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
+# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
+# in a Makefile.  We should not override ac_cv_exeext if it was cached,
+# so that the user can short-circuit this test for compilers unknown to
+# Autoconf.
+for ac_file in $ac_files ''
+do
+  test -f "$ac_file" || continue
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
+	;;
+    [ab].out )
+	# We found the default executable, but exeext='' is most
+	# certainly right.
+	break;;
+    *.* )
+	if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+	then :; else
+	   ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+	fi
+	# We set ac_cv_exeext here because the later test for it is not
+	# safe: cross compilers may not add the suffix if given an `-o'
+	# argument, so we may need to know it at that point already.
+	# Even if this section looks crufty: it has the advantage of
+	# actually working.
+	break;;
+    * )
+	break;;
+  esac
+done
+test "$ac_cv_exeext" = no && ac_cv_exeext=
+
+else
+  ac_file=''
+fi
+if test -z "$ac_file"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+$as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error 77 "C compiler cannot create executables
+See \`config.log' for more details" "$LINENO" 5 ; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
+$as_echo_n "checking for C compiler default output file name... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+$as_echo "$ac_file" >&6; }
+ac_exeext=$ac_cv_exeext
+
+rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
+$as_echo_n "checking for suffix of executables... " >&6; }
+if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then :
+  # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in conftest.exe conftest conftest.*; do
+  test -f "$ac_file" || continue
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+	  break;;
+    * ) break;;
+  esac
+done
+else
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details" "$LINENO" 5 ; }
+fi
+rm -f conftest conftest$ac_cv_exeext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
+$as_echo "$ac_cv_exeext" >&6; }
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdio.h>
+int
+main ()
+{
+FILE *f = fopen ("conftest.out", "w");
+ return ferror (f) || fclose (f) != 0;
+
+  ;
+  return 0;
+}
+_ACEOF
+ac_clean_files="$ac_clean_files conftest.out"
+# Check that the compiler produces executables we can run.  If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
+$as_echo_n "checking whether we are cross compiling... " >&6; }
+if test "$cross_compiling" != yes; then
+  { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+  if { ac_try='./conftest$ac_cv_exeext'
+  { { case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }; then
+    cross_compiling=no
+  else
+    if test "$cross_compiling" = maybe; then
+	cross_compiling=yes
+    else
+	{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details" "$LINENO" 5 ; }
+    fi
+  fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
+$as_echo "$cross_compiling" >&6; }
+
+rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
+$as_echo_n "checking for suffix of object files... " >&6; }
+if test "${ac_cv_objext+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { { ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compile") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then :
+  for ac_file in conftest.o conftest.obj conftest.*; do
+  test -f "$ac_file" || continue;
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
+    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+       break;;
+  esac
+done
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot compute suffix of object files: cannot compile
+See \`config.log' for more details" "$LINENO" 5 ; }
+fi
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
+$as_echo "$ac_cv_objext" >&6; }
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
+if test "${ac_cv_c_compiler_gnu+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+#ifndef __GNUC__
+       choke me
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_compiler_gnu=yes
+else
+  ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+  GCC=yes
+else
+  GCC=
+fi
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if test "${ac_cv_prog_cc_g+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_save_c_werror_flag=$ac_c_werror_flag
+   ac_c_werror_flag=yes
+   ac_cv_prog_cc_g=no
+   CFLAGS="-g"
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_g=yes
+else
+  CFLAGS=""
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+  ac_c_werror_flag=$ac_save_c_werror_flag
+	 CFLAGS="-g"
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+   ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+$as_echo "$ac_cv_prog_cc_g" >&6; }
+if test "$ac_test_CFLAGS" = set; then
+  CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+  if test "$GCC" = yes; then
+    CFLAGS="-g -O2"
+  else
+    CFLAGS="-g"
+  fi
+else
+  if test "$GCC" = yes; then
+    CFLAGS="-O2"
+  else
+    CFLAGS=
+  fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if test "${ac_cv_prog_cc_c89+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+     char **p;
+     int i;
+{
+  return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+  char *s;
+  va_list v;
+  va_start (v,p);
+  s = g (p, va_arg (v,int));
+  va_end (v);
+  return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
+   function prototypes and stuff, but not '\xHH' hex character constants.
+   These don't provoke an error unfortunately, instead are silently treated
+   as 'x'.  The following induces an error, until -std is added to get
+   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
+   array size at least.  It's necessary to write '\x00'==0 to get something
+   that's true only with -std.  */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+   inside strings and character constants.  */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
+  ;
+  return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+  CC="$ac_save_CC $ac_arg"
+  if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_c89=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+  test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+  x)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+  xno)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+  *)
+    CC="$CC $ac_cv_prog_cc_c89"
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
+esac
+if test "x$ac_cv_prog_cc_c89" != xno; then :
+
+fi
+
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+if test "x$CC" = x; then
+    help_on_build_dependency devkit
+    as_fn_error $? "Could not find a compiler. $HELP_MSG" "$LINENO" 5
+fi
+if test "x$CC" = xcc && test "x$BUILD_OS" = xmacosx; then
+    # Do not use cc on MacOSX use gcc instead.
+    CC="gcc"
+fi
+
+    # Translate "gcc -E" into "`which gcc` -E" ie
+    # extract the full path to the binary and at the
+    # same time maintain any arguments passed to it.
+    # The command MUST exist in the path, or else!
+    tmp="$CC"
+    car="${tmp%% *}"
+    tmp="$CC EOL"
+    cdr="${tmp#* }"
+    # On windows we want paths without spaces.
+    if test "x$BUILD_OS" = "xwindows"; then
+
+    # Translate long cygdrive or C:\sdfsf path
+    # into a short mixed mode path that has no
+    # spaces in it.
+    tmp="$car"
+    if test "x$BUILD_OS" = "xwindows"; then
+        tmp=`$CYGPATH -u "$car"`
+        tmp=`which "$tmp"`
+        # If file exists with .exe appended, that's the real filename
+        # and cygpath needs that to convert to short style path.
+        if test -f "${tmp}.exe"; then
+           tmp="${tmp}.exe"
+        elif test -f "${tmp}.cmd"; then
+           tmp="${tmp}.cmd"
+        fi
+        # Convert to C:/ mixed style path without spaces.
+         tmp=`$CYGPATH -s -m "$tmp"`
+    fi
+    car="$tmp"
+
+    else
+        # "which" is not portable, but is used here
+        # because we know that the command exists!
+        car=`which $car`
+    fi
+    if test "x$cdr" != xEOL; then
+        CC="$car ${cdr% *}"
+    else
+        CC="$car"
+    fi
+
+
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+if test -z "$CXX"; then
+  if test -n "$CCC"; then
+    CXX=$CCC
+  else
+    if test -n "$ac_tool_prefix"; then
+  for ac_prog in cl CC g++
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CXX+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CXX"; then
+  ac_cv_prog_CXX="$CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+CXX=$ac_cv_prog_CXX
+if test -n "$CXX"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
+$as_echo "$CXX" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    test -n "$CXX" && break
+  done
+fi
+if test -z "$CXX"; then
+  ac_ct_CXX=$CXX
+  for ac_prog in cl CC g++
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_CXX"; then
+  ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ac_ct_CXX="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
+if test -n "$ac_ct_CXX"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
+$as_echo "$ac_ct_CXX" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$ac_ct_CXX" && break
+done
+
+  if test "x$ac_ct_CXX" = x; then
+    CXX="g++"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    CXX=$ac_ct_CXX
+  fi
+fi
+
+  fi
+fi
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+  { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    sed '10a\
+... rest of stderr output deleted ...
+         10q' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+  fi
+  rm -f conftest.er1 conftest.err
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
+$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
+if test "${ac_cv_cxx_compiler_gnu+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+#ifndef __GNUC__
+       choke me
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  ac_compiler_gnu=yes
+else
+  ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
+$as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+  GXX=yes
+else
+  GXX=
+fi
+ac_test_CXXFLAGS=${CXXFLAGS+set}
+ac_save_CXXFLAGS=$CXXFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
+$as_echo_n "checking whether $CXX accepts -g... " >&6; }
+if test "${ac_cv_prog_cxx_g+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_save_cxx_werror_flag=$ac_cxx_werror_flag
+   ac_cxx_werror_flag=yes
+   ac_cv_prog_cxx_g=no
+   CXXFLAGS="-g"
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  ac_cv_prog_cxx_g=yes
+else
+  CXXFLAGS=""
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+
+else
+  ac_cxx_werror_flag=$ac_save_cxx_werror_flag
+	 CXXFLAGS="-g"
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  ac_cv_prog_cxx_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+   ac_cxx_werror_flag=$ac_save_cxx_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
+$as_echo "$ac_cv_prog_cxx_g" >&6; }
+if test "$ac_test_CXXFLAGS" = set; then
+  CXXFLAGS=$ac_save_CXXFLAGS
+elif test $ac_cv_prog_cxx_g = yes; then
+  if test "$GXX" = yes; then
+    CXXFLAGS="-g -O2"
+  else
+    CXXFLAGS="-g"
+  fi
+else
+  if test "$GXX" = yes; then
+    CXXFLAGS="-O2"
+  else
+    CXXFLAGS=
+  fi
+fi
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+if test "x$CXX" = xCC && test "x$BUILD_OS" = xmacosx; then
+    # The found CC, even though it seems to be a g++ derivate, cannot compile
+    # c++ code. Override.
+    CXX="g++"
+fi
+
+    # Translate "gcc -E" into "`which gcc` -E" ie
+    # extract the full path to the binary and at the
+    # same time maintain any arguments passed to it.
+    # The command MUST exist in the path, or else!
+    tmp="$CXX"
+    car="${tmp%% *}"
+    tmp="$CXX EOL"
+    cdr="${tmp#* }"
+    # On windows we want paths without spaces.
+    if test "x$BUILD_OS" = "xwindows"; then
+
+    # Translate long cygdrive or C:\sdfsf path
+    # into a short mixed mode path that has no
+    # spaces in it.
+    tmp="$car"
+    if test "x$BUILD_OS" = "xwindows"; then
+        tmp=`$CYGPATH -u "$car"`
+        tmp=`which "$tmp"`
+        # If file exists with .exe appended, that's the real filename
+        # and cygpath needs that to convert to short style path.
+        if test -f "${tmp}.exe"; then
+           tmp="${tmp}.exe"
+        elif test -f "${tmp}.cmd"; then
+           tmp="${tmp}.cmd"
+        fi
+        # Convert to C:/ mixed style path without spaces.
+         tmp=`$CYGPATH -s -m "$tmp"`
+    fi
+    car="$tmp"
+
+    else
+        # "which" is not portable, but is used here
+        # because we know that the command exists!
+        car=`which $car`
+    fi
+    if test "x$cdr" != xEOL; then
+        CXX="$car ${cdr% *}"
+    else
+        CXX="$car"
+    fi
+
+
+if test "x$CXX" = x || test "x$CC" = x; then
+    help_on_build_dependency devkit
+    as_fn_error $? "Could not find the needed compilers! $HELP_MSG " "$LINENO" 5
+fi
+
+if test "x$BUILD_OS" != xwindows; then
+    ac_ext=m
+ac_cpp='$OBJCPP $CPPFLAGS'
+ac_compile='$OBJC -c $OBJCFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$OBJC -o conftest$ac_exeext $OBJCFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_objc_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+  for ac_prog in gcc objcc objc cc CC
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_OBJC+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$OBJC"; then
+  ac_cv_prog_OBJC="$OBJC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_OBJC="$ac_tool_prefix$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+OBJC=$ac_cv_prog_OBJC
+if test -n "$OBJC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJC" >&5
+$as_echo "$OBJC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    test -n "$OBJC" && break
+  done
+fi
+if test -z "$OBJC"; then
+  ac_ct_OBJC=$OBJC
+  for ac_prog in gcc objcc objc cc CC
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_OBJC+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_OBJC"; then
+  ac_cv_prog_ac_ct_OBJC="$ac_ct_OBJC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ac_ct_OBJC="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OBJC=$ac_cv_prog_ac_ct_OBJC
+if test -n "$ac_ct_OBJC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJC" >&5
+$as_echo "$ac_ct_OBJC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$ac_ct_OBJC" && break
+done
+
+  if test "x$ac_ct_OBJC" = x; then
+    OBJC="gcc"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    OBJC=$ac_ct_OBJC
+  fi
+fi
+
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for Objective C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+  { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    sed '10a\
+... rest of stderr output deleted ...
+         10q' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+  fi
+  rm -f conftest.er1 conftest.err
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU Objective C compiler" >&5
+$as_echo_n "checking whether we are using the GNU Objective C compiler... " >&6; }
+if test "${ac_cv_objc_compiler_gnu+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+#ifndef __GNUC__
+       choke me
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_objc_try_compile "$LINENO"; then :
+  ac_compiler_gnu=yes
+else
+  ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_objc_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objc_compiler_gnu" >&5
+$as_echo "$ac_cv_objc_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+  GOBJC=yes
+else
+  GOBJC=
+fi
+ac_test_OBJCFLAGS=${OBJCFLAGS+set}
+ac_save_OBJCFLAGS=$OBJCFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $OBJC accepts -g" >&5
+$as_echo_n "checking whether $OBJC accepts -g... " >&6; }
+if test "${ac_cv_prog_objc_g+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_save_objc_werror_flag=$ac_objc_werror_flag
+   ac_objc_werror_flag=yes
+   ac_cv_prog_objc_g=no
+   OBJCFLAGS="-g"
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_objc_try_compile "$LINENO"; then :
+  ac_cv_prog_objc_g=yes
+else
+  OBJCFLAGS=""
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_objc_try_compile "$LINENO"; then :
+
+else
+  ac_objc_werror_flag=$ac_save_objc_werror_flag
+	 OBJCFLAGS="-g"
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_objc_try_compile "$LINENO"; then :
+  ac_cv_prog_objc_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+   ac_objc_werror_flag=$ac_save_objc_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_objc_g" >&5
+$as_echo "$ac_cv_prog_objc_g" >&6; }
+if test "$ac_test_OBJCFLAGS" = set; then
+  OBJCFLAGS=$ac_save_OBJCFLAGS
+elif test $ac_cv_prog_objc_g = yes; then
+  if test "$GOBJC" = yes; then
+    OBJCFLAGS="-g -O2"
+  else
+    OBJCFLAGS="-g"
+  fi
+else
+  if test "$GOBJC" = yes; then
+    OBJCFLAGS="-O2"
+  else
+    OBJCFLAGS=
+  fi
+fi
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+
+    # Translate "gcc -E" into "`which gcc` -E" ie
+    # extract the full path to the binary and at the
+    # same time maintain any arguments passed to it.
+    # The command MUST exist in the path, or else!
+    tmp="$OBJC"
+    car="${tmp%% *}"
+    tmp="$OBJC EOL"
+    cdr="${tmp#* }"
+    # On windows we want paths without spaces.
+    if test "x$BUILD_OS" = "xwindows"; then
+
+    # Translate long cygdrive or C:\sdfsf path
+    # into a short mixed mode path that has no
+    # spaces in it.
+    tmp="$car"
+    if test "x$BUILD_OS" = "xwindows"; then
+        tmp=`$CYGPATH -u "$car"`
+        tmp=`which "$tmp"`
+        # If file exists with .exe appended, that's the real filename
+        # and cygpath needs that to convert to short style path.
+        if test -f "${tmp}.exe"; then
+           tmp="${tmp}.exe"
+        elif test -f "${tmp}.cmd"; then
+           tmp="${tmp}.cmd"
+        fi
+        # Convert to C:/ mixed style path without spaces.
+         tmp=`$CYGPATH -s -m "$tmp"`
+    fi
+    car="$tmp"
+
+    else
+        # "which" is not portable, but is used here
+        # because we know that the command exists!
+        car=`which $car`
+    fi
+    if test "x$cdr" != xEOL; then
+        OBJC="$car ${cdr% *}"
+    else
+        OBJC="$car"
+    fi
+
+else
+    OBJC=
+fi
+
+# Restore the flags to the user specified values.
+# This is necessary since AC_PROG_CC defaults CFLAGS to "-g -O2"
+CFLAGS="$ORG_CFLAGS"
+CXXFLAGS="$ORG_CXXFLAGS"
+OBJCFLAGS="$ORG_OBJCFLAGS"
+
+# If we are not cross compiling, use the same compilers for
+# building the build platform executables.
+if test "x$DEFINE_CROSS_COMPILE_ARCH" = x; then
+    HOSTCC="$CC"
+    HOSTCXX="$CXX"
+fi
+
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}ld", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ld; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_LD+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$LD"; then
+  ac_cv_prog_LD="$LD" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_LD="${ac_tool_prefix}ld"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+LD=$ac_cv_prog_LD
+if test -n "$LD"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
+$as_echo "$LD" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_LD"; then
+  ac_ct_LD=$LD
+  # Extract the first word of "ld", so it can be a program name with args.
+set dummy ld; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_LD+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_LD"; then
+  ac_cv_prog_ac_ct_LD="$ac_ct_LD" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ac_ct_LD="ld"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_LD=$ac_cv_prog_ac_ct_LD
+if test -n "$ac_ct_LD"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LD" >&5
+$as_echo "$ac_ct_LD" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_LD" = x; then
+    LD=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    LD=$ac_ct_LD
+  fi
+else
+  LD="$ac_cv_prog_LD"
+fi
+
+
+    # Translate "gcc -E" into "`which gcc` -E" ie
+    # extract the full path to the binary and at the
+    # same time maintain any arguments passed to it.
+    # The command MUST exist in the path, or else!
+    tmp="$LD"
+    car="${tmp%% *}"
+    tmp="$LD EOL"
+    cdr="${tmp#* }"
+    # On windows we want paths without spaces.
+    if test "x$BUILD_OS" = "xwindows"; then
+
+    # Translate long cygdrive or C:\sdfsf path
+    # into a short mixed mode path that has no
+    # spaces in it.
+    tmp="$car"
+    if test "x$BUILD_OS" = "xwindows"; then
+        tmp=`$CYGPATH -u "$car"`
+        tmp=`which "$tmp"`
+        # If file exists with .exe appended, that's the real filename
+        # and cygpath needs that to convert to short style path.
+        if test -f "${tmp}.exe"; then
+           tmp="${tmp}.exe"
+        elif test -f "${tmp}.cmd"; then
+           tmp="${tmp}.cmd"
+        fi
+        # Convert to C:/ mixed style path without spaces.
+         tmp=`$CYGPATH -s -m "$tmp"`
+    fi
+    car="$tmp"
+
+    else
+        # "which" is not portable, but is used here
+        # because we know that the command exists!
+        car=`which $car`
+    fi
+    if test "x$cdr" != xEOL; then
+        LD="$car ${cdr% *}"
+    else
+        LD="$car"
+    fi
+
+LDEXE="$LD"
+LDCXX="$LD"
+LDEXECXX="$LD"
+# LDEXE is the linker to use, when creating executables.
+
+# Linking C++ libraries.
+
+# Linking C++ executables.
+
+
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_AR+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$AR"; then
+  ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_AR="${ac_tool_prefix}ar"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+  ac_ct_AR=$AR
+  # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_AR+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_AR"; then
+  ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ac_ct_AR="ar"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_AR" = x; then
+    AR=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    AR=$ac_ct_AR
+  fi
+else
+  AR="$ac_cv_prog_AR"
+fi
+
+
+    # Translate "gcc -E" into "`which gcc` -E" ie
+    # extract the full path to the binary and at the
+    # same time maintain any arguments passed to it.
+    # The command MUST exist in the path, or else!
+    tmp="$AR"
+    car="${tmp%% *}"
+    tmp="$AR EOL"
+    cdr="${tmp#* }"
+    # On windows we want paths without spaces.
+    if test "x$BUILD_OS" = "xwindows"; then
+
+    # Translate long cygdrive or C:\sdfsf path
+    # into a short mixed mode path that has no
+    # spaces in it.
+    tmp="$car"
+    if test "x$BUILD_OS" = "xwindows"; then
+        tmp=`$CYGPATH -u "$car"`
+        tmp=`which "$tmp"`
+        # If file exists with .exe appended, that's the real filename
+        # and cygpath needs that to convert to short style path.
+        if test -f "${tmp}.exe"; then
+           tmp="${tmp}.exe"
+        elif test -f "${tmp}.cmd"; then
+           tmp="${tmp}.cmd"
+        fi
+        # Convert to C:/ mixed style path without spaces.
+         tmp=`$CYGPATH -s -m "$tmp"`
+    fi
+    car="$tmp"
+
+    else
+        # "which" is not portable, but is used here
+        # because we know that the command exists!
+        car=`which $car`
+    fi
+    if test "x$cdr" != xEOL; then
+        AR="$car ${cdr% *}"
+    else
+        AR="$car"
+    fi
+
+if test "x$BUILD_OS" = xmacosx; then
+    ARFLAGS="-r"
+else
+    ARFLAGS=""
+fi
+
+
+COMPILER_NAME=gcc
+COMPILER_TYPE=CC
+if test "x$BUILD_OS" = xwindows; then :
+
+    # For now, assume that we are always compiling using cl.exe.
+    CC_OUT_OPTION=-Fo
+    EXE_OUT_OPTION=-Fe
+    LD_OUT_OPTION=-out:
+    AR_OUT_OPTION=-out:
+    # On Windows, reject /usr/bin/link, which is a cygwin
+    # program for something completely different.
+    # Extract the first word of "link", so it can be a program name with args.
+set dummy link; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_WINLD+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$WINLD"; then
+  ac_cv_prog_WINLD="$WINLD" # Let the user override the test.
+else
+  ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/bin/link"; then
+       ac_prog_rejected=yes
+       continue
+     fi
+    ac_cv_prog_WINLD="link"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+if test $ac_prog_rejected = yes; then
+  # We found a bogon in the path, so make sure we never use it.
+  set dummy $ac_cv_prog_WINLD
+  shift
+  if test $# != 0; then
+    # We chose a different compiler from the bogus one.
+    # However, it has the same basename, so the bogon will be chosen
+    # first if we set WINLD to just the basename; use the full file name.
+    shift
+    ac_cv_prog_WINLD="$as_dir/$ac_word${1+' '}$@"
+  fi
+fi
+fi
+fi
+WINLD=$ac_cv_prog_WINLD
+if test -n "$WINLD"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $WINLD" >&5
+$as_echo "$WINLD" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    # Since we must ignore the first found link, WINLD will contain
+    # the full path to the link.exe program.
+
+    # Translate long cygdrive or C:\sdfsf path
+    # into a short mixed mode path that has no
+    # spaces in it.
+    tmp="$WINLD"
+    if test "x$BUILD_OS" = "xwindows"; then
+        tmp=`$CYGPATH -u "$WINLD"`
+        tmp=`which "$tmp"`
+        # If file exists with .exe appended, that's the real filename
+        # and cygpath needs that to convert to short style path.
+        if test -f "${tmp}.exe"; then
+           tmp="${tmp}.exe"
+        elif test -f "${tmp}.cmd"; then
+           tmp="${tmp}.cmd"
+        fi
+        # Convert to C:/ mixed style path without spaces.
+         tmp=`$CYGPATH -s -m "$tmp"`
+    fi
+    WINLD="$tmp"
+
+    LD="$WINLD"
+    # However creating executables can only be done with cl.exe.
+    LDEXE="$CC"
+    LDCXX="$WINLD"
+    LDEXECXX="$CC"
+
+    # Extract the first word of "mt", so it can be a program name with args.
+set dummy mt; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_MT+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$MT"; then
+  ac_cv_prog_MT="$MT" # Let the user override the test.
+else
+  ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/bin/mt"; then
+       ac_prog_rejected=yes
+       continue
+     fi
+    ac_cv_prog_MT="mt"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+if test $ac_prog_rejected = yes; then
+  # We found a bogon in the path, so make sure we never use it.
+  set dummy $ac_cv_prog_MT
+  shift
+  if test $# != 0; then
+    # We chose a different compiler from the bogus one.
+    # However, it has the same basename, so the bogon will be chosen
+    # first if we set MT to just the basename; use the full file name.
+    shift
+    ac_cv_prog_MT="$as_dir/$ac_word${1+' '}$@"
+  fi
+fi
+fi
+fi
+MT=$ac_cv_prog_MT
+if test -n "$MT"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MT" >&5
+$as_echo "$MT" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+    # Translate long cygdrive or C:\sdfsf path
+    # into a short mixed mode path that has no
+    # spaces in it.
+    tmp="$MT"
+    if test "x$BUILD_OS" = "xwindows"; then
+        tmp=`$CYGPATH -u "$MT"`
+        tmp=`which "$tmp"`
+        # If file exists with .exe appended, that's the real filename
+        # and cygpath needs that to convert to short style path.
+        if test -f "${tmp}.exe"; then
+           tmp="${tmp}.exe"
+        elif test -f "${tmp}.cmd"; then
+           tmp="${tmp}.cmd"
+        fi
+        # Convert to C:/ mixed style path without spaces.
+         tmp=`$CYGPATH -s -m "$tmp"`
+    fi
+    MT="$tmp"
+
+    # The resource compiler
+    # Extract the first word of "rc", so it can be a program name with args.
+set dummy rc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_RC+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$RC"; then
+  ac_cv_prog_RC="$RC" # Let the user override the test.
+else
+  ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/bin/rc"; then
+       ac_prog_rejected=yes
+       continue
+     fi
+    ac_cv_prog_RC="rc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+if test $ac_prog_rejected = yes; then
+  # We found a bogon in the path, so make sure we never use it.
+  set dummy $ac_cv_prog_RC
+  shift
+  if test $# != 0; then
+    # We chose a different compiler from the bogus one.
+    # However, it has the same basename, so the bogon will be chosen
+    # first if we set RC to just the basename; use the full file name.
+    shift
+    ac_cv_prog_RC="$as_dir/$ac_word${1+' '}$@"
+  fi
+fi
+fi
+fi
+RC=$ac_cv_prog_RC
+if test -n "$RC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RC" >&5
+$as_echo "$RC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+    # Translate long cygdrive or C:\sdfsf path
+    # into a short mixed mode path that has no
+    # spaces in it.
+    tmp="$RC"
+    if test "x$BUILD_OS" = "xwindows"; then
+        tmp=`$CYGPATH -u "$RC"`
+        tmp=`which "$tmp"`
+        # If file exists with .exe appended, that's the real filename
+        # and cygpath needs that to convert to short style path.
+        if test -f "${tmp}.exe"; then
+           tmp="${tmp}.exe"
+        elif test -f "${tmp}.cmd"; then
+           tmp="${tmp}.cmd"
+        fi
+        # Convert to C:/ mixed style path without spaces.
+         tmp=`$CYGPATH -s -m "$tmp"`
+    fi
+    RC="$tmp"
+
+
+    RC_FLAGS="/l 0x409 /r"
+    if test "x$VARIANT" = xOPT; then :
+
+        RC_FLAGS="$RC_FLAGS -d NDEBUG"
+
+fi
+    JDK_UPDATE_VERSION_NOTNULL=$JDK_UPDATE_VERSION
+    if test "x$JDK_UPDATE_VERSION" = x; then :
+
+        JDK_UPDATE_VERSION_NOTNULL=0
+
+fi
+    RC_FLAGS="$RC_FLAGS -d \"JDK_BUILD_ID=$FULL_VERSION\""
+    RC_FLAGS="$RC_FLAGS -d \"JDK_COMPANY=$COMPANY_NAME\""
+    RC_FLAGS="$RC_FLAGS -d \"JDK_COMPONENT=$PRODUCT_NAME $JDK_RC_PLATFORM_NAME binary\""
+    RC_FLAGS="$RC_FLAGS -d \"JDK_VER=$JDK_MINOR_VERSION.$JDK_MICRO_VERSION.$JDK_UPDATE_VERSION_NOTNULL.$COOKED_BUILD_NUMBER\""
+    RC_FLAGS="$RC_FLAGS -d \"JDK_COPYRIGHT=Copyright \xA9 $COPYRIGHT_YEAR\""
+    RC_FLAGS="$RC_FLAGS -d \"JDK_NAME=$PRODUCT_NAME $JDK_RC_PLATFORM_NAME $JDK_MINOR_VERSION $JDK_UPDATE_META_TAG\""
+    RC_FLAGS="$RC_FLAGS -d \"JDK_FVER=$JDK_MINOR_VERSION,$JDK_MICRO_VERSION,$JDK_UPDATE_VERSION_NOTNULL,$COOKED_BUILD_NUMBER\""
+
+    # lib.exe is used to create static libraries.
+    # Extract the first word of "lib", so it can be a program name with args.
+set dummy lib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_WINAR+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$WINAR"; then
+  ac_cv_prog_WINAR="$WINAR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_WINAR="lib"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+WINAR=$ac_cv_prog_WINAR
+if test -n "$WINAR"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $WINAR" >&5
+$as_echo "$WINAR" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+    # Translate long cygdrive or C:\sdfsf path
+    # into a short mixed mode path that has no
+    # spaces in it.
+    tmp="$WINAR"
+    if test "x$BUILD_OS" = "xwindows"; then
+        tmp=`$CYGPATH -u "$WINAR"`
+        tmp=`which "$tmp"`
+        # If file exists with .exe appended, that's the real filename
+        # and cygpath needs that to convert to short style path.
+        if test -f "${tmp}.exe"; then
+           tmp="${tmp}.exe"
+        elif test -f "${tmp}.cmd"; then
+           tmp="${tmp}.cmd"
+        fi
+        # Convert to C:/ mixed style path without spaces.
+         tmp=`$CYGPATH -s -m "$tmp"`
+    fi
+    WINAR="$tmp"
+
+    AR="$WINAR"
+    ARFLAGS="-nologo -NODEFAULTLIB:MSVCRT"
+
+    # Extract the first word of "dumpbin", so it can be a program name with args.
+set dummy dumpbin; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_DUMPBIN+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$DUMPBIN"; then
+  ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_DUMPBIN="dumpbin"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+DUMPBIN=$ac_cv_prog_DUMPBIN
+if test -n "$DUMPBIN"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
+$as_echo "$DUMPBIN" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+    # Translate long cygdrive or C:\sdfsf path
+    # into a short mixed mode path that has no
+    # spaces in it.
+    tmp="$DUMPBIN"
+    if test "x$BUILD_OS" = "xwindows"; then
+        tmp=`$CYGPATH -u "$DUMPBIN"`
+        tmp=`which "$tmp"`
+        # If file exists with .exe appended, that's the real filename
+        # and cygpath needs that to convert to short style path.
+        if test -f "${tmp}.exe"; then
+           tmp="${tmp}.exe"
+        elif test -f "${tmp}.cmd"; then
+           tmp="${tmp}.cmd"
+        fi
+        # Convert to C:/ mixed style path without spaces.
+         tmp=`$CYGPATH -s -m "$tmp"`
+    fi
+    DUMPBIN="$tmp"
+
+
+    COMPILER_TYPE=CL
+    CFLAGS="$CFLAGS -nologo"
+    LDFLAGS="$LDFLAGS -nologo -dll -opt:ref -incremental:no "
+    if test "x$LEGACY_HOST_CPU1" = xi586; then
+        LDFLAGS="$LDFLAGS -safeseh"
+    fi
+    if test "x$DEBUG_LEVEL" != xrelease; then
+        LDFLAGS="$LDFLAGS -debug"
+    fi
+
+fi
+
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
+$as_echo_n "checking how to run the C preprocessor... " >&6; }
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+  CPP=
+fi
+if test -z "$CPP"; then
+  if test "${ac_cv_prog_CPP+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+      # Double quotes because CPP needs to be expanded
+    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+    do
+      ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+		     Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether nonexistent headers
+  # can be detected and how.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+  # Broken: success on invalid input.
+continue
+else
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+  break
+fi
+
+    done
+    ac_cv_prog_CPP=$CPP
+
+fi
+  CPP=$ac_cv_prog_CPP
+else
+  ac_cv_prog_CPP=$CPP
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
+$as_echo "$CPP" >&6; }
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+		     Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether nonexistent headers
+  # can be detected and how.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+  # Broken: success on invalid input.
+continue
+else
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+
+else
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details" "$LINENO" 5 ; }
+fi
+
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+
+    # Translate "gcc -E" into "`which gcc` -E" ie
+    # extract the full path to the binary and at the
+    # same time maintain any arguments passed to it.
+    # The command MUST exist in the path, or else!
+    tmp="$CPP"
+    car="${tmp%% *}"
+    tmp="$CPP EOL"
+    cdr="${tmp#* }"
+    # On windows we want paths without spaces.
+    if test "x$BUILD_OS" = "xwindows"; then
+
+    # Translate long cygdrive or C:\sdfsf path
+    # into a short mixed mode path that has no
+    # spaces in it.
+    tmp="$car"
+    if test "x$BUILD_OS" = "xwindows"; then
+        tmp=`$CYGPATH -u "$car"`
+        tmp=`which "$tmp"`
+        # If file exists with .exe appended, that's the real filename
+        # and cygpath needs that to convert to short style path.
+        if test -f "${tmp}.exe"; then
+           tmp="${tmp}.exe"
+        elif test -f "${tmp}.cmd"; then
+           tmp="${tmp}.cmd"
+        fi
+        # Convert to C:/ mixed style path without spaces.
+         tmp=`$CYGPATH -s -m "$tmp"`
+    fi
+    car="$tmp"
+
+    else
+        # "which" is not portable, but is used here
+        # because we know that the command exists!
+        car=`which $car`
+    fi
+    if test "x$cdr" != xEOL; then
+        CPP="$car ${cdr% *}"
+    else
+        CPP="$car"
+    fi
+
+
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5
+$as_echo_n "checking how to run the C++ preprocessor... " >&6; }
+if test -z "$CXXCPP"; then
+  if test "${ac_cv_prog_CXXCPP+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+      # Double quotes because CXXCPP needs to be expanded
+    for CXXCPP in "$CXX -E" "/lib/cpp"
+    do
+      ac_preproc_ok=false
+for ac_cxx_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+		     Syntax error
+_ACEOF
+if ac_fn_cxx_try_cpp "$LINENO"; then :
+
+else
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether nonexistent headers
+  # can be detected and how.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_cxx_try_cpp "$LINENO"; then :
+  # Broken: success on invalid input.
+continue
+else
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+  break
+fi
+
+    done
+    ac_cv_prog_CXXCPP=$CXXCPP
+
+fi
+  CXXCPP=$ac_cv_prog_CXXCPP
+else
+  ac_cv_prog_CXXCPP=$CXXCPP
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5
+$as_echo "$CXXCPP" >&6; }
+ac_preproc_ok=false
+for ac_cxx_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+		     Syntax error
+_ACEOF
+if ac_fn_cxx_try_cpp "$LINENO"; then :
+
+else
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether nonexistent headers
+  # can be detected and how.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_cxx_try_cpp "$LINENO"; then :
+  # Broken: success on invalid input.
+continue
+else
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+
+else
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check
+See \`config.log' for more details" "$LINENO" 5 ; }
+fi
+
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+
+    # Translate "gcc -E" into "`which gcc` -E" ie
+    # extract the full path to the binary and at the
+    # same time maintain any arguments passed to it.
+    # The command MUST exist in the path, or else!
+    tmp="$CXXCPP"
+    car="${tmp%% *}"
+    tmp="$CXXCPP EOL"
+    cdr="${tmp#* }"
+    # On windows we want paths without spaces.
+    if test "x$BUILD_OS" = "xwindows"; then
+
+    # Translate long cygdrive or C:\sdfsf path
+    # into a short mixed mode path that has no
+    # spaces in it.
+    tmp="$car"
+    if test "x$BUILD_OS" = "xwindows"; then
+        tmp=`$CYGPATH -u "$car"`
+        tmp=`which "$tmp"`
+        # If file exists with .exe appended, that's the real filename
+        # and cygpath needs that to convert to short style path.
+        if test -f "${tmp}.exe"; then
+           tmp="${tmp}.exe"
+        elif test -f "${tmp}.cmd"; then
+           tmp="${tmp}.cmd"
+        fi
+        # Convert to C:/ mixed style path without spaces.
+         tmp=`$CYGPATH -s -m "$tmp"`
+    fi
+    car="$tmp"
+
+    else
+        # "which" is not portable, but is used here
+        # because we know that the command exists!
+        car=`which $car`
+    fi
+    if test "x$cdr" != xEOL; then
+        CXXCPP="$car ${cdr% *}"
+    else
+        CXXCPP="$car"
+    fi
+
+
+# Find the right assembler.
+if test "x$BUILD_OS" = xsolaris; then
+    # Extract the first word of "as", so it can be a program name with args.
+set dummy as; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_AS+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $AS in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_AS="$AS" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_AS="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+AS=$ac_cv_path_AS
+if test -n "$AS"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5
+$as_echo "$AS" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+    # Translate "gcc -E" into "`which gcc` -E" ie
+    # extract the full path to the binary and at the
+    # same time maintain any arguments passed to it.
+    # The command MUST exist in the path, or else!
+    tmp="$AS"
+    car="${tmp%% *}"
+    tmp="$AS EOL"
+    cdr="${tmp#* }"
+    # On windows we want paths without spaces.
+    if test "x$BUILD_OS" = "xwindows"; then
+
+    # Translate long cygdrive or C:\sdfsf path
+    # into a short mixed mode path that has no
+    # spaces in it.
+    tmp="$car"
+    if test "x$BUILD_OS" = "xwindows"; then
+        tmp=`$CYGPATH -u "$car"`
+        tmp=`which "$tmp"`
+        # If file exists with .exe appended, that's the real filename
+        # and cygpath needs that to convert to short style path.
+        if test -f "${tmp}.exe"; then
+           tmp="${tmp}.exe"
+        elif test -f "${tmp}.cmd"; then
+           tmp="${tmp}.cmd"
+        fi
+        # Convert to C:/ mixed style path without spaces.
+         tmp=`$CYGPATH -s -m "$tmp"`
+    fi
+    car="$tmp"
+
+    else
+        # "which" is not portable, but is used here
+        # because we know that the command exists!
+        car=`which $car`
+    fi
+    if test "x$cdr" != xEOL; then
+        AS="$car ${cdr% *}"
+    else
+        AS="$car"
+    fi
+
+    ASFLAGS=" "
+else
+    AS="$CC -c"
+    ASFLAGS=" "
+fi
+
+
+
+if test "x$HOST_CPU_BITS" = x32 && test "x$HOST_OS" = macosx; then
+    # On 32-bit MacOSX the OS requires C-entry points to be 16 byte aligned.
+    # While waiting for a better solution, the current workaround is to use -mstackrealign.
+    CFLAGS="$CFLAGS -mstackrealign"
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if 32-bit compiler supports -mstackrealign" >&5
+$as_echo_n "checking if 32-bit compiler supports -mstackrealign... " >&6; }
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+int main() { return 0; }
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+
+		        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+else
+
+		        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+	                as_fn_error $? "The selected compiler $CXX does not support -mstackrealign! Try to put another compiler in the path." "$LINENO" 5
+
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+fi
+
+if test "x$BUILD_OS" = xsolaris; then
+    # Extract the first word of "nm", so it can be a program name with args.
+set dummy nm; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_NM+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $NM in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_NM="$NM" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_NM="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+NM=$ac_cv_path_NM
+if test -n "$NM"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NM" >&5
+$as_echo "$NM" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+    # Translate "gcc -E" into "`which gcc` -E" ie
+    # extract the full path to the binary and at the
+    # same time maintain any arguments passed to it.
+    # The command MUST exist in the path, or else!
+    tmp="$NM"
+    car="${tmp%% *}"
+    tmp="$NM EOL"
+    cdr="${tmp#* }"
+    # On windows we want paths without spaces.
+    if test "x$BUILD_OS" = "xwindows"; then
+
+    # Translate long cygdrive or C:\sdfsf path
+    # into a short mixed mode path that has no
+    # spaces in it.
+    tmp="$car"
+    if test "x$BUILD_OS" = "xwindows"; then
+        tmp=`$CYGPATH -u "$car"`
+        tmp=`which "$tmp"`
+        # If file exists with .exe appended, that's the real filename
+        # and cygpath needs that to convert to short style path.
+        if test -f "${tmp}.exe"; then
+           tmp="${tmp}.exe"
+        elif test -f "${tmp}.cmd"; then
+           tmp="${tmp}.cmd"
+        fi
+        # Convert to C:/ mixed style path without spaces.
+         tmp=`$CYGPATH -s -m "$tmp"`
+    fi
+    car="$tmp"
+
+    else
+        # "which" is not portable, but is used here
+        # because we know that the command exists!
+        car=`which $car`
+    fi
+    if test "x$cdr" != xEOL; then
+        NM="$car ${cdr% *}"
+    else
+        NM="$car"
+    fi
+
+    # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_STRIP+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $STRIP in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_STRIP="$STRIP" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_STRIP="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+STRIP=$ac_cv_path_STRIP
+if test -n "$STRIP"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+    # Translate "gcc -E" into "`which gcc` -E" ie
+    # extract the full path to the binary and at the
+    # same time maintain any arguments passed to it.
+    # The command MUST exist in the path, or else!
+    tmp="$STRIP"
+    car="${tmp%% *}"
+    tmp="$STRIP EOL"
+    cdr="${tmp#* }"
+    # On windows we want paths without spaces.
+    if test "x$BUILD_OS" = "xwindows"; then
+
+    # Translate long cygdrive or C:\sdfsf path
+    # into a short mixed mode path that has no
+    # spaces in it.
+    tmp="$car"
+    if test "x$BUILD_OS" = "xwindows"; then
+        tmp=`$CYGPATH -u "$car"`
+        tmp=`which "$tmp"`
+        # If file exists with .exe appended, that's the real filename
+        # and cygpath needs that to convert to short style path.
+        if test -f "${tmp}.exe"; then
+           tmp="${tmp}.exe"
+        elif test -f "${tmp}.cmd"; then
+           tmp="${tmp}.cmd"
+        fi
+        # Convert to C:/ mixed style path without spaces.
+         tmp=`$CYGPATH -s -m "$tmp"`
+    fi
+    car="$tmp"
+
+    else
+        # "which" is not portable, but is used here
+        # because we know that the command exists!
+        car=`which $car`
+    fi
+    if test "x$cdr" != xEOL; then
+        STRIP="$car ${cdr% *}"
+    else
+        STRIP="$car"
+    fi
+
+    # Extract the first word of "mcs", so it can be a program name with args.
+set dummy mcs; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_MCS+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $MCS in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_MCS="$MCS" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_MCS="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+MCS=$ac_cv_path_MCS
+if test -n "$MCS"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MCS" >&5
+$as_echo "$MCS" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+    # Translate "gcc -E" into "`which gcc` -E" ie
+    # extract the full path to the binary and at the
+    # same time maintain any arguments passed to it.
+    # The command MUST exist in the path, or else!
+    tmp="$MCS"
+    car="${tmp%% *}"
+    tmp="$MCS EOL"
+    cdr="${tmp#* }"
+    # On windows we want paths without spaces.
+    if test "x$BUILD_OS" = "xwindows"; then
+
+    # Translate long cygdrive or C:\sdfsf path
+    # into a short mixed mode path that has no
+    # spaces in it.
+    tmp="$car"
+    if test "x$BUILD_OS" = "xwindows"; then
+        tmp=`$CYGPATH -u "$car"`
+        tmp=`which "$tmp"`
+        # If file exists with .exe appended, that's the real filename
+        # and cygpath needs that to convert to short style path.
+        if test -f "${tmp}.exe"; then
+           tmp="${tmp}.exe"
+        elif test -f "${tmp}.cmd"; then
+           tmp="${tmp}.cmd"
+        fi
+        # Convert to C:/ mixed style path without spaces.
+         tmp=`$CYGPATH -s -m "$tmp"`
+    fi
+    car="$tmp"
+
+    else
+        # "which" is not portable, but is used here
+        # because we know that the command exists!
+        car=`which $car`
+    fi
+    if test "x$cdr" != xEOL; then
+        MCS="$car ${cdr% *}"
+    else
+        MCS="$car"
+    fi
+
+else
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}nm", so it can be a program name with args.
+set dummy ${ac_tool_prefix}nm; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_NM+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$NM"; then
+  ac_cv_prog_NM="$NM" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_NM="${ac_tool_prefix}nm"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+NM=$ac_cv_prog_NM
+if test -n "$NM"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NM" >&5
+$as_echo "$NM" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_NM"; then
+  ac_ct_NM=$NM
+  # Extract the first word of "nm", so it can be a program name with args.
+set dummy nm; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_NM+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_NM"; then
+  ac_cv_prog_ac_ct_NM="$ac_ct_NM" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ac_ct_NM="nm"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_NM=$ac_cv_prog_ac_ct_NM
+if test -n "$ac_ct_NM"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NM" >&5
+$as_echo "$ac_ct_NM" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_NM" = x; then
+    NM=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    NM=$ac_ct_NM
+  fi
+else
+  NM="$ac_cv_prog_NM"
+fi
+
+
+    # Translate "gcc -E" into "`which gcc` -E" ie
+    # extract the full path to the binary and at the
+    # same time maintain any arguments passed to it.
+    # The command MUST exist in the path, or else!
+    tmp="$NM"
+    car="${tmp%% *}"
+    tmp="$NM EOL"
+    cdr="${tmp#* }"
+    # On windows we want paths without spaces.
+    if test "x$BUILD_OS" = "xwindows"; then
+
+    # Translate long cygdrive or C:\sdfsf path
+    # into a short mixed mode path that has no
+    # spaces in it.
+    tmp="$car"
+    if test "x$BUILD_OS" = "xwindows"; then
+        tmp=`$CYGPATH -u "$car"`
+        tmp=`which "$tmp"`
+        # If file exists with .exe appended, that's the real filename
+        # and cygpath needs that to convert to short style path.
+        if test -f "${tmp}.exe"; then
+           tmp="${tmp}.exe"
+        elif test -f "${tmp}.cmd"; then
+           tmp="${tmp}.cmd"
+        fi
+        # Convert to C:/ mixed style path without spaces.
+         tmp=`$CYGPATH -s -m "$tmp"`
+    fi
+    car="$tmp"
+
+    else
+        # "which" is not portable, but is used here
+        # because we know that the command exists!
+        car=`which $car`
+    fi
+    if test "x$cdr" != xEOL; then
+        NM="$car ${cdr% *}"
+    else
+        NM="$car"
+    fi
+
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_STRIP+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$STRIP"; then
+  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+  ac_ct_STRIP=$STRIP
+  # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_STRIP"; then
+  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ac_ct_STRIP="strip"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_STRIP" = x; then
+    STRIP=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    STRIP=$ac_ct_STRIP
+  fi
+else
+  STRIP="$ac_cv_prog_STRIP"
+fi
+
+
+    # Translate "gcc -E" into "`which gcc` -E" ie
+    # extract the full path to the binary and at the
+    # same time maintain any arguments passed to it.
+    # The command MUST exist in the path, or else!
+    tmp="$STRIP"
+    car="${tmp%% *}"
+    tmp="$STRIP EOL"
+    cdr="${tmp#* }"
+    # On windows we want paths without spaces.
+    if test "x$BUILD_OS" = "xwindows"; then
+
+    # Translate long cygdrive or C:\sdfsf path
+    # into a short mixed mode path that has no
+    # spaces in it.
+    tmp="$car"
+    if test "x$BUILD_OS" = "xwindows"; then
+        tmp=`$CYGPATH -u "$car"`
+        tmp=`which "$tmp"`
+        # If file exists with .exe appended, that's the real filename
+        # and cygpath needs that to convert to short style path.
+        if test -f "${tmp}.exe"; then
+           tmp="${tmp}.exe"
+        elif test -f "${tmp}.cmd"; then
+           tmp="${tmp}.cmd"
+        fi
+        # Convert to C:/ mixed style path without spaces.
+         tmp=`$CYGPATH -s -m "$tmp"`
+    fi
+    car="$tmp"
+
+    else
+        # "which" is not portable, but is used here
+        # because we know that the command exists!
+        car=`which $car`
+    fi
+    if test "x$cdr" != xEOL; then
+        STRIP="$car ${cdr% *}"
+    else
+        STRIP="$car"
+    fi
+
+fi
+
+# When using cygwin, we need a wrapper binary that renames
+# /cygdrive/c/ arguments into c:/ arguments and peeks into
+# @files and rewrites these too! This wrapper binary is
+# called uncygdrive.exe.
+UNCYGDRIVE=
+if test "x$BUILD_OS" = xwindows; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if uncygdrive can be created" >&5
+$as_echo_n "checking if uncygdrive can be created... " >&6; }
+    UNCYGDRIVE_SRC=`$CYGPATH -m $SRC_ROOT/common/src/uncygdrive.c`
+    rm -f $OUTPUT_ROOT/uncygdrive*
+    UNCYGDRIVE=`$CYGPATH -m $OUTPUT_ROOT/uncygdrive.exe`
+    cd $OUTPUT_ROOT
+    $CC $UNCYGDRIVE_SRC /Fe$UNCYGDRIVE > $OUTPUT_ROOT/uncygdrive1.log 2>&1
+    cd $CURDIR
+
+    if test ! -x $OUTPUT_ROOT/uncygdrive.exe; then
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+        cat $OUTPUT_ROOT/uncygdrive1.log
+        as_fn_error $? "Could not create $OUTPUT_ROOT/uncygdrive.exe" "$LINENO" 5
+    fi
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $UNCYGDRIVE" >&5
+$as_echo "$UNCYGDRIVE" >&6; }
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if uncygdrive.exe works" >&5
+$as_echo_n "checking if uncygdrive.exe works... " >&6; }
+    cd $OUTPUT_ROOT
+    $UNCYGDRIVE $CC $SRC_ROOT/common/src/uncygdrive.c /Fe$OUTPUT_ROOT/uncygdrive2.exe > $OUTPUT_ROOT/uncygdrive2.log 2>&1
+    cd $CURDIR
+    if test ! -x $OUTPUT_ROOT/uncygdrive2.exe; then
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+        cat $OUTPUT_ROOT/uncygdrive2.log
+        as_fn_error $? "Uncygdrive did not work!" "$LINENO" 5
+    fi
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+    rm -f $OUTPUT_ROOT/uncygdrive?.??? $OUTPUT_ROOT/uncygdrive.obj
+fi
+
+
+
+
+    # Check whether --enable-ccache was given.
+if test "${enable_ccache+set}" = set; then :
+  enableval=$enable_ccache; ENABLE_CCACHE=${enable_ccache}
+else
+  ENABLE_CCACHE=yes
+fi
+
+    if test "x$ENABLE_CCACHE" = xyes; then
+        # Extract the first word of "ccache", so it can be a program name with args.
+set dummy ccache; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_CCACHE+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $CCACHE in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_CCACHE="$CCACHE" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_CCACHE="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+CCACHE=$ac_cv_path_CCACHE
+if test -n "$CCACHE"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CCACHE" >&5
+$as_echo "$CCACHE" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    else
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ccache" >&5
+$as_echo_n "checking for ccache... " >&6; }
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: explicitly disabled" >&5
+$as_echo "explicitly disabled" >&6; }
+        CCACHE=
+    fi
+
+
+
+# Check whether --with-ccache-dir was given.
+if test "${with_ccache_dir+set}" = set; then :
+  withval=$with_ccache_dir;
+fi
+
+
+    if test "x$with_ccache_dir" != x; then
+        # When using a non home ccache directory, assume the use is to share ccache files
+        # with other users. Thus change the umask.
+        SET_CCACHE_DIR="CCACHE_DIR=$with_ccache_dir CCACHE_UMASK=002"
+    fi
+    CCACHE_FOUND=""
+    if test "x$CCACHE" != x; then
+
+    if test "x$CCACHE" != x; then
+        CCACHE_FOUND="true"
+        # Only use ccache if it is 3.1.4 or later, which supports
+        # precompiled headers.
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ccache supports precompiled headers" >&5
+$as_echo_n "checking if ccache supports precompiled headers... " >&6; }
+        HAS_GOOD_CCACHE=`($CCACHE --version | head -n 1 | grep -E 3.1.[456789]) 2> /dev/null`
+        if test "x$HAS_GOOD_CCACHE" = x; then
+            { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, disabling ccache" >&5
+$as_echo "no, disabling ccache" >&6; }
+            CCACHE=
+        else
+            { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+            { $as_echo "$as_me:${as_lineno-$LINENO}: checking if C-compiler supports ccache precompiled headers" >&5
+$as_echo_n "checking if C-compiler supports ccache precompiled headers... " >&6; }
+            PUSHED_FLAGS="$CXXFLAGS"
+            CXXFLAGS="-fpch-preprocess $CXXFLAGS"
+            cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  CC_KNOWS_CCACHE_TRICK=yes
+else
+  CC_KNOWS_CCACHE_TRICK=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+            CXXFLAGS="$PUSHED_FLAGS"
+            if test "x$CC_KNOWS_CCACHE_TRICK" = xyes; then
+                { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+            else
+                { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, disabling ccaching of precompiled headers" >&5
+$as_echo "no, disabling ccaching of precompiled headers" >&6; }
+                CCACHE=
+            fi
+        fi
+    fi
+
+    if test "x$CCACHE" != x; then
+        CCACHE_SLOPPINESS=time_macros
+        CCACHE="CCACHE_COMPRESS=1 $SET_CCACHE_DIR CCACHE_SLOPPINESS=$CCACHE_SLOPPINESS $CCACHE"
+        CCACHE_FLAGS=-fpch-preprocess
+
+        if test "x$SET_CCACHE_DIR" != x; then
+            mkdir -p $CCACHE_DIR > /dev/null 2>&1
+	    chmod a+rwxs $CCACHE_DIR > /dev/null 2>&1
+        fi
+    fi
+
+    fi
+
+
+# Used on GNU/Linux systems, can be empty...
+#AC_PATH_PROG(ELFDUMP, elfdump)
+
+# Setup default logging of stdout and stderr to build.log in the output root.
+BUILD_LOG='$(OUTPUT_ROOT)/build.log'
+BUILD_LOG_WRAPPER='$(SRC_ROOT)/common/bin/logger.sh $(BUILD_LOG)'
+
+
+
+###############################################################################
+#
+# Now we check if libjvm.so will use 32 or 64 bit pointers for the C/C++ code.
+# (The JVM can use 32 or 64 bit Java pointers but that decision
+# is made at runtime.)
+#
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if test "${ac_cv_header_stdc+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  ac_cv_header_stdc=yes
+else
+  ac_cv_header_stdc=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "memchr" >/dev/null 2>&1; then :
+
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "free" >/dev/null 2>&1; then :
+
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+  if test "$cross_compiling" = yes; then :
+  :
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+		   (('a' <= (c) && (c) <= 'i') \
+		     || ('j' <= (c) && (c) <= 'r') \
+		     || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+  int i;
+  for (i = 0; i < 256; i++)
+    if (XOR (islower (i), ISLOWER (i))
+	|| toupper (i) != TOUPPER (i))
+      return 2;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_run "$LINENO"; then :
+
+else
+  ac_cv_header_stdc=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+
+$as_echo "#define STDC_HEADERS 1" >>confdefs.h
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+		  inttypes.h stdint.h unistd.h
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_cxx_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+# The cast to long int works around a bug in the HP C Compiler
+# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+# This bug is HP SR number 8606223364.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int *" >&5
+$as_echo_n "checking size of int *... " >&6; }
+if test "${ac_cv_sizeof_int_p+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if ac_fn_cxx_compute_int "$LINENO" "(long int) (sizeof (int *))" "ac_cv_sizeof_int_p"        "$ac_includes_default"; then :
+
+else
+  if test "$ac_cv_type_int_p" = yes; then
+     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error 77 "cannot compute sizeof (int *)
+See \`config.log' for more details" "$LINENO" 5 ; }
+   else
+     ac_cv_sizeof_int_p=0
+   fi
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int_p" >&5
+$as_echo "$ac_cv_sizeof_int_p" >&6; }
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_INT_P $ac_cv_sizeof_int_p
+_ACEOF
+
+
+if test "x$ac_cv_sizeof_int_p" = x0; then
+    # The test failed, lets pick the assumed value.
+    ARCH_DATA_MODEL=$HOST_CPU_BITS
+else
+    ARCH_DATA_MODEL=`expr 8 \* $ac_cv_sizeof_int_p`
+fi
+
+if test "x$ARCH_DATA_MODEL" = x64; then
+    A_LP64="LP64:="
+    ADD_LP64="-D_LP64=1"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for host address size" >&5
+$as_echo_n "checking for host address size... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ARCH_DATA_MODEL bits" >&5
+$as_echo "$ARCH_DATA_MODEL bits" >&6; }
+LP64=$A_LP64
+
+
+
+if test "x$ARCH_DATA_MODEL" != "x$HOST_CPU_BITS"; then
+    as_fn_error $? "The tested number of bits in the host ($ARCH_DATA_MODEL) differs from the number of bits expected to be found in the host ($HOST_CPU_BITS)" "$LINENO" 5
+fi
+
+###############################################################################
+#
+# Can the C/C++ compiler use precompiled headers?
+#
+# Check whether --enable-precompiled-headers was given.
+if test "${enable_precompiled_headers+set}" = set; then :
+  enableval=$enable_precompiled_headers; ENABLE_PRECOMPH=${enable_precompiled-headers}
+else
+  ENABLE_PRECOMPH=yes
+fi
+
+
+USE_PRECOMPILED_HEADER=1
+if test "x$ENABLE_PRECOMPH" = xno; then
+    USE_PRECOMPILED_HEADER=0
+fi
+
+if test "x$ENABLE_PRECOMPH" = xyes; then
+    # Check that the compiler actually supports precomp headers.
+    if test "x$GCC" = xyes; then
+         { $as_echo "$as_me:${as_lineno-$LINENO}: checking that precompiled headers work" >&5
+$as_echo_n "checking that precompiled headers work... " >&6; }
+         echo "int alfa();" > conftest.h
+         $CXX -x c++-header conftest.h -o conftest.hpp.gch
+         if test ! -f conftest.hpp.gch; then
+             echo Precompiled header is not working!
+             USE_PRECOMPILED_HEADER=0
+             { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+         else
+             { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+         fi
+         rm -f conftest.h
+    fi
+fi
+
+
+
+###############################################################################
+#
+# How to compile shared libraries.
+#
+
+if test "x$GCC" = xyes; then
+    COMPILER_NAME=gcc
+    PICFLAG="-fPIC"
+    LIBRARY_PREFIX=lib
+    SHARED_LIBRARY='lib$1.so'
+    STATIC_LIBRARY='lib$1.a'
+    SHARED_LIBRARY_FLAGS="-shared"
+    SHARED_LIBRARY_SUFFIX='.so'
+    STATIC_LIBRARY_SUFFIX='.a'
+    OBJ_SUFFIX='.o'
+    EXE_SUFFIX=''
+    SET_SHARED_LIBRARY_NAME='-Xlinker -soname=$1'
+    SET_SHARED_LIBRARY_MAPFILE='-Xlinker -version-script=$(JDK_TOPDIR)/$1'
+    SET_SHARED_LIBRARY_ORIGIN='-Xlinker -z -Xlinker origin -Xlinker -rpath -Xlinker \$$$$ORIGIN/$1'
+    LD="$CC"
+    LDEXE="$CC"
+    LDCXX="$CXX"
+    LDEXECXX="$CXX"
+
+    # Linking is different on MacOSX
+    if test "x$BUILD_OS" = xmacosx; then
+        # Might change in the future to clang.
+        COMPILER_NAME=gcc
+        SHARED_LIBRARY='lib$1.dylib'
+        SHARED_LIBRARY_FLAGS="-dynamiclib -compatibility_version 1.0.0 -current_version 1.0.0 $PICFLAG"
+        SHARED_LIBRARY_SUFFIX='.dylib'
+        EXE_SUFFIX=''
+        SET_SHARED_LIBRARY_NAME='-Xlinker -install_name -Xlinker @rpath/$1'
+        SET_SHARED_LIBRARY_MAPFILE=''
+        SET_SHARED_LIBRARY_ORIGIN='-Xlinker -rpath -Xlinker @loader_path/.'
+    fi
+else
+    if test "x$BUILD_OS" = xsolaris; then
+        # If it is not gcc, then assume it is the Oracle Solaris Studio Compiler
+        COMPILER_NAME=ossc
+        PICFLAG="-KPIC"
+        LIBRARY_PREFIX=lib
+        SHARED_LIBRARY='lib$1.so'
+        STATIC_LIBRARY='lib$1.a'
+        SHARED_LIBRARY_FLAGS="-G"
+        SHARED_LIBRARY_SUFFIX='.so'
+        STATIC_LIBRARY_SUFFIX='.a'
+        OBJ_SUFFIX='.o'
+        EXE_SUFFIX=''
+        SET_SHARED_LIBRARY_NAME=''
+        SET_SHARED_LIBRARY_MAPFILE='-M $(JDK_TOPDIR)/$1'
+        SET_SHARED_LIBRARY_ORIGIN='-R \$$$$ORIGIN/$1'
+        CFLAGS_JDKLIB_EXTRA='-xstrconst -D__solaris__'
+    fi
+    if test "x$BUILD_OS" = xwindows; then
+        # If it is not gcc, then assume it is the MS Visual Studio compiler
+        COMPILER_NAME=cl
+        PICFLAG=""
+        LIBRARY_PREFIX=
+        SHARED_LIBRARY='$1.dll'
+        STATIC_LIBRARY='$1.lib'
+        SHARED_LIBRARY_FLAGS="-LD"
+        SHARED_LIBRARY_SUFFIX='.dll'
+        STATIC_LIBRARY_SUFFIX='.lib'
+        OBJ_SUFFIX='.obj'
+        EXE_SUFFIX='.exe'
+        SET_SHARED_LIBRARY_NAME=''
+        SET_SHARED_LIBRARY_MAPFILE=''
+        SET_SHARED_LIBRARY_ORIGIN=''
+    fi
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+# The (cross) compiler is now configured, we can now test capabilities
+# of the host platform.
+
+###############################################################################
+#
+# Is the host little of big endian?
+#
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
+$as_echo_n "checking whether byte ordering is bigendian... " >&6; }
+if test "${ac_cv_c_bigendian+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_c_bigendian=unknown
+    # See if we're dealing with a universal compiler.
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifndef __APPLE_CC__
+	       not a universal capable compiler
+	     #endif
+	     typedef int dummy;
+
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+
+	# Check for potential -arch flags.  It is not universal unless
+	# there are at least two -arch flags with different values.
+	ac_arch=
+	ac_prev=
+	for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do
+	 if test -n "$ac_prev"; then
+	   case $ac_word in
+	     i?86 | x86_64 | ppc | ppc64)
+	       if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then
+		 ac_arch=$ac_word
+	       else
+		 ac_cv_c_bigendian=universal
+		 break
+	       fi
+	       ;;
+	   esac
+	   ac_prev=
+	 elif test "x$ac_word" = "x-arch"; then
+	   ac_prev=arch
+	 fi
+       done
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    if test $ac_cv_c_bigendian = unknown; then
+      # See if sys/param.h defines the BYTE_ORDER macro.
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+	     #include <sys/param.h>
+
+int
+main ()
+{
+#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
+		     && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
+		     && LITTLE_ENDIAN)
+	      bogus endian macros
+	     #endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  # It does; now see whether it defined to BIG_ENDIAN or not.
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+		#include <sys/param.h>
+
+int
+main ()
+{
+#if BYTE_ORDER != BIG_ENDIAN
+		 not big endian
+		#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  ac_cv_c_bigendian=yes
+else
+  ac_cv_c_bigendian=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    fi
+    if test $ac_cv_c_bigendian = unknown; then
+      # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <limits.h>
+
+int
+main ()
+{
+#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
+	      bogus endian macros
+	     #endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  # It does; now see whether it defined to _BIG_ENDIAN or not.
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <limits.h>
+
+int
+main ()
+{
+#ifndef _BIG_ENDIAN
+		 not big endian
+		#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  ac_cv_c_bigendian=yes
+else
+  ac_cv_c_bigendian=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    fi
+    if test $ac_cv_c_bigendian = unknown; then
+      # Compile a test program.
+      if test "$cross_compiling" = yes; then :
+  # Try to guess by grepping values from an object file.
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+short int ascii_mm[] =
+		  { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
+		short int ascii_ii[] =
+		  { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
+		int use_ascii (int i) {
+		  return ascii_mm[i] + ascii_ii[i];
+		}
+		short int ebcdic_ii[] =
+		  { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
+		short int ebcdic_mm[] =
+		  { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
+		int use_ebcdic (int i) {
+		  return ebcdic_mm[i] + ebcdic_ii[i];
+		}
+		extern int foo;
+
+int
+main ()
+{
+return use_ascii (foo) == use_ebcdic (foo);
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
+	      ac_cv_c_bigendian=yes
+	    fi
+	    if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
+	      if test "$ac_cv_c_bigendian" = unknown; then
+		ac_cv_c_bigendian=no
+	      else
+		# finding both strings is unlikely to happen, but who knows?
+		ac_cv_c_bigendian=unknown
+	      fi
+	    fi
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+
+	     /* Are we little or big endian?  From Harbison&Steele.  */
+	     union
+	     {
+	       long int l;
+	       char c[sizeof (long int)];
+	     } u;
+	     u.l = 1;
+	     return u.c[sizeof (long int) - 1] == 1;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_run "$LINENO"; then :
+  ac_cv_c_bigendian=no
+else
+  ac_cv_c_bigendian=yes
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+    fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5
+$as_echo "$ac_cv_c_bigendian" >&6; }
+ case $ac_cv_c_bigendian in #(
+   yes)
+     ENDIAN="big";; #(
+   no)
+     ENDIAN="little" ;; #(
+   universal)
+     ENDIAN="universal"
+     ;; #(
+   *)
+     ENDIAN="unknown" ;;
+ esac
+
+
+if test "x$ENDIAN" = xuniversal; then
+    as_fn_error $? "It seems like someone needs to decide how we are to deal with universal binaries on the MacOSX?" "$LINENO" 5
+fi
+if test "x$ENDIAN" = xunknown; then
+    ENDIAN="$HOST_CPU_ENDIAN"
+fi
+if test "x$ENDIAN" != "x$HOST_CPU_ENDIAN"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: The tested endian in the host ($ENDIAN) differs from the endian expected to be found in the host ($HOST_CPU_ENDIAN)" >&5
+$as_echo "$as_me: WARNING: The tested endian in the host ($ENDIAN) differs from the endian expected to be found in the host ($HOST_CPU_ENDIAN)" >&2;}
+    ENDIAN="$HOST_CPU_ENDIAN"
+fi
+
+
+###############################################################################
+#
+# We need a Boot JDK to bootstrap the build.
+#
+BOOT_JDK_FOUND=no
+
+# Check whether --with-boot-jdk was given.
+if test "${with_boot_jdk+set}" = set; then :
+  withval=$with_boot_jdk;
+fi
+
+
+if test "x$with_boot_jdk" != x; then
+    BOOT_JDK=$with_boot_jdk
+    BOOT_JDK_FOUND=yes
+fi
+if test "x$BOOT_JDK_FOUND" = xno; then
+
+
+    if test "x$with_builddeps_server" != x || test "x$with_builddeps_conf" != x; then
+        # Source the builddeps file again, to make sure it uses the latest variables!
+        . $builddepsfile
+        # Look for a host and build machine specific resource!
+        eval resource=\${builddep_bootjdk_BUILD_${rewritten_build_var}_HOST_${rewritten_host_var}}
+        if test "x$resource" = x; then
+            # Ok, lets instead look for a host specific resource
+            eval resource=\${builddep_bootjdk_HOST_${rewritten_host_var}}
+        fi
+        if test "x$resource" = x; then
+            # Ok, lets instead look for a build specific resource
+            eval resource=\${builddep_bootjdk_BUILD_${rewritten_build_var}}
+        fi
+        if test "x$resource" = x; then
+            # Ok, lets instead look for a generic resource
+            # (The bootjdk comes from M4 and not the shell, thus no need for eval here.)
+            resource=${builddep_bootjdk}
+        fi
+        if test "x$resource" != x; then
+            { $as_echo "$as_me:${as_lineno-$LINENO}: Using builddeps $resource for bootjdk" >&5
+$as_echo "$as_me: Using builddeps $resource for bootjdk" >&6;}
+	    # If the resource in the builddeps.conf file is an existing directory,
+	    # for example /java/linux/cups
+	    if test -d ${resource}; then
+	       depdir=${resource}
+	    else
+
+# bootjdk is for example mymodule
+# $resource is for example libs/general/libmymod_1_2_3.zip
+# $with_builddeps_server is for example ftp://mybuilddeps.myserver.com/builddeps
+# $with_builddeps_dir is for example /localhome/builddeps
+# depdir is the name of the variable into which we store the depdir, eg MYMOD
+# Will download ftp://mybuilddeps.myserver.com/builddeps/libs/general/libmymod_1_2_3.zip and
+# unzip into the directory: /localhome/builddeps/libmymod_1_2_3
+    filename=`basename $resource`
+    filebase=`echo $filename | sed 's/\.[^\.]*$//'`
+    filebase=${filename%%.*}
+    extension=${filename#*.}
+    installdir=$with_builddeps_dir/$filebase
+    if test ! -f $installdir/$filename.unpacked; then
+        { $as_echo "$as_me:${as_lineno-$LINENO}: Downloading build dependency bootjdk from $with_builddeps_server/$resource and installing into $installdir" >&5
+$as_echo "$as_me: Downloading build dependency bootjdk from $with_builddeps_server/$resource and installing into $installdir" >&6;}
+        if test ! -d $installdir; then
+            mkdir -p $installdir
+        fi
+        if test ! -d $installdir; then
+            as_fn_error $? "Could not create directory $installdir" "$LINENO" 5
+        fi
+        tmpfile=`mktemp $installdir/bootjdk.XXXXXXXXX`
+        touch $tmpfile
+        if test ! -f $tmpfile; then
+            as_fn_error $? "Could not create files in directory $installdir" "$LINENO" 5
+        fi
+
+    # $with_builddeps_server/$resource  is the ftp://abuilddeps.server.com/libs/cups.zip
+    # $tmpfile is the local file name for the downloaded file.
+    VALID_TOOL=no
+    if test "x$BDEPS_FTP" = xwget; then
+       VALID_TOOL=yes
+       wget -O $tmpfile $with_builddeps_server/$resource
+    fi
+    if test "x$BDEPS_FTP" = xlftp; then
+       VALID_TOOL=yes
+       lftp -c "get $with_builddeps_server/$resource  -o $tmpfile"
+    fi
+    if test "x$BDEPS_FTP" = xftp; then
+        VALID_TOOL=yes
+        FTPSERVER=`echo $with_builddeps_server/$resource  | cut -f 3 -d '/'`
+        FTPPATH=`echo $with_builddeps_server/$resource  | cut -f 4- -d '/'`
+        FTPUSERPWD=${FTPSERVER%%@*}
+        if test "x$FTPSERVER" != "x$FTPUSERPWD"; then
+            FTPUSER=${userpwd%%:*}
+            FTPPWD=${userpwd#*@}
+            FTPSERVER=${FTPSERVER#*@}
+        else
+            FTPUSER=ftp
+            FTPPWD=ftp
+        fi
+        # the "pass" command does not work on some
+        # ftp clients (read ftp.exe) but if it works,
+        # passive mode is better!
+        (\
+            echo "user $FTPUSER $FTPPWD"        ;\
+            echo "pass"                         ;\
+            echo "bin"                          ;\
+            echo "get $FTPPATH $tmpfile"              ;\
+        ) | ftp -in $FTPSERVER
+    fi
+    if test "x$VALID_TOOL" != xyes; then
+       as_fn_error $? "I do not know how to use the tool: $BDEPS_FTP" "$LINENO" 5
+    fi
+
+        mv $tmpfile $installdir/$filename
+        if test ! -s $installdir/$filename; then
+            as_fn_error $? "Could not download $with_builddeps_server/$resource" "$LINENO" 5
+        fi
+        case "$extension" in
+            zip)  echo "Unzipping $installdir/$filename..."
+               (cd $installdir ; rm -f $installdir/$filename.unpacked ; $BDEPS_UNZIP $installdir/$filename > /dev/null && touch $installdir/$filename.unpacked)
+            ;;
+            tar.gz) echo "Untaring $installdir/$filename..."
+               (cd $installdir ; rm -f $installdir/$filename.unpacked ; tar xzf $installdir/$filename && touch $installdir/$filename.unpacked)
+            ;;
+            tgz) echo "Untaring $installdir/$filename..."
+               (cd $installdir ; rm -f $installdir/$filename.unpacked ; tar xzf $installdir/$filename && touch $installdir/$filename.unpacked)
+            ;;
+            *) as_fn_error $? "Cannot handle build depency archive with extension $extension" "$LINENO" 5
+            ;;
+        esac
+    fi
+    if test -f $installdir/$filename.unpacked; then
+        depdir=$installdir
+    fi
+
+	    fi
+            # Source the builddeps file again, because in the previous command, the depdir
+            # was updated to point at the current build dependency install directory.
+            . $builddepsfile
+            # Now extract variables from the builddeps.conf files.
+            theroot=${builddep_bootjdk_ROOT}
+            thecflags=${builddep_bootjdk_CFLAGS}
+            thelibs=${builddep_bootjdk_LIBS}
+            if test "x$depdir" = x; then
+                as_fn_error $? "Could not download build dependency bootjdk" "$LINENO" 5
+            fi
+            BOOT_JDK=$depdir
+            if test "x$theroot" != x; then
+               BOOT_JDK="$theroot"
+            fi
+            if test "x$thecflags" != x; then
+               BOOT_JDK_CFLAGS="$thecflags"
+            fi
+            if test "x$thelibs" != x; then
+               BOOT_JDK_LIBS="$thelibs"
+            fi
+            BOOT_JDK_FOUND=yes
+            else BOOT_JDK_FOUND=no
+
+        fi
+        else BOOT_JDK_FOUND=no
+
+    fi
+
+fi
+
+if test "x$BOOT_JDK_FOUND" = xno; then
+    if test "x$JAVA_HOME" != x; then
+        if test ! -d "$JAVA_HOME"; then
+            as_fn_error $? "Your JAVA_HOME points to a non-existing directory!" "$LINENO" 5
+        fi
+        # Aha, the user has set a JAVA_HOME
+        # let us use that as the Boot JDK.
+        BOOT_JDK=$JAVA_HOME
+        BOOT_JDK_FOUND=yes
+        # To be on the safe side, lets check that it is a JDK.
+        if test -x $BOOT_JDK/bin/javac && test -x $BOOT_JDK/bin/java; then
+            JAVAC=$BOOT_JDK/bin/javac
+            JAVA=$BOOT_JDK/bin/java
+            BOOT_JDK_FOUND=yes
+        else
+            as_fn_error $? "Your JAVA_HOME points to a JRE! The build needs a JDK! Please point JAVA_HOME to a JDK." "$LINENO" 5
+        fi
+    fi
+fi
+
+if test "x$BOOT_JDK_FOUND" = xno; then
+    # Extract the first word of "javac", so it can be a program name with args.
+set dummy javac; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_JAVAC_CHECK+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $JAVAC_CHECK in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_JAVAC_CHECK="$JAVAC_CHECK" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_JAVAC_CHECK="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+JAVAC_CHECK=$ac_cv_path_JAVAC_CHECK
+if test -n "$JAVAC_CHECK"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $JAVAC_CHECK" >&5
+$as_echo "$JAVAC_CHECK" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    # Extract the first word of "java", so it can be a program name with args.
+set dummy java; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_JAVA_CHECK+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $JAVA_CHECK in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_JAVA_CHECK="$JAVA_CHECK" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_JAVA_CHECK="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+JAVA_CHECK=$ac_cv_path_JAVA_CHECK
+if test -n "$JAVA_CHECK"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $JAVA_CHECK" >&5
+$as_echo "$JAVA_CHECK" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    BINARY="$JAVAC_CHECK"
+    if test "x$JAVAC_CHECK" = x; then
+        BINARY="$JAVA_CHECK"
+    fi
+    if test "x$BINARY" != x; then
+        # So there is a java(c) binary, it might be part of a JDK.
+        # Lets find the JDK/JRE directory by following symbolic links.
+        # Linux/GNU systems often have links from /usr/bin/java to
+        # /etc/alternatives/java to the real JDK binary.
+
+    # Translate long cygdrive or C:\sdfsf path
+    # into a short mixed mode path that has no
+    # spaces in it.
+    tmp="$BINARY"
+    if test "x$BUILD_OS" = "xwindows"; then
+        tmp=`$CYGPATH -u "$BINARY"`
+        tmp=`which "$tmp"`
+        # If file exists with .exe appended, that's the real filename
+        # and cygpath needs that to convert to short style path.
+        if test -f "${tmp}.exe"; then
+           tmp="${tmp}.exe"
+        elif test -f "${tmp}.cmd"; then
+           tmp="${tmp}.cmd"
+        fi
+        # Convert to C:/ mixed style path without spaces.
+         tmp=`$CYGPATH -s -m "$tmp"`
+    fi
+    BINARY="$tmp"
+
+
+    if test "x$BUILD_OS" != xwindows; then
+        # Follow a chain of symbolic links. Use readlink
+        # where it exists, else fall back to horribly
+        # complicated shell code.
+        # Extract the first word of "readlink", so it can be a program name with args.
+set dummy readlink; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_READLINK+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $READLINK in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_READLINK="$READLINK" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_READLINK="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+READLINK=$ac_cv_path_READLINK
+if test -n "$READLINK"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $READLINK" >&5
+$as_echo "$READLINK" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+        if test "x$READLINK_TESTED" != yes; then
+            # On MacOSX there is a readlink tool with a different
+            # purpose than the GNU readlink tool. Check the found readlink.
+            ISGNU=`$READLINK --help 2>&1 | grep GNU`
+            if test "x$ISGNU" = x; then
+                 # A readlink that we do not know how to use.
+                 # Are there other non-GNU readlinks out there?
+                 READLINK_TESTED=yes
+                 READLINK=
+            fi
+        fi
+
+        if test "x$READLINK" != x; then
+            BINARY=`$READLINK -f $BINARY`
+        else
+            STARTDIR=$PWD
+            COUNTER=0
+            DIR=`dirname $BINARY`
+            FIL=`basename $BINARY`
+            while test $COUNTER -lt 20; do
+                ISLINK=`ls -l $DIR/$FIL | grep '\->' | sed -e 's/.*-> \(.*\)/\1/'`
+                if test "x$ISLINK" == x; then
+                    # This is not a symbolic link! We are done!
+                    break
+                fi
+                # The link might be relative! We have to use cd to travel safely.
+                cd $DIR
+                cd `dirname $ISLINK`
+                DIR=`pwd`
+                FIL=`basename $ISLINK`
+                let COUNTER=COUNTER+1
+            done
+            cd $STARTDIR
+            BINARY=$DIR/$FIL
+        fi
+    fi
+
+        BOOT_JDK=`dirname $BINARY`
+        BOOT_JDK=`cd $BOOT_JDK/..; pwd`
+        if test -x $BOOT_JDK/bin/javac && test -x $BOOT_JDK/bin/java; then
+            JAVAC=$BOOT_JDK/bin/javac
+            JAVA=$BOOT_JDK/bin/java
+            BOOT_JDK_FOUND=yes
+        fi
+    fi
+fi
+
+if test "x$BOOT_JDK_FOUND" = xno; then
+    # Try the MacOSX way.
+    if test -x /usr/libexec/java_home; then
+        BOOT_JDK=`/usr/libexec/java_home`
+        if test -x $BOOT_JDK/bin/javac && test -x $BOOT_JDK/bin/java; then
+            JAVAC=$BOOT_JDK/bin/javac
+            JAVA=$BOOT_JDK/bin/java
+            BOOT_JDK_FOUND=yes
+        fi
+    fi
+fi
+
+if test "x$BOOT_JDK_FOUND" = xno; then
+    # Extract the first word of "java", so it can be a program name with args.
+set dummy java; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_JAVA_CHECK+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $JAVA_CHECK in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_JAVA_CHECK="$JAVA_CHECK" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_JAVA_CHECK="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+JAVA_CHECK=$ac_cv_path_JAVA_CHECK
+if test -n "$JAVA_CHECK"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $JAVA_CHECK" >&5
+$as_echo "$JAVA_CHECK" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    if test "x$JAVA_CHECK" != x; then
+        # There is a java in the path. But apparently we have not found a javac
+        # in the path, since that would have been tested earlier.
+        if test "x$HOST_OS" = xwindows; then
+            # Now if this is a windows platform. The default installation of a JDK
+            # actually puts the JRE in the path and keeps the JDK out of the path!
+            # Go look in the default installation location.
+            BOOT_JDK=/cygdrive/c/Program\ Files/Java/`ls /cygdrive/c/Program\ Files/Java | grep jdk | sort -r | head --lines 1`
+            if test -d "$BOOT_JDK"; then
+                BOOT_JDK_FOUND=yes
+            fi
+        fi
+        if test "x$BOOT_JDK_FOUND" = xno; then
+            help_on_build_dependency openjdk
+            as_fn_error $? "Found a JRE, not not a JDK! Please remove the JRE from your path and put a JDK there instead. $HELP_MSG" "$LINENO" 5
+        fi
+    else
+        help_on_build_dependency openjdk
+        as_fn_error $? "Could not find a JDK. $HELP_MSG" "$LINENO" 5
+    fi
+fi
+
+
+    if test "x$BUILD_OS" = "xwindows"; then
+        # Extract the first word of "cygpath", so it can be a program name with args.
+set dummy cygpath; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_CYGPATH+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $CYGPATH in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_CYGPATH="$CYGPATH" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_CYGPATH="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+CYGPATH=$ac_cv_path_CYGPATH
+if test -n "$CYGPATH"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CYGPATH" >&5
+$as_echo "$CYGPATH" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+        tmp="$BOOT_JDK"
+        # Convert to C:/ mixed style path without spaces.
+        tmp=`$CYGPATH -s -m "$tmp"`
+        BOOT_JDK="$tmp"
+    fi
+
+
+# Now see if we can find the rt.jar, or its nearest equivalent.
+BOOT_RTJAR="$BOOT_JDK/jre/lib/rt.jar"
+
+    # Fail with message the path to the Boot JDK rt.jar (or nearest equivalent) if var BOOT_RTJAR contains a path with no spaces in it.
+    # Unless on Windows, where we can rewrite the path.
+    HAS_SPACE=`echo "$BOOT_RTJAR" | grep " "`
+    if test "x$HAS_SPACE" != x; then
+        if test "x$BUILD_OS" = "xwindows"; then
+            BOOT_RTJAR=`$CYGPATH -s -m -a "$BOOT_RTJAR"`
+            BOOT_RTJAR=`$CYGPATH -u "$BOOT_RTJAR"`
+        else
+            as_fn_error $? "You cannot have spaces in the path to the Boot JDK rt.jar (or nearest equivalent)! \"$BOOT_RTJAR\"" "$LINENO" 5
+        fi
+    fi
+
+
+BOOT_TOOLSJAR="$BOOT_JDK/lib/tools.jar"
+
+    # Fail with message the path to the Boot JDK tools.jar (or nearest equivalent) if var BOOT_TOOLSJAR contains a path with no spaces in it.
+    # Unless on Windows, where we can rewrite the path.
+    HAS_SPACE=`echo "$BOOT_TOOLSJAR" | grep " "`
+    if test "x$HAS_SPACE" != x; then
+        if test "x$BUILD_OS" = "xwindows"; then
+            BOOT_TOOLSJAR=`$CYGPATH -s -m -a "$BOOT_TOOLSJAR"`
+            BOOT_TOOLSJAR=`$CYGPATH -u "$BOOT_TOOLSJAR"`
+        else
+            as_fn_error $? "You cannot have spaces in the path to the Boot JDK tools.jar (or nearest equivalent)! \"$BOOT_TOOLSJAR\"" "$LINENO" 5
+        fi
+    fi
+
+
+if test ! -f $BOOT_RTJAR; then
+    # On MacOSX it is called classes.jar
+    BOOT_RTJAR=$BOOT_JDK/../Classes/classes.jar
+    if test ! -f $BOOT_RTJAR; then
+        as_fn_error $? "Cannot find the rt.jar or its equivalent!" "$LINENO" 5
+    fi
+    # Remove the ..
+    BOOT_RTJAR="`cd ${BOOT_RTJAR%/*} && pwd`/${BOOT_RTJAR##*/}"
+    # The tools.jar is part of classes.jar
+    BOOT_TOOLSJAR="$BOOT_RTJAR"
+fi
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Boot JDK" >&5
+$as_echo_n "checking for Boot JDK... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK" >&5
+$as_echo "$BOOT_JDK" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Boot rt.jar" >&5
+$as_echo_n "checking for Boot rt.jar... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_RTJAR" >&5
+$as_echo "$BOOT_RTJAR" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Boot tools.jar" >&5
+$as_echo_n "checking for Boot tools.jar... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_TOOLSJAR" >&5
+$as_echo "$BOOT_TOOLSJAR" >&6; }
+
+# Use the java tool from the Boot JDK.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for java in Boot JDK" >&5
+$as_echo_n "checking for java in Boot JDK... " >&6; }
+JAVA=$BOOT_JDK/bin/java
+if test ! -x $JAVA; then
+    as_fn_error $? "Could not find a working java" "$LINENO" 5
+fi
+BOOT_JDK_VERSION=`$JAVA -version 2>&1 | head -n 1`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes $BOOT_JDK_VERSION" >&5
+$as_echo "yes $BOOT_JDK_VERSION" >&6; }
+
+
+# Extra M4 quote needed to protect [] in grep expression.
+FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep  '\"1\.[78]\.'`
+if test "x$FOUND_VERSION_78" = x; then
+    help_on_build_dependency openjdk
+    as_fn_error $? "Your bootjdk must be version 7 or 8. $HELP_MSG" "$LINENO" 5
+fi
+
+# When compiling code to be executed by the Boot JDK, force jdk7 compatibility.
+BOOT_JDK_SOURCETARGET="-source 7 -target 7"
+
+
+# Use the javac tool from the Boot JDK.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for javac in Boot JDK" >&5
+$as_echo_n "checking for javac in Boot JDK... " >&6; }
+JAVAC=$BOOT_JDK/bin/javac
+if test ! -x $JAVAC; then
+    as_fn_error $? "Could not find a working javac" "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+
+
+# Use the javac tool from the Boot JDK.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for javah in Boot JDK" >&5
+$as_echo_n "checking for javah in Boot JDK... " >&6; }
+JAVAH=$BOOT_JDK/bin/javah
+if test ! -x $JAVAH; then
+    as_fn_error $? "Could not find a working javah" "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+
+# Use the jar tool from the Boot JDK.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for jar in Boot JDK" >&5
+$as_echo_n "checking for jar in Boot JDK... " >&6; }
+JAR=$BOOT_JDK/bin/jar
+if test ! -x $JAR; then
+    as_fn_error $? "Could not find a working jar" "$LINENO" 5
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+# Use the rmic tool from the Boot JDK.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for rmic in Boot JDK" >&5
+$as_echo_n "checking for rmic in Boot JDK... " >&6; }
+RMIC=$BOOT_JDK/bin/rmic
+if test ! -x $RMIC; then
+    as_fn_error $? "Could not find a working rmic" "$LINENO" 5
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+###############################################################################
+#
+# Pickup additional source for a component from outside of the source root
+# or override source for a component.
+#
+
+# Check whether --with-add-source-root was given.
+if test "${with_add_source_root+set}" = set; then :
+  withval=$with_add_source_root;
+fi
+
+
+
+# Check whether --with-override-source-root was given.
+if test "${with_override_source_root+set}" = set; then :
+  withval=$with_override_source_root;
+fi
+
+
+
+# Check whether --with-adds-and-overrides was given.
+if test "${with_adds_and_overrides+set}" = set; then :
+  withval=$with_adds_and_overrides;
+fi
+
+
+if test "x$with_adds_and_overrides" != x; then
+    with_add_source_root="$with_adds_and_overrides/adds"
+    with_override_source_root="$with_adds_and_overrides/overrides"
+fi
+
+if test "x$with_add_source_root" != x; then
+    if ! test -d $with_add_source_root; then
+       as_fn_error $? "Trying to use a non-existant add-source-root $with_add_source_root" "$LINENO" 5
+    fi
+    CURDIR="$PWD"
+    cd "$with_add_source_root"
+    ADD_SRC_ROOT="`pwd`"
+    cd "$CURDIR"
+    # Verify that the addon source root does not have any root makefiles.
+    # If it does, then it is usually an error, prevent this.
+    if test -f $with_add_source_root/langtools/makefiles/Makefile || \
+       test -f $with_add_source_root/langtools/make/Makefile; then
+        as_fn_error $? "Your add source root seems to contain a full langtools repo! An add source root should only contain additional sources." "$LINENO" 5
+    fi
+    if test -f $with_add_source_root/corba/makefiles/Makefile || \
+       test -f $with_add_source_root/corba/make/Makefile; then
+        as_fn_error $? "Your add source root seems to contain a full corba repo! An add source root should only contain additional sources." "$LINENO" 5
+    fi
+    if test -f $with_add_source_root/jaxp/makefiles/Makefile || \
+       test -f $with_add_source_root/jaxp/make/Makefile; then
+        as_fn_error $? "Your add source root seems to contain a full jaxp repo! An add source root should only contain additional sources." "$LINENO" 5
+    fi
+    if test -f $with_add_source_root/jaxws/makefiles/Makefile || \
+       test -f $with_add_source_root/jaxws/make/Makefile; then
+        as_fn_error $? "Your add source root seems to contain a full jaxws repo! An add source root should only contain additional sources." "$LINENO" 5
+    fi
+    if test -f $with_add_source_root/hotspot/makefiles/Makefile || \
+       test -f $with_add_source_root/hotspot/make/Makefile; then
+        as_fn_error $? "Your add source root seems to contain a full hotspot repo! An add source root should only contain additional sources." "$LINENO" 5
+    fi
+    if test -f $with_add_source_root/jdk/makefiles/Makefile || \
+       test -f $with_add_source_root/jdk/make/Makefile; then
+        as_fn_error $? "Your add source root seems to contain a full JDK repo! An add source root should only contain additional sources." "$LINENO" 5
+    fi
+fi
+
+
+if test "x$with_override_source_root" != x; then
+    if ! test -d $with_override_source_root; then
+       as_fn_error $? "Trying to use a non-existant override-source-root $with_override_source_root" "$LINENO" 5
+    fi
+    CURDIR="$PWD"
+    cd "$with_override_source_root"
+    OVERRIDE_SRC_ROOT="`pwd`"
+    cd "$CURDIR"
+    if test -f $with_override_source_root/langtools/makefiles/Makefile || \
+       test -f $with_override_source_root/langtools/make/Makefile; then
+        as_fn_error $? "Your override source root seems to contain a full langtools repo! An override source root should only contain sources that override." "$LINENO" 5
+    fi
+    if test -f $with_override_source_root/corba/makefiles/Makefile || \
+       test -f $with_override_source_root/corba/make/Makefile; then
+        as_fn_error $? "Your override source root seems to contain a full corba repo! An override source root should only contain sources that override." "$LINENO" 5
+    fi
+    if test -f $with_override_source_root/jaxp/makefiles/Makefile || \
+       test -f $with_override_source_root/jaxp/make/Makefile; then
+        as_fn_error $? "Your override source root seems to contain a full jaxp repo! An override source root should only contain sources that override." "$LINENO" 5
+    fi
+    if test -f $with_override_source_root/jaxws/makefiles/Makefile || \
+       test -f $with_override_source_root/jaxws/make/Makefile; then
+        as_fn_error $? "Your override source root seems to contain a full jaxws repo! An override source root should only contain sources that override." "$LINENO" 5
+    fi
+    if test -f $with_override_source_root/hotspot/makefiles/Makefile || \
+       test -f $with_override_source_root/hotspot/make/Makefile; then
+        as_fn_error $? "Your override source root seems to contain a full hotspot repo! An override source root should only contain sources that override." "$LINENO" 5
+    fi
+    if test -f $with_override_source_root/jdk/makefiles/Makefile || \
+       test -f $with_override_source_root/jdk/make/Makefile; then
+        as_fn_error $? "Your override source root seems to contain a full JDK repo! An override source root should only contain sources that override." "$LINENO" 5
+    fi
+fi
+
+
+###############################################################################
+#
+# Override a repo completely, this is used for example when you have 3 small
+# development sandboxes of the langtools sources and want to avoid having 3 full
+# OpenJDK sources checked out on disk.
+#
+# Assuming that the 3 langtools sandboxes are located here:
+# /home/fredrik/sandbox1/langtools
+# /home/fredrik/sandbox2/langtools
+# /home/fredrik/sandbox3/langtools
+#
+# From the source root you create build subdirs manually:
+#     mkdir -p build1 build2 build3
+# in each build directory run:
+#     (cd build1 && ../configure --with-override-langtools=/home/fredrik/sandbox1 && make)
+#     (cd build2 && ../configure --with-override-langtools=/home/fredrik/sandbox2 && make)
+#     (cd build3 && ../configure --with-override-langtools=/home/fredrik/sandbox3 && make)
+#
+
+
+# Check whether --with-override-langtools was given.
+if test "${with_override_langtools+set}" = set; then :
+  withval=$with_override_langtools;
+fi
+
+
+
+# Check whether --with-override-corba was given.
+if test "${with_override_corba+set}" = set; then :
+  withval=$with_override_corba;
+fi
+
+
+
+# Check whether --with-override-jaxp was given.
+if test "${with_override_jaxp+set}" = set; then :
+  withval=$with_override_jaxp;
+fi
+
+
+
+# Check whether --with-override-jaxws was given.
+if test "${with_override_jaxws+set}" = set; then :
+  withval=$with_override_jaxws;
+fi
+
+
+
+# Check whether --with-override-hotspot was given.
+if test "${with_override_hotspot+set}" = set; then :
+  withval=$with_override_hotspot;
+fi
+
+
+
+# Check whether --with-override-jdk was given.
+if test "${with_override_jdk+set}" = set; then :
+  withval=$with_override_jdk;
+fi
+
+
+if test "x$with_override_langtools" != x; then
+    CURDIR="$PWD"
+    cd "$with_override_langtools"
+    LANGTOOLS_TOPDIR="`pwd`"
+    cd "$CURDIR"
+    if ! test -f $LANGTOOLS_TOPDIR/makefiles/Makefile; then
+        as_fn_error $? "You have to override langtools with a full langtools repo!" "$LINENO" 5
+    fi
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if langtools should be overridden" >&5
+$as_echo_n "checking if langtools should be overridden... " >&6; }
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes with $LANGTOOLS_TOPDIR" >&5
+$as_echo "yes with $LANGTOOLS_TOPDIR" >&6; }
+fi
+if test "x$with_override_corba" != x; then
+    CURDIR="$PWD"
+    cd "$with_override_corba"
+    CORBA_TOPDIR="`pwd`"
+    cd "$CURDIR"
+    if ! test -f $CORBA_TOPDIR/makefiles/Makefile; then
+        as_fn_error $? "You have to override corba with a full corba repo!" "$LINENO" 5
+    fi
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if corba should be overridden" >&5
+$as_echo_n "checking if corba should be overridden... " >&6; }
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes with $CORBA_TOPDIR" >&5
+$as_echo "yes with $CORBA_TOPDIR" >&6; }
+fi
+if test "x$with_override_jaxp" != x; then
+    CURDIR="$PWD"
+    cd "$with_override_jaxp"
+    JAXP_TOPDIR="`pwd`"
+    cd "$CURDIR"
+    if ! test -f $JAXP_TOPDIR/makefiles/Makefile; then
+        as_fn_error $? "You have to override jaxp with a full jaxp repo!" "$LINENO" 5
+    fi
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if jaxp should be overridden" >&5
+$as_echo_n "checking if jaxp should be overridden... " >&6; }
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes with $JAXP_TOPDIR" >&5
+$as_echo "yes with $JAXP_TOPDIR" >&6; }
+fi
+if test "x$with_override_jaxws" != x; then
+    CURDIR="$PWD"
+    cd "$with_override_jaxws"
+    JAXWS_TOPDIR="`pwd`"
+    cd "$CURDIR"
+    if ! test -f $JAXWS_TOPDIR/makefiles/Makefile; then
+        as_fn_error $? "You have to override jaxws with a full jaxws repo!" "$LINENO" 5
+    fi
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if jaxws should be overridden" >&5
+$as_echo_n "checking if jaxws should be overridden... " >&6; }
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes with $JAXWS_TOPDIR" >&5
+$as_echo "yes with $JAXWS_TOPDIR" >&6; }
+fi
+if test "x$with_override_hotspot" != x; then
+    CURDIR="$PWD"
+    cd "$with_override_hotspot"
+    HOTSPOT_TOPDIR="`pwd`"
+    cd "$CURDIR"
+    if ! test -f $HOTSPOT_TOPDIR/make/Makefile && \
+       ! test -f $HOTSPOT_TOPDIR/makefiles/Makefile; then
+        as_fn_error $? "You have to override hotspot with a full hotspot repo!" "$LINENO" 5
+    fi
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if hotspot should be overridden" >&5
+$as_echo_n "checking if hotspot should be overridden... " >&6; }
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes with $HOTSPOT_TOPDIR" >&5
+$as_echo "yes with $HOTSPOT_TOPDIR" >&6; }
+fi
+if test "x$with_override_jdk" != x; then
+    CURDIR="$PWD"
+    cd "$with_override_jdk"
+    JDK_TOPDIR="`pwd`"
+    cd "$CURDIR"
+    if ! test -f $JDK_TOPDIR/makefiles/Makefile; then
+        as_fn_error $? "You have to override JDK with a full JDK repo!" "$LINENO" 5
+    fi
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if JDK should be overridden" >&5
+$as_echo_n "checking if JDK should be overridden... " >&6; }
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes with $JDK_TOPDIR" >&5
+$as_echo "yes with $JDK_TOPDIR" >&6; }
+fi
+
+###############################################################################
+#
+# Specify options for anything that is run with the Boot JDK.
+#
+
+# Check whether --with-boot-jdk-jvmargs was given.
+if test "${with_boot_jdk_jvmargs+set}" = set; then :
+  withval=$with_boot_jdk_jvmargs;
+fi
+
+
+if test "x$with_boot_jdk_jvmargs" = x; then
+    # Not all JVM:s accept the same arguments on the command line.
+    # OpenJDK specific increase in thread stack for JDK build,
+    # well more specifically, when running javac.
+    if test "x$BUILD_NUM_BITS" = x32; then
+       STACK_SIZE=768
+    else
+       # Running Javac on a JVM on a 64-bit machine, the stack takes more space
+       # since 64-bit pointers are pushed on the stach. Apparently, we need
+       # to increase the stack space when javacing the JDK....
+       STACK_SIZE=1536
+    fi
+
+    # Minimum amount of heap memory.
+
+    # Test if -Xms64M is a valid argument to $JAVA (often is $JAVA passed as $JAVA)
+    # If so, then append -Xms64M to boot_jdk_jvmargs
+    FOUND_WARN=`$JAVA -Xms64M -version 2>&1 | grep -i warn`
+    FOUND_VERSION=`$JAVA -Xms64M -version 2>&1 | grep " version \""`
+    if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
+        boot_jdk_jvmargs="$boot_jdk_jvmargs -Xms64M"
+    fi
+
+    if test "x$HOST_OS" = "xmacosx"; then
+        # Why does macosx need more heap? Its the huge JDK batch.
+
+    # Test if -Xmx1600M is a valid argument to $JAVA (often is $JAVA passed as $JAVA)
+    # If so, then append -Xmx1600M to boot_jdk_jvmargs
+    FOUND_WARN=`$JAVA -Xmx1600M -version 2>&1 | grep -i warn`
+    FOUND_VERSION=`$JAVA -Xmx1600M -version 2>&1 | grep " version \""`
+    if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
+        boot_jdk_jvmargs="$boot_jdk_jvmargs -Xmx1600M"
+    fi
+
+    else
+
+    # Test if -Xmx1100M is a valid argument to $JAVA (often is $JAVA passed as $JAVA)
+    # If so, then append -Xmx1100M to boot_jdk_jvmargs
+    FOUND_WARN=`$JAVA -Xmx1100M -version 2>&1 | grep -i warn`
+    FOUND_VERSION=`$JAVA -Xmx1100M -version 2>&1 | grep " version \""`
+    if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
+        boot_jdk_jvmargs="$boot_jdk_jvmargs -Xmx1100M"
+    fi
+
+    fi
+    # When is adding -client something that speeds up the JVM?
+    # ADD_JVM_ARG_IF_OK([-client],boot_jdk_jvmargs,[$JAVA])
+
+    # Test if -XX:PermSize=32m is a valid argument to $JAVA (often is $JAVA passed as $JAVA)
+    # If so, then append -XX:PermSize=32m to boot_jdk_jvmargs
+    FOUND_WARN=`$JAVA -XX:PermSize=32m -version 2>&1 | grep -i warn`
+    FOUND_VERSION=`$JAVA -XX:PermSize=32m -version 2>&1 | grep " version \""`
+    if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
+        boot_jdk_jvmargs="$boot_jdk_jvmargs -XX:PermSize=32m"
+    fi
+
+
+    # Test if -XX:MaxPermSize=160m is a valid argument to $JAVA (often is $JAVA passed as $JAVA)
+    # If so, then append -XX:MaxPermSize=160m to boot_jdk_jvmargs
+    FOUND_WARN=`$JAVA -XX:MaxPermSize=160m -version 2>&1 | grep -i warn`
+    FOUND_VERSION=`$JAVA -XX:MaxPermSize=160m -version 2>&1 | grep " version \""`
+    if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
+        boot_jdk_jvmargs="$boot_jdk_jvmargs -XX:MaxPermSize=160m"
+    fi
+
+
+    # Test if -XX:ThreadStackSize=$STACK_SIZE is a valid argument to $JAVA (often is $JAVA passed as $JAVA)
+    # If so, then append -XX:ThreadStackSize=$STACK_SIZE to boot_jdk_jvmargs
+    FOUND_WARN=`$JAVA -XX:ThreadStackSize=$STACK_SIZE -version 2>&1 | grep -i warn`
+    FOUND_VERSION=`$JAVA -XX:ThreadStackSize=$STACK_SIZE -version 2>&1 | grep " version \""`
+    if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
+        boot_jdk_jvmargs="$boot_jdk_jvmargs -XX:ThreadStackSize=$STACK_SIZE"
+    fi
+
+    # Disable special log output when a debug build is used as Boot JDK...
+
+    # Test if -XX:-PrintVMOptions -XX:-UnlockDiagnosticVMOptions -XX:-LogVMOutput is a valid argument to $JAVA (often is $JAVA passed as $JAVA)
+    # If so, then append -XX:-PrintVMOptions -XX:-UnlockDiagnosticVMOptions -XX:-LogVMOutput to boot_jdk_jvmargs
+    FOUND_WARN=`$JAVA -XX:-PrintVMOptions -XX:-UnlockDiagnosticVMOptions -XX:-LogVMOutput -version 2>&1 | grep -i warn`
+    FOUND_VERSION=`$JAVA -XX:-PrintVMOptions -XX:-UnlockDiagnosticVMOptions -XX:-LogVMOutput -version 2>&1 | grep " version \""`
+    if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
+        boot_jdk_jvmargs="$boot_jdk_jvmargs -XX:-PrintVMOptions -XX:-UnlockDiagnosticVMOptions -XX:-LogVMOutput"
+    fi
+
+fi
+
+BOOT_JDK_JVMARGS=$boot_jdk_jvmargs
+
+
+
+# Check whether --with-server-java was given.
+if test "${with_server_java+set}" = set; then :
+  withval=$with_server_java;
+fi
+
+
+if test "x$with_server_java" != x; then
+    SERVER_JAVA="$with_server_java"
+    FOUND_VERSION=`$SERVER_JAVA -version 2>&1 | grep " version \""`
+    if test "x$FOUND_VERSION" = x; then
+        as_fn_error $? "Could not execute server java: $SERVER_JAVA" "$LINENO" 5
+    fi
+else
+    SERVER_JAVA=""
+    # Hotspot specific options.
+
+    # Test if -XX:+UseParallelOldGC is a valid argument to $JAVA (often is $JAVA passed as $JAVA)
+    # If so, then append -XX:+UseParallelOldGC to SERVER_JAVA
+    FOUND_WARN=`$JAVA -XX:+UseParallelOldGC -version 2>&1 | grep -i warn`
+    FOUND_VERSION=`$JAVA -XX:+UseParallelOldGC -version 2>&1 | grep " version \""`
+    if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
+        SERVER_JAVA="$SERVER_JAVA -XX:+UseParallelOldGC"
+    fi
+
+
+    # Test if -verbosegc is a valid argument to $JAVA (often is $JAVA passed as $JAVA)
+    # If so, then append -verbosegc to SERVER_JAVA
+    FOUND_WARN=`$JAVA -verbosegc -version 2>&1 | grep -i warn`
+    FOUND_VERSION=`$JAVA -verbosegc -version 2>&1 | grep " version \""`
+    if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
+        SERVER_JAVA="$SERVER_JAVA -verbosegc"
+    fi
+
+    # JRockit specific options.
+
+    # Test if -Xverbose:gc is a valid argument to $JAVA (often is $JAVA passed as $JAVA)
+    # If so, then append -Xverbose:gc to SERVER_JAVA
+    FOUND_WARN=`$JAVA -Xverbose:gc -version 2>&1 | grep -i warn`
+    FOUND_VERSION=`$JAVA -Xverbose:gc -version 2>&1 | grep " version \""`
+    if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
+        SERVER_JAVA="$SERVER_JAVA -Xverbose:gc"
+    fi
+
+    SERVER_JAVA="$JAVA $SERVER_JAVA"
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use shared server for javac" >&5
+$as_echo_n "checking whether to use shared server for javac... " >&6; }
+# Check whether --enable-javac-server was given.
+if test "${enable_javac_server+set}" = set; then :
+  enableval=$enable_javac_server; ENABLE_JAVAC_SERVER="${enableval}"
+else
+  ENABLE_JAVAC_SERVER='no'
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ENABLE_JAVAC_SERVER" >&5
+$as_echo "$ENABLE_JAVAC_SERVER" >&6; }
+if test "x$ENABLE_JAVAC_SERVER" = xyes; then
+    JAVAC_USE_REMOTE=true
+    JAVAC_SERVERS="$OUTPUT_ROOT/javacservers"
+else
+    JAVAC_USE_REMOTE=false
+    JAVAC_SERVERS=
+fi
+
+
+
+
+# Check whether --with-javac-server-cores was given.
+if test "${with_javac_server_cores+set}" = set; then :
+  withval=$with_javac_server_cores;
+fi
+
+if test "x$with_javac_server_cores" != x; then
+    JAVAC_SERVER_CORES="$with_javac_server_cores"
+else
+    if test "$NUM_CORES" -gt 16; then
+        # We set this arbitrary limit because we want to limit the heap
+        # size of the javac server.
+        # In the future we will make the javac compilers in the server
+        # share more and more state, thus enabling us to use more and
+        # more concurrent threads in the server.
+        JAVAC_SERVER_CORES="16"
+    else
+        JAVAC_SERVER_CORES="$NUM_CORES"
+    fi
+
+    if test "$MEMORY_SIZE" -gt "17000"; then
+        MAX_HEAP_MEM=10000
+
+    # Test if -d64 is a valid argument to $SERVER_JAVA (often is $JAVA passed as $SERVER_JAVA)
+    # If so, then append -d64 to SERVER_JAVA
+    FOUND_WARN=`$SERVER_JAVA -d64 -version 2>&1 | grep -i warn`
+    FOUND_VERSION=`$SERVER_JAVA -d64 -version 2>&1 | grep " version \""`
+    if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
+        SERVER_JAVA="$SERVER_JAVA -d64"
+    fi
+
+
+    # Test if -Xms10G -Xmx10G is a valid argument to $SERVER_JAVA (often is $JAVA passed as $SERVER_JAVA)
+    # If so, then append -Xms10G -Xmx10G to SERVER_JAVA
+    FOUND_WARN=`$SERVER_JAVA -Xms10G -Xmx10G -version 2>&1 | grep -i warn`
+    FOUND_VERSION=`$SERVER_JAVA -Xms10G -Xmx10G -version 2>&1 | grep " version \""`
+    if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
+        SERVER_JAVA="$SERVER_JAVA -Xms10G -Xmx10G"
+    fi
+
+
+    # Test if -Xmn2G is a valid argument to $SERVER_JAVA (often is $JAVA passed as $SERVER_JAVA)
+    # If so, then append -Xmn2G to SERVER_JAVA
+    FOUND_WARN=`$SERVER_JAVA -Xmn2G -version 2>&1 | grep -i warn`
+    FOUND_VERSION=`$SERVER_JAVA -Xmn2G -version 2>&1 | grep " version \""`
+    if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
+        SERVER_JAVA="$SERVER_JAVA -Xmn2G"
+    fi
+
+    elif test "$MEMORY_SIZE" -gt "10000"; then
+        MAX_HEAP_MEM=6000
+
+    # Test if -d64 is a valid argument to $SERVER_JAVA (often is $JAVA passed as $SERVER_JAVA)
+    # If so, then append -d64 to SERVER_JAVA
+    FOUND_WARN=`$SERVER_JAVA -d64 -version 2>&1 | grep -i warn`
+    FOUND_VERSION=`$SERVER_JAVA -d64 -version 2>&1 | grep " version \""`
+    if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
+        SERVER_JAVA="$SERVER_JAVA -d64"
+    fi
+
+
+    # Test if -Xms6G -Xmx6G is a valid argument to $SERVER_JAVA (often is $JAVA passed as $SERVER_JAVA)
+    # If so, then append -Xms6G -Xmx6G to SERVER_JAVA
+    FOUND_WARN=`$SERVER_JAVA -Xms6G -Xmx6G -version 2>&1 | grep -i warn`
+    FOUND_VERSION=`$SERVER_JAVA -Xms6G -Xmx6G -version 2>&1 | grep " version \""`
+    if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
+        SERVER_JAVA="$SERVER_JAVA -Xms6G -Xmx6G"
+    fi
+
+
+    # Test if -Xmn1G is a valid argument to $SERVER_JAVA (often is $JAVA passed as $SERVER_JAVA)
+    # If so, then append -Xmn1G to SERVER_JAVA
+    FOUND_WARN=`$SERVER_JAVA -Xmn1G -version 2>&1 | grep -i warn`
+    FOUND_VERSION=`$SERVER_JAVA -Xmn1G -version 2>&1 | grep " version \""`
+    if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
+        SERVER_JAVA="$SERVER_JAVA -Xmn1G"
+    fi
+
+    elif test "$MEMORY_SIZE" -gt "5000"; then
+        MAX_HEAP_MEM=3000
+
+    # Test if -d64 is a valid argument to $SERVER_JAVA (often is $JAVA passed as $SERVER_JAVA)
+    # If so, then append -d64 to SERVER_JAVA
+    FOUND_WARN=`$SERVER_JAVA -d64 -version 2>&1 | grep -i warn`
+    FOUND_VERSION=`$SERVER_JAVA -d64 -version 2>&1 | grep " version \""`
+    if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
+        SERVER_JAVA="$SERVER_JAVA -d64"
+    fi
+
+
+    # Test if -Xms1G -Xmx3G is a valid argument to $SERVER_JAVA (often is $JAVA passed as $SERVER_JAVA)
+    # If so, then append -Xms1G -Xmx3G to SERVER_JAVA
+    FOUND_WARN=`$SERVER_JAVA -Xms1G -Xmx3G -version 2>&1 | grep -i warn`
+    FOUND_VERSION=`$SERVER_JAVA -Xms1G -Xmx3G -version 2>&1 | grep " version \""`
+    if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
+        SERVER_JAVA="$SERVER_JAVA -Xms1G -Xmx3G"
+    fi
+
+
+    # Test if -Xmn256M is a valid argument to $SERVER_JAVA (often is $JAVA passed as $SERVER_JAVA)
+    # If so, then append -Xmn256M to SERVER_JAVA
+    FOUND_WARN=`$SERVER_JAVA -Xmn256M -version 2>&1 | grep -i warn`
+    FOUND_VERSION=`$SERVER_JAVA -Xmn256M -version 2>&1 | grep " version \""`
+    if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
+        SERVER_JAVA="$SERVER_JAVA -Xmn256M"
+    fi
+
+    elif test "$MEMORY_SIZE" -gt "3800"; then
+        MAX_HEAP_MEM=2500
+
+    # Test if -Xms1G -Xmx2500M is a valid argument to $SERVER_JAVA (often is $JAVA passed as $SERVER_JAVA)
+    # If so, then append -Xms1G -Xmx2500M to SERVER_JAVA
+    FOUND_WARN=`$SERVER_JAVA -Xms1G -Xmx2500M -version 2>&1 | grep -i warn`
+    FOUND_VERSION=`$SERVER_JAVA -Xms1G -Xmx2500M -version 2>&1 | grep " version \""`
+    if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
+        SERVER_JAVA="$SERVER_JAVA -Xms1G -Xmx2500M"
+    fi
+
+
+    # Test if -Xmn256M is a valid argument to $SERVER_JAVA (often is $JAVA passed as $SERVER_JAVA)
+    # If so, then append -Xmn256M to SERVER_JAVA
+    FOUND_WARN=`$SERVER_JAVA -Xmn256M -version 2>&1 | grep -i warn`
+    FOUND_VERSION=`$SERVER_JAVA -Xmn256M -version 2>&1 | grep " version \""`
+    if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
+        SERVER_JAVA="$SERVER_JAVA -Xmn256M"
+    fi
+
+    elif test "$MEMORY_SIZE" -gt "1900"; then
+        MAX_HEAP_MEM=1200
+
+    # Test if -Xms700M -Xmx1200M is a valid argument to $SERVER_JAVA (often is $JAVA passed as $SERVER_JAVA)
+    # If so, then append -Xms700M -Xmx1200M to SERVER_JAVA
+    FOUND_WARN=`$SERVER_JAVA -Xms700M -Xmx1200M -version 2>&1 | grep -i warn`
+    FOUND_VERSION=`$SERVER_JAVA -Xms700M -Xmx1200M -version 2>&1 | grep " version \""`
+    if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
+        SERVER_JAVA="$SERVER_JAVA -Xms700M -Xmx1200M"
+    fi
+
+
+    # Test if -Xmn256M is a valid argument to $SERVER_JAVA (often is $JAVA passed as $SERVER_JAVA)
+    # If so, then append -Xmn256M to SERVER_JAVA
+    FOUND_WARN=`$SERVER_JAVA -Xmn256M -version 2>&1 | grep -i warn`
+    FOUND_VERSION=`$SERVER_JAVA -Xmn256M -version 2>&1 | grep " version \""`
+    if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
+        SERVER_JAVA="$SERVER_JAVA -Xmn256M"
+    fi
+
+    elif test "$MEMORY_SIZE" -gt "1000"; then
+        MAX_HEAP_MEM=900
+
+    # Test if -Xms400M -Xmx900M is a valid argument to $SERVER_JAVA (often is $JAVA passed as $SERVER_JAVA)
+    # If so, then append -Xms400M -Xmx900M to SERVER_JAVA
+    FOUND_WARN=`$SERVER_JAVA -Xms400M -Xmx900M -version 2>&1 | grep -i warn`
+    FOUND_VERSION=`$SERVER_JAVA -Xms400M -Xmx900M -version 2>&1 | grep " version \""`
+    if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
+        SERVER_JAVA="$SERVER_JAVA -Xms400M -Xmx900M"
+    fi
+
+
+    # Test if -Xmn128M is a valid argument to $SERVER_JAVA (often is $JAVA passed as $SERVER_JAVA)
+    # If so, then append -Xmn128M to SERVER_JAVA
+    FOUND_WARN=`$SERVER_JAVA -Xmn128M -version 2>&1 | grep -i warn`
+    FOUND_VERSION=`$SERVER_JAVA -Xmn128M -version 2>&1 | grep " version \""`
+    if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
+        SERVER_JAVA="$SERVER_JAVA -Xmn128M"
+    fi
+
+    else
+        MAX_HEAP_MEM=512
+
+    # Test if -Xms256M -Xmx512M is a valid argument to $SERVER_JAVA (often is $JAVA passed as $SERVER_JAVA)
+    # If so, then append -Xms256M -Xmx512M to SERVER_JAVA
+    FOUND_WARN=`$SERVER_JAVA -Xms256M -Xmx512M -version 2>&1 | grep -i warn`
+    FOUND_VERSION=`$SERVER_JAVA -Xms256M -Xmx512M -version 2>&1 | grep " version \""`
+    if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
+        SERVER_JAVA="$SERVER_JAVA -Xms256M -Xmx512M"
+    fi
+
+
+    # Test if -Xmn128M is a valid argument to $SERVER_JAVA (often is $JAVA passed as $SERVER_JAVA)
+    # If so, then append -Xmn128M to SERVER_JAVA
+    FOUND_WARN=`$SERVER_JAVA -Xmn128M -version 2>&1 | grep -i warn`
+    FOUND_VERSION=`$SERVER_JAVA -Xmn128M -version 2>&1 | grep " version \""`
+    if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
+        SERVER_JAVA="$SERVER_JAVA -Xmn128M"
+    fi
+
+    fi
+
+    MAX_COMPILERS_IN_HEAP=`expr $MAX_HEAP_MEM / 501`
+    if test "$JAVAC_SERVER_CORES" -gt "$MAX_COMPILERS_IN_HEAP"; then
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking if number of server cores must be reduced" >&5
+$as_echo_n "checking if number of server cores must be reduced... " >&6; }
+        JAVAC_SERVER_CORES="$MAX_COMPILERS_IN_HEAP"
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, to $JAVAC_SERVER_CORES with max heap size $MAX_HEAP_MEM MB" >&5
+$as_echo "yes, to $JAVAC_SERVER_CORES with max heap size $MAX_HEAP_MEM MB" >&6; }
+    fi
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to track dependencies between Java packages" >&5
+$as_echo_n "checking whether to track dependencies between Java packages... " >&6; }
+# Check whether --enable-javac-deps was given.
+if test "${enable_javac_deps+set}" = set; then :
+  enableval=$enable_javac_deps; ENABLE_JAVAC_DEPS="${enableval}"
+else
+  ENABLE_JAVAC_DEPS='no'
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ENABLE_JAVAC_DEPS" >&5
+$as_echo "$ENABLE_JAVAC_DEPS" >&6; }
+if test "x$ENABLE_JAVAC_DEPS" = xyes; then
+    JAVAC_USE_DEPS=true
+else
+    JAVAC_USE_DEPS=false
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use multiple cores for javac compilation" >&5
+$as_echo_n "checking whether to use multiple cores for javac compilation... " >&6; }
+# Check whether --enable-javac-multi-core was given.
+if test "${enable_javac_multi_core+set}" = set; then :
+  enableval=$enable_javac_multi_core; ENABLE_JAVAC_MULTICORE="${enableval}"
+else
+  ENABLE_JAVAC_MULTICORE='no'
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ENABLE_JAVAC_MULTICORE" >&5
+$as_echo "$ENABLE_JAVAC_MULTICORE" >&6; }
+if test "x$ENABLE_JAVAC_MULTICORE" = xyes; then
+    JAVAC_USE_MODE=MULTI_CORE_CONCURRENT
+else
+    JAVAC_USE_MODE=SINGLE_THREADED_BATCH
+    if test "x$ENABLE_JAVAC_DEPS" = xyes; then
+        { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Dependency tracking is not supported with single threaded batch compiles of Java source roots. Please add --disable-javac-deps to your configure options." >&5
+$as_echo "$as_me: WARNING: Dependency tracking is not supported with single threaded batch compiles of Java source roots. Please add --disable-javac-deps to your configure options." >&2;}
+        { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Disabling dependency tracking for you now." >&5
+$as_echo "$as_me: WARNING: Disabling dependency tracking for you now." >&2;}
+        JAVAC_USE_DEPS=false
+    fi
+    if test "x$ENABLE_JAVAC_SERVER" = xyes; then
+        { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: The javac server will not be used since single threaded batch compiles are run within their own JVM. Please add --disable-javac-server to your configure options." >&5
+$as_echo "$as_me: WARNING: The javac server will not be used since single threaded batch compiles are run within their own JVM. Please add --disable-javac-server to your configure options." >&2;}
+        { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Disabling javac server for you now." >&5
+$as_echo "$as_me: WARNING: Disabling javac server for you now." >&2;}
+        JAVAC_USE_REMOTE=false
+    fi
+fi
+
+
+###############################################################################
+#
+# OS specific settings that we never will need to probe.
+#
+if test "x$HOST_OS" = xlinux; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking what is not needed on Linux?" >&5
+$as_echo_n "checking what is not needed on Linux?... " >&6; }
+    PULSE_NOT_NEEDED=yes
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: pulse" >&5
+$as_echo "pulse" >&6; }
+fi
+
+if test "x$HOST_OS" = xsolaris; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking what is not needed on Solaris?" >&5
+$as_echo_n "checking what is not needed on Solaris?... " >&6; }
+    ALSA_NOT_NEEDED=yes
+    PULSE_NOT_NEEDED=yes
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: alsa pulse" >&5
+$as_echo "alsa pulse" >&6; }
+fi
+
+if test "x$HOST_OS" = xwindows; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking what is not needed on Windows?" >&5
+$as_echo_n "checking what is not needed on Windows?... " >&6; }
+    CUPS_NOT_NEEDED=yes
+    ALSA_NOT_NEEDED=yes
+    PULSE_NOT_NEEDED=yes
+    X11_NOT_NEEDED=yes
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: alsa cups pulse x11" >&5
+$as_echo "alsa cups pulse x11" >&6; }
+fi
+
+if test "x$HOST_OS" = xmacosx; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking what is not needed on MacOSX?" >&5
+$as_echo_n "checking what is not needed on MacOSX?... " >&6; }
+    ALSA_NOT_NEEDED=yes
+    PULSE_NOT_NEEDED=yes
+    X11_NOT_NEEDED=yes
+    FREETYPE2_NOT_NEEDED=yes
+    # If the java runtime framework is disabled, then we need X11.
+    # This will be adjusted below.
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: alsa pulse x11" >&5
+$as_echo "alsa pulse x11" >&6; }
+fi
+
+if test "x$HOST_OS" = xbsd; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking what is not needed on bsd?" >&5
+$as_echo_n "checking what is not needed on bsd?... " >&6; }
+    ALSA_NOT_NEEDED=yes
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: alsa" >&5
+$as_echo "alsa" >&6; }
+fi
+
+###############################################################################
+#
+# Check for MacOSX support for OpenJDK. If this exists, try to build a JVM
+# that uses this API.
+#
+# Check whether --enable-macosx-runtime-support was given.
+if test "${enable_macosx_runtime_support+set}" = set; then :
+  enableval=$enable_macosx_runtime_support; MACOSX_RUNTIME_SUPPORT="${enableval}"
+else
+  MACOSX_RUNTIME_SUPPORT="no"
+fi
+
+
+USE_MACOSX_RUNTIME_SUPPORT=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for explicit Java runtime support in the OS" >&5
+$as_echo_n "checking for explicit Java runtime support in the OS... " >&6; }
+if test -f /System/Library/Frameworks/JavaVM.framework/Frameworks/JavaRuntimeSupport.framework/Headers/JavaRuntimeSupport.h; then
+    if test "x$MACOSX_RUNTIME_SUPPORT" != xno; then
+        MACOSX_RUNTIME_SUPPORT=yes
+        USE_MACOSX_RUNTIME_SUPPORT=yes
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, does not need alsa freetype2 pulse and X11" >&5
+$as_echo "yes, does not need alsa freetype2 pulse and X11" >&6; }
+    else
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, but explicitly disabled." >&5
+$as_echo "yes, but explicitly disabled." >&6; }
+    fi
+else
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+if test "x$HOST_OS" = xmacosx && test "x$USE_MACOSX_RUNTIME_SUPPORT" = xno; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking what is not needed on an X11 build on MacOSX?" >&5
+$as_echo_n "checking what is not needed on an X11 build on MacOSX?... " >&6; }
+    X11_NOT_NEEDED=
+    FREETYPE2_NOT_NEEDED=
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: alsa pulse" >&5
+$as_echo "alsa pulse" >&6; }
+fi
+
+###############################################################################
+#
+# Check for X Windows
+#
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for X" >&5
+$as_echo_n "checking for X... " >&6; }
+
+
+# Check whether --with-x was given.
+if test "${with_x+set}" = set; then :
+  withval=$with_x;
+fi
+
+# $have_x is `yes', `no', `disabled', or empty when we do not yet know.
+if test "x$with_x" = xno; then
+  # The user explicitly disabled X.
+  have_x=disabled
+else
+  case $x_includes,$x_libraries in #(
+    *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5 ;; #(
+    *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  # One or both of the vars are not set, and there is no cached value.
+ac_x_includes=no ac_x_libraries=no
+rm -f -r conftest.dir
+if mkdir conftest.dir; then
+  cd conftest.dir
+  cat >Imakefile <<'_ACEOF'
+incroot:
+	@echo incroot='${INCROOT}'
+usrlibdir:
+	@echo usrlibdir='${USRLIBDIR}'
+libdir:
+	@echo libdir='${LIBDIR}'
+_ACEOF
+  if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then
+    # GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
+    for ac_var in incroot usrlibdir libdir; do
+      eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`"
+    done
+    # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR.
+    for ac_extension in a so sl dylib la dll; do
+      if test ! -f "$ac_im_usrlibdir/libX11.$ac_extension" &&
+	 test -f "$ac_im_libdir/libX11.$ac_extension"; then
+	ac_im_usrlibdir=$ac_im_libdir; break
+      fi
+    done
+    # Screen out bogus values from the imake configuration.  They are
+    # bogus both because they are the default anyway, and because
+    # using them would break gcc on systems where it needs fixed includes.
+    case $ac_im_incroot in
+	/usr/include) ac_x_includes= ;;
+	*) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;;
+    esac
+    case $ac_im_usrlibdir in
+	/usr/lib | /usr/lib64 | /lib | /lib64) ;;
+	*) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;;
+    esac
+  fi
+  cd ..
+  rm -f -r conftest.dir
+fi
+
+# Standard set of common directories for X headers.
+# Check X11 before X11Rn because it is often a symlink to the current release.
+ac_x_header_dirs='
+/usr/X11/include
+/usr/X11R7/include
+/usr/X11R6/include
+/usr/X11R5/include
+/usr/X11R4/include
+
+/usr/include/X11
+/usr/include/X11R7
+/usr/include/X11R6
+/usr/include/X11R5
+/usr/include/X11R4
+
+/usr/local/X11/include
+/usr/local/X11R7/include
+/usr/local/X11R6/include
+/usr/local/X11R5/include
+/usr/local/X11R4/include
+
+/usr/local/include/X11
+/usr/local/include/X11R7
+/usr/local/include/X11R6
+/usr/local/include/X11R5
+/usr/local/include/X11R4
+
+/usr/X386/include
+/usr/x386/include
+/usr/XFree86/include/X11
+
+/usr/include
+/usr/local/include
+/usr/unsupported/include
+/usr/athena/include
+/usr/local/x11r5/include
+/usr/lpp/Xamples/include
+
+/usr/openwin/include
+/usr/openwin/share/include'
+
+if test "$ac_x_includes" = no; then
+  # Guess where to find include files, by looking for Xlib.h.
+  # First, try using that file with no special directory specified.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <X11/Xlib.h>
+_ACEOF
+if ac_fn_cxx_try_cpp "$LINENO"; then :
+  # We can compile using X headers with no special include directory.
+ac_x_includes=
+else
+  for ac_dir in $ac_x_header_dirs; do
+  if test -r "$ac_dir/X11/Xlib.h"; then
+    ac_x_includes=$ac_dir
+    break
+  fi
+done
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+fi # $ac_x_includes = no
+
+if test "$ac_x_libraries" = no; then
+  # Check for the libraries.
+  # See if we find them without any special options.
+  # Don't add to $LIBS permanently.
+  ac_save_LIBS=$LIBS
+  LIBS="-lX11 $LIBS"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <X11/Xlib.h>
+int
+main ()
+{
+XrmInitialize ()
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+  LIBS=$ac_save_LIBS
+# We can link X programs with no special library path.
+ac_x_libraries=
+else
+  LIBS=$ac_save_LIBS
+for ac_dir in `$as_echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g`
+do
+  # Don't even attempt the hair of trying to link an X program!
+  for ac_extension in a so sl dylib la dll; do
+    if test -r "$ac_dir/libX11.$ac_extension"; then
+      ac_x_libraries=$ac_dir
+      break 2
+    fi
+  done
+done
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+fi # $ac_x_libraries = no
+
+case $ac_x_includes,$ac_x_libraries in #(
+  no,* | *,no | *\'*)
+    # Didn't find X, or a directory has "'" in its name.
+    ac_cv_have_x="have_x=no";; #(
+  *)
+    # Record where we found X for the cache.
+    ac_cv_have_x="have_x=yes\
+	ac_x_includes='$ac_x_includes'\
+	ac_x_libraries='$ac_x_libraries'"
+esac
+fi
+;; #(
+    *) have_x=yes;;
+  esac
+  eval "$ac_cv_have_x"
+fi # $with_x != no
+
+if test "$have_x" != yes; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_x" >&5
+$as_echo "$have_x" >&6; }
+  no_x=yes
+else
+  # If each of the values was on the command line, it overrides each guess.
+  test "x$x_includes" = xNONE && x_includes=$ac_x_includes
+  test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries
+  # Update the cache value to reflect the command line values.
+  ac_cv_have_x="have_x=yes\
+	ac_x_includes='$x_includes'\
+	ac_x_libraries='$x_libraries'"
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: libraries $x_libraries, headers $x_includes" >&5
+$as_echo "libraries $x_libraries, headers $x_includes" >&6; }
+fi
+
+if test "$no_x" = yes; then
+  # Not all programs may use this symbol, but it does not hurt to define it.
+
+$as_echo "#define X_DISPLAY_MISSING 1" >>confdefs.h
+
+  X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS=
+else
+  if test -n "$x_includes"; then
+    X_CFLAGS="$X_CFLAGS -I$x_includes"
+  fi
+
+  # It would also be nice to do this for all -L options, not just this one.
+  if test -n "$x_libraries"; then
+    X_LIBS="$X_LIBS -L$x_libraries"
+    # For Solaris; some versions of Sun CC require a space after -R and
+    # others require no space.  Words are not sufficient . . . .
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -R must be followed by a space" >&5
+$as_echo_n "checking whether -R must be followed by a space... " >&6; }
+    ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries"
+    ac_xsave_cxx_werror_flag=$ac_cxx_werror_flag
+    ac_cxx_werror_flag=yes
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+       X_LIBS="$X_LIBS -R$x_libraries"
+else
+  LIBS="$ac_xsave_LIBS -R $x_libraries"
+       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+	  X_LIBS="$X_LIBS -R $x_libraries"
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: neither works" >&5
+$as_echo "neither works" >&6; }
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+    ac_cxx_werror_flag=$ac_xsave_cxx_werror_flag
+    LIBS=$ac_xsave_LIBS
+  fi
+
+  # Check for system-dependent libraries X programs must link with.
+  # Do this before checking for the system-independent R6 libraries
+  # (-lICE), since we may need -lsocket or whatever for X linking.
+
+  if test "$ISC" = yes; then
+    X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet"
+  else
+    # Martyn Johnson says this is needed for Ultrix, if the X
+    # libraries were built with DECnet support.  And Karl Berry says
+    # the Alpha needs dnet_stub (dnet does not exist).
+    ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11"
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char XOpenDisplay ();
+int
+main ()
+{
+return XOpenDisplay ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet" >&5
+$as_echo_n "checking for dnet_ntoa in -ldnet... " >&6; }
+if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldnet  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dnet_ntoa ();
+int
+main ()
+{
+return dnet_ntoa ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+  ac_cv_lib_dnet_dnet_ntoa=yes
+else
+  ac_cv_lib_dnet_dnet_ntoa=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_dnet_ntoa" >&5
+$as_echo "$ac_cv_lib_dnet_dnet_ntoa" >&6; }
+if test "x$ac_cv_lib_dnet_dnet_ntoa" = x""yes; then :
+  X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet"
+fi
+
+    if test $ac_cv_lib_dnet_dnet_ntoa = no; then
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet_stub" >&5
+$as_echo_n "checking for dnet_ntoa in -ldnet_stub... " >&6; }
+if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldnet_stub  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dnet_ntoa ();
+int
+main ()
+{
+return dnet_ntoa ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+  ac_cv_lib_dnet_stub_dnet_ntoa=yes
+else
+  ac_cv_lib_dnet_stub_dnet_ntoa=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5
+$as_echo "$ac_cv_lib_dnet_stub_dnet_ntoa" >&6; }
+if test "x$ac_cv_lib_dnet_stub_dnet_ntoa" = x""yes; then :
+  X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"
+fi
+
+    fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+    LIBS="$ac_xsave_LIBS"
+
+    # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT,
+    # to get the SysV transport functions.
+    # Chad R. Larson says the Pyramis MIS-ES running DC/OSx (SVR4)
+    # needs -lnsl.
+    # The nsl library prevents programs from opening the X display
+    # on Irix 5.2, according to T.E. Dickey.
+    # The functions gethostbyname, getservbyname, and inet_addr are
+    # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking.
+    ac_fn_cxx_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname"
+if test "x$ac_cv_func_gethostbyname" = x""yes; then :
+
+fi
+
+    if test $ac_cv_func_gethostbyname = no; then
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5
+$as_echo_n "checking for gethostbyname in -lnsl... " >&6; }
+if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lnsl  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char gethostbyname ();
+int
+main ()
+{
+return gethostbyname ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+  ac_cv_lib_nsl_gethostbyname=yes
+else
+  ac_cv_lib_nsl_gethostbyname=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5
+$as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; }
+if test "x$ac_cv_lib_nsl_gethostbyname" = x""yes; then :
+  X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl"
+fi
+
+      if test $ac_cv_lib_nsl_gethostbyname = no; then
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lbsd" >&5
+$as_echo_n "checking for gethostbyname in -lbsd... " >&6; }
+if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lbsd  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char gethostbyname ();
+int
+main ()
+{
+return gethostbyname ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+  ac_cv_lib_bsd_gethostbyname=yes
+else
+  ac_cv_lib_bsd_gethostbyname=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_gethostbyname" >&5
+$as_echo "$ac_cv_lib_bsd_gethostbyname" >&6; }
+if test "x$ac_cv_lib_bsd_gethostbyname" = x""yes; then :
+  X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd"
+fi
+
+      fi
+    fi
+
+    # lieder@skyler.mavd.honeywell.com says without -lsocket,
+    # socket/setsockopt and other routines are undefined under SCO ODT
+    # 2.0.  But -lsocket is broken on IRIX 5.2 (and is not necessary
+    # on later versions), says Simon Leinen: it contains gethostby*
+    # variants that don't use the name server (or something).  -lsocket
+    # must be given before -lnsl if both are needed.  We assume that
+    # if connect needs -lnsl, so does gethostbyname.
+    ac_fn_cxx_check_func "$LINENO" "connect" "ac_cv_func_connect"
+if test "x$ac_cv_func_connect" = x""yes; then :
+
+fi
+
+    if test $ac_cv_func_connect = no; then
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in -lsocket" >&5
+$as_echo_n "checking for connect in -lsocket... " >&6; }
+if test "${ac_cv_lib_socket_connect+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char connect ();
+int
+main ()
+{
+return connect ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+  ac_cv_lib_socket_connect=yes
+else
+  ac_cv_lib_socket_connect=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_connect" >&5
+$as_echo "$ac_cv_lib_socket_connect" >&6; }
+if test "x$ac_cv_lib_socket_connect" = x""yes; then :
+  X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS"
+fi
+
+    fi
+
+    # Guillermo Gomez says -lposix is necessary on A/UX.
+    ac_fn_cxx_check_func "$LINENO" "remove" "ac_cv_func_remove"
+if test "x$ac_cv_func_remove" = x""yes; then :
+
+fi
+
+    if test $ac_cv_func_remove = no; then
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for remove in -lposix" >&5
+$as_echo_n "checking for remove in -lposix... " >&6; }
+if test "${ac_cv_lib_posix_remove+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lposix  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char remove ();
+int
+main ()
+{
+return remove ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+  ac_cv_lib_posix_remove=yes
+else
+  ac_cv_lib_posix_remove=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix_remove" >&5
+$as_echo "$ac_cv_lib_posix_remove" >&6; }
+if test "x$ac_cv_lib_posix_remove" = x""yes; then :
+  X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix"
+fi
+
+    fi
+
+    # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
+    ac_fn_cxx_check_func "$LINENO" "shmat" "ac_cv_func_shmat"
+if test "x$ac_cv_func_shmat" = x""yes; then :
+
+fi
+
+    if test $ac_cv_func_shmat = no; then
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shmat in -lipc" >&5
+$as_echo_n "checking for shmat in -lipc... " >&6; }
+if test "${ac_cv_lib_ipc_shmat+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lipc  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char shmat ();
+int
+main ()
+{
+return shmat ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+  ac_cv_lib_ipc_shmat=yes
+else
+  ac_cv_lib_ipc_shmat=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ipc_shmat" >&5
+$as_echo "$ac_cv_lib_ipc_shmat" >&6; }
+if test "x$ac_cv_lib_ipc_shmat" = x""yes; then :
+  X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc"
+fi
+
+    fi
+  fi
+
+  # Check for libraries that X11R6 Xt/Xaw programs need.
+  ac_save_LDFLAGS=$LDFLAGS
+  test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries"
+  # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to
+  # check for ICE first), but we must link in the order -lSM -lICE or
+  # we get undefined symbols.  So assume we have SM if we have ICE.
+  # These have to be linked with before -lX11, unlike the other
+  # libraries we check for below, so use a different variable.
+  # John Interrante, Karl Berry
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IceConnectionNumber in -lICE" >&5
+$as_echo_n "checking for IceConnectionNumber in -lICE... " >&6; }
+if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lICE $X_EXTRA_LIBS $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char IceConnectionNumber ();
+int
+main ()
+{
+return IceConnectionNumber ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+  ac_cv_lib_ICE_IceConnectionNumber=yes
+else
+  ac_cv_lib_ICE_IceConnectionNumber=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5
+$as_echo "$ac_cv_lib_ICE_IceConnectionNumber" >&6; }
+if test "x$ac_cv_lib_ICE_IceConnectionNumber" = x""yes; then :
+  X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE"
+fi
+
+  LDFLAGS=$ac_save_LDFLAGS
+
+fi
+
+
+if test "x$no_x" = xyes && test "x$X11_NOT_NEEDED" != xyes; then
+    help_on_build_dependency x11
+    as_fn_error $? "Could not find X11 libraries. $HELP_MSG" "$LINENO" 5
+fi
+
+
+
+
+# Some of the old makefiles require a setting of OPENWIN_HOME
+# Since the X11R6 directory has disappeared on later Linuxes,
+# we need to probe for it.
+if test "x$HOST_OS" = xlinux; then
+    if test -d "$SYS_ROOT/usr/X11R6"; then
+        OPENWIN_HOME="$SYS_ROOT/usr/X11R6"
+    fi
+    if test -d "$SYS_ROOT/usr/include/X11"; then
+        OPENWIN_HOME="$SYS_ROOT/usr"
+    fi
+fi
+if test "x$HOST_OS" = xsolaris; then
+    OPENWIN_HOME="/usr/openwin"
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+OLD_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS $X_CFLAGS"
+
+
+for ac_header in X11/extensions/shape.h X11/extensions/Xrender.h X11/extensions/XTest.h
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+ X11_A_OK=yes
+else
+  X11_A_OK=no
+fi
+
+done
+
+CFLAGS="$OLD_CFLAGS"
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+
+if test "x$X11_A_OK" = xno && test "x$X11_NOT_NEEDED" != xyes; then
+    help_on_build_dependency x11
+    as_fn_error $? "Could not find all X11 headers (shape.h Xrender.h XTest.h). $HELP_MSG" "$LINENO" 5
+fi
+
+###############################################################################
+#
+# The common unix printing system cups is used to print from java.
+#
+
+# Check whether --with-cups was given.
+if test "${with_cups+set}" = set; then :
+  withval=$with_cups;
+fi
+
+
+# Check whether --with-cups-include was given.
+if test "${with_cups_include+set}" = set; then :
+  withval=$with_cups_include;
+fi
+
+
+# Check whether --with-cups-lib was given.
+if test "${with_cups_lib+set}" = set; then :
+  withval=$with_cups_lib;
+fi
+
+
+if test "x$CUPS_NOT_NEEDED" = xyes; then
+	if test "x$with_cups" != x || test "x$with_cups-include" != x || test "x$with_cups-lib" != x; then
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cups not used, so --with-cups is ignored" >&5
+$as_echo "$as_me: WARNING: cups not used, so --with-cups is ignored" >&2;}
+	fi
+	CUPS_CFLAGS=
+	CUPS_LIBS=
+else
+	CUPS_FOUND=no
+
+	if test "x$with_cups" = xno || test "x$with_cups-include" = xno || test "x$with_cups-lib" = xno; then
+	    as_fn_error $? "It is not possible to disable the use of cups. Remove the --without-cups option." "$LINENO" 5
+	fi
+
+	if test "x$with_cups" != x; then
+	    CUPS_LIBS="-L$with_cups/lib -lcups"
+	    CUPS_CFLAGS="-I$with_cups/include"
+	    CUPS_FOUND=yes
+	fi
+	if test "x$with_cups-include" != x; then
+	    CUPS_CFLAGS="-I$with_cups-include"
+	    CUPS_FOUND=yes
+	fi
+	if test "x$with_cups-lib" != x; then
+	    CUPS_LIBS="-L$with_cups-lib -lcups"
+	    CUPS_FOUND=yes
+	fi
+	if test "x$CUPS_FOUND" = xno; then
+
+
+    if test "x$with_builddeps_server" != x || test "x$with_builddeps_conf" != x; then
+        # Source the builddeps file again, to make sure it uses the latest variables!
+        . $builddepsfile
+        # Look for a host and build machine specific resource!
+        eval resource=\${builddep_cups_BUILD_${rewritten_build_var}_HOST_${rewritten_host_var}}
+        if test "x$resource" = x; then
+            # Ok, lets instead look for a host specific resource
+            eval resource=\${builddep_cups_HOST_${rewritten_host_var}}
+        fi
+        if test "x$resource" = x; then
+            # Ok, lets instead look for a build specific resource
+            eval resource=\${builddep_cups_BUILD_${rewritten_build_var}}
+        fi
+        if test "x$resource" = x; then
+            # Ok, lets instead look for a generic resource
+            # (The cups comes from M4 and not the shell, thus no need for eval here.)
+            resource=${builddep_cups}
+        fi
+        if test "x$resource" != x; then
+            { $as_echo "$as_me:${as_lineno-$LINENO}: Using builddeps $resource for cups" >&5
+$as_echo "$as_me: Using builddeps $resource for cups" >&6;}
+	    # If the resource in the builddeps.conf file is an existing directory,
+	    # for example /java/linux/cups
+	    if test -d ${resource}; then
+	       depdir=${resource}
+	    else
+
+# cups is for example mymodule
+# $resource is for example libs/general/libmymod_1_2_3.zip
+# $with_builddeps_server is for example ftp://mybuilddeps.myserver.com/builddeps
+# $with_builddeps_dir is for example /localhome/builddeps
+# depdir is the name of the variable into which we store the depdir, eg MYMOD
+# Will download ftp://mybuilddeps.myserver.com/builddeps/libs/general/libmymod_1_2_3.zip and
+# unzip into the directory: /localhome/builddeps/libmymod_1_2_3
+    filename=`basename $resource`
+    filebase=`echo $filename | sed 's/\.[^\.]*$//'`
+    filebase=${filename%%.*}
+    extension=${filename#*.}
+    installdir=$with_builddeps_dir/$filebase
+    if test ! -f $installdir/$filename.unpacked; then
+        { $as_echo "$as_me:${as_lineno-$LINENO}: Downloading build dependency cups from $with_builddeps_server/$resource and installing into $installdir" >&5
+$as_echo "$as_me: Downloading build dependency cups from $with_builddeps_server/$resource and installing into $installdir" >&6;}
+        if test ! -d $installdir; then
+            mkdir -p $installdir
+        fi
+        if test ! -d $installdir; then
+            as_fn_error $? "Could not create directory $installdir" "$LINENO" 5
+        fi
+        tmpfile=`mktemp $installdir/cups.XXXXXXXXX`
+        touch $tmpfile
+        if test ! -f $tmpfile; then
+            as_fn_error $? "Could not create files in directory $installdir" "$LINENO" 5
+        fi
+
+    # $with_builddeps_server/$resource  is the ftp://abuilddeps.server.com/libs/cups.zip
+    # $tmpfile is the local file name for the downloaded file.
+    VALID_TOOL=no
+    if test "x$BDEPS_FTP" = xwget; then
+       VALID_TOOL=yes
+       wget -O $tmpfile $with_builddeps_server/$resource
+    fi
+    if test "x$BDEPS_FTP" = xlftp; then
+       VALID_TOOL=yes
+       lftp -c "get $with_builddeps_server/$resource  -o $tmpfile"
+    fi
+    if test "x$BDEPS_FTP" = xftp; then
+        VALID_TOOL=yes
+        FTPSERVER=`echo $with_builddeps_server/$resource  | cut -f 3 -d '/'`
+        FTPPATH=`echo $with_builddeps_server/$resource  | cut -f 4- -d '/'`
+        FTPUSERPWD=${FTPSERVER%%@*}
+        if test "x$FTPSERVER" != "x$FTPUSERPWD"; then
+            FTPUSER=${userpwd%%:*}
+            FTPPWD=${userpwd#*@}
+            FTPSERVER=${FTPSERVER#*@}
+        else
+            FTPUSER=ftp
+            FTPPWD=ftp
+        fi
+        # the "pass" command does not work on some
+        # ftp clients (read ftp.exe) but if it works,
+        # passive mode is better!
+        (\
+            echo "user $FTPUSER $FTPPWD"        ;\
+            echo "pass"                         ;\
+            echo "bin"                          ;\
+            echo "get $FTPPATH $tmpfile"              ;\
+        ) | ftp -in $FTPSERVER
+    fi
+    if test "x$VALID_TOOL" != xyes; then
+       as_fn_error $? "I do not know how to use the tool: $BDEPS_FTP" "$LINENO" 5
+    fi
+
+        mv $tmpfile $installdir/$filename
+        if test ! -s $installdir/$filename; then
+            as_fn_error $? "Could not download $with_builddeps_server/$resource" "$LINENO" 5
+        fi
+        case "$extension" in
+            zip)  echo "Unzipping $installdir/$filename..."
+               (cd $installdir ; rm -f $installdir/$filename.unpacked ; $BDEPS_UNZIP $installdir/$filename > /dev/null && touch $installdir/$filename.unpacked)
+            ;;
+            tar.gz) echo "Untaring $installdir/$filename..."
+               (cd $installdir ; rm -f $installdir/$filename.unpacked ; tar xzf $installdir/$filename && touch $installdir/$filename.unpacked)
+            ;;
+            tgz) echo "Untaring $installdir/$filename..."
+               (cd $installdir ; rm -f $installdir/$filename.unpacked ; tar xzf $installdir/$filename && touch $installdir/$filename.unpacked)
+            ;;
+            *) as_fn_error $? "Cannot handle build depency archive with extension $extension" "$LINENO" 5
+            ;;
+        esac
+    fi
+    if test -f $installdir/$filename.unpacked; then
+        depdir=$installdir
+    fi
+
+	    fi
+            # Source the builddeps file again, because in the previous command, the depdir
+            # was updated to point at the current build dependency install directory.
+            . $builddepsfile
+            # Now extract variables from the builddeps.conf files.
+            theroot=${builddep_cups_ROOT}
+            thecflags=${builddep_cups_CFLAGS}
+            thelibs=${builddep_cups_LIBS}
+            if test "x$depdir" = x; then
+                as_fn_error $? "Could not download build dependency cups" "$LINENO" 5
+            fi
+            CUPS=$depdir
+            if test "x$theroot" != x; then
+               CUPS="$theroot"
+            fi
+            if test "x$thecflags" != x; then
+               CUPS_CFLAGS="$thecflags"
+            fi
+            if test "x$thelibs" != x; then
+               CUPS_LIBS="$thelibs"
+            fi
+            CUPS_FOUND=yes
+
+        fi
+
+    fi
+
+	fi
+	if test "x$CUPS_FOUND" = xno; then
+	    # Are the cups headers installed in the default /usr/include location?
+	    for ac_header in cups/cups.h cups/ppd.h
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_cxx_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+ CUPS_FOUND=yes
+	                      CUPS_CFLAGS=
+	                      CUPS_LIBS="-lcups"
+	                      DEFAULT_CUPS=yes
+fi
+
+done
+
+	fi
+	if test "x$CUPS_FOUND" = xno; then
+	    # Getting nervous now? Lets poke around for standard Solaris third-party
+	    # package installation locations.
+	    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cups headers and libs" >&5
+$as_echo_n "checking for cups headers and libs... " >&6; }
+	    if test -s /opt/sfw/cups/include/cups/cups.h; then
+	       # An SFW package seems to be installed!
+	       CUPS_FOUND=yes
+	       CUPS_CFLAGS="-I/opt/sfw/cups/include"
+	       CUPS_LIBS="-L/opt/sfw/cups/lib -lcups"
+	    elif test -s /opt/csw/include/cups/cups.h; then
+	       # A CSW package seems to be installed!
+	       CUPS_FOUND=yes
+	       CUPS_CFLAGS="-I/opt/csw/include"
+	       CUPS_LIBS="-L/opt/csw/lib -lcups"
+	    fi
+	    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CUPS_FOUND" >&5
+$as_echo "$CUPS_FOUND" >&6; }
+	fi
+	if test "x$CUPS_FOUND" = xno; then
+	    help_on_build_dependency cups
+	    as_fn_error $? "Could not find cups! $HELP_MSG " "$LINENO" 5
+	fi
+fi
+
+
+
+
+###############################################################################
+#
+# The ubiquitous freetype2 library is used to render fonts.
+#
+
+# Check whether --with-freetype was given.
+if test "${with_freetype+set}" = set; then :
+  withval=$with_freetype;
+fi
+
+
+# If we are using the OS installed system lib for freetype, then we do not need to copy it to the build tree
+USING_SYSTEM_FT_LIB=false
+
+if test "x$FREETYPE2_NOT_NEEDED" = xyes; then
+	if test "x$with_freetype" != x || test "x$with_freetype_include" != x || test "x$with_freetype_lib" != x; then
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: freetype not used, so --with-freetype is ignored" >&5
+$as_echo "$as_me: WARNING: freetype not used, so --with-freetype is ignored" >&2;}
+	fi
+	FREETYPE2_CFLAGS=
+	FREETYPE2_LIBS=
+        FREETYPE2_LIB_PATH=
+else
+	FREETYPE2_FOUND=no
+
+	if test "x$with_freetype" != x; then
+
+    # Fail with message the path to freetype if var with_freetype contains a path with no spaces in it.
+    # Unless on Windows, where we can rewrite the path.
+    HAS_SPACE=`echo "$with_freetype" | grep " "`
+    if test "x$HAS_SPACE" != x; then
+        if test "x$BUILD_OS" = "xwindows"; then
+            with_freetype=`$CYGPATH -s -m -a "$with_freetype"`
+            with_freetype=`$CYGPATH -u "$with_freetype"`
+        else
+            as_fn_error $? "You cannot have spaces in the path to freetype! \"$with_freetype\"" "$LINENO" 5
+        fi
+    fi
+
+	    FREETYPE2_LIBS="-L$with_freetype/lib -lfreetype"
+            if test "x$HOST_OS" = xwindows; then
+                FREETYPE2_LIBS="$with_freetype/lib/freetype.lib"
+            fi
+            FREETYPE2_LIB_PATH="$with_freetype/lib"
+	    FREETYPE2_CFLAGS="-I$with_freetype/include"
+            if test -s $with_freetype/include/ft2build.h && test -d $with_freetype/include/freetype2/freetype; then
+                FREETYPE2_CFLAGS="-I$with_freetype/include/freetype2 -I$with_freetype/include"
+            fi
+	    FREETYPE2_FOUND=yes
+   	    if test "x$FREETYPE2_FOUND" = xyes; then
+	        # Verify that the directories exist
+                if ! test -d "$with_freetype/lib" || ! test -d "$with_freetype/include"; then
+		   as_fn_error $? "Could not find the expected directories $with_freetype/lib and $with_freetype/include" "$LINENO" 5
+		fi
+	        # List the contents of the lib.
+		FREETYPELIB=`ls $with_freetype/lib/libfreetype.so $with_freetype/lib/freetype.dll 2> /dev/null`
+                if test "x$FREETYPELIB" = x; then
+		   as_fn_error $? "Could not find libfreetype.se nor freetype.dll in $with_freetype/lib" "$LINENO" 5
+		fi
+	        # Check one h-file
+                if ! test -s "$with_freetype/include/ft2build.h"; then
+		   as_fn_error $? "Could not find $with_freetype/include/ft2build.h" "$LINENO" 5
+		fi
+            fi
+        fi
+	if test "x$FREETYPE2_FOUND" = xno; then
+
+
+    if test "x$with_builddeps_server" != x || test "x$with_builddeps_conf" != x; then
+        # Source the builddeps file again, to make sure it uses the latest variables!
+        . $builddepsfile
+        # Look for a host and build machine specific resource!
+        eval resource=\${builddep_freetype2_BUILD_${rewritten_build_var}_HOST_${rewritten_host_var}}
+        if test "x$resource" = x; then
+            # Ok, lets instead look for a host specific resource
+            eval resource=\${builddep_freetype2_HOST_${rewritten_host_var}}
+        fi
+        if test "x$resource" = x; then
+            # Ok, lets instead look for a build specific resource
+            eval resource=\${builddep_freetype2_BUILD_${rewritten_build_var}}
+        fi
+        if test "x$resource" = x; then
+            # Ok, lets instead look for a generic resource
+            # (The freetype2 comes from M4 and not the shell, thus no need for eval here.)
+            resource=${builddep_freetype2}
+        fi
+        if test "x$resource" != x; then
+            { $as_echo "$as_me:${as_lineno-$LINENO}: Using builddeps $resource for freetype2" >&5
+$as_echo "$as_me: Using builddeps $resource for freetype2" >&6;}
+	    # If the resource in the builddeps.conf file is an existing directory,
+	    # for example /java/linux/cups
+	    if test -d ${resource}; then
+	       depdir=${resource}
+	    else
+
+# freetype2 is for example mymodule
+# $resource is for example libs/general/libmymod_1_2_3.zip
+# $with_builddeps_server is for example ftp://mybuilddeps.myserver.com/builddeps
+# $with_builddeps_dir is for example /localhome/builddeps
+# depdir is the name of the variable into which we store the depdir, eg MYMOD
+# Will download ftp://mybuilddeps.myserver.com/builddeps/libs/general/libmymod_1_2_3.zip and
+# unzip into the directory: /localhome/builddeps/libmymod_1_2_3
+    filename=`basename $resource`
+    filebase=`echo $filename | sed 's/\.[^\.]*$//'`
+    filebase=${filename%%.*}
+    extension=${filename#*.}
+    installdir=$with_builddeps_dir/$filebase
+    if test ! -f $installdir/$filename.unpacked; then
+        { $as_echo "$as_me:${as_lineno-$LINENO}: Downloading build dependency freetype2 from $with_builddeps_server/$resource and installing into $installdir" >&5
+$as_echo "$as_me: Downloading build dependency freetype2 from $with_builddeps_server/$resource and installing into $installdir" >&6;}
+        if test ! -d $installdir; then
+            mkdir -p $installdir
+        fi
+        if test ! -d $installdir; then
+            as_fn_error $? "Could not create directory $installdir" "$LINENO" 5
+        fi
+        tmpfile=`mktemp $installdir/freetype2.XXXXXXXXX`
+        touch $tmpfile
+        if test ! -f $tmpfile; then
+            as_fn_error $? "Could not create files in directory $installdir" "$LINENO" 5
+        fi
+
+    # $with_builddeps_server/$resource  is the ftp://abuilddeps.server.com/libs/cups.zip
+    # $tmpfile is the local file name for the downloaded file.
+    VALID_TOOL=no
+    if test "x$BDEPS_FTP" = xwget; then
+       VALID_TOOL=yes
+       wget -O $tmpfile $with_builddeps_server/$resource
+    fi
+    if test "x$BDEPS_FTP" = xlftp; then
+       VALID_TOOL=yes
+       lftp -c "get $with_builddeps_server/$resource  -o $tmpfile"
+    fi
+    if test "x$BDEPS_FTP" = xftp; then
+        VALID_TOOL=yes
+        FTPSERVER=`echo $with_builddeps_server/$resource  | cut -f 3 -d '/'`
+        FTPPATH=`echo $with_builddeps_server/$resource  | cut -f 4- -d '/'`
+        FTPUSERPWD=${FTPSERVER%%@*}
+        if test "x$FTPSERVER" != "x$FTPUSERPWD"; then
+            FTPUSER=${userpwd%%:*}
+            FTPPWD=${userpwd#*@}
+            FTPSERVER=${FTPSERVER#*@}
+        else
+            FTPUSER=ftp
+            FTPPWD=ftp
+        fi
+        # the "pass" command does not work on some
+        # ftp clients (read ftp.exe) but if it works,
+        # passive mode is better!
+        (\
+            echo "user $FTPUSER $FTPPWD"        ;\
+            echo "pass"                         ;\
+            echo "bin"                          ;\
+            echo "get $FTPPATH $tmpfile"              ;\
+        ) | ftp -in $FTPSERVER
+    fi
+    if test "x$VALID_TOOL" != xyes; then
+       as_fn_error $? "I do not know how to use the tool: $BDEPS_FTP" "$LINENO" 5
+    fi
+
+        mv $tmpfile $installdir/$filename
+        if test ! -s $installdir/$filename; then
+            as_fn_error $? "Could not download $with_builddeps_server/$resource" "$LINENO" 5
+        fi
+        case "$extension" in
+            zip)  echo "Unzipping $installdir/$filename..."
+               (cd $installdir ; rm -f $installdir/$filename.unpacked ; $BDEPS_UNZIP $installdir/$filename > /dev/null && touch $installdir/$filename.unpacked)
+            ;;
+            tar.gz) echo "Untaring $installdir/$filename..."
+               (cd $installdir ; rm -f $installdir/$filename.unpacked ; tar xzf $installdir/$filename && touch $installdir/$filename.unpacked)
+            ;;
+            tgz) echo "Untaring $installdir/$filename..."
+               (cd $installdir ; rm -f $installdir/$filename.unpacked ; tar xzf $installdir/$filename && touch $installdir/$filename.unpacked)
+            ;;
+            *) as_fn_error $? "Cannot handle build depency archive with extension $extension" "$LINENO" 5
+            ;;
+        esac
+    fi
+    if test -f $installdir/$filename.unpacked; then
+        depdir=$installdir
+    fi
+
+	    fi
+            # Source the builddeps file again, because in the previous command, the depdir
+            # was updated to point at the current build dependency install directory.
+            . $builddepsfile
+            # Now extract variables from the builddeps.conf files.
+            theroot=${builddep_freetype2_ROOT}
+            thecflags=${builddep_freetype2_CFLAGS}
+            thelibs=${builddep_freetype2_LIBS}
+            if test "x$depdir" = x; then
+                as_fn_error $? "Could not download build dependency freetype2" "$LINENO" 5
+            fi
+            FREETYPE2=$depdir
+            if test "x$theroot" != x; then
+               FREETYPE2="$theroot"
+            fi
+            if test "x$thecflags" != x; then
+               FREETYPE2_CFLAGS="$thecflags"
+            fi
+            if test "x$thelibs" != x; then
+               FREETYPE2_LIBS="$thelibs"
+            fi
+            FREETYPE2_FOUND=yes
+            else FREETYPE2_FOUND=no
+
+        fi
+        else FREETYPE2_FOUND=no
+
+    fi
+
+            USING_SYSTEM_FT_LIB=true
+	fi
+	if test "x$FREETYPE2_FOUND" = xno; then
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for FREETYPE2" >&5
+$as_echo_n "checking for FREETYPE2... " >&6; }
+
+if test -n "$FREETYPE2_CFLAGS"; then
+    pkg_cv_FREETYPE2_CFLAGS="$FREETYPE2_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"freetype2\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "freetype2") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_FREETYPE2_CFLAGS=`$PKG_CONFIG --cflags "freetype2" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+if test -n "$FREETYPE2_LIBS"; then
+    pkg_cv_FREETYPE2_LIBS="$FREETYPE2_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"freetype2\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "freetype2") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_FREETYPE2_LIBS=`$PKG_CONFIG --libs "freetype2" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+	        FREETYPE2_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "freetype2" 2>&1`
+        else
+	        FREETYPE2_PKG_ERRORS=`$PKG_CONFIG --print-errors "freetype2" 2>&1`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$FREETYPE2_PKG_ERRORS" >&5
+
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+                FREETYPE2_FOUND=no
+elif test $pkg_failed = untried; then
+	FREETYPE2_FOUND=no
+else
+	FREETYPE2_CFLAGS=$pkg_cv_FREETYPE2_CFLAGS
+	FREETYPE2_LIBS=$pkg_cv_FREETYPE2_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+	FREETYPE2_FOUND=yes
+fi
+            USING_SYSTEM_FT_LIB=true
+	fi
+	if test "x$FREETYPE2_FOUND" = xno; then
+	    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for freetype in some standard locations" >&5
+$as_echo_n "checking for freetype in some standard locations... " >&6; }
+
+	    if test -s /usr/X11/include/ft2build.h && test -d /usr/X11/include/freetype2/freetype; then
+	        DEFAULT_FREETYPE_CFLAGS="-I/usr/X11/include/freetype2 -I/usr/X11/include"
+	        DEFAULT_FREETYPE_LIBS="-L/usr/X11/lib -lfreetype"
+	    fi
+	    if test -s /usr/include/ft2build.h && test -d /usr/include/freetype2/freetype; then
+	        DEFAULT_FREETYPE_CFLAGS="-I/usr/include/freetype2"
+	        DEFAULT_FREETYPE_LIBS="-lfreetype"
+	    fi
+
+	    PREV_CXXCFLAGS="$CXXFLAGS"
+	    PREV_LDFLAGS="$LDFLAGS"
+	    CXXFLAGS="$CXXFLAGS $DEFAULT_FREETYPE_CFLAGS"
+	    LDFLAGS="$LDFLAGS $DEFAULT_FREETYPE_LIBS"
+	    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include<ft2build.h>
+	                    #include FT_FREETYPE_H
+	                   int main() { return 0; }
+
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+
+	                      # Yes, the default cflags and libs did the trick.
+	                      FREETYPE2_FOUND=yes
+	                      FREETYPE2_CFLAGS="$DEFAULT_FREETYPE_CFLAGS"
+	                      FREETYPE2_LIBS="$DEFAULT_FREETYPE_LIBS"
+
+else
+
+	                      FREETYPE2_FOUND=no
+
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+            CXXCFLAGS="$PREV_CXXFLAGS"
+	    LDFLAGS="$PREV_LDFLAGS"
+	    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FREETYPE2_FOUND" >&5
+$as_echo "$FREETYPE2_FOUND" >&6; }
+            USING_SYSTEM_FT_LIB=true
+	fi
+	if test "x$FREETYPE2_FOUND" = xno; then
+		help_on_build_dependency freetype2
+		as_fn_error $? "Could not find freetype2! $HELP_MSG " "$LINENO" 5
+	fi
+fi
+
+
+
+
+
+
+###############################################################################
+#
+# Check for alsa headers and libraries. Used on Linux/GNU systems.
+#
+
+# Check whether --with-alsa was given.
+if test "${with_alsa+set}" = set; then :
+  withval=$with_alsa;
+fi
+
+
+# Check whether --with-alsa-include was given.
+if test "${with_alsa_include+set}" = set; then :
+  withval=$with_alsa_include;
+fi
+
+
+# Check whether --with-alsa-lib was given.
+if test "${with_alsa_lib+set}" = set; then :
+  withval=$with_alsa_lib;
+fi
+
+
+if test "x$ALSA_NOT_NEEDED" = xyes; then
+	if test "x$with_alsa" != x || test "x$with_alsa-include" != x || test "x$with_alsa-lib" != x; then
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: alsa not used, so --with-alsa is ignored" >&5
+$as_echo "$as_me: WARNING: alsa not used, so --with-alsa is ignored" >&2;}
+	fi
+	ALSA_CFLAGS=
+	ALSA_LIBS=
+else
+	ALSA_FOUND=no
+
+	if test "x$with_alsa" = xno || test "x$with_alsa-include" = xno || test "x$with_alsa-lib" = xno; then
+	    as_fn_error $? "It is not possible to disable the use of alsa. Remove the --without-alsa option." "$LINENO" 5
+	fi
+
+	if test "x$with_alsa" != x; then
+	    ALSA_LIBS="-L$with_alsa/lib -lalsa"
+	    ALSA_CFLAGS="-I$with_alsa/include"
+	    ALSA_FOUND=yes
+	fi
+	if test "x$with_alsa-include" != x; then
+	    ALSA_CFLAGS="-I$with_alsa/include"
+	    ALSA_FOUND=yes
+	fi
+	if test "x$with_alsa-lib" != x; then
+	    ALSA_LIBS="-L$with_alsa/lib -lalsa"
+	    ALSA_FOUND=yes
+	fi
+	if test "x$ALSA_FOUND" = xno; then
+
+
+    if test "x$with_builddeps_server" != x || test "x$with_builddeps_conf" != x; then
+        # Source the builddeps file again, to make sure it uses the latest variables!
+        . $builddepsfile
+        # Look for a host and build machine specific resource!
+        eval resource=\${builddep_alsa_BUILD_${rewritten_build_var}_HOST_${rewritten_host_var}}
+        if test "x$resource" = x; then
+            # Ok, lets instead look for a host specific resource
+            eval resource=\${builddep_alsa_HOST_${rewritten_host_var}}
+        fi
+        if test "x$resource" = x; then
+            # Ok, lets instead look for a build specific resource
+            eval resource=\${builddep_alsa_BUILD_${rewritten_build_var}}
+        fi
+        if test "x$resource" = x; then
+            # Ok, lets instead look for a generic resource
+            # (The alsa comes from M4 and not the shell, thus no need for eval here.)
+            resource=${builddep_alsa}
+        fi
+        if test "x$resource" != x; then
+            { $as_echo "$as_me:${as_lineno-$LINENO}: Using builddeps $resource for alsa" >&5
+$as_echo "$as_me: Using builddeps $resource for alsa" >&6;}
+	    # If the resource in the builddeps.conf file is an existing directory,
+	    # for example /java/linux/cups
+	    if test -d ${resource}; then
+	       depdir=${resource}
+	    else
+
+# alsa is for example mymodule
+# $resource is for example libs/general/libmymod_1_2_3.zip
+# $with_builddeps_server is for example ftp://mybuilddeps.myserver.com/builddeps
+# $with_builddeps_dir is for example /localhome/builddeps
+# depdir is the name of the variable into which we store the depdir, eg MYMOD
+# Will download ftp://mybuilddeps.myserver.com/builddeps/libs/general/libmymod_1_2_3.zip and
+# unzip into the directory: /localhome/builddeps/libmymod_1_2_3
+    filename=`basename $resource`
+    filebase=`echo $filename | sed 's/\.[^\.]*$//'`
+    filebase=${filename%%.*}
+    extension=${filename#*.}
+    installdir=$with_builddeps_dir/$filebase
+    if test ! -f $installdir/$filename.unpacked; then
+        { $as_echo "$as_me:${as_lineno-$LINENO}: Downloading build dependency alsa from $with_builddeps_server/$resource and installing into $installdir" >&5
+$as_echo "$as_me: Downloading build dependency alsa from $with_builddeps_server/$resource and installing into $installdir" >&6;}
+        if test ! -d $installdir; then
+            mkdir -p $installdir
+        fi
+        if test ! -d $installdir; then
+            as_fn_error $? "Could not create directory $installdir" "$LINENO" 5
+        fi
+        tmpfile=`mktemp $installdir/alsa.XXXXXXXXX`
+        touch $tmpfile
+        if test ! -f $tmpfile; then
+            as_fn_error $? "Could not create files in directory $installdir" "$LINENO" 5
+        fi
+
+    # $with_builddeps_server/$resource  is the ftp://abuilddeps.server.com/libs/cups.zip
+    # $tmpfile is the local file name for the downloaded file.
+    VALID_TOOL=no
+    if test "x$BDEPS_FTP" = xwget; then
+       VALID_TOOL=yes
+       wget -O $tmpfile $with_builddeps_server/$resource
+    fi
+    if test "x$BDEPS_FTP" = xlftp; then
+       VALID_TOOL=yes
+       lftp -c "get $with_builddeps_server/$resource  -o $tmpfile"
+    fi
+    if test "x$BDEPS_FTP" = xftp; then
+        VALID_TOOL=yes
+        FTPSERVER=`echo $with_builddeps_server/$resource  | cut -f 3 -d '/'`
+        FTPPATH=`echo $with_builddeps_server/$resource  | cut -f 4- -d '/'`
+        FTPUSERPWD=${FTPSERVER%%@*}
+        if test "x$FTPSERVER" != "x$FTPUSERPWD"; then
+            FTPUSER=${userpwd%%:*}
+            FTPPWD=${userpwd#*@}
+            FTPSERVER=${FTPSERVER#*@}
+        else
+            FTPUSER=ftp
+            FTPPWD=ftp
+        fi
+        # the "pass" command does not work on some
+        # ftp clients (read ftp.exe) but if it works,
+        # passive mode is better!
+        (\
+            echo "user $FTPUSER $FTPPWD"        ;\
+            echo "pass"                         ;\
+            echo "bin"                          ;\
+            echo "get $FTPPATH $tmpfile"              ;\
+        ) | ftp -in $FTPSERVER
+    fi
+    if test "x$VALID_TOOL" != xyes; then
+       as_fn_error $? "I do not know how to use the tool: $BDEPS_FTP" "$LINENO" 5
+    fi
+
+        mv $tmpfile $installdir/$filename
+        if test ! -s $installdir/$filename; then
+            as_fn_error $? "Could not download $with_builddeps_server/$resource" "$LINENO" 5
+        fi
+        case "$extension" in
+            zip)  echo "Unzipping $installdir/$filename..."
+               (cd $installdir ; rm -f $installdir/$filename.unpacked ; $BDEPS_UNZIP $installdir/$filename > /dev/null && touch $installdir/$filename.unpacked)
+            ;;
+            tar.gz) echo "Untaring $installdir/$filename..."
+               (cd $installdir ; rm -f $installdir/$filename.unpacked ; tar xzf $installdir/$filename && touch $installdir/$filename.unpacked)
+            ;;
+            tgz) echo "Untaring $installdir/$filename..."
+               (cd $installdir ; rm -f $installdir/$filename.unpacked ; tar xzf $installdir/$filename && touch $installdir/$filename.unpacked)
+            ;;
+            *) as_fn_error $? "Cannot handle build depency archive with extension $extension" "$LINENO" 5
+            ;;
+        esac
+    fi
+    if test -f $installdir/$filename.unpacked; then
+        depdir=$installdir
+    fi
+
+	    fi
+            # Source the builddeps file again, because in the previous command, the depdir
+            # was updated to point at the current build dependency install directory.
+            . $builddepsfile
+            # Now extract variables from the builddeps.conf files.
+            theroot=${builddep_alsa_ROOT}
+            thecflags=${builddep_alsa_CFLAGS}
+            thelibs=${builddep_alsa_LIBS}
+            if test "x$depdir" = x; then
+                as_fn_error $? "Could not download build dependency alsa" "$LINENO" 5
+            fi
+            ALSA=$depdir
+            if test "x$theroot" != x; then
+               ALSA="$theroot"
+            fi
+            if test "x$thecflags" != x; then
+               ALSA_CFLAGS="$thecflags"
+            fi
+            if test "x$thelibs" != x; then
+               ALSA_LIBS="$thelibs"
+            fi
+            ALSA_FOUND=yes
+            else ALSA_FOUND=no
+
+        fi
+        else ALSA_FOUND=no
+
+    fi
+
+	fi
+	if test "x$ALSA_FOUND" = xno; then
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ALSA" >&5
+$as_echo_n "checking for ALSA... " >&6; }
+
+if test -n "$ALSA_CFLAGS"; then
+    pkg_cv_ALSA_CFLAGS="$ALSA_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"alsa\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "alsa") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_ALSA_CFLAGS=`$PKG_CONFIG --cflags "alsa" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+if test -n "$ALSA_LIBS"; then
+    pkg_cv_ALSA_LIBS="$ALSA_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"alsa\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "alsa") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_ALSA_LIBS=`$PKG_CONFIG --libs "alsa" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+	        ALSA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "alsa" 2>&1`
+        else
+	        ALSA_PKG_ERRORS=`$PKG_CONFIG --print-errors "alsa" 2>&1`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$ALSA_PKG_ERRORS" >&5
+
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+                ALSA_FOUND=no
+elif test $pkg_failed = untried; then
+	ALSA_FOUND=no
+else
+	ALSA_CFLAGS=$pkg_cv_ALSA_CFLAGS
+	ALSA_LIBS=$pkg_cv_ALSA_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+	ALSA_FOUND=yes
+fi
+	fi
+	if test "x$ALSA_FOUND" = xno; then
+	    for ac_header in alsa/asoundlib.h
+do :
+  ac_fn_cxx_check_header_mongrel "$LINENO" "alsa/asoundlib.h" "ac_cv_header_alsa_asoundlib_h" "$ac_includes_default"
+if test "x$ac_cv_header_alsa_asoundlib_h" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_ALSA_ASOUNDLIB_H 1
+_ACEOF
+ ALSA_FOUND=yes
+	                      ALSA_CFLAGS=-Iignoreme
+	                      ALSA_LIBS=-lasound
+	                      DEFAULT_ALSA=yes
+else
+  ALSA_FOUND=no
+fi
+
+done
+
+	fi
+	if test "x$ALSA_FOUND" = xno; then
+	    help_on_build_dependency alsa
+	    as_fn_error $? "Could not find alsa! $HELP_MSG " "$LINENO" 5
+	fi
+fi
+
+
+
+
+###############################################################################
+#
+# Check for pulse audio headers and libraries.
+#
+PULSE_FOUND=no
+
+# Check whether --with-pulse was given.
+if test "${with_pulse+set}" = set; then :
+  withval=$with_pulse;
+fi
+
+
+# Check whether --with-pulse-include was given.
+if test "${with_pulse_include+set}" = set; then :
+  withval=$with_pulse_include;
+fi
+
+
+# Check whether --with-pulse-lib was given.
+if test "${with_pulse_lib+set}" = set; then :
+  withval=$with_pulse_lib;
+fi
+
+
+if test "x$with_pulse" != x; then
+    PULSE_LIBS="-L$with_pulse/lib -lfreetype"
+    PULSE_CFLAGS="-I$with_pulse/include"
+    PULSE_FOUND=yes
+fi
+if test "x$with_pulse-include" != x; then
+    PULSE_CFLAGS="-I$with_pulse/include"
+    PULSE_FOUND=yes
+fi
+if test "x$with_pulse-lib" != x; then
+    PULSE_LIBS="-L$with_pulse/lib -lfreetype"
+    PULSE_FOUND=yes
+fi
+if test "x$PULSE_FOUND" = xno; then
+
+
+    if test "x$with_builddeps_server" != x || test "x$with_builddeps_conf" != x; then
+        # Source the builddeps file again, to make sure it uses the latest variables!
+        . $builddepsfile
+        # Look for a host and build machine specific resource!
+        eval resource=\${builddep_pulse_BUILD_${rewritten_build_var}_HOST_${rewritten_host_var}}
+        if test "x$resource" = x; then
+            # Ok, lets instead look for a host specific resource
+            eval resource=\${builddep_pulse_HOST_${rewritten_host_var}}
+        fi
+        if test "x$resource" = x; then
+            # Ok, lets instead look for a build specific resource
+            eval resource=\${builddep_pulse_BUILD_${rewritten_build_var}}
+        fi
+        if test "x$resource" = x; then
+            # Ok, lets instead look for a generic resource
+            # (The pulse comes from M4 and not the shell, thus no need for eval here.)
+            resource=${builddep_pulse}
+        fi
+        if test "x$resource" != x; then
+            { $as_echo "$as_me:${as_lineno-$LINENO}: Using builddeps $resource for pulse" >&5
+$as_echo "$as_me: Using builddeps $resource for pulse" >&6;}
+	    # If the resource in the builddeps.conf file is an existing directory,
+	    # for example /java/linux/cups
+	    if test -d ${resource}; then
+	       depdir=${resource}
+	    else
+
+# pulse is for example mymodule
+# $resource is for example libs/general/libmymod_1_2_3.zip
+# $with_builddeps_server is for example ftp://mybuilddeps.myserver.com/builddeps
+# $with_builddeps_dir is for example /localhome/builddeps
+# depdir is the name of the variable into which we store the depdir, eg MYMOD
+# Will download ftp://mybuilddeps.myserver.com/builddeps/libs/general/libmymod_1_2_3.zip and
+# unzip into the directory: /localhome/builddeps/libmymod_1_2_3
+    filename=`basename $resource`
+    filebase=`echo $filename | sed 's/\.[^\.]*$//'`
+    filebase=${filename%%.*}
+    extension=${filename#*.}
+    installdir=$with_builddeps_dir/$filebase
+    if test ! -f $installdir/$filename.unpacked; then
+        { $as_echo "$as_me:${as_lineno-$LINENO}: Downloading build dependency pulse from $with_builddeps_server/$resource and installing into $installdir" >&5
+$as_echo "$as_me: Downloading build dependency pulse from $with_builddeps_server/$resource and installing into $installdir" >&6;}
+        if test ! -d $installdir; then
+            mkdir -p $installdir
+        fi
+        if test ! -d $installdir; then
+            as_fn_error $? "Could not create directory $installdir" "$LINENO" 5
+        fi
+        tmpfile=`mktemp $installdir/pulse.XXXXXXXXX`
+        touch $tmpfile
+        if test ! -f $tmpfile; then
+            as_fn_error $? "Could not create files in directory $installdir" "$LINENO" 5
+        fi
+
+    # $with_builddeps_server/$resource  is the ftp://abuilddeps.server.com/libs/cups.zip
+    # $tmpfile is the local file name for the downloaded file.
+    VALID_TOOL=no
+    if test "x$BDEPS_FTP" = xwget; then
+       VALID_TOOL=yes
+       wget -O $tmpfile $with_builddeps_server/$resource
+    fi
+    if test "x$BDEPS_FTP" = xlftp; then
+       VALID_TOOL=yes
+       lftp -c "get $with_builddeps_server/$resource  -o $tmpfile"
+    fi
+    if test "x$BDEPS_FTP" = xftp; then
+        VALID_TOOL=yes
+        FTPSERVER=`echo $with_builddeps_server/$resource  | cut -f 3 -d '/'`
+        FTPPATH=`echo $with_builddeps_server/$resource  | cut -f 4- -d '/'`
+        FTPUSERPWD=${FTPSERVER%%@*}
+        if test "x$FTPSERVER" != "x$FTPUSERPWD"; then
+            FTPUSER=${userpwd%%:*}
+            FTPPWD=${userpwd#*@}
+            FTPSERVER=${FTPSERVER#*@}
+        else
+            FTPUSER=ftp
+            FTPPWD=ftp
+        fi
+        # the "pass" command does not work on some
+        # ftp clients (read ftp.exe) but if it works,
+        # passive mode is better!
+        (\
+            echo "user $FTPUSER $FTPPWD"        ;\
+            echo "pass"                         ;\
+            echo "bin"                          ;\
+            echo "get $FTPPATH $tmpfile"              ;\
+        ) | ftp -in $FTPSERVER
+    fi
+    if test "x$VALID_TOOL" != xyes; then
+       as_fn_error $? "I do not know how to use the tool: $BDEPS_FTP" "$LINENO" 5
+    fi
+
+        mv $tmpfile $installdir/$filename
+        if test ! -s $installdir/$filename; then
+            as_fn_error $? "Could not download $with_builddeps_server/$resource" "$LINENO" 5
+        fi
+        case "$extension" in
+            zip)  echo "Unzipping $installdir/$filename..."
+               (cd $installdir ; rm -f $installdir/$filename.unpacked ; $BDEPS_UNZIP $installdir/$filename > /dev/null && touch $installdir/$filename.unpacked)
+            ;;
+            tar.gz) echo "Untaring $installdir/$filename..."
+               (cd $installdir ; rm -f $installdir/$filename.unpacked ; tar xzf $installdir/$filename && touch $installdir/$filename.unpacked)
+            ;;
+            tgz) echo "Untaring $installdir/$filename..."
+               (cd $installdir ; rm -f $installdir/$filename.unpacked ; tar xzf $installdir/$filename && touch $installdir/$filename.unpacked)
+            ;;
+            *) as_fn_error $? "Cannot handle build depency archive with extension $extension" "$LINENO" 5
+            ;;
+        esac
+    fi
+    if test -f $installdir/$filename.unpacked; then
+        depdir=$installdir
+    fi
+
+	    fi
+            # Source the builddeps file again, because in the previous command, the depdir
+            # was updated to point at the current build dependency install directory.
+            . $builddepsfile
+            # Now extract variables from the builddeps.conf files.
+            theroot=${builddep_pulse_ROOT}
+            thecflags=${builddep_pulse_CFLAGS}
+            thelibs=${builddep_pulse_LIBS}
+            if test "x$depdir" = x; then
+                as_fn_error $? "Could not download build dependency pulse" "$LINENO" 5
+            fi
+            PULSE=$depdir
+            if test "x$theroot" != x; then
+               PULSE="$theroot"
+            fi
+            if test "x$thecflags" != x; then
+               PULSE_CFLAGS="$thecflags"
+            fi
+            if test "x$thelibs" != x; then
+               PULSE_LIBS="$thelibs"
+            fi
+            PULSE_FOUND=yes
+            else PULSE_FOUND=no
+
+        fi
+        else PULSE_FOUND=no
+
+    fi
+
+fi
+if test "x$PULSE_FOUND" = xno; then
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBPULSE" >&5
+$as_echo_n "checking for LIBPULSE... " >&6; }
+
+if test -n "$LIBPULSE_CFLAGS"; then
+    pkg_cv_LIBPULSE_CFLAGS="$LIBPULSE_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpulse >= 0.9.11\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "libpulse >= 0.9.11") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_LIBPULSE_CFLAGS=`$PKG_CONFIG --cflags "libpulse >= 0.9.11" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+if test -n "$LIBPULSE_LIBS"; then
+    pkg_cv_LIBPULSE_LIBS="$LIBPULSE_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpulse >= 0.9.11\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "libpulse >= 0.9.11") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_LIBPULSE_LIBS=`$PKG_CONFIG --libs "libpulse >= 0.9.11" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+	        LIBPULSE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libpulse >= 0.9.11" 2>&1`
+        else
+	        LIBPULSE_PKG_ERRORS=`$PKG_CONFIG --print-errors "libpulse >= 0.9.11" 2>&1`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$LIBPULSE_PKG_ERRORS" >&5
+
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+                PULSE_FOUND=no
+elif test $pkg_failed = untried; then
+	PULSE_FOUND=no
+else
+	LIBPULSE_CFLAGS=$pkg_cv_LIBPULSE_CFLAGS
+	LIBPULSE_LIBS=$pkg_cv_LIBPULSE_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+	PULSE_FOUND=yes
+fi
+fi
+if test "x$PULSE_FOUND" = xno; then
+    for ac_header in pulse/pulseaudio.h
+do :
+  ac_fn_cxx_check_header_mongrel "$LINENO" "pulse/pulseaudio.h" "ac_cv_header_pulse_pulseaudio_h" "$ac_includes_default"
+if test "x$ac_cv_header_pulse_pulseaudio_h" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_PULSE_PULSEAUDIO_H 1
+_ACEOF
+ PULSE_FOUND=yes
+                      PULSE_CFLAGS=-Iignoreme
+                      PULSE_LIBS=
+                      DEFAULT_PULSE=yes
+else
+  PULSE_FOUND=no
+fi
+
+done
+
+fi
+
+if test "x$PULSE_FOUND" = xno && test "x$PULSE_NOT_NEEDED" != xyes; then
+    help_on_build_dependency pulse
+    as_fn_error $? "Could not find pulse audio libraries. $HELP_MSG " "$LINENO" 5
+fi
+
+
+
+
+###############################################################################
+#
+# Check for the jpeg library
+#
+
+USE_EXTERNAL_LIBJPEG=true
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -ljpeg" >&5
+$as_echo_n "checking for main in -ljpeg... " >&6; }
+if test "${ac_cv_lib_jpeg_main+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ljpeg  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+
+int
+main ()
+{
+return main ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+  ac_cv_lib_jpeg_main=yes
+else
+  ac_cv_lib_jpeg_main=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_jpeg_main" >&5
+$as_echo "$ac_cv_lib_jpeg_main" >&6; }
+if test "x$ac_cv_lib_jpeg_main" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBJPEG 1
+_ACEOF
+
+  LIBS="-ljpeg $LIBS"
+
+else
+   USE_EXTERNAL_LIBJPEG=false
+               { $as_echo "$as_me:${as_lineno-$LINENO}: Will use jpeg decoder bundled with the OpenJDK source" >&5
+$as_echo "$as_me: Will use jpeg decoder bundled with the OpenJDK source" >&6;}
+
+fi
+
+
+
+###############################################################################
+#
+# Check for the gif library
+#
+
+USE_EXTERNAL_LIBJPEG=true
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lgif" >&5
+$as_echo_n "checking for main in -lgif... " >&6; }
+if test "${ac_cv_lib_gif_main+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lgif  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+
+int
+main ()
+{
+return main ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+  ac_cv_lib_gif_main=yes
+else
+  ac_cv_lib_gif_main=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gif_main" >&5
+$as_echo "$ac_cv_lib_gif_main" >&6; }
+if test "x$ac_cv_lib_gif_main" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBGIF 1
+_ACEOF
+
+  LIBS="-lgif $LIBS"
+
+else
+   USE_EXTERNAL_LIBGIF=false
+               { $as_echo "$as_me:${as_lineno-$LINENO}: Will use gif decoder bundled with the OpenJDK source" >&5
+$as_echo "$as_me: Will use gif decoder bundled with the OpenJDK source" >&6;}
+
+fi
+
+
+
+###############################################################################
+#
+# Check for the zlib library
+#
+
+USE_EXTERNAL_LIBZ=true
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lz" >&5
+$as_echo_n "checking for main in -lz... " >&6; }
+if test "${ac_cv_lib_z_main+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lz  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+
+int
+main ()
+{
+return main ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+  ac_cv_lib_z_main=yes
+else
+  ac_cv_lib_z_main=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_main" >&5
+$as_echo "$ac_cv_lib_z_main" >&6; }
+if test "x$ac_cv_lib_z_main" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBZ 1
+_ACEOF
+
+  LIBS="-lz $LIBS"
+
+else
+   USE_EXTERNAL_LIBZ=false
+               { $as_echo "$as_me:${as_lineno-$LINENO}: Will use zlib bundled with the OpenJDK source" >&5
+$as_echo "$as_me: Will use zlib bundled with the OpenJDK source" >&6;}
+
+fi
+
+
+
+###############################################################################
+#
+# Check if altzone exists in time.h
+#
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <time.h>
+int
+main ()
+{
+return (int)altzone;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+  has_altzone=yes
+else
+  has_altzone=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+if test "x$has_altzone" = xyes; then
+
+$as_echo "#define HAVE_ALTZONE 1" >>confdefs.h
+
+fi
+
+###############################################################################
+#
+# Check the maths library
+#
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lm" >&5
+$as_echo_n "checking for main in -lm... " >&6; }
+if test "${ac_cv_lib_m_main+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lm  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+
+int
+main ()
+{
+return main ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+  ac_cv_lib_m_main=yes
+else
+  ac_cv_lib_m_main=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_main" >&5
+$as_echo "$ac_cv_lib_m_main" >&6; }
+if test "x$ac_cv_lib_m_main" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBM 1
+_ACEOF
+
+  LIBS="-lm $LIBS"
+
+else
+
+                  { $as_echo "$as_me:${as_lineno-$LINENO}: Maths library was not found" >&5
+$as_echo "$as_me: Maths library was not found" >&6;}
+
+fi
+
+
+
+###############################################################################
+#
+# Should we run the painfully slow javadoc tool?
+#
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build documentation" >&5
+$as_echo_n "checking whether to build documentation... " >&6; }
+# Check whether --enable-docs was given.
+if test "${enable_docs+set}" = set; then :
+  enableval=$enable_docs; ENABLE_DOCS="${enableval}"
+else
+  ENABLE_DOCS='no'
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ENABLE_DOCS" >&5
+$as_echo "$ENABLE_DOCS" >&6; }
+
+GENERATE_DOCS=false
+if test "x$ENABLE_DOCS" = xyes; then
+    GENERATE_DOCS=true
+fi
+
+
+###############################################################################
+#
+# Should we compile nimbus swing L&F? We can probably remove this option
+# since nimbus is officially part of javax now.
+#
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build nimbus L&F" >&5
+$as_echo_n "checking whether to build nimbus L&F... " >&6; }
+# Check whether --enable-nimbus was given.
+if test "${enable_nimbus+set}" = set; then :
+  enableval=$enable_nimbus; ENABLE_NIMBUS="${enableval}"
+else
+  ENABLE_NIMBUS='yes'
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ENABLE_NIMBUS" >&5
+$as_echo "$ENABLE_NIMBUS" >&6; }
+DISABLE_NIMBUS=
+if test "x$ENABLE_NIMBUS" = xno; then
+    DISABLE_NIMBUS=true
+fi
+
+
+###############################################################################
+#
+# Setup the opt flags for different compilers
+# and different operating systems.
+#
+case $COMPILER_TYPE in
+  CC )
+    D_FLAG="-g"
+    case $COMPILER_NAME in
+      gcc )
+      	case $PLATFORM in
+	  macosx )
+	    # On MacOSX we optimize for size, something
+	    # we should do for all platforms?
+	    C_O_FLAG_HI="-O3"
+	    C_O_FLAG_NORM="-Os"
+	    C_O_FLAG_NONE="-O0"
+	    ;;
+	  *)
+	    C_O_FLAG_HI="-O3"
+	    C_O_FLAG_NORM="-O2"
+	    C_O_FLAG_NONE="-O0"
+	    ;;
+	esac
+        CXX_O_FLAG_HI="$C_O_FLAG_HI"
+        CXX_O_FLAG_NORM="$C_O_FLAG_NORM"
+        CXX_O_FLAG_NONE="$C_O_FLAG_NONE"
+        ;;
+      ossc )
+        case $LEGACY_HOST_CPU1 in
+          i586)
+            C_O_FLAG_HI="-xO4 -Wu,-O4~yz"
+            C_O_FLAG_NORM="-xO2 -Wu,-O2~yz"
+            C_O_FLAG_NONE=""
+            CXX_O_FLAG_HI="-xO4 -Qoption ube -O4~yz"
+            CXX_O_FLAG_NORM="-xO2 -Qoption ube -O2~yz"
+            CXX_O_FLAG_NONE=""
+            ;;
+          sparc)
+            C_O_FLAG_HI="-xO4 -Wc,-Qrm-s -Wc,-Qiselect-T0"
+            C_O_FLAG_NORM="-xO2 -Wc,-Qrm-s -Wc,-Qiselect-T0"
+            C_O_FLAG_NONE=""
+            CXX_O_FLAG_HI="-xO4 -Qoption cg -Qrm-s -Qoption cg -Qiselect-T0"
+            CXX_O_FLAG_NORM="-xO2 -Qoption cg -Qrm-s -Qoption cg -Qiselect-T0"
+            CXX_O_FLAG_NONE=""
+            ;;
+        esac
+    esac
+    ;;
+  CL )
+    D_FLAG=
+    C_O_FLAG_HI="-O2"
+    C_O_FLAG_NORM="-O1"
+    C_O_FLAG_NONE="-Od"
+    CXX_O_FLAG_HI="$C_O_FLAG_HI"
+    CXX_O_FLAG_NORM="$C_O_FLAG_NORM"
+    CXX_O_FLAG_NONE="$C_O_FLAG_NONE"
+    ;;
+esac
+
+
+
+
+
+
+
+
+###############################################################################
+#
+# Setup legacy vars/targets and new vars to deal with different debug levels.
+#
+case $DEBUG_LEVEL in
+      release )
+              HOTSPOT_DEBUG_LEVEL="product"
+              HOTSPOT_EXPORT="product"
+              ;;
+      fastdebug )
+              HOTSPOT_DEBUG_LEVEL="fastdebug"
+              HOTSPOT_EXPORT="fastdebug"
+              CFLAGS="$CFLAGS $D_FLAG"
+              JAVAC_FLAGS="$JAVAC_FLAGS -g"
+              ;;
+      slowdebug )
+              HOTSPOT_DEBUG_LEVEL="jvmg"
+              HOTSPOT_EXPORT="debug"
+              CFLAGS="$CFLAGS $D_FLAG"
+	      C_O_FLAG_HI="$C_O_FLAG_NONE"
+	      C_O_FLAG_NORM="$C_O_FLAG_NONE"
+	      CXX_O_FLAG_HI="$CXX_O_FLAG_NONE"
+	      CXX_O_FLAG_NORM="$CXX_O_FLAG_NONE"
+              JAVAC_FLAGS="$JAVAC_FLAGS -g"
+              ;;
+esac
+
+###############################################################################
+#
+# Generate the legacy makefile targets for hotspot.
+# The hotspot api for selecting the build artifacts, really, needs to be improved.
+#
+HOTSPOT_TARGET=""
+
+if test "x$JVM_VARIANT_SERVER" = xtrue; then
+    HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL} "
+fi
+
+if test "x$JVM_VARIANT_CLIENT" = xtrue; then
+    HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}1 "
+fi
+
+if test "x$JVM_VARIANT_KERNEL" = xtrue; then
+    HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}kernel "
+fi
+
+if test "x$JVM_VARIANT_ZERO" = xtrue; then
+    HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}zero "
+fi
+
+if test "x$JVM_VARIANT_ZEROSHARK" = xtrue; then
+    HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}shark "
+fi
+
+HOTSPOT_TARGET="$HOTSPOT_TARGET docs export_$HOTSPOT_EXPORT"
+
+###############################################################################
+#
+# Setup all directories for the subrepoes and the arguments to the sub makes.
+#
+LANGTOOLS_OUTPUTDIR="$OUTPUT_ROOT/langtools"
+LANGTOOLS_DIST="$OUTPUT_ROOT/langtools/dist"
+LANGTOOLS_MAKE_ARGS=""
+
+
+
+
+CORBA_OUTPUTDIR="$OUTPUT_ROOT/corba"
+CORBA_DIST="$OUTPUT_ROOT/corba/dist"
+CORBA_MAKE_ARGS=""
+
+
+
+
+JAXP_OUTPUTDIR="$OUTPUT_ROOT/jaxp"
+JAXP_DIST="$OUTPUT_ROOT/jaxp/dist"
+JAXP_MAKE_ARGS=""
+
+
+
+
+JAXWS_OUTPUTDIR="$OUTPUT_ROOT/jaxws"
+JAXWS_DIST="$OUTPUT_ROOT/jaxws/dist"
+JAXWS_MAKE_ARGS=""
+
+
+
+
+HOTSPOT_OUTPUTDIR="$OUTPUT_ROOT/hotspot"
+HOTSPOT_DIST="$OUTPUT_ROOT/hotspot/dist"
+HOTSPOT_MAKE_ARGS="ALT_OUTPUTDIR=$HOTSPOT_OUTPUTDIR ALT_EXPORT_PATH=$HOTSPOT_DIST $HOTSPOT_TARGET"
+
+
+
+
+JDK_OUTPUTDIR="$OUTPUT_ROOT/jdk"
+JDK_MAKE_ARGS="ALT_OUTPUTDIR=\"$OUTPUT_ROOT/jdk\""
+
+
+
+IMAGES_OUTPUTDIR=$OUTPUT_ROOT/images
+IMAGES_MAKE_ARGS="ALT_OUTPUTDIR=$OUTPUT_ROOT/jdk \
+                  SHARE_SRC=$JDK_TOPDIR/src/share \
+                  PLATFORM_SRC=$JDK_TOPDIR/src/$LEGACY_HOST_OS_API \
+                  TEMPDIR=$IMAGES_OUTPUTDIR/tmp \
+                  ABS_TEMPDIR=$IMAGES_OUTPUTDIR/tmp "
+
+
+
+###############################################################################
+#
+# Now setup the CFLAGS and LDFLAGS for the JDK build.
+# Later we will also have CFLAGS and LDFLAGS for the hotspot subrepo build.
+#
+case $COMPILER_NAME in
+      gcc )
+      	  CCXXFLAGS_JDK="$CCXXFLAGS_JDK -W -Wall -Wno-unused -Wno-parentheses -pipe -fno-omit-frame-pointer \
+                          -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE"
+          CFLAGS_JDK="$CFLAGS_JDK -fno-strict-aliasing"
+          ;;
+      ossc )
+      	  CFLAGS_JDK="$CFLAGS_JDK -xc99=%none -xCC -errshort=tags -Xa REQUIRED -v -mt -norunpath -xnolib"
+      	  CXXFLAGS_JDK="$CXXFLAGS_JDK -errtags=yes +w -mt REQUIRED -features=no%except -DCC_NOEX"
+          ;;
+      cl )
+          CCXXFLAGS_JDK="$CCXXFLAGS_JDK -Zi -MD -Zc:wchar_t- -W3 -wd4800 \
+               -D_STATIC_CPPLIB -D_DISABLE_DEPRECATE_STATIC_CPPLIB -DWIN32_LEAN_AND_MEAN \
+	       -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE \
+	       -DWIN32 -DIAL"
+          case $LEGACY_HOST_CPU1 in
+              i?86 )
+                  CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_X86_ -Dx86"
+                  ;;
+              amd64 )
+                  CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_AMD64_ -Damd64"
+                  ;;
+          esac
+          ;;
+esac
+
+CCXXFLAGS_JDK="$CCXXFLAGS_JDK $ADD_LP64"
+
+# The package path is used only on macosx?
+PACKAGE_PATH=/opt/local
+
+
+# Sometimes we use a cpu dir (.../lib/amd64/server)
+# Sometimes not (.../lib/server)
+LIBARCHDIR="$LEGACY_HOST_CPU2/"
+if test "x$ENDIAN" = xlittle; then
+    CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_LITTLE_ENDIAN"
+else
+    CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_BIG_ENDIAN"
+fi
+if test "x$HOST_OS" = xlinux; then
+    CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DLINUX"
+fi
+if test "x$HOST_OS" = xwindows; then
+    CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DWINDOWS"
+fi
+if test "x$HOST_OS" = xsolaris; then
+    CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DSOLARIS"
+fi
+if test "x$HOST_OS" = xmacosx; then
+    CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DMACOSX -D_ALLBSD_SOURCE"
+    LIBARCHDIR=""
+fi
+if test "x$HOST_OS" = xbsd; then
+    CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DBSD -D_ALLBSD_SOURCE"
+fi
+if test "x$DEBUG_LEVEL" = xrelease; then
+    CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DNDEBUG"
+else
+    CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DDEBUG"
+fi
+
+CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DARCH='\"$LEGACY_HOST_CPU1\"' -D$LEGACY_HOST_CPU1"
+CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DRELEASE='\"$RELEASE\"'"
+
+CCXXFLAGS_JDK="$CCXXFLAGS_JDK \
+        -I${JDK_OUTPUTDIR}/include \
+        -I${JDK_OUTPUTDIR}/include/$PLATFORM \
+        -I${JDK_TOPDIR}/src/share/javavm/export \
+        -I${JDK_TOPDIR}/src/$LEGACY_HOST_OS_API/javavm/export \
+        -I${JDK_TOPDIR}/src/share/native/common \
+        -I${JDK_TOPDIR}/src/$LEGACY_HOST_OS_API/native/common"
+
+# The shared libraries are compiled using the picflag.
+CFLAGS_JDKLIB="$CCXXFLAGS_JDK $CFLAGS_JDK $PICFLAG $CFLAGS_JDKLIB_EXTRA"
+CXXFLAGS_JDKLIB="$CCXXFLAGS_JDK $CXXFLAGS_JDK $PICFLAG"
+
+# Executable flags
+CFLAGS_JDKEXE="$CCXXFLAGS_JDK $CFLAGS_JDK"
+CXXFLAGS_JDKEXE="$CCXXFLAGS_JDK $CXXFLAGS_JDK"
+
+# Now this is odd. The JDK native libraries have to link against libjvm.so
+# On 32-bit machines there is normally two distinct libjvm.so:s, client and server.
+# Which should we link to? Are we lucky enough that the binary api to the libjvm.so library
+# is identical for client and server? Yes. Which is picked at runtime (client or server)?
+# Neither, since the chosen libjvm.so has already been loaded by the launcher, all the following
+# libraries will link to whatever is in memory. Yuck.
+#
+# Thus we offer the compiler to find libjvm.so first in server then in client. It works. Ugh.
+if test "x$COMPILER_TYPE" = xCL; then
+    LDFLAGS_JDKLIB="$LDFLAGS -libpath:${JDK_OUTPUTDIR}/lib jvm.lib java.lib"
+    LDFLAGS_JDKLIB_SUFFIX=""
+    if test "x$HOST_CPU_BITS" = "x64"; then
+        LDFLAGS_JDKEXE="$CFLAGS ${JDK_OUTPUTDIR}/tmp/java/jli/obj64/jli.lib"
+    else
+        LDFLAGS_JDKEXE="$CFLAGS ${JDK_OUTPUTDIR}/tmp/java/jli/obj/jli.lib"
+    fi
+    LDFLAGS_JDKEXE_SUFFIX=""
+else
+    # If this is a --hash-style=gnu system, use --hash-style=both, why?
+    HAS_GNU_HASH=`$CC -dumpspecs 2>/dev/null | $GREP 'hash-style=gnu'`
+    if test -n "$HAS_GNU_HASH"; then
+        # And since we now know that the linker is gnu, then add -z defs, to forbid
+        # undefined symbols in object files.
+        LDFLAGS="$LDFLAGS -Xlinker --hash-style=both -Xlinker -z -Xlinker defs"
+        if test "x$DEBUG_LEVEL" == "xrelease"; then
+            # When building release libraries, tell the linker optimize them.
+            # Should this be supplied to the OSS linker as well?
+            LDFLAGS="$LDFLAGS -Xlinker -O1"
+        fi
+    fi
+
+    LDFLAGS_JDKLIB="$LDFLAGS $SHARED_LIBRARY_FLAGS -L${JDK_OUTPUTDIR}/lib/${LIBARCHDIR}server \
+                    -L${JDK_OUTPUTDIR}/lib/${LIBARCHDIR}client \
+  	            -L${JDK_OUTPUTDIR}/lib/${LIBARCHDIR}"
+    LDFLAGS_JDKLIB_SUFFIX="-ljvm -ljava"
+    if test "x$COMPILER_NAME" = xossc; then
+        LDFLAGS_JDKLIB_SUFFIX="$LDFLAGS_JDKLIB_SUFFIX -lc"
+    fi
+
+    # Only the jli library is explicitly linked when the launchers are built.
+    # The libjvm is then dynamically loaded/linked by the launcher.
+    LDFLAGS_JDKEXE="$LDFLAGS -L${JDK_OUTPUTDIR}/lib/${LIBARCHDIR}jli"
+    LDFLAGS_JDKEXE_SUFFIX="-ljli"
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+###############################################################################
+#
+# statically link libstdc++ before C++ ABI is stablized on Linux unless
+# dynamic build is configured on command line.
+#
+# Check whether --enable-static-link-stdc++ was given.
+if test "${enable_static_link_stdc__+set}" = set; then :
+  enableval=$enable_static_link_stdc__;
+else
+
+		enable_static_link_stdc__=yes
+
+fi
+
+
+if test "x$HOST_OS" = xlinux; then
+    # Test if -lstdc++ works.
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if dynamic link of stdc++ is possible" >&5
+$as_echo_n "checking if dynamic link of stdc++ is possible... " >&6; }
+    ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+    OLD_CXXFLAGS="$CXXFLAGS"
+    CXXFLAGS="$CXXFLAGS -lstdc++"
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+return 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+  has_dynamic_libstdcxx=yes
+else
+  has_dynamic_libstdcxx=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+    CXXFLAGS="$OLD_CXXFLAGS"
+    ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $has_dynamic_libstdcxx" >&5
+$as_echo "$has_dynamic_libstdcxx" >&6; }
+
+    # Test if stdc++ can be linked statically.
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if static link of stdc++ is possible" >&5
+$as_echo_n "checking if static link of stdc++ is possible... " >&6; }
+    STATIC_STDCXX_FLAGS="-Wl,-Bstatic -lstdc++ -lgcc -Wl,-Bdynamic"
+    ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+    OLD_LIBS="$LIBS"
+    OLD_CXX="$CXX"
+    LIBS="$STATIC_STDCXX_FLAGS"
+    CXX="$CC"
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+return 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+  has_static_libstdcxx=yes
+else
+  has_static_libstdcxx=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+    LIBS="$OLD_LIBS"
+    CXX="$OLD_CXX"
+    ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $has_static_libstdcxx" >&5
+$as_echo "$has_static_libstdcxx" >&6; }
+
+    if test "x$has_static_libcxx" = xno && test "x$has_dynamic_libcxx" = xno; then
+        as_fn_error $? "I cannot link to stdc++! Neither dynamically nor statically." "$LINENO" 5
+    fi
+
+    if test "x$enable_static_link_stdc__" = xyes && test "x$has_static_libstdcxx" = xno; then
+        { $as_echo "$as_me:${as_lineno-$LINENO}: Static linking of libstdc++ was not possible reverting to dynamic linking." >&5
+$as_echo "$as_me: Static linking of libstdc++ was not possible reverting to dynamic linking." >&6;}
+        enable_static_link_stdc__=no
+    fi
+
+    if test "x$enable_static_link_stdc__" = xno && test "x$has_dynamic_libstdcxx" = xno; then
+        { $as_echo "$as_me:${as_lineno-$LINENO}: Dynamic linking of libstdc++ was not possible reverting to static linking." >&5
+$as_echo "$as_me: Dynamic linking of libstdc++ was not possible reverting to static linking." >&6;}
+        enable_static_link_stdc__=yes
+    fi
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libstdc++" >&5
+$as_echo_n "checking how to link with libstdc++... " >&6; }
+    if test "x$enable_static_link_stdc__" = xyes; then
+        LIBCXX="$LIBCXX $STATIC_STDCXX_FLAGS"
+        LDCXX="$CC"
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: static" >&5
+$as_echo "static" >&6; }
+    else
+        LIBCXX="$LIBCXX -lstdc++"
+        LDCXX="$CXX"
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: dynamic" >&5
+$as_echo "dynamic" >&6; }
+    fi
+fi
+
+###############################################################################
+#
+# Could someone enlighten this configure script with a comment about libCrun?
+# The LEGACY_HOST_CPU3 is the setting for ISA_DIR.
+#
+if test "x$HOST_OS" = xsolaris; then
+    LIBCXX="$LIBCXX /usr/lib${LEGACY_HOST_CPU3}/libCrun.so.1"
+fi
+
+
+
+###############################################################################
+#
+# Misc
+#
+
+# Control wether Hotspot runs Queens test after build.
+# Check whether --enable-hotspot-test-in-build was given.
+if test "${enable_hotspot_test_in_build+set}" = set; then :
+  enableval=$enable_hotspot_test_in_build;
+else
+  enable_hotspot_test_in_build=no
+fi
+
+if test "x$enable_hotspot_test_in_build" = "xyes"; then
+    TEST_IN_BUILD=true
+else
+    TEST_IN_BUILD=false
+fi
+
+
+###############################################################################
+#
+# A helpful message at the end of the configure run.
+#
+if test "x$CCACHE_FOUND" = x && test "x$GCC" = xyes; then
+    help_on_build_dependency ccache
+
+    printf "\nTip of the day:\nYou should really install ccache version 3.1.4 or newer.\n"
+    printf "It gives a tremendous speedup for C++ recompilations with precompiled headers!\n"
+fi
+
+if test "x$CCACHE_FOUND" != x && test "x$HAS_GOOD_CCACHE" = x; then
+    printf "You have a ccache installed, but it is a version prior to 3.1.4. Try upgrading.\n"
+fi
+
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems.  If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, we kill variables containing newlines.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(
+  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+    eval ac_val=\$$ac_var
+    case $ac_val in #(
+    *${as_nl}*)
+      case $ac_var in #(
+      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+      esac
+      case $ac_var in #(
+      _ | IFS | as_nl) ;; #(
+      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+      *) { eval $ac_var=; unset $ac_var;} ;;
+      esac ;;
+    esac
+  done
+
+  (set) 2>&1 |
+    case $as_nl`(ac_space=' '; set) 2>&1` in #(
+    *${as_nl}ac_space=\ *)
+      # `set' does not quote correctly, so add quotes: double-quote
+      # substitution turns \\\\ into \\, and sed turns \\ into \.
+      sed -n \
+	"s/'/'\\\\''/g;
+	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+      ;; #(
+    *)
+      # `set' quotes correctly as required by POSIX, so do not add quotes.
+      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+      ;;
+    esac |
+    sort
+) |
+  sed '
+     /^ac_cv_env_/b end
+     t clear
+     :clear
+     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+     t end
+     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+     :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+  if test -w "$cache_file"; then
+    test "x$cache_file" != "x/dev/null" &&
+      { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+$as_echo "$as_me: updating cache $cache_file" >&6;}
+    cat confcache >$cache_file
+  else
+    { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+  fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+DEFS=-DHAVE_CONFIG_H
+
+ac_libobjs=
+ac_ltlibobjs=
+U=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+  # 1. Remove the extension, and $U if already installed.
+  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+  ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
+  #    will be set to the directory where LIBOBJS objects are built.
+  as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+  as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+
+: ${CONFIG_STATUS=./config.status}
+ac_write_fail=0
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+as_write_fail=0
+cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='print -r --'
+  as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='printf %s\n'
+  as_echo_n='printf %s'
+else
+  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+    as_echo_n='/usr/ucb/echo -n'
+  else
+    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+    as_echo_n_body='eval
+      arg=$1;
+      case $arg in #(
+      *"$as_nl"*)
+	expr "X$arg" : "X\\(.*\\)$as_nl";
+	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+      esac;
+      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+    '
+    export as_echo_n_body
+    as_echo_n='sh -c $as_echo_n_body as_echo'
+  fi
+  export as_echo_body
+  as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  PATH_SEPARATOR=:
+  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+      PATH_SEPARATOR=';'
+  }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" ""	$as_nl"
+
+# Find who we are.  Look in the path if we contain no directory separator.
+case $0 in #((
+  *[\\/]* ) as_myself=$0 ;;
+  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+  done
+IFS=$as_save_IFS
+
+     ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+  as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there.  '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+  as_status=$1; test $as_status -eq 0 && as_status=1
+  if test "$4"; then
+    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+  fi
+  $as_echo "$as_me: error: $2" >&2
+  as_fn_exit $as_status
+} # as_fn_error
+
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+  return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+  set +e
+  as_fn_set_status $1
+  exit $1
+} # as_fn_exit
+
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+  { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+  eval 'as_fn_append ()
+  {
+    eval $1+=\$2
+  }'
+else
+  as_fn_append ()
+  {
+    eval $1=\$$1\$2
+  }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+  eval 'as_fn_arith ()
+  {
+    as_val=$(( $* ))
+  }'
+else
+  as_fn_arith ()
+  {
+    as_val=`expr "$@" || test $? -eq 1`
+  }
+fi # as_fn_arith
+
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+  case `echo 'xy\c'` in
+  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
+  xy)  ECHO_C='\c';;
+  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
+       ECHO_T='	';;
+  esac;;
+*)
+  ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+  rm -f conf$$.dir/conf$$.file
+else
+  rm -f conf$$.dir
+  mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+  if ln -s conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s='ln -s'
+    # ... but there are two gotchas:
+    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+    # In both cases, we have to default to `cp -p'.
+    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+      as_ln_s='cp -p'
+  elif ln conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s=ln
+  else
+    as_ln_s='cp -p'
+  fi
+else
+  as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || eval $as_mkdir_p || {
+    as_dirs=
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+      test -d "$as_dir" && break
+    done
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p='mkdir -p "$as_dir"'
+else
+  test -d ./-p && rmdir ./-p
+  as_mkdir_p=false
+fi
+
+if test -x / >/dev/null 2>&1; then
+  as_test_x='test -x'
+else
+  if ls -dL / >/dev/null 2>&1; then
+    as_ls_L_option=L
+  else
+    as_ls_L_option=
+  fi
+  as_test_x='
+    eval sh -c '\''
+      if test -d "$1"; then
+	test -d "$1/.";
+      else
+	case $1 in #(
+	-*)set "./$1";;
+	esac;
+	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
+	???[sx]*):;;*)false;;esac;fi
+    '\'' sh
+  '
+fi
+as_executable_p=$as_test_x
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+exec 6>&1
+## ----------------------------------- ##
+## Main body of $CONFIG_STATUS script. ##
+## ----------------------------------- ##
+_ASEOF
+test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# Save the log message, to keep $0 and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.
+ac_log="
+This file was extended by openjdk $as_me version-0.1, which was
+generated by GNU Autoconf 2.67.  Invocation command line was
+
+  CONFIG_FILES    = $CONFIG_FILES
+  CONFIG_HEADERS  = $CONFIG_HEADERS
+  CONFIG_LINKS    = $CONFIG_LINKS
+  CONFIG_COMMANDS = $CONFIG_COMMANDS
+  $ $0 $@
+
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
+_ACEOF
+
+case $ac_config_files in *"
+"*) set x $ac_config_files; shift; ac_config_files=$*;;
+esac
+
+case $ac_config_headers in *"
+"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
+esac
+
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+# Files that config.status was made for.
+config_files="$ac_config_files"
+config_headers="$ac_config_headers"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ac_cs_usage="\
+\`$as_me' instantiates files and other configuration actions
+from templates according to the current configuration.  Unless the files
+and actions are specified as TAGs, all are instantiated by default.
+
+Usage: $0 [OPTION]... [TAG]...
+
+  -h, --help       print this help, then exit
+  -V, --version    print version number and configuration settings, then exit
+      --config     print configuration, then exit
+  -q, --quiet, --silent
+                   do not print progress messages
+  -d, --debug      don't remove temporary files
+      --recheck    update $as_me by reconfiguring in the same conditions
+      --file=FILE[:TEMPLATE]
+                   instantiate the configuration file FILE
+      --header=FILE[:TEMPLATE]
+                   instantiate the configuration header FILE
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Report bugs to <build-infra-dev@openjdk.java.net>."
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ac_cs_version="\\
+openjdk config.status version-0.1
+configured by $0, generated by GNU Autoconf 2.67,
+  with options \\"\$ac_cs_config\\"
+
+Copyright (C) 2010 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+
+ac_pwd='$ac_pwd'
+srcdir='$srcdir'
+AWK='$AWK'
+test -n "\$AWK" || AWK=awk
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# The default lists apply if the user does not specify any file.
+ac_need_defaults=:
+while test $# != 0
+do
+  case $1 in
+  --*=?*)
+    ac_option=`expr "X$1" : 'X\([^=]*\)='`
+    ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
+    ac_shift=:
+    ;;
+  --*=)
+    ac_option=`expr "X$1" : 'X\([^=]*\)='`
+    ac_optarg=
+    ac_shift=:
+    ;;
+  *)
+    ac_option=$1
+    ac_optarg=$2
+    ac_shift=shift
+    ;;
+  esac
+
+  case $ac_option in
+  # Handling of the options.
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    ac_cs_recheck=: ;;
+  --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+    $as_echo "$ac_cs_version"; exit ;;
+  --config | --confi | --conf | --con | --co | --c )
+    $as_echo "$ac_cs_config"; exit ;;
+  --debug | --debu | --deb | --de | --d | -d )
+    debug=: ;;
+  --file | --fil | --fi | --f )
+    $ac_shift
+    case $ac_optarg in
+    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    '') as_fn_error $? "missing file argument" ;;
+    esac
+    as_fn_append CONFIG_FILES " '$ac_optarg'"
+    ac_need_defaults=false;;
+  --header | --heade | --head | --hea )
+    $ac_shift
+    case $ac_optarg in
+    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    esac
+    as_fn_append CONFIG_HEADERS " '$ac_optarg'"
+    ac_need_defaults=false;;
+  --he | --h)
+    # Conflict between --help and --header
+    as_fn_error $? "ambiguous option: \`$1'
+Try \`$0 --help' for more information.";;
+  --help | --hel | -h )
+    $as_echo "$ac_cs_usage"; exit ;;
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil | --si | --s)
+    ac_cs_silent=: ;;
+
+  # This is an error.
+  -*) as_fn_error $? "unrecognized option: \`$1'
+Try \`$0 --help' for more information." ;;
+
+  *) as_fn_append ac_config_targets " $1"
+     ac_need_defaults=false ;;
+
+  esac
+  shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+  exec 6>/dev/null
+  ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+if \$ac_cs_recheck; then
+  set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+  shift
+  \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+  CONFIG_SHELL='$SHELL'
+  export CONFIG_SHELL
+  exec "\$@"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+exec 5>>config.log
+{
+  echo
+  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+  $as_echo "$ac_log"
+} >&5
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+
+# Handling of arguments.
+for ac_config_target in $ac_config_targets
+do
+  case $ac_config_target in
+    "$OUTPUT_ROOT/config.h") CONFIG_HEADERS="$CONFIG_HEADERS $OUTPUT_ROOT/config.h:$AUTOCONF_DIR/config.h.in" ;;
+    "$OUTPUT_ROOT/spec.gmk") CONFIG_FILES="$CONFIG_FILES $OUTPUT_ROOT/spec.gmk:$AUTOCONF_DIR/spec.gmk.in" ;;
+    "$OUTPUT_ROOT/Makefile") CONFIG_FILES="$CONFIG_FILES $OUTPUT_ROOT/Makefile:$AUTOCONF_DIR/Makefile.in" ;;
+
+  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;;
+  esac
+done
+
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used.  Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+fi
+
+# Have a temporary directory for convenience.  Make it in the build tree
+# simply because there is no reason against having it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
+$debug ||
+{
+  tmp=
+  trap 'exit_status=$?
+  { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
+' 0
+  trap 'as_fn_exit 1' 1 2 13 15
+}
+# Create a (secure) tmp directory for tmp files.
+
+{
+  tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+  test -n "$tmp" && test -d "$tmp"
+}  ||
+{
+  tmp=./conf$$-$RANDOM
+  (umask 077 && mkdir "$tmp")
+} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+
+# Set up the scripts for CONFIG_FILES section.
+# No need to generate them if there are no CONFIG_FILES.
+# This happens for instance with `./config.status config.h'.
+if test -n "$CONFIG_FILES"; then
+
+
+ac_cr=`echo X | tr X '\015'`
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
+# But we know of no other shell where ac_cr would be empty at this
+# point, so we can use a bashism as a fallback.
+if test "x$ac_cr" = x; then
+  eval ac_cr=\$\'\\r\'
+fi
+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
+if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
+  ac_cs_awk_cr='\\r'
+else
+  ac_cs_awk_cr=$ac_cr
+fi
+
+echo 'BEGIN {' >"$tmp/subs1.awk" &&
+_ACEOF
+
+
+{
+  echo "cat >conf$$subs.awk <<_ACEOF" &&
+  echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
+  echo "_ACEOF"
+} >conf$$subs.sh ||
+  as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+  . ./conf$$subs.sh ||
+    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+
+  ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
+  if test $ac_delim_n = $ac_delim_num; then
+    break
+  elif $ac_last_try; then
+    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+  else
+    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+  fi
+done
+rm -f conf$$subs.sh
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
+_ACEOF
+sed -n '
+h
+s/^/S["/; s/!.*/"]=/
+p
+g
+s/^[^!]*!//
+:repl
+t repl
+s/'"$ac_delim"'$//
+t delim
+:nl
+h
+s/\(.\{148\}\)..*/\1/
+t more1
+s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
+p
+n
+b repl
+:more1
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t nl
+:delim
+h
+s/\(.\{148\}\)..*/\1/
+t more2
+s/["\\]/\\&/g; s/^/"/; s/$/"/
+p
+b
+:more2
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t delim
+' <conf$$subs.awk | sed '
+/^[^""]/{
+  N
+  s/\n//
+}
+' >>$CONFIG_STATUS || ac_write_fail=1
+rm -f conf$$subs.awk
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACAWK
+cat >>"\$tmp/subs1.awk" <<_ACAWK &&
+  for (key in S) S_is_set[key] = 1
+  FS = ""
+
+}
+{
+  line = $ 0
+  nfields = split(line, field, "@")
+  substed = 0
+  len = length(field[1])
+  for (i = 2; i < nfields; i++) {
+    key = field[i]
+    keylen = length(key)
+    if (S_is_set[key]) {
+      value = S[key]
+      line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
+      len += length(value) + length(field[++i])
+      substed = 1
+    } else
+      len += 1 + keylen
+  }
+
+  print line
+}
+
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
+  sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
+else
+  cat
+fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
+  || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
+_ACEOF
+
+# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
+# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+  ac_vpsub='/^[	 ]*VPATH[	 ]*=[	 ]*/{
+h
+s///
+s/^/:/
+s/[	 ]*$/:/
+s/:\$(srcdir):/:/g
+s/:\${srcdir}:/:/g
+s/:@srcdir@:/:/g
+s/^:*//
+s/:*$//
+x
+s/\(=[	 ]*\).*/\1/
+G
+s/\n//
+s/^[^=]*=[	 ]*$//
+}'
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+fi # test -n "$CONFIG_FILES"
+
+# Set up the scripts for CONFIG_HEADERS section.
+# No need to generate them if there are no CONFIG_HEADERS.
+# This happens for instance with `./config.status Makefile'.
+if test -n "$CONFIG_HEADERS"; then
+cat >"$tmp/defines.awk" <<\_ACAWK ||
+BEGIN {
+_ACEOF
+
+# Transform confdefs.h into an awk script `defines.awk', embedded as
+# here-document in config.status, that substitutes the proper values into
+# config.h.in to produce config.h.
+
+# Create a delimiter string that does not exist in confdefs.h, to ease
+# handling of long lines.
+ac_delim='%!_!# '
+for ac_last_try in false false :; do
+  ac_t=`sed -n "/$ac_delim/p" confdefs.h`
+  if test -z "$ac_t"; then
+    break
+  elif $ac_last_try; then
+    as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
+  else
+    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+  fi
+done
+
+# For the awk script, D is an array of macro values keyed by name,
+# likewise P contains macro parameters if any.  Preserve backslash
+# newline sequences.
+
+ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
+sed -n '
+s/.\{148\}/&'"$ac_delim"'/g
+t rset
+:rset
+s/^[	 ]*#[	 ]*define[	 ][	 ]*/ /
+t def
+d
+:def
+s/\\$//
+t bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3"/p
+s/^ \('"$ac_word_re"'\)[	 ]*\(.*\)/D["\1"]=" \2"/p
+d
+:bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3\\\\\\n"\\/p
+t cont
+s/^ \('"$ac_word_re"'\)[	 ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
+t cont
+d
+:cont
+n
+s/.\{148\}/&'"$ac_delim"'/g
+t clear
+:clear
+s/\\$//
+t bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/"/p
+d
+:bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
+b cont
+' <confdefs.h | sed '
+s/'"$ac_delim"'/"\\\
+"/g' >>$CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+  for (key in D) D_is_set[key] = 1
+  FS = ""
+}
+/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
+  line = \$ 0
+  split(line, arg, " ")
+  if (arg[1] == "#") {
+    defundef = arg[2]
+    mac1 = arg[3]
+  } else {
+    defundef = substr(arg[1], 2)
+    mac1 = arg[2]
+  }
+  split(mac1, mac2, "(") #)
+  macro = mac2[1]
+  prefix = substr(line, 1, index(line, defundef) - 1)
+  if (D_is_set[macro]) {
+    # Preserve the white space surrounding the "#".
+    print prefix "define", macro P[macro] D[macro]
+    next
+  } else {
+    # Replace #undef with comments.  This is necessary, for example,
+    # in the case of _POSIX_SOURCE, which is predefined and required
+    # on some systems where configure will not decide to define it.
+    if (defundef == "undef") {
+      print "/*", prefix defundef, macro, "*/"
+      next
+    }
+  }
+}
+{ print }
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+  as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
+fi # test -n "$CONFIG_HEADERS"
+
+
+eval set X "  :F $CONFIG_FILES  :H $CONFIG_HEADERS    "
+shift
+for ac_tag
+do
+  case $ac_tag in
+  :[FHLC]) ac_mode=$ac_tag; continue;;
+  esac
+  case $ac_mode$ac_tag in
+  :[FHL]*:*);;
+  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;;
+  :[FH]-) ac_tag=-:-;;
+  :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+  esac
+  ac_save_IFS=$IFS
+  IFS=:
+  set x $ac_tag
+  IFS=$ac_save_IFS
+  shift
+  ac_file=$1
+  shift
+
+  case $ac_mode in
+  :L) ac_source=$1;;
+  :[FH])
+    ac_file_inputs=
+    for ac_f
+    do
+      case $ac_f in
+      -) ac_f="$tmp/stdin";;
+      *) # Look for the file first in the build tree, then in the source tree
+	 # (if the path is not absolute).  The absolute path cannot be DOS-style,
+	 # because $ac_f cannot contain `:'.
+	 test -f "$ac_f" ||
+	   case $ac_f in
+	   [\\/$]*) false;;
+	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+	   esac ||
+	   as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;;
+      esac
+      case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+      as_fn_append ac_file_inputs " '$ac_f'"
+    done
+
+    # Let's still pretend it is `configure' which instantiates (i.e., don't
+    # use $as_me), people would be surprised to read:
+    #    /* config.h.  Generated by config.status.  */
+    configure_input='Generated from '`
+	  $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+	`' by configure.'
+    if test x"$ac_file" != x-; then
+      configure_input="$ac_file.  $configure_input"
+      { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+$as_echo "$as_me: creating $ac_file" >&6;}
+    fi
+    # Neutralize special characters interpreted by sed in replacement strings.
+    case $configure_input in #(
+    *\&* | *\|* | *\\* )
+       ac_sed_conf_input=`$as_echo "$configure_input" |
+       sed 's/[\\\\&|]/\\\\&/g'`;; #(
+    *) ac_sed_conf_input=$configure_input;;
+    esac
+
+    case $ac_tag in
+    *:-:* | *:-) cat >"$tmp/stdin" \
+      || as_fn_error $? "could not create $ac_file" "$LINENO" 5  ;;
+    esac
+    ;;
+  esac
+
+  ac_dir=`$as_dirname -- "$ac_file" ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$ac_file" : 'X\(//\)[^/]' \| \
+	 X"$ac_file" : 'X\(//\)$' \| \
+	 X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ac_file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+  as_dir="$ac_dir"; as_fn_mkdir_p
+  ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+  # A ".." for each directory in $ac_dir_suffix.
+  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+  case $ac_top_builddir_sub in
+  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+  esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+  .)  # We are building in place.
+    ac_srcdir=.
+    ac_top_srcdir=$ac_top_builddir_sub
+    ac_abs_top_srcdir=$ac_pwd ;;
+  [\\/]* | ?:[\\/]* )  # Absolute name.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir
+    ac_abs_top_srcdir=$srcdir ;;
+  *) # Relative name.
+    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_build_prefix$srcdir
+    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+  case $ac_mode in
+  :F)
+  #
+  # CONFIG_FILE
+  #
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# If the template does not know about datarootdir, expand it.
+# FIXME: This hack should be removed a few years after 2.60.
+ac_datarootdir_hack=; ac_datarootdir_seen=
+ac_sed_dataroot='
+/datarootdir/ {
+  p
+  q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p'
+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+  ac_datarootdir_hack='
+  s&@datadir@&$datadir&g
+  s&@docdir@&$docdir&g
+  s&@infodir@&$infodir&g
+  s&@localedir@&$localedir&g
+  s&@mandir@&$mandir&g
+  s&\\\${datarootdir}&$datarootdir&g' ;;
+esac
+_ACEOF
+
+# Neutralize VPATH when `$srcdir' = `.'.
+# Shell code in configure.ac might set extrasub.
+# FIXME: do we really want to maintain this feature?
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_sed_extra="$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s|@configure_input@|$ac_sed_conf_input|;t t
+s&@top_builddir@&$ac_top_builddir_sub&;t t
+s&@top_build_prefix@&$ac_top_build_prefix&;t t
+s&@srcdir@&$ac_srcdir&;t t
+s&@abs_srcdir@&$ac_abs_srcdir&;t t
+s&@top_srcdir@&$ac_top_srcdir&;t t
+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
+s&@builddir@&$ac_builddir&;t t
+s&@abs_builddir@&$ac_abs_builddir&;t t
+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+$ac_datarootdir_hack
+"
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
+  || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+  { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
+  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined.  Please make sure it is defined" >&5
+$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined.  Please make sure it is defined" >&2;}
+
+  rm -f "$tmp/stdin"
+  case $ac_file in
+  -) cat "$tmp/out" && rm -f "$tmp/out";;
+  *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
+  esac \
+  || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ ;;
+  :H)
+  #
+  # CONFIG_HEADER
+  #
+  if test x"$ac_file" != x-; then
+    {
+      $as_echo "/* $configure_input  */" \
+      && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
+    } >"$tmp/config.h" \
+      || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+    if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
+      { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
+$as_echo "$as_me: $ac_file is unchanged" >&6;}
+    else
+      rm -f "$ac_file"
+      mv "$tmp/config.h" "$ac_file" \
+	|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
+    fi
+  else
+    $as_echo "/* $configure_input  */" \
+      && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
+      || as_fn_error $? "could not create -" "$LINENO" 5
+  fi
+ ;;
+
+
+  esac
+
+done # for ac_tag
+
+
+as_fn_exit 0
+_ACEOF
+ac_clean_files=$ac_clean_files_save
+
+test $ac_write_fail = 0 ||
+  as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded.  So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status.  When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+  ac_cs_success=:
+  ac_config_status_args=
+  test "$silent" = yes &&
+    ac_config_status_args="$ac_config_status_args --quiet"
+  exec 5>/dev/null
+  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+  exec 5>>config.log
+  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+  # would make configure fail if this is the last instruction.
+  $ac_cs_success || as_fn_exit 1
+fi
+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+fi
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/autoconf/configure.ac	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,2651 @@
+#
+# 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.
+#
+
+AC_PREREQ([2.61])
+AC_INIT(openjdk, version-0.1, build-infra-dev@openjdk.java.net)
+
+AC_CONFIG_AUX_DIR([build-aux])
+
+m4_include([build-aux/pkg.m4])
+m4_include([builddeps.m4])
+m4_include([platform.m4])
+m4_include([cores.m4])
+m4_include([help.m4])
+
+# Save the command line. Do this very early, before it is lost by calling autoconf macros.
+CONFIGURE_COMMAND_LINE="$@"
+AC_SUBST(CONFIGURE_COMMAND_LINE)
+
+# Locate the directory of this script.
+SCRIPT="[$]0"
+REMOVE_SYMBOLIC_LINKS(SCRIPT)        
+AUTOCONF_DIR=`dirname [$]0`
+
+# Start with tools that do not need have cross compilation support
+# and can be expected to be found in the default PATH. These tools are
+# used by configure. Nor are these tools expected to be found in the
+# devkit from the builddeps server either, since they are
+# needed to download the devkit. 
+AC_PROG_AWK
+CHECK_NONEMPTY(AWK)
+AC_PATH_PROG(CAT, cat)
+CHECK_NONEMPTY(CAT)
+AC_PATH_PROG(CHMOD, chmod)
+CHECK_NONEMPTY(CHMOD)
+AC_PATH_PROG(CP, cp)
+CHECK_NONEMPTY(CP)
+AC_PATH_PROG(CPIO, cpio)
+CHECK_NONEMPTY(CPIO)
+AC_PATH_PROG(CUT, cut)
+CHECK_NONEMPTY(CUT)
+AC_PATH_PROG(DATE, date)
+CHECK_NONEMPTY(DATE)
+AC_PATH_PROG(DF, df)
+CHECK_NONEMPTY(DF)
+AC_PATH_PROG(DIFF, diff)
+CHECK_NONEMPTY(DIFF)
+# Warning echo is really, really unportable!!!!! Different
+# behaviour in bash and dash and in a lot of other shells!
+# Use printf for serious work! 
+AC_PATH_PROG(ECHO, echo)
+CHECK_NONEMPTY(ECHO)
+AC_PROG_EGREP
+CHECK_NONEMPTY(EGREP)
+AC_PROG_FGREP
+CHECK_NONEMPTY(FGREP)
+
+AC_PATH_PROG(FIND, find)
+CHECK_NONEMPTY(FIND)
+CHECK_FIND_DELETE
+AC_SUBST(FIND_DELETE)
+
+AC_PROG_GREP
+CHECK_NONEMPTY(GREP)
+AC_PATH_PROG(HEAD, head)
+CHECK_NONEMPTY(HEAD)
+AC_PATH_PROG(LN, ln)
+CHECK_NONEMPTY(LN)
+AC_PATH_PROG(LS, ls)
+CHECK_NONEMPTY(LS)
+AC_PATH_PROGS(MAKE, [gmake make])
+CHECK_NONEMPTY(MAKE)
+MAKE_VERSION=`$MAKE --version | head -n 1 | grep '3.8[[12346789]]'`
+if test "x$MAKE_VERSION" = x; then
+    AC_ERROR([You must use GNU make 3.81 or newer! Please put it in the path.])
+fi
+AC_PATH_PROG(MKDIR, mkdir)
+CHECK_NONEMPTY(MKDIR)
+AC_PATH_PROG(MV, mv)
+CHECK_NONEMPTY(MV)
+AC_PATH_PROGS(NAWK, [nawk gawk awk])
+CHECK_NONEMPTY(NAWK)
+AC_PATH_PROG(PRINTF, printf)
+CHECK_NONEMPTY(PRINTF)
+AC_PATH_PROG(THEPWDCMD, pwd)
+AC_PATH_PROG(RM, rm)
+CHECK_NONEMPTY(RM)
+RM="$RM -f"
+AC_PROG_SED
+CHECK_NONEMPTY(SED)
+AC_PATH_PROG(SH, sh)
+CHECK_NONEMPTY(SH)
+AC_PATH_PROG(SORT, sort)
+CHECK_NONEMPTY(SORT)
+AC_PATH_PROG(TAR, tar)
+CHECK_NONEMPTY(TAR)
+AC_PATH_PROG(TAIL, tail)
+CHECK_NONEMPTY(TAIL)
+AC_PATH_PROG(TEE, tee)
+CHECK_NONEMPTY(TEE)
+AC_PATH_PROG(TR, tr)
+CHECK_NONEMPTY(TR)
+AC_PATH_PROG(TOUCH, touch)
+CHECK_NONEMPTY(TOUCH)
+AC_PATH_PROG(WC, wc)
+CHECK_NONEMPTY(WC)
+AC_PATH_PROG(XARGS, xargs)
+CHECK_NONEMPTY(XARGS)
+AC_PATH_PROG(ZIP, zip)
+CHECK_NONEMPTY(ZIP)
+AC_PATH_PROG(UNZIP, unzip)
+CHECK_NONEMPTY(UNZIP)
+AC_PATH_PROG(LDD, ldd)
+if test "x$LDD" = "x"; then
+    # List shared lib dependencies is used for
+    # debug output and checking for forbidden dependencies.
+    # We can build without it.
+    LDD="true"
+fi
+AC_PATH_PROG(OTOOL, otool)
+if test "x$OTOOL" = "x"; then
+   OTOOL="true"
+fi
+AC_PATH_PROG(READELF, readelf)
+AC_PATH_PROG(EXPR, expr)
+CHECK_NONEMPTY(EXPR)
+AC_PATH_PROG(FILE, file)
+CHECK_NONEMPTY(FILE)
+# Figure out the build and host system.
+AC_CANONICAL_BUILD
+AC_CANONICAL_HOST
+
+AC_ARG_WITH(data-model, [AS_HELP_STRING([--with-data-model],
+   [build 32-bit or 64-bit binaries (for platforms that support it), e.g. --with-data-model=32 @<:@guessed@:>@])])
+
+if test "x$with_data_model" != x && \
+   test "x$with_data_model" != x32 && \
+   test "x$with_data_model" != x64 ; then
+    AC_ERROR([The data model can only be 32 or 64!])
+fi
+# Translate the standard cpu-vendor-kernel-os quadruplets into
+# the new HOST_.... and BUILD_... and the legacy names used by
+# the openjdk build.
+# It uses $host_os $host_cpu $build_os $build_cpu and $with_data_model
+EXTRACT_HOST_AND_BUILD_AND_LEGACY_VARS
+# Now the following vars are defined.
+# HOST_OS=aix,bsd,hpux,linux,macosx,solaris,windows
+# HOST_OS_FAMILY=bsd,gnu,sysv,win32,wince
+# HOST_OS_API=posix,winapi
+#
+# HOST_CPU=ia32,x64,sparc,sparcv9,arm,arm64,ppc,ppc64
+# HOST_CPU_ARCH=x86,sparc,pcc,arm
+# HOST_CPU_BITS=32,64
+# HOST_CPU_ENDIAN=big,little
+#
+# There is also a:
+# LEGACY_HOST_CPU1=i586,amd64,....  # used to set the old var ARCH
+# LEGACY_HOST_CPU2=i386,amd64,.... # used to set the old var LIBARCH
+# LEGACY_HOST_CPU3=only sparcv9,amd64 # used to set the ISA_DIR on Solaris
+# There was also a BUILDARCH that had i486,amd64,... but we do not use that
+# in the new build.
+# LEGACY_HOST_OS_API=solaris,windows # used to select source roots
+
+DATE_WHEN_CONFIGURED=`LANG=C date`
+AC_SUBST(DATE_WHEN_CONFIGURED)
+
+# How many cores do we have on this build system?
+AC_ARG_WITH(num-cores, [AS_HELP_STRING([--with-num-cores],
+    [number of cores in the build system, e.g. --with-num-cores=8 @<:@probed@:>@])])
+if test "x$with_num_cores" = x; then
+    # The number of cores were not specified, try to probe them.
+    CHECK_CORES
+else
+    NUM_CORES=$with_num_cores
+    CONCURRENT_BUILD_JOBS=`expr $NUM_CORES \* 2`
+fi
+AC_SUBST(NUM_CORES)
+AC_SUBST(CONCURRENT_BUILD_JOBS)
+
+# How many cores do we have on this build system?
+AC_ARG_WITH(memory-size, [AS_HELP_STRING([--with-memory-size],
+    [memory (in MB) available in the build system, e.g. --with-memory-size=1024 @<:@probed@:>@])])
+if test "x$with_memory_size" = x; then
+    # The memory size was not specified, try to probe it.
+    CHECK_MEMORY_SIZE
+else
+    MEMORY_SIZE=$with_memory_size
+fi
+AC_SUBST(MEMORY_SIZE)
+
+# Where is the source? It is located two levels above the configure script.
+CURDIR="$PWD"
+cd "$AUTOCONF_DIR/../.."
+SRC_ROOT="`pwd`"
+AC_SUBST(SRC_ROOT)
+cd "$CURDIR"
+
+# For cygwin we need cygpath first, since it is used everywhere.
+AC_PATH_PROG(CYGPATH, cygpath)
+PATH_SEP=":"
+if test "x$BUILD_OS" = "xwindows"; then
+    if test "x$CYGPATH" = x; then
+        AC_ERROR([Something is wrong with your cygwin installation since I cannot find cygpath.exe in your path])
+    fi
+    PATH_SEP=";"
+fi
+AC_SUBST(PATH_SEP)
+
+SPACESAFE(SRC_ROOT,[the path to the source root])
+SPACESAFE(CURDIR,[the path to the current directory])
+
+if test "x$BUILD_OS" = "xsolaris"; then
+    # Also search in /usr/ccs/bin for utilities like ar and as.
+    PATH="/usr/ccs/bin:$PATH"
+fi
+
+###############################################################################
+#
+# OpenJDK or closed
+#
+AC_ARG_ENABLE([openjdk], [AS_HELP_STRING([--enable-openjdk],
+    [build OpenJDK regardless of the presence of closed repositories @<:@disabled@:>@])],,)
+
+if test "x$enable_openjdk" = "xyes"; then
+    OPENJDK=true
+elif test "x$enable_openjdk" = "xno"; then
+    OPENJDK=false
+elif test -d "$SRC_ROOT/jdk/src/closed"; then
+    OPENJDK=false
+else
+    OPENJDK=true
+fi
+
+if test "x$OPENJDK" = "xtrue"; then
+    SET_OPENJDK=OPENJDK=true
+fi
+
+AC_SUBST(SET_OPENJDK)
+
+###############################################################################
+#
+# JIGSAW or not.  The JIGSAW variable is used during the intermediate
+# stage when we are building both the old style JDK and the new style modularized JDK.
+# When the modularized JDK is finalized, this option will go away.
+#
+AC_ARG_ENABLE([jigsaw], [AS_HELP_STRING([--enable-jigsaw],
+    [build Jigsaw images (not yet available) @<:@disabled@:>@])],,)
+
+if test "x$enable_jigsaw" = "xyes"; then
+    JIGSAW=true
+else
+    JIGSAW=false
+fi
+AC_SUBST(JIGSAW)
+
+###############################################################################
+#
+# Check which variant of the JDK that we want to build.
+# Currently we have:
+#    normal:   standard edition   
+#    embedded: cut down to a smaller footprint
+#
+# Effectively the JDK variant gives a name to a specific set of
+# modules to compile into the JDK. In the future, these modules
+# might even be Jigsaw modules.
+#
+AC_MSG_CHECKING([which variant of the JDK to build])
+AC_ARG_WITH([jdk-variant], [AS_HELP_STRING([--with-jdk-variant],
+	[JDK variant to build (normal, embedded) @<:@normal@:>@])])
+
+if test "x$with_jdk_variant" = xnormal || test "x$with_jdk_variant" = x; then
+    JAVASE_EMBEDDED=""
+    MINIMIZE_RAM_USAGE=""
+    JDK_VARIANT="normal"
+elif test "x$with_jdk_variant" = xembedded; then
+    JAVASE_EMBEDDED="JAVASE_EMBEDDED:=true"
+    MINIMIZE_RAM_USAGE="MINIMIZE_RAM_USAGE:=true"
+    JDK_VARIANT="embedded"
+else
+    AC_ERROR([The available JDK variants are: normal, embedded])
+fi
+                              
+AC_SUBST(JAVASE_EMBEDDED)
+AC_SUBST(MINIMIZE_RAM_USAGE)
+AC_SUBST(JDK_VARIANT)
+
+AC_MSG_RESULT([$JDK_VARIANT])
+
+###############################################################################
+#
+# Should we build a JDK/JVM with head support (ie a graphical ui)?
+# We always build headless support.
+#
+AC_MSG_CHECKING([headful support])
+AC_ARG_ENABLE([headful], [AS_HELP_STRING([--disable-headful],
+	[build headful support (graphical UI support) @<:@enabled@:>@])],
+    [SUPPORT_HEADFUL=${enable_headful}], [SUPPORT_HEADFUL=yes])
+
+SUPPORT_HEADLESS=yes
+BUILD_HEADLESS="BUILD_HEADLESS:=true"
+
+if test "x$SUPPORT_HEADFUL" = xyes; then
+    # We are building both headful and headless.
+    BUILD_HEADLESS_ONLY=""
+    headful_msg="inlude support for both headful and headless"
+fi
+
+if test "x$SUPPORT_HEADFUL" = xno; then
+    # Thus we are building headless only.
+    BUILD_HEADLESS="BUILD_HEADLESS:=true"
+    BUILD_HEADLESS_ONLY="BUILD_HEADLESS_ONLY:=true"
+    headful_msg="headless only"
+fi
+
+AC_MSG_RESULT([$headful_msg])
+
+AC_SUBST(SUPPORT_HEADLESS)
+AC_SUBST(SUPPORT_HEADFUL)
+AC_SUBST(BUILD_HEADLESS)
+AC_SUBST(BUILD_HEADLESS_ONLY)
+
+###############################################################################
+#
+# Check which variants of the JVM that we want to build.
+# Currently we have:
+#    server: normal interpreter and a tiered C1/C2 compiler
+#    client: normal interpreter and C1 (no C2 compiler) (only 32-bit platforms)
+#    kernel: kernel footprint JVM that passes the TCK without major performance problems,
+#             ie normal interpreter and C1, only the serial GC, kernel jvmti etc
+#    zero: no machine code interpreter, no compiler
+#    zeroshark: zero interpreter and shark/llvm compiler backend
+AC_MSG_CHECKING([which variants of the JVM that should be built])
+AC_ARG_WITH([jvm-variants], [AS_HELP_STRING([--with-jvm-variants],
+	[JVM variants (separated by commas) to build (server, client, kernel, zero, zeroshark) @<:@server@:>@])])
+
+if test "x$with_jvm_variants" = x; then
+    if test "x$JDK_VARIANT" = xembedded; then
+        with_jvm_variants="kernel"
+    elif test "x$HOST_CPU_BITS" = x64; then
+        with_jvm_variants="server"
+    else
+        # Yes, on 32-bit machines, the same source (almost) is compiled twice
+        # to generate two libjvm.so files. Fun, fun.
+        with_jvm_variants="client,server"
+    fi
+fi
+
+JVM_VARIANTS=",$with_jvm_variants,"
+TEST_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/server,//' -e 's/client,//' -e 's/kernel,//' -e 's/zero,//' -e 's/zeroshark,//'`
+
+if test "x$TEST_VARIANTS" != "x,"; then
+   AC_ERROR([The available JVM variants are: server, client, kernel, zero, zeroshark])
+fi   
+AC_MSG_RESULT([$with_jvm_variants])
+
+JVM_VARIANT_SERVER=`$ECHO "$JVM_VARIANTS" | $SED -e '/,server,/!s/.*/false/g' -e '/,server,/s/.*/true/g'`
+JVM_VARIANT_CLIENT=`$ECHO "$JVM_VARIANTS" | $SED -e '/,client,/!s/.*/false/g' -e '/,client,/s/.*/true/g'` 
+JVM_VARIANT_KERNEL=`$ECHO "$JVM_VARIANTS" | $SED -e '/,kernel,/!s/.*/false/g' -e '/,kernel,/s/.*/true/g'`
+JVM_VARIANT_ZERO=`$ECHO "$JVM_VARIANTS" | $SED -e '/,zero,/!s/.*/false/g' -e '/,zero,/s/.*/true/g'`
+JVM_VARIANT_ZEROSHARK=`$ECHO "$JVM_VARIANTS" | $SED -e '/,zeroshark,/!s/.*/false/g' -e '/,zeroshark,/s/.*/true/g'`
+
+if test "x$JVM_VARIANT_CLIENT" = xtrue; then
+    if test "x$HOST_CPU_BITS" = x64; then
+        AC_ERROR([You cannot build a client JVM for a 64-bit machine.])
+    fi
+fi
+if test "x$JVM_VARIANT_KERNEL" = xtrue; then
+    if test "x$HOST_CPU_BITS" = x64; then
+        AC_ERROR([You cannot build a kernel JVM for a 64-bit machine.])
+    fi
+fi
+
+COUNT_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/server,/1/' -e 's/client,/1/' -e 's/kernel,/1/' -e 's/zero,/1/' -e 's/zeroshark,/1/'`
+# Replace the commas with AND for use in the build directory name.
+ANDED_JVM_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/^,//' -e 's/,$//' -e 's/,/AND/'`
+if test "x$COUNT_VARIANTS" != "x,1"; then
+    AC_MSG_NOTICE([NOTE! Longer build time since we are building more than one version of the libjvm! $with_jvm_variants])
+fi
+
+AC_SUBST(JVM_VARIANTS)
+AC_SUBST(JVM_VARIANT_SERVER)
+AC_SUBST(JVM_VARIANT_CLIENT)
+AC_SUBST(JVM_VARIANT_KERNEL)
+AC_SUBST(JVM_VARIANT_ZERO)
+AC_SUBST(JVM_VARIANT_ZEROSHARK)
+
+###############################################################################
+#
+# Set the debug level
+#    release: no debug information, all optimizations, no asserts.
+#    fastdebug: debug information (-g), all optimizations, all asserts
+#    slowdebug: debug information (-g), no optimizations, all asserts
+#
+DEBUG_LEVEL="release"              
+AC_MSG_CHECKING([which debug level to use])
+AC_ARG_ENABLE([debug], [AS_HELP_STRING([--enable-debug],
+	[set the debug level to fastdebug (shorthand for --with-debug-level=fastdebug) @<:@disabled@:>@])],
+	[
+        ENABLE_DEBUG="${enableval}"
+        DEBUG_LEVEL="fastdebug"
+    ], [ENABLE_DEBUG="no"])
+
+AC_ARG_WITH([debug-level], [AS_HELP_STRING([--with-debug-level],
+	[set the debug level (release, fastdebug, slowdebug) @<:@release@:>@])],
+	[
+        DEBUG_LEVEL="${withval}"
+        if test "x$ENABLE_DEBUG" = xyes; then
+			AC_ERROR([You cannot use both --enable-debug and --with-debug-level at the same time.])
+        fi
+    ])
+AC_MSG_RESULT([$DEBUG_LEVEL])
+
+if test "x$DEBUG_LEVEL" != xrelease && \
+   test "x$DEBUG_LEVEL" != xfastdebug && \
+   test "x$DEBUG_LEVEL" != xslowdebug; then
+   AC_ERROR([Allowed debug levels are: release, fastdebug and slowdebug])
+fi
+
+case $DEBUG_LEVEL in
+      release )
+          VARIANT="OPT"
+          FASTDEBUG="false"
+          DEBUG_CLASSFILES="false"            
+          BUILD_VARIANT_RELEASE=""             
+           ;;
+      fastdebug )
+          VARIANT="DBG"
+          FASTDEBUG="true"
+          DEBUG_CLASSFILES="true"            
+          BUILD_VARIANT_RELEASE="-fastdebug"
+           ;;
+      slowdebug )
+          VARIANT="DBG"
+          FASTDEBUG="false"
+          DEBUG_CLASSFILES="true"            
+          BUILD_VARIANT_RELEASE="-debug"             
+           ;;
+esac
+
+AC_SUBST(DEBUG_LEVEL)
+AC_SUBST(VARIANT)
+AC_SUBST(FASTDEBUG)
+AC_SUBST(DEBUG_CLASSFILES)
+AC_SUBST(BUILD_VARIANT_RELEASE)
+
+# Source the version numbers
+. $AUTOCONF_DIR/version.numbers
+if test "x$OPENJDK" = "xfalse"; then
+    . $AUTOCONF_DIR/closed.version.numbers
+fi
+# Now set the JDK version, milestone, build number etc.
+AC_SUBST(JDK_MAJOR_VERSION)
+AC_SUBST(JDK_MINOR_VERSION)
+AC_SUBST(JDK_MICRO_VERSION)
+AC_SUBST(JDK_UPDATE_VERSION)
+AC_SUBST(JDK_BUILD_NUMBER)
+AC_SUBST(MILESTONE)
+AC_SUBST(LAUNCHER_NAME)
+AC_SUBST(PRODUCT_NAME)
+AC_SUBST(PRODUCT_SUFFIX)
+AC_SUBST(JDK_RC_PLATFORM_NAME)
+AC_SUBST(COMPANY_NAME)
+
+COPYRIGHT_YEAR=`date +'%Y'`
+AC_SUBST(COPYRIGHT_YEAR)
+
+RUNTIME_NAME="$PRODUCT_NAME $PRODUCT_SUFFIX"
+AC_SUBST(RUNTIME_NAME)
+
+if test "x$JDK_UPDATE_VERSION" != x; then
+    JDK_VERSION="${JDK_MAJOR_VERSION}.${JDK_MINOR_VERSION}.${JDK_MICRO_VERSION}_${JDK_UPDATE_VERSION}"
+else
+    JDK_VERSION="${JDK_MAJOR_VERSION}.${JDK_MINOR_VERSION}.${JDK_MICRO_VERSION}"
+fi
+AC_SUBST(JDK_VERSION)
+
+if test "x$MILESTONE" != x; then
+    RELEASE="${JDK_VERSION}-${MILESTONE}${BUILD_VARIANT_RELEASE}"
+else
+    RELEASE="${JDK_VERSION}${BUILD_VARIANT_RELEASE}"
+fi
+AC_SUBST(RELEASE)
+
+if test "x$JDK_BUILD_NUMBER" != x; then
+    FULL_VERSION="${RELEASE}-${JDK_BUILD_NUMBER}"
+else
+    JDK_BUILD_NUMBER=b00
+    BUILD_DATE=`date '+%Y_%m_%d_%H_%M'`
+    # Avoid [:alnum:] since it depends on the locale.
+    CLEAN_USERNAME=`echo "$USER" | $TR -d -c 'abcdefghijklmnopqrstuvqxyz0123456789'`
+    USER_RELEASE_SUFFIX=`echo "${CLEAN_USERNAME}_${BUILD_DATE}" | $TR 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvqxyz'`
+    FULL_VERSION="${RELEASE}-${USER_RELEASE_SUFFIX}-${JDK_BUILD_NUMBER}"
+fi
+AC_SUBST(FULL_VERSION)
+COOKED_BUILD_NUMBER=`$ECHO $JDK_BUILD_NUMBER | $SED -e 's/^b//' -e 's/^0//'`
+AC_SUBST(COOKED_BUILD_NUMBER)
+
+# Test from where we are running configure, in or outside of src root.
+if test "x$CURDIR" = "x$SRC_ROOT" || test "x$CURDIR" = "x$SRC_ROOT/common" || test "x$CURDIR" = "x$SRC_ROOT/common/autoconf" || test "x$CURDIR" = "x$SRC_ROOT/common/makefiles" ; then
+    # We are running configure from the src root.
+    # Create a default ./build/host-variant-debuglevel output root.
+    OUTPUT_ROOT="$SRC_ROOT/build/${HOST_OS}-${HOST_CPU}-${JDK_VARIANT}-${ANDED_JVM_VARIANTS}-${DEBUG_LEVEL}"
+    mkdir -p "$OUTPUT_ROOT"
+    if test ! -d "$OUTPUT_ROOT"; then
+        AC_ERROR([Could not create build directory $OUTPUT_ROOT])
+    fi
+else
+    # We are running configure from outside of the src dir.
+    # Then use the current directory as output dir!
+    OUTPUT_ROOT="$CURDIR"
+fi
+
+SPACESAFE(OUTPUT_ROOT,[the path to the output root])
+
+# Save the arguments given to us
+echo "$CONFIGURE_COMMAND_LINE" > $OUTPUT_ROOT/configure-arguments
+
+# Check if the VS env variables were setup prior to running configure.
+# If not, then find vcvarsall.bat and run it automatically, and integrate
+# the set env variables into the spec file.
+SETUPDEVENV="# No special vars"
+if test "x$BUILD_OS" = "xwindows"; then
+    # If vcvarsall.bat has been run, then VCINSTALLDIR is set.
+    if test "x$VCINSTALLDIR" != x; then
+        # No further setup is needed. The build will happen from this kind
+        # of shell.
+        SETUPDEVENV="# This spec file expects that you are running bash from within a VS command prompt."
+        # Make sure to remind you, if you forget to run make from a cygwin bash shell
+        # that is spawned "bash -l" from a VS command prompt.
+        CHECK_FOR_VCINSTALLDIR=yes
+        AC_MSG_CHECKING([if you are running from within a VS command prompt])
+        AC_MSG_RESULT([yes])
+    else
+        # Ah, we have not yet run vcvarsall.bat/vsvars32.bat/vsvars64.bat. Lets do that. First find it.
+        if test "x$VS100COMNTOOLS" != x; then
+            VARSBAT=`find "$VS100COMNTOOLS/../.." -name vcvarsall.bat`
+	    SEARCH_ROOT="$VS100COMNTOOLS"
+        else
+            VARSBAT=`find "$PROGRAMFILES" -name vcvarsall.bat`
+	    SEARCH_ROOT="$PROGRAMFILES"
+        fi
+        VCPATH=`dirname "$VARSBAT"`
+        VCPATH=`cygpath -w "$VCPATH"`
+	if test "x$VARSBAT" = x || test ! -d "$VCPATH"; then
+            AC_MSG_CHECKING([if we can find the VS installation])
+            AC_MSG_RESULT([no])
+            AC_ERROR([Tried to find a VS installation using both $SEARCH_ROOT but failed. Please run "c:\\cygwin\\bin\\bash.exe -l" from a VS command prompt and then run configure/make from there.])
+        fi
+        case "$LEGACY_HOST_CPU1" in
+          i?86)
+            VARSBAT_ARCH=x86
+            ;;
+          *)
+            VARSBAT_ARCH=$LEGACY_HOST_CPU1
+            ;;
+        esac
+        # Lets extract the variables that are set by vcvarsall.bat/vsvars32.bat/vsvars64.bat
+        cd $OUTPUT_ROOT
+        $SRC_ROOT/common/bin/extractvcvars.sh "$VARSBAT" "$VARSBAT_ARCH"
+	cd $CURDIR
+	if test ! -s $OUTPUT_ROOT/localdevenv.sh || test ! -s $OUTPUT_ROOT/localdevenv.gmk; then
+            AC_MSG_CHECKING([if we can extract the needed env variables])
+            AC_MSG_RESULT([no])
+            AC_ERROR([Could not succesfully extract the env variables needed for the VS setup. Please run "c:\\cygwin\\bin\\bash.exe -l" from a VS command prompt and then run configure/make from there.])
+        fi 
+        # Now set all paths and other env variables. This will allow the rest of 
+        # the configure script to find and run the compiler in the proper way.
+        . $OUTPUT_ROOT/localdevenv.sh
+        AC_MSG_CHECKING([if we can find the VS installation])
+	if test "x$VCINSTALLDIR" != x; then 
+            AC_MSG_RESULT([$VCINSTALLDIR])
+        else 
+            AC_MSG_RESULT([no])
+            AC_ERROR([Could not find VS installation. Please install. If you are sure you have installed VS, then please run "c:\\cygwin\\bin\\bash.exe -l" from a VS command prompt and then run configure/make from there.])
+        fi
+        CHECK_FOR_VCINSTALLDIR=no
+	SETUPDEVENV="include $OUTPUT_ROOT/localdevenv.gmk"
+
+	AC_MSG_CHECKING([for msvcr100.dll])
+        AC_ARG_WITH(msvcr100dll, [AS_HELP_STRING([--with-msvcr100dll],
+            [copy this msvcr100.dll into the built JDK])])
+        if test "x$with_msvcr100dll" != x; then
+            MSVCR100DLL="$with_msvcr100dll"
+        else
+            if test "x$HOST_CPU_BITS" = x64; then
+                MSVCR100DLL=`find "$VCINSTALLDIR/.." -name msvcr100.dll | grep x64 | head --lines 1`
+            else
+                MSVCR100DLL=`find "$VCINSTALLDIR/.." -name msvcr100.dll | grep x86 | grep -v ia64 | grep -v x64 | head --lines 1`
+                if test "x$MSVCR100DLL" = x; then
+                    MSVCR100DLL=`find "$VCINSTALLDIR/.." -name msvcr100.dll | head --lines 1`
+                fi
+            fi
+        fi
+	if test "x$MSVCR100DLL" = x; then
+           AC_MSG_RESULT([no])
+	   AC_ERROR([Could not find msvcr100.dll !])
+        fi
+        AC_MSG_RESULT([$MSVCR100DLL])
+	SPACESAFE(MSVCR100DLL,[the path to msvcr100.dll])
+    fi
+fi
+AC_SUBST(SETUPDEVENV)
+AC_SUBST(CHECK_FOR_VCINSTALLDIR)
+AC_SUBST(MSVCR100DLL)
+
+# Most of the probed defines are put into config.h
+AC_CONFIG_HEADERS([$OUTPUT_ROOT/config.h:$AUTOCONF_DIR/config.h.in])
+# The spec.gmk file contains all variables for the make system.
+AC_CONFIG_FILES([$OUTPUT_ROOT/spec.gmk:$AUTOCONF_DIR/spec.gmk.in])
+# The generated Makefile knows where the spec.gmk is and where the source is.
+# You can run make from the OUTPUT_ROOT. If you have only
+# one configured host, then you can also run make from the SRC_ROOT,
+# since it will go look for a single spec.gmk file. Or perhaps it
+# should instead make all configured hosts it can find?
+AC_CONFIG_FILES([$OUTPUT_ROOT/Makefile:$AUTOCONF_DIR/Makefile.in])
+
+AC_SUBST(SPEC, $OUTPUT_ROOT/spec.gmk)
+AC_SUBST(OUTPUT_ROOT, $OUTPUT_ROOT)
+
+# Where are the sources. Any of these can be overridden
+# using --with-override-corba and the likes.
+LANGTOOLS_TOPDIR="$SRC_ROOT/langtools"
+CORBA_TOPDIR="$SRC_ROOT/corba"
+JAXP_TOPDIR="$SRC_ROOT/jaxp"
+JAXWS_TOPDIR="$SRC_ROOT/jaxws"
+HOTSPOT_TOPDIR="$SRC_ROOT/hotspot"
+JDK_TOPDIR="$SRC_ROOT/jdk"
+AC_SUBST(LANGTOOLS_TOPDIR)
+AC_SUBST(CORBA_TOPDIR)
+AC_SUBST(JAXP_TOPDIR)
+AC_SUBST(JAXWS_TOPDIR)
+AC_SUBST(HOTSPOT_TOPDIR)
+AC_SUBST(JDK_TOPDIR)
+
+# Check if pkg-config is available.
+PKG_PROG_PKG_CONFIG
+
+AC_ARG_WITH(builddeps-conf, [AS_HELP_STRING([--with-builddeps-conf],
+    [use this configuration file for the builddeps])])
+
+AC_ARG_WITH(builddeps-server, [AS_HELP_STRING([--with-builddeps-server],
+    [download and use build dependencies from this server url, e.g. --with-builddeps-server=ftp://example.com/dir])])
+
+AC_ARG_WITH(builddeps-dir, [AS_HELP_STRING([--with-builddeps-dir],
+    [store downloaded build dependencies here @<:@d/localhome/builddeps@:>@])],
+    [],
+    [with_builddeps_dir=/localhome/builddeps])
+
+AC_ARG_WITH(builddeps-group, [AS_HELP_STRING([--with-builddeps-group],
+    [chgrp the downloaded build dependencies to this group])])
+
+AC_ARG_ENABLE([list-builddeps], [AS_HELP_STRING([--enable-list-builddeps],
+	[list all build dependencies known to the configure script])],
+	[LIST_BUILDDEPS="${enableval}"], [LIST_BUILDDEPS='no'])
+
+if test "x$LIST_BUILDDEPS" = xyes; then
+    echo
+    echo List of build dependencies known to the configure script,
+    echo that can be used in builddeps.conf files:
+    cat $SRC_ROOT/configure.ac | grep BDEPS_CHECK_MODUL | grep -v configure.ac | cut -f 2 -d ',' | tr -d ' ' | sort
+    echo
+    exit 1
+fi
+
+# If builddeps server or conf file is given. Setup buildeps usage.
+BDEPS_SCAN_FOR_BUILDDEPS
+
+###############################################################################
+#
+# Configure the development tool paths and potential sysroot.
+#
+AC_LANG(C++)
+DEVKIT=
+SYS_ROOT=/
+AC_SUBST(SYS_ROOT)
+
+# The option used to specify the target .o,.a or .so file.
+# When compiling, how to specify the to be created object file.
+CC_OUT_OPTION='-o$(SPACE)'
+# When linking, how to specify the to be created executable.
+EXE_OUT_OPTION='-o$(SPACE)'
+# When linking, how to specify the to be created dynamically linkable library.
+LD_OUT_OPTION='-o$(SPACE)'
+# When archiving, how to specify the to be create static archive for object files.
+AR_OUT_OPTION='rcs$(SPACE)'
+AC_SUBST(CC_OUT_OPTION)
+AC_SUBST(EXE_OUT_OPTION)
+AC_SUBST(LD_OUT_OPTION)
+AC_SUBST(AR_OUT_OPTION)
+
+# If --build AND --host is set, then the configure script will find any
+# cross compilation tools in the PATH. Cross compilation tools
+# follows the cross compilation standard where they are prefixed with ${host}.
+# For example the binary i686-sun-solaris2.10-gcc
+# will cross compile for i686-sun-solaris2.10
+# If neither of build and host is not set, then build=host and the
+# default compiler found in the path will be used.
+# Setting only --host, does not seem to be really supported.
+# Please set both --build and --host if you want to cross compile.
+
+DEFINE_CROSS_COMPILE_ARCH=""
+HOSTCC=""
+HOSTCXX=""
+AC_SUBST(DEFINE_CROSS_COMPILE_ARCH)
+AC_SUBST(HOST_CC)
+AC_SUBST(HOST_CXX)
+AC_MSG_CHECKING([if this is a cross compile])
+if test "x$build_var" != "x$host_var"; then
+    AC_MSG_RESULT([yes, from $build_var to $host_var])   
+    # We have detected a cross compile!
+    DEFINE_CROSS_COMPILE_ARCH="CROSS_COMPILE_ARCH:=$LEGACY_HOST_CPU1"
+    # Now we to find a C/C++ compiler that can build executables for the build
+    # platform. We can't use the AC_PROG_CC macro, since it can only be used
+    # once.
+    AC_PATH_PROGS(HOSTCC, [cl cc gcc])
+    WHICHCMD(HOSTCC)
+    AC_PATH_PROGS(HOSTCXX, [cl CC g++])
+    WHICHCMD(HOSTCXX)
+    # Building for the build platform should be easy. Therefore
+    # we do not need any linkers or assemblers etc.    
+else
+    AC_MSG_RESULT([no])
+fi
+
+# You can force the sys-root if the sys-root encoded into the cross compiler tools
+# is not correct.
+AC_ARG_WITH(sys-root, [AS_HELP_STRING([--with-sys-root],
+    [pass this sys-root to the compilers and linker (useful if the sys-root encoded in
+     the cross compiler tools is incorrect)])])
+
+if test "x$with_sys_root" != x; then
+    SYS_ROOT=$with_sys_root
+fi
+                     
+# If a devkit is found on the builddeps server, then prepend its path to the
+# PATH variable. If there are cross compilers available in the devkit, these
+# will be found by AC_PROG_CC et al.
+BDEPS_CHECK_MODULE(DEVKIT, devkit, xxx,
+                    [# Found devkit
+                     PATH="$DEVKIT/bin:$PATH"
+                     SYS_ROOT="$DEVKIT/${rewritten_host}/sys-root"
+                     if test "x$x_includes" = "xNONE"; then
+                         x_includes="$SYS_ROOT/usr/include/X11"
+                     fi
+                     if test "x$x_libraries" = "xNONE"; then
+                         x_libraries="$SYS_ROOT/usr/lib"
+                     fi
+                    ],
+                    [])
+
+if test "x$SYS_ROOT" != "x/" ; then                    
+    CFLAGS="--sysroot=$SYS_ROOT $CFLAGS"
+    CXXFLAGS="--sysroot=$SYS_ROOT $CXXFLAGS"
+    OBJCFLAGS="--sysroot=$SYS_ROOT $OBJCFLAGS" 
+    OBJCXXFLAGS="--sysroot=$SYS_ROOT $OBJCFLAGS" 
+    CPPFLAGS="--sysroot=$SYS_ROOT $CPPFLAGS"
+    LDFLAGS="--sysroot=$SYS_ROOT $LDFLAGS"
+fi
+
+# Store the CFLAGS etal passed to the configure script.
+ORG_CFLAGS="$CFLAGS"
+ORG_CXXFLAGS="$CXXFLAGS"
+ORG_OBJCFLAGS="$OBJCFLAGS"
+
+# gcc is almost always present, but on Windows we
+# prefer cl.exe and on Solaris we prefer CC.
+# Thus test for them in this order.
+AC_PROG_CC([cl cc gcc])
+if test "x$CC" = x; then
+    help_on_build_dependency devkit
+    AC_ERROR([Could not find a compiler. $HELP_MSG])
+fi
+if test "x$CC" = xcc && test "x$BUILD_OS" = xmacosx; then
+    # Do not use cc on MacOSX use gcc instead.
+    CC="gcc"
+fi
+WHICHCMD(CC)
+
+AC_PROG_CXX([cl CC g++])
+if test "x$CXX" = xCC && test "x$BUILD_OS" = xmacosx; then
+    # The found CC, even though it seems to be a g++ derivate, cannot compile
+    # c++ code. Override.
+    CXX="g++"
+fi
+WHICHCMD(CXX)
+
+if test "x$CXX" = x || test "x$CC" = x; then
+    help_on_build_dependency devkit
+    AC_ERROR([Could not find the needed compilers! $HELP_MSG ])
+fi
+
+if test "x$BUILD_OS" != xwindows; then
+    AC_PROG_OBJC
+    WHICHCMD(OBJC)
+else
+    OBJC=
+fi
+
+# Restore the flags to the user specified values.
+# This is necessary since AC_PROG_CC defaults CFLAGS to "-g -O2"
+CFLAGS="$ORG_CFLAGS"
+CXXFLAGS="$ORG_CXXFLAGS"
+OBJCFLAGS="$ORG_OBJCFLAGS"
+
+# If we are not cross compiling, use the same compilers for
+# building the build platform executables.
+if test "x$DEFINE_CROSS_COMPILE_ARCH" = x; then
+    HOSTCC="$CC"
+    HOSTCXX="$CXX"
+fi
+
+AC_CHECK_TOOL(LD, ld)
+WHICHCMD(LD)
+LDEXE="$LD"
+LDCXX="$LD"
+LDEXECXX="$LD"
+# LDEXE is the linker to use, when creating executables.
+AC_SUBST(LDEXE)
+# Linking C++ libraries.
+AC_SUBST(LDCXX)
+# Linking C++ executables.
+AC_SUBST(LDEXECXX)
+
+AC_CHECK_TOOL(AR, ar)
+WHICHCMD(AR)
+if test "x$BUILD_OS" = xmacosx; then
+    ARFLAGS="-r"
+else
+    ARFLAGS=""
+fi
+AC_SUBST(ARFLAGS)
+
+COMPILER_NAME=gcc
+COMPILER_TYPE=CC
+AS_IF([test "x$BUILD_OS" = xwindows], [
+    # For now, assume that we are always compiling using cl.exe. 
+    CC_OUT_OPTION=-Fo
+    EXE_OUT_OPTION=-Fe
+    LD_OUT_OPTION=-out:
+    AR_OUT_OPTION=-out:
+    # On Windows, reject /usr/bin/link, which is a cygwin
+    # program for something completely different.
+    AC_CHECK_PROG([WINLD], [link],[link],,, [/usr/bin/link])
+    # Since we must ignore the first found link, WINLD will contain
+    # the full path to the link.exe program.
+    WHICHCMD_SPACESAFE([WINLD])
+    LD="$WINLD"
+    # However creating executables can only be done with cl.exe. 
+    LDEXE="$CC"
+    LDCXX="$WINLD"
+    LDEXECXX="$CC"
+
+    AC_CHECK_PROG([MT], [mt], [mt],,, [/usr/bin/mt])
+    WHICHCMD_SPACESAFE([MT])
+    # The resource compiler
+    AC_CHECK_PROG([RC], [rc], [rc],,, [/usr/bin/rc])
+    WHICHCMD_SPACESAFE([RC])
+
+    RC_FLAGS="/l 0x409 /r"
+    AS_IF([test "x$VARIANT" = xOPT], [
+        RC_FLAGS="$RC_FLAGS -d NDEBUG"
+    ])
+    JDK_UPDATE_VERSION_NOTNULL=$JDK_UPDATE_VERSION
+    AS_IF([test "x$JDK_UPDATE_VERSION" = x], [
+        JDK_UPDATE_VERSION_NOTNULL=0
+    ])
+    RC_FLAGS="$RC_FLAGS -d \"JDK_BUILD_ID=$FULL_VERSION\""
+    RC_FLAGS="$RC_FLAGS -d \"JDK_COMPANY=$COMPANY_NAME\""
+    RC_FLAGS="$RC_FLAGS -d \"JDK_COMPONENT=$PRODUCT_NAME $JDK_RC_PLATFORM_NAME binary\""
+    RC_FLAGS="$RC_FLAGS -d \"JDK_VER=$JDK_MINOR_VERSION.$JDK_MICRO_VERSION.$JDK_UPDATE_VERSION_NOTNULL.$COOKED_BUILD_NUMBER\""
+    RC_FLAGS="$RC_FLAGS -d \"JDK_COPYRIGHT=Copyright \xA9 $COPYRIGHT_YEAR\""
+    RC_FLAGS="$RC_FLAGS -d \"JDK_NAME=$PRODUCT_NAME $JDK_RC_PLATFORM_NAME $JDK_MINOR_VERSION $JDK_UPDATE_META_TAG\""
+    RC_FLAGS="$RC_FLAGS -d \"JDK_FVER=$JDK_MINOR_VERSION,$JDK_MICRO_VERSION,$JDK_UPDATE_VERSION_NOTNULL,$COOKED_BUILD_NUMBER\""
+
+    # lib.exe is used to create static libraries.
+    AC_CHECK_PROG([WINAR], [lib],[lib],,,)
+    WHICHCMD_SPACESAFE([WINAR])
+    AR="$WINAR"
+    ARFLAGS="-nologo -NODEFAULTLIB:MSVCRT"
+
+    AC_CHECK_PROG([DUMPBIN], [dumpbin], [dumpbin],,,)
+    WHICHCMD_SPACESAFE([DUMPBIN])
+
+    COMPILER_TYPE=CL
+    CFLAGS="$CFLAGS -nologo"
+    LDFLAGS="$LDFLAGS -nologo -dll -opt:ref -incremental:no "
+    if test "x$LEGACY_HOST_CPU1" = xi586; then 
+        LDFLAGS="$LDFLAGS -safeseh"
+    fi
+    if test "x$DEBUG_LEVEL" != xrelease; then
+        LDFLAGS="$LDFLAGS -debug"
+    fi
+])
+AC_SUBST(RC_FLAGS)
+AC_SUBST(COMPILER_TYPE)
+
+AC_PROG_CPP
+WHICHCMD(CPP)
+
+AC_PROG_CXXCPP
+WHICHCMD(CXXCPP)
+
+# Find the right assembler.
+if test "x$BUILD_OS" = xsolaris; then
+    AC_PATH_PROG(AS, as)
+    WHICHCMD(AS)
+    ASFLAGS=" "
+else
+    AS="$CC -c"
+    ASFLAGS=" "
+fi
+AC_SUBST(AS)
+AC_SUBST(ASFLAGS)
+
+if test "x$HOST_CPU_BITS" = x32 && test "x$HOST_OS" = macosx; then
+    # On 32-bit MacOSX the OS requires C-entry points to be 16 byte aligned.
+    # While waiting for a better solution, the current workaround is to use -mstackrealign.
+    CFLAGS="$CFLAGS -mstackrealign"
+    AC_MSG_CHECKING([if 32-bit compiler supports -mstackrealign])
+    AC_LINK_IFELSE([AC_LANG_SOURCE([[int main() { return 0; }]])],
+                   [
+		        AC_MSG_RESULT([yes])
+                   ],
+	           [
+		        AC_MSG_RESULT([no])
+	                AC_ERROR([The selected compiler $CXX does not support -mstackrealign! Try to put another compiler in the path.])
+	           ])
+fi
+
+if test "x$BUILD_OS" = xsolaris; then
+    AC_PATH_PROG(NM, nm)
+    WHICHCMD(NM)
+    AC_PATH_PROG(STRIP, strip)
+    WHICHCMD(STRIP)
+    AC_PATH_PROG(MCS, mcs)
+    WHICHCMD(MCS)
+else
+    AC_CHECK_TOOL(NM, nm)
+    WHICHCMD(NM)
+    AC_CHECK_TOOL(STRIP, strip)
+    WHICHCMD(STRIP)
+fi
+
+# When using cygwin, we need a wrapper binary that renames
+# /cygdrive/c/ arguments into c:/ arguments and peeks into
+# @files and rewrites these too! This wrapper binary is
+# called uncygdrive.exe.
+UNCYGDRIVE=
+if test "x$BUILD_OS" = xwindows; then
+    AC_MSG_CHECKING([if uncygdrive can be created])
+    UNCYGDRIVE_SRC=`$CYGPATH -m $SRC_ROOT/common/src/uncygdrive.c`
+    rm -f $OUTPUT_ROOT/uncygdrive*
+    UNCYGDRIVE=`$CYGPATH -m $OUTPUT_ROOT/uncygdrive.exe`
+    cd $OUTPUT_ROOT
+    $CC $UNCYGDRIVE_SRC /Fe$UNCYGDRIVE > $OUTPUT_ROOT/uncygdrive1.log 2>&1
+    cd $CURDIR
+
+    if test ! -x $OUTPUT_ROOT/uncygdrive.exe; then 
+        AC_MSG_RESULT([no])
+        cat $OUTPUT_ROOT/uncygdrive1.log
+        AC_ERROR([Could not create $OUTPUT_ROOT/uncygdrive.exe])
+    fi
+    AC_MSG_RESULT([$UNCYGDRIVE])
+    AC_MSG_CHECKING([if uncygdrive.exe works])
+    cd $OUTPUT_ROOT
+    $UNCYGDRIVE $CC $SRC_ROOT/common/src/uncygdrive.c /Fe$OUTPUT_ROOT/uncygdrive2.exe > $OUTPUT_ROOT/uncygdrive2.log 2>&1 
+    cd $CURDIR
+    if test ! -x $OUTPUT_ROOT/uncygdrive2.exe; then 
+        AC_MSG_RESULT([no])
+        cat $OUTPUT_ROOT/uncygdrive2.log
+        AC_ERROR([Uncygdrive did not work!])
+    fi
+    AC_MSG_RESULT([yes])
+    rm -f $OUTPUT_ROOT/uncygdrive?.??? $OUTPUT_ROOT/uncygdrive.obj
+fi
+
+AC_SUBST(UNCYGDRIVE)
+
+TESTFOR_PROG_CCACHE
+
+# Used on GNU/Linux systems, can be empty...
+#AC_PATH_PROG(ELFDUMP, elfdump)
+
+# Setup default logging of stdout and stderr to build.log in the output root.
+BUILD_LOG='$(OUTPUT_ROOT)/build.log'
+BUILD_LOG_WRAPPER='$(SRC_ROOT)/common/bin/logger.sh $(BUILD_LOG)'
+AC_SUBST(BUILD_LOG)
+AC_SUBST(BUILD_LOG_WRAPPER)
+
+###############################################################################
+#
+# Now we check if libjvm.so will use 32 or 64 bit pointers for the C/C++ code.
+# (The JVM can use 32 or 64 bit Java pointers but that decision
+# is made at runtime.)
+#
+AC_CHECK_SIZEOF([int *], [1111])
+if test "x$ac_cv_sizeof_int_p" = x0; then 
+    # The test failed, lets pick the assumed value.
+    ARCH_DATA_MODEL=$HOST_CPU_BITS
+else
+    ARCH_DATA_MODEL=`expr 8 \* $ac_cv_sizeof_int_p`
+fi
+
+if test "x$ARCH_DATA_MODEL" = x64; then
+    A_LP64="LP64:="
+    ADD_LP64="-D_LP64=1"
+fi
+AC_MSG_CHECKING([for host address size])
+AC_MSG_RESULT([$ARCH_DATA_MODEL bits])
+AC_SUBST(LP64,$A_LP64)
+AC_SUBST(ARCH_DATA_MODEL)
+
+if test "x$ARCH_DATA_MODEL" != "x$HOST_CPU_BITS"; then
+    AC_ERROR([The tested number of bits in the host ($ARCH_DATA_MODEL) differs from the number of bits expected to be found in the host ($HOST_CPU_BITS)])
+fi
+
+###############################################################################
+#
+# Can the C/C++ compiler use precompiled headers?
+#
+AC_ARG_ENABLE([precompiled-headers], [AS_HELP_STRING([--disable-precompiled-headers],
+	[use precompiled headers when compiling C++ @<:@enabled@:>@])],
+    [ENABLE_PRECOMPH=${enable_precompiled-headers}], [ENABLE_PRECOMPH=yes])
+
+USE_PRECOMPILED_HEADER=1
+if test "x$ENABLE_PRECOMPH" = xno; then
+    USE_PRECOMPILED_HEADER=0
+fi
+
+if test "x$ENABLE_PRECOMPH" = xyes; then
+    # Check that the compiler actually supports precomp headers.
+    if test "x$GCC" = xyes; then
+         AC_MSG_CHECKING([that precompiled headers work])         
+         echo "int alfa();" > conftest.h
+         $CXX -x c++-header conftest.h -o conftest.hpp.gch
+         if test ! -f conftest.hpp.gch; then
+             echo Precompiled header is not working!
+             USE_PRECOMPILED_HEADER=0
+             AC_MSG_RESULT([no])        
+         else
+             AC_MSG_RESULT([yes])
+         fi
+         rm -f conftest.h
+    fi
+fi
+
+AC_SUBST(USE_PRECOMPILED_HEADER)
+
+###############################################################################
+#
+# How to compile shared libraries. 
+#
+
+if test "x$GCC" = xyes; then
+    COMPILER_NAME=gcc
+    PICFLAG="-fPIC"
+    LIBRARY_PREFIX=lib
+    SHARED_LIBRARY='lib$1.so'
+    STATIC_LIBRARY='lib$1.a'
+    SHARED_LIBRARY_FLAGS="-shared"
+    SHARED_LIBRARY_SUFFIX='.so'
+    STATIC_LIBRARY_SUFFIX='.a'
+    OBJ_SUFFIX='.o'
+    EXE_SUFFIX=''
+    SET_SHARED_LIBRARY_NAME='-Xlinker -soname=$1'
+    SET_SHARED_LIBRARY_MAPFILE='-Xlinker -version-script=$(JDK_TOPDIR)/$1'
+    SET_SHARED_LIBRARY_ORIGIN='-Xlinker -z -Xlinker origin -Xlinker -rpath -Xlinker \$$$$ORIGIN/$1'
+    LD="$CC"
+    LDEXE="$CC"
+    LDCXX="$CXX"
+    LDEXECXX="$CXX"
+
+    # Linking is different on MacOSX
+    if test "x$BUILD_OS" = xmacosx; then
+        # Might change in the future to clang.
+        COMPILER_NAME=gcc
+        SHARED_LIBRARY='lib$1.dylib'
+        SHARED_LIBRARY_FLAGS="-dynamiclib -compatibility_version 1.0.0 -current_version 1.0.0 $PICFLAG"
+        SHARED_LIBRARY_SUFFIX='.dylib'
+        EXE_SUFFIX=''
+        SET_SHARED_LIBRARY_NAME='-Xlinker -install_name -Xlinker @rpath/$1' 
+        SET_SHARED_LIBRARY_MAPFILE=''
+        SET_SHARED_LIBRARY_ORIGIN='-Xlinker -rpath -Xlinker @loader_path/.'
+    fi
+else
+    if test "x$BUILD_OS" = xsolaris; then
+        # If it is not gcc, then assume it is the Oracle Solaris Studio Compiler
+        COMPILER_NAME=ossc
+        PICFLAG="-KPIC"
+        LIBRARY_PREFIX=lib
+        SHARED_LIBRARY='lib$1.so'
+        STATIC_LIBRARY='lib$1.a'
+        SHARED_LIBRARY_FLAGS="-G"
+        SHARED_LIBRARY_SUFFIX='.so'
+        STATIC_LIBRARY_SUFFIX='.a'
+        OBJ_SUFFIX='.o'
+        EXE_SUFFIX=''
+        SET_SHARED_LIBRARY_NAME=''
+        SET_SHARED_LIBRARY_MAPFILE='-M $(JDK_TOPDIR)/$1'
+        SET_SHARED_LIBRARY_ORIGIN='-R \$$$$ORIGIN/$1'
+        CFLAGS_JDKLIB_EXTRA='-xstrconst -D__solaris__'
+    fi
+    if test "x$BUILD_OS" = xwindows; then
+        # If it is not gcc, then assume it is the MS Visual Studio compiler
+        COMPILER_NAME=cl
+        PICFLAG=""
+        LIBRARY_PREFIX=
+        SHARED_LIBRARY='$1.dll'
+        STATIC_LIBRARY='$1.lib'
+        SHARED_LIBRARY_FLAGS="-LD"
+        SHARED_LIBRARY_SUFFIX='.dll'
+        STATIC_LIBRARY_SUFFIX='.lib'
+        OBJ_SUFFIX='.obj'
+        EXE_SUFFIX='.exe'
+        SET_SHARED_LIBRARY_NAME=''
+        SET_SHARED_LIBRARY_MAPFILE=''
+        SET_SHARED_LIBRARY_ORIGIN=''
+    fi
+fi
+
+AC_SUBST(OBJ_SUFFIX)
+AC_SUBST(SHARED_LIBRARY)
+AC_SUBST(STATIC_LIBRARY)
+AC_SUBST(LIBRARY_PREFIX)
+AC_SUBST(SHARED_LIBRARY_SUFFIX)
+AC_SUBST(STATIC_LIBRARY_SUFFIX)
+AC_SUBST(EXE_SUFFIX)
+AC_SUBST(SHARED_LIBRARY_FLAGS)
+AC_SUBST(SET_SHARED_LIBRARY_NAME)
+AC_SUBST(SET_SHARED_LIBRARY_MAPFILE)
+AC_SUBST(SET_SHARED_LIBRARY_ORIGIN)
+
+# The (cross) compiler is now configured, we can now test capabilities
+# of the host platform.
+
+###############################################################################
+#
+# Is the host little of big endian?
+#
+AC_C_BIGENDIAN([ENDIAN="big"],[ENDIAN="little"],[ENDIAN="unknown"],[ENDIAN="universal"])
+
+if test "x$ENDIAN" = xuniversal; then
+    AC_ERROR([It seems like someone needs to decide how we are to deal with universal binaries on the MacOSX?])
+fi
+if test "x$ENDIAN" = xunknown; then
+    ENDIAN="$HOST_CPU_ENDIAN"
+fi
+if test "x$ENDIAN" != "x$HOST_CPU_ENDIAN"; then
+    AC_WARN([The tested endian in the host ($ENDIAN) differs from the endian expected to be found in the host ($HOST_CPU_ENDIAN)])
+    ENDIAN="$HOST_CPU_ENDIAN"
+fi
+AC_SUBST(ENDIAN)
+
+###############################################################################
+#
+# We need a Boot JDK to bootstrap the build. 
+#
+BOOT_JDK_FOUND=no
+AC_ARG_WITH(boot-jdk, [AS_HELP_STRING([--with-boot-jdk],
+    [path to Boot JDK (used to bootstrap build) @<:@probed@:>@])])
+                    
+if test "x$with_boot_jdk" != x; then
+    BOOT_JDK=$with_boot_jdk
+    BOOT_JDK_FOUND=yes
+fi
+if test "x$BOOT_JDK_FOUND" = xno; then
+    BDEPS_CHECK_MODULE(BOOT_JDK, bootjdk, xxx, [BOOT_JDK_FOUND=yes], [BOOT_JDK_FOUND=no])
+fi
+
+if test "x$BOOT_JDK_FOUND" = xno; then
+    if test "x$JAVA_HOME" != x; then
+        if test ! -d "$JAVA_HOME"; then
+            AC_ERROR([Your JAVA_HOME points to a non-existing directory!])
+        fi
+        # Aha, the user has set a JAVA_HOME
+        # let us use that as the Boot JDK.
+        BOOT_JDK=$JAVA_HOME
+        BOOT_JDK_FOUND=yes
+        # To be on the safe side, lets check that it is a JDK.
+        if test -x $BOOT_JDK/bin/javac && test -x $BOOT_JDK/bin/java; then
+            JAVAC=$BOOT_JDK/bin/javac
+            JAVA=$BOOT_JDK/bin/java
+            BOOT_JDK_FOUND=yes
+        else
+            AC_ERROR([Your JAVA_HOME points to a JRE! The build needs a JDK! Please point JAVA_HOME to a JDK.])
+        fi            
+    fi
+fi
+
+if test "x$BOOT_JDK_FOUND" = xno; then
+    AC_PATH_PROG(JAVAC_CHECK, javac)
+    AC_PATH_PROG(JAVA_CHECK, java)
+    BINARY="$JAVAC_CHECK"
+    if test "x$JAVAC_CHECK" = x; then
+        BINARY="$JAVA_CHECK"
+    fi
+    if test "x$BINARY" != x; then
+        # So there is a java(c) binary, it might be part of a JDK.
+        # Lets find the JDK/JRE directory by following symbolic links.
+        # Linux/GNU systems often have links from /usr/bin/java to 
+        # /etc/alternatives/java to the real JDK binary.
+	WHICHCMD_SPACESAFE(BINARY,[path to javac])
+        REMOVE_SYMBOLIC_LINKS(BINARY)
+        BOOT_JDK=`dirname $BINARY`
+        BOOT_JDK=`cd $BOOT_JDK/..; pwd`
+        if test -x $BOOT_JDK/bin/javac && test -x $BOOT_JDK/bin/java; then
+            JAVAC=$BOOT_JDK/bin/javac
+            JAVA=$BOOT_JDK/bin/java
+            BOOT_JDK_FOUND=yes
+        fi
+    fi
+fi
+
+if test "x$BOOT_JDK_FOUND" = xno; then
+    # Try the MacOSX way.
+    if test -x /usr/libexec/java_home; then
+        BOOT_JDK=`/usr/libexec/java_home`
+        if test -x $BOOT_JDK/bin/javac && test -x $BOOT_JDK/bin/java; then
+            JAVAC=$BOOT_JDK/bin/javac
+            JAVA=$BOOT_JDK/bin/java
+            BOOT_JDK_FOUND=yes
+        fi
+    fi
+fi
+
+if test "x$BOOT_JDK_FOUND" = xno; then
+    AC_PATH_PROG(JAVA_CHECK, java)
+    if test "x$JAVA_CHECK" != x; then
+        # There is a java in the path. But apparently we have not found a javac 
+        # in the path, since that would have been tested earlier.
+        if test "x$HOST_OS" = xwindows; then
+            # Now if this is a windows platform. The default installation of a JDK
+            # actually puts the JRE in the path and keeps the JDK out of the path!
+            # Go look in the default installation location.
+            BOOT_JDK=/cygdrive/c/Program\ Files/Java/`ls /cygdrive/c/Program\ Files/Java | grep jdk | sort -r | head --lines 1`
+            if test -d "$BOOT_JDK"; then
+                BOOT_JDK_FOUND=yes
+            fi
+        fi
+        if test "x$BOOT_JDK_FOUND" = xno; then
+            help_on_build_dependency openjdk
+            AC_ERROR([Found a JRE, not not a JDK! Please remove the JRE from your path and put a JDK there instead. $HELP_MSG])
+        fi
+    else
+        help_on_build_dependency openjdk
+        AC_ERROR([Could not find a JDK. $HELP_MSG])
+    fi
+fi
+
+WIN_FIX_PATH(BOOT_JDK)
+
+# Now see if we can find the rt.jar, or its nearest equivalent.
+BOOT_RTJAR="$BOOT_JDK/jre/lib/rt.jar"
+SPACESAFE(BOOT_RTJAR,[the path to the Boot JDK rt.jar (or nearest equivalent)])
+
+BOOT_TOOLSJAR="$BOOT_JDK/lib/tools.jar"
+SPACESAFE(BOOT_TOOLSJAR,[the path to the Boot JDK tools.jar (or nearest equivalent)])
+
+if test ! -f $BOOT_RTJAR; then
+    # On MacOSX it is called classes.jar
+    BOOT_RTJAR=$BOOT_JDK/../Classes/classes.jar
+    if test ! -f $BOOT_RTJAR; then
+        AC_ERROR([Cannot find the rt.jar or its equivalent!])
+    fi
+    # Remove the .. 
+    BOOT_RTJAR="`cd ${BOOT_RTJAR%/*} && pwd`/${BOOT_RTJAR##*/}"
+    # The tools.jar is part of classes.jar
+    BOOT_TOOLSJAR="$BOOT_RTJAR"
+fi
+
+AC_SUBST(BOOT_JDK)
+AC_SUBST(BOOT_RTJAR)
+AC_SUBST(BOOT_TOOLSJAR)
+AC_MSG_CHECKING([for Boot JDK])
+AC_MSG_RESULT([$BOOT_JDK])
+AC_MSG_CHECKING([for Boot rt.jar])
+AC_MSG_RESULT([$BOOT_RTJAR])
+AC_MSG_CHECKING([for Boot tools.jar])
+AC_MSG_RESULT([$BOOT_TOOLSJAR])
+
+# Use the java tool from the Boot JDK.
+AC_MSG_CHECKING([for java in Boot JDK])
+JAVA=$BOOT_JDK/bin/java
+if test ! -x $JAVA; then
+    AC_ERROR([Could not find a working java])
+fi
+BOOT_JDK_VERSION=`$JAVA -version 2>&1 | head -n 1`
+AC_MSG_RESULT([yes $BOOT_JDK_VERSION])
+AC_SUBST(JAVA)
+
+# Extra M4 quote needed to protect [] in grep expression.
+[FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep  '\"1\.[78]\.'`]
+if test "x$FOUND_VERSION_78" = x; then
+    help_on_build_dependency openjdk
+    AC_ERROR([Your bootjdk must be version 7 or 8. $HELP_MSG])
+fi
+
+# When compiling code to be executed by the Boot JDK, force jdk7 compatibility.
+BOOT_JDK_SOURCETARGET="-source 7 -target 7"
+AC_SUBST(BOOT_JDK_SOURCETARGET)
+
+# Use the javac tool from the Boot JDK.
+AC_MSG_CHECKING([for javac in Boot JDK])
+JAVAC=$BOOT_JDK/bin/javac
+if test ! -x $JAVAC; then
+    AC_ERROR([Could not find a working javac])
+fi
+AC_MSG_RESULT(yes)
+AC_SUBST(JAVAC)
+AC_SUBST(JAVAC_FLAGS)
+
+# Use the javac tool from the Boot JDK.
+AC_MSG_CHECKING([for javah in Boot JDK])
+JAVAH=$BOOT_JDK/bin/javah
+if test ! -x $JAVAH; then
+    AC_ERROR([Could not find a working javah])
+fi
+AC_MSG_RESULT(yes)
+AC_SUBST(JAVAH)
+
+# Use the jar tool from the Boot JDK.
+AC_MSG_CHECKING([for jar in Boot JDK])
+JAR=$BOOT_JDK/bin/jar
+if test ! -x $JAR; then
+    AC_ERROR([Could not find a working jar])
+fi
+AC_SUBST(JAR)
+AC_MSG_RESULT(yes)
+
+# Use the rmic tool from the Boot JDK.
+AC_MSG_CHECKING([for rmic in Boot JDK])
+RMIC=$BOOT_JDK/bin/rmic
+if test ! -x $RMIC; then
+    AC_ERROR([Could not find a working rmic])
+fi
+AC_SUBST(RMIC)
+AC_MSG_RESULT(yes)
+
+###############################################################################
+#
+# Pickup additional source for a component from outside of the source root
+# or override source for a component. 
+#
+AC_ARG_WITH(add-source-root, [AS_HELP_STRING([--with-add-source-root],
+    [for each and every source directory, look in this additional source root for
+     the same directory; if it exists and have files in it, include it in the build])])                             
+                             
+AC_ARG_WITH(override-source-root, [AS_HELP_STRING([--with-override-source-root],
+    [for each and every source directory, look in this override source root for
+     the same directory; if it exists, use that directory instead and
+     ignore the directory in the original source root])])
+
+AC_ARG_WITH(adds-and-overrides, [AS_HELP_STRING([--with-adds-and-overrides],
+    [use the subdirs 'adds' and 'overrides' in the specified directory as
+     add-source-root and override-source-root])])
+
+if test "x$with_adds_and_overrides" != x; then
+    with_add_source_root="$with_adds_and_overrides/adds"
+    with_override_source_root="$with_adds_and_overrides/overrides"
+fi
+
+if test "x$with_add_source_root" != x; then
+    if ! test -d $with_add_source_root; then
+       AC_ERROR([Trying to use a non-existant add-source-root $with_add_source_root])
+    fi
+    CURDIR="$PWD"
+    cd "$with_add_source_root"
+    ADD_SRC_ROOT="`pwd`"
+    cd "$CURDIR"
+    # Verify that the addon source root does not have any root makefiles.
+    # If it does, then it is usually an error, prevent this.
+    if test -f $with_add_source_root/langtools/makefiles/Makefile || \
+       test -f $with_add_source_root/langtools/make/Makefile; then
+        AC_ERROR([Your add source root seems to contain a full langtools repo! An add source root should only contain additional sources.])
+    fi
+    if test -f $with_add_source_root/corba/makefiles/Makefile || \
+       test -f $with_add_source_root/corba/make/Makefile; then
+        AC_ERROR([Your add source root seems to contain a full corba repo! An add source root should only contain additional sources.])
+    fi
+    if test -f $with_add_source_root/jaxp/makefiles/Makefile || \
+       test -f $with_add_source_root/jaxp/make/Makefile; then
+        AC_ERROR([Your add source root seems to contain a full jaxp repo! An add source root should only contain additional sources.])
+    fi
+    if test -f $with_add_source_root/jaxws/makefiles/Makefile || \
+       test -f $with_add_source_root/jaxws/make/Makefile; then
+        AC_ERROR([Your add source root seems to contain a full jaxws repo! An add source root should only contain additional sources.])
+    fi
+    if test -f $with_add_source_root/hotspot/makefiles/Makefile || \
+       test -f $with_add_source_root/hotspot/make/Makefile; then
+        AC_ERROR([Your add source root seems to contain a full hotspot repo! An add source root should only contain additional sources.])
+    fi
+    if test -f $with_add_source_root/jdk/makefiles/Makefile || \
+       test -f $with_add_source_root/jdk/make/Makefile; then
+        AC_ERROR([Your add source root seems to contain a full JDK repo! An add source root should only contain additional sources.])
+    fi
+fi
+AC_SUBST(ADD_SRC_ROOT)
+
+if test "x$with_override_source_root" != x; then
+    if ! test -d $with_override_source_root; then
+       AC_ERROR([Trying to use a non-existant override-source-root $with_override_source_root])
+    fi
+    CURDIR="$PWD"
+    cd "$with_override_source_root"
+    OVERRIDE_SRC_ROOT="`pwd`"
+    cd "$CURDIR"
+    if test -f $with_override_source_root/langtools/makefiles/Makefile || \
+       test -f $with_override_source_root/langtools/make/Makefile; then
+        AC_ERROR([Your override source root seems to contain a full langtools repo! An override source root should only contain sources that override.])
+    fi
+    if test -f $with_override_source_root/corba/makefiles/Makefile || \
+       test -f $with_override_source_root/corba/make/Makefile; then
+        AC_ERROR([Your override source root seems to contain a full corba repo! An override source root should only contain sources that override.])
+    fi
+    if test -f $with_override_source_root/jaxp/makefiles/Makefile || \
+       test -f $with_override_source_root/jaxp/make/Makefile; then
+        AC_ERROR([Your override source root seems to contain a full jaxp repo! An override source root should only contain sources that override.])
+    fi
+    if test -f $with_override_source_root/jaxws/makefiles/Makefile || \
+       test -f $with_override_source_root/jaxws/make/Makefile; then
+        AC_ERROR([Your override source root seems to contain a full jaxws repo! An override source root should only contain sources that override.])
+    fi
+    if test -f $with_override_source_root/hotspot/makefiles/Makefile || \
+       test -f $with_override_source_root/hotspot/make/Makefile; then
+        AC_ERROR([Your override source root seems to contain a full hotspot repo! An override source root should only contain sources that override.])
+    fi
+    if test -f $with_override_source_root/jdk/makefiles/Makefile || \
+       test -f $with_override_source_root/jdk/make/Makefile; then
+        AC_ERROR([Your override source root seems to contain a full JDK repo! An override source root should only contain sources that override.])
+    fi
+fi
+AC_SUBST(OVERRIDE_SRC_ROOT)
+
+###############################################################################
+#
+# Override a repo completely, this is used for example when you have 3 small
+# development sandboxes of the langtools sources and want to avoid having 3 full
+# OpenJDK sources checked out on disk.
+#
+# Assuming that the 3 langtools sandboxes are located here:
+# /home/fredrik/sandbox1/langtools
+# /home/fredrik/sandbox2/langtools
+# /home/fredrik/sandbox3/langtools
+#
+# From the source root you create build subdirs manually:
+#     mkdir -p build1 build2 build3 
+# in each build directory run:
+#     (cd build1 && ../configure --with-override-langtools=/home/fredrik/sandbox1 && make)
+#     (cd build2 && ../configure --with-override-langtools=/home/fredrik/sandbox2 && make)
+#     (cd build3 && ../configure --with-override-langtools=/home/fredrik/sandbox3 && make)
+#
+
+AC_ARG_WITH(override-langtools, [AS_HELP_STRING([--with-override-langtools],
+    [use this langtools dir for the build])])
+
+AC_ARG_WITH(override-corba, [AS_HELP_STRING([--with-override-corba],
+    [use this corba dir for the build])])
+
+AC_ARG_WITH(override-jaxp, [AS_HELP_STRING([--with-override-jaxp],
+	[use this jaxp dir for the build])])
+
+AC_ARG_WITH(override-jaxws, [AS_HELP_STRING([--with-override-jaxws],
+	[use this jaxws dir for the build])])
+
+AC_ARG_WITH(override-hotspot, [AS_HELP_STRING([--with-override-hotspot],
+	[use this hotspot dir for the build])])
+
+AC_ARG_WITH(override-jdk, [AS_HELP_STRING([--with-override-jdk],
+	[use this jdk dir for the build])])
+
+if test "x$with_override_langtools" != x; then
+    CURDIR="$PWD"
+    cd "$with_override_langtools"
+    LANGTOOLS_TOPDIR="`pwd`"
+    cd "$CURDIR"
+    if ! test -f $LANGTOOLS_TOPDIR/makefiles/Makefile; then
+        AC_ERROR([You have to override langtools with a full langtools repo!])
+    fi
+    AC_MSG_CHECKING([if langtools should be overridden])
+    AC_MSG_RESULT([yes with $LANGTOOLS_TOPDIR])
+fi    
+if test "x$with_override_corba" != x; then
+    CURDIR="$PWD"
+    cd "$with_override_corba"
+    CORBA_TOPDIR="`pwd`"
+    cd "$CURDIR"
+    if ! test -f $CORBA_TOPDIR/makefiles/Makefile; then
+        AC_ERROR([You have to override corba with a full corba repo!])
+    fi
+    AC_MSG_CHECKING([if corba should be overridden])
+    AC_MSG_RESULT([yes with $CORBA_TOPDIR])
+fi    
+if test "x$with_override_jaxp" != x; then
+    CURDIR="$PWD"
+    cd "$with_override_jaxp"
+    JAXP_TOPDIR="`pwd`"
+    cd "$CURDIR"
+    if ! test -f $JAXP_TOPDIR/makefiles/Makefile; then
+        AC_ERROR([You have to override jaxp with a full jaxp repo!])
+    fi
+    AC_MSG_CHECKING([if jaxp should be overridden])
+    AC_MSG_RESULT([yes with $JAXP_TOPDIR])
+fi    
+if test "x$with_override_jaxws" != x; then
+    CURDIR="$PWD"
+    cd "$with_override_jaxws"
+    JAXWS_TOPDIR="`pwd`"
+    cd "$CURDIR"
+    if ! test -f $JAXWS_TOPDIR/makefiles/Makefile; then
+        AC_ERROR([You have to override jaxws with a full jaxws repo!])
+    fi
+    AC_MSG_CHECKING([if jaxws should be overridden])
+    AC_MSG_RESULT([yes with $JAXWS_TOPDIR])
+fi    
+if test "x$with_override_hotspot" != x; then
+    CURDIR="$PWD"
+    cd "$with_override_hotspot"
+    HOTSPOT_TOPDIR="`pwd`"
+    cd "$CURDIR"
+    if ! test -f $HOTSPOT_TOPDIR/make/Makefile && \
+       ! test -f $HOTSPOT_TOPDIR/makefiles/Makefile; then
+        AC_ERROR([You have to override hotspot with a full hotspot repo!])
+    fi
+    AC_MSG_CHECKING([if hotspot should be overridden])
+    AC_MSG_RESULT([yes with $HOTSPOT_TOPDIR])
+fi    
+if test "x$with_override_jdk" != x; then
+    CURDIR="$PWD"
+    cd "$with_override_jdk"
+    JDK_TOPDIR="`pwd`"
+    cd "$CURDIR"
+    if ! test -f $JDK_TOPDIR/makefiles/Makefile; then
+        AC_ERROR([You have to override JDK with a full JDK repo!])
+    fi
+    AC_MSG_CHECKING([if JDK should be overridden])
+    AC_MSG_RESULT([yes with $JDK_TOPDIR])
+fi    
+
+###############################################################################
+#
+# Specify options for anything that is run with the Boot JDK.
+#
+AC_ARG_WITH(boot-jdk-jvmargs, [AS_HELP_STRING([--with-boot-jdk-jvmargs],
+	[specify JVM arguments to be passed to all invocations of the Boot JDK, overriding the default values,
+     e.g --with-boot-jdk-jvmargs="-Xmx8G -enableassertions"])])
+
+if test "x$with_boot_jdk_jvmargs" = x; then
+    # Not all JVM:s accept the same arguments on the command line.
+    # OpenJDK specific increase in thread stack for JDK build,
+    # well more specifically, when running javac.
+    if test "x$BUILD_NUM_BITS" = x32; then
+       STACK_SIZE=768
+    else
+       # Running Javac on a JVM on a 64-bit machine, the stack takes more space
+       # since 64-bit pointers are pushed on the stach. Apparently, we need
+       # to increase the stack space when javacing the JDK....
+       STACK_SIZE=1536
+    fi
+
+    # Minimum amount of heap memory.
+    ADD_JVM_ARG_IF_OK([-Xms64M],boot_jdk_jvmargs,[$JAVA])
+    if test "x$HOST_OS" = "xmacosx"; then
+        # Why does macosx need more heap? Its the huge JDK batch.
+        ADD_JVM_ARG_IF_OK([-Xmx1600M],boot_jdk_jvmargs,[$JAVA])
+    else
+        ADD_JVM_ARG_IF_OK([-Xmx1100M],boot_jdk_jvmargs,[$JAVA])
+    fi
+    # When is adding -client something that speeds up the JVM?
+    # ADD_JVM_ARG_IF_OK([-client],boot_jdk_jvmargs,[$JAVA])
+    ADD_JVM_ARG_IF_OK([-XX:PermSize=32m],boot_jdk_jvmargs,[$JAVA])
+    ADD_JVM_ARG_IF_OK([-XX:MaxPermSize=160m],boot_jdk_jvmargs,[$JAVA])
+    ADD_JVM_ARG_IF_OK([-XX:ThreadStackSize=$STACK_SIZE],boot_jdk_jvmargs,[$JAVA])
+    # Disable special log output when a debug build is used as Boot JDK...
+    ADD_JVM_ARG_IF_OK([-XX:-PrintVMOptions -XX:-UnlockDiagnosticVMOptions -XX:-LogVMOutput],boot_jdk_jvmargs,[$JAVA])
+fi
+
+AC_SUBST(BOOT_JDK_JVMARGS, $boot_jdk_jvmargs)
+
+AC_ARG_WITH(server-java, [AS_HELP_STRING([--with-server-java],
+	[use this java binary for running the javac background server and other long running java tasks in the build process,
+     e.g. ---with-server-java="/opt/jrockit/bin/java -server"])])
+
+if test "x$with_server_java" != x; then
+    SERVER_JAVA="$with_server_java"
+    FOUND_VERSION=`$SERVER_JAVA -version 2>&1 | grep " version \""`
+    if test "x$FOUND_VERSION" = x; then
+        AC_ERROR([Could not execute server java: $SERVER_JAVA])
+    fi
+else
+    SERVER_JAVA=""
+    # Hotspot specific options.
+    ADD_JVM_ARG_IF_OK([-XX:+UseParallelOldGC],SERVER_JAVA,[$JAVA])
+    ADD_JVM_ARG_IF_OK([-verbosegc],SERVER_JAVA,[$JAVA])
+    # JRockit specific options.
+    ADD_JVM_ARG_IF_OK([-Xverbose:gc],SERVER_JAVA,[$JAVA])
+    SERVER_JAVA="$JAVA $SERVER_JAVA"
+fi                    
+AC_SUBST(SERVER_JAVA)
+
+AC_MSG_CHECKING([whether to use shared server for javac])
+AC_ARG_ENABLE([javac-server], [AS_HELP_STRING([--enable-javac-server],
+	[enable the shared javac server during the build process @<:@disabled@:>@])],
+	[ENABLE_JAVAC_SERVER="${enableval}"], [ENABLE_JAVAC_SERVER='no'])
+AC_MSG_RESULT([$ENABLE_JAVAC_SERVER])
+if test "x$ENABLE_JAVAC_SERVER" = xyes; then
+    JAVAC_USE_REMOTE=true
+    JAVAC_SERVERS="$OUTPUT_ROOT/javacservers"
+else
+    JAVAC_USE_REMOTE=false
+    JAVAC_SERVERS=
+fi
+AC_SUBST(JAVAC_USE_REMOTE)
+AC_SUBST(JAVAC_SERVERS)
+
+AC_ARG_WITH(javac-server-cores, [AS_HELP_STRING([--with-javac-server-cores],
+	[use at most this number of concurrent threads on the javac server @<:@probed@:>@])])
+if test "x$with_javac_server_cores" != x; then
+    JAVAC_SERVER_CORES="$with_javac_server_cores"
+else
+    if test "$NUM_CORES" -gt 16; then
+        # We set this arbitrary limit because we want to limit the heap
+        # size of the javac server.
+        # In the future we will make the javac compilers in the server
+        # share more and more state, thus enabling us to use more and
+        # more concurrent threads in the server.
+        JAVAC_SERVER_CORES="16"
+    else
+        JAVAC_SERVER_CORES="$NUM_CORES"
+    fi
+
+    if test "$MEMORY_SIZE" -gt "17000"; then
+        MAX_HEAP_MEM=10000
+        ADD_JVM_ARG_IF_OK([-d64],SERVER_JAVA,[$SERVER_JAVA])
+        ADD_JVM_ARG_IF_OK([-Xms10G -Xmx10G],SERVER_JAVA,[$SERVER_JAVA])
+        ADD_JVM_ARG_IF_OK([-Xmn2G],SERVER_JAVA,[$SERVER_JAVA])
+    elif test "$MEMORY_SIZE" -gt "10000"; then
+        MAX_HEAP_MEM=6000
+        ADD_JVM_ARG_IF_OK([-d64],SERVER_JAVA,[$SERVER_JAVA])
+        ADD_JVM_ARG_IF_OK([-Xms6G -Xmx6G],SERVER_JAVA,[$SERVER_JAVA])
+        ADD_JVM_ARG_IF_OK([-Xmn1G],SERVER_JAVA,[$SERVER_JAVA])
+    elif test "$MEMORY_SIZE" -gt "5000"; then
+        MAX_HEAP_MEM=3000
+        ADD_JVM_ARG_IF_OK([-d64],SERVER_JAVA,[$SERVER_JAVA])
+        ADD_JVM_ARG_IF_OK([-Xms1G -Xmx3G],SERVER_JAVA,[$SERVER_JAVA])
+        ADD_JVM_ARG_IF_OK([-Xmn256M],SERVER_JAVA,[$SERVER_JAVA])
+    elif test "$MEMORY_SIZE" -gt "3800"; then
+        MAX_HEAP_MEM=2500
+        ADD_JVM_ARG_IF_OK([-Xms1G -Xmx2500M],SERVER_JAVA,[$SERVER_JAVA])
+        ADD_JVM_ARG_IF_OK([-Xmn256M],SERVER_JAVA,[$SERVER_JAVA])
+    elif test "$MEMORY_SIZE" -gt "1900"; then
+        MAX_HEAP_MEM=1200
+        ADD_JVM_ARG_IF_OK([-Xms700M -Xmx1200M],SERVER_JAVA,[$SERVER_JAVA])
+        ADD_JVM_ARG_IF_OK([-Xmn256M],SERVER_JAVA,[$SERVER_JAVA])
+    elif test "$MEMORY_SIZE" -gt "1000"; then
+        MAX_HEAP_MEM=900
+        ADD_JVM_ARG_IF_OK([-Xms400M -Xmx900M],SERVER_JAVA,[$SERVER_JAVA])
+        ADD_JVM_ARG_IF_OK([-Xmn128M],SERVER_JAVA,[$SERVER_JAVA])
+    else
+        MAX_HEAP_MEM=512
+        ADD_JVM_ARG_IF_OK([-Xms256M -Xmx512M],SERVER_JAVA,[$SERVER_JAVA])
+        ADD_JVM_ARG_IF_OK([-Xmn128M],SERVER_JAVA,[$SERVER_JAVA])
+    fi
+
+    MAX_COMPILERS_IN_HEAP=`expr $MAX_HEAP_MEM / 501`
+    if test "$JAVAC_SERVER_CORES" -gt "$MAX_COMPILERS_IN_HEAP"; then
+        AC_MSG_CHECKING([if number of server cores must be reduced])
+        JAVAC_SERVER_CORES="$MAX_COMPILERS_IN_HEAP"
+        AC_MSG_RESULT([yes, to $JAVAC_SERVER_CORES with max heap size $MAX_HEAP_MEM MB])
+    fi
+fi                    
+AC_SUBST(JAVAC_SERVER_CORES)
+
+AC_MSG_CHECKING([whether to track dependencies between Java packages])
+AC_ARG_ENABLE([javac-deps], [AS_HELP_STRING([--enable-javac-deps],
+	[enable the dependency tracking between Java packages @<:@disabled@:>@])],
+	[ENABLE_JAVAC_DEPS="${enableval}"], [ENABLE_JAVAC_DEPS='no'])
+AC_MSG_RESULT([$ENABLE_JAVAC_DEPS])
+if test "x$ENABLE_JAVAC_DEPS" = xyes; then
+    JAVAC_USE_DEPS=true
+else
+    JAVAC_USE_DEPS=false
+fi
+AC_SUBST(JAVAC_USE_DEPS)
+
+AC_MSG_CHECKING([whether to use multiple cores for javac compilation])
+AC_ARG_ENABLE([javac-multi-core], [AS_HELP_STRING([--enable-javac-multi-core],
+	[compile Java packages concurrently @<:@disabled@:>@])],
+	[ENABLE_JAVAC_MULTICORE="${enableval}"], [ENABLE_JAVAC_MULTICORE='no'])
+AC_MSG_RESULT([$ENABLE_JAVAC_MULTICORE])
+if test "x$ENABLE_JAVAC_MULTICORE" = xyes; then
+    JAVAC_USE_MODE=MULTI_CORE_CONCURRENT
+else
+    JAVAC_USE_MODE=SINGLE_THREADED_BATCH
+    if test "x$ENABLE_JAVAC_DEPS" = xyes; then
+        AC_MSG_WARN([Dependency tracking is not supported with single threaded batch compiles of Java source roots. Please add --disable-javac-deps to your configure options.])
+        AC_MSG_WARN([Disabling dependency tracking for you now.])
+        JAVAC_USE_DEPS=false
+    fi
+    if test "x$ENABLE_JAVAC_SERVER" = xyes; then
+        AC_MSG_WARN([The javac server will not be used since single threaded batch compiles are run within their own JVM. Please add --disable-javac-server to your configure options.])
+        AC_MSG_WARN([Disabling javac server for you now.])
+        JAVAC_USE_REMOTE=false
+    fi
+fi
+AC_SUBST(JAVAC_USE_MODE)
+
+###############################################################################
+#
+# OS specific settings that we never will need to probe.
+#
+if test "x$HOST_OS" = xlinux; then
+    AC_MSG_CHECKING([what is not needed on Linux?])
+    PULSE_NOT_NEEDED=yes
+    AC_MSG_RESULT([pulse])
+fi
+
+if test "x$HOST_OS" = xsolaris; then
+    AC_MSG_CHECKING([what is not needed on Solaris?])
+    ALSA_NOT_NEEDED=yes
+    PULSE_NOT_NEEDED=yes
+    AC_MSG_RESULT([alsa pulse])
+fi
+
+if test "x$HOST_OS" = xwindows; then
+    AC_MSG_CHECKING([what is not needed on Windows?])
+    CUPS_NOT_NEEDED=yes    
+    ALSA_NOT_NEEDED=yes
+    PULSE_NOT_NEEDED=yes
+    X11_NOT_NEEDED=yes
+    AC_MSG_RESULT([alsa cups pulse x11])
+fi
+
+if test "x$HOST_OS" = xmacosx; then
+    AC_MSG_CHECKING([what is not needed on MacOSX?])
+    ALSA_NOT_NEEDED=yes
+    PULSE_NOT_NEEDED=yes
+    X11_NOT_NEEDED=yes
+    FREETYPE2_NOT_NEEDED=yes    
+    # If the java runtime framework is disabled, then we need X11.
+    # This will be adjusted below.
+    AC_MSG_RESULT([alsa pulse x11])
+fi
+
+if test "x$HOST_OS" = xbsd; then
+    AC_MSG_CHECKING([what is not needed on bsd?])
+    ALSA_NOT_NEEDED=yes
+    AC_MSG_RESULT([alsa])    
+fi
+
+###############################################################################
+#
+# Check for MacOSX support for OpenJDK. If this exists, try to build a JVM
+# that uses this API. 
+#
+AC_ARG_ENABLE([macosx-runtime-support], [AS_HELP_STRING([--disable-macosx-runtime-support],
+	[disable the use of MacOSX Java runtime support framework @<:@enabled@:>@])],
+	[MACOSX_RUNTIME_SUPPORT="${enableval}"],[MACOSX_RUNTIME_SUPPORT="no"])
+
+USE_MACOSX_RUNTIME_SUPPORT=no
+AC_MSG_CHECKING([for explicit Java runtime support in the OS])
+if test -f /System/Library/Frameworks/JavaVM.framework/Frameworks/JavaRuntimeSupport.framework/Headers/JavaRuntimeSupport.h; then
+    if test "x$MACOSX_RUNTIME_SUPPORT" != xno; then
+        MACOSX_RUNTIME_SUPPORT=yes
+        USE_MACOSX_RUNTIME_SUPPORT=yes
+        AC_MSG_RESULT([yes, does not need alsa freetype2 pulse and X11])
+    else
+        AC_MSG_RESULT([yes, but explicitly disabled.])
+    fi
+else
+    AC_MSG_RESULT([no])
+fi
+
+if test "x$HOST_OS" = xmacosx && test "x$USE_MACOSX_RUNTIME_SUPPORT" = xno; then
+    AC_MSG_CHECKING([what is not needed on an X11 build on MacOSX?])
+    X11_NOT_NEEDED=
+    FREETYPE2_NOT_NEEDED=
+    AC_MSG_RESULT([alsa pulse])
+fi
+
+###############################################################################
+#
+# Check for X Windows
+#
+AC_PATH_XTRA
+
+if test "x$no_x" = xyes && test "x$X11_NOT_NEEDED" != xyes; then 
+    help_on_build_dependency x11
+    AC_ERROR([Could not find X11 libraries. $HELP_MSG])
+fi
+
+AC_SUBST(X_CFLAGS)
+AC_SUBST(X_LIBS)
+
+# Some of the old makefiles require a setting of OPENWIN_HOME
+# Since the X11R6 directory has disappeared on later Linuxes,
+# we need to probe for it.
+if test "x$HOST_OS" = xlinux; then
+    if test -d "$SYS_ROOT/usr/X11R6"; then
+        OPENWIN_HOME="$SYS_ROOT/usr/X11R6"
+    fi
+    if test -d "$SYS_ROOT/usr/include/X11"; then
+        OPENWIN_HOME="$SYS_ROOT/usr"
+    fi
+fi
+if test "x$HOST_OS" = xsolaris; then
+    OPENWIN_HOME="/usr/openwin"
+fi
+AC_SUBST(OPENWIN_HOME)
+
+AC_LANG_PUSH(C)
+OLD_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS $X_CFLAGS"
+AC_CHECK_HEADERS([X11/extensions/shape.h X11/extensions/Xrender.h X11/extensions/XTest.h],
+                [X11_A_OK=yes],
+                [X11_A_OK=no])
+CFLAGS="$OLD_CFLAGS"
+AC_LANG_POP(C)
+
+if test "x$X11_A_OK" = xno && test "x$X11_NOT_NEEDED" != xyes; then 
+    help_on_build_dependency x11
+    AC_ERROR([Could not find all X11 headers (shape.h Xrender.h XTest.h). $HELP_MSG])
+fi
+
+###############################################################################
+#
+# The common unix printing system cups is used to print from java.
+#
+AC_ARG_WITH(cups, [AS_HELP_STRING([--with-cups],
+    [specify prefix directory for the cups package
+	 (expecting the libraries under PATH/lib and the headers under PATH/include)])])
+AC_ARG_WITH(cups-include, [AS_HELP_STRING([--with-cups-include],
+	[specify directory for the cups include files])])
+AC_ARG_WITH(cups-lib, [AS_HELP_STRING([--with-cups-lib],
+	[specify directory for the cups library])])
+
+if test "x$CUPS_NOT_NEEDED" = xyes; then
+	if test "x$with_cups" != x || test "x$with_cups-include" != x || test "x$with_cups-lib" != x; then
+		AC_MSG_WARN([cups not used, so --with-cups is ignored])
+	fi
+	CUPS_CFLAGS=
+	CUPS_LIBS=
+else
+	CUPS_FOUND=no
+
+	if test "x$with_cups" = xno || test "x$with_cups-include" = xno || test "x$with_cups-lib" = xno; then
+	    AC_ERROR([It is not possible to disable the use of cups. Remove the --without-cups option.])
+	fi
+
+	if test "x$with_cups" != x; then
+	    CUPS_LIBS="-L$with_cups/lib -lcups"
+	    CUPS_CFLAGS="-I$with_cups/include"
+	    CUPS_FOUND=yes
+	fi
+	if test "x$with_cups-include" != x; then
+	    CUPS_CFLAGS="-I$with_cups-include"
+	    CUPS_FOUND=yes
+	fi
+	if test "x$with_cups-lib" != x; then
+	    CUPS_LIBS="-L$with_cups-lib -lcups"
+	    CUPS_FOUND=yes
+	fi
+	if test "x$CUPS_FOUND" = xno; then
+	    BDEPS_CHECK_MODULE(CUPS, cups, xxx, [CUPS_FOUND=yes])
+	fi
+	if test "x$CUPS_FOUND" = xno; then
+	    # Are the cups headers installed in the default /usr/include location?
+	    AC_CHECK_HEADERS([cups/cups.h cups/ppd.h],
+	                     [CUPS_FOUND=yes
+	                      CUPS_CFLAGS=
+	                      CUPS_LIBS="-lcups"
+	                      DEFAULT_CUPS=yes])
+	fi
+	if test "x$CUPS_FOUND" = xno; then
+	    # Getting nervous now? Lets poke around for standard Solaris third-party
+	    # package installation locations.
+	    AC_MSG_CHECKING([for cups headers and libs])
+	    if test -s /opt/sfw/cups/include/cups/cups.h; then
+	       # An SFW package seems to be installed!
+	       CUPS_FOUND=yes
+	       CUPS_CFLAGS="-I/opt/sfw/cups/include"
+	       CUPS_LIBS="-L/opt/sfw/cups/lib -lcups"
+	    elif test -s /opt/csw/include/cups/cups.h; then
+	       # A CSW package seems to be installed!
+	       CUPS_FOUND=yes
+	       CUPS_CFLAGS="-I/opt/csw/include"
+	       CUPS_LIBS="-L/opt/csw/lib -lcups"
+	    fi
+	    AC_MSG_RESULT([$CUPS_FOUND])
+	fi
+	if test "x$CUPS_FOUND" = xno; then 
+	    help_on_build_dependency cups
+	    AC_ERROR([Could not find cups! $HELP_MSG ])
+	fi
+fi
+
+AC_SUBST(CUPS_CFLAGS)
+AC_SUBST(CUPS_LIBS)
+
+###############################################################################
+#
+# The ubiquitous freetype2 library is used to render fonts.
+#
+AC_ARG_WITH(freetype, [AS_HELP_STRING([--with-freetype],
+	[specify prefix directory for the freetype2 package
+     (expecting the libraries under PATH/lib and the headers under PATH/include)])])
+
+# If we are using the OS installed system lib for freetype, then we do not need to copy it to the build tree
+USING_SYSTEM_FT_LIB=false
+
+if test "x$FREETYPE2_NOT_NEEDED" = xyes; then
+	if test "x$with_freetype" != x || test "x$with_freetype_include" != x || test "x$with_freetype_lib" != x; then
+		AC_MSG_WARN([freetype not used, so --with-freetype is ignored])
+	fi
+	FREETYPE2_CFLAGS=
+	FREETYPE2_LIBS=
+        FREETYPE2_LIB_PATH=
+else
+	FREETYPE2_FOUND=no
+
+	if test "x$with_freetype" != x; then
+            SPACESAFE(with_freetype,[the path to freetype])
+	    FREETYPE2_LIBS="-L$with_freetype/lib -lfreetype"
+            if test "x$HOST_OS" = xwindows; then
+                FREETYPE2_LIBS="$with_freetype/lib/freetype.lib"
+            fi
+            FREETYPE2_LIB_PATH="$with_freetype/lib"
+	    FREETYPE2_CFLAGS="-I$with_freetype/include"
+            if test -s $with_freetype/include/ft2build.h && test -d $with_freetype/include/freetype2/freetype; then
+                FREETYPE2_CFLAGS="-I$with_freetype/include/freetype2 -I$with_freetype/include"
+            fi
+	    FREETYPE2_FOUND=yes
+   	    if test "x$FREETYPE2_FOUND" = xyes; then
+	        # Verify that the directories exist 
+                if ! test -d "$with_freetype/lib" || ! test -d "$with_freetype/include"; then
+		   AC_ERROR([Could not find the expected directories $with_freetype/lib and $with_freetype/include])
+		fi
+	        # List the contents of the lib.
+		FREETYPELIB=`ls $with_freetype/lib/libfreetype.so $with_freetype/lib/freetype.dll 2> /dev/null`
+                if test "x$FREETYPELIB" = x; then
+		   AC_ERROR([Could not find libfreetype.se nor freetype.dll in $with_freetype/lib])
+		fi
+	        # Check one h-file
+                if ! test -s "$with_freetype/include/ft2build.h"; then
+		   AC_ERROR([Could not find $with_freetype/include/ft2build.h])
+		fi
+            fi
+        fi
+	if test "x$FREETYPE2_FOUND" = xno; then
+	    BDEPS_CHECK_MODULE(FREETYPE2, freetype2, xxx, [FREETYPE2_FOUND=yes], [FREETYPE2_FOUND=no])
+            USING_SYSTEM_FT_LIB=true
+	fi
+	if test "x$FREETYPE2_FOUND" = xno; then
+	    PKG_CHECK_MODULES(FREETYPE2, freetype2, [FREETYPE2_FOUND=yes], [FREETYPE2_FOUND=no])
+            USING_SYSTEM_FT_LIB=true
+	fi
+	if test "x$FREETYPE2_FOUND" = xno; then
+	    AC_MSG_CHECKING([for freetype in some standard locations])
+	
+	    if test -s /usr/X11/include/ft2build.h && test -d /usr/X11/include/freetype2/freetype; then
+	        DEFAULT_FREETYPE_CFLAGS="-I/usr/X11/include/freetype2 -I/usr/X11/include"
+	        DEFAULT_FREETYPE_LIBS="-L/usr/X11/lib -lfreetype"
+	    fi
+	    if test -s /usr/include/ft2build.h && test -d /usr/include/freetype2/freetype; then
+	        DEFAULT_FREETYPE_CFLAGS="-I/usr/include/freetype2"
+	        DEFAULT_FREETYPE_LIBS="-lfreetype"
+	    fi
+	
+	    PREV_CXXCFLAGS="$CXXFLAGS"
+	    PREV_LDFLAGS="$LDFLAGS"
+	    CXXFLAGS="$CXXFLAGS $DEFAULT_FREETYPE_CFLAGS"
+	    LDFLAGS="$LDFLAGS $DEFAULT_FREETYPE_LIBS"
+	    AC_LINK_IFELSE([AC_LANG_SOURCE([[#include<ft2build.h>
+	                    #include FT_FREETYPE_H 
+	                   int main() { return 0; }
+	                  ]])],
+	                  [
+	                      # Yes, the default cflags and libs did the trick.
+	                      FREETYPE2_FOUND=yes
+	                      FREETYPE2_CFLAGS="$DEFAULT_FREETYPE_CFLAGS"
+	                      FREETYPE2_LIBS="$DEFAULT_FREETYPE_LIBS"
+	                  ],
+	                  [
+	                      FREETYPE2_FOUND=no
+	                  ])
+            CXXCFLAGS="$PREV_CXXFLAGS"
+	    LDFLAGS="$PREV_LDFLAGS"
+	    AC_MSG_RESULT([$FREETYPE2_FOUND])
+            USING_SYSTEM_FT_LIB=true
+	fi
+	if test "x$FREETYPE2_FOUND" = xno; then
+		help_on_build_dependency freetype2
+		AC_ERROR([Could not find freetype2! $HELP_MSG ])
+	fi    
+fi
+
+AC_SUBST(USING_SYSTEM_FT_LIB)
+AC_SUBST(FREETYPE2_LIB_PATH)
+AC_SUBST(FREETYPE2_CFLAGS)
+AC_SUBST(FREETYPE2_LIBS)
+
+###############################################################################
+#
+# Check for alsa headers and libraries. Used on Linux/GNU systems.
+#
+AC_ARG_WITH(alsa, [AS_HELP_STRING([--with-alsa],
+	[specify prefix directory for the alsa package
+	 (expecting the libraries under PATH/lib and the headers under PATH/include)])])
+AC_ARG_WITH(alsa-include, [AS_HELP_STRING([--with-alsa-include],
+	[specify directory for the alsa include files])])
+AC_ARG_WITH(alsa-lib, [AS_HELP_STRING([--with-alsa-lib],
+	[specify directory for the alsa library])])
+
+if test "x$ALSA_NOT_NEEDED" = xyes; then
+	if test "x$with_alsa" != x || test "x$with_alsa-include" != x || test "x$with_alsa-lib" != x; then
+		AC_MSG_WARN([alsa not used, so --with-alsa is ignored])
+	fi
+	ALSA_CFLAGS=
+	ALSA_LIBS=
+else
+	ALSA_FOUND=no
+
+	if test "x$with_alsa" = xno || test "x$with_alsa-include" = xno || test "x$with_alsa-lib" = xno; then
+	    AC_ERROR([It is not possible to disable the use of alsa. Remove the --without-alsa option.])
+	fi
+
+	if test "x$with_alsa" != x; then
+	    ALSA_LIBS="-L$with_alsa/lib -lalsa"
+	    ALSA_CFLAGS="-I$with_alsa/include"
+	    ALSA_FOUND=yes
+	fi
+	if test "x$with_alsa-include" != x; then
+	    ALSA_CFLAGS="-I$with_alsa/include"
+	    ALSA_FOUND=yes
+	fi
+	if test "x$with_alsa-lib" != x; then
+	    ALSA_LIBS="-L$with_alsa/lib -lalsa"
+	    ALSA_FOUND=yes
+	fi
+	if test "x$ALSA_FOUND" = xno; then
+	    BDEPS_CHECK_MODULE(ALSA, alsa, xxx, [ALSA_FOUND=yes], [ALSA_FOUND=no])
+	fi
+	if test "x$ALSA_FOUND" = xno; then
+	    PKG_CHECK_MODULES(ALSA, alsa, [ALSA_FOUND=yes], [ALSA_FOUND=no])
+	fi
+	if test "x$ALSA_FOUND" = xno; then
+	    AC_CHECK_HEADERS([alsa/asoundlib.h],
+	                     [ALSA_FOUND=yes
+	                      ALSA_CFLAGS=-Iignoreme
+	                      ALSA_LIBS=-lasound
+	                      DEFAULT_ALSA=yes],
+	                     [ALSA_FOUND=no])
+	fi
+	if test "x$ALSA_FOUND" = xno; then 
+	    help_on_build_dependency alsa
+	    AC_ERROR([Could not find alsa! $HELP_MSG ])
+	fi    
+fi
+
+AC_SUBST(ALSA_CFLAGS)
+AC_SUBST(ALSA_LIBS)
+
+###############################################################################
+#
+# Check for pulse audio headers and libraries.
+#
+PULSE_FOUND=no
+AC_ARG_WITH(pulse, [AS_HELP_STRING([--with-pulse],
+	[specify prefix directory for the pulseaudio package
+	 (expecting the libraries under PATH/lib and the headers under PATH/include)])])
+AC_ARG_WITH(pulse-include, [AS_HELP_STRING([--with-pulse-include],
+	[specify directory for the pulseaudio include files])])
+AC_ARG_WITH(pulse-lib, [AS_HELP_STRING([--with-pulse-lib],
+	[specify directory for the pulseaudio library])])
+
+if test "x$with_pulse" != x; then
+    PULSE_LIBS="-L$with_pulse/lib -lfreetype"
+    PULSE_CFLAGS="-I$with_pulse/include"
+    PULSE_FOUND=yes
+fi
+if test "x$with_pulse-include" != x; then
+    PULSE_CFLAGS="-I$with_pulse/include"
+    PULSE_FOUND=yes
+fi
+if test "x$with_pulse-lib" != x; then
+    PULSE_LIBS="-L$with_pulse/lib -lfreetype"
+    PULSE_FOUND=yes
+fi
+if test "x$PULSE_FOUND" = xno; then
+    BDEPS_CHECK_MODULE(PULSE, pulse, xxx, [PULSE_FOUND=yes], [PULSE_FOUND=no])
+fi
+if test "x$PULSE_FOUND" = xno; then
+    PKG_CHECK_MODULES(LIBPULSE,[libpulse >= 0.9.11],[PULSE_FOUND=yes],[PULSE_FOUND=no])
+fi
+if test "x$PULSE_FOUND" = xno; then
+    AC_CHECK_HEADERS([pulse/pulseaudio.h],
+                     [PULSE_FOUND=yes
+                      PULSE_CFLAGS=-Iignoreme
+                      PULSE_LIBS=
+                      DEFAULT_PULSE=yes],
+                     [PULSE_FOUND=no])
+fi
+
+if test "x$PULSE_FOUND" = xno && test "x$PULSE_NOT_NEEDED" != xyes; then 
+    help_on_build_dependency pulse
+    AC_ERROR([Could not find pulse audio libraries. $HELP_MSG ])
+fi    
+
+AC_SUBST(PULSE_CFLAGS)
+AC_SUBST(PULSE_LIBS)
+
+###############################################################################
+#
+# Check for the jpeg library
+#
+
+USE_EXTERNAL_LIBJPEG=true
+AC_CHECK_LIB(jpeg, main, [],
+             [ USE_EXTERNAL_LIBJPEG=false
+               AC_MSG_NOTICE([Will use jpeg decoder bundled with the OpenJDK source])
+             ])
+AC_SUBST(USE_EXTERNAL_LIBJPEG)
+        
+###############################################################################
+#
+# Check for the gif library
+#
+
+USE_EXTERNAL_LIBJPEG=true
+AC_CHECK_LIB(gif, main, [],
+             [ USE_EXTERNAL_LIBGIF=false
+               AC_MSG_NOTICE([Will use gif decoder bundled with the OpenJDK source])
+             ])
+AC_SUBST(USE_EXTERNAL_LIBGIF)
+
+###############################################################################
+#
+# Check for the zlib library
+#
+
+USE_EXTERNAL_LIBZ=true
+AC_CHECK_LIB(z, main, [],
+             [ USE_EXTERNAL_LIBZ=false
+               AC_MSG_NOTICE([Will use zlib bundled with the OpenJDK source])
+             ])
+AC_SUBST(USE_EXTERNAL_LIBZ)
+
+###############################################################################
+#
+# Check if altzone exists in time.h
+#
+
+AC_TRY_LINK([#include <time.h>], [return (int)altzone;],
+            has_altzone=yes,
+            has_altzone=no)
+if test "x$has_altzone" = xyes; then
+    AC_DEFINE([HAVE_ALTZONE], 1, [Define if you have the external 'altzone' variable in time.h])
+fi
+
+###############################################################################
+#
+# Check the maths library
+#
+
+AC_CHECK_LIB(m, main, [],
+             [ 
+                  AC_MSG_NOTICE([Maths library was not found])
+             ])
+AC_SUBST(LIBM)
+
+###############################################################################
+#
+# Should we run the painfully slow javadoc tool?
+#
+AC_MSG_CHECKING([whether to build documentation])
+AC_ARG_ENABLE([docs], [AS_HELP_STRING([--enable-docs],
+	[enable generation of Javadoc documentation @<:@disabled@:>@])],
+	[ENABLE_DOCS="${enableval}"], [ENABLE_DOCS='no'])
+AC_MSG_RESULT([$ENABLE_DOCS])
+AC_SUBST(ENABLE_DOCS)
+GENERATE_DOCS=false
+if test "x$ENABLE_DOCS" = xyes; then
+    GENERATE_DOCS=true
+fi
+AC_SUBST(GENERATE_DOCS)
+
+###############################################################################
+#
+# Should we compile nimbus swing L&F? We can probably remove this option
+# since nimbus is officially part of javax now.
+#
+AC_MSG_CHECKING([whether to build nimbus L&F])
+AC_ARG_ENABLE([nimbus], [AS_HELP_STRING([--disable-nimbus],
+	[disable Nimbus L&F @<:@enabled@:>@])],
+	[ENABLE_NIMBUS="${enableval}"], [ENABLE_NIMBUS='yes'])
+AC_MSG_RESULT([$ENABLE_NIMBUS])
+DISABLE_NIMBUS=
+if test "x$ENABLE_NIMBUS" = xno; then
+    DISABLE_NIMBUS=true
+fi
+AC_SUBST(DISABLE_NIMBUS)
+
+###############################################################################
+#
+# Setup the opt flags for different compilers
+# and different operating systems.
+#
+case $COMPILER_TYPE in
+  CC )
+    D_FLAG="-g"
+    case $COMPILER_NAME in
+      gcc )
+      	case $PLATFORM in
+	  macosx )
+	    # On MacOSX we optimize for size, something
+	    # we should do for all platforms?
+	    C_O_FLAG_HI="-O3"
+	    C_O_FLAG_NORM="-Os"
+	    C_O_FLAG_NONE="-O0"
+	    ;;
+	  *)
+	    C_O_FLAG_HI="-O3"
+	    C_O_FLAG_NORM="-O2"
+	    C_O_FLAG_NONE="-O0"
+	    ;;
+	esac
+        CXX_O_FLAG_HI="$C_O_FLAG_HI"
+        CXX_O_FLAG_NORM="$C_O_FLAG_NORM"
+        CXX_O_FLAG_NONE="$C_O_FLAG_NONE"
+        ;;
+      ossc )
+        case $LEGACY_HOST_CPU1 in
+          i586)
+            C_O_FLAG_HI="-xO4 -Wu,-O4~yz"
+            C_O_FLAG_NORM="-xO2 -Wu,-O2~yz"
+            C_O_FLAG_NONE=""
+            CXX_O_FLAG_HI="-xO4 -Qoption ube -O4~yz"
+            CXX_O_FLAG_NORM="-xO2 -Qoption ube -O2~yz"
+            CXX_O_FLAG_NONE=""
+            ;;
+          sparc)
+            C_O_FLAG_HI="-xO4 -Wc,-Qrm-s -Wc,-Qiselect-T0"
+            C_O_FLAG_NORM="-xO2 -Wc,-Qrm-s -Wc,-Qiselect-T0"
+            C_O_FLAG_NONE=""
+            CXX_O_FLAG_HI="-xO4 -Qoption cg -Qrm-s -Qoption cg -Qiselect-T0"
+            CXX_O_FLAG_NORM="-xO2 -Qoption cg -Qrm-s -Qoption cg -Qiselect-T0"
+            CXX_O_FLAG_NONE=""
+            ;;
+        esac
+    esac
+    ;;
+  CL )
+    D_FLAG=
+    C_O_FLAG_HI="-O2"
+    C_O_FLAG_NORM="-O1"
+    C_O_FLAG_NONE="-Od"
+    CXX_O_FLAG_HI="$C_O_FLAG_HI"
+    CXX_O_FLAG_NORM="$C_O_FLAG_NORM"
+    CXX_O_FLAG_NONE="$C_O_FLAG_NONE"
+    ;;
+esac
+
+AC_SUBST(C_O_FLAG_HI)
+AC_SUBST(C_O_FLAG_NORM)
+AC_SUBST(C_O_FLAG_NONE)
+AC_SUBST(CXX_O_FLAG_HI)
+AC_SUBST(CXX_O_FLAG_NORM)
+AC_SUBST(CXX_O_FLAG_NONE)
+
+###############################################################################
+#
+# Setup legacy vars/targets and new vars to deal with different debug levels.
+#
+case $DEBUG_LEVEL in
+      release )
+              HOTSPOT_DEBUG_LEVEL="product"
+              HOTSPOT_EXPORT="product"
+              ;;
+      fastdebug ) 
+              HOTSPOT_DEBUG_LEVEL="fastdebug"   
+              HOTSPOT_EXPORT="fastdebug"
+              CFLAGS="$CFLAGS $D_FLAG"
+              JAVAC_FLAGS="$JAVAC_FLAGS -g"
+              ;;
+      slowdebug )
+              HOTSPOT_DEBUG_LEVEL="jvmg"
+              HOTSPOT_EXPORT="debug"
+              CFLAGS="$CFLAGS $D_FLAG"
+	      C_O_FLAG_HI="$C_O_FLAG_NONE"
+	      C_O_FLAG_NORM="$C_O_FLAG_NONE"
+	      CXX_O_FLAG_HI="$CXX_O_FLAG_NONE"
+	      CXX_O_FLAG_NORM="$CXX_O_FLAG_NONE"
+              JAVAC_FLAGS="$JAVAC_FLAGS -g"
+              ;;
+esac              
+
+###############################################################################
+#
+# Generate the legacy makefile targets for hotspot.
+# The hotspot api for selecting the build artifacts, really, needs to be improved.
+#
+HOTSPOT_TARGET=""
+
+if test "x$JVM_VARIANT_SERVER" = xtrue; then
+    HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL} "
+fi
+
+if test "x$JVM_VARIANT_CLIENT" = xtrue; then
+    HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}1 "
+fi
+
+if test "x$JVM_VARIANT_KERNEL" = xtrue; then
+    HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}kernel "
+fi
+
+if test "x$JVM_VARIANT_ZERO" = xtrue; then
+    HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}zero "
+fi
+
+if test "x$JVM_VARIANT_ZEROSHARK" = xtrue; then
+    HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}shark "
+fi
+
+HOTSPOT_TARGET="$HOTSPOT_TARGET docs export_$HOTSPOT_EXPORT"
+
+###############################################################################
+#
+# Setup all directories for the subrepoes and the arguments to the sub makes.
+#
+LANGTOOLS_OUTPUTDIR="$OUTPUT_ROOT/langtools"
+LANGTOOLS_DIST="$OUTPUT_ROOT/langtools/dist"
+LANGTOOLS_MAKE_ARGS=""
+AC_SUBST(LANGTOOLS_OUTPUTDIR)
+AC_SUBST(LANGTOOLS_DIST)
+AC_SUBST(LANGTOOLS_MAKE_ARGS)
+
+CORBA_OUTPUTDIR="$OUTPUT_ROOT/corba"
+CORBA_DIST="$OUTPUT_ROOT/corba/dist"
+CORBA_MAKE_ARGS=""
+AC_SUBST(CORBA_OUTPUTDIR)
+AC_SUBST(CORBA_DIST)
+AC_SUBST(CORBA_MAKE_ARGS)
+
+JAXP_OUTPUTDIR="$OUTPUT_ROOT/jaxp"
+JAXP_DIST="$OUTPUT_ROOT/jaxp/dist"
+JAXP_MAKE_ARGS=""
+AC_SUBST(JAXP_OUTPUTDIR)
+AC_SUBST(JAXP_DIST)
+AC_SUBST(JAXP_MAKE_ARGS)
+
+JAXWS_OUTPUTDIR="$OUTPUT_ROOT/jaxws"
+JAXWS_DIST="$OUTPUT_ROOT/jaxws/dist"
+JAXWS_MAKE_ARGS=""
+AC_SUBST(JAXWS_OUTPUTDIR)
+AC_SUBST(JAXWS_DIST)
+AC_SUBST(JAXWS_MAKE_ARGS)
+
+HOTSPOT_OUTPUTDIR="$OUTPUT_ROOT/hotspot"
+HOTSPOT_DIST="$OUTPUT_ROOT/hotspot/dist"
+HOTSPOT_MAKE_ARGS="ALT_OUTPUTDIR=$HOTSPOT_OUTPUTDIR ALT_EXPORT_PATH=$HOTSPOT_DIST $HOTSPOT_TARGET"
+AC_SUBST(HOTSPOT_OUTPUTDIR)
+AC_SUBST(HOTSPOT_DIST)
+AC_SUBST(HOTSPOT_MAKE_ARGS)
+
+JDK_OUTPUTDIR="$OUTPUT_ROOT/jdk"
+JDK_MAKE_ARGS="ALT_OUTPUTDIR=\"$OUTPUT_ROOT/jdk\""
+AC_SUBST(JDK_OUTPUTDIR)
+AC_SUBST(JDK_MAKE_ARGS)
+
+IMAGES_OUTPUTDIR=$OUTPUT_ROOT/images
+IMAGES_MAKE_ARGS="ALT_OUTPUTDIR=$OUTPUT_ROOT/jdk \
+                  SHARE_SRC=$JDK_TOPDIR/src/share \
+                  PLATFORM_SRC=$JDK_TOPDIR/src/$LEGACY_HOST_OS_API \
+                  TEMPDIR=$IMAGES_OUTPUTDIR/tmp \
+                  ABS_TEMPDIR=$IMAGES_OUTPUTDIR/tmp "
+AC_SUBST(IMAGES_OUTPUTDIR)
+AC_SUBST(IMAGES_MAKE_ARGS)
+
+###############################################################################
+#
+# Now setup the CFLAGS and LDFLAGS for the JDK build.
+# Later we will also have CFLAGS and LDFLAGS for the hotspot subrepo build.
+#
+case $COMPILER_NAME in
+      gcc )
+      	  CCXXFLAGS_JDK="$CCXXFLAGS_JDK -W -Wall -Wno-unused -Wno-parentheses -pipe -fno-omit-frame-pointer \
+                          -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE"
+          CFLAGS_JDK="$CFLAGS_JDK -fno-strict-aliasing"
+          ;;
+      ossc )
+      	  CFLAGS_JDK="$CFLAGS_JDK -xc99=%none -xCC -errshort=tags -Xa REQUIRED -v -mt -norunpath -xnolib"
+      	  CXXFLAGS_JDK="$CXXFLAGS_JDK -errtags=yes +w -mt REQUIRED -features=no%except -DCC_NOEX"
+          ;;
+      cl )
+          CCXXFLAGS_JDK="$CCXXFLAGS_JDK -Zi -MD -Zc:wchar_t- -W3 -wd4800 \
+               -D_STATIC_CPPLIB -D_DISABLE_DEPRECATE_STATIC_CPPLIB -DWIN32_LEAN_AND_MEAN \
+	       -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE \
+	       -DWIN32 -DIAL"
+          case $LEGACY_HOST_CPU1 in
+              i?86 )
+                  CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_X86_ -Dx86"
+                  ;;
+              amd64 )
+                  CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_AMD64_ -Damd64"
+                  ;;
+          esac
+          ;;
+esac
+
+CCXXFLAGS_JDK="$CCXXFLAGS_JDK $ADD_LP64"
+
+# The package path is used only on macosx?
+PACKAGE_PATH=/opt/local
+AC_SUBST(PACKAGE_PATH)
+
+# Sometimes we use a cpu dir (.../lib/amd64/server) 
+# Sometimes not (.../lib/server) 
+LIBARCHDIR="$LEGACY_HOST_CPU2/"
+if test "x$ENDIAN" = xlittle; then
+    CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_LITTLE_ENDIAN"
+else
+    CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_BIG_ENDIAN"
+fi
+if test "x$HOST_OS" = xlinux; then
+    CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DLINUX"
+fi
+if test "x$HOST_OS" = xwindows; then
+    CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DWINDOWS"
+fi
+if test "x$HOST_OS" = xsolaris; then
+    CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DSOLARIS"
+fi
+if test "x$HOST_OS" = xmacosx; then
+    CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DMACOSX -D_ALLBSD_SOURCE"
+    LIBARCHDIR=""
+fi
+if test "x$HOST_OS" = xbsd; then
+    CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DBSD -D_ALLBSD_SOURCE"
+fi
+if test "x$DEBUG_LEVEL" = xrelease; then
+    CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DNDEBUG"
+else
+    CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DDEBUG"
+fi
+
+CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DARCH='\"$LEGACY_HOST_CPU1\"' -D$LEGACY_HOST_CPU1"
+CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DRELEASE='\"$RELEASE\"'"
+
+CCXXFLAGS_JDK="$CCXXFLAGS_JDK \
+        -I${JDK_OUTPUTDIR}/include \
+        -I${JDK_OUTPUTDIR}/include/$PLATFORM \
+        -I${JDK_TOPDIR}/src/share/javavm/export \
+        -I${JDK_TOPDIR}/src/$LEGACY_HOST_OS_API/javavm/export \
+        -I${JDK_TOPDIR}/src/share/native/common \
+        -I${JDK_TOPDIR}/src/$LEGACY_HOST_OS_API/native/common"
+
+# The shared libraries are compiled using the picflag.
+CFLAGS_JDKLIB="$CCXXFLAGS_JDK $CFLAGS_JDK $PICFLAG $CFLAGS_JDKLIB_EXTRA"
+CXXFLAGS_JDKLIB="$CCXXFLAGS_JDK $CXXFLAGS_JDK $PICFLAG"
+
+# Executable flags
+CFLAGS_JDKEXE="$CCXXFLAGS_JDK $CFLAGS_JDK"
+CXXFLAGS_JDKEXE="$CCXXFLAGS_JDK $CXXFLAGS_JDK"
+
+# Now this is odd. The JDK native libraries have to link against libjvm.so
+# On 32-bit machines there is normally two distinct libjvm.so:s, client and server.
+# Which should we link to? Are we lucky enough that the binary api to the libjvm.so library
+# is identical for client and server? Yes. Which is picked at runtime (client or server)?
+# Neither, since the chosen libjvm.so has already been loaded by the launcher, all the following
+# libraries will link to whatever is in memory. Yuck. 
+#
+# Thus we offer the compiler to find libjvm.so first in server then in client. It works. Ugh.
+if test "x$COMPILER_TYPE" = xCL; then
+    LDFLAGS_JDKLIB="$LDFLAGS -libpath:${JDK_OUTPUTDIR}/lib jvm.lib java.lib"
+    LDFLAGS_JDKLIB_SUFFIX=""
+    if test "x$HOST_CPU_BITS" = "x64"; then
+        LDFLAGS_JDKEXE="$CFLAGS ${JDK_OUTPUTDIR}/tmp/java/jli/obj64/jli.lib"
+    else
+        LDFLAGS_JDKEXE="$CFLAGS ${JDK_OUTPUTDIR}/tmp/java/jli/obj/jli.lib"
+    fi
+    LDFLAGS_JDKEXE_SUFFIX=""
+else
+    # If this is a --hash-style=gnu system, use --hash-style=both, why?
+    HAS_GNU_HASH=`$CC -dumpspecs 2>/dev/null | $GREP 'hash-style=gnu'`
+    if test -n "$HAS_GNU_HASH"; then
+        # And since we now know that the linker is gnu, then add -z defs, to forbid
+        # undefined symbols in object files.
+        LDFLAGS="$LDFLAGS -Xlinker --hash-style=both -Xlinker -z -Xlinker defs"
+        if test "x$DEBUG_LEVEL" == "xrelease"; then
+            # When building release libraries, tell the linker optimize them.
+            # Should this be supplied to the OSS linker as well?
+            LDFLAGS="$LDFLAGS -Xlinker -O1"
+        fi
+    fi
+
+    LDFLAGS_JDKLIB="$LDFLAGS $SHARED_LIBRARY_FLAGS -L${JDK_OUTPUTDIR}/lib/${LIBARCHDIR}server \
+                    -L${JDK_OUTPUTDIR}/lib/${LIBARCHDIR}client \
+  	            -L${JDK_OUTPUTDIR}/lib/${LIBARCHDIR}" 
+    LDFLAGS_JDKLIB_SUFFIX="-ljvm -ljava"
+    if test "x$COMPILER_NAME" = xossc; then
+        LDFLAGS_JDKLIB_SUFFIX="$LDFLAGS_JDKLIB_SUFFIX -lc"
+    fi
+
+    # Only the jli library is explicitly linked when the launchers are built.
+    # The libjvm is then dynamically loaded/linked by the launcher.
+    LDFLAGS_JDKEXE="$LDFLAGS -L${JDK_OUTPUTDIR}/lib/${LIBARCHDIR}jli"
+    LDFLAGS_JDKEXE_SUFFIX="-ljli"
+fi
+
+                
+AC_SUBST(CFLAGS_JDKLIB)
+AC_SUBST(CFLAGS_JDKEXE)
+
+AC_SUBST(CXXFLAGS_JDKLIB)
+AC_SUBST(CXXFLAGS_JDKEXE)
+
+AC_SUBST(LDFLAGS_JDKLIB)
+AC_SUBST(LDFLAGS_JDKEXE)
+AC_SUBST(LDFLAGS_JDKLIB_SUFFIX)
+AC_SUBST(LDFLAGS_JDKEXE_SUFFIX)
+
+
+###############################################################################
+#
+# statically link libstdc++ before C++ ABI is stablized on Linux unless 
+# dynamic build is configured on command line.
+#
+AC_ARG_ENABLE([static-link-stdc++], [AS_HELP_STRING([--disable-static-link-stdc++],
+	[disable static linking of the C++ runtime on Linux @<:@enabled@:>@])],,
+	[
+		enable_static_link_stdc__=yes
+    ])
+
+if test "x$HOST_OS" = xlinux; then
+    # Test if -lstdc++ works.
+    AC_MSG_CHECKING([if dynamic link of stdc++ is possible])
+    AC_LANG_PUSH(C++)
+    OLD_CXXFLAGS="$CXXFLAGS"
+    CXXFLAGS="$CXXFLAGS -lstdc++"
+    AC_TRY_LINK([], [return 0;],
+            has_dynamic_libstdcxx=yes,
+            has_dynamic_libstdcxx=no)
+    CXXFLAGS="$OLD_CXXFLAGS"
+    AC_LANG_POP(C++)
+    AC_MSG_RESULT([$has_dynamic_libstdcxx])
+
+    # Test if stdc++ can be linked statically.
+    AC_MSG_CHECKING([if static link of stdc++ is possible])
+    STATIC_STDCXX_FLAGS="-Wl,-Bstatic -lstdc++ -lgcc -Wl,-Bdynamic"
+    AC_LANG_PUSH(C++)
+    OLD_LIBS="$LIBS"
+    OLD_CXX="$CXX"
+    LIBS="$STATIC_STDCXX_FLAGS"
+    CXX="$CC"                       
+    AC_TRY_LINK([], [return 0;],
+            has_static_libstdcxx=yes,
+            has_static_libstdcxx=no)
+    LIBS="$OLD_LIBS"
+    CXX="$OLD_CXX"
+    AC_LANG_POP(C++)
+    AC_MSG_RESULT([$has_static_libstdcxx])
+
+    if test "x$has_static_libcxx" = xno && test "x$has_dynamic_libcxx" = xno; then
+        AC_ERROR([I cannot link to stdc++! Neither dynamically nor statically.])
+    fi
+
+    if test "x$enable_static_link_stdc__" = xyes && test "x$has_static_libstdcxx" = xno; then
+        AC_MSG_NOTICE([Static linking of libstdc++ was not possible reverting to dynamic linking.])
+        enable_static_link_stdc__=no
+    fi
+
+    if test "x$enable_static_link_stdc__" = xno && test "x$has_dynamic_libstdcxx" = xno; then
+        AC_MSG_NOTICE([Dynamic linking of libstdc++ was not possible reverting to static linking.])
+        enable_static_link_stdc__=yes
+    fi
+
+    AC_MSG_CHECKING([how to link with libstdc++])
+    if test "x$enable_static_link_stdc__" = xyes; then
+        LIBCXX="$LIBCXX $STATIC_STDCXX_FLAGS"
+        LDCXX="$CC"
+        AC_MSG_RESULT([static])
+    else
+        LIBCXX="$LIBCXX -lstdc++"
+        LDCXX="$CXX"
+        AC_MSG_RESULT([dynamic])
+    fi
+fi
+
+###############################################################################
+#
+# Could someone enlighten this configure script with a comment about libCrun?
+# The LEGACY_HOST_CPU3 is the setting for ISA_DIR.
+#
+if test "x$HOST_OS" = xsolaris; then
+    LIBCXX="$LIBCXX /usr/lib${LEGACY_HOST_CPU3}/libCrun.so.1"
+fi
+
+AC_SUBST(LIBCXX)
+
+###############################################################################
+#
+# Misc
+#
+
+# Control wether Hotspot runs Queens test after build.
+AC_ARG_ENABLE([hotspot-test-in-build], [AS_HELP_STRING([--enable-hotspot-test-in-build],
+	[enable running of Queens test after Hotspot build (not yet available) @<:@disabled@:>@])],,
+    [enable_hotspot_test_in_build=no])
+if test "x$enable_hotspot_test_in_build" = "xyes"; then
+    TEST_IN_BUILD=true
+else
+    TEST_IN_BUILD=false
+fi
+AC_SUBST(TEST_IN_BUILD)
+
+###############################################################################
+#
+# A helpful message at the end of the configure run.
+#
+if test "x$CCACHE_FOUND" = x && test "x$GCC" = xyes; then
+    help_on_build_dependency ccache
+    
+    printf "\nTip of the day:\nYou should really install ccache version 3.1.4 or newer.\n"
+    printf "It gives a tremendous speedup for C++ recompilations with precompiled headers!\n"
+fi    
+
+if test "x$CCACHE_FOUND" != x && test "x$HAS_GOOD_CCACHE" = x; then
+    printf "You have a ccache installed, but it is a version prior to 3.1.4. Try upgrading.\n"
+fi
+
+AC_OUTPUT
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/autoconf/cores.m4	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,103 @@
+#
+# 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.
+#
+
+AC_DEFUN([CHECK_CORES],
+[
+    AC_MSG_CHECKING([for number of cores])
+    NUM_CORES=1
+    FOUND_CORES=no
+    
+    if test -f /proc/cpuinfo; then
+        # Looks like a Linux system
+        NUM_CORES=`cat /proc/cpuinfo  | grep -c processor`
+        FOUND_CORES=yes
+    fi
+
+    if test -x /usr/sbin/psrinfo; then
+        # Looks like a Solaris system
+        NUM_CORES=`LC_MESSAGES=C /usr/sbin/psrinfo -v | grep -c on-line`
+        FOUND_CORES=yes
+    fi
+
+    if test -x /usr/sbin/system_profiler; then
+        # Looks like a MacOSX system
+        NUM_CORES=`/usr/sbin/system_profiler -detailLevel full SPHardwareDataType | grep 'Cores' | awk  '{print [$]5}'`
+        FOUND_CORES=yes
+    fi
+
+    if test "x$build_os" = xwindows; then
+        NUM_CORES=4
+    fi
+
+    # For c/c++ code we run twice as many concurrent build
+    # jobs than we have cores, otherwise we will stall on io.
+    CONCURRENT_BUILD_JOBS=`expr $NUM_CORES \* 2`
+
+    if test "x$FOUND_CORES" = xyes; then
+        AC_MSG_RESULT([$NUM_CORES])
+    else
+        AC_MSG_RESULT([could not detect number of cores, defaulting to 1!])
+    fi 
+
+])
+
+AC_DEFUN([CHECK_MEMORY_SIZE],
+[
+    AC_MSG_CHECKING([for memory size])
+    # Default to 1024MB
+    MEMORY_SIZE=1024
+    FOUND_MEM=no
+    
+    if test -f /proc/cpuinfo; then
+        # Looks like a Linux system
+        MEMORY_SIZE=`cat /proc/meminfo | grep MemTotal | awk '{print [$]2}'`
+        MEMORY_SIZE=`expr $MEMORY_SIZE / 1024`
+        FOUND_MEM=yes
+    fi
+
+    if test -x /usr/sbin/prtconf; then
+        # Looks like a Solaris system
+        MEMORY_SIZE=`/usr/sbin/prtconf | grep "Memory size" | awk '{ print [$]3 }'`
+        FOUND_MEM=yes
+    fi
+
+    if test -x /usr/sbin/system_profiler; then
+        # Looks like a MacOSX system
+        MEMORY_SIZE=`/usr/sbin/system_profiler -detailLevel full SPHardwareDataType | grep 'Memory' | awk  '{print [$]2}'`
+        MEMORY_SIZE=`expr $MEMORY_SIZE \* 1024`
+        FOUND_MEM=yes
+    fi
+
+    if test "x$build_os" = xwindows; then
+        MEMORY_SIZE=`systeminfo | grep 'Total Physical Memory:' | awk '{ print [$]4 }' | sed 's/,//'`
+        FOUND_MEM=yes    
+    fi
+
+    if test "x$FOUND_MEM" = xyes; then
+        AC_MSG_RESULT([$MEMORY_SIZE MB])
+    else
+        AC_MSG_RESULT([could not detect memory size defaulting to 1024MB!])
+    fi 
+])
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/autoconf/help.m4	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,110 @@
+#
+# 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.
+#
+
+function help_on_build_dependency {
+    # Print a helpful message on how to acquire the necessary build dependency.
+    # $1 is the help tag: freetyp2, cups, pulse, alsa etc
+    MISSING_DEPENDENCY=$1
+    PKGHANDLER_COMMAND=
+
+    AC_CHECK_PROGS(PKGHANDLER, apt-get yum port pkgutil pkgadd)
+
+    case $PKGHANDLER in
+	apt-get)
+                apt_help     $MISSING_DEPENDENCY ;;
+        yum)
+                yum_help     $MISSING_DEPENDENCY ;;
+	port)
+                port_help    $MISSING_DEPENDENCY ;;
+	pkgutil)
+                pkgutil_help $MISSING_DEPENDENCY ;;
+	pkgadd)
+                pkgadd_help  $MISSING_DEPENDENCY ;;
+    * )
+      break ;;
+    esac
+
+    if test "x$PKGHANDLER_COMMAND" != x; then
+        HELP_MSG="Try running '$PKGHANDLER_COMMAND'."
+    fi
+}
+
+function apt_help {
+    case $1 in
+    devkit)
+        PKGHANDLER_COMMAND="sudo apt-get install build-essential" ;;
+    openjdk)
+        PKGHANDLER_COMMAND="sudo apt-get install openjdk-7-jdk" ;;
+    alsa)
+        PKGHANDLER_COMMAND="sudo apt-get install libasound2-dev" ;;
+    cups)
+        PKGHANDLER_COMMAND="sudo apt-get install libcups2-dev" ;;
+    freetype2)
+        PKGHANDLER_COMMAND="sudo apt-get install libfreetype6-dev" ;;
+    pulse)
+        PKGHANDLER_COMMAND="sudo apt-get install libpulse-dev" ;;
+    x11)
+        PKGHANDLER_COMMAND="sudo apt-get install libX11-dev libxext-dev libxrender-dev libxtst-dev" ;;
+    ccache)
+        PKGHANDLER_COMMAND="sudo apt-get install ccache" ;;
+    * )
+       break ;;
+    esac
+}
+
+function yum_help {
+    case $1 in
+    devkit)
+        PKGHANDLER_COMMAND="sudo yum groupinstall \"Development Tools\"" ;;
+    openjdk)
+        PKGHANDLER_COMMAND="sudo yum install java-1.7.0-openjdk" ;;
+    alsa)
+        PKGHANDLER_COMMAND="sudo yum install alsa-lib-devel" ;;
+    cups)
+        PKGHANDLER_COMMAND="sudo yum install cups-devel" ;;
+    freetype2)
+        PKGHANDLER_COMMAND="sudo yum install freetype2-devel" ;;
+    pulse)
+        PKGHANDLER_COMMAND="sudo yum install pulseaudio-libs-devel" ;;
+    x11)
+        PKGHANDLER_COMMAND="sudo yum install libXtst-devel" ;;
+    ccache)
+        PKGHANDLER_COMMAND="sudo yum install ccache" ;;
+    * )
+       break ;;
+    esac
+}
+
+function port_help {
+    PKGHANDLER_COMMAND=""
+}
+
+function pkgutil_help {
+    PKGHANDLER_COMMAND=""
+}
+
+function pkgadd_help {
+    PKGHANDLER_COMMAND=""
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/autoconf/platform.m4	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,517 @@
+#
+# 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.
+#
+
+AC_DEFUN([CHECK_FIND_DELETE],
+[
+    # Test if find supports -delete
+    AC_MSG_CHECKING([if find supports -delete])
+    FIND_DELETE="-delete"
+
+    DELETEDIR=`mktemp -d tmp.XXXXXXXXXX` || (echo Could not create temporary directory!; exit $?)
+
+    echo Hejsan > $DELETEDIR/TestIfFindSupportsDelete
+
+    TEST_DELETE=`$FIND "$DELETEDIR" -name TestIfFindSupportsDelete $FIND_DELETE 2>&1`
+    if test -f $DELETEDIR/TestIfFindSupportsDelete; then
+        # No, it does not.
+        rm $DELETEDIR/TestIfFindSupportsDelete
+        FIND_DELETE="-exec rm \{\} \+"
+        AC_MSG_RESULT([no])    
+    else
+        AC_MSG_RESULT([yes])    
+    fi
+    rmdir $DELETEDIR
+])
+
+AC_DEFUN([CHECK_NONEMPTY],
+[
+    # Test that variable $1 is not empty.
+    if test "" = "[$]$1"; then AC_ERROR(Could not find translit($1,A-Z,a-z) !); fi
+])
+
+AC_DEFUN([ADD_JVM_ARG_IF_OK],
+[
+    # Test if $1 is a valid argument to $3 (often is $JAVA passed as $3)
+    # If so, then append $1 to $2
+    FOUND_WARN=`$3 $1 -version 2>&1 | grep -i warn`
+    FOUND_VERSION=`$3 $1 -version 2>&1 | grep " version \""`
+    if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
+        $2="[$]$2 $1"
+    fi
+])
+
+AC_DEFUN([WHICHCMD],
+[
+    # Translate "gcc -E" into "`which gcc` -E" ie
+    # extract the full path to the binary and at the
+    # same time maintain any arguments passed to it.
+    # The command MUST exist in the path, or else!
+    tmp="[$]$1"
+    car="${tmp%% *}"
+    tmp="[$]$1 EOL"
+    cdr="${tmp#* }"
+    # On windows we want paths without spaces.
+    if test "x$BUILD_OS" = "xwindows"; then
+        WHICHCMD_SPACESAFE(car)
+    else
+        # "which" is not portable, but is used here
+        # because we know that the command exists!
+        car=`which $car`
+    fi
+    if test "x$cdr" != xEOL; then
+        $1="$car ${cdr% *}"
+    else
+        $1="$car"
+    fi
+])
+
+AC_DEFUN([SPACESAFE],
+[
+    # Fail with message $2 if var $1 contains a path with no spaces in it.
+    # Unless on Windows, where we can rewrite the path.
+    HAS_SPACE=`echo "[$]$1" | grep " "`
+    if test "x$HAS_SPACE" != x; then
+        if test "x$BUILD_OS" = "xwindows"; then
+            $1=`$CYGPATH -s -m -a "[$]$1"`
+            $1=`$CYGPATH -u "[$]$1"`            
+        else
+            AC_ERROR([You cannot have spaces in $2! "[$]$1"])
+        fi
+    fi
+])
+
+AC_DEFUN([WHICHCMD_SPACESAFE],
+[
+    # Translate long cygdrive or C:\sdfsf path
+    # into a short mixed mode path that has no
+    # spaces in it.
+    tmp="[$]$1"
+    if test "x$BUILD_OS" = "xwindows"; then
+        tmp=`$CYGPATH -u "[$]$1"`
+        tmp=`which "$tmp"`
+        # If file exists with .exe appended, that's the real filename
+        # and cygpath needs that to convert to short style path.
+        if test -f "${tmp}.exe"; then
+           tmp="${tmp}.exe"
+        elif test -f "${tmp}.cmd"; then
+           tmp="${tmp}.cmd"
+        fi
+        # Convert to C:/ mixed style path without spaces.
+         tmp=`$CYGPATH -s -m "$tmp"`
+    fi
+    $1="$tmp"
+])
+
+AC_DEFUN([REMOVE_SYMBOLIC_LINKS],
+[
+    if test "x$BUILD_OS" != xwindows; then
+        # Follow a chain of symbolic links. Use readlink
+        # where it exists, else fall back to horribly
+        # complicated shell code.
+        AC_PATH_PROG(READLINK, readlink)
+        if test "x$READLINK_TESTED" != yes; then
+            # On MacOSX there is a readlink tool with a different
+            # purpose than the GNU readlink tool. Check the found readlink.
+            ISGNU=`$READLINK --help 2>&1 | grep GNU`
+            if test "x$ISGNU" = x; then
+                 # A readlink that we do not know how to use.
+                 # Are there other non-GNU readlinks out there?
+                 READLINK_TESTED=yes
+                 READLINK=
+            fi
+        fi
+
+        if test "x$READLINK" != x; then
+            $1=`$READLINK -f [$]$1`
+        else
+            STARTDIR=$PWD
+            COUNTER=0
+            DIR=`dirname [$]$1`
+            FIL=`basename [$]$1`
+            while test $COUNTER -lt 20; do
+                ISLINK=`ls -l $DIR/$FIL | grep '\->' | sed -e 's/.*-> \(.*\)/\1/'`
+                if test "x$ISLINK" == x; then
+                    # This is not a symbolic link! We are done!
+                    break
+                fi
+                # The link might be relative! We have to use cd to travel safely.
+                cd $DIR
+                cd `dirname $ISLINK`
+                DIR=`pwd`
+                FIL=`basename $ISLINK`
+                let COUNTER=COUNTER+1
+            done
+            cd $STARTDIR
+            $1=$DIR/$FIL
+        fi
+    fi
+])
+
+AC_DEFUN([TESTFOR_PROG_CCACHE],
+[
+    AC_ARG_ENABLE([ccache],
+	      [AS_HELP_STRING([--disable-ccache],
+	      		      [use ccache to speed up recompilations @<:@enabled@:>@])],
+              [ENABLE_CCACHE=${enable_ccache}], [ENABLE_CCACHE=yes])
+    if test "x$ENABLE_CCACHE" = xyes; then
+        AC_PATH_PROG(CCACHE, ccache)
+    else
+        AC_MSG_CHECKING([for ccache])
+        AC_MSG_RESULT([explicitly disabled])    
+        CCACHE=
+    fi    
+    AC_SUBST(CCACHE)
+
+    AC_ARG_WITH([ccache-dir],
+	      [AS_HELP_STRING([--with-ccache-dir],
+	      		      [where to store ccache files @<:@~/.ccache@:>@])])
+
+    if test "x$with_ccache_dir" != x; then
+        # When using a non home ccache directory, assume the use is to share ccache files
+        # with other users. Thus change the umask.
+        SET_CCACHE_DIR="CCACHE_DIR=$with_ccache_dir CCACHE_UMASK=002"
+    fi
+    CCACHE_FOUND=""
+    if test "x$CCACHE" != x; then
+        SETUP_CCACHE_USAGE
+    fi    
+])
+
+AC_DEFUN([SETUP_CCACHE_USAGE],
+[
+    if test "x$CCACHE" != x; then
+        CCACHE_FOUND="true"
+        # Only use ccache if it is 3.1.4 or later, which supports
+        # precompiled headers.
+        AC_MSG_CHECKING([if ccache supports precompiled headers])
+        HAS_GOOD_CCACHE=`($CCACHE --version | head -n 1 | grep -E 3.1.@<:@456789@:>@) 2> /dev/null`
+        if test "x$HAS_GOOD_CCACHE" = x; then
+            AC_MSG_RESULT([no, disabling ccache])
+            CCACHE=
+        else
+            AC_MSG_RESULT([yes])
+            AC_MSG_CHECKING([if C-compiler supports ccache precompiled headers])
+            PUSHED_FLAGS="$CXXFLAGS"
+            CXXFLAGS="-fpch-preprocess $CXXFLAGS"
+            AC_TRY_COMPILE([], [], [CC_KNOWS_CCACHE_TRICK=yes], [CC_KNOWS_CCACHE_TRICK=no])
+            CXXFLAGS="$PUSHED_FLAGS"
+            if test "x$CC_KNOWS_CCACHE_TRICK" = xyes; then
+                AC_MSG_RESULT([yes])
+            else
+                AC_MSG_RESULT([no, disabling ccaching of precompiled headers])
+                CCACHE=
+            fi
+        fi
+    fi
+
+    if test "x$CCACHE" != x; then
+        CCACHE_SLOPPINESS=time_macros
+        CCACHE="CCACHE_COMPRESS=1 $SET_CCACHE_DIR CCACHE_SLOPPINESS=$CCACHE_SLOPPINESS $CCACHE"
+        CCACHE_FLAGS=-fpch-preprocess
+
+        if test "x$SET_CCACHE_DIR" != x; then
+            mkdir -p $CCACHE_DIR > /dev/null 2>&1
+	    chmod a+rwxs $CCACHE_DIR > /dev/null 2>&1
+        fi
+    fi
+])
+
+AC_DEFUN([EXTRACT_HOST_AND_BUILD_AND_LEGACY_VARS],
+[
+    # Expects $host_os $host_cpu $build_os and $build_cpu
+    # and $with_data_model to have been setup!
+    #
+    # Translate the standard triplet(quadruplet) definition
+    # of the host/build system into
+    # HOST_OS=aix,bsd,hpux,linux,macosx,solaris,windows
+    # HOST_OS_FAMILY=bsd,gnu,sysv,win32,wince
+    # HOST_OS_API=posix,winapi
+    # 
+    # HOST_CPU=ia32,x64,sparc,sparcv9,arm,arm64,ppc,ppc64
+    # HOST_CPU_ARCH=x86,sparc,pcc,arm
+    # HOST_CPU_BITS=32,64
+    # HOST_CPU_ENDIAN=big,little
+    #
+    # The same values are setup for BUILD_...
+    # 
+    # And the legacy variables, for controlling the old makefiles.
+    # LEGACY_HOST_CPU1=i586,amd64,sparc,sparcv9,arm,arm64...
+    # LEGACY_HOST_CPU2=i386,amd64,sparc,sparcv9,arm,arm64...
+    # LEGACY_HOST_CPU3=sparcv9,amd64 (but only on solaris)
+    # LEGACY_HOST_OS_API=solaris,windows
+    #
+    # We also copy the autoconf trip/quadruplet
+    # verbatim to HOST and BUILD
+    AC_SUBST(HOST, ${host})
+    AC_SUBST(BUILD, ${build})
+    
+    EXTRACT_VARS_FROM_OS_TO(HOST,$host_os)
+    EXTRACT_VARS_FROM_CPU_TO(HOST,$host_cpu)
+
+    EXTRACT_VARS_FROM_OS_TO(BUILD,$build_os)
+    EXTRACT_VARS_FROM_CPU_TO(BUILD,$build_cpu)
+
+    if test "x$HOST_OS" != xsolaris; then
+        LEGACY_HOST_CPU3=""
+        LEGACY_BUILD_CPU3=""
+    fi   
+])
+
+AC_DEFUN([EXTRACT_VARS_FROM_OS_TO],
+[
+    EXTRACT_VARS_FROM_OS($2)
+    $1_OS="$VAR_OS"
+    $1_OS_FAMILY="$VAR_OS_FAMILY"
+    $1_OS_API="$VAR_OS_API"
+
+    AC_SUBST($1_OS)
+    AC_SUBST($1_OS_FAMILY)
+    AC_SUBST($1_OS_API)
+
+    if test "x$$1_OS_API" = xposix; then
+        LEGACY_$1_OS_API="solaris"
+    fi
+    if test "x$$1_OS_API" = xwinapi; then
+        LEGACY_$1_OS_API="windows"
+    fi
+    AC_SUBST(LEGACY_$1_OS_API)    
+])
+
+AC_DEFUN([EXTRACT_VARS_FROM_CPU_TO],
+[
+    EXTRACT_VARS_FROM_CPU($2)
+    $1_CPU="$VAR_CPU"
+    $1_CPU_ARCH="$VAR_CPU_ARCH"
+    $1_CPU_BITS="$VAR_CPU_BITS"
+    $1_CPU_ENDIAN="$VAR_CPU_ENDIAN"
+
+    AC_SUBST($1_CPU)
+    AC_SUBST($1_CPU_ARCH)
+    AC_SUBST($1_CPU_BITS)
+    AC_SUBST($1_CPU_ENDIAN)
+    
+    # Also store the legacy naming of the cpu.
+    # Ie i586 and amd64 instead of ia32 and x64
+    LEGACY_$1_CPU1="$VAR_LEGACY_CPU"
+    AC_SUBST(LEGACY_$1_CPU1)
+
+    # And the second legacy naming of the cpu.
+    # Ie i386 and amd64 instead of ia32 and x64.
+    LEGACY_$1_CPU2="$LEGACY_$1_CPU1"
+    if test "x$LEGACY_$1_CPU1" = xi586; then 
+        LEGACY_$1_CPU2=i386
+    fi
+    AC_SUBST(LEGACY_$1_CPU2)
+
+    # And the third legacy naming of the cpu.
+    # Ie only amd64 or sparcv9, used for the ISA_DIR on Solaris.
+    LEGACY_$1_CPU3=""
+    if test "x$$1_CPU" = xx64; then 
+        LEGACY_$1_CPU3=amd64
+    fi
+    if test "x$$1_CPU" = xsparcv9; then 
+        LEGACY_$1_CPU3=sparvc9
+    fi
+    AC_SUBST(LEGACY_$1_CPU3)
+])
+
+AC_DEFUN([EXTRACT_VARS_FROM_CPU],
+[
+  # First argument is the cpu name from the trip/quad
+  case "$1" in
+    x86_64)
+      VAR_CPU=x64
+      VAR_CPU_ARCH=x86
+      VAR_CPU_BITS=64
+      VAR_CPU_ENDIAN=little
+      VAR_LEGACY_CPU=amd64
+      ;;
+    i?86)
+      VAR_CPU=ia32
+      VAR_CPU_ARCH=x86
+      VAR_CPU_BITS=32
+      VAR_CPU_ENDIAN=little
+      VAR_LEGACY_CPU=i586
+      ;;
+    alpha*)
+      VAR_CPU=alpha
+      VAR_CPU_ARCH=alpha
+      VAR_CPU_BITS=64
+      VAR_CPU_ENDIAN=big
+      VAR_LEGACY_CPU=alpha
+      ;;
+    arm*)
+      VAR_CPU=arm
+      VAR_CPU_ARCH=arm
+      VAR_CPU_BITS=3264
+      VAR_CPU_ENDIAN=big
+      VAR_LEGACY_CPU=arm
+      ;;
+    mips)
+      VAR_CPU=mips
+      VAR_CPU_ARCH=mips
+      VAR_CPU_BITS=woot
+      VAR_CPU_ENDIAN=woot
+      VAR_LEGACY_CPU=mips
+       ;;
+    mipsel)
+      VAR_CPU=mipsel
+      VAR_CPU_ARCH=mips
+      VAR_CPU_BITS=woot
+      VAR_CPU_ENDIAN=woot
+      VAR_LEGACY_CPU=mipsel
+       ;;
+    powerpc)
+      VAR_CPU=ppc
+      VAR_CPU_ARCH=ppc
+      VAR_CPU_BITS=32
+      VAR_CPU_ENDIAN=big
+      VAR_LEGACY_CPU=ppc
+       ;;
+    powerpc64)
+      VAR_CPU=ppc64
+      VAR_CPU_ARCH=ppc
+      VAR_CPU_BITS=64
+      VAR_CPU_ENDIAN=32
+      VAR_LEGACY_CPU=ppc64
+       ;;
+    sparc)
+      VAR_CPU=sparc
+      VAR_CPU_ARCH=sparc
+      VAR_CPU_BITS=32
+      VAR_CPU_ENDIAN=big
+      VAR_LEGACY_CPU=sparc
+       ;;
+    sparc64)
+      VAR_CPU=sparcv9
+      VAR_CPU_ARCH=sparc
+      VAR_CPU_BITS=64
+      VAR_CPU_ENDIAN=big
+      VAR_LEGACY_CPU=sparc_sparcv9
+       ;;
+    s390)
+      VAR_CPU=s390
+      VAR_CPU_ARCH=s390
+      VAR_CPU_BITS=32
+      VAR_CPU_ENDIAN=woot
+      VAR_LEGACY_CPU=s390
+      VAR_LEGACY_CPU=s390
+       ;;
+    s390x)
+      VAR_CPU=s390x
+      VAR_CPU_ARCH=s390
+      VAR_CPU_BITS=64
+      VAR_CPU_ENDIAN=woot
+      VAR_LEGACY_CPU=s390x
+       ;;
+    *)
+      AC_ERROR([unsupported cpu $1])
+      ;;
+  esac
+
+  # Workaround cygwin not knowing about 64 bit.
+  if test "x$VAR_OS" = "xwindows"; then
+      if test "x$PROCESSOR_IDENTIFIER" != "x"; then
+          PROC_ARCH=`echo $PROCESSOR_IDENTIFIER | $CUT -f1 -d' '`
+          case "$PROC_ARCH" in
+            intel64|Intel64|INTEL64|em64t|EM64T|amd64|AMD64|8664|x86_64)
+              VAR_CPU=x64
+              VAR_CPU_BITS=64
+              VAR_LEGACY_CPU=amd64
+              ;;
+          esac
+      fi
+  fi
+
+  if test "x$VAR_CPU_ARCH" = "xx86"; then
+      if test "x$with_data_model" = "x64"; then
+          VAR_CPU=x64
+          VAR_CPU_BITS=64
+          VAR_LEGACY_CPU=amd64
+      fi
+      if test "x$with_data_model" = "x32"; then
+          VAR_CPU=ia32
+          VAR_CPU_BITS=32
+          VAR_LEGACY_CPU=i586
+      fi
+  fi 
+])
+
+AC_DEFUN([EXTRACT_VARS_FROM_OS],
+[
+  case "$1" in
+    *linux*)
+      VAR_OS=linux
+      VAR_OS_API=posix
+      VAR_OS_FAMILY=gnu
+      ;;
+    *solaris*)
+      VAR_OS=solaris
+      VAR_OS_API=posix
+      VAR_OS_FAMILY=sysv
+      ;;
+    *darwin*)
+      VAR_OS=macosx
+      VAR_OS_API=posix
+      VAR_OS_FAMILY=bsd
+      ;;
+    *bsd*)
+      VAR_OS=bsd
+      VAR_OS_API=posix
+      VAR_OS_FAMILY=bsd
+      ;;
+    *cygwin*|*windows*)
+      VAR_OS=windows
+      VAR_OS_API=winapi
+      VAR_OS_FAMILY=windows
+      ;;
+    *)
+      AC_MSG_ERROR([unsupported host operating system $1])
+      ;;
+  esac
+])
+
+AC_DEFUN([CHECK_COMPILER_VERSION],
+[
+    # Test the compilers that their versions are new enough.
+#    AC_MSG_CHECKING([version of GCC])
+    gcc_ver=`${CC} -dumpversion`
+    gcc_major_ver=`echo ${gcc_ver}|cut -d'.' -f1`
+    gcc_minor_ver=`echo ${gcc_ver}|cut -d'.' -f2`
+#    AM_CONDITIONAL(GCC_OLD, test ! ${gcc_major_ver} -ge 4 -a ${gcc_minor_ver} -ge 3)
+#    AC_MSG_RESULT([${gcc_ver} (major version ${gcc_major_ver}, minor version ${gcc_minor_ver})])
+]) 
+
+# Fixes paths on windows hosts to be mixed mode short.
+AC_DEFUN([WIN_FIX_PATH],
+[
+    if test "x$BUILD_OS" = "xwindows"; then
+        AC_PATH_PROG(CYGPATH, cygpath)
+        tmp="[$]$1"
+        # Convert to C:/ mixed style path without spaces.
+        tmp=`$CYGPATH -s -m "$tmp"`
+        $1="$tmp"
+    fi
+])
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/autoconf/spec.gmk.in	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,588 @@
+#
+# 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.
+#
+
+# Configured @DATE_WHEN_CONFIGURED@ to build for a @HOST@ system,
+# using ./configure @CONFIGURE_COMMAND_LINE@
+
+# When calling macros, the spaces between arguments are 
+# often semantically important! Sometimes we need to subst 
+# spaces and commas, therefore we need the following macros.
+X:=
+SPACE:=$(X) $(X)
+COMMA:=,
+HASH:=\#
+SQUOTE:='
+#'
+DQUOTE:="
+#"
+define NEWLINE:=
+endef
+
+
+# Pass along the verbosity setting.
+ifeq (,$(findstring VERBOSE=,$(MAKE)))
+    MAKE:=$(MAKE) $(VERBOSE) VERBOSE="$(VERBOSE)"
+endif
+
+# No implicit variables or rules!
+ifeq (,$(findstring -R,$(MAKE)))
+    MAKE:=$(MAKE) -R
+endif
+
+# Specify where the spec file is.
+ifeq (,$(findstring SPEC=,$(MAKE)))
+    MAKE:=$(MAKE) SPEC=@SPEC@
+endif
+
+# Specify where the common include directory for makefiles is.
+ifeq (,$(findstring -I @SRC_ROOT@/common/makefiles,$(MAKE)))
+    MAKE:=$(MAKE) -I @SRC_ROOT@/common/makefiles
+endif
+
+# A self-referential reference to this file.
+SPEC:=@SPEC@
+
+# The built jdk will run in this host system.
+HOST:=@HOST@
+HOST_OS:=@HOST_OS@
+HOST_OS_FAMILY:=@HOST_OS_FAMILY@
+HOST_OS_API:=@HOST_OS_API@
+
+HOST_CPU:=@HOST_CPU@
+HOST_CPU_ARCH:=@HOST_CPU_ARCH@
+HOST_CPU_BITS:=@HOST_CPU_BITS@
+HOST_CPU_ENDIAN:=@HOST_CPU_ENDIAN@
+
+# We are building on this build system.
+# When not cross-compiling, it is the same as the host.
+BUILD:=@BUILD@
+BUILD_OS:=@BUILD_OS@
+BUILD_OS_FAMILY:=@BUILD_OS_FAMILY@
+BUILD_OS_API:=@BUILD_OS_API@
+
+BUILD_CPU:=@BUILD_CPU@
+BUILD_CPU_ARCH:=@BUILD_CPU_ARCH@
+BUILD_CPU_BITS:=@BUILD_CPU_BITS@
+BUILD_CPU_ENDIAN:=@BUILD_CPU_ENDIAN@
+
+# Old name for HOST_OS (aix,bsd,hpux,linux,macosx,solaris,windows etc)
+PLATFORM:=@HOST_OS@
+# Old name for HOST_CPU, uses i586 and amd64, instead of ia32 and x64.
+ARCH:=@LEGACY_HOST_CPU1@
+# Yet another name for arch used for an extra subdir below the jvm lib.
+# Uses i386 and amd64, instead of ia32 and x64.
+LIBARCH:=@LEGACY_HOST_CPU2@
+# Use to switch between solaris and windows subdirs in the jdk.
+LEGACY_HOST_OS_API:=@LEGACY_HOST_OS_API@
+# 32 or 64 bit
+ARCH_DATA_MODEL:=@HOST_CPU_BITS@
+# Legacy setting for building for a 64 bit machine.
+# If yes then this expands to _LP64:=1
+@LP64@
+ENDIAN:=@HOST_CPU_ENDIAN@
+@SET_OPENJDK@
+JIGSAW:=@JIGSAW@
+LIBM:=-lm
+
+# colon or semicolon
+PATH_SEP:=@PATH_SEP@
+
+# Set special env variables, to be passed to external tools.
+# Used for cygwin setups.
+@SETUPDEVENV@
+
+# The sys root where standard headers and libraries are found.
+# Usually not needed since the configure script should have
+# taken it into account already when setting CFLAGS et al.
+SYS_ROOT:=@SYS_ROOT@
+
+# Paths to the source code
+SRC_ROOT:=@SRC_ROOT@
+ADD_SRC_ROOT:=@ADD_SRC_ROOT@
+OVERRIDE_SRC_ROOT:=@OVERRIDE_SRC_ROOT@
+TOPDIR:=@SRC_ROOT@
+OUTPUT_ROOT:=@OUTPUT_ROOT@
+JDK_MAKE_SHARED_DIR:=@JDK_TOPDIR@/makefiles/common/shared
+JDK_TOPDIR:=@JDK_TOPDIR@
+LANGTOOLS_TOPDIR:=@LANGTOOLS_TOPDIR@
+CORBA_TOPDIR:=@CORBA_TOPDIR@
+JAXP_TOPDIR:=@JAXP_TOPDIR@
+JAXWS_TOPDIR:=@JAXWS_TOPDIR@
+HOTSPOT_TOPDIR:=@HOTSPOT_TOPDIR@
+COPYRIGHT_YEAR:=@COPYRIGHT_YEAR@
+
+# Information gathered from the version.numbers file.
+JDK_MAJOR_VERSION:=@JDK_MAJOR_VERSION@
+JDK_MINOR_VERSION:=@JDK_MINOR_VERSION@
+JDK_MICRO_VERSION:=@JDK_MICRO_VERSION@
+JDK_UPDATE_VERSION:=@JDK_UPDATE_VERSION@
+JDK_BUILD_NUMBER:=@JDK_BUILD_NUMBER@
+MILESTONE:=@MILESTONE@
+LAUNCHER_NAME:=@LAUNCHER_NAME@
+PRODUCT_NAME:=@PRODUCT_NAME@
+PRODUCT_SUFFIX:=@PRODUCT_SUFFIX@
+JDK_RC_PLATFORM_NAME:=@JDK_RC_PLATFORM_NAME@
+COMPANY_NAME:=@COMPANY_NAME@
+
+# Different version strings generated from the above information.
+JDK_VERSION:=@JDK_VERSION@
+RUNTIME_NAME:=@RUNTIME_NAME@
+FULL_VERSION:=@FULL_VERSION@
+JRE_RELEASE_VERSION:=@FULL_VERSION@
+RELEASE:=@RELEASE@
+COOKED_BUILD_NUMBER:=@COOKED_BUILD_NUMBER@
+
+# How to compile the code: release, fastdebug or slowdebug
+DEBUG_LEVEL:=@DEBUG_LEVEL@
+
+# This is the JDK variant to build.
+# The JDK variant is a name for a specific set of modules to be compiled for the JDK.
+JDK_VARIANT:=@JDK_VARIANT@
+
+# Legacy defines controlling the JDK variant embedded.
+@JAVASE_EMBEDDED@
+@MINIMIZE_RAM_USAGE@
+
+# Should we compile support for running with a graphical UI? (ie headful)
+# Should we compile support for running without? (ie headless)
+SUPPORT_HEADFUL:=@SUPPORT_HEADFUL@
+SUPPORT_HEADLESS:=@SUPPORT_HEADLESS@
+# Legacy defines controlled by the SUPPORT_HEADLESS and SUPPORT_HEADFUL options.
+@BUILD_HEADLESS@
+@BUILD_HEADLESS_ONLY@
+
+# These are the libjvms that we want to build.
+# The java launcher uses the default.
+# The other can be selected by specifying -client -server -kernel -zero or -zeroshark
+# on the java launcher command line.
+DEFAULT_JVM_VARIANT:=@DEFAULT_JVM_VARIANT@
+JVM_VARIANTS:=@JVM_VARIANTS@
+JVM_VARIANT_SERVER:=@JVM_VARIANT_SERVER@
+JVM_VARIANT_CLIENT:=@JVM_VARIANT_CLIENT@
+JVM_VARIANT_KERNEL:=@JVM_VARIANT_KERNEL@
+JVM_VARIANT_ZERO:=@JVM_VARIANT_ZERO@
+JVM_VARIANT_ZEROSHARK:=@JVM_VARIANT_ZEROSHARK@
+
+# Legacy setting: OPT or DBG
+VARIANT:=@VARIANT@
+# Legacy setting: true or false
+FASTDEBUG:=@FASTDEBUG@
+# Legacy setting: debugging the class files?
+DEBUG_CLASSFILES:=@DEBUG_CLASSFILES@
+# Legacy setting: -debug or -fastdebug
+BUILD_VARIANT_RELEASE:=@BUILD_VARIANT_RELEASE@
+
+LANGTOOLS_OUTPUTDIR:=@OUTPUT_ROOT@/langtools
+LANGTOOLS_DIST:=@OUTPUT_ROOT@/langtools/dist
+LANGTOOLS_MAKE_ARGS:=@LANGTOOLS_MAKE_ARGS@
+
+CORBA_OUTPUTDIR:=@OUTPUT_ROOT@/corba
+CORBA_DIST:=@OUTPUT_ROOT@/corba/dist
+CORBA_MAKE_ARGS:=@CORBA_MAKE_ARGS@
+
+JAXP_OUTPUTDIR:=@OUTPUT_ROOT@/jaxp
+JAXP_DIST:=@OUTPUT_ROOT@/jaxp/dist
+JAXP_MAKE_ARGS:=@JAXP_MAKE_ARGS@
+
+JAXWS_OUTPUTDIR:=@OUTPUT_ROOT@/jaxws
+JAXWS_DIST:=@OUTPUT_ROOT@/jaxws/dist
+JAXWS_MAKE_ARGS:=@JAXWS_MAKE_ARGS@
+
+HOTSPOT_OUTPUTDIR:=@OUTPUT_ROOT@/hotspot
+HOTSPOT_DIST:=@OUTPUT_ROOT@/hotspot/dist
+HOTSPOT_MAKE_ARGS:=@HOTSPOT_MAKE_ARGS@
+
+# This where a working jvm is built.
+# You can run $(JDK_OUTPUTDIR)/bin/java
+# Though the layout of the contents of $(JDK_OUTPUTDIR) is not
+# yet the same as a default installation.
+HOTSPOT_IMPORT_PATH:=@OUTPUT_ROOT@/hotspot/dist
+JDK_OUTPUTDIR:=@OUTPUT_ROOT@/jdk
+JDK_MAKE_ARGS:=@JDK_MAKE_ARGS@
+
+# When you run "make install" it will create the standardized
+# layout for the jdk and the jre inside the images subdir.
+# Then it will copy the contents of the jdk into the installation
+# directory.
+IMAGES_OUTPUTDIR:=@OUTPUT_ROOT@/images
+IMAGES_MAKE_ARGS:=@IMAGES_MAKE_ARGS@
+# Legacy variables used by Release.gmk
+JDK_IMAGE_DIR:=$(IMAGES_OUTPUTDIR)/j2sdk-image
+JRE_IMAGE_DIR:=$(IMAGES_OUTPUTDIR)/j2re-image
+
+# Can be /sparcv9 or /amd64 on Solaris
+ISA_DIR:=@LEGACY_HOST_CPU3@
+BINDIR:=$(JDK_OUTPUTDIR)/bin$(ISA_DIR)
+
+# The boot jdk to use
+ALT_BOOTDIR:=@BOOT_JDK@
+BOOT_JDK:=@BOOT_JDK@
+BOOT_JDK_JVMARGS:=@BOOT_JDK_JVMARGS@
+BOOT_JAVAC_ARGS:=@BOOT_JAVAC_ARGS@
+BOOT_RTJAR:=@BOOT_RTJAR@
+BOOT_TOOLSJAR:=@BOOT_TOOLSJAR@
+
+# When compiling Java source to be run by the boot jdk
+# use these extra flags, eg -source 6 -target 6
+BOOT_JDK_SOURCETARGET:=@BOOT_JDK_SOURCETARGET@
+
+# Information about the build system
+NUM_CORES:=@NUM_CORES@
+# This is used from the libjvm build for C/C++ code.
+HOTSPOT_BUILD_JOBS:=@CONCURRENT_BUILD_JOBS@
+# This is used from the jdk build for C/C++ code.
+PARALLEL_COMPILE_JOBS:=@CONCURRENT_BUILD_JOBS@
+# Store javac server synchronization files here, and
+# the javac server log files.
+JAVAC_SERVERS:=@JAVAC_SERVERS@
+# Should we use a javac server or not? The javac server gives
+# an enormous performance improvement since it reduces the
+# startup costs of javac and reuses as much as possible of intermediate
+# compilation work. But if we want to compile with a non-Java
+# javac compiler, like gcj. Then we cannot use javac server and
+# this variable is set to false.
+JAVAC_USE_REMOTE:=@JAVAC_USE_REMOTE@
+# We can block the Javac server to never use more cores than this.
+# This is not for performance reasons, but for memory usage, since each
+# core requires its own JavaCompiler. We might have 64 cores and 4GB
+# of memory, 64 JavaCompilers will currently not fit in a 3GB heap.
+# Since there is no sharing of data between the JavaCompilers.
+JAVAC_SERVER_CORES:=@JAVAC_SERVER_CORES@
+# Should we use dependency tracking between Java packages? true or false.
+JAVAC_USE_DEPS:=@JAVAC_USE_DEPS@
+# We can invoke javac: SINGLE_THREADED_BATCH or MULTI_CORE_CONCURRENT
+JAVAC_USE_MODE:=@JAVAC_USE_MODE@
+
+# The OpenJDK makefiles should be changed to using the standard
+# configure output ..._CFLAGS and ..._LIBS. In the meantime we
+# extract the information here.
+FREETYPE2_LIB_PATH:=@FREETYPE2_LIB_PATH@
+FREETYPE2_LIBS:=@FREETYPE2_LIBS@
+FREETYPE2_CFLAGS:=@FREETYPE2_CFLAGS@
+USING_SYSTEM_FT_LIB=@USING_SYSTEM_FT_LIB@
+ALT_CUPS_HEADERS_PATH:=$(patsubst -I%,%,$(filter -I%,@CUPS_CFLAGS@))
+CUPS_CFLAGS:=@CUPS_CFLAGS@
+
+PACKAGE_PATH=@PACKAGE_PATH@
+
+CACERTS_FILE:=$(SRC_ROOT)/jdk/src/share/lib/security/cacerts
+#CACERTS_INT=$(CLOSED_SHARE_SRC)/lib/security/cacerts.internal
+
+#MOZILLA_HEADERS_PATH:=
+
+# Necessary additional compiler flags to compile X11 
+X_CFLAGS:=@X_CFLAGS@
+X_LIBS:=@X_LIBS@
+OPENWIN_HOME:=@OPENWIN_HOME@
+
+# There are two types: CC or CL
+# CC is gcc and others behaving reasonably similar.
+# CL is cl.exe only.
+COMPILER_TYPE:=@COMPILER_TYPE@
+
+CC_OUT_OPTION:=@CC_OUT_OPTION@
+EXE_OUT_OPTION:=@EXE_OUT_OPTION@
+LD_OUT_OPTION:=@LD_OUT_OPTION@
+AR_OUT_OPTION:=@AR_OUT_OPTION@
+
+# Flags used for overriding the default opt setting for a C/C++ source file.
+C_O_FLAG_HI:=@C_O_FLAG_HI@
+C_O_FLAG_NORM:=@C_O_FLAG_NORM@
+C_O_FLAG_NONE:=@C_O_FLAG_NONE@
+CXX_O_FLAG_HI:=@CXX_O_FLAG_HI@
+CXX_O_FLAG_NORM:=@CXX_O_FLAG_NORM@
+CXX_O_FLAG_NONE:=@CXX_O_FLAG_NONE@
+
+# Tools that potentially need to be cross compilation aware.
+CC:=@UNCYGDRIVE@ @CCACHE@ @CC@
+
+# CFLAGS used to compile the jdk native libraries (C-code)
+CFLAGS_JDKLIB:=@CFLAGS_JDKLIB@
+CXXFLAGS_JDKLIB:=@CXXFLAGS_JDKLIB@
+
+# CFLAGS used to compile the jdk native launchers (C-code)
+CFLAGS_JDKEXE:=@CFLAGS_JDKEXE@
+CXXFLAGS_JDKEXE:=@CXXFLAGS_JDKEXE@
+
+CXX:=@UNCYGDRIVE@ @CCACHE@ @CXX@
+#CXXFLAGS:=@CXXFLAGS@
+
+OBJC:=@CCACHE@ @OBJC@
+#OBJCFLAGS:=@OBJCFLAGS@
+
+CPP:=@UNCYGDRIVE@ @CPP@
+#CPPFLAGS:=@CPPFLAGS@
+
+# The linker can be gcc or ld on posix systems, or link.exe on winapi systems.
+LD:=@UNCYGDRIVE@ @LD@
+
+# LDFLAGS used to link the jdk native libraries (C-code)
+LDFLAGS_JDKLIB:=@LDFLAGS_JDKLIB@
+LDFLAGS_JDKLIB_SUFFIX:=@LDFLAGS_JDKLIB_SUFFIX@
+
+# On some platforms the linker cannot be used to create executables, thus
+# the need for a separate LDEXE command.
+LDEXE:=@UNCYGDRIVE@ @LDEXE@
+
+# LDFLAGS used to link the jdk native launchers (C-code)
+LDFLAGS_JDKEXE:=@LDFLAGS_JDKEXE@
+LDFLAGS_JDKEXE_SUFFIX:=@LDFLAGS_JDKEXE_SUFFIX@
+
+# Sometimes a different linker is needed for c++ libs
+LDCXX:=@UNCYGDRIVE@ @LDCXX@
+# The flags for linking libstdc++ linker.
+LIBCXX:=@LIBCXX@
+
+# Sometimes a different linker is needed for c++ executables
+LDEXECXX:=@UNCYGDRIVE@ @LDEXECXX@
+
+# If cross compiling, then define CROSS_COMPILE_ARCH:=cpu_name here.
+@DEFINE_CROSS_COMPILE_ARCH@
+# The HOSTCC should really be named BUILDCC, ie build executable for
+# the build platform. Same as CC when not cross compiling.
+HOSTCC:=@HOSTCC@
+HOSTCXX:=@HOSTCXX@
+# And of course, the jdk spells HOSTCC as NIO_CC/HOST_CC 
+HOST_CC:=@HOSTCC@
+NIO_CC:=@HOSTCC@
+
+AS:=@AS@
+ASFLAGS:=@ASFLAGS@
+
+# AR is used to create a static library (is ar in posix, lib.exe in winapi)
+AR:=@UNCYGDRIVE@ @AR@
+ARFLAGS:=@ARFLAGS@
+
+NM:=@NM@
+STRIP:=@STRIP@
+MCS:=@MCS@
+
+# Command to create a shared library
+SHARED_LIBRARY_FLAGS:=@SHARED_LIBRARY_FLAGS@
+
+# Options to linker to specify a mapfile. 
+# (Note absence of := assignment, because we do not want to evaluate the macro body here)
+SET_SHARED_LIBRARY_MAPFILE=@SET_SHARED_LIBRARY_MAPFILE@
+
+# Options to linker to specify the library name.
+# (Note absence of := assignment, because we do not want to evaluate the macro body here)
+SET_SHARED_LIBRARY_NAME=@SET_SHARED_LIBRARY_NAME@
+
+# Set origin using the linker, ie use the relative path to the dependent library to find the dependees.
+# (Note absence of := assignment, because we do not want to evaluate the macro body here)
+SET_SHARED_LIBRARY_ORIGIN=@SET_SHARED_LIBRARY_ORIGIN@
+
+# Different OS:es have different ways of naming shared libraries.
+# The SHARED_LIBRARY macro takes "verify" as and argument and returns:
+#    "libverify.so" or "libverify.dylib" or "verify.dll" depending on platform.
+# (Note absence of := assignment, because we do not want to evaluate the macro body here)
+SHARED_LIBRARY=@SHARED_LIBRARY@
+STATIC_LIBRARY=@STATIC_LIBRARY@
+LIBRARY_PREFIX:=@LIBRARY_PREFIX@
+SHARED_LIBRARY_SUFFIX:=@SHARED_LIBRARY_SUFFIX@
+STATIC_LIBRARY_SUFFIX:=@STATIC_LIBRARY_SUFFIX@
+EXE_SUFFIX:=@EXE_SUFFIX@
+OBJ_SUFFIX:=@OBJ_SUFFIX@
+
+JAVA_FLAGS:=@BOOT_JDK_JVMARGS@
+
+JAVA=@UNCYGDRIVE@ @JAVA@ $(JAVA_FLAGS)
+
+JAVAC:=@UNCYGDRIVE@ @JAVAC@
+JAVAC_FLAGS:=@JAVAC_FLAGS@
+
+JAVAH:=@UNCYGDRIVE@ @JAVAH@
+
+JAR:=@UNCYGDRIVE@ @JAR@
+
+RMIC:=@UNCYGDRIVE@ @RMIC@
+
+BOOT_JAR_CMD:=@UNCYGDRIVE@ @JAR@
+BOOT_JAR_JFLAGS:=
+
+# Base flags for RC
+# Guarding this against resetting value. Legacy make files include spec multiple
+# times.
+ifndef RC_FLAGS
+RC_FLAGS:=@RC_FLAGS@
+endif
+
+# A specific java binary with specific options can be used to run
+# the long running background javac server and other long running tasks.
+SERVER_JAVA:=@UNCYGDRIVE@ @SERVER_JAVA@
+
+# Tools adhering to a minimal and common standard of posix compliance.
+AWK:=@AWK@
+CAT:=@CAT@
+CCACHE:=@CCACHE@
+# CD is going away, but remains to cater for legacy makefiles.
+CD:=cd
+CHMOD:=@CHMOD@
+CP:=@CP@
+CPIO:=@CPIO@
+CUT:=@CUT@
+DATE:=@DATE@
+DF:=@DF@
+DIFF:=@DIFF@
+FIND:=@FIND@
+FIND_DELETE:=@FIND_DELETE@
+ECHO:=@ECHO@
+EGREP:=@EGREP@
+FGREP:=@FGREP@
+GREP:=@GREP@
+HEAD:=@HEAD@
+LS:=@LS@
+LN:=@LN@
+MKDIR:=@MKDIR@
+MV:=@MV@
+NAWK:=@NAWK@
+PRINTF:=@PRINTF@
+PWD:=@THEPWDCMD@
+RM:=@RM@
+SED:=@SED@
+SH:=@SH@
+SORT:=@SORT@
+TAR:=@TAR@
+TAIL:=@TAIL@
+TEE:=@TEE@
+TR:=@TR@
+TOUCH:=@TOUCH@
+WC:=@WC@
+XARGS:=@XARGS@
+ZIPEXE:=@ZIP@
+ZIP:=@ZIP@
+UNZIP:=@UNZIP@
+MT:=@UNCYGDRIVE@ @MT@
+RC:=@UNCYGDRIVE@ @RC@
+DUMPBIN:=@UNCYGDRIVE@ @DUMPBIN@
+CYGPATH:=@CYGPATH@
+LDD:=@LDD@
+OTOOL:=@OTOOL@
+READELF:=@READELF@
+EXPR:=@EXPR@
+FILE:=@FILE@
+
+UNCYGDRIVE:=@UNCYGDRIVE@
+
+# Where the build output is stored for your convenience.
+BUILD_LOG:=@BUILD_LOG@
+BUILD_LOG_WRAPPER:=@BUILD_LOG_WRAPPER@
+
+# Build setup
+ENABLE_DOCS:=@ENABLE_DOCS@
+GENERATE_DOCS:=@ENABLE_DOCS@
+DISABLE_NIMBUS:=@DISABLE_NIMBUS@
+USE_EXTERNAL_LIBJPEG:=@USE_EXTERNAL_LIBJPEG@
+USE_EXTERNAL_LIBGIF:=@USE_EXTERNAL_LIBGIF@
+USE_EXTERNAL_LIBZ:=@USE_EXTERNAL_LIBZ@
+CHECK_FOR_VCINSTALLDIR=@CHECK_FOR_VCINSTALLDIR@
+MSVCRNN_DLL:=@MSVCR100DLL@
+
+# ADD_SRCS takes a single argument with source roots
+# and appends any corresponding source roots found
+# below --with-add-source-root and below
+# --with-override-source-root. It is the responsibility
+# of the next macro to get rid of superfluous files.
+ADD_SRCS=$1
+ifneq (,$(ADD_SRC_ROOT))
+    # Append wildcard rule to pickup any matching source roots found below ADD_SRC_ROOT 
+    ADD_SRCS+=$(wildcard $(subst $(SRC_ROOT),$(ADD_SRC_ROOT),$1))
+endif
+ifneq (,$(OVERRIDE_SRC_ROOT))
+    # Append wildcard rule to pickup any matching source roots found below OVERRIDE_SRC_ROOT 
+    ADD_SRCS+=$(wildcard $(subst $(SRC_ROOT),$(OVERRIDE_SRC_ROOT),$1))
+endif
+
+# OVR_SRCS creates a filter expression to filter out sources in
+# the original source directory that lie inside directories below
+# --with-override-source-root.
+# Use := here since we want to scan for these files here. To avoid recomputation later.
+# We cannot do the scan in configure, since that would force us to rerun configure when
+# we add overridden sources.
+ifneq (,$(OVERRIDE_SRC_ROOT))
+    OVR_SRCS:=$(addsuffix %,$(subst $(OVERRIDE_SRC_ROOT),$(SRC_ROOT),$(sort $(dir $(shell $(FIND) $(OVERRIDE_SRC_ROOT) -type f)))))
+else
+    OVR_SRCS:=
+endif
+
+####################################################
+#
+# INSTALLATION
+#
+
+# Common prefix for all installed files. Defaults to /usr/local,
+# but /opt/myjdk is another common version. 
+INSTALL_PREFIX=@prefix@
+
+# Directories containing architecture-dependent files should be relative to exec_prefix
+INSTALL_EXECPREFIX=@exec_prefix@
+
+# java,javac,javah,javap etc are installed here.
+INSTALL_BINDIR=@bindir@
+
+# Read only architecture-independent data
+INSTALL_DATADIR=@datadir@
+
+# Root of above.
+INSTALL_DATAROOTDIR=@datarootdir@
+
+# Doc files, other than info and man.
+INSTALL_DOCDIR=@docdir@
+
+# Html documentation
+INSTALL_HTMLDIR=@htmldir@
+
+# Installing C header files, JNI headers for example.
+INSTALL_INCLUDEDIR=@includedir@
+
+# Installing library files....
+INSTALL_INCLUDEDIR=@libdir@
+
+# Executables that other programs run.
+INSTALL_LIBEXECDIR=@libexecdir@
+
+# Locale-dependent but architecture-independent data, such as message catalogs. 
+INSTALL_LOCALEDIR=@localedir@
+
+# Modifiable single-machine data
+INSTALL_LOCALSTATEDIR=@localstatedir@
+
+# Man pages
+INSTALL_MANDIR=@mandir@
+
+# Modifiable architecture-independent data.
+INSTALL_SHAREDSTATEDIR=@sharedstatedir@
+
+# Read-only single-machine data
+INSTALL_SYSCONFDIR=@sysconfdir@
+
+
+####################################################
+#
+# Misc
+#
+
+# Control wether Hotspot runs Queens test after building
+TEST_IN_BUILD=@TEST_IN_BUILD@
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/autoconf/version.numbers	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,36 @@
+#
+# 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.
+#
+
+JDK_MAJOR_VERSION=1
+JDK_MINOR_VERSION=8
+JDK_MICRO_VERSION=0
+JDK_UPDATE_VERSION=
+JDK_BUILD_NUMBER=
+MILESTONE=internal
+LAUNCHER_NAME=openjdk
+PRODUCT_NAME=OpenJDK
+PRODUCT_SUFFIX="Runtime Environment"
+JDK_RC_PLATFORM_NAME=Platform
+COMPANY_NAME=N/A
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/bin/compareimage.sh	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,283 @@
+#!/bin/bash
+#
+# Copyright (c) 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.
+#
+# 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.
+#
+
+# MANUAL
+#
+# ./common/bin/compareimages.sh old_jdk_image new_jdk_image
+#
+# Compare the directory structure.
+# Compare the filenames in the directories.
+# Compare the contents of the zip archives
+# Compare the contents of the jar archives
+# Compare the native libraries
+# Compare the native executables
+# Compare the remaining files
+#
+# ./common/bin/compareimages.sh old_jdk_image new_jdk_image [zips jars libs execs other]
+#
+# Compare only the selected subset of the images.
+#
+# ./common/bin/compareimages.sh old_jdk_image new_jdk_image CodePointIM.jar
+#
+# Compare only the CodePointIM.jar file
+# Can be used to compare zips, libraries and executables.
+#
+
+if [ "x$1" = "x-h" ] || [ "x$1" = "x--help" ] || [ "x$1" == "x" ]; then
+    echo "./common/bin/compareimages.sh old_jdk_image new_jdk_image"
+    echo ""
+    echo "Compare the directory structure."
+    echo "Compare the filenames in the directories."
+    echo "Compare the contents of the zip archives"
+    echo "Compare the contents of the jar archives"
+    echo "Compare the native libraries"
+    echo "Compare the native executables"
+    echo "Compare the remaining files"
+    echo ""
+    echo "./common/bin/compareimages.sh old_jdk_image new_jdk_image [zips jars libs execs other]"
+    echo ""
+    echo "Compare only the selected subset of the images."
+    echo ""
+    echo "./common/bin/compareimages.sh old_jdk_image new_jdk_image CodePointIM.jar"
+    echo ""
+    echo "Compare only the CodePointIM.jar file"
+    echo "Can be used to compare zips, libraries and executables."
+    exit 10
+fi
+
+OLD="$1"
+NEW="$2"
+CMD="$3"
+
+DIFF_RESULT=0
+
+CMP_ZIPS=false
+CMP_JARS=false
+CMP_LIBS=false
+CMP_EXECS=false
+CMP_OTHER=false
+
+FILTER="cat"
+
+if [ -n "$CMD" ]; then
+  case "$CMD" in
+    zips)
+          CMP_ZIPS=true
+      ;;
+    jars)
+          CMP_JARS=true
+      ;;
+    libs)
+          CMP_LIBS=true
+      ;;
+    execs)
+          CMP_EXECS=true
+      ;;
+    other)
+          CMP_OTHER=true
+      ;;
+    *)
+          CMP_ZIPS=true
+          CMP_JARS=true
+          CMP_LIBS=true
+          CMP_EXECS=true
+          CMP_OTHER=true
+          FILTER="grep $3"
+      ;;
+  esac
+else
+    CMP_ZIPS=true
+    CMP_JARS=true
+    CMP_LIBS=true
+    CMP_EXECS=true
+    CMP_OTHER=true
+fi
+
+DIFFJARZIP=`dirname $0`/diffjarzip.sh
+DIFFLIB=`dirname $0`/difflib.sh
+DIFFEXEC=`dirname $0`/diffexec.sh
+export COMPARE_ROOT=/tmp/cimages
+mkdir -p $COMPARE_ROOT
+
+# Load the correct exception list.
+case "`uname -s`" in
+    Linux)
+        . `dirname $0`/exception_list_linux
+        ;;
+esac
+
+echo
+echo Comparing $OLD to $NEW
+echo
+
+(cd $OLD && find . -type d | sort > $COMPARE_ROOT/from_dirs)
+(cd $NEW && find . -type d | sort > $COMPARE_ROOT/to_dirs)
+
+echo -n Directory structure...
+if diff $COMPARE_ROOT/from_dirs $COMPARE_ROOT/to_dirs > /dev/null; then
+    echo Identical!
+else
+    echo Differences found.
+    DIFF_RESULT=1
+    # Differences in directories found.
+    ONLY_OLD=$(diff $COMPARE_ROOT/from_dirs $COMPARE_ROOT/to_dirs | grep '<')
+    if [ "$ONLY_OLD" ]; then
+        echo Only in $OLD
+        echo $ONLY_OLD | sed 's|< ./|\t|g' | sed 's/ /\n/g'
+    fi
+    # Differences in directories found.
+    ONLY_NEW=$(diff $COMPARE_ROOT/from_dirs $COMPARE_ROOT/to_dirs | grep '>')
+    if [ "$ONLY_NEW" ]; then
+        echo Only in $NEW
+        echo $ONLY_NEW | sed 's|> ./|\t|g' | sed 's/ /\n/g'
+    fi
+fi
+
+(cd $OLD && find . -type f | sort > $COMPARE_ROOT/from_files)
+(cd $NEW && find . -type f | sort > $COMPARE_ROOT/to_files)
+
+echo -n File names...
+if diff $COMPARE_ROOT/from_files $COMPARE_ROOT/to_files > /dev/null; then
+    echo Identical!
+else
+    echo Differences found.
+    DIFF_RESULT=1
+    # Differences in directories found.
+    ONLY_OLD=$(diff $COMPARE_ROOT/from_files $COMPARE_ROOT/to_files | grep '<')
+    if [ "$ONLY_OLD" ]; then
+        echo Only in $OLD
+        echo $ONLY_OLD | sed 's|< ./|\t|g' | sed 's/ /\n/g'
+    fi
+    # Differences in directories found.
+    ONLY_NEW=$(diff $COMPARE_ROOT/from_files $COMPARE_ROOT/to_files | grep '>')
+    if [ "$ONLY_NEW" ]; then
+        echo Only in $NEW
+        echo $ONLY_NEW | sed 's|> ./|\t|g' | sed 's/ /\n/g'
+    fi
+fi
+
+if [ "x$CMP_ZIPS" == "xtrue" ]; then
+    ZIPS=$(cd $OLD && find . -type f -name "*.zip" | sort | $FILTER)
+
+    if [ -n "$ZIPS" ]; then
+        echo Zip files...
+
+        for f in $ZIPS
+        do
+            $DIFFJARZIP $OLD/$f $NEW/$f $OLD $NEW 
+            if [ "$?" != "0" ]; then
+                DIFF_RESULT=1
+            fi
+        done
+   fi        
+fi    
+
+if [ "x$CMP_JARS" == "xtrue" ]; then
+    JARS=$(cd $OLD && find . -type f -name "*.jar" | sort | $FILTER)
+
+    if [ -n "$JARS" ]; then
+        echo Jar files...
+
+        for f in $JARS
+        do
+            DIFFJAR_OUTPUT=`$DIFFJARZIP $OLD/$f $NEW/$f $OLD $NEW`
+            DIFFJAR_RESULT=$?
+            if [ "$DIFFJAR_RESULT" != "0" ]; then
+                for diff in $LIST_DIFF_JAR; do
+                    DIFFJAR_OUTPUT=`echo "$DIFFJAR_OUTPUT" | grep -v "$diff"`
+                done
+                if [ "`echo "$DIFFJAR_OUTPUT" | grep -v "Differing files in"`" != "" ]; then
+                    DIFF_RESULT=1
+                    echo "$DIFFJAR_OUTPUT"
+                fi
+            fi
+        done
+    fi
+fi
+
+if [ "x$FILTER" != "xcat" ]; then
+    VIEW=view
+else
+    VIEW=
+fi
+
+if [ "x$CMP_LIBS" == "xtrue" ]; then
+    LIBS=$(cd $OLD && find . -name 'lib*.so' -o -name '*.dylib' -o -name '*.dll' | sort | $FILTER)
+
+    if [ -n "$LIBS" ]; then
+        echo Libraries...
+        for f in $LIBS
+        do
+            DIFFLIB_OUTPUT=`$DIFFLIB $OLD/$f $NEW/$f $OLD $NEW $VIEW`
+            DIFFLIB_RESULT=$?
+            if [ "$DIFFLIB_RESULT" = "0" ]; then
+                :
+                #echo "OK: $DIFFLIB_OUTPUT"
+            elif [ "$DIFFLIB_RESULT" = "2" ] && [[ "$LIST_DIFF_SIZE $LIST_DIFF_BYTE" == *"${f:2}"* ]]; then
+                :
+                #echo "OK: $DIFFLIB_OUTPUT"
+            elif [ "$DIFFLIB_RESULT" = "1" ] && [[ "$LIST_DIFF_BYTE" == *"${f:2}"* ]]; then
+                :
+                #echo "OK: $DIFFLIB_OUTPUT"
+            else
+                echo "$DIFFLIB_OUTPUT"
+                DIFF_RESULT=1
+            fi
+        done
+    fi
+fi
+
+if [ "x$CMP_EXECS" == "xtrue" ]; then
+    if [ $OSTYPE == "cygwin" ]; then
+        EXECS=$(cd $OLD && find . -type f -name '*.exe' | sort | $FILTER)
+    else
+        EXECS=$(cd $OLD && find . -type f -perm -100 \! \( -name '*.so' -o -name '*.dylib' -o -name '*.dll' \) | sort | $FILTER)
+    fi
+
+
+    if [ -n "$EXECS" ]; then
+        echo Executables...
+
+        for f in $EXECS
+        do
+            DIFFEXEC_OUTPUT=`$DIFFEXEC $OLD/$f $NEW/$f $OLD $NEW $VIEW`
+            DIFFEXEC_RESULT=$?
+            if [ "$DIFFEXEC_RESULT" = "0" ]; then
+                :
+                #echo "OK: $DIFFEXEC_OUTPUT"
+            elif [ "$DIFFEXEC_RESULT" = "2" ] && [[ "$LIST_DIFF_SIZE $LIST_DIFF_BYTE" == *"${f:2}"* ]]; then
+                :
+                #echo "OK: $DIFFEXEC_OUTPUT"
+            elif [ "$DIFFEXEC_RESULT" = "1" ] && [[ "$LIST_DIFF_BYTE" == *"${f:2}"* ]]; then
+                :
+                #echo "OK: $DIFFEXEC_OUTPUT"
+            else
+                echo "$DIFFEXEC_OUTPUT"
+                DIFF_RESULT=1
+            fi
+        done
+    fi
+fi
+
+exit $DIFF_RESULT
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/bin/diffexec.sh	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,150 @@
+#!/bin/bash
+#
+# Copyright (c) 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.
+#
+# 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.
+#
+
+if [ $# -lt 2 ] 
+then
+  echo "Diff two executables. Return codes:"
+  echo "0 - no diff"
+  echo "1 - Identical symbols AND size, BUT not bytewise identical"
+  echo "2 - Identical symbols BUT NEW size"
+  echo "3 - Differences, content BUT SAME size"
+  echo "4 - Differences, content AND size"
+  echo "10 - Could not perform diff"
+  echo "Use 'quiet' to disable any output."
+  echo "Syntax: $0 file1 file2 [quiet]"
+  exit 10
+fi
+
+if [ ! -f $1 ]
+then
+  echo $1 does not exist
+  exit 10
+fi
+
+if [ ! -f $2 ]
+then
+  echo $2 does not exist
+  exit 10
+fi
+
+if [ "`uname`" == "SunOS" ]; then
+    NM=gnm
+    STAT=gstat
+elif [ $OSTYPE == "cygwin" ]; then
+    NM="$VS100COMNTOOLS/../../VC/bin/amd64/dumpbin.exe"
+    NM_ARGS=/exports
+    STAT=stat
+else
+    NM=nm
+    STAT=stat
+fi
+
+# Should the differences be viewed?
+VIEW=
+# You can do export DIFF=meld to view
+# any differences using meld instead.
+if [ -n "$DIFF" ]; then
+    DIFF="$DIFF"
+else
+    DIFF=diff
+fi
+OLD=$(cd $(dirname $1) && pwd)/$(basename $1)
+NEW=$(cd $(dirname $2) && pwd)/$(basename $2)
+
+OLD_SIZE=$($STAT -c%s "$OLD")
+NEW_SIZE=$($STAT -c%s "$NEW")
+
+if [ $# -gt 3 ]
+then
+    ROOT1=$(cd $3 && pwd)
+    ROOT2=$(cd $4 && pwd)
+    OLD_NAME=$(echo $OLD | sed "s|$ROOT1/||")
+    NEW_NAME=$(echo $NEW | sed "s|$ROOT2/||")
+    if [ "x$5" == "xview" ]; then VIEW=view; fi
+else
+    ROOT1=$(dirname $OLD)/
+    ROOT2=$(dirname $NEW)/
+    OLD_NAME=$OLD
+    NEW_NAME=$NEW
+    if [ "x$3" == "xview" ]; then VIEW=view; fi
+fi
+
+if cmp $OLD $NEW > /dev/null
+then
+    # The files were bytewise identical.
+    echo Identical: $OLD_NAME
+    exit 0
+fi
+
+OLD_SYMBOLS=$COMPARE_ROOT/$OLD_NAME.old
+NEW_SYMBOLS=$COMPARE_ROOT/$NEW_NAME.new
+
+mkdir -p $(dirname $OLD_SYMBOLS)
+mkdir -p $(dirname $NEW_SYMBOLS)
+
+if [ $OSTYPE == "cygwin" ]; then
+    "$NM" $NM_ARGS $OLD | grep " = " > $OLD_SYMBOLS
+    "$NM" $NM_ARGS $NEW | grep " = " > $NEW_SYMBOLS
+    "$NM" $NM_ARGS $OLD > $OLD_SYMBOLS.full
+    "$NM" $NM_ARGS $NEW > $NEW_SYMBOLS.full
+else
+    # Strip the addresses, just compare the ordering of the symbols.
+    $NM $OLD | cut -f 2- -d ' ' > $OLD_SYMBOLS
+    $NM $NEW | cut -f 2- -d ' ' > $NEW_SYMBOLS
+    # But store the full information for easy diff access.
+    $NM $OLD  > $OLD_SYMBOLS.full
+    $NM $NEW  > $NEW_SYMBOLS.full
+fi
+
+DIFFS=$(LANG=C diff $OLD_SYMBOLS $NEW_SYMBOLS)
+
+RESULT=0
+
+if [ -n "$DIFFS" ]; then
+   if [ $OLD_SIZE -ne $NEW_SIZE ]
+   then
+       echo Differences, content AND size     : $OLD_NAME 
+       RESULT=4
+   else
+       echo Differences, content BUT SAME size: $OLD_NAME 
+       RESULT=3
+   fi
+   if [ "x$VIEW" == "xview" ]; then
+       LANG=C $DIFF $OLD_SYMBOLS $NEW_SYMBOLS
+   fi
+else
+   if [ $OLD_SIZE -ne $NEW_SIZE ]
+   then
+       echo Identical symbols BUT NEW size    : $OLD_NAME 
+       RESULT=2
+   else
+       echo Identical symbols AND size, BUT not bytewise identical: $OLD_NAME 
+       RESULT=1
+   fi
+fi
+
+exit $RESULT
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/bin/diffjarzip.sh	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,151 @@
+#!/bin/bash
+#
+# Copyright (c) 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.
+#
+# 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.
+#
+
+# Simple tool to diff two jar or zip files. It unpacks the jar/zip files and
+# reports if files differs and if files are new or missing.
+# Assumes gnu diff.
+
+# There are a few source files that have DOS line endings in the
+# jaxp/jaxws source drops, when the sources were added to the repository
+# the source files were converted to UNIX line endings.
+# For now we ignore these differences.
+DIFF_FLAGS="--strip-trailing-cr"
+#set -x
+
+if [ $# -lt 2 ] 
+then
+  echo "Diff two jar/zip files. Return codes: 0 - no diff, 1 - diff, 2 - couldn't perform diff"
+  echo "Syntax: $0 old_archive new_archive [old_root new_root]"
+  exit 2
+fi
+
+if [ ! -f $1 ]
+then
+  echo $1 does not exist
+  exit 2
+fi
+
+if [ ! -f $2 ]
+then
+  echo $2 does not exist
+  exit 2
+fi
+
+IGNORES="cat"
+OLD=$(cd $(dirname $1) && pwd)/$(basename $1)
+NEW=$(cd $(dirname $2) && pwd)/$(basename $2)
+
+if [ $# -gt 3 ]
+then
+    ROOT1=$(cd $3 && pwd)
+    ROOT2=$(cd $4 && pwd)
+    OLD_NAME=$(echo $OLD | sed "s|$ROOT1/||")
+    NEW_NAME=$(echo $NEW | sed "s|$ROOT2/||")
+    if [ $# == 5 ]; then IGNORES="$5"; fi
+else
+    ROOT1=$(dirname $OLD)/
+    ROOT2=$(dirname $NEW)/
+    OLD_NAME=$OLD
+    NEW_NAME=$NEW
+    if [ $# == 3 ]; then IGNORES="$3"; fi
+fi
+
+if [ "`uname`" == "SunOS" ]; then
+    DIFF=gdiff
+else
+    DIFF=diff
+fi
+
+OLD_SUFFIX="${OLD##*.}"
+NEW_SUFFIX="${NEW##*.}"
+if [ "$OLD_SUFFIX" != "$NEW_SUFFIX" ]; then
+    echo The files do not have the same suffix type!
+    exit 2
+fi
+
+if [ "$OLD_SUFFIX" != "zip" ] && [ "$OLD_SUFFIX" != "jar" ]; then
+    echo The files have to be zip or jar! They are $OLD_SUFFIX
+    exit 2
+fi
+
+UNARCHIVE="unzip -q"
+
+TYPE="$OLD_SUFFIX"
+
+if cmp $OLD $NEW > /dev/null
+then
+    # The files were bytewise identical.
+    exit 0
+fi
+
+# Not quite identical, the might still contain the same data.
+# Unpack the jar/zip files in temp dirs
+if test "x$COMPARE_ROOT" == "x"; then
+    COMPARE_ROOT=/tmp/compare_root.$$
+    REMOVE_COMPARE_ROOT=true
+fi
+OLD_TEMPDIR=$COMPARE_ROOT/$OLD_NAME.old
+NEW_TEMPDIR=$COMPARE_ROOT/$NEW_NAME.new
+mkdir -p $OLD_TEMPDIR
+mkdir -p $NEW_TEMPDIR
+(cd $OLD_TEMPDIR && rm -rf * ; $UNARCHIVE $OLD)
+(cd $NEW_TEMPDIR && rm -rf * ; $UNARCHIVE $NEW)
+
+ONLY1=$(LANG=C $DIFF -rq $OLD_TEMPDIR $NEW_TEMPDIR | grep "^Only in $OLD_TEMPDIR")
+
+if [ -n "$ONLY1" ]; then
+    echo "        Only the OLD $OLD_NAME contains:"
+    LANG=C $DIFF -rq $DIFF_FLAGS $OLD_TEMPDIR $NEW_TEMPDIR | grep "^Only in $OLD_TEMPDIR" \
+        | sed "s|Only in $OLD_TEMPDIR|            |"g | sed 's|: |/|g'
+fi
+
+ONLY2=$(LANG=C $DIFF -rq $OLD_TEMPDIR $NEW_TEMPDIR | grep "^Only in $NEW_TEMPDIR")
+
+if [ -n "$ONLY2" ]; then
+    echo "        Only the NEW $NEW_NAME contains:"
+    LANG=C $DIFF -rq $DIFF_FLAGS $OLD_TEMPDIR $NEW_TEMPDIR | grep "^Only in $NEW_TEMPDIR" \
+        | sed "s|Only in $NEW_TEMPDIR|            |"g | sed 's|: |/|g'
+fi
+
+DIFFTEXT=`dirname $0`/difftext.sh
+
+LANG=C $DIFF -rq $DIFF_FLAGS $OLD_TEMPDIR $NEW_TEMPDIR | grep differ | cut -f 2,4 -d ' ' | \
+   awk "{ print \"$DIFFTEXT \"\$1\" \"\$2 }" > $COMPARE_ROOT/diffing
+
+/bin/bash $COMPARE_ROOT/diffing > $COMPARE_ROOT/diffs
+
+if [ -s "$COMPARE_ROOT/diffs" ]; then
+   echo "        Differing files in $OLD_NAME"
+   cat $COMPARE_ROOT/diffs | grep differ | $IGNORES | cut -f 2 -d ' ' | \
+          sed "s|$OLD_TEMPDIR|            |g"
+fi
+
+# Clean up
+
+if [ "x$REMOVE_COMPARE_ROOT" == xtrue ]; then
+    rm -rf $REMOVE_COMPARE_ROOT
+fi
+
+exit 1
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/bin/difflib.sh	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,168 @@
+#!/bin/bash
+#
+# Copyright (c) 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.
+#
+# 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.
+#
+
+# Simple tool to diff two shared libraries. 
+# Criterias: two shared libraries are considered equal if:
+# the file sizes are the same AND the symbols outputs from the nm command are equal
+
+if [ $# -lt 2 ] 
+then
+  echo "Diff two shared libs. Return codes:"
+  echo "0 - no diff"
+  echo "1 - Identical symbols AND size, BUT not bytewise identical"
+  echo "2 - Identical symbols BUT NEW size"
+  echo "3 - Differences, content BUT SAME size"
+  echo "4 - Differences, content AND size"
+  echo "10 - Could not perform diff"
+  echo "Use 'quiet' to disable any output."
+  echo "Syntax: $0 file1 file2 [quiet]"
+  exit 10
+fi
+
+if [ ! -f $1 ]
+then
+  echo $1 does not exist
+  exit 10
+fi
+
+if [ ! -f $2 ]
+then
+  echo $2 does not exist
+  exit 10
+fi
+
+if [ "`uname`" == "SunOS" ]; then
+    NM=gnm
+    STAT=gstat
+elif [ $OSTYPE == "cygwin" ]; then
+    NM="$VS100COMNTOOLS/../../VC/bin/amd64/dumpbin.exe"
+    NM_ARGS=/exports
+    STAT=stat
+else
+    NM=nm
+    STAT=stat
+fi
+
+# Should the differences be viewed?
+VIEW=
+# You can do export DIFF=meld to view
+# any differences using meld instead.
+if [ -n "$DIFF" ]; then
+    DIFF="$DIFF"
+else
+    DIFF=diff
+fi
+OLD=$(cd $(dirname $1) && pwd)/$(basename $1)
+NEW=$(cd $(dirname $2) && pwd)/$(basename $2)
+
+OLD_SIZE=$($STAT -c%s "$OLD")
+NEW_SIZE=$($STAT -c%s "$NEW")
+
+if [ $# -gt 3 ]
+then
+    ROOT1=$(cd $3 && pwd)
+    ROOT2=$(cd $4 && pwd)
+    OLD_NAME=$(echo $OLD | sed "s|$ROOT1/||")
+    NEW_NAME=$(echo $NEW | sed "s|$ROOT2/||")
+    if [ "x$5" == "xview" ]; then VIEW=view; fi
+else
+    ROOT1=$(dirname $OLD)/
+    ROOT2=$(dirname $NEW)/
+    OLD_NAME=$OLD
+    NEW_NAME=$NEW
+    if [ "x$3" == "xview" ]; then VIEW=view; fi
+fi
+
+OLD_SUFFIX="${OLD##*.}"
+NEW_SUFFIX="${NEW##*.}"
+if [ "$OLD_SUFFIX" != "$NEW_SUFFIX" ]; then
+    echo The files do not have the same suffix type!
+    exit 10
+fi
+
+if [ "$OLD_SUFFIX" != "so" ] && [ "$OLD_SUFFIX" != "dylib" ] && [ "$OLD_SUFFIX" != "dll" ]; then
+    echo The files have to be .so, .dylib or .dll! They are $OLD_SUFFIX
+    exit 10
+fi
+
+TYPE="$OLD_SUFFIX"
+
+if cmp $OLD $NEW > /dev/null
+then
+    # The files were bytewise identical.
+    echo Identical: $OLD_NAME
+    exit 0
+fi
+
+OLD_SYMBOLS=$COMPARE_ROOT/$OLD_NAME.old
+NEW_SYMBOLS=$COMPARE_ROOT/$NEW_NAME.new
+
+mkdir -p $(dirname $OLD_SYMBOLS)
+mkdir -p $(dirname $NEW_SYMBOLS)
+
+if [ $OSTYPE == "cygwin" ]; then
+    "$NM" $NM_ARGS $OLD | grep " = " > $OLD_SYMBOLS
+    "$NM" $NM_ARGS $NEW | grep " = " > $NEW_SYMBOLS
+    "$NM" $NM_ARGS $OLD > $OLD_SYMBOLS.full
+    "$NM" $NM_ARGS $NEW > $NEW_SYMBOLS.full
+else
+    # Strip the addresses, just compare the ordering of the symbols.
+    $NM $OLD | cut -f 2- -d ' ' > $OLD_SYMBOLS
+    $NM $NEW | cut -f 2- -d ' ' > $NEW_SYMBOLS
+    # But store the full information for easy diff access.
+    $NM $OLD  > $OLD_SYMBOLS.full
+    $NM $NEW  > $NEW_SYMBOLS.full
+fi
+
+DIFFS=$(LANG=C diff $OLD_SYMBOLS $NEW_SYMBOLS)
+
+RESULT=0
+
+if [ -n "$DIFFS" ]; then
+   if [ $OLD_SIZE -ne $NEW_SIZE ]
+   then
+       echo Differences, content AND size     : $OLD_NAME 
+       RESULT=4
+   else
+       echo Differences, content BUT SAME size: $OLD_NAME 
+       RESULT=3
+   fi
+   if [ "x$VIEW" == "xview" ]; then
+       LANG=C $DIFF $OLD_SYMBOLS $NEW_SYMBOLS
+   fi
+else
+   if [ $OLD_SIZE -ne $NEW_SIZE ]
+   then
+       echo Identical symbols BUT NEW size    : $OLD_NAME 
+       RESULT=2
+   else
+       echo Identical symbols AND size, BUT not bytewise identical: $OLD_NAME 
+       RESULT=1
+   fi
+fi
+
+exit $RESULT
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/bin/difftext.sh	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,157 @@
+#!/bin/bash
+#
+# Copyright (c) 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.
+#
+# 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.
+#
+
+# The difftext.sh knows how to compare text files and
+# ignore some specific differences.
+# When difftext.sh is called, we already know that the
+# files differ. But if the tests below trigger, then
+# we ignore differences caused by:
+#
+#   Timestamps in Java sources generated by idl2java
+#   Sorting order and cleanup style in .properties files.
+
+OLD="$1"
+NEW="$2"
+SUF="${OLD##*.}"
+TMP=1
+if test "x$SUF" == "xjava"; then
+   TMP=$(LANG=C diff $OLD $NEW | \
+       grep '^[<>]' | \
+       sed '/[<>] \* from.*\.idl/d' | \
+       sed '/[<>] \*.*201[12].*/d' | \
+       sed '/\/\/ Generated from input file.*/d' | \
+       sed '/\/\/ This file was generated AUTOMATICALLY from a template file.*/d' | \
+       sed '/\/\/ java GenerateCharacter.*/d')
+fi
+if test "x$SUF" == "xproperties"; then
+    cat $OLD | sed -e 's/\([^\\]\):/\1\\:/g' -e  's/\([^\\]\)=/\1\\=/g' -e 's/#.*/#/g' \
+-e 's/\\u0020/\x20/g' \
+-e 's/\\u003A/\x3A/g' \
+-e 's/\\u006B/\x6B/g' \
+-e 's/\\u0075/\x75/g' \
+-e 's/\\u00A0/\xA0/g' \
+-e 's/\\u00A3/\xA3/g' \
+-e 's/\\u00B0/\xB0/g' \
+-e 's/\\u00B7/\xB7/g' \
+-e 's/\\u00BA/\xBA/g' \
+-e 's/\\u00BF/\xBF/g' \
+-e 's/\\u00C0/\xC0/g' \
+-e 's/\\u00C1/\xC1/g' \
+-e 's/\\u00C2/\xC2/g' \
+-e 's/\\u00C4/\xC4/g' \
+-e 's/\\u00C5/\xC5/g' \
+-e 's/\\u00C8/\xC8/g' \
+-e 's/\\u00C9/\xC9/g' \
+-e 's/\\u00CA/\xCA/g' \
+-e 's/\\u00CD/\xCD/g' \
+-e 's/\\u00CE/\xCE/g' \
+-e 's/\\u00D3/\xD3/g' \
+-e 's/\\u00D4/\xD4/g' \
+-e 's/\\u00D6/\xD6/g' \
+-e 's/\\u00DA/\xDA/g' \
+-e 's/\\u00DC/\xDC/g' \
+-e 's/\\u00DD/\xDD/g' \
+-e 's/\\u00DF/\xDF/g' \
+-e 's/\\u00E0/\xE0/g' \
+-e 's/\\u00E1/\xE1/g' \
+-e 's/\\u00E2/\xE2/g' \
+-e 's/\\u00E3/\xE3/g' \
+-e 's/\\u00E4/\xE4/g' \
+-e 's/\\u00E5/\xE5/g' \
+-e 's/\\u00E6/\xE6/g' \
+-e 's/\\u00E7/\xE7/g' \
+-e 's/\\u00E8/\xE8/g' \
+-e 's/\\u00E9/\xE9/g' \
+-e 's/\\u00EA/\xEA/g' \
+-e 's/\\u00EB/\xEB/g' \
+-e 's/\\u00EC/\xEC/g' \
+-e 's/\\u00ED/\xED/g' \
+-e 's/\\u00EE/\xEE/g' \
+-e 's/\\u00EF/\xEF/g' \
+-e 's/\\u00F1/\xF1/g' \
+-e 's/\\u00F2/\xF2/g' \
+-e 's/\\u00F3/\xF3/g' \
+-e 's/\\u00F4/\xF4/g' \
+-e 's/\\u00F5/\xF5/g' \
+-e 's/\\u00F6/\xF6/g' \
+-e 's/\\u00F9/\xF9/g' \
+-e 's/\\u00FA/\xFA/g' \
+-e 's/\\u00FC/\xFC/g' \
+-e 's/\\u0020/\x20/g' \
+-e 's/\\u003f/\x3f/g' \
+-e 's/\\u006f/\x6f/g' \
+-e 's/\\u0075/\x75/g' \
+-e 's/\\u00a0/\xa0/g' \
+-e 's/\\u00a3/\xa3/g' \
+-e 's/\\u00b0/\xb0/g' \
+-e 's/\\u00ba/\xba/g' \
+-e 's/\\u00bf/\xbf/g' \
+-e 's/\\u00c1/\xc1/g' \
+-e 's/\\u00c4/\xc4/g' \
+-e 's/\\u00c5/\xc5/g' \
+-e 's/\\u00c8/\xc8/g' \
+-e 's/\\u00c9/\xc9/g' \
+-e 's/\\u00ca/\xca/g' \
+-e 's/\\u00cd/\xcd/g' \
+-e 's/\\u00d6/\xd6/g' \
+-e 's/\\u00dc/\xdc/g' \
+-e 's/\\u00dd/\xdd/g' \
+-e 's/\\u00df/\xdf/g' \
+-e 's/\\u00e0/\xe0/g' \
+-e 's/\\u00e1/\xe1/g' \
+-e 's/\\u00e2/\xe2/g' \
+-e 's/\\u00e3/\xe3/g' \
+-e 's/\\u00e4/\xe4/g' \
+-e 's/\\u00e5/\xe5/g' \
+-e 's/\\u00e7/\xe7/g' \
+-e 's/\\u00e8/\xe8/g' \
+-e 's/\\u00e9/\xe9/g' \
+-e 's/\\u00ea/\xea/g' \
+-e 's/\\u00eb/\xeb/g' \
+-e 's/\\u00ec/\xec/g' \
+-e 's/\\u00ed/\xed/g' \
+-e 's/\\u00ee/\xee/g' \
+-e 's/\\u00ef/\xef/g' \
+-e 's/\\u00f0/\xf0/g' \
+-e 's/\\u00f1/\xf1/g' \
+-e 's/\\u00f2/\xf2/g' \
+-e 's/\\u00f3/\xf3/g' \
+-e 's/\\u00f4/\xf4/g' \
+-e 's/\\u00f5/\xf5/g' \
+-e 's/\\u00f6/\xf6/g' \
+-e 's/\\u00f7/\xf7/g' \
+-e 's/\\u00f8/\xf8/g' \
+-e 's/\\u00f9/\xf9/g' \
+-e 's/\\u00fa/\xfa/g' \
+-e 's/\\u00fc/\xfc/g' \
+-e 's/\\u00ff/\xff/g' \
+  	     | sed -e '/^#/d' -e '/^$/d' \
+                  -e :a -e '/\\$/N; s/\\\n//; ta' \
+  	          -e 's/^[ \t]*//;s/[ \t]*$//' \
+		  -e 's/\\=/=/' | LANG=C sort > $OLD.cleaned
+   TMP=$(LANG=C diff $OLD.cleaned $NEW)
+fi
+if test -n "$TMP"; then
+    echo Files $OLD and $NEW differ
+fi
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/bin/exception_list_linux	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,114 @@
+#
+# Copyright (c) 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.
+#
+# 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.
+#
+
+# List of files inside jar archives that are ok if they differ.
+LIST_DIFF_JAR="
+/sun/misc/Version.class
+/sun/tools/jconsole/Version.class
+/com/sun/tools/javac/resources/version.class
+/com/sun/tools/javah/resources/version.class
+/com/sun/tools/javap/resources/version.class
+"
+
+# List of binaries that only need to match symbols
+LIST_DIFF_SIZE="
+jre/lib/amd64/libfontmanager.so
+jre/lib/amd64/libjdwp.so
+jre/lib/amd64/libt2k.so
+bin/unpack200
+jre/bin/unpack200
+jre/lib/amd64/libjsig.debuginfo
+jre/lib/amd64/libsaproc.debuginfo
+jre/lib/amd64/server/libjvm.debuginfo
+"
+
+# List of binares that need to match both symbols and size
+LIST_DIFF_BYTE="
+jre/lib/amd64/libdt_socket.so
+jre/lib/amd64/libattach.so
+jre/lib/amd64/libjaas_unix.so
+jre/lib/amd64/libjawt.so
+jre/lib/amd64/libjpeg.so
+jre/lib/amd64/libjsdt.so
+jre/lib/amd64/libjsig.so
+jre/lib/amd64/libsaproc.so
+jre/lib/amd64/libsctp.so
+jre/lib/amd64/libsunec.so
+jre/lib/amd64/libunpack.so
+jre/lib/amd64/libverify.so
+jre/lib/amd64/libzip.so
+jre/lib/amd64/server/libjsig.so
+jre/lib/amd64/server/libjvm.so
+jre/lib/amd64/liblcms.so
+demo/jvmti/heapTracker/lib/libheapTracker.so
+demo/jvmti/hprof/lib/libhprof.so
+demo/jvmti/minst/lib/libminst.so
+demo/jvmti/mtrace/lib/libmtrace.so
+demo/jvmti/waiters/lib/libwaiters.so
+bin/appletviewer
+bin/extcheck
+bin/idlj
+bin/jar
+bin/jarsigner
+bin/java
+bin/javac
+bin/javadoc
+bin/javah
+bin/javap
+bin/jcmd
+bin/jconsole
+bin/jdb
+bin/jhat
+bin/jinfo
+bin/jmap
+bin/jps
+bin/jrunscript
+bin/jsadebugd
+bin/jstack
+bin/jstat
+bin/jstatd
+bin/keytool
+bin/native2ascii
+bin/orbd
+bin/pack200
+bin/policytool
+bin/rmic
+bin/rmid
+bin/rmiregistry
+bin/schemagen
+bin/serialver
+bin/servertool
+bin/tnameserv
+bin/wsgen
+bin/wsimport
+bin/xjc
+jre/bin/java
+jre/bin/keytool
+jre/bin/orbd
+jre/bin/pack200
+jre/bin/policytool
+jre/bin/rmid
+jre/bin/rmiregistry
+jre/bin/servertool
+jre/bin/tnameserv
+"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/bin/extractvcvars.sh	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,53 @@
+#!/bin/bash
+#
+# Copyright (c) 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.
+#
+# 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.
+#
+
+# Must be bash, but that is ok since we are running from cygwin.
+# The first argument is the vcvarsall.bat file to run.
+# The second argument is the arch arg to give to vcvars.
+VCVARSALL="$1"
+ARCH_ARG="$2"
+
+# Cannot use the VS10 setup script directly (since it only updates the DOS subshell environment)
+# but calculate the difference in Cygwin environment before/after running it and then
+# apply the diff.
+_vs10varsall=`cygpath -a -m -s "$VCVARSALL"`
+_dosvs10varsall=`cygpath -a -w -s $_vs10varsall`
+_dosbash=`cygpath -a -w -s \`which bash\`.*`
+
+# generate the set of exported vars before/after the vs10 setup
+echo "@echo off" > localdevenvtmp.bat
+echo "$_dosbash -c \"export -p\" > localdevenvtmp.export0" >> localdevenvtmp.bat
+echo "call $_dosvs10varsall $ARCH_ARG" >> localdevenvtmp.bat
+echo "$_dosbash -c \"export -p\" > localdevenvtmp.export1" >> localdevenvtmp.bat
+cmd /c localdevenvtmp.bat
+
+# apply the diff (less some non-vs10 vars named by "!")
+sort localdevenvtmp.export0 |grep -v "!" > localdevenvtmp.export0.sort
+sort localdevenvtmp.export1 |grep -v "!" > localdevenvtmp.export1.sort
+comm -1 -3 localdevenvtmp.export0.sort localdevenvtmp.export1.sort > localdevenv.sh
+cat localdevenv.sh | sed 's/declare -x /export /g' | sed 's/="/:="/g' | sed 's/\\\\/\\/g' | sed 's/"//g' | \
+    sed 's/#/\$\(HASH\)/g' > localdevenv.gmk
+
+# cleanup
+rm -f localdevenvtmp*
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/bin/hide_important_warnings_from_javac.sh	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,41 @@
+#!/bin/sh
+#
+# Copyright (c) 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.
+#
+# 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.
+#
+
+if [ -x /usr/bin/ggrep ] ; then
+    # Gnu grep on Solaris
+    # (reference configure and build/solaris-i586-clientANDserver-release/spec.gmk
+    GREP=/usr/bin/ggrep
+else
+    GREP=grep
+fi
+#
+EXP="Note: Some input files use or override a deprecated API."
+EXP="${EXP}|Note: Recompile with -Xlint:deprecation for details."
+EXP="${EXP}|Note: Some input files use unchecked or unsafe operations."
+EXP="${EXP}|Note: Recompile with -Xlint:unchecked for details."
+EXP="${EXP}| warning"
+EXP="${EXP}|uses or overrides a deprecated API."
+EXP="${EXP}|uses unchecked or unsafe operations."
+#
+${GREP} --line-buffered -v -E "${EXP}"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/bin/logger.sh	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,46 @@
+#!/bin/sh
+#
+# Copyright (c) 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.
+#
+# 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.
+#
+
+# Usage: ./logger.sh theloggfile acommand arg1 arg2 
+#
+# Execute acommand with args, in such a way that
+# both stdout and stderr from acommand are appended to 
+# theloggfile.
+#
+# Preserve stdout and stderr, so that the stdout
+# from logger.sh is the same from acommand and equally
+# for stderr.
+#
+# Propagate the result code from acommand so that
+# ./logger.sh exits with the same result code.
+
+# Create a temporary directory to store the result code from
+# the wrapped command.
+RCDIR=`mktemp -d tmp.XXXXXX` || exit $?
+trap "rm -rf '$RCDIR'" EXIT
+LOGFILE=$1
+shift
+(exec 3>&1 ; ("$@" 2>&1 1>&3; echo $? > $RCDIR/rc) | tee -a $LOGFILE 1>&2 ; exec 3>&-) | tee -a $LOGFILE
+exit `cat $RCDIR/rc`
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/makefiles/IdlCompilation.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,114 @@
+#
+# 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.
+#
+
+PREFIXES=-pkgPrefix CORBA                org.omg \
+	-pkgPrefix CosNaming             org.omg \
+	-pkgPrefix CosTransactions       org.omg \
+	-pkgPrefix CosTSInteroperation   org.omg \
+	-pkgPrefix DynamicAny            org.omg \
+	-pkgPrefix Dynamic               org.omg \
+	-pkgPrefix IOP                   org.omg \
+	-pkgPrefix Messaging             org.omg \
+	-pkgPrefix PortableInterceptor   org.omg \
+	-pkgPrefix PortableServer        org.omg \
+	-pkgPrefix activation            com.sun.corba.se.spi \
+	-pkgPrefix GIOP                  com.sun.corba.se \
+	-pkgPrefix PortableActivationIDL com.sun.corba.se \
+	-pkgPrefix messages              com.sun.corba.se 
+
+define add_idl_package
+    # param 1 = MYPACKAGE
+    # param 2 = src root
+    # param 3 = gensrc root
+    # param 4 = source idl to compile
+    # param 5 = target idl package
+    # param 6 = delete these files that were output from the idlj
+    # param 7 = idls that match these patterns should be compiled with -oldImplBase
+    # param 8 = the idlj command
+    # Save the generated java files to a temporary directory so
+    # that we can find them and create proper dependencies.
+    # After that, we move them to the real gensrc target dir.
+    $4_TMPDIR:=tmp___$(subst /,_,$(patsubst $2/%,%,$4))___
+    ifneq ($$(filter $7,$4),)
+        $4_OLDIMPLBASE:=-oldImplBase
+        $4_OLDIMPLBASE_MSG:=with -oldImplBase
+    endif
+    $5 : $4
+	mkdir -p $3/$$($4_TMPDIR)
+	rm -rf $3/$$($4_TMPDIR)
+	mkdir -p $(dir $5)
+	echo Compiling IDL $(patsubst $2/%,%,$4) 
+	$8 -td $3/$$($4_TMPDIR) \
+		-i $2/org/omg/CORBA \
+		-i $2/org/omg/PortableInterceptor \
+		-i $2/org/omg/PortableServer \
+		-D CORBA3 -corba 3.0 \
+		-fall \
+		$$($4_OLDIMPLBASE) \
+		$(PREFIXES) \
+		$4
+	rm -f $$(addprefix $3/$$($4_TMPDIR)/,$6)
+	cp -rp $3/$$($4_TMPDIR)/* $3
+	(cd $3/$$($4_TMPDIR); find . -type f | sed 's!\./!$3/!g' | awk '{ print $$$$1 ": $4" }' > $5)
+	rm -rf $3/$$($4_TMPDIR)
+endef
+
+define SetupIdlCompilation
+# param 1 is for example BUILD_IDLS
+# param 2,3,4,5,6,7,8 are named args.
+#    IDLJ,SRC,BIN,INCLUDES,EXCLUDES,OLDIMPLBASES,DELETES
+$(if $2,$1_$(strip $2))
+$(if $3,$1_$(strip $3))
+$(if $4,$1_$(strip $4))
+$(if $5,$1_$(strip $5))
+$(if $6,$1_$(strip $6))
+$(if $7,$1_$(strip $7))
+$(if $8,$1_$(strip $8))
+$(if $9,$1_$(strip $9))
+# Remove any relative addressing in the paths.
+$1_SRC := $$(abspath $$($1_SRC))
+$1_BIN := $$(abspath $$($1_BIN))
+# Find all existing java files and existing class files.
+$$(shell mkdir -p $$($1_SRC) $$($1_BIN))
+$1_SRCS     := $$(shell find $$($1_SRC) -name "*.idl")
+$1_BINS     := $$(shell find $$($1_BIN) -name "*.java")
+# Prepend the source/bin path to the filter expressions.
+$1_SRC_INCLUDES := $$(addprefix $$($1_SRC)/,$$($1_INCLUDES))
+$1_SRC_EXCLUDES := $$(addprefix $$($1_SRC)/,$$($1_EXCLUDES))
+$1_BIN_INCLUDES := $$(addprefix $$($1_BIN)/,$$($1_INCLUDES))
+$1_BIN_EXCLUDES := $$(addprefix $$($1_BIN)/,$$($1_EXCLUDES))
+$1_OLDIMPLBASES := $$(addprefix $$($1_SRC)/,$$($1_OLDIMPLBASES))
+# Now remove unwanted java/class files.
+$1_SRCS     := $$(filter $$($1_SRC_INCLUDES),$$($1_SRCS))
+$1_SRCS     := $$(filter-out $$($1_SRC_EXCLUDES),$$($1_SRCS))
+$1_BINS     := $$(filter $$($1_BIN_INCLUDES),$$($1_BINS))
+$1_BINS     := $$(filter-out $$($1_BIN_EXCLUDES),$$($1_BINS))
+$1 := $$(sort $$(patsubst $$($1_SRC)/%.idl,$$($1_BIN)/%.idl.d,$$($1_SRCS)))
+# Now create the dependencies for each idl target.
+$$(foreach p,$$($1),$$(eval $$(call add_idl_package,$1,$$($1_SRC),$$($1_BIN),$$(patsubst $$($1_BIN)/%.idl.d,$$($1_SRC)/%.idl,$$p),$$p,$$($1_DELETES),$$($1_OLDIMPLBASES),$$($1_IDLJ))))
+endef
+
+.SUFFIXES: .java .class .package
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/makefiles/JavaCompilation.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,887 @@
+#
+# 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.
+#
+
+# The complexity of this makefile is not the fault of make, but the fault
+# of javac and javah. The basic problems are:
+#
+#    1) Compiling a single Java source file unpredictably generates anything
+#       between zero (0!) and an infinite number of .class files!
+#    2) There is no hint, for which classes javah needs to be run,
+#       and it happily generates .h files for classes with no native methods.
+#    3) javac and javah do not cleanup anything, for example if an internal
+#       class (potentially with native methods) is removed from a Java source file.
+#
+# This makefile is a tribute to GNU make. And yes, it was harder to write than it is
+# to read. The include/excludes of directories and files are only a temporary measure
+# to work around the messy jdk sources that put platform specific code in src/share/classes.
+#
+# We should move most of the functionality of this makefile into a
+# smart javac/javah/javadoc/jar combo tool. sjavac ?
+#
+# I.e. 1) It always generates a single output, a zip-file from a number of source roots.
+#         The zip file contains information that enable incremental builds with full 
+#         dependency tracking between packages.
+#      2) It automatically generates the right .h files.
+#      3) It keeps its house clean.
+#      *) Generates intermediate files to be used for javadoc generation later.
+#      and does all the other useful things that this makefile does, such as:
+#          use all cores for compilation, reuse the running JVM for all compilations,
+#          and has pubapi dependency tracking to minimize the number of files
+#          that need to be recompiled during an incremental build.
+# 
+# A zip file, or several zip files combined, can then be converted to a .jar file, or to a .jmod file.
+#
+# This would make this makefile much much simpler. I.e. make can be used
+# for its real purpose, track dependencies and trigger a recompile if a
+# dependency has changed.
+#
+# When you read this source. Remember that $(sort ...) has the side effect
+# of removing duplicates. It is actually this side effect that is
+# desired whenever sort is used below!
+
+ifeq  (,$(_MAKEBASE_GMK))
+    $(error You must include MakeBase.gmk prior to including JavaCompilation.gmk)
+endif
+
+FALSE_FIND_PATTERN:=-name FILE_NAME_THAT_DOESNT_EXIST
+
+# If compilation of java package fails, then the public api file for that
+# package will not be genereated. We add this fallback rule to generate
+# an empty pubapi file. 
+%.api:
+	if test ! -f $@; then $(MKDIR) -p $(@D); $(TOUCH) $@; fi
+
+define SetupJavaCompiler
+    # param 1 is for example BOOT_JAVAC or NEW_JAVAC
+    # This is the name later used to decide which java compiler to use.
+    # param 2-9 are named args.
+    #   JVM:=The jvm used to run the javac/javah command
+    #   JAVAC:=The javac jar and bootstrap classpath changes, or just bin/javac if JVM is left out
+    #   JAVAH:=The javah jar and bootstrap classpath changes, or just bin/javah if JVM is left out
+    #   FLAGS:=Flags to be supplied to javac
+    #   MODE:=SINGLE_THREADED_BATCH (primarily for old javac) or MULTI_CORE_CONCURRENT
+    #      only for MULTI_CORE_CONCURRENT are the options below relevant:
+    #   SERVER_DIR:=Use a javac server (-XDserver) and store the server related files here
+    #   SERVER_JVM:=Use this JVM for the server. Defaults to the JVM above.
+    #   USE_DEPS:=true means use -XDdeps,-XDpubapi and -XDnativeapi to track java dependencies
+    $(if $2,$1_$(strip $2))
+    $(if $3,$1_$(strip $3))
+    $(if $4,$1_$(strip $4))
+    $(if $5,$1_$(strip $5))
+    $(if $6,$1_$(strip $6))
+    $(if $7,$1_$(strip $7))
+    $(if $8,$1_$(strip $8))
+    $(if $9,$1_$(strip $9))
+
+    ifeq ($$($1_MODE),MULTI_CORE_CONCURRENT)
+	ifneq (,$$($1_SERVER_DIR))
+            # A javac server has been requested.
+            # The port file contains the tcp/ip on which the server listens
+            # and the cookie necessary to talk to the server.
+            $1_JAVAC_PORTFILE:=$$($1_SERVER_DIR)/$1.port
+            ifeq ($$($1_SERVER_JVM),)
+                # You can use a different JVM to run the background javac server.
+                # But if not set, it defaults to the same JVM that is used to start
+                # the javac command.
+                $1_SERVER_JVM:=$$($1_JVM)
+            endif
+            # Set the $1_REMOTE to spawn a background javac server.
+	    $1_REMOTE:=-XDserver:portfile=$$($1_JAVAC_PORTFILE),poolsize=$(JAVAC_SERVER_CORES),javac=$$(subst $$(SPACE),%20,$$(subst $$(COMMA),%2C,$$(strip $$($1_SERVER_JVM) $$($1_JAVAC))))
+        endif
+    endif
+endef
+
+define SetupArchive
+    # param 1 is for example ARCHIVE_MYPACKAGE
+    # param 2 are the dependecies
+    # param 3,4,5,6,7,8,9 are named args.
+    #    SRCS:=List of directories in where to find files to add to archive
+    #    SUFFIXES:=File suffixes to include in jar
+    #    INCLUDES:=List of directories/packages in SRCS that should be included
+    #    EXCLUDES:=List of directories/packages in SRCS that should be excluded
+    #    EXCLUDE_FILES:=List of files in SRCS that should be excluded
+    #    EXTRA_FILES:=List of files in SRCS that should be included regardless of suffix match.
+    #    JAR:=Jar file to create
+    #    MANIFEST:=Optional manifest file template.
+    #    JARMAIN:=Optional main class to add to manifest
+    #    SETUP:=The Java(h) compiler setup, needed to run javah.
+    #    HEADERS:=Directory to put headers in
+    #    SKIP_METAINF:=Set to prevent contents of an META-INF directory to be automatically 
+    #                  added to the archive.
+    #    EXTRA_MANIFEST_ATTR:=Extra attribute to add to manifest.
+    $(if $3,$1_$(strip $3))
+    $(if $4,$1_$(strip $4))
+    $(if $5,$1_$(strip $5))
+    $(if $6,$1_$(strip $6))
+    $(if $7,$1_$(strip $7))
+    $(if $8,$1_$(strip $8))
+    $(if $9,$1_$(strip $9))
+    $(if $(10),$1_$(strip $(10)))
+    $(if $(11),$1_$(strip $(11)))
+    $(if $(12),$1_$(strip $(12)))
+    $(if $(13),$1_$(strip $(13)))
+    $(if $(14),$1_$(strip $(14)))
+
+    $1_JVM   := $$($$($1_SETUP)_JVM)
+    $1_JAVAH := $$($$($1_SETUP)_JAVAH)
+    $1_JARMAIN:=$(strip $$($1_JARMAIN))
+    $1_JARNAME:=$$(notdir $$($1_JAR))
+    $1_MANIFEST_FILE:=$$(dir $$($1_JAR))_the.$$($1_JARNAME)_manifest
+    $1_DELETESS_FILE:=$$(dir $$($1_JAR))_the.$$($1_JARNAME)_deletess
+    $1_DELETES_FILE:=$$(dir $$($1_JAR))_the.$$($1_JARNAME)_deletes
+    $1_PUBAPI_NOTIFICATIONS_FILE:=$$(dir $$($1_JAR))_the.$$($1_JARNAME)_pubapi_notifications
+    $1_NATIVEAPI_NOTIFICATIONS_FILE:=$$(dir $$($1_JAR))_the.$$($1_JARNAME)_native_notifications
+    $1_NATIVEAPI_FILE:=$$(dir $$($1_JAR))_the.$$($1_JARNAME)_native
+    $1_BIN:=$$(dir $$($1_JAR))
+    ifeq (,$$($1_SUFFIXES))
+        # No suffix was set, default to classes.
+        $1_SUFFIXES:=.class
+    endif
+    # Convert suffixes to a find expression
+    $1_FIND_PATTERNS:=$(FALSE_FIND_PATTERN) $$(patsubst %,$(SPACE)-o$(SPACE)-name$(SPACE)$(DQUOTE)*%$(DQUOTE),$$($1_SUFFIXES))
+    ifneq (,$$($1_INCLUDES))
+        $1_GREP_INCLUDES:=| $(GREP) $$(foreach src,$$($1_SRCS),$$(addprefix -e$(SPACE)$$(src)/,$$($1_INCLUDES)))
+    endif
+    ifneq (,$$($1_EXCLUDES)$$($1_EXCLUDE_FILES))
+        $1_GREP_EXCLUDES:=| $(GREP) -v $$(foreach src,$$($1_SRCS),$$(addprefix -e$(SPACE)$$(src)/,$$($1_EXCLUDES) $$($1_EXCLUDE_FILES)))
+    endif
+
+    # Utility macros, to make the shell script receipt somewhat easier to dechipher.
+
+    # The capture contents macro finds all files (matching the patterns, typically
+    # .class and .prp) that are newer than the jar-file, ie the new content to be put into the jar.
+    $1_CAPTURE_CONTENTS=$$(foreach src,$$($1_SRCS),(($(FIND) $$(src) -type f -a \( $$($1_FIND_PATTERNS) \) -a -newer $$@ $$($1_GREP_INCLUDES) $$($1_GREP_EXCLUDES) && $(ECHO) $$($1_EXTRA_FILES)) | $(SED) 's|$$(src)/||g' > $$(src)/_the.$$($1_JARNAME)_contents) && )
+    # The capture metainf macro finds all files below the META-INF directory that are newer than the jar-file.
+    ifeq (,$$($1_SKIP_METAINF))
+        $1_CAPTURE_METAINF =$$(foreach src,$$($1_SRCS),($(FIND) $$(src)/META-INF -type f -a -newer $$@ 2> /dev/null | $(SED) 's|$$(src)/||g' >> $$(src)/_the.$$($1_JARNAME)_contents ) && )
+    endif
+    # The capture deletes macro finds all deleted files and concatenates them. The resulting file
+    # tells us what to remove from the jar-file.
+    $1_CAPTURE_DELETES=$$(foreach src,$$($1_SRCS),($(FIND) $$(src) -name _the.package.deleted -newer $$@ -exec $(SED) 's|$$(src)||g' \{\} >> $$($1_DELETES_FILE) \;) &&)
+    # The capture pubapi notifications scans for pubapi change notifications. If such notifications are
+    # found, then we will build the classes leading up to the jar again, to take into account the new timestamps
+    # on the changed pubapi files.
+    $1_CAPTURE_PUBAPI_NOTIFICATIONS=$$(foreach src,$$($1_SRCS),\
+                    (cd $$(src) && \
+                    $(FIND) . -name _the.package.api.notify -exec dirname \{\} \; >> $$($1_PUBAPI_NOTIFICATIONS_FILE) ; \
+                    true) &&)
+    # The capture nativeapi macro scans for native api change notificiations. If such notifications are
+    # found, then we will run javah on the changed classes. It also collects all classes with native methods
+    # to be used to find out which classes no longer has native methods, to trigger deletion of those .h files.
+    $1_CAPTURE_NATIVEAPI=$$(foreach src,$$($1_SRCS),\
+                    (cd $$(src) && \
+                    $(FIND) . -name _the.package.native.notify | $(SED) 's/package.native.notify/package.native/' | \
+                            $(XARGS) $(CAT)  | $(GREP) '^TYPE ' | $(SED) 's/.*TYPE //' >> $$($1_NATIVEAPI_NOTIFICATIONS_FILE) ; \
+                    $(FIND) . -name _the.package.native -exec $(CAT) \{\} \; | $(SED) -n 's/^TYPE //p' >> $$($1_NATIVEAPI_FILE) ; \
+                    true) &&)
+    # The update contents macro updates the jar file with the previously capture contents.
+    $1_UPDATE_CONTENTS=$$(foreach src,$$($1_SRCS),\
+                    (cd $$(src) && \
+                     if [ -s _the.$$($1_JARNAME)_contents ]; then \
+                         $(ECHO) "  updating" `$(WC) -l _the.$$($1_JARNAME)_contents | $(AWK) '{ print $$$$1 }'` files && \
+                         $(JAR) uf $$@ @_the.$$($1_JARNAME)_contents; \
+                     fi) &&)
+    # The s-variants of the above macros are used when the jar is created from scratch.
+    $1_SCAPTURE_CONTENTS=$$(foreach src,$$($1_SRCS),\
+                    (($(FIND) $$(src) -type f -a \( $$($1_FIND_PATTERNS) \) $$($1_GREP_INCLUDES) $$($1_GREP_EXCLUDES) && $(ECHO) $$($1_EXTRA_FILES)) | $(SED) 's|$$(src)/||g' > $$(src)/_the.$$($1_JARNAME)_contents) && )
+    ifeq (,$$($1_SKIP_METAINF))
+        $1_SCAPTURE_METAINF=$$(foreach src,$$($1_SRCS),\
+                    ($(FIND) $$(src)/META-INF -type f 2> /dev/null | $(SED) 's|$$(src)/||g' >> $$(src)/_the.$$($1_JARNAME)_contents) && )
+    endif
+    $1_SUPDATE_CONTENTS=$$(foreach src,$$($1_SRCS),\
+                    (cd $$(src) && $(JAR) uf $$@ @$$(src)/_the.$$($1_JARNAME)_contents) &&)
+    # The TOUCH macro is used to make sure all timestamps are identical for package files and the pubapi files.
+    # If we do not do this, we get random recompilations, the next time we run make, since the order of package building is random,
+    # ie independent of package --dependes on-> public api of another package. This is of course
+    # due to the fact that Java source often (always?) has circular dependencies. (Thus there is no correct order
+    # to compile packages, and we can just as well do them in a random order. Which we do.)
+    $1_TOUCH_API_FILES=$$(foreach src,$$($1_SRCS),\
+                    ($(FIND) $$(src) -name _the.package.api -exec $(TOUCH) -r $$($1_JAR) \{\} \; ; true) && \
+                    ($(FIND) $$(src) -name _the.package -exec $(TOUCH) -r $$($1_JAR) \{\} \; ; true) &&)
+    # Use a slightly shorter name for logging, but with enough path to identify this jar.
+    $1_NAME:=$$(subst $$(OUTPUT_ROOT)/,,$$($1_JAR))
+    # Here is the rule that creates/updates the jar file.
+    $$($1_JAR) : $2
+	$(MKDIR) -p $$($1_BIN)
+	if [ -n "$$($1_MANIFEST)" ]; then \
+		$(SED) -e "s#@@RELEASE@@#$(RELEASE)#"           \
+		       -e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" $$($1_MANIFEST) > $$($1_MANIFEST_FILE); \
+	else \
+		$(RM) $$($1_MANIFEST_FILE) && $(TOUCH) $$($1_MANIFEST_FILE); \
+	fi
+	$(ECHO) "Main-Class: $$(strip $$($1_JARMAIN))" >> $$($1_MANIFEST_FILE)
+	if [ -n "$$($1_EXTRA_MANIFEST_ATTR)" ]; then \
+		$(ECHO) "$$($1_EXTRA_MANIFEST_ATTR)" >> $$($1_MANIFEST_FILE); \
+	fi
+	+if [ -s $$@ ]; then \
+		$(RM) -r $$($1_PUBAPI_NOTIFICATIONS_FILE) && \
+		$$($1_CAPTURE_PUBAPI_NOTIFICATIONS) \
+		if [ -s $$($1_PUBAPI_NOTIFICATIONS_FILE) ]; then \
+			$(ECHO) Public api change detected in: && \
+			$(CAT) $$($1_PUBAPI_NOTIFICATIONS_FILE) | $(TR) '/' '.' | $(SED) 's|^..||g' | $(SED) 's|\.$$$$||g' | $(AWK) '{print "  "$$$$1}' && \
+			$$(foreach src,$$($1_SRCS),($(FIND) $$(src) -name _the.package.api.notify $(FIND_DELETE); true) &&) \
+			$(MAKE) -f $(word 1,$(MAKEFILE_LIST)) $$($1_JAR) ; \
+		else \
+			$(ECHO) Modifying $$($1_NAME) && \
+			$$($1_CAPTURE_CONTENTS) \
+			$$($1_CAPTURE_METAINF) \
+			$(RM) $$($1_DELETES_FILE) && \
+			$$($1_CAPTURE_DELETES) \
+			$(CAT) $$($1_DELETES_FILE) > $$($1_DELETESS_FILE) && \
+			if [ -s $$($1_DELETESS_FILE) ]; then \
+				$(ECHO) "  deleting" `$(WC) -l $$($1_DELETESS_FILE) | $(AWK) '{ print $$$$1 }'` files && \
+	                        $(ZIP) -q -d $$@ `$(CAT) $$($1_DELETESS_FILE)` ; \
+			fi && \
+			$$($1_UPDATE_CONTENTS) true && \
+			$$($1_TOUCH_API_FILES) true && \
+			$(RM) -r $$($1_NATIVEAPI_NOTIFICATIONS_FILE) $$($1_NATIVEAPI_FILE) && \
+			$$($1_CAPTURE_NATIVEAPI) true && \
+			if [ "x$$($1_JAVAH)" != "x" ] && [ -s $$($1_NATIVEAPI_NOTIFICATIONS_FILE) ]; then \
+				$(ECHO) Native api change detected in: && $(CAT) $$($1_NATIVEAPI_NOTIFICATIONS_FILE) && \
+		                $$($1_JVM) $$($1_JAVAH) "-Xbootclasspath/p:$$($1_JAR)" -d $$($1_HEADERS) @$$($1_NATIVEAPI_NOTIFICATIONS_FILE) ; \
+	    		fi && \
+			$(TOUCH) $$($1_NATIVEAPI_FILE)_prev ; \
+			($(GREP) -xvf $$($1_NATIVEAPI_FILE) $$($1_NATIVEAPI_FILE)_prev > $$($1_NATIVEAPI_FILE)_deleted; true) && \
+			$(CP) $$($1_NATIVEAPI_FILE) $$($1_NATIVEAPI_FILE)_prev && \
+			if [ -s $$($1_NATIVEAPI_FILE)_deleted ]; then \
+				$(ECHO) Native methods dropped from classes: && $(CAT) $$($1_NATIVEAPI_FILE)_deleted && \
+				$(RM) `$(CAT) $$($1_NATIVEAPI_FILE)_deleted | $(SED) -e 's|\.|_|g' -e 's|.*|$$($1_HEADERS)/&.h $$($1_HEADERS)/&_*|'` ; \
+			fi && \
+			$$(foreach src,$$($1_SRCS),($(FIND) $$(src) -name _the.package.api.notify $(FIND_DELETE); true) &&) true ; \
+		fi ; \
+	else \
+		$(ECHO) Creating $$($1_NAME) && $(JAR) cfm $$@ $$($1_MANIFEST_FILE) && \
+	        $$($1_SCAPTURE_CONTENTS) \
+		$$($1_SCAPTURE_METAINF) \
+		$$($1_SUPDATE_CONTENTS) \
+		$$($1_TOUCH_API_FILES) true && \
+		$(RM) -r $$($1_NATIVEAPI_NOTIFICATIONS_FILE) $$($1_NATIVEAPI_FILE) && \
+		$$($1_CAPTURE_NATIVEAPI) true && \
+		if [ "x$$($1_JAVAH)" != "x" ] && [ -s $$($1_NATIVEAPI_FILE) ]; then \
+			$(ECHO) Generating native api headers for `$(CAT) $$($1_NATIVEAPI_FILE) | $(WC) -l` classes && \
+			$(RM) $$($1_HEADERS)/*.h && \
+			$$($1_JVM) $$($1_JAVAH) "-Xbootclasspath/p:$$($1_JAR)" -d $$($1_HEADERS) @$$($1_NATIVEAPI_FILE) && \
+			$(CP) $$($1_NATIVEAPI_FILE) $$($1_NATIVEAPI_FILE)_prev ; \
+		fi && \
+		$$(foreach src,$$($1_SRCS),($(FIND) $$(src) -name "*.notify" $(FIND_DELETE); true) &&) true ; \
+	fi; 
+
+endef
+
+define append_to
+    $(ECHO) "$1" >> $2
+endef
+
+define SetupZipArchive
+    # param 1 is for example ZIP_MYSOURCE
+    # param 2,3,4,5,6,7,8,9 are named args.
+    #    SRC,ZIP,INCLUDES,EXCLUDES,EXCLUDE_FILES
+    $(if $2,$1_$(strip $2))
+    $(if $3,$1_$(strip $3))
+    $(if $4,$1_$(strip $4))
+    $(if $5,$1_$(strip $5))
+    $(if $6,$1_$(strip $6))
+    $(if $7,$1_$(strip $7))
+    $(if $8,$1_$(strip $8))
+    $(if $9,$1_$(strip $9))
+
+    # Find all files in the source tree.
+    $1_ALL_SRCS := $$(foreach i,$$($1_SRC), $$(shell $(FIND) $$i -type f -a ! -name "_the.*"))
+
+    ifneq ($$($1_INCLUDES),)
+        $1_SRC_INCLUDES := $$(foreach i,$$($1_SRC),$$(addprefix $$i/,$$(addsuffix /%,$$($1_INCLUDES))))
+        $1_ZIP_INCLUDES := $$(addprefix -i$(SPACE)$(DQUOTE),$$(addsuffix /*$(DQUOTE),$$($1_INCLUDES)))
+        $1_ALL_SRCS     := $$(filter $$($1_SRC_INCLUDES),$$($1_ALL_SRCS))
+    endif
+    ifneq ($$($1_EXCLUDES),)
+        $1_SRC_EXCLUDES := $$(foreach i,$$($1_SRC),$$(addprefix $$i/,$$(addsuffix /%,$$($1_EXCLUDES))))
+        $1_ZIP_EXCLUDES := $$(addprefix -x$(SPACE)$(DQUOTE),$$(addsuffix /*$(DQUOTE),$$($1_EXCLUDES)))
+        $1_ALL_SRCS     := $$(filter-out $$($1_SRC_EXCLUDES),$$($1_SRCS))
+    endif
+
+    # Use a slightly shorter name for logging, but with enough path to identify this zip.
+    $1_NAME:=$$(subst $$(OUTPUT_ROOT)/,,$$($1_ZIP))
+
+    # Now $1_ALL_SRCS should contain all sources that are going to be put into the zip.
+    # I.e. the zip -i and -x options should match the filtering done in the makefile.
+    # Explicitly excluded files can be given with absolute path. The patsubst solution
+    # isn't perfect but the likelyhood of an absolute path to match something in a src
+    # dir is very small.
+    $$($1_ZIP) : $$($1_ALL_SRCS)
+		$(MKDIR) -p $$(@D)
+		$(ECHO) Updating $$($1_NAME)
+		$$(foreach i,$$($1_SRC),(cd $$i && $(ZIP) -qru $$@ . $$($1_ZIP_INCLUDES) $$($1_ZIP_EXCLUDES) -x \*_the.\* $$(addprefix -x$(SPACE),$$(patsubst $$i/%,%,$$($1_EXCLUDE_FILES)))) ;) true
+		$(TOUCH) $$@
+endef
+
+define add_file_to_copy
+    # param 1 = BUILD_MYPACKAGE
+    # parma 2 = The source file to copy.
+    $2_TARGET:=$2
+    # Remove the source prefix. 
+    $$(foreach i,$$($1_SRC),$$(eval $$(call remove_string,$$i,$2_TARGET)))
+    # Now we can setup the depency that will trigger the copying.
+    $$($1_BIN)$$($2_TARGET) : $2
+	$(MKDIR) -p $$(@D)
+	$(CP) $$< $$@
+	$(CHMOD) -f ug+w $$@
+
+    # And do not forget this target
+    $1_ALL_COPY_TARGETS += $$($1_BIN)$$($2_TARGET)
+endef
+
+
+# This macro is used only for properties files that are to be
+# copied over to the classes directory in cleaned form:
+# Previously this was inconsistently done in different repositories.
+# This is the new clean standard.
+define add_file_to_copy_and_clean
+    # param 1 = BUILD_MYPACKAGE
+    # parma 2 = The source file to copy and clean.
+    $2_TARGET:=$2
+    # Remove the source prefix. 
+    $$(foreach i,$$($1_SRC),$$(eval $$(call remove_string,$$i,$2_TARGET)))
+    # Now we can setup the depency that will trigger the copying.
+    $$($1_BIN)$$($2_TARGET) : $2
+	$(MKDIR) -p $$(@D)
+	$(ECHO) Cleaning $$($2_TARGET)
+	$(CAT) $$< | $(SED) -e 's/\([^\\]\):/\1\\:/g' -e  's/\([^\\]\)=/\1\\=/g' -e 's/#.*/#/g' \
+                   | $(SED) \
+-e 's/\\u0020/\x20/g' \
+-e 's/\\u003A/\x3A/g' \
+-e 's/\\u006B/\x6B/g' \
+-e 's/\\u0075/\x75/g' \
+-e 's/\\u00A0/\xA0/g' \
+-e 's/\\u00A3/\xA3/g' \
+-e 's/\\u00B0/\xB0/g' \
+-e 's/\\u00B7/\xB7/g' \
+-e 's/\\u00BA/\xBA/g' \
+-e 's/\\u00BF/\xBF/g' \
+-e 's/\\u00C0/\xC0/g' \
+-e 's/\\u00C1/\xC1/g' \
+-e 's/\\u00C2/\xC2/g' \
+-e 's/\\u00C4/\xC4/g' \
+-e 's/\\u00C5/\xC5/g' \
+-e 's/\\u00C8/\xC8/g' \
+-e 's/\\u00C9/\xC9/g' \
+-e 's/\\u00CA/\xCA/g' \
+-e 's/\\u00CD/\xCD/g' \
+-e 's/\\u00CE/\xCE/g' \
+-e 's/\\u00D3/\xD3/g' \
+-e 's/\\u00D4/\xD4/g' \
+-e 's/\\u00D6/\xD6/g' \
+-e 's/\\u00DA/\xDA/g' \
+-e 's/\\u00DC/\xDC/g' \
+-e 's/\\u00DD/\xDD/g' \
+-e 's/\\u00DF/\xDF/g' \
+-e 's/\\u00E0/\xE0/g' \
+-e 's/\\u00E1/\xE1/g' \
+-e 's/\\u00E2/\xE2/g' \
+-e 's/\\u00E3/\xE3/g' \
+-e 's/\\u00E4/\xE4/g' \
+-e 's/\\u00E5/\xE5/g' \
+-e 's/\\u00E6/\xE6/g' \
+-e 's/\\u00E7/\xE7/g' \
+-e 's/\\u00E8/\xE8/g' \
+-e 's/\\u00E9/\xE9/g' \
+-e 's/\\u00EA/\xEA/g' \
+-e 's/\\u00EB/\xEB/g' \
+-e 's/\\u00EC/\xEC/g' \
+-e 's/\\u00ED/\xED/g' \
+-e 's/\\u00EE/\xEE/g' \
+-e 's/\\u00EF/\xEF/g' \
+-e 's/\\u00F1/\xF1/g' \
+-e 's/\\u00F2/\xF2/g' \
+-e 's/\\u00F3/\xF3/g' \
+-e 's/\\u00F4/\xF4/g' \
+-e 's/\\u00F5/\xF5/g' \
+-e 's/\\u00F6/\xF6/g' \
+-e 's/\\u00F9/\xF9/g' \
+-e 's/\\u00FA/\xFA/g' \
+-e 's/\\u00FC/\xFC/g' \
+-e 's/\\u0020/\x20/g' \
+-e 's/\\u003f/\x3f/g' \
+-e 's/\\u006f/\x6f/g' \
+-e 's/\\u0075/\x75/g' \
+-e 's/\\u00a0/\xa0/g' \
+-e 's/\\u00a3/\xa3/g' \
+-e 's/\\u00b0/\xb0/g' \
+-e 's/\\u00ba/\xba/g' \
+-e 's/\\u00bf/\xbf/g' \
+-e 's/\\u00c1/\xc1/g' \
+-e 's/\\u00c4/\xc4/g' \
+-e 's/\\u00c5/\xc5/g' \
+-e 's/\\u00c8/\xc8/g' \
+-e 's/\\u00c9/\xc9/g' \
+-e 's/\\u00ca/\xca/g' \
+-e 's/\\u00cd/\xcd/g' \
+-e 's/\\u00d6/\xd6/g' \
+-e 's/\\u00dc/\xdc/g' \
+-e 's/\\u00dd/\xdd/g' \
+-e 's/\\u00df/\xdf/g' \
+-e 's/\\u00e0/\xe0/g' \
+-e 's/\\u00e1/\xe1/g' \
+-e 's/\\u00e2/\xe2/g' \
+-e 's/\\u00e3/\xe3/g' \
+-e 's/\\u00e4/\xe4/g' \
+-e 's/\\u00e5/\xe5/g' \
+-e 's/\\u00e7/\xe7/g' \
+-e 's/\\u00e8/\xe8/g' \
+-e 's/\\u00e9/\xe9/g' \
+-e 's/\\u00ea/\xea/g' \
+-e 's/\\u00eb/\xeb/g' \
+-e 's/\\u00ec/\xec/g' \
+-e 's/\\u00ed/\xed/g' \
+-e 's/\\u00ee/\xee/g' \
+-e 's/\\u00ef/\xef/g' \
+-e 's/\\u00f0/\xf0/g' \
+-e 's/\\u00f1/\xf1/g' \
+-e 's/\\u00f2/\xf2/g' \
+-e 's/\\u00f3/\xf3/g' \
+-e 's/\\u00f4/\xf4/g' \
+-e 's/\\u00f5/\xf5/g' \
+-e 's/\\u00f6/\xf6/g' \
+-e 's/\\u00f7/\xf7/g' \
+-e 's/\\u00f8/\xf8/g' \
+-e 's/\\u00f9/\xf9/g' \
+-e 's/\\u00fa/\xfa/g' \
+-e 's/\\u00fc/\xfc/g' \
+-e 's/\\u00ff/\xff/g' \
+		   | $(SED) -e '/^#/d' -e '/^$$$$/d' \
+		            -e :a -e '/\\$$$$/N; s/\\\n//; ta' \
+			    -e 's/^[ \t]*//;s/[ \t]*$$$$//' \
+			    -e 's/\\=/=/' | LANG=C sort > $$@
+	$(CHMOD) -f ug+w $$@
+
+    # And do not forget this target
+    $1_ALL_COPY_CLEAN_TARGETS += $$($1_BIN)$$($2_TARGET)
+endef
+
+define add_java_package
+    # param 1 = BUILD_MYPACKAGE
+    # param 2 = the package target file (_the.package)
+    # param 3 = src roots, all of them, separated with space
+    # param 4 = bin root
+    # param 5 = include these dependecies
+    # param 6 = not used
+    # param 7 = if non-empty, then use -Xdeps and -Xpubapi
+    # param 8 = xremote configuration, or empty.
+    # param 9 = javac command
+    # param 10 = javac flags
+    # param 11 = exclude these files!
+    # param 12 = only include these files!
+    # param 13 = javah command
+    # param 14 = override src roots to be passed into -sourcepath, ugly ugly ugly, do not use this!
+    #            it is only here to workaround ugly things in the source code in the jdk that ought
+    #            to be fixed instead!
+    ifdef $2_USED_BY
+        $$(error Attempting to add the package $2 from $3 which is already added with sources from $$($2_USED_BY))
+    endif
+    $2_USED_BY:=$3
+    # Remove the _the.package file to get the target bin dir for the classes in this package.
+    $2_PACKAGE_BDIR:=$(dir $2)
+    # The source roots separated with a path separator (: or ; depending on os)
+    # (The patsubst is necessary to trim away unnecessary spaces.)
+    ifneq ($(14),)
+      $2_SRCROOTSC:=$(subst $(SPACE),$(PATH_SEP),$(strip $(patsubst %,%,$(14))))
+    else
+      $2_SRCROOTSC:=$(subst $(SPACE),$(PATH_SEP),$(strip $(patsubst %,%,$3)))
+    endif
+    # Suffix the package path to the src roots, to get a list of all possible source locations
+    # for this package.
+    $2_PACKAGE_SDIRS:=$$(foreach i,$3,$$(subst $4,$$i,$$($2_PACKAGE_BDIR)))
+    # Use wildcard in all potential source locations to find the actual sources.
+    $2_PACKAGE_SRCS:=$$(filter-out $(11),$$(wildcard $$(addsuffix *.java,$$($2_PACKAGE_SDIRS))))
+    ifneq ($(12),)
+      # Filter on include file filter if set.
+      $2_PACKAGE_SRCS:=$$(filter $(12),$$($2_PACKAGE_SRCS))
+    endif
+    # Generate a proper package name from the file name.
+    $2_PACKAGE:=$(patsubst .%.,%,$(subst /,.,$(subst $4,,$(dir $2))))
+    # Use a javac server for this package?
+    $2_REMOTE:=$8
+
+    # Include previously generated information about what classes are output by this package
+    # and what sources were used for the compile.
+    -include $$($2_PACKAGE_BDIR)_the.package.d
+
+    # Include the notify, file, that exists if the package has been compiled during a previous make round.
+    # I.e. we are now dealing with a compile triggered by a pubapi change.
+    -include $$($2_PACKAGE_BDIR)_the.package.notify
+
+    # If the notify file existed, then $$($2_NOTIFIED) will be equal to true.
+    # Use this information to block dependency tracking for this package. 
+    # This is necessary to cut the circular dependency chains that are so common in Java sources.
+
+    ifneq ($$($2_NOTIFIED),true)
+        # No need to block, since this package has not yet been recompiled.
+        # Thus include previously generated dependency information. (if it exists)
+        -include $$($2_PACKAGE_BDIR)_the.package.dddd
+#    else
+#        $$(info WAS NOTIFIED $2)
+    endif
+
+    # Should we create proper dependencies between packages?
+    ifneq ($7,)
+      # The flag: -XDpubapi:file=foo,package=mypack,notify writes a file foo that contains a 
+      # database of the public api of the classes supplied on the command line and are
+      # inside the package mypack. If foo already exists, javac will only write to foo,
+      # if there is a change in the pubapi. I.e. we can use the timestamp of this file
+      # for triggering dependencies. "notify" means create a "file" suffixed with notify
+      # if the pubapi really changed. 
+      $2_PUBAPI=-XDpubapi=file=$$($2_PACKAGE_BDIR)_the.package.api,notify,package=$$($2_PACKAGE)
+      # The flag: -XDnativeapi:file=foo,package=mypack,notify works similar to pubabi, but
+      # instead tracks native methods. This file can be used to trigger dependencies for
+      # native compilations.
+      $2_NATIVEAPI=-XDnativeapi=file=$$($2_PACKAGE_BDIR)_the.package.native,notify,package=$$($2_PACKAGE)
+      # The flag -XDdeps:file=foo.deps,groupon=package writes a foo.deps file containing packages dependencies:
+      #     java.net : java.io java.lang
+      # I.e. the classes in .net depend on the public apis of java.io and java.lang
+      # The dependencies can be grouped on classes instead (groupon=class)
+      #     java.net.Bar : java.io.Socket java.lang.String
+      $2_DEPS:=-XDdeps=file=$$($2_PACKAGE_BDIR)_the.package.deps,groupon=package
+      # The next command rewrites the deps output from javac into a proper makefile dependency.
+      # The dependencies are always to an .api file generated by the pubapi option above.
+      # This is necessary since java package dependencies are almost always circular.
+      $2_APPEND_DEPS:=($(CAT) $$($2_PACKAGE_BDIR)_the.package.deps | $(TR) '.' '/' | $(AWK) '{ print "$4/" $$$$3 }' | sort > $$($2_PACKAGE_BDIR)_the.package.ddd && $(GREP) -f $$($2_PACKAGE_BDIR)_the.package.ddd $5 | $(AWK) '{ print "$(dir $2)_the.package : " $$$$1 "_the.package.api" }' > $$($2_PACKAGE_BDIR)_the.package.dddd ; true)
+    else
+        # If not using dependencies, use $2 as fallback to trigger regeneration of javah header files.
+        # This will generate a surplus of header files, but this does not hurt compilation.
+        $2_NATIVEAPICHANGE_TRIGGER:=$2
+        $2_FETCH_NATIVEAPICHANGE_CLASSES:=$(CAT) $$($2_PACKAGE_BDIR)_the.package.now|$(GREP) -v '\$$$$'|$(SED) -e 's|$4/||g'|$(SED) 's|.class||g'| $(TR) '/' '.'
+    endif 
+
+    # The _the.package file is dependent on the java files inside the package.
+    # Fill the _the.package file with a list of the java files and compile them
+    # to class files.
+    $2 : $$($2_PACKAGE_SRCS)
+	$(MKDIR) -p $$($2_PACKAGE_BDIR)
+	$(RM) $2.tmp
+	$$(call ListPathsSafely,$2_PACKAGE_SRCS,\n, >> $2.tmp)
+	$(ECHO) $$($2_PACKAGE_BDIR)*.class | $(GREP) -v \*.class | $(TR) ' ' '\n' > $$($2_PACKAGE_BDIR)_the.package.prev
+	$(RM) $$($2_PACKAGE_BDIR)*.class $$($2_PACKAGE_BDIR)*.notify $$($2_PACKAGE_BDIR)*.deleted
+	$(ECHO) Compiling `$(WC) $2.tmp | $(TR) -s ' ' | $(CUT) -f 2 -d ' '` files in package $(patsubst $4/%/,%,$(dir $2.tmp))
+	$9 $$($2_REMOTE) $$($2_DEPS) $$($2_PUBAPI) $$($2_NATIVEAPI) $(10) -implicit:none -sourcepath "$$($2_SRCROOTSC)" -d $4 @$2.tmp
+	$(ECHO) $$($2_PACKAGE_BDIR)*.class | $(GREP) -v \*.class | $(TR) ' ' '\n' > $$($2_PACKAGE_BDIR)_the.package.now
+	($(GREP) -xvf $$($2_PACKAGE_BDIR)_the.package.now $$($2_PACKAGE_BDIR)_the.package.prev > $$($2_PACKAGE_BDIR)_the.package.deleted;true)
+	$(ECHO) $1_CLASSES += `$(CAT) $$($2_PACKAGE_BDIR)_the.package.now` | \
+		$(SED) 's/\$$$$/\$$$$\$$$$/g' > $$($2_PACKAGE_BDIR)_the.package.d
+	$(ECHO) $1_JAVAS += $$($2_PACKAGE_SRCS) >> $$($2_PACKAGE_BDIR)_the.package.d
+	$(ECHO) $2_NOTIFIED:=true > $$($2_PACKAGE_BDIR)_the.package.notify
+	$$($2_APPEND_DEPS)
+	$$($2_COPY_FILES)
+	$(MV) -f $2.tmp $2
+endef
+
+define remove_string
+    $2 := $$(subst $1,,$$($2))
+endef
+
+define replace_space_with_pathsep
+    $1:=$(subst $(SPACE),$(PATH_SEP),$(strip $(patsubst %,%,$2)))
+endef
+
+define SetupJavaCompilation
+    # param 1 is for example BUILD_MYPACKAGE
+    # param 2,3,4,5,6,7,8 are named args.
+    #    SETUP:=must point to a previously setup java compiler, for example: SETUP:=BOOTJAVAC
+    #    JVM:=path to ..bin/java
+    #    ADD_JAVAC_FLAGS:=javac flags to append to the default ones.
+    #    SRC:=one or more directories to search for sources
+    #    BIN:=store classes here
+    #    INCLUDES:=myapp.foo means will only compile java files in myapp.foo or any of its sub-packages.
+    #    EXCLUDES:=myapp.foo means will do not compile java files in myapp.foo or any of its sub-packages.
+    #    COPY:=.prp means copy all prp files to the corresponding package in BIN.
+    #    CLEAN:=.properties means copy and clean all properties file to the corresponding package in BIN.
+    #    COPY_FILES:=myapp/foo/setting.txt means copy this file over to the package myapp/foo
+    #    SRCZIP:=Create a src.zip based on the found sources and copied files.
+    #    INCLUDE_FILES:="com/sun/SolarisFoobar.java" means only compile this file!
+    #    EXCLUDE_FILES:="com/sun/SolarisFoobar.java" means do not compile this particular file!
+    #                   "SolarisFoobar.java" means do not compile SolarisFoobar, wherever it is found.
+    #    JAVAC_SOURCE_PATH_UGLY_OVERRIDE:=Don't use this. This forces an explicit -sourcepath to javac.
+    #                                     Its only here until we cleanup some nasty source code pasta in the jdk.
+    #    HEADERS:=path to directory where all generated c-headers are written.
+    $(if $2,$1_$(strip $2))
+    $(if $3,$1_$(strip $3))
+    $(if $4,$1_$(strip $4))
+    $(if $5,$1_$(strip $5))
+    $(if $6,$1_$(strip $6))
+    $(if $7,$1_$(strip $7))
+    $(if $8,$1_$(strip $8))
+    $(if $9,$1_$(strip $9))
+    $(if $(10),$1_$(strip $(10)))
+    $(if $(11),$1_$(strip $(11)))
+    $(if $(12),$1_$(strip $(12)))
+    $(if $(13),$1_$(strip $(13)))
+    $(if $(14),$1_$(strip $(14)))
+
+# Extract the info from the java compiler setup.
+$1_MODE := $$($$($1_SETUP)_MODE)
+ifneq (SINGLE_THREADED_BATCH,$$($1_MODE))
+    ifneq (MULTI_CORE_CONCURRENT,$$($1_MODE))
+        $$(error The Java compilation $1 refers to a non-existant java compiler setup $$($1_SETUP))
+    endif
+endif
+$1_USE_DEPS := $$($$($1_SETUP)_USE_DEPS)
+$1_REMOTE := $$($$($1_SETUP)_REMOTE)
+$1_JVM   := $$($$($1_SETUP)_JVM)
+$1_JAVAC := $$($$($1_SETUP)_JAVAC)
+$1_JAVAH := $$($$($1_SETUP)_JAVAH)
+$1_FLAGS := $$($$($1_SETUP)_FLAGS) $(JAVAC_FLAGS) $$($1_ADD_JAVAC_FLAGS)
+ifeq (,$$($1_HEADERS))
+    $1_HEADERS := $$($1_BIN)
+endif
+
+# Handle addons and overrides.
+$1_SRC:=$$(call ADD_SRCS,$$($1_SRC))
+# Make sure the dirs exist.
+$$(shell $(MKDIR) -p $$($1_SRC) $$($1_BIN))
+# Find all files in the source trees.
+$1_ALL_SRCS := $$(filter-out $(OVR_SRCS),$$(foreach i,$$($1_SRC),$$(shell $(FIND) $$i -type f)))
+# Extract the java files.
+ifneq ($$($1_EXCLUDE_FILES),)
+  $1_EXCLUDE_FILES_PATTERN:=$$(addprefix %,$$($1_EXCLUDE_FILES))
+endif
+$1_SRCS     := $$(filter-out $$($1_EXCLUDE_FILES_PATTERN),$$(filter %.java,$$($1_ALL_SRCS)))
+ifneq ($$($1_INCLUDE_FILES),)
+  $1_INCLUDE_FILES:=$$(foreach i,$$($1_SRC),$$(addprefix $$i/,$$($1_INCLUDE_FILES)))
+  $1_SRCS := $$(filter $$($1_INCLUDE_FILES), $$($1_SRCS))
+endif
+$1_PKGS     := $$(sort $$(dir $$($1_SRCS)))
+# Remove the source root from each found path.
+$$(foreach i,$$($1_SRC),$$(eval $$(call remove_string,$$i,$1_PKGS)))
+$1_PKGS     := $$(sort $$($1_PKGS))
+# There can be only a single bin dir root, no need to foreach over the roots.
+$1_BINS     := $$(shell $(FIND) $$($1_BIN) -name "*.class")
+
+# Now we have a list of all java files to compile: $$($1_SRCS)
+# and we have a list of all existing class files: $$($1_BINS)
+
+# Prepend the source/bin path to the filter expressions.
+ifneq ($$($1_INCLUDES),)
+  $1_SRC_INCLUDES := $$(foreach i,$$($1_SRC),$$(addprefix $$i/,$$(addsuffix /%,$$($1_INCLUDES))))
+  $1_PKG_INCLUDES := $$(addprefix /,$$(addsuffix /%,$$($1_INCLUDES)))
+  $1_BIN_INCLUDES := $$(addprefix $$($1_BIN)/,$$(addsuffix /%,$$($1_INCLUDES)))
+  $1_SRCS     := $$(filter $$($1_SRC_INCLUDES),$$($1_SRCS))
+  $1_PKGS     := $$(filter $$($1_PKG_INCLUDES),$$($1_PKGS))
+  $1_BINS     := $$(filter $$($1_BIN_INCLUDES),$$($1_BINS))
+endif
+ifneq ($$($1_EXCLUDES),)
+  $1_SRC_EXCLUDES := $$(foreach i,$$($1_SRC),$$(addprefix $$i/,$$(addsuffix /%,$$($1_EXCLUDES))))
+  $1_PKG_EXCLUDES := $$(addprefix /,$$(addsuffix /%,$$($1_EXCLUDES)))
+  $1_BIN_EXCLUDES := $$(addprefix $$($1_BIN)/,$$(addsuffix /%,$$($1_EXCLUDES)))
+  $1_SRCS     := $$(filter-out $$($1_SRC_EXCLUDES),$$($1_SRCS))
+  $1_PKGS     := $$(filter-out $$($1_PKG_EXCLUDES),$$($1_PKGS))
+  $1_BINS     := $$(filter-out $$($1_BIN_EXCLUDES),$$($1_BINS))
+endif
+
+# Find all files to be copied from source to bin.
+ifneq (,$$($1_COPY))
+    # Rewrite list of patterns into a find statement.
+    $1_COPY_PATTERN:=$(FALSE_FIND_PATTERN) $$(patsubst %,$(SPACE)-o$(SPACE)-name$(SPACE)$(DQUOTE)*%$(DQUOTE),$$($1_COPY))
+    # Search for all files to be copied.
+    $1_ALL_COPIES := $$(foreach i,$$($1_SRC), $$(shell $(FIND) $$i \( $$($1_COPY_PATTERN) \) -a -type f))
+    # Copy these explicitly
+    $1_ALL_COPIES += $$($1_COPY_FILES)
+    # Copy must also respect filters.
+    ifneq (,$$($1_INCLUDES))
+        $1_ALL_COPIES := $$(filter $$($1_SRC_INCLUDES),$$($1_ALL_COPIES))
+    endif
+    ifneq (,$$($1_EXCLUDES))
+        $1_ALL_COPIES := $$(filter-out $$($1_SRC_EXCLUDES),$$($1_ALL_COPIES))
+    endif
+    ifneq (,$$($1_EXCLUDE_FILES))
+        $1_ALL_COPIES := $$(filter-out $$($1_EXCLUDE_FILES_PATTERN),$$($1_ALL_COPIES))
+    endif
+    # All files below META-INF are always copied.
+    $1_ALL_COPIES += $$(foreach i,$$($1_SRC), $$(shell $(FIND) $$i/META-INF -type f 2> /dev/null))
+    ifneq (,$$($1_ALL_COPIES))
+        # Yep, there are files to be copied!
+        $1_ALL_COPY_TARGETS:=
+        $$(foreach i,$$($1_ALL_COPIES),$$(eval $$(call add_file_to_copy,$1,$$i)))
+        # Now we can depend on $$($1_ALL_COPY_TARGETS) to copy all files!
+    endif
+endif
+
+# Find all property files to be copied and cleaned from source to bin.
+ifneq (,$$($1_CLEAN))
+    # Rewrite list of patterns into a find statement.
+    $1_CLEAN_PATTERN:=$(FALSE_FIND_PATTERN) $$(patsubst %,$(SPACE)-o$(SPACE)-name$(SPACE)$(DQUOTE)*%$(DQUOTE),$$($1_CLEAN))
+    # Search for all files to be copied.
+    $1_ALL_CLEANS := $$(foreach i,$$($1_SRC), $$(shell $(FIND) $$i \( $$($1_CLEAN_PATTERN) \) -a -type f))
+    # Copy and clean must also respect filters.
+    ifneq (,$$($1_INCLUDES))
+        $1_ALL_CLEANS := $$(filter $$($1_SRC_INCLUDES),$$($1_ALL_CLEANS))
+    endif
+    ifneq (,$$($1_EXCLUDES))
+        $1_ALL_CLEANS := $$(filter-out $$($1_SRC_EXCLUDES),$$($1_ALL_CLEANS))
+    endif
+    ifneq (,$$($1_EXCLUDE_FILES))
+        $1_ALL_CLEANS := $$(filter-out $$($1_EXCLUDE_FILES_PATTERN),$$($1_ALL_CLEANS))
+    endif
+    ifneq (,$$($1_ALL_CLEANS))
+        # Yep, there are files to be copied and cleaned!
+        $1_ALL_COPY_CLEAN_TARGETS:=
+        $$(foreach i,$$($1_ALL_CLEANS),$$(eval $$(call add_file_to_copy_and_clean,$1,$$i)))
+        # Now we can depend on $$($1_ALL_COPY_CLEAN_TARGETS) to copy all files!
+    endif
+endif
+
+# Find all the directories that contain java sources, each directory
+# corresponds to a package because we expect the source
+# code to be organized in this standardized way!
+$1_SDIRS := $$(sort $$(dir $$($1_SRCS)))
+# Now prefix each package with the bin root.
+$1_BDIRS := $$(foreach i,$$($1_PKGS),$$(addprefix $$($1_BIN),$$i))
+# Now create a list of the packages that are about to compile. This list is
+# later used to filter out dependencies that point outside of this set.
+$$(shell $(RM) $$($1_BIN)/_the.list_of_packages)
+$$(eval $$(call ListPathsSafelyNow,$1_BDIRS,\n, >> $$($1_BIN)/_the.list_of_packages))
+
+ifeq ($$($1_MODE),SINGLE_THREADED_BATCH)
+    # Ok, we will feed all the found java files into a single javac invocation.
+    # There can be no dependency checking, nor incremental builds. It is
+    # the best we can do with the old javac. If the javac supports a javac server
+    # then we can use the javac server.
+
+    # We can depend on this target file to trigger a regeneration of all the sources
+    $1 := $$($1_ALL_COPY_TARGETS) $$($1_ALL_COPY_CLEAN_TARGETS) $$($1_BIN)/_the.batch
+
+    # Prep the source paths.
+    ifneq ($$($1_JAVAC_SOURCE_PATH_UGLY_OVERRIDE),)
+      $$(eval $$(call replace_space_with_pathsep,$1_SRCROOTSC,$$($1_JAVAC_SOURCE_PATH_UGLY_OVERRIDE)))
+    else
+      $$(eval $$(call replace_space_with_pathsep,$1_SRCROOTSC,$$($1_SRC)))
+    endif
+
+    # Create a sed expression to remove the source roots and to replace / with .
+    # and remove .java at the end. 
+    $1_REWRITE_INTO_CLASSES:=$$(foreach i,$$($1_SRC),-e 's|$$i/||g') -e 's|/|.|g' -e 's|.java$$$$||g'
+
+    # Here is the batch rules that depends on all the sources.
+    $$($1_BIN)/_the.batch: $$($1_SRCS)
+	$(MKDIR) -p $$(@D)
+	$(RM) $$($1_BIN)/_the.batch $$($1_BIN)/_the.batch.tmp
+	$$(call ListPathsSafely,$1_SRCS,\n, >> $$($1_BIN)/_the.batch.tmp)
+	$(ECHO) Compiling `$(WC) $$($1_BIN)/_the.batch.tmp | $(TR) -s ' ' | $(CUT) -f 2 -d ' '` files in batch $1
+	($$($1_JVM) $$($1_JAVAC) $$($1_FLAGS) -implicit:none -sourcepath "$$($1_SRCROOTSC)" -d $$($1_BIN) @$$($1_BIN)/_the.batch.tmp && \
+	 $$(if $$($1_JAVAH),\
+             $(CAT) $$($1_BIN)/_the.batch.tmp | $(XARGS) $(GREP) -E "[[:space:]]native[[:space:]]|@GenerateNativeHeader" |\
+             $(GREP) -v '*' | $(GREP) -v '//' | $(CUT) -f 1 -d ':' | $(SORT) -u |\
+             $(SED) $$($1_REWRITE_INTO_CLASSES) > $$($1_BIN)/_the.batch.natives && \
+         if test -s $$($1_BIN)/_the.batch.natives; then \
+             $$($1_JVM) $$($1_JAVAH) "-Xbootclasspath/p:$$($1_BIN)" -d $$($1_HEADERS) @$$($1_BIN)/_the.batch.natives ; \
+         fi &&) \
+         $(MV) $$($1_BIN)/_the.batch.tmp $$($1_BIN)/_the.batch)
+else
+    # Ok, we have a modern javac server running!
+    # Since a single Java file can generate zero to an infinity number of .class files
+    # the exact number and names of the .class files will only be known after the compile.
+    # Thus after the compile, a list of the generated classes will be stored in _the.package.d
+    # which is included by the makefile during the next compile. These .d files will
+    # add the generated class names to the BUILD_MYPACKAGE_CLASSES variable and used java file names
+    # to the BUILD_MYPACKAGE_JAVAS variable.
+    $1_CLASSES := 
+    $1_JAVAS   := 
+    # Create a file in each package that represents the package dependency.
+    # This file (_the.package) will also contain a list of the source files
+    # to be compiled for this package.
+    $1 := $$(sort $$(patsubst %,%_the.package,$$($1_BDIRS)))
+    # Now call add_java_package for each package to create the dependencies.
+    $$(foreach p,$$($1),$$(eval $$(call add_java_package,$1,$$p,$$($1_SRC),$$($1_BIN),$$($1_BIN)/_the.list_of_packages,NOTUSED,$$($1_USE_DEPS),$$($1_REMOTE),$$($1_JVM) $$($1_JAVAC),$$($1_FLAGS),$$($1_EXCLUDE_FILES_PATTERN) $(OVR_SRCS),$$($1_INCLUDE_FILES),$$($1_JVM) $$($1_JAVAH),$$($1_JAVAC_SOURCE_PATH_UGLY_OVERRIDE))))
+    # All dependencies are setup, now we only need to depend on $1 (aka $(BUILD_MYPACKAGE))
+    # and they will automatically be built!
+
+    # Now add on any files to copy targets
+    $1 := $$($1_ALL_COPY_TARGETS) $$($1_ALL_COPY_CLEAN_TARGETS) $$($1)
+    # Remove the set of found classes from the set of all previously known classes
+    # and the remainder is the set of missing classes.
+    $1_MISSING_CLASSES:=$$(filter-out $$($1_BINS),$$($1_CLASSES))
+    $1_PKGS_MISSING_CLASSES:=$$(sort $$(dir $$($1_MISSING_CLASSES)))
+    # Remove the set of found java files from the set of all previously known java files
+    # the remainder is Java files that have gone missing.
+    $1_MISSING_JAVAS:=$$(filter-out $$($1_SRCS),$$($1_JAVAS))
+    $1_PKGS_MISSING_JAVAS:=$$(sort $$(dir $$($1_MISSING_JAVAS)))
+    # Remove each source root from the found paths.
+    $$(foreach i,$$($1_SRC),$$(eval $$(call remove_string,$$i,$1_PKGS_MISSING_JAVAS)))
+    # Finally remove duplicates and prefix with the binary path instead.
+    $1_PKGS_MISSING_JAVAS:= $$(addprefix $$($1_BIN),$$(sort $$($1_PKGS_MISSING_JAVAS)))
+
+    # Remove the set of all theoretical classes from the set of found classes.
+    # the remainder is the set of superfluous classes.
+    $1_SUPERFLUOUS_CLASSES:=$$(sort $$(filter-out $$($1_CLASSES),$$($1_BINS)))
+    $1_PKGS_SUPERFLUOUS_CLASSES:=$$(sort $$(dir $$($1_SUPERFLUOUS_CLASSES)))
+
+    # Now delete the _the.package files inside the problematic dirs.
+    # This will force a rebuild of these packages!
+    $1_FOO:=$$(sort $$($1_PKGS_MISSING_CLASSES) \
+                                                 $$($1_PKGS_SUPERFLUOUS_CLASSES) \
+                                                 $$($1_PKGS_MISSING_JAVAS))
+#    ifneq (,$$($1_FOO))
+#            $$(info MESSED UP PACKAGES $$($1_FOO))
+#    endif
+
+    $$(shell $(RM) $$(addsuffix _the.package,$$(sort $$($1_PKGS_MISSING_CLASSES) \
+                                                 $$($1_PKGS_SUPERFLUOUS_CLASSES) \
+                                                 $$($1_PKGS_MISSING_JAVAS))))
+
+    # Normal makefile dependencies based on timestamps will detect the normal use case
+    # when Java files are simply added or modified.
+endif
+
+ifneq (,$$($1_JAR))
+
+    ifeq (,$$($1_SUFFIXES))
+        $1_SUFFIXES:=.class $$($1_CLEAN) $$($1_COPY)
+    endif
+
+    # A jar file was specified. Set it up.
+    $$(eval $$(call SetupArchive,ARCHIVE_$1,$$($1),\
+	SRCS:=$$($1_BIN),\
+	SUFFIXES:=$$($1_SUFFIXES),\
+	EXCLUDE:=$$($1_EXCLUDES),\
+	INCLUDES:=$$($1_INCLUDES),\
+	EXTRA_FILES:=$$($1_ALL_COPY_TARGETS) $$($1_ALL_COPY_CLEAN_TARGETS),\
+	JAR:=$$($1_JAR),\
+	JARMAIN:=$$($1_JARMAIN),\
+	MANIFEST:=$$($1_MANIFEST),\
+	EXTRA_MANIFEST_ATTR:=$$($1_EXTRA_MANIFEST_ATTR),\
+	HEADERS:=$$($1_HEADERS),\
+	SETUP:=$$($1_SETUP)))
+endif
+
+ifneq (,$$($1_SRCZIP))
+    # A srczip file was specified. Set it up.
+    $$(eval $$(call SetupZipArchive,ARCHIVE_$1,\
+		SRC:=$$($1_SRC),\
+		ZIP:=$$($1_SRCZIP),\
+		INCLUDES:=$$($1_INCLUDES),\
+		EXCLUDES:=$$($1_EXCLUDES),\
+		EXCLUDE_FILES:=$$($1_EXCLUDE_FILES)))
+endif
+
+endef
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/makefiles/MakeBase.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,327 @@
+#
+# 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.
+#
+
+################################################################
+#
+# Check that GNU make and cygwin are recent enough.
+# Setup common utility functions.
+#
+################################################################
+
+ifndef _MAKEBASE_GMK
+_MAKEBASE_GMK := 1
+
+ifeq (,$(findstring 3.81,$(MAKE_VERSION)))
+    ifeq (,$(findstring 3.82,$(MAKE_VERSION)))
+        $(error This version of GNU Make is too low ($(MAKE_VERSION)). Please upgrade to 3.81 or newer.)
+    endif
+endif
+
+ifneq (,$(CYGPATH))
+    # Cygwin styff, if needed but most is going to be
+    # done in configure!
+    ifeq (yes,$(CHECK_FOR_VCINSTALLDIR))
+        ifeq (,$(VCINSTALLDIR)) 
+            $(info Could not find compiler paths!)
+            $(info You probably configured the build from within a)
+            $(info VS command prompt, but you are not using such a)
+            $(info prompt right now.)
+            $(info If you instead run configure from a plain cygwin shell, it)
+            $(info will attempt to setup VS for you! Please try that.)
+            $(error Giving up for now.)
+        endif
+    endif
+endif
+
+# The build times report is turned off by setting REPORT_BUILD_TIMES to nothing.
+# This is necessary for the target clean which will erase the
+# directories where the buildtimes are stored.
+REPORT_BUILD_TIMES=1
+# Store the build times in this directory.
+BUILDTIMESDIR=$(OUTPUT_ROOT)/tmp/buildtimes
+
+# Record starting time for build of a sub repository.
+define RecordStartTime
+$(MKDIR) -p $(BUILDTIMESDIR)
+$(DATE) '+%Y %m %d %H %M %S' | $(NAWK) '{ print $$1,$$2,$$3,$$4,$$5,$$6,($$4*3600+$$5*60+$$6) }' > $(BUILDTIMESDIR)/build_time_start_$1
+$(DATE) '+%Y-%m-%d %H:%M:%S' > $(BUILDTIMESDIR)/build_time_start_$1_human_readable
+endef
+
+# Indicate that we started to build a sub repository and record starting time. 
+define MakeStart
+$(call RecordStartTime,$1)
+$(BUILD_LOG_WRAPPER) $(PRINTF) "\n\n%s\n%s\n##### %-60.60s #####\n%s\n\n" \
+"########################################################################" \
+"########################################################################" \
+"Entering $1 for target(s) $2" \
+"########################################################################"
+endef
+
+# Record ending time and calculate the difference and store it in a
+# easy to read format. Handles builds that cross midnight. Expects
+# that a build will never take 24 hours or more. 
+define RecordEndTime
+$(DATE) '+%Y %m %d %H %M %S' | $(NAWK) '{ print $$1,$$2,$$3,$$4,$$5,$$6,($$4*3600+$$5*60+$$6) }' > $(BUILDTIMESDIR)/build_time_end_$1
+$(DATE) '+%Y-%m-%d %H:%M:%S' > $(BUILDTIMESDIR)/build_time_end_$1_human_readable
+$(ECHO) `$(CAT) $(BUILDTIMESDIR)/build_time_start_$1` `$(CAT) $(BUILDTIMESDIR)/build_time_end_$1` $1 | \
+  $(NAWK) '{ F=$$7; T=$$14; if (F > T) { T+=3600*24 }; D=T-F; H=int(D/3600); \
+             M=int((D-H*3600)/60); S=D-H*3600-M*60; printf("%02d:%02d:%02d %s\n",H,M,S,$$15); }' \
+  > $(BUILDTIMESDIR)/build_time_diff_$1
+endef
+
+# Indicate that we are done.
+# Record ending time and print out the total time it took to build.
+define MakeFinish 
+$(if $(REPORT_BUILD_TIMES),$(call RecordEndTime,$1),) 
+$(BUILD_LOG_WRAPPER) $(PRINTF) "%s\n##### %-60.60s #####\n%s\n##### %-60.60s #####\n%s\n\n" \
+"########################################################################" \
+"Leaving $1 for target(s) $2" \
+"########################################################################" \
+$(if $(REPORT_BUILD_TIMES),"Build time `$(CAT) $(BUILDTIMESDIR)/build_time_diff_$1` for target(s) $2","") \
+"########################################################################"
+endef
+
+# Find all build_time_* files and print their contents in a list sorted
+# on the name of the sub repository.
+define ReportBuildTimes
+$(BUILD_LOG_WRAPPER) $(PRINTF) -- "-- Build times ----------\nTarget %s\nStart %s\nEnd   %s\n%s\n%s\n-------------------------\n" \
+"$1" \
+"`$(CAT) $(BUILDTIMESDIR)/build_time_start_TOTAL_human_readable`" \
+"`$(CAT) $(BUILDTIMESDIR)/build_time_end_TOTAL_human_readable`" \
+"`$(LS) $(BUILDTIMESDIR)/build_time_diff_* | $(GREP) -v _TOTAL | $(XARGS) $(CAT) | $(SORT) -k 2`" \
+"`$(CAT) $(BUILDTIMESDIR)/build_time_diff_TOTAL`"
+endef
+
+define ResetTimers
+$$(shell $(MKDIR) -p $(BUILDTIMESDIR) &&  $(RM) $(BUILDTIMESDIR)/build_time_*)
+endef
+
+define StartTimer
+	$(call RecordStartTime,TOTAL)
+endef
+
+define StopTimer
+	$(if $(REPORT_BUILD_TIMES),$(call RecordEndTime,TOTAL) && $(call ReportBuildTimes,$1),)
+endef
+
+# If the variable that you want to send to stdout for piping into a file or otherwise,
+# is potentially long, for example the a list of file paths, eg a list of all package directories.
+# Then you need to use ListPathsSafely, which optimistically splits the output into several shell
+# calls as well as use compression on recurrent file paths segments, to get around the potential
+# command line length problem that exists in cygwin and other shells.
+compress_pre:=$(strip $(shell cat $(SRC_ROOT)/common/makefiles/compress.pre))
+compress_post:=$(strip $(shell cat $(SRC_ROOT)/common/makefiles/compress.post))
+compress_paths=$(compress_pre)\
+$(subst $(SRC_ROOT),X97,\
+$(subst $(OUTPUT_ROOT),X98,\
+$(subst X,X00,\
+$(subst $(SPACE),\n,$(strip $1)))))\
+$(compress_post)
+
+decompress_paths=sed -f $(SRC_ROOT)/common/makefiles/uncompress.sed -e 's|X99|\\n|g' \
+		     -e 's|X98|$(OUTPUT_ROOT)|g' -e 's|X97|$(SRC_ROOT)|g' \
+		     -e 's|X00|X|g' | tr '\n' '$2'
+
+define ListPathsSafely_If
+    $(if $(word $3,$($1)),$(eval $1_LPS$3:=$(call compress_paths,$(wordlist $3,$4,$($1)))))
+endef
+
+define ListPathsSafely_Printf
+    $(if $(strip $($1_LPS$4)),printf -- "$(strip $($1_LPS$4))\n" | $(decompress_paths) $3)
+endef
+
+# Receipt example:
+#    rm -f thepaths
+#    $(call ListPathsSafely,THEPATHS,\n, >> thepaths)
+#    The \n argument means translate spaces into \n
+#    if instead , , (a space) is supplied, then spaces remain spaces.
+define ListPathsSafely
+    $(if $(word 10001,$($1)),$(error Cannot list safely more than 10000 paths. $1 has $(words $($1)) paths!))
+    $(call ListPathsSafely_If,$1,$2,1,250)
+    $(call ListPathsSafely_If,$1,$2,251,500)
+    $(call ListPathsSafely_If,$1,$2,501,750)
+    $(call ListPathsSafely_If,$1,$2,751,1000)
+
+    $(call ListPathsSafely_If,$1,$2,1001,1250)
+    $(call ListPathsSafely_If,$1,$2,1251,1500)
+    $(call ListPathsSafely_If,$1,$2,1501,1750)
+    $(call ListPathsSafely_If,$1,$2,1751,2000)
+
+    $(call ListPathsSafely_If,$1,$2,2001,2250)
+    $(call ListPathsSafely_If,$1,$2,2251,2500)
+    $(call ListPathsSafely_If,$1,$2,2501,2750)
+    $(call ListPathsSafely_If,$1,$2,2751,3000)
+
+    $(call ListPathsSafely_If,$1,$2,3001,3250)
+    $(call ListPathsSafely_If,$1,$2,3251,3500)
+    $(call ListPathsSafely_If,$1,$2,3501,3750)
+    $(call ListPathsSafely_If,$1,$2,3751,4000)
+
+    $(call ListPathsSafely_If,$1,$2,4001,4250)
+    $(call ListPathsSafely_If,$1,$2,4251,4500)
+    $(call ListPathsSafely_If,$1,$2,4501,4750)
+    $(call ListPathsSafely_If,$1,$2,4751,5000)
+
+    $(call ListPathsSafely_If,$1,$2,5001,5250)
+    $(call ListPathsSafely_If,$1,$2,5251,5500)
+    $(call ListPathsSafely_If,$1,$2,5501,5750)
+    $(call ListPathsSafely_If,$1,$2,5751,6000)
+
+    $(call ListPathsSafely_If,$1,$2,6001,6250)
+    $(call ListPathsSafely_If,$1,$2,6251,6500)
+    $(call ListPathsSafely_If,$1,$2,6501,6750)
+    $(call ListPathsSafely_If,$1,$2,6751,7000)
+
+    $(call ListPathsSafely_If,$1,$2,7001,7250)
+    $(call ListPathsSafely_If,$1,$2,7251,7500)
+    $(call ListPathsSafely_If,$1,$2,7501,7750)
+    $(call ListPathsSafely_If,$1,$2,7751,8000)
+
+    $(call ListPathsSafely_If,$1,$2,8001,8250)
+    $(call ListPathsSafely_If,$1,$2,8251,8500)
+    $(call ListPathsSafely_If,$1,$2,8501,8750)
+    $(call ListPathsSafely_If,$1,$2,8751,9000)
+
+    $(call ListPathsSafely_If,$1,$2,9001,9250)
+    $(call ListPathsSafely_If,$1,$2,9251,9500)
+    $(call ListPathsSafely_If,$1,$2,9501,9750)
+    $(call ListPathsSafely_If,$1,$2,9751,10000)
+
+    $(call ListPathsSafely_Printf,$1,$2,$3,1)
+    $(call ListPathsSafely_Printf,$1,$2,$3,251)
+    $(call ListPathsSafely_Printf,$1,$2,$3,501)
+    $(call ListPathsSafely_Printf,$1,$2,$3,751)
+
+    $(call ListPathsSafely_Printf,$1,$2,$3,1001)
+    $(call ListPathsSafely_Printf,$1,$2,$3,1251)
+    $(call ListPathsSafely_Printf,$1,$2,$3,1501)
+    $(call ListPathsSafely_Printf,$1,$2,$3,1751)
+
+    $(call ListPathsSafely_Printf,$1,$2,$3,2001)
+    $(call ListPathsSafely_Printf,$1,$2,$3,2251)
+    $(call ListPathsSafely_Printf,$1,$2,$3,2501)
+    $(call ListPathsSafely_Printf,$1,$2,$3,2751)
+
+    $(call ListPathsSafely_Printf,$1,$2,$3,3001)
+    $(call ListPathsSafely_Printf,$1,$2,$3,3251)
+    $(call ListPathsSafely_Printf,$1,$2,$3,3501)
+    $(call ListPathsSafely_Printf,$1,$2,$3,3751)
+
+    $(call ListPathsSafely_Printf,$1,$2,$3,4001)
+    $(call ListPathsSafely_Printf,$1,$2,$3,4251)
+    $(call ListPathsSafely_Printf,$1,$2,$3,4501)
+    $(call ListPathsSafely_Printf,$1,$2,$3,4751)
+
+    $(call ListPathsSafely_Printf,$1,$2,$3,5001)
+    $(call ListPathsSafely_Printf,$1,$2,$3,5251)
+    $(call ListPathsSafely_Printf,$1,$2,$3,5501)
+    $(call ListPathsSafely_Printf,$1,$2,$3,5751)
+
+    $(call ListPathsSafely_Printf,$1,$2,$3,6001)
+    $(call ListPathsSafely_Printf,$1,$2,$3,6251)
+    $(call ListPathsSafely_Printf,$1,$2,$3,6501)
+    $(call ListPathsSafely_Printf,$1,$2,$3,6751)
+
+    $(call ListPathsSafely_Printf,$1,$2,$3,7001)
+    $(call ListPathsSafely_Printf,$1,$2,$3,7251)
+    $(call ListPathsSafely_Printf,$1,$2,$3,7501)
+    $(call ListPathsSafely_Printf,$1,$2,$3,7751)
+
+    $(call ListPathsSafely_Printf,$1,$2,$3,8001)
+    $(call ListPathsSafely_Printf,$1,$2,$3,8251)
+    $(call ListPathsSafely_Printf,$1,$2,$3,8501)
+    $(call ListPathsSafely_Printf,$1,$2,$3,8751)
+
+    $(call ListPathsSafely_Printf,$1,$2,$3,9001)
+    $(call ListPathsSafely_Printf,$1,$2,$3,9251)
+    $(call ListPathsSafely_Printf,$1,$2,$3,9501)
+    $(call ListPathsSafely_Printf,$1,$2,$3,9751)
+endef
+
+define ListPathsSafelyNow_IfPrintf
+    ifneq (,$$(word $4,$$($1)))
+        $$(eval $1_LPS$4:=$$(call compress_paths,$$(wordlist $4,$5,$$($1))))
+        $$(shell printf -- "$$(strip $$($1_LPS$4))\n" | $(decompress_paths) $3)
+    endif
+endef
+
+# And an non-receipt version:
+define ListPathsSafelyNow
+    ifneq (,$$(word 10001,$$($1)))
+        $$(error Cannot list safely more than 10000 paths. $1 has $$(words $$($1)) paths!)
+    endif
+    $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,1,250)
+    $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,251,500)
+    $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,501,750)
+    $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,751,1000)
+
+    $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,1001,1250)
+    $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,1251,1500)
+    $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,1501,1750)
+    $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,1751,2000)
+
+    $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,2001,2250)
+    $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,2251,2500)
+    $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,2501,2750)
+    $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,2751,3000)
+
+    $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,3001,3250)
+    $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,3251,3500)
+    $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,3501,3750)
+    $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,3751,4000)
+
+    $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,4001,4250)
+    $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,4251,4500)
+    $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,4501,4750)
+    $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,4751,5000)
+
+    $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,5001,5250)
+    $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,5251,5500)
+    $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,5501,5750)
+    $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,5751,6000)
+
+    $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,6001,6250)
+    $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,6251,6500)
+    $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,6501,6750)
+    $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,6751,7000)
+
+    $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,7001,7250)
+    $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,7251,7500)
+    $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,7501,7750)
+    $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,7751,8000)
+
+    $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,8001,8250)
+    $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,8251,8500)
+    $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,8501,8750)
+    $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,8751,9000)
+
+    $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,9001,9250)
+    $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,9251,9500)
+    $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,9501,9750)
+    $(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,9751,10000)
+
+endef
+
+endif # _MAKEBASE_GMK
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/makefiles/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,176 @@
+#
+# 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.
+#
+
+# Default to sane output from make.
+# Override with empty string to get insane amount of output.
+# Override with -d to get even more insane amount of debugging output.
+# Override with "-d -p" to get it all.
+VERBOSE=-s
+
+# Find all environment or command line variables that begin with ALT.
+list_alt_overrides_with_origins = $(filter ALT_%=environment ALT_%=command,$(foreach var,$(.VARIABLES),$(var)=$(firstword $(origin $(var)))))
+list_alt_overrides=$(subst =command,,$(subst =environment,,$(list_alt_overrides_with_origins)))
+ifneq ($(list_alt_overrides),)
+    $(info You have set the following ALT_ variables:)
+    $(foreach var,$(list_alt_overrides), $(info $(var)=$($(var))))
+    $(error Using ALT_ variables is deprecated! Please clean your environment!)
+endif
+
+# The spec.gmk file contains the variables extracted by the configure script.
+# It is usually set with SPEC=....spec.gmk on the make command line.
+# However if you simply type make from the openjdk source root, it will go looking
+# for a spec file, if only one is found, use it. If more than one is found,
+# complain. If none is found, request the user to run configure!
+SPEC ?= $(wildcard $(CURDIR)/../../build/*/spec.gmk)
+
+ifeq ($(words $(SPEC)),0)
+    $(error You must run configure!)
+endif
+
+ifneq ($(words $(SPEC)),1)
+    ifeq ($(MAKECMDGOALS),all-conf)
+        SPECS:=$(shell echo $(SPEC) | sed -e 's|$(CURDIR)/build/||g' -e 's|/spec.gmk|\\n|g' -e 's| ||g')
+        allconf:
+		@echo Building configurations:
+		@printf "$(SPECS)"
+		@$(foreach s,$(SPEC),($(MAKE) SPEC=$s $(VERBOSE) VERBOSE=$(VERBOSE) images) &&) true
+		@echo Done building configurations:
+		@printf "$(SPECS)"
+        .PHONY: all-conf
+    else
+        $(error Since you have more than one output dir configured under build, \
+            you have to either run make from the output dir of your choice \
+            or specify run "make SPEC=build/.../spec.gmk" or run all the build configurations \
+	    using "make all-conf")
+    endif
+else
+
+# Now load the spec
+-include $(SPEC)
+
+# Load the vital tools for all the makefiles. 
+-include $(SRC_ROOT)/common/makefiles/MakeBase.gmk
+
+# Remove any build.log from a previous run
+ifneq (,$(BUILD_LOG))
+    $(shell $(RM) $(BUILD_LOG))
+endif
+
+# Remove any javac server logs and port files. This
+# prevents a new make run to reuse the previous servers.
+ifneq (,$(JAVAC_SERVERS))
+    $(shell mkdir -p $(JAVAC_SERVERS) && rm -rf $(JAVAC_SERVERS)/*)
+endif
+# Reset the build timers.
+$(eval $(call ResetTimers))
+# Clean out any notifications from the previous build.
+$(shell find $(OUTPUT_ROOT) -name "_the.*.notify" $(FIND_DELETE))
+
+all: jdk
+	@$(call StopTimer)
+	@$(if $(JAVAC_SERVERS),rm -rf $(JAVAC_SERVERS)/*.port)
+
+langtools: start-timer
+	@$(call MakeStart,langtools,all)
+	@($(CD) $(LANGTOOLS_TOPDIR)/makefiles && $(BUILD_LOG_WRAPPER) $(MAKE) -j$(NUM_CORES) $(LANGTOOLS_MAKE_ARGS))
+	@$(call MakeFinish,langtools,all)
+
+corba: langtools
+	@$(call MakeStart,corba,all)
+	@($(CD) $(CORBA_TOPDIR)/makefiles && $(BUILD_LOG_WRAPPER) $(MAKE) -j$(NUM_CORES) $(CORBA_MAKE_ARGS))
+	@$(call MakeFinish,corba,all)
+
+jaxp: langtools
+	@$(call MakeStart,jaxp,all)
+	@($(CD) $(JAXP_TOPDIR)/makefiles && $(BUILD_LOG_WRAPPER) $(MAKE) -j$(NUM_CORES) $(CORBA_MAKE_ARGS))
+	@$(call MakeFinish,jaxp,all)
+
+jaxws: langtools jaxp
+	@$(call MakeStart,jaxws,all)
+	@($(CD) $(JAXWS_TOPDIR)/makefiles && $(BUILD_LOG_WRAPPER) $(MAKE) -j$(NUM_CORES) $(CORBA_MAKE_ARGS))
+	@$(call MakeFinish,jaxws,all)
+
+hotspot: langtools
+	@$(call MakeStart,hotspot,all)
+	@($(CD) $(HOTSPOT_TOPDIR)/make && $(BUILD_LOG_WRAPPER) $(MAKE) -j1 $(HOTSPOT_MAKE_ARGS))
+	@$(call MakeFinish,hotspot,all)
+
+jdk: langtools corba jaxp jaxws hotspot
+	@$(call MakeStart,jdk,all)
+	@($(CD) $(JDK_TOPDIR)/makefiles && $(BUILD_LOG_WRAPPER) $(MAKE) -j$(NUM_CORES) $(JDK_MAKE_ARGS))
+	@$(call MakeFinish,jdk,all)
+
+images install packages: start-timer jdk langtools corba jaxp jaxws hotspot
+	@$(call MakeStart,jdk-images,$@)
+	@($(CD) $(JDK_TOPDIR)/makefiles && $(BUILD_LOG_WRAPPER) $(MAKE) -j$(NUM_CORES) $(JDK_MAKE_ARGS) $@)
+	@$(call MakeFinish,jdk-images,$@)
+	@$(call StopTimer)
+	@$(if $(JAVAC_SERVERS),rm -rf $(JAVAC_SERVERS)/*.port)
+
+start-timer:
+	@$(call StartTimer)
+
+.PHONY: jdk hotspot jaxws jaxp corba langtools install images packages start-timer
+
+# Remove everything, except the output from configure.
+clean:
+	@(cd $(OUTPUT_ROOT) && $(RM) -r `$(LS) $(OUTPUT_ROOT) | grep -v spec.gmk | grep -v Makefile | grep -v config.status | grep -v config.log | grep -v config.h | grep -v configure-arguments | grep -v "localdevenv.*" | grep -v uncygdrive.exe`)
+	@$(ECHO) Cleaned everything except the build configuration.
+.PHONY: clean
+
+# Remove everything, you have to rerun configure.
+dist-clean:
+	@$(RM) -r $(OUTPUT_ROOT)
+	@$(ECHO) Cleaned everything, you will have to re-run configure.
+.PHONY: dist-clean
+
+clean-jdk:
+	@(cd $(OUTPUT_ROOT) && $(RM) -r `$(LS) $(OUTPUT_ROOT) | grep -v spec.gmk | grep -v Makefile | grep -v config.status | grep -v config.log |  grep -v config.h | grep -v configure-arguments | \
+                               grep -v langtools | grep -v corba | grep -v jaxp | grep -v jaxws | grep -v hotspot`)
+	@$(ECHO) "Cleaned jdk build artifacts (but not langtools,corba,jaxp,jaxws,hotspot nor the build configuration)"
+.PHONY: clean
+
+help:
+	$(info     )
+	$(info Typical make commands:)
+	$(info     make)
+	$(info     make VERBOSE=        # print all commands)
+	$(info     make VERBOSE="-d -p" # debug make as well)
+	$(info     make all-conf        # build images for all configurations)
+	$(info     make clean           # remove build artifacts)
+	$(info     make dist-clean      # you have to rerun configure)
+#	$(info     make test            # run tests)
+	$(info     make images          # create the jdk and jre images)
+	$(info     make install         # install the jdk image)
+#	$(info     make modules         # EXPERIMENTAL: Migrate JDK into a modularized form!)
+	$(info     make packages        # create zips and other packages)
+
+#	$(info     make eclipse_workspace  # Create an Eclipse workspace)
+#	$(info     make netbeans_workspace # Create a NetBeans workspace)
+#	$(info     make vs_workspace       # Create a Visual Studio workspace)
+
+.PHONY: help
+
+endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/makefiles/NativeCompilation.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,277 @@
+#
+# 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.
+#
+
+# When you read this source. Remember that $(sort ...) has the side effect
+# of removing duplicates. It is actually this side effect that is
+# desired whenever sort is used below!
+
+ifeq  (,$(_MAKEBASE_GMK))
+    $(error You must include MakeBase.gmk prior to including JavaCompilation.gmk)
+endif
+
+ifeq ($(COMPILER_TYPE),CC)
+    COMPILING_MSG=echo Compiling $1
+    LINKING_MSG=echo Linking $1
+    LINKING_EXE_MSG=echo Linking executable $1
+    ARCHIVING_MSG=echo Archiving $1
+else
+    COMPILING_MSG=
+    LINKING_MSG=
+    LINKING_EXE_MSG=
+    ARCHIVING_MSG=
+endif
+
+define add_native_source
+    # param 1 = BUILD_MYPACKAGE
+    # parma 2 = the source file name (..../alfa.c or .../beta.cpp)
+    # param 3 = the bin dir that stores all .o (.obj) and .d files.
+    # param 4 = the c flags to the compiler
+    # param 5 = the c compiler
+    # param 6 = the c++ flags to the compiler
+    # param 7 = the c++ compiler
+
+    ifneq (,$$(filter %.c,$2))
+        # Compile as a C file
+        $1_$2_FLAGS=$4
+        $1_$2_COMP=$5
+    else
+        # Compile as a C++ file
+        $1_$2_FLAGS=$6
+        $1_$2_COMP=$7
+    endif
+    # Generate the .o (.obj) file name and place it in the bin dir.
+    $1_$2_OBJ:=$3/$$(patsubst %.cpp,%$(OBJ_SUFFIX),$$(patsubst %.c,%$(OBJ_SUFFIX),$$(notdir $2)))
+    # Only continue if this object file hasn't been processed already. This lets the first found
+    # source file override any other with the same name.
+    ifeq (,$$(findstring $$($1_$2_OBJ),$$($1_OBJS_SO_FAR)))
+        $1_OBJS_SO_FAR+=$$($1_$2_OBJ)
+        # And this is the dependency file for this obj file.
+        $1_$2_DEP:=$$(patsubst %$(OBJ_SUFFIX),%.d,$$($1_$2_OBJ))
+        # Include previously generated dependency information. (if it exists)
+        -include $$($1_$2_DEP)
+
+        ifeq ($(COMPILER_TYPE),CL)
+            $1_$2_DEBUG_OUT_FLAGS:=-Fd$$(patsubst %$(OBJ_SUFFIX),%.pdb,$$($1_$2_OBJ)) \
+				   -Fm$$(patsubst %$(OBJ_SUFFIX),%.map,$$($1_$2_OBJ))
+        endif
+
+        $$($1_$2_OBJ) : $2
+        ifeq ($(COMPILER_TYPE),CC)
+		$$(call COMPILING_MSG,$$(notdir $2))
+		$$($1_$2_COMP) $$($1_$2_FLAGS) -MMD -MF $$($1_$2_DEP) -c $(CC_OUT_OPTION)$$($1_$2_OBJ) $2
+        endif
+        ifeq ($(COMPILER_TYPE),CL)
+		$$(call COMPILING_MSG,$$(notdir $2))
+		$$($1_$2_COMP) $$($1_$2_FLAGS) $$($1_$2_DEBUG_OUT_FLAGS) -c $(CC_OUT_OPTION)$$($1_$2_OBJ) $2
+        endif
+    endif
+endef
+
+define SetupNativeCompilation
+    # param 1 is for example BUILD_MYPACKAGE
+    # param 2,3,4,5,6,7,8 are named args.
+    #    SRC one or more directory roots to scan for C/C++ files.
+    #    LANG C or C++
+    #    CFLAGS the compiler flags to be used, used both for C and C++.
+    #    CXXFLAGS the compiler flags to be used for c++, if set overrides CFLAGS.
+    #    LDFLAGS the linker flags to be used, used both for C and C++.
+    #    LDFLAGS_SUFFIX the linker flags to be added last on the commandline
+    #        typically the libraries linked to.
+    #    ARFLAGS the archiver flags to be used
+    #    BIN the directory where we store the object files
+    #    LIB the resulting library file
+    #    EXE the resulting exec file
+    #    INCLUDES only pick source from these directories
+    #    EXCLUDES do not pick source from these directories
+    #    INCLUDE_FILES only compile exactly these files!
+    #    EXCLUDE_FILES with these names
+    #    VERSIONINFO_RESOURCE Input file for RC. Setting this implies that RC will be run
+    #    RC_FLAGS flags for RC.
+    $(if $2,$1_$(strip $2))
+    $(if $3,$1_$(strip $3))
+    $(if $4,$1_$(strip $4))
+    $(if $5,$1_$(strip $5))
+    $(if $6,$1_$(strip $6))
+    $(if $7,$1_$(strip $7))
+    $(if $8,$1_$(strip $8))
+    $(if $9,$1_$(strip $9))
+    $(if $(10),$1_$(strip $(10)))
+    $(if $(11),$1_$(strip $(11)))
+    $(if $(12),$1_$(strip $(12)))
+    $(if $(13),$1_$(strip $(13)))
+    $(if $(14),$1_$(strip $(14)))
+    $(if $(15),$1_$(strip $(15)))
+    $(if $(16),$1_$(strip $(16)))
+    $(if $(17),$1_$(strip $(17)))
+    $(if $(18),$1_$(strip $(18)))
+    $(if $(19),$1_$(strip $(19)))
+    $(if $(20),$1_$(strip $(20)))
+
+    ifeq (,$$($1_LANG))
+        $$(error You have to specify LANG for native compilation $1)
+    endif
+    ifeq (C,$$($1_LANG))
+	$1_LD:=$(LD)
+	$1_LDEXE:=$(LDEXE)
+    else
+       ifeq (C++,$$($1_LANG))
+           $1_LD:=$(LDCXX)
+	   $1_LDEXE:=$(LDEXECXX)
+       else
+           $$(error Unknown native language $$($1_LANG) for $1)
+       endif
+    endif
+
+    # Make sure the dirs exist.
+    $$(shell $(MKDIR) -p $$($1_SRC) $$($1_BIN) $$(dir $$($1_LIB)) $$(dir $$($1_EXE)))
+    # Find all files in the source trees. Sort to remove duplicates.
+    $1_ALL_SRCS := $$(sort $$(foreach i,$$($1_SRC), $$(shell $(FIND) $$i -type f)))
+    # Extract the C/C++ files.
+    $1_EXCLUDE_FILES:=$$(foreach i,$$($1_SRC),$$(addprefix $$i/,$$($1_EXCLUDE_FILES)))
+    $1_INCLUDE_FILES:=$$(foreach i,$$($1_SRC),$$(addprefix $$i/,$$($1_INCLUDE_FILES)))
+    ifneq ($$($1_EXCLUDE_FILES),)
+        $1_EXCLUDE_FILES:=$$(addprefix %,$$($1_EXCLUDE_FILES))
+    endif
+    $1_SRCS     := $$(filter-out $$($1_EXCLUDE_FILES),$$(filter %.c %.cpp,$$($1_ALL_SRCS)))
+    ifneq (,$$(strip $$($1_INCLUDE_FILES)))
+        $1_SRCS := $$(filter $$($1_INCLUDE_FILES),$$($1_SRCS))
+    endif
+    ifeq (,$$($1_SRCS))
+        $$(error No sources found for $1 when looking inside the dirs $$($1_SRC))
+    endif
+    # There can be only a single bin dir root, no need to foreach over the roots.
+    $1_BINS     := $$(wildcard $$($1_BIN)/*$(OBJ_SUFFIX))
+    # Now we have a list of all c/c++ files to compile: $$($1_SRCS)
+    # and we have a list of all existing object files: $$($1_BINS)
+
+    # Prepend the source/bin path to the filter expressions. Then do the filtering.
+    ifneq ($$($1_INCLUDES),)
+        $1_SRC_INCLUDES := $$(foreach i,$$($1_SRC),$$(addprefix $$i/,$$(addsuffix /%,$$($1_INCLUDES))))
+        $1_SRCS         := $$(filter $$($1_SRC_INCLUDES),$$($1_SRCS))
+    endif
+    ifneq ($$($1_EXCLUDES),)
+        $1_SRC_EXCLUDES := $$(foreach i,$$($1_SRC),$$(addprefix $$i/,$$(addsuffix /%,$$($1_EXCLUDES))))
+        $1_SRCS         := $$(filter-out $$($1_SRC_EXCLUDES),$$($1_SRCS))
+    endif
+
+    # Calculate the expected output from compiling the sources (sort to remove duplicates. Also provides
+    # a reproducable order on the input files to the linker).
+    $1_EXPECTED_OBJS:=$$(sort $$(addprefix $$($1_BIN)/,$$(patsubst %.cpp,%$(OBJ_SUFFIX),$$(patsubst %.c,%$(OBJ_SUFFIX),$$(notdir $$($1_SRCS))))))
+    $1 := $$($1_EXPECTED_OBJS)
+    # Are there too many object files on disk? Perhaps because some source file was removed?
+    $1_SUPERFLOUS_OBJS:=$$(sort $$(filter-out $$($1_EXPECTED_OBJS),$$($1_BINS)))
+    # Clean out the superfluous object files.
+    $$(shell $(RM) -f $$($1_SUPERFLUOUS_OBJS))
+
+    # Pickup extra HOST_OS_API and/or PLATFORM dependent variables for CFLAGS.
+    $1_EXTRA_CFLAGS:=$$($1_CFLAGS_$(HOST_OS_API)) $$($1_CFLAGS_$(PLATFORM))
+    ifneq ($(DEBUG_LEVEL),release)
+        # Pickup extra debug dependent variables for CFLAGS
+        $1_EXTRA_CFLAGS+=$$($1_CFLAGS_debug)
+        $1_EXTRA_CFLAGS+=$$($1_CFLAGS_$(HOST_OS_API)_debug)
+        $1_EXTRA_CFLAGS+=$$($1_CFLAGS_$(PLATFORM)_debug)
+    else
+        $1_EXTRA_CFLAGS+=$$($1_CFLAGS_release)
+        $1_EXTRA_CFLAGS+=$$($1_CFLAGS_$(HOST_OS_API)_release)
+        $1_EXTRA_CFLAGS+=$$($1_CFLAGS_$(PLATFORM)_release)
+    endif
+
+    # Pickup extra HOST_OS_API and/or PLATFORM dependent variables for CXXFLAGS.
+    $1_EXTRA_CXXFLAGS:=$$($1_CXXFLAGS_$(HOST_OS_API)) $$($1_CXXFLAGS_$(PLATFORM))
+    ifneq ($(DEBUG_LEVEL),release)
+        # Pickup extra debug dependent variables for CXXFLAGS
+        $1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_debug)
+        $1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_$(HOST_OS_API)_debug)
+        $1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_$(PLATFORM)_debug)
+    else
+        $1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_release)
+        $1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_$(HOST_OS_API)_release)
+        $1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_$(PLATFORM)_release)
+    endif
+
+    ifeq ($$($1_CXXFLAGS),)
+        $1_CXXFLAGS:=$$($1_CFLAGS)
+    endif
+    ifeq ($$(strip $$($1_EXTRA_CXXFLAGS)),)
+        $1_EXTRA_CXXFLAGS:=$$($1_EXTRA_CFLAGS)
+    endif
+
+    # Now create a list of the packages that are about to compile. Used when sending source
+    # in a batch to the compiler.
+    $$(shell $(RM) $$($1_BIN)/_the.list_of_sources)
+    $$(eval $$(call ListPathsSafelyNow,$1_SRCS,\n, >> $$($1_BIN)/_the.list_of_sources))
+
+    # Now call add_native_source for each source file we are going to compile.
+    $$(foreach p,$$($1_SRCS),\
+        $$(eval $$(call add_native_source,$1,$$p,$$($1_BIN),\
+                        $$($1_CFLAGS) $$($1_EXTRA_CFLAGS),$(CC),\
+			$$($1_CXXFLAGS) $$($1_EXTRA_CXXFLAGS),$(CXX))))
+
+    # On windows we need to create a resource file
+    ifeq ($(HOST_OS_API), winapi)
+        ifneq (,$$($1_VERSIONINFO_RESOURCE))
+            ifneq (,$$($1_LIB))
+                ifeq (dynamic,$$(patsubst %$(SHARED_LIBRARY_SUFFIX),dynamic,$$($1_LIB)))
+                    $1_RES:=$$(patsubst %$(SHARED_LIBRARY_SUFFIX),%.res,$$($1_LIB))
+                else
+                    $1_RES:=$$(patsubst %$(STATIC_LIBRARY_SUFFIX),%.res,$$($1_LIB))
+                endif
+            endif
+            ifneq (,$$($1_EXE))
+                $1_RES:=$$(patsubst %$(EXE_SUFFIX),%.res,$$($1_EXE))
+            endif
+            $$($1_RES): $$($1_VERSIONINFO_RESOURCE)
+		$(RC) $$($1_RC_FLAGS) $(CC_OUT_OPTION)$$@ $$($1_VERSIONINFO_RESOURCE)
+        endif
+    endif
+
+    # Pickup extra HOST_OS_API dependent variables (posix or winapi) and 
+    # (linux,solaris,windows,bsd) for LDFLAGS and LDFLAGS_SUFFIX
+    $1_EXTRA_LDFLAGS:=$$($1_LDFLAGS_$(HOST_OS_API)) $$($1_LDFLAGS_$(PLATFORM))
+    $1_EXTRA_LDFLAGS_SUFFIX:=$$($1_LDFLAGS_SUFFIX_$(HOST_OS_API)) $$($1_LDFLAGS_SUFFIX_$(PLATFORM))
+    ifneq (,$$($1_LIB))
+        ifeq (dynamic,$$(patsubst %$(SHARED_LIBRARY_SUFFIX),dynamic,$$($1_LIB)))
+            # Generating a dynamic library.
+            $1_EXTRA_LDFLAGS+=$$(call SET_SHARED_LIBRARY_NAME,$$(notdir $$($1_LIB)))
+            $$($1_LIB) : $$($1_EXPECTED_OBJS) $$($1_RES)
+	    	$$(call LINKING_MSG,$$(notdir $$($1_LIB)))
+		$$($1_LD) $$($1_LDFLAGS) $$($1_EXTRA_LDFLAGS) $(LD_OUT_OPTION)$$($1_LIB) \
+			$$($1_EXPECTED_OBJS) $$($1_RES) $$($1_LDFLAGS_SUFFIX) $$($1_EXTRA_LDFLAGS_SUFFIX)
+        else
+            # Generating a static library, ie object file archive.
+            $$($1_LIB) : $$($1_EXPECTED_OBJS) $$($1_RES)
+	    	$$(call ARCHIVING_MSG,$$(notdir $$($1_LIB)))
+		$(AR) $$($1_AR_FLAGS) $(AR_OUT_OPTION)$$($1_LIB) $$($1_EXPECTED_OBJS) \
+			$$($1_RES) $$($1_LDFLAGS_SUFFIX) $$($1_EXTRA_LDFLAGS_SUFFIX)
+       endif
+    endif
+    ifneq (,$$($1_EXE))
+        # A executable binary has been specified, setup the target for it.
+        $$($1_EXE) : $$($1_EXPECTED_OBJS) $$($1_RES)
+	    	$$(call LINKING_EXE_MSG,$$(notdir $$($1_EXE)))
+		$$($1_LDEXE) $$($1_LDFLAGS) $$($1_EXTRA_LDFLAGS) $(EXE_OUT_OPTION)$$($1_EXE) \
+			$$($1_EXPECTED_OBJS) $$($1_RES) $$($1_LDFLAGS_SUFFIX) $$($1_EXTRA_LDFLAGS_SUFFIX)
+    endif
+endef
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/makefiles/RMICompile.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,103 @@
+#
+# 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.
+#
+
+define SetupRMICompilation
+    # param 1 is a name for a variable to depend on.
+    # param 2 and up are named args.
+    #   CLASSES:=List of classes to generate stubs for
+    #   CLASSES_DIR:=Directory where to look for classes
+    #   STUB_CLASSES_DIR:=Directory in where to put stub classes
+    #   RUN_V11:=Set to run rmic with -v1.1
+    #   RUN_V12:=Set to run rmic with -v1.2
+    #   RUN_IIOP:=Set to run rmic with -iiop
+    #   RUN_IIOP_STDPKG:=Set to run rmic with -iiop -standardPackage
+    #   KEEP_GENERATED:=Set to keep generated sources around
+    $(if $2,$1_$(strip $2))
+    $(if $3,$1_$(strip $3))
+    $(if $4,$1_$(strip $4))
+    $(if $5,$1_$(strip $5))
+    $(if $6,$1_$(strip $6))
+    $(if $7,$1_$(strip $7))
+    $(if $8,$1_$(strip $8))
+    $(if $9,$1_$(strip $9))
+
+
+    $1_DEP_FILE := $$($1_STUB_CLASSES_DIR)/$1_rmic
+
+    $1_CLASSES_SLASH := $$(subst .,/,$$($1_CLASSES))
+    $1_CLASS_FILES := $$(addprefix $$($1_CLASSES_DIR)/,$$(addsuffix .class,$$($1_CLASSES_SLASH)))
+    $1_STUB_FILES := $$(addprefix $$($1_STUB_CLASSES_DIR)/,$$(addsuffix _Stub.class,$$($1_CLASSES_SLASH)))
+    $1_TARGETS := $$($1_STUB_FILES)
+    $1_ARGS :=
+    ifneq (,$$($1_RUN_V11))
+        $1_SKEL_FILES := $$(addprefix $$($1_STUB_CLASSES_DIR)/,$$(addsuffix _Skel.class,$$($1_CLASSES_SLASH)))
+        $1_TARGETS += $$($1_SKEL_FILES)
+        $1_ARGS += -v1.1
+    endif
+    ifneq (,$$($1_RUN_V12))
+        $1_ARGS += -v1.2
+    endif
+
+    $1_TIE_BASE_FILES := $$(foreach f,$$($1_CLASSES_SLASH),$$(dir $$f)_$$(notdir $$f))
+    $1_TIE_FILES := $$(addprefix $$($1_STUB_CLASSES_DIR)/org/omg/stub/,$$(addsuffix _Tie.class,$$($1_TIE_BASE_FILES)))
+    $1_TIE_STDPKG_FILES := $$(addprefix $$($1_STUB_CLASSES_DIR)/,$$(addsuffix _Tie.class,$$($1_TIE_BASE_FILES)))
+
+    ifneq (,$$($1_RUN_IIOP))
+        $1_TARGETS += $$($1_TIE_FILES)
+        $1_ARGS += -iiop
+    endif
+    ifneq (,$$($1_RUN_IIOP_STDPKG))
+        $1_TARGETS += $$($1_TIE_STDPKG_FILES)
+        $1_ARGS2 := -iiop -standardPackage
+    endif
+
+    ifneq (,$$($1_KEEP_GENERATED))
+        $1_ARGS += -keepgenerated
+        $1_TARGETS += $$(subst .class,.java,$$($1_TARGETS))
+    endif
+
+    $1_DOLLAR_SAFE_CLASSES := $$(subst $$$$,\$$$$,$$($1_CLASSES))
+
+    $$($1_TARGETS): $$($1_DEP_FILE) $$($1_CLASS_FILES)
+
+    $$($1_DEP_FILE): $$($1_CLASS_FILES)
+	$(MKDIR) -p $$($1_STUB_CLASSES_DIR)
+	if [ "x$$($1_ARGS)" != "x" ]; then \
+	    $(ECHO) Running rmic $$($1_ARGS) for $$($1_DOLLAR_SAFE_CLASSES) &&\
+	    $(RMIC) $$($1_ARGS) -classpath "$$($1_CLASSES_DIR)" \
+			-d $$($1_STUB_CLASSES_DIR) $$($1_DOLLAR_SAFE_CLASSES);\
+	fi;
+	if [ "x$$($1_ARGS2)" != "x" ]; then \
+	    $(ECHO) Running rmic $$($1_ARGS2) for $$($1_DOLLAR_SAFE_CLASSES) &&\
+	    $(RMIC) $$($1_ARGS2) -classpath "$$($1_CLASSES_DIR)" \
+			-d $$($1_STUB_CLASSES_DIR) $$($1_DOLLAR_SAFE_CLASSES);\
+	fi;
+
+
+    $1 := $$($1_TARGETS)
+
+    # By marking as secondary, this "touch" file doesn't need to be touched and will never exist.
+    .SECONDARY: $$($1_DEP_FILE)
+endef
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/makefiles/compress.post	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,1 @@
+))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/makefiles/compress.pre	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,1 @@
+$(subst com,X01,$(subst org,X02,$(subst sun,X03,$(subst java,X04,$(subst javax,X05,$(subst sun/io,X06,$(subst com/sun,X07,$(subst java/io,X08,$(subst org/omg,X09,$(subst org/w3c,X10,$(subst org/xml,X11,$(subst sun/awt,X12,$(subst sun/net,X13,$(subst sun/nio,X14,$(subst sun/rmi,X15,$(subst java/awt,X16,$(subst java/net,X17,$(subst java/nio,X18,$(subst java/rmi,X19,$(subst META-INF,X20,$(subst sun/font,X21,$(subst sun/misc,X22,$(subst sun/text,X23,$(subst sun/util,X24,$(subst java/lang,X25,$(subst java/math,X26,$(subst java/text,X27,$(subst java/util,X28,$(subst javax/jws,X29,$(subst javax/net,X30,$(subst javax/rmi,X31,$(subst javax/xml,X32,$(subst sun/corba,X33,$(subst sun/print,X34,$(subst sun/swing,X35,$(subst java/beans,X36,$(subst javax/lang,X37,$(subst sun/applet,X38,$(subst sun/java2d,X39,$(subst java/applet,X40,$(subst javax/print,X41,$(subst javax/sound,X42,$(subst javax/swing,X43,$(subst javax/tools,X44,$(subst jdk/classes,X45,$(subst org/relaxng,X46,$(subst sun/reflect,X47,$(subst javax/crypto,X48,$(subst javax/naming,X49,$(subst jaxp/classes,X50,$(subst sun/security,X51,$(subst corba/classes,X52,$(subst java/security,X53,$(subst javax/imageio,X54,$(subst jdk/btclasses,X55,$(subst javax/activity,X56,$(subst javax/security,X57,$(subst jdk/newclasses,X58,$(subst sun/instrument,X59,$(subst sun/management,X60,$(subst corba/btclasses,X61,$(subst jdk/democlasses,X62,$(subst javax/activation,X63,$(subst javax/annotation,X64,$(subst javax/management,X65,$(subst javax/transaction,X66,$(subst jaxws/jaf_classes,X67,$(subst langtools/classes,X68,$(subst META-INF/services,X69,$(subst jdk/newdemoclasses,X70,$(subst javax/accessibility,X71,$(subst jaxws/jaxws_classes,X72,
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/makefiles/uncompress.sed	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,72 @@
+s|X01|com|g
+s|X02|org|g
+s|X03|sun|g
+s|X04|java|g
+s|X05|javax|g
+s|X06|sun/io|g
+s|X07|com/sun|g
+s|X08|java/io|g
+s|X09|org/omg|g
+s|X10|org/w3c|g
+s|X11|org/xml|g
+s|X12|sun/awt|g
+s|X13|sun/net|g
+s|X14|sun/nio|g
+s|X15|sun/rmi|g
+s|X16|java/awt|g
+s|X17|java/net|g
+s|X18|java/nio|g
+s|X19|java/rmi|g
+s|X20|META-INF|g
+s|X21|sun/font|g
+s|X22|sun/misc|g
+s|X23|sun/text|g
+s|X24|sun/util|g
+s|X25|java/lang|g
+s|X26|java/math|g
+s|X27|java/text|g
+s|X28|java/util|g
+s|X29|javax/jws|g
+s|X30|javax/net|g
+s|X31|javax/rmi|g
+s|X32|javax/xml|g
+s|X33|sun/corba|g
+s|X34|sun/print|g
+s|X35|sun/swing|g
+s|X36|java/beans|g
+s|X37|javax/lang|g
+s|X38|sun/applet|g
+s|X39|sun/java2d|g
+s|X40|java/applet|g
+s|X41|javax/print|g
+s|X42|javax/sound|g
+s|X43|javax/swing|g
+s|X44|javax/tools|g
+s|X45|jdk/classes|g
+s|X46|org/relaxng|g
+s|X47|sun/reflect|g
+s|X48|javax/crypto|g
+s|X49|javax/naming|g
+s|X50|jaxp/classes|g
+s|X51|sun/security|g
+s|X52|corba/classes|g
+s|X53|java/security|g
+s|X54|javax/imageio|g
+s|X55|jdk/btclasses|g
+s|X56|javax/activity|g
+s|X57|javax/security|g
+s|X58|jdk/newclasses|g
+s|X59|sun/instrument|g
+s|X60|sun/management|g
+s|X61|corba/btclasses|g
+s|X62|jdk/democlasses|g
+s|X63|javax/activation|g
+s|X64|javax/annotation|g
+s|X65|javax/management|g
+s|X66|javax/transaction|g
+s|X67|jaxws/jaf_classes|g
+s|X68|langtools/classes|g
+s|X69|META-INF/services|g
+s|X70|jdk/newdemoclasses|g
+s|X71|javax/accessibility|g
+s|X72|jaxws/jaxws_classes|g
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/src/uncygdrive.c	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,254 @@
+/*
+ * 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 <Windows.h>
+#include <io.h>
+#include <stdio.h>
+#include <string.h>
+#include <malloc.h>
+
+/*
+ * Test if pos points to /cygdrive/_/ where _ can
+ * be any character.
+ */
+int is_cygdrive_here(int pos, char *in, int len)
+{
+  // Length of /cygdrive/c/ is 12
+  if (pos+12 > len) return 0;
+  if (in[pos+11]=='/' &&
+      in[pos+9]=='/' &&
+      in[pos+8]=='e' &&
+      in[pos+7]=='v' &&
+      in[pos+6]=='i' &&
+      in[pos+5]=='r' &&
+      in[pos+4]=='d' &&
+      in[pos+3]=='g' &&
+      in[pos+2]=='y' &&
+      in[pos+1]=='c' &&
+      in[pos+0]=='/') {
+    return 1;
+  }
+  return 0;
+}
+
+/*
+ * Replace /cygdrive/_/ with _:/
+ * Works in place since drive letter is always
+ * shorter than /cygdrive/
+ */
+char *replace_cygdrive(char *in)
+{
+  int len = strlen(in);
+  char *out = malloc(len+1);
+  int i,j;
+
+  if (len < 12) {
+    strcpy(out, in);
+    return out;
+  }
+  for (i = 0, j = 0; i<len;) {
+    if (is_cygdrive_here(i, in, len)) {
+      out[j++] = in[i+10];
+      out[j++] = ':';
+      i+=11;
+    } else {
+      out[j] = in[i];
+      i++;
+      j++;
+    }
+  }
+  out[j] = 0;
+  return out;
+}
+
+void append(char **b, size_t *bl, size_t *u, char *add, size_t addlen)
+{
+  while ( (addlen+*u+1) > *bl) {
+    *bl *= 2;
+    *b = realloc(*b, *bl);
+  }
+  memcpy(*b+*u, add, addlen);
+  *u += addlen;
+}
+
+/*
+ * Creates a new string from in where the first occurance of sub is
+ * replaced by rep.
+ */
+char *replace_substring(char *in, char *sub, char *rep)
+{
+  int in_len = strlen(in);
+  int sub_len = strlen(sub);
+  int rep_len = strlen(rep);
+  char *out = malloc(in_len - sub_len + rep_len + 1);
+  char *p;
+
+  if (!(p = strstr(in, sub))) {
+    // If sub isn't a substring of in, just return in.
+    return in;
+  }
+
+  // Copy characters from beginning of in to start of sub.
+  strncpy(out, in, p - in);
+  out[p - in] = '\0';
+
+  sprintf(out + (p - in), "%s%s", rep, p + sub_len);
+
+  return out;
+}
+
+char *files_to_delete[1024];
+int num_files_to_delete = 0;
+
+char *fix_at_file(char *in)
+{
+  char *tmpdir;
+  char name[2048];
+  char *atname;
+  char *buffer;
+  size_t buflen=65536;
+  size_t used=0;
+  size_t len;
+  int rc;
+  FILE *atout;
+  FILE *atin;
+  char block[2048];
+  size_t blocklen;
+  char *fixed;
+
+  atin = fopen(in+1, "r");
+  if (atin == NULL) {
+    fprintf(stderr, "Could not read at file %s\n", in+1);
+    exit(-1);
+  }
+
+  tmpdir = getenv("TMP");
+  if (tmpdir == NULL) {
+    tmpdir = "c:/cygwin/tmp";
+  }
+  _snprintf(name, sizeof(name), "%s\\atfile_XXXXXX", tmpdir);
+
+  rc = _mktemp_s(name, strlen(name)+1);
+  if (rc) {
+    fprintf(stderr, "Could not create temporary file name for at file!\n");
+    exit(-1);
+  }
+
+  atout = fopen(name, "w");
+  if (atout == NULL) {
+    fprintf(stderr, "Could open temporary file for writing! %s\n", name);
+    exit(-1);
+  }
+
+  buffer = malloc(buflen);
+  while((blocklen = fread(block,1,sizeof(block),atin)) > 0) {
+    append(&buffer, &buflen, &used, block, blocklen);
+  }
+  buffer[used] = 0;
+  fixed = replace_cygdrive(buffer);
+  fwrite(fixed, strlen(fixed), 1, atout);
+  fclose(atin);
+  fclose(atout);
+  free(fixed);
+  free(buffer);
+  files_to_delete[num_files_to_delete] = malloc(strlen(name)+1);
+  strcpy(files_to_delete[num_files_to_delete], name);
+  num_files_to_delete++;
+  atname = malloc(strlen(name)+2);
+  atname[0] = '@';
+  strcpy(atname+1, name);
+  return atname;
+}
+
+int main(int argc, char **argv)
+{
+    STARTUPINFO si;
+    PROCESS_INFORMATION pi;
+    unsigned short rc;
+
+    char *new_at_file;
+    char *old_at_file;
+    char *line;
+    int i;
+    DWORD exitCode;
+
+    if (argc<2) {
+        fprintf(stderr, "Usage: uncygdrive.exe /cygdrive/c/WINDOWS/notepad.exe /cygdrive/c/x/test.txt");
+        exit(0);
+    }
+
+    line = replace_cygdrive(strstr(GetCommandLine(), argv[1]));
+
+    for (i=1; i<argc; ++i) {
+       if (argv[i][0] == '@') {
+          // Found at-file! Fix it!
+          old_at_file = replace_cygdrive(argv[i]);
+          new_at_file = fix_at_file(old_at_file);
+          line = replace_substring(line, old_at_file, new_at_file);
+       }
+    }
+
+    if (getenv("DEBUG_UNCYGDRIVE") != NULL) {
+      fprintf(stderr, "uncygdrive >%s<\n", line);
+    }
+
+    ZeroMemory(&si,sizeof(si));
+    si.cb=sizeof(si);
+    ZeroMemory(&pi,sizeof(pi));
+
+    rc = CreateProcess(NULL,
+                       line,
+                       0,
+                       0,
+                       TRUE,
+                       0,
+                       0,
+                       0,
+                       &si,
+                       &pi);
+    if(!rc)
+    {
+      //Could not start process;
+      fprintf(stderr, "Could not start process!\n");
+      exit(-1);
+    }
+
+    WaitForSingleObject(pi.hProcess,INFINITE);
+    GetExitCodeProcess(pi.hProcess,&exitCode);
+
+    if (getenv("DEBUG_UNCYGDRIVE") != NULL) {
+      for (i=0; i<num_files_to_delete; ++i) {
+        fprintf(stderr, "Not deleting temporary uncygdrive file %s\n",
+                files_to_delete[i]);
+      }
+    }
+    else {
+      for (i=0; i<num_files_to_delete; ++i) {
+        remove(files_to_delete[i]);
+      }
+    }
+
+    exit(exitCode);
+}
--- a/corba/.hgtags	Wed Jul 05 18:07:12 2017 +0200
+++ b/corba/.hgtags	Wed Jul 05 18:07:57 2017 +0200
@@ -154,3 +154,4 @@
 4605f8418bf562e78be79b25b6b8a5110281acae jdk8-b30
 1954151dfae8f73db24e396380f7c02bdd47c486 jdk8-b31
 5d820cb6b1afd75b619e7fd69e4f2b0eb1d5d6a1 jdk8-b32
+1e2ac1ea3f6c32a62bf88f3fa330120c30db59cb jdk8-b33
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/corba/makefiles/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,257 @@
+#
+# Copyright (c) 2007, 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.
+#
+
+#
+# Makefile for building the corba workspace.
+#
+
+include $(SPEC)
+include MakeBase.gmk
+include JavaCompilation.gmk
+include IdlCompilation.gmk
+
+default: all
+
+JAVAC_JARS ?= "-Xbootclasspath/p:$(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javac.jar" \
+		-jar $(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javac.jar
+# The Corba sources are old and generates a LOT of warnings.
+# Disable these using Xlint, until someone cares to fix them. 
+DISABLE_CORBA_WARNINGS:=-Xlint:all,-deprecation,-unchecked,-serial,-fallthrough,-cast,-rawtypes,-static,-dep-ann
+
+# The "generate old bytecode" javac setup uses the new compiler to compile for the
+# boot jdk to generate tools that need to be run with the boot jdk.
+# Thus we force the target bytecode to the boot jdk bytecode.
+$(eval $(call SetupJavaCompiler,GENERATE_OLDBYTECODE,\
+     JVM:=$(JAVA),\
+     JAVAC:=$(JAVAC_JARS),\
+     FLAGS:=$(BOOT_JDK_SOURCETARGET) -bootclasspath $(BOOT_RTJAR) $(DISABLE_CORBA_WARNINGS),\
+     SERVER_DIR:=$(JAVAC_SERVERS),\
+     SERVER_JVM:=$(SERVER_JAVA),\
+     MODE:=$(JAVAC_USE_MODE),\
+     USE_DEPS:=$(JAVAC_USE_DEPS)))
+
+# The "generate new bytecode" uses the new compiler to generate bytecode
+# for the new jdk that is being built. The code compiled by this setup
+# cannot necessarily be run with the boot jdk.
+$(eval $(call SetupJavaCompiler,GENERATE_NEWBYTECODE,\
+     JVM:=$(JAVA),\
+     JAVAC:=$(JAVAC_JARS),\
+     FLAGS:=-Xprefer:source -XDignore.symbol.file=true \
+		-cp $(BOOT_JDK)/lib/tools.jar \
+		$(DISABLE_CORBA_WARNINGS),\
+     SERVER_DIR:=$(JAVAC_SERVERS),\
+     SERVER_JVM:=$(SERVER_JAVA),\
+     MODE:=$(JAVAC_USE_MODE),\
+     USE_DEPS:=$(JAVAC_USE_DEPS)))
+
+$(eval $(call SetupJavaCompilation,BUILD_STRIPPROP,\
+		SETUP:=GENERATE_OLDBYTECODE,\
+		SRC:=$(CORBA_TOPDIR)/make/tools/src,\
+		BIN:=$(CORBA_OUTPUTDIR)/btclasses/stripprop_classes))
+
+$(eval $(call SetupArchive,ARCHIVE_STRIPPROP,$(BUILD_STRIPPROP),\
+		SRCS:=$(CORBA_OUTPUTDIR)/btclasses/stripprop_classes,\
+		JAR:=$(CORBA_OUTPUTDIR)/btjars/stripproperties.jar,\
+		JARMAIN:=build.tools.stripproperties.StripPropertiesCorba))
+
+$(eval $(call SetupJavaCompilation,BUILD_IDLJ,\
+		SETUP:=GENERATE_OLDBYTECODE,\
+		SRC:=$(CORBA_TOPDIR)/src/share/classes,\
+		BIN:=$(CORBA_OUTPUTDIR)/btclasses/idlj_classes,\
+		COPY:=.prp,\
+		INCLUDES:=com/sun/tools/corba/se/idl,\
+		EXCLUDE_FILES:=ResourceBundleUtil.java))
+
+$(eval $(call SetupArchive,ARCHIVE_IDLJ,$(BUILD_IDLJ),\
+		SRCS:=$(CORBA_OUTPUTDIR)/btclasses/idlj_classes,\
+		SUFFIXES:=.class .prp,\
+		JAR:=$(CORBA_OUTPUTDIR)/btjars/idlj.jar,\
+		JARMAIN:=com.sun.tools.corba.se.idl.toJavaPortable.Compile))
+
+$(eval $(call SetupJavaCompilation,BUILD_LOGUTIL,\
+		SETUP:=GENERATE_OLDBYTECODE,\
+		SRC:=$(CORBA_TOPDIR)/src/share/classes,\
+		BIN:=$(CORBA_OUTPUTDIR)/btclasses/logutil_classes,\
+		INCLUDES:=com/sun/tools/corba/se/logutil))
+
+$(eval $(call SetupArchive,ARCHIVE_LOGUTIL,$(BUILD_LOGUTIL),\
+		SRCS:=$(CORBA_OUTPUTDIR)/btclasses/logutil_classes,\
+		JAR:=$(CORBA_OUTPUTDIR)/btjars/logutil.jar,\
+		JARMAIN:=com.sun.tools.corba.se.logutil.MC))
+
+# Generate LogWrapper classes 
+$(CORBA_OUTPUTDIR)/logwrappers/com/sun/corba/se/impl/logging/%SystemException.java : \
+			$(CORBA_TOPDIR)/src/share/classes/com/sun/corba/se/spi/logging/data/%.mc \
+			$(CORBA_OUTPUTDIR)/btjars/logutil.jar
+	mkdir -p $(@D)
+	rm -f $(@D)/_the_wrappers.d
+	echo Generating class file from $*.mc
+	$(JAVA) -jar $(CORBA_OUTPUTDIR)/btjars/logutil.jar make-class $< $(@D)
+
+# Generate LogWrapper properties file by concatening resource files 
+$(CORBA_OUTPUTDIR)/logwrappers/com/sun/corba/se/impl/logging/LogStrings.properties: \
+		$(CORBA_OUTPUTDIR)/logwrappers/ActivationSystemException.resource \
+		$(CORBA_OUTPUTDIR)/logwrappers/IORSystemException.resource \
+		$(CORBA_OUTPUTDIR)/logwrappers/InterceptorsSystemException.resource \
+		$(CORBA_OUTPUTDIR)/logwrappers/NamingSystemException.resource \
+		$(CORBA_OUTPUTDIR)/logwrappers/OMGSystemException.resource \
+		$(CORBA_OUTPUTDIR)/logwrappers/ORBUtilSystemException.resource \
+		$(CORBA_OUTPUTDIR)/logwrappers/POASystemException.resource \
+		$(CORBA_OUTPUTDIR)/logwrappers/UtilSystemException.resource
+	mkdir -p $(@D)
+	echo Concatenating 8 resource files into $(@F)
+	$(CAT) $^ > $@
+
+# The resources files are generated from lisp-like .mc files.
+$(CORBA_OUTPUTDIR)/logwrappers/%SystemException.resource : $(CORBA_TOPDIR)/src/share/classes/com/sun/corba/se/spi/logging/data/%.mc $(CORBA_OUTPUTDIR)/btjars/logutil.jar
+	mkdir -p $(@D)
+	rm -f $(@D)/_the_wrappers.d
+	echo Generating resource file from $*.mc
+	$(JAVA) -jar $(CORBA_OUTPUTDIR)/btjars/logutil.jar make-resource $< $(@D)
+
+
+$(CORBA_OUTPUTDIR)/logwrappers/_the_wrappers.d : $(CORBA_OUTPUTDIR)/btjars/logutil.jar \
+	$(CORBA_OUTPUTDIR)/logwrappers/com/sun/corba/se/impl/logging/ActivationSystemException.java \
+	$(CORBA_OUTPUTDIR)/logwrappers/com/sun/corba/se/impl/logging/IORSystemException.java \
+	$(CORBA_OUTPUTDIR)/logwrappers/com/sun/corba/se/impl/logging/InterceptorsSystemException.java \
+	$(CORBA_OUTPUTDIR)/logwrappers/com/sun/corba/se/impl/logging/NamingSystemException.java \
+	$(CORBA_OUTPUTDIR)/logwrappers/com/sun/corba/se/impl/logging/OMGSystemException.java \
+	$(CORBA_OUTPUTDIR)/logwrappers/com/sun/corba/se/impl/logging/ORBUtilSystemException.java \
+	$(CORBA_OUTPUTDIR)/logwrappers/com/sun/corba/se/impl/logging/POASystemException.java \
+	$(CORBA_OUTPUTDIR)/logwrappers/com/sun/corba/se/impl/logging/UtilSystemException.java \
+	$(CORBA_OUTPUTDIR)/logwrappers/com/sun/corba/se/impl/logging/LogStrings.properties
+	mkdir -p $(@D) 
+	echo LOGWRAPPERS_ARE_CREATED=yes > $@
+
+# Trigger the generation of the logwrappers. After the logwrapper classes and
+# resources have been created, then the makefile will restart and the newly
+# created java files will become part of the build further along in the makefile.
+-include $(CORBA_OUTPUTDIR)/logwrappers/_the_wrappers.d
+
+ifeq ($(LOGWRAPPERS_ARE_CREATED),yes)
+        $(eval $(call SetupIdlCompilation,BUILD_IDLS,\
+                IDLJ:=$(JAVA) -jar $(CORBA_OUTPUTDIR)/btjars/idlj.jar,\
+		SRC:=$(CORBA_TOPDIR)/src/share/classes,\
+		BIN:=$(CORBA_OUTPUTDIR)/gensrc,\
+		EXCLUDES:=com/sun/tools/corba/se/idl/% \
+			org/omg/CORBA/% \
+			com/sun/corba/se/GiopIDL/% \
+			org/omg/PortableServer/corba.idl,\
+		INCLUDES:=%,\
+		OLDIMPLBASES:=com/sun/corba/se/PortableActivationIDL/activation.idl \
+			      com/sun/corba/se/spi/activation/activation.idl,\
+		DELETES:=DYNANYDELETEFILES org/omg/DynamicAny/*POA* org/omg/DynamicAny/*Holder* org/omg/DynamicAny/DynValueBoxHelper.java org/omg/DynamicAny/DynValueCommonHelper.java org/omg/DynamicAny/_DynValueCommonStub.java org/omg/DynamicAny/_DynValueBoxStub.java org/omg/DynamicAny/DynAnyPackage/TypeMismatchHolder.java org/omg/DynamicAny/DynAnyPackage/InvalidValueHolder.java org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCodeHolder.java IOPDELETEFILES org/omg/IOP/BI_DIR_IIOP.java org/omg/IOP/ChainBypassCheck.java org/omg/IOP/ChainBypassInfo.java org/omg/IOP/FORWARDED_IDENTITY.java org/omg/IOP/INVOCATION_POLICIES.java org/omg/IOP/LogicalThreadId.java org/omg/IOP/SendingContextRunTime.java org/omg/IOP/UnknownExceptionInfo.java org/omg/IOP/TaggedComponentSeqHolder.java POAHELHOLFILES org/omg/PortableServer/CurrentPackage/NoContextHolder.java org/omg/PortableServer/ForwardRequestHolder.java org/omg/PortableServer/IdAssignmentPolicyValueHelper.java org/omg/PortableServer/IdAssignmentPolicyValueHolder.java org/omg/PortableServer/IdUniquenessPolicyValueHelper.java org/omg/PortableServer/IdUniquenessPolicyValueHolder.java org/omg/PortableServer/ImplicitActivationPolicyValueHelper.java org/omg/PortableServer/ImplicitActivationPolicyValueHolder.java org/omg/PortableServer/LifespanPolicyValueHelper.java org/omg/PortableServer/LifespanPolicyValueHolder.java org/omg/PortableServer/ServantRetentionPolicyValueHelper.java org/omg/PortableServer/ServantRetentionPolicyValueHolder.java org/omg/PortableServer/ObjectIdHelper.java org/omg/PortableServer/ObjectIdHolder.java org/omg/PortableServer/POAListHelper.java org/omg/PortableServer/POAListHolder.java org/omg/PortableServer/POAManagerPackage/AdapterInactiveHolder.java org/omg/PortableServer/POAManagerPackage/StateHelper.java org/omg/PortableServer/POAManagerPackage/StateHolder.java org/omg/PortableServer/POAPackage/AdapterAlreadyExistsHolder.java org/omg/PortableServer/POAPackage/AdapterNonExistentHolder.java org/omg/PortableServer/POAPackage/InvalidPolicyHolder.java org/omg/PortableServer/POAPackage/NoServantHolder.java org/omg/PortableServer/POAPackage/ObjectAlreadyActiveHolder.java org/omg/PortableServer/POAPackage/ObjectNotActiveHolder.java org/omg/PortableServer/POAPackage/ServantAlreadyActiveHolder.java org/omg/PortableServer/POAPackage/ServantNotActiveHolder.java org/omg/PortableServer/POAPackage/WrongAdapterHolder.java org/omg/PortableServer/POAPackage/WrongPolicyHolder.java org/omg/PortableServer/RequestProcessingPolicyValueHelper.java org/omg/PortableServer/RequestProcessingPolicyValueHolder.java org/omg/PortableServer/ServantActivatorHolder.java org/omg/PortableServer/ServantLocatorHolder.java org/omg/PortableServer/ThreadPolicyValueHelper.java org/omg/PortableServer/ThreadPolicyValueHolder.java PIHELHOLFILES org/omg/PortableInterceptor/ClientRequestInfoHelper.java org/omg/PortableInterceptor/ClientRequestInterceptorHelper.java org/omg/PortableInterceptor/IORInfoHelper.java org/omg/PortableInterceptor/IORInterceptorHelper.java org/omg/PortableInterceptor/InterceptorHelper.java org/omg/PortableInterceptor/ORBInitInfoHelper.java org/omg/PortableInterceptor/ORBInitializerHelper.java org/omg/PortableInterceptor/PolicyFactoryHelper.java org/omg/PortableInterceptor/ReplyStatusHelper.java org/omg/PortableInterceptor/RequestInfoHelper.java org/omg/PortableInterceptor/ServerRequestInfoHelper.java org/omg/PortableInterceptor/ServerRequestInterceptorHelper.java org/omg/PortableInterceptor/SlotIdHelper.java org/omg/PortableInterceptor/ClientRequestInfoHolder.java org/omg/PortableInterceptor/ClientRequestInterceptorHolder.java org/omg/PortableInterceptor/CurrentHolder.java org/omg/PortableInterceptor/ForwardRequestHolder.java org/omg/PortableInterceptor/IORInfoHolder.java org/omg/PortableInterceptor/IORInterceptorHolder.java org/omg/PortableInterceptor/InterceptorHolder.java org/omg/PortableInterceptor/InvalidSlotHolder.java org/omg/PortableInterceptor/ORBInitInfoHolder.java org/omg/PortableInterceptor/ORBInitializerHolder.java org/omg/PortableInterceptor/PolicyFactoryHolder.java org/omg/PortableInterceptor/RequestInfoHolder.java org/omg/PortableInterceptor/ServerRequestInfoHolder.java org/omg/PortableInterceptor/ServerRequestInterceptorHolder.java org/omg/PortableInterceptor/TaggedComponentSeqHolder.java org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateNameHolder.java org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidNameHolder.java org/omg/IOP/CodecPackage/FormatMismatchHolder.java org/omg/IOP/CodecPackage/InvalidTypeForEncodingHolder.java org/omg/IOP/CodecPackage/TypeMismatchHolder.java org/omg/IOP/CodecHelper.java org/omg/IOP/EncodingFormatHelper.java org/omg/IOP/EncodingHelper.java org/omg/IOP/CodecFactoryPackage/UnknownEncodingHolder.java org/omg/IOP/CodecFactoryHolder.java org/omg/IOP/CodecHolder.java org/omg/IOP/EncodingHolder.java org/omg/IOP/TaggedComponentSeqHelper.java org/omg/Dynamic/ContextListHelper.java org/omg/Dynamic/ExceptionListHelper.java org/omg/Dynamic/ParameterHolder.java org/omg/Dynamic/ParameterListHolder.java org/omg/Dynamic/ExceptionListHolder.java org/omg/Dynamic/ParameterHelper.java org/omg/Dynamic/ParameterListHelper.java org/omg/Dynamic/RequestContextHelper.java CORBAX org/omg/CORBA/OctetSeqHelper.java org/omg/CORBA/OctetSeqHolder.java org/omg/CORBA/PolicyError.java org/omg/CORBA/RepositoryIdHelper.java)) 
+
+        $(BUILD_IDLS) : $(CORBA_OUTPUTDIR)/btjars/idlj.jar
+
+        $(CORBA_OUTPUTDIR)/gensrc/_the_idls.d : $(BUILD_IDLS) $(CORBA_OUTPUTDIR)/btjars/idlj.jar
+		mkdir -p $(@D)
+		echo IDLS_ARE_CREATED=yes > $@
+
+        -include $(CORBA_OUTPUTDIR)/gensrc/_the_idls.d
+
+        ifeq ($(IDLS_ARE_CREATED),yes)
+                $(eval $(call SetupJavaCompilation,BUILD_CORBA,\
+		    SETUP:=GENERATE_NEWBYTECODE,\
+		    SRC:=$(CORBA_TOPDIR)/src/share/classes $(CORBA_OUTPUTDIR)/gensrc $(CORBA_OUTPUTDIR)/logwrappers,\
+		    EXCLUDES:=com/sun/corba/se/PortableActivationIDL\
+			      com/sun/tools/corba/se/logutil,\
+		    EXCLUDE_FILES:=com/sun/corba/se/impl/presentation/rmi/JNDIStateFactoryImpl.java \
+				   com/sun/corba/se/spi/presentation/rmi/StubWrapper.java \
+				   com/sun/org/omg/CORBA/IDLTypeOperations.java \
+				   com/sun/org/omg/CORBA/IRObjectOperations.java \
+				   org/omg/PortableInterceptor/UNKNOWN.java \
+				   com/sun/tools/corba/se/idl/ResourceBundleUtil.java\
+				   com/sun/corba/se/impl/presentation/rmi/jndi.properties,\
+		    COPY:=.prp LogStrings.properties,\
+		    BIN:=$(CORBA_OUTPUTDIR)/classes))
+
+                # Separate src.zip call to include sources that were excluded in the build to 
+                # mimic behavior in old build system.
+                $(eval $(call SetupZipArchive,ARCHIVE_BUILD_CORBA,\
+		    SRC:=$(CORBA_TOPDIR)/src/share/classes $(CORBA_OUTPUTDIR)/gensrc $(CORBA_OUTPUTDIR)/logwrappers,\
+		    ZIP:=$(CORBA_OUTPUTDIR)/dist/lib/src.zip))
+
+                $(BUILD_CORBA) : $(BUILD_IDLS) $(LOGWRAPPER_DEPENDENCIES)
+
+                # Run stripproperties on all sunorb resource files.
+                STRIP_PROP_SRC_FILES:=$(shell $(FIND) $(CORBA_TOPDIR)/src/share/classes -name "sunorb*.properties")
+                STRIP_PROP_FILES:=$(patsubst  $(CORBA_TOPDIR)/src/share/classes/%,$(CORBA_OUTPUTDIR)/classes/%,\
+			$(STRIP_PROP_SRC_FILES))
+                # Simple delivery of zh_HK properties files just copies zh_TW properties files
+                STRIP_PROP_FILES+=$(patsubst  $(CORBA_TOPDIR)/src/share/classes/%_zh_TW.properties,\
+			$(CORBA_OUTPUTDIR)/classes/%_zh_HK.properties,\
+			$(shell $(FIND) $(CORBA_TOPDIR)/src/share/classes -name "sunorb_zh_TW.properties"))
+                STRIP_PROP_SRC_FILES+=$(shell $(FIND) $(CORBA_TOPDIR)/src/share/classes -name "sunorb_zh_TW.properties")
+		STRIP_PROP_CMDLINE:=$(subst _SPACE_,$(SPACE),\
+			$(join $(addprefix -clean_SPACE_,$(STRIP_PROP_SRC_FILES)), \
+			$(addprefix _SPACE_,$(STRIP_PROP_FILES))))
+
+                $(CORBA_OUTPUTDIR)/_the.stripped_properties: $(STRIP_PROP_SRC_FILES) \
+					$(CORBA_OUTPUTDIR)/btjars/stripproperties.jar
+			$(MKDIR) -p $(sort $(dir $(STRIP_PROP_FILES)))
+			$(call ListPathsSafely,STRIP_PROP_CMDLINE,\n, >> $(CORBA_OUTPUTDIR)/_the.strip_prop.cmdline)
+			$(JAVA) -jar $(CORBA_OUTPUTDIR)/btjars/stripproperties.jar \
+				@$(CORBA_OUTPUTDIR)/_the.strip_prop.cmdline
+			$(TOUCH) $@
+
+                $(eval $(call SetupArchive,ARCHIVE_CORBA,\
+		     $(BUILD_CORBA) $(CORBA_OUTPUTDIR)/_the.stripped_properties,\
+		     SRCS:=$(CORBA_OUTPUTDIR)/classes,\
+		     SUFFIXES:=.class .prp .properties,\
+		     JAR:=$(CORBA_OUTPUTDIR)/dist/lib/classes.jar))
+
+                # The created classes.jar now contains Corba compiled to run on the target JDK
+                # and is ready for inclusion in jdk rt.jar.
+
+                # The created src.zip now contains .java and .properties files used to create the classes in classes.jar
+                # and is ready for inclusion into the jdk src.zip
+
+                BIN_FILES:=$(CORBA_TOPDIR)/src/share/classes/org/omg/CORBA/orb.idl $(CORBA_TOPDIR)/src/share/classes/org/omg/CORBA/ir.idl
+
+                $(CORBA_OUTPUTDIR)/dist/lib/bin.zip : $(BIN_FILES) $(CORBA_OUTPUTDIR)/dist/lib/classes.jar
+			mkdir -p $(CORBA_OUTPUTDIR)/dist/lib
+			mkdir -p $(CORBA_OUTPUTDIR)/lib
+			rm -f $@
+			echo Creating `basename $@`
+			cp $(CORBA_TOPDIR)/src/share/classes/org/omg/CORBA/*.idl $(CORBA_OUTPUTDIR)/lib
+			chmod ug+w $(CORBA_OUTPUTDIR)/lib/*
+			(cd $(CORBA_OUTPUTDIR); $(ZIP) -q $@ lib/orb.idl lib/ir.idl)
+
+                # The created bin.zip now contains the corba specific binaries: orb.idl, ir.idl
+
+                all: 	$(CORBA_OUTPUTDIR)/btjars/stripproperties.jar \
+			$(CORBA_OUTPUTDIR)/btjars/idlj.jar \
+			$(CORBA_OUTPUTDIR)/btjars/logutil.jar \
+			$(CORBA_OUTPUTDIR)/dist/lib/classes.jar \
+			$(CORBA_OUTPUTDIR)/dist/lib/src.zip \
+			$(CORBA_OUTPUTDIR)/dist/lib/bin.zip
+        endif
+endif
+
+clean:
+	rm -rf $(CORBA_OUTPUTDIR)
+
+.PHONY: default all clean clobber 
--- a/hotspot/.hgtags	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/.hgtags	Wed Jul 05 18:07:57 2017 +0200
@@ -236,3 +236,5 @@
 27863e4586de38be7dd17da4163f542038f4d1d7 hs24-b05
 25410a347ebb0bef166c4338a90d9dea82463a20 jdk8-b32
 cd47da9383cd932cb2b659064057feafa2a91134 hs24-b06
+785bcf415ead2eaa5f6677aaf528481008140bac jdk8-b33
+7c6aba65acd2c334f1c3512b574f9038cddac24b hs24-b07
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ArrayData.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ArrayData.java	Wed Jul 05 18:07:57 2017 +0200
@@ -1,24 +1,24 @@
 /*
  * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
- * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
- *
- *
- *
+ * 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.
  *
- *
- *
- *
- *
+ * 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.
  *
  */
 
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/BranchData.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/BranchData.java	Wed Jul 05 18:07:57 2017 +0200
@@ -1,24 +1,24 @@
 /*
  * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
- * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
- *
- *
- *
+ * 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.
  *
- *
- *
- *
- *
+ * 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.
  *
  */
 
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/CounterData.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/CounterData.java	Wed Jul 05 18:07:57 2017 +0200
@@ -1,24 +1,24 @@
 /*
  * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
- * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
- *
- *
- *
+ * 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.
  *
- *
- *
- *
- *
+ * 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.
  *
  */
 
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/DataLayout.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/DataLayout.java	Wed Jul 05 18:07:57 2017 +0200
@@ -1,24 +1,24 @@
 /*
  * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
- * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
- *
- *
- *
+ * 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.
  *
- *
- *
- *
- *
+ * 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.
  *
  */
 
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/JumpData.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/JumpData.java	Wed Jul 05 18:07:57 2017 +0200
@@ -1,24 +1,24 @@
 /*
  * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
- * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
- *
- *
- *
+ * 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.
  *
- *
- *
- *
- *
+ * 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.
  *
  */
 
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/MultiBranchData.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/MultiBranchData.java	Wed Jul 05 18:07:57 2017 +0200
@@ -1,24 +1,24 @@
 /*
  * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
- * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
- *
- *
- *
+ * 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.
  *
- *
- *
- *
- *
+ * 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.
  *
  */
 
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ReceiverTypeData.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ReceiverTypeData.java	Wed Jul 05 18:07:57 2017 +0200
@@ -1,24 +1,24 @@
 /*
  * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
- * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
- *
- *
- *
+ * 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.
  *
- *
- *
- *
- *
+ * 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.
  *
  */
 
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/VirtualCallData.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/VirtualCallData.java	Wed Jul 05 18:07:57 2017 +0200
@@ -1,24 +1,24 @@
 /*
  * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
- * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
- *
- *
- *
+ * 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.
  *
- *
- *
- *
- *
+ * 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.
  *
  */
 
--- a/hotspot/make/bsd/makefiles/wb.make	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/make/bsd/makefiles/wb.make	Wed Jul 05 18:07:57 2017 +0200
@@ -36,7 +36,7 @@
 	$(patsubst %.java,%.class,$(WB_JAVA_SRCS)))
 
 $(WB_JAVA_CLASSDIR)/%.class: $(WBSRCDIR)/%.java $(WB_JAVA_CLASSDIR)
-	$(REMOTE) $(COMPILE.JAVAC) -nowarn -d $(WB_JAVA_CLASSDIR) $<
+	$(REMOTE) $(COMPILE.JAVAC) -sourcepath $(WBSRCDIR) -nowarn -d $(WB_JAVA_CLASSDIR) $<
 
 $(WB_JAR): $(WB_JAVA_CLASSES)
 	$(QUIETLY) $(REMOTE) $(RUN.JAR) cf $@ -C $(WB_JAVA_CLASSDIR)/ .
--- a/hotspot/make/hotspot_version	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/make/hotspot_version	Wed Jul 05 18:07:57 2017 +0200
@@ -35,7 +35,7 @@
 
 HS_MAJOR_VER=24
 HS_MINOR_VER=0
-HS_BUILD_NUMBER=06
+HS_BUILD_NUMBER=07
 
 JDK_MAJOR_VER=1
 JDK_MINOR_VER=8
--- a/hotspot/make/linux/makefiles/wb.make	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/make/linux/makefiles/wb.make	Wed Jul 05 18:07:57 2017 +0200
@@ -36,7 +36,7 @@
 	$(patsubst %.java,%.class,$(WB_JAVA_SRCS)))
 
 $(WB_JAVA_CLASSDIR)/%.class: $(WBSRCDIR)/%.java $(WB_JAVA_CLASSDIR)
-	$(REMOTE) $(COMPILE.JAVAC) -nowarn -d $(WB_JAVA_CLASSDIR) $<
+	$(REMOTE) $(COMPILE.JAVAC) -sourcepath $(WBSRCDIR) -nowarn -d $(WB_JAVA_CLASSDIR) $<
 
 $(WB_JAR): $(WB_JAVA_CLASSES)
 	$(QUIETLY) $(REMOTE) $(RUN.JAR) cf $@ -C $(WB_JAVA_CLASSDIR)/ .
--- a/hotspot/make/solaris/makefiles/wb.make	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/make/solaris/makefiles/wb.make	Wed Jul 05 18:07:57 2017 +0200
@@ -36,7 +36,7 @@
 	$(patsubst %.java,%.class,$(WB_JAVA_SRCS)))
 
 $(WB_JAVA_CLASSDIR)/%.class: $(WBSRCDIR)/%.java $(WB_JAVA_CLASSDIR)
-	$(REMOTE) $(COMPILE.JAVAC) -nowarn -d $(WB_JAVA_CLASSDIR) $<
+	$(REMOTE) $(COMPILE.JAVAC) -sourcepath $(WBSRCDIR) -nowarn -d $(WB_JAVA_CLASSDIR) $<
 
 $(WB_JAR): $(WB_JAVA_CLASSES)
 	$(QUIETLY) $(REMOTE) $(RUN.JAR) cf $@ -C $(WB_JAVA_CLASSDIR)/ .
--- a/hotspot/make/windows/create_obj_files.sh	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/make/windows/create_obj_files.sh	Wed Jul 05 18:07:57 2017 +0200
@@ -80,6 +80,8 @@
   BASE_PATHS="${BASE_PATHS} ${ALTSRC}/share/vm/jfr"
 fi
 
+BASE_PATHS="${BASE_PATHS} ${COMMONSRC}/share/vm/prims/wbtestmethods"
+
 CORE_PATHS="${BASE_PATHS}"
 # shared is already in BASE_PATHS. Should add vm/memory but that one is also in BASE_PATHS.
 if [ -d "${ALTSRC}/share/vm/gc_implementation" ]; then
--- a/hotspot/make/windows/makefiles/projectcreator.make	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/make/windows/makefiles/projectcreator.make	Wed Jul 05 18:07:57 2017 +0200
@@ -51,6 +51,7 @@
         -relativeInclude src\closed\cpu\$(Platform_arch)\vm \
         -relativeInclude src\share\vm \
         -relativeInclude src\share\vm\precompiled \
+        -relativeInclude src\share\vm\prims\wbtestmethods \
         -relativeInclude src\share\vm\prims \
         -relativeInclude src\os\windows\vm \
         -relativeInclude src\os_cpu\windows_$(Platform_arch)\vm \
--- a/hotspot/make/windows/makefiles/vm.make	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/make/windows/makefiles/vm.make	Wed Jul 05 18:07:57 2017 +0200
@@ -172,6 +172,7 @@
 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/memory
 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/oops
 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/prims
+VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/prims/wbtestmethods
 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/runtime
 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/services
 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/trace
@@ -269,6 +270,9 @@
 {$(COMMONSRC)\share\vm\prims}.cpp.obj::
         $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
 
+{$(COMMONSRC)\share\vm\prims\wbtestmethods}.cpp.obj::
+        $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
+
 {$(COMMONSRC)\share\vm\runtime}.cpp.obj::
         $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
 
@@ -349,6 +353,9 @@
 {$(ALTSRC)\share\vm\prims}.cpp.obj::
         $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
 
+{$(ALTSRC)\share\vm\prims\wbtestmethods}.cpp.obj::
+        $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
+
 {$(ALTSRC)\share\vm\runtime}.cpp.obj::
         $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
 
--- a/hotspot/make/windows/makefiles/wb.make	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/make/windows/makefiles/wb.make	Wed Jul 05 18:07:57 2017 +0200
@@ -40,7 +40,7 @@
 
 
 {$(WorkSpace)\src\share\tools\whitebox\sun\hotspot}.java.class::
-	$(COMPILE_JAVAC) -d $(WB_CLASSES) $<
+	$(COMPILE_JAVAC) -sourcepath $(WBSRCDIR) -d $(WB_CLASSES) $<
 
 $(WB_JAR): wb_java_srcs
 	$(RUN_JAR) cf $@ -C $(WB_CLASSES) .
--- a/hotspot/src/cpu/x86/vm/assembler_x86.cpp	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/src/cpu/x86/vm/assembler_x86.cpp	Wed Jul 05 18:07:57 2017 +0200
@@ -528,10 +528,12 @@
     if (which == end_pc_operand)  return ip + (is_64bit ? 8 : 4);
     // these asserts are somewhat nonsensical
 #ifndef _LP64
-    assert(which == imm_operand || which == disp32_operand, "");
+    assert(which == imm_operand || which == disp32_operand,
+           err_msg("which %d is_64_bit %d ip " INTPTR_FORMAT, which, is_64bit, ip));
 #else
     assert((which == call32_operand || which == imm_operand) && is_64bit ||
-           which == narrow_oop_operand && !is_64bit, "");
+           which == narrow_oop_operand && !is_64bit,
+           err_msg("which %d is_64_bit %d ip " INTPTR_FORMAT, which, is_64bit, ip));
 #endif // _LP64
     return ip;
 
--- a/hotspot/src/cpu/x86/vm/x86_64.ad	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/src/cpu/x86/vm/x86_64.ad	Wed Jul 05 18:07:57 2017 +0200
@@ -3369,15 +3369,6 @@
   interface(CONST_INTER);
 %}
 
-operand immP_poll() %{
-  predicate(n->get_ptr() != 0 && n->get_ptr() == (intptr_t)os::get_polling_page());
-  match(ConP);
-
-  // formats are generated automatically for constants and base registers
-  format %{ %}
-  interface(CONST_INTER);
-%}
-
 // Pointer Immediate
 operand immN() %{
   match(ConN);
@@ -5726,16 +5717,6 @@
   ins_pipe(ialu_reg);
 %}
 
-instruct loadConP_poll(rRegP dst, immP_poll src) %{
-  match(Set dst src);
-  format %{ "movq    $dst, $src\t!ptr" %}
-  ins_encode %{
-    AddressLiteral polling_page(os::get_polling_page(), relocInfo::poll_type);
-    __ lea($dst$$Register, polling_page);
-  %}
-  ins_pipe(ialu_reg_fat);
-%}
-
 instruct loadConP31(rRegP dst, immP31 src, rFlagsReg cr)
 %{
   match(Set dst src);
--- a/hotspot/src/share/tools/whitebox/sun/hotspot/WhiteBox.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/src/share/tools/whitebox/sun/hotspot/WhiteBox.java	Wed Jul 05 18:07:57 2017 +0200
@@ -24,6 +24,7 @@
 
 package sun.hotspot;
 import java.security.BasicPermission;
+import sun.hotspot.parser.DiagnosticCommand;
 
 public class WhiteBox {
 
@@ -67,4 +68,5 @@
   public native boolean g1IsHumongous(Object o);
   public native long    g1NumFreeRegions();
   public native int     g1RegionSize();
+  public native Object[]    parseCommandLine(String commandline, DiagnosticCommand[] args);
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/hotspot/src/share/tools/whitebox/sun/hotspot/parser/DiagnosticCommand.java	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,43 @@
+package sun.hotspot.parser;
+
+public class DiagnosticCommand {
+
+    public enum DiagnosticArgumentType {
+        JLONG, BOOLEAN, STRING, NANOTIME, STRINGARRAY, MEMORYSIZE
+    }
+
+    private String name;
+    private String desc;
+    private DiagnosticArgumentType type;
+    private boolean mandatory;
+    private String defaultValue;
+
+    public DiagnosticCommand(String name, String desc, DiagnosticArgumentType type,
+            boolean mandatory, String defaultValue) {
+        this.name = name;
+        this.desc = desc;
+        this.type = type;
+        this.mandatory = mandatory;
+        this.defaultValue = defaultValue;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public String getDesc() {
+        return desc;
+    }
+
+    public DiagnosticArgumentType getType() {
+        return type;
+    }
+
+    public boolean isMandatory() {
+        return mandatory;
+    }
+
+    public String getDefaultValue() {
+        return defaultValue;
+    }
+}
--- a/hotspot/src/share/vm/classfile/classFileParser.cpp	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/src/share/vm/classfile/classFileParser.cpp	Wed Jul 05 18:07:57 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -81,7 +81,7 @@
 #define JAVA_7_VERSION                    51
 
 
-void ClassFileParser::parse_constant_pool_entries(constantPoolHandle cp, int length, TRAPS) {
+void ClassFileParser::parse_constant_pool_entries(Handle class_loader, constantPoolHandle cp, int length, TRAPS) {
   // Use a local copy of ClassFileStream. It helps the C++ compiler to optimize
   // this function (_current can be allocated in a register, with scalar
   // replacement of aggregates). The _current pointer is copied back to
@@ -272,7 +272,7 @@
             indices[names_count] = index;
             hashValues[names_count++] = hash;
             if (names_count == SymbolTable::symbol_alloc_batch_size) {
-              SymbolTable::new_symbols(cp, names_count, names, lengths, indices, hashValues, CHECK);
+              SymbolTable::new_symbols(class_loader, cp, names_count, names, lengths, indices, hashValues, CHECK);
               names_count = 0;
             }
           } else {
@@ -289,7 +289,7 @@
 
   // Allocate the remaining symbols
   if (names_count > 0) {
-    SymbolTable::new_symbols(cp, names_count, names, lengths, indices, hashValues, CHECK);
+    SymbolTable::new_symbols(class_loader, cp, names_count, names, lengths, indices, hashValues, CHECK);
   }
 
   // Copy _current pointer of local copy back to stream().
@@ -318,7 +318,7 @@
 
 bool inline valid_cp_range(int index, int length) { return (index > 0 && index < length); }
 
-constantPoolHandle ClassFileParser::parse_constant_pool(TRAPS) {
+constantPoolHandle ClassFileParser::parse_constant_pool(Handle class_loader, TRAPS) {
   ClassFileStream* cfs = stream();
   constantPoolHandle nullHandle;
 
@@ -337,7 +337,7 @@
   ConstantPoolCleaner cp_in_error(cp); // set constant pool to be cleaned up.
 
   // parsing constant pool entries
-  parse_constant_pool_entries(cp, length, CHECK_(nullHandle));
+  parse_constant_pool_entries(class_loader, cp, length, CHECK_(nullHandle));
 
   int index = 1;  // declared outside of loops for portability
 
@@ -2803,7 +2803,7 @@
   _relax_verify = Verifier::relax_verify_for(class_loader());
 
   // Constant pool
-  constantPoolHandle cp = parse_constant_pool(CHECK_(nullHandle));
+  constantPoolHandle cp = parse_constant_pool(class_loader, CHECK_(nullHandle));
   ConstantPoolCleaner error_handler(cp); // set constant pool to be cleaned up.
 
   int cp_size = cp->length();
--- a/hotspot/src/share/vm/classfile/classFileParser.hpp	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/src/share/vm/classfile/classFileParser.hpp	Wed Jul 05 18:07:57 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -68,9 +68,10 @@
   void set_stream(ClassFileStream* st)             { _stream = st; }
 
   // Constant pool parsing
-  void parse_constant_pool_entries(constantPoolHandle cp, int length, TRAPS);
+  void parse_constant_pool_entries(Handle class_loader,
+                                   constantPoolHandle cp, int length, TRAPS);
 
-  constantPoolHandle parse_constant_pool(TRAPS);
+  constantPoolHandle parse_constant_pool(Handle class_loader, TRAPS);
 
   // Interface parsing
   objArrayHandle parse_interfaces(constantPoolHandle cp,
--- a/hotspot/src/share/vm/classfile/symbolTable.cpp	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/src/share/vm/classfile/symbolTable.cpp	Wed Jul 05 18:07:57 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -27,6 +27,7 @@
 #include "classfile/symbolTable.hpp"
 #include "classfile/systemDictionary.hpp"
 #include "gc_interface/collectedHeap.inline.hpp"
+#include "memory/allocation.inline.hpp"
 #include "memory/filemap.hpp"
 #include "memory/gcLocker.inline.hpp"
 #include "oops/oop.inline.hpp"
@@ -37,34 +38,35 @@
 // --------------------------------------------------------------------------
 
 SymbolTable* SymbolTable::_the_table = NULL;
+// Static arena for symbols that are not deallocated
+Arena* SymbolTable::_arena = NULL;
 
-Symbol* SymbolTable::allocate_symbol(const u1* name, int len, TRAPS) {
+Symbol* SymbolTable::allocate_symbol(const u1* name, int len, bool c_heap, TRAPS) {
   // Don't allow symbols to be created which cannot fit in a Symbol*.
   if (len > Symbol::max_length()) {
     THROW_MSG_0(vmSymbols::java_lang_InternalError(),
                 "name is too long to represent");
   }
-  Symbol* sym = new (len) Symbol(name, len);
+  Symbol* sym;
+  // Allocate symbols in the C heap when dumping shared spaces in case there
+  // are temporary symbols we can remove.
+  if (c_heap || DumpSharedSpaces) {
+    // refcount starts as 1
+    sym = new (len, THREAD) Symbol(name, len, 1);
+  } else {
+    sym = new (len, arena(), THREAD) Symbol(name, len, -1);
+  }
   assert(sym != NULL, "new should call vm_exit_out_of_memory if C_HEAP is exhausted");
   return sym;
 }
 
-bool SymbolTable::allocate_symbols(int names_count, const u1** names,
-                                   int* lengths, Symbol** syms, TRAPS) {
-  for (int i = 0; i< names_count; i++) {
-    if (lengths[i] > Symbol::max_length()) {
-      THROW_MSG_0(vmSymbols::java_lang_InternalError(),
-                  "name is too long to represent");
-    }
+void SymbolTable::initialize_symbols(int arena_alloc_size) {
+  // Initialize the arena for global symbols, size passed in depends on CDS.
+  if (arena_alloc_size == 0) {
+    _arena = new Arena();
+  } else {
+    _arena = new Arena(arena_alloc_size);
   }
-
-  for (int i = 0; i< names_count; i++) {
-    int len = lengths[i];
-    syms[i] = new (len) Symbol(names[i], len);
-    assert(syms[i] != NULL, "new should call vm_exit_out_of_memory if "
-                            "C_HEAP is exhausted");
-  }
-  return true;
 }
 
 // Call function for all symbols in the symbol table.
@@ -83,8 +85,7 @@
 int SymbolTable::symbols_counted = 0;
 
 // Remove unreferenced symbols from the symbol table
-// This is done late during GC.  This doesn't use the hash table unlink because
-// it assumes that the literals are oops.
+// This is done late during GC.
 void SymbolTable::unlink() {
   int removed = 0;
   int total = 0;
@@ -156,7 +157,7 @@
   if (s != NULL) return s;
 
   // Otherwise, add to symbol to table
-  return the_table()->basic_add(index, (u1*)name, len, hashValue, CHECK_NULL);
+  return the_table()->basic_add(index, (u1*)name, len, hashValue, true, CHECK_NULL);
 }
 
 Symbol* SymbolTable::lookup(const Symbol* sym, int begin, int end, TRAPS) {
@@ -192,7 +193,7 @@
   // We can't include the code in No_Safepoint_Verifier because of the
   // ResourceMark.
 
-  return the_table()->basic_add(index, (u1*)buffer, len, hashValue, CHECK_NULL);
+  return the_table()->basic_add(index, (u1*)buffer, len, hashValue, true, CHECK_NULL);
 }
 
 Symbol* SymbolTable::lookup_only(const char* name, int len,
@@ -256,71 +257,81 @@
   }
 }
 
-void SymbolTable::add(constantPoolHandle cp, int names_count,
+void SymbolTable::add(Handle class_loader, constantPoolHandle cp,
+                      int names_count,
                       const char** names, int* lengths, int* cp_indices,
                       unsigned int* hashValues, TRAPS) {
   SymbolTable* table = the_table();
-  bool added = table->basic_add(cp, names_count, names, lengths,
+  bool added = table->basic_add(class_loader, cp, names_count, names, lengths,
                                 cp_indices, hashValues, CHECK);
   if (!added) {
     // do it the hard way
     for (int i=0; i<names_count; i++) {
       int index = table->hash_to_index(hashValues[i]);
-      Symbol* sym = table->basic_add(index, (u1*)names[i], lengths[i],
-                                       hashValues[i], CHECK);
+      bool c_heap = class_loader() != NULL;
+      Symbol* sym = table->basic_add(index, (u1*)names[i], lengths[i], hashValues[i], c_heap, CHECK);
       cp->symbol_at_put(cp_indices[i], sym);
     }
   }
 }
 
+Symbol* SymbolTable::new_permanent_symbol(const char* name, TRAPS) {
+  unsigned int hash;
+  Symbol* result = SymbolTable::lookup_only((char*)name, (int)strlen(name), hash);
+  if (result != NULL) {
+    return result;
+  }
+  SymbolTable* table = the_table();
+  int index = table->hash_to_index(hash);
+  return table->basic_add(index, (u1*)name, (int)strlen(name), hash, false, THREAD);
+}
+
 Symbol* SymbolTable::basic_add(int index, u1 *name, int len,
-                                 unsigned int hashValue, TRAPS) {
+                               unsigned int hashValue, bool c_heap, TRAPS) {
   assert(!Universe::heap()->is_in_reserved(name) || GC_locker::is_active(),
          "proposed name of symbol must be stable");
 
-  // We assume that lookup() has been called already, that it failed,
-  // and symbol was not found.  We create the symbol here.
-  Symbol* sym = allocate_symbol(name, len, CHECK_NULL);
-
-  // Allocation must be done before grabbing the SymbolTable_lock lock
+  // Grab SymbolTable_lock first.
   MutexLocker ml(SymbolTable_lock, THREAD);
 
-  assert(sym->equals((char*)name, len), "symbol must be properly initialized");
-
   // Since look-up was done lock-free, we need to check if another
   // thread beat us in the race to insert the symbol.
-
   Symbol* test = lookup(index, (char*)name, len, hashValue);
   if (test != NULL) {
-    // A race occurred and another thread introduced the symbol, this one
-    // will be dropped and collected.
-    delete sym;
+    // A race occurred and another thread introduced the symbol.
     assert(test->refcount() != 0, "lookup should have incremented the count");
     return test;
   }
 
+  // Create a new symbol.
+  Symbol* sym = allocate_symbol(name, len, c_heap, CHECK_NULL);
+  assert(sym->equals((char*)name, len), "symbol must be properly initialized");
+
   HashtableEntry<Symbol*>* entry = new_entry(hashValue, sym);
-  sym->increment_refcount();
   add_entry(index, entry);
   return sym;
 }
 
-bool SymbolTable::basic_add(constantPoolHandle cp, int names_count,
+// This version of basic_add adds symbols in batch from the constant pool
+// parsing.
+bool SymbolTable::basic_add(Handle class_loader, constantPoolHandle cp,
+                            int names_count,
                             const char** names, int* lengths,
                             int* cp_indices, unsigned int* hashValues,
                             TRAPS) {
-  Symbol* syms[symbol_alloc_batch_size];
-  bool allocated = allocate_symbols(names_count, (const u1**)names, lengths,
-                                    syms, CHECK_false);
-  if (!allocated) {
-    return false;
+
+  // Check symbol names are not too long.  If any are too long, don't add any.
+  for (int i = 0; i< names_count; i++) {
+    if (lengths[i] > Symbol::max_length()) {
+      THROW_MSG_0(vmSymbols::java_lang_InternalError(),
+                  "name is too long to represent");
+    }
   }
 
-  // Allocation must be done before grabbing the SymbolTable_lock lock
+  // Hold SymbolTable_lock through the symbol creation
   MutexLocker ml(SymbolTable_lock, THREAD);
 
   for (int i=0; i<names_count; i++) {
-    assert(syms[i]->equals(names[i], lengths[i]), "symbol must be properly initialized");
     // Since look-up was done lock-free, we need to check if another
     // thread beat us in the race to insert the symbol.
     int index = hash_to_index(hashValues[i]);
@@ -330,16 +341,17 @@
       // will be dropped and collected. Use test instead.
       cp->symbol_at_put(cp_indices[i], test);
       assert(test->refcount() != 0, "lookup should have incremented the count");
-      delete syms[i];
     } else {
-      Symbol* sym = syms[i];
+      // Create a new symbol.  The null class loader is never unloaded so these
+      // are allocated specially in a permanent arena.
+      bool c_heap = class_loader() != NULL;
+      Symbol* sym = allocate_symbol((const u1*)names[i], lengths[i], c_heap, CHECK_(false));
+      assert(sym->equals(names[i], lengths[i]), "symbol must be properly initialized");  // why wouldn't it be???
       HashtableEntry<Symbol*>* entry = new_entry(hashValues[i], sym);
-      sym->increment_refcount();  // increment refcount in external hashtable
       add_entry(index, entry);
       cp->symbol_at_put(cp_indices[i], sym);
     }
   }
-
   return true;
 }
 
@@ -406,6 +418,8 @@
           ((float)symbols_removed/(float)symbols_counted)* 100);
   }
   tty->print_cr("Reference counts         %5d", Symbol::_total_count);
+  tty->print_cr("Symbol arena size        %5d used %5d",
+                 arena()->size_in_bytes(), arena()->used());
   tty->print_cr("Histogram of symbol length:");
   tty->print_cr("%8s %5d", "Total  ", total);
   tty->print_cr("%8s %5d", "Maximum", max_symbols);
--- a/hotspot/src/share/vm/classfile/symbolTable.hpp	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/src/share/vm/classfile/symbolTable.hpp	Wed Jul 05 18:07:57 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -82,24 +82,24 @@
   static int symbols_removed;
   static int symbols_counted;
 
-  Symbol* allocate_symbol(const u1* name, int len, TRAPS);   // Assumes no characters larger than 0x7F
-  bool allocate_symbols(int names_count, const u1** names, int* lengths, Symbol** syms, TRAPS);
+  Symbol* allocate_symbol(const u1* name, int len, bool c_heap, TRAPS); // Assumes no characters larger than 0x7F
 
   // Adding elements
-  Symbol* basic_add(int index, u1* name, int len,
-                      unsigned int hashValue, TRAPS);
-  bool basic_add(constantPoolHandle cp, int names_count,
+  Symbol* basic_add(int index, u1* name, int len, unsigned int hashValue,
+                    bool c_heap, TRAPS);
+
+  bool basic_add(Handle class_loader, constantPoolHandle cp, int names_count,
                  const char** names, int* lengths, int* cp_indices,
                  unsigned int* hashValues, TRAPS);
 
-  static void new_symbols(constantPoolHandle cp, int names_count,
+  static void new_symbols(Handle class_loader, constantPoolHandle cp,
+                          int names_count,
                           const char** name, int* lengths,
                           int* cp_indices, unsigned int* hashValues,
                           TRAPS) {
-    add(cp, names_count, name, lengths, cp_indices, hashValues, THREAD);
+    add(class_loader, cp, names_count, name, lengths, cp_indices, hashValues, THREAD);
   }
 
-
   // Table size
   enum {
     symbol_table_size = 20011
@@ -114,10 +114,16 @@
     : Hashtable<Symbol*>(symbol_table_size, sizeof (HashtableEntry<Symbol*>), t,
                 number_of_entries) {}
 
+  // Arena for permanent symbols (null class loader) that are never unloaded
+  static Arena*  _arena;
+  static Arena* arena() { return _arena; }  // called for statistics
 
+  static void initialize_symbols(int arena_alloc_size = 0);
 public:
   enum {
-    symbol_alloc_batch_size = 8
+    symbol_alloc_batch_size = 8,
+    // Pick initial size based on java -version size measurements
+    symbol_alloc_arena_size = 360*K
   };
 
   // The symbol table
@@ -126,6 +132,7 @@
   static void create_table() {
     assert(_the_table == NULL, "One symbol table allowed.");
     _the_table = new SymbolTable();
+    initialize_symbols(symbol_alloc_arena_size);
   }
 
   static void create_table(HashtableBucket* t, int length,
@@ -134,6 +141,9 @@
     assert(length == symbol_table_size * sizeof(HashtableBucket),
            "bad shared symbol size.");
     _the_table = new SymbolTable(t, number_of_entries);
+    // if CDS give symbol table a default arena size since most symbols
+    // are already allocated in the shared misc section.
+    initialize_symbols();
   }
 
   static Symbol* lookup(const char* name, int len, TRAPS);
@@ -151,7 +161,7 @@
   static Symbol* lookup_unicode(const jchar* name, int len, TRAPS);
   static Symbol* lookup_only_unicode(const jchar* name, int len, unsigned int& hash);
 
-  static void add(constantPoolHandle cp, int names_count,
+  static void add(Handle class_loader, constantPoolHandle cp, int names_count,
                   const char** names, int* lengths, int* cp_indices,
                   unsigned int* hashValues, TRAPS);
 
@@ -174,6 +184,9 @@
     return lookup(sym, begin, end, THREAD);
   }
 
+  // Create a symbol in the arena for symbols that are not deleted
+  static Symbol* new_permanent_symbol(const char* name, TRAPS);
+
   // Symbol lookup
   static Symbol* lookup(int index, const char* name, int len, TRAPS);
 
--- a/hotspot/src/share/vm/classfile/vmSymbols.cpp	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/src/share/vm/classfile/vmSymbols.cpp	Wed Jul 05 18:07:57 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -79,7 +79,7 @@
   if (!UseSharedSpaces) {
     const char* string = &vm_symbol_bodies[0];
     for (int index = (int)FIRST_SID; index < (int)SID_LIMIT; index++) {
-      Symbol* sym = SymbolTable::new_symbol(string, CHECK);
+      Symbol* sym = SymbolTable::new_permanent_symbol(string, CHECK);
       _symbols[index] = sym;
       string += strlen(string); // skip string body
       string += 1;              // skip trailing null
@@ -128,7 +128,7 @@
     // Spot-check correspondence between strings, symbols, and enums:
     assert(_symbols[NO_SID] == NULL, "must be");
     const char* str = "java/lang/Object";
-    TempNewSymbol jlo = SymbolTable::new_symbol(str, CHECK);
+    TempNewSymbol jlo = SymbolTable::new_permanent_symbol(str, CHECK);
     assert(strncmp(str, (char*)jlo->base(), jlo->utf8_length()) == 0, "");
     assert(jlo == java_lang_Object(), "");
     SID sid = VM_SYMBOL_ENUM_NAME(java_lang_Object);
@@ -147,7 +147,7 @@
     // The string "format" happens (at the moment) not to be a vmSymbol,
     // though it is a method name in java.lang.String.
     str = "format";
-    TempNewSymbol fmt = SymbolTable::new_symbol(str, CHECK);
+    TempNewSymbol fmt = SymbolTable::new_permanent_symbol(str, CHECK);
     sid = find_sid(fmt);
     assert(sid == NO_SID, "symbol index works (negative test)");
   }
--- a/hotspot/src/share/vm/code/nmethod.hpp	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/src/share/vm/code/nmethod.hpp	Wed Jul 05 18:07:57 2017 +0200
@@ -553,7 +553,7 @@
   static void oops_do_marking_prologue();
   static void oops_do_marking_epilogue();
   static bool oops_do_marking_is_active() { return _oops_do_mark_nmethods != NULL; }
-  DEBUG_ONLY(bool test_oops_do_mark() { return _oops_do_mark_link != NULL; })
+  bool test_oops_do_mark() { return _oops_do_mark_link != NULL; }
 
   // ScopeDesc for an instruction
   ScopeDesc* scope_desc_at(address pc);
--- a/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp	Wed Jul 05 18:07:57 2017 +0200
@@ -103,16 +103,6 @@
   return (int) (diff >> _shifter);
 }
 
-void CMBitMapRO::mostly_disjoint_range_union(BitMap*   from_bitmap,
-                                             size_t    from_start_index,
-                                             HeapWord* to_start_word,
-                                             size_t    word_num) {
-  _bm.mostly_disjoint_range_union(from_bitmap,
-                                  from_start_index,
-                                  heapWordToOffset(to_start_word),
-                                  word_num);
-}
-
 #ifndef PRODUCT
 bool CMBitMapRO::covers(ReservedSpace rs) const {
   // assert(_bm.map() == _virtual_space.low(), "map inconsistency");
@@ -271,140 +261,6 @@
   }
 }
 
-CMRegionStack::CMRegionStack() : _base(NULL) {}
-
-void CMRegionStack::allocate(size_t size) {
-  _base = NEW_C_HEAP_ARRAY(MemRegion, size);
-  if (_base == NULL) {
-    vm_exit_during_initialization("Failed to allocate CM region mark stack");
-  }
-  _index = 0;
-  _capacity = (jint) size;
-}
-
-CMRegionStack::~CMRegionStack() {
-  if (_base != NULL) {
-    FREE_C_HEAP_ARRAY(oop, _base);
-  }
-}
-
-void CMRegionStack::push_lock_free(MemRegion mr) {
-  guarantee(false, "push_lock_free(): don't call this any more");
-
-  assert(mr.word_size() > 0, "Precondition");
-  while (true) {
-    jint index = _index;
-
-    if (index >= _capacity) {
-      _overflow = true;
-      return;
-    }
-    // Otherwise...
-    jint next_index = index+1;
-    jint res = Atomic::cmpxchg(next_index, &_index, index);
-    if (res == index) {
-      _base[index] = mr;
-      return;
-    }
-    // Otherwise, we need to try again.
-  }
-}
-
-// Lock-free pop of the region stack. Called during the concurrent
-// marking / remark phases. Should only be called in tandem with
-// other lock-free pops.
-MemRegion CMRegionStack::pop_lock_free() {
-  guarantee(false, "pop_lock_free(): don't call this any more");
-
-  while (true) {
-    jint index = _index;
-
-    if (index == 0) {
-      return MemRegion();
-    }
-    // Otherwise...
-    jint next_index = index-1;
-    jint res = Atomic::cmpxchg(next_index, &_index, index);
-    if (res == index) {
-      MemRegion mr = _base[next_index];
-      if (mr.start() != NULL) {
-        assert(mr.end() != NULL, "invariant");
-        assert(mr.word_size() > 0, "invariant");
-        return mr;
-      } else {
-        // that entry was invalidated... let's skip it
-        assert(mr.end() == NULL, "invariant");
-      }
-    }
-    // Otherwise, we need to try again.
-  }
-}
-
-#if 0
-// The routines that manipulate the region stack with a lock are
-// not currently used. They should be retained, however, as a
-// diagnostic aid.
-
-void CMRegionStack::push_with_lock(MemRegion mr) {
-  assert(mr.word_size() > 0, "Precondition");
-  MutexLockerEx x(CMRegionStack_lock, Mutex::_no_safepoint_check_flag);
-
-  if (isFull()) {
-    _overflow = true;
-    return;
-  }
-
-  _base[_index] = mr;
-  _index += 1;
-}
-
-MemRegion CMRegionStack::pop_with_lock() {
-  MutexLockerEx x(CMRegionStack_lock, Mutex::_no_safepoint_check_flag);
-
-  while (true) {
-    if (_index == 0) {
-      return MemRegion();
-    }
-    _index -= 1;
-
-    MemRegion mr = _base[_index];
-    if (mr.start() != NULL) {
-      assert(mr.end() != NULL, "invariant");
-      assert(mr.word_size() > 0, "invariant");
-      return mr;
-    } else {
-      // that entry was invalidated... let's skip it
-      assert(mr.end() == NULL, "invariant");
-    }
-  }
-}
-#endif
-
-bool CMRegionStack::invalidate_entries_into_cset() {
-  guarantee(false, "invalidate_entries_into_cset(): don't call this any more");
-
-  bool result = false;
-  G1CollectedHeap* g1h = G1CollectedHeap::heap();
-  for (int i = 0; i < _oops_do_bound; ++i) {
-    MemRegion mr = _base[i];
-    if (mr.start() != NULL) {
-      assert(mr.end() != NULL, "invariant");
-      assert(mr.word_size() > 0, "invariant");
-      HeapRegion* hr = g1h->heap_region_containing(mr.start());
-      assert(hr != NULL, "invariant");
-      if (hr->in_collection_set()) {
-        // The region points into the collection set
-        _base[i] = MemRegion();
-        result = true;
-      }
-    } else {
-      // that entry was invalidated... let's skip it
-      assert(mr.end() == NULL, "invariant");
-    }
-  }
-  return result;
-}
-
 template<class OopClosureClass>
 bool CMMarkStack::drain(OopClosureClass* cl, CMBitMap* bm, bool yield_after) {
   assert(!_drain_in_progress || !_drain_in_progress_yields || yield_after
@@ -565,10 +421,8 @@
 
   _prevMarkBitMap(&_markBitMap1),
   _nextMarkBitMap(&_markBitMap2),
-  _at_least_one_mark_complete(false),
 
   _markStack(this),
-  _regionStack(),
   // _finger set in set_non_marking_state
 
   _max_task_num(MAX2((uint)ParallelGCThreads, 1U)),
@@ -582,7 +436,6 @@
   _has_aborted(false),
   _restart_for_overflow(false),
   _concurrent_marking_in_progress(false),
-  _should_gray_objects(false),
 
   // _verbose_level set below
 
@@ -611,7 +464,6 @@
   }
 
   _markStack.allocate(MarkStackSize);
-  _regionStack.allocate(G1MarkRegionStackSize);
 
   // Create & start a ConcurrentMark thread.
   _cmThread = new ConcurrentMarkThread(this);
@@ -744,15 +596,7 @@
 
 void ConcurrentMark::update_g1_committed(bool force) {
   // If concurrent marking is not in progress, then we do not need to
-  // update _heap_end. This has a subtle and important
-  // side-effect. Imagine that two evacuation pauses happen between
-  // marking completion and remark. The first one can grow the
-  // heap (hence now the finger is below the heap end). Then, the
-  // second one could unnecessarily push regions on the region
-  // stack. This causes the invariant that the region stack is empty
-  // at the beginning of remark to be false. By ensuring that we do
-  // not observe heap expansions after marking is complete, then we do
-  // not have this problem.
+  // update _heap_end.
   if (!concurrent_marking_in_progress() && !force) return;
 
   MemRegion committed = _g1h->g1_committed();
@@ -1058,86 +902,6 @@
 }
 #endif // !PRODUCT
 
-void ConcurrentMark::grayRegionIfNecessary(MemRegion mr) {
-  guarantee(false, "grayRegionIfNecessary(): don't call this any more");
-
-  // The objects on the region have already been marked "in bulk" by
-  // the caller. We only need to decide whether to push the region on
-  // the region stack or not.
-
-  if (!concurrent_marking_in_progress() || !_should_gray_objects) {
-    // We're done with marking and waiting for remark. We do not need to
-    // push anything else on the region stack.
-    return;
-  }
-
-  HeapWord* finger = _finger;
-
-  if (verbose_low()) {
-    gclog_or_tty->print_cr("[global] attempting to push "
-                           "region ["PTR_FORMAT", "PTR_FORMAT"), finger is at "
-                           PTR_FORMAT, mr.start(), mr.end(), finger);
-  }
-
-  if (mr.start() < finger) {
-    // The finger is always heap region aligned and it is not possible
-    // for mr to span heap regions.
-    assert(mr.end() <= finger, "invariant");
-
-    // Separated the asserts so that we know which one fires.
-    assert(mr.start() <= mr.end(),
-           "region boundaries should fall within the committed space");
-    assert(_heap_start <= mr.start(),
-           "region boundaries should fall within the committed space");
-    assert(mr.end() <= _heap_end,
-           "region boundaries should fall within the committed space");
-    if (verbose_low()) {
-      gclog_or_tty->print_cr("[global] region ["PTR_FORMAT", "PTR_FORMAT") "
-                             "below the finger, pushing it",
-                             mr.start(), mr.end());
-    }
-
-    if (!region_stack_push_lock_free(mr)) {
-      if (verbose_low()) {
-        gclog_or_tty->print_cr("[global] region stack has overflown.");
-      }
-    }
-  }
-}
-
-void ConcurrentMark::markAndGrayObjectIfNecessary(oop p) {
-  guarantee(false, "markAndGrayObjectIfNecessary(): don't call this any more");
-
-  // The object is not marked by the caller. We need to at least mark
-  // it and maybe push in on the stack.
-
-  HeapWord* addr = (HeapWord*)p;
-  if (!_nextMarkBitMap->isMarked(addr)) {
-    // We definitely need to mark it, irrespective whether we bail out
-    // because we're done with marking.
-    if (_nextMarkBitMap->parMark(addr)) {
-      if (!concurrent_marking_in_progress() || !_should_gray_objects) {
-        // If we're done with concurrent marking and we're waiting for
-        // remark, then we're not pushing anything on the stack.
-        return;
-      }
-
-      // No OrderAccess:store_load() is needed. It is implicit in the
-      // CAS done in parMark(addr) above
-      HeapWord* finger = _finger;
-
-      if (addr < finger) {
-        if (!mark_stack_push(oop(addr))) {
-          if (verbose_low()) {
-            gclog_or_tty->print_cr("[global] global stack overflow "
-                                   "during parMark");
-          }
-        }
-      }
-    }
-  }
-}
-
 class CMConcurrentMarkingTask: public AbstractGangTask {
 private:
   ConcurrentMark*       _cm;
@@ -2255,7 +2019,6 @@
   g1p->set_known_garbage_bytes(known_garbage_bytes);
 
   size_t start_used_bytes = g1h->used();
-  _at_least_one_mark_complete = true;
   g1h->set_marking_complete();
 
   ergo_verbose4(ErgoConcCycles,
@@ -3066,89 +2829,6 @@
 
 #endif // PRODUCT
 
-// This note is for drainAllSATBBuffers and the code in between.
-// In the future we could reuse a task to do this work during an
-// evacuation pause (since now tasks are not active and can be claimed
-// during an evacuation pause). This was a late change to the code and
-// is currently not being taken advantage of.
-
-void ConcurrentMark::deal_with_reference(oop obj) {
-  if (verbose_high()) {
-    gclog_or_tty->print_cr("[global] we're dealing with reference "PTR_FORMAT,
-                           (void*) obj);
-  }
-
-  HeapWord* objAddr = (HeapWord*) obj;
-  assert(obj->is_oop_or_null(true /* ignore mark word */), "Error");
-  if (_g1h->is_in_g1_reserved(objAddr)) {
-    assert(obj != NULL, "null check is implicit");
-    if (!_nextMarkBitMap->isMarked(objAddr)) {
-      // Only get the containing region if the object is not marked on the
-      // bitmap (otherwise, it's a waste of time since we won't do
-      // anything with it).
-      HeapRegion* hr = _g1h->heap_region_containing_raw(obj);
-      if (!hr->obj_allocated_since_next_marking(obj)) {
-        if (verbose_high()) {
-          gclog_or_tty->print_cr("[global] "PTR_FORMAT" is not considered "
-                                 "marked", (void*) obj);
-        }
-
-        // we need to mark it first
-        if (_nextMarkBitMap->parMark(objAddr)) {
-          // No OrderAccess:store_load() is needed. It is implicit in the
-          // CAS done in parMark(objAddr) above
-          HeapWord* finger = _finger;
-          if (objAddr < finger) {
-            if (verbose_high()) {
-              gclog_or_tty->print_cr("[global] below the global finger "
-                                     "("PTR_FORMAT"), pushing it", finger);
-            }
-            if (!mark_stack_push(obj)) {
-              if (verbose_low()) {
-                gclog_or_tty->print_cr("[global] global stack overflow during "
-                                       "deal_with_reference");
-              }
-            }
-          }
-        }
-      }
-    }
-  }
-}
-
-class CMGlobalObjectClosure : public ObjectClosure {
-private:
-  ConcurrentMark* _cm;
-
-public:
-  void do_object(oop obj) {
-    _cm->deal_with_reference(obj);
-  }
-
-  CMGlobalObjectClosure(ConcurrentMark* cm) : _cm(cm) { }
-};
-
-void ConcurrentMark::drainAllSATBBuffers() {
-  guarantee(false, "drainAllSATBBuffers(): don't call this any more");
-
-  CMGlobalObjectClosure oc(this);
-  SATBMarkQueueSet& satb_mq_set = JavaThread::satb_mark_queue_set();
-  satb_mq_set.set_closure(&oc);
-
-  while (satb_mq_set.apply_closure_to_completed_buffer()) {
-    if (verbose_medium()) {
-      gclog_or_tty->print_cr("[global] processed an SATB buffer");
-    }
-  }
-
-  // no need to check whether we should do this, as this is only
-  // called during an evacuation pause
-  satb_mq_set.iterate_closure_all_threads();
-
-  satb_mq_set.set_closure(NULL);
-  assert(satb_mq_set.completed_buffers_num() == 0, "invariant");
-}
-
 void ConcurrentMark::clearRangePrevBitmap(MemRegion mr) {
   // Note we are overriding the read-only view of the prev map here, via
   // the cast.
@@ -3257,63 +2937,6 @@
   return NULL;
 }
 
-bool ConcurrentMark::invalidate_aborted_regions_in_cset() {
-  guarantee(false, "invalidate_aborted_regions_in_cset(): "
-                   "don't call this any more");
-
-  bool result = false;
-  for (int i = 0; i < (int)_max_task_num; ++i) {
-    CMTask* the_task = _tasks[i];
-    MemRegion mr = the_task->aborted_region();
-    if (mr.start() != NULL) {
-      assert(mr.end() != NULL, "invariant");
-      assert(mr.word_size() > 0, "invariant");
-      HeapRegion* hr = _g1h->heap_region_containing(mr.start());
-      assert(hr != NULL, "invariant");
-      if (hr->in_collection_set()) {
-        // The region points into the collection set
-        the_task->set_aborted_region(MemRegion());
-        result = true;
-      }
-    }
-  }
-  return result;
-}
-
-bool ConcurrentMark::has_aborted_regions() {
-  for (int i = 0; i < (int)_max_task_num; ++i) {
-    CMTask* the_task = _tasks[i];
-    MemRegion mr = the_task->aborted_region();
-    if (mr.start() != NULL) {
-      assert(mr.end() != NULL, "invariant");
-      assert(mr.word_size() > 0, "invariant");
-      return true;
-    }
-  }
-  return false;
-}
-
-void ConcurrentMark::oops_do(OopClosure* cl) {
-  if (_markStack.size() > 0 && verbose_low()) {
-    gclog_or_tty->print_cr("[global] scanning the global marking stack, "
-                           "size = %d", _markStack.size());
-  }
-  // we first iterate over the contents of the mark stack...
-  _markStack.oops_do(cl);
-
-  for (int i = 0; i < (int)_max_task_num; ++i) {
-    OopTaskQueue* queue = _task_queues->queue((int)i);
-
-    if (queue->size() > 0 && verbose_low()) {
-      gclog_or_tty->print_cr("[global] scanning task queue of task %d, "
-                             "size = %d", i, queue->size());
-    }
-
-    // ...then over the contents of the all the task queues.
-    queue->oops_do(cl);
-  }
-}
-
 #ifndef PRODUCT
 enum VerifyNoCSetOopsPhase {
   VerifyNoCSetOopsStack,
@@ -3445,8 +3068,6 @@
 void ConcurrentMark::clear_marking_state(bool clear_overflow) {
   _markStack.setEmpty();
   _markStack.clear_overflow();
-  _regionStack.setEmpty();
-  _regionStack.clear_overflow();
   if (clear_overflow) {
     clear_has_overflown();
   } else {
@@ -3457,8 +3078,6 @@
   for (int i = 0; i < (int)_max_task_num; ++i) {
     OopTaskQueue* queue = _task_queues->queue(i);
     queue->set_empty();
-    // Clear any partial regions from the CMTasks
-    _tasks[i]->clear_aborted_region();
   }
 }
 
@@ -3658,327 +3277,6 @@
   }
 }
 
-// Closures used by ConcurrentMark::complete_marking_in_collection_set().
-
-class CSetMarkOopClosure: public OopClosure {
-  friend class CSetMarkBitMapClosure;
-
-  G1CollectedHeap* _g1h;
-  CMBitMap*        _bm;
-  ConcurrentMark*  _cm;
-  oop*             _ms;
-  jint*            _array_ind_stack;
-  int              _ms_size;
-  int              _ms_ind;
-  int              _array_increment;
-  uint             _worker_id;
-
-  bool push(oop obj, int arr_ind = 0) {
-    if (_ms_ind == _ms_size) {
-      gclog_or_tty->print_cr("Mark stack is full.");
-      return false;
-    }
-    _ms[_ms_ind] = obj;
-    if (obj->is_objArray()) {
-      _array_ind_stack[_ms_ind] = arr_ind;
-    }
-    _ms_ind++;
-    return true;
-  }
-
-  oop pop() {
-    if (_ms_ind == 0) {
-      return NULL;
-    } else {
-      _ms_ind--;
-      return _ms[_ms_ind];
-    }
-  }
-
-  template <class T> bool drain() {
-    while (_ms_ind > 0) {
-      oop obj = pop();
-      assert(obj != NULL, "Since index was non-zero.");
-      if (obj->is_objArray()) {
-        jint arr_ind = _array_ind_stack[_ms_ind];
-        objArrayOop aobj = objArrayOop(obj);
-        jint len = aobj->length();
-        jint next_arr_ind = arr_ind + _array_increment;
-        if (next_arr_ind < len) {
-          push(obj, next_arr_ind);
-        }
-        // Now process this portion of this one.
-        int lim = MIN2(next_arr_ind, len);
-        for (int j = arr_ind; j < lim; j++) {
-          do_oop(aobj->objArrayOopDesc::obj_at_addr<T>(j));
-        }
-      } else {
-        obj->oop_iterate(this);
-      }
-      if (abort()) return false;
-    }
-    return true;
-  }
-
-public:
-  CSetMarkOopClosure(ConcurrentMark* cm, int ms_size, uint worker_id) :
-    _g1h(G1CollectedHeap::heap()),
-    _cm(cm),
-    _bm(cm->nextMarkBitMap()),
-    _ms_size(ms_size), _ms_ind(0),
-    _ms(NEW_C_HEAP_ARRAY(oop, ms_size)),
-    _array_ind_stack(NEW_C_HEAP_ARRAY(jint, ms_size)),
-    _array_increment(MAX2(ms_size/8, 16)),
-    _worker_id(worker_id) { }
-
-  ~CSetMarkOopClosure() {
-    FREE_C_HEAP_ARRAY(oop, _ms);
-    FREE_C_HEAP_ARRAY(jint, _array_ind_stack);
-  }
-
-  virtual void do_oop(narrowOop* p) { do_oop_work(p); }
-  virtual void do_oop(      oop* p) { do_oop_work(p); }
-
-  template <class T> void do_oop_work(T* p) {
-    T heap_oop = oopDesc::load_heap_oop(p);
-    if (oopDesc::is_null(heap_oop)) return;
-    oop obj = oopDesc::decode_heap_oop_not_null(heap_oop);
-    if (obj->is_forwarded()) {
-      // If the object has already been forwarded, we have to make sure
-      // that it's marked.  So follow the forwarding pointer.  Note that
-      // this does the right thing for self-forwarding pointers in the
-      // evacuation failure case.
-      obj = obj->forwardee();
-    }
-    HeapRegion* hr = _g1h->heap_region_containing(obj);
-    if (hr != NULL) {
-      if (hr->in_collection_set()) {
-        if (_g1h->is_obj_ill(obj)) {
-          if (_bm->parMark((HeapWord*)obj)) {
-            if (!push(obj)) {
-              gclog_or_tty->print_cr("Setting abort in CSetMarkOopClosure because push failed.");
-              set_abort();
-            }
-          }
-        }
-      } else {
-        // Outside the collection set; we need to gray it
-        _cm->deal_with_reference(obj);
-      }
-    }
-  }
-};
-
-class CSetMarkBitMapClosure: public BitMapClosure {
-  G1CollectedHeap*   _g1h;
-  CMBitMap*          _bitMap;
-  ConcurrentMark*    _cm;
-  CSetMarkOopClosure _oop_cl;
-  uint               _worker_id;
-
-public:
-  CSetMarkBitMapClosure(ConcurrentMark* cm, int ms_size, int worker_id) :
-    _g1h(G1CollectedHeap::heap()),
-    _bitMap(cm->nextMarkBitMap()),
-    _oop_cl(cm, ms_size, worker_id),
-    _worker_id(worker_id) { }
-
-  bool do_bit(size_t offset) {
-    // convert offset into a HeapWord*
-    HeapWord* addr = _bitMap->offsetToHeapWord(offset);
-    assert(_bitMap->endWord() && addr < _bitMap->endWord(),
-           "address out of range");
-    assert(_bitMap->isMarked(addr), "tautology");
-    oop obj = oop(addr);
-    if (!obj->is_forwarded()) {
-      if (!_oop_cl.push(obj)) return false;
-      if (UseCompressedOops) {
-        if (!_oop_cl.drain<narrowOop>()) return false;
-      } else {
-        if (!_oop_cl.drain<oop>()) return false;
-      }
-    }
-    // Otherwise...
-    return true;
-  }
-};
-
-class CompleteMarkingInCSetHRClosure: public HeapRegionClosure {
-  CMBitMap*             _bm;
-  CSetMarkBitMapClosure _bit_cl;
-  uint                  _worker_id;
-
-  enum SomePrivateConstants {
-    MSSize = 1000
-  };
-
-public:
-  CompleteMarkingInCSetHRClosure(ConcurrentMark* cm, int worker_id) :
-    _bm(cm->nextMarkBitMap()),
-    _bit_cl(cm, MSSize, worker_id),
-    _worker_id(worker_id) { }
-
-  bool doHeapRegion(HeapRegion* hr) {
-    if (hr->claimHeapRegion(HeapRegion::CompleteMarkCSetClaimValue)) {
-      // The current worker has successfully claimed the region.
-      if (!hr->evacuation_failed()) {
-        MemRegion mr = MemRegion(hr->bottom(), hr->next_top_at_mark_start());
-        if (!mr.is_empty()) {
-          bool done = false;
-          while (!done) {
-            done = _bm->iterate(&_bit_cl, mr);
-          }
-        }
-      }
-    }
-    return false;
-  }
-};
-
-class G1ParCompleteMarkInCSetTask: public AbstractGangTask {
-protected:
-  G1CollectedHeap* _g1h;
-  ConcurrentMark*  _cm;
-
-public:
-  G1ParCompleteMarkInCSetTask(G1CollectedHeap* g1h,
-                              ConcurrentMark* cm) :
-    AbstractGangTask("Complete Mark in CSet"),
-    _g1h(g1h), _cm(cm) { }
-
-  void work(uint worker_id) {
-    CompleteMarkingInCSetHRClosure cmplt(_cm, worker_id);
-    HeapRegion* hr = _g1h->start_cset_region_for_worker(worker_id);
-    _g1h->collection_set_iterate_from(hr, &cmplt);
-  }
-};
-
-void ConcurrentMark::complete_marking_in_collection_set() {
-  guarantee(false, "complete_marking_in_collection_set(): "
-                   "don't call this any more");
-
-  G1CollectedHeap* g1h =  G1CollectedHeap::heap();
-
-  if (!g1h->mark_in_progress()) {
-    g1h->g1_policy()->record_mark_closure_time(0.0);
-    return;
-  }
-
-  double start = os::elapsedTime();
-  G1ParCompleteMarkInCSetTask complete_mark_task(g1h, this);
-
-  assert(g1h->check_cset_heap_region_claim_values(HeapRegion::InitialClaimValue), "sanity");
-
-  if (G1CollectedHeap::use_parallel_gc_threads()) {
-    int n_workers = g1h->workers()->active_workers();
-    g1h->set_par_threads(n_workers);
-    g1h->workers()->run_task(&complete_mark_task);
-    g1h->set_par_threads(0);
-  } else {
-    complete_mark_task.work(0);
-  }
-
-  assert(g1h->check_cset_heap_region_claim_values(HeapRegion::CompleteMarkCSetClaimValue), "sanity");
-
-  // Reset the claim values in the regions in the collection set.
-  g1h->reset_cset_heap_region_claim_values();
-
-  assert(g1h->check_cset_heap_region_claim_values(HeapRegion::InitialClaimValue), "sanity");
-
-  double end_time = os::elapsedTime();
-  double elapsed_time_ms = (end_time - start) * 1000.0;
-  g1h->g1_policy()->record_mark_closure_time(elapsed_time_ms);
-}
-
-// The next two methods deal with the following optimisation. Some
-// objects are gray by being marked and located above the finger. If
-// they are copied, during an evacuation pause, below the finger then
-// the need to be pushed on the stack. The observation is that, if
-// there are no regions in the collection set located above the
-// finger, then the above cannot happen, hence we do not need to
-// explicitly gray any objects when copying them to below the
-// finger. The global stack will be scanned to ensure that, if it
-// points to objects being copied, it will update their
-// location. There is a tricky situation with the gray objects in
-// region stack that are being coped, however. See the comment in
-// newCSet().
-
-void ConcurrentMark::newCSet() {
-  guarantee(false, "newCSet(): don't call this any more");
-
-  if (!concurrent_marking_in_progress()) {
-    // nothing to do if marking is not in progress
-    return;
-  }
-
-  // find what the lowest finger is among the global and local fingers
-  _min_finger = _finger;
-  for (int i = 0; i < (int)_max_task_num; ++i) {
-    CMTask* task = _tasks[i];
-    HeapWord* task_finger = task->finger();
-    if (task_finger != NULL && task_finger < _min_finger) {
-      _min_finger = task_finger;
-    }
-  }
-
-  _should_gray_objects = false;
-
-  // This fixes a very subtle and fustrating bug. It might be the case
-  // that, during en evacuation pause, heap regions that contain
-  // objects that are gray (by being in regions contained in the
-  // region stack) are included in the collection set. Since such gray
-  // objects will be moved, and because it's not easy to redirect
-  // region stack entries to point to a new location (because objects
-  // in one region might be scattered to multiple regions after they
-  // are copied), one option is to ensure that all marked objects
-  // copied during a pause are pushed on the stack. Notice, however,
-  // that this problem can only happen when the region stack is not
-  // empty during an evacuation pause. So, we make the fix a bit less
-  // conservative and ensure that regions are pushed on the stack,
-  // irrespective whether all collection set regions are below the
-  // finger, if the region stack is not empty. This is expected to be
-  // a rare case, so I don't think it's necessary to be smarted about it.
-  if (!region_stack_empty() || has_aborted_regions()) {
-    _should_gray_objects = true;
-  }
-}
-
-void ConcurrentMark::registerCSetRegion(HeapRegion* hr) {
-  guarantee(false, "registerCSetRegion(): don't call this any more");
-
-  if (!concurrent_marking_in_progress()) return;
-
-  HeapWord* region_end = hr->end();
-  if (region_end > _min_finger) {
-    _should_gray_objects = true;
-  }
-}
-
-// Resets the region fields of active CMTasks whose values point
-// into the collection set.
-void ConcurrentMark::reset_active_task_region_fields_in_cset() {
-  guarantee(false, "reset_active_task_region_fields_in_cset(): "
-                   "don't call this any more");
-
-  assert(SafepointSynchronize::is_at_safepoint(), "should be in STW");
-  assert(parallel_marking_threads() <= _max_task_num, "sanity");
-
-  for (int i = 0; i < (int)parallel_marking_threads(); i += 1) {
-    CMTask* task = _tasks[i];
-    HeapWord* task_finger = task->finger();
-    if (task_finger != NULL) {
-      assert(_g1h->is_in_g1_reserved(task_finger), "not in heap");
-      HeapRegion* finger_region = _g1h->heap_region_containing(task_finger);
-      if (finger_region->in_collection_set()) {
-        // The task's current region is in the collection set.
-        // This region will be evacuated in the current GC and
-        // the region fields in the task will be stale.
-        task->giveup_current_region();
-      }
-    }
-  }
-}
-
 // abandon current marking iteration due to a Full GC
 void ConcurrentMark::abort() {
   // Clear all marks to force marking thread to do nothing
@@ -4112,36 +3410,21 @@
   CMBitMap*                   _nextMarkBitMap;
   ConcurrentMark*             _cm;
   CMTask*                     _task;
-  // true if we're scanning a heap region claimed by the task (so that
-  // we move the finger along), false if we're not, i.e. currently when
-  // scanning a heap region popped from the region stack (so that we
-  // do not move the task finger along; it'd be a mistake if we did so).
-  bool                        _scanning_heap_region;
 
 public:
-  CMBitMapClosure(CMTask *task,
-                  ConcurrentMark* cm,
-                  CMBitMap* nextMarkBitMap)
-    :  _task(task), _cm(cm), _nextMarkBitMap(nextMarkBitMap) { }
-
-  void set_scanning_heap_region(bool scanning_heap_region) {
-    _scanning_heap_region = scanning_heap_region;
-  }
+  CMBitMapClosure(CMTask *task, ConcurrentMark* cm, CMBitMap* nextMarkBitMap) :
+    _task(task), _cm(cm), _nextMarkBitMap(nextMarkBitMap) { }
 
   bool do_bit(size_t offset) {
     HeapWord* addr = _nextMarkBitMap->offsetToHeapWord(offset);
     assert(_nextMarkBitMap->isMarked(addr), "invariant");
     assert( addr < _cm->finger(), "invariant");
 
-    if (_scanning_heap_region) {
-      statsOnly( _task->increase_objs_found_on_bitmap() );
-      assert(addr >= _task->finger(), "invariant");
-      // We move that task's local finger along.
-      _task->move_finger_to(addr);
-    } else {
-      // We move the task's region finger along.
-      _task->move_region_finger_to(addr);
-    }
+    statsOnly( _task->increase_objs_found_on_bitmap() );
+    assert(addr >= _task->finger(), "invariant");
+
+    // We move that task's local finger along.
+    _task->move_finger_to(addr);
 
     _task->scan_object(oop(addr));
     // we only partially drain the local queue and global stack
@@ -4249,8 +3532,6 @@
   _curr_region   = NULL;
   _finger        = NULL;
   _region_limit  = NULL;
-
-  _region_finger = NULL;
 }
 
 void CMTask::set_cm_oop_closure(G1CMOopClosure* cm_oop_closure) {
@@ -4271,7 +3552,6 @@
 
   _nextMarkBitMap                = nextMarkBitMap;
   clear_region_fields();
-  assert(_aborted_region.is_empty(), "should have been cleared");
 
   _calls                         = 0;
   _elapsed_time_ms               = 0.0;
@@ -4288,7 +3568,6 @@
   _global_max_size               = 0;
   _global_transfers_to           = 0;
   _global_transfers_from         = 0;
-  _region_stack_pops             = 0;
   _regions_claimed               = 0;
   _objs_found_on_bitmap          = 0;
   _satb_buffers_processed        = 0;
@@ -4663,110 +3942,6 @@
   decrease_limits();
 }
 
-void CMTask::drain_region_stack(BitMapClosure* bc) {
-  assert(_cm->region_stack_empty(), "region stack should be empty");
-  assert(_aborted_region.is_empty(), "aborted region should be empty");
-  return;
-
-  if (has_aborted()) return;
-
-  assert(_region_finger == NULL,
-         "it should be NULL when we're not scanning a region");
-
-  if (!_cm->region_stack_empty() || !_aborted_region.is_empty()) {
-    if (_cm->verbose_low()) {
-      gclog_or_tty->print_cr("[%d] draining region stack, size = %d",
-                             _task_id, _cm->region_stack_size());
-    }
-
-    MemRegion mr;
-
-    if (!_aborted_region.is_empty()) {
-      mr = _aborted_region;
-      _aborted_region = MemRegion();
-
-      if (_cm->verbose_low()) {
-        gclog_or_tty->print_cr("[%d] scanning aborted region "
-                               "[ " PTR_FORMAT ", " PTR_FORMAT " )",
-                               _task_id, mr.start(), mr.end());
-      }
-    } else {
-      mr = _cm->region_stack_pop_lock_free();
-      // it returns MemRegion() if the pop fails
-      statsOnly(if (mr.start() != NULL) ++_region_stack_pops );
-    }
-
-    while (mr.start() != NULL) {
-      if (_cm->verbose_medium()) {
-        gclog_or_tty->print_cr("[%d] we are scanning region "
-                               "["PTR_FORMAT", "PTR_FORMAT")",
-                               _task_id, mr.start(), mr.end());
-      }
-
-      assert(mr.end() <= _cm->finger(),
-             "otherwise the region shouldn't be on the stack");
-      assert(!mr.is_empty(), "Only non-empty regions live on the region stack");
-      if (_nextMarkBitMap->iterate(bc, mr)) {
-        assert(!has_aborted(),
-               "cannot abort the task without aborting the bitmap iteration");
-
-        // We finished iterating over the region without aborting.
-        regular_clock_call();
-        if (has_aborted()) {
-          mr = MemRegion();
-        } else {
-          mr = _cm->region_stack_pop_lock_free();
-          // it returns MemRegion() if the pop fails
-          statsOnly(if (mr.start() != NULL) ++_region_stack_pops );
-        }
-      } else {
-        assert(has_aborted(), "currently the only way to do so");
-
-        // The only way to abort the bitmap iteration is to return
-        // false from the do_bit() method. However, inside the
-        // do_bit() method we move the _region_finger to point to the
-        // object currently being looked at. So, if we bail out, we
-        // have definitely set _region_finger to something non-null.
-        assert(_region_finger != NULL, "invariant");
-
-        // Make sure that any previously aborted region has been
-        // cleared.
-        assert(_aborted_region.is_empty(), "aborted region not cleared");
-
-        // The iteration was actually aborted. So now _region_finger
-        // points to the address of the object we last scanned. If we
-        // leave it there, when we restart this task, we will rescan
-        // the object. It is easy to avoid this. We move the finger by
-        // enough to point to the next possible object header (the
-        // bitmap knows by how much we need to move it as it knows its
-        // granularity).
-        MemRegion newRegion =
-          MemRegion(_nextMarkBitMap->nextWord(_region_finger), mr.end());
-
-        if (!newRegion.is_empty()) {
-          if (_cm->verbose_low()) {
-            gclog_or_tty->print_cr("[%d] recording unscanned region"
-                                   "[" PTR_FORMAT "," PTR_FORMAT ") in CMTask",
-                                   _task_id,
-                                   newRegion.start(), newRegion.end());
-          }
-          // Now record the part of the region we didn't scan to
-          // make sure this task scans it later.
-          _aborted_region = newRegion;
-        }
-        // break from while
-        mr = MemRegion();
-      }
-      _region_finger = NULL;
-    }
-
-    if (_cm->verbose_low()) {
-      gclog_or_tty->print_cr("[%d] drained region stack, size = %d",
-                             _task_id, _cm->region_stack_size());
-    }
-  }
-}
-
 void CMTask::print_stats() {
   gclog_or_tty->print_cr("Marking Stats, task = %d, calls = %d",
                          _task_id, _calls);
@@ -4795,8 +3970,7 @@
                          _global_pushes, _global_pops, _global_max_size);
   gclog_or_tty->print_cr("                transfers to = %d, transfers from = %d",
                          _global_transfers_to,_global_transfers_from);
-  gclog_or_tty->print_cr("  Regions: claimed = %d, Region Stack: pops = %d",
-                         _regions_claimed, _region_stack_pops);
+  gclog_or_tty->print_cr("  Regions: claimed = %d", _regions_claimed);
   gclog_or_tty->print_cr("  SATB buffers: processed = %d", _satb_buffers_processed);
   gclog_or_tty->print_cr("  Steals: attempts = %d, successes = %d",
                          _steal_attempts, _steals);
@@ -4855,15 +4029,7 @@
       popping by other tasks. Only when there is no more work, tasks
       will totally drain the global mark stack.
 
-      (4) Global Region Stack. Entries on it correspond to areas of
-      the bitmap that need to be scanned since they contain gray
-      objects. Pushes on the region stack only happen during
-      evacuation pauses and typically correspond to areas covered by
-      GC LABS. If it overflows, then the marking phase should restart
-      and iterate over the bitmap to identify gray objects. Tasks will
-      try to totally drain the region stack as soon as possible.
-
-      (5) SATB Buffer Queue. This is where completed SATB buffers are
+      (4) SATB Buffer Queue. This is where completed SATB buffers are
       made available. Buffers are regularly removed from this queue
       and scanned for roots, so that the queue doesn't get too
       long. During remark, all completed buffers are processed, as
@@ -4875,12 +4041,12 @@
 
       (1) When the marking phase has been aborted (after a Full GC).
 
-      (2) When a global overflow (either on the global stack or the
-      region stack) has been triggered. Before the task aborts, it
-      will actually sync up with the other tasks to ensure that all
-      the marking data structures (local queues, stacks, fingers etc.)
-      are re-initialised so that when do_marking_step() completes,
-      the marking phase can immediately restart.
+      (2) When a global overflow (on the global stack) has been
+      triggered. Before the task aborts, it will actually sync up with
+      the other tasks to ensure that all the marking data structures
+      (local queues, stacks, fingers etc.)  are re-initialised so that
+      when do_marking_step() completes, the marking phase can
+      immediately restart.
 
       (3) When enough completed SATB buffers are available. The
       do_marking_step() method only tries to drain SATB buffers right
@@ -4923,13 +4089,6 @@
   assert(time_target_ms >= 1.0, "minimum granularity is 1ms");
   assert(concurrent() == _cm->concurrent(), "they should be the same");
 
-  assert(concurrent() || _cm->region_stack_empty(),
-         "the region stack should have been cleared before remark");
-  assert(concurrent() || !_cm->has_aborted_regions(),
-         "aborted regions should have been cleared before remark");
-  assert(_region_finger == NULL,
-         "this should be non-null only when a region is being scanned");
-
   G1CollectorPolicy* g1_policy = _g1h->g1_policy();
   assert(_task_queues != NULL, "invariant");
   assert(_task_queue != NULL, "invariant");
@@ -4978,10 +4137,10 @@
   set_cm_oop_closure(&cm_oop_closure);
 
   if (_cm->has_overflown()) {
-    // This can happen if the region stack or the mark stack overflows
-    // during a GC pause and this task, after a yield point,
-    // restarts. We have to abort as we need to get into the overflow
-    // protocol which happens right at the end of this task.
+    // This can happen if the mark stack overflows during a GC pause
+    // and this task, after a yield point, restarts. We have to abort
+    // as we need to get into the overflow protocol which happens
+    // right at the end of this task.
     set_has_aborted();
   }
 
@@ -4994,17 +4153,6 @@
   drain_local_queue(true);
   drain_global_stack(true);
 
-  // Then totally drain the region stack.  We will not look at
-  // it again before the next invocation of this method. Entries on
-  // the region stack are only added during evacuation pauses, for
-  // which we have to yield. When we do, we abort the task anyway so
-  // it will look at the region stack again when it restarts.
-  bitmap_closure.set_scanning_heap_region(false);
-  drain_region_stack(&bitmap_closure);
-  // ...then partially drain the local queue and the global stack
-  drain_local_queue(true);
-  drain_global_stack(true);
-
   do {
     if (!has_aborted() && _curr_region != NULL) {
       // This means that we're already holding on to a region.
@@ -5034,9 +4182,7 @@
 
       // Let's iterate over the bitmap of the part of the
       // region that is left.
-      bitmap_closure.set_scanning_heap_region(true);
-      if (mr.is_empty() ||
-          _nextMarkBitMap->iterate(&bitmap_closure, mr)) {
+      if (mr.is_empty() || _nextMarkBitMap->iterate(&bitmap_closure, mr)) {
         // We successfully completed iterating over the region. Now,
         // let's give up the region.
         giveup_current_region();
@@ -5061,9 +4207,9 @@
         HeapWord* new_finger = _nextMarkBitMap->nextWord(_finger);
         // Check if bitmap iteration was aborted while scanning the last object
         if (new_finger >= _region_limit) {
-            giveup_current_region();
+          giveup_current_region();
         } else {
-            move_finger_to(new_finger);
+          move_finger_to(new_finger);
         }
       }
     }
@@ -5119,9 +4265,7 @@
 
   if (!has_aborted()) {
     // We cannot check whether the global stack is empty, since other
-    // tasks might be pushing objects to it concurrently. We also cannot
-    // check if the region stack is empty because if a thread is aborting
-    // it can push a partially done region back.
+    // tasks might be pushing objects to it concurrently.
     assert(_cm->out_of_regions(),
            "at this point we should be out of regions");
 
@@ -5145,9 +4289,7 @@
     // we could. Let's try to do some stealing...
 
     // We cannot check whether the global stack is empty, since other
-    // tasks might be pushing objects to it concurrently. We also cannot
-    // check if the region stack is empty because if a thread is aborting
-    // it can push a partially done region back.
+    // tasks might be pushing objects to it concurrently.
     assert(_cm->out_of_regions() && _task_queue->size() == 0,
            "only way to reach here");
 
@@ -5194,9 +4336,7 @@
   // termination protocol.
   if (do_termination && !has_aborted()) {
     // We cannot check whether the global stack is empty, since other
-    // tasks might be concurrently pushing objects on it. We also cannot
-    // check if the region stack is empty because if a thread is aborting
-    // it can push a partially done region back.
+    // tasks might be concurrently pushing objects on it.
     // Separated the asserts so that we know which one fires.
     assert(_cm->out_of_regions(), "only way to reach here");
     assert(_task_queue->size() == 0, "only way to reach here");
@@ -5233,13 +4373,10 @@
       // that, if a condition is false, we can immediately find out
       // which one.
       guarantee(_cm->out_of_regions(), "only way to reach here");
-      guarantee(_aborted_region.is_empty(), "only way to reach here");
-      guarantee(_cm->region_stack_empty(), "only way to reach here");
       guarantee(_cm->mark_stack_empty(), "only way to reach here");
       guarantee(_task_queue->size() == 0, "only way to reach here");
       guarantee(!_cm->has_overflown(), "only way to reach here");
       guarantee(!_cm->mark_stack_overflow(), "only way to reach here");
-      guarantee(!_cm->region_stack_overflow(), "only way to reach here");
 
       if (_cm->verbose_low()) {
         gclog_or_tty->print_cr("[%d] all tasks terminated", _task_id);
@@ -5342,7 +4479,6 @@
     _task_queue(task_queue),
     _task_queues(task_queues),
     _cm_oop_closure(NULL),
-    _aborted_region(MemRegion()),
     _marked_bytes_array(marked_bytes),
     _card_bm(card_bm) {
   guarantee(task_queue != NULL, "invariant");
--- a/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.hpp	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.hpp	Wed Jul 05 18:07:57 2017 +0200
@@ -42,9 +42,7 @@
 class G1CMIsAliveClosure: public BoolObjectClosure {
   G1CollectedHeap* _g1;
  public:
-  G1CMIsAliveClosure(G1CollectedHeap* g1) :
-    _g1(g1)
-  {}
+  G1CMIsAliveClosure(G1CollectedHeap* g1) : _g1(g1) { }
 
   void do_object(oop obj) {
     ShouldNotCallThis();
@@ -111,11 +109,6 @@
     return offsetToHeapWord(heapWordToOffset(addr) + 1);
   }
 
-  void mostly_disjoint_range_union(BitMap*   from_bitmap,
-                                   size_t    from_start_index,
-                                   HeapWord* to_start_word,
-                                   size_t    word_num);
-
   // debugging
   NOT_PRODUCT(bool covers(ReservedSpace rs) const;)
 };
@@ -258,60 +251,6 @@
   void oops_do(OopClosure* f);
 };
 
-class CMRegionStack VALUE_OBJ_CLASS_SPEC {
-  MemRegion* _base;
-  jint _capacity;
-  jint _index;
-  jint _oops_do_bound;
-  bool _overflow;
-public:
-  CMRegionStack();
-  ~CMRegionStack();
-  void allocate(size_t size);
-
-  // This is lock-free; assumes that it will only be called in parallel
-  // with other "push" operations (no pops).
-  void push_lock_free(MemRegion mr);
-
-  // Lock-free; assumes that it will only be called in parallel
-  // with other "pop" operations (no pushes).
-  MemRegion pop_lock_free();
-
-#if 0
-  // The routines that manipulate the region stack with a lock are
-  // not currently used. They should be retained, however, as a
-  // diagnostic aid.
-
-  // These two are the implementations that use a lock. They can be
-  // called concurrently with each other but they should not be called
-  // concurrently with the lock-free versions (push() / pop()).
-  void push_with_lock(MemRegion mr);
-  MemRegion pop_with_lock();
-#endif
-
-  bool isEmpty()    { return _index == 0; }
-  bool isFull()     { return _index == _capacity; }
-
-  bool overflow() { return _overflow; }
-  void clear_overflow() { _overflow = false; }
-
-  int  size() { return _index; }
-
-  // It iterates over the entries in the region stack and it
-  // invalidates (i.e. assigns MemRegion()) the ones that point to
-  // regions in the collection set.
-  bool invalidate_entries_into_cset();
-
-  // This gives an upper bound up to which the iteration in
-  // invalidate_entries_into_cset() will reach. This prevents
-  // newly-added entries to be unnecessarily scanned.
-  void set_oops_do_bound() {
-    _oops_do_bound = _index;
-  }
-
-  void setEmpty()   { _index = 0; clear_overflow(); }
-};
-
 class ForceOverflowSettings VALUE_OBJ_CLASS_SPEC {
 private:
 #ifndef PRODUCT
@@ -408,7 +347,6 @@
   friend class ConcurrentMarkThread;
   friend class CMTask;
   friend class CMBitMapClosure;
-  friend class CSetMarkOopClosure;
   friend class CMGlobalObjectClosure;
   friend class CMRemarkTask;
   friend class CMConcurrentMarkingTask;
@@ -443,7 +381,6 @@
   CMBitMap                _markBitMap2;
   CMBitMapRO*             _prevMarkBitMap; // completed mark bitmap
   CMBitMap*               _nextMarkBitMap; // under-construction mark bitmap
-  bool                    _at_least_one_mark_complete;
 
   BitMap                  _region_bm;
   BitMap                  _card_bm;
@@ -457,7 +394,6 @@
 
   // For gray objects
   CMMarkStack             _markStack; // Grey objects behind global finger.
-  CMRegionStack           _regionStack; // Grey regions behind global finger.
   HeapWord* volatile      _finger;  // the global finger, region aligned,
                                     // always points to the end of the
                                     // last claimed region
@@ -502,18 +438,6 @@
   // verbose level
   CMVerboseLevel          _verbose_level;
 
-  // These two fields are used to implement the optimisation that
-  // avoids pushing objects on the global/region stack if there are
-  // no collection set regions above the lowest finger.
-
-  // This is the lowest finger (among the global and local fingers),
-  // which is calculated before a new collection set is chosen.
-  HeapWord* _min_finger;
-  // If this flag is true, objects/regions that are marked below the
-  // finger should be pushed on the stack(s). If this is flag is
-  // false, it is safe not to push them on the stack(s).
-  bool      _should_gray_objects;
-
   // All of these times are in ms.
   NumberSeq _init_times;
   NumberSeq _remark_times;
@@ -604,7 +528,7 @@
   CMTaskQueueSet* task_queues()  { return _task_queues; }
 
   // Access / manipulation of the overflow flag which is set to
-  // indicate that the global stack or region stack has overflown
+  // indicate that the global stack has overflown
   bool has_overflown()           { return _has_overflown; }
   void set_has_overflown()       { _has_overflown = true; }
   void clear_has_overflown()     { _has_overflown = false; }
@@ -684,68 +608,6 @@
   bool mark_stack_overflow()              { return _markStack.overflow(); }
   bool mark_stack_empty()                 { return _markStack.isEmpty(); }
 
-  // (Lock-free) Manipulation of the region stack
-  bool region_stack_push_lock_free(MemRegion mr) {
-    // Currently we only call the lock-free version during evacuation
-    // pauses.
-    assert(SafepointSynchronize::is_at_safepoint(), "world should be stopped");
-
-    _regionStack.push_lock_free(mr);
-    if (_regionStack.overflow()) {
-      set_has_overflown();
-      return false;
-    }
-    return true;
-  }
-
-  // Lock-free version of region-stack pop. Should only be
-  // called in tandem with other lock-free pops.
-  MemRegion region_stack_pop_lock_free() {
-    return _regionStack.pop_lock_free();
-  }
-
-#if 0
-  // The routines that manipulate the region stack with a lock are
-  // not currently used. They should be retained, however, as a
-  // diagnostic aid.
-
-  bool region_stack_push_with_lock(MemRegion mr) {
-    // Currently we only call the lock-based version during either
-    // concurrent marking or remark.
-    assert(!SafepointSynchronize::is_at_safepoint() || !concurrent(),
-           "if we are at a safepoint it should be the remark safepoint");
-
-    _regionStack.push_with_lock(mr);
-    if (_regionStack.overflow()) {
-      set_has_overflown();
-      return false;
-    }
-    return true;
-  }
-
-  MemRegion region_stack_pop_with_lock() {
-    // Currently we only call the lock-based version during either
-    // concurrent marking or remark.
-    assert(!SafepointSynchronize::is_at_safepoint() || !concurrent(),
-           "if we are at a safepoint it should be the remark safepoint");
-
-    return _regionStack.pop_with_lock();
-  }
-#endif
-
-  int region_stack_size()               { return _regionStack.size(); }
-  bool region_stack_overflow()          { return _regionStack.overflow(); }
-  bool region_stack_empty()             { return _regionStack.isEmpty(); }
-
-  // Iterate over any regions that were aborted while draining the
-  // region stack (any such regions are saved in the corresponding
-  // CMTask) and invalidate (i.e. assign to the empty MemRegion())
-  // any regions that point into the collection set.
-  bool invalidate_aborted_regions_in_cset();
-
-  // Returns true if there are any aborted memory regions.
-  bool has_aborted_regions();
-
   CMRootRegions* root_regions() { return &_root_regions; }
 
   bool concurrent_marking_in_progress() {
@@ -774,10 +636,6 @@
     return _task_queues->steal(task_num, hash_seed, obj);
   }
 
-  // It grays an object by first marking it. Then, if it's behind the
-  // global finger, it also pushes it on the global stack.
-  void deal_with_reference(oop obj);
-
   ConcurrentMark(ReservedSpace rs, int max_regions);
   ~ConcurrentMark();
 
@@ -810,22 +668,6 @@
   inline void grayRoot(oop obj, size_t word_size,
                        uint worker_id, HeapRegion* hr = NULL);
 
-  // It's used during evacuation pauses to gray a region, if
-  // necessary, and it's MT-safe. It assumes that the caller has
-  // marked any objects on that region. If _should_gray_objects is
-  // true and we're still doing concurrent marking, the region is
-  // pushed on the region stack, if it is located below the global
-  // finger, otherwise we do nothing.
-  void grayRegionIfNecessary(MemRegion mr);
-
-  // It's used during evacuation pauses to mark and, if necessary,
-  // gray a single object and it's MT-safe. It assumes the caller did
-  // not mark the object. If _should_gray_objects is true and we're
-  // still doing concurrent marking, the objects is pushed on the
-  // global stack, if it is located below the global finger, otherwise
-  // we do nothing.
-  void markAndGrayObjectIfNecessary(oop p);
-
   // It iterates over the heap and for each object it comes across it
   // will dump the contents of its reference fields, as well as
   // liveness information for the object and its referents. The dump
@@ -869,10 +711,6 @@
   // Do concurrent phase of marking, to a tentative transitive closure.
   void markFromRoots();
 
-  // Process all unprocessed SATB buffers. It is called at the
-  // beginning of an evacuation pause.
-  void drainAllSATBBuffers();
-
   void checkpointRootsFinal(bool clear_all_soft_refs);
   void checkpointRootsFinalWork();
   void cleanup();
@@ -899,10 +737,6 @@
     _markStack.note_end_of_gc();
   }
 
-  // Iterate over the oops in the mark stack and all local queues. It
-  // also calls invalidate_entries_into_cset() on the region stack.
-  void oops_do(OopClosure* f);
-
   // Verify that there are no CSet oops on the stacks (taskqueues /
   // global mark stack), enqueued SATB buffers, per-thread SATB
   // buffers, and fingers (global / per-task). The boolean parameters
@@ -919,40 +753,6 @@
   // unless the force parameter is true.
   void update_g1_committed(bool force = false);
 
-  void complete_marking_in_collection_set();
-
-  // It indicates that a new collection set is being chosen.
-  void newCSet();
-
-  // It registers a collection set heap region with CM. This is used
-  // to determine whether any heap regions are located above the finger.
-  void registerCSetRegion(HeapRegion* hr);
-
-  // Resets the region fields of any active CMTask whose region fields
-  // are in the collection set (i.e. the region currently claimed by
-  // the CMTask will be evacuated and may be used, subsequently, as
-  // an alloc region). When this happens the region fields in the CMTask
-  // are stale and, hence, should be cleared causing the worker thread
-  // to claim a new region.
-  void reset_active_task_region_fields_in_cset();
-
-  // Registers the maximum region-end associated with a set of
-  // regions with CM. Again this is used to determine whether any
-  // heap regions are located above the finger.
-  void register_collection_set_finger(HeapWord* max_finger) {
-    // max_finger is the highest heap region end of the regions currently
-    // contained in the collection set. If this value is larger than
-    // _min_finger then we need to gray objects.
-    // This routine is like registerCSetRegion but for an entire
-    // collection of regions.
-    if (max_finger > _min_finger) {
-      _should_gray_objects = true;
-    }
-  }
-
-  // Returns "true" if at least one mark has been completed.
-  bool at_least_one_mark_complete() { return _at_least_one_mark_complete; }
-
   bool isMarked(oop p) const {
     assert(p != NULL && p->is_oop(), "expected an oop");
     HeapWord* addr = (HeapWord*)p;
@@ -1164,23 +964,6 @@
   // limit of the region this task is scanning, NULL if we're not scanning one
   HeapWord*                   _region_limit;
 
-  // This is used only when we scan regions popped from the region
-  // stack. It records what the last object on such a region we
-  // scanned was. It is used to ensure that, if we abort region
-  // iteration, we do not rescan the first part of the region. This
-  // should be NULL when we're not scanning a region from the region
-  // stack.
-  HeapWord*                   _region_finger;
-
-  // If we abort while scanning a region we record the remaining
-  // unscanned portion and check this field when marking restarts.
-  // This avoids having to push on the region stack while other
-  // marking threads may still be popping regions.
-  // If we were to push the unscanned portion directly to the
-  // region stack then we would need to using locking versions
-  // of the push and pop operations.
-  MemRegion                   _aborted_region;
-
   // the number of words this task has scanned
   size_t                      _words_scanned;
   // When _words_scanned reaches this limit, the regular clock is
@@ -1268,8 +1051,6 @@
   int                         _global_transfers_to;
   int                         _global_transfers_from;
 
-  int                         _region_stack_pops;
-
   int                         _regions_claimed;
   int                         _objs_found_on_bitmap;
 
@@ -1347,15 +1128,6 @@
   bool has_timed_out()          { return _has_timed_out; }
   bool claimed()                { return _claimed; }
 
-  // Support routines for the partially scanned region that may be
-  // recorded as a result of aborting while draining the CMRegionStack
-  MemRegion aborted_region()    { return _aborted_region; }
-  void set_aborted_region(MemRegion mr)
-                                { _aborted_region = mr; }
-
-  // Clears any recorded partially scanned region
-  void clear_aborted_region()   { set_aborted_region(MemRegion()); }
-
   void set_cm_oop_closure(G1CMOopClosure* cm_oop_closure);
 
   // It grays the object by marking it and, if necessary, pushing it
@@ -1385,22 +1157,12 @@
   // buffers are available.
   void drain_satb_buffers();
 
-  // It keeps popping regions from the region stack and processing
-  // them until the region stack is empty.
-  void drain_region_stack(BitMapClosure* closure);
-
   // moves the local finger to a new location
   inline void move_finger_to(HeapWord* new_finger) {
     assert(new_finger >= _finger && new_finger < _region_limit, "invariant");
     _finger = new_finger;
   }
 
-  // moves the region finger to a new location
-  inline void move_region_finger_to(HeapWord* new_finger) {
-    assert(new_finger < _cm->finger(), "invariant");
-    _region_finger = new_finger;
-  }
-
   CMTask(int task_num, ConcurrentMark *cm,
          size_t* marked_bytes, BitMap* card_bm,
          CMTaskQueue* task_queue, CMTaskQueueSet* task_queues);
--- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp	Wed Jul 05 18:07:57 2017 +0200
@@ -4355,7 +4355,8 @@
   _during_initial_mark(_g1->g1_policy()->during_initial_mark_pause()),
   _mark_in_progress(_g1->mark_in_progress()) { }
 
-void G1ParCopyHelper::mark_object(oop obj) {
+template <bool do_gen_barrier, G1Barrier barrier, bool do_mark_object>
+void G1ParCopyClosure<do_gen_barrier, barrier, do_mark_object>::mark_object(oop obj) {
 #ifdef ASSERT
   HeapRegion* hr = _g1->heap_region_containing(obj);
   assert(hr != NULL, "sanity");
@@ -4366,7 +4367,9 @@
   _cm->grayRoot(obj, (size_t) obj->size(), _worker_id);
 }
 
-void G1ParCopyHelper::mark_forwarded_object(oop from_obj, oop to_obj) {
+template <bool do_gen_barrier, G1Barrier barrier, bool do_mark_object>
+void G1ParCopyClosure<do_gen_barrier, barrier, do_mark_object>
+  ::mark_forwarded_object(oop from_obj, oop to_obj) {
 #ifdef ASSERT
   assert(from_obj->is_forwarded(), "from obj should be forwarded");
   assert(from_obj->forwardee() == to_obj, "to obj should be the forwardee");
@@ -4388,7 +4391,9 @@
   _cm->grayRoot(to_obj, (size_t) from_obj->size(), _worker_id);
 }
 
-oop G1ParCopyHelper::copy_to_survivor_space(oop old) {
+template <bool do_gen_barrier, G1Barrier barrier, bool do_mark_object>
+oop G1ParCopyClosure<do_gen_barrier, barrier, do_mark_object>
+  ::copy_to_survivor_space(oop old) {
   size_t    word_sz = old->size();
   HeapRegion* from_region = _g1->heap_region_containing_raw(old);
   // +1 to make the -1 indexes valid...
@@ -4457,8 +4462,8 @@
     } else {
       // No point in using the slower heap_region_containing() method,
       // given that we know obj is in the heap.
-      _scanner->set_region(_g1->heap_region_containing_raw(obj));
-      obj->oop_iterate_backwards(_scanner);
+      _scanner.set_region(_g1->heap_region_containing_raw(obj));
+      obj->oop_iterate_backwards(&_scanner);
     }
   } else {
     _par_scan_state->undo_allocation(alloc_purpose, obj_ptr, word_sz);
@@ -4675,67 +4680,74 @@
     double start_time_ms = os::elapsedTime() * 1000.0;
     _g1h->g1_policy()->record_gc_worker_start_time(worker_id, start_time_ms);
 
-    ResourceMark rm;
-    HandleMark   hm;
-
-    ReferenceProcessor*             rp = _g1h->ref_processor_stw();
-
-    G1ParScanThreadState            pss(_g1h, worker_id);
-    G1ParScanHeapEvacClosure        scan_evac_cl(_g1h, &pss, rp);
-    G1ParScanHeapEvacFailureClosure evac_failure_cl(_g1h, &pss, rp);
-    G1ParScanPartialArrayClosure    partial_scan_cl(_g1h, &pss, rp);
-
-    pss.set_evac_closure(&scan_evac_cl);
-    pss.set_evac_failure_closure(&evac_failure_cl);
-    pss.set_partial_scan_closure(&partial_scan_cl);
-
-    G1ParScanExtRootClosure        only_scan_root_cl(_g1h, &pss, rp);
-    G1ParScanPermClosure           only_scan_perm_cl(_g1h, &pss, rp);
-
-    G1ParScanAndMarkExtRootClosure scan_mark_root_cl(_g1h, &pss, rp);
-    G1ParScanAndMarkPermClosure    scan_mark_perm_cl(_g1h, &pss, rp);
-
-    OopClosure*                    scan_root_cl = &only_scan_root_cl;
-    OopsInHeapRegionClosure*       scan_perm_cl = &only_scan_perm_cl;
-
-    if (_g1h->g1_policy()->during_initial_mark_pause()) {
-      // We also need to mark copied objects.
-      scan_root_cl = &scan_mark_root_cl;
-      scan_perm_cl = &scan_mark_perm_cl;
+    {
+      ResourceMark rm;
+      HandleMark   hm;
+
+      ReferenceProcessor*             rp = _g1h->ref_processor_stw();
+
+      G1ParScanThreadState            pss(_g1h, worker_id);
+      G1ParScanHeapEvacClosure        scan_evac_cl(_g1h, &pss, rp);
+      G1ParScanHeapEvacFailureClosure evac_failure_cl(_g1h, &pss, rp);
+      G1ParScanPartialArrayClosure    partial_scan_cl(_g1h, &pss, rp);
+
+      pss.set_evac_closure(&scan_evac_cl);
+      pss.set_evac_failure_closure(&evac_failure_cl);
+      pss.set_partial_scan_closure(&partial_scan_cl);
+
+      G1ParScanExtRootClosure        only_scan_root_cl(_g1h, &pss, rp);
+      G1ParScanPermClosure           only_scan_perm_cl(_g1h, &pss, rp);
+
+      G1ParScanAndMarkExtRootClosure scan_mark_root_cl(_g1h, &pss, rp);
+      G1ParScanAndMarkPermClosure    scan_mark_perm_cl(_g1h, &pss, rp);
+
+      OopClosure*                    scan_root_cl = &only_scan_root_cl;
+      OopsInHeapRegionClosure*       scan_perm_cl = &only_scan_perm_cl;
+
+      if (_g1h->g1_policy()->during_initial_mark_pause()) {
+        // We also need to mark copied objects.
+        scan_root_cl = &scan_mark_root_cl;
+        scan_perm_cl = &scan_mark_perm_cl;
+      }
+
+      G1ParPushHeapRSClosure          push_heap_rs_cl(_g1h, &pss);
+
+      pss.start_strong_roots();
+      _g1h->g1_process_strong_roots(/* not collecting perm */ false,
+                                    SharedHeap::SO_AllClasses,
+                                    scan_root_cl,
+                                    &push_heap_rs_cl,
+                                    scan_perm_cl,
+                                    worker_id);
+      pss.end_strong_roots();
+
+      {
+        double start = os::elapsedTime();
+        G1ParEvacuateFollowersClosure evac(_g1h, &pss, _queues, &_terminator);
+        evac.do_void();
+        double elapsed_ms = (os::elapsedTime()-start)*1000.0;
+        double term_ms = pss.term_time()*1000.0;
+        _g1h->g1_policy()->record_obj_copy_time(worker_id, elapsed_ms-term_ms);
+        _g1h->g1_policy()->record_termination(worker_id, term_ms, pss.term_attempts());
+      }
+      _g1h->g1_policy()->record_thread_age_table(pss.age_table());
+      _g1h->update_surviving_young_words(pss.surviving_young_words()+1);
+
+      // Clean up any par-expanded rem sets.
+      HeapRegionRemSet::par_cleanup();
+
+      if (ParallelGCVerbose) {
+        MutexLocker x(stats_lock());
+        pss.print_termination_stats(worker_id);
+      }
+
+      assert(pss.refs()->is_empty(), "should be empty");
+
+      // Close the inner scope so that the ResourceMark and HandleMark
+      // destructors are executed here and are included as part of the
+      // "GC Worker Time".
     }
 
-    G1ParPushHeapRSClosure          push_heap_rs_cl(_g1h, &pss);
-
-    pss.start_strong_roots();
-    _g1h->g1_process_strong_roots(/* not collecting perm */ false,
-                                  SharedHeap::SO_AllClasses,
-                                  scan_root_cl,
-                                  &push_heap_rs_cl,
-                                  scan_perm_cl,
-                                  worker_id);
-    pss.end_strong_roots();
-
-    {
-      double start = os::elapsedTime();
-      G1ParEvacuateFollowersClosure evac(_g1h, &pss, _queues, &_terminator);
-      evac.do_void();
-      double elapsed_ms = (os::elapsedTime()-start)*1000.0;
-      double term_ms = pss.term_time()*1000.0;
-      _g1h->g1_policy()->record_obj_copy_time(worker_id, elapsed_ms-term_ms);
-      _g1h->g1_policy()->record_termination(worker_id, term_ms, pss.term_attempts());
-    }
-    _g1h->g1_policy()->record_thread_age_table(pss.age_table());
-    _g1h->update_surviving_young_words(pss.surviving_young_words()+1);
-
-    // Clean up any par-expanded rem sets.
-    HeapRegionRemSet::par_cleanup();
-
-    if (ParallelGCVerbose) {
-      MutexLocker x(stats_lock());
-      pss.print_termination_stats(worker_id);
-    }
-
-    assert(pss.refs()->is_empty(), "should be empty");
     double end_time_ms = os::elapsedTime() * 1000.0;
     _g1h->g1_policy()->record_gc_worker_end_time(worker_id, end_time_ms);
   }
@@ -4743,6 +4755,67 @@
 
 // *** Common G1 Evacuation Stuff
 
+// Closures that support the filtering of CodeBlobs scanned during
+// external root scanning.
+
+// Closure applied to reference fields in code blobs (specifically nmethods)
+// to determine whether an nmethod contains references that point into
+// the collection set. Used as a predicate when walking code roots so
+// that only nmethods that point into the collection set are added to the
+// 'marked' list.
+
+class G1FilteredCodeBlobToOopClosure : public CodeBlobToOopClosure {
+
+  class G1PointsIntoCSOopClosure : public OopClosure {
+    G1CollectedHeap* _g1;
+    bool _points_into_cs;
+  public:
+    G1PointsIntoCSOopClosure(G1CollectedHeap* g1) :
+      _g1(g1), _points_into_cs(false) { }
+
+    bool points_into_cs() const { return _points_into_cs; }
+
+    template <class T>
+    void do_oop_nv(T* p) {
+      if (!_points_into_cs) {
+        T heap_oop = oopDesc::load_heap_oop(p);
+        if (!oopDesc::is_null(heap_oop) &&
+            _g1->in_cset_fast_test(oopDesc::decode_heap_oop_not_null(heap_oop))) {
+          _points_into_cs = true;
+        }
+      }
+    }
+
+    virtual void do_oop(oop* p)        { do_oop_nv(p); }
+    virtual void do_oop(narrowOop* p)  { do_oop_nv(p); }
+  };
+
+  G1CollectedHeap* _g1;
+
+public:
+  G1FilteredCodeBlobToOopClosure(G1CollectedHeap* g1, OopClosure* cl) :
+    CodeBlobToOopClosure(cl, true), _g1(g1) { }
+
+  virtual void do_code_blob(CodeBlob* cb) {
+    nmethod* nm = cb->as_nmethod_or_null();
+    if (nm != NULL && !(nm->test_oops_do_mark())) {
+      G1PointsIntoCSOopClosure predicate_cl(_g1);
+      nm->oops_do(&predicate_cl);
+
+      if (predicate_cl.points_into_cs()) {
+        // At least one of the reference fields or the oop relocations
+        // in the nmethod points into the collection set. We have to
+        // 'mark' this nmethod.
+        // Note: Revisit the following if CodeBlobToOopClosure::do_code_blob()
+        // or MarkingCodeBlobClosure::do_code_blob() change.
+        if (!nm->test_set_oops_do_mark()) {
+          do_newly_marked_nmethod(nm);
+        }
+      }
+    }
+  }
+};
+
 // This method is run in a GC worker.
 
 void
@@ -4764,7 +4837,7 @@
 
   // Walk the code cache w/o buffering, because StarTask cannot handle
   // unaligned oop locations.
-  CodeBlobToOopClosure eager_scan_code_roots(scan_non_heap_roots, /*do_marking=*/ true);
+  G1FilteredCodeBlobToOopClosure eager_scan_code_roots(this, scan_non_heap_roots);
 
   process_strong_roots(false, // no scoping; this is parallel code
                        collecting_perm_gen, so,
@@ -5378,25 +5451,39 @@
   rem_set()->prepare_for_younger_refs_iterate(true);
 
   assert(dirty_card_queue_set().completed_buffers_num() == 0, "Should be empty");
-  double start_par = os::elapsedTime();
-
-  if (G1CollectedHeap::use_parallel_gc_threads()) {
-    // The individual threads will set their evac-failure closures.
+  double start_par_time_sec = os::elapsedTime();
+  double end_par_time_sec;
+
+  {
     StrongRootsScope srs(this);
-    if (ParallelGCVerbose) G1ParScanThreadState::print_termination_stats_hdr();
-    // These tasks use ShareHeap::_process_strong_tasks
-    assert(UseDynamicNumberOfGCThreads ||
-           workers()->active_workers() == workers()->total_workers(),
-           "If not dynamic should be using all the  workers");
-    workers()->run_task(&g1_par_task);
-  } else {
-    StrongRootsScope srs(this);
-    g1_par_task.set_for_termination(n_workers);
-    g1_par_task.work(0);
-  }
-
-  double par_time = (os::elapsedTime() - start_par) * 1000.0;
-  g1_policy()->record_par_time(par_time);
+
+    if (G1CollectedHeap::use_parallel_gc_threads()) {
+      // The individual threads will set their evac-failure closures.
+      if (ParallelGCVerbose) G1ParScanThreadState::print_termination_stats_hdr();
+      // These tasks use ShareHeap::_process_strong_tasks
+      assert(UseDynamicNumberOfGCThreads ||
+             workers()->active_workers() == workers()->total_workers(),
+             "If not dynamic should be using all the  workers");
+      workers()->run_task(&g1_par_task);
+    } else {
+      g1_par_task.set_for_termination(n_workers);
+      g1_par_task.work(0);
+    }
+    end_par_time_sec = os::elapsedTime();
+
+    // Closing the inner scope will execute the destructor
+    // for the StrongRootsScope object. We record the current
+    // elapsed time before closing the scope so that time
+    // taken for the SRS destructor is NOT included in the
+    // reported parallel time.
+  }
+
+  double par_time_ms = (end_par_time_sec - start_par_time_sec) * 1000.0;
+  g1_policy()->record_par_time(par_time_ms);
+
+  double code_root_fixup_time_ms =
+        (os::elapsedTime() - end_par_time_sec) * 1000.0;
+  g1_policy()->record_code_root_fixup_time(code_root_fixup_time_ms);
 
   set_par_threads(0);
 
--- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp	Wed Jul 05 18:07:57 2017 +0200
@@ -199,7 +199,8 @@
   friend class OldGCAllocRegion;
 
   // Closures used in implementation.
-  friend class G1ParCopyHelper;
+  template <bool do_gen_barrier, G1Barrier barrier, bool do_mark_object>
+  friend class G1ParCopyClosure;
   friend class G1IsAliveClosure;
   friend class G1EvacuateFollowersClosure;
   friend class G1ParScanThreadState;
@@ -1676,202 +1677,6 @@
   size_t _max_heap_capacity;
 };
 
-#define use_local_bitmaps         1
-#define verify_local_bitmaps      0
-#define oop_buffer_length       256
-
-#ifndef PRODUCT
-class GCLabBitMap;
-class GCLabBitMapClosure: public BitMapClosure {
-private:
-  ConcurrentMark* _cm;
-  GCLabBitMap*    _bitmap;
-
-public:
-  GCLabBitMapClosure(ConcurrentMark* cm,
-                     GCLabBitMap* bitmap) {
-    _cm     = cm;
-    _bitmap = bitmap;
-  }
-
-  virtual bool do_bit(size_t offset);
-};
-#endif // !PRODUCT
-
-class GCLabBitMap: public BitMap {
-private:
-  ConcurrentMark* _cm;
-
-  int       _shifter;
-  size_t    _bitmap_word_covers_words;
-
-  // beginning of the heap
-  HeapWord* _heap_start;
-
-  // this is the actual start of the GCLab
-  HeapWord* _real_start_word;
-
-  // this is the actual end of the GCLab
-  HeapWord* _real_end_word;
-
-  // this is the first word, possibly located before the actual start
-  // of the GCLab, that corresponds to the first bit of the bitmap
-  HeapWord* _start_word;
-
-  // size of a GCLab in words
-  size_t _gclab_word_size;
-
-  static int shifter() {
-    return MinObjAlignment - 1;
-  }
-
-  // how many heap words does a single bitmap word corresponds to?
-  static size_t bitmap_word_covers_words() {
-    return BitsPerWord << shifter();
-  }
-
-  size_t gclab_word_size() const {
-    return _gclab_word_size;
-  }
-
-  // Calculates actual GCLab size in words
-  size_t gclab_real_word_size() const {
-    return bitmap_size_in_bits(pointer_delta(_real_end_word, _start_word))
-           / BitsPerWord;
-  }
-
-  static size_t bitmap_size_in_bits(size_t gclab_word_size) {
-    size_t bits_in_bitmap = gclab_word_size >> shifter();
-    // We are going to ensure that the beginning of a word in this
-    // bitmap also corresponds to the beginning of a word in the
-    // global marking bitmap. To handle the case where a GCLab
-    // starts from the middle of the bitmap, we need to add enough
-    // space (i.e. up to a bitmap word) to ensure that we have
-    // enough bits in the bitmap.
-    return bits_in_bitmap + BitsPerWord - 1;
-  }
-public:
-  GCLabBitMap(HeapWord* heap_start, size_t gclab_word_size)
-    : BitMap(bitmap_size_in_bits(gclab_word_size)),
-      _cm(G1CollectedHeap::heap()->concurrent_mark()),
-      _shifter(shifter()),
-      _bitmap_word_covers_words(bitmap_word_covers_words()),
-      _heap_start(heap_start),
-      _gclab_word_size(gclab_word_size),
-      _real_start_word(NULL),
-      _real_end_word(NULL),
-      _start_word(NULL) {
-    guarantee(false, "GCLabBitMap::GCLabBitmap(): don't call this any more");
-  }
-
-  inline unsigned heapWordToOffset(HeapWord* addr) {
-    unsigned offset = (unsigned) pointer_delta(addr, _start_word) >> _shifter;
-    assert(offset < size(), "offset should be within bounds");
-    return offset;
-  }
-
-  inline HeapWord* offsetToHeapWord(size_t offset) {
-    HeapWord* addr =  _start_word + (offset << _shifter);
-    assert(_real_start_word <= addr && addr < _real_end_word, "invariant");
-    return addr;
-  }
-
-  bool fields_well_formed() {
-    bool ret1 = (_real_start_word == NULL) &&
-                (_real_end_word == NULL) &&
-                (_start_word == NULL);
-    if (ret1)
-      return true;
-
-    bool ret2 = _real_start_word >= _start_word &&
-      _start_word < _real_end_word &&
-      (_real_start_word + _gclab_word_size) == _real_end_word &&
-      (_start_word + _gclab_word_size + _bitmap_word_covers_words)
-                                                              > _real_end_word;
-    return ret2;
-  }
-
-  inline bool mark(HeapWord* addr) {
-    guarantee(use_local_bitmaps, "invariant");
-    assert(fields_well_formed(), "invariant");
-
-    if (addr >= _real_start_word && addr < _real_end_word) {
-      assert(!isMarked(addr), "should not have already been marked");
-
-      // first mark it on the bitmap
-      at_put(heapWordToOffset(addr), true);
-
-      return true;
-    } else {
-      return false;
-    }
-  }
-
-  inline bool isMarked(HeapWord* addr) {
-    guarantee(use_local_bitmaps, "invariant");
-    assert(fields_well_formed(), "invariant");
-
-    return at(heapWordToOffset(addr));
-  }
-
-  void set_buffer(HeapWord* start) {
-    guarantee(false, "set_buffer(): don't call this any more");
-
-    guarantee(use_local_bitmaps, "invariant");
-    clear();
-
-    assert(start != NULL, "invariant");
-    _real_start_word = start;
-    _real_end_word   = start + _gclab_word_size;
-
-    size_t diff =
-      pointer_delta(start, _heap_start) % _bitmap_word_covers_words;
-    _start_word = start - diff;
-
-    assert(fields_well_formed(), "invariant");
-  }
-
-#ifndef PRODUCT
-  void verify() {
-    // verify that the marks have been propagated
-    GCLabBitMapClosure cl(_cm, this);
-    iterate(&cl);
-  }
-#endif // PRODUCT
-
-  void retire() {
-    guarantee(false, "retire(): don't call this any more");
-
-    guarantee(use_local_bitmaps, "invariant");
-    assert(fields_well_formed(), "invariant");
-
-    if (_start_word != NULL) {
-      CMBitMap*       mark_bitmap = _cm->nextMarkBitMap();
-
-      // this means that the bitmap was set up for the GCLab
-      assert(_real_start_word != NULL && _real_end_word != NULL, "invariant");
-
-      mark_bitmap->mostly_disjoint_range_union(this,
-                                0, // always start from the start of the bitmap
-                                _start_word,
-                                gclab_real_word_size());
-      _cm->grayRegionIfNecessary(MemRegion(_real_start_word, _real_end_word));
-
-#ifndef PRODUCT
-      if (use_local_bitmaps && verify_local_bitmaps)
-        verify();
-#endif // PRODUCT
-    } else {
-      assert(_real_start_word == NULL && _real_end_word == NULL, "invariant");
-    }
-  }
-
-  size_t bitmap_size_in_words() const {
-    return (bitmap_size_in_bits(gclab_word_size()) + BitsPerWord - 1) / BitsPerWord;
-  }
-
-};
-
 class G1ParGCAllocBuffer: public ParGCAllocBuffer {
 private:
   bool        _retired;
--- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp	Wed Jul 05 18:07:57 2017 +0200
@@ -140,7 +140,6 @@
   _summary(new Summary()),
 
   _cur_clear_ct_time_ms(0.0),
-  _mark_closure_time_ms(0.0),
   _root_region_scan_wait_time_ms(0.0),
 
   _cur_ref_proc_time_ms(0.0),
@@ -944,9 +943,6 @@
     _cur_aux_times_set[i] = false;
   }
 
-  // This is initialized to zero here and is set during
-  // the evacuation pause if marking is in progress.
-  _cur_satb_drain_time_ms = 0.0;
   // This is initialized to zero here and is set during the evacuation
   // pause if we actually waited for the root region scanning to finish.
   _root_region_scan_wait_time_ms = 0.0;
@@ -1246,11 +1242,6 @@
 
   double other_time_ms = elapsed_ms;
 
-  // Subtract the SATB drain time. It's initialized to zero at the
-  // start of the pause and is updated during the pause if marking
-  // is in progress.
-  other_time_ms -= _cur_satb_drain_time_ms;
-
   // Subtract the root region scanning wait time. It's initialized to
   // zero at the start of the pause.
   other_time_ms -= _root_region_scan_wait_time_ms;
@@ -1261,15 +1252,13 @@
     other_time_ms -= known_time;
   }
 
+  // Now subtract the time taken to fix up roots in generated code
+  other_time_ms -= _cur_collection_code_root_fixup_time_ms;
+
   // Subtract the time taken to clean the card table from the
   // current value of "other time"
   other_time_ms -= _cur_clear_ct_time_ms;
 
-  // Subtract the time spent completing marking in the collection
-  // set. Note if marking is not in progress during the pause
-  // the value of _mark_closure_time_ms will be zero.
-  other_time_ms -= _mark_closure_time_ms;
-
   // TraceGen0Time and TraceGen1Time summary info updating.
   _all_pause_times_ms->add(elapsed_ms);
 
@@ -1280,16 +1269,8 @@
     MainBodySummary* body_summary = _summary->main_body_summary();
     assert(body_summary != NULL, "should not be null!");
 
-    // This will be non-zero iff marking is currently in progress (i.e.
-    // _g1->mark_in_progress() == true) and the currrent pause was not
-    // an initial mark pause. Since the body_summary items are NumberSeqs,
-    // however, they have to be consistent and updated in lock-step with
-    // each other. Therefore we unconditionally record the SATB drain
-    // time - even if it's zero.
-    body_summary->record_satb_drain_time_ms(_cur_satb_drain_time_ms);
     body_summary->record_root_region_scan_wait_time_ms(
                                                _root_region_scan_wait_time_ms);
-
     body_summary->record_ext_root_scan_time_ms(ext_root_scan_time);
     body_summary->record_satb_filtering_time_ms(satb_filtering_time);
     body_summary->record_update_rs_time_ms(update_rs_time);
@@ -1305,7 +1286,6 @@
       body_summary->record_parallel_other_time_ms(parallel_other_time);
     }
 
-    body_summary->record_mark_closure_time_ms(_mark_closure_time_ms);
     body_summary->record_clear_ct_time_ms(_cur_clear_ct_time_ms);
 
     // We exempt parallel collection from this check because Alloc Buffer
@@ -1401,10 +1381,10 @@
       print_par_stats(2, "Object Copy", _par_last_obj_copy_times_ms);
       print_par_stats(2, "Termination", _par_last_termination_times_ms);
       print_par_sizes(3, "Termination Attempts", _par_last_termination_attempts);
-      print_par_stats(2, "GC Worker End", _par_last_gc_worker_end_times_ms);
 
       for (int i = 0; i < _parallel_gc_threads; i++) {
-        _par_last_gc_worker_times_ms[i] = _par_last_gc_worker_end_times_ms[i] - _par_last_gc_worker_start_times_ms[i];
+        _par_last_gc_worker_times_ms[i] = _par_last_gc_worker_end_times_ms[i] -
+                                          _par_last_gc_worker_start_times_ms[i];
 
         double worker_known_time = _par_last_ext_root_scan_times_ms[i] +
                                    _par_last_satb_filtering_times_ms[i] +
@@ -1413,10 +1393,13 @@
                                    _par_last_obj_copy_times_ms[i] +
                                    _par_last_termination_times_ms[i];
 
-        _par_last_gc_worker_other_times_ms[i] = _cur_collection_par_time_ms - worker_known_time;
+        _par_last_gc_worker_other_times_ms[i] = _par_last_gc_worker_times_ms[i] -
+                                                worker_known_time;
       }
-      print_par_stats(2, "GC Worker", _par_last_gc_worker_times_ms);
+
       print_par_stats(2, "GC Worker Other", _par_last_gc_worker_other_times_ms);
+      print_par_stats(2, "GC Worker Total", _par_last_gc_worker_times_ms);
+      print_par_stats(2, "GC Worker End", _par_last_gc_worker_end_times_ms);
     } else {
       print_stats(1, "Ext Root Scanning", ext_root_scan_time);
       if (print_marking_info) {
@@ -1427,9 +1410,7 @@
       print_stats(1, "Scan RS", scan_rs_time);
       print_stats(1, "Object Copying", obj_copy_time);
     }
-    if (print_marking_info) {
-      print_stats(1, "Complete CSet Marking", _mark_closure_time_ms);
-    }
+    print_stats(1, "Code Root Fixup", _cur_collection_code_root_fixup_time_ms);
     print_stats(1, "Clear CT", _cur_clear_ct_time_ms);
 #ifndef PRODUCT
     print_stats(1, "Cur Clear CC", _cur_clear_cc_time_ms);
@@ -1577,8 +1558,7 @@
     }
 
     double all_other_time_ms = pause_time_ms -
-      (update_rs_time + scan_rs_time + obj_copy_time +
-       _mark_closure_time_ms + termination_time);
+      (update_rs_time + scan_rs_time + obj_copy_time + termination_time);
 
     double young_other_time_ms = 0.0;
     if (young_cset_region_length() > 0) {
@@ -1706,41 +1686,6 @@
 }
 
 double
-G1CollectorPolicy::
-predict_young_collection_elapsed_time_ms(size_t adjustment) {
-  guarantee( adjustment == 0 || adjustment == 1, "invariant" );
-
-  G1CollectedHeap* g1h = G1CollectedHeap::heap();
-  size_t young_num = g1h->young_list()->length();
-  if (young_num == 0)
-    return 0.0;
-
-  young_num += adjustment;
-  size_t pending_cards = predict_pending_cards();
-  size_t rs_lengths = g1h->young_list()->sampled_rs_lengths() +
-                      predict_rs_length_diff();
-  size_t card_num;
-  if (gcs_are_young()) {
-    card_num = predict_young_card_num(rs_lengths);
-  } else {
-    card_num = predict_non_young_card_num(rs_lengths);
-  }
-  size_t young_byte_size = young_num * HeapRegion::GrainBytes;
-  double accum_yg_surv_rate =
-    _short_lived_surv_rate_group->accum_surv_rate(adjustment);
-
-  size_t bytes_to_copy =
-    (size_t) (accum_yg_surv_rate * (double) HeapRegion::GrainBytes);
-
-  return
-    predict_rs_update_time_ms(pending_cards) +
-    predict_rs_scan_time_ms(card_num) +
-    predict_object_copy_time_ms(bytes_to_copy) +
-    predict_young_other_time_ms(young_num) +
-    predict_constant_other_time_ms();
-}
-
-double
 G1CollectorPolicy::predict_base_elapsed_time_ms(size_t pending_cards) {
   size_t rs_length = predict_rs_length_diff();
   size_t card_num;
@@ -1973,7 +1918,6 @@
         print_summary(1, "Object Copy", body_summary->get_obj_copy_seq());
       }
     }
-    print_summary(1, "Mark Closure", body_summary->get_mark_closure_seq());
     print_summary(1, "Clear CT", body_summary->get_clear_ct_seq());
     print_summary(1, "Other", summary->get_other_seq());
     {
@@ -1982,17 +1926,15 @@
         if (parallel) {
           // parallel
           NumberSeq* other_parts[] = {
-            body_summary->get_satb_drain_seq(),
             body_summary->get_root_region_scan_wait_seq(),
             body_summary->get_parallel_seq(),
             body_summary->get_clear_ct_seq()
           };
           calc_other_times_ms = NumberSeq(summary->get_total_seq(),
-                                          4, other_parts);
+                                          3, other_parts);
         } else {
           // serial
           NumberSeq* other_parts[] = {
-            body_summary->get_satb_drain_seq(),
             body_summary->get_root_region_scan_wait_seq(),
             body_summary->get_update_rs_seq(),
             body_summary->get_ext_root_scan_seq(),
@@ -2001,7 +1943,7 @@
             body_summary->get_obj_copy_seq()
           };
           calc_other_times_ms = NumberSeq(summary->get_total_seq(),
-                                          7, other_parts);
+                                          6, other_parts);
         }
         check_other_times(1,  summary->get_other_seq(), &calc_other_times_ms);
       }
--- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp	Wed Jul 05 18:07:57 2017 +0200
@@ -64,7 +64,6 @@
 };
 
 class MainBodySummary: public CHeapObj {
-  define_num_seq(satb_drain) // optional
   define_num_seq(root_region_scan_wait)
   define_num_seq(parallel) // parallel only
     define_num_seq(ext_root_scan)
@@ -74,7 +73,6 @@
     define_num_seq(obj_copy)
     define_num_seq(termination) // parallel only
     define_num_seq(parallel_other) // parallel only
-  define_num_seq(mark_closure)
   define_num_seq(clear_ct)
 };
 
@@ -179,7 +177,9 @@
   size_t _cur_collection_pause_used_at_start_bytes;
   size_t _cur_collection_pause_used_regions_at_start;
   double _cur_collection_par_time_ms;
-  double _cur_satb_drain_time_ms;
+
+  double _cur_collection_code_root_fixup_time_ms;
+
   double _cur_clear_ct_time_ms;
   double _cur_ref_proc_time_ms;
   double _cur_ref_enq_time_ms;
@@ -226,8 +226,8 @@
   double* _par_last_gc_worker_times_ms;
 
   // Each workers 'other' time i.e. the elapsed time of the parallel
-  // phase of the pause minus the sum of the individual sub-phase
-  // times for a given worker thread.
+  // code executed by a worker minus the sum of the individual sub-phase
+  // times for that worker thread.
   double* _par_last_gc_worker_other_times_ms;
 
   // indicates whether we are in young or mixed GC mode
@@ -488,7 +488,6 @@
            get_new_prediction(_non_young_other_cost_per_region_ms_seq);
   }
 
-  double predict_young_collection_elapsed_time_ms(size_t adjustment);
   double predict_base_elapsed_time_ms(size_t pending_cards);
   double predict_base_elapsed_time_ms(size_t pending_cards,
                                       size_t scanned_cards);
@@ -709,7 +708,6 @@
   double _cur_mark_stop_world_time_ms;
   double _mark_remark_start_sec;
   double _mark_cleanup_start_sec;
-  double _mark_closure_time_ms;
   double _root_region_scan_wait_time_ms;
 
   // Update the young list target length either by setting it to the
@@ -809,10 +807,6 @@
   void record_concurrent_mark_init_end(double
                                            mark_init_elapsed_time_ms);
 
-  void record_mark_closure_time(double mark_closure_time_ms) {
-    _mark_closure_time_ms = mark_closure_time_ms;
-  }
-
   void record_root_region_scan_wait_time(double time_ms) {
     _root_region_scan_wait_time_ms = time_ms;
   }
@@ -846,11 +840,6 @@
     _par_last_satb_filtering_times_ms[worker_i] = ms;
   }
 
-  void record_satb_drain_time(double ms) {
-    assert(_g1->mark_in_progress(), "shouldn't be here otherwise");
-    _cur_satb_drain_time_ms = ms;
-  }
-
   void record_update_rs_time(int thread, double ms) {
     _par_last_update_rs_times_ms[thread] = ms;
   }
@@ -897,6 +886,10 @@
     _cur_collection_par_time_ms = ms;
   }
 
+  void record_code_root_fixup_time(double ms) {
+    _cur_collection_code_root_fixup_time_ms = ms;
+  }
+
   void record_aux_start_time(int i) {
     guarantee(i < _aux_num, "should be within range");
     _cur_aux_start_times_ms[i] = os::elapsedTime() * 1000.0;
--- a/hotspot/src/share/vm/gc_implementation/g1/g1OopClosures.hpp	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1OopClosures.hpp	Wed Jul 05 18:07:57 2017 +0200
@@ -118,9 +118,11 @@
   virtual void do_oop(narrowOop* p) { do_oop_nv(p); }
 };
 
+template <bool do_gen_barrier, G1Barrier barrier, bool do_mark_object>
+class G1ParCopyClosure : public G1ParClosureSuper {
+  G1ParScanClosure _scanner;
+  template <class T> void do_oop_work(T* p);
 
-class G1ParCopyHelper : public G1ParClosureSuper {
-  G1ParScanClosure *_scanner;
 protected:
   // Mark the object if it's not already marked. This is used to mark
   // objects pointed to by roots that are guaranteed not to move
@@ -135,22 +137,10 @@
   oop copy_to_survivor_space(oop obj);
 
 public:
-  G1ParCopyHelper(G1CollectedHeap* g1, G1ParScanThreadState* par_scan_state,
-                  G1ParScanClosure *scanner) :
-    G1ParClosureSuper(g1, par_scan_state), _scanner(scanner) { }
-};
-
-template <bool do_gen_barrier, G1Barrier barrier, bool do_mark_object>
-class G1ParCopyClosure : public G1ParCopyHelper {
-  G1ParScanClosure _scanner;
-
-  template <class T> void do_oop_work(T* p);
-
-public:
   G1ParCopyClosure(G1CollectedHeap* g1, G1ParScanThreadState* par_scan_state,
                    ReferenceProcessor* rp) :
       _scanner(g1, par_scan_state, rp),
-      G1ParCopyHelper(g1, par_scan_state, &_scanner) {
+      G1ParClosureSuper(g1, par_scan_state) {
     assert(_ref_processor == NULL, "sanity");
   }
 
--- a/hotspot/src/share/vm/gc_implementation/g1/g1_globals.hpp	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1_globals.hpp	Wed Jul 05 18:07:57 2017 +0200
@@ -69,9 +69,6 @@
   diagnostic(bool, G1TraceConcRefinement, false,                            \
           "Trace G1 concurrent refinement")                                 \
                                                                             \
-  product(intx, G1MarkRegionStackSize, 1024 * 1024,                         \
-          "Size of the region stack for concurrent marking.")               \
-                                                                            \
   product(double, G1ConcMarkStepDurationMillis, 10.0,                       \
           "Target duration of individual concurrent marking steps "         \
           "in milliseconds.")                                               \
--- a/hotspot/src/share/vm/gc_implementation/g1/heapRegion.hpp	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegion.hpp	Wed Jul 05 18:07:57 2017 +0200
@@ -373,10 +373,9 @@
     ScrubRemSetClaimValue      = 3,
     ParVerifyClaimValue        = 4,
     RebuildRSClaimValue        = 5,
-    CompleteMarkCSetClaimValue = 6,
-    ParEvacFailureClaimValue   = 7,
-    AggregateCountClaimValue   = 8,
-    VerifyCountClaimValue      = 9
+    ParEvacFailureClaimValue   = 6,
+    AggregateCountClaimValue   = 7,
+    VerifyCountClaimValue      = 8
   };
 
   inline HeapWord* par_allocate_no_bot_updates(size_t word_size) {
--- a/hotspot/src/share/vm/memory/barrierSet.hpp	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/src/share/vm/memory/barrierSet.hpp	Wed Jul 05 18:07:57 2017 +0200
@@ -181,6 +181,8 @@
   // within the heap, this function tells whether they are met.
   virtual bool is_aligned(HeapWord* addr) = 0;
 
+  // Print a description of the memory for the barrier set
+  virtual void print_on(outputStream* st) const = 0;
 };
 
 #endif // SHARE_VM_MEMORY_BARRIERSET_HPP
--- a/hotspot/src/share/vm/memory/cardTableModRefBS.cpp	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/src/share/vm/memory/cardTableModRefBS.cpp	Wed Jul 05 18:07:57 2017 +0200
@@ -711,6 +711,11 @@
 }
 #endif
 
+void CardTableModRefBS::print_on(outputStream* st) const {
+  st->print_cr("Card table byte_map: [" INTPTR_FORMAT "," INTPTR_FORMAT "] byte_map_base: " INTPTR_FORMAT,
+               _byte_map, _byte_map + _byte_map_size, byte_map_base);
+}
+
 bool CardTableModRefBSForCTRS::card_will_be_scanned(jbyte cv) {
   return
     CardTableModRefBS::card_will_be_scanned(cv) ||
--- a/hotspot/src/share/vm/memory/cardTableModRefBS.hpp	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/src/share/vm/memory/cardTableModRefBS.hpp	Wed Jul 05 18:07:57 2017 +0200
@@ -472,6 +472,9 @@
     return _byte_map + card_index;
   }
 
+  // Print a description of the memory for the barrier set
+  virtual void print_on(outputStream* st) const;
+
   void verify();
   void verify_guard();
 
--- a/hotspot/src/share/vm/memory/dump.cpp	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/src/share/vm/memory/dump.cpp	Wed Jul 05 18:07:57 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -1488,12 +1488,11 @@
 
     // sun.io.Converters
     static const char obj_array_sig[] = "[[Ljava/lang/Object;";
-    SymbolTable::lookup(obj_array_sig, (int)strlen(obj_array_sig), THREAD);
+    (void)SymbolTable::new_permanent_symbol(obj_array_sig, THREAD);
 
     // java.util.HashMap
     static const char map_entry_array_sig[] = "[Ljava/util/Map$Entry;";
-    SymbolTable::lookup(map_entry_array_sig, (int)strlen(map_entry_array_sig),
-                        THREAD);
+    (void)SymbolTable::new_permanent_symbol(map_entry_array_sig, THREAD);
 
     tty->print("Loading classes to share ... ");
     while ((fgets(class_name, sizeof class_name, file)) != NULL) {
@@ -1512,7 +1511,7 @@
       computed_jsum = jsum(computed_jsum, class_name, (const int)name_len - 1);
 
       // Got a class name - load it.
-      TempNewSymbol class_name_symbol = SymbolTable::new_symbol(class_name, THREAD);
+      Symbol* class_name_symbol = SymbolTable::new_permanent_symbol(class_name, THREAD);
       guarantee(!HAS_PENDING_EXCEPTION, "Exception creating a symbol.");
       klassOop klass = SystemDictionary::resolve_or_null(class_name_symbol,
                                                          THREAD);
--- a/hotspot/src/share/vm/oops/objArrayKlassKlass.cpp	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/src/share/vm/oops/objArrayKlassKlass.cpp	Wed Jul 05 18:07:57 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -137,7 +137,7 @@
       new_str[idx++] = ';';
     }
     new_str[idx++] = '\0';
-    name = SymbolTable::new_symbol(new_str, CHECK_0);
+    name = SymbolTable::new_permanent_symbol(new_str, CHECK_0);
     if (element_klass->oop_is_instance()) {
       instanceKlass* ik = instanceKlass::cast(element_klass());
       ik->set_array_name(name);
--- a/hotspot/src/share/vm/oops/symbol.cpp	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/src/share/vm/oops/symbol.cpp	Wed Jul 05 18:07:57 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -29,15 +29,25 @@
 #include "runtime/os.hpp"
 #include "memory/allocation.inline.hpp"
 
-Symbol::Symbol(const u1* name, int length) : _refcount(0), _length(length) {
+Symbol::Symbol(const u1* name, int length, int refcount) : _refcount(refcount), _length(length) {
   _identity_hash = os::random();
   for (int i = 0; i < _length; i++) {
     byte_at_put(i, name[i]);
   }
 }
 
-void* Symbol::operator new(size_t size, int len) {
-  return (void *) AllocateHeap(object_size(len) * HeapWordSize, "symbol");
+void* Symbol::operator new(size_t sz, int len, TRAPS) {
+  int alloc_size = object_size(len)*HeapWordSize;
+  address res = (address) AllocateHeap(alloc_size, "symbol");
+  DEBUG_ONLY(set_allocation_type(res, ResourceObj::C_HEAP);)
+  return res;
+}
+
+void* Symbol::operator new(size_t sz, int len, Arena* arena, TRAPS) {
+  int alloc_size = object_size(len)*HeapWordSize;
+  address res = (address)arena->Amalloc(alloc_size);
+  DEBUG_ONLY(set_allocation_type(res, ResourceObj::ARENA);)
+  return res;
 }
 
 // ------------------------------------------------------------------
@@ -206,26 +216,5 @@
   }
 }
 
-void Symbol::increment_refcount() {
-  // Only increment the refcount if positive.  If negative either
-  // overflow has occurred or it is a permanent symbol in a read only
-  // shared archive.
-  if (_refcount >= 0) {
-    Atomic::inc(&_refcount);
-    NOT_PRODUCT(Atomic::inc(&_total_count);)
-  }
-}
-
-void Symbol::decrement_refcount() {
-  if (_refcount >= 0) {
-    Atomic::dec(&_refcount);
-#ifdef ASSERT
-    if (_refcount < 0) {
-      print();
-      assert(false, "reference count underflow for symbol");
-    }
-#endif
-  }
-}
-
+// SymbolTable prints this in its statistics
 NOT_PRODUCT(int Symbol::_total_count = 0;)
--- a/hotspot/src/share/vm/oops/symbol.hpp	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/src/share/vm/oops/symbol.hpp	Wed Jul 05 18:07:57 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -27,6 +27,7 @@
 
 #include "utilities/utf8.hpp"
 #include "memory/allocation.hpp"
+#include "runtime/atomic.hpp"
 
 // A Symbol is a canonicalized string.
 // All Symbols reside in global SymbolTable and are reference counted.
@@ -95,7 +96,7 @@
 // TempNewSymbol (passed in as a parameter) so the reference count on its symbol
 // will be decremented when it goes out of scope.
 
-class Symbol : public CHeapObj {
+class Symbol : public ResourceObj {
   friend class VMStructs;
   friend class SymbolTable;
   friend class MoveSymbols;
@@ -111,7 +112,7 @@
   };
 
   static int object_size(int length) {
-    size_t size = heap_word_size(sizeof(Symbol) + length);
+    size_t size = heap_word_size(sizeof(Symbol) + (length > 0 ? length - 1 : 0));
     return align_object_size(size);
   }
 
@@ -120,28 +121,25 @@
     _body[index] = value;
   }
 
-  Symbol(const u1* name, int length);
-  void* operator new(size_t size, int len);
+  Symbol(const u1* name, int length, int refcount);
+  void* operator new(size_t size, int len, TRAPS);
+  void* operator new(size_t size, int len, Arena* arena, TRAPS);
 
  public:
   // Low-level access (used with care, since not GC-safe)
   const jbyte* base() const { return &_body[0]; }
 
-  int object_size() { return object_size(utf8_length()); }
+  int object_size()         { return object_size(utf8_length()); }
 
   // Returns the largest size symbol we can safely hold.
-  static int max_length() {
-    return max_symbol_length;
-  }
+  static int max_length()   { return max_symbol_length; }
 
-  int identity_hash() {
-    return _identity_hash;
-  }
+  int identity_hash()       { return _identity_hash; }
 
   // Reference counting.  See comments above this class for when to use.
-  int refcount() const { return _refcount; }
-  void increment_refcount();
-  void decrement_refcount();
+  int refcount() const      { return _refcount; }
+  inline void increment_refcount();
+  inline void decrement_refcount();
 
   int byte_at(int index) const {
     assert(index >=0 && index < _length, "symbol index overflow");
@@ -220,4 +218,26 @@
  return (((uintptr_t)this < (uintptr_t)other) ? -1
    : ((uintptr_t)this == (uintptr_t) other) ? 0 : 1);
 }
+
+inline void Symbol::increment_refcount() {
+  // Only increment the refcount if positive.  If negative either
+  // overflow has occurred or it is a permanent symbol in a read only
+  // shared archive.
+  if (_refcount >= 0) {
+    Atomic::inc(&_refcount);
+    NOT_PRODUCT(Atomic::inc(&_total_count);)
+  }
+}
+
+inline void Symbol::decrement_refcount() {
+  if (_refcount >= 0) {
+    Atomic::dec(&_refcount);
+#ifdef ASSERT
+    if (_refcount < 0) {
+      print();
+      assert(false, "reference count underflow for symbol");
+    }
+#endif
+  }
+}
 #endif // SHARE_VM_OOPS_SYMBOL_HPP
--- a/hotspot/src/share/vm/oops/typeArrayKlass.cpp	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/src/share/vm/oops/typeArrayKlass.cpp	Wed Jul 05 18:07:57 2017 +0200
@@ -55,7 +55,7 @@
 
   Symbol* sym = NULL;
   if (name_str != NULL) {
-    sym = SymbolTable::new_symbol(name_str, CHECK_NULL);
+    sym = SymbolTable::new_permanent_symbol(name_str, CHECK_NULL);
   }
   KlassHandle klassklass (THREAD, Universe::typeArrayKlassKlassObj());
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/hotspot/src/share/vm/prims/wbtestmethods/parserTests.cpp	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,148 @@
+/*
+ * Copyright (c) 2011, 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.
+ *
+ * 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 "precompiled.hpp"
+
+#include "classfile/symbolTable.hpp"
+
+#include "prims/jni.h"
+#include "prims/whitebox.hpp"
+#include "prims/wbtestmethods/parserTests.hpp"
+#include "runtime/interfaceSupport.hpp"
+
+#include "memory/oopFactory.hpp"
+
+#include "services/diagnosticArgument.hpp"
+#include "services/diagnosticFramework.hpp"
+
+//There's no way of beforeahnd knowing an upper size
+//Of the length of a string representation of
+//the value of an argument.
+#define VALUE_MAXLEN 256
+
+// DiagnosticFramework test utility methods
+
+/*
+ * The DiagnosticArgumentType class contains an enum that says which type
+ * this argument represents. (JLONG, BOOLEAN etc).
+ * This method Returns a char* representation of that enum value.
+ */
+static const char* lookup_diagnosticArgumentEnum(const char* field_name, oop object) {
+  Thread* THREAD = Thread::current();
+  const char* enum_sig = "Lsun/hotspot/parser/DiagnosticCommand$DiagnosticArgumentType;";
+  TempNewSymbol enumSigSymbol = SymbolTable::lookup(enum_sig, (int) strlen(enum_sig), THREAD);
+  int offset = WhiteBox::offset_for_field(field_name, object, enumSigSymbol);
+  oop enumOop = object->obj_field(offset);
+
+  const char* ret = WhiteBox::lookup_jstring("name", enumOop);
+  return ret;
+}
+
+/*
+ * Takes an oop to a DiagnosticArgumentType-instance and
+ * reads the fields from it. Fills an native DCmdParser with
+ * this info.
+ */
+static void fill_in_parser(DCmdParser* parser, oop argument)
+{
+  const char* name = WhiteBox::lookup_jstring("name", argument);
+  const char* desc = WhiteBox::lookup_jstring("desc", argument);
+  const char* default_value = WhiteBox::lookup_jstring("defaultValue", argument);
+  bool mandatory = WhiteBox::lookup_bool("mandatory", argument);
+  const char*  type = lookup_diagnosticArgumentEnum("type", argument);
+
+   if (strcmp(type, "STRING") == 0) {
+     DCmdArgument<char*>* argument = new DCmdArgument<char*>(
+     name, desc,
+     "STRING", mandatory, default_value);
+     parser->add_dcmd_option(argument);
+   } else if (strcmp(type, "NANOTIME") == 0) {
+     DCmdArgument<NanoTimeArgument>* argument = new DCmdArgument<NanoTimeArgument>(
+     name, desc,
+     "NANOTIME", mandatory, default_value);
+     parser->add_dcmd_option(argument);
+   } else if (strcmp(type, "JLONG") == 0) {
+     DCmdArgument<jlong>* argument = new DCmdArgument<jlong>(
+     name, desc,
+     "JLONG", mandatory, default_value);
+     parser->add_dcmd_option(argument);
+   } else if (strcmp(type, "BOOLEAN") == 0) {
+     DCmdArgument<bool>* argument = new DCmdArgument<bool>(
+     name, desc,
+     "BOOLEAN", mandatory, default_value);
+     parser->add_dcmd_option(argument);
+   } else if (strcmp(type, "MEMORYSIZE") == 0) {
+     DCmdArgument<MemorySizeArgument>* argument = new DCmdArgument<MemorySizeArgument>(
+     name, desc,
+     "MEMORY SIZE", mandatory, default_value);
+     parser->add_dcmd_option(argument);
+   } else if (strcmp(type, "STRINGARRAY") == 0) {
+     DCmdArgument<StringArrayArgument*>* argument = new DCmdArgument<StringArrayArgument*>(
+     name, desc,
+     "STRING SET", mandatory);
+     parser->add_dcmd_option(argument);
+   }
+}
+
+/*
+ * Will Fill in a java object array with alternating names of parsed command line options and
+ * the value that has been parsed for it:
+ * { name, value, name, value ... }
+ * This can then be checked from java.
+ */
+WB_ENTRY(jobjectArray, WB_ParseCommandLine(JNIEnv* env, jobject o, jstring j_cmdline, jobjectArray arguments))
+  ResourceMark rm;
+  DCmdParser parser;
+
+  const char* c_cmdline = java_lang_String::as_utf8_string(JNIHandles::resolve(j_cmdline));
+  objArrayOop argumentArray = objArrayOop(JNIHandles::resolve_non_null(arguments));
+
+  int length = argumentArray->length();
+
+  for (int i = 0; i < length; i++) {
+    oop argument_oop = argumentArray->obj_at(i);
+    fill_in_parser(&parser, argument_oop);
+  }
+
+  CmdLine cmdline(c_cmdline, strlen(c_cmdline), true);
+  parser.parse(&cmdline,',',CHECK_NULL);
+
+  klassOop k = SystemDictionary::Object_klass();
+  objArrayOop returnvalue_array = oopFactory::new_objArray(k, parser.num_arguments() * 2, CHECK_NULL);
+
+  GrowableArray<const char *>*parsedArgNames = parser.argument_name_array();
+
+  for (int i = 0; i < parser.num_arguments(); i++) {
+    oop parsedName = java_lang_String::create_oop_from_str(parsedArgNames->at(i), CHECK_NULL);
+    returnvalue_array->obj_at_put(i*2, parsedName);
+    GenDCmdArgument* arg = parser.lookup_dcmd_option(parsedArgNames->at(i), strlen(parsedArgNames->at(i)));
+    char buf[VALUE_MAXLEN];
+    arg->value_as_str(buf, sizeof(buf));
+    oop parsedValue = java_lang_String::create_oop_from_str(buf, CHECK_NULL);
+    returnvalue_array->obj_at_put(i*2+1, parsedValue);
+  }
+
+  return (jobjectArray) JNIHandles::make_local(returnvalue_array);
+
+WB_END
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/hotspot/src/share/vm/prims/wbtestmethods/parserTests.hpp	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 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.
+ *
+ * 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.
+ */
+
+#ifndef SHARE_VM_PRIMS_WBTESTMETHODS_PARSERTESTS_H
+#define SHARE_VM_PRIMS_WBTESTMETHODS_PARSERTESTS_H
+
+#include "prims/jni.h"
+#include "prims/whitebox.hpp"
+
+WB_METHOD_DECLARE WB_ParseCommandLine(JNIEnv* env, jobject o, jstring args, jobjectArray arguments);
+
+#endif //SHARE_VM_PRIMS_WBTESTMETHODS_PARSERTESTS_H
--- a/hotspot/src/share/vm/prims/whitebox.cpp	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/src/share/vm/prims/whitebox.cpp	Wed Jul 05 18:07:57 2017 +0200
@@ -24,11 +24,14 @@
 
 #include "precompiled.hpp"
 
-#include "jni.h"
-
 #include "memory/universe.hpp"
 #include "oops/oop.inline.hpp"
+
+#include "classfile/symbolTable.hpp"
+
 #include "prims/whitebox.hpp"
+#include "prims/wbtestmethods/parserTests.hpp"
+
 #include "runtime/interfaceSupport.hpp"
 #include "runtime/os.hpp"
 #include "utilities/debug.hpp"
@@ -41,13 +44,6 @@
 
 bool WhiteBox::_used = false;
 
-// Entry macro to transition from JNI to VM state.
-
-#define WB_ENTRY(result_type, header) JNI_ENTRY(result_type, header)
-#define WB_END JNI_END
-
-// Definitions of functions exposed via Whitebox API
-
 WB_ENTRY(jlong, WB_GetObjectAddress(JNIEnv* env, jobject o, jobject obj))
   return (jlong)(void*)JNIHandles::resolve(obj);
 WB_END
@@ -81,11 +77,63 @@
 WB_END
 #endif // !SERIALGC
 
+//Some convenience methods to deal with objects from java
+int WhiteBox::offset_for_field(const char* field_name, oop object,
+    Symbol* signature_symbol) {
+  assert(field_name != NULL && strlen(field_name) > 0, "Field name not valid");
+  Thread* THREAD = Thread::current();
+
+  //Get the class of our object
+  klassOop arg_klass = object->klass();
+  //Turn it into an instance-klass
+  instanceKlass* ik = instanceKlass::cast(arg_klass);
+
+  //Create symbols to look for in the class
+  TempNewSymbol name_symbol = SymbolTable::lookup(field_name, (int) strlen(field_name),
+      THREAD);
+
+  //To be filled in with an offset of the field we're looking for
+  fieldDescriptor fd;
+
+  klassOop res = ik->find_field(name_symbol, signature_symbol, &fd);
+  if (res == NULL) {
+    tty->print_cr("Invalid layout of %s at %s", ik->external_name(),
+        name_symbol->as_C_string());
+    fatal("Invalid layout of preloaded class");
+  }
+
+  //fetch the field at the offset we've found
+  int dest_offset = fd.offset();
+
+  return dest_offset;
+}
+
+
+const char* WhiteBox::lookup_jstring(const char* field_name, oop object) {
+  int offset = offset_for_field(field_name, object,
+      vmSymbols::string_signature());
+  oop string = object->obj_field(offset);
+  const char* ret = java_lang_String::as_utf8_string(string);
+  return ret;
+}
+
+bool WhiteBox::lookup_bool(const char* field_name, oop object) {
+  int offset =
+      offset_for_field(field_name, object, vmSymbols::bool_signature());
+  bool ret = (object->bool_field(offset) == JNI_TRUE);
+  return ret;
+}
+
+
 #define CC (char*)
 
 static JNINativeMethod methods[] = {
   {CC"getObjectAddress",   CC"(Ljava/lang/Object;)J", (void*)&WB_GetObjectAddress  },
   {CC"getHeapOopSize",     CC"()I",                   (void*)&WB_GetHeapOopSize    },
+  {CC "parseCommandLine",
+      CC "(Ljava/lang/String;[Lsun/hotspot/parser/DiagnosticCommand;)[Ljava/lang/Object;",
+      (void*) &WB_ParseCommandLine
+  },
 #ifndef SERIALGC
   {CC"g1InConcurrentMark", CC"()Z",                   (void*)&WB_G1InConcurrentMark},
   {CC"g1IsHumongous",      CC"(Ljava/lang/Object;)Z", (void*)&WB_G1IsHumongous     },
--- a/hotspot/src/share/vm/prims/whitebox.hpp	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/src/share/vm/prims/whitebox.hpp	Wed Jul 05 18:07:57 2017 +0200
@@ -25,12 +25,29 @@
 #ifndef SHARE_VM_PRIMS_WHITEBOX_HPP
 #define SHARE_VM_PRIMS_WHITEBOX_HPP
 
+#include "prims/jni.h"
+
+#include "memory/allocation.hpp"
+#include "oops/oopsHierarchy.hpp"
+
+// Entry macro to transition from JNI to VM state.
+
+#define WB_ENTRY(result_type, header) JNI_ENTRY(result_type, header)
+#define WB_END JNI_END
+#define WB_METHOD_DECLARE extern "C" jobjectArray JNICALL
+
 class WhiteBox : public AllStatic {
  private:
   static bool _used;
  public:
   static bool used()     { return _used; }
   static void set_used() { _used = true; }
+  static int offset_for_field(const char* field_name, oop object,
+    Symbol* signature_symbol);
+  static const char* lookup_jstring(const char* field_name, oop object);
+  static bool lookup_bool(const char* field_name, oop object);
 };
 
+
+
 #endif // SHARE_VM_PRIMS_WHITEBOX_HPP
--- a/hotspot/src/share/vm/runtime/globals.hpp	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/src/share/vm/runtime/globals.hpp	Wed Jul 05 18:07:57 2017 +0200
@@ -3807,7 +3807,7 @@
   product(uintx, SharedReadOnlySize,   10*M,                                \
           "Size of read-only space in permanent generation (in bytes)")     \
                                                                             \
-  product(uintx, SharedMiscDataSize,    NOT_LP64(4*M) LP64_ONLY(5*M),       \
+  product(uintx, SharedMiscDataSize, NOT_LP64(4*M) LP64_ONLY(5*M) NOT_PRODUCT(+1*M),       \
           "Size of the shared data area adjacent to the heap (in bytes)")   \
                                                                             \
   product(uintx, SharedMiscCodeSize,    4*M,                                \
--- a/hotspot/src/share/vm/services/diagnosticArgument.cpp	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/src/share/vm/services/diagnosticArgument.cpp	Wed Jul 05 18:07:57 2017 +0200
@@ -43,6 +43,47 @@
   set_is_set(true);
 }
 
+void GenDCmdArgument::to_string(jlong l, char* buf, size_t len) {
+  jio_snprintf(buf, len, INT64_FORMAT, l);
+}
+
+void GenDCmdArgument::to_string(bool b, char* buf, size_t len) {
+  jio_snprintf(buf, len, b ? "true" : "false");
+}
+
+void GenDCmdArgument::to_string(NanoTimeArgument n, char* buf, size_t len) {
+  jio_snprintf(buf, len, INT64_FORMAT, n._nanotime);
+}
+
+void GenDCmdArgument::to_string(MemorySizeArgument m, char* buf, size_t len) {
+  jio_snprintf(buf, len, INT64_FORMAT, m._size);
+}
+
+void GenDCmdArgument::to_string(char* c, char* buf, size_t len) {
+  jio_snprintf(buf, len, "%s", c);
+}
+
+void GenDCmdArgument::to_string(StringArrayArgument* f, char* buf, size_t len) {
+  int length = f->array()->length();
+  size_t written = 0;
+  buf[0] = 0;
+  for (int i = 0; i < length; i++) {
+    char* next_str = f->array()->at(i);
+    size_t next_size = strlen(next_str);
+    //Check if there's room left to write next element
+    if (written + next_size > len) {
+      return;
+    }
+    //Actually write element
+    strcat(buf, next_str);
+    written += next_size;
+    //Check if there's room left for the comma
+    if (i < length-1 && len - written > 0) {
+      strcat(buf, ",");
+    }
+  }
+}
+
 template <> void DCmdArgument<jlong>::parse_value(const char* str,
                                                   size_t len, TRAPS) {
     if (str == NULL || sscanf(str, INT64_FORMAT, &_value) != 1) {
--- a/hotspot/src/share/vm/services/diagnosticArgument.hpp	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/src/share/vm/services/diagnosticArgument.hpp	Wed Jul 05 18:07:57 2017 +0200
@@ -110,12 +110,20 @@
   virtual void init_value(TRAPS) = 0;
   virtual void reset(TRAPS) = 0;
   virtual void cleanup() = 0;
+  virtual void value_as_str(char* buf, size_t len) = 0;
   void set_next(GenDCmdArgument* arg) {
     _next = arg;
   }
   GenDCmdArgument* next() {
     return _next;
   }
+
+  void to_string(jlong l, char* buf, size_t len);
+  void to_string(bool b, char* buf, size_t len);
+  void to_string(char* c, char* buf, size_t len);
+  void to_string(NanoTimeArgument n, char* buf, size_t len);
+  void to_string(MemorySizeArgument f, char* buf, size_t len);
+  void to_string(StringArrayArgument* s, char* buf, size_t len);
 };
 
 template <class ArgType> class DCmdArgument: public GenDCmdArgument {
@@ -143,6 +151,7 @@
   void parse_value(const char* str, size_t len, TRAPS);
   void init_value(TRAPS);
   void destroy_value();
+  void value_as_str(char *buf, size_t len) { return to_string(_value, buf, len);}
 };
 
 #endif  /* SHARE_VM_SERVICES_DIAGNOSTICARGUMENT_HPP */
--- a/hotspot/src/share/vm/services/gcNotifier.cpp	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/src/share/vm/services/gcNotifier.cpp	Wed Jul 05 18:07:57 2017 +0200
@@ -163,8 +163,8 @@
   constructor_args.push_oop(gcInfo_instance);
   constructor_args.push_oop(getGcInfoBuilder(gcManager,THREAD));
   constructor_args.push_long(gcStatInfo->gc_index());
-  constructor_args.push_long(gcStatInfo->start_time());
-  constructor_args.push_long(gcStatInfo->end_time());
+  constructor_args.push_long(Management::ticks_to_ms(gcStatInfo->start_time()));
+  constructor_args.push_long(Management::ticks_to_ms(gcStatInfo->end_time()));
   constructor_args.push_oop(usage_before_gc_ah);
   constructor_args.push_oop(usage_after_gc_ah);
   constructor_args.push_oop(extra_array);
--- a/hotspot/src/share/vm/utilities/bitMap.cpp	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/src/share/vm/utilities/bitMap.cpp	Wed Jul 05 18:07:57 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -179,64 +179,6 @@
   clear_range_within_word(bit_index(end_full_word), end);
 }
 
-void BitMap::mostly_disjoint_range_union(BitMap* from_bitmap,
-                                         idx_t   from_start_index,
-                                         idx_t   to_start_index,
-                                         size_t  word_num) {
-  // Ensure that the parameters are correct.
-  // These shouldn't be that expensive to check, hence I left them as
-  // guarantees.
-  guarantee(from_bitmap->bit_in_word(from_start_index) == 0,
-            "it should be aligned on a word boundary");
-  guarantee(bit_in_word(to_start_index) == 0,
-            "it should be aligned on a word boundary");
-  guarantee(word_num >= 2, "word_num should be at least 2");
-
-  intptr_t* from = (intptr_t*) from_bitmap->word_addr(from_start_index);
-  intptr_t* to   = (intptr_t*) word_addr(to_start_index);
-
-  if (*from != 0) {
-    // if it's 0, then there's no point in doing the CAS
-    while (true) {
-      intptr_t old_value = *to;
-      intptr_t new_value = old_value | *from;
-      intptr_t res       = Atomic::cmpxchg_ptr(new_value, to, old_value);
-      if (res == old_value) break;
-    }
-  }
-  ++from;
-  ++to;
-
-  for (size_t i = 0; i < word_num - 2; ++i) {
-    if (*from != 0) {
-      // if it's 0, then there's no point in doing the CAS
-      assert(*to == 0, "nobody else should be writing here");
-      intptr_t new_value = *from;
-      *to = new_value;
-    }
-
-    ++from;
-    ++to;
-  }
-
-  if (*from != 0) {
-    // if it's 0, then there's no point in doing the CAS
-    while (true) {
-      intptr_t old_value = *to;
-      intptr_t new_value = old_value | *from;
-      intptr_t res       = Atomic::cmpxchg_ptr(new_value, to, old_value);
-      if (res == old_value) break;
-    }
-  }
-
-  // the -1 is because we didn't advance them after the final CAS
-  assert(from ==
-           (intptr_t*) from_bitmap->word_addr(from_start_index) + word_num - 1,
-            "invariant");
-  assert(to == (intptr_t*) word_addr(to_start_index) + word_num - 1,
-            "invariant");
-}
-
 void BitMap::at_put(idx_t offset, bool value) {
   if (value) {
     set_bit(offset);
--- a/hotspot/src/share/vm/utilities/bitMap.hpp	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/src/share/vm/utilities/bitMap.hpp	Wed Jul 05 18:07:57 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -192,31 +192,6 @@
   void par_set_range(idx_t beg, idx_t end, RangeSizeHint hint);
   void par_clear_range  (idx_t beg, idx_t end, RangeSizeHint hint);
 
-  // It performs the union operation between subsets of equal length
-  // of two bitmaps (the target bitmap of the method and the
-  // from_bitmap) and stores the result to the target bitmap.  The
-  // from_start_index represents the first bit index of the subrange
-  // of the from_bitmap.  The to_start_index is the equivalent of the
-  // target bitmap. Both indexes should be word-aligned, i.e. they
-  // should correspond to the first bit on a bitmap word (it's up to
-  // the caller to ensure this; the method does check it).  The length
-  // of the subset is specified with word_num and it is in number of
-  // bitmap words. The caller should ensure that this is at least 2
-  // (smaller ranges are not support to save extra checks).  Again,
-  // this is checked in the method.
-  //
-  // Atomicity concerns: it is assumed that any contention on the
-  // target bitmap with other threads will happen on the first and
-  // last words; the ones in between will be "owned" exclusively by
-  // the calling thread and, in fact, they will already be 0. So, the
-  // method performs a CAS on the first word, copies the next
-  // word_num-2 words, and finally performs a CAS on the last word.
-  void mostly_disjoint_range_union(BitMap* from_bitmap,
-                                   idx_t   from_start_index,
-                                   idx_t   to_start_index,
-                                   size_t  word_num);
-
-
   // Clearing
   void clear_large();
   inline void clear();
--- a/hotspot/src/share/vm/utilities/vmError.cpp	Wed Jul 05 18:07:12 2017 +0200
+++ b/hotspot/src/share/vm/utilities/vmError.cpp	Wed Jul 05 18:07:57 2017 +0200
@@ -685,6 +685,12 @@
        // extended (i.e., more detailed) version.
        Universe::print_on(st, true /* extended */);
        st->cr();
+
+       Universe::heap()->barrier_set()->print_on(st);
+       st->cr();
+
+       st->print_cr("Polling page: " INTPTR_FORMAT, os::get_polling_page());
+       st->cr();
      }
 
   STEP(195, "(printing code cache information)" )
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/hotspot/test/serviceability/ParserTest.java	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,152 @@
+/*
+ * @test ParserTest
+ * @summary verify that whitebox functions can be linked and executed
+ * @run compile -J-XX:+UnlockDiagnosticVMOptions -J-XX:+WhiteBoxAPI ParserTest.java
+ * @run main/othervm -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI ParserTest
+ */
+
+import java.math.BigInteger;
+
+import sun.hotspot.parser.DiagnosticCommand;
+import sun.hotspot.parser.DiagnosticCommand.DiagnosticArgumentType;
+import sun.hotspot.WhiteBox;
+
+public class ParserTest {
+    WhiteBox wb;
+
+    public ParserTest() throws Exception {
+        wb = WhiteBox.getWhiteBox();
+
+        testNanoTime();
+        testJLong();
+        testBool();
+        testMemorySize();
+    }
+
+    public static void main(String... args) throws Exception  {
+         new ParserTest();
+    }
+
+    public void testNanoTime() throws Exception {
+        String name = "name";
+        DiagnosticCommand arg = new DiagnosticCommand(name,
+                "desc", DiagnosticArgumentType.NANOTIME,
+                false, "0");
+        DiagnosticCommand[] args = {arg};
+
+        BigInteger bi = new BigInteger("7");
+        //These should work
+        parse(name, bi.toString(), name + "=7ns", args);
+
+        bi = bi.multiply(BigInteger.valueOf(1000));
+        parse(name, bi.toString(), name + "=7us", args);
+
+        bi = bi.multiply(BigInteger.valueOf(1000));
+        parse(name, bi.toString(), name + "=7ms", args);
+
+        bi = bi.multiply(BigInteger.valueOf(1000));
+        parse(name, bi.toString(), name + "=7s", args);
+
+        bi = bi.multiply(BigInteger.valueOf(60));
+        parse(name, bi.toString() , name + "=7m", args);
+
+        bi = bi.multiply(BigInteger.valueOf(60));
+        parse(name, bi.toString() , name + "=7h", args);
+
+        bi = bi.multiply(BigInteger.valueOf(24));
+        parse(name, bi.toString() , name + "=7d", args);
+
+        parse(name, "0", name + "=0", args);
+
+        shouldFail(name + "=7xs", args);
+        shouldFail(name + "=7mms", args);
+        shouldFail(name + "=7f", args);
+        //Currently, only value 0 is allowed without unit
+        shouldFail(name + "=7", args);
+    }
+
+    public void testJLong() throws Exception {
+        String name = "name";
+        DiagnosticCommand arg = new DiagnosticCommand(name,
+                "desc", DiagnosticArgumentType.JLONG,
+                false, "0");
+        DiagnosticCommand[] args = {arg};
+
+        wb.parseCommandLine(name + "=10", args);
+        parse(name, "10", name + "=10", args);
+        parse(name, "-5", name + "=-5", args);
+
+        //shouldFail(name + "=12m", args); <-- should fail, doesn't
+    }
+
+    public void testBool() throws Exception {
+        String name = "name";
+        DiagnosticCommand arg = new DiagnosticCommand(name,
+                "desc", DiagnosticArgumentType.BOOLEAN,
+                false, "false");
+        DiagnosticCommand[] args = {arg};
+
+        parse(name, "true", name + "=true", args);
+        parse(name, "false", name + "=false", args);
+        parse(name, "true", name, args);
+
+        //Empty commandline to parse, tests default value
+        //of the parameter "name"
+        parse(name, "false", "", args);
+    }
+
+    public void testMemorySize() throws Exception {
+        String name = "name";
+        String defaultValue = "1024";
+        DiagnosticCommand arg = new DiagnosticCommand(name,
+                "desc", DiagnosticArgumentType.MEMORYSIZE,
+                false, defaultValue);
+        DiagnosticCommand[] args = {arg};
+
+        BigInteger bi = new BigInteger("7");
+        parse(name, bi.toString(), name + "=7b", args);
+
+        bi = bi.multiply(BigInteger.valueOf(1024));
+        parse(name, bi.toString(), name + "=7k", args);
+
+        bi = bi.multiply(BigInteger.valueOf(1024));
+        parse(name, bi.toString(), name + "=7m", args);
+
+        bi = bi.multiply(BigInteger.valueOf(1024));
+        parse(name, bi.toString(), name + "=7g", args);
+        parse(name, defaultValue, "", args);
+
+        //shouldFail(name + "=7gg", args); <---- should fail, doesn't
+        //shouldFail(name + "=7t", args);  <----- should fail, doesn't
+    }
+
+    public void parse(String searchName, String expectedValue,
+            String cmdLine, DiagnosticCommand[] argumentTypes) throws Exception {
+        //parseCommandLine will return an object array that looks like
+        //{<name of parsed object>, <of parsed object> ... }
+        Object[] res = wb.parseCommandLine(cmdLine, argumentTypes);
+        for (int i = 0; i < res.length-1; i+=2) {
+            String parsedName = (String) res[i];
+            if (searchName.equals(parsedName)) {
+                String parsedValue = (String) res[i+1];
+                if (expectedValue.equals(parsedValue)) {
+                    return;
+                } else {
+                    throw new Exception("Parsing of cmdline '" + cmdLine + "' failed!\n"
+                            + searchName + " parsed as " + parsedValue
+                            + "! Expected: " + expectedValue);
+                }
+            }
+        }
+        throw new Exception(searchName + " not found as a parsed Argument!");
+    }
+
+    private void shouldFail(String argument, DiagnosticCommand[] argumentTypes) throws Exception {
+        try {
+            wb.parseCommandLine(argument, argumentTypes);
+            throw new Exception("Parser accepted argument: " + argument);
+        } catch (IllegalArgumentException e) {
+            //expected
+        }
+    }
+}
--- a/jaxp/.hgtags	Wed Jul 05 18:07:12 2017 +0200
+++ b/jaxp/.hgtags	Wed Jul 05 18:07:57 2017 +0200
@@ -154,3 +154,4 @@
 3be30c25a8255803652b5c466336055d36e2ba21 jdk8-b30
 94aabe098916440ae7911866311c9617d8481a36 jdk8-b31
 60960fbc75df8be4c1a2504aa69fc1428cc94f93 jdk8-b32
+9bcab2b8b8ea578e594916a3d3df6dbec7984bcb jdk8-b33
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/makefiles/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,62 @@
+#
+# Copyright (c) 2007, 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
+
+default: all
+
+JAVAC_JARS ?= "-Xbootclasspath/p:$(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javac.jar" \
+		-jar $(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javac.jar
+DISABLE_JAXP_WARNINGS:=-Xlint:all,-deprecation,-unchecked,-rawtypes,-cast,-serial,-dep-ann,-static,-fallthrough
+
+# The generate new bytecode uses the new compiler for to generate bytecode
+# for the new jdk that is being built. The code compiled by this setup
+# cannot necessarily be run with the boot jdk.
+$(eval $(call SetupJavaCompiler,GENERATE_NEWBYTECODE_DEBUG,\
+     JVM:=$(JAVA),\
+     JAVAC:=$(JAVAC_JARS),\
+     FLAGS:=-Xprefer:source -XDignore.symbol.file=true $(DISABLE_JAXP_WARNINGS) -g,\
+     SERVER_DIR:=$(JAVAC_SERVERS),\
+     SERVER_JVM:=$(SERVER_JAVA),\
+     MODE:=$(JAVAC_USE_MODE),\
+     USE_DEPS:=$(JAVAC_USE_DEPS)))
+
+$(eval $(call SetupJavaCompilation,BUILD_JAXP,\
+		SETUP:=GENERATE_NEWBYTECODE_DEBUG,\
+		SRC:=$(JAXP_TOPDIR)/src/share/classes,\
+		CLEAN:=.properties,\
+		BIN:=$(JAXP_OUTPUTDIR)/classes,\
+		SRCZIP:=$(JAXP_OUTPUTDIR)/dist/lib/src.zip))
+
+$(eval $(call SetupArchive,ARCHIVE_JAXP,$(BUILD_JAXP),\
+		SRCS:=$(JAXP_OUTPUTDIR)/classes,\
+		SUFFIXES:=.class .properties,\
+		JAR:=$(JAXP_OUTPUTDIR)/dist/lib/classes.jar))
+
+all: $(JAXP_OUTPUTDIR)/dist/lib/classes.jar $(JAXP_OUTPUTDIR)/dist/lib/src.zip
+
+.PHONY: default all 
--- a/jaxws/.hgtags	Wed Jul 05 18:07:12 2017 +0200
+++ b/jaxws/.hgtags	Wed Jul 05 18:07:57 2017 +0200
@@ -154,3 +154,4 @@
 6882b10e85d6f6ba110dbb50926d6fe2222cc7ad jdk8-b30
 4c41c6d0e15de3b56919a5ba0a0f248a2d07f2b2 jdk8-b31
 017a7dbfaa92f5a8b144e6c890d1cebdaecaf681 jdk8-b32
+ea80b2388dce711fbde8e4fd6e07c2c64ad16743 jdk8-b33
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxws/makefiles/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,94 @@
+#
+# Copyright (c) 2007, 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
+
+default: all
+
+JAVAC_JARS ?= -Xbootclasspath/p:$(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javac.jar \
+		-jar $(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javac.jar
+DISABLE_JAXWS_WARNINGS:=-Xlint:all,-varargs,-rawtypes,-deprecation,-unchecked,-serial,-dep-ann,-cast,-fallthrough,-static
+
+# The generate new bytecode uses the new compiler for to generate bytecode
+# for the new jdk that is being built. The code compiled by this setup
+# cannot necessarily be run with the boot jdk.
+$(eval $(call SetupJavaCompiler,GENERATE_NEWBYTECODE_DEBUG,\
+     JVM:=$(JAVA),\
+     JAVAC:=$(JAVAC_JARS),\
+     FLAGS:=-Xprefer:source -XDignore.symbol.file=true -cp $(BOOT_JDK)/lib/tools.jar \
+		$(DISABLE_JAXWS_WARNINGS) -g,\
+     SERVER_DIR:=$(JAVAC_SERVERS),\
+     SERVER_JVM:=$(SERVER_JAVA),\
+     MODE:=$(JAVAC_USE_MODE),\
+     USE_DEPS:=$(JAVAC_USE_DEPS)))
+
+# Dummy here is needed to trigger copying of META-INF
+$(eval $(call SetupJavaCompilation,BUILD_JAF,\
+		SETUP:=GENERATE_NEWBYTECODE_DEBUG,\
+		SRC:=$(JAXWS_TOPDIR)/src/share/jaf_classes,\
+		CLEAN:=.properties,\
+		COPY:="dummy",\
+		BIN:=$(JAXWS_OUTPUTDIR)/jaf_classes))
+
+$(eval $(call SetupJavaCompilation,BUILD_JAXWS,\
+		SETUP:=GENERATE_NEWBYTECODE_DEBUG,\
+		SRC:=$(JAXWS_TOPDIR)/src/share/jaxws_classes,\
+		CLEAN:=.properties,\
+		BIN:=$(JAXWS_OUTPUTDIR)/jaxws_classes,\
+		COPY:=.xsd,\
+		COPY_FILES:=$(JAXWS_TOPDIR)/src/share/jaxws_classes/com/sun/tools/internal/xjc/runtime/JAXBContextFactory.java \
+			    $(JAXWS_TOPDIR)/src/share/jaxws_classes/com/sun/tools/internal/xjc/runtime/ZeroOneBooleanAdapter.java,\
+		ADD_JAVAC_FLAGS=-cp $(OUTPUT_ROOT)/jaxp/dist/lib/classes.jar))
+
+$(JAXWS_OUTPUTDIR)/jaxws_classes/META-INF/services/com.sun.tools.internal.ws.wscompile.Plugin: \
+		         $(JAXWS_TOPDIR)/src/share/jaxws_classes/com/sun/tools/etc/META-INF/services/com.sun.tools.internal.ws.wscompile.Plugin
+	mkdir -p $(@D)
+	cp $< $@
+
+$(JAXWS_OUTPUTDIR)/jaxws_classes/META-INF/services/com.sun.tools.internal.xjc.Plugin: \
+		         $(JAXWS_TOPDIR)/src/share/jaxws_classes/com/sun/tools/etc/META-INF/services/com.sun.tools.internal.xjc.Plugin
+	mkdir -p $(@D)
+	cp $< $@
+
+# There are two META-INF services files that are needed, add these to the list of goals
+BUILD_JAXWS += $(JAXWS_OUTPUTDIR)/jaxws_classes/META-INF/services/com.sun.tools.internal.ws.wscompile.Plugin \
+               $(JAXWS_OUTPUTDIR)/jaxws_classes/META-INF/services/com.sun.tools.internal.xjc.Plugin
+
+$(eval $(call SetupArchive,ARCHIVE_JAXWS,$(BUILD_JAXWS) $(BUILD_JAF),\
+		SRCS:=$(JAXWS_OUTPUTDIR)/jaxws_classes $(JAXWS_OUTPUTDIR)/jaf_classes,\
+		SUFFIXES:=.class .properties .xsd .java \
+			  com.sun.mirror.apt.AnnotationProcessorFactory \
+                          com.sun.tools.internal.xjc.Plugin,\
+		JAR:=$(JAXWS_OUTPUTDIR)/dist/lib/classes.jar))
+
+$(eval $(call SetupZipArchive,ZIP_JAXWS_SOURCES,\
+		SRC:=$(JAXWS_TOPDIR)/src/share/jaf_classes $(JAXWS_TOPDIR)/src/share/jaxws_classes,\
+		ZIP:=$(JAXWS_OUTPUTDIR)/dist/lib/src.zip))
+
+all: $(JAXWS_OUTPUTDIR)/dist/lib/classes.jar $(JAXWS_OUTPUTDIR)/dist/lib/src.zip
+
+.PHONY: default all 
--- a/jdk/.hgtags	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/.hgtags	Wed Jul 05 18:07:57 2017 +0200
@@ -154,3 +154,4 @@
 cdbb33303ea344d5e9013e2dd642e7a6e7768db6 jdk8-b30
 27f0c08c427c65fcab6917edf646f59058e59524 jdk8-b31
 ddfe5562f61f54ed2121ac0c73b688b94f3e66b5 jdk8-b32
+78cea258caaba3980ba186c426da82c8fe41bfd7 jdk8-b33
--- a/jdk/make/common/Defs-linux.gmk	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/make/common/Defs-linux.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1999, 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
@@ -53,6 +53,11 @@
   PLATFORM_SRC = $(BUILDDIR)/../src/solaris
 endif # PLATFORM_SRC
 
+# Location of the various .properties files specific to Linux platform
+ifndef PLATFORM_PROPERTIES
+  PLATFORM_PROPERTIES  = $(BUILDDIR)/../src/solaris/lib
+endif # PLATFORM_SRC
+
 # Platform specific closed sources
 ifndef OPENJDK
   ifndef CLOSED_PLATFORM_SRC
@@ -73,55 +78,91 @@
 # CC compiler object code output directive flag value
 CC_OBJECT_OUTPUT_FLAG = -o #trailing blank required!
 
-# Default OBJCOPY comes from GNU Binutils on Linux:
-DEF_OBJCOPY=/usr/bin/objcopy
-ifdef CROSS_COMPILE_ARCH
-  # don't try to generate .debuginfo files when cross compiling
-  _JUNK_ := $(shell \
-    echo >&2 "INFO: cross compiling for ARCH $(CROSS_COMPILE_ARCH)," \
-      "skipping .debuginfo generation.")
-  OBJCOPY=
-else
-  OBJCOPY=$(shell test -x $(DEF_OBJCOPY) && echo $(DEF_OBJCOPY))
-  ifneq ($(ALT_OBJCOPY),)
-    _JUNK_ := $(shell echo >&2 "INFO: ALT_OBJCOPY=$(ALT_OBJCOPY)")
-    # disable .debuginfo support by setting ALT_OBJCOPY to a non-existent path
-    OBJCOPY=$(shell test -x $(ALT_OBJCOPY) && echo $(ALT_OBJCOPY))
-  endif
-endif
+# The Full Debug Symbols (FDS) default for VARIANT == OPT builds is
+# enabled with debug info files ZIP'ed to save space. For VARIANT !=
+# OPT builds, FDS is always enabled, after all a debug build without
+# debug info isn't very useful. The ZIP_DEBUGINFO_FILES option only has
+# meaning when FDS is enabled.
+#
+# If you invoke a build with FULL_DEBUG_SYMBOLS=0, then FDS will be
+# disabled for a VARIANT == OPT build.
+#
+# Note: Use of a different variable name for the FDS override option
+# versus the FDS enabled check is intentional (FULL_DEBUG_SYMBOLS
+# versus ENABLE_FULL_DEBUG_SYMBOLS). For auto build systems that pass
+# in options via environment variables, use of distinct variables
+# prevents strange behaviours. For example, in a VARIANT != OPT build,
+# the FULL_DEBUG_SYMBOLS environment variable will be 0, but the
+# ENABLE_FULL_DEBUG_SYMBOLS make variable will be 1. If the same
+# variable name is used, then different values can be picked up by
+# different parts of the build. Just to be clear, we only need two
+# variable names because the incoming option value can be overridden
+# in some situations, e.g., a VARIANT != OPT build.
 
-ifdef LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS
-# The setting of OBJCOPY above enables the JDK build to import
-# .debuginfo files from the HotSpot build. However, adding FDS
-# support to the JDK build will occur in phases so a different
-# make variable is used to indicate that a particular library
-# supports FDS.
-
-ifeq ($(OBJCOPY),)
-  _JUNK_ := $(shell \
-    echo >&2 "INFO: no objcopy cmd found so cannot create .debuginfo files.")
+ifeq ($(VARIANT), OPT)
+  FULL_DEBUG_SYMBOLS ?= 1
+  ENABLE_FULL_DEBUG_SYMBOLS = $(FULL_DEBUG_SYMBOLS)
 else
-  _JUNK_ := $(shell \
-    echo >&2 "INFO: $(OBJCOPY) cmd found so will create .debuginfo files.")
+  # debug variants always get Full Debug Symbols (if available)
+  ENABLE_FULL_DEBUG_SYMBOLS = 1
+endif
+_JUNK_ := $(shell \
+  echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)")
+# since objcopy is optional, we set ZIP_DEBUGINFO_FILES later
 
-  # Library stripping policies for .debuginfo configs:
-  #   all_strip - strips everything from the library
-  #   min_strip - strips most stuff from the library; leaves minimum symbols
-  #   no_strip  - does not strip the library at all
-  #
-  # Oracle security policy requires "all_strip". A waiver was granted on
-  # 2011.09.01 that permits using "min_strip" in the Java JDK and Java JRE.
-  #
-  DEF_STRIP_POLICY="min_strip"
-  ifeq ($(ALT_STRIP_POLICY),)
-    STRIP_POLICY=$(DEF_STRIP_POLICY)
+ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
+  # Default OBJCOPY comes from GNU Binutils on Linux:
+  DEF_OBJCOPY=/usr/bin/objcopy
+  ifdef CROSS_COMPILE_ARCH
+    # don't try to generate .debuginfo files when cross compiling
+    _JUNK_ := $(shell \
+      echo >&2 "INFO: cross compiling for ARCH $(CROSS_COMPILE_ARCH)," \
+        "skipping .debuginfo generation.")
+    OBJCOPY=
   else
-    STRIP_POLICY=$(ALT_STRIP_POLICY)
+    OBJCOPY=$(shell test -x $(DEF_OBJCOPY) && echo $(DEF_OBJCOPY))
+    ifneq ($(ALT_OBJCOPY),)
+      _JUNK_ := $(shell echo >&2 "INFO: ALT_OBJCOPY=$(ALT_OBJCOPY)")
+      # disable .debuginfo support by setting ALT_OBJCOPY to a non-existent path
+      OBJCOPY=$(shell test -x $(ALT_OBJCOPY) && echo $(ALT_OBJCOPY))
+    endif
   endif
 
-  _JUNK_ := $(shell \
-    echo >&2 "INFO: STRIP_POLICY=$(STRIP_POLICY)")
-endif
+  # Setting ENABLE_FULL_DEBUG_SYMBOLS=1 (and OBJCOPY) above enables the
+  # JDK build to import .debuginfo or .diz files from the HotSpot build.
+  # However, adding FDS support to the JDK build will occur in phases
+  # so a different make variable (LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS)
+  # is used to indicate that a particular library supports FDS.
+
+  ifeq ($(OBJCOPY),)
+    _JUNK_ := $(shell \
+      echo >&2 "INFO: no objcopy cmd found so cannot create .debuginfo files.")
+    ENABLE_FULL_DEBUG_SYMBOLS=0
+  else
+    _JUNK_ := $(shell \
+      echo >&2 "INFO: $(OBJCOPY) cmd found so will create .debuginfo files.")
+
+    # Library stripping policies for .debuginfo configs:
+    #   all_strip - strips everything from the library
+    #   min_strip - strips most stuff from the library; leaves minimum symbols
+    #   no_strip  - does not strip the library at all
+    #
+    # Oracle security policy requires "all_strip". A waiver was granted on
+    # 2011.09.01 that permits using "min_strip" in the Java JDK and Java JRE.
+    #
+    # Currently, STRIP_POLICY is only used when Full Debug Symbols is enabled.
+    STRIP_POLICY ?= min_strip
+
+    _JUNK_ := $(shell \
+      echo >&2 "INFO: STRIP_POLICY=$(STRIP_POLICY)")
+
+    # HACK: disable ZIP_DEBUGINFO_FILES by default until install repo
+    # changes are promoted
+    ZIP_DEBUGINFO_FILES ?= 0
+
+    _JUNK_ := $(shell \
+      echo >&2 "INFO: ZIP_DEBUGINFO_FILES=$(ZIP_DEBUGINFO_FILES)")
+  endif
 endif
 
 #
@@ -412,6 +453,7 @@
 HOTSPOT_SALIB_PATH   = $(HOTSPOT_IMPORT_PATH)/jre/lib/$(LIBARCH)
 SALIB_NAME = $(LIB_PREFIX)saproc.$(LIBRARY_SUFFIX)
 SA_DEBUGINFO_NAME = $(LIB_PREFIX)saproc.debuginfo
+SA_DIZ_NAME = $(LIB_PREFIX)saproc.diz
 
 # The JDI - Serviceability Agent binding is not currently supported
 # on Linux-ia64.
--- a/jdk/make/common/Defs-macosx.gmk	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/make/common/Defs-macosx.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -53,6 +53,11 @@
   PLATFORM_SRC = $(BUILDDIR)/../src/solaris
 endif # PLATFORM_SRC
 
+# Location of the various .properties files specific to MacOS X platform
+ifndef PLATFORM_PROPERTIES
+  PLATFORM_PROPERTIES  = $(BUILDDIR)/../src/macosx/lib
+endif # PLATFORM_SRC
+
 PLATFORM_SRC_MACOS = $(BUILDDIR)/../src/macosx
 
 # BSD build pulls its platform sources from the solaris tree.
--- a/jdk/make/common/Defs-solaris.gmk	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/make/common/Defs-solaris.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 1995, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1995, 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
@@ -51,6 +51,11 @@
 PLATFORM_SRC = $(BUILDDIR)/../src/solaris
 endif # PLATFORM_SRC
 
+# Location of the various .properties files specific to Solaris platform
+ifndef PLATFORM_PROPERTIES
+  PLATFORM_PROPERTIES  = $(BUILDDIR)/../src/solaris/lib
+endif # PLATFORM_SRC
+
 # Platform specific closed sources
 ifndef OPENJDK
   ifndef CLOSED_PLATFORM_SRC
@@ -73,67 +78,99 @@
 # CC compiler object code output directive flag value
 CC_OBJECT_OUTPUT_FLAG = -o #trailing blank required!
 
-ifdef ENABLE_FULL_DEBUG_SYMBOLS
-# Only check for Full Debug Symbols support on Solaris if it is
-# specifically enabled. Hopefully, it can be enabled by default
-# once the .debuginfo size issues are worked out.
+# The Full Debug Symbols (FDS) default for VARIANT == OPT builds is
+# enabled with debug info files ZIP'ed to save space. For VARIANT !=
+# OPT builds, FDS is always enabled, after all a debug build without
+# debug info isn't very useful. The ZIP_DEBUGINFO_FILES option only has
+# meaning when FDS is enabled.
+#
+# If you invoke a build with FULL_DEBUG_SYMBOLS=0, then FDS will be
+# disabled for a VARIANT == OPT build.
+#
+# Note: Use of a different variable name for the FDS override option
+# versus the FDS enabled check is intentional (FULL_DEBUG_SYMBOLS
+# versus ENABLE_FULL_DEBUG_SYMBOLS). For auto build systems that pass
+# in options via environment variables, use of distinct variables
+# prevents strange behaviours. For example, in a VARIANT != OPT build,
+# the FULL_DEBUG_SYMBOLS environment variable will be 0, but the
+# ENABLE_FULL_DEBUG_SYMBOLS make variable will be 1. If the same
+# variable name is used, then different values can be picked up by
+# different parts of the build. Just to be clear, we only need two
+# variable names because the incoming option value can be overridden
+# in some situations, e.g., a VARIANT != OPT build.
 
-# Default OBJCOPY comes from the SUNWbinutils package:
-DEF_OBJCOPY=/usr/sfw/bin/gobjcopy
-ifeq ($(PLATFORM)-$(LIBARCH), solaris-amd64)
-  # On Solaris AMD64/X64, gobjcopy is not happy and fails:
-  #
-  # usr/sfw/bin/gobjcopy --add-gnu-debuglink=<lib>.debuginfo <lib>.so
-  # BFD: stKPaiop: Not enough room for program headers, try linking with -N
-  # /usr/sfw/bin/gobjcopy: stKPaiop: Bad value
-  # BFD: stKPaiop: Not enough room for program headers, try linking with -N
-  # /usr/sfw/bin/gobjcopy: libsaproc.debuginfo: Bad value
-  # BFD: stKPaiop: Not enough room for program headers, try linking with -N
-  # /usr/sfw/bin/gobjcopy: stKPaiop: Bad value
-  _JUNK_ := $(shell \
-    echo >&2 "INFO: $(DEF_OBJCOPY) is not working on Solaris AMD64/X64")
-  OBJCOPY=
+ifeq ($(VARIANT), OPT)
+  FULL_DEBUG_SYMBOLS ?= 1
+  ENABLE_FULL_DEBUG_SYMBOLS = $(FULL_DEBUG_SYMBOLS)
 else
-  OBJCOPY=$(shell test -x $(DEF_OBJCOPY) && echo $(DEF_OBJCOPY))
-  ifneq ($(ALT_OBJCOPY),)
-    _JUNK_ := $(shell echo >&2 "INFO: ALT_OBJCOPY=$(ALT_OBJCOPY)")
-    # disable .debuginfo support by setting ALT_OBJCOPY to a non-existent path
-    OBJCOPY=$(shell test -x $(ALT_OBJCOPY) && echo $(ALT_OBJCOPY))
-  endif
+  # debug variants always get Full Debug Symbols (if available)
+  ENABLE_FULL_DEBUG_SYMBOLS = 1
 endif
+_JUNK_ := $(shell \
+  echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)")
+# since objcopy is optional, we set ZIP_DEBUGINFO_FILES later
 
-ifdef LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS
-# The setting of OBJCOPY above enables the JDK build to import
-# .debuginfo files from the HotSpot build. However, adding FDS
-# support to the JDK build will occur in phases so a different
-# make variable is used to indicate that a particular library
-# supports FDS.
+ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
+  # Default OBJCOPY comes from the SUNWbinutils package:
+  DEF_OBJCOPY=/usr/sfw/bin/gobjcopy
+  ifeq ($(PLATFORM)-$(LIBARCH), solaris-amd64)
+    # On Solaris AMD64/X64, gobjcopy is not happy and fails:
+    #
+    # usr/sfw/bin/gobjcopy --add-gnu-debuglink=<lib>.debuginfo <lib>.so
+    # BFD: stKPaiop: Not enough room for program headers, try linking with -N
+    # /usr/sfw/bin/gobjcopy: stKPaiop: Bad value
+    # BFD: stKPaiop: Not enough room for program headers, try linking with -N
+    # /usr/sfw/bin/gobjcopy: libsaproc.debuginfo: Bad value
+    # BFD: stKPaiop: Not enough room for program headers, try linking with -N
+    # /usr/sfw/bin/gobjcopy: stKPaiop: Bad value
+    _JUNK_ := $(shell \
+      echo >&2 "INFO: $(DEF_OBJCOPY) is not working on Solaris AMD64/X64")
+    OBJCOPY=
+  else
+    OBJCOPY=$(shell test -x $(DEF_OBJCOPY) && echo $(DEF_OBJCOPY))
+    ifneq ($(ALT_OBJCOPY),)
+      _JUNK_ := $(shell echo >&2 "INFO: ALT_OBJCOPY=$(ALT_OBJCOPY)")
+      # disable .debuginfo support by setting ALT_OBJCOPY to a non-existent path
+      OBJCOPY=$(shell test -x $(ALT_OBJCOPY) && echo $(ALT_OBJCOPY))
+    endif
+  endif
 
-ifeq ($(OBJCOPY),)
-  _JUNK_ := $(shell \
-    echo >&2 "INFO: no objcopy cmd found so cannot create .debuginfo files.")
-else
-  _JUNK_ := $(shell \
-    echo >&2 "INFO: $(OBJCOPY) cmd found so will create .debuginfo files.")
+  # Setting ENABLE_FULL_DEBUG_SYMBOLS=1 (and OBJCOPY) above enables the
+  # JDK build to import .debuginfo or .diz files from the HotSpot build.
+  # However, adding FDS support to the JDK build will occur in phases
+  # so a different make variable (LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS)
+  # is used to indicate that a particular library supports FDS.
 
-  # Library stripping policies for .debuginfo configs:
-  #   all_strip - strips everything from the library
-  #   min_strip - strips most stuff from the library; leaves minimum symbols
-  #   no_strip  - does not strip the library at all
-  #
-  # Oracle security policy requires "all_strip". A waiver was granted on
-  # 2011.09.01 that permits using "min_strip" in the Java JDK and Java JRE.
-  #
-  DEF_STRIP_POLICY="min_strip"
-  ifeq ($(ALT_STRIP_POLICY),)
-    STRIP_POLICY=$(DEF_STRIP_POLICY)
+  ifeq ($(OBJCOPY),)
+    _JUNK_ := $(shell \
+      echo >&2 "INFO: no objcopy cmd found so cannot create .debuginfo files.")
+    ENABLE_FULL_DEBUG_SYMBOLS=0
   else
-    STRIP_POLICY=$(ALT_STRIP_POLICY)
+    _JUNK_ := $(shell \
+      echo >&2 "INFO: $(OBJCOPY) cmd found so will create .debuginfo files.")
+
+    # Library stripping policies for .debuginfo configs:
+    #   all_strip - strips everything from the library
+    #   min_strip - strips most stuff from the library; leaves minimum symbols
+    #   no_strip  - does not strip the library at all
+    #
+    # Oracle security policy requires "all_strip". A waiver was granted on
+    # 2011.09.01 that permits using "min_strip" in the Java JDK and Java JRE.
+    #
+    #
+    # Currently, STRIP_POLICY is only used when Full Debug Symbols is enabled.
+    STRIP_POLICY ?= min_strip
+
+    _JUNK_ := $(shell \
+      echo >&2 "INFO: STRIP_POLICY=$(STRIP_POLICY)")
+
+    # HACK: disable ZIP_DEBUGINFO_FILES by default until install repo
+    # changes are promoted
+    ZIP_DEBUGINFO_FILES ?= 0
+
+    _JUNK_ := $(shell \
+      echo >&2 "INFO: ZIP_DEBUGINFO_FILES=$(ZIP_DEBUGINFO_FILES)")
   endif
-  _JUNK_ := $(shell \
-    echo >&2 "INFO: STRIP_POLICY=$(STRIP_POLICY)")
-endif
-endif
 endif
 
 #
@@ -753,5 +790,6 @@
 HOTSPOT_SALIB_PATH   = $(HOTSPOT_IMPORT_PATH)/jre/lib/$(LIBARCH)
 SALIB_NAME = $(LIB_PREFIX)saproc.$(LIBRARY_SUFFIX)
 SA_DEBUGINFO_NAME = $(LIB_PREFIX)saproc.debuginfo
+SA_DIZ_NAME = $(LIB_PREFIX)saproc.diz
 INCLUDE_SA=true
 
--- a/jdk/make/common/Defs-windows.gmk	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/make/common/Defs-windows.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1999, 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
@@ -52,6 +52,11 @@
   PLATFORM_SRC  = $(BUILDDIR)/../src/windows
 endif # PLATFORM_SRC
 
+# Location of the various .properties files specific to Windows platform
+ifndef PLATFORM_PROPERTIES
+  PLATFORM_PROPERTIES  = $(BUILDDIR)/../src/windows/lib
+endif # PLATFORM_SRC
+
 # Platform specific closed sources
 ifndef OPENJDK
   ifndef CLOSED_PLATFORM_SRC
@@ -75,6 +80,47 @@
 
 EXTRA_LFLAGS += /LIBPATH:$(DXSDK_LIB_PATH)
 
+# Full Debug Symbols has been enabled on Windows since JDK1.4.1.
+# The Full Debug Symbols (FDS) default for VARIANT == OPT builds is
+# enabled with debug info files ZIP'ed to save space. For VARIANT !=
+# OPT builds, FDS is always enabled, after all a debug build without
+# debug info isn't very useful. The ZIP_DEBUGINFO_FILES option only has
+# meaning when FDS is enabled.
+#
+# If you invoke a build with FULL_DEBUG_SYMBOLS=0, then FDS will be
+# disabled for a VARIANT == OPT build.
+#
+# Note: Use of a different variable name for the FDS override option
+# versus the FDS enabled check is intentional (FULL_DEBUG_SYMBOLS
+# versus ENABLE_FULL_DEBUG_SYMBOLS). For auto build systems that pass
+# in options via environment variables, use of distinct variables
+# prevents strange behaviours. For example, in a VARIANT != OPT build,
+# the FULL_DEBUG_SYMBOLS environment variable will be 0, but the
+# ENABLE_FULL_DEBUG_SYMBOLS make variable will be 1. If the same
+# variable name is used, then different values can be picked up by
+# different parts of the build. Just to be clear, we only need two
+# variable names because the incoming option value can be overridden
+# in some situations, e.g., a VARIANT != OPT build.
+
+ifeq ($(VARIANT), OPT)
+  FULL_DEBUG_SYMBOLS ?= 1
+  ENABLE_FULL_DEBUG_SYMBOLS = $(FULL_DEBUG_SYMBOLS)
+else
+  # debug variants always get Full Debug Symbols (if available)
+  ENABLE_FULL_DEBUG_SYMBOLS = 1
+endif
+_JUNK_ := $(shell \
+  echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)")
+
+ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
+  # HACK: disable ZIP_DEBUGINFO_FILES by default until install repo
+  # changes are promoted
+  ZIP_DEBUGINFO_FILES ?= 0
+else
+  ZIP_DEBUGINFO_FILES=0
+endif
+_JUNK_ := $(shell echo >&2 "INFO: ZIP_DEBUGINFO_FILES=$(ZIP_DEBUGINFO_FILES)")
+
 # C Compiler flag definitions
 
 #
@@ -201,7 +247,10 @@
   #   /D _STATIC_CPPLIB
   #            Use static link for the C++ runtime (so msvcpnn.dll not needed)
   #   
-  CFLAGS_COMMON  += -Zi -nologo
+  ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
+    CFLAGS_COMMON  += -Zi
+  endif
+  CFLAGS_COMMON  += -nologo
   CFLAGS_OPT      = $(CC_OPT)
   CFLAGS_DBG      = -Od $(MS_RUNTIME_DEBUG_OPTION)
 
@@ -210,7 +259,9 @@
   # All builds get the same runtime setting
   CFLAGS_COMMON += $(MS_RUNTIME_OPTION) $(CFLAGS_$(COMPILER_VERSION))
 
-  LDEBUG = /debug
+  ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
+    LDEBUG = /debug
+  endif
   
   ifeq ($(VTUNE_SUPPORT), true)
     OTHER_CFLAGS = -Z7 -Ox 
@@ -244,7 +295,9 @@
 #
 # Output options (use specific filenames to avoid parallel compile errors)
 #
-CFLAGS_COMMON += -Fd$(OBJDIR)/$(basename $(@F)).pdb -Fm$(OBJDIR)/$(basename $(@F)).map
+ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
+  CFLAGS_COMMON += -Fd$(OBJDIR)/$(basename $(@F)).pdb -Fm$(OBJDIR)/$(basename $(@F)).map
+endif
 
 #
 # Use -wdNNNN to disable warning NNNN.
@@ -305,6 +358,7 @@
 SALIB_NAME = $(LIB_PREFIX)sawindbg.$(LIBRARY_SUFFIX)
 SAMAP_NAME = $(LIB_PREFIX)sawindbg.map
 SAPDB_NAME = $(LIB_PREFIX)sawindbg.pdb
+SA_DIZ_NAME = $(LIB_PREFIX)sawindbg.diz
 
 ifeq ($(ARCH), ia64)
   # SA will never be supported here.
--- a/jdk/make/common/Library.gmk	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/make/common/Library.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 1995, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1995, 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
@@ -167,17 +167,23 @@
 # build it into $(OBJDIR) so that the other generated files get put 
 # there, then copy just the DLL (and MAP file) to the requested directory.
 #
+ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
+  MAP_OPTION="-map:$(OBJDIR)/$(LIBRARY).map"
+endif
+
 $(ACTUAL_LIBRARY):: $(OBJDIR)/$(LIBRARY).lcf
 	@$(prep-target)
 	@$(MKDIR) -p $(OBJDIR)
 	$(LINK) -dll -out:$(OBJDIR)/$(@F) \
-	  -map:$(OBJDIR)/$(LIBRARY).map \
+	  $(MAP_OPTION) \
 	  $(LFLAGS) @$(OBJDIR)/$(LIBRARY).lcf \
 	  $(OTHER_LCF) $(LDLIBS)
 	$(CP) $(OBJDIR)/$(@F) $@
 	@$(call binary_file_verification,$@)
+ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
 	$(CP) $(OBJDIR)/$(LIBRARY).map $(@D)
 	$(CP) $(OBJDIR)/$(LIBRARY).pdb $(@D)
+endif
 
 endif # LIBRARY
 
--- a/jdk/make/common/Program.gmk	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/make/common/Program.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -171,6 +171,10 @@
 	@$(prep-target)
 	$(SED) 's%IMVERSION%$(IMVERSION)%g;s%PROGRAM%$(PROGRAM)%g' $< > $@
 
+ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
+  MAP_OPTION="-map:$(OBJDIR)/$(PROGRAM).map"
+endif
+
   # We used a hand-crafted manifest file for all executables.
   # It is tweaked to embed the build number and executable name.
   # Use ";#2" for .dll and ";#1" for .exe in the MT command below:
@@ -179,7 +183,7 @@
 	@set -- $?; \
 	    $(ECHO) Rebuilding $@ because of $$1 $$2 $$3 $$4 $$5 $$6 $${7:+...};
 	$(LINK) -out:$@ /STACK:$(STACK_SIZE) \
-	    -map:$(OBJDIR)/$(PROGRAM).map $(LFLAGS) $(LDFLAGS) \
+	    $(MAP_OPTION) $(LFLAGS) $(LDFLAGS) \
 	    @$(OBJDIR)/$(PROGRAM).lcf $(LDLIBS)
   ifdef MT
 	$(MT) /manifest $(OBJDIR)/$(PROGRAM).exe.manifest /outputresource:$@;#1
--- a/jdk/make/common/Release.gmk	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/make/common/Release.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -144,6 +144,7 @@
 	javadoc.1          \
 	javah.1            \
 	javap.1            \
+	jcmd.1             \
 	jconsole.1         \
 	jdb.1              \
 	jhat.1             \
@@ -607,10 +608,6 @@
 	$(ECHO) "oracle/jrockit/jfr/parser/" >> $@
 	$(ECHO) "oracle/jrockit/jfr/settings/" >> $@
 	$(ECHO) "oracle/jrockit/jfr/tools/" >> $@
-	$(ECHO) "oracle/jrockit/jfr/util/" >> $@
-	$(ECHO) "oracle/jrockit/jfr/util/log/" >> $@
-	$(ECHO) "oracle/jrockit/jfr/util/os/" >> $@
-	$(ECHO) "oracle/jrockit/jfr/util/text/" >> $@
 endif
 endif
 
@@ -637,7 +634,7 @@
 	$(MV) $@.temp $@
 	@($(CD) $(CLASSBINDIR) && $(java-vm-cleanup))
 
-# Create the jfr.jar containing Java Flight Recorder implementation
+# Create jfr.jar
 JFR_JAR=
 ifndef OPENJDK
 ifndef JAVASE_EMBEDDED
--- a/jdk/make/common/internal/Resources.gmk	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/make/common/internal/Resources.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -153,8 +153,8 @@
 # Strip the properties files
 strip_all_props: $(STRIPPROPERTIES_JARFILE) $(STRIP_PROP_options)
 	@if [ -s $(STRIP_PROP_options) ] ; then \
-          $(ECHO) "$(BOOT_JAVA_CMD) -jar $(STRIPPROPERTIES_JARFILE) -optionsfile $(STRIP_PROP_options)" ; \
-          $(BOOT_JAVA_CMD) -jar $(STRIPPROPERTIES_JARFILE) -optionsfile $(STRIP_PROP_options) ; \
+          $(ECHO) "$(BOOT_JAVA_CMD) -jar $(STRIPPROPERTIES_JARFILE) @$(STRIP_PROP_options)" ; \
+          $(BOOT_JAVA_CMD) -jar $(STRIPPROPERTIES_JARFILE) @$(STRIP_PROP_options) ; \
         fi
 	@$(java-vm-cleanup)
 
@@ -243,8 +243,8 @@
 compile_all_props: $(COMPILEPROPERTIES_JARFILE) $(COMPILE_PROP_options)
 	@if [ `$(CAT) $(COMPILE_PROP_options) | $(WC) -l` -ge 1 ] ; then \
 	  $(MKDIR) -p $(GENSRCDIR); \
-	  $(ECHO) "$(BOOT_JAVA_CMD) -jar $(COMPILEPROPERTIES_JARFILE) -optionsfile $(COMPILE_PROP_options)";\
-	  $(BOOT_JAVA_CMD) -jar $(COMPILEPROPERTIES_JARFILE) -optionsfile $(COMPILE_PROP_options) ; \
+	  $(ECHO) "$(BOOT_JAVA_CMD) -jar $(COMPILEPROPERTIES_JARFILE) @$(COMPILE_PROP_options)";\
+	  $(BOOT_JAVA_CMD) -jar $(COMPILEPROPERTIES_JARFILE) @$(COMPILE_PROP_options) ; \
 	  $(java-vm-cleanup); \
 	fi
 
--- a/jdk/make/common/shared/Sanity.gmk	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/make/common/shared/Sanity.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2005, 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
@@ -1037,11 +1037,22 @@
 	    "      and/or check your value of ALT_HOTSPOT_LIB_PATH. \n" \
 	    "" >> $(ERROR_FILE) ; \
 	fi
+  ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
 	@#
 	@# Check for the .map files - its OK if they are not there..
 	@#
-  ifeq ($(ARCH_DATA_MODEL), 32)
+    ifeq ($(ARCH_DATA_MODEL), 32)
 	@# There is no 64-bit HotSpot client VM
+      ifeq ($(ZIP_DEBUGINFO_FILES),1)
+	@if [ ! -r $(HOTSPOT_CLIENT_PATH)/jvm.diz ]; then \
+	  $(ECHO) "WARNING: HOTSPOT_CLIENT_PATH does not point to valid HotSpot .diz files. \n" \
+	    "        These files are optional and aid in the debugging of the JVM. \n" \
+	    "        Please check your access to \n" \
+	    "          $(HOTSPOT_CLIENT_PATH)/jvm.diz \n" \
+	    "        and/or check your value of ALT_HOTSPOT_CLIENT_PATH. \n" \
+	    "" >> $(WARNING_FILE) ; \
+	fi
+      else
 	@if [ ! -r $(HOTSPOT_CLIENT_PATH)/jvm.map ]; then \
 	  $(ECHO) "WARNING: HOTSPOT_CLIENT_PATH does not point to valid HotSpot .map files. \n" \
 	    "        These files are optional and aid in the debugging of the JVM. \n" \
@@ -1058,7 +1069,18 @@
 	    "        and/or check your value of ALT_HOTSPOT_CLIENT_PATH. \n" \
 	    "" >> $(WARNING_FILE) ; \
 	fi
-  endif
+      endif
+    endif
+    ifeq ($(ZIP_DEBUGINFO_FILES),1)
+	@if [ ! -r $(HOTSPOT_SERVER_PATH)/jvm.diz ]; then \
+	  $(ECHO) "WARNING: HOTSPOT_SERVER_PATH does not point to valid HotSpot .diz files. \n" \
+	    "        These files are optional and aid in the debugging of the JVM. \n" \
+	    "        Please check your access to \n" \
+	    "          $(HOTSPOT_SERVER_PATH)/jvm.diz \n" \
+	    "        and/or check your value of ALT_HOTSPOT_SERVER_PATH. \n" \
+	    "" >> $(WARNING_FILE) ; \
+	fi
+    else
 	@if [ ! -r $(HOTSPOT_SERVER_PATH)/jvm.map ]; then \
 	  $(ECHO) "WARNING: HOTSPOT_SERVER_PATH does not point to valid HotSpot .map files. \n" \
 	    "        These files are optional and aid in the debugging of the JVM. \n" \
@@ -1075,6 +1097,8 @@
 	    "        and/or check your value of ALT_HOTSPOT_SERVER_PATH. \n" \
 	    "" >> $(WARNING_FILE) ; \
 	fi
+    endif
+  endif	
 endif	
 
 
--- a/jdk/make/java/awt/Makefile	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/make/java/awt/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -57,7 +57,7 @@
 
 properties: $(LIBDIR) $(LIBPROPS)
 
-$(LIBDIR)/%.properties: $(PLATFORM_SRC)/lib/%.properties
+$(LIBDIR)/%.properties: $(PLATFORM_PROPERTIES)/%.properties
 	$(install-file)
 
 properties.clean :
--- a/jdk/make/java/java/FILES_java.gmk	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/make/java/java/FILES_java.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -51,6 +51,7 @@
     java/lang/SuppressWarnings.java \
     java/lang/AbstractStringBuilder.java \
     java/lang/ClassLoader.java \
+    java/lang/ClassLoaderHelper.java \
     java/lang/AssertionStatusDirectives.java \
     java/lang/Enum.java \
     java/lang/StrictMath.java \
--- a/jdk/make/java/npt/Makefile	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/make/java/npt/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -68,7 +68,7 @@
 endif
 
 # Add location of iconv header
-ifeq ($(PLATFORM), macosx))
+ifeq ($(PLATFORM), macosx)
   OTHER_LDLIBS += -liconv
 endif
 
--- a/jdk/make/java/redist/Makefile	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/make/java/redist/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1997, 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
@@ -61,9 +61,13 @@
 JVMDTRACE_NAME         = $(LIB_PREFIX)jvm$(DTRACE_SUFFIX).$(LIBRARY_SUFFIX)
 
 JVM_DEBUGINFO_NAME       = $(LIB_PREFIX)jvm.debuginfo
+JVM_DIZ_NAME             = $(LIB_PREFIX)jvm.diz
 LIBJSIG_DEBUGINFO_NAME   = $(LIB_PREFIX)jsig.debuginfo
+LIBJSIG_DIZ_NAME         = $(LIB_PREFIX)jsig.diz
 JVMDB_DEBUGINFO_NAME     = $(LIB_PREFIX)jvm$(DB_SUFFIX).debuginfo
+JVMDB_DIZ_NAME           = $(LIB_PREFIX)jvm$(DB_SUFFIX).diz
 JVMDTRACE_DEBUGINFO_NAME = $(LIB_PREFIX)jvm$(DTRACE_SUFFIX).debuginfo
+JVMDTRACE_DIZ_NAME       = $(LIB_PREFIX)jvm$(DTRACE_SUFFIX).diz
 
 CLASSSHARINGDATA_DIR   = $(BUILDDIR)/tools/sharing
 
@@ -86,10 +90,17 @@
 ifndef BUILD_CLIENT_ONLY
   IMPORT_LIST = $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVM_NAME) \
                 $(LIB_LOCATION)/$(SERVER_LOCATION)/Xusage.txt
-  ifneq ($(OBJCOPY),)
-    # the import JDK may not contain .debuginfo files
-    ifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/$(JVM_DEBUGINFO_NAME)),)
-      IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVM_DEBUGINFO_NAME)
+  ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
+    ifeq ($(ZIP_DEBUGINFO_FILES),1)
+      # the import JDK may not contain .diz files
+      ifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/$(JVM_DIZ_NAME)),)
+        IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVM_DIZ_NAME)
+      endif
+    else
+      # the import JDK may not contain .debuginfo files
+      ifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/$(JVM_DEBUGINFO_NAME)),)
+        IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVM_DEBUGINFO_NAME)
+      endif
     endif
   endif
 else
@@ -101,10 +112,17 @@
 ifeq ($(ARCH_DATA_MODEL), 32)
   IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVM_NAME) \
                  $(LIB_LOCATION)/$(CLIENT_LOCATION)/Xusage.txt
-  ifneq ($(OBJCOPY),)
-    # the import JDK may not contain .debuginfo files
-    ifneq ($(wildcard $(HOTSPOT_CLIENT_PATH)/$(JVM_DEBUGINFO_NAME)),)
-      IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVM_DEBUGINFO_NAME)
+  ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
+    ifeq ($(ZIP_DEBUGINFO_FILES),1)
+      # the import JDK may not contain .diz files
+      ifneq ($(wildcard $(HOTSPOT_CLIENT_PATH)/$(JVM_DIZ_NAME)),)
+        IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVM_DIZ_NAME)
+      endif
+    else
+      # the import JDK may not contain .debuginfo files
+      ifneq ($(wildcard $(HOTSPOT_CLIENT_PATH)/$(JVM_DEBUGINFO_NAME)),)
+        IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVM_DEBUGINFO_NAME)
+      endif
     endif
   endif
 endif
@@ -121,20 +139,56 @@
 
 # Get the hotspot .map and .pdb files for client and server
 ifndef BUILD_CLIENT_ONLY
-IMPORT_LIST += \
-	$(LIBDIR)/$(JVMLIB_NAME) \
-	$(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMMAP_NAME) \
-	$(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMPDB_NAME)
+  IMPORT_LIST += $(LIBDIR)/$(JVMLIB_NAME)
+  ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
+    ifeq ($(ZIP_DEBUGINFO_FILES),1)
+      # the import JDK may not contain .diz files
+      ifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/$(JVM_DIZ_NAME)),)
+        IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVM_DIZ_NAME)
+      endif
+    else
+      # the import JDK may not contain .pdb files
+      ifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/$(JVMPDB_NAME)),)
+        # assume .map file is present if .pdb file is preset
+        IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMMAP_NAME) \
+	  $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMPDB_NAME)
+      endif
+    endif
+  endif
 endif
 
 # Add .map and .pdb files to the import path for client and kernel VMs. 
 # These are only available on 32-bit windows builds. 
 ifeq ($(ARCH_DATA_MODEL), 32)
-  IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMMAP_NAME) \
-                 $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMPDB_NAME)
-  ifeq ($(DO_KERNEL), true)
-    IMPORT_LIST += $(LIB_LOCATION)/$(KERNEL_LOCATION)/$(JVMMAP_NAME) \
-                   $(LIB_LOCATION)/$(KERNEL_LOCATION)/$(JVMPDB_NAME)
+  ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
+    ifeq ($(ZIP_DEBUGINFO_FILES),1)
+      # the import JDK may not contain .diz files
+      ifneq ($(wildcard $(HOTSPOT_CLIENT_PATH)/$(JVM_DIZ_NAME)),)
+        IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVM_DIZ_NAME)
+      endif
+    else
+      # the import JDK may not contain .pdb files
+      ifneq ($(wildcard $(HOTSPOT_CLIENT_PATH)/$(JVMPDB_NAME)),)
+        # assume .map file is present if .pdb file is preset
+        IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMMAP_NAME) \
+                       $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMPDB_NAME)
+      endif
+    endif
+    ifeq ($(DO_KERNEL), true)
+      ifeq ($(ZIP_DEBUGINFO_FILES),1)
+        # the import JDK may not contain .diz files
+        ifneq ($(wildcard $(HOTSPOT_KERNEL_PATH)/$(JVM_DIZ_NAME)),)
+          IMPORT_LIST += $(LIB_LOCATION)/$(KERNEL_LOCATION)/$(JVM_DIZ_NAME)
+        endif
+      else
+        # the import JDK may not contain .pdb files
+        ifneq ($(wildcard $(HOTSPOT_KERNEL_PATH)/$(JVMPDB_NAME)),)
+          # assume .map file is present if .pdb file is preset
+          IMPORT_LIST += $(LIB_LOCATION)/$(KERNEL_LOCATION)/$(JVMMAP_NAME) \
+                         $(LIB_LOCATION)/$(KERNEL_LOCATION)/$(JVMPDB_NAME)
+        endif
+      endif
+    endif
   endif
 endif
 
@@ -165,10 +219,22 @@
 	@$(prep-target)
 	-$(CP) $(HOTSPOT_KERNEL_PATH)/$(JVMPDB_NAME)  $@
 
+$(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVM_DIZ_NAME):
+	@$(prep-target)
+	-$(CP) $(HOTSPOT_CLIENT_PATH)/$(JVM_DIZ_NAME)  $@
+
+$(LIB_LOCATION)/$(KERNEL_LOCATION)/$(JVM_DIZ_NAME):
+	@$(prep-target)
+	-$(CP) $(HOTSPOT_KERNEL_PATH)/$(JVM_DIZ_NAME)  $@
+
 ifndef BUILD_CLIENT_ONLY
 $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMPDB_NAME): 
 	@$(prep-target)
 	-$(CP) $(HOTSPOT_SERVER_PATH)/$(JVMPDB_NAME) $@
+
+$(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVM_DIZ_NAME):
+	@$(prep-target)
+	-$(CP) $(HOTSPOT_SERVER_PATH)/$(JVM_DIZ_NAME) $@
 endif
 
 #  Windows     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  Windows
@@ -176,18 +242,33 @@
 #  NOT Windows vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv  NOT Windows
 
 IMPORT_LIST += $(LIB_LOCATION)/$(LIBJSIG_NAME) 
-ifneq ($(OBJCOPY),)
-  # the import JDK may not contain .debuginfo files
-  ifneq ($(wildcard $(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/$(LIBJSIG_DEBUGINFO_NAME)),)
-    IMPORT_LIST += $(LIB_LOCATION)/$(LIBJSIG_DEBUGINFO_NAME)
+ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
+  ifeq ($(ZIP_DEBUGINFO_FILES),1)
+    # the import JDK may not contain .diz files
+    ifneq ($(wildcard $(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/$(LIBJSIG_DIZ_NAME)),)
+      IMPORT_LIST += $(LIB_LOCATION)/$(LIBJSIG_DIZ_NAME)
+    endif
+  else
+    # the import JDK may not contain .debuginfo files
+    ifneq ($(wildcard $(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/$(LIBJSIG_DEBUGINFO_NAME)),)
+      IMPORT_LIST += $(LIB_LOCATION)/$(LIBJSIG_DEBUGINFO_NAME)
+    endif
   endif
 endif
 ifndef BUILD_CLIENT_ONLY
   IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/$(LIBJSIG_NAME)
-  ifneq ($(OBJCOPY),)
-    # the import JDK may not contain the target of the symlink
-    ifneq ($(wildcard $(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/$(LIBJSIG_DEBUGINFO_NAME)),)
-      IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/$(LIBJSIG_DEBUGINFO_NAME)
+  ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
+    ifeq ($(ZIP_DEBUGINFO_FILES),1)
+      # the import JDK may not contain the target of the symlink
+      ifneq ($(wildcard $(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/$(LIBJSIG_DIZ_NAME)),)
+        # check for the .diz file, but create the .debuginfo link
+        IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/$(LIBJSIG_DEBUGINFO_NAME)
+      endif
+    else
+      # the import JDK may not contain the target of the symlink
+      ifneq ($(wildcard $(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/$(LIBJSIG_DEBUGINFO_NAME)),)
+        IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/$(LIBJSIG_DEBUGINFO_NAME)
+      endif
     endif
   endif
 endif
@@ -195,19 +276,33 @@
 ifeq ($(PLATFORM), solaris)
   ifndef BUILD_CLIENT_ONLY
     IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMDB_NAME)
-    ifneq ($(OBJCOPY),)
-      # the import JDK may not contain .debuginfo files
-      ifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/$(JVMDB_DEBUGINFO_NAME)),)
-        IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMDB_DEBUGINFO_NAME)
+    ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
+      ifeq ($(ZIP_DEBUGINFO_FILES),1)
+        # the import JDK may not contain .diz files
+        ifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/$(JVMDB_DIZ_NAME)),)
+          IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMDB_DIZ_NAME)
+        endif
+      else
+        # the import JDK may not contain .debuginfo files
+        ifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/$(JVMDB_DEBUGINFO_NAME)),)
+          IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMDB_DEBUGINFO_NAME)
+        endif
       endif
     endif
     # The conditional can be removed when import JDKs contain these files.
     ifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/$(JVMDTRACE_NAME)),)
       IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMDTRACE_NAME)
-      ifneq ($(OBJCOPY),)
-        # the import JDK may not contain .debuginfo files
-        ifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/$(JVMDTRACE_DEBUGINFO_NAME)),)
-          IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMDTRACE_DEBUGINFO_NAME)
+      ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
+        ifeq ($(ZIP_DEBUGINFO_FILES),1)
+          # the import JDK may not contain .diz files
+          ifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/$(JVMDTRACE_DIZ_NAME)),)
+            IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMDTRACE_DIZ_NAME)
+          endif
+        else
+          # the import JDK may not contain .debuginfo files
+          ifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/$(JVMDTRACE_DEBUGINFO_NAME)),)
+            IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMDTRACE_DEBUGINFO_NAME)
+          endif
         endif
       endif
     else
@@ -220,10 +315,18 @@
 ifeq ($(ARCH_DATA_MODEL), 32)
 
 IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(LIBJSIG_NAME)
-ifneq ($(OBJCOPY),)
-  # the import JDK may not contain the target of the symlink
-  ifneq ($(wildcard $(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/$(LIBJSIG_DEBUGINFO_NAME)),)
-    IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(LIBJSIG_DEBUGINFO_NAME)
+ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
+  ifeq ($(ZIP_DEBUGINFO_FILES),1)
+    # the import JDK may not contain the target of the symlink
+    ifneq ($(wildcard $(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/$(LIBJSIG_DIZ_NAME)),)
+      # check for the .diz file, but create the .debuginfo link
+      IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(LIBJSIG_DEBUGINFO_NAME)
+    endif
+  else
+    # the import JDK may not contain the target of the symlink
+    ifneq ($(wildcard $(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/$(LIBJSIG_DEBUGINFO_NAME)),)
+      IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(LIBJSIG_DEBUGINFO_NAME)
+    endif
   endif
 endif
 
@@ -231,10 +334,17 @@
 #  solaris   vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv  solaris
 
 IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMDB_NAME)
-ifneq ($(OBJCOPY),)
-  # the import JDK may not contain .debuginfo files
-  ifneq ($(wildcard $(HOTSPOT_CLIENT_PATH)/$(JVMDB_DEBUGINFO_NAME)),)
-    IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMDB_DEBUGINFO_NAME)
+ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
+  ifeq ($(ZIP_DEBUGINFO_FILES),1)
+    # the import JDK may not contain .diz files
+    ifneq ($(wildcard $(HOTSPOT_CLIENT_PATH)/$(JVMDB_DIZ_NAME)),)
+      IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMDB_DIZ_NAME)
+    endif
+  else
+    # the import JDK may not contain .debuginfo files
+    ifneq ($(wildcard $(HOTSPOT_CLIENT_PATH)/$(JVMDB_DEBUGINFO_NAME)),)
+      IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMDB_DEBUGINFO_NAME)
+    endif
   endif
 endif
 
@@ -243,13 +353,22 @@
   IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMDTRACE_NAME)
   IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/64/$(JVMDB_NAME)
   IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/64/$(JVMDTRACE_NAME)
-  ifneq ($(OBJCOPY),)
-    # the import JDK may not contain .debuginfo files
-    ifneq ($(wildcard $(HOTSPOT_CLIENT_PATH)/$(JVMDTRACE_DEBUGINFO_NAME)),)
-      IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMDTRACE_DEBUGINFO_NAME)
-      IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/64/$(JVMDB_DEBUGINFO_NAME)
-      IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/64/$(JVMDTRACE_DEBUGINFO_NAME)
-  endif
+  ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
+    ifeq ($(ZIP_DEBUGINFO_FILES),1)
+      # the import JDK may not contain .diz files
+      ifneq ($(wildcard $(HOTSPOT_CLIENT_PATH)/$(JVMDTRACE_DIZ_NAME)),)
+        IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMDTRACE_DIZ_NAME)
+        IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/64/$(JVMDB_DIZ_NAME)
+        IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/64/$(JVMDTRACE_DIZ_NAME)
+      endif
+    else
+      # the import JDK may not contain .debuginfo files
+      ifneq ($(wildcard $(HOTSPOT_CLIENT_PATH)/$(JVMDTRACE_DEBUGINFO_NAME)),)
+        IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMDTRACE_DEBUGINFO_NAME)
+        IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/64/$(JVMDB_DEBUGINFO_NAME)
+        IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/64/$(JVMDTRACE_DEBUGINFO_NAME)
+      endif
+    endif
   endif
 else
   $(warning WARNING: $(HOTSPOT_CLIENT_PATH)/$(JVMDTRACE_NAME) not found!)
@@ -259,10 +378,17 @@
   # The conditional can be removed when import JDKs contain these files.
   ifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/64/$(JVMDB_NAME)),)
     IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/64/$(JVMDB_NAME)
-    ifneq ($(OBJCOPY),)
-      # the import JDK may not contain .debuginfo files
-      ifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/64/$(JVMDB_DEBUGINFO_NAME)),)
-        IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/64/$(JVMDB_DEBUGINFO_NAME)
+    ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
+      ifeq ($(ZIP_DEBUGINFO_FILES),1)
+        # the import JDK may not contain .diz files
+        ifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/64/$(JVMDB_DIZ_NAME)),)
+          IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/64/$(JVMDB_DIZ_NAME)
+        endif
+      else
+        # the import JDK may not contain .debuginfo files
+        ifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/64/$(JVMDB_DEBUGINFO_NAME)),)
+          IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/64/$(JVMDB_DEBUGINFO_NAME)
+        endif
       endif
     endif
   else
@@ -272,10 +398,17 @@
   # The conditional can be removed when import JDKs contain these files.
   ifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/64/$(JVMDTRACE_NAME)),)
     IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/64/$(JVMDTRACE_NAME)
-    ifneq ($(OBJCOPY),)
-      # the import JDK may not contain .debuginfo files
-      ifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/64/$(JVMDTRACE_DEBUGINFO_NAME)),)
-        IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/64/$(JVMDTRACE_DEBUGINFO_NAME)
+    ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
+      ifeq ($(ZIP_DEBUGINFO_FILES),1)
+        # the import JDK may not contain .diz files
+        ifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/64/$(JVMDTRACE_DIZ_NAME)),)
+          IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/64/$(JVMDTRACE_DIZ_NAME)
+        endif
+      else
+        # the import JDK may not contain .debuginfo files
+        ifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/64/$(JVMDTRACE_DEBUGINFO_NAME)),)
+          IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/64/$(JVMDTRACE_DEBUGINFO_NAME)
+        endif
       endif
     endif
   else
@@ -304,9 +437,14 @@
 	$(install-import-file)
 	@$(call binary_file_verification,$@)
 
-ifneq ($(OBJCOPY),)
+ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
+  ifeq ($(ZIP_DEBUGINFO_FILES),1)
+$(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVM_DIZ_NAME): $(HOTSPOT_CLIENT_PATH)/$(JVM_DIZ_NAME)
+	$(install-import-file)
+  else
 $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVM_DEBUGINFO_NAME): $(HOTSPOT_CLIENT_PATH)/$(JVM_DEBUGINFO_NAME)
 	$(install-import-file)
+  endif
 endif
 
 $(LIB_LOCATION)/$(KERNEL_LOCATION)/$(JVM_NAME): $(HOTSPOT_KERNEL_PATH)/$(JVM_NAME)
@@ -317,9 +455,14 @@
 	$(install-import-file)
 	@$(call binary_file_verification,$@)
 
-ifneq ($(OBJCOPY),)
+ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
+  ifeq ($(ZIP_DEBUGINFO_FILES),1)
+$(LIB_LOCATION)/$(LIBJSIG_DIZ_NAME): $(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/$(LIBJSIG_DIZ_NAME)
+	$(install-import-file)
+  else
 $(LIB_LOCATION)/$(LIBJSIG_DEBUGINFO_NAME): $(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/$(LIBJSIG_DEBUGINFO_NAME)
 	$(install-import-file)
+  endif
 endif
 
 ifndef BUILD_CLIENT_ONLY
@@ -328,22 +471,24 @@
 	@$(prep-target)
 	$(call install-sym-link, ../$(LIBJSIG_NAME))
 
-ifneq ($(OBJCOPY),)
+  ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
+# we don't create a symlink to a libjsig.diz file
 $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(LIBJSIG_DEBUGINFO_NAME) \
 $(LIB_LOCATION)/$(SERVER_LOCATION)/$(LIBJSIG_DEBUGINFO_NAME):
 	@$(prep-target)
 	$(call install-sym-link, ../$(LIBJSIG_DEBUGINFO_NAME))
-endif
+  endif
 else
 $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(LIBJSIG_NAME):
 	@$(prep-target)
 	$(call install-sym-link, ../$(LIBJSIG_NAME))
 
-ifneq ($(OBJCOPY),)
+  ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
+# we don't create a symlink to a libjsig.diz file
 $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(LIBJSIG_DEBUGINFO_NAME):
 	@$(prep-target)
 	$(call install-sym-link, ../$(LIBJSIG_DEBUGINFO_NAME))
-endif
+  endif
 endif
 
 $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMDB_NAME): $(HOTSPOT_CLIENT_PATH)/$(JVMDB_NAME)
@@ -354,12 +499,20 @@
 	$(install-import-file)
 	@$(call binary_file_verification,$@)
 
-ifneq ($(OBJCOPY),)
+ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
+  ifeq ($(ZIP_DEBUGINFO_FILES),1)
+$(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMDB_DIZ_NAME): $(HOTSPOT_CLIENT_PATH)/$(JVMDB_DIZ_NAME)
+	$(install-import-file)
+
+$(LIB_LOCATION)/$(CLIENT_LOCATION)/64/$(JVMDB_DIZ_NAME): $(HOTSPOT_CLIENT_PATH)/64/$(JVMDB_DIZ_NAME)
+	$(install-import-file)
+  else
 $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMDB_DEBUGINFO_NAME): $(HOTSPOT_CLIENT_PATH)/$(JVMDB_DEBUGINFO_NAME)
 	$(install-import-file)
 
 $(LIB_LOCATION)/$(CLIENT_LOCATION)/64/$(JVMDB_DEBUGINFO_NAME): $(HOTSPOT_CLIENT_PATH)/64/$(JVMDB_DEBUGINFO_NAME)
 	$(install-import-file)
+  endif
 endif
 
 ifndef BUILD_CLIENT_ONLY
@@ -371,13 +524,21 @@
 	$(install-import-file)
 	@$(call binary_file_verification,$@)
 
-ifneq ($(OBJCOPY),)
+  ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
+    ifeq ($(ZIP_DEBUGINFO_FILES),1)
+$(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMDB_DIZ_NAME): $(HOTSPOT_SERVER_PATH)/$(JVMDB_DIZ_NAME)
+	$(install-import-file)
+
+$(LIB_LOCATION)/$(SERVER_LOCATION)/64/$(JVMDB_DIZ_NAME): $(HOTSPOT_SERVER_PATH)/64/$(JVMDB_DIZ_NAME)
+	$(install-import-file)
+    else
 $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMDB_DEBUGINFO_NAME): $(HOTSPOT_SERVER_PATH)/$(JVMDB_DEBUGINFO_NAME)
 	$(install-import-file)
 
 $(LIB_LOCATION)/$(SERVER_LOCATION)/64/$(JVMDB_DEBUGINFO_NAME): $(HOTSPOT_SERVER_PATH)/64/$(JVMDB_DEBUGINFO_NAME)
 	$(install-import-file)
-endif
+    endif
+  endif
 endif
 
 $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMDTRACE_NAME): $(HOTSPOT_CLIENT_PATH)/$(JVMDTRACE_NAME)
@@ -388,12 +549,20 @@
 	$(install-import-file)
 	@$(call binary_file_verification,$@)
 
-ifneq ($(OBJCOPY),)
+ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
+  ifeq ($(ZIP_DEBUGINFO_FILES),1)
+$(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMDTRACE_DIZ_NAME): $(HOTSPOT_CLIENT_PATH)/$(JVMDTRACE_DIZ_NAME)
+	$(install-import-file)
+
+$(LIB_LOCATION)/$(CLIENT_LOCATION)/64/$(JVMDTRACE_DIZ_NAME): $(HOTSPOT_CLIENT_PATH)/64/$(JVMDTRACE_DIZ_NAME)
+	$(install-import-file)
+  else
 $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMDTRACE_DEBUGINFO_NAME): $(HOTSPOT_CLIENT_PATH)/$(JVMDTRACE_DEBUGINFO_NAME)
 	$(install-import-file)
 
 $(LIB_LOCATION)/$(CLIENT_LOCATION)/64/$(JVMDTRACE_DEBUGINFO_NAME): $(HOTSPOT_CLIENT_PATH)/64/$(JVMDTRACE_DEBUGINFO_NAME)
 	$(install-import-file)
+  endif
 endif
 
 ifndef BUILD_CLIENT_ONLY
@@ -409,7 +578,17 @@
 	$(install-import-file)
 	@$(call binary_file_verification,$@)
 
-ifneq ($(OBJCOPY),)
+ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
+  ifeq ($(ZIP_DEBUGINFO_FILES),1)
+$(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMDTRACE_DIZ_NAME): $(HOTSPOT_SERVER_PATH)/$(JVMDTRACE_DIZ_NAME)
+	$(install-import-file)
+
+$(LIB_LOCATION)/$(SERVER_LOCATION)/64/$(JVMDTRACE_DIZ_NAME): $(HOTSPOT_SERVER_PATH)/64/$(JVMDTRACE_DIZ_NAME)
+	$(install-import-file)
+
+$(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVM_DIZ_NAME): $(HOTSPOT_SERVER_PATH)/$(JVM_DIZ_NAME)
+	$(install-import-file)
+  else
 $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMDTRACE_DEBUGINFO_NAME): $(HOTSPOT_SERVER_PATH)/$(JVMDTRACE_DEBUGINFO_NAME)
 	$(install-import-file)
 
@@ -418,6 +597,7 @@
 
 $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVM_DEBUGINFO_NAME): $(HOTSPOT_SERVER_PATH)/$(JVM_DEBUGINFO_NAME)
 	$(install-import-file)
+  endif
 endif
 
 $(LIB_LOCATION)/$(SERVER_LOCATION)/Xusage.txt : $(HOTSPOT_SERVER_PATH)/Xusage.txt
--- a/jdk/make/java/redist/sajdi/Makefile	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/make/java/redist/sajdi/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1997, 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
@@ -54,14 +54,26 @@
 ifeq ($(INCLUDE_SA), true)
   IMPORT_LIST += $(LIBDIR)/sa-jdi.jar \
                  $(LIB_LOCATION)/$(SALIB_NAME)
-  ifeq ($(PLATFORM), windows)
-    IMPORT_LIST += $(LIB_LOCATION)/$(SAMAP_NAME) \
-                   $(LIB_LOCATION)/$(SAPDB_NAME)
-  endif
-  ifneq ($(OBJCOPY),)
-    # the import JDK may not contain .debuginfo files
-    ifneq ($(wildcard $(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/$(SA_DEBUGINFO_NAME)),)
-      IMPORT_LIST += $(LIB_LOCATION)/$(SA_DEBUGINFO_NAME)
+  ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
+    ifeq ($(ZIP_DEBUGINFO_FILES),1)
+      # the import JDK may not contain .diz files
+      ifneq ($(wildcard $(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/$(SA_DIZ_NAME)),)
+        IMPORT_LIST += $(LIB_LOCATION)/$(SA_DIZ_NAME)
+      endif
+    else
+      ifeq ($(PLATFORM), windows)
+        # the import JDK may not contain .pdb files
+        ifneq ($(wildcard $(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/$(SAPDB_NAME)),)
+          # assume .map file is present if .pdb is present
+          IMPORT_LIST += $(LIB_LOCATION)/$(SAMAP_NAME) \
+                         $(LIB_LOCATION)/$(SAPDB_NAME)
+        endif
+      else
+        # the import JDK may not contain .debuginfo files
+        ifneq ($(wildcard $(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/$(SA_DEBUGINFO_NAME)),)
+          IMPORT_LIST += $(LIB_LOCATION)/$(SA_DEBUGINFO_NAME)
+        endif
+      endif
     endif
   endif
 endif # INCLUDE_SA
@@ -80,17 +92,22 @@
 $(LIB_LOCATION)/$(SALIB_NAME): $(HOTSPOT_SALIB_PATH)/$(SALIB_NAME)
 	$(install-import-file)
 
-ifeq ($(PLATFORM), windows)
+  ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
+    ifeq ($(ZIP_DEBUGINFO_FILES),1)
+$(LIB_LOCATION)/$(SA_DIZ_NAME): $(HOTSPOT_SALIB_PATH)/$(SA_DIZ_NAME)
+	$(install-import-file)
+    else
+      ifeq ($(PLATFORM), windows)
 $(LIB_LOCATION)/$(SAPDB_NAME): $(HOTSPOT_SALIB_PATH)/$(SAPDB_NAME)
 	$(install-import-file)
 
 $(LIB_LOCATION)/$(SAMAP_NAME): $(HOTSPOT_SALIB_PATH)/$(SAMAP_NAME)
 	$(install-import-file)
-endif # windows
-
-  ifneq ($(OBJCOPY),)
+      else
 $(LIB_LOCATION)/$(SA_DEBUGINFO_NAME): $(HOTSPOT_SALIB_PATH)/$(SA_DEBUGINFO_NAME)
 	$(install-import-file)
+      endif
+    endif
   endif
 endif # INCLUDE_SA
 
--- a/jdk/make/jpda/transport/socket/Makefile	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/make/jpda/transport/socket/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -40,7 +40,7 @@
   OTHER_LDLIBS += $(LIBNSL) $(LIBSOCKET) -lpthread
 endif
 
-ifeq ($(PLATFORM), macosx))
+ifeq ($(PLATFORM), macosx)
   LIBSOCKET =
   OTHER_LDLIBS += -pthread
 endif
--- a/jdk/make/jprt.gmk	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/make/jprt.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2006, 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
@@ -27,17 +27,24 @@
 
 JPRT_ARCHIVE_BUNDLE=$(ABS_OUTPUTDIR)/$(JPRT_BUILD_FLAVOR)-bundle.zip
 
+ifeq ($(PLATFORM),windows)
+  ZIPFLAGS=-q
+else
+  # store symbolic links as the link
+  ZIPFLAGS=-q -y
+endif
+
 jprt_build_product:  all images
 	( $(CD) $(OUTPUTDIR)/j2sdk-image && \
-	  $(ZIPEXE) -q -r $(JPRT_ARCHIVE_BUNDLE) . )
+	  $(ZIPEXE) $(ZIPFLAGS) -r $(JPRT_ARCHIVE_BUNDLE) . )
 
 jprt_build_fastdebug: fastdebug images
 	( $(CD) $(OUTPUTDIR)/j2sdk-image && \
-	  $(ZIPEXE) -q -r $(JPRT_ARCHIVE_BUNDLE) . )
+	  $(ZIPEXE) $(ZIPFLAGS) -r $(JPRT_ARCHIVE_BUNDLE) . )
 
 jprt_build_debug: debug images 
 	( $(CD) $(OUTPUTDIR)/j2sdk-image && \
-	  $(ZIPEXE) -q -r $(JPRT_ARCHIVE_BUNDLE) . )
+	  $(ZIPEXE) $(ZIPFLAGS) -r $(JPRT_ARCHIVE_BUNDLE) . )
 
 #
 # Phonies to avoid accidents.
--- a/jdk/make/launchers/Makefile.launcher	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/make/launchers/Makefile.launcher	Wed Jul 05 18:07:57 2017 +0200
@@ -155,8 +155,10 @@
 # GUI tools
 ifeq ($(GUI_TOOL),true)
   ifneq ($(PLATFORM), windows)
-    # Anything with a GUI needs X11 to be linked in.
-    OTHER_LDLIBS += -L$(OPENWIN_LIB) -lX11
+    ifneq ($(PLATFORM), macosx)
+      # Anything with a GUI needs X11 to be linked in.
+      OTHER_LDLIBS += -L$(OPENWIN_LIB) -lX11
+    endif
   endif
 endif
 
--- a/jdk/make/sun/awt/mawt.gmk	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/make/sun/awt/mawt.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -208,7 +208,7 @@
                         $(wildcard /usr/include/X11/extensions))
 endif
 
-ifeq ($(PLATFORM), macosx))
+ifeq ($(PLATFORM), macosx)
   CPPFLAGS += -I$(OPENWIN_HOME)/include/X11/extensions \
               -I$(OPENWIN_HOME)/include 
 endif
--- a/jdk/make/sun/font/Makefile	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/make/sun/font/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -172,7 +172,7 @@
 # Libraries to link, and other C flags.
 #
 
-ifeq ($(PLATFORM), macosx))
+ifeq ($(PLATFORM), macosx)
 OTHER_INCLUDES += -I$(X11_PATH)/include
 OTHER_LDLIBS  += -lawt $(LIBM) $(LIBCXX)
  ifeq ($(OS_VENDOR),Apple)
@@ -197,7 +197,7 @@
 
 # set up compile flags..
 
-ifeq ($(PLATFORM), macosx))
+ifeq ($(PLATFORM), macosx)
 CPPFLAGS += -I$(CLASSHDRDIR)
 endif
 
--- a/jdk/make/sun/javazic/tzdata/VERSION	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/make/sun/javazic/tzdata/VERSION	Wed Jul 05 18:07:57 2017 +0200
@@ -21,4 +21,4 @@
 # or visit www.oracle.com if you need additional information or have any
 # questions.
 #
-tzdata2011l
+tzdata2012c
--- a/jdk/make/sun/javazic/tzdata/africa	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/make/sun/javazic/tzdata/africa	Wed Jul 05 18:07:57 2017 +0200
@@ -790,6 +790,37 @@
 # wall clock time (i.e. 11pm UTC), but that's what I would assume. It has
 # also been like that in the past.
 
+# From Alexander Krivenyshev (2012-03-09):
+# According to Infom&eacute;diaire web site from Morocco (infomediaire.ma),
+# on March 9, 2012, (in French) Heure l&eacute;gale:
+# Le Maroc adopte officiellement l'heure d'&eacute;t&eacute;
+# <a href="http://www.infomediaire.ma/news/maroc/heure-l%C3%A9gale-le-maroc-adopte-officiellement-lheure-d%C3%A9t%C3%A9">
+# http://www.infomediaire.ma/news/maroc/heure-l%C3%A9gale-le-maroc-adopte-officiellement-lheure-d%C3%A9t%C3%A9
+# </a>
+# Governing Council adopted draft decree, that Morocco DST starts on
+# the last Sunday of March (March 25, 2012) and ends on
+# last Sunday of September (September 30, 2012)
+# except the month of Ramadan.
+# or (brief)
+# <a href="http://www.worldtimezone.com/dst_news/dst_news_morocco06.html">
+# http://www.worldtimezone.com/dst_news/dst_news_morocco06.html
+# </a>
+
+# From Arthur David Olson (2012-03-10):
+# The infomediaire.ma source indicates that the system is to be in
+# effect every year. It gives 03H00 as the "fall back" time of day;
+# it lacks a "spring forward" time of day; assume 2:00 XXX.
+# Wait on specifying the Ramadan exception for details about
+# start date, start time of day, end date, and end time of day XXX.
+
+# From Christophe Tropamer (2012-03-16):
+# Seen Morocco change again:
+# <a href="http://www.le2uminutes.com/actualite.php">
+# http://www.le2uminutes.com/actualite.php
+# </a>
+# "...&agrave; partir du dernier dimance d'avril et non fins mars,
+# comme annonc&eacute; pr&eacute;c&eacute;demment."
+
 # RULE	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 
 Rule	Morocco	1939	only	-	Sep	12	 0:00	1:00	S
@@ -815,6 +846,9 @@
 Rule	Morocco	2010	only	-	Aug	 8	 0:00	0	-
 Rule	Morocco	2011	only	-	Apr	 3	 0:00	1:00	S
 Rule	Morocco	2011	only	-	Jul	 31	 0	0	-
+Rule	Morocco	2012	max	-	Apr	 lastSun 2:00	1:00	S
+Rule	Morocco	2012	max	-	Sep	 lastSun 3:00	0	-
+
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone Africa/Casablanca	-0:30:20 -	LMT	1913 Oct 26
 			 0:00	Morocco	WE%sT	1984 Mar 16
--- a/jdk/make/sun/javazic/tzdata/antarctica	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/make/sun/javazic/tzdata/antarctica	Wed Jul 05 18:07:57 2017 +0200
@@ -64,8 +64,19 @@
 Rule	ChileAQ	1998	only	-	Mar	Sun>=9	3:00u	0	-
 Rule	ChileAQ	1998	only	-	Sep	27	4:00u	1:00	S
 Rule	ChileAQ	1999	only	-	Apr	 4	3:00u	0	-
-Rule	ChileAQ	1999	max	-	Oct	Sun>=9	4:00u	1:00	S
-Rule	ChileAQ	2000	max	-	Mar	Sun>=9	3:00u	0	-
+Rule	ChileAQ	1999	2010	-	Oct	Sun>=9	4:00u	1:00	S
+Rule	ChileAQ	2000	2007	-	Mar	Sun>=9	3:00u	0	-
+# N.B.: the end of March 29 in Chile is March 30 in Universal time,
+# which is used below in specifying the transition.
+Rule	ChileAQ	2008	only	-	Mar	30	3:00u	0	-
+Rule	ChileAQ	2009	only	-	Mar	Sun>=9	3:00u	0	-
+Rule	ChileAQ	2010	only	-	Apr	Sun>=1	3:00u	0	-
+Rule	ChileAQ	2011	only	-	May	Sun>=2	3:00u	0	-
+Rule	ChileAQ	2011	only	-	Aug	Sun>=16	4:00u	1:00	S
+Rule	ChileAQ	2012	only	-	Apr	Sun>=23	3:00u	0	-
+Rule	ChileAQ	2012	only	-	Sep	Sun>=2	4:00u	1:00	S
+Rule	ChileAQ	2013	max	-	Mar	Sun>=9	3:00u	0	-
+Rule	ChileAQ	2013	max	-	Oct	Sun>=9	4:00u	1:00	S
 
 # These rules are stolen from the `australasia' file.
 Rule	AusAQ	1917	only	-	Jan	 1	0:01	1:00	-
@@ -164,12 +175,16 @@
 						# Western (Aus) Standard Time
 			11:00	-	CAST	2010 Mar 5 2:00
 						# Casey Time
+			8:00	-	WST	2011 Oct 28 2:00
+			11:00	-	CAST	2012 Feb 21 17:00u
 			8:00	-	WST
 Zone Antarctica/Davis	0	-	zzz	1957 Jan 13
 			7:00	-	DAVT	1964 Nov # Davis Time
 			0	-	zzz	1969 Feb
 			7:00	-	DAVT	2009 Oct 18 2:00
 			5:00	-	DAVT	2010 Mar 10 20:00u
+			7:00	-	DAVT	2011 Oct 28 2:00
+			5:00	-	DAVT	2012 Feb 21 20:00u
 			7:00	-	DAVT
 Zone Antarctica/Mawson	0	-	zzz	1954 Feb 13
 			6:00	-	MAWT	2009 Oct 18 2:00
--- a/jdk/make/sun/javazic/tzdata/asia	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/make/sun/javazic/tzdata/asia	Wed Jul 05 18:07:57 2017 +0200
@@ -21,6 +21,7 @@
 # or visit www.oracle.com if you need additional information or have any
 # questions.
 #
+# <pre>
 # This file is in the public domain, so clarified as of
 # 2009-05-17 by Arthur David Olson.
 
@@ -99,10 +100,6 @@
 Rule RussiaAsia	1993	1995	-	Sep	lastSun	 2:00s	0	-
 Rule RussiaAsia	1996	max	-	Oct	lastSun	 2:00s	0	-
 
-# From Arthur David Olson (2011-06-15):
-# While Russia abandoned DST in 2011, Armenia may choose to
-# follow Russia's "old" rules.
-
 # Afghanistan
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Asia/Kabul	4:36:48 -	LMT	1890
@@ -119,6 +116,21 @@
 # in 1996, though it did use DST in 1995.  IATA SSIM (1991/1998) reports that
 # Armenia switched from 3:00 to 4:00 in 1998 and observed DST after 1991,
 # but started switching at 3:00s in 1998.
+
+# From Arthur David Olson (2011-06-15):
+# While Russia abandoned DST in 2011, Armenia may choose to
+# follow Russia's "old" rules.
+
+# From Alexander Krivenyshev (2012-02-10):
+# According to News Armenia, on Feb 9, 2012,
+# http://newsarmenia.ru/society/20120209/42609695.html
+# 
+# The Armenia National Assembly adopted final reading of Amendments to the
+# Law "On procedure of calculation time on the territory of the Republic of
+# Armenia" according to which Armenia [is] abolishing Daylight Saving Time.
+# or
+# (brief)
+# http://www.worldtimezone.com/dst_news/dst_news_armenia03.html
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Asia/Yerevan	2:58:00 -	LMT	1924 May  2
 			3:00	-	YERT	1957 Mar    # Yerevan Time
@@ -126,7 +138,8 @@
 			3:00	1:00	YERST	1991 Sep 23 # independence
 			3:00 RussiaAsia	AM%sT	1995 Sep 24 2:00s
 			4:00	-	AMT	1997
-			4:00 RussiaAsia	AM%sT
+			4:00 RussiaAsia	AM%sT	2012 Mar 25 2:00s
+			4:00	-	AMT
 
 # Azerbaijan
 # From Rustam Aliyev of the Azerbaijan Internet Forum (2005-10-23):
@@ -2257,6 +2270,29 @@
 # http://www.maannews.net/eng/ViewDetails.aspx?ID=424808
 # </a>
 
+# From Steffen Thorsen (2012-03-26):
+# Palestinian news sources tell that both Gaza and West Bank will start DST
+# on Friday (Thursday midnight, 2012-03-29 24:00).
+# Some of many sources in Arabic:
+# <a href="http://www.samanews.com/index.php?act=Show&id=122638">
+# http://www.samanews.com/index.php?act=Show&id=122638
+# </a>
+#
+# <a href="http://safa.ps/details/news/74352/%D8%A8%D8%AF%D8%A1-%D8%A7%D9%84%D8%AA%D9%88%D9%82%D9%8A%D8%AA-%D8%A7%D9%84%D8%B5%D9%8A%D9%81%D9%8A-%D8%A8%D8%A7%D9%84%D8%B6%D9%81%D8%A9-%D9%88%D8%BA%D8%B2%D8%A9-%D9%84%D9%8A%D9%84%D8%A9-%D8%A7%D9%84%D8%AC%D9%85%D8%B9%D8%A9.html">
+# http://safa.ps/details/news/74352/%D8%A8%D8%AF%D8%A1-%D8%A7%D9%84%D8%AA%D9%88%D9%82%D9%8A%D8%AA-%D8%A7%D9%84%D8%B5%D9%8A%D9%81%D9%8A-%D8%A8%D8%A7%D9%84%D8%B6%D9%81%D8%A9-%D9%88%D8%BA%D8%B2%D8%A9-%D9%84%D9%8A%D9%84%D8%A9-%D8%A7%D9%84%D8%AC%D9%85%D8%B9%D8%A9.html
+# </a>
+#
+# Our brief summary:
+# <a href="http://www.timeanddate.com/news/time/gaza-west-bank-dst-2012.html">
+# http://www.timeanddate.com/news/time/gaza-west-bank-dst-2012.html
+# </a>
+
+# From Arthur David Olson (2012-03-27):
+# The timeanddate article for 2012 says that "the end date has not yet been
+# announced" and that "Last year, both...paused daylight saving time during...
+# Ramadan. It is not yet known [for] 2012."
+# For now, assume both switch back on the last Friday in September. XXX
+
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule EgyptAsia	1957	only	-	May	10	0:00	1:00	S
 Rule EgyptAsia	1957	1958	-	Oct	 1	0:00	0	-
@@ -2289,6 +2325,8 @@
 			2:00	Jordan	EE%sT	1999
 			2:00 Palestine	EE%sT	2011 Apr  2 12:01
 			2:00	1:00	EEST	2011 Aug  1
+			2:00	-	EET	2012 Mar 30
+			2:00	1:00	EEST	2012 Sep 28
 			2:00	-	EET
 
 Zone	Asia/Hebron	2:20:23	-	LMT	1900 Oct
@@ -2302,6 +2340,8 @@
 			2:00	1:00	EEST	2011 Aug  1
 			2:00	-	EET	2011 Aug 30
 			2:00	1:00	EEST	2011 Sep 30 3:00
+			2:00	-	EET	2012 Mar 30
+			2:00	1:00	EEST	2012 Sep 28 3:00
 			2:00	-	EET
 
 # Paracel Is
@@ -2593,10 +2633,28 @@
 # http://sns.sy/sns/?path=news/read/11421 (Arabic)
 # </a>
 
+# From Steffen Thorsen (2012-03-26):
+# Today, Syria's government announced that they will start DST early on Friday
+# (00:00). This is a bit earlier than the past two years.
+#
+# From Syrian Arab News Agency, in Arabic:
+# <a href="http://www.sana.sy/ara/2/2012/03/26/408215.htm">
+# http://www.sana.sy/ara/2/2012/03/26/408215.htm
+# </a>
+#
+# Our brief summary:
+# <a href="http://www.timeanddate.com/news/time/syria-dst-2012.html">
+# http://www.timeanddate.com/news/time/syria-dst-2012.html
+# </a>
+
+# From Arthur David Olson (2012-03-27):
+# Assume last Friday in March going forward XXX.
+
 Rule	Syria	2008	only	-	Apr	Fri>=1	0:00	1:00	S
 Rule	Syria	2008	only	-	Nov	1	0:00	0	-
 Rule	Syria	2009	only	-	Mar	lastFri	0:00	1:00	S
-Rule	Syria	2010	max	-	Apr	Fri>=1	0:00	1:00	S
+Rule	Syria	2010	2011	-	Apr	Fri>=1	0:00	1:00	S
+Rule	Syria	2012	max	-	Mar	lastFri	0:00	1:00	S
 Rule	Syria	2009	max	-	Oct	lastFri	0:00	0	-
 
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
--- a/jdk/make/sun/javazic/tzdata/australasia	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/make/sun/javazic/tzdata/australasia	Wed Jul 05 18:07:57 2017 +0200
@@ -330,6 +330,20 @@
 # advance at 2am to 3am on October 23, 2011 and one hour back at 3am to 
 # 2am on February 26 next year.
 
+# From Ken Rylander (2011-10-24)
+# Another change to the Fiji DST end date. In the TZ database the end date for
+# Fiji DST 2012, is currently Feb 26. This has been changed to Jan 22.
+#
+# <a href="http://www.fiji.gov.fj/index.php?option=com_content&view=article&id=5017:amendments-to-daylight-savings&catid=71:press-releases&Itemid=155">
+# http://www.fiji.gov.fj/index.php?option=com_content&view=article&id=5017:amendments-to-daylight-savings&catid=71:press-releases&Itemid=155
+# </a>
+# states:
+#
+# The end of daylight saving scheduled initially for the 26th of February 2012
+# has been brought forward to the 22nd of January 2012.
+# The commencement of daylight saving will remain unchanged and start
+# on the  23rd of October, 2011.
+
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule	Fiji	1998	1999	-	Nov	Sun>=1	2:00	1:00	S
 Rule	Fiji	1999	2000	-	Feb	lastSun	3:00	0	-
@@ -338,7 +352,7 @@
 Rule	Fiji	2010	only	-	Oct	24	2:00	1:00	S
 Rule	Fiji	2011	only	-	Mar	Sun>=1	3:00	0	-
 Rule	Fiji	2011	only	-	Oct	23	2:00	1:00	S
-Rule	Fiji	2012	only	-	Feb	26	3:00	0	-
+Rule	Fiji	2012	only	-	Jan	22	3:00	0	-
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Pacific/Fiji	11:53:40 -	LMT	1915 Oct 26	# Suva
 			12:00	Fiji	FJ%sT	# Fiji Time
@@ -624,6 +638,11 @@
 # Dateline Change skip Friday 30th Dec 2011
 # Thursday 29th December 2011	23:59:59 Hours
 # Saturday 31st December 2011	00:00:00 Hours
+#
+# Clarification by Tim Parenti (2012-01-03):
+# Although Samoa has used Daylight Saving Time in the 2010-2011 and 2011-2012
+# seasons, there is not yet any indication that this trend will continue on
+# a regular basis. For now, we have explicitly listed the transitions below.
 Zone Pacific/Apia	 12:33:04 -	LMT	1879 Jul  5
 			-11:26:56 -	LMT	1911
 			-11:30	-	SAMT	1950		# Samoa Time
@@ -641,9 +660,28 @@
 			11:00	-	SBT	# Solomon Is Time
 
 # Tokelau Is
+#
+# From Gwillim Law (2011-12-29)
+# A correspondent informed me that Tokelau, like Samoa, will be skipping
+# December 31 this year, thereby changing its time zone from UTC-10 to
+# UTC+14. When I tried to verify this statement, I found a confirming
+# article in Time magazine online
+# <a href="http://www.time.com/time/world/article/0,8599,2103243,00.html">
+# (http://www.time.com/time/world/article/0,8599,2103243,00.html).
+# </a>
+#
+# From Jonathan Leffler (2011-12-29)
+# Information from the BBC to the same effect:
+# <a href="http://www.bbc.co.uk/news/world-asia-16351377">
+# http://www.bbc.co.uk/news/world-asia-16351377
+# </a>
+#
+# Patch supplied by Tim Parenti (2011-12-29)
+
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Pacific/Fakaofo	-11:24:56 -	LMT	1901
-			-10:00	-	TKT	# Tokelau Time
+			-10:00	-	TKT 2011 Dec 30	# Tokelau Time
+			14:00	-	TKT
 
 # Tonga
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
--- a/jdk/make/sun/javazic/tzdata/europe	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/make/sun/javazic/tzdata/europe	Wed Jul 05 18:07:57 2017 +0200
@@ -233,9 +233,15 @@
 # the history of summer time legislation in the United Kingdom.
 # Since 1998 Joseph S. Myers has been updating
 # and extending this list, which can be found in
-# <a href="http://student.cusu.cam.ac.uk/~jsm28/british-time/">
+# http://student.cusu.cam.ac.uk/~jsm28/british-time/
+# <a href="http://www.polyomino.org.uk/british-time/">
 # History of legal time in Britain
 # </a>
+# Rob Crowther (2012-01-04) reports that that URL no longer
+# exists, and the article can now be found at:
+# <a href="http://www.polyomino.org.uk/british-time/">
+# http://www.polyomino.org.uk/british-time/
+# </a>
 
 # From Joseph S. Myers (1998-01-06):
 #
@@ -1173,10 +1179,10 @@
 # write that they were used in Monaco and in many French locations.
 # Le Corre writes that the upper limit of the free zone was Arneguy, Orthez,
 # Mont-de-Marsan, Bazas, Langon, Lamotte-Montravel, Marouil, La
-# Rochefoucault, Champagne-Mouton, La Roche-Posay, La Haye-Decartes,
+# Rochefoucault, Champagne-Mouton, La Roche-Posay, La Haye-Descartes,
 # Loches, Montrichard, Vierzon, Bourges, Moulins, Digoin,
 # Paray-le-Monial, Montceau-les-Mines, Chalons-sur-Saone, Arbois,
-# Dole, Morez, St-Claude, and Collognes (Haute-Savioe).
+# Dole, Morez, St-Claude, and Collonges (Haute-Savoie).
 Rule	France	1941	only	-	May	 5	 0:00	2:00	M # Midsummer
 # Shanks & Pottenger say this transition occurred at Oct 6 1:00,
 # but go with Denis Excoffier (1997-12-12),
@@ -1677,6 +1683,41 @@
 # But [two people] separately reported via
 # Jesper Norgaard that as of 2001-01-24 Tiraspol was like Chisinau.
 # The Tiraspol entry has therefore been removed for now.
+#
+# From Alexander Krivenyshev (2011-10-17):
+# Pridnestrovian Moldavian Republic (PMR, also known as
+# "Pridnestrovie") has abolished seasonal clock change (no transition
+# to the Winter Time).
+#
+# News (in Russian):
+# <a href="http://www.kyivpost.ua/russia/news/pridnestrove-otkazalos-ot-perehoda-na-zimnee-vremya-30954.html">
+# http://www.kyivpost.ua/russia/news/pridnestrove-otkazalos-ot-perehoda-na-zimnee-vremya-30954.html
+# </a>
+#
+# <a href="http://www.allmoldova.com/moldova-news/1249064116.html">
+# http://www.allmoldova.com/moldova-news/1249064116.html
+# </a>
+#
+# The substance of this change (reinstatement of the Tiraspol entry)
+# is from a patch from Petr Machata (2011-10-17)
+#
+# From Tim Parenti (2011-10-19)
+# In addition, being situated at +4651+2938 would give Tiraspol
+# a pre-1880 LMT offset of 1:58:32.
+#
+# (which agrees with the earlier entry that had been removed)
+#
+# From Alexander Krivenyshev (2011-10-26)
+# NO need to divide Moldova into two timezones at this point.
+# As of today, Transnistria (Pridnestrovie)- Tiraspol reversed its own
+# decision to abolish DST this winter. 
+# Following Moldova and neighboring Ukraine- Transnistria (Pridnestrovie)-
+# Tiraspol will go back to winter time on October 30, 2011.
+# News from Moldova (in russian):
+# <a href="http://ru.publika.md/link_317061.html">
+# http://ru.publika.md/link_317061.html
+# </a>
+
 
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Europe/Chisinau	1:55:20 -	LMT	1880
@@ -2673,6 +2714,28 @@
 # <a href="http://www.pravda.com.ua/rus/news/2011/09/20/6600616/">
 # http://www.pravda.com.ua/rus/news/2011/09/20/6600616/
 # </a>
+#
+# From Philip Pizzey (2011-10-18):
+# Today my Ukrainian colleagues have informed me that the
+# Ukrainian parliament have decided that they will go to winter
+# time this year after all.
+#
+# From Udo Schwedt (2011-10-18):
+# As far as I understand, the recent change to the Ukranian time zone 
+# (Europe/Kiev) to introduce permanent daylight saving time (similar
+# to Russia) was reverted today:
+#
+# <a href="http://portal.rada.gov.ua/rada/control/en/publish/article/info_left?art_id=287324&cat_id=105995">
+# http://portal.rada.gov.ua/rada/control/en/publish/article/info_left?art_id=287324&cat_id=105995
+# </a>
+#
+# Also reported by Alexander Bokovoy (2011-10-18) who also noted:
+# The law documents themselves are at
+#
+# <a href="http://w1.c1.rada.gov.ua/pls/zweb_n/webproc4_1?id=&pf3511=41484">
+# http://w1.c1.rada.gov.ua/pls/zweb_n/webproc4_1?id=&pf3511=41484
+# </a>
+
 
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 # Most of Ukraine since 1970 has been like Kiev.
@@ -2687,8 +2750,7 @@
 			3:00	-	MSK	1990 Jul  1 2:00
 			2:00	-	EET	1992
 			2:00	E-Eur	EE%sT	1995
-			2:00	EU	EE%sT	2011 Mar lastSun 1:00u
-			3:00	-	FET # Further-eastern European Time
+			2:00	EU	EE%sT
 # Ruthenia used CET 1990/1991.
 # "Uzhhorod" is the transliteration of the Ukrainian name, but
 # "Uzhgorod" is more common in English.
@@ -2702,8 +2764,7 @@
 			1:00	-	CET	1991 Mar 31 3:00
 			2:00	-	EET	1992
 			2:00	E-Eur	EE%sT	1995
-			2:00	EU	EE%sT	2011 Mar lastSun 1:00u
-			3:00	-	FET # Further-eastern European Time
+			2:00	EU	EE%sT
 # Zaporozh'ye and eastern Lugansk oblasts observed DST 1990/1991.
 # "Zaporizhia" is the transliteration of the Ukrainian name, but
 # "Zaporozh'ye" is more common in English.  Use the common English
@@ -2716,8 +2777,7 @@
 			1:00	C-Eur	CE%sT	1943 Oct 25
 			3:00	Russia	MSK/MSD	1991 Mar 31 2:00
 			2:00	E-Eur	EE%sT	1995
-			2:00	EU	EE%sT	2011 Mar lastSun 1:00u
-			3:00	-	FET # Further-eastern European Time
+			2:00	EU	EE%sT
 # Central Crimea used Moscow time 1994/1997.
 Zone Europe/Simferopol	2:16:24 -	LMT	1880
 			2:16	-	SMT	1924 May  2 # Simferopol Mean T
@@ -2742,8 +2802,7 @@
 # Assume it happened in March by not changing the clocks.
 			3:00	Russia	MSK/MSD	1997
 			3:00	-	MSK	1997 Mar lastSun 1:00u
-			2:00	EU	EE%sT	2011 Mar lastSun 1:00u
-			3:00	-	FET # Further-eastern European Time
+			2:00	EU	EE%sT
 
 ###############################################################################
 
--- a/jdk/make/sun/javazic/tzdata/leapseconds	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/make/sun/javazic/tzdata/leapseconds	Wed Jul 05 18:07:57 2017 +0200
@@ -70,40 +70,54 @@
 Leap	1998	Dec	31	23:59:60	+	S
 Leap	2005	Dec	31	23:59:60	+	S
 Leap	2008	Dec	31	23:59:60	+	S
+Leap	2012	Jun	30	23:59:60	+	S
 
 # INTERNATIONAL EARTH ROTATION AND REFERENCE SYSTEMS SERVICE (IERS)
 #
 # SERVICE INTERNATIONAL DE LA ROTATION TERRESTRE ET DES SYSTEMES DE REFERENCE
 #
+#
 # SERVICE DE LA ROTATION TERRESTRE
 # OBSERVATOIRE DE PARIS
 # 61, Av. de l'Observatoire 75014 PARIS (France)
-# Tel.      : 33 (0) 1 40 51 22 29
+# Tel.      : 33 (0) 1 40 51 22 26
 # FAX       : 33 (0) 1 40 51 22 91
-# Internet  : services.iers@obspm.fr
+# e-mail    : (E-Mail Removed)
+# http://hpiers.obspm.fr/eop-pc
 #
-# Paris, 2 February 2011
+# Paris, 5 January 2012
 #
-# Bulletin C 41
+#
+# Bulletin C 43
 #
 # To authorities responsible
 # for the measurement and
 # distribution of time
 #
-# INFORMATION ON UTC - TAI
+#
+# UTC TIME STEP
+# on the 1st of July 2012
+#
 #
-# NO positive leap second will be introduced at the end of June 2011.
-# The difference between Coordinated Universal Time UTC and the
-# International Atomic Time TAI is :		
+# A positive leap second will be introduced at the end of June 2012.
+# The sequence of dates of the UTC second markers will be:		
+# 		
+#                          2012 June 30,     23h 59m 59s
+#                          2012 June 30,     23h 59m 60s
+#                          2012 July  1,      0h  0m  0s
 #
-# from 2009 January 1, 0h UTC, until further notice : UTC-TAI = -34 s
+# The difference between UTC and the International Atomic Time TAI is:
+#
+# from 2009 January 1, 0h UTC, to 2012 July 1  0h UTC  : UTC-TAI = - 34s
+# from 2012 July 1,    0h UTC, until further notice    : UTC-TAI = - 35s
 #
 # Leap seconds can be introduced in UTC at the end of the months of December
-# or June,  depending on the evolution of UT1-TAI. Bulletin C is mailed every
-# six months, either to announce a time step in UTC, or to confirm that there
+# or June, depending on the evolution of UT1-TAI. Bulletin C is mailed every
+# six months, either to announce a time step in UTC or to confirm that there
 # will be no time step at the next possible date.
 #
+#
 # Daniel GAMBIS
-# Head			
-# Earth Orientation Center of the IERS
+# Head		
+# Earth Orientation Center of IERS
 # Observatoire de Paris, France
--- a/jdk/make/sun/javazic/tzdata/northamerica	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/make/sun/javazic/tzdata/northamerica	Wed Jul 05 18:07:57 2017 +0200
@@ -1142,9 +1142,26 @@
 # For now, assume all of DST-observing Canada will fall into line with the
 # new US DST rules,
 
+# From Chris Walton (2011-12-01)
+# In the first of Tammy Hardwick's articles
+# <a href="http://www.ilovecreston.com/?p=articles&t=spec&ar=260">
+# http://www.ilovecreston.com/?p=articles&t=spec&ar=260
+# </a>
+# she quotes the Friday November 1/1918 edition of the Creston Review.
+# The quote includes these two statements:
+# 'Sunday the CPR went back to the old system of time...'
+# '... The daylight saving scheme was dropped all over Canada at the same time,'
+# These statements refer to a transition from daylight time to standard time
+# that occurred nationally on Sunday October 27/1918.  This transition was
+# also documented in the Saturday October 26/1918 edition of the Toronto Star.
+
+# In light of that evidence, we alter the date from the earlier believed
+# Oct 31, to Oct 27, 1918 (and Sunday is a more likely transition day
+# than Thursday) in all Canadian rulesets.
+
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule	Canada	1918	only	-	Apr	14	2:00	1:00	D
-Rule	Canada	1918	only	-	Oct	31	2:00	0	S
+Rule	Canada	1918	only	-	Oct	27	2:00	0	S
 Rule	Canada	1942	only	-	Feb	 9	2:00	1:00	W # War
 Rule	Canada	1945	only	-	Aug	14	23:00u	1:00	P # Peace
 Rule	Canada	1945	only	-	Sep	30	2:00	0	S
@@ -1667,7 +1684,7 @@
 Rule	Winn	1916	only	-	Apr	23	0:00	1:00	D
 Rule	Winn	1916	only	-	Sep	17	0:00	0	S
 Rule	Winn	1918	only	-	Apr	14	2:00	1:00	D
-Rule	Winn	1918	only	-	Oct	31	2:00	0	S
+Rule	Winn	1918	only	-	Oct	27	2:00	0	S
 Rule	Winn	1937	only	-	May	16	2:00	1:00	D
 Rule	Winn	1937	only	-	Sep	26	2:00	0	S
 Rule	Winn	1942	only	-	Feb	 9	2:00	1:00	W # War
@@ -1750,7 +1767,7 @@
 
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule	Regina	1918	only	-	Apr	14	2:00	1:00	D
-Rule	Regina	1918	only	-	Oct	31	2:00	0	S
+Rule	Regina	1918	only	-	Oct	27	2:00	0	S
 Rule	Regina	1930	1934	-	May	Sun>=1	0:00	1:00	D
 Rule	Regina	1930	1934	-	Oct	Sun>=1	0:00	0	S
 Rule	Regina	1937	1941	-	Apr	Sun>=8	0:00	1:00	D
@@ -1787,7 +1804,7 @@
 
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule	Edm	1918	1919	-	Apr	Sun>=8	2:00	1:00	D
-Rule	Edm	1918	only	-	Oct	31	2:00	0	S
+Rule	Edm	1918	only	-	Oct	27	2:00	0	S
 Rule	Edm	1919	only	-	May	27	2:00	0	S
 Rule	Edm	1920	1923	-	Apr	lastSun	2:00	1:00	D
 Rule	Edm	1920	only	-	Oct	lastSun	2:00	0	S
@@ -1817,9 +1834,68 @@
 # Dawson Creek uses MST.  Much of east BC is like Edmonton.
 # Matthews and Vincent (1998) write that Creston is like Dawson Creek.
 
+# It seems though that (re: Creston) is not entirely correct:
+
+# From Chris Walton (2011-12-01):
+# There are two areas within the Canadian province of British Columbia
+# that do not currently observe daylight saving:
+# a) The Creston Valley (includes the town of Creston and surrounding area)
+# b) The eastern half of the Peace River Regional District
+# (includes the cities of Dawson Creek and Fort St. John)
+
+# Earlier this year I stumbled across a detailed article about the time
+# keeping history of Creston; it was written by Tammy Hardwick who is the
+# manager of the Creston & District Museum. The article was written in May 2009.
+# <a href="http://www.ilovecreston.com/?p=articles&t=spec&ar=260">
+# http://www.ilovecreston.com/?p=articles&t=spec&ar=260
+# </a>
+# According to the article, Creston has not changed its clocks since June 1918.
+# i.e. Creston has been stuck on UTC-7 for 93 years.
+# Dawson Creek, on the other hand, changed its clocks as recently as April 1972.
+
+# Unfortunately the exact date for the time change in June 1918 remains
+# unknown and will be difficult to ascertain.  I e-mailed Tammy a few months
+# ago to ask if Sunday June 2 was a reasonable guess.  She said it was just
+# as plausible as any other date (in June).  She also said that after writing the
+# article she had discovered another time change in 1916; this is the subject
+# of another article which she wrote in October 2010.
+# <a href="http://www.creston.museum.bc.ca/index.php?module=comments&uop=view_comment&cm+id=56">
+# http://www.creston.museum.bc.ca/index.php?module=comments&uop=view_comment&cm+id=56
+# </a>
+
+# Here is a summary of the three clock change events in Creston's history:
+# 1. 1884 or 1885: adoption of Mountain Standard Time (GMT-7)
+# Exact date unknown
+# 2. Oct 1916: switch to Pacific Standard Time (GMT-8) 
+# Exact date in October unknown;  Sunday October 1 is a reasonable guess.
+# 3. June 1918: switch to Pacific Daylight Time (GMT-7)
+# Exact date in June unknown; Sunday June 2 is a reasonable guess.
+# note#1:
+# On Oct 27/1918 when daylight saving ended in the rest of Canada,
+# Creston did not change its clocks.
+# note#2:
+# During WWII when the Federal Government legislated a mandatory clock change,
+# Creston did not oblige.
+# note#3:
+# There is no guarantee that Creston will remain on Mountain Standard Time
+# (UTC-7) forever.
+# The subject was debated at least once this year by the town Council.
+# <a href="http://www.bclocalnews.com/kootenay_rockies/crestonvalleyadvance/news/116760809.html">
+# http://www.bclocalnews.com/kootenay_rockies/crestonvalleyadvance/news/116760809.html
+# </a>
+
+# During a period WWII, summer time (Daylight saying) was mandatory in Canada.
+# In Creston, that was handled by shifting the area to PST (-8:00) then applying
+# summer time to cause the offset to be -7:00, the same as it had been before
+# the change.  It can be argued that the timezone abbreviation during this
+# period should be PDT rather than MST, but that doesn't seem important enough
+# (to anyone) to further complicate the rules.
+
+# The transition dates (and times) are guesses.
+
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule	Vanc	1918	only	-	Apr	14	2:00	1:00	D
-Rule	Vanc	1918	only	-	Oct	31	2:00	0	S
+Rule	Vanc	1918	only	-	Oct	27	2:00	0	S
 Rule	Vanc	1942	only	-	Feb	 9	2:00	1:00	W # War
 Rule	Vanc	1945	only	-	Aug	14	23:00u	1:00	P # Peace
 Rule	Vanc	1945	only	-	Sep	30	2:00	0	S
@@ -1835,7 +1911,10 @@
 			-8:00	Canada	P%sT	1947
 			-8:00	Vanc	P%sT	1972 Aug 30 2:00
 			-7:00	-	MST
-
+Zone America/Creston	-7:46:04 -	LMT	1884
+			-7:00	-	MST	1916 Oct 1
+			-8:00	-	PST	1918 Jun 2
+			-7:00	-	MST
 
 # Northwest Territories, Nunavut, Yukon
 
@@ -2712,6 +2791,34 @@
 # <a href="http://www.timeanddate.com/news/time/cuba-starts-dst-2011.html">
 # http://www.timeanddate.com/news/time/cuba-starts-dst-2011.html
 # </a>
+#
+# From Steffen Thorsen (2011-10-30)
+# Cuba will end DST two weeks later this year. Instead of going back 
+# tonight, it has been delayed to 2011-11-13 at 01:00.
+#
+# One source (Spanish)
+# <a href="http://www.radioangulo.cu/noticias/cuba/17105-cuba-restablecera-el-horario-del-meridiano-de-greenwich.html">
+# http://www.radioangulo.cu/noticias/cuba/17105-cuba-restablecera-el-horario-del-meridiano-de-greenwich.html
+# </a>
+#
+# Our page:
+# <a href="http://www.timeanddate.com/news/time/cuba-time-changes-2011.html">
+# http://www.timeanddate.com/news/time/cuba-time-changes-2011.html
+# </a>
+# 
+# From Steffen Thorsen (2012-03-01)
+# According to Radio Reloj, Cuba will start DST on Midnight between March 
+# 31 and April 1.
+# 
+# Radio Reloj has the following info (Spanish):
+# <a href="http://www.radioreloj.cu/index.php/noticias-radio-reloj/71-miscelaneas/7529-cuba-aplicara-el-horario-de-verano-desde-el-1-de-abril">
+# http://www.radioreloj.cu/index.php/noticias-radio-reloj/71-miscelaneas/7529-cuba-aplicara-el-horario-de-verano-desde-el-1-de-abril
+# </a>
+#
+# Our info on it:
+# <a href="http://www.timeanddate.com/news/time/cuba-starts-dst-2012.html">
+# http://www.timeanddate.com/news/time/cuba-starts-dst-2012.html
+# </a>
 
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule	Cuba	1928	only	-	Jun	10	0:00	1:00	D
@@ -2743,12 +2850,15 @@
 Rule	Cuba	1998	1999	-	Mar	lastSun	0:00s	1:00	D
 Rule	Cuba	1998	2003	-	Oct	lastSun	0:00s	0	S
 Rule	Cuba	2000	2004	-	Apr	Sun>=1	0:00s	1:00	D
-Rule	Cuba	2006	max	-	Oct	lastSun	0:00s	0	S
+Rule	Cuba	2006	2010	-	Oct	lastSun	0:00s	0	S
 Rule	Cuba	2007	only	-	Mar	Sun>=8	0:00s	1:00	D
 Rule	Cuba	2008	only	-	Mar	Sun>=15	0:00s	1:00	D
 Rule	Cuba	2009	2010	-	Mar	Sun>=8	0:00s	1:00	D
 Rule	Cuba	2011	only	-	Mar	Sun>=15	0:00s	1:00	D
-Rule	Cuba	2012	max	-	Mar	Sun>=8	0:00s	1:00	D
+Rule	Cuba	2011	only	-	Nov	13	0:00s	0	S
+Rule	Cuba	2012	only	-	Apr	1	0:00s	1:00	D
+Rule	Cuba	2012	max	-	Oct	lastSun	0:00s	0	S
+Rule	Cuba	2013	max	-	Mar	Sun>=8	0:00s	1:00	D
 
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	America/Havana	-5:29:28 -	LMT	1890
@@ -2882,6 +2992,29 @@
 # From Stephen Colebourne (2007-02-22):
 # Some IATA info: Haiti won't be having DST in 2007.
 
+# From Steffen Thorsen (2012-03-11):
+# According to several news sources, Haiti will observe DST this year,
+# apparently using the same start and end date as USA/Canada.
+# So this means they have already changed their time.
+#
+# (Sources in French):
+# <a href="http://www.alterpresse.org/spip.php?article12510">
+# http://www.alterpresse.org/spip.php?article12510
+# </a>
+# <a href="http://radiovision2000haiti.net/home/?p=13253">
+# http://radiovision2000haiti.net/home/?p=13253
+# </a>
+#
+# Our coverage:
+# <a href="http://www.timeanddate.com/news/time/haiti-dst-2012.html">
+# http://www.timeanddate.com/news/time/haiti-dst-2012.html
+# </a>
+
+# From Arthur David Olson (2012-03-11):
+# The alterpresse.org source seems to show a US-style leap from 2:00 a.m. to
+# 3:00 a.m. rather than the traditional Haitian jump at midnight.
+# Assume a US-style fall back as well XXX.
+# Do not yet assume that the change carries forward past 2012 XXX.
 
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule	Haiti	1983	only	-	May	8	0:00	1:00	D
@@ -2893,6 +3026,8 @@
 Rule	Haiti	1988	1997	-	Oct	lastSun	1:00s	0	S
 Rule	Haiti	2005	2006	-	Apr	Sun>=1	0:00	1:00	D
 Rule	Haiti	2005	2006	-	Oct	lastSun	0:00	0	S
+Rule	Haiti	2012	only	-	Mar	Sun>=8	2:00	1:00	D
+Rule	Haiti	2012	only	-	Nov	Sun>=1	2:00	0	S
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone America/Port-au-Prince -4:49:20 -	LMT	1890
 			-4:49	-	PPMT	1917 Jan 24 12:00 # P-a-P MT
--- a/jdk/make/sun/javazic/tzdata/southamerica	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/make/sun/javazic/tzdata/southamerica	Wed Jul 05 18:07:57 2017 +0200
@@ -840,6 +840,19 @@
 # oficial agency about time in Brazil, and she confirmed that the old rule is
 # still in force.
 
+# From Guilherme Bernardes Rodrigues (2011-10-14)
+# It's official, the President signed a decree that includes Bahia in summer
+# time.
+#	 [ and in a second message (same day): ]
+# I found the decree.
+#
+# DECRETO No- 7.584, DE 13 DE OUTUBRO DE 2011
+# Link :
+# <a href="http://www.in.gov.br/visualiza/index.jsp?data=13/10/2011&jornal=1000&pagina=6&totalArquivos=6">
+# http://www.in.gov.br/visualiza/index.jsp?data=13/10/2011&jornal=1000&pagina=6&totalArquivos=6
+# </a>
+
+
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 # Decree <a href="http://pcdsh01.on.br/HV20466.htm">20,466</a> (1931-10-01)
 # Decree <a href="http://pcdsh01.on.br/HV21896.htm">21,896</a> (1932-01-10)
@@ -1076,10 +1089,8 @@
 # of America/Salvador.
 Zone America/Bahia	-2:34:04 -	LMT	1914
 			-3:00	Brazil	BR%sT	2003 Sep 24
-			-3:00	-	BRT
-# as noted above, not yet in operation.
-#			-3:00	-	BRT	2011 Oct 16
-#			-3:00	Brazil	BR%sT
+			-3:00	-	BRT	2011 Oct 16
+			-3:00	Brazil	BR%sT
 #
 # Goias (GO), Distrito Federal (DF), Minas Gerais (MG),
 # Espirito Santo (ES), Rio de Janeiro (RJ), Sao Paulo (SP), Parana (PR),
@@ -1229,6 +1240,28 @@
 # August, not in October as they have since 1968. This is a pilot plan
 # which will be reevaluated in 2012.
 
+# From Mauricio Parada (2012-02-22), translated by Glenn Eychaner (2012-02-23):
+# As stated in the website of the Chilean Energy Ministry
+# http://www.minenergia.cl/ministerio/noticias/generales/gobierno-anuncia-fechas-de-cambio-de.html
+# The Chilean Government has decided to postpone the entrance into winter time
+# (to leave DST) from March 11 2012 to April 28th 2012. The decision has not
+# been yet formalized but it will within the next days.
+# Quote from the website communication:
+#
+# 6. For the year 2012, the dates of entry into winter time will be as follows:
+# a. Saturday April 28, 2012, clocks should go back 60 minutes; that is, at
+# 23:59:59, instead of passing to 0:00, the time should be adjusted to be 23:00
+# of the same day.
+# b. Saturday, September 1, 2012, clocks should go forward 60 minutes; that is,
+# at 23:59:59, instead of passing to 0:00, the time should be adjusted to be
+# 01:00 on September 2.
+#
+# Note that...this is yet another "temporary" change that will be reevaluated
+# AGAIN in 2013.
+
+# NOTE: ChileAQ rules for Antarctic bases are stored separately in the
+# 'antarctica' file.
+
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule	Chile	1927	1932	-	Sep	 1	0:00	1:00	S
 Rule	Chile	1928	1932	-	Apr	 1	0:00	0	-
@@ -1259,8 +1292,6 @@
 Rule	Chile	1998	only	-	Sep	27	4:00u	1:00	S
 Rule	Chile	1999	only	-	Apr	 4	3:00u	0	-
 Rule	Chile	1999	2010	-	Oct	Sun>=9	4:00u	1:00	S
-Rule	Chile	2011	only	-	Aug	Sun>=16	4:00u	1:00	S
-Rule	Chile	2012	max	-	Oct	Sun>=9	4:00u	1:00	S
 Rule	Chile	2000	2007	-	Mar	Sun>=9	3:00u	0	-
 # N.B.: the end of March 29 in Chile is March 30 in Universal time,
 # which is used below in specifying the transition.
@@ -1268,7 +1299,11 @@
 Rule	Chile	2009	only	-	Mar	Sun>=9	3:00u	0	-
 Rule	Chile	2010	only	-	Apr	Sun>=1	3:00u	0	-
 Rule	Chile	2011	only	-	May	Sun>=2	3:00u	0	-
-Rule	Chile	2012	max	-	Mar	Sun>=9	3:00u	0	-
+Rule	Chile	2011	only	-	Aug	Sun>=16	4:00u	1:00	S
+Rule	Chile	2012	only	-	Apr	Sun>=23	3:00u	0	-
+Rule	Chile	2012	only	-	Sep	Sun>=2	4:00u	1:00	S
+Rule	Chile	2013	max	-	Mar	Sun>=9	3:00u	0	-
+Rule	Chile	2013	max	-	Oct	Sun>=9	4:00u	1:00	S
 # IATA SSIM anomalies: (1992-02) says 1992-03-14;
 # (1996-09) says 1998-03-08.  Ignore these.
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
@@ -1414,6 +1449,21 @@
 # will not revert to local mean time, but clocks will remain on Summer
 # time (UTC/GMT - 3 hours) throughout the whole of 2011.  Any long term
 # change to local time following the trial period will be notified.
+#
+# From Andrew Newman (2012-02-24)
+# A letter from Justin McPhee, Chief Executive,
+# Cable & Wireless Falkland Islands (dated 2012-02-22)
+# states...
+#   The current Atlantic/Stanley entry under South America expects the
+#   clocks to go back to standard Falklands Time (FKT) on the 15th April.
+#   The database entry states that in 2011 Stanley was staying on fixed
+#   summer time on a trial basis only.  FIG need to contact IANA and/or
+#   the maintainers of the database to inform them we're adopting
+#   the same policy this year and suggest recommendations for future years.
+#
+# For now we will assume permanent summer time for the Falklands
+# until advised differently (to apply for 2012 and beyond, after the 2011
+# experiment was apparently successful.)
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule	Falk	1937	1938	-	Sep	lastSun	0:00	1:00	S
 Rule	Falk	1938	1942	-	Mar	Sun>=19	0:00	0	-
@@ -1426,14 +1476,14 @@
 Rule	Falk	1985	2000	-	Sep	Sun>=9	0:00	1:00	S
 Rule	Falk	1986	2000	-	Apr	Sun>=16	0:00	0	-
 Rule	Falk	2001	2010	-	Apr	Sun>=15	2:00	0	-
-Rule	Falk	2012	max	-	Apr	Sun>=15	2:00	0	-
-Rule	Falk	2001	max	-	Sep	Sun>=1	2:00	1:00	S
+Rule	Falk	2001	2010	-	Sep	Sun>=1	2:00	1:00	S
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone Atlantic/Stanley	-3:51:24 -	LMT	1890
 			-3:51:24 -	SMT	1912 Mar 12  # Stanley Mean Time
 			-4:00	Falk	FK%sT	1983 May     # Falkland Is Time
 			-3:00	Falk	FK%sT	1985 Sep 15
-			-4:00	Falk	FK%sT
+			-4:00	Falk	FK%sT	2010 Sep 5 02:00
+			-3:00	-	FKST
 
 # French Guiana
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
--- a/jdk/make/sun/javazic/tzdata/zone.tab	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/make/sun/javazic/tzdata/zone.tab	Wed Jul 05 18:07:57 2017 +0200
@@ -153,6 +153,7 @@
 CA	+690650-1050310	America/Cambridge_Bay	Mountain Time - west Nunavut
 CA	+6227-11421	America/Yellowknife	Mountain Time - central Northwest Territories
 CA	+682059-1334300	America/Inuvik	Mountain Time - west Northwest Territories
+CA	+4906-11631	America/Creston	Mountain Standard Time - Creston, British Columbia
 CA	+5946-12014	America/Dawson_Creek	Mountain Standard Time - Dawson Creek & Fort Saint John, British Columbia
 CA	+4916-12307	America/Vancouver	Pacific Time - west British Columbia
 CA	+6043-13503	America/Whitehorse	Pacific Time - south Yukon
@@ -355,7 +356,7 @@
 RU	+5443+02030	Europe/Kaliningrad	Moscow-01 - Kaliningrad
 RU	+5545+03735	Europe/Moscow	Moscow+00 - west Russia
 RU	+4844+04425	Europe/Volgograd	Moscow+00 - Caspian Sea
-RU	+5312+05009	Europe/Samara	Moscow - Samara, Udmurtia
+RU	+5312+05009	Europe/Samara	Moscow+00 - Samara, Udmurtia
 RU	+5651+06036	Asia/Yekaterinburg	Moscow+02 - Urals
 RU	+5500+07324	Asia/Omsk	Moscow+03 - west Siberia
 RU	+5502+08255	Asia/Novosibirsk	Moscow+03 - Novosibirsk
--- a/jdk/make/sun/xawt/Makefile	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/make/sun/xawt/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -56,7 +56,7 @@
 dummy := $(shell $(MKDIR) -p $(LIB_LOCATION))
 endif
 
-ifeq ($(PLATFORM), macosx))
+ifeq ($(PLATFORM), macosx)
 LDFLAGS += -pthread
 dummy := $(shell $(MKDIR) -p $(LIB_LOCATION))
 endif
--- a/jdk/make/tools/GenerateCharacter/CharacterData00.java.template	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/make/tools/GenerateCharacter/CharacterData00.java.template	Wed Jul 05 18:07:57 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -211,6 +211,8 @@
             case 0x10C3 : mapChar = 0x2D23; break;
             case 0x10C4 : mapChar = 0x2D24; break;
             case 0x10C5 : mapChar = 0x2D25; break;
+            case 0x10C7 : mapChar = 0x2D27; break;
+            case 0x10CD : mapChar = 0x2D2D; break;
             case 0x1E9E : mapChar = 0x00DF; break;
             case 0x2C62 : mapChar = 0x026B; break;
             case 0x2C63 : mapChar = 0x1D7D; break;
@@ -223,6 +225,7 @@
             case 0x2C7F : mapChar = 0x0240; break;
             case 0xA77D : mapChar = 0x1D79; break;
             case 0xA78D : mapChar = 0x0265; break;
+            case 0xA7AA : mapChar = 0x0266; break;
               // default mapChar is already set, so no
               // need to redo it here.
               // default       : mapChar = ch;
@@ -282,6 +285,7 @@
             case 0x0251 : mapChar = 0x2C6D; break;
             case 0x0252 : mapChar = 0x2C70; break;
             case 0x0265 : mapChar = 0xA78D; break;
+            case 0x0266 : mapChar = 0xA7AA; break;
             case 0x026B : mapChar = 0x2C62; break;
             case 0x0271 : mapChar = 0x2C6E; break;
             case 0x027D : mapChar = 0x2C64; break;
@@ -327,6 +331,8 @@
             case 0x2D23 : mapChar = 0x10C3; break;
             case 0x2D24 : mapChar = 0x10C4; break;
             case 0x2D25 : mapChar = 0x10C5; break;
+            case 0x2D27 : mapChar = 0x10C7; break;
+            case 0x2D2D : mapChar = 0x10CD; break;
               // ch must have a 1:M case mapping, but we
               // can't handle it here. Return ch.
               // since mapChar is already set, no need
@@ -425,6 +431,11 @@
                 case 0x2181: retval = 5000; break;        // ROMAN NUMERAL FIVE THOUSAND
                 case 0x2182: retval = 10000; break;       // ROMAN NUMERAL TEN THOUSAND
 
+                case 0x324B: retval = 40; break;
+                case 0x324C: retval = 50; break;
+                case 0x324D: retval = 60; break;
+                case 0x324E: retval = 70; break;
+                case 0x324F: retval = 80; break;
                 case 0x325C: retval = 32; break;
 
                 case 0x325D: retval = 33; break;          // CIRCLED NUMBER THIRTY THREE
@@ -527,6 +538,7 @@
                     case 0x0251 : mapChar = 0x2C6D; break;
                     case 0x0252 : mapChar = 0x2C70; break;
                     case 0x0265 : mapChar = 0xA78D; break;
+                    case 0x0266 : mapChar = 0xA7AA; break;
                     case 0x026B : mapChar = 0x2C62; break;
                     case 0x0271 : mapChar = 0x2C6E; break;
                     case 0x027D : mapChar = 0x2C64; break;
@@ -572,6 +584,8 @@
                     case 0x2D23 : mapChar = 0x10C3; break;
                     case 0x2D24 : mapChar = 0x10C4; break;
                     case 0x2D25 : mapChar = 0x10C5; break;
+                    case 0x2D27 : mapChar = 0x10C7; break;
+                    case 0x2D2D : mapChar = 0x10CD; break;
                     default       : mapChar = Character.ERROR; break;
                 }
             }
--- a/jdk/make/tools/UnicodeData/PropList.txt	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/make/tools/UnicodeData/PropList.txt	Wed Jul 05 18:07:57 2017 +0200
@@ -1,8 +1,8 @@
-# PropList-6.0.0.txt
-# Date: 2010-08-19, 00:48:28 GMT [MD]
+# PropList-6.1.0.txt
+# Date: 2011-11-30, 01:49:54 GMT [MD]
 #
 # Unicode Character Database
-# Copyright (c) 1991-2010 Unicode, Inc.
+# Copyright (c) 1991-2011 Unicode, Inc.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
 # For documentation, see http://www.unicode.org/reports/tr44/
 
@@ -50,6 +50,7 @@
 2212          ; Dash # Sm       MINUS SIGN
 2E17          ; Dash # Pd       DOUBLE OBLIQUE HYPHEN
 2E1A          ; Dash # Pd       HYPHEN WITH DIAERESIS
+2E3A..2E3B    ; Dash # Pd   [2] TWO-EM DASH..THREE-EM DASH
 301C          ; Dash # Pd       WAVE DASH
 3030          ; Dash # Pd       WAVY DASH
 30A0          ; Dash # Pd       KATAKANA-HIRAGANA DOUBLE HYPHEN
@@ -58,7 +59,7 @@
 FE63          ; Dash # Pd       SMALL HYPHEN-MINUS
 FF0D          ; Dash # Pd       FULLWIDTH HYPHEN-MINUS
 
-# Total code points: 25
+# Total code points: 27
 
 # ================================================
 
@@ -158,6 +159,7 @@
 A9C7..A9C9    ; Terminal_Punctuation # Po   [3] JAVANESE PADA PANGKAT..JAVANESE PADA LUNGSI
 AA5D..AA5F    ; Terminal_Punctuation # Po   [3] CHAM PUNCTUATION DANDA..CHAM PUNCTUATION TRIPLE DANDA
 AADF          ; Terminal_Punctuation # Po       TAI VIET SYMBOL KOI KOI
+AAF0..AAF1    ; Terminal_Punctuation # Po   [2] MEETEI MAYEK CHEIKHAN..MEETEI MAYEK AHANG KHUDAM
 ABEB          ; Terminal_Punctuation # Po       MEETEI MAYEK CHEIKHEI
 FE50..FE52    ; Terminal_Punctuation # Po   [3] SMALL COMMA..SMALL FULL STOP
 FE54..FE57    ; Terminal_Punctuation # Po   [4] SMALL SEMICOLON..SMALL EXCLAMATION MARK
@@ -175,9 +177,11 @@
 10B3A..10B3F  ; Terminal_Punctuation # Po   [6] TINY TWO DOTS OVER ONE DOT PUNCTUATION..LARGE ONE RING OVER TWO RINGS PUNCTUATION
 11047..1104D  ; Terminal_Punctuation # Po   [7] BRAHMI DANDA..BRAHMI PUNCTUATION LOTUS
 110BE..110C1  ; Terminal_Punctuation # Po   [4] KAITHI SECTION MARK..KAITHI DOUBLE DANDA
+11141..11143  ; Terminal_Punctuation # Po   [3] CHAKMA DANDA..CHAKMA QUESTION MARK
+111C5..111C6  ; Terminal_Punctuation # Po   [2] SHARADA DANDA..SHARADA DOUBLE DANDA
 12470..12473  ; Terminal_Punctuation # Po   [4] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON
 
-# Total code points: 169
+# Total code points: 176
 
 # ================================================
 
@@ -320,8 +324,41 @@
 1D7AA..1D7C2  ; Other_Math # L&  [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
 1D7C4..1D7CB  ; Other_Math # L&   [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA
 1D7CE..1D7FF  ; Other_Math # Nd  [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
+1EE00..1EE03  ; Other_Math # Lo   [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
+1EE05..1EE1F  ; Other_Math # Lo  [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
+1EE21..1EE22  ; Other_Math # Lo   [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM
+1EE24         ; Other_Math # Lo       ARABIC MATHEMATICAL INITIAL HEH
+1EE27         ; Other_Math # Lo       ARABIC MATHEMATICAL INITIAL HAH
+1EE29..1EE32  ; Other_Math # Lo  [10] ARABIC MATHEMATICAL INITIAL YEH..ARABIC MATHEMATICAL INITIAL QAF
+1EE34..1EE37  ; Other_Math # Lo   [4] ARABIC MATHEMATICAL INITIAL SHEEN..ARABIC MATHEMATICAL INITIAL KHAH
+1EE39         ; Other_Math # Lo       ARABIC MATHEMATICAL INITIAL DAD
+1EE3B         ; Other_Math # Lo       ARABIC MATHEMATICAL INITIAL GHAIN
+1EE42         ; Other_Math # Lo       ARABIC MATHEMATICAL TAILED JEEM
+1EE47         ; Other_Math # Lo       ARABIC MATHEMATICAL TAILED HAH
+1EE49         ; Other_Math # Lo       ARABIC MATHEMATICAL TAILED YEH
+1EE4B         ; Other_Math # Lo       ARABIC MATHEMATICAL TAILED LAM
+1EE4D..1EE4F  ; Other_Math # Lo   [3] ARABIC MATHEMATICAL TAILED NOON..ARABIC MATHEMATICAL TAILED AIN
+1EE51..1EE52  ; Other_Math # Lo   [2] ARABIC MATHEMATICAL TAILED SAD..ARABIC MATHEMATICAL TAILED QAF
+1EE54         ; Other_Math # Lo       ARABIC MATHEMATICAL TAILED SHEEN
+1EE57         ; Other_Math # Lo       ARABIC MATHEMATICAL TAILED KHAH
+1EE59         ; Other_Math # Lo       ARABIC MATHEMATICAL TAILED DAD
+1EE5B         ; Other_Math # Lo       ARABIC MATHEMATICAL TAILED GHAIN
+1EE5D         ; Other_Math # Lo       ARABIC MATHEMATICAL TAILED DOTLESS NOON
+1EE5F         ; Other_Math # Lo       ARABIC MATHEMATICAL TAILED DOTLESS QAF
+1EE61..1EE62  ; Other_Math # Lo   [2] ARABIC MATHEMATICAL STRETCHED BEH..ARABIC MATHEMATICAL STRETCHED JEEM
+1EE64         ; Other_Math # Lo       ARABIC MATHEMATICAL STRETCHED HEH
+1EE67..1EE6A  ; Other_Math # Lo   [4] ARABIC MATHEMATICAL STRETCHED HAH..ARABIC MATHEMATICAL STRETCHED KAF
+1EE6C..1EE72  ; Other_Math # Lo   [7] ARABIC MATHEMATICAL STRETCHED MEEM..ARABIC MATHEMATICAL STRETCHED QAF
+1EE74..1EE77  ; Other_Math # Lo   [4] ARABIC MATHEMATICAL STRETCHED SHEEN..ARABIC MATHEMATICAL STRETCHED KHAH
+1EE79..1EE7C  ; Other_Math # Lo   [4] ARABIC MATHEMATICAL STRETCHED DAD..ARABIC MATHEMATICAL STRETCHED DOTLESS BEH
+1EE7E         ; Other_Math # Lo       ARABIC MATHEMATICAL STRETCHED DOTLESS FEH
+1EE80..1EE89  ; Other_Math # Lo  [10] ARABIC MATHEMATICAL LOOPED ALEF..ARABIC MATHEMATICAL LOOPED YEH
+1EE8B..1EE9B  ; Other_Math # Lo  [17] ARABIC MATHEMATICAL LOOPED LAM..ARABIC MATHEMATICAL LOOPED GHAIN
+1EEA1..1EEA3  ; Other_Math # Lo   [3] ARABIC MATHEMATICAL DOUBLE-STRUCK BEH..ARABIC MATHEMATICAL DOUBLE-STRUCK DAL
+1EEA5..1EEA9  ; Other_Math # Lo   [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH
+1EEAB..1EEBB  ; Other_Math # Lo  [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
 
-# Total code points: 1217
+# Total code points: 1358
 
 # ================================================
 
@@ -365,6 +402,8 @@
 081B..0823    ; Other_Alphabetic # Mn   [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A
 0825..0827    ; Other_Alphabetic # Mn   [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
 0829..082C    ; Other_Alphabetic # Mn   [4] SAMARITAN VOWEL SIGN LONG I..SAMARITAN VOWEL SIGN SUKUN
+08E4..08E9    ; Other_Alphabetic # Mn   [6] ARABIC CURLY FATHA..ARABIC CURLY KASRATAN
+08F0..08FE    ; Other_Alphabetic # Mn  [15] ARABIC OPEN FATHATAN..ARABIC DAMMA WITH DOT
 0900..0902    ; Other_Alphabetic # Mn   [3] DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANAGARI SIGN ANUSVARA
 0903          ; Other_Alphabetic # Mc       DEVANAGARI SIGN VISARGA
 093A          ; Other_Alphabetic # Mn       DEVANAGARI VOWEL SIGN OE
@@ -525,6 +564,7 @@
 1BA2..1BA5    ; Other_Alphabetic # Mn   [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU
 1BA6..1BA7    ; Other_Alphabetic # Mc   [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
 1BA8..1BA9    ; Other_Alphabetic # Mn   [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
+1BAC..1BAD    ; Other_Alphabetic # Mc   [2] SUNDANESE CONSONANT SIGN PASANGAN MA..SUNDANESE CONSONANT SIGN PASANGAN WA
 1BE7          ; Other_Alphabetic # Mc       BATAK VOWEL SIGN E
 1BE8..1BE9    ; Other_Alphabetic # Mn   [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE
 1BEA..1BEC    ; Other_Alphabetic # Mc   [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O
@@ -534,9 +574,11 @@
 1C24..1C2B    ; Other_Alphabetic # Mc   [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU
 1C2C..1C33    ; Other_Alphabetic # Mn   [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T
 1C34..1C35    ; Other_Alphabetic # Mc   [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG
-1CF2          ; Other_Alphabetic # Mc       VEDIC SIGN ARDHAVISARGA
+1CF2..1CF3    ; Other_Alphabetic # Mc   [2] VEDIC SIGN ARDHAVISARGA..VEDIC SIGN ROTATED ARDHAVISARGA
 24B6..24E9    ; Other_Alphabetic # So  [52] CIRCLED LATIN CAPITAL LETTER A..CIRCLED LATIN SMALL LETTER Z
 2DE0..2DFF    ; Other_Alphabetic # Mn  [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
+A674..A67B    ; Other_Alphabetic # Mn   [8] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC LETTER OMEGA
+A69F          ; Other_Alphabetic # Mn       COMBINING CYRILLIC LETTER IOTIFIED E
 A823..A824    ; Other_Alphabetic # Mc   [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I
 A825..A826    ; Other_Alphabetic # Mn   [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E
 A827          ; Other_Alphabetic # Mc       SYLOTI NAGRI VOWEL SIGN OO
@@ -564,6 +606,10 @@
 AAB2..AAB4    ; Other_Alphabetic # Mn   [3] TAI VIET VOWEL I..TAI VIET VOWEL U
 AAB7..AAB8    ; Other_Alphabetic # Mn   [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA
 AABE          ; Other_Alphabetic # Mn       TAI VIET VOWEL AM
+AAEB          ; Other_Alphabetic # Mc       MEETEI MAYEK VOWEL SIGN II
+AAEC..AAED    ; Other_Alphabetic # Mn   [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI MAYEK VOWEL SIGN AAI
+AAEE..AAEF    ; Other_Alphabetic # Mc   [2] MEETEI MAYEK VOWEL SIGN AU..MEETEI MAYEK VOWEL SIGN AAU
+AAF5          ; Other_Alphabetic # Mc       MEETEI MAYEK VOWEL SIGN VISARGA
 ABE3..ABE4    ; Other_Alphabetic # Mc   [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP
 ABE5          ; Other_Alphabetic # Mn       MEETEI MAYEK VOWEL SIGN ANAP
 ABE6..ABE7    ; Other_Alphabetic # Mc   [2] MEETEI MAYEK VOWEL SIGN YENAP..MEETEI MAYEK VOWEL SIGN SOUNAP
@@ -581,8 +627,23 @@
 110B0..110B2  ; Other_Alphabetic # Mc   [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II
 110B3..110B6  ; Other_Alphabetic # Mn   [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI
 110B7..110B8  ; Other_Alphabetic # Mc   [2] KAITHI VOWEL SIGN O..KAITHI VOWEL SIGN AU
+11100..11102  ; Other_Alphabetic # Mn   [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA
+11127..1112B  ; Other_Alphabetic # Mn   [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU
+1112C         ; Other_Alphabetic # Mc       CHAKMA VOWEL SIGN E
+1112D..11132  ; Other_Alphabetic # Mn   [6] CHAKMA VOWEL SIGN AI..CHAKMA AU MARK
+11180..11181  ; Other_Alphabetic # Mn   [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA
+11182         ; Other_Alphabetic # Mc       SHARADA SIGN VISARGA
+111B3..111B5  ; Other_Alphabetic # Mc   [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II
+111B6..111BE  ; Other_Alphabetic # Mn   [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O
+111BF         ; Other_Alphabetic # Mc       SHARADA VOWEL SIGN AU
+116AB         ; Other_Alphabetic # Mn       TAKRI SIGN ANUSVARA
+116AC         ; Other_Alphabetic # Mc       TAKRI SIGN VISARGA
+116AD         ; Other_Alphabetic # Mn       TAKRI VOWEL SIGN AA
+116AE..116AF  ; Other_Alphabetic # Mc   [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II
+116B0..116B5  ; Other_Alphabetic # Mn   [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
+16F51..16F7E  ; Other_Alphabetic # Mc  [46] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN NG
 
-# Total code points: 795
+# Total code points: 922
 
 # ================================================
 
@@ -591,16 +652,15 @@
 3021..3029    ; Ideographic # Nl   [9] HANGZHOU NUMERAL ONE..HANGZHOU NUMERAL NINE
 3038..303A    ; Ideographic # Nl   [3] HANGZHOU NUMERAL TEN..HANGZHOU NUMERAL THIRTY
 3400..4DB5    ; Ideographic # Lo [6582] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DB5
-4E00..9FCB    ; Ideographic # Lo [20940] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FCB
-F900..FA2D    ; Ideographic # Lo [302] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA2D
-FA30..FA6D    ; Ideographic # Lo  [62] CJK COMPATIBILITY IDEOGRAPH-FA30..CJK COMPATIBILITY IDEOGRAPH-FA6D
+4E00..9FCC    ; Ideographic # Lo [20941] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FCC
+F900..FA6D    ; Ideographic # Lo [366] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA6D
 FA70..FAD9    ; Ideographic # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9
 20000..2A6D6  ; Ideographic # Lo [42711] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6D6
 2A700..2B734  ; Ideographic # Lo [4149] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B734
 2B740..2B81D  ; Ideographic # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
 2F800..2FA1D  ; Ideographic # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
 
-# Total code points: 75630
+# Total code points: 75633
 
 # ================================================
 
@@ -645,6 +705,7 @@
 07EB..07F3    ; Diacritic # Mn   [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE
 07F4..07F5    ; Diacritic # Lm   [2] NKO HIGH TONE APOSTROPHE..NKO LOW TONE APOSTROPHE
 0818..0819    ; Diacritic # Mn   [2] SAMARITAN MARK OCCLUSION..SAMARITAN MARK DAGESH
+08E4..08FE    ; Diacritic # Mn  [27] ARABIC CURLY FATHA..ARABIC DAMMA WITH DOT
 093C          ; Diacritic # Mn       DEVANAGARI SIGN NUKTA
 094D          ; Diacritic # Mn       DEVANAGARI SIGN VIRAMA
 0951..0954    ; Diacritic # Mn   [4] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI ACUTE ACCENT
@@ -689,6 +750,7 @@
 1B44          ; Diacritic # Mc       BALINESE ADEG ADEG
 1B6B..1B73    ; Diacritic # Mn   [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG
 1BAA          ; Diacritic # Mc       SUNDANESE SIGN PAMAAEH
+1BAB          ; Diacritic # Mn       SUNDANESE SIGN VIRAMA
 1C36..1C37    ; Diacritic # Mn   [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA
 1C78..1C7D    ; Diacritic # Lm   [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD
 1CD0..1CD2    ; Diacritic # Mn   [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
@@ -697,8 +759,8 @@
 1CE1          ; Diacritic # Mc       VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA
 1CE2..1CE8    ; Diacritic # Mn   [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
 1CED          ; Diacritic # Mn       VEDIC SIGN TIRYAK
-1D2C..1D61    ; Diacritic # Lm  [54] MODIFIER LETTER CAPITAL A..MODIFIER LETTER SMALL CHI
-1D62..1D6A    ; Diacritic # L&   [9] LATIN SUBSCRIPT SMALL LETTER I..GREEK SUBSCRIPT SMALL LETTER CHI
+1CF4          ; Diacritic # Mn       VEDIC TONE CANDRA ABOVE
+1D2C..1D6A    ; Diacritic # Lm  [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI
 1DC4..1DCF    ; Diacritic # Mn  [12] COMBINING MACRON-ACUTE..COMBINING ZIGZAG BELOW
 1DFD..1DFF    ; Diacritic # Mn   [3] COMBINING ALMOST EQUAL TO BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
 1FBD          ; Diacritic # Sk       GREEK KORONIS
@@ -709,7 +771,8 @@
 1FFD..1FFE    ; Diacritic # Sk   [2] GREEK OXIA..GREEK DASIA
 2CEF..2CF1    ; Diacritic # Mn   [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS
 2E2F          ; Diacritic # Lm       VERTICAL TILDE
-302A..302F    ; Diacritic # Mn   [6] IDEOGRAPHIC LEVEL TONE MARK..HANGUL DOUBLE DOT TONE MARK
+302A..302D    ; Diacritic # Mn   [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK
+302E..302F    ; Diacritic # Mc   [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK
 3099..309A    ; Diacritic # Mn   [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
 309B..309C    ; Diacritic # Sk   [2] KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
 30FC          ; Diacritic # Lm       KATAKANA-HIRAGANA PROLONGED SOUND MARK
@@ -720,6 +783,7 @@
 A717..A71F    ; Diacritic # Lm   [9] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK
 A720..A721    ; Diacritic # Sk   [2] MODIFIER LETTER STRESS AND HIGH TONE..MODIFIER LETTER STRESS AND LOW TONE
 A788          ; Diacritic # Lm       MODIFIER LETTER LOW CIRCUMFLEX ACCENT
+A7F8..A7F9    ; Diacritic # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
 A8C4          ; Diacritic # Mn       SAURASHTRA SIGN VIRAMA
 A8E0..A8F1    ; Diacritic # Mn  [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA
 A92B..A92D    ; Diacritic # Mn   [3] KAYAH LI TONE PLOPHU..KAYAH LI TONE CALYA PLOPHU
@@ -732,6 +796,7 @@
 AAC0          ; Diacritic # Lo       TAI VIET TONE MAI NUENG
 AAC1          ; Diacritic # Mn       TAI VIET TONE MAI THO
 AAC2          ; Diacritic # Lo       TAI VIET TONE MAI SONG
+AAF6          ; Diacritic # Mn       MEETEI MAYEK VIRAMA
 ABEC          ; Diacritic # Mc       MEETEI MAYEK LUM IYEK
 ABED          ; Diacritic # Mn       MEETEI MAYEK APUN IYEK
 FB1E          ; Diacritic # Mn       HEBREW POINT JUDEO-SPANISH VARIKA
@@ -742,13 +807,19 @@
 FF9E..FF9F    ; Diacritic # Lm   [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
 FFE3          ; Diacritic # Sk       FULLWIDTH MACRON
 110B9..110BA  ; Diacritic # Mn   [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA
+11133..11134  ; Diacritic # Mn   [2] CHAKMA VIRAMA..CHAKMA MAAYYAA
+111C0         ; Diacritic # Mc       SHARADA SIGN VIRAMA
+116B6         ; Diacritic # Mc       TAKRI SIGN VIRAMA
+116B7         ; Diacritic # Mn       TAKRI SIGN NUKTA
+16F8F..16F92  ; Diacritic # Mn   [4] MIAO TONE RIGHT..MIAO TONE BELOW
+16F93..16F9F  ; Diacritic # Lm  [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
 1D167..1D169  ; Diacritic # Mn   [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
 1D16D..1D172  ; Diacritic # Mc   [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5
 1D17B..1D182  ; Diacritic # Mn   [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
 1D185..1D18B  ; Diacritic # Mn   [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
 1D1AA..1D1AD  ; Diacritic # Mn   [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
 
-# Total code points: 639
+# Total code points: 693
 
 # ================================================
 
@@ -758,6 +829,7 @@
 07FA          ; Extender # Lm       NKO LAJANYALAN
 0E46          ; Extender # Lm       THAI CHARACTER MAIYAMOK
 0EC6          ; Extender # Lm       LAO KO LA
+180A          ; Extender # Po       MONGOLIAN NIRUGU
 1843          ; Extender # Lm       MONGOLIAN LETTER TODO LONG VOWEL SIGN
 1AA7          ; Extender # Lm       TAI THAM SIGN MAI YAMOK
 1C36          ; Extender # Mn       LEPCHA SIGN RAN
@@ -771,27 +843,33 @@
 A9CF          ; Extender # Lm       JAVANESE PANGRANGKEP
 AA70          ; Extender # Lm       MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION
 AADD          ; Extender # Lm       TAI VIET SYMBOL SAM
+AAF3..AAF4    ; Extender # Lm   [2] MEETEI MAYEK SYLLABLE REPETITION MARK..MEETEI MAYEK WORD REPETITION MARK
 FF70          ; Extender # Lm       HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
 
-# Total code points: 28
+# Total code points: 31
 
 # ================================================
 
+00AA          ; Other_Lowercase # Lo       FEMININE ORDINAL INDICATOR
+00BA          ; Other_Lowercase # Lo       MASCULINE ORDINAL INDICATOR
 02B0..02B8    ; Other_Lowercase # Lm   [9] MODIFIER LETTER SMALL H..MODIFIER LETTER SMALL Y
 02C0..02C1    ; Other_Lowercase # Lm   [2] MODIFIER LETTER GLOTTAL STOP..MODIFIER LETTER REVERSED GLOTTAL STOP
 02E0..02E4    ; Other_Lowercase # Lm   [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
 0345          ; Other_Lowercase # Mn       COMBINING GREEK YPOGEGRAMMENI
 037A          ; Other_Lowercase # Lm       GREEK YPOGEGRAMMENI
-1D2C..1D61    ; Other_Lowercase # Lm  [54] MODIFIER LETTER CAPITAL A..MODIFIER LETTER SMALL CHI
+1D2C..1D6A    ; Other_Lowercase # Lm  [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI
 1D78          ; Other_Lowercase # Lm       MODIFIER LETTER CYRILLIC EN
 1D9B..1DBF    ; Other_Lowercase # Lm  [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA
-2090..2094    ; Other_Lowercase # Lm   [5] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER SCHWA
+2071          ; Other_Lowercase # Lm       SUPERSCRIPT LATIN SMALL LETTER I
+207F          ; Other_Lowercase # Lm       SUPERSCRIPT LATIN SMALL LETTER N
+2090..209C    ; Other_Lowercase # Lm  [13] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER T
 2170..217F    ; Other_Lowercase # Nl  [16] SMALL ROMAN NUMERAL ONE..SMALL ROMAN NUMERAL ONE THOUSAND
 24D0..24E9    ; Other_Lowercase # So  [26] CIRCLED LATIN SMALL LETTER A..CIRCLED LATIN SMALL LETTER Z
-2C7D          ; Other_Lowercase # Lm       MODIFIER LETTER CAPITAL V
+2C7C..2C7D    ; Other_Lowercase # Lm   [2] LATIN SUBSCRIPT SMALL LETTER J..MODIFIER LETTER CAPITAL V
 A770          ; Other_Lowercase # Lm       MODIFIER LETTER US
+A7F8..A7F9    ; Other_Lowercase # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
 
-# Total code points: 159
+# Total code points: 183
 
 # ================================================
 
@@ -838,11 +916,12 @@
 0DCF          ; Other_Grapheme_Extend # Mc       SINHALA VOWEL SIGN AELA-PILLA
 0DDF          ; Other_Grapheme_Extend # Mc       SINHALA VOWEL SIGN GAYANUKITTA
 200C..200D    ; Other_Grapheme_Extend # Cf   [2] ZERO WIDTH NON-JOINER..ZERO WIDTH JOINER
+302E..302F    ; Other_Grapheme_Extend # Mc   [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK
 FF9E..FF9F    ; Other_Grapheme_Extend # Lm   [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
 1D165         ; Other_Grapheme_Extend # Mc       MUSICAL SYMBOL COMBINING STEM
 1D16E..1D172  ; Other_Grapheme_Extend # Mc   [5] MUSICAL SYMBOL COMBINING FLAG-1..MUSICAL SYMBOL COMBINING FLAG-5
 
-# Total code points: 23
+# Total code points: 25
 
 # ================================================
 
@@ -868,7 +947,7 @@
 # ================================================
 
 3400..4DB5    ; Unified_Ideograph # Lo [6582] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DB5
-4E00..9FCB    ; Unified_Ideograph # Lo [20940] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FCB
+4E00..9FCC    ; Unified_Ideograph # Lo [20941] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FCC
 FA0E..FA0F    ; Unified_Ideograph # Lo   [2] CJK COMPATIBILITY IDEOGRAPH-FA0E..CJK COMPATIBILITY IDEOGRAPH-FA0F
 FA11          ; Unified_Ideograph # Lo       CJK COMPATIBILITY IDEOGRAPH-FA11
 FA13..FA14    ; Unified_Ideograph # Lo   [2] CJK COMPATIBILITY IDEOGRAPH-FA13..CJK COMPATIBILITY IDEOGRAPH-FA14
@@ -880,12 +959,13 @@
 2A700..2B734  ; Unified_Ideograph # Lo [4149] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B734
 2B740..2B81D  ; Unified_Ideograph # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
 
-# Total code points: 74616
+# Total code points: 74617
 
 # ================================================
 
 034F          ; Other_Default_Ignorable_Code_Point # Mn       COMBINING GRAPHEME JOINER
 115F..1160    ; Other_Default_Ignorable_Code_Point # Lo   [2] HANGUL CHOSEONG FILLER..HANGUL JUNGSEONG FILLER
+17B4..17B5    ; Other_Default_Ignorable_Code_Point # Mn   [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
 2065..2069    ; Other_Default_Ignorable_Code_Point # Cn   [5] <reserved-2065>..<reserved-2069>
 3164          ; Other_Default_Ignorable_Code_Point # Lo       HANGUL FILLER
 FFA0          ; Other_Default_Ignorable_Code_Point # Lo       HALFWIDTH HANGUL FILLER
@@ -895,7 +975,7 @@
 E0080..E00FF  ; Other_Default_Ignorable_Code_Point # Cn [128] <reserved-E0080>..<reserved-E00FF>
 E01F0..E0FFF  ; Other_Default_Ignorable_Code_Point # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
 
-# Total code points: 3778
+# Total code points: 3780
 
 # ================================================
 
@@ -923,7 +1003,7 @@
 03F3          ; Soft_Dotted # L&       GREEK LETTER YOT
 0456          ; Soft_Dotted # L&       CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
 0458          ; Soft_Dotted # L&       CYRILLIC SMALL LETTER JE
-1D62          ; Soft_Dotted # L&       LATIN SUBSCRIPT SMALL LETTER I
+1D62          ; Soft_Dotted # Lm       LATIN SUBSCRIPT SMALL LETTER I
 1D96          ; Soft_Dotted # L&       LATIN SMALL LETTER I WITH RETROFLEX HOOK
 1DA4          ; Soft_Dotted # Lm       MODIFIER LETTER SMALL I WITH STROKE
 1DA8          ; Soft_Dotted # Lm       MODIFIER LETTER SMALL J WITH CROSSED-TAIL
@@ -931,7 +1011,7 @@
 1ECB          ; Soft_Dotted # L&       LATIN SMALL LETTER I WITH DOT BELOW
 2071          ; Soft_Dotted # Lm       SUPERSCRIPT LATIN SMALL LETTER I
 2148..2149    ; Soft_Dotted # L&   [2] DOUBLE-STRUCK ITALIC SMALL I..DOUBLE-STRUCK ITALIC SMALL J
-2C7C          ; Soft_Dotted # L&       LATIN SUBSCRIPT SMALL LETTER J
+2C7C          ; Soft_Dotted # Lm       LATIN SUBSCRIPT SMALL LETTER J
 1D422..1D423  ; Soft_Dotted # L&   [2] MATHEMATICAL BOLD SMALL I..MATHEMATICAL BOLD SMALL J
 1D456..1D457  ; Soft_Dotted # L&   [2] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL ITALIC SMALL J
 1D48A..1D48B  ; Soft_Dotted # L&   [2] MATHEMATICAL BOLD ITALIC SMALL I..MATHEMATICAL BOLD ITALIC SMALL J
@@ -1014,6 +1094,7 @@
 A92F          ; STerm # Po       KAYAH LI SIGN SHYA
 A9C8..A9C9    ; STerm # Po   [2] JAVANESE PADA LINGSA..JAVANESE PADA LUNGSI
 AA5D..AA5F    ; STerm # Po   [3] CHAM PUNCTUATION DANDA..CHAM PUNCTUATION TRIPLE DANDA
+AAF0..AAF1    ; STerm # Po   [2] MEETEI MAYEK CHEIKHAN..MEETEI MAYEK AHANG KHUDAM
 ABEB          ; STerm # Po       MEETEI MAYEK CHEIKHEI
 FE52          ; STerm # Po       SMALL FULL STOP
 FE56..FE57    ; STerm # Po   [2] SMALL QUESTION MARK..SMALL EXCLAMATION MARK
@@ -1024,8 +1105,10 @@
 10A56..10A57  ; STerm # Po   [2] KHAROSHTHI PUNCTUATION DANDA..KHAROSHTHI PUNCTUATION DOUBLE DANDA
 11047..11048  ; STerm # Po   [2] BRAHMI DANDA..BRAHMI DOUBLE DANDA
 110BE..110C1  ; STerm # Po   [4] KAITHI SECTION MARK..KAITHI DOUBLE DANDA
+11141..11143  ; STerm # Po   [3] CHAKMA DANDA..CHAKMA QUESTION MARK
+111C5..111C6  ; STerm # Po   [2] SHARADA DANDA..SHARADA DOUBLE DANDA
 
-# Total code points: 76
+# Total code points: 83
 
 # ================================================
 
@@ -1072,14 +1155,15 @@
 007E          ; Pattern_Syntax # Sm       TILDE
 00A1          ; Pattern_Syntax # Po       INVERTED EXCLAMATION MARK
 00A2..00A5    ; Pattern_Syntax # Sc   [4] CENT SIGN..YEN SIGN
-00A6..00A7    ; Pattern_Syntax # So   [2] BROKEN BAR..SECTION SIGN
+00A6          ; Pattern_Syntax # So       BROKEN BAR
+00A7          ; Pattern_Syntax # Po       SECTION SIGN
 00A9          ; Pattern_Syntax # So       COPYRIGHT SIGN
 00AB          ; Pattern_Syntax # Pi       LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
 00AC          ; Pattern_Syntax # Sm       NOT SIGN
 00AE          ; Pattern_Syntax # So       REGISTERED SIGN
 00B0          ; Pattern_Syntax # So       DEGREE SIGN
 00B1          ; Pattern_Syntax # Sm       PLUS-MINUS SIGN
-00B6          ; Pattern_Syntax # So       PILCROW SIGN
+00B6          ; Pattern_Syntax # Po       PILCROW SIGN
 00BB          ; Pattern_Syntax # Pf       RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
 00BF          ; Pattern_Syntax # Po       INVERTED QUESTION MARK
 00D7          ; Pattern_Syntax # Sm       MULTIPLICATION SIGN
@@ -1173,11 +1257,7 @@
 27C0..27C4    ; Pattern_Syntax # Sm   [5] THREE DIMENSIONAL ANGLE..OPEN SUPERSET
 27C5          ; Pattern_Syntax # Ps       LEFT S-SHAPED BAG DELIMITER
 27C6          ; Pattern_Syntax # Pe       RIGHT S-SHAPED BAG DELIMITER
-27C7..27CA    ; Pattern_Syntax # Sm   [4] OR WITH DOT INSIDE..VERTICAL BAR WITH HORIZONTAL STROKE
-27CB          ; Pattern_Syntax # Cn       <reserved-27CB>
-27CC          ; Pattern_Syntax # Sm       LONG DIVISION
-27CD          ; Pattern_Syntax # Cn       <reserved-27CD>
-27CE..27E5    ; Pattern_Syntax # Sm  [24] SQUARED LOGICAL AND..WHITE SQUARE WITH RIGHTWARDS TICK
+27C7..27E5    ; Pattern_Syntax # Sm  [31] OR WITH DOT INSIDE..WHITE SQUARE WITH RIGHTWARDS TICK
 27E6          ; Pattern_Syntax # Ps       MATHEMATICAL LEFT WHITE SQUARE BRACKET
 27E7          ; Pattern_Syntax # Pe       MATHEMATICAL RIGHT WHITE SQUARE BRACKET
 27E8          ; Pattern_Syntax # Ps       MATHEMATICAL LEFT ANGLE BRACKET
@@ -1260,8 +1340,9 @@
 2E29          ; Pattern_Syntax # Pe       RIGHT DOUBLE PARENTHESIS
 2E2A..2E2E    ; Pattern_Syntax # Po   [5] TWO DOTS OVER ONE DOT PUNCTUATION..REVERSED QUESTION MARK
 2E2F          ; Pattern_Syntax # Lm       VERTICAL TILDE
-2E30..2E31    ; Pattern_Syntax # Po   [2] RING POINT..WORD SEPARATOR MIDDLE DOT
-2E32..2E7F    ; Pattern_Syntax # Cn  [78] <reserved-2E32>..<reserved-2E7F>
+2E30..2E39    ; Pattern_Syntax # Po  [10] RING POINT..TOP HALF SECTION SIGN
+2E3A..2E3B    ; Pattern_Syntax # Pd   [2] TWO-EM DASH..THREE-EM DASH
+2E3C..2E7F    ; Pattern_Syntax # Cn  [68] <reserved-2E3C>..<reserved-2E7F>
 3001..3003    ; Pattern_Syntax # Po   [3] IDEOGRAPHIC COMMA..DITTO MARK
 3008          ; Pattern_Syntax # Ps       LEFT ANGLE BRACKET
 3009          ; Pattern_Syntax # Pe       RIGHT ANGLE BRACKET
--- a/jdk/make/tools/UnicodeData/Scripts.txt	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/make/tools/UnicodeData/Scripts.txt	Wed Jul 05 18:07:57 2017 +0200
@@ -1,8 +1,8 @@
-# Scripts-6.0.0.txt
-# Date: 2010-08-19, 00:48:47 GMT [MD]
+# Scripts-6.1.0.txt
+# Date: 2011-11-27, 05:10:50 GMT [MD]
 #
 # Unicode Character Database
-# Copyright (c) 1991-2010 Unicode, Inc.
+# Copyright (c) 1991-2011 Unicode, Inc.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
 # For documentation, see http://www.unicode.org/reports/tr44/
 
@@ -47,7 +47,8 @@
 00A0          ; Common # Zs       NO-BREAK SPACE
 00A1          ; Common # Po       INVERTED EXCLAMATION MARK
 00A2..00A5    ; Common # Sc   [4] CENT SIGN..YEN SIGN
-00A6..00A7    ; Common # So   [2] BROKEN BAR..SECTION SIGN
+00A6          ; Common # So       BROKEN BAR
+00A7          ; Common # Po       SECTION SIGN
 00A8          ; Common # Sk       DIAERESIS
 00A9          ; Common # So       COPYRIGHT SIGN
 00AB          ; Common # Pi       LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
@@ -60,8 +61,7 @@
 00B2..00B3    ; Common # No   [2] SUPERSCRIPT TWO..SUPERSCRIPT THREE
 00B4          ; Common # Sk       ACUTE ACCENT
 00B5          ; Common # L&       MICRO SIGN
-00B6          ; Common # So       PILCROW SIGN
-00B7          ; Common # Po       MIDDLE DOT
+00B6..00B7    ; Common # Po   [2] PILCROW SIGN..MIDDLE DOT
 00B8          ; Common # Sk       CEDILLA
 00B9          ; Common # No       SUPERSCRIPT ONE
 00BB          ; Common # Pf       RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
@@ -90,7 +90,6 @@
 0660..0669    ; Common # Nd  [10] ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE
 06DD          ; Common # Cf       ARABIC END OF AYAH
 0964..0965    ; Common # Po   [2] DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA
-0970          ; Common # Po       DEVANAGARI ABBREVIATION SIGN
 0E3F          ; Common # Sc       THAI CURRENCY SYMBOL BAHT
 0FD5..0FD8    ; Common # So   [4] RIGHT-FACING SVASTI SIGN..LEFT-FACING SVASTI SIGN WITH DOTS
 10FB          ; Common # Po       GEORGIAN PARAGRAPH SEPARATOR
@@ -102,7 +101,8 @@
 1CE1          ; Common # Mc       VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA
 1CE9..1CEC    ; Common # Lo   [4] VEDIC SIGN ANUSVARA ANTARGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL
 1CEE..1CF1    ; Common # Lo   [4] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ANUSVARA UBHAYATO MUKHA
-1CF2          ; Common # Mc       VEDIC SIGN ARDHAVISARGA
+1CF2..1CF3    ; Common # Mc   [2] VEDIC SIGN ARDHAVISARGA..VEDIC SIGN ROTATED ARDHAVISARGA
+1CF5..1CF6    ; Common # Lo   [2] VEDIC SIGN JIHVAMULIYA..VEDIC SIGN UPADHMANIYA
 2000..200A    ; Common # Zs  [11] EN QUAD..HAIR SPACE
 200B          ; Common # Cf       ZERO WIDTH SPACE
 200E..200F    ; Common # Cf   [2] LEFT-TO-RIGHT MARK..RIGHT-TO-LEFT MARK
@@ -247,9 +247,7 @@
 27C0..27C4    ; Common # Sm   [5] THREE DIMENSIONAL ANGLE..OPEN SUPERSET
 27C5          ; Common # Ps       LEFT S-SHAPED BAG DELIMITER
 27C6          ; Common # Pe       RIGHT S-SHAPED BAG DELIMITER
-27C7..27CA    ; Common # Sm   [4] OR WITH DOT INSIDE..VERTICAL BAR WITH HORIZONTAL STROKE
-27CC          ; Common # Sm       LONG DIVISION
-27CE..27E5    ; Common # Sm  [24] SQUARED LOGICAL AND..WHITE SQUARE WITH RIGHTWARDS TICK
+27C7..27E5    ; Common # Sm  [31] OR WITH DOT INSIDE..WHITE SQUARE WITH RIGHTWARDS TICK
 27E6          ; Common # Ps       MATHEMATICAL LEFT WHITE SQUARE BRACKET
 27E7          ; Common # Pe       MATHEMATICAL RIGHT WHITE SQUARE BRACKET
 27E8          ; Common # Ps       MATHEMATICAL LEFT ANGLE BRACKET
@@ -329,7 +327,8 @@
 2E29          ; Common # Pe       RIGHT DOUBLE PARENTHESIS
 2E2A..2E2E    ; Common # Po   [5] TWO DOTS OVER ONE DOT PUNCTUATION..REVERSED QUESTION MARK
 2E2F          ; Common # Lm       VERTICAL TILDE
-2E30..2E31    ; Common # Po   [2] RING POINT..WORD SEPARATOR MIDDLE DOT
+2E30..2E39    ; Common # Po  [10] RING POINT..TOP HALF SECTION SIGN
+2E3A..2E3B    ; Common # Pd   [2] TWO-EM DASH..THREE-EM DASH
 2FF0..2FFB    ; Common # So  [12] IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID
 3000          ; Common # Zs       IDEOGRAPHIC SPACE
 3001..3003    ; Common # Po   [3] IDEOGRAPHIC COMMA..DITTO MARK
@@ -373,7 +372,9 @@
 3196..319F    ; Common # So  [10] IDEOGRAPHIC ANNOTATION TOP MARK..IDEOGRAPHIC ANNOTATION MAN MARK
 31C0..31E3    ; Common # So  [36] CJK STROKE T..CJK STROKE Q
 3220..3229    ; Common # No  [10] PARENTHESIZED IDEOGRAPH ONE..PARENTHESIZED IDEOGRAPH TEN
-322A..3250    ; Common # So  [39] PARENTHESIZED IDEOGRAPH MOON..PARTNERSHIP SIGN
+322A..3247    ; Common # So  [30] PARENTHESIZED IDEOGRAPH MOON..CIRCLED IDEOGRAPH KOTO
+3248..324F    ; Common # No   [8] CIRCLED NUMBER TEN ON BLACK SQUARE..CIRCLED NUMBER EIGHTY ON BLACK SQUARE
+3250          ; Common # So       PARTNERSHIP SIGN
 3251..325F    ; Common # No  [15] CIRCLED NUMBER TWENTY ONE..CIRCLED NUMBER THIRTY FIVE
 327F          ; Common # So       KOREAN STANDARD SYMBOL
 3280..3289    ; Common # No  [10] CIRCLED IDEOGRAPH ONE..CIRCLED IDEOGRAPH TEN
@@ -481,8 +482,7 @@
 FFED..FFEE    ; Common # So   [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CIRCLE
 FFF9..FFFB    ; Common # Cf   [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR
 FFFC..FFFD    ; Common # So   [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHARACTER
-10100..10101  ; Common # Po   [2] AEGEAN WORD SEPARATOR LINE..AEGEAN WORD SEPARATOR DOT
-10102         ; Common # So       AEGEAN CHECK MARK
+10100..10102  ; Common # Po   [3] AEGEAN WORD SEPARATOR LINE..AEGEAN CHECK MARK
 10107..10133  ; Common # No  [45] AEGEAN NUMBER ONE..AEGEAN NUMBER NINETY THOUSAND
 10137..1013F  ; Common # So   [9] AEGEAN WEIGHT BASE UNIT..AEGEAN MEASURE THIRD SUBUNIT
 10190..1019B  ; Common # So  [12] ROMAN SEXTANS SIGN..ROMAN CENTURIAL SIGN
@@ -548,7 +548,7 @@
 1F0D1..1F0DF  ; Common # So  [15] PLAYING CARD ACE OF CLUBS..PLAYING CARD WHITE JOKER
 1F100..1F10A  ; Common # No  [11] DIGIT ZERO FULL STOP..DIGIT NINE COMMA
 1F110..1F12E  ; Common # So  [31] PARENTHESIZED LATIN CAPITAL LETTER A..CIRCLED WZ
-1F130..1F169  ; Common # So  [58] SQUARED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
+1F130..1F16B  ; Common # So  [60] SQUARED LATIN CAPITAL LETTER A..RAISED MD SIGN
 1F170..1F19A  ; Common # So  [43] NEGATIVE SQUARED LATIN CAPITAL LETTER A..SQUARED VS
 1F1E6..1F1FF  ; Common # So  [26] REGIONAL INDICATOR SYMBOL LETTER A..REGIONAL INDICATOR SYMBOL LETTER Z
 1F201..1F202  ; Common # So   [2] SQUARED KATAKANA KOKO..SQUARED KATAKANA SA
@@ -567,33 +567,23 @@
 1F442..1F4F7  ; Common # So [182] EAR..CAMERA
 1F4F9..1F4FC  ; Common # So   [4] VIDEO CAMERA..VIDEOCASSETTE
 1F500..1F53D  ; Common # So  [62] TWISTED RIGHTWARDS ARROWS..DOWN-POINTING SMALL RED TRIANGLE
+1F540..1F543  ; Common # So   [4] CIRCLED CROSS POMMEE..NOTCHED LEFT SEMICIRCLE WITH THREE DOTS
 1F550..1F567  ; Common # So  [24] CLOCK FACE ONE OCLOCK..CLOCK FACE TWELVE-THIRTY
-1F5FB..1F5FF  ; Common # So   [5] MOUNT FUJI..MOYAI
-1F601..1F610  ; Common # So  [16] GRINNING FACE WITH SMILING EYES..NEUTRAL FACE
-1F612..1F614  ; Common # So   [3] UNAMUSED FACE..PENSIVE FACE
-1F616         ; Common # So       CONFOUNDED FACE
-1F618         ; Common # So       FACE THROWING A KISS
-1F61A         ; Common # So       KISSING FACE WITH CLOSED EYES
-1F61C..1F61E  ; Common # So   [3] FACE WITH STUCK-OUT TONGUE AND WINKING EYE..DISAPPOINTED FACE
-1F620..1F625  ; Common # So   [6] ANGRY FACE..DISAPPOINTED BUT RELIEVED FACE
-1F628..1F62B  ; Common # So   [4] FEARFUL FACE..TIRED FACE
-1F62D         ; Common # So       LOUDLY CRYING FACE
-1F630..1F633  ; Common # So   [4] FACE WITH OPEN MOUTH AND COLD SWEAT..FLUSHED FACE
-1F635..1F640  ; Common # So  [12] DIZZY FACE..WEARY CAT FACE
+1F5FB..1F640  ; Common # So  [70] MOUNT FUJI..WEARY CAT FACE
 1F645..1F64F  ; Common # So  [11] FACE WITH NO GOOD GESTURE..PERSON WITH FOLDED HANDS
 1F680..1F6C5  ; Common # So  [70] ROCKET..LEFT LUGGAGE
 1F700..1F773  ; Common # So [116] ALCHEMICAL SYMBOL FOR QUINTESSENCE..ALCHEMICAL SYMBOL FOR HALF OUNCE
 E0001         ; Common # Cf       LANGUAGE TAG
 E0020..E007F  ; Common # Cf  [96] TAG SPACE..CANCEL TAG
 
-# Total code points: 6379
+# Total code points: 6412
 
 # ================================================
 
 0041..005A    ; Latin # L&  [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z
 0061..007A    ; Latin # L&  [26] LATIN SMALL LETTER A..LATIN SMALL LETTER Z
-00AA          ; Latin # L&       FEMININE ORDINAL INDICATOR
-00BA          ; Latin # L&       MASCULINE ORDINAL INDICATOR
+00AA          ; Latin # Lo       FEMININE ORDINAL INDICATOR
+00BA          ; Latin # Lo       MASCULINE ORDINAL INDICATOR
 00C0..00D6    ; Latin # L&  [23] LATIN CAPITAL LETTER A WITH GRAVE..LATIN CAPITAL LETTER O WITH DIAERESIS
 00D8..00F6    ; Latin # L&  [31] LATIN CAPITAL LETTER O WITH STROKE..LATIN SMALL LETTER O WITH DIAERESIS
 00F8..01BA    ; Latin # L& [195] LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER EZH WITH TAIL
@@ -607,7 +597,7 @@
 02E0..02E4    ; Latin # Lm   [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
 1D00..1D25    ; Latin # L&  [38] LATIN LETTER SMALL CAPITAL A..LATIN LETTER AIN
 1D2C..1D5C    ; Latin # Lm  [49] MODIFIER LETTER CAPITAL A..MODIFIER LETTER SMALL AIN
-1D62..1D65    ; Latin # L&   [4] LATIN SUBSCRIPT SMALL LETTER I..LATIN SUBSCRIPT SMALL LETTER V
+1D62..1D65    ; Latin # Lm   [4] LATIN SUBSCRIPT SMALL LETTER I..LATIN SUBSCRIPT SMALL LETTER V
 1D6B..1D77    ; Latin # L&  [13] LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G
 1D79..1D9A    ; Latin # L&  [34] LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK
 1D9B..1DBE    ; Latin # Lm  [36] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL EZH
@@ -621,22 +611,23 @@
 2160..2182    ; Latin # Nl  [35] ROMAN NUMERAL ONE..ROMAN NUMERAL TEN THOUSAND
 2183..2184    ; Latin # L&   [2] ROMAN NUMERAL REVERSED ONE HUNDRED..LATIN SMALL LETTER REVERSED C
 2185..2188    ; Latin # Nl   [4] ROMAN NUMERAL SIX LATE FORM..ROMAN NUMERAL ONE HUNDRED THOUSAND
-2C60..2C7C    ; Latin # L&  [29] LATIN CAPITAL LETTER L WITH DOUBLE BAR..LATIN SUBSCRIPT SMALL LETTER J
-2C7D          ; Latin # Lm       MODIFIER LETTER CAPITAL V
+2C60..2C7B    ; Latin # L&  [28] LATIN CAPITAL LETTER L WITH DOUBLE BAR..LATIN LETTER SMALL CAPITAL TURNED E
+2C7C..2C7D    ; Latin # Lm   [2] LATIN SUBSCRIPT SMALL LETTER J..MODIFIER LETTER CAPITAL V
 2C7E..2C7F    ; Latin # L&   [2] LATIN CAPITAL LETTER S WITH SWASH TAIL..LATIN CAPITAL LETTER Z WITH SWASH TAIL
 A722..A76F    ; Latin # L&  [78] LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF..LATIN SMALL LETTER CON
 A770          ; Latin # Lm       MODIFIER LETTER US
 A771..A787    ; Latin # L&  [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T
 A78B..A78E    ; Latin # L&   [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
-A790..A791    ; Latin # L&   [2] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER N WITH DESCENDER
-A7A0..A7A9    ; Latin # L&  [10] LATIN CAPITAL LETTER G WITH OBLIQUE STROKE..LATIN SMALL LETTER S WITH OBLIQUE STROKE
+A790..A793    ; Latin # L&   [4] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER C WITH BAR
+A7A0..A7AA    ; Latin # L&  [11] LATIN CAPITAL LETTER G WITH OBLIQUE STROKE..LATIN CAPITAL LETTER H WITH HOOK
+A7F8..A7F9    ; Latin # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
 A7FA          ; Latin # L&       LATIN LETTER SMALL CAPITAL TURNED M
 A7FB..A7FF    ; Latin # Lo   [5] LATIN EPIGRAPHIC LETTER REVERSED F..LATIN EPIGRAPHIC LETTER ARCHAIC M
 FB00..FB06    ; Latin # L&   [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
 FF21..FF3A    ; Latin # L&  [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z
 FF41..FF5A    ; Latin # L&  [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z
 
-# Total code points: 1267
+# Total code points: 1272
 
 # ================================================
 
@@ -656,7 +647,7 @@
 03F7..03FF    ; Greek # L&   [9] GREEK CAPITAL LETTER SHO..GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL
 1D26..1D2A    ; Greek # L&   [5] GREEK LETTER SMALL CAPITAL GAMMA..GREEK LETTER SMALL CAPITAL PSI
 1D5D..1D61    ; Greek # Lm   [5] MODIFIER LETTER SMALL BETA..MODIFIER LETTER SMALL CHI
-1D66..1D6A    ; Greek # L&   [5] GREEK SUBSCRIPT SMALL LETTER BETA..GREEK SUBSCRIPT SMALL LETTER CHI
+1D66..1D6A    ; Greek # Lm   [5] GREEK SUBSCRIPT SMALL LETTER BETA..GREEK SUBSCRIPT SMALL LETTER CHI
 1DBF          ; Greek # Lm       MODIFIER LETTER SMALL THETA
 1F00..1F15    ; Greek # L&  [22] GREEK SMALL LETTER ALPHA WITH PSILI..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
 1F18..1F1D    ; Greek # L&   [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
@@ -710,12 +701,13 @@
 A66F          ; Cyrillic # Mn       COMBINING CYRILLIC VZMET
 A670..A672    ; Cyrillic # Me   [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN
 A673          ; Cyrillic # Po       SLAVONIC ASTERISK
-A67C..A67D    ; Cyrillic # Mn   [2] COMBINING CYRILLIC KAVYKA..COMBINING CYRILLIC PAYEROK
+A674..A67D    ; Cyrillic # Mn  [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK
 A67E          ; Cyrillic # Po       CYRILLIC KAVYKA
 A67F          ; Cyrillic # Lm       CYRILLIC PAYEROK
 A680..A697    ; Cyrillic # L&  [24] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER SHWE
+A69F          ; Cyrillic # Mn       COMBINING CYRILLIC LETTER IOTIFIED E
 
-# Total code points: 408
+# Total code points: 417
 
 # ================================================
 
@@ -724,9 +716,10 @@
 055A..055F    ; Armenian # Po   [6] ARMENIAN APOSTROPHE..ARMENIAN ABBREVIATION MARK
 0561..0587    ; Armenian # L&  [39] ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LIGATURE ECH YIWN
 058A          ; Armenian # Pd       ARMENIAN HYPHEN
+058F          ; Armenian # Sc       ARMENIAN DRAM SIGN
 FB13..FB17    ; Armenian # L&   [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH
 
-# Total code points: 90
+# Total code points: 91
 
 # ================================================
 
@@ -757,7 +750,7 @@
 
 # ================================================
 
-0600..0603    ; Arabic # Cf   [4] ARABIC NUMBER SIGN..ARABIC SIGN SAFHA
+0600..0604    ; Arabic # Cf   [5] ARABIC NUMBER SIGN..ARABIC SIGN SAMVAT
 0606..0608    ; Arabic # Sm   [3] ARABIC-INDIC CUBE ROOT..ARABIC RAY
 0609..060A    ; Arabic # Po   [2] ARABIC-INDIC PER MILLE SIGN..ARABIC-INDIC PER TEN THOUSAND SIGN
 060B          ; Arabic # Sc       AFGHANI SIGN
@@ -786,6 +779,9 @@
 06FD..06FE    ; Arabic # So   [2] ARABIC SIGN SINDHI AMPERSAND..ARABIC SIGN SINDHI POSTPOSITION MEN
 06FF          ; Arabic # Lo       ARABIC LETTER HEH WITH INVERTED V
 0750..077F    ; Arabic # Lo  [48] ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW..ARABIC LETTER KAF WITH TWO DOTS ABOVE
+08A0          ; Arabic # Lo       ARABIC LETTER BEH WITH SMALL V BELOW
+08A2..08AC    ; Arabic # Lo  [11] ARABIC LETTER JEEM WITH TWO DOTS ABOVE..ARABIC LETTER ROHINGYA YEH
+08E4..08FE    ; Arabic # Mn  [27] ARABIC CURLY FATHA..ARABIC DAMMA WITH DOT
 FB50..FBB1    ; Arabic # Lo  [98] ARABIC LETTER ALEF WASLA ISOLATED FORM..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
 FBB2..FBC1    ; Arabic # Sk  [16] ARABIC SYMBOL DOT ABOVE..ARABIC SYMBOL SMALL TAH BELOW
 FBD3..FD3D    ; Arabic # Lo [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
@@ -796,8 +792,42 @@
 FE70..FE74    ; Arabic # Lo   [5] ARABIC FATHATAN ISOLATED FORM..ARABIC KASRATAN ISOLATED FORM
 FE76..FEFC    ; Arabic # Lo [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM
 10E60..10E7E  ; Arabic # No  [31] RUMI DIGIT ONE..RUMI FRACTION TWO THIRDS
+1EE00..1EE03  ; Arabic # Lo   [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
+1EE05..1EE1F  ; Arabic # Lo  [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
+1EE21..1EE22  ; Arabic # Lo   [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM
+1EE24         ; Arabic # Lo       ARABIC MATHEMATICAL INITIAL HEH
+1EE27         ; Arabic # Lo       ARABIC MATHEMATICAL INITIAL HAH
+1EE29..1EE32  ; Arabic # Lo  [10] ARABIC MATHEMATICAL INITIAL YEH..ARABIC MATHEMATICAL INITIAL QAF
+1EE34..1EE37  ; Arabic # Lo   [4] ARABIC MATHEMATICAL INITIAL SHEEN..ARABIC MATHEMATICAL INITIAL KHAH
+1EE39         ; Arabic # Lo       ARABIC MATHEMATICAL INITIAL DAD
+1EE3B         ; Arabic # Lo       ARABIC MATHEMATICAL INITIAL GHAIN
+1EE42         ; Arabic # Lo       ARABIC MATHEMATICAL TAILED JEEM
+1EE47         ; Arabic # Lo       ARABIC MATHEMATICAL TAILED HAH
+1EE49         ; Arabic # Lo       ARABIC MATHEMATICAL TAILED YEH
+1EE4B         ; Arabic # Lo       ARABIC MATHEMATICAL TAILED LAM
+1EE4D..1EE4F  ; Arabic # Lo   [3] ARABIC MATHEMATICAL TAILED NOON..ARABIC MATHEMATICAL TAILED AIN
+1EE51..1EE52  ; Arabic # Lo   [2] ARABIC MATHEMATICAL TAILED SAD..ARABIC MATHEMATICAL TAILED QAF
+1EE54         ; Arabic # Lo       ARABIC MATHEMATICAL TAILED SHEEN
+1EE57         ; Arabic # Lo       ARABIC MATHEMATICAL TAILED KHAH
+1EE59         ; Arabic # Lo       ARABIC MATHEMATICAL TAILED DAD
+1EE5B         ; Arabic # Lo       ARABIC MATHEMATICAL TAILED GHAIN
+1EE5D         ; Arabic # Lo       ARABIC MATHEMATICAL TAILED DOTLESS NOON
+1EE5F         ; Arabic # Lo       ARABIC MATHEMATICAL TAILED DOTLESS QAF
+1EE61..1EE62  ; Arabic # Lo   [2] ARABIC MATHEMATICAL STRETCHED BEH..ARABIC MATHEMATICAL STRETCHED JEEM
+1EE64         ; Arabic # Lo       ARABIC MATHEMATICAL STRETCHED HEH
+1EE67..1EE6A  ; Arabic # Lo   [4] ARABIC MATHEMATICAL STRETCHED HAH..ARABIC MATHEMATICAL STRETCHED KAF
+1EE6C..1EE72  ; Arabic # Lo   [7] ARABIC MATHEMATICAL STRETCHED MEEM..ARABIC MATHEMATICAL STRETCHED QAF
+1EE74..1EE77  ; Arabic # Lo   [4] ARABIC MATHEMATICAL STRETCHED SHEEN..ARABIC MATHEMATICAL STRETCHED KHAH
+1EE79..1EE7C  ; Arabic # Lo   [4] ARABIC MATHEMATICAL STRETCHED DAD..ARABIC MATHEMATICAL STRETCHED DOTLESS BEH
+1EE7E         ; Arabic # Lo       ARABIC MATHEMATICAL STRETCHED DOTLESS FEH
+1EE80..1EE89  ; Arabic # Lo  [10] ARABIC MATHEMATICAL LOOPED ALEF..ARABIC MATHEMATICAL LOOPED YEH
+1EE8B..1EE9B  ; Arabic # Lo  [17] ARABIC MATHEMATICAL LOOPED LAM..ARABIC MATHEMATICAL LOOPED GHAIN
+1EEA1..1EEA3  ; Arabic # Lo   [3] ARABIC MATHEMATICAL DOUBLE-STRUCK BEH..ARABIC MATHEMATICAL DOUBLE-STRUCK DAL
+1EEA5..1EEA9  ; Arabic # Lo   [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH
+1EEAB..1EEBB  ; Arabic # Lo  [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
+1EEF0..1EEF1  ; Arabic # Sm   [2] ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL..ARABIC MATHEMATICAL OPERATOR HAH WITH DAL
 
-# Total code points: 1051
+# Total code points: 1234
 
 # ================================================
 
@@ -838,6 +868,7 @@
 0958..0961    ; Devanagari # Lo  [10] DEVANAGARI LETTER QA..DEVANAGARI LETTER VOCALIC LL
 0962..0963    ; Devanagari # Mn   [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL
 0966..096F    ; Devanagari # Nd  [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE
+0970          ; Devanagari # Po       DEVANAGARI ABBREVIATION SIGN
 0971          ; Devanagari # Lm       DEVANAGARI SIGN HIGH SPACING DOT
 0972..0977    ; Devanagari # Lo   [6] DEVANAGARI LETTER CANDRA A..DEVANAGARI LETTER UUE
 0979..097F    ; Devanagari # Lo   [7] DEVANAGARI LETTER ZHA..DEVANAGARI LETTER BBA
@@ -846,7 +877,7 @@
 A8F8..A8FA    ; Devanagari # Po   [3] DEVANAGARI SIGN PUSHPIKA..DEVANAGARI CARET
 A8FB          ; Devanagari # Lo       DEVANAGARI HEADSTROKE
 
-# Total code points: 150
+# Total code points: 151
 
 # ================================================
 
@@ -927,9 +958,10 @@
 0AE0..0AE1    ; Gujarati # Lo   [2] GUJARATI LETTER VOCALIC RR..GUJARATI LETTER VOCALIC LL
 0AE2..0AE3    ; Gujarati # Mn   [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL
 0AE6..0AEF    ; Gujarati # Nd  [10] GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE
+0AF0          ; Gujarati # Po       GUJARATI ABBREVIATION SIGN
 0AF1          ; Gujarati # Sc       GUJARATI RUPEE SIGN
 
-# Total code points: 83
+# Total code points: 84
 
 # ================================================
 
@@ -1119,16 +1151,18 @@
 0EC6          ; Lao # Lm       LAO KO LA
 0EC8..0ECD    ; Lao # Mn   [6] LAO TONE MAI EK..LAO NIGGAHITA
 0ED0..0ED9    ; Lao # Nd  [10] LAO DIGIT ZERO..LAO DIGIT NINE
-0EDC..0EDD    ; Lao # Lo   [2] LAO HO NO..LAO HO MO
+0EDC..0EDF    ; Lao # Lo   [4] LAO HO NO..LAO LETTER KHMU NYO
 
-# Total code points: 65
+# Total code points: 67
 
 # ================================================
 
 0F00          ; Tibetan # Lo       TIBETAN SYLLABLE OM
 0F01..0F03    ; Tibetan # So   [3] TIBETAN MARK GTER YIG MGO TRUNCATED A..TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA
 0F04..0F12    ; Tibetan # Po  [15] TIBETAN MARK INITIAL YIG MGO MDUN MA..TIBETAN MARK RGYA GRAM SHAD
-0F13..0F17    ; Tibetan # So   [5] TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN..TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS
+0F13          ; Tibetan # So       TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN
+0F14          ; Tibetan # Po       TIBETAN MARK GTER TSHEG
+0F15..0F17    ; Tibetan # So   [3] TIBETAN LOGOTYPE SIGN CHAD RTAGS..TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS
 0F18..0F19    ; Tibetan # Mn   [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
 0F1A..0F1F    ; Tibetan # So   [6] TIBETAN SIGN RDEL DKAR GCIG..TIBETAN SIGN RDEL DKAR RDEL NAG
 0F20..0F29    ; Tibetan # Nd  [10] TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE
@@ -1212,16 +1246,21 @@
 # ================================================
 
 10A0..10C5    ; Georgian # L&  [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE
+10C7          ; Georgian # L&       GEORGIAN CAPITAL LETTER YN
+10CD          ; Georgian # L&       GEORGIAN CAPITAL LETTER AEN
 10D0..10FA    ; Georgian # Lo  [43] GEORGIAN LETTER AN..GEORGIAN LETTER AIN
 10FC          ; Georgian # Lm       MODIFIER LETTER GEORGIAN NAR
+10FD..10FF    ; Georgian # Lo   [3] GEORGIAN LETTER AEN..GEORGIAN LETTER LABIAL SIGN
 2D00..2D25    ; Georgian # L&  [38] GEORGIAN SMALL LETTER AN..GEORGIAN SMALL LETTER HOE
+2D27          ; Georgian # L&       GEORGIAN SMALL LETTER YN
+2D2D          ; Georgian # L&       GEORGIAN SMALL LETTER AEN
 
-# Total code points: 120
+# Total code points: 127
 
 # ================================================
 
 1100..11FF    ; Hangul # Lo [256] HANGUL CHOSEONG KIYEOK..HANGUL JONGSEONG SSANGNIEUN
-302E..302F    ; Hangul # Mn   [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK
+302E..302F    ; Hangul # Mc   [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK
 3131..318E    ; Hangul # Lo  [94] HANGUL LETTER KIYEOK..HANGUL LETTER ARAEAE
 3200..321E    ; Hangul # So  [31] PARENTHESIZED HANGUL KIYEOK..PARENTHESIZED KOREAN CHARACTER O HU
 3260..327E    ; Hangul # So  [31] CIRCLED HANGUL KIYEOK..CIRCLED HANGUL IEUNG U
@@ -1256,8 +1295,7 @@
 1312..1315    ; Ethiopic # Lo   [4] ETHIOPIC SYLLABLE GWI..ETHIOPIC SYLLABLE GWE
 1318..135A    ; Ethiopic # Lo  [67] ETHIOPIC SYLLABLE GGA..ETHIOPIC SYLLABLE FYA
 135D..135F    ; Ethiopic # Mn   [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK
-1360          ; Ethiopic # So       ETHIOPIC SECTION MARK
-1361..1368    ; Ethiopic # Po   [8] ETHIOPIC WORDSPACE..ETHIOPIC PARAGRAPH SEPARATOR
+1360..1368    ; Ethiopic # Po   [9] ETHIOPIC SECTION MARK..ETHIOPIC PARAGRAPH SEPARATOR
 1369..137C    ; Ethiopic # No  [20] ETHIOPIC DIGIT ONE..ETHIOPIC NUMBER TEN THOUSAND
 1380..138F    ; Ethiopic # Lo  [16] ETHIOPIC SYLLABLE SEBATBEIT MWA..ETHIOPIC SYLLABLE PWE
 1390..1399    ; Ethiopic # So  [10] ETHIOPIC TONAL MARK YIZET..ETHIOPIC TONAL MARK KURT
@@ -1313,7 +1351,7 @@
 # ================================================
 
 1780..17B3    ; Khmer # Lo  [52] KHMER LETTER KA..KHMER INDEPENDENT VOWEL QAU
-17B4..17B5    ; Khmer # Cf   [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
+17B4..17B5    ; Khmer # Mn   [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
 17B6          ; Khmer # Mc       KHMER VOWEL SIGN AA
 17B7..17BD    ; Khmer # Mn   [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA
 17BE..17C5    ; Khmer # Mc   [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU
@@ -1393,16 +1431,15 @@
 3038..303A    ; Han # Nl   [3] HANGZHOU NUMERAL TEN..HANGZHOU NUMERAL THIRTY
 303B          ; Han # Lm       VERTICAL IDEOGRAPHIC ITERATION MARK
 3400..4DB5    ; Han # Lo [6582] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DB5
-4E00..9FCB    ; Han # Lo [20940] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FCB
-F900..FA2D    ; Han # Lo [302] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA2D
-FA30..FA6D    ; Han # Lo  [62] CJK COMPATIBILITY IDEOGRAPH-FA30..CJK COMPATIBILITY IDEOGRAPH-FA6D
+4E00..9FCC    ; Han # Lo [20941] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FCC
+F900..FA6D    ; Han # Lo [366] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA6D
 FA70..FAD9    ; Han # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9
 20000..2A6D6  ; Han # Lo [42711] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6D6
 2A700..2B734  ; Han # Lo [4149] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B734
 2B740..2B81D  ; Han # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
 2F800..2FA1D  ; Han # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
 
-# Total code points: 75960
+# Total code points: 75963
 
 # ================================================
 
@@ -1447,6 +1484,7 @@
 1CD4..1CE0    ; Inherited # Mn  [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA
 1CE2..1CE8    ; Inherited # Mn   [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
 1CED          ; Inherited # Mn       VEDIC SIGN TIRYAK
+1CF4          ; Inherited # Mn       VEDIC TONE CANDRA ABOVE
 1DC0..1DE6    ; Inherited # Mn  [39] COMBINING DOTTED GRAVE ACCENT..COMBINING LATIN SMALL LETTER Z
 1DFC..1DFF    ; Inherited # Mn   [4] COMBINING DOUBLE INVERTED BREVE BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
 200C..200D    ; Inherited # Cf   [2] ZERO WIDTH NON-JOINER..ZERO WIDTH JOINER
@@ -1466,7 +1504,7 @@
 1D1AA..1D1AD  ; Inherited # Mn   [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
 E0100..E01EF  ; Inherited # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
 
-# Total code points: 523
+# Total code points: 524
 
 # ================================================
 
@@ -1587,11 +1625,12 @@
 2CE5..2CEA    ; Coptic # So   [6] COPTIC SYMBOL MI RO..COPTIC SYMBOL SHIMA SIMA
 2CEB..2CEE    ; Coptic # L&   [4] COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI..COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA
 2CEF..2CF1    ; Coptic # Mn   [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS
+2CF2..2CF3    ; Coptic # L&   [2] COPTIC CAPITAL LETTER BOHAIRIC KHEI..COPTIC SMALL LETTER BOHAIRIC KHEI
 2CF9..2CFC    ; Coptic # Po   [4] COPTIC OLD NUBIAN FULL STOP..COPTIC OLD NUBIAN VERSE DIVIDER
 2CFD          ; Coptic # No       COPTIC FRACTION ONE HALF
 2CFE..2CFF    ; Coptic # Po   [2] COPTIC FULL STOP..COPTIC MORPHOLOGICAL DIVIDER
 
-# Total code points: 135
+# Total code points: 137
 
 # ================================================
 
@@ -1614,12 +1653,12 @@
 
 # ================================================
 
-2D30..2D65    ; Tifinagh # Lo  [54] TIFINAGH LETTER YA..TIFINAGH LETTER YAZZ
+2D30..2D67    ; Tifinagh # Lo  [56] TIFINAGH LETTER YA..TIFINAGH LETTER YO
 2D6F          ; Tifinagh # Lm       TIFINAGH MODIFIER LETTER LABIALIZATION MARK
 2D70          ; Tifinagh # Po       TIFINAGH SEPARATOR MARK
 2D7F          ; Tifinagh # Mn       TIFINAGH CONSONANT JOINER
 
-# Total code points: 57
+# Total code points: 59
 
 # ================================================
 
@@ -1729,10 +1768,14 @@
 1BA6..1BA7    ; Sundanese # Mc   [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
 1BA8..1BA9    ; Sundanese # Mn   [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
 1BAA          ; Sundanese # Mc       SUNDANESE SIGN PAMAAEH
+1BAB          ; Sundanese # Mn       SUNDANESE SIGN VIRAMA
+1BAC..1BAD    ; Sundanese # Mc   [2] SUNDANESE CONSONANT SIGN PASANGAN MA..SUNDANESE CONSONANT SIGN PASANGAN WA
 1BAE..1BAF    ; Sundanese # Lo   [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA
 1BB0..1BB9    ; Sundanese # Nd  [10] SUNDANESE DIGIT ZERO..SUNDANESE DIGIT NINE
+1BBA..1BBF    ; Sundanese # Lo   [6] SUNDANESE AVAGRAHA..SUNDANESE LETTER FINAL M
+1CC0..1CC7    ; Sundanese # Po   [8] SUNDANESE PUNCTUATION BINDU SURYA..SUNDANESE PUNCTUATION BINDU BA SATANGA
 
-# Total code points: 55
+# Total code points: 72
 
 # ================================================
 
@@ -1940,6 +1983,15 @@
 
 # ================================================
 
+AAE0..AAEA    ; Meetei_Mayek # Lo  [11] MEETEI MAYEK LETTER E..MEETEI MAYEK LETTER SSA
+AAEB          ; Meetei_Mayek # Mc       MEETEI MAYEK VOWEL SIGN II
+AAEC..AAED    ; Meetei_Mayek # Mn   [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI MAYEK VOWEL SIGN AAI
+AAEE..AAEF    ; Meetei_Mayek # Mc   [2] MEETEI MAYEK VOWEL SIGN AU..MEETEI MAYEK VOWEL SIGN AAU
+AAF0..AAF1    ; Meetei_Mayek # Po   [2] MEETEI MAYEK CHEIKHAN..MEETEI MAYEK AHANG KHUDAM
+AAF2          ; Meetei_Mayek # Lo       MEETEI MAYEK ANJI
+AAF3..AAF4    ; Meetei_Mayek # Lm   [2] MEETEI MAYEK SYLLABLE REPETITION MARK..MEETEI MAYEK WORD REPETITION MARK
+AAF5          ; Meetei_Mayek # Mc       MEETEI MAYEK VOWEL SIGN VISARGA
+AAF6          ; Meetei_Mayek # Mn       MEETEI MAYEK VIRAMA
 ABC0..ABE2    ; Meetei_Mayek # Lo  [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM
 ABE3..ABE4    ; Meetei_Mayek # Mc   [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP
 ABE5          ; Meetei_Mayek # Mn       MEETEI MAYEK VOWEL SIGN ANAP
@@ -1951,7 +2003,7 @@
 ABED          ; Meetei_Mayek # Mn       MEETEI MAYEK APUN IYEK
 ABF0..ABF9    ; Meetei_Mayek # Nd  [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE
 
-# Total code points: 56
+# Total code points: 79
 
 # ================================================
 
@@ -2040,4 +2092,74 @@
 
 # Total code points: 29
 
+# ================================================
+
+11100..11102  ; Chakma # Mn   [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA
+11103..11126  ; Chakma # Lo  [36] CHAKMA LETTER AA..CHAKMA LETTER HAA
+11127..1112B  ; Chakma # Mn   [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU
+1112C         ; Chakma # Mc       CHAKMA VOWEL SIGN E
+1112D..11134  ; Chakma # Mn   [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA
+11136..1113F  ; Chakma # Nd  [10] CHAKMA DIGIT ZERO..CHAKMA DIGIT NINE
+11140..11143  ; Chakma # Po   [4] CHAKMA SECTION MARK..CHAKMA QUESTION MARK
+
+# Total code points: 67
+
+# ================================================
+
+109A0..109B7  ; Meroitic_Cursive # Lo  [24] MEROITIC CURSIVE LETTER A..MEROITIC CURSIVE LETTER DA
+109BE..109BF  ; Meroitic_Cursive # Lo   [2] MEROITIC CURSIVE LOGOGRAM RMT..MEROITIC CURSIVE LOGOGRAM IMN
+
+# Total code points: 26
+
+# ================================================
+
+10980..1099F  ; Meroitic_Hieroglyphs # Lo  [32] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC HIEROGLYPHIC SYMBOL VIDJ-2
+
+# Total code points: 32
+
+# ================================================
+
+16F00..16F44  ; Miao # Lo  [69] MIAO LETTER PA..MIAO LETTER HHA
+16F50         ; Miao # Lo       MIAO LETTER NASALIZATION
+16F51..16F7E  ; Miao # Mc  [46] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN NG
+16F8F..16F92  ; Miao # Mn   [4] MIAO TONE RIGHT..MIAO TONE BELOW
+16F93..16F9F  ; Miao # Lm  [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
+
+# Total code points: 133
+
+# ================================================
+
+11180..11181  ; Sharada # Mn   [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA
+11182         ; Sharada # Mc       SHARADA SIGN VISARGA
+11183..111B2  ; Sharada # Lo  [48] SHARADA LETTER A..SHARADA LETTER HA
+111B3..111B5  ; Sharada # Mc   [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II
+111B6..111BE  ; Sharada # Mn   [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O
+111BF..111C0  ; Sharada # Mc   [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA
+111C1..111C4  ; Sharada # Lo   [4] SHARADA SIGN AVAGRAHA..SHARADA OM
+111C5..111C8  ; Sharada # Po   [4] SHARADA DANDA..SHARADA SEPARATOR
+111D0..111D9  ; Sharada # Nd  [10] SHARADA DIGIT ZERO..SHARADA DIGIT NINE
+
+# Total code points: 83
+
+# ================================================
+
+110D0..110E8  ; Sora_Sompeng # Lo  [25] SORA SOMPENG LETTER SAH..SORA SOMPENG LETTER MAE
+110F0..110F9  ; Sora_Sompeng # Nd  [10] SORA SOMPENG DIGIT ZERO..SORA SOMPENG DIGIT NINE
+
+# Total code points: 35
+
+# ================================================
+
+11680..116AA  ; Takri # Lo  [43] TAKRI LETTER A..TAKRI LETTER RRA
+116AB         ; Takri # Mn       TAKRI SIGN ANUSVARA
+116AC         ; Takri # Mc       TAKRI SIGN VISARGA
+116AD         ; Takri # Mn       TAKRI VOWEL SIGN AA
+116AE..116AF  ; Takri # Mc   [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II
+116B0..116B5  ; Takri # Mn   [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
+116B6         ; Takri # Mc       TAKRI SIGN VIRAMA
+116B7         ; Takri # Mn       TAKRI SIGN NUKTA
+116C0..116C9  ; Takri # Nd  [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE
+
+# Total code points: 66
+
 # EOF
--- a/jdk/make/tools/UnicodeData/SpecialCasing.txt	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/make/tools/UnicodeData/SpecialCasing.txt	Wed Jul 05 18:07:57 2017 +0200
@@ -1,8 +1,8 @@
-# SpecialCasing-6.0.0.txt
-# Date: 2010-05-18, 00:49:39 GMT [MD]
+# SpecialCasing-6.1.0.txt
+# Date: 2011-11-27, 05:10:51 GMT [MD]
 #
 # Unicode Character Database
-# Copyright (c) 1991-2010 Unicode, Inc.
+# Copyright (c) 1991-2011 Unicode, Inc.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
 # For documentation, see http://www.unicode.org/reports/tr44/
 #
@@ -47,7 +47,9 @@
 #  * Additional contexts
 #  * Additional fields
 # ================================================================================
-# @missing 0000..10FFFF; <slc>; <stc>; <suc>
+
+# @missing: 0000..10FFFF; <slc>; <stc>; <suc>;
+
 # ================================================================================
 # Unconditional mappings
 # ================================================================================
--- a/jdk/make/tools/UnicodeData/UnicodeData.txt	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/make/tools/UnicodeData/UnicodeData.txt	Wed Jul 05 18:07:57 2017 +0200
@@ -165,10 +165,10 @@
 00A4;CURRENCY SIGN;Sc;0;ET;;;;;N;;;;;
 00A5;YEN SIGN;Sc;0;ET;;;;;N;;;;;
 00A6;BROKEN BAR;So;0;ON;;;;;N;BROKEN VERTICAL BAR;;;;
-00A7;SECTION SIGN;So;0;ON;;;;;N;;;;;
+00A7;SECTION SIGN;Po;0;ON;;;;;N;;;;;
 00A8;DIAERESIS;Sk;0;ON;<compat> 0020 0308;;;;N;SPACING DIAERESIS;;;;
 00A9;COPYRIGHT SIGN;So;0;ON;;;;;N;;;;;
-00AA;FEMININE ORDINAL INDICATOR;Ll;0;L;<super> 0061;;;;N;;;;;
+00AA;FEMININE ORDINAL INDICATOR;Lo;0;L;<super> 0061;;;;N;;;;;
 00AB;LEFT-POINTING DOUBLE ANGLE QUOTATION MARK;Pi;0;ON;;;;;Y;LEFT POINTING GUILLEMET;;;;
 00AC;NOT SIGN;Sm;0;ON;;;;;N;;;;;
 00AD;SOFT HYPHEN;Cf;0;BN;;;;;N;;;;;
@@ -180,11 +180,11 @@
 00B3;SUPERSCRIPT THREE;No;0;EN;<super> 0033;;3;3;N;SUPERSCRIPT DIGIT THREE;;;;
 00B4;ACUTE ACCENT;Sk;0;ON;<compat> 0020 0301;;;;N;SPACING ACUTE;;;;
 00B5;MICRO SIGN;Ll;0;L;<compat> 03BC;;;;N;;;039C;;039C
-00B6;PILCROW SIGN;So;0;ON;;;;;N;PARAGRAPH SIGN;;;;
+00B6;PILCROW SIGN;Po;0;ON;;;;;N;PARAGRAPH SIGN;;;;
 00B7;MIDDLE DOT;Po;0;ON;;;;;N;;;;;
 00B8;CEDILLA;Sk;0;ON;<compat> 0020 0327;;;;N;SPACING CEDILLA;;;;
 00B9;SUPERSCRIPT ONE;No;0;EN;<super> 0031;;1;1;N;SUPERSCRIPT DIGIT ONE;;;;
-00BA;MASCULINE ORDINAL INDICATOR;Ll;0;L;<super> 006F;;;;N;;;;;
+00BA;MASCULINE ORDINAL INDICATOR;Lo;0;L;<super> 006F;;;;N;;;;;
 00BB;RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK;Pf;0;ON;;;;;Y;RIGHT POINTING GUILLEMET;;;;
 00BC;VULGAR FRACTION ONE QUARTER;No;0;ON;<fraction> 0031 2044 0034;;;1/4;N;FRACTION ONE QUARTER;;;;
 00BD;VULGAR FRACTION ONE HALF;No;0;ON;<fraction> 0031 2044 0032;;;1/2;N;FRACTION ONE HALF;;;;
@@ -612,7 +612,7 @@
 0263;LATIN SMALL LETTER GAMMA;Ll;0;L;;;;;N;;;0194;;0194
 0264;LATIN SMALL LETTER RAMS HORN;Ll;0;L;;;;;N;LATIN SMALL LETTER BABY GAMMA;;;;
 0265;LATIN SMALL LETTER TURNED H;Ll;0;L;;;;;N;;;A78D;;A78D
-0266;LATIN SMALL LETTER H WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER H HOOK;;;;
+0266;LATIN SMALL LETTER H WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER H HOOK;;A7AA;;A7AA
 0267;LATIN SMALL LETTER HENG WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER HENG HOOK;;;;
 0268;LATIN SMALL LETTER I WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER BARRED I;;0197;;0197
 0269;LATIN SMALL LETTER IOTA;Ll;0;L;;;;;N;;;0196;;0196
@@ -1394,6 +1394,7 @@
 0587;ARMENIAN SMALL LIGATURE ECH YIWN;Ll;0;L;<compat> 0565 0582;;;;N;;;;;
 0589;ARMENIAN FULL STOP;Po;0;L;;;;;N;ARMENIAN PERIOD;;;;
 058A;ARMENIAN HYPHEN;Pd;0;ON;;;;;N;;;;;
+058F;ARMENIAN DRAM SIGN;Sc;0;ET;;;;;N;;;;;
 0591;HEBREW ACCENT ETNAHTA;Mn;220;NSM;;;;;N;;;;;
 0592;HEBREW ACCENT SEGOL;Mn;230;NSM;;;;;N;;;;;
 0593;HEBREW ACCENT SHALSHELET;Mn;230;NSM;;;;;N;;;;;
@@ -1485,6 +1486,7 @@
 0601;ARABIC SIGN SANAH;Cf;0;AN;;;;;N;;;;;
 0602;ARABIC FOOTNOTE MARKER;Cf;0;AN;;;;;N;;;;;
 0603;ARABIC SIGN SAFHA;Cf;0;AN;;;;;N;;;;;
+0604;ARABIC SIGN SAMVAT;Cf;0;AN;;;;;N;;;;;
 0606;ARABIC-INDIC CUBE ROOT;Sm;0;ON;;;;;N;;;;;
 0607;ARABIC-INDIC FOURTH ROOT;Sm;0;ON;;;;;N;;;;;
 0608;ARABIC RAY;Sm;0;AL;;;;;N;;;;;
@@ -2057,6 +2059,45 @@
 085A;MANDAIC VOCALIZATION MARK;Mn;220;NSM;;;;;N;;;;;
 085B;MANDAIC GEMINATION MARK;Mn;220;NSM;;;;;N;;;;;
 085E;MANDAIC PUNCTUATION;Po;0;R;;;;;N;;;;;
+08A0;ARABIC LETTER BEH WITH SMALL V BELOW;Lo;0;AL;;;;;N;;;;;
+08A2;ARABIC LETTER JEEM WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+08A3;ARABIC LETTER TAH WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+08A4;ARABIC LETTER FEH WITH DOT BELOW AND THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+08A5;ARABIC LETTER QAF WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;
+08A6;ARABIC LETTER LAM WITH DOUBLE BAR;Lo;0;AL;;;;;N;;;;;
+08A7;ARABIC LETTER MEEM WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+08A8;ARABIC LETTER YEH WITH TWO DOTS BELOW AND HAMZA ABOVE;Lo;0;AL;;;;;N;;;;;
+08A9;ARABIC LETTER YEH WITH TWO DOTS BELOW AND DOT ABOVE;Lo;0;AL;;;;;N;;;;;
+08AA;ARABIC LETTER REH WITH LOOP;Lo;0;AL;;;;;N;;;;;
+08AB;ARABIC LETTER WAW WITH DOT WITHIN;Lo;0;AL;;;;;N;;;;;
+08AC;ARABIC LETTER ROHINGYA YEH;Lo;0;AL;;;;;N;;;;;
+08E4;ARABIC CURLY FATHA;Mn;230;NSM;;;;;N;;;;;
+08E5;ARABIC CURLY DAMMA;Mn;230;NSM;;;;;N;;;;;
+08E6;ARABIC CURLY KASRA;Mn;220;NSM;;;;;N;;;;;
+08E7;ARABIC CURLY FATHATAN;Mn;230;NSM;;;;;N;;;;;
+08E8;ARABIC CURLY DAMMATAN;Mn;230;NSM;;;;;N;;;;;
+08E9;ARABIC CURLY KASRATAN;Mn;220;NSM;;;;;N;;;;;
+08EA;ARABIC TONE ONE DOT ABOVE;Mn;230;NSM;;;;;N;;;;;
+08EB;ARABIC TONE TWO DOTS ABOVE;Mn;230;NSM;;;;;N;;;;;
+08EC;ARABIC TONE LOOP ABOVE;Mn;230;NSM;;;;;N;;;;;
+08ED;ARABIC TONE ONE DOT BELOW;Mn;220;NSM;;;;;N;;;;;
+08EE;ARABIC TONE TWO DOTS BELOW;Mn;220;NSM;;;;;N;;;;;
+08EF;ARABIC TONE LOOP BELOW;Mn;220;NSM;;;;;N;;;;;
+08F0;ARABIC OPEN FATHATAN;Mn;27;NSM;;;;;N;;;;;
+08F1;ARABIC OPEN DAMMATAN;Mn;28;NSM;;;;;N;;;;;
+08F2;ARABIC OPEN KASRATAN;Mn;29;NSM;;;;;N;;;;;
+08F3;ARABIC SMALL HIGH WAW;Mn;230;NSM;;;;;N;;;;;
+08F4;ARABIC FATHA WITH RING;Mn;230;NSM;;;;;N;;;;;
+08F5;ARABIC FATHA WITH DOT ABOVE;Mn;230;NSM;;;;;N;;;;;
+08F6;ARABIC KASRA WITH DOT BELOW;Mn;220;NSM;;;;;N;;;;;
+08F7;ARABIC LEFT ARROWHEAD ABOVE;Mn;230;NSM;;;;;N;;;;;
+08F8;ARABIC RIGHT ARROWHEAD ABOVE;Mn;230;NSM;;;;;N;;;;;
+08F9;ARABIC LEFT ARROWHEAD BELOW;Mn;220;NSM;;;;;N;;;;;
+08FA;ARABIC RIGHT ARROWHEAD BELOW;Mn;220;NSM;;;;;N;;;;;
+08FB;ARABIC DOUBLE RIGHT ARROWHEAD ABOVE;Mn;230;NSM;;;;;N;;;;;
+08FC;ARABIC DOUBLE RIGHT ARROWHEAD ABOVE WITH DOT;Mn;230;NSM;;;;;N;;;;;
+08FD;ARABIC RIGHT ARROWHEAD ABOVE WITH DOT;Mn;230;NSM;;;;;N;;;;;
+08FE;ARABIC DAMMA WITH DOT;Mn;230;NSM;;;;;N;;;;;
 0900;DEVANAGARI SIGN INVERTED CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
 0901;DEVANAGARI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
 0902;DEVANAGARI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
@@ -2437,6 +2478,7 @@
 0AED;GUJARATI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
 0AEE;GUJARATI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
 0AEF;GUJARATI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0AF0;GUJARATI ABBREVIATION SIGN;Po;0;L;;;;;N;;;;;
 0AF1;GUJARATI RUPEE SIGN;Sc;0;ET;;;;;N;;;;;
 0B01;ORIYA SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
 0B02;ORIYA SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
@@ -3109,6 +3151,8 @@
 0ED9;LAO DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
 0EDC;LAO HO NO;Lo;0;L;<compat> 0EAB 0E99;;;;N;;;;;
 0EDD;LAO HO MO;Lo;0;L;<compat> 0EAB 0EA1;;;;N;;;;;
+0EDE;LAO LETTER KHMU GO;Lo;0;L;;;;;N;;;;;
+0EDF;LAO LETTER KHMU NYO;Lo;0;L;;;;;N;;;;;
 0F00;TIBETAN SYLLABLE OM;Lo;0;L;;;;;N;;;;;
 0F01;TIBETAN MARK GTER YIG MGO TRUNCATED A;So;0;L;;;;;N;;;;;
 0F02;TIBETAN MARK GTER YIG MGO -UM RNAM BCAD MA;So;0;L;;;;;N;;;;;
@@ -3129,7 +3173,7 @@
 0F11;TIBETAN MARK RIN CHEN SPUNGS SHAD;Po;0;L;;;;;N;TIBETAN RINCHANPHUNGSHAD;;;;
 0F12;TIBETAN MARK RGYA GRAM SHAD;Po;0;L;;;;;N;;;;;
 0F13;TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN;So;0;L;;;;;N;;;;;
-0F14;TIBETAN MARK GTER TSHEG;So;0;L;;;;;N;TIBETAN COMMA;;;;
+0F14;TIBETAN MARK GTER TSHEG;Po;0;L;;;;;N;TIBETAN COMMA;;;;
 0F15;TIBETAN LOGOTYPE SIGN CHAD RTAGS;So;0;L;;;;;N;;;;;
 0F16;TIBETAN LOGOTYPE SIGN LHAG RTAGS;So;0;L;;;;;N;;;;;
 0F17;TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS;So;0;L;;;;;N;;;;;
@@ -3518,6 +3562,8 @@
 10C3;GEORGIAN CAPITAL LETTER WE;Lu;0;L;;;;;N;;;;2D23;
 10C4;GEORGIAN CAPITAL LETTER HAR;Lu;0;L;;;;;N;;;;2D24;
 10C5;GEORGIAN CAPITAL LETTER HOE;Lu;0;L;;;;;N;;;;2D25;
+10C7;GEORGIAN CAPITAL LETTER YN;Lu;0;L;;;;;N;;;;2D27;
+10CD;GEORGIAN CAPITAL LETTER AEN;Lu;0;L;;;;;N;;;;2D2D;
 10D0;GEORGIAN LETTER AN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER AN;;;;
 10D1;GEORGIAN LETTER BAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER BAN;;;;
 10D2;GEORGIAN LETTER GAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER GAN;;;;
@@ -3563,6 +3609,9 @@
 10FA;GEORGIAN LETTER AIN;Lo;0;L;;;;;N;;;;;
 10FB;GEORGIAN PARAGRAPH SEPARATOR;Po;0;L;;;;;N;;;;;
 10FC;MODIFIER LETTER GEORGIAN NAR;Lm;0;L;<super> 10DC;;;;N;;;;;
+10FD;GEORGIAN LETTER AEN;Lo;0;L;;;;;N;;;;;
+10FE;GEORGIAN LETTER HARD SIGN;Lo;0;L;;;;;N;;;;;
+10FF;GEORGIAN LETTER LABIAL SIGN;Lo;0;L;;;;;N;;;;;
 1100;HANGUL CHOSEONG KIYEOK;Lo;0;L;;;;;N;;;;;
 1101;HANGUL CHOSEONG SSANGKIYEOK;Lo;0;L;;;;;N;;;;;
 1102;HANGUL CHOSEONG NIEUN;Lo;0;L;;;;;N;;;;;
@@ -4148,7 +4197,7 @@
 135D;ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK;Mn;230;NSM;;;;;N;;;;;
 135E;ETHIOPIC COMBINING VOWEL LENGTH MARK;Mn;230;NSM;;;;;N;;;;;
 135F;ETHIOPIC COMBINING GEMINATION MARK;Mn;230;NSM;;;;;N;;;;;
-1360;ETHIOPIC SECTION MARK;So;0;L;;;;;N;;;;;
+1360;ETHIOPIC SECTION MARK;Po;0;L;;;;;N;;;;;
 1361;ETHIOPIC WORDSPACE;Po;0;L;;;;;N;;;;;
 1362;ETHIOPIC FULL STOP;Po;0;L;;;;;N;;;;;
 1363;ETHIOPIC COMMA;Po;0;L;;;;;N;;;;;
@@ -5171,8 +5220,8 @@
 17B1;KHMER INDEPENDENT VOWEL QOO TYPE ONE;Lo;0;L;;;;;N;;;;;
 17B2;KHMER INDEPENDENT VOWEL QOO TYPE TWO;Lo;0;L;;;;;N;;;;;
 17B3;KHMER INDEPENDENT VOWEL QAU;Lo;0;L;;;;;N;;;;;
-17B4;KHMER VOWEL INHERENT AQ;Cf;0;L;;;;;N;;;;;
-17B5;KHMER VOWEL INHERENT AA;Cf;0;L;;;;;N;;;;;
+17B4;KHMER VOWEL INHERENT AQ;Mn;0;NSM;;;;;N;;;;;
+17B5;KHMER VOWEL INHERENT AA;Mn;0;NSM;;;;;N;;;;;
 17B6;KHMER VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
 17B7;KHMER VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
 17B8;KHMER VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;
@@ -5996,6 +6045,9 @@
 1BA8;SUNDANESE VOWEL SIGN PAMEPET;Mn;0;NSM;;;;;N;;;;;
 1BA9;SUNDANESE VOWEL SIGN PANEULEUNG;Mn;0;NSM;;;;;N;;;;;
 1BAA;SUNDANESE SIGN PAMAAEH;Mc;9;L;;;;;N;;;;;
+1BAB;SUNDANESE SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+1BAC;SUNDANESE CONSONANT SIGN PASANGAN MA;Mc;0;L;;;;;N;;;;;
+1BAD;SUNDANESE CONSONANT SIGN PASANGAN WA;Mc;0;L;;;;;N;;;;;
 1BAE;SUNDANESE LETTER KHA;Lo;0;L;;;;;N;;;;;
 1BAF;SUNDANESE LETTER SYA;Lo;0;L;;;;;N;;;;;
 1BB0;SUNDANESE DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
@@ -6008,6 +6060,12 @@
 1BB7;SUNDANESE DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
 1BB8;SUNDANESE DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
 1BB9;SUNDANESE DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+1BBA;SUNDANESE AVAGRAHA;Lo;0;L;;;;;N;;;;;
+1BBB;SUNDANESE LETTER REU;Lo;0;L;;;;;N;;;;;
+1BBC;SUNDANESE LETTER LEU;Lo;0;L;;;;;N;;;;;
+1BBD;SUNDANESE LETTER BHA;Lo;0;L;;;;;N;;;;;
+1BBE;SUNDANESE LETTER FINAL K;Lo;0;L;;;;;N;;;;;
+1BBF;SUNDANESE LETTER FINAL M;Lo;0;L;;;;;N;;;;;
 1BC0;BATAK LETTER A;Lo;0;L;;;;;N;;;;;
 1BC1;BATAK LETTER SIMALUNGUN A;Lo;0;L;;;;;N;;;;;
 1BC2;BATAK LETTER HA;Lo;0;L;;;;;N;;;;;
@@ -6186,6 +6244,14 @@
 1C7D;OL CHIKI AHAD;Lm;0;L;;;;;N;;;;;
 1C7E;OL CHIKI PUNCTUATION MUCAAD;Po;0;L;;;;;N;;;;;
 1C7F;OL CHIKI PUNCTUATION DOUBLE MUCAAD;Po;0;L;;;;;N;;;;;
+1CC0;SUNDANESE PUNCTUATION BINDU SURYA;Po;0;L;;;;;N;;;;;
+1CC1;SUNDANESE PUNCTUATION BINDU PANGLONG;Po;0;L;;;;;N;;;;;
+1CC2;SUNDANESE PUNCTUATION BINDU PURNAMA;Po;0;L;;;;;N;;;;;
+1CC3;SUNDANESE PUNCTUATION BINDU CAKRA;Po;0;L;;;;;N;;;;;
+1CC4;SUNDANESE PUNCTUATION BINDU LEU SATANGA;Po;0;L;;;;;N;;;;;
+1CC5;SUNDANESE PUNCTUATION BINDU KA SATANGA;Po;0;L;;;;;N;;;;;
+1CC6;SUNDANESE PUNCTUATION BINDU DA SATANGA;Po;0;L;;;;;N;;;;;
+1CC7;SUNDANESE PUNCTUATION BINDU BA SATANGA;Po;0;L;;;;;N;;;;;
 1CD0;VEDIC TONE KARSHANA;Mn;230;NSM;;;;;N;;;;;
 1CD1;VEDIC TONE SHARA;Mn;230;NSM;;;;;N;;;;;
 1CD2;VEDIC TONE PRENKHA;Mn;230;NSM;;;;;N;;;;;
@@ -6221,6 +6287,10 @@
 1CF0;VEDIC SIGN RTHANG LONG ANUSVARA;Lo;0;L;;;;;N;;;;;
 1CF1;VEDIC SIGN ANUSVARA UBHAYATO MUKHA;Lo;0;L;;;;;N;;;;;
 1CF2;VEDIC SIGN ARDHAVISARGA;Mc;0;L;;;;;N;;;;;
+1CF3;VEDIC SIGN ROTATED ARDHAVISARGA;Mc;0;L;;;;;N;;;;;
+1CF4;VEDIC TONE CANDRA ABOVE;Mn;230;NSM;;;;;N;;;;;
+1CF5;VEDIC SIGN JIHVAMULIYA;Lo;0;L;;;;;N;;;;;
+1CF6;VEDIC SIGN UPADHMANIYA;Lo;0;L;;;;;N;;;;;
 1D00;LATIN LETTER SMALL CAPITAL A;Ll;0;L;;;;;N;;;;;
 1D01;LATIN LETTER SMALL CAPITAL AE;Ll;0;L;;;;;N;;;;;
 1D02;LATIN SMALL LETTER TURNED AE;Ll;0;L;;;;;N;;;;;
@@ -6319,15 +6389,15 @@
 1D5F;MODIFIER LETTER SMALL DELTA;Lm;0;L;<super> 03B4;;;;N;;;;;
 1D60;MODIFIER LETTER SMALL GREEK PHI;Lm;0;L;<super> 03C6;;;;N;;;;;
 1D61;MODIFIER LETTER SMALL CHI;Lm;0;L;<super> 03C7;;;;N;;;;;
-1D62;LATIN SUBSCRIPT SMALL LETTER I;Ll;0;L;<sub> 0069;;;;N;;;;;
-1D63;LATIN SUBSCRIPT SMALL LETTER R;Ll;0;L;<sub> 0072;;;;N;;;;;
-1D64;LATIN SUBSCRIPT SMALL LETTER U;Ll;0;L;<sub> 0075;;;;N;;;;;
-1D65;LATIN SUBSCRIPT SMALL LETTER V;Ll;0;L;<sub> 0076;;;;N;;;;;
-1D66;GREEK SUBSCRIPT SMALL LETTER BETA;Ll;0;L;<sub> 03B2;;;;N;;;;;
-1D67;GREEK SUBSCRIPT SMALL LETTER GAMMA;Ll;0;L;<sub> 03B3;;;;N;;;;;
-1D68;GREEK SUBSCRIPT SMALL LETTER RHO;Ll;0;L;<sub> 03C1;;;;N;;;;;
-1D69;GREEK SUBSCRIPT SMALL LETTER PHI;Ll;0;L;<sub> 03C6;;;;N;;;;;
-1D6A;GREEK SUBSCRIPT SMALL LETTER CHI;Ll;0;L;<sub> 03C7;;;;N;;;;;
+1D62;LATIN SUBSCRIPT SMALL LETTER I;Lm;0;L;<sub> 0069;;;;N;;;;;
+1D63;LATIN SUBSCRIPT SMALL LETTER R;Lm;0;L;<sub> 0072;;;;N;;;;;
+1D64;LATIN SUBSCRIPT SMALL LETTER U;Lm;0;L;<sub> 0075;;;;N;;;;;
+1D65;LATIN SUBSCRIPT SMALL LETTER V;Lm;0;L;<sub> 0076;;;;N;;;;;
+1D66;GREEK SUBSCRIPT SMALL LETTER BETA;Lm;0;L;<sub> 03B2;;;;N;;;;;
+1D67;GREEK SUBSCRIPT SMALL LETTER GAMMA;Lm;0;L;<sub> 03B3;;;;N;;;;;
+1D68;GREEK SUBSCRIPT SMALL LETTER RHO;Lm;0;L;<sub> 03C1;;;;N;;;;;
+1D69;GREEK SUBSCRIPT SMALL LETTER PHI;Lm;0;L;<sub> 03C6;;;;N;;;;;
+1D6A;GREEK SUBSCRIPT SMALL LETTER CHI;Lm;0;L;<sub> 03C7;;;;N;;;;;
 1D6B;LATIN SMALL LETTER UE;Ll;0;L;;;;;N;;;;;
 1D6C;LATIN SMALL LETTER B WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
 1D6D;LATIN SMALL LETTER D WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
@@ -8827,7 +8897,9 @@
 27C8;REVERSE SOLIDUS PRECEDING SUBSET;Sm;0;ON;;;;;Y;;;;;
 27C9;SUPERSET PRECEDING SOLIDUS;Sm;0;ON;;;;;Y;;;;;
 27CA;VERTICAL BAR WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;;
+27CB;MATHEMATICAL RISING DIAGONAL;Sm;0;ON;;;;;Y;;;;;
 27CC;LONG DIVISION;Sm;0;ON;;;;;Y;;;;;
+27CD;MATHEMATICAL FALLING DIAGONAL;Sm;0;ON;;;;;Y;;;;;
 27CE;SQUARED LOGICAL AND;Sm;0;ON;;;;;N;;;;;
 27CF;SQUARED LOGICAL OR;Sm;0;ON;;;;;N;;;;;
 27D0;WHITE DIAMOND WITH CENTRED DOT;Sm;0;ON;;;;;N;;;;;
@@ -9855,7 +9927,7 @@
 2C79;LATIN SMALL LETTER TURNED R WITH TAIL;Ll;0;L;;;;;N;;;;;
 2C7A;LATIN SMALL LETTER O WITH LOW RING INSIDE;Ll;0;L;;;;;N;;;;;
 2C7B;LATIN LETTER SMALL CAPITAL TURNED E;Ll;0;L;;;;;N;;;;;
-2C7C;LATIN SUBSCRIPT SMALL LETTER J;Ll;0;L;<sub> 006A;;;;N;;;;;
+2C7C;LATIN SUBSCRIPT SMALL LETTER J;Lm;0;L;<sub> 006A;;;;N;;;;;
 2C7D;MODIFIER LETTER CAPITAL V;Lm;0;L;<super> 0056;;;;N;;;;;
 2C7E;LATIN CAPITAL LETTER S WITH SWASH TAIL;Lu;0;L;;;;;N;;;;023F;
 2C7F;LATIN CAPITAL LETTER Z WITH SWASH TAIL;Lu;0;L;;;;;N;;;;0240;
@@ -9973,6 +10045,8 @@
 2CEF;COPTIC COMBINING NI ABOVE;Mn;230;NSM;;;;;N;;;;;
 2CF0;COPTIC COMBINING SPIRITUS ASPER;Mn;230;NSM;;;;;N;;;;;
 2CF1;COPTIC COMBINING SPIRITUS LENIS;Mn;230;NSM;;;;;N;;;;;
+2CF2;COPTIC CAPITAL LETTER BOHAIRIC KHEI;Lu;0;L;;;;;N;;;;2CF3;
+2CF3;COPTIC SMALL LETTER BOHAIRIC KHEI;Ll;0;L;;;;;N;;;2CF2;;2CF2
 2CF9;COPTIC OLD NUBIAN FULL STOP;Po;0;ON;;;;;N;;;;;
 2CFA;COPTIC OLD NUBIAN DIRECT QUESTION MARK;Po;0;ON;;;;;N;;;;;
 2CFB;COPTIC OLD NUBIAN INDIRECT QUESTION MARK;Po;0;ON;;;;;N;;;;;
@@ -10018,6 +10092,8 @@
 2D23;GEORGIAN SMALL LETTER WE;Ll;0;L;;;;;N;;;10C3;;10C3
 2D24;GEORGIAN SMALL LETTER HAR;Ll;0;L;;;;;N;;;10C4;;10C4
 2D25;GEORGIAN SMALL LETTER HOE;Ll;0;L;;;;;N;;;10C5;;10C5
+2D27;GEORGIAN SMALL LETTER YN;Ll;0;L;;;;;N;;;10C7;;10C7
+2D2D;GEORGIAN SMALL LETTER AEN;Ll;0;L;;;;;N;;;10CD;;10CD
 2D30;TIFINAGH LETTER YA;Lo;0;L;;;;;N;;;;;
 2D31;TIFINAGH LETTER YAB;Lo;0;L;;;;;N;;;;;
 2D32;TIFINAGH LETTER YABH;Lo;0;L;;;;;N;;;;;
@@ -10072,6 +10148,8 @@
 2D63;TIFINAGH LETTER YAZ;Lo;0;L;;;;;N;;;;;
 2D64;TIFINAGH LETTER TAWELLEMET YAZ;Lo;0;L;;;;;N;;;;;
 2D65;TIFINAGH LETTER YAZZ;Lo;0;L;;;;;N;;;;;
+2D66;TIFINAGH LETTER YE;Lo;0;L;;;;;N;;;;;
+2D67;TIFINAGH LETTER YO;Lo;0;L;;;;;N;;;;;
 2D6F;TIFINAGH MODIFIER LETTER LABIALIZATION MARK;Lm;0;L;<super> 2D61;;;;N;;;;;
 2D70;TIFINAGH SEPARATOR MARK;Po;0;L;;;;;N;;;;;
 2D7F;TIFINAGH CONSONANT JOINER;Mn;9;NSM;;;;;N;;;;;
@@ -10236,6 +10314,16 @@
 2E2F;VERTICAL TILDE;Lm;0;ON;;;;;N;;;;;
 2E30;RING POINT;Po;0;ON;;;;;N;;;;;
 2E31;WORD SEPARATOR MIDDLE DOT;Po;0;ON;;;;;N;;;;;
+2E32;TURNED COMMA;Po;0;ON;;;;;N;;;;;
+2E33;RAISED DOT;Po;0;ON;;;;;N;;;;;
+2E34;RAISED COMMA;Po;0;ON;;;;;N;;;;;
+2E35;TURNED SEMICOLON;Po;0;ON;;;;;N;;;;;
+2E36;DAGGER WITH LEFT GUARD;Po;0;ON;;;;;N;;;;;
+2E37;DAGGER WITH RIGHT GUARD;Po;0;ON;;;;;N;;;;;
+2E38;TURNED DAGGER;Po;0;ON;;;;;N;;;;;
+2E39;TOP HALF SECTION SIGN;Po;0;ON;;;;;N;;;;;
+2E3A;TWO-EM DASH;Pd;0;ON;;;;;N;;;;;
+2E3B;THREE-EM DASH;Pd;0;ON;;;;;N;;;;;
 2E80;CJK RADICAL REPEAT;So;0;ON;;;;;N;;;;;
 2E81;CJK RADICAL CLIFF;So;0;ON;;;;;N;;;;;
 2E82;CJK RADICAL SECOND ONE;So;0;ON;;;;;N;;;;;
@@ -10623,8 +10711,8 @@
 302B;IDEOGRAPHIC RISING TONE MARK;Mn;228;NSM;;;;;N;;;;;
 302C;IDEOGRAPHIC DEPARTING TONE MARK;Mn;232;NSM;;;;;N;;;;;
 302D;IDEOGRAPHIC ENTERING TONE MARK;Mn;222;NSM;;;;;N;;;;;
-302E;HANGUL SINGLE DOT TONE MARK;Mn;224;NSM;;;;;N;;;;;
-302F;HANGUL DOUBLE DOT TONE MARK;Mn;224;NSM;;;;;N;;;;;
+302E;HANGUL SINGLE DOT TONE MARK;Mc;224;L;;;;;N;;;;;
+302F;HANGUL DOUBLE DOT TONE MARK;Mc;224;L;;;;;N;;;;;
 3030;WAVY DASH;Pd;0;ON;;;;;N;;;;;
 3031;VERTICAL KANA REPEAT MARK;Lm;0;L;;;;;N;;;;;
 3032;VERTICAL KANA REPEAT WITH VOICED SOUND MARK;Lm;0;L;;;;;N;;;;;
@@ -11131,14 +11219,14 @@
 3245;CIRCLED IDEOGRAPH KINDERGARTEN;So;0;L;<circle> 5E7C;;;;N;;;;;
 3246;CIRCLED IDEOGRAPH SCHOOL;So;0;L;<circle> 6587;;;;N;;;;;
 3247;CIRCLED IDEOGRAPH KOTO;So;0;L;<circle> 7B8F;;;;N;;;;;
-3248;CIRCLED NUMBER TEN ON BLACK SQUARE;So;0;L;;;;;N;;;;;
-3249;CIRCLED NUMBER TWENTY ON BLACK SQUARE;So;0;L;;;;;N;;;;;
-324A;CIRCLED NUMBER THIRTY ON BLACK SQUARE;So;0;L;;;;;N;;;;;
-324B;CIRCLED NUMBER FORTY ON BLACK SQUARE;So;0;L;;;;;N;;;;;
-324C;CIRCLED NUMBER FIFTY ON BLACK SQUARE;So;0;L;;;;;N;;;;;
-324D;CIRCLED NUMBER SIXTY ON BLACK SQUARE;So;0;L;;;;;N;;;;;
-324E;CIRCLED NUMBER SEVENTY ON BLACK SQUARE;So;0;L;;;;;N;;;;;
-324F;CIRCLED NUMBER EIGHTY ON BLACK SQUARE;So;0;L;;;;;N;;;;;
+3248;CIRCLED NUMBER TEN ON BLACK SQUARE;No;0;L;;;;10;N;;;;;
+3249;CIRCLED NUMBER TWENTY ON BLACK SQUARE;No;0;L;;;;20;N;;;;;
+324A;CIRCLED NUMBER THIRTY ON BLACK SQUARE;No;0;L;;;;30;N;;;;;
+324B;CIRCLED NUMBER FORTY ON BLACK SQUARE;No;0;L;;;;40;N;;;;;
+324C;CIRCLED NUMBER FIFTY ON BLACK SQUARE;No;0;L;;;;50;N;;;;;
+324D;CIRCLED NUMBER SIXTY ON BLACK SQUARE;No;0;L;;;;60;N;;;;;
+324E;CIRCLED NUMBER SEVENTY ON BLACK SQUARE;No;0;L;;;;70;N;;;;;
+324F;CIRCLED NUMBER EIGHTY ON BLACK SQUARE;No;0;L;;;;80;N;;;;;
 3250;PARTNERSHIP SIGN;So;0;ON;<square> 0050 0054 0045;;;;N;;;;;
 3251;CIRCLED NUMBER TWENTY ONE;No;0;ON;<circle> 0032 0031;;;21;N;;;;;
 3252;CIRCLED NUMBER TWENTY TWO;No;0;ON;<circle> 0032 0032;;;22;N;;;;;
@@ -11637,7 +11725,7 @@
 4DFE;HEXAGRAM FOR AFTER COMPLETION;So;0;ON;;;;;N;;;;;
 4DFF;HEXAGRAM FOR BEFORE COMPLETION;So;0;ON;;;;;N;;;;;
 4E00;<CJK Ideograph, First>;Lo;0;L;;;;;N;;;;;
-9FCB;<CJK Ideograph, Last>;Lo;0;L;;;;;N;;;;;
+9FCC;<CJK Ideograph, Last>;Lo;0;L;;;;;N;;;;;
 A000;YI SYLLABLE IT;Lo;0;L;;;;;N;;;;;
 A001;YI SYLLABLE IX;Lo;0;L;;;;;N;;;;;
 A002;YI SYLLABLE I;Lo;0;L;;;;;N;;;;;
@@ -13258,6 +13346,14 @@
 A671;COMBINING CYRILLIC HUNDRED MILLIONS SIGN;Me;0;NSM;;;;;N;;;;;
 A672;COMBINING CYRILLIC THOUSAND MILLIONS SIGN;Me;0;NSM;;;;;N;;;;;
 A673;SLAVONIC ASTERISK;Po;0;ON;;;;;N;;;;;
+A674;COMBINING CYRILLIC LETTER UKRAINIAN IE;Mn;230;NSM;;;;;N;;;;;
+A675;COMBINING CYRILLIC LETTER I;Mn;230;NSM;;;;;N;;;;;
+A676;COMBINING CYRILLIC LETTER YI;Mn;230;NSM;;;;;N;;;;;
+A677;COMBINING CYRILLIC LETTER U;Mn;230;NSM;;;;;N;;;;;
+A678;COMBINING CYRILLIC LETTER HARD SIGN;Mn;230;NSM;;;;;N;;;;;
+A679;COMBINING CYRILLIC LETTER YERU;Mn;230;NSM;;;;;N;;;;;
+A67A;COMBINING CYRILLIC LETTER SOFT SIGN;Mn;230;NSM;;;;;N;;;;;
+A67B;COMBINING CYRILLIC LETTER OMEGA;Mn;230;NSM;;;;;N;;;;;
 A67C;COMBINING CYRILLIC KAVYKA;Mn;230;NSM;;;;;N;;;;;
 A67D;COMBINING CYRILLIC PAYEROK;Mn;230;NSM;;;;;N;;;;;
 A67E;CYRILLIC KAVYKA;Po;0;ON;;;;;N;;;;;
@@ -13286,6 +13382,7 @@
 A695;CYRILLIC SMALL LETTER HWE;Ll;0;L;;;;;N;;;A694;;A694
 A696;CYRILLIC CAPITAL LETTER SHWE;Lu;0;L;;;;;N;;;;A697;
 A697;CYRILLIC SMALL LETTER SHWE;Ll;0;L;;;;;N;;;A696;;A696
+A69F;COMBINING CYRILLIC LETTER IOTIFIED E;Mn;230;NSM;;;;;N;;;;;
 A6A0;BAMUM LETTER A;Lo;0;L;;;;;N;;;;;
 A6A1;BAMUM LETTER KA;Lo;0;L;;;;;N;;;;;
 A6A2;BAMUM LETTER U;Lo;0;L;;;;;N;;;;;
@@ -13519,6 +13616,8 @@
 A78E;LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT;Ll;0;L;;;;;N;;;;;
 A790;LATIN CAPITAL LETTER N WITH DESCENDER;Lu;0;L;;;;;N;;;;A791;
 A791;LATIN SMALL LETTER N WITH DESCENDER;Ll;0;L;;;;;N;;;A790;;A790
+A792;LATIN CAPITAL LETTER C WITH BAR;Lu;0;L;;;;;N;;;;A793;
+A793;LATIN SMALL LETTER C WITH BAR;Ll;0;L;;;;;N;;;A792;;A792
 A7A0;LATIN CAPITAL LETTER G WITH OBLIQUE STROKE;Lu;0;L;;;;;N;;;;A7A1;
 A7A1;LATIN SMALL LETTER G WITH OBLIQUE STROKE;Ll;0;L;;;;;N;;;A7A0;;A7A0
 A7A2;LATIN CAPITAL LETTER K WITH OBLIQUE STROKE;Lu;0;L;;;;;N;;;;A7A3;
@@ -13529,6 +13628,9 @@
 A7A7;LATIN SMALL LETTER R WITH OBLIQUE STROKE;Ll;0;L;;;;;N;;;A7A6;;A7A6
 A7A8;LATIN CAPITAL LETTER S WITH OBLIQUE STROKE;Lu;0;L;;;;;N;;;;A7A9;
 A7A9;LATIN SMALL LETTER S WITH OBLIQUE STROKE;Ll;0;L;;;;;N;;;A7A8;;A7A8
+A7AA;LATIN CAPITAL LETTER H WITH HOOK;Lu;0;L;;;;;N;;;;0266;
+A7F8;MODIFIER LETTER CAPITAL H WITH STROKE;Lm;0;L;<super> 0126;;;;N;;;;;
+A7F9;MODIFIER LETTER SMALL LIGATURE OE;Lm;0;L;<super> 0153;;;;N;;;;;
 A7FA;LATIN LETTER SMALL CAPITAL TURNED M;Ll;0;L;;;;;N;;;;;
 A7FB;LATIN EPIGRAPHIC LETTER REVERSED F;Lo;0;L;;;;;N;;;;;
 A7FC;LATIN EPIGRAPHIC LETTER REVERSED P;Lo;0;L;;;;;N;;;;;
@@ -14142,6 +14244,29 @@
 AADD;TAI VIET SYMBOL SAM;Lm;0;L;;;;;N;;;;;
 AADE;TAI VIET SYMBOL HO HOI;Po;0;L;;;;;N;;;;;
 AADF;TAI VIET SYMBOL KOI KOI;Po;0;L;;;;;N;;;;;
+AAE0;MEETEI MAYEK LETTER E;Lo;0;L;;;;;N;;;;;
+AAE1;MEETEI MAYEK LETTER O;Lo;0;L;;;;;N;;;;;
+AAE2;MEETEI MAYEK LETTER CHA;Lo;0;L;;;;;N;;;;;
+AAE3;MEETEI MAYEK LETTER NYA;Lo;0;L;;;;;N;;;;;
+AAE4;MEETEI MAYEK LETTER TTA;Lo;0;L;;;;;N;;;;;
+AAE5;MEETEI MAYEK LETTER TTHA;Lo;0;L;;;;;N;;;;;
+AAE6;MEETEI MAYEK LETTER DDA;Lo;0;L;;;;;N;;;;;
+AAE7;MEETEI MAYEK LETTER DDHA;Lo;0;L;;;;;N;;;;;
+AAE8;MEETEI MAYEK LETTER NNA;Lo;0;L;;;;;N;;;;;
+AAE9;MEETEI MAYEK LETTER SHA;Lo;0;L;;;;;N;;;;;
+AAEA;MEETEI MAYEK LETTER SSA;Lo;0;L;;;;;N;;;;;
+AAEB;MEETEI MAYEK VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+AAEC;MEETEI MAYEK VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+AAED;MEETEI MAYEK VOWEL SIGN AAI;Mn;0;NSM;;;;;N;;;;;
+AAEE;MEETEI MAYEK VOWEL SIGN AU;Mc;0;L;;;;;N;;;;;
+AAEF;MEETEI MAYEK VOWEL SIGN AAU;Mc;0;L;;;;;N;;;;;
+AAF0;MEETEI MAYEK CHEIKHAN;Po;0;L;;;;;N;;;;;
+AAF1;MEETEI MAYEK AHANG KHUDAM;Po;0;L;;;;;N;;;;;
+AAF2;MEETEI MAYEK ANJI;Lo;0;L;;;;;N;;;;;
+AAF3;MEETEI MAYEK SYLLABLE REPETITION MARK;Lm;0;L;;;;;N;;;;;
+AAF4;MEETEI MAYEK WORD REPETITION MARK;Lm;0;L;;;;;N;;;;;
+AAF5;MEETEI MAYEK VOWEL SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+AAF6;MEETEI MAYEK VIRAMA;Mn;9;NSM;;;;;N;;;;;
 AB01;ETHIOPIC SYLLABLE TTHU;Lo;0;L;;;;;N;;;;;
 AB02;ETHIOPIC SYLLABLE TTHI;Lo;0;L;;;;;N;;;;;
 AB03;ETHIOPIC SYLLABLE TTHAA;Lo;0;L;;;;;N;;;;;
@@ -14614,6 +14739,8 @@
 FA2B;CJK COMPATIBILITY IDEOGRAPH-FA2B;Lo;0;L;98FC;;;;N;;;;;
 FA2C;CJK COMPATIBILITY IDEOGRAPH-FA2C;Lo;0;L;9928;;;;N;;;;;
 FA2D;CJK COMPATIBILITY IDEOGRAPH-FA2D;Lo;0;L;9DB4;;;;N;;;;;
+FA2E;CJK COMPATIBILITY IDEOGRAPH-FA2E;Lo;0;L;90DE;;;;N;;;;;
+FA2F;CJK COMPATIBILITY IDEOGRAPH-FA2F;Lo;0;L;96B7;;;;N;;;;;
 FA30;CJK COMPATIBILITY IDEOGRAPH-FA30;Lo;0;L;4FAE;;;;N;;;;;
 FA31;CJK COMPATIBILITY IDEOGRAPH-FA31;Lo;0;L;50E7;;;;N;;;;;
 FA32;CJK COMPATIBILITY IDEOGRAPH-FA32;Lo;0;L;514D;;;;N;;;;;
@@ -16126,7 +16253,7 @@
 100FA;LINEAR B IDEOGRAM VESSEL B305;Lo;0;L;;;;;N;;;;;
 10100;AEGEAN WORD SEPARATOR LINE;Po;0;L;;;;;N;;;;;
 10101;AEGEAN WORD SEPARATOR DOT;Po;0;ON;;;;;N;;;;;
-10102;AEGEAN CHECK MARK;So;0;L;;;;;N;;;;;
+10102;AEGEAN CHECK MARK;Po;0;L;;;;;N;;;;;
 10107;AEGEAN NUMBER ONE;No;0;L;;;;1;N;;;;;
 10108;AEGEAN NUMBER TWO;No;0;L;;;;2;N;;;;;
 10109;AEGEAN NUMBER THREE;No;0;L;;;;3;N;;;;;
@@ -16845,6 +16972,64 @@
 10938;LYDIAN LETTER NN;Lo;0;R;;;;;N;;;;;
 10939;LYDIAN LETTER C;Lo;0;R;;;;;N;;;;;
 1093F;LYDIAN TRIANGULAR MARK;Po;0;R;;;;;N;;;;;
+10980;MEROITIC HIEROGLYPHIC LETTER A;Lo;0;R;;;;;N;;;;;
+10981;MEROITIC HIEROGLYPHIC LETTER E;Lo;0;R;;;;;N;;;;;
+10982;MEROITIC HIEROGLYPHIC LETTER I;Lo;0;R;;;;;N;;;;;
+10983;MEROITIC HIEROGLYPHIC LETTER O;Lo;0;R;;;;;N;;;;;
+10984;MEROITIC HIEROGLYPHIC LETTER YA;Lo;0;R;;;;;N;;;;;
+10985;MEROITIC HIEROGLYPHIC LETTER WA;Lo;0;R;;;;;N;;;;;
+10986;MEROITIC HIEROGLYPHIC LETTER BA;Lo;0;R;;;;;N;;;;;
+10987;MEROITIC HIEROGLYPHIC LETTER BA-2;Lo;0;R;;;;;N;;;;;
+10988;MEROITIC HIEROGLYPHIC LETTER PA;Lo;0;R;;;;;N;;;;;
+10989;MEROITIC HIEROGLYPHIC LETTER MA;Lo;0;R;;;;;N;;;;;
+1098A;MEROITIC HIEROGLYPHIC LETTER NA;Lo;0;R;;;;;N;;;;;
+1098B;MEROITIC HIEROGLYPHIC LETTER NA-2;Lo;0;R;;;;;N;;;;;
+1098C;MEROITIC HIEROGLYPHIC LETTER NE;Lo;0;R;;;;;N;;;;;
+1098D;MEROITIC HIEROGLYPHIC LETTER NE-2;Lo;0;R;;;;;N;;;;;
+1098E;MEROITIC HIEROGLYPHIC LETTER RA;Lo;0;R;;;;;N;;;;;
+1098F;MEROITIC HIEROGLYPHIC LETTER RA-2;Lo;0;R;;;;;N;;;;;
+10990;MEROITIC HIEROGLYPHIC LETTER LA;Lo;0;R;;;;;N;;;;;
+10991;MEROITIC HIEROGLYPHIC LETTER KHA;Lo;0;R;;;;;N;;;;;
+10992;MEROITIC HIEROGLYPHIC LETTER HHA;Lo;0;R;;;;;N;;;;;
+10993;MEROITIC HIEROGLYPHIC LETTER SA;Lo;0;R;;;;;N;;;;;
+10994;MEROITIC HIEROGLYPHIC LETTER SA-2;Lo;0;R;;;;;N;;;;;
+10995;MEROITIC HIEROGLYPHIC LETTER SE;Lo;0;R;;;;;N;;;;;
+10996;MEROITIC HIEROGLYPHIC LETTER KA;Lo;0;R;;;;;N;;;;;
+10997;MEROITIC HIEROGLYPHIC LETTER QA;Lo;0;R;;;;;N;;;;;
+10998;MEROITIC HIEROGLYPHIC LETTER TA;Lo;0;R;;;;;N;;;;;
+10999;MEROITIC HIEROGLYPHIC LETTER TA-2;Lo;0;R;;;;;N;;;;;
+1099A;MEROITIC HIEROGLYPHIC LETTER TE;Lo;0;R;;;;;N;;;;;
+1099B;MEROITIC HIEROGLYPHIC LETTER TE-2;Lo;0;R;;;;;N;;;;;
+1099C;MEROITIC HIEROGLYPHIC LETTER TO;Lo;0;R;;;;;N;;;;;
+1099D;MEROITIC HIEROGLYPHIC LETTER DA;Lo;0;R;;;;;N;;;;;
+1099E;MEROITIC HIEROGLYPHIC SYMBOL VIDJ;Lo;0;R;;;;;N;;;;;
+1099F;MEROITIC HIEROGLYPHIC SYMBOL VIDJ-2;Lo;0;R;;;;;N;;;;;
+109A0;MEROITIC CURSIVE LETTER A;Lo;0;R;;;;;N;;;;;
+109A1;MEROITIC CURSIVE LETTER E;Lo;0;R;;;;;N;;;;;
+109A2;MEROITIC CURSIVE LETTER I;Lo;0;R;;;;;N;;;;;
+109A3;MEROITIC CURSIVE LETTER O;Lo;0;R;;;;;N;;;;;
+109A4;MEROITIC CURSIVE LETTER YA;Lo;0;R;;;;;N;;;;;
+109A5;MEROITIC CURSIVE LETTER WA;Lo;0;R;;;;;N;;;;;
+109A6;MEROITIC CURSIVE LETTER BA;Lo;0;R;;;;;N;;;;;
+109A7;MEROITIC CURSIVE LETTER PA;Lo;0;R;;;;;N;;;;;
+109A8;MEROITIC CURSIVE LETTER MA;Lo;0;R;;;;;N;;;;;
+109A9;MEROITIC CURSIVE LETTER NA;Lo;0;R;;;;;N;;;;;
+109AA;MEROITIC CURSIVE LETTER NE;Lo;0;R;;;;;N;;;;;
+109AB;MEROITIC CURSIVE LETTER RA;Lo;0;R;;;;;N;;;;;
+109AC;MEROITIC CURSIVE LETTER LA;Lo;0;R;;;;;N;;;;;
+109AD;MEROITIC CURSIVE LETTER KHA;Lo;0;R;;;;;N;;;;;
+109AE;MEROITIC CURSIVE LETTER HHA;Lo;0;R;;;;;N;;;;;
+109AF;MEROITIC CURSIVE LETTER SA;Lo;0;R;;;;;N;;;;;
+109B0;MEROITIC CURSIVE LETTER ARCHAIC SA;Lo;0;R;;;;;N;;;;;
+109B1;MEROITIC CURSIVE LETTER SE;Lo;0;R;;;;;N;;;;;
+109B2;MEROITIC CURSIVE LETTER KA;Lo;0;R;;;;;N;;;;;
+109B3;MEROITIC CURSIVE LETTER QA;Lo;0;R;;;;;N;;;;;
+109B4;MEROITIC CURSIVE LETTER TA;Lo;0;R;;;;;N;;;;;
+109B5;MEROITIC CURSIVE LETTER TE;Lo;0;R;;;;;N;;;;;
+109B6;MEROITIC CURSIVE LETTER TO;Lo;0;R;;;;;N;;;;;
+109B7;MEROITIC CURSIVE LETTER DA;Lo;0;R;;;;;N;;;;;
+109BE;MEROITIC CURSIVE LOGOGRAM RMT;Lo;0;R;;;;;N;;;;;
+109BF;MEROITIC CURSIVE LOGOGRAM IMN;Lo;0;R;;;;;N;;;;;
 10A00;KHAROSHTHI LETTER A;Lo;0;R;;;;;N;;;;;
 10A01;KHAROSHTHI VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
 10A02;KHAROSHTHI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
@@ -17338,6 +17523,257 @@
 110BF;KAITHI DOUBLE SECTION MARK;Po;0;L;;;;;N;;;;;
 110C0;KAITHI DANDA;Po;0;L;;;;;N;;;;;
 110C1;KAITHI DOUBLE DANDA;Po;0;L;;;;;N;;;;;
+110D0;SORA SOMPENG LETTER SAH;Lo;0;L;;;;;N;;;;;
+110D1;SORA SOMPENG LETTER TAH;Lo;0;L;;;;;N;;;;;
+110D2;SORA SOMPENG LETTER BAH;Lo;0;L;;;;;N;;;;;
+110D3;SORA SOMPENG LETTER CAH;Lo;0;L;;;;;N;;;;;
+110D4;SORA SOMPENG LETTER DAH;Lo;0;L;;;;;N;;;;;
+110D5;SORA SOMPENG LETTER GAH;Lo;0;L;;;;;N;;;;;
+110D6;SORA SOMPENG LETTER MAH;Lo;0;L;;;;;N;;;;;
+110D7;SORA SOMPENG LETTER NGAH;Lo;0;L;;;;;N;;;;;
+110D8;SORA SOMPENG LETTER LAH;Lo;0;L;;;;;N;;;;;
+110D9;SORA SOMPENG LETTER NAH;Lo;0;L;;;;;N;;;;;
+110DA;SORA SOMPENG LETTER VAH;Lo;0;L;;;;;N;;;;;
+110DB;SORA SOMPENG LETTER PAH;Lo;0;L;;;;;N;;;;;
+110DC;SORA SOMPENG LETTER YAH;Lo;0;L;;;;;N;;;;;
+110DD;SORA SOMPENG LETTER RAH;Lo;0;L;;;;;N;;;;;
+110DE;SORA SOMPENG LETTER HAH;Lo;0;L;;;;;N;;;;;
+110DF;SORA SOMPENG LETTER KAH;Lo;0;L;;;;;N;;;;;
+110E0;SORA SOMPENG LETTER JAH;Lo;0;L;;;;;N;;;;;
+110E1;SORA SOMPENG LETTER NYAH;Lo;0;L;;;;;N;;;;;
+110E2;SORA SOMPENG LETTER AH;Lo;0;L;;;;;N;;;;;
+110E3;SORA SOMPENG LETTER EEH;Lo;0;L;;;;;N;;;;;
+110E4;SORA SOMPENG LETTER IH;Lo;0;L;;;;;N;;;;;
+110E5;SORA SOMPENG LETTER UH;Lo;0;L;;;;;N;;;;;
+110E6;SORA SOMPENG LETTER OH;Lo;0;L;;;;;N;;;;;
+110E7;SORA SOMPENG LETTER EH;Lo;0;L;;;;;N;;;;;
+110E8;SORA SOMPENG LETTER MAE;Lo;0;L;;;;;N;;;;;
+110F0;SORA SOMPENG DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+110F1;SORA SOMPENG DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+110F2;SORA SOMPENG DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+110F3;SORA SOMPENG DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+110F4;SORA SOMPENG DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+110F5;SORA SOMPENG DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+110F6;SORA SOMPENG DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+110F7;SORA SOMPENG DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+110F8;SORA SOMPENG DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+110F9;SORA SOMPENG DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+11100;CHAKMA SIGN CANDRABINDU;Mn;230;NSM;;;;;N;;;;;
+11101;CHAKMA SIGN ANUSVARA;Mn;230;NSM;;;;;N;;;;;
+11102;CHAKMA SIGN VISARGA;Mn;230;NSM;;;;;N;;;;;
+11103;CHAKMA LETTER AA;Lo;0;L;;;;;N;;;;;
+11104;CHAKMA LETTER I;Lo;0;L;;;;;N;;;;;
+11105;CHAKMA LETTER U;Lo;0;L;;;;;N;;;;;
+11106;CHAKMA LETTER E;Lo;0;L;;;;;N;;;;;
+11107;CHAKMA LETTER KAA;Lo;0;L;;;;;N;;;;;
+11108;CHAKMA LETTER KHAA;Lo;0;L;;;;;N;;;;;
+11109;CHAKMA LETTER GAA;Lo;0;L;;;;;N;;;;;
+1110A;CHAKMA LETTER GHAA;Lo;0;L;;;;;N;;;;;
+1110B;CHAKMA LETTER NGAA;Lo;0;L;;;;;N;;;;;
+1110C;CHAKMA LETTER CAA;Lo;0;L;;;;;N;;;;;
+1110D;CHAKMA LETTER CHAA;Lo;0;L;;;;;N;;;;;
+1110E;CHAKMA LETTER JAA;Lo;0;L;;;;;N;;;;;
+1110F;CHAKMA LETTER JHAA;Lo;0;L;;;;;N;;;;;
+11110;CHAKMA LETTER NYAA;Lo;0;L;;;;;N;;;;;
+11111;CHAKMA LETTER TTAA;Lo;0;L;;;;;N;;;;;
+11112;CHAKMA LETTER TTHAA;Lo;0;L;;;;;N;;;;;
+11113;CHAKMA LETTER DDAA;Lo;0;L;;;;;N;;;;;
+11114;CHAKMA LETTER DDHAA;Lo;0;L;;;;;N;;;;;
+11115;CHAKMA LETTER NNAA;Lo;0;L;;;;;N;;;;;
+11116;CHAKMA LETTER TAA;Lo;0;L;;;;;N;;;;;
+11117;CHAKMA LETTER THAA;Lo;0;L;;;;;N;;;;;
+11118;CHAKMA LETTER DAA;Lo;0;L;;;;;N;;;;;
+11119;CHAKMA LETTER DHAA;Lo;0;L;;;;;N;;;;;
+1111A;CHAKMA LETTER NAA;Lo;0;L;;;;;N;;;;;
+1111B;CHAKMA LETTER PAA;Lo;0;L;;;;;N;;;;;
+1111C;CHAKMA LETTER PHAA;Lo;0;L;;;;;N;;;;;
+1111D;CHAKMA LETTER BAA;Lo;0;L;;;;;N;;;;;
+1111E;CHAKMA LETTER BHAA;Lo;0;L;;;;;N;;;;;
+1111F;CHAKMA LETTER MAA;Lo;0;L;;;;;N;;;;;
+11120;CHAKMA LETTER YYAA;Lo;0;L;;;;;N;;;;;
+11121;CHAKMA LETTER YAA;Lo;0;L;;;;;N;;;;;
+11122;CHAKMA LETTER RAA;Lo;0;L;;;;;N;;;;;
+11123;CHAKMA LETTER LAA;Lo;0;L;;;;;N;;;;;
+11124;CHAKMA LETTER WAA;Lo;0;L;;;;;N;;;;;
+11125;CHAKMA LETTER SAA;Lo;0;L;;;;;N;;;;;
+11126;CHAKMA LETTER HAA;Lo;0;L;;;;;N;;;;;
+11127;CHAKMA VOWEL SIGN A;Mn;0;NSM;;;;;N;;;;;
+11128;CHAKMA VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+11129;CHAKMA VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;
+1112A;CHAKMA VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+1112B;CHAKMA VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+1112C;CHAKMA VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+1112D;CHAKMA VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;
+1112E;CHAKMA VOWEL SIGN O;Mn;0;NSM;11131 11127;;;;N;;;;;
+1112F;CHAKMA VOWEL SIGN AU;Mn;0;NSM;11132 11127;;;;N;;;;;
+11130;CHAKMA VOWEL SIGN OI;Mn;0;NSM;;;;;N;;;;;
+11131;CHAKMA O MARK;Mn;0;NSM;;;;;N;;;;;
+11132;CHAKMA AU MARK;Mn;0;NSM;;;;;N;;;;;
+11133;CHAKMA VIRAMA;Mn;9;NSM;;;;;N;;;;;
+11134;CHAKMA MAAYYAA;Mn;9;NSM;;;;;N;;;;;
+11136;CHAKMA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+11137;CHAKMA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+11138;CHAKMA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+11139;CHAKMA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+1113A;CHAKMA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+1113B;CHAKMA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+1113C;CHAKMA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+1113D;CHAKMA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+1113E;CHAKMA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+1113F;CHAKMA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+11140;CHAKMA SECTION MARK;Po;0;L;;;;;N;;;;;
+11141;CHAKMA DANDA;Po;0;L;;;;;N;;;;;
+11142;CHAKMA DOUBLE DANDA;Po;0;L;;;;;N;;;;;
+11143;CHAKMA QUESTION MARK;Po;0;L;;;;;N;;;;;
+11180;SHARADA SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
+11181;SHARADA SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+11182;SHARADA SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+11183;SHARADA LETTER A;Lo;0;L;;;;;N;;;;;
+11184;SHARADA LETTER AA;Lo;0;L;;;;;N;;;;;
+11185;SHARADA LETTER I;Lo;0;L;;;;;N;;;;;
+11186;SHARADA LETTER II;Lo;0;L;;;;;N;;;;;
+11187;SHARADA LETTER U;Lo;0;L;;;;;N;;;;;
+11188;SHARADA LETTER UU;Lo;0;L;;;;;N;;;;;
+11189;SHARADA LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+1118A;SHARADA LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+1118B;SHARADA LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+1118C;SHARADA LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+1118D;SHARADA LETTER E;Lo;0;L;;;;;N;;;;;
+1118E;SHARADA LETTER AI;Lo;0;L;;;;;N;;;;;
+1118F;SHARADA LETTER O;Lo;0;L;;;;;N;;;;;
+11190;SHARADA LETTER AU;Lo;0;L;;;;;N;;;;;
+11191;SHARADA LETTER KA;Lo;0;L;;;;;N;;;;;
+11192;SHARADA LETTER KHA;Lo;0;L;;;;;N;;;;;
+11193;SHARADA LETTER GA;Lo;0;L;;;;;N;;;;;
+11194;SHARADA LETTER GHA;Lo;0;L;;;;;N;;;;;
+11195;SHARADA LETTER NGA;Lo;0;L;;;;;N;;;;;
+11196;SHARADA LETTER CA;Lo;0;L;;;;;N;;;;;
+11197;SHARADA LETTER CHA;Lo;0;L;;;;;N;;;;;
+11198;SHARADA LETTER JA;Lo;0;L;;;;;N;;;;;
+11199;SHARADA LETTER JHA;Lo;0;L;;;;;N;;;;;
+1119A;SHARADA LETTER NYA;Lo;0;L;;;;;N;;;;;
+1119B;SHARADA LETTER TTA;Lo;0;L;;;;;N;;;;;
+1119C;SHARADA LETTER TTHA;Lo;0;L;;;;;N;;;;;
+1119D;SHARADA LETTER DDA;Lo;0;L;;;;;N;;;;;
+1119E;SHARADA LETTER DDHA;Lo;0;L;;;;;N;;;;;
+1119F;SHARADA LETTER NNA;Lo;0;L;;;;;N;;;;;
+111A0;SHARADA LETTER TA;Lo;0;L;;;;;N;;;;;
+111A1;SHARADA LETTER THA;Lo;0;L;;;;;N;;;;;
+111A2;SHARADA LETTER DA;Lo;0;L;;;;;N;;;;;
+111A3;SHARADA LETTER DHA;Lo;0;L;;;;;N;;;;;
+111A4;SHARADA LETTER NA;Lo;0;L;;;;;N;;;;;
+111A5;SHARADA LETTER PA;Lo;0;L;;;;;N;;;;;
+111A6;SHARADA LETTER PHA;Lo;0;L;;;;;N;;;;;
+111A7;SHARADA LETTER BA;Lo;0;L;;;;;N;;;;;
+111A8;SHARADA LETTER BHA;Lo;0;L;;;;;N;;;;;
+111A9;SHARADA LETTER MA;Lo;0;L;;;;;N;;;;;
+111AA;SHARADA LETTER YA;Lo;0;L;;;;;N;;;;;
+111AB;SHARADA LETTER RA;Lo;0;L;;;;;N;;;;;
+111AC;SHARADA LETTER LA;Lo;0;L;;;;;N;;;;;
+111AD;SHARADA LETTER LLA;Lo;0;L;;;;;N;;;;;
+111AE;SHARADA LETTER VA;Lo;0;L;;;;;N;;;;;
+111AF;SHARADA LETTER SHA;Lo;0;L;;;;;N;;;;;
+111B0;SHARADA LETTER SSA;Lo;0;L;;;;;N;;;;;
+111B1;SHARADA LETTER SA;Lo;0;L;;;;;N;;;;;
+111B2;SHARADA LETTER HA;Lo;0;L;;;;;N;;;;;
+111B3;SHARADA VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+111B4;SHARADA VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+111B5;SHARADA VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+111B6;SHARADA VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+111B7;SHARADA VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+111B8;SHARADA VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
+111B9;SHARADA VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;;
+111BA;SHARADA VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;
+111BB;SHARADA VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;;
+111BC;SHARADA VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
+111BD;SHARADA VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;
+111BE;SHARADA VOWEL SIGN O;Mn;0;NSM;;;;;N;;;;;
+111BF;SHARADA VOWEL SIGN AU;Mc;0;L;;;;;N;;;;;
+111C0;SHARADA SIGN VIRAMA;Mc;9;L;;;;;N;;;;;
+111C1;SHARADA SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;;
+111C2;SHARADA SIGN JIHVAMULIYA;Lo;0;L;;;;;N;;;;;
+111C3;SHARADA SIGN UPADHMANIYA;Lo;0;L;;;;;N;;;;;
+111C4;SHARADA OM;Lo;0;L;;;;;N;;;;;
+111C5;SHARADA DANDA;Po;0;L;;;;;N;;;;;
+111C6;SHARADA DOUBLE DANDA;Po;0;L;;;;;N;;;;;
+111C7;SHARADA ABBREVIATION SIGN;Po;0;L;;;;;N;;;;;
+111C8;SHARADA SEPARATOR;Po;0;L;;;;;N;;;;;
+111D0;SHARADA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+111D1;SHARADA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+111D2;SHARADA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+111D3;SHARADA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+111D4;SHARADA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+111D5;SHARADA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+111D6;SHARADA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+111D7;SHARADA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+111D8;SHARADA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+111D9;SHARADA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+11680;TAKRI LETTER A;Lo;0;L;;;;;N;;;;;
+11681;TAKRI LETTER AA;Lo;0;L;;;;;N;;;;;
+11682;TAKRI LETTER I;Lo;0;L;;;;;N;;;;;
+11683;TAKRI LETTER II;Lo;0;L;;;;;N;;;;;
+11684;TAKRI LETTER U;Lo;0;L;;;;;N;;;;;
+11685;TAKRI LETTER UU;Lo;0;L;;;;;N;;;;;
+11686;TAKRI LETTER E;Lo;0;L;;;;;N;;;;;
+11687;TAKRI LETTER AI;Lo;0;L;;;;;N;;;;;
+11688;TAKRI LETTER O;Lo;0;L;;;;;N;;;;;
+11689;TAKRI LETTER AU;Lo;0;L;;;;;N;;;;;
+1168A;TAKRI LETTER KA;Lo;0;L;;;;;N;;;;;
+1168B;TAKRI LETTER KHA;Lo;0;L;;;;;N;;;;;
+1168C;TAKRI LETTER GA;Lo;0;L;;;;;N;;;;;
+1168D;TAKRI LETTER GHA;Lo;0;L;;;;;N;;;;;
+1168E;TAKRI LETTER NGA;Lo;0;L;;;;;N;;;;;
+1168F;TAKRI LETTER CA;Lo;0;L;;;;;N;;;;;
+11690;TAKRI LETTER CHA;Lo;0;L;;;;;N;;;;;
+11691;TAKRI LETTER JA;Lo;0;L;;;;;N;;;;;
+11692;TAKRI LETTER JHA;Lo;0;L;;;;;N;;;;;
+11693;TAKRI LETTER NYA;Lo;0;L;;;;;N;;;;;
+11694;TAKRI LETTER TTA;Lo;0;L;;;;;N;;;;;
+11695;TAKRI LETTER TTHA;Lo;0;L;;;;;N;;;;;
+11696;TAKRI LETTER DDA;Lo;0;L;;;;;N;;;;;
+11697;TAKRI LETTER DDHA;Lo;0;L;;;;;N;;;;;
+11698;TAKRI LETTER NNA;Lo;0;L;;;;;N;;;;;
+11699;TAKRI LETTER TA;Lo;0;L;;;;;N;;;;;
+1169A;TAKRI LETTER THA;Lo;0;L;;;;;N;;;;;
+1169B;TAKRI LETTER DA;Lo;0;L;;;;;N;;;;;
+1169C;TAKRI LETTER DHA;Lo;0;L;;;;;N;;;;;
+1169D;TAKRI LETTER NA;Lo;0;L;;;;;N;;;;;
+1169E;TAKRI LETTER PA;Lo;0;L;;;;;N;;;;;
+1169F;TAKRI LETTER PHA;Lo;0;L;;;;;N;;;;;
+116A0;TAKRI LETTER BA;Lo;0;L;;;;;N;;;;;
+116A1;TAKRI LETTER BHA;Lo;0;L;;;;;N;;;;;
+116A2;TAKRI LETTER MA;Lo;0;L;;;;;N;;;;;
+116A3;TAKRI LETTER YA;Lo;0;L;;;;;N;;;;;
+116A4;TAKRI LETTER RA;Lo;0;L;;;;;N;;;;;
+116A5;TAKRI LETTER LA;Lo;0;L;;;;;N;;;;;
+116A6;TAKRI LETTER VA;Lo;0;L;;;;;N;;;;;
+116A7;TAKRI LETTER SHA;Lo;0;L;;;;;N;;;;;
+116A8;TAKRI LETTER SA;Lo;0;L;;;;;N;;;;;
+116A9;TAKRI LETTER HA;Lo;0;L;;;;;N;;;;;
+116AA;TAKRI LETTER RRA;Lo;0;L;;;;;N;;;;;
+116AB;TAKRI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+116AC;TAKRI SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+116AD;TAKRI VOWEL SIGN AA;Mn;0;NSM;;;;;N;;;;;
+116AE;TAKRI VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+116AF;TAKRI VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+116B0;TAKRI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+116B1;TAKRI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+116B2;TAKRI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
+116B3;TAKRI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;
+116B4;TAKRI VOWEL SIGN O;Mn;0;NSM;;;;;N;;;;;
+116B5;TAKRI VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;;
+116B6;TAKRI SIGN VIRAMA;Mc;9;L;;;;;N;;;;;
+116B7;TAKRI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
+116C0;TAKRI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+116C1;TAKRI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+116C2;TAKRI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+116C3;TAKRI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+116C4;TAKRI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+116C5;TAKRI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+116C6;TAKRI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+116C7;TAKRI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+116C8;TAKRI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+116C9;TAKRI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
 12000;CUNEIFORM SIGN A;Lo;0;L;;;;;N;;;;;
 12001;CUNEIFORM SIGN A TIMES A;Lo;0;L;;;;;N;;;;;
 12002;CUNEIFORM SIGN A TIMES BAD;Lo;0;L;;;;;N;;;;;
@@ -19960,6 +20396,139 @@
 16A36;BAMUM LETTER PHASE-F KPA;Lo;0;L;;;;;N;;;;;
 16A37;BAMUM LETTER PHASE-F SAMBA;Lo;0;L;;;;;N;;;;;
 16A38;BAMUM LETTER PHASE-F VUEQ;Lo;0;L;;;;;N;;;;;
+16F00;MIAO LETTER PA;Lo;0;L;;;;;N;;;;;
+16F01;MIAO LETTER BA;Lo;0;L;;;;;N;;;;;
+16F02;MIAO LETTER YI PA;Lo;0;L;;;;;N;;;;;
+16F03;MIAO LETTER PLA;Lo;0;L;;;;;N;;;;;
+16F04;MIAO LETTER MA;Lo;0;L;;;;;N;;;;;
+16F05;MIAO LETTER MHA;Lo;0;L;;;;;N;;;;;
+16F06;MIAO LETTER ARCHAIC MA;Lo;0;L;;;;;N;;;;;
+16F07;MIAO LETTER FA;Lo;0;L;;;;;N;;;;;
+16F08;MIAO LETTER VA;Lo;0;L;;;;;N;;;;;
+16F09;MIAO LETTER VFA;Lo;0;L;;;;;N;;;;;
+16F0A;MIAO LETTER TA;Lo;0;L;;;;;N;;;;;
+16F0B;MIAO LETTER DA;Lo;0;L;;;;;N;;;;;
+16F0C;MIAO LETTER YI TTA;Lo;0;L;;;;;N;;;;;
+16F0D;MIAO LETTER YI TA;Lo;0;L;;;;;N;;;;;
+16F0E;MIAO LETTER TTA;Lo;0;L;;;;;N;;;;;
+16F0F;MIAO LETTER DDA;Lo;0;L;;;;;N;;;;;
+16F10;MIAO LETTER NA;Lo;0;L;;;;;N;;;;;
+16F11;MIAO LETTER NHA;Lo;0;L;;;;;N;;;;;
+16F12;MIAO LETTER YI NNA;Lo;0;L;;;;;N;;;;;
+16F13;MIAO LETTER ARCHAIC NA;Lo;0;L;;;;;N;;;;;
+16F14;MIAO LETTER NNA;Lo;0;L;;;;;N;;;;;
+16F15;MIAO LETTER NNHA;Lo;0;L;;;;;N;;;;;
+16F16;MIAO LETTER LA;Lo;0;L;;;;;N;;;;;
+16F17;MIAO LETTER LYA;Lo;0;L;;;;;N;;;;;
+16F18;MIAO LETTER LHA;Lo;0;L;;;;;N;;;;;
+16F19;MIAO LETTER LHYA;Lo;0;L;;;;;N;;;;;
+16F1A;MIAO LETTER TLHA;Lo;0;L;;;;;N;;;;;
+16F1B;MIAO LETTER DLHA;Lo;0;L;;;;;N;;;;;
+16F1C;MIAO LETTER TLHYA;Lo;0;L;;;;;N;;;;;
+16F1D;MIAO LETTER DLHYA;Lo;0;L;;;;;N;;;;;
+16F1E;MIAO LETTER KA;Lo;0;L;;;;;N;;;;;
+16F1F;MIAO LETTER GA;Lo;0;L;;;;;N;;;;;
+16F20;MIAO LETTER YI KA;Lo;0;L;;;;;N;;;;;
+16F21;MIAO LETTER QA;Lo;0;L;;;;;N;;;;;
+16F22;MIAO LETTER QGA;Lo;0;L;;;;;N;;;;;
+16F23;MIAO LETTER NGA;Lo;0;L;;;;;N;;;;;
+16F24;MIAO LETTER NGHA;Lo;0;L;;;;;N;;;;;
+16F25;MIAO LETTER ARCHAIC NGA;Lo;0;L;;;;;N;;;;;
+16F26;MIAO LETTER HA;Lo;0;L;;;;;N;;;;;
+16F27;MIAO LETTER XA;Lo;0;L;;;;;N;;;;;
+16F28;MIAO LETTER GHA;Lo;0;L;;;;;N;;;;;
+16F29;MIAO LETTER GHHA;Lo;0;L;;;;;N;;;;;
+16F2A;MIAO LETTER TSSA;Lo;0;L;;;;;N;;;;;
+16F2B;MIAO LETTER DZZA;Lo;0;L;;;;;N;;;;;
+16F2C;MIAO LETTER NYA;Lo;0;L;;;;;N;;;;;
+16F2D;MIAO LETTER NYHA;Lo;0;L;;;;;N;;;;;
+16F2E;MIAO LETTER TSHA;Lo;0;L;;;;;N;;;;;
+16F2F;MIAO LETTER DZHA;Lo;0;L;;;;;N;;;;;
+16F30;MIAO LETTER YI TSHA;Lo;0;L;;;;;N;;;;;
+16F31;MIAO LETTER YI DZHA;Lo;0;L;;;;;N;;;;;
+16F32;MIAO LETTER REFORMED TSHA;Lo;0;L;;;;;N;;;;;
+16F33;MIAO LETTER SHA;Lo;0;L;;;;;N;;;;;
+16F34;MIAO LETTER SSA;Lo;0;L;;;;;N;;;;;
+16F35;MIAO LETTER ZHA;Lo;0;L;;;;;N;;;;;
+16F36;MIAO LETTER ZSHA;Lo;0;L;;;;;N;;;;;
+16F37;MIAO LETTER TSA;Lo;0;L;;;;;N;;;;;
+16F38;MIAO LETTER DZA;Lo;0;L;;;;;N;;;;;
+16F39;MIAO LETTER YI TSA;Lo;0;L;;;;;N;;;;;
+16F3A;MIAO LETTER SA;Lo;0;L;;;;;N;;;;;
+16F3B;MIAO LETTER ZA;Lo;0;L;;;;;N;;;;;
+16F3C;MIAO LETTER ZSA;Lo;0;L;;;;;N;;;;;
+16F3D;MIAO LETTER ZZA;Lo;0;L;;;;;N;;;;;
+16F3E;MIAO LETTER ZZSA;Lo;0;L;;;;;N;;;;;
+16F3F;MIAO LETTER ARCHAIC ZZA;Lo;0;L;;;;;N;;;;;
+16F40;MIAO LETTER ZZYA;Lo;0;L;;;;;N;;;;;
+16F41;MIAO LETTER ZZSYA;Lo;0;L;;;;;N;;;;;
+16F42;MIAO LETTER WA;Lo;0;L;;;;;N;;;;;
+16F43;MIAO LETTER AH;Lo;0;L;;;;;N;;;;;
+16F44;MIAO LETTER HHA;Lo;0;L;;;;;N;;;;;
+16F50;MIAO LETTER NASALIZATION;Lo;0;L;;;;;N;;;;;
+16F51;MIAO SIGN ASPIRATION;Mc;0;L;;;;;N;;;;;
+16F52;MIAO SIGN REFORMED VOICING;Mc;0;L;;;;;N;;;;;
+16F53;MIAO SIGN REFORMED ASPIRATION;Mc;0;L;;;;;N;;;;;
+16F54;MIAO VOWEL SIGN A;Mc;0;L;;;;;N;;;;;
+16F55;MIAO VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+16F56;MIAO VOWEL SIGN AHH;Mc;0;L;;;;;N;;;;;
+16F57;MIAO VOWEL SIGN AN;Mc;0;L;;;;;N;;;;;
+16F58;MIAO VOWEL SIGN ANG;Mc;0;L;;;;;N;;;;;
+16F59;MIAO VOWEL SIGN O;Mc;0;L;;;;;N;;;;;
+16F5A;MIAO VOWEL SIGN OO;Mc;0;L;;;;;N;;;;;
+16F5B;MIAO VOWEL SIGN WO;Mc;0;L;;;;;N;;;;;
+16F5C;MIAO VOWEL SIGN W;Mc;0;L;;;;;N;;;;;
+16F5D;MIAO VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+16F5E;MIAO VOWEL SIGN EN;Mc;0;L;;;;;N;;;;;
+16F5F;MIAO VOWEL SIGN ENG;Mc;0;L;;;;;N;;;;;
+16F60;MIAO VOWEL SIGN OEY;Mc;0;L;;;;;N;;;;;
+16F61;MIAO VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+16F62;MIAO VOWEL SIGN IA;Mc;0;L;;;;;N;;;;;
+16F63;MIAO VOWEL SIGN IAN;Mc;0;L;;;;;N;;;;;
+16F64;MIAO VOWEL SIGN IANG;Mc;0;L;;;;;N;;;;;
+16F65;MIAO VOWEL SIGN IO;Mc;0;L;;;;;N;;;;;
+16F66;MIAO VOWEL SIGN IE;Mc;0;L;;;;;N;;;;;
+16F67;MIAO VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+16F68;MIAO VOWEL SIGN IU;Mc;0;L;;;;;N;;;;;
+16F69;MIAO VOWEL SIGN ING;Mc;0;L;;;;;N;;;;;
+16F6A;MIAO VOWEL SIGN U;Mc;0;L;;;;;N;;;;;
+16F6B;MIAO VOWEL SIGN UA;Mc;0;L;;;;;N;;;;;
+16F6C;MIAO VOWEL SIGN UAN;Mc;0;L;;;;;N;;;;;
+16F6D;MIAO VOWEL SIGN UANG;Mc;0;L;;;;;N;;;;;
+16F6E;MIAO VOWEL SIGN UU;Mc;0;L;;;;;N;;;;;
+16F6F;MIAO VOWEL SIGN UEI;Mc;0;L;;;;;N;;;;;
+16F70;MIAO VOWEL SIGN UNG;Mc;0;L;;;;;N;;;;;
+16F71;MIAO VOWEL SIGN Y;Mc;0;L;;;;;N;;;;;
+16F72;MIAO VOWEL SIGN YI;Mc;0;L;;;;;N;;;;;
+16F73;MIAO VOWEL SIGN AE;Mc;0;L;;;;;N;;;;;
+16F74;MIAO VOWEL SIGN AEE;Mc;0;L;;;;;N;;;;;
+16F75;MIAO VOWEL SIGN ERR;Mc;0;L;;;;;N;;;;;
+16F76;MIAO VOWEL SIGN ROUNDED ERR;Mc;0;L;;;;;N;;;;;
+16F77;MIAO VOWEL SIGN ER;Mc;0;L;;;;;N;;;;;
+16F78;MIAO VOWEL SIGN ROUNDED ER;Mc;0;L;;;;;N;;;;;
+16F79;MIAO VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;
+16F7A;MIAO VOWEL SIGN EI;Mc;0;L;;;;;N;;;;;
+16F7B;MIAO VOWEL SIGN AU;Mc;0;L;;;;;N;;;;;
+16F7C;MIAO VOWEL SIGN OU;Mc;0;L;;;;;N;;;;;
+16F7D;MIAO VOWEL SIGN N;Mc;0;L;;;;;N;;;;;
+16F7E;MIAO VOWEL SIGN NG;Mc;0;L;;;;;N;;;;;
+16F8F;MIAO TONE RIGHT;Mn;0;NSM;;;;;N;;;;;
+16F90;MIAO TONE TOP RIGHT;Mn;0;NSM;;;;;N;;;;;
+16F91;MIAO TONE ABOVE;Mn;0;NSM;;;;;N;;;;;
+16F92;MIAO TONE BELOW;Mn;0;NSM;;;;;N;;;;;
+16F93;MIAO LETTER TONE-2;Lm;0;L;;;;;N;;;;;
+16F94;MIAO LETTER TONE-3;Lm;0;L;;;;;N;;;;;
+16F95;MIAO LETTER TONE-4;Lm;0;L;;;;;N;;;;;
+16F96;MIAO LETTER TONE-5;Lm;0;L;;;;;N;;;;;
+16F97;MIAO LETTER TONE-6;Lm;0;L;;;;;N;;;;;
+16F98;MIAO LETTER TONE-7;Lm;0;L;;;;;N;;;;;
+16F99;MIAO LETTER TONE-8;Lm;0;L;;;;;N;;;;;
+16F9A;MIAO LETTER REFORMED TONE-1;Lm;0;L;;;;;N;;;;;
+16F9B;MIAO LETTER REFORMED TONE-2;Lm;0;L;;;;;N;;;;;
+16F9C;MIAO LETTER REFORMED TONE-4;Lm;0;L;;;;;N;;;;;
+16F9D;MIAO LETTER REFORMED TONE-5;Lm;0;L;;;;;N;;;;;
+16F9E;MIAO LETTER REFORMED TONE-6;Lm;0;L;;;;;N;;;;;
+16F9F;MIAO LETTER REFORMED TONE-8;Lm;0;L;;;;;N;;;;;
 1B000;KATAKANA LETTER ARCHAIC E;Lo;0;L;;;;;N;;;;;
 1B001;HIRAGANA LETTER ARCHAIC YE;Lo;0;L;;;;;N;;;;;
 1D000;BYZANTINE MUSICAL SYMBOL PSILI;So;0;L;;;;;N;;;;;
@@ -21599,6 +22168,149 @@
 1D7FD;MATHEMATICAL MONOSPACE DIGIT SEVEN;Nd;0;EN;<font> 0037;7;7;7;N;;;;;
 1D7FE;MATHEMATICAL MONOSPACE DIGIT EIGHT;Nd;0;EN;<font> 0038;8;8;8;N;;;;;
 1D7FF;MATHEMATICAL MONOSPACE DIGIT NINE;Nd;0;EN;<font> 0039;9;9;9;N;;;;;
+1EE00;ARABIC MATHEMATICAL ALEF;Lo;0;AL;<font> 0627;;;;N;;;;;
+1EE01;ARABIC MATHEMATICAL BEH;Lo;0;AL;<font> 0628;;;;N;;;;;
+1EE02;ARABIC MATHEMATICAL JEEM;Lo;0;AL;<font> 062C;;;;N;;;;;
+1EE03;ARABIC MATHEMATICAL DAL;Lo;0;AL;<font> 062F;;;;N;;;;;
+1EE05;ARABIC MATHEMATICAL WAW;Lo;0;AL;<font> 0648;;;;N;;;;;
+1EE06;ARABIC MATHEMATICAL ZAIN;Lo;0;AL;<font> 0632;;;;N;;;;;
+1EE07;ARABIC MATHEMATICAL HAH;Lo;0;AL;<font> 062D;;;;N;;;;;
+1EE08;ARABIC MATHEMATICAL TAH;Lo;0;AL;<font> 0637;;;;N;;;;;
+1EE09;ARABIC MATHEMATICAL YEH;Lo;0;AL;<font> 064A;;;;N;;;;;
+1EE0A;ARABIC MATHEMATICAL KAF;Lo;0;AL;<font> 0643;;;;N;;;;;
+1EE0B;ARABIC MATHEMATICAL LAM;Lo;0;AL;<font> 0644;;;;N;;;;;
+1EE0C;ARABIC MATHEMATICAL MEEM;Lo;0;AL;<font> 0645;;;;N;;;;;
+1EE0D;ARABIC MATHEMATICAL NOON;Lo;0;AL;<font> 0646;;;;N;;;;;
+1EE0E;ARABIC MATHEMATICAL SEEN;Lo;0;AL;<font> 0633;;;;N;;;;;
+1EE0F;ARABIC MATHEMATICAL AIN;Lo;0;AL;<font> 0639;;;;N;;;;;
+1EE10;ARABIC MATHEMATICAL FEH;Lo;0;AL;<font> 0641;;;;N;;;;;
+1EE11;ARABIC MATHEMATICAL SAD;Lo;0;AL;<font> 0635;;;;N;;;;;
+1EE12;ARABIC MATHEMATICAL QAF;Lo;0;AL;<font> 0642;;;;N;;;;;
+1EE13;ARABIC MATHEMATICAL REH;Lo;0;AL;<font> 0631;;;;N;;;;;
+1EE14;ARABIC MATHEMATICAL SHEEN;Lo;0;AL;<font> 0634;;;;N;;;;;
+1EE15;ARABIC MATHEMATICAL TEH;Lo;0;AL;<font> 062A;;;;N;;;;;
+1EE16;ARABIC MATHEMATICAL THEH;Lo;0;AL;<font> 062B;;;;N;;;;;
+1EE17;ARABIC MATHEMATICAL KHAH;Lo;0;AL;<font> 062E;;;;N;;;;;
+1EE18;ARABIC MATHEMATICAL THAL;Lo;0;AL;<font> 0630;;;;N;;;;;
+1EE19;ARABIC MATHEMATICAL DAD;Lo;0;AL;<font> 0636;;;;N;;;;;
+1EE1A;ARABIC MATHEMATICAL ZAH;Lo;0;AL;<font> 0638;;;;N;;;;;
+1EE1B;ARABIC MATHEMATICAL GHAIN;Lo;0;AL;<font> 063A;;;;N;;;;;
+1EE1C;ARABIC MATHEMATICAL DOTLESS BEH;Lo;0;AL;<font> 066E;;;;N;;;;;
+1EE1D;ARABIC MATHEMATICAL DOTLESS NOON;Lo;0;AL;<font> 06BA;;;;N;;;;;
+1EE1E;ARABIC MATHEMATICAL DOTLESS FEH;Lo;0;AL;<font> 06A1;;;;N;;;;;
+1EE1F;ARABIC MATHEMATICAL DOTLESS QAF;Lo;0;AL;<font> 066F;;;;N;;;;;
+1EE21;ARABIC MATHEMATICAL INITIAL BEH;Lo;0;AL;<font> 0628;;;;N;;;;;
+1EE22;ARABIC MATHEMATICAL INITIAL JEEM;Lo;0;AL;<font> 062C;;;;N;;;;;
+1EE24;ARABIC MATHEMATICAL INITIAL HEH;Lo;0;AL;<font> 0647;;;;N;;;;;
+1EE27;ARABIC MATHEMATICAL INITIAL HAH;Lo;0;AL;<font> 062D;;;;N;;;;;
+1EE29;ARABIC MATHEMATICAL INITIAL YEH;Lo;0;AL;<font> 064A;;;;N;;;;;
+1EE2A;ARABIC MATHEMATICAL INITIAL KAF;Lo;0;AL;<font> 0643;;;;N;;;;;
+1EE2B;ARABIC MATHEMATICAL INITIAL LAM;Lo;0;AL;<font> 0644;;;;N;;;;;
+1EE2C;ARABIC MATHEMATICAL INITIAL MEEM;Lo;0;AL;<font> 0645;;;;N;;;;;
+1EE2D;ARABIC MATHEMATICAL INITIAL NOON;Lo;0;AL;<font> 0646;;;;N;;;;;
+1EE2E;ARABIC MATHEMATICAL INITIAL SEEN;Lo;0;AL;<font> 0633;;;;N;;;;;
+1EE2F;ARABIC MATHEMATICAL INITIAL AIN;Lo;0;AL;<font> 0639;;;;N;;;;;
+1EE30;ARABIC MATHEMATICAL INITIAL FEH;Lo;0;AL;<font> 0641;;;;N;;;;;
+1EE31;ARABIC MATHEMATICAL INITIAL SAD;Lo;0;AL;<font> 0635;;;;N;;;;;
+1EE32;ARABIC MATHEMATICAL INITIAL QAF;Lo;0;AL;<font> 0642;;;;N;;;;;
+1EE34;ARABIC MATHEMATICAL INITIAL SHEEN;Lo;0;AL;<font> 0634;;;;N;;;;;
+1EE35;ARABIC MATHEMATICAL INITIAL TEH;Lo;0;AL;<font> 062A;;;;N;;;;;
+1EE36;ARABIC MATHEMATICAL INITIAL THEH;Lo;0;AL;<font> 062B;;;;N;;;;;
+1EE37;ARABIC MATHEMATICAL INITIAL KHAH;Lo;0;AL;<font> 062E;;;;N;;;;;
+1EE39;ARABIC MATHEMATICAL INITIAL DAD;Lo;0;AL;<font> 0636;;;;N;;;;;
+1EE3B;ARABIC MATHEMATICAL INITIAL GHAIN;Lo;0;AL;<font> 063A;;;;N;;;;;
+1EE42;ARABIC MATHEMATICAL TAILED JEEM;Lo;0;AL;<font> 062C;;;;N;;;;;
+1EE47;ARABIC MATHEMATICAL TAILED HAH;Lo;0;AL;<font> 062D;;;;N;;;;;
+1EE49;ARABIC MATHEMATICAL TAILED YEH;Lo;0;AL;<font> 064A;;;;N;;;;;
+1EE4B;ARABIC MATHEMATICAL TAILED LAM;Lo;0;AL;<font> 0644;;;;N;;;;;
+1EE4D;ARABIC MATHEMATICAL TAILED NOON;Lo;0;AL;<font> 0646;;;;N;;;;;
+1EE4E;ARABIC MATHEMATICAL TAILED SEEN;Lo;0;AL;<font> 0633;;;;N;;;;;
+1EE4F;ARABIC MATHEMATICAL TAILED AIN;Lo;0;AL;<font> 0639;;;;N;;;;;
+1EE51;ARABIC MATHEMATICAL TAILED SAD;Lo;0;AL;<font> 0635;;;;N;;;;;
+1EE52;ARABIC MATHEMATICAL TAILED QAF;Lo;0;AL;<font> 0642;;;;N;;;;;
+1EE54;ARABIC MATHEMATICAL TAILED SHEEN;Lo;0;AL;<font> 0634;;;;N;;;;;
+1EE57;ARABIC MATHEMATICAL TAILED KHAH;Lo;0;AL;<font> 062E;;;;N;;;;;
+1EE59;ARABIC MATHEMATICAL TAILED DAD;Lo;0;AL;<font> 0636;;;;N;;;;;
+1EE5B;ARABIC MATHEMATICAL TAILED GHAIN;Lo;0;AL;<font> 063A;;;;N;;;;;
+1EE5D;ARABIC MATHEMATICAL TAILED DOTLESS NOON;Lo;0;AL;<font> 06BA;;;;N;;;;;
+1EE5F;ARABIC MATHEMATICAL TAILED DOTLESS QAF;Lo;0;AL;<font> 066F;;;;N;;;;;
+1EE61;ARABIC MATHEMATICAL STRETCHED BEH;Lo;0;AL;<font> 0628;;;;N;;;;;
+1EE62;ARABIC MATHEMATICAL STRETCHED JEEM;Lo;0;AL;<font> 062C;;;;N;;;;;
+1EE64;ARABIC MATHEMATICAL STRETCHED HEH;Lo;0;AL;<font> 0647;;;;N;;;;;
+1EE67;ARABIC MATHEMATICAL STRETCHED HAH;Lo;0;AL;<font> 062D;;;;N;;;;;
+1EE68;ARABIC MATHEMATICAL STRETCHED TAH;Lo;0;AL;<font> 0637;;;;N;;;;;
+1EE69;ARABIC MATHEMATICAL STRETCHED YEH;Lo;0;AL;<font> 064A;;;;N;;;;;
+1EE6A;ARABIC MATHEMATICAL STRETCHED KAF;Lo;0;AL;<font> 0643;;;;N;;;;;
+1EE6C;ARABIC MATHEMATICAL STRETCHED MEEM;Lo;0;AL;<font> 0645;;;;N;;;;;
+1EE6D;ARABIC MATHEMATICAL STRETCHED NOON;Lo;0;AL;<font> 0646;;;;N;;;;;
+1EE6E;ARABIC MATHEMATICAL STRETCHED SEEN;Lo;0;AL;<font> 0633;;;;N;;;;;
+1EE6F;ARABIC MATHEMATICAL STRETCHED AIN;Lo;0;AL;<font> 0639;;;;N;;;;;
+1EE70;ARABIC MATHEMATICAL STRETCHED FEH;Lo;0;AL;<font> 0641;;;;N;;;;;
+1EE71;ARABIC MATHEMATICAL STRETCHED SAD;Lo;0;AL;<font> 0635;;;;N;;;;;
+1EE72;ARABIC MATHEMATICAL STRETCHED QAF;Lo;0;AL;<font> 0642;;;;N;;;;;
+1EE74;ARABIC MATHEMATICAL STRETCHED SHEEN;Lo;0;AL;<font> 0634;;;;N;;;;;
+1EE75;ARABIC MATHEMATICAL STRETCHED TEH;Lo;0;AL;<font> 062A;;;;N;;;;;
+1EE76;ARABIC MATHEMATICAL STRETCHED THEH;Lo;0;AL;<font> 062B;;;;N;;;;;
+1EE77;ARABIC MATHEMATICAL STRETCHED KHAH;Lo;0;AL;<font> 062E;;;;N;;;;;
+1EE79;ARABIC MATHEMATICAL STRETCHED DAD;Lo;0;AL;<font> 0636;;;;N;;;;;
+1EE7A;ARABIC MATHEMATICAL STRETCHED ZAH;Lo;0;AL;<font> 0638;;;;N;;;;;
+1EE7B;ARABIC MATHEMATICAL STRETCHED GHAIN;Lo;0;AL;<font> 063A;;;;N;;;;;
+1EE7C;ARABIC MATHEMATICAL STRETCHED DOTLESS BEH;Lo;0;AL;<font> 066E;;;;N;;;;;
+1EE7E;ARABIC MATHEMATICAL STRETCHED DOTLESS FEH;Lo;0;AL;<font> 06A1;;;;N;;;;;
+1EE80;ARABIC MATHEMATICAL LOOPED ALEF;Lo;0;AL;<font> 0627;;;;N;;;;;
+1EE81;ARABIC MATHEMATICAL LOOPED BEH;Lo;0;AL;<font> 0628;;;;N;;;;;
+1EE82;ARABIC MATHEMATICAL LOOPED JEEM;Lo;0;AL;<font> 062C;;;;N;;;;;
+1EE83;ARABIC MATHEMATICAL LOOPED DAL;Lo;0;AL;<font> 062F;;;;N;;;;;
+1EE84;ARABIC MATHEMATICAL LOOPED HEH;Lo;0;AL;<font> 0647;;;;N;;;;;
+1EE85;ARABIC MATHEMATICAL LOOPED WAW;Lo;0;AL;<font> 0648;;;;N;;;;;
+1EE86;ARABIC MATHEMATICAL LOOPED ZAIN;Lo;0;AL;<font> 0632;;;;N;;;;;
+1EE87;ARABIC MATHEMATICAL LOOPED HAH;Lo;0;AL;<font> 062D;;;;N;;;;;
+1EE88;ARABIC MATHEMATICAL LOOPED TAH;Lo;0;AL;<font> 0637;;;;N;;;;;
+1EE89;ARABIC MATHEMATICAL LOOPED YEH;Lo;0;AL;<font> 064A;;;;N;;;;;
+1EE8B;ARABIC MATHEMATICAL LOOPED LAM;Lo;0;AL;<font> 0644;;;;N;;;;;
+1EE8C;ARABIC MATHEMATICAL LOOPED MEEM;Lo;0;AL;<font> 0645;;;;N;;;;;
+1EE8D;ARABIC MATHEMATICAL LOOPED NOON;Lo;0;AL;<font> 0646;;;;N;;;;;
+1EE8E;ARABIC MATHEMATICAL LOOPED SEEN;Lo;0;AL;<font> 0633;;;;N;;;;;
+1EE8F;ARABIC MATHEMATICAL LOOPED AIN;Lo;0;AL;<font> 0639;;;;N;;;;;
+1EE90;ARABIC MATHEMATICAL LOOPED FEH;Lo;0;AL;<font> 0641;;;;N;;;;;
+1EE91;ARABIC MATHEMATICAL LOOPED SAD;Lo;0;AL;<font> 0635;;;;N;;;;;
+1EE92;ARABIC MATHEMATICAL LOOPED QAF;Lo;0;AL;<font> 0642;;;;N;;;;;
+1EE93;ARABIC MATHEMATICAL LOOPED REH;Lo;0;AL;<font> 0631;;;;N;;;;;
+1EE94;ARABIC MATHEMATICAL LOOPED SHEEN;Lo;0;AL;<font> 0634;;;;N;;;;;
+1EE95;ARABIC MATHEMATICAL LOOPED TEH;Lo;0;AL;<font> 062A;;;;N;;;;;
+1EE96;ARABIC MATHEMATICAL LOOPED THEH;Lo;0;AL;<font> 062B;;;;N;;;;;
+1EE97;ARABIC MATHEMATICAL LOOPED KHAH;Lo;0;AL;<font> 062E;;;;N;;;;;
+1EE98;ARABIC MATHEMATICAL LOOPED THAL;Lo;0;AL;<font> 0630;;;;N;;;;;
+1EE99;ARABIC MATHEMATICAL LOOPED DAD;Lo;0;AL;<font> 0636;;;;N;;;;;
+1EE9A;ARABIC MATHEMATICAL LOOPED ZAH;Lo;0;AL;<font> 0638;;;;N;;;;;
+1EE9B;ARABIC MATHEMATICAL LOOPED GHAIN;Lo;0;AL;<font> 063A;;;;N;;;;;
+1EEA1;ARABIC MATHEMATICAL DOUBLE-STRUCK BEH;Lo;0;AL;<font> 0628;;;;N;;;;;
+1EEA2;ARABIC MATHEMATICAL DOUBLE-STRUCK JEEM;Lo;0;AL;<font> 062C;;;;N;;;;;
+1EEA3;ARABIC MATHEMATICAL DOUBLE-STRUCK DAL;Lo;0;AL;<font> 062F;;;;N;;;;;
+1EEA5;ARABIC MATHEMATICAL DOUBLE-STRUCK WAW;Lo;0;AL;<font> 0648;;;;N;;;;;
+1EEA6;ARABIC MATHEMATICAL DOUBLE-STRUCK ZAIN;Lo;0;AL;<font> 0632;;;;N;;;;;
+1EEA7;ARABIC MATHEMATICAL DOUBLE-STRUCK HAH;Lo;0;AL;<font> 062D;;;;N;;;;;
+1EEA8;ARABIC MATHEMATICAL DOUBLE-STRUCK TAH;Lo;0;AL;<font> 0637;;;;N;;;;;
+1EEA9;ARABIC MATHEMATICAL DOUBLE-STRUCK YEH;Lo;0;AL;<font> 064A;;;;N;;;;;
+1EEAB;ARABIC MATHEMATICAL DOUBLE-STRUCK LAM;Lo;0;AL;<font> 0644;;;;N;;;;;
+1EEAC;ARABIC MATHEMATICAL DOUBLE-STRUCK MEEM;Lo;0;AL;<font> 0645;;;;N;;;;;
+1EEAD;ARABIC MATHEMATICAL DOUBLE-STRUCK NOON;Lo;0;AL;<font> 0646;;;;N;;;;;
+1EEAE;ARABIC MATHEMATICAL DOUBLE-STRUCK SEEN;Lo;0;AL;<font> 0633;;;;N;;;;;
+1EEAF;ARABIC MATHEMATICAL DOUBLE-STRUCK AIN;Lo;0;AL;<font> 0639;;;;N;;;;;
+1EEB0;ARABIC MATHEMATICAL DOUBLE-STRUCK FEH;Lo;0;AL;<font> 0641;;;;N;;;;;
+1EEB1;ARABIC MATHEMATICAL DOUBLE-STRUCK SAD;Lo;0;AL;<font> 0635;;;;N;;;;;
+1EEB2;ARABIC MATHEMATICAL DOUBLE-STRUCK QAF;Lo;0;AL;<font> 0642;;;;N;;;;;
+1EEB3;ARABIC MATHEMATICAL DOUBLE-STRUCK REH;Lo;0;AL;<font> 0631;;;;N;;;;;
+1EEB4;ARABIC MATHEMATICAL DOUBLE-STRUCK SHEEN;Lo;0;AL;<font> 0634;;;;N;;;;;
+1EEB5;ARABIC MATHEMATICAL DOUBLE-STRUCK TEH;Lo;0;AL;<font> 062A;;;;N;;;;;
+1EEB6;ARABIC MATHEMATICAL DOUBLE-STRUCK THEH;Lo;0;AL;<font> 062B;;;;N;;;;;
+1EEB7;ARABIC MATHEMATICAL DOUBLE-STRUCK KHAH;Lo;0;AL;<font> 062E;;;;N;;;;;
+1EEB8;ARABIC MATHEMATICAL DOUBLE-STRUCK THAL;Lo;0;AL;<font> 0630;;;;N;;;;;
+1EEB9;ARABIC MATHEMATICAL DOUBLE-STRUCK DAD;Lo;0;AL;<font> 0636;;;;N;;;;;
+1EEBA;ARABIC MATHEMATICAL DOUBLE-STRUCK ZAH;Lo;0;AL;<font> 0638;;;;N;;;;;
+1EEBB;ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN;Lo;0;AL;<font> 063A;;;;N;;;;;
+1EEF0;ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL;Sm;0;ON;;;;;N;;;;;
+1EEF1;ARABIC MATHEMATICAL OPERATOR HAH WITH DAL;Sm;0;ON;;;;;N;;;;;
 1F000;MAHJONG TILE EAST WIND;So;0;ON;;;;;N;;;;;
 1F001;MAHJONG TILE SOUTH WIND;So;0;ON;;;;;N;;;;;
 1F002;MAHJONG TILE WEST WIND;So;0;ON;;;;;N;;;;;
@@ -21902,6 +22614,8 @@
 1F167;NEGATIVE CIRCLED LATIN CAPITAL LETTER X;So;0;L;;;;;N;;;;;
 1F168;NEGATIVE CIRCLED LATIN CAPITAL LETTER Y;So;0;L;;;;;N;;;;;
 1F169;NEGATIVE CIRCLED LATIN CAPITAL LETTER Z;So;0;L;;;;;N;;;;;
+1F16A;RAISED MC SIGN;So;0;ON;<super> 004D 0043;;;;N;;;;;
+1F16B;RAISED MD SIGN;So;0;ON;<super> 004D 0044;;;;N;;;;;
 1F170;NEGATIVE SQUARED LATIN CAPITAL LETTER A;So;0;L;;;;;N;;;;;
 1F171;NEGATIVE SQUARED LATIN CAPITAL LETTER B;So;0;L;;;;;N;;;;;
 1F172;NEGATIVE SQUARED LATIN CAPITAL LETTER C;So;0;L;;;;;N;;;;;
@@ -22354,7 +23068,7 @@
 1F489;SYRINGE;So;0;ON;;;;;N;;;;;
 1F48A;PILL;So;0;ON;;;;;N;;;;;
 1F48B;KISS MARK;So;0;ON;;;;;N;;;;;
-1F48C;LOVE LETTER;So;0;L;;;;;N;;;;;
+1F48C;LOVE LETTER;So;0;ON;;;;;N;;;;;
 1F48D;RING;So;0;ON;;;;;N;;;;;
 1F48E;GEM STONE;So;0;ON;;;;;N;;;;;
 1F48F;KISS;So;0;ON;;;;;N;;;;;
@@ -22502,7 +23216,7 @@
 1F521;INPUT SYMBOL FOR LATIN SMALL LETTERS;So;0;ON;;;;;N;;;;;
 1F522;INPUT SYMBOL FOR NUMBERS;So;0;ON;;;;;N;;;;;
 1F523;INPUT SYMBOL FOR SYMBOLS;So;0;ON;;;;;N;;;;;
-1F524;INPUT SYMBOL FOR LATIN LETTERS;So;0;L;;;;;N;;;;;
+1F524;INPUT SYMBOL FOR LATIN LETTERS;So;0;ON;;;;;N;;;;;
 1F525;FIRE;So;0;ON;;;;;N;;;;;
 1F526;ELECTRIC TORCH;So;0;ON;;;;;N;;;;;
 1F527;WRENCH;So;0;ON;;;;;N;;;;;
@@ -22528,6 +23242,10 @@
 1F53B;DOWN-POINTING RED TRIANGLE;So;0;ON;;;;;N;;;;;
 1F53C;UP-POINTING SMALL RED TRIANGLE;So;0;ON;;;;;N;;;;;
 1F53D;DOWN-POINTING SMALL RED TRIANGLE;So;0;ON;;;;;N;;;;;
+1F540;CIRCLED CROSS POMMEE;So;0;ON;;;;;N;;;;;
+1F541;CROSS POMMEE WITH HALF-CIRCLE BELOW;So;0;ON;;;;;N;;;;;
+1F542;CROSS POMMEE;So;0;ON;;;;;N;;;;;
+1F543;NOTCHED LEFT SEMICIRCLE WITH THREE DOTS;So;0;ON;;;;;N;;;;;
 1F550;CLOCK FACE ONE OCLOCK;So;0;ON;;;;;N;;;;;
 1F551;CLOCK FACE TWO OCLOCK;So;0;ON;;;;;N;;;;;
 1F552;CLOCK FACE THREE OCLOCK;So;0;ON;;;;;N;;;;;
@@ -22557,6 +23275,7 @@
 1F5FD;STATUE OF LIBERTY;So;0;ON;;;;;N;;;;;
 1F5FE;SILHOUETTE OF JAPAN;So;0;ON;;;;;N;;;;;
 1F5FF;MOYAI;So;0;ON;;;;;N;;;;;
+1F600;GRINNING FACE;So;0;ON;;;;;N;;;;;
 1F601;GRINNING FACE WITH SMILING EYES;So;0;ON;;;;;N;;;;;
 1F602;FACE WITH TEARS OF JOY;So;0;ON;;;;;N;;;;;
 1F603;SMILING FACE WITH OPEN MOUTH;So;0;ON;;;;;N;;;;;
@@ -22573,30 +23292,42 @@
 1F60E;SMILING FACE WITH SUNGLASSES;So;0;ON;;;;;N;;;;;
 1F60F;SMIRKING FACE;So;0;ON;;;;;N;;;;;
 1F610;NEUTRAL FACE;So;0;ON;;;;;N;;;;;
+1F611;EXPRESSIONLESS FACE;So;0;ON;;;;;N;;;;;
 1F612;UNAMUSED FACE;So;0;ON;;;;;N;;;;;
 1F613;FACE WITH COLD SWEAT;So;0;ON;;;;;N;;;;;
 1F614;PENSIVE FACE;So;0;ON;;;;;N;;;;;
+1F615;CONFUSED FACE;So;0;ON;;;;;N;;;;;
 1F616;CONFOUNDED FACE;So;0;ON;;;;;N;;;;;
+1F617;KISSING FACE;So;0;ON;;;;;N;;;;;
 1F618;FACE THROWING A KISS;So;0;ON;;;;;N;;;;;
+1F619;KISSING FACE WITH SMILING EYES;So;0;ON;;;;;N;;;;;
 1F61A;KISSING FACE WITH CLOSED EYES;So;0;ON;;;;;N;;;;;
+1F61B;FACE WITH STUCK-OUT TONGUE;So;0;ON;;;;;N;;;;;
 1F61C;FACE WITH STUCK-OUT TONGUE AND WINKING EYE;So;0;ON;;;;;N;;;;;
 1F61D;FACE WITH STUCK-OUT TONGUE AND TIGHTLY-CLOSED EYES;So;0;ON;;;;;N;;;;;
 1F61E;DISAPPOINTED FACE;So;0;ON;;;;;N;;;;;
+1F61F;WORRIED FACE;So;0;ON;;;;;N;;;;;
 1F620;ANGRY FACE;So;0;ON;;;;;N;;;;;
 1F621;POUTING FACE;So;0;ON;;;;;N;;;;;
 1F622;CRYING FACE;So;0;ON;;;;;N;;;;;
 1F623;PERSEVERING FACE;So;0;ON;;;;;N;;;;;
 1F624;FACE WITH LOOK OF TRIUMPH;So;0;ON;;;;;N;;;;;
 1F625;DISAPPOINTED BUT RELIEVED FACE;So;0;ON;;;;;N;;;;;
+1F626;FROWNING FACE WITH OPEN MOUTH;So;0;ON;;;;;N;;;;;
+1F627;ANGUISHED FACE;So;0;ON;;;;;N;;;;;
 1F628;FEARFUL FACE;So;0;ON;;;;;N;;;;;
 1F629;WEARY FACE;So;0;ON;;;;;N;;;;;
 1F62A;SLEEPY FACE;So;0;ON;;;;;N;;;;;
 1F62B;TIRED FACE;So;0;ON;;;;;N;;;;;
+1F62C;GRIMACING FACE;So;0;ON;;;;;N;;;;;
 1F62D;LOUDLY CRYING FACE;So;0;ON;;;;;N;;;;;
+1F62E;FACE WITH OPEN MOUTH;So;0;ON;;;;;N;;;;;
+1F62F;HUSHED FACE;So;0;ON;;;;;N;;;;;
 1F630;FACE WITH OPEN MOUTH AND COLD SWEAT;So;0;ON;;;;;N;;;;;
 1F631;FACE SCREAMING IN FEAR;So;0;ON;;;;;N;;;;;
 1F632;ASTONISHED FACE;So;0;ON;;;;;N;;;;;
 1F633;FLUSHED FACE;So;0;ON;;;;;N;;;;;
+1F634;SLEEPING FACE;So;0;ON;;;;;N;;;;;
 1F635;DIZZY FACE;So;0;ON;;;;;N;;;;;
 1F636;FACE WITHOUT MOUTH;So;0;ON;;;;;N;;;;;
 1F637;FACE WITH MEDICAL MASK;So;0;ON;;;;;N;;;;;
--- a/jdk/make/tools/UnicodeData/VERSION	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/make/tools/UnicodeData/VERSION	Wed Jul 05 18:07:57 2017 +0200
@@ -1,1 +1,1 @@
-6.0.0
+6.1.0
--- a/jdk/make/tools/src/build/tools/compileproperties/CompileProperties.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/make/tools/src/build/tools/compileproperties/CompileProperties.java	Wed Jul 05 18:07:57 2017 +0200
@@ -90,6 +90,7 @@
     private static String outfiles[] ;
     private static String supers[]   ;
     private static int compileCount = 0;
+    private static boolean quiet = false;
 
     private static boolean parseOptions(String args[]) {
         boolean ok = true;
@@ -114,21 +115,21 @@
                 outfiles[compileCount]  = args[++i];
                 supers[compileCount]    = args[++i];
                 compileCount++;
-            } else if ( "-optionsfile".equals(args[i]) && i+1 < args.length ) {
-                String filename = args[++i];
+            } else if ( args[i].charAt(0) == '@') {
+                String filename = args[i].substring(1);
                 FileInputStream finput = null;
                 byte contents[] = null;
                 try {
                     finput = new FileInputStream(filename);
                     int byteCount = finput.available();
                     if ( byteCount <= 0 ) {
-                        error("The -optionsfile file is empty", null);
+                        error("The @file is empty", null);
                         ok = false;
                     } else {
                         contents = new byte[byteCount];
                         int bytesRead = finput.read(contents);
                         if ( byteCount != bytesRead ) {
-                            error("Cannot read all of -optionsfile file", null);
+                            error("Cannot read all of @file", null);
                             ok = false;
                         }
                     }
@@ -144,7 +145,7 @@
                         error("cannot close " + filename, e);
                     }
                 }
-                if ( ok = true && contents != null ) {
+                if ( ok && contents != null ) {
                     String tokens[] = (new String(contents)).split("\\s+");
                     if ( tokens.length > 0 ) {
                         ok = parseOptions(tokens);
@@ -163,6 +164,13 @@
 
     public static void main(String[] args) {
         boolean ok = true;
+        if (args.length >= 1 && args[0].equals("-quiet"))
+        {
+            quiet = true;
+            String[] newargs = new String[args.length-1];
+            System.arraycopy(args, 1, newargs, 0, newargs.length);
+            args = newargs;
+        }
         /* Original usage */
         if (args.length == 2 && args[0].charAt(0) != '-' ) {
             ok = createFile(args[0], args[1], "ListResourceBundle");
@@ -197,18 +205,20 @@
         System.err.println("usage:");
         System.err.println("    java -jar compileproperties.jar path_to_properties_file path_to_java_output_file [super_class]");
         System.err.println("      -OR-");
-        System.err.println("    java -jar compileproperties.jar {-compile path_to_properties_file path_to_java_output_file super_class} -or- -optionsfile filename");
+        System.err.println("    java -jar compileproperties.jar {-compile path_to_properties_file path_to_java_output_file super_class} -or- @filename");
         System.err.println("");
         System.err.println("Example:");
         System.err.println("    java -jar compileproperties.jar -compile test.properties test.java ListResourceBundle");
-        System.err.println("    java -jar compileproperties.jar -optionsfile option_file");
+        System.err.println("    java -jar compileproperties.jar @option_file");
         System.err.println("option_file contains: -compile test.properties test.java ListResourceBundle");
     }
 
     private static boolean createFile(String propertiesPath, String outputPath,
             String superClass) {
         boolean ok = true;
-        System.out.println("parsing: " + propertiesPath);
+        if (!quiet) {
+            System.out.println("parsing: " + propertiesPath);
+        }
         Properties p = new Properties();
         try {
             p.load(new FileInputStream(propertiesPath));
@@ -221,7 +231,9 @@
         }
         if ( ok ) {
             String packageName = inferPackageName(propertiesPath, outputPath);
-            System.out.println("inferred package name: " + packageName);
+            if (!quiet) {
+                System.out.println("inferred package name: " + packageName);
+            }
             List<String> sortedKeys = new ArrayList<>();
             for ( Object key : p.keySet() ) {
                 sortedKeys.add((String)key);
@@ -276,7 +288,9 @@
                     error("IO error close " + outputPath, e);
                 }
             }
-            System.out.println("wrote: " + outputPath);
+            if (!quiet) {
+                System.out.println("wrote: " + outputPath);
+            }
         }
         return ok;
     }
--- a/jdk/make/tools/src/build/tools/generatecharacter/CharacterScript.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/make/tools/src/build/tools/generatecharacter/CharacterScript.java	Wed Jul 05 18:07:57 2017 +0200
@@ -1,3 +1,5 @@
+package build.tools.generatecharacter;
+
 import java.util.regex.*;
 import java.util.*;
 import java.io.*;
--- a/jdk/make/tools/src/build/tools/stripproperties/StripProperties.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/make/tools/src/build/tools/stripproperties/StripProperties.java	Wed Jul 05 18:07:57 2017 +0200
@@ -36,6 +36,7 @@
 import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.Enumeration;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Properties;
 
@@ -53,82 +54,89 @@
         }
     }
 
-    private static List<String> parseOptions(String args[]) {
-        List<String> files = new ArrayList<String>();
+    private static List<String> infiles = new ArrayList<String>();
+    private static List<String> outfiles = new ArrayList<String>();
+
+    private static boolean parseOptions(String args[]) {
+        boolean ok = true;
+
         for ( int i = 0; i < args.length ; i++ ) {
-            if ( "-optionsfile".equals(args[i]) && i+1 < args.length ) {
-                String filename = args[++i];
+            if ( "-clean".equals(args[i]) && i+2 < args.length ) {
+                infiles.add(args[++i]);
+                outfiles.add(args[++i]);
+            } else if ( args[i].charAt(0)=='@') {
+                String filename = args[i].substring(1);
                 FileInputStream finput = null;
                 byte contents[] = null;
                 try {
                     finput = new FileInputStream(filename);
                     int byteCount = finput.available();
                     if ( byteCount <= 0 ) {
-                        error("The -optionsfile file is empty", null);
-                        files = null;
+                        error("The @file is empty", null);
+                        ok = false;
                     } else {
                         contents = new byte[byteCount];
                         int bytesRead = finput.read(contents);
                         if ( byteCount != bytesRead ) {
-                            error("Cannot read all of -optionsfile file", null);
-                            files = null;
+                            error("Cannot read all of @file", null);
+                            ok = false;
                         }
                     }
                 } catch ( IOException e ) {
                     error("cannot open " + filename, e);
-                    files = null;
+                    ok = false;
                 }
                 if ( finput != null ) {
                     try {
                         finput.close();
                     } catch ( IOException e ) {
-                        files = null;
+                        ok = false;
                         error("cannot close " + filename, e);
                     }
                 }
-                if ( files != null && contents != null ) {
+                if ( ok && contents != null ) {
                     String tokens[] = (new String(contents)).split("\\s+");
                     if ( tokens.length > 0 ) {
-                        List<String> ofiles = parseOptions(tokens);
-                        if ( ofiles != null ) {
-                            files.addAll(ofiles);
-                        } else {
-                            error("No files found in file", null);
-                            files = null;
-                        }
+                        ok = parseOptions(tokens);
                     }
                 }
-                if ( files == null ) {
+                if ( !ok ) {
                     break;
                 }
             } else {
-                files.add(args[i]);
+                infiles.add(args[i]);
+                outfiles.add(args[i]);
             }
         }
-        return files;
+        return ok;
     }
 
-    private static boolean stripFiles(List<String> files) {
+    private static boolean stripFiles(List<String> infiles, List<String> outfiles) {
         boolean ok = true;
-        for ( String file : files ) {
+        Iterator<String> inIter  = infiles.iterator();
+        Iterator<String> outIter = outfiles.iterator();
+
+        for (; inIter.hasNext(); ) {
+            String infile = inIter.next();
+            String outfile = outIter.next();
 
             Properties prop = new Properties();
             InputStream in = null;
             try {
-                in = new BufferedInputStream(new FileInputStream(file));
+                in = new BufferedInputStream(new FileInputStream(infile));
                 prop.load(in);
             } catch ( FileNotFoundException e ) {
-                error("Cannot access file " + file, e);
+                error("Cannot access file " + infile, e);
                 ok = false;
             } catch ( IOException e ) {
-                error("IO exception processing file " + file, e);
+                error("IO exception processing file " + infile, e);
                 ok = false;
             }
             if ( in != null ) {
                 try {
                     in.close();
                 } catch ( IOException e ) {
-                    error("IO exception closing file " + file, e);
+                    error("IO exception closing file " + infile, e);
                     ok = false;
                 }
             }
@@ -138,18 +146,18 @@
 
             OutputStream out = null;
             try {
-                out = new FileOutputStream(file);
+                out = new FileOutputStream(outfile);
                 storeProperties(prop, out);
                 out.flush();
             } catch ( IOException e ) {
-                error("IO exception processing file " + file, e);
+                error("IO exception processing file " + outfile, e);
                 ok = false;
             }
             if ( out != null ) {
                 try {
                     out.close();
                 } catch ( IOException e ) {
-                    error("IO exception closing file " + file, e);
+                    error("IO exception closing file " + outfile, e);
                     ok = false;
                 }
             }
@@ -166,8 +174,8 @@
      * @param args Names of properties files to process and replace contents
      */
     public static void main(String args[]) {
-        List<String> files = parseOptions(args);
-        if ( files == null || !stripFiles(files) ) {
+        boolean ok = parseOptions(args);
+        if ( !ok || !stripFiles(infiles, outfiles) ) {
             System.exit(1);
         }
     }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/CompileDemos.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,352 @@
+#
+# 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.
+#
+
+default: all
+
+include $(SPEC)
+include MakeBase.gmk
+include JavaCompilation.gmk
+include NativeCompilation.gmk
+
+# Setup the java compilers for the JDK build.
+include Setup.gmk
+
+# Append demo goals to this variable.
+BUILD_DEMOS=
+
+# The demo structure and contents should really be cleaned up.
+# Now every other demo has its own quirks where to put the
+# READMEs and other files.
+
+##################################################################################################
+
+define SetupAppletDemo
+     $$(eval $$(call SetupJavaCompilation,BUILD_DEMO_APPLET_$1,\
+                SETUP:=GENERATE_USINGJDKBYTECODE$2,\
+		SRC:=$(JDK_TOPDIR)/src/$3share/demo/applets/$1,\
+		BIN:=$(JDK_OUTPUTDIR)/newdemo/applets/$1,\
+		COPY:=.html .java .xyz .obj .au .gif))
+     BUILD_DEMOS += $$(BUILD_DEMO_APPLET_$1)
+endef
+
+$(eval $(call SetupAppletDemo,ArcTest))
+$(eval $(call SetupAppletDemo,BarChart))
+$(eval $(call SetupAppletDemo,Blink))
+$(eval $(call SetupAppletDemo,CardTest))
+$(eval $(call SetupAppletDemo,Clock))
+$(eval $(call SetupAppletDemo,DitherTest))
+$(eval $(call SetupAppletDemo,DrawTest))
+$(eval $(call SetupAppletDemo,Fractal))
+$(eval $(call SetupAppletDemo,GraphicsTest))
+$(eval $(call SetupAppletDemo,MoleculeViewer))
+$(eval $(call SetupAppletDemo,NervousText))
+$(eval $(call SetupAppletDemo,SimpleGraph))
+$(eval $(call SetupAppletDemo,SortDemo))
+$(eval $(call SetupAppletDemo,SpreadSheet))
+# Build WireFrame without a server since it
+# has a class Matrix3D that also exists in MoleculeViewer.
+$(eval $(call SetupAppletDemo,WireFrame,_NOSERV))
+
+ifndef OPENJDK
+    $(eval $(call SetupAppletDemo,Animator,,closed/))
+    $(eval $(call SetupAppletDemo,GraphLayout,_NOSERV,closed/))
+    $(eval $(call SetupAppletDemo,JumpingBox,,closed/))
+    $(eval $(call SetupAppletDemo,TicTacToe,,closed/))
+endif
+
+##################################################################################################
+
+PATTERNS_TO_COPY=.html .txt .properties .js .gif .jpg .theme .data .opt README .c .h .png .ttf
+
+define SetupDemo
+    # Param 1 = Name of the demo
+    # Param 2 = Subdirectory of the demo below the demo directory.
+    # Param 3 = Additional javac flags.
+    # Param 4 = The main class for the jar.
+    # Param 5 = Additional source directory.
+    # Param 6 = Extra dir below $(JDK_TOPDIR)/src (closed)
+    # Param 7 = List of files to copy
+    # Param 8 = Base name of jar file. Defaults to $1
+    # Param 9 = Exclude list
+    # Param 10 = Extra copy patterns
+    # Param 11 = Extra manifest attribute
+    # Param 12 = Suffix for compiler setup name
+
+    # In some demos the source is found in a subdir called src.
+    $1_MAIN_SRC:=$$(wildcard $(JDK_TOPDIR)/src/$6share/demo/$2/$1/src)
+    ifeq ($$($1_MAIN_SRC),)
+        $1_MAIN_SRC:=$(JDK_TOPDIR)/src/$6share/demo/$2/$1
+    endif
+
+    ifneq ($8,)
+        $1_JARFILE := $8.jar
+    else
+        $1_JARFILE := $1.jar
+    endif
+
+    # Compile java classes if there are any.
+    $1_JAVA_FILES_EXIST := $$(shell $$(FIND) $$($1_MAIN_SRC) -name "*.java")
+
+    ifneq ($$($1_JAVA_FILES_EXIST),)
+        $$(eval $$(call SetupJavaCompilation,BUILD_DEMO_$1,\
+                SETUP:=GENERATE_USINGJDKBYTECODE$(12),\
+                ADD_JAVAC_FLAGS:=$3,\
+		SRC:=$$($1_MAIN_SRC) $5,\
+		BIN:=$(JDK_OUTPUTDIR)/newdemoclasses/$2/$1,\
+		COPY:=$(PATTERNS_TO_COPY) $(10),\
+		JAR:=$(JDK_OUTPUTDIR)/newdemo/$2/$1/$$($1_JARFILE),\
+		JARMAIN:=$4,\
+		MANIFEST:=$(JDK_TOPDIR)/make/tools/manifest.mf,\
+		EXTRA_MANIFEST_ATTR:=$(11),\
+		SRCZIP:=$(JDK_OUTPUTDIR)/newdemo/$2/$1/src.zip,\
+		EXCLUDE_FILES:=$9))
+
+        BUILD_DEMOS +=  $$(BUILD_DEMO_$1) \
+			$(JDK_OUTPUTDIR)/newdemo/$2/$1/$$($1_JARFILE) \
+			$(JDK_OUTPUTDIR)/newdemo/$2/$1/src.zip 
+    endif
+
+    # Copy files.
+    $1_COPY_TARGETS :=  $$(patsubst $(JDK_TOPDIR)/src/$6share/demo/$2/$1/%,\
+			$(JDK_OUTPUTDIR)/newdemo/$2/$1/%,\
+			$$(wildcard $$(addprefix $(JDK_TOPDIR)/src/$6share/demo/$2/$1/,$7)))
+    ifneq ($7,)
+        $(JDK_OUTPUTDIR)/newdemo/$2/$1/% : $(JDK_TOPDIR)/src/$6share/demo/$2/$1/%
+		mkdir -p $$(@D)
+		cp $$< $$@
+		chmod -f ug+w $$@
+
+        BUILD_DEMOS += $$($1_COPY_TARGETS)
+    endif
+
+endef
+
+$(eval $(call SetupDemo,CodePointIM,jfc,,CodePointIM,,,*.html))
+$(JDK_OUTPUTDIR)/newdemo/jfc/CodePointIM/_the.services : \
+			$(JDK_OUTPUTDIR)/newdemo/jfc/CodePointIM/CodePointIM.jar \
+			$(JDK_TOPDIR)/src/share/demo/jfc/CodePointIM/java.awt.im.spi.InputMethodDescriptor
+	(cd $(JDK_OUTPUTDIR)/newdemo/jfc/CodePointIM && \
+		$(MKDIR) -p _the.tmp/META-INF/services && \
+		$(CP) $(JDK_TOPDIR)/src/share/demo/jfc/CodePointIM/java.awt.im.spi.InputMethodDescriptor _the.tmp/META-INF/services && \
+		cd _the.tmp && \
+		$(JAR) uf $(JDK_OUTPUTDIR)/newdemo/jfc/CodePointIM/CodePointIM.jar META-INF/services/java.awt.im.spi.InputMethodDescriptor && \
+		cd META-INF/services && \
+		$(JAR) uf $(JDK_OUTPUTDIR)/newdemo/jfc/CodePointIM/CodePointIM.jar java.awt.im.spi.InputMethodDescriptor)
+	$(RM) -r $(JDK_OUTPUTDIR)/newdemo/jfc/CodePointIM/_the.tmp
+	touch $@
+
+BUILD_DEMOS+=$(JDK_OUTPUTDIR)/newdemo/jfc/CodePointIM/_the.services
+
+$(eval $(call SetupDemo,FileChooserDemo,jfc,,FileChooserDemo,,,README*))
+$(eval $(call SetupDemo,Font2DTest,jfc,,Font2DTest,,,*.html *.txt))
+$(eval $(call SetupDemo,Metalworks,jfc,,Metalworks,,,README*))
+$(eval $(call SetupDemo,Notepad,jfc,,Notepad,,,README*))
+$(eval $(call SetupDemo,SampleTree,jfc,,SampleTree,,,README*))
+$(eval $(call SetupDemo,SwingApplet,jfc,,SwingApplet,,,README* *.html))
+$(eval $(call SetupDemo,TableExample,jfc,,TableExample,,,README*))
+$(eval $(call SetupDemo,TransparentRuler,jfc,,transparentruler.Ruler,,,README*))
+$(eval $(call SetupDemo,jconsole-plugin,scripting,-cp $(JDK_OUTPUTDIR)/lib/jconsole.jar,,,,*.xml *.txt))
+$(eval $(call SetupDemo,FullThreadDump,management,,FullThreadDump,,,README*))
+$(eval $(call SetupDemo,JTop,management,-cp $(JDK_OUTPUTDIR)/lib/jconsole.jar,JTop,,,README*))
+$(eval $(call SetupDemo,MemoryMonitor,management,,MemoryMonitor,,,README*))
+$(eval $(call SetupDemo,VerboseGC,management,,VerboseGC,,,README*))
+$(eval $(call SetupDemo,zipfs,nio,,,,,README* *.java))
+
+ifndef OPENJDK
+    $(eval $(call SetupDemo,Laffy,jfc,,,,closed/,*))
+    $(eval $(call SetupDemo,SwingSet3,jfc,,,,closed/,*))
+
+    $(eval $(call SetupDemo,Java2D,jfc,,java2d.Java2Demo,,closed/,*.html README*,Java2Demo))
+    $(eval $(call SetupDemo,Stylepad,jfc,,Stylepad,\
+		$(JDK_TOPDIR)/src/share/demo/jfc/Notepad,closed/,*.txt,,$(JDK_TOPDIR)/src/share/demo/jfc/Notepad/README.txt))
+    $(eval $(call SetupDemo,SwingSet2,jfc,,SwingSet2,,closed/,README* *.html,,,.java COPYRIGHT,\
+		SplashScreen-Image: resources/images/splash.png,_NOSERV))
+
+    BUILD_DEMOS += $(patsubst $(JDK_TOPDIR)/src/closed/share/demo/nbproject/%,\
+			$(JDK_OUTPUTDIR)/newdemo/nbproject/%,\
+			$(shell $(FIND) $(JDK_TOPDIR)/src/closed/share/demo/nbproject/ -type f))
+    $(JDK_OUTPUTDIR)/newdemo/nbproject/% : $(JDK_TOPDIR)/src/closed/share/demo/nbproject/%
+		mkdir -p $(@D)
+		cp $< $@
+		chmod -f ug+w $@
+endif
+
+##################################################################################################
+
+# Why do we install a demo jar into the main jre/lib/ext????????????????
+$(JDK_OUTPUTDIR)/lib/ext/zipfs.jar : $(JDK_OUTPUTDIR)/newdemo/nio/zipfs/zipfs.jar
+		$(MKDIR) -p $(@D)
+		$(CP) $< $@
+
+BUILD_DEMOS += $(JDK_OUTPUTDIR)/lib/ext/zipfs.jar
+
+##################################################################################################
+
+# In the old makefiles, j2dbench was not compiled. 
+#$(eval $(call SetupDemo,J2DBench,java2d,/src,,j2dbench/J2DBench))
+
+define SetupJVMTIDemo
+     # Param 1 = Name of the demo
+     # Param 2 = add these directories to the includes, default is agent_util
+     # Param 3 = extra CFLAGS
+     # Param 4 = C or C++ (defaults to C)
+     # Param 5 = libs for posix
+     # Param 6 = libs for winapi
+     # Param 7 = libs for solaris
+     BUILD_DEMO_JVMTI_$1_EXTRA_SRC:=	$$(wildcard $(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/demo/jvmti/$1) \
+					$$(wildcard $$(addprefix $(JDK_TOPDIR)/src/share/demo/jvmti/,$2))
+     BUILD_DEMO_JVMTI_$1_EXTRA_INC:=$$(addprefix -I,$$(BUILD_DEMO_JVMTI_$1_EXTRA_SRC))
+     BUILD_DEMO_JVMTI_$1_LANG:=C
+     BUILD_DEMO_JVMTI_$1_O_FLAG:=$(C_O_FLAG_NORM)
+     ifneq (,$4)
+         BUILD_DEMO_JVMTI_$1_LANG:=$4
+     endif
+     ifeq (C++,$4)
+         $1_EXTRA_CXX:=$(LIBCXX)
+         BUILD_DEMO_JVMTI_$1_O_FLAG:=$(CXX_O_FLAG_NORM)
+     endif
+     $$(eval $$(call SetupNativeCompilation,BUILD_DEMO_JVMTI_$1,\
+		SRC:=$(JDK_TOPDIR)/src/share/demo/jvmti/$1 $$(BUILD_DEMO_JVMTI_$1_EXTRA_SRC),\
+		LANG:=$$(BUILD_DEMO_JVMTI_$1_LANG),\
+		CFLAGS:=$(CFLAGS_JDKLIB) $$(BUILD_DEMO_JVMTI_$1_O_FLAG) -I$(JDK_TOPDIR)/src/share/demo/jvmti/$1 $$(BUILD_DEMO_JVMTI_$1_EXTRA_INC) $3,\
+		LDFLAGS:=$(LDFLAGS_JDKLIB),\
+		LDFLAGS_SUFFIX:=$$($1_EXTRA_CXX),\
+		LDFLAGS_SUFFIX_posix:=$5,\
+		LDFLAGS_SUFFIX_winapi:=$6,\
+		LDFLAGS_SUFFIX_solaris:=-lc $7,\
+		BIN:=$(JDK_OUTPUTDIR)/newdemoobjs/jvmti/$1,\
+		LIB:=$(JDK_OUTPUTDIR)/newdemo/jvmti/$1/lib/$(LIBRARY_PREFIX)$1$(SHARED_LIBRARY_SUFFIX)))
+
+    $$(eval $$(call SetupZipArchive,BUILD_DEMO_JVMTI_SRC_$1,\
+		SRC:=$(JDK_TOPDIR)/src/share/demo/jvmti/$1 $$(BUILD_DEMO_JVMTI_$1_EXTRA_SRC),\
+		ZIP:=$(JDK_OUTPUTDIR)/newdemo/jvmti/$1/src.zip))
+
+     $(JDK_OUTPUTDIR)/newdemo/jvmti/$1/README.txt : $(JDK_TOPDIR)/src/share/demo/jvmti/$1/README.txt
+		$(MKDIR) -p $$(@D)
+		$(CP) $$< $$@
+		$(CHMOD) -f ug+w $$@
+
+     ifneq (,$$(wildcard $(JDK_TOPDIR)/src/share/demo/jvmti/$1/*.java))
+         $$(eval $$(call SetupJavaCompilation,BUILD_DEMO_JVMTI_$1_JAVA,\
+                SETUP:=GENERATE_USINGJDKBYTECODE,\
+		SRC:=$(JDK_TOPDIR)/src/share/demo/jvmti/$1,\
+		BIN:=$(JDK_OUTPUTDIR)/newdemoclasses/jvmti/$1,\
+		COPY:=$(PATTERNS_TO_COPY),\
+		JAR:=$(JDK_OUTPUTDIR)/newdemo/jvmti/$1/$1.jar,\
+		JARMAIN:=,\
+		MANIFEST:=$(JDK_TOPDIR)/make/tools/manifest.mf))
+
+         BUILD_DEMOS += $(JDK_OUTPUTDIR)/newdemo/jvmti/$1/$1.jar
+     endif
+
+     BUILD_DEMOS += 	$(JDK_OUTPUTDIR)/newdemo/jvmti/$1/lib/$(LIBRARY_PREFIX)$1$(SHARED_LIBRARY_SUFFIX) \
+			$(JDK_OUTPUTDIR)/newdemo/jvmti/$1/src.zip \
+			$(JDK_OUTPUTDIR)/newdemo/jvmti/$1/README.txt
+endef
+
+$(eval $(call SetupJVMTIDemo,compiledMethodLoad,	agent_util))
+$(eval $(call SetupJVMTIDemo,gctest,			agent_util))
+$(eval $(call SetupJVMTIDemo,heapTracker,		agent_util java_crw_demo))
+$(eval $(call SetupJVMTIDemo,heapViewer,		agent_util))
+# hprof contains error messages using __FILE__ macro. These expand to the absolute path
+# in the new build system and relative in the old, causing the binaries to differ.
+$(eval $(call SetupJVMTIDemo,hprof,			java_crw_demo,\
+		-I$(JDK_TOPDIR)/src/share/npt -I$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/npt,C,\
+		-ldl,ws2_32.lib winmm.lib,-lsocket -lnsl))
+
+$(eval $(call SetupJVMTIDemo,minst,			agent_util java_crw_demo))
+$(eval $(call SetupJVMTIDemo,mtrace,			agent_util java_crw_demo))
+$(eval $(call SetupJVMTIDemo,waiters,			agent_util,,C++))
+$(eval $(call SetupJVMTIDemo,versionCheck,		agent_util))
+
+##################################################################################################
+
+# The jpda demo (com/sun/tools/example) is oddly enough stored in src/share/classes.
+# At least, we do not need to compile the jpda demo, just jar/zip up the sources.
+JPDA_SOURCES:=$(shell $(FIND) $(JDK_TOPDIR)/src/share/classes/com/sun/tools/example -type f)
+# The number of files are few enough so that we can use echo safely below to list them.
+JPDA_FILES:=$(subst $(JDK_TOPDIR)/src/share/classes/,,$(JPDA_SOURCES))
+
+$(JDK_OUTPUTDIR)/newdemo/jpda/src.zip : $(JPDA_SOURCES)
+		mkdir -p $(@D)
+		(cd $(JDK_TOPDIR)/src/share/classes && $(ZIP) -qru $@ com -i "com/sun/tools/example/*")
+
+$(JDK_OUTPUTDIR)/newdemo/jpda/examples.jar : $(JPDA_SOURCES)
+		mkdir -p $(@D)
+		$(RM) $(@D)/_the.sources
+		$(call ListPathsSafely,JPDA_FILES,\n, >> $(@D)/_the.sources)
+		$(SED) -e "s#@@RELEASE@@#$(RELEASE)#" 		\
+		       -e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" $(JDK_TOPDIR)/make/tools/manifest.mf > $(@D)/_the.manifest
+		$(ECHO) "Main-Class: " >> $(@D)/_the.manifest
+		(cd $(JDK_TOPDIR)/src/share/classes && $(JAR) cfm  $@ $(@D)/_the.manifest @$(@D)/_the.sources)
+		(cd $(JDK_TOPDIR)/src/share/classes/com/sun/tools/example && $(JAR) uf $@ README)
+
+$(JDK_OUTPUTDIR)/newdemo/jpda/com/sun/tools/example/README : $(JDK_TOPDIR)/src/share/classes/com/sun/tools/example/README
+		mkdir -p $(@D)
+		$(CP) $< $@
+		$(CHMOD) -f ug+w $@
+
+BUILD_DEMOS += $(JDK_OUTPUTDIR)/newdemo/jpda/src.zip $(JDK_OUTPUTDIR)/newdemo/jpda/examples.jar \
+		$(JDK_OUTPUTDIR)/newdemo/jpda/com/sun/tools/example/README
+
+##################################################################################################
+
+$(JDK_OUTPUTDIR)/newdemo/management/index.html : $(JDK_TOPDIR)/src/share/demo/management/index.html
+		mkdir -p $(@D)
+		$(CP) $< $@
+		$(CHMOD) -f ug+w $@
+
+$(JDK_OUTPUTDIR)/newdemo/jvmti/index.html : $(JDK_TOPDIR)/src/share/demo/jvmti/index.html
+		mkdir -p $(@D)
+		$(CP) $< $@
+		$(CHMOD) -f ug+w $@
+
+BUILD_DEMOS += $(JDK_OUTPUTDIR)/newdemo/management/index.html \
+		$(JDK_OUTPUTDIR)/newdemo/jvmti/index.html
+
+##################################################################################################
+
+# The netbeans project files are copied into the demo directory.
+
+NETBEANS_DEMO_PROJECTS_FILES=$(shell $(FIND) $(JDK_TOPDIR)/src/share/demo/nbproject -type f)
+
+$(JDK_OUTPUTDIR)/newdemo/_the.nbproject: $(NETBEANS_DEMO_PROJECTS_FILES)
+	$(MKDIR) -p $(JDK_OUTPUTDIR)/newdemo
+	$(RM) -rf $(JDK_OUTPUTDIR)/newdemo/nbproject
+	echo Copying Netbeans demo projects
+	(cd $(JDK_TOPDIR)/src/share/demo && cp -r nbproject $(JDK_OUTPUTDIR)/newdemo)
+	touch $@
+
+##################################################################################################
+
+$(JDK_OUTPUTDIR)/newdemo/README : $(JDK_TOPDIR)/src/share/demo/README
+	mkdir -p $(@D)
+	cp $< $@
+
+##################################################################################################
+
+all: $(BUILD_DEMOS) $(JDK_OUTPUTDIR)/newdemo/_the.nbproject $(JDK_OUTPUTDIR)/newdemo/README
+
+.PHONY: all
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/CompileJavaClasses.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,243 @@
+#
+# 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.
+#
+
+default: all
+
+include $(SPEC)
+include MakeBase.gmk
+include JavaCompilation.gmk
+
+# Setup the java compilers for the JDK build.
+include Setup.gmk
+
+EXCLUDES:=	sun/dc \
+		sun/security/pkcs11 \
+		com/sun/pept \
+		com/sun/tools/example/trace\
+		com/sun/tools/example/debug/bdi\
+		com/sun/tools/example/debug/event\
+		com/sun/tools/example/debug/gui \
+		javax/crypto \
+		com/oracle/security
+
+ifdef OPENJDK
+    EXCLUDES+=	com/sun/jmx/snmp \
+		sun/management/snmp \
+		com/sun/script
+endif
+
+ifneq ($(PLATFORM),solaris)
+   # Exclude Solaris nio and two security related files in src/share/classes
+   EXFILES:=SolarisAclFileAttributeView.java \
+	SolarisFileStore.java \
+	SolarisFileSystem.java \
+	SolarisFileSystemProvider.java \
+	SolarisNativeDispatcher.java \
+	SolarisUserDefinedFileAttributeView.java \
+	SolarisWatchService.java \
+	DevPollArrayWrapper.java \
+	DevPollSelectorImpl.java \
+	DevPollSelectorProvider.java \
+	SolarisAsynchronousChannelProvider.java \
+	SolarisEventPort.java \
+	SolarisAclFileAttributeView.java \
+	SolarisFileStore.java \
+	SolarisFileSystem.java \
+	SolarisFileSystemProvider.java \
+	SolarisUserDefinedFileAttributeView.java \
+	SolarisNativeDispatcher.java \
+	SolarisWatchService.java \
+	SolarisLoginModule.java \
+	SolarisSystem.java \
+	sun/tools/attach/SolarisAttachProvider.java \
+	sun/tools/attach/SolarisVirtualMachine.java
+endif
+
+# Why?
+EXFILES+=WrapperGenerator.java
+
+ifneq ($(PLATFORM),windows)
+    # Exclude Window security related files in src/share/classes
+    EXFILES+=NTLoginModule.java \
+             NTSystem.java
+
+endif
+
+ifeq ($(PLATFORM),windows)
+    # Does nio channels exist on Windows?
+    EXCLUDES+=sun/nio/ch
+endif
+
+ifneq ($(PLATFORM),linux)
+    EXCLUDES+=com/sun/java/swing/plaf/gtk
+    EXFILES+=sun/tools/attach/LinuxAttachProvider.java \
+	sun/tools/attach/LinuxVirtualMachine.java
+endif
+
+ifneq ($(PLATFORM),macosx)
+    EXFILES+=sun/nio/fs/BsdFileStore.java \
+	     sun/nio/fs/BsdFileSystem.java \
+             sun/nio/fs/BsdFileSystemProvider.java \
+             sun/nio/fs/BsdNativeDispatcher.java \
+             sun/tools/attach/BsdAttachProvider.java \
+             sun/tools/attach/BsdVirtualMachine.java
+endif
+
+# Generated nimbus files that apparently should not be compiled...
+EXFILES+=InternalFrameTitlePanePainter.java \
+	OptionPaneMessageAreaPainter.java \
+        ScrollBarPainter.java \
+	SliderPainter.java \
+	SpinnerPainter.java \
+	SplitPanePainter.java \
+	TabbedPanePainter.java
+
+# New class /java/lang/annotation/ContainerAnnotation.java is not included in old 
+# build
+EXFILES+=java/lang/annotation/ContainerAnnotation.java
+
+# Exclude BreakIterator classes that are just used in compile process to generate
+# data files and shouldn't go in the product
+EXFILES+=sun/text/resources/BreakIteratorRules.java \
+	sun/text/resources/BreakIteratorRules_th.java
+
+# TODO: Add BUILD_HEADLESS_ONLY to configure?
+ifdef BUILD_HEADLESS_ONLY
+    EXCLUDES+=sun/applet
+endif
+
+ifdef OPENJDK
+    EXCLUDES+=sun/java2d/cmm/kcms
+else
+    EXCLUDES+=sun/java2d/cmm/lcms
+endif
+
+# Not used on windows
+ifneq ($(PLATFORM), windows)
+    EXFILES+=sun/awt/AWTCharset.java
+endif
+
+# Exclude some generated AWT files that were implicitly not included by the old build.
+EXFILES+=sun/awt/X11/ScreenFormat.java \
+         sun/awt/X11/XArc.java \
+         sun/awt/X11/XChar2b.java \
+         sun/awt/X11/XCharStruct.java \
+         sun/awt/X11/XClassHint.java \
+         sun/awt/X11/XComposeStatus.java \
+         sun/awt/X11/XExtCodes.java \
+         sun/awt/X11/XFontProp.java \
+         sun/awt/X11/XFontSetExtents.java \
+         sun/awt/X11/XFontStruct.java \
+         sun/awt/X11/XGCValues.java \
+         sun/awt/X11/XHostAddress.java \
+         sun/awt/X11/XIMCallback.java \
+         sun/awt/X11/XIMHotKeyTrigger.java \
+         sun/awt/X11/XIMHotKeyTriggers.java \
+         sun/awt/X11/XIMPreeditCaretCallbackStruct.java \
+         sun/awt/X11/XIMPreeditDrawCallbackStruct.java \
+         sun/awt/X11/XIMPreeditStateNotifyCallbackStruct.java \
+         sun/awt/X11/XIMStatusDrawCallbackStruct.java \
+         sun/awt/X11/XIMStringConversionCallbackStruct.java \
+         sun/awt/X11/XIMStringConversionText.java \
+         sun/awt/X11/XIMStyles.java \
+         sun/awt/X11/XIMText.java \
+         sun/awt/X11/XIMValuesList.java \
+         sun/awt/X11/XImage.java \
+         sun/awt/X11/XKeyboardControl.java \
+         sun/awt/X11/XKeyboardState.java \
+         sun/awt/X11/XOMCharSetList.java \
+         sun/awt/X11/XOMFontInfo.java \
+         sun/awt/X11/XOMOrientation.java \
+         sun/awt/X11/XPoint.java \
+         sun/awt/X11/XRectangle.java \
+         sun/awt/X11/XSegment.java \
+         sun/awt/X11/XStandardColormap.java \
+         sun/awt/X11/XTextItem.java \
+         sun/awt/X11/XTextItem16.java \
+         sun/awt/X11/XTextProperty.java \
+         sun/awt/X11/XTimeCoord.java \
+         sun/awt/X11/XWindowChanges.java \
+         sun/awt/X11/XdbeSwapInfo.java \
+         sun/awt/X11/XmbTextItem.java \
+         sun/awt/X11/XwcTextItem.java
+
+# Exclude sun/security files that should go in a separate jar
+EXFILES+=sun/security/ec/ECDHKeyAgreement.java \
+         sun/security/ec/ECDSASignature.java \
+         sun/security/ec/ECKeyPairGenerator.java \
+         sun/security/ec/SunEC$1.java \
+         sun/security/ec/SunEC.java \
+         sun/security/ec/SunECEntries.java
+
+# Exclude another implicitly not included file.
+EXFILES+=sun/util/locale/AsciiUtil.java
+
+ifeq ($(PLATFORM), linux)
+    EXFILES+=sun/nio/fs/PollingWatchService.java
+endif
+
+# TODO: Fix when converting NIO
+# Exclude *-linux-arm.java and *-linux-ppc.java from closed.
+EXFILES+=-linux-arm.java \
+	 -linux-ppc.java
+
+# TODO: Is this necessary?
+ifeq ($(PLATFORM), windows)
+    EXFILES+=sun/net/sdp/SdpProvider.java
+else
+    EXFILES+=sun/net/www/protocol/http/ntlm/NTLMAuthSequence.java
+endif
+
+# Acquire a list of files that should be copied straight over to the classes.
+include CopyIntoClasses.gmk
+# Now we have COPY_PATTERNS, COPY_FILES and COPY_EXTRA
+
+ifndef OPENJDK
+    CLOSED_SRC_DIRS:=$(JDK_TOPDIR)/src/closed/share/classes \
+		     $(JDK_TOPDIR)/src/closed/$(LEGACY_HOST_OS_API)/classes
+endif
+
+$(eval $(call SetupJavaCompilation,BUILD_JDK,\
+                SETUP:=GENERATE_JDKBYTECODE,\
+		SRC:=$(JDK_TOPDIR)/src/share/classes \
+		     $(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/classes \
+		     $(JDK_OUTPUTDIR)/gensrc \
+		     $(CLOSED_SRC_DIRS),\
+		EXCLUDES:=$(EXCLUDES),\
+		EXCLUDE_FILES:=$(EXFILES),\
+		BIN:=$(JDK_OUTPUTDIR)/newclasses,\
+		COPY:=$(COPY_PATTERNS),\
+		COPY_FILES:=$(COPY_FILES),\
+		JAR:=$(JDK_OUTPUTDIR)/newrt.jar,\
+		HEADERS:=$(JDK_OUTPUTDIR)/gensrc_headers))
+
+# copy with -a to preserve timestamps so dependencies down the line aren't messed up
+all: $(BUILD_JDK) $(JDK_OUTPUTDIR)/newrt.jar $(COPY_EXTRA)
+	(cd $(JDK_OUTPUTDIR); \
+		$(CP) -rp newclasses/* classes; \
+		$(FIND) classes -name "_the.*" $(FIND_DELETE); \
+		$(TOUCH) $(JDK_OUTPUTDIR)/classes/META-INF/services/com.sun.tools.xjc.Plugin)
+
+.PHONY: all
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/CompileLaunchers.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,360 @@
+#
+# 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.
+#
+
+defalt: all
+
+include $(SPEC)
+include MakeBase.gmk
+include NativeCompilation.gmk
+
+# Setup the java compilers for the JDK build.
+include Setup.gmk
+
+BUILD_LAUNCHERS=
+
+define SetupLauncher
+    # TODO: Fix mapfile on solaris. Won't work with ld as linker.
+    # Parameter 1 is the name of the launcher (java,javac,jar...)
+    # Parameter 2 are extra CFLAGS
+    # Parameter 3 are extra LDFLAGS
+    # Parameter 4 are extra LDFLAGS_SUFFIX_posix
+    # Parameter 5 are extra LDFLAGS_SUFFIX_winapi
+    $(call SetupNativeCompilation,BUILD_LAUNCHER_$1,\
+	SRC:=$(JDK_TOPDIR)/src/share/bin,\
+	INCLUDE_FILES:=main.c,\
+	LANG:=C,\
+	CFLAGS:=$(CFLAGS_JDKEXE) $(C_O_FLAG_NORM) \
+		-I$(JDK_TOPDIR)/src/share/bin \
+		-I$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/bin \
+		-I$(JDK_TOPDIR)/src/$(PLATFORM)/bin \
+                -DFULL_VERSION='"$(FULL_VERSION)"' \
+                -DJDK_MAJOR_VERSION='"$(JDK_MAJOR_VERSION)"' \
+                -DJDK_MINOR_VERSION='"$(JDK_MINOR_VERSION)"' \
+		-DLIBARCHNAME='"$(ARCH)"' \
+		-DLAUNCHER_NAME='"openjdk"' \
+		-DPROGNAME='"$1"' $(DPACKAGEPATH) \
+		$2,\
+	CFLAGS_linux:=-fPIC,\
+	LDFLAGS:=$(LDFLAGS_JDKEXE) \
+                 $(call SET_SHARED_LIBRARY_ORIGIN,../lib/$(LIBARCH)/jli) \
+                 $(call SET_SHARED_LIBRARY_ORIGIN,../jre/lib/$(LIBARCH)/jli) \
+		 $3,\
+        LDFLAGS_linux:=$(call SET_SHARED_LIBRARY_MAPFILE,makefiles/mapfiles/launchers/mapfile-$(ARCH)),\
+        LDFLAGS_SUFFIX:=$(LDFLAGS_JDKEXE_SUFFIX),\
+	LDFLAGS_SUFFIX_posix:=$4 -lc,\
+	LDFLAGS_SUFFIX_winapi:=$5,\
+	BIN:=$(JDK_OUTPUTDIR)/newobjs/$1_objs,\
+	EXE:=$(JDK_OUTPUTDIR)/newobjs/$1$(EXE_SUFFIX),\
+	VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
+	RC_FLAGS:=$(RC_FLAGS)\
+		  /D "JDK_FNAME=$1$(EXE_SUFFIX)" \
+		  /D "JDK_INTERNAL_NAME=$1" \
+		  /D "JDK_FTYPE=0x1L")
+
+    BUILD_LAUNCHERS += $(JDK_OUTPUTDIR)/newobjs/$1$(EXE_SUFFIX) $(JDK_OUTPUTDIR)/bin/$1$(EXE_SUFFIX)
+endef
+
+##########################################################################################
+
+XLIBS:=-lX11
+ifeq ($(PLATFORM),macosx)
+    DPACKAGEPATH:=-DPACKAGE_PATH='"$(PACKAGE_PATH)"'
+    XLIBS:=
+endif
+
+$(eval $(call SetupLauncher,java,\
+    -DEXPAND_CLASSPATH_WILDCARDS))
+
+ifeq ($(PLATFORM),solaris)
+    THREAD_LIB:=-lthread
+endif
+ifeq ($(PLATFORM),linux)
+    THREAD_LIB:=-lpthread
+endif
+
+ifndef BUILD_HEADLESS_ONLY
+$(eval $(call SetupLauncher,appletviewer,\
+    -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "sun.applet.Main"$(COMMA) }',,\
+    $(THREAD_LIB) $(XLIBS) -ldl))
+endif
+
+$(eval $(call SetupLauncher,extcheck,\
+    -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "com.sun.tools.extcheck.Main"$(COMMA) }'))
+
+$(eval $(call SetupLauncher,idlj,\
+    -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "com.sun.tools.corba.se.idl.toJavaPortable.Compile"$(COMMA) }'))
+
+$(eval $(call SetupLauncher,jar,\
+    -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "sun.tools.jar.Main"$(COMMA) }'))
+
+$(eval $(call SetupLauncher,jarsigner,\
+    -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "sun.security.tools.JarSigner"$(COMMA) }'))
+
+$(eval $(call SetupLauncher,javac,\
+    -DEXPAND_CLASSPATH_WILDCARDS \
+    -DNEVER_ACT_AS_SERVER_CLASS_MACHINE \
+    -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "com.sun.tools.javac.Main"$(COMMA) }'))
+
+$(eval $(call SetupLauncher,javadoc,\
+    -DEXPAND_CLASSPATH_WILDCARDS \
+    -DNEVER_ACT_AS_SERVER_CLASS_MACHINE \
+    -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "com.sun.tools.javadoc.Main"$(COMMA) }'))
+
+$(eval $(call SetupLauncher,javah,\
+    -DEXPAND_CLASSPATH_WILDCARDS \
+    -DNEVER_ACT_AS_SERVER_CLASS_MACHINE \
+    -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "com.sun.tools.javah.Main"$(COMMA) }'))
+
+$(eval $(call SetupLauncher,javap,\
+    -DEXPAND_CLASSPATH_WILDCARDS \
+    -DNEVER_ACT_AS_SERVER_CLASS_MACHINE \
+    -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "com.sun.tools.javap.Main"$(COMMA) }'))
+
+BUILD_LAUNCHER_jconsole_CPPFLAGS_windows:=-DJAVAW
+BUILD_LAUNCHER_jconsole_LDFLAGS_windows:=user32.lib
+
+$(eval $(call SetupLauncher,jconsole,\
+    -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "-J-Djconsole.showOutputViewer"$(COMMA) "sun.tools.jconsole.JConsole"$(COMMA) }' \
+    -DAPP_CLASSPATH='{ "/lib/jconsole.jar"$(COMMA) "/lib/tools.jar"$(COMMA) "/classes" }'))
+
+$(eval $(call SetupLauncher,jdb,\
+    -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "com.sun.tools.example.debug.tty.TTY"$(COMMA) }' \
+    -DAPP_CLASSPATH='{ "/lib/tools.jar"$(COMMA) "/lib/sa-jdi.jar"$(COMMA) "/classes" }'))
+
+$(eval $(call SetupLauncher,jhat,\
+    -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "com.sun.tools.hat.Main"$(COMMA) }'))
+
+$(eval $(call SetupLauncher,jinfo,\
+    -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) \
+		   "-J-Dsun.jvm.hotspot.debugger.useProcDebugger"$(COMMA) \
+		   "-J-Dsun.jvm.hotspot.debugger.useWindbgDebugger"$(COMMA) \
+		   "sun.tools.jinfo.JInfo"$(COMMA) }' \
+    -DAPP_CLASSPATH='{ "/lib/tools.jar"$(COMMA) "/lib/sa-jdi.jar"$(COMMA) "/classes" }'))
+
+$(eval $(call SetupLauncher,jmap,\
+    -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) \
+		   "-J-Dsun.jvm.hotspot.debugger.useProcDebugger"$(COMMA) \
+		   "-J-Dsun.jvm.hotspot.debugger.useWindbgDebugger"$(COMMA) \
+		   "sun.tools.jmap.JMap"$(COMMA) }' \
+    -DAPP_CLASSPATH='{ "/lib/tools.jar"$(COMMA) "/lib/sa-jdi.jar"$(COMMA) "/classes" }'))
+
+$(eval $(call SetupLauncher,jps,\
+    -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "sun.tools.jps.Jps"$(COMMA) }'))
+
+$(eval $(call SetupLauncher,jrunscript,\
+    -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "com.sun.tools.script.shell.Main"$(COMMA) }'))
+
+$(eval $(call SetupLauncher,jsadebugd,\
+    -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "sun.jvm.hotspot.jdi.SADebugServer"$(COMMA) }' \
+    -DAPP_CLASSPATH='{ "/lib/tools.jar"$(COMMA) "/lib/sa-jdi.jar"$(COMMA) "/classes" }'))
+
+$(eval $(call SetupLauncher,jstack,\
+    -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) \
+		   "-J-Dsun.jvm.hotspot.debugger.useProcDebugger"$(COMMA) \
+		   "-J-Dsun.jvm.hotspot.debugger.useWindbgDebugger"$(COMMA) \
+		   "sun.tools.jstack.JStack"$(COMMA) }' \
+    -DAPP_CLASSPATH='{ "/lib/tools.jar"$(COMMA) "/lib/sa-jdi.jar"$(COMMA) "/classes" }'))
+
+$(eval $(call SetupLauncher,jstat,\
+    -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "sun.tools.jstat.Jstat"$(COMMA) }'))
+
+$(eval $(call SetupLauncher,jstatd,\
+    -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "sun.tools.jstatd.Jstatd"$(COMMA) }'))
+
+$(eval $(call SetupLauncher,keytool,\
+    -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "sun.security.tools.KeyTool"$(COMMA) }'))
+
+$(eval $(call SetupLauncher,native2ascii,\
+    -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "sun.tools.native2ascii.Main"$(COMMA) }'))
+
+ifndef BUILD_HEADLESS_ONLY
+$(eval $(call SetupLauncher,policytool,\
+    -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "sun.security.tools.policytool.PolicyTool"$(COMMA) }'))
+endif
+
+$(eval $(call SetupLauncher,rmic,\
+    -DEXPAND_CLASSPATH_WILDCARDS \
+    -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "sun.rmi.rmic.Main"$(COMMA) }'))
+
+$(eval $(call SetupLauncher,schemagen,\
+    -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "com.sun.tools.internal.jxc.SchemaGenerator"$(COMMA) }'))
+
+$(eval $(call SetupLauncher,serialver,\
+    -DEXPAND_CLASSPATH_WILDCARDS \
+    -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "sun.tools.serialver.SerialVer"$(COMMA) }'))
+
+$(eval $(call SetupLauncher,xjc,\
+    -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "com.sun.tools.internal.xjc.Driver"$(COMMA) }'))
+
+$(eval $(call SetupLauncher,wsgen,\
+    -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "com.sun.tools.internal.ws.WsGen"$(COMMA) }'))
+
+$(eval $(call SetupLauncher,wsimport,\
+    -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "com.sun.tools.internal.ws.WsImport"$(COMMA) }'))
+
+$(eval $(call SetupLauncher,orbd,\
+    -DJAVA_ARGS='{ 	"-J-ms8m"$(COMMA) \
+			"-J-Dcom.sun.CORBA.activation.DbDir=./orb.db"$(COMMA) \
+			"-J-Dcom.sun.CORBA.activation.Port=1049"$(COMMA) \
+			"-J-Dcom.sun.CORBA.POA.ORBServerId=1"$(COMMA) \
+			"com.sun.corba.se.impl.activation.ORBD"$(COMMA) }'))
+
+$(eval $(call SetupLauncher,servertool,\
+    -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "com.sun.corba.se.impl.activation.ServerTool"$(COMMA) }'))
+
+$(eval $(call SetupLauncher,tnameserv,\
+    -DJAVA_ARGS='{ 	"-J-ms8m"$(COMMA) \
+			"-J-Dcom.sun.CORBA.activation.DbDir=./orb.db"$(COMMA) \
+			"-J-Djava.util.logging.LoggingPermission=contol"$(COMMA) \
+			"-J-Dcom.sun.CORBA.POA.ORBServerId=1"$(COMMA) \
+			"com.sun.corba.se.impl.naming.cosnaming.TransientNameServer"$(COMMA) }'))
+
+$(eval $(call SetupLauncher,pack200,\
+    -DJAVA_ARGS='{	"-J-ms8m"$(COMMA) "com.sun.java.util.jar.pack.Driver"$(COMMA) "--pack" }'))
+
+$(eval $(call SetupLauncher,rmid,\
+    -DJAVA_ARGS='{	"-J-ms8m"$(COMMA) "sun.rmi.server.Activation"$(COMMA) }'))
+
+$(eval $(call SetupLauncher,rmiregistry,\
+    -DJAVA_ARGS='{	"-J-ms8m"$(COMMA) "sun.rmi.registry.RegistryImpl"$(COMMA) }'))
+
+$(eval $(call SetupLauncher,jcmd,\
+    -DJAVA_ARGS='{	"-J-ms8m"$(COMMA) "sun.tools.jcmd.JCmd"$(COMMA) }'))
+
+ifeq ($(PLATFORM),windows)
+    $(eval $(call SetupLauncher,kinit,\
+        -DJAVA_ARGS='{	"-J-ms8m"$(COMMA) "sun.security.krb5.internal.tools.Kinit"$(COMMA) }'))
+
+    $(eval $(call SetupLauncher,klist,\
+        -DJAVA_ARGS='{	"-J-ms8m"$(COMMA) "sun.security.krb5.internal.tools.Klist"$(COMMA) }'))
+
+    $(eval $(call SetupLauncher,ktab,\
+        -DJAVA_ARGS='{	"-J-ms8m"$(COMMA) "sun.security.krb5.internal.tools.Ktab"$(COMMA) }'))
+endif
+
+##########################################################################################
+# The order of the object files on the link command line affects the size of the resulting
+# binary (at least on linux) which causes the size to differ between old and new build.
+UNPACKEXE_ZIPOBJS = 	$(JDK_OUTPUTDIR)/newobjs/libzip/zcrc32$(OBJ_SUFFIX) \
+		     	$(JDK_OUTPUTDIR)/newobjs/libzip/deflate$(OBJ_SUFFIX) \
+			$(JDK_OUTPUTDIR)/newobjs/libzip/trees$(OBJ_SUFFIX) \
+			$(JDK_OUTPUTDIR)/newobjs/libzip/zadler32$(OBJ_SUFFIX) \
+			$(JDK_OUTPUTDIR)/newobjs/libzip/compress$(OBJ_SUFFIX) \
+			$(JDK_OUTPUTDIR)/newobjs/libzip/zutil$(OBJ_SUFFIX) \
+			$(JDK_OUTPUTDIR)/newobjs/libzip/inflate$(OBJ_SUFFIX) \
+			$(JDK_OUTPUTDIR)/newobjs/libzip/infback$(OBJ_SUFFIX) \
+			$(JDK_OUTPUTDIR)/newobjs/libzip/inftrees$(OBJ_SUFFIX) \
+			$(JDK_OUTPUTDIR)/newobjs/libzip/inffast$(OBJ_SUFFIX)
+
+$(eval $(call SetupNativeCompilation,BUILD_UNPACKEXE,\
+                SRC:=$(JDK_TOPDIR)/src/share/native/com/sun/java/util/jar/pack,\
+		EXCLUDE_FILES:=jni.cpp,\
+		LANG:=C++,\
+		CFLAGS:=$(CXXFLAGS_JDKEXE) $(CXX_O_FLAG_NORM) \
+			 -DFULL \
+			 -I$(JDK_TOPDIR)/src/share/native/java/util/zip/zlib-1.2.5,\
+		CFLAGS_release:=-DPRODUCT,\
+		CFLAGS_linux:=-fPIC,\
+		LDFLAGS:=$(LDFLAGS_JDKEXE) \
+			 $(call SET_SHARED_LIBRARY_MAPFILE,makefiles/mapfiles/libunpack/mapfile-vers-unpack200) \
+			 $(call SET_SHARED_LIBRARY_ORIGIN), \
+		LDFLAGS_SUFFIX:=$(UNPACKEXE_ZIPOBJS) $(LIBCXX),\
+		LDFLAGS_SUFFIX_solaris:=-lc,\
+		BIN:=$(JDK_OUTPUTDIR)/newobjs/unpackexe,\
+		EXE:=$(JDK_OUTPUTDIR)/newobjs/unpack200$(EXE_SUFFIX),\
+		VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
+		RC_FLAGS:=$(RC_FLAGS)\
+			  /D "JDK_FNAME=unpack200.exe" \
+			  /D "JDK_INTERNAL_NAME=unpack200" \
+			  /D "JDK_FTYPE=0x1L"))
+
+$(JDK_OUTPUTDIR)/bin/unpack200$(EXE_SUFFIX): $(UNPACKEXE_ZIPOBJS)
+
+ifeq ($(HOST_OS_API),winapi)
+    UNPACK_MANIFEST:=$(JDK_OUTPUTDIR)/newobjs/unpackexe/unpack200.exe.manifest
+    IMVERSIONVALUE=$(JDK_MINOR_VERSION).$(JDK_MICRO_VERSION).$(JDK_UPDATE_VERSION).$(COOKED_BUILD_NUMBER)
+    SED_ALL_MANIFEST=$(SED) -e 's%IMVERSION%$(IMVERSIONVALUE)%g'
+
+    $(UNPACK_MANIFEST): $(JDK_TOPDIR)/src/windows/resource/unpack200_proto.exe.manifest
+	$(CAT) $< | $(SED_ALL_MANIFEST) > $@
+
+    # Adding a dependency to spec file might be a good idea here, to force rerun on version change.
+    $(JDK_OUTPUTDIR)/newobjs/unpackexe/unpack200.exe.manifest.mt: $(UNPACK_MANIFEST)
+	$(MT) /manifest $< /outputresource:$(JDK_OUTPUTDIR)/newobjs/unpack200$(EXE_SUFFIX);#1
+	touch $@
+
+    $(JDK_OUTPUTDIR)/newobjs/unpackexe/unpack200.exe.manifest.mt: $(JDK_OUTPUTDIR)/bin/unpack200$(EXE_SUFFIX)
+endif
+
+BUILD_LAUNCHERS += $(JDK_OUTPUTDIR)/bin/unpack200$(EXE_SUFFIX)
+
+##########################################################################################
+
+#
+# The java-rmi.cgi script in bin/ only gets delivered in certain situations
+#
+JAVA_RMI_CGI:=$(JDK_OUTPUTDIR)/bin/java-rmi.cgi
+ifeq ($(PLATFORM), linux)
+  BUILD_LAUNCHERS += $(JAVA_RMI_CGI)
+endif
+ifeq ($(PLATFORM), solaris)
+  ifeq ($(ARCH_DATA_MODEL), 32)
+    BUILD_LAUNCHERS += $(JAVA_RMI_CGI)
+  endif
+endif
+
+# TODO: 
+# On windows java-rmi.cgi shouldn't be bundled since Java 1.2, but has been built all
+# this time anyway. Since jdk6, it has been built from the wrong source and resulted
+# in a copy of the standard java launcher named "java-rmi.exe" ending up in the final
+# images bin dir. This weird behavior is mimicked here in the converted makefiles for
+# now. Should probably just be deleted.
+# http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6512052
+ifeq ($(HOST_OS_API),winapi)
+    $(eval $(call SetupLauncher,java-rmi,\
+        -DEXPAND_CLASSPATH_WILDCARDS,\
+        $(call SET_SHARED_LIBRARY_MAPFILE,makefiles/java/main/java/mapfile-$(ARCH))))
+
+    $(JAVA_RMI_CGI): $(JDK_OUTPUTDIR)/newobjs/java-rmi$(EXE_SUFFIX)
+	$(CP) $< $@
+
+    BUILD_LAUNCHERS += $(JAVA_RMI_CGI)
+else
+    $(JAVA_RMI_CGI): $(JDK_TOPDIR)/src/solaris/bin/java-rmi.cgi.sh
+	$(CP) $< $@
+	$(CHMOD) a+x $@
+endif
+
+##########################################################################################
+
+$(JDK_OUTPUTDIR)/bin/% : $(JDK_OUTPUTDIR)/newobjs/%
+	echo Copying $(@F)
+	$(CP) $< $@
+
+$(BUILD_LAUNCHERS) : $(JDK_TOPDIR)/makefiles/CompileLaunchers.gmk
+
+all: $(BUILD_LAUNCHERS)
+
+.PHONY: all
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/CompileNativeLibraries.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,608 @@
+#
+# 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.
+#
+
+defalt: all
+
+include $(SPEC)
+include MakeBase.gmk
+include NativeCompilation.gmk
+
+# Setup the java compilers for the JDK build.
+include Setup.gmk
+
+# Copy files (can now depend on $(COPY_FILES))
+include CopyFiles.gmk
+
+# Include the javah generated headers.
+CFLAGS_JDKLIB += -I$(JDK_OUTPUTDIR)/gensrc_headers
+CXXFLAGS_JDKLIB += -I$(JDK_OUTPUTDIR)/gensrc_headers
+
+# Put the libraries here. Different locations for different host apis.
+ifeq ($(HOST_OS_API),posix)
+    ifneq ($(HOST_OS),macosx)
+        INSTALL_LIBRARIES_HERE:=$(JDK_OUTPUTDIR)/lib/$(LIBARCH)
+        LIBARCHDIR=$(LIBARCH)/
+    else
+        INSTALL_LIBRARIES_HERE:=$(JDK_OUTPUTDIR)/lib
+        LIBARCHDIR=/
+    endif
+else
+    INSTALL_LIBRARIES_HERE:=$(JDK_OUTPUTDIR)/bin
+endif
+
+$(INSTALL_LIBRARIES_HERE)/%$(SHARED_LIBRARY_SUFFIX) : $(JDK_OUTPUTDIR)/newobjs/%$(SHARED_LIBRARY_SUFFIX)
+	echo Copying $(@F)
+	$(CP) $< $@
+
+BUILD_LIBRARIES=
+
+# TODO: Temporary until awt is converted:
+# OBJDIRNAME is the name of the directory where the object code is to
+#   be placed. It's name depends on whether the data model architecture 
+#   is 32-bit or not.
+ifneq ($(ARCH_DATA_MODEL), 32)
+  OBJDIRNAME  = obj$(ARCH_DATA_MODEL)$(OBJDIRNAME_SUFFIX)
+else
+  OBJDIRNAME  = obj$(OBJDIRNAME_SUFFIX)
+endif
+
+##########################################################################################
+
+$(eval $(call SetupNativeCompilation,BUILD_LIBZIP,\
+                SRC:=$(JDK_TOPDIR)/src/share/native/java/util/zip,\
+		LANG:=C,\
+		CFLAGS:=$(CFLAGS_JDKLIB) $(C_O_FLAG_NORM) $(SHARED_LIBRARY_FLAGS) \
+                        -I$(JDK_TOPDIR)/src/share/native/java/util/zip/zlib-1.2.5 \
+		        -I$(JDK_TOPDIR)/src/share/native/java/io \
+                        -I$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/java/io,\
+		CFLAGS_posix:=-DUSE_MMAP,\
+		LDFLAGS:=$(LDFLAGS_JDKLIB) \
+			 $(EXPORT_ZIP_FUNCS) \
+			 $(call SET_SHARED_LIBRARY_MAPFILE,makefiles/mapfiles/libzip/mapfile-vers),\
+		LDFLAGS_winapi:=-export:ZIP_Open -export:ZIP_Close -export:ZIP_FindEntry \
+                                -export:ZIP_ReadEntry -export:ZIP_GetNextEntry,\
+		LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\
+		BIN:=$(JDK_OUTPUTDIR)/newobjs/libzip,\
+		LIB:=$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)zip$(SHARED_LIBRARY_SUFFIX)))
+
+BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)zip$(SHARED_LIBRARY_SUFFIX)
+
+##########################################################################################
+
+LIBUNPACK_LIB_FILE := $(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)unpack$(SHARED_LIBRARY_SUFFIX)
+
+$(eval $(call SetupNativeCompilation,BUILD_LIBUNPACK,\
+                SRC:=$(JDK_TOPDIR)/src/share/native/com/sun/java/util/jar/pack,\
+		EXCLUDE_FILES:=main.cpp,\
+		LANG:=C++,\
+		CFLAGS:=$(CXXFLAGS_JDKLIB) $(CXX_O_FLAG_NORM) $(SHARED_LIBRARY_FLAGS) \
+			 -DNO_ZLIB -DUNPACK_JNI -DFULL,\
+		CFLAGS_release:=-DPRODUCT,\
+		LDFLAGS:=$(LDFLAGS_JDKLIB)\
+			 $(call SET_SHARED_LIBRARY_MAPFILE,makefiles/mapfiles/libunpack/mapfile-vers) \
+			 $(call SET_SHARED_LIBRARY_ORIGIN),\
+		LDFLAGS_winapi:=-map:$(JDK_OUTPUTDIR)/newobjs/unpack.map /debug,\
+		LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\
+		LDFLAGS_SUFFIX_posix:=$(LIBCXX),\
+		BIN:=$(JDK_OUTPUTDIR)/newobjs/libunpack,\
+		LIB:=$(LIBUNPACK_LIB_FILE),\
+		VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
+		RC_FLAGS:=$(RC_FLAGS)\
+			  /D "JDK_FNAME=unpack.dll" \
+			  /D "JDK_INTERNAL_NAME=unpack" \
+			  /D "JDK_FTYPE=0x2L"))
+
+BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)unpack$(SHARED_LIBRARY_SUFFIX)
+
+ifeq ($(HOST_OS_API),winapi)
+    $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)unpack.map: $(LIBUNPACK_LIB_FILE)
+	echo Copying $(@F)
+	$(CP) $(patsubst %$(SHARED_LIBRARY_SUFFIX),%.map,$<) $@
+
+    $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)unpack.pdb: $(LIBUNPACK_LIB_FILE)
+	echo Copying $(@F)
+	$(CP) $(patsubst %$(SHARED_LIBRARY_SUFFIX),%.pdb,$<) $@
+endif
+
+##########################################################################################
+
+$(eval $(call SetupNativeCompilation,BUILD_LIBVERIFY,\
+                SRC:=$(JDK_TOPDIR)/src/share/native/common,\
+		EXCLUDE_FILES:=check_version.c jdk_util.c jio.c jni_util.c verify_stub.c,\
+		LANG:=C,\
+		CFLAGS:=$(CFLAGS_JDKLIB) ${C_O_FLAG_HI} $(SHARED_LIBRARY_FLAGS), \
+		LDFLAGS:=$(LDFLAGS_JDKLIB) \
+			 $(call SET_SHARED_LIBRARY_MAPFILE,makefiles/mapfiles/libverify/mapfile-vers),\
+		LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\
+		BIN:=$(JDK_OUTPUTDIR)/newobjs/libverify,\
+		LIB:=$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)verify$(SHARED_LIBRARY_SUFFIX)))
+
+BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)verify$(SHARED_LIBRARY_SUFFIX)
+
+##########################################################################################
+
+$(eval $(call SetupNativeCompilation,BUILD_LIBFDLIBM,\
+                SRC:=$(JDK_TOPDIR)/src/share/native/java/lang/fdlibm/src,\
+		LANG:=C,\
+		CFLAGS:=$(CFLAGS_JDKLIB) ${C_O_FLAG_NONE}\
+			-I$(JDK_TOPDIR)/src/share/native/java/lang/fdlibm/include,\
+		CFLAGS_winapi_debug:=-DLOGGING,\
+		ARFLAGS:=$(ARFLAGS),\
+		BIN:=$(JDK_OUTPUTDIR)/newobjs/libfdlibm,\
+		LIB:=$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)fdlibm$(STATIC_LIBRARY_SUFFIX)))
+
+BUILD_LIBRARIES += $(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)fdlibm$(STATIC_LIBRARY_SUFFIX)
+
+##########################################################################################
+
+LIBATTACH_EXCLUDE_FILES:=
+ifneq ($(PLATFORM),solaris)
+    LIBATTACH_EXCLUDE_FILES+=SolarisVirtualMachine.c
+endif
+ifneq ($(PLATFORM),linux)
+    LIBATTACH_EXCLUDE_FILES+=LinuxVirtualMachine.c
+endif
+ifneq ($(PLATFORM),macosx)
+    LIBATTACH_EXCLUDE_FILES+=BsdVirtualMachine.c
+endif
+
+$(eval $(call SetupNativeCompilation,BUILD_LIBATTACH,\
+                SRC:=$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/sun/tools/attach,\
+		EXCLUDE_FILES:=$(LIBATTACH_EXCLUDE_FILES),\
+		LANG:=C,\
+		CFLAGS:=$(CFLAGS_JDKLIB) $(C_O_FLAG_NORM) $(SHARED_LIBRARY_FLAGS),\
+		LDFLAGS:=$(LDFLAGS_JDKLIB) \
+			 $(call SET_SHARED_LIBRARY_MAPFILE,makefiles/mapfiles/libattach/mapfile-$(PLATFORM)) \
+			 $(call SET_SHARED_LIBRARY_ORIGIN),\
+		LDFLAGS_solaris:=-ldoor,\
+		LDFLAGS_winapi:=psapi.lib advapi32.lib,\
+		LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\
+		BIN:=$(JDK_OUTPUTDIR)/newobjs/libattach,\
+		LIB:=$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)attach$(SHARED_LIBRARY_SUFFIX)))
+
+BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)attach$(SHARED_LIBRARY_SUFFIX)
+
+##########################################################################################
+
+$(eval $(call SetupNativeCompilation,BUILD_LIBDT_SOCKET,\
+                SRC:=$(JDK_TOPDIR)/src/share/transport/socket \
+			$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/transport/socket,\
+		LANG:=C,\
+		CFLAGS:=$(CFLAGS_JDKLIB) -DUSE_MMAP $(C_O_FLAG_NORM) $(SHARED_LIBRARY_FLAGS) \
+                        -I$(INCLUDEDIR) -I$(JDK_OUTPUTDIR)/include/$(PLATFORM) \
+                        -I$(JDK_TOPDIR)/src/share/transport/socket \
+		        -I$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/transport/socket \
+                        -I$(JDK_TOPDIR)/src/share/back/export \
+                        -I$(JDK_TOPDIR)/src/share/back,\
+		LDFLAGS:=$(LDFLAGS_JDKLIB) \
+			 $(call SET_SHARED_LIBRARY_MAPFILE,makefiles/mapfiles/libdt_socket/mapfile-vers),\
+		LDFLAGS_SUFFIX_linux:=-lpthread,\
+		LDFLAGS_SUFFIX_solaris:=-lnsl -lsocket,\
+		LDFLAGS_SUFFIX_winapi:=-export:jdwpTransport_OnLoad ws2_32.lib,\
+		LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\
+		BIN:=$(JDK_OUTPUTDIR)/newobjs/libdt_socket,\
+		LIB:=$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)dt_socket$(SHARED_LIBRARY_SUFFIX)))
+
+BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)dt_socket$(SHARED_LIBRARY_SUFFIX)
+
+##########################################################################################
+
+ifeq ($(HOST_OS_API),winapi)
+
+  $(eval $(call SetupNativeCompilation,BUILD_LIBDT_SHMEM,\
+                SRC:= $(JDK_TOPDIR)/src/share/native/com/sun/tools/jdi \
+			$(JDK_TOPDIR)/src/share/transport/shmem \
+			$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/transport/shmem,\
+		LANG:=C,\
+		CFLAGS:=$(CFLAGS_JDKLIB) -DUSE_MMAP $(C_O_FLAG_NORM) $(SHARED_LIBRARY_FLAGS)\
+                        -I$(INCLUDEDIR) -I$(JDK_OUTPUTDIR)/include/$(PLATFORM) \
+                        -I$(JDK_TOPDIR)/src/share/transport/shmem \
+		        -I$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/transport/shmem \
+                        -I$(JDK_TOPDIR)/src/share/back/export, \
+		LDFLAGS:=$(LDFLAGS_JDKLIB),\
+		LDFLAGS_winapi:=-export:jdwpTransport_OnLoad,\
+		LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\
+		BIN:=$(JDK_OUTPUTDIR)/newobjs/libdt_shmem,\
+		LIB:=$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)dt_shmem$(SHARED_LIBRARY_SUFFIX)))
+
+  BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)dt_shmem$(SHARED_LIBRARY_SUFFIX)
+
+endif # PLATFORM
+
+##########################################################################################
+# JDWP_LOGGING causes log messages to be compiled into the library. These reference the 
+# __FILE__ macro which here expands to the absolute path of the file while the old build 
+# system used a relative path. This causes the binaries to differ in size.
+$(eval $(call SetupNativeCompilation,BUILD_LIBJDWP,\
+                SRC:=$(JDK_TOPDIR)/src/share/back $(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/back,\
+		LANG:=C,\
+		CFLAGS:=$(CFLAGS_JDKLIB) -DJDWP_LOGGING $(C_O_FLAG_NORM) $(SHARED_LIBRARY_FLAGS)\
+		 -I$(JDK_TOPDIR)/src/share/transport/export \
+                 -I$(JDK_TOPDIR)/src/share/back/export \
+                 -I$(JDK_TOPDIR)/src/share/npt \
+                 -I$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/npt \
+                 -I$(JDK_TOPDIR)/src/share/back \
+                 -I$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/back \
+		 -I$(JDK_OUTPUTDIR)/gensrc_jdwp_headers,\
+		LDFLAGS:=$(filter-out -ljava,$(LDFLAGS_JDKLIB)) \
+			 $(call SET_SHARED_LIBRARY_MAPFILE,makefiles/mapfiles/libjdwp/mapfile-vers),\
+		LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\
+		LDFLAGS_SUFFIX_linux:=-ldl,\
+		BIN:=$(JDK_OUTPUTDIR)/newobjs/libjdwp,\
+		LIB:=$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)jdwp$(SHARED_LIBRARY_SUFFIX)))
+
+BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)jdwp$(SHARED_LIBRARY_SUFFIX)
+
+##########################################################################################
+
+ifneq ($(PLATFORM),solaris)
+   LIBJAAS_EXCLUDE_FILES:=Solaris.c
+endif
+
+$(eval $(call SetupNativeCompilation,BUILD_LIBJAAS,\
+                SRC:=$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/com/sun/security/auth/module,\
+		LANG:=C,\
+		CFLAGS:=$(CFLAGS_JDKLIB) $(C_O_FLAG_NORM) $(SHARED_LIBRARY_FLAGS),\
+		LDFLAGS:=$(filter-out -ljava,$(LDFLAGS_JDKLIB)) \
+			 $(call SET_SHARED_LIBRARY_ORIGIN),\
+		LDFLAGS_winapi:=netapi32.lib user32.lib mpr.lib advapi32.lib,\
+		LDFLAGS_solaris:=$(call SET_SHARED_LIBRARY_MAPFILE,makefiles/mapfiles/libjaas/mapfile-vers),\
+		LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\
+		EXCLUDE_FILES:=$(LIBJAAS_EXCLUDE_FILES),\
+		BIN:=$(JDK_OUTPUTDIR)/newobjs/libjaas,\
+		LIB:=$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)jaas$(SHARED_LIBRARY_SUFFIX)))
+
+BUILD_LIBRARIES += $(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)jaas$(SHARED_LIBRARY_SUFFIX)
+
+# Oddly enough, it is called jaas_nt.dll under winapi and libjaas_unix.so under posix.
+ifeq ($(PLATFORM),windows)
+    $(INSTALL_LIBRARIES_HERE)/jaas_nt.dll : $(JDK_OUTPUTDIR)/newobjs/jaas.dll
+	echo Copying $(@F)
+	$(CP) $< $@
+    BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/jaas_nt.dll
+else
+    $(INSTALL_LIBRARIES_HERE)/libjaas_unix$(SHARED_LIBRARY_SUFFIX) : $(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)jaas$(SHARED_LIBRARY_SUFFIX)
+	echo Copying $(@F)
+	$(CP) $< $@
+    BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/libjaas_unix$(SHARED_LIBRARY_SUFFIX)
+endif
+
+##########################################################################################
+
+ifeq ($(HOST_OS_API),posix)
+  # TODO make this work on macosx
+  ifneq ($(HOST_OS),macosx)
+#
+# NOTE: Change -L flag to point to new lib location after converting libnio. Also
+#       add dependency on nio from sctp.
+    $(eval $(call SetupNativeCompilation,BUILD_LIBSCTP,\
+                SRC:=$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/sun/nio/ch/sctp,\
+		LANG:=C,\
+		CFLAGS:=$(CFLAGS_JDKLIB) $(C_O_FLAG_NORM) $(SHARED_LIBRARY_FLAGS)\
+			-I$(JDK_TOPDIR)/src/share/native/sun/nio/ch \
+			-I$(JDK_TOPDIR)/src/share/native/sun/nio/ch/sctp \
+			-I$(JDK_TOPDIR)/src/share/native/java/net \
+			-I$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/sun/nio/ch \
+			-I$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/java/net,\
+		CFLAGS_linux:=-Werror,\
+		LDFLAGS:=$(LDFLAGS_JDKLIB) -L$(JDK_OUTPUTDIR)/lib/$(LIBARCHDIR)\
+			 $(call SET_SHARED_LIBRARY_MAPFILE,makefiles/mapfiles/libsctp/mapfile-vers) \
+			 $(call SET_SHARED_LIBRARY_ORIGIN),\
+		LDFLAGS_SUFFIX_linux:=-lpthread,\
+		LDFLAGS_SUFFIX_posix:=-ldl -lnio -lnet,\
+		LDFLAGS_SUFFIX_solaris:=-lsocket,\
+		LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\
+		INCLUDE_FILES:=SctpNet.c SctpChannelImpl.c SctpServerChannelImpl.c,\
+		BIN:=$(JDK_OUTPUTDIR)/newobjs/libsctp,\
+		LIB:=$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)sctp$(SHARED_LIBRARY_SUFFIX)))
+
+    BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)sctp$(SHARED_LIBRARY_SUFFIX)
+  endif
+endif
+
+##########################################################################################
+
+$(eval $(call SetupNativeCompilation,BUILD_LIBJSDT,\
+                SRC:=$(JDK_TOPDIR)/src/share/native/sun/tracing/dtrace\
+			$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/sun/tracing/dtrace,\
+		LANG:=C,\
+		CFLAGS:=$(CFLAGS_JDKLIB) $(C_O_FLAG_NORM) $(SHARED_LIBRARY_FLAGS)\
+			-I$(JDK_TOPDIR)/src/share/native/sun/tracing/dtrace,\
+		LDFLAGS:=$(LDFLAGS_JDKLIB) \
+			 $(call SET_SHARED_LIBRARY_MAPFILE,makefiles/mapfiles/libjsdt/mapfile-vers) \
+			 $(call SET_SHARED_LIBRARY_ORIGIN),\
+		LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX) -ldl,\
+		BIN:=$(JDK_OUTPUTDIR)/newobjs/libjsdt,\
+		LIB:=$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)jsdt$(SHARED_LIBRARY_SUFFIX)))
+
+BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)jsdt$(SHARED_LIBRARY_SUFFIX)
+
+##########################################################################################
+
+ifdef OPENJDK
+    # TODO: Update awt lib path when awt is converted
+    $(eval $(call SetupNativeCompilation,BUILD_LIBLCMS,\
+                SRC:=$(JDK_TOPDIR)/src/share/native/sun/java2d/cmm/lcms \
+		     $(JDK_TOPDIR)/src/share/native/sun/java2d/,\
+		INCLUDE_FILES:=cmscam02.c cmscgats.c cmscnvrt.c cmserr.c \
+			       cmsgamma.c cmsgmt.c cmsintrp.c cmsio0.c \
+			       cmsio1.c cmslut.c cmsmd5.c cmsmtrx.c \
+			       cmsnamed.c cmsopt.c cmspack.c cmspcs.c \
+			       cmsplugin.c cmsps2.c cmssamp.c cmssm.c \
+			       cmstypes.c cmsvirt.c cmswtpnt.c cmsxform.c \
+			       LCMS.c,\
+		LANG:=C,\
+		CFLAGS:=$(filter-out -xc99=%none,$(CFLAGS_JDKLIB)) $(C_O_FLAG_NORM) \
+			$(SHARED_LIBRARY_FLAGS) \
+			-I$(JDK_TOPDIR)/src/share/native/sun/java2d \
+			-I$(JDK_TOPDIR)/src/share/native/sun/awt/debug,\
+		CFLAGS_solaris:=-xc99=no_lib,\
+		CFLAGS_winapi:=-DCMS_IS_WINDOWS_,\
+		LDFLAGS:=$(LDFLAGS_JDKLIB) \
+			 $(call SET_SHARED_LIBRARY_MAPFILE,makefiles/mapfiles/liblcms/mapfile-vers),\
+		LDFLAGS_posix:=-L$(JDK_OUTPUTDIR)/lib/$(LIBARCHDIR)xawt,\
+		LDFLAGS_solaris:=/usr/lib$(ISA_DIR)/libm.so.2,\
+		LDFLAGS_winapi:=$(JDK_OUTPUTDIR)/tmp/sun/sun.awt/awt/$(OBJDIRNAME)/awt.lib,\
+		LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\
+		LDFLAGS_SUFFIX_posix:=-lawt,\
+		LDFLAGS_SUFFIX_linux:=-lm,\
+		BIN:=$(JDK_OUTPUTDIR)/newobjs/liblcms,\
+		LIB:=$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)lcms$(SHARED_LIBRARY_SUFFIX)))
+
+    BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)lcms$(SHARED_LIBRARY_SUFFIX)
+endif
+
+##########################################################################################
+
+ifdef OPENJDK
+    BUILD_LIBJPEG_MAPFILE := makefiles/mapfiles/libjpeg/mapfile-vers
+else
+    BUILD_LIBJPEG_MAPFILE := makefiles/mapfiles/libjpeg/mapfile-vers-closed
+    BUILD_LIBJPEG_CLOSED_SRC := $(JDK_TOPDIR)/src/closed/share/native/sun/awt/image/jpeg
+    BUILD_LIBJPEG_CLOSED_INCLUDES := -I$(BUILD_LIBJPEG_CLOSED_SRC)
+endif
+
+ifeq ($(PLATFORM), solaris)
+    ifneq ($(ARCH), amd64)
+        BUILD_LIBJPEG_REORDER := $(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/reorder-$(ARCH)
+        $(JDK_OUTPUTDIR)/newobjs/libjpeg/mapfile-vers : $(JDK_TOPDIR)/$(BUILD_LIBJPEG_MAPFILE) \
+							$(BUILD_LIBJPEG_REORDER)
+		$(MKDIR) -p $(@D)
+		$(CAT) $(JDK_TOPDIR)/$(BUILD_LIBJPEG_MAPFILE) > $@
+		$(SED) -e 's=OUTPUTDIR=$(JDK_OUTPUTDIR)=' $(BUILD_LIBJPEG_REORDER) >> $@
+        LIBJPEG_MAPFILE:=$(JDK_OUTPUTDIR)/newobjs/libjpeg/mapfile-vers
+
+        $(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)jpeg$(SHARED_LIBRARY_SUFFIX): \
+			$(JDK_OUTPUTDIR)/newobjs/libjpeg/mapfile-vers
+    endif
+endif
+
+# Suppress gcc warnings like "variable might be clobbered by 'longjmp'
+# or 'vfork'": this warning indicates that some variable is placed to
+# a register by optimized compiler and it's value might be lost on longjmp().
+# Recommended way to avoid such warning is to declare the variable as
+# volatile to prevent the optimization. However, this approach does not
+# work because we have to declare all variables as volatile in result.
+#ifndef CROSS_COMPILE_ARCH
+#    CC_43_OR_NEWER := \
+#        $(shell $(EXPR) $(CC_MAJORVER) \> 4 \| \
+#              \( $(CC_MAJORVER) = 4 \& $(CC_MINORVER) \>= 3 \) )
+#    ifeq ($(CC_43_OR_NEWER),1)
+#        BUILD_LIBJPEG_CFLAGS_linux += -Wno-clobbered
+#    endif
+#endif
+
+$(eval $(call SetupNativeCompilation,BUILD_LIBJPEG,\
+                SRC:=$(BUILD_LIBJPEG_CLOSED_SRC) \
+		     $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg,\
+		LANG:=C,\
+		CFLAGS:=$(CFLAGS_JDKLIB) $(C_O_FLAG_HI) $(SHARED_LIBRARY_FLAGS) \
+			$(BUILD_LIBJPEG_CLOSED_INCLUDES) \
+			-I$(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg,\
+		CFLAGS_solaris:=-xF,\
+		LDFLAGS:=$(LDFLAGS_JDKLIB) \
+			 $(call SET_SHARED_LIBRARY_MAPFILE,$(BUILD_LIBJPEG_MAPFILE))\
+			 $(call SET_SHARED_LIBRARY_ORIGIN),\
+		LDFLAGS_linux:=-ldl,\
+		LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\
+		BIN:=$(JDK_OUTPUTDIR)/newobjs/libjpeg,\
+		LIB:=$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)jpeg$(SHARED_LIBRARY_SUFFIX)))
+
+BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)jpeg$(SHARED_LIBRARY_SUFFIX)
+
+##########################################################################################
+
+ifndef OPENJDK
+    FONT_HEADERS := -I$(CLOSED_SRC)/share/native/$(PKGDIR)/t2k
+    BUILD_LIBFONTMANAGER_MAPFILE := makefiles/mapfiles/libfontmanager/mapfile-vers
+    LIBFONTMANAGER_EXCLUDE_FILES += freetypeScaler.c
+else
+    FONT_HEADERS := $(FREETYPE2_CFLAGS)
+    BUILD_LIBFONTMANAGER_MAPFILE := makefiles/mapfiles/libfontmanager/mapfile-vers.openjdk
+    BUILD_LIBFONTMANAGER_FONTLIB := $(FREETYPE2_LIBS)
+endif
+
+ifeq ($(PLATFORM),windows)
+    LIBFONTMANAGER_EXCLUDE_FILES += X11FontScaler.c \
+				    X11TextRenderer.c
+else
+    LIBFONTMANAGER_EXCLUDE_FILES += fontpath.c \
+				    lcdglyph.c
+endif
+
+BUILD_LIBFONTMANAGER_CFLAGS_COMMON := $(SHARED_LIBRARY_FLAGS) \
+			-DLE_STANDALONE -DHEADLESS \
+			$(FONT_HEADERS) \
+			-I$(JDK_TOPDIR)/src/share/native/sun/font \
+			-I$(JDK_TOPDIR)/src/share/native/sun/font/layout \
+			-I$(JDK_TOPDIR)/src/share/native/sun/awt/image/cvutils \
+			-I$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/sun/awt \
+			-I$(JDK_TOPDIR)/src/share/native/sun/awt/debug \
+			-I$(JDK_TOPDIR)/src/share/native/sun/java2d/loops \
+			-I$(JDK_TOPDIR)/src/share/native/sun/java2d/pipe \
+			-I$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/sun/java2d \
+			-I$(JDK_TOPDIR)/src/share/native/sun/java2d
+
+$(eval $(call SetupNativeCompilation,BUILD_LIBFONTMANAGER,\
+                SRC:=$(JDK_TOPDIR)/src/share/native/sun/font\
+		     $(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/sun/font,\
+		EXCLUDE_FILES:=$(LIBFONTMANAGER_EXCLUDE_FILES) \
+			       AccelGlyphCache.c,\
+		LANG:=C++,\
+		CFLAGS:=$(CFLAGS_JDKLIB) $(BUILD_LIBFONTMANAGER_CFLAGS_COMMON),\
+		CXXFLAGS:=$(CXXFLAGS_JDKLIB) $(BUILD_LIBFONTMANAGER_CFLAGS_COMMON),\
+		CFLAGS_posix:=$(C_O_FLAG_HI),\
+		CXXFLAGS_posix:=$(CXX_O_FLAG_HI),\
+		CFLAGS_windows=$(C_O_FLAG_NORM)\
+				-I$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/sun/windows \
+				-DCC_NOEX, \
+		LDFLAGS:=$(subst -Xlinker -z -Xlinker defs,,$(LDFLAGS_JDKLIB)) \
+			 $(call SET_SHARED_LIBRARY_MAPFILE,$(BUILD_LIBFONTMANAGER_MAPFILE)) \
+			 $(call SET_SHARED_LIBRARY_ORIGIN),\
+		LDFLAGS_solaris:=-L$(JDK_OUTPUTDIR)/lib/$(LIBARCHDIR)headless,\
+		LDFLAGS_windows:=advapi32.lib user32.lib gdi32.lib $(JDK_OUTPUTDIR)/tmp/sun/sun.awt/awt/$(OBJDIRNAME)/awt.lib,\
+		LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX) \
+				$(BUILD_LIBFONTMANAGER_FONTLIB),\
+		LDFLAGS_SUFFIX_linux:=-lawt $(LIBM) $(LIBCXX),\
+		LDFLAGS_SUFFIX_solaris:=-lawt -lawt_xawt -lc $(LIBM) $(LIBCXX),\
+		LDFLAGS_SUFFIX_macosx:=-lawt $(LIBM) $(LIBCXX) -undefined dynamic_lookup,\
+		BIN:=$(JDK_OUTPUTDIR)/newobjs/libfontmanager,\
+		LIB:=$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)fontmanager$(SHARED_LIBRARY_SUFFIX)))
+
+BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)fontmanager$(SHARED_LIBRARY_SUFFIX)
+
+##########################################################################################
+
+ifndef OPENJDK
+
+#    ifeq ($(PLATFORM), linux)
+#        ifeq ("$(CC_VER_MAJOR)", "3")
+#            OTHER_LDLIBS  += -Wl,-Bstatic -lgcc_eh -Wl,-Bdynamic
+#        endif                           
+#    endif
+#
+# The resulting size of the t2k lib file is (at least on linux) dependant on the order of 
+# the input .o files. Because of this the new build will differ in size to the old build.
+    BUILD_LIBT2K_CFLAGS_COMMON:=-I$(JDK_TOPDIR)/src/share/native/sun/font \
+		            -I$(JDK_TOPDIR)/src/closed/share/native/sun/font/t2k \
+		            -I$(JDK_TOPDIR)/src/closed/share/native/sun/font \
+		            -I$(JDK_TOPDIR)/src/share/share/native/sun/font \
+		            -I$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/sun/font \
+		            -I$(JDK_TOPDIR)/src/share/native/sun/java2d/loops \
+		            -I$(JDK_TOPDIR)/src/share/native/sun/java2d/pipe \
+		            -I$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/sun/java2d \
+		            -I$(JDK_TOPDIR)/src/share/native/sun/java2d
+
+    $(eval $(call SetupNativeCompilation,BUILD_LIBT2K,\
+                SRC:=$(JDK_TOPDIR)/src/closed/share/native/sun/font \
+		     $(JDK_TOPDIR)/src/closed/share/native/sun/font/t2k \
+		     $(JDK_TOPDIR)/src/closed/share/native/sun/font/t2k/ttHints,\
+		EXCLUDE_FILES:=orion.c,\
+		LANG:=C++,\
+		CFLAGS:=$(CFLAGS_JDKLIB) $(BUILD_LIBT2K_CFLAGS_COMMON) $(C_O_FLAG_HI),\
+		CXXFLAGS:=$(CXXFLAGS_JDKLIB) $(BUILD_LIBT2K_CFLAGS_COMMON) $(CXX_O_FLAG_HI),\
+		CFLAGS_windows=-DCC_NOEX, \
+		CXXFLAGS_windows=-DCC_NOEX, \
+		LDFLAGS:=$(LDFLAGS_JDKLIB) \
+			 $(call SET_SHARED_LIBRARY_MAPFILE,makefiles/mapfiles/libt2k/mapfile-vers) \
+			 $(call SET_SHARED_LIBRARY_ORIGIN),\
+		LDFLAGS_windows:=user32.lib $(JDK_OUTPUTDIR)/newobjs/fontmanager.lib,\
+		LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\
+		LDFLAGS_SUFFIX_linux:=$(LIBCXX) $(LIBM) -L$(INSTALL_LIBRARIES_HERE) -lfontmanager,\
+		LDFLAGS_SUFFIX_solaris:=$(LIBCXX) $(LIBM) -L$(INSTALL_LIBRARIES_HERE) -lfontmanager -lawt \
+					-lawt_xawt,\
+		BIN:=$(JDK_OUTPUTDIR)/newobjs/libt2k,\
+		LIB:=$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)t2k$(SHARED_LIBRARY_SUFFIX)))
+
+    # t2k is linked against fontmanager
+    $(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)t2k$(SHARED_LIBRARY_SUFFIX): \
+	$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)fontmanager$(SHARED_LIBRARY_SUFFIX)
+
+    BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)t2k$(SHARED_LIBRARY_SUFFIX)
+endif
+
+##########################################################################################
+
+ifeq ($(PLATFORM), windows)
+    ifeq ($(ARCH_DATA_MODEL), 32)
+        KERNEL32_LIB := kernel32.lib
+    endif
+    $(eval $(call SetupNativeCompilation,BUILD_LIBJAWT,\
+                SRC:=$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/sun/windows,\
+		INCLUDE_FILES:=jawt.cpp,\
+		LANG:=C++,\
+		CFLAGS:=$(CXXFLAGS_JDKLIB) $(CXX_O_FLAG_NORM) \
+			-EHsc -DUNICODE -D_UNICODE \
+			-I$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/sun/windows \
+		        -I$(JDK_TOPDIR)/src/share/native/sun/awt/debug \
+		        -I$(JDK_TOPDIR)/src/share/native/sun/java2d \
+			-I$(JDK_TOPDIR)/src/share/native/sun/awt/image/cvutils \
+			-I$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/sun/java2d/windows, \
+		LDFLAGS:=$(LDFLAGS_JDKLIB) $(KERNEL32_LIB) \
+			 advapi32.lib $(JDK_OUTPUTDIR)/tmp/sun/sun.awt/awt/$(OBJDIRNAME)/awt.lib,\
+		LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\
+		BIN:=$(JDK_OUTPUTDIR)/newobjs/libjawt,\
+		LIB:=$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)jawt$(SHARED_LIBRARY_SUFFIX)))
+
+$(JDK_OUTPUTDIR)/lib/$(LIBRARY_PREFIX)jawt$(STATIC_LIBRARY_SUFFIX): \
+		$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)jawt$(SHARED_LIBRARY_SUFFIX)
+	echo Copying $(@F)
+	$(CP) $(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)jawt$(STATIC_LIBRARY_SUFFIX) $@	
+
+BUILD_LIBRARIES += $(JDK_OUTPUTDIR)/lib/$(LIBRARY_PREFIX)jawt$(STATIC_LIBRARY_SUFFIX)
+
+else # PLATFORM not windows
+
+    ifndef BUILD_HEADLESS_ONLY
+        MAWT_AWT_LIB =-lawt_xawt
+    else
+        MAWT_AWT_LIB =-lawt_headless
+        HEADLESS_CFLAG += -DHEADLESS
+    endif
+
+    $(eval $(call SetupNativeCompilation,BUILD_LIBJAWT,\
+                SRC:=$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/sun/awt,\
+		INCLUDE_FILES:=jawt.c,\
+		LANG:=C,\
+		CFLAGS:=$(CFLAGS_JDKLIB) $(C_O_FLAG_NORM), \
+		CFLAGS_linux:=$(HEADLESS_CFLAG),\
+		LDFLAGS:=$(LDFLAGS_JDKLIB) \
+			 $(call SET_SHARED_LIBRARY_MAPFILE,makefiles/mapfiles/libjawt/mapfile-vers) \
+			 $(call SET_SHARED_LIBRARY_ORIGIN),\
+		LDFLAGS_solaris:=-L/usr/openwin/sfw/lib$(ISA_DIR) -L/usr/openwin/lib$(ISA_DIR),\
+		LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX) $(MAWT_AWT_LIB) -lawt,\
+		LDFLAGS_SUFFIX_solaris:=-lXrender,\
+		BIN:=$(JDK_OUTPUTDIR)/newobjs/libjawt,\
+		LIB:=$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)jawt$(SHARED_LIBRARY_SUFFIX)))
+endif # PLATFORM
+
+BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)jawt$(SHARED_LIBRARY_SUFFIX)
+
+
+##########################################################################################
+
+all: $(COPY_FILES) $(BUILD_LIBRARIES)
+
+.PHONY: all
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/CopyFiles.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,232 @@
+#
+# 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.
+#
+
+INCLUDEDIR = $(JDK_OUTPUTDIR)/include
+# TODO: Platform dir needs to be "win32" on windows /erikj
+PLATFORM_INCLUDE = $(INCLUDEDIR)/$(PLATFORM)
+
+#
+# Copy exported header files to outputdir.
+#
+H_TARGET_FILES =$(INCLUDEDIR)/jdwpTransport.h		\
+		$(INCLUDEDIR)/jni.h 			\
+		$(INCLUDEDIR)/jvmti.h			\
+		$(INCLUDEDIR)/jvmticmlr.h		\
+		$(INCLUDEDIR)/classfile_constants.h	\
+		$(INCLUDEDIR)/jawt.h			\
+		$(PLATFORM_INCLUDE)/jni_md.h		\
+		$(PLATFORM_INCLUDE)/jawt_md.h
+
+$(INCLUDEDIR)/%.h: $(JDK_TOPDIR)/src/share/javavm/export/%.h
+	$(MKDIR) -p $(@D)
+	rm -f $@
+	$(CP) $< $@
+
+$(PLATFORM_INCLUDE)/%.h: $(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/javavm/export/%.h
+	$(MKDIR) -p $(@D)
+	rm -f $@
+	$(CP) $< $@
+
+COPY_FILES = $(H_TARGET_FILES)
+
+##########################################################################################
+
+LIBDIR = $(JDK_OUTPUTDIR)/lib
+SERVICETAG_LIBDIR = $(LIBDIR)/servicetag
+
+$(SERVICETAG_LIBDIR)/jdk_header.png: $(JDK_TOPDIR)/src/share/classes/com/sun/servicetag/resources/jdk_header.png
+	$(MKDIR) -p $(@D)
+	rm -f $@
+	$(CP) $< $@
+	$(CHMOD) 444 $@
+
+COPY_FILES += $(SERVICETAG_LIBDIR)/jdk_header.png
+
+##########################################################################################
+
+MGMT_LIBDIR = $(LIBDIR)/management
+MGMT_LIB_SRC = $(JDK_TOPDIR)/src/share/lib/management
+MGMT_SRC_FILES = $(wildcard $(MGMT_LIB_SRC)/*)
+MGMT_TARGET_FILES = $(subst $(MGMT_LIB_SRC),$(MGMT_LIBDIR),$(MGMT_SRC_FILES))
+
+$(MGMT_LIBDIR)/management.properties: $(MGMT_LIB_SRC)/management.properties
+	$(MKDIR) -p $(@D)
+	rm -f $@
+	$(CP) $< $@
+	$(CHMOD) 644 $@
+
+$(MGMT_LIBDIR)/%: $(MGMT_LIB_SRC)/%
+	$(MKDIR) -p $(@D)
+	rm -f $@
+	$(CP) $< $@
+	$(CHMOD) 444 $@
+
+COPY_FILES += $(MGMT_TARGET_FILES)
+
+##########################################################################################
+
+LOGGING_LIB_SRC = $(JDK_TOPDIR)/src/share/lib
+
+$(LIBDIR)/logging.properties: $(LOGGING_LIB_SRC)/logging.properties
+	$(MKDIR) -p $(@D)
+	rm -f $@
+	$(CP) $< $@
+
+COPY_FILES += $(LIBDIR)/logging.properties
+
+##########################################################################################
+#
+# Copy property files from sun/print to LIBDIR
+#
+PSFONTPROPFILE_SRC_DIR = $(JDK_TOPDIR)/src/share/classes/sun/print
+PSFONTPROPFILE_SRCS = $(wildcard $(PSFONTPROPFILE_SRC_DIR)/*.properties*)
+PSFONTPROPFILE_TARGET_FILES = $(subst $(PSFONTPROPFILE_SRC_DIR),$(LIBDIR),$(PSFONTPROPFILE_SRCS))
+
+$(PSFONTPROPFILE_TARGET_FILES): $(PSFONTPROPFILE_SRCS)
+	$(MKDIR) -p $(@D)
+	rm -f $@
+	$(CP) $< $@
+
+COPY_FILES += $(PSFONTPROPFILE_TARGET_FILES)
+
+##########################################################################################
+#
+# Copy flavormap.properties, cursor.properties and cursors gif files to LIBDIR
+#
+PLATFORM_LIB_SRC = $(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/lib
+
+$(LIBDIR)/flavormap.properties: $(PLATFORM_LIB_SRC)/flavormap.properties
+	$(MKDIR) -p $(@D)
+	rm -f $@
+	$(CP) $< $@
+
+COPY_FILES += $(LIBDIR)/flavormap.properties
+
+CURSORS_DEST_DIR = $(LIBDIR)/images/cursors
+CURSORS_PLATFORM_LIB_SRC = $(PLATFORM_LIB_SRC)/images/cursors
+
+$(CURSORS_DEST_DIR)/cursors.properties: $(CURSORS_PLATFORM_LIB_SRC)/cursors.properties
+	$(MKDIR) -p $(@D)
+	rm -f $@
+	$(CP) $< $@
+
+COPY_FILES += $(CURSORS_DEST_DIR)/cursors.properties
+
+CURSORS_LIB_SRC = $(JDK_TOPDIR)/src/share/lib/images/cursors
+ifeq ($(PLATFORM), windows)
+CURSORS_SRC_FILES = $(CURSORS_LIB_SRC)/invalid32x32.gif $(wildcard $(CURSORS_LIB_SRC)/win32_*.gif)
+else # PLATFORM
+CURSORS_SRC_FILES = $(CURSORS_LIB_SRC)/invalid32x32.gif $(wildcard $(CURSORS_LIB_SRC)/motif_*.gif)
+endif # PLATFORM
+CURSORS_TARGET_FILES =  $(subst $(CURSORS_LIB_SRC),$(CURSORS_DEST_DIR),$(CURSORS_SRC_FILES))
+
+$(CURSORS_TARGET_FILES): $(CURSORS_SRC_FILES)
+	$(MKDIR) -p $(@D)
+	rm -f $@
+	$(CP) $< $@
+
+COPY_FILES += $(CURSORS_TARGET_FILES)
+
+##########################################################################################
+
+CONTENT_TYPES_SRC=$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/lib
+
+$(LIBDIR)/content-types.properties: $(CONTENT_TYPES_SRC)/content-types.properties
+	$(MKDIR) -p $(@D)
+	rm -f $@
+	$(CP) $< $@
+
+COPY_FILES += $(LIBDIR)/content-types.properties
+
+##########################################################################################
+
+ICCPROFILE_DEST_DIR := $(LIBDIR)/cmm
+
+ifdef OPENJDK
+    ICCPROFILE_SRC_DIR := $(JDK_TOPDIR)/src/share/lib/cmm/lcms
+else 
+    ICCPROFILE_SRC_DIR := $(JDK_TOPDIR)/src/closed/share/lib/cmm/kcms
+endif
+
+ICCPROFILE_SRCS:=$(wildcard $(ICCPROFILE_SRC_DIR)/*.pf)
+ICCPROFILE_TARGET_FILES:=$(subst $(ICCPROFILE_SRC_DIR),$(ICCPROFILE_DEST_DIR),$(ICCPROFILE_SRCS))
+
+$(ICCPROFILE_DEST_DIR)%.pf: $(ICCPROFILE_SRC_DIR)%.pf
+	$(MKDIR) -p $(@D)
+	rm -f $@
+	$(CP) $< $@
+	$(CHMOD) 444 $@
+
+COPY_FILES += $(ICCPROFILE_TARGET_FILES)
+
+##########################################################################################
+
+#make sure freetype dll will be available at runtime as well as link time
+#
+#NB: Default freetype build system uses -h linker option and 
+#   result .so contains hardcoded library name that is later 
+#   used for adding dependencies to other objects 
+#   (e.g. libfontmanager.so).
+#   
+#   It is not obvious how to extract that hardcoded name (libfreetype.so.6)
+#   without overcomplicating logic here.
+#   To workaround this we hardcode .6 suffix for now.
+#
+#   Note that .so.6 library will not be found by System.loadLibrary()
+#        but fortunately we need to load FreeType library explicitly 
+#        on windows only  
+#
+#TODO: rework this to avoid hardcoding library name in the makefile
+#
+ifdef OPENJDK
+    ifeq ($(PLATFORM), windows)
+        FREETYPE_LIB = $(JDK_OUTPUTDIR)/bin/$(call SHARED_LIBRARY,freetype)
+    else 
+        ifeq ($(USING_SYSTEM_FT_LIB), false)
+            FREETYPE_LIB = $(JDK_OUTPUTDIR)/lib/$(LIBARCH)/$(call SHARED_LIBRARY,freetype).6
+        endif
+    endif 
+
+    $(FREETYPE_LIB):
+	$(CP) $(FREETYPE2_LIB_PATH)/$(call SHARED_LIBRARY,freetype) $@
+
+    COPY_FILES += $(FREETYPE_LIB)
+endif
+
+##########################################################################################
+
+# Copy msvcr100.dll on windows
+
+ifeq ($(PLATFORM),windows)
+    MSVCRNN_TARGET := $(JDK_OUTPUTDIR)/bin/$(notdir $(MSVCRNN_DLL))
+    $(MSVCRNN_TARGET): $(MSVCRNN_DLL)
+	$(MKDIR) -p $(@D)
+	rm -f $@
+	$(CP) $< $@
+
+    COPY_FILES += $(MSVCRNN_TARGET)
+endif
+
+##########################################################################################
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/CopyIntoClasses.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,150 @@
+#
+# 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.
+#
+
+# Copy icu and _dict files used by the text break iterator
+
+COPY_PATTERNS = .icu _dict
+
+# Copy config files for com.sun.org.apache.xml.internal.security
+
+XMLSECURITY_RESOURCEDIR = $(JDK_TOPDIR)/src/share/classes/com/sun/org/apache/xml/internal/security/resource
+COPY_FILES += \
+  $(XMLSECURITY_RESOURCEDIR)/config.dtd \
+  $(XMLSECURITY_RESOURCEDIR)/config.xml
+
+# Copy sun/tools related files into the classes directory.
+
+# Extra jstat files
+JSTAT_RESOURCEDIR = $(JDK_TOPDIR)/src/share/classes/sun/tools/jstat/resources
+COPY_FILES += \
+  $(JSTAT_RESOURCEDIR)/jstat_options \
+  $(JSTAT_RESOURCEDIR)/jstat_unsupported_options
+
+# Extra jhat files 
+JHAT_RESOURCEDIR = $(JDK_TOPDIR)/src/share/classes/com/sun/tools/hat/resources
+COPY_FILES += \
+  $(JHAT_RESOURCEDIR)/hat.js \
+  $(JHAT_RESOURCEDIR)/oqlhelp.html \
+  $(JHAT_RESOURCEDIR)/platform_names.txt
+
+# Extra jrunscript files
+JRUNSCRIPT_RESOURCEDIR = $(JDK_TOPDIR)/src/share/classes/com/sun/tools/script/shell
+COPY_FILES += \
+  $(JRUNSCRIPT_RESOURCEDIR)/init.js \
+  $(JRUNSCRIPT_RESOURCEDIR)/messages.properties 
+
+# Extra jvmstat files
+COPY_FILES += \
+  $(JDK_TOPDIR)/src/share/classes/sun/jvmstat/perfdata/resources/aliasmap
+
+# Servicetag resources
+SERVICETAG_RESOURCES_DIR = $(JDK_TOPDIR)/src/share/classes/com/sun/servicetag/resources
+COPY_FILES += \
+  $(SERVICETAG_RESOURCES_DIR)/product_registration.xsd \
+  $(SERVICETAG_RESOURCES_DIR)/register.html \
+  $(SERVICETAG_RESOURCES_DIR)/register_ja.html \
+  $(SERVICETAG_RESOURCES_DIR)/register_zh_CN.html \
+  $(wildcard  $(SERVICETAG_RESOURCES_DIR)/javase_*.properties)
+
+# JConsole resources
+JCONSOLE_RESOURCES_DIR = $(JDK_TOPDIR)/src/share/classes/sun/tools/jconsole/resources
+COPY_FILES += \
+  $(wildcard $(JCONSOLE_RESOURCES_DIR)/*.png) \
+  $(wildcard $(JCONSOLE_RESOURCES_DIR)/*.gif)
+
+# Print resources
+PRINT_RESOURCES_DIR = $(JDK_TOPDIR)/src/share/classes/sun/print/resources
+COPY_FILES += \
+  $(wildcard $(PRINT_RESOURCES_DIR)/*.png)
+
+# IDN resources
+COPY_FILES += \
+  $(JDK_TOPDIR)/src/share/classes/sun/net/idn/uidna.spp
+
+##########################################################################################
+#
+# Copy the META-INF/services configuration files that are scattered around the source tree
+# into classes/META-INF/services. Be aware that META-INF directories that are located at a
+# source root (.../classes/META-INF) are automatically copied verbatim by the
+# SetupJavaCompilation macro. 
+#
+# Any other META-INF/services configuration file is found here and platform specific comments
+# are uncommented and the configuration file is stored in the output META-INF directory.
+
+# Make sure the output directory is created.
+$(shell $(MKDIR) -p $(JDK_OUTPUTDIR)/newclasses/META-INF/services)
+# Find all META-INF/services/* files
+ALL_META-INF_DIRS_share:=$(shell $(FIND) $(JDK_TOPDIR)/src/share/classes -type d -a -name META-INF)
+ALL_META-INF_DIRS_hostapi:=$(shell $(FIND) $(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/classes -type d -a -name META-INF)
+# Platform specific overrides shared
+ifneq ($(ALL_META-INF_DIRS_hostapi),)
+    ALL_META-INF_DIRS:=$(ALL_META-INF_DIRS_hostapi) \
+	$(filter-out %$(patsubst $(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/classes%,%,$(ALL_META-INF_DIRS_hostapi)),\
+		$(ALL_META-INF_DIRS_share))
+else
+    ALL_META-INF_DIRS:=$(ALL_META-INF_DIRS_share)
+endif
+# Filter out META-INF dirs that shouldn't be included
+ALL_META-INF_DIRS:=$(filter-out %sun/nio/cs/ext/META-INF,$(ALL_META-INF_DIRS))
+ifdef OPENJDK
+  ALL_META-INF_DIRS:=$(filter-out %com/sun/script/javascript/META-INF,$(ALL_META-INF_DIRS))
+endif
+
+SRC_SERVICES_FILES:=$(wildcard $(addsuffix /services/*,$(ALL_META-INF_DIRS)))
+ifdef OPENJDK
+    SRC_SERVICES_FILES:=$(filter-out %sun/dc/META-INF/services/sun.java2d.pipe.RenderingEngine,$(SRC_SERVICES_FILES))
+    SRC_SERVICES_FILES:=$(filter-out %sun/java2d/cmm/kcms/META-INF/services/sun.java2d.cmm.PCMM,$(SRC_SERVICES_FILES))
+else
+    SRC_SERVICES_FILES:=$(filter-out %sun/java2d/pisces/META-INF/services/sun.java2d.pipe.RenderingEngine,$(SRC_SERVICES_FILES))
+    SRC_SERVICES_FILES:=$(filter-out %sun/java2d/cmm/lcms/META-INF/services/sun.java2d.cmm.PCMM,$(SRC_SERVICES_FILES))
+endif
+# The number of services files are relatively few. If the increase in numbers, then
+# we have to use ListPathsSafelyNow here.
+# Change $(JDK_TOPDIR)/src/.../META-INF/services/yyyy into $(JDK_OUTPUTDIR)/newclasses/META-INF/services/yyyy
+# The \n in the printf command is needed to make sed work on Solaris.
+OUT_SERVICES_FILES:=$(addprefix $(JDK_OUTPUTDIR)/newclasses/META-INF/services/,\
+	$(shell $(PRINTF) "$(SRC_SERVICES_FILES)\n" | $(SED) -e 's|/[^ ]*/META-INF/services/||g'))
+OUT_SERVICES_FILES_COLON:=$(addsuffix :,$(OUT_SERVICES_FILES))
+# Exception handling for print services with no META-INF directory
+SRC_SERVICES_FILES_PRINT = $(wildcard $(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/classes/sun/print/services/*)
+OUT_SERVICES_FILES_PRINT = $(addprefix $(JDK_OUTPUTDIR)/newclasses/META-INF/services/,\
+	$(patsubst $(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/classes/sun/print/services/%,%,\
+		$(SRC_SERVICES_FILES_PRINT)))
+OUT_SERVICES_FILES_PRINT_COLON = $(addsuffix :,$(OUT_SERVICES_FILES_PRINT))
+RULES_SERVICES_PRINT = $(join $(OUT_SERVICES_FILES_PRINT_COLON),$(SRC_SERVICES_FILES_PRINT))
+
+# Now setup the dependency rules to generate a META-INF/services/... from the correct source.
+META-INF_RULES_SERVICES:=$(RULES_SERVICES_PRINT) $(join $(OUT_SERVICES_FILES_COLON),$(SRC_SERVICES_FILES))
+# Eval the newly created rules to incorporate them into the make tree.
+define addto_meta-inf_services
+$1
+	echo Installing META-INF/services/$$(@F) 
+	$(CAT) $$< | $(SED) -e "s/^#\[$(PLATFORM)\]//" > $$@
+endef
+$(foreach i,$(META-INF_RULES_SERVICES),$(eval $(call addto_meta-inf_services,$i)))
+# Here is the generic rule, whose receipt the above rules will trigger.
+
+COPY_EXTRA += $(OUT_SERVICES_FILES)
+COPY_EXTRA += $(OUT_SERVICES_FILES_PRINT)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/CopySamples.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,75 @@
+#
+# 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.
+#
+
+default: all
+
+include $(SPEC)
+include MakeBase.gmk
+
+SAMPLE_TARGET_DIR = $(JDK_OUTPUTDIR)/sample
+SAMPLE_SOURCE_DIR = $(JDK_TOPDIR)/src/share/sample
+SAMPLE_CLOSED_SOURCE_DIR = $(JDK_TOPDIR)/src/closed/share/sample
+SAMPLE_SOLARIS_SOURCE_DIR = $(JDK_TOPDIR)/src/solaris/sample
+
+# Exclude the vm directory
+SAMPLE_FIND_FILTER = -name vm -prune -o
+
+SAMPLE_SOURCE := $(shell $(FIND) $(SAMPLE_SOURCE_DIR) $(SAMPLE_FIND_FILTER) -type f -print)
+SAMPLE_TARGET := $(subst $(SAMPLE_SOURCE_DIR),$(SAMPLE_TARGET_DIR),$(SAMPLE_SOURCE))
+
+ifndef OPENJDK
+# Exclude Main.java in EbayClient dir
+    SAMPLE_CLOSED_SOURCE := $(shell $(FIND) $(SAMPLE_CLOSED_SOURCE_DIR) -type f -print | $(GREP) -v EbayClient/Main.java)
+    SAMPLE_CLOSED_TARGET := $(subst $(SAMPLE_CLOSED_SOURCE_DIR),$(SAMPLE_TARGET_DIR),$(SAMPLE_CLOSED_SOURCE))
+    SAMPLE_TARGET += $(SAMPLE_CLOSED_TARGET)
+endif
+
+ifeq ($(PLATFORM),solaris)
+    SAMPLE_SOLARIS_SOURCE := $(shell $(FIND) $(SAMPLE_SOLARIS_SOURCE_DIR) -type f -print)
+    SAMPLE_SOLARIS_TARGET := $(subst $(SAMPLE_SOLARIS_SOURCE_DIR),$(SAMPLE_TARGET_DIR),$(SAMPLE_SOLARIS_SOURCE))
+    SAMPLE_TARGET += $(SAMPLE_SOLARIS_TARGET)
+endif
+
+$(SAMPLE_TARGET_DIR)/dtrace/%: $(SAMPLE_SOLARIS_SOURCE_DIR)/dtrace/%
+	$(MKDIR) -p $(@D)
+	rm -f $@
+	$(CP) $< $@
+
+$(SAMPLE_TARGET_DIR)/webservices/%: $(SAMPLE_CLOSED_SOURCE_DIR)/webservices/%
+	$(MKDIR) -p $(@D)
+	rm -f $@
+	$(CP) $< $@
+
+$(SAMPLE_TARGET_DIR)/%: $(SAMPLE_SOURCE_DIR)/%
+	$(MKDIR) -p $(@D)
+	rm -f $@
+	$(CP) $< $@
+
+COPY_FILES += $(SAMPLE_TARGET)
+
+all: $(COPY_FILES) 
+
+.PHONY: all
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/GendataBreakIterator.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,97 @@
+#
+# Copyright (c) 2011, 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.
+#
+
+#
+# Make file for generating BreakIterator data files.
+#
+
+# input
+#
+#   Notes: sun.text.resources.BreakIteratorRules no longer goes to runtime.
+#     They are used at JDK build phase in order to create $(BIFILES) which
+#     are used on runtime instead.
+#
+TEXT_SRCDIR = $(JDK_TOPDIR)/src/share/classes
+TEXT_PKG  = sun/text/resources
+TEXT_SOURCES = 	%$(TEXT_PKG)/BreakIteratorRules.java \
+		%$(TEXT_PKG)/BreakIteratorInfo.java \
+		%$(TEXT_PKG)/BreakIteratorRules_th.java \
+		%$(TEXT_PKG)/BreakIteratorInfo_th.java
+
+# Generate BreakIteratorData
+BREAK_ITERATOR_DIR = $(JDK_OUTPUTDIR)/break_iterator
+BREAK_ITERATOR_CLASSES = $(BREAK_ITERATOR_DIR)/classes
+
+# JAVAC_SOURCE_PATH_UGLY_OVERRIDE is set to isolate the compile to just those
+# two files in that directory and not get anything implicit from
+# surrounding directories which aren't jdk 6 compatible. 
+# Because we are targeting jdk 6, but the surrounding source code is jdk 7. Ugh.
+# These two files should be moved out to a build tool!
+$(eval $(call SetupJavaCompilation,BUILD_BREAKITERATOR,\
+		SETUP:=GENERATE_OLDBYTECODE,\
+		SRC:=$(TEXT_SRCDIR),\
+		JAVAC_SOURCE_PATH_UGLY_OVERRIDE:=$(TEXT_SRCDIR)/$(TEXT_PKG),\
+		INCLUDES:=$(TEXT_PKG),\
+		INCLUDE_FILES:=$(TEXT_SOURCES),\
+		BIN:=$(BREAK_ITERATOR_CLASSES)))
+
+# Generate data resource files.
+# input
+UNICODEDATA  = $(JDK_TOPDIR)/make/tools/UnicodeData/UnicodeData.txt
+
+# output
+DATA_PKG_DIR = $(JDK_OUTPUTDIR)/newclasses/sun/text/resources
+BIFILES	= 	$(DATA_PKG_DIR)/CharacterBreakIteratorData \
+		$(DATA_PKG_DIR)/WordBreakIteratorData \
+		$(DATA_PKG_DIR)/LineBreakIteratorData \
+		$(DATA_PKG_DIR)/SentenceBreakIteratorData
+BIFILES_TH =	$(DATA_PKG_DIR)/WordBreakIteratorData_th \
+		$(DATA_PKG_DIR)/LineBreakIteratorData_th
+
+$(BIFILES): $(BREAK_ITERATOR_DIR)/_the.bifiles
+$(BREAK_ITERATOR_DIR)/_the.bifiles: JAVA_FLAGS += -Xbootclasspath/p:$(BREAK_ITERATOR_CLASSES)
+$(BREAK_ITERATOR_DIR)/_the.bifiles: $(BUILD_TOOLS) $(UNICODEDATA) $(BUILD_BREAKITERATOR)
+	$(ECHO) "Generating BreakIteratorData"
+	$(MKDIR) -p  $(DATA_PKG_DIR)
+	rm -f $(BIFILES)
+	$(TOOL_GENERATEBREAKITERATORDATA) \
+		-o $(DATA_PKG_DIR) \
+		-spec $(UNICODEDATA)
+	touch $@
+
+$(BIFILES_TH): $(BREAK_ITERATOR_DIR)/_the.bifiles_th
+$(BREAK_ITERATOR_DIR)/_the.bifiles_th: JAVA_FLAGS += -Xbootclasspath/p:$(BREAK_ITERATOR_CLASSES)
+$(BREAK_ITERATOR_DIR)/_the.bifiles_th: $(BUILD_TOOLS) $(UNICODEDATA) $(BUILD_BREAKITERATOR)
+	$(ECHO) "Generating BreakIteratorData_th"
+	$(MKDIR) -p  $(DATA_PKG_DIR)
+	rm -f $(BIFILES_TH)
+	$(TOOL_GENERATEBREAKITERATORDATA) \
+		-o $(DATA_PKG_DIR) \
+		-spec $(UNICODEDATA) \
+		-language th
+	touch $@
+
+
+BREAK_ITERATOR += $(BIFILES) $(BIFILES_TH)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/GenerateClasses.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,95 @@
+#
+# 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.
+#
+
+default: all
+
+include $(SPEC)
+include MakeBase.gmk
+include RMICompile.gmk
+
+CLASSES_DIR := $(JDK_OUTPUTDIR)/classes
+# Depend on files in newclasses for now to avoid bad dependency handling caused by
+# copy always updating timestamps in classes.
+NEWCLASSES_DIR := $(JDK_OUTPUTDIR)/newclasses
+# Generate classes into separate dir for now. Can't drop in same dir as JavaCompilation 
+# macros as that will mess up recompile deps.
+STUB_CLASSES_DIR := $(JDK_OUTPUTDIR)/newrmicclasses
+RMIC_GENSRC_DIR := $(JDK_OUTPUTDIR)/gendocsrc_rmic
+
+GENCLASSES :=
+
+##########################################################################################
+#
+# Generate RMI stubs
+#
+
+$(eval $(call SetupRMICompilation,RMI_12,\
+		CLASSES:=sun.rmi.server.Activation$$$$ActivationSystemImpl\
+			 java.rmi.activation.ActivationGroup\
+			 com.sun.jndi.rmi.registry.ReferenceWrapper,\
+		CLASSES_DIR:=$(NEWCLASSES_DIR),\
+		STUB_CLASSES_DIR:=$(STUB_CLASSES_DIR),\
+		RUN_V12:=true))
+GENCLASSES += $(RMI_12)
+
+$(eval $(call SetupRMICompilation,RMI_11,\
+		CLASSES:=sun.rmi.registry.RegistryImpl\
+			 sun.rmi.transport.DGCImpl,\
+		CLASSES_DIR:=$(NEWCLASSES_DIR),\
+		STUB_CLASSES_DIR:=$(STUB_CLASSES_DIR),\
+		RUN_V11:=true))
+GENCLASSES += $(RMI_11)
+
+# For RMI/IIOP call rmic a second time with -standardPackage option
+# so that *_tie classes are generated in package without the prefix
+# org.omg.stub (6375696)
+JMAN_RMI_CLASSES:=javax.management.remote.rmi.RMIConnectionImpl\
+		  javax.management.remote.rmi.RMIServerImpl
+$(eval $(call SetupRMICompilation,RMI_IIOP,\
+		CLASSES:=$(JMAN_RMI_CLASSES),\
+		CLASSES_DIR:=$(NEWCLASSES_DIR),\
+		STUB_CLASSES_DIR:=$(STUB_CLASSES_DIR),\
+		RUN_V12:=true,\
+		RUN_IIOP:=true,\
+		RUN_IIOP_STDPKG:=true))
+GENCLASSES += $(RMI_IIOP)
+
+# Keep generated RMI/JRMP Stub source files and copy them to RMIC_GENSRC_DIR
+# so that javadoc can include them in the API (4997471)
+$(eval $(call SetupRMICompilation,RMI_SRC,\
+		CLASSES:=$(JMAN_RMI_CLASSES),\
+		CLASSES_DIR:=$(NEWCLASSES_DIR),\
+		STUB_CLASSES_DIR:=$(RMIC_GENSRC_DIR),\
+		RUN_V12:=true,\
+		KEEP_GENERATED:=true))
+GENCLASSES += $(filter %.java,$(RMI_SRC))
+
+##########################################################################################
+
+all: $(GENCLASSES)
+	$(FIND) $(RMIC_GENSRC_DIR) -name "*.class" $(FIND_DELETE)
+	$(CP) -rp $(STUB_CLASSES_DIR)/* $(CLASSES_DIR)
+
+.PHONY: all
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/GenerateData.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,49 @@
+#
+# 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.
+#
+
+default: all
+
+include $(SPEC)
+include MakeBase.gmk
+include JavaCompilation.gmk
+
+# Setup the java compilers for the JDK build.
+include Setup.gmk
+# We need the tools.
+include Tools.gmk
+
+# Now include all the rules that generate data resources.
+# These are written directly into newclasses dir.
+
+include GendataBreakIterator.gmk
+GENDATA += $(BREAK_ITERATOR)
+
+##########################################################################################
+
+$(GENDATA) : $(BUILD_TOOLS)
+
+all: $(GENDATA)
+
+.PHONY: all
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/GenerateJavaSources.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,68 @@
+#
+# 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.
+#
+
+default: all
+
+include $(SPEC)
+include MakeBase.gmk
+include JavaCompilation.gmk
+include NativeCompilation.gmk
+
+# Setup the java compilers for the JDK build.
+include Setup.gmk
+# We need the tools.
+include Tools.gmk
+
+# Now include all the rules that generate Java sources.
+# The Java sources are written into the gensrc_.... directories.
+
+include GensrcProperties.gmk
+GENSRC += $(GENSRC_PROPERTIES)
+
+include GensrcLocaleDataMetaInfo.gmk
+GENSRC += $(GENSRC_LOCALEDATAMETAINFO)
+
+include GensrcCharacterData.gmk
+GENSRC += $(GENSRC_CHARACTERDATA)
+
+include GensrcJDWP.gmk
+GENSRC += $(GENSRC_JDWP)
+
+include GensrcMisc.gmk
+GENSRC += $(GENSRC_MISC)
+
+$(GENSRC) : $(BUILD_TOOLS)
+
+all: $(GENSRC)
+	$(MKDIR) -p $(JDK_OUTPUTDIR)/gensrc
+	(cd $(JDK_OUTPUTDIR) && \
+		chmod -R u+rw gensrc && \
+		cp -rp gensrc_characterdata/* gensrc && \
+		cp -rp gensrc_properties/* gensrc && \
+		cp -rp gensrc_localedatametainfo/* gensrc && \
+		cp -rp gensrc_jdwp/* gensrc && \
+		cp -rp gensrc_misc/* gensrc)
+
+.PHONY: all
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/GensrcCharacterData.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,65 @@
+#
+# 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.
+#
+
+#
+# Rules to create $(JDK_OUTPUTDIR)/gensrc_characterdata/sun/lang/CharacterData*.java 
+#
+
+GENSRC_CHARACTERDATA:=
+
+CHARACTERDATA = $(JDK_TOPDIR)/make/tools/GenerateCharacter
+UNICODEDATA   = $(JDK_TOPDIR)/make/tools/UnicodeData
+
+define SetupCharacterData
+    $(JDK_OUTPUTDIR)/gensrc_characterdata/java/lang/$1.java : $(CHARACTERDATA)/$1.java.template $(BUILD_TOOLS)
+	mkdir -p $$(@D)
+	echo Generating $1.java
+	$(TOOL_GENERATECHARACTER) $2 \
+		-template $(CHARACTERDATA)/$1.java.template \
+		-spec $(UNICODEDATA)/UnicodeData.txt \
+		-specialcasing $(UNICODEDATA)/SpecialCasing.txt \
+		-proplist $(UNICODEDATA)/PropList.txt \
+		-o $(JDK_OUTPUTDIR)/gensrc_characterdata/java/lang/$1.java -string \
+		-usecharforbyte $3
+
+    GENSRC_CHARACTERDATA += $(JDK_OUTPUTDIR)/gensrc_characterdata/java/lang/$1.java
+endef
+
+$(eval $(call SetupCharacterData,CharacterDataLatin1,,-latin1 8))
+$(eval $(call SetupCharacterData,CharacterData00,-plane 0,11 4 1))
+$(eval $(call SetupCharacterData,CharacterData01,-plane 1,11 4 1))
+$(eval $(call SetupCharacterData,CharacterData02,-plane 2,11 4 1))
+$(eval $(call SetupCharacterData,CharacterData0E,-plane 14,11 4 1))
+
+# Copy two Java files that need no preprocessing.
+$(JDK_OUTPUTDIR)/gensrc_characterdata/java/lang/%.java : $(CHARACTERDATA)/%.java.template
+	$(MKDIR) -p $(@D)
+	echo Generating $(@F)
+	$(CP) -f $< $@
+
+GENSRC_CHARACTERDATA += $(JDK_OUTPUTDIR)/gensrc_characterdata/java/lang/CharacterDataUndefined.java \
+                       $(JDK_OUTPUTDIR)/gensrc_characterdata/java/lang/CharacterDataPrivateUse.java
+
+$(GENSRC_CHARACTERDATA) : $(BUILD_TOOLS)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/GensrcJDWP.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,38 @@
+#
+# 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.
+#
+
+# Translate the Java debugger wire protocol (jdwp.spec) file into a JDWP.java file
+# and a JDWPCommands.h C-header file.
+
+$(JDK_OUTPUTDIR)/gensrc_jdwp_headers/JDWPCommands.h : $(JDK_TOPDIR)/makefiles/jpda/jdwp/jdwp.spec
+
+$(JDK_OUTPUTDIR)/gensrc_jdwp/com/sun/tools/jdi/JDWP.java : $(JDK_TOPDIR)/makefiles/jpda/jdwp/jdwp.spec
+	mkdir -p $(@D)
+	mkdir -p $(JDK_OUTPUTDIR)/gensrc_jdwp_headers
+	$(ECHO) Creating JDWP.java and JDWPCommands.h from jdwp.spec
+	$(TOOL_JDWPGEN) $< -jdi $@ -include $(JDK_OUTPUTDIR)/gensrc_jdwp_headers/JDWPCommands.h
+
+GENSRC_JDWP:=	$(JDK_OUTPUTDIR)/gensrc_jdwp/com/sun/tools/jdi/JDWP.java \
+		$(JDK_OUTPUTDIR)/gensrc_jdwp_headers/JDWPCommands.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/GensrcLocaleDataMetaInfo.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,93 @@
+#
+# 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.
+#
+
+# Scan for all locale resources and extract for which locales there exists
+# resources. Then put this meta information about exiting (supported?) locales
+# into LocaleDataMetaInfo.java
+
+# First go look for all locale files
+LOCALE_FILES:=$(shell $(FIND) $(JDK_TOPDIR)/src/share/classes \
+	-name "FormatData_*.java" -o -name "FormatData_*.properties" -o \
+	-name "CollationData_*.java" -o -name "CollationData_*.properties" -o \
+	-name "TimeZoneNames_*.java" -o -name "TimeZoneNames_*.properties" -o \
+	-name "LocaleNames_*.java" -o -name "LocaleNames_*.properties" -o \
+	-name "CurrencyNames_*.java" -o -name "CurrencyNames_*.properties" -o \
+	-name "CalendarData_*.java" -o -name "CalendarData_*.properties")
+
+# Then translate the locale files into for example: FormatData_sv 
+LOCALE_RESOURCES:=$(sort $(subst .properties,,$(subst .java,,$(notdir $(LOCALE_FILES)))))
+
+# Include the list of resources found during the previous compile.
+-include $(JDK_OUTPUTDIR)/gensrc_localedatametainfo/_the.locale_resources
+
+MISSING_RESOURCES:=$(filter-out $(LOCALE_RESOURCES),$(PREV_LOCALE_RESOURCES))
+NEW_RESOURCES:=$(filter-out $(PREV_LOCALE_RESOURCES),$(LOCALE_RESOURCES))
+
+ifneq (,$(MISSING_RESOURCES)$(NEW_RESOURCES))
+    # There is a difference in the number of supported resources. Trigger a regeneration.
+    $(shell $(RM) $(JDK_OUTPUTDIR)/gensrc_localedatametainfo/sun/util/LocaleDataMetaInfo.java)
+endif
+
+# The non-euro zone locales have to be separated from the euro-zone locales.
+NON_EURO_LOCALES:=ar% hi% iw% ja% ko% th% vi% zh%
+
+# This macro creates a sed expression that substitues for example:
+# #FormatData_EuroLocales# with: be be_BY bg bg_BG ca ca_ES... and some more.
+CAPTURE_LOCALE='s/$$(HASH)$1_$2EuroLocales$$(HASH)/ $$($3 $(NON_EURO_LOCALES),$$(filter-out $1,$$(subst $1_,,$$(filter $1_%,$(LOCALE_RESOURCES)))))/g'
+
+SED_ARGS:=-e 's|$(HASH)warn This file is preprocessed before being compiled|// -- This file was mechanically generated: Do not edit! -- //|g'
+#sun.text.resources.FormatData
+$(eval SED_ARGS+=-e $(call CAPTURE_LOCALE,FormatData,,filter-out))
+$(eval SED_ARGS+=-e $(call CAPTURE_LOCALE,FormatData,Non,filter))
+
+#sun.text.resources.CollationData
+$(eval SED_ARGS+=-e $(call CAPTURE_LOCALE,CollationData,,filter-out))
+$(eval SED_ARGS+=-e $(call CAPTURE_LOCALE,CollationData,Non,filter))
+
+#sun.util.resources.TimeZoneNames
+$(eval SED_ARGS+=-e $(call CAPTURE_LOCALE,TimeZoneNames,,filter-out))
+$(eval SED_ARGS+=-e $(call CAPTURE_LOCALE,TimeZoneNames,Non,filter))
+
+#sun.util.resources.LocaleNames
+$(eval SED_ARGS+=-e $(call CAPTURE_LOCALE,LocaleNames,,filter-out))
+$(eval SED_ARGS+=-e $(call CAPTURE_LOCALE,LocaleNames,Non,filter))
+
+#sun.util.resources.CurrencyNames
+$(eval SED_ARGS+=-e $(call CAPTURE_LOCALE,CurrencyNames,,filter-out))
+$(eval SED_ARGS+=-e $(call CAPTURE_LOCALE,CurrencyNames,Non,filter))
+
+#sun.util.resources.CalendarData
+$(eval SED_ARGS+=-e $(call CAPTURE_LOCALE,CalendarData,,filter-out))
+$(eval SED_ARGS+=-e $(call CAPTURE_LOCALE,CalendarData,Non,filter))
+
+$(JDK_OUTPUTDIR)/gensrc_localedatametainfo/sun/util/LocaleDataMetaInfo.java: \
+		$(JDK_TOPDIR)/src/share/classes/sun/util/LocaleDataMetaInfo-XLocales.java.template
+	mkdir -p $(@D)
+	$(ECHO) Creating sun/util/LocaleDataMetaInfo.java from $(words $(LOCALE_RESOURCES)) found resources.
+	$(PRINTF) "PREV_LOCALE_RESOURCES:=$(LOCALE_RESOURCES)" > $(JDK_OUTPUTDIR)/gensrc_localedatametainfo/_the.locale_resources
+	$(SED) $(SED_ARGS) $(JDK_TOPDIR)/src/share/classes/sun/util/LocaleDataMetaInfo-XLocales.java.template \
+		> $(JDK_OUTPUTDIR)/gensrc_localedatametainfo/sun/util/LocaleDataMetaInfo.java
+
+GENSRC_LOCALEDATAMETAINFO:=$(JDK_OUTPUTDIR)/gensrc_localedatametainfo/sun/util/LocaleDataMetaInfo.java
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/GensrcMisc.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,74 @@
+#
+# 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.
+#
+
+##########################################################################################
+# Install the launcher name, release version string, full version
+# string and the runtime name into the Version.java file.
+# To be printed by java -version
+
+$(JDK_OUTPUTDIR)/gensrc_misc/sun/misc/Version.java: \
+	$(JDK_TOPDIR)/src/share/classes/sun/misc/Version.java.template
+	$(MKDIR) -p $(@D)
+	echo Generating sun/misc/Version.java
+	$(SED) -e 's/@@launcher_name@@/$(LAUNCHER_NAME)/g' \
+	       -e 's/@@java_version@@/$(RELEASE)/g' \
+	       -e 's/@@java_runtime_version@@/$(FULL_VERSION)/g' \
+	       -e 's/@@java_runtime_name@@/$(RUNTIME_NAME)/g' \
+            $< > $@
+
+GENSRC_MISC += $(JDK_OUTPUTDIR)/gensrc_misc/sun/misc/Version.java
+
+##########################################################################################
+# Version file for jconsole
+
+$(JDK_OUTPUTDIR)/gensrc_misc/sun/tools/jconsole/Version.java: \
+                $(JDK_TOPDIR)/src/share/classes/sun/tools/jconsole/Version.java.template
+	$(MKDIR) -p $(@D)
+	echo Generating sun/tools/jconsole/Version.java
+	$(SED) -e 's/@@jconsole_version@@/$(FULL_VERSION)/g' $< > $@
+
+GENSRC_MISC += $(JDK_OUTPUTDIR)/gensrc_misc/sun/tools/jconsole/Version.java
+
+##########################################################################################
+
+ifeq ($(HOST_OS_API),posix)
+    UPSUFFIX:=$(PLATFORM)
+    ifeq ($(PLATFORM),macosx)
+        UPSUFFIX:=bsd
+    endif
+    # UNIXProcess.java is different for solaris and linux. We need to copy
+    # the correct UNIXProcess.java over to $(JDK_OUTPUTDIR)/gensrc/java/lang/.
+
+    $(JDK_OUTPUTDIR)/gensrc_misc/java/lang/UNIXProcess.java : \
+              $(JDK_TOPDIR)/src/solaris/classes/java/lang/UNIXProcess.java.$(UPSUFFIX)
+	$(MKDIR) -p $(@D)
+	echo Copying UNIXProcess.java.$(PLATFORM) to java/lang/UNIXProcess.java
+	$(CP) $< $@
+	$(CHMOD) u+rw $@
+
+    GENSRC_MISC += $(JDK_OUTPUTDIR)/gensrc_misc/java/lang/UNIXProcess.java
+endif
+
+##########################################################################################
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/GensrcProperties.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,272 @@
+#
+# 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.
+#
+
+# All .properties files to be compiled are appended to this variable.
+ALL_COMPILED_PROPSOURCES:=
+# All generated .java files from compilation are appended to this variable.
+ALL_COMPILED_PROPJAVAS:=
+# The (very long) command line for compilation, stored in a file, prior to use.
+COMPILE_PROPCMDLINE:=
+
+# All .properties files to be cleaned are appended to this variable.
+ALL_CLEANED_PROPSOURCES:=
+# All generated cleaned .properties files from cleaning are appended to this variable.
+ALL_CLEANED_PROPOUTPUT:=
+# The (very long) command line for cleaning, stored in a file, prior to use.
+CLEAN_PROPCMDLINE:=
+
+define add_properties_to_compile
+  # $1 is the name of the properties group
+  # $2 is the files belonging to this group
+  # $3 is the super class for the generated java file.
+  # $4 is a from pattern for translating stripped name from source to target
+  # $5 is the to pattern replacing $3 in the target
+
+  # Strip away prefix and suffix,
+  # leaving for example: sun/util/resources/CurrencyNames_sv
+  $1_PROPPATHS:=$$(patsubst $(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/classes/%.properties,%,\
+                $$(patsubst $(JDK_TOPDIR)/src/share/classes/%.properties,%,$2))
+
+  # Apply optional name transformation, example: hz_TW -> hz_HK
+  $(if $4,$1_PROPPATHS:=$$(patsubst $4,$5,$$($1_PROPPATHS)))
+
+  # Accumulate all found properties files.
+  ALL_COMPILED_PROPSOURCES+=$2
+
+  # Generate the list of to be created java files.
+  ALL_COMPILED_PROPJAVAS+=$$(patsubst %,$(JDK_OUTPUTDIR)/gensrc_properties/%.java,$$($1_PROPPATHS))
+
+  # Now generate a sequence of "-compile ...CurrencyNames_sv.properties ...CurrencyNames_sv.java ListResourceBundle"
+  # suitable to be fed into the CompileProperties command.
+  COMPILE_PROPCMDLINE+=$$(subst _SPACE_,$(SPACE),$$(join $$(addprefix -compile_SPACE_,$2), \
+		$$(addsuffix _SPACE_$(strip $3),\
+                    $$(addprefix _SPACE_$(JDK_OUTPUTDIR)/gensrc_properties/,\
+                        $$(addsuffix .java,$$($1_PROPPATHS))))))
+endef
+
+define add_properties_to_clean
+  # $1 is the name of the properties group
+  # $2 is the files belonging to this group
+  # $3 is a from pattern for translating stripped name from source to target
+  # $4 is the to pattern replacing $3 in the target
+  # $5 optional name of extra directory to put properties files in (ex: resources)
+
+  # Strip away prefix and suffix,
+  # leaving for example: sun/util/resources/CurrencyNames_sv
+  $1_PROPPATHS:=$$(patsubst $(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/classes/%.properties,%,\
+                $$(patsubst $(JDK_TOPDIR)/src/share/classes/%.properties,%,$2))
+
+  # Apply optional name transformation, example: hz_TW -> hz_HK
+  $(if $3,$1_PROPPATHS:=$$(patsubst $3,$4,$$($1_PROPPATHS)))
+
+  # Accumulate all found properties files.
+  ALL_CLEANED_PROPSOURCES+=$2
+
+  # Generate the list of to be created java files.
+  $1_PROPOUTPUT:=$$(patsubst %,$(JDK_OUTPUTDIR)/newclasses/%.properties,$$($1_PROPPATHS))
+  # If the properties target file isn't in a "resources" dir, add one.
+  ifneq ($5,)
+    $1_PROPOUTPUT:=$$(foreach p,$$($1_PROPOUTPUT), $$(dir $$p)$5/$$(notdir $$p))
+  endif
+
+  ALL_CLEANED_PROPOUTPUT+=$$($1_PROPOUTPUT)
+
+  # Now generate a sequence of "-clean ...[src]...CurrencyNames_sv.properties ...[build]...CurrencyNames_sv.properties"
+  # suitable to be fed into the StripProperties command.
+  CLEAN_PROPCMDLINE+=$$(subst _SPACE_,$(SPACE),$$(join $$(addprefix -clean_SPACE_,$2), \
+                    $$(addprefix _SPACE_,$$($1_PROPOUTPUT))))
+endef
+
+# Some packages contain pregenerated java files instead of properties files.
+# But unfortunately not all properties should be converted, some should be
+# copied....argggghhh.
+
+# For example:
+#    sun/applet/resources
+#    sun/misc/resources
+#    sun/text/resources
+#    sun/tools/jconsole/resources
+#    sun/tools/native2ascii/resources
+#    sun/util/resources
+
+# Some packages have properties that need to be converted to java source files.
+
+#com/sun/accessibility/internal/resources
+$(eval $(call add_properties_to_compile,COM_SUN_ACCESSIBILITY,\
+	$(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/accessibility/internal/resources -name "*.properties"),\
+		ListResourceBundle))
+$(eval $(call add_properties_to_compile,COM_SUN_ACCESSIBILITY_HK,\
+	$(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/accessibility/internal/resources -name "*.properties"),\
+		ListResourceBundle,%zh_TW,%zh_HK))
+#com/sun/imageio/plugins/common
+#com/sun/java/swing/plaf/gtk/resources
+#com/sun/java/swing/plaf/motif/resources
+#com/sun/java/swing/plaf/windows/resources
+#com/sun/java/util/jar/pack
+$(eval $(call add_properties_to_clean,JNDI_COSNAMING,\
+	$(JDK_TOPDIR)/src/share/classes/com/sun/java/util/jar/pack/intrinsic.properties))
+#com/sun/jndi/cosnaming
+$(eval $(call add_properties_to_clean,JNDI_COSNAMING,\
+	$(JDK_TOPDIR)/src/share/classes/com/sun/jndi/cosnaming/jndiprovider.properties))
+#com/sun/jndi/ldap
+$(eval $(call add_properties_to_clean,JNDI_COSNAMING,\
+	$(JDK_TOPDIR)/src/share/classes/com/sun/jndi/ldap/jndiprovider.properties))
+
+#com/sun/org/apache/xml/internal/security/resource
+#FIXME: The "xmlsecurity*.properties" pattern is not ideal; we might want to find
+#a better way to select the properties files that are needed.
+$(eval $(call add_properties_to_clean,XML_SECURITY,\
+	$(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/org/apache/xml/internal/security/resource -name "xmlsecurity*.properties")))
+
+#com/sun/rowset
+$(eval $(call add_properties_to_clean,COM_SUN_ROWSET,\
+	$(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/rowset -name "*.properties")))
+$(eval $(call add_properties_to_clean,COM_SUN_ROWSET_HK,\
+	$(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/rowset -name "*zh_TW.properties"),\
+	%zh_TW,%zh_HK))
+
+#com/sun/servicetag/resources
+#com/sun/swing/internal/plaf/basic/resources
+#com/sun/swing/internal/plaf/metal/resources
+#com/sun/swing/internal/plaf/synth/resources
+
+#com/sun/tools/jdi/resources
+$(eval $(call add_properties_to_compile,COM_SUN_TOOLS_JDI,\
+	$(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/tools/jdi/resources -name "*.properties"),\
+		ListResourceBundle))
+
+#com/sun/tools/script/shell
+#java/util
+#javax/sql/rowset
+#sun/awt/resources
+$(eval $(call add_properties_to_compile,SUN_AWT,\
+	$(shell find $(JDK_TOPDIR)/src/share/classes/sun/awt/resources -name "*.properties"),\
+		ListResourceBundle))
+$(eval $(call add_properties_to_compile,SUN_AWT_HK,\
+	$(shell find $(JDK_TOPDIR)/src/share/classes/sun/awt/resources -name "*.properties"),\
+		ListResourceBundle,%zh_TW,%zh_HK))
+#sun/launcher/resources
+$(eval $(call add_properties_to_compile,SUN_LAUNCHER,\
+	$(shell find $(JDK_TOPDIR)/src/share/classes/sun/launcher/resources -name "*.properties"),\
+		ListResourceBundle))
+$(eval $(call add_properties_to_compile,SUN_LAUNCHER_HK,\
+	$(shell find $(JDK_TOPDIR)/src/share/classes/sun/launcher/resources -name "*.properties"),\
+		ListResourceBundle,%zh_TW,%zh_HK))
+#sun/management/resources
+#sun/print
+#sun/print/resources
+$(eval $(call add_properties_to_compile,SUN_PRINT,\
+	$(shell find $(JDK_TOPDIR)/src/share/classes/sun/print/resources -name "*.properties"),\
+		ListResourceBundle))
+$(eval $(call add_properties_to_compile,SUN_PRINT_HK,\
+	$(shell find $(JDK_TOPDIR)/src/share/classes/sun/print/resources -name "*.properties"),\
+		ListResourceBundle,%zh_TW,%zh_HK))
+#sun/rmi/registry/resources
+$(eval $(call add_properties_to_clean,SUN_RMI_REGISTRY,\
+	$(shell find $(JDK_TOPDIR)/src/share/classes/sun/rmi/registry/resources -name "*.properties")))
+$(eval $(call add_properties_to_clean,SUN_RMI_REGISTRY_HK,\
+	$(shell find $(JDK_TOPDIR)/src/share/classes/sun/rmi/registry/resources -name "*zh_TW.properties"),\
+	%zh_TW,%zh_HK))
+
+#sun/rmi/rmic/resources
+$(eval $(call add_properties_to_clean,SUN_RMI_RMIC,\
+	$(shell find $(JDK_TOPDIR)/src/share/classes/sun/rmi/rmic/resources -name "*.properties")))
+
+#sun/rmi/server/resources
+$(eval $(call add_properties_to_clean,SUN_RMI_SERVER,\
+	$(shell find $(JDK_TOPDIR)/src/share/classes/sun/rmi/server/resources -name "*.properties")))
+$(eval $(call add_properties_to_clean,SUN_RMI_SERVER_HK,\
+	$(shell find $(JDK_TOPDIR)/src/share/classes/sun/rmi/server/resources -name "*zh_TW.properties"),\
+	%zh_TW,%zh_HK))
+
+# sun/tools/jar/resources
+$(eval $(call add_properties_to_compile,SUN_TOOLS_JAR,\
+	$(shell find $(JDK_TOPDIR)/src/share/classes/sun/tools/jar/resources -name "*.properties"),\
+		ListResourceBundle))
+$(eval $(call add_properties_to_compile,SUN_TOOLS_JAR_HK,\
+	$(shell find $(JDK_TOPDIR)/src/share/classes/sun/tools/jar/resources -name "*.properties"),\
+		ListResourceBundle,%zh_TW,%zh_HK))
+
+#sun/tools/javac/resources
+# It's unclear if the other localized property files here are supposed to be copied or not
+# but the old build system didn't copy them.
+$(eval $(call add_properties_to_clean,SUN_TOOLS_SERIALVER,\
+	$(shell find $(JDK_TOPDIR)/src/share/classes/sun/tools/javac/resources -name "javac.properties")))
+
+#sun/tools/serialver
+$(eval $(call add_properties_to_clean,SUN_TOOLS_SERIALVER,\
+	$(shell find $(JDK_TOPDIR)/src/share/classes/sun/tools/serialver -name "*.properties"),,,resources))
+
+#sun/util/logging/resources
+$(eval $(call add_properties_to_compile,SUN_UTIL_LOGGING,\
+	$(shell find $(JDK_TOPDIR)/src/share/classes/sun/util/logging/resources -name "*.properties"),\
+		ListResourceBundle))
+$(eval $(call add_properties_to_compile,SUN_UTIL_LOGGING_HK,\
+	$(shell find $(JDK_TOPDIR)/src/share/classes/sun/util/logging/resources -name "*.properties"),\
+		ListResourceBundle,%zh_TW,%zh_HK))
+# sun/util/resources
+$(eval $(call add_properties_to_compile,SUN_UTIL,\
+	$(shell find $(JDK_TOPDIR)/src/share/classes/sun/util/resources -name "*.properties"),\
+		LocaleNamesBundle))
+
+
+# Now setup the rule for the generation of the resource bundles.
+$(JDK_OUTPUTDIR)/gensrc_properties/_the.compiled_properties : $(ALL_COMPILED_PROPSOURCES) $(BUILD_TOOLS)
+	$(RM) -rf $(JDK_OUTPUTDIR)/gensrc_properties/*
+#	Generate all output directories in advance since the build tool does not do that...
+	$(MKDIR) -p $(sort $(dir $(ALL_COMPILED_PROPJAVAS)))
+	echo Compiling $(words $(ALL_COMPILED_PROPSOURCES)) properties into resource bundles
+	$(call ListPathsSafely,COMPILE_PROPCMDLINE,\n, >> $(JDK_OUTPUTDIR)/gensrc_properties/_the.cmdline)
+	$(TOOL_COMPILEPROPERTIES) -quiet @$(JDK_OUTPUTDIR)/gensrc_properties/_the.cmdline
+	touch $@
+
+# Now setup the rule for the generation of the cleaned properties.
+# FIXME: We currently don't handle removed properties incrementally. 
+$(JDK_OUTPUTDIR)/newclasses/_the.cleaned_properties : $(ALL_CLEANED_PROPSOURCES) $(BUILD_TOOLS)
+	$(RM) -f $(JDK_OUTPUTDIR)/newclasses/_the.cleaned_properties.cmdline
+#	Generate all output directories in advance since the build tool does not do that...
+	$(MKDIR) -p $(sort $(dir $(ALL_CLEANED_PROPOUTPUT)))
+	echo Copying and cleaning $(words $(ALL_CLEANED_PROPSOURCES)) properties 
+	$(call ListPathsSafely,CLEAN_PROPCMDLINE,\n, >> $(JDK_OUTPUTDIR)/newclasses/_the.cleaned_properties.cmdline)
+	$(TOOL_STRIPPROPERTIES) @$(JDK_OUTPUTDIR)/newclasses/_the.cleaned_properties.cmdline
+	touch $@
+
+$(ALL_COMPILED_PROPJAVAS) : $(JDK_OUTPUTDIR)/gensrc_properties/_the.compiled_properties
+
+$(ALL_CLEANED_PROPOUTPUT) : $(JDK_OUTPUTDIR)/newclasses/_the.cleaned_properties
+
+
+# Some zh_HK resources are just copied of zh_TW
+$(JDK_OUTPUTDIR)/gensrc_properties/%_zh_HK.java: $(JDK_TOPDIR)/src/share/classes/%_zh_TW.java
+	$(MKDIR) -p $(@D)
+	$(CAT) $< | $(SED) -e '/class/s/_zh_TW/_zh_HK/' > $@
+
+ZH_HK_JAVA:=	sun/applet/resources/MsgAppletViewer_zh_HK.java \
+		sun/misc/resources/Messages_zh_HK.java \
+		sun/security/util/AuthResources_zh_HK.java
+ZH_HK_JAVA_FILES:=$(addprefix $(JDK_OUTPUTDIR)/gensrc_properties/,$(ZH_HK_JAVA))
+
+
+GENSRC_PROPERTIES:=$(ALL_COMPILED_PROPJAVAS) $(ALL_CLEANED_PROPOUTPUT) $(ZH_HK_JAVA_FILES)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/Images.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,74 @@
+#
+# 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
+
+##########################################################################################
+
+# 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 Images.gmk $(IMAGES_MAKE_ARGS) images
+	$(TOUCH) $@
+
+.PHONY: default
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/LegacyMakefiles.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,57 @@
+#
+# 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
+
+all: $(JDK_OUTPUTDIR)/_the.legacy_make
+
+DEPS:=	$(shell $(FIND) $(JDK_TOPDIR)/makefiles/java -type f) \
+		$(shell $(FIND) $(JDK_TOPDIR)/makefiles/javax -type f) \
+		$(shell $(FIND) $(JDK_TOPDIR)/makefiles/sun -type f) \
+		$(shell $(FIND) $(JDK_TOPDIR)/makefiles/com -type f) \
+		$(shell $(FIND) $(JDK_TOPDIR)/makefiles/apple -type f)
+
+$(JDK_OUTPUTDIR)/_the.legacy_make: $(DEPS)
+	(echo Building single threaded Java subdir && \
+        $(MAKE) -j1 -C java all && \
+	(if test "$(PLATFORM)" = macosx; then \
+		echo Building single threaded Apple subdir && \
+		$(MAKE) -j1 -C apple all; \
+	fi) && \
+	echo Building single threaded javax subdir && \
+	$(MAKE) -j1 -C javax all && \
+	echo Building single threaded sun subdir && \
+	$(MAKE) -j1 -C sun all && \
+	echo Building single threaded com subdir && \
+	$(MAKE) -j1 -C com all && \
+	if [ -z "$(OPENJDK)" ]; then \
+		echo Building single threaded altclasses subdir && \
+		$(MAKE) -j1 -C altclasses all; \
+	fi && \
+	touch $@)
+
+.PHONY: all
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,92 @@
+#
+# Copyright (c) 1995, 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.
+#
+
+default: all
+
+include $(SPEC)
+include MakeBase.gmk
+include JavaCompilation.gmk
+include NativeCompilation.gmk
+
+# Setup the java compilers for the JDK build.
+include Setup.gmk
+
+# Setup the build tools.
+include Tools.gmk
+
+
+all: $(BUILD_TOOLS)
+	+make -f GenerateJavaSources.gmk
+#       Drop back to the old makefiles for
+#       packages/libs that have not yet been converted.
+	+make -f LegacyMakefiles.gmk
+#       Ok, now gensrc is fully populated.
+	+make -f GenerateData.gmk
+	+make -f CompileJavaClasses.gmk
+#	The classes have been built, now generate
+#	classes that have other sources.
+	+make -f GenerateClasses.gmk
+#       The classes are now built and
+#       any javah files have now been generated.
+	+make -f CompileNativeLibraries.gmk
+#       Finally compile the launchers.
+	+make -f CompileLaunchers.gmk
+#       Now we have a complete jdk, which you can run.
+#       It is not yet wrapped up as an installed image.
+#       The demos are compiled against this jdk.
+ifndef NO_DEMOS
+	+make -f CompileDemos.gmk
+endif
+#	Now copy the sample sources into the jdk.
+ifndef NO_SAMPLES
+	+make -f CopySamples.gmk
+endif
+
+# Create the final jdk and jre images, to be wrapped up
+# into packages, or instealled.
+images: all
+	+make $(IMAGES_MAKE_ARGS) -f Images.gmk 
+
+
+BINARIES:=$(shell if test -d $(IMAGES_OUTPUTDIR)/j2sdk-image/bin; then cd $(IMAGES_OUTPUTDIR)/j2sdk-image/bin && $(LS) ; fi)
+INSTALLDIR:=openjdk-$(RELEASE)
+
+# Install the jdk image, in a very crude way. Not taking into
+# account, how to install properly on macosx or windows etc.
+install: images
+	echo Installing jdk image into $(INSTALL_PREFIX)/jvm/$(INSTALLDIR)
+	echo and creating $(words $(BINARIES)) links from $(INSTALL_PREFIX)/bin into the jdk.
+	$(MKDIR) -p $(INSTALL_PREFIX)/jvm/$(INSTALLDIR)
+	$(RM) -r $(INSTALL_PREFIX)/jvm/$(INSTALLDIR)/*
+	$(CP) -rp $(IMAGES_OUTPUTDIR)/j2sdk-image/* $(INSTALL_PREFIX)/jvm/$(INSTALLDIR)
+	$(RM) $(addprefix $(INSTALL_PREFIX)/bin/,$(BINARIES))
+	$(foreach b,$(BINARIES),$(LN) -s $(INSTALL_PREFIX)/jvm/$(INSTALLDIR)/bin/$b $(INSTALL_PREFIX)/bin/$b &&) true
+
+# Create the deb,rpm,tgz,zip, packages.
+packages: images
+	echo Creating packages...well, in the future.
+	$(MKDIR) -p $(OUTPUT_ROOT)/packages
+
+.PHONY: all install
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/PatchList.solaris	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,31 @@
+BUILD,RUNTIME 5.8 Sparc 109147-24 x86 109148-24 REQ "Linker patch"
+BUILD,RUNTIME 5.8 Sparc 108652-66 x86 108653-55 REQ "Xserver patch"
+BUILD,RUNTIME 5.8 Sparc 108940-52 x86 108941-52 REQ "Motif 2.1 patch"
+BUILD,RUNTIME 5.8 Sparc 108989-02 x86 108990-02 REQ "Accounting patch"
+BUILD,RUNTIME 5.8 Sparc none      x86 111307-04 REQ "boot.bin, bootconf.exe, bootenv.rc and nbp patch"
+BUILD,RUNTIME 5.8 Sparc 111310-01 x86 111311-01 REQ "libhcpagent.so.l patch"
+BUILD,RUNTIME 5.8 Sparc 112396-02 x86 112397-02 REQ "fgrep patch"
+BUILD,RUNTIME 5.8 Sparc 108987-13 x86 108988-13 REQ "patchadd, patchrm patch"
+BUILD,RUNTIME 5.8 Sparc 111111-03 x86 111112-03 REQ "nawk patch"
+BUILD,RUNTIME 5.8 Sparc 108528-20 x86 108529-20 REQ "Kernel update"
+BUILD,RUNTIME 5.8 Sparc 108993-18 x86 none      REQ "LDAP2 Patch"
+BUILD,RUNTIME 5.8 Sparc none      x86 110400-01 REQ "RBAC Feature patch"
+BUILD,RUNTIME 5.8 Sparc none      x86 111024-02 REQ "/kernel/fs/mntfs patch"
+BUILD,RUNTIME 5.8 Sparc none      x86 108994-18 REQ "LDAP2 patch"
+BUILD,RUNTIME 5.8 Sparc 109147-23 x86 109148-23 REQ "linker patch"
+BUILD,RUNTIME 5.8 Sparc 111308-03 x86 111309-03 REQ "Performance for apps using memory alloc"
+RUNTIME       5.8 Sparc 112003-03 x86 none      REQ "Fontset patch for sparcv9"
+RUNTIME       5.8 Sparc 108921-16 x86 108922-16 REQ "CDE patch"
+RUNTIME       5.8 Sparc 108773-18 x86 108774-18 REQ "X input method patch"
+RUNTIME       5.8 Sparc 110386-03 x86 none      REQ "RBAC Feature Patch"
+RUNTIME       5.8 Sparc 111023-02 x86 none      REQ "/kernel/fs/mntfs and /kernel/fs/sparcv9/mntfs patch"
+RUNTIME       5.8 Sparc 112472-01 x86 112473-01 OPT "Font2DTest2 patch" 
+RUNTIME       5.8 Sparc 112438-01 x86 112439-01 REQ "/kernel/drv/random patch"
+
+COMPILER      5.8 Sparc 109505-06 x86 109502-03 REQ "For C 5.0, C++ 5.0"
+COMPILER      5.8 Sparc 109513-05 x86 109514-03 REQ "For Forte Development 6 C compiler"
+COMPILER      5.8 Sparc 109508-03 x86 109509-03 REQ "For Forte Development 6 update 1 C++ compiler"
+COMPILER      5.8 Sparc 109510-03 x86 109511-03 REQ "For Forte 6.1 Debugger"
+COMPILER      5.8 Sparc 109516-02 x86 109517-02 REQ "For Forte 6.1 Performance Analyzer"
+COMPILER      5.8 Sparc 110480-01 x86 110481-01 REQ "For Forte TeamWare"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/Setup.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,77 @@
+#
+# 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.
+#
+
+JAVAC_JARS ?= "-Xbootclasspath/p:$(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javac.jar" -jar $(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javac.jar
+JAVAH_JARS ?= "-Xbootclasspath/p:$(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javah.jar" -jar $(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javah.jar
+
+DISABLE_WARNINGS:=-Xlint:all,-deprecation,-unchecked,-rawtypes,-cast,-serial,-dep-ann,-static,-fallthrough,-try,-varargs,-empty,-finally
+
+# The generate old bytecode javac setup uses the new compiler to compile for the
+# boot jdk to generate tools that need to be run with the boot jdk.
+# Thus we force the target bytecode to 6.
+$(eval $(call SetupJavaCompiler,GENERATE_OLDBYTECODE,\
+     JVM:=$(JAVA),\
+     JAVAC:=$(JAVAC_JARS),\
+     FLAGS:=-source 7 -target 7 -bootclasspath $(BOOT_RTJAR) $(DISABLE_WARNINGS),\
+     SERVER_DIR:=$(JAVAC_SERVERS),\
+     SERVER_JVM:=$(SERVER_JAVA),\
+     MODE:=$(JAVAC_USE_MODE),\
+     USE_DEPS:=$(JAVAC_USE_DEPS)))
+
+# The generate new bytecode javac setup uses the new compiler to compile for the
+# new jdk. This new bytecode might only be possible to run using the new jvm.
+$(eval $(call SetupJavaCompiler,GENERATE_JDKBYTECODE,\
+     JVM:=$(JAVA),\
+     JAVAC:=$(JAVAC_JARS),\
+     JAVAH:=$(JAVAH_JARS),\
+     FLAGS:=-bootclasspath "$(JDK_OUTPUTDIR)/newclasses$(PATH_SEP)$(JDK_OUTPUTDIR)/classes" -Xprefer:source -XDignore.symbol.file=true $(DISABLE_WARNINGS),\
+     SERVER_DIR:=$(JAVAC_SERVERS),\
+     SERVER_JVM:=$(SERVER_JAVA),\
+     MODE:=$(JAVAC_USE_MODE),\
+     USE_DEPS:=$(JAVAC_USE_DEPS)))
+
+# After the jdk is built, we want to build demos using only the recently
+# generated jdk classes and nothing else, no jdk source, etc etc.
+# I.e. the rt.jar, but since rt.jar has not yet been generated
+# (it will be in "make images") therefore we use classes instead.
+$(eval $(call SetupJavaCompiler,GENERATE_USINGJDKBYTECODE,\
+     JVM:=$(JAVA),\
+     JAVAC:=$(JAVAC_JARS),\
+     FLAGS:= -Xbootclasspath:$(JDK_OUTPUTDIR)/classes $(DISABLE_WARNINGS),\
+     SERVER_DIR:=$(JAVAC_SERVERS),\
+     SERVER_JVM:=$(SERVER_JAVA),\
+     MODE:=$(JAVAC_USE_MODE),\
+     USE_DEPS:=$(JAVAC_USE_DEPS)))
+
+# A temporary solution to work around the fact that Matrix3D.java
+# exists in several applets. The javacserver does not like to be
+# fed the same class twice. Thus we compile one applet outside of the
+# javacserver.
+$(eval $(call SetupJavaCompiler,GENERATE_USINGJDKBYTECODE_NOSERV,\
+     JVM:=$(JAVA),\
+     JAVAC:=$(JAVAC_JARS),\
+     FLAGS:= -Xbootclasspath:$(JDK_OUTPUTDIR)/classes $(DISABLE_WARNINGS),\
+     MODE:=SINGLE_THREADED_BATCH,\
+     USE_DEPS:=FALSE))
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/Tools.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,114 @@
+#
+# 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.
+#
+
+ifeq (,$(BUILD_TOOLS))
+$(eval $(call SetupJavaCompilation,BUILD_TOOLS,\
+                SETUP:=GENERATE_OLDBYTECODE,\
+		SRC:=$(JDK_TOPDIR)/make/tools/src,\
+		BIN:=$(JDK_OUTPUTDIR)/btclasses))
+endif
+
+ifndef DISABLE_NIMBUS
+
+$(JDK_OUTPUTDIR)/btclasses/build/tools/generatenimbus/resources/%.template : \
+	$(JDK_TOPDIR)/src/share/classes/javax/swing/plaf/nimbus/%.template
+	mkdir -p $(@D)
+	cp $< $@
+
+BUILD_TOOLS += $(foreach i,$(wildcard $(JDK_TOPDIR)/src/share/classes/javax/swing/plaf/nimbus/*.template),$(JDK_OUTPUTDIR)/btclasses/build/tools/generatenimbus/resources/$(notdir $i))
+
+endif
+
+
+# Add a checksum ("jsum") to the end of a text file. Prevents trivial tampering with class lists.
+TOOL_ADDJSUM=$(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
+	build.tools.addjsum.AddJsum
+
+# The buildmetaindex tool creates a meta-index to make core class loaders lazier.
+TOOL_BUILDMETAINDEX=$(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
+	build.tools.buildmetaindex.BuildMetaIndex
+
+# The comment checker is not currently used. Should it be removed or added to javac?
+TOOL_COMMENTCHECKER=$(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
+	build.tools.commentchecker.CommentChecker
+
+TOOL_COMPILEFONTCONFIG=$(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
+	build.tools.compilefontconfig.CompileFontConfig
+
+TOOL_COMPILEPROPERTIES=$(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
+	build.tools.compileproperties.CompileProperties
+
+TOOL_STRIPPROPERTIES=$(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
+	build.tools.stripproperties.StripProperties
+
+TOOL_JARREORDER=$(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
+	build.tools.jarreorder.JarReorder
+
+TOOL_GENERATECHARACTER=$(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
+	build.tools.generatecharacter.GenerateCharacter
+
+TOOL_CHARACTERNAME=$(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
+	build.tools.generatecharacter.CharacterName
+
+TOOL_DIRDIFF=$(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
+	build.tools.dirdiff.DirDiff
+
+TOOL_DTDBUILDER=$(JAVA) -Ddtd_home=$(JDK_TOPDIR)/make/tools/dtdbuilder/dtds \
+	-cp $(JDK_OUTPUTDIR)/btclasses build.tools.dtdbuilder.DTDBuilder
+
+TOOL_GENERATEBREAKITERATORDATA=$(JAVA) \
+	-cp $(JDK_OUTPUTDIR)/btclasses \
+	build.tools.generatebreakiteratordata.GenerateBreakIteratorData
+
+TOOL_GENERATECURRENCYDATA=$(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
+	build.tools.generatecurrencydata.GenerateCurrencyData
+
+TOOL_HASHER=$(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
+	build.tools.hasher.Hasher
+
+# Jarsplit used in jdk/makefiles/common/Release.gmk
+TOOL_JARSPLIT=$(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
+	build.tools.jarsplit.JarSplit
+
+TOOL_JAVAZIC=$(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
+	build.tools.javazic.Main
+
+# TODO: There are references to the jdwpgen.jar in jdk/make/netbeans/jdwpgen/build.xml 
+# and nbproject/project.properties in the same dir. Needs to be looked at.
+TOOL_JDWPGEN=$(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses build.tools.jdwpgen.Main
+
+# TODO: Lots of files in jdk/make/tools/CharsetMapping dir
+TOOL_CHARSETMAPPING=$(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
+	build.tools.charsetmapping.Main
+
+TOOL_SPP=$(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses build.tools.spp.Spp
+
+# TODO: Only referenced in jdk/make/tools/sharing/README.txt. Find out what it means.
+TOOL_MAKECLASSLIST=$(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
+	build.tools.makeclasslist.MakeClasslist
+
+# Nimbus is used somewhere in the swing build.
+TOOL_GENERATENIMBUS=$(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
+	build.tools.generatenimbus.Generator
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/altclasses/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,84 @@
+#
+# Copyright (c) 2010, 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.
+#
+
+#
+# Makefile for building alternate runtime classes (not used by default)
+#
+
+BUILDDIR = ..
+
+PRODUCT = altclasses
+
+include $(BUILDDIR)/common/Defs.gmk
+
+# Root of alternate class sources
+
+ALTCLASSES_SRCDIR = $(CLOSED_SRC)/share/altclasses
+
+# Alternate runtime classes
+
+ALTRT_JAR_FILE = $(LIBDIR)/alt-rt.jar
+ALTRT_JAR_SOURCE_FILE = $(TEMPDIR)/alt-rt.jarsrclist
+ALTRT_JAR_SOURCES = $(wildcard $(ALTCLASSES_SRCDIR)/java/*/*.java)
+
+# Use a special file suffix for the file that holds the source list
+
+.SUFFIXES: .jarsrclist
+
+# Build rules
+
+all build: 
+	@if [ -d $(ALTCLASSES_SRCDIR) ] ; then \
+	   $(MAKE) $(ALTRT_JAR_FILE); \
+	fi
+
+# Source list file creation
+
+$(ALTRT_JAR_SOURCE_FILE): $(ALTRT_JAR_SOURCES) FRC
+	$(prep-target)
+	$(ECHO) $(ALTRT_JAR_SOURCES) > $@
+
+clean clobber::
+	$(RM) $(ALTRT_JAR_FILE) $(ALTRT_JAR_SOURCE_FILE) 
+	$(RM) -r $(ALTRT_JAR_SOURCE_FILE).classes
+
+include $(BUILDDIR)/common/Classes.gmk
+
+# Pattern rule to turn a source list file into a jar file
+$(LIBDIR)/%.jar : $(TEMPDIR)/%.jarsrclist
+	$(prep-target)
+	$(RM) -r $(<).classes
+	$(MKDIR) -p $(<).classes
+	$(JAVAC_CMD) -implicit:none -d $(<).classes @$<
+	$(BOOT_JAR_CMD) cf $@ -C $(<).classes . $(BOOT_JAR_JFLAGS)
+
+# Force target
+
+FRC:
+
+# Non file targets
+
+.PHONY: all build clean clobber
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/apple/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,39 @@
+#
+# Copyright (c) 2011, 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.
+#
+
+#
+# Makefile for building com/apple
+#
+
+BUILDDIR = ..
+PRODUCT = sun
+include $(BUILDDIR)/common/Defs.gmk
+
+SUBDIRS = applescript
+
+include $(BUILDDIR)/common/Subdirs.gmk
+
+all build clean clobber::
+	$(SUBDIRS-loop)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/apple/applescript/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,71 @@
+#
+# Copyright (c) 2011, 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.
+#
+
+BUILDDIR = ../..
+PACKAGE = apple.applescript
+LIBRARY = AppleScriptEngine
+PRODUCT = sun
+include $(BUILDDIR)/common/Defs.gmk
+
+
+#
+# Files
+#
+AUTO_FILES_JAVA_DIRS = apple/applescript
+
+FILES_objc = \
+        $(TARGDIR)AppleScriptEngine.m \
+        $(TARGDIR)AppleScriptExecutionContext.m \
+        $(TARGDIR)AS_NS_ConversionUtils.m \
+        $(TARGDIR)NS_Java_ConversionUtils.m
+
+
+FILES_export = \
+	apple/applescript/AppleScriptEngine.java \
+	apple/applescript/AppleScriptEngineFactory.java
+
+#
+# Rules
+#
+include $(BUILDDIR)/common/Mapfile-vers.gmk
+include $(BUILDDIR)/common/Library.gmk
+
+
+#
+# Extra rules
+#
+
+#
+# Add to ambient vpath to get files in a subdirectory
+#
+vpath %.m   $(call NativeSrcDirList,,native/apple/applescript)
+
+CPPFLAGS += \
+	-I$(TEMPDIR)/../../sun.awt/awt/CClassHeaders
+
+OTHER_LDLIBS = \
+    -framework Cocoa \
+    -framework Carbon \
+    -framework JavaNativeFoundation
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/com/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,44 @@
+#
+# Copyright (c) 1997, 2010, 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.
+#
+
+#
+# Makefile for building all of java
+#
+
+BUILDDIR = ..
+PRODUCT = com
+include $(BUILDDIR)/common/Defs.gmk
+
+SUBDIRS = sun oracle
+
+ifeq ($(PLATFORM), macosx)
+    SUBDIRS += apple
+endif
+
+include $(BUILDDIR)/common/Subdirs.gmk
+
+all build clean clobber::
+	$(SUBDIRS-loop)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/com/apple/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,39 @@
+#
+# Copyright (c) 1997, 2010, 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.
+#
+
+#
+# Makefile for building com/apple
+#
+
+BUILDDIR = ../..
+PRODUCT = sun
+include $(BUILDDIR)/common/Defs.gmk
+
+SUBDIRS = osx osxui
+
+include $(BUILDDIR)/common/Subdirs.gmk
+
+all build clean clobber::
+	$(SUBDIRS-loop)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/com/apple/osx/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,91 @@
+#
+# Copyright (c) 1997, 2011, 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.
+#
+
+BUILDDIR = ../../..
+PACKAGE = com.apple.osx
+LIBRARY = osx
+PRODUCT = sun
+include $(BUILDDIR)/common/Defs.gmk
+
+
+#
+# Files
+#
+AUTO_FILES_JAVA_DIRS = apple/launcher apple/security com/apple/concurrent com/apple/eio java/util/prefs
+
+FILES_objc += \
+    $(TARGDIR)Dispatch.m \
+    $(TARGDIR)CFileManager.m \
+    $(TARGDIR)KeystoreImpl.m \
+    $(TARGDIR)JavaAppLauncher.m \
+    $(TARGDIR)MacOSXPreferencesFile.m \
+    $(TARGDIR)SCDynamicStoreConfig.m
+
+FILES_export += \
+	com/apple/concurrent/LibDispatchNative.java \
+	com/apple/eio/FileManager.java \
+	apple/security/KeychainStore.java \
+	apple/launcher/JavaAppLauncher.java \
+	java/util/prefs/MacOSXPreferencesFile.java
+
+# TODO: couldn't figure out how to get resources working
+#LOCALE_SET_DEFINITION = jre
+#RESOURCE_BUNDLES_UNCOMPILED_PROPERTIES = apple/launcher/appLauncherErrors.properties
+
+
+#
+# Rules
+#
+include $(BUILDDIR)/common/Mapfile-vers.gmk
+include $(BUILDDIR)/common/Library.gmk
+
+
+#
+# Extra rules
+#
+
+#
+# Add to ambient vpath to get files in a subdirectory
+#
+vpath %.m   $(call NativeSrcDirList,,native/com/apple/concurrent)
+vpath %.m   $(call NativeSrcDirList,,native/com/apple/eio)
+vpath %.m   $(call NativeSrcDirList,,native/apple/launcher)
+vpath %.m   $(call NativeSrcDirList,,native/apple/security)
+vpath %.m   $(call NativeSrcDirList,,native/java/util)
+
+CPPFLAGS += \
+	$(call NativeSrcDirList,-I,native/com/apple/laf) \
+	$(call NativeSrcDirList,-I,native/apple/awt) \
+	$(call NativeSrcDirList,-I,native/sun/awt) \
+	$(call NativeSrcDirList,-I,native/sun/osxapp)
+
+OTHER_LDLIBS = \
+    -losxapp \
+    -framework Cocoa \
+    -framework ApplicationServices \
+    -framework JavaNativeFoundation \
+    -framework JavaRuntimeSupport \
+    -framework Security \
+    -framework SystemConfiguration
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/com/apple/osxui/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,106 @@
+#
+# Copyright (c) 1997, 2011, 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.
+#
+
+BUILDDIR = ../../..
+PACKAGE = com.apple.osxui
+LIBRARY = osxui
+PRODUCT = sun
+include $(BUILDDIR)/common/Defs.gmk
+
+
+#
+# Files
+#
+AUTO_FILES_JAVA_DIRS = apple/laf com/apple/laf com/apple/eawt
+
+FILES_objc = \
+        $(TARGDIR)AquaFileView.m \
+        $(TARGDIR)AquaLookAndFeel.m \
+        $(TARGDIR)AquaNativeResources.m \
+        $(TARGDIR)JRSUIConstantSync.m \
+        $(TARGDIR)JRSUIController.m \
+        $(TARGDIR)JRSUIFocus.m \
+        $(TARGDIR)ScreenPopupFactory.m \
+        $(TARGDIR)ScreenMenu.m
+
+FILES_export = \
+	apple/laf/AquaLookAndFeel.java \
+	apple/laf/JRSUIConstants.java \
+	apple/laf/JRSUIControl.java \
+	apple/laf/JRSUIFocus.java \
+	apple/laf/JRSUIState.java \
+	apple/laf/JRSUIStateFactory.java \
+	apple/laf/JRSUIUtils.java \
+	com/apple/laf/AquaFileView.java \
+	com/apple/laf/AquaNativeResources.java \
+	com/apple/laf/ScreenPopupFactory.java \
+	com/apple/laf/ScreenMenu.java \
+	com/apple/laf/ScreenMenuBar.java \
+	com/apple/laf/ScreenMenuBarProvider.java \
+	com/apple/laf/ScreenMenuItem.java \
+	com/apple/laf/ScreenMenuItemCheckbox.java \
+	com/apple/laf/ScreenMenuItemUI.java \
+	com/apple/laf/ScreenMenuPropertyHandler.java \
+	com/apple/laf/ScreenMenuPropertyListener.java
+
+#RESOURCE_BUNDLES_COMPILED_PROPERTIES += \
+#	com/apple/laf/resources/aqua.properties \
+#	com/apple/laf/resources/aqua_de.properties \
+#	com/apple/laf/resources/aqua_fr.properties \
+#	com/apple/laf/resources/aqua_ja.properties
+
+
+#
+# Rules
+#
+include $(BUILDDIR)/common/Mapfile-vers.gmk
+include $(BUILDDIR)/common/Library.gmk
+
+
+#
+# Extra rules
+#
+
+#
+# Add to ambient vpath to get files in a subdirectory
+#
+vpath %.m   $(call NativeSrcDirList,,native/com/apple/laf)
+vpath %.m $(call NativeSrcDirList,,native/com/apple/eawt)
+
+CPPFLAGS += \
+	$(call NativeSrcDirList,-I,native/com/apple/laf) \
+	$(call NativeSrcDirList,-I,native/apple/awt) \
+	$(call NativeSrcDirList,-I,native/sun/awt) \
+	$(call NativeSrcDirList,-I,native/sun/osxapp) \
+	-I$(TEMPDIR)/../../sun.awt/awt/CClassHeaders
+
+OTHER_LDLIBS = \
+    -lawt -losxapp \
+    -lawt_lwawt -L$(LIBDIR) -Xlinker -rpath -Xlinker @loader_path \
+    -framework Cocoa \
+    -framework Carbon \
+    -framework ApplicationServices \
+    -framework JavaNativeFoundation \
+    -framework JavaRuntimeSupport
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/com/oracle/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,54 @@
+#
+# Copyright (c) 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.
+#
+
+BUILDDIR = ../..
+PRODUCT = oracle
+#SUBDIRS_MAKEFLAGS += JAVAC_MAX_WARNINGS=true
+#SUBDIRS_MAKEFLAGS += JAVAC_WARNINGS_FATAL=true
+#SUBDIRS_MAKEFLAGS += JAVAC_LINT_OPTIONS=-Xlint:all,-deprecation,-path
+include $(BUILDDIR)/common/Defs.gmk
+
+# build com/oracle/security/ucrypto on Solaris platform for non-OpenJDK builds
+UCRYPTO =
+ifndef OPENJDK
+  ifeq ($(PLATFORM), solaris)
+    UCRYPTO = security/ucrypto
+  endif
+endif
+
+JFR =
+ifndef OPENJDK
+ifndef JAVASE_EMBEDDED
+	JFR = jfr
+endif
+endif
+
+SUBDIRS = $(JFR) $(UCRYPTO)
+
+include $(BUILDDIR)/common/Subdirs.gmk
+
+all build clean clobber::
+	$(SUBDIRS-loop)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/com/oracle/jfr/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,73 @@
+#
+# Copyright (c) 2011, 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.
+#
+
+BUILDDIR = ../../..
+PACKAGE = oracle.jrockit.jfr
+LIBRARY = jfr
+PRODUCT = oracle
+include $(BUILDDIR)/common/Defs.gmk
+
+#
+# Use mapfile
+#
+FILES_m = $(CLOSED_SHARE_SRC)/native/oracle/jfr/mapfile-vers
+include $(BUILDDIR)/common/Mapfile-vers.gmk
+
+#
+# Files to compile
+#
+FILES_c = VMJFR.c
+
+AUTO_FILES_JAVA_DIRS = com/oracle/jrockit/jfr oracle/jrockit/jfr
+
+# Find C source files
+#
+vpath %.c $(CLOSED_SHARE_SRC)/native/oracle/jfr
+
+#
+# Library to compile.
+#
+include $(BUILDDIR)/common/Library.gmk
+
+JVMLIB =
+JAVALIB =
+OTHER_LDLIBS =
+
+clean clobber::
+	$(RM) -r $(CLASSDESTDIR)/com/oracle/jrockit/jfr
+	$(RM) -r $(CLASSDESTDIR)/oracle/jrockit/jfr
+
+
+# Copy pre-shipped .jfs files
+JFR_LIBDIR = $(LIBDIR)/jfr
+JFR_SRCDIR = $(CLOSED_SHARE_SRC)/lib/jfr
+
+$(JFR_LIBDIR)/%.jfs: $(JFR_SRCDIR)/%.jfs
+	$(install-file)
+
+JFS_FILES := $(subst $(JFR_SRCDIR),$(JFR_LIBDIR),$(wildcard $(JFR_SRCDIR)/*.jfs))
+
+all build : $(JFS_FILES)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/com/oracle/security/ucrypto/FILES_c.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,30 @@
+#
+# Copyright (c) 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.
+#
+
+ifndef OPENJDK
+FILES_c = \
+        nativeFunc.c \
+	nativeCrypto.c
+endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/com/oracle/security/ucrypto/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,270 @@
+#
+# Copyright (c) 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.
+#
+
+#
+# Makefile for building ucrypto.jar and its native libraries.
+#
+# This file was modified from make/sun/security/pkcs11/Makefile.
+#
+#
+# (The terms "OpenJDK" and "JDK" below refer to OpenJDK and Oracle
+# JDK builds respectively.)
+#
+# This Makefile does the "real" build of the Ucrypto provider files.
+# Since the sources are unavailable for OpenJDK, this Makefile is only
+# useful for JDK.
+#
+#
+# Main Targets (JDK on Solaris):
+#
+#     all                      The usual, ucrypto.jar plus the native libraries.
+#                                  builds and installs the prebuilt/signed jar.
+#
+#     clobber/clean            Cleans up the temp directory, ucrypto.jar, the
+#                              native libraries, and the config file from the
+#                              build area
+#
+#     jar                      Builds, signs and installs ucrypto.jar
+#                              (Can only be done on machines with access to
+#                               the signing keystore)
+#
+# Other lesser-used Targets (JDK on Solaris):
+#
+#     build-jar                Builds ucrypto.jar (no sign/install)
+#
+#     sign                     Builds/signs ucrypto.jar (no install)
+#
+#     release                  Builds all targets in preparation
+#                              for workspace integration.
+#                              (Can only be done on machines with access to
+#                               the signing keystore)
+#
+#     install-prebuilt         Installs the pre-built jar files
+#
+# NOTE: None of the above target will update the prebuilt provider binary
+# under the closed workspace. To update it, you must explicitly copy the
+# binary from either the tmp/signed or lib/ext directory.
+#
+# This makefile was written to support parallel target execution.
+#
+
+BUILDDIR = ../../../..
+
+include $(BUILDDIR)/common/Defs.gmk
+
+ifndef OPENJDK
+  ifneq ($(PLATFORM), solaris)
+    all:
+  else
+    PACKAGE = com.oracle.security.ucrypto
+  LIBRARY = j2ucrypto
+  PRODUCT = oracle
+
+  #
+  # The following is for when we need to do postprocessing
+  # (signing/obfuscation) against a read-only build.  If the OUTPUTDIR
+  # isn't writable, the build currently crashes out.
+  #
+  ifdef ALT_JCE_BUILD_DIR
+    # =====================================================
+    # Where to place the output, in case we're building from a read-only
+    # build area.  (e.g. a release engineering build.)
+    JCE_BUILD_DIR=${ALT_JCE_BUILD_DIR}
+    IGNORE_WRITABLE_OUTPUTDIR_TEST=true
+  else
+    JCE_BUILD_DIR=${TEMPDIR}
+  endif
+
+  JAVAC_MAX_WARNINGS=false
+  JAVAC_LINT_OPTIONS=-Xlint:all,-deprecation
+  JAVAC_WARNINGS_FATAL=true
+
+  #
+  # C and Java Files
+  #
+  include FILES_c.gmk
+
+  #
+  # Subdirectories of these are automatically included.
+  #
+  AUTO_FILES_JAVA_DIRS = com/oracle/security/ucrypto
+
+  #
+  # Java files that define native methods
+  #
+  FILES_export = \
+      com/oracle/security/ucrypto/UcryptoProvider.java \
+      com/oracle/security/ucrypto/NativeCipher.java \
+      com/oracle/security/ucrypto/NativeDigest.java \
+      com/oracle/security/ucrypto/NativeKey.java \
+      com/oracle/security/ucrypto/NativeRSASignature.java \
+      com/oracle/security/ucrypto/NativeRSACipher.java
+
+  #
+  # Find native code
+  #
+  vpath %.c \
+    $(CLOSED_PLATFORM_SRC)/native/com/oracle/security/ucrypto
+
+  #
+  # Find include files
+  #
+  OTHER_INCLUDES += \
+    -I$(CLOSED_PLATFORM_SRC)/native/com/oracle/security/ucrypto
+
+  #
+  # Rules
+  #
+  CLASSDESTDIR = $(TEMPDIR)/classes
+  JAVAHFLAGS = -bootclasspath \
+    "$(CLASSDESTDIR)$(CLASSPATH_SEPARATOR)$(CLASSBINDIR)"
+
+  include $(BUILDDIR)/common/Mapfile-vers.gmk
+  include $(BUILDDIR)/common/Library.gmk
+
+  #
+  # Libraries to link
+  #
+  OTHER_LDLIBS = -ldl
+
+  # Default config file
+  UCRYPTO_CFG_SRC   = $(CLOSED_SRC)/share/lib/security/ucrypto-solaris.cfg
+  UCRYPTO_CFG_BUILD = $(LIBDIR)/security/ucrypto-solaris.cfg
+
+  #
+  # We use a variety of subdirectories in the $(TEMPDIR) depending on what
+  # part of the build we're doing.  Build is initially done in the unsigned
+  # area and when files are signed, they will be placed in the appropriate area.
+  #
+  UNSIGNED_DIR = $(TEMPDIR)/unsigned
+
+  #
+  # Rules
+  #
+  all: ucrypto-cfg build-jar install-prebuilt
+	$(build-warning)
+
+  ucrypto-cfg: $(UCRYPTO_CFG_BUILD)
+
+  $(UCRYPTO_CFG_BUILD): $(UCRYPTO_CFG_SRC)
+	$(install-file)
+
+  include $(BUILDDIR)/javax/crypto/Defs-jce.gmk
+
+
+  # =====================================================
+  # Build the unsigned ucrypto.jar file.
+  #
+
+  JAR_DESTFILE = $(EXTDIR)/ucrypto.jar
+
+  #
+  # The ucrypto.jar needs to be in the extension class directory,
+  # therefore none of its classes can appear in $(CLASSBINDIR).
+  # Currently no one is using any of the internals, so these files
+  # should not have been built.
+  #
+
+  #
+  # Since the -C option to jar is used below, each directory entry must be
+  # preceded with the appropriate directory to "cd" into.
+  #
+  JAR_DIRS = $(patsubst %, -C $(CLASSDESTDIR) %, $(AUTO_FILES_JAVA_DIRS))
+
+  build-jar: $(UNSIGNED_DIR)/ucrypto.jar
+
+  #
+  # Build ucrypto.jar.
+  #
+  $(UNSIGNED_DIR)/ucrypto.jar: build
+	$(prep-target)
+	$(BOOT_JAR_CMD) cf $@ $(JAR_DIRS) \
+	    $(BOOT_JAR_JFLAGS)
+	@$(java-vm-cleanup)
+
+  #
+  # Sign ucrypto.jar
+  #
+  SIGNED_DIR = $(JCE_BUILD_DIR)/signed
+
+  sign: $(SIGNED_DIR)/ucrypto.jar
+
+  ifndef ALT_JCE_BUILD_DIR
+    $(SIGNED_DIR)/ucrypto.jar: $(UNSIGNED_DIR)/ucrypto.jar
+  else
+    #
+    # We have to remove the build dependency, otherwise, we'll try to rebuild it
+    # which we can't do on a read-only filesystem.
+    #
+    $(SIGNED_DIR)/ucrypto.jar:
+	@if [ ! -r $(UNSIGNED_DIR)/ucrypto.jar ] ; then \
+            $(ECHO) "Couldn't find $(UNSIGNED_DIR)/ucrypto.jar"; \
+            exit 1; \
+        fi
+  endif
+	$(call sign-file, $(UNSIGNED_DIR)/ucrypto.jar)
+
+
+  # =====================================================
+  # Create the Release Engineering files.  Signed builds, etc.
+  #
+
+  release: $(SIGNED_DIR)/ucrypto.jar
+	$(RM) $(JCE_BUILD_DIR)/release/ucrypto.jar
+	$(MKDIR) -p $(JCE_BUILD_DIR)/release
+	$(CP) $(SIGNED_DIR)/ucrypto.jar $(JCE_BUILD_DIR)/release
+	$(release-warning)
+
+
+  # =====================================================
+  # Install routines.
+  #
+
+  #
+  # Install ucrypto.jar, depending on which type is requested.
+  #
+  jar: $(JAR_DESTFILE)
+	$(release-warning)
+
+  $(JAR_DESTFILE): $(SIGNED_DIR)/ucrypto.jar
+	$(install-file)
+
+  install-prebuilt:
+	@$(ECHO) "\n>>>Installing prebuilt OracleUcrypto provider..."
+	$(RM) $(JAR_DESTFILE)
+	$(CP) $(PREBUILT_DIR)/ucrypto/ucrypto.jar $(JAR_DESTFILE)
+
+
+  # =====================================================
+  # Support routines.
+  #
+  clobber clean::
+	$(RM) -r $(JAR_DESTFILE) $(TEMPDIR) $(JCE_BUILD_DIR)
+	$(RM) -r $(UCRYPTO_CFG_BUILD)
+
+  .PHONY: build-jar jar sign release install-prebuilt
+
+  endif #ifneq ($(PLATFORM), solaris)
+endif #ifndef OPENJDK
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/com/oracle/security/ucrypto/mapfile-vers	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,69 @@
+#
+# Copyright (c) 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.
+#
+
+# Define public interface.
+
+SUNWprivate_1.1 {
+	global:
+                JNI_OnLoad;
+                Java_com_oracle_security_ucrypto_UcryptoProvider_loadLibraries;
+                Java_com_oracle_security_ucrypto_UcryptoProvider_getMechList;
+		Java_com_oracle_security_ucrypto_NativeDigest_nativeInit;
+                Java_com_oracle_security_ucrypto_NativeDigest_nativeUpdate;
+                Java_com_oracle_security_ucrypto_NativeDigest_nativeDigest;
+                Java_com_oracle_security_ucrypto_NativeDigest_nativeClone;
+                Java_com_oracle_security_ucrypto_NativeDigest_nativeFree;
+		Java_com_oracle_security_ucrypto_NativeCipher_nativeInit;
+		Java_com_oracle_security_ucrypto_NativeCipher_nativeUpdate;
+		Java_com_oracle_security_ucrypto_NativeCipher_nativeFinal;
+                Java_com_oracle_security_ucrypto_NativeKey_nativeFree;
+                Java_com_oracle_security_ucrypto_NativeKey_00024RSAPrivateCrt_nativeInit;
+                Java_com_oracle_security_ucrypto_NativeKey_00024RSAPublic_nativeInit;
+		Java_com_oracle_security_ucrypto_NativeRSASignature_nativeInit;
+		Java_com_oracle_security_ucrypto_NativeRSASignature_nativeUpdate__JZ_3BII;
+		Java_com_oracle_security_ucrypto_NativeRSASignature_nativeUpdate__JZJI;
+		Java_com_oracle_security_ucrypto_NativeRSASignature_nativeFinal;
+		Java_com_oracle_security_ucrypto_NativeRSACipher_nativeAtomic;
+
+                JavaCritical_com_oracle_security_ucrypto_NativeDigest_nativeInit;
+                JavaCritical_com_oracle_security_ucrypto_NativeDigest_nativeUpdate;
+                JavaCritical_com_oracle_security_ucrypto_NativeDigest_nativeDigest;
+                JavaCritical_com_oracle_security_ucrypto_NativeDigest_nativeClone;
+                JavaCritical_com_oracle_security_ucrypto_NativeDigest_nativeFree;
+                JavaCritical_com_oracle_security_ucrypto_NativeCipher_nativeInit;
+                JavaCritical_com_oracle_security_ucrypto_NativeCipher_nativeUpdate;
+                JavaCritical_com_oracle_security_ucrypto_NativeCipher_nativeFinal;
+                JavaCritical_com_oracle_security_ucrypto_NativeKey_nativeFree;
+                JavaCritical_com_oracle_security_ucrypto_NativeKey_00024RSAPrivateCrt_nativeInit;
+                JavaCritical_com_oracle_security_ucrypto_NativeKey_00024RSAPublic_nativeInit;
+		JavaCritical_com_oracle_security_ucrypto_NativeRSASignature_nativeInit;
+		JavaCritical_com_oracle_security_ucrypto_NativeRSASignature_nativeUpdate__JZ_3BII;
+		JavaCritical_com_oracle_security_ucrypto_NativeRSASignature_nativeUpdate__JZJI;
+		JavaCritical_com_oracle_security_ucrypto_NativeRSASignature_nativeFinal;
+                JavaCritical_com_oracle_security_ucrypto_NativeRSACipher_nativeAtomic;
+
+	local:
+		*;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/com/sun/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,54 @@
+
+#
+# Copyright (c) 1997, 2011, 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.
+#
+
+#
+# Makefile for building com/sun
+#
+
+BUILDDIR = ../..
+PRODUCT = sun
+include $(BUILDDIR)/common/Defs.gmk
+
+ifndef OPENJDK
+  ORG_EXISTS := $(call DirExists,$(CLOSED_SRC)/share/classes/sun/org,,)
+  ifneq ("$(ORG_EXISTS)", "") 
+    SCRIPT_SUBDIR = script
+  endif
+endif
+
+# jarsigner is part of JRE
+SUBDIRS = 
+
+SUBDIRS_management =
+SUBDIRS_enterprise = crypto/provider
+SUBDIRS_misc       = 
+
+# Omit mirror since it's built with the apt tool.
+
+include $(BUILDDIR)/common/Subdirs.gmk
+
+all build clean clobber::
+	$(SUBDIRS-loop)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/com/sun/crypto/provider/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,275 @@
+#
+# Copyright (c) 2007, 2011, 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.
+#
+
+#
+# Makefile for building sunjce_provider.jar.
+#
+# This file was derived from make/javax/crypto/Makefile.
+#
+
+#
+# (The terms "OpenJDK" and "JDK" below refer to OpenJDK and Sun JDK builds
+# respectively.)
+#
+# JCE builds are very different between OpenJDK and JDK.  The OpenJDK JCE
+# jar files do not require signing, but those for JDK do.  If an unsigned
+# jar file is installed into JDK, things will break when the crypto
+# routines are called.
+#
+# This Makefile does the "real" build of the JCE files.  There are some
+# javac options currently specific to JCE, so we recompile now to make
+# sure any implicit compilations didn't use any incorrect flags.
+#
+# For OpenJDK, the jar files built here are installed directly into the
+# OpenJDK.
+#
+# For JDK, the binaries use pre-built/pre-signed binary files stored in
+# the closed workspace that are not shipped in the OpenJDK workspaces.
+# We still build the JDK files here to verify the files compile, and in
+# preparation for possible signing.  Developers working on JCE in JDK
+# must sign the JCE files before testing.  The JCE signing key is kept
+# separate from the JDK workspace to prevent its disclosure.
+# 
+# SPECIAL NOTE TO JCE/JDK developers:  The source files must eventually
+# be built and signed, and the resulting jar files MUST BE CHECKED INTO
+# THE CLOSED PART OF THE WORKSPACE*.  This separate step *MUST NOT BE
+# FORGOTTEN*, otherwise a bug fixed in the source code will not be
+# reflected in the shipped binaries.  The "release" target should be
+# used to generate the required files.
+#
+# There are a number of targets to help both JDK/OpenJDK developers.
+#
+# Main Targets (JDK/OPENJDK):
+#
+#     all/clobber/clean        The usual.
+#                                  If OpenJDK, installs sunjce_provider.jar.
+#                                  If JDK, installs prebuilt
+#                                      sunjce_provider.jar.
+#
+#     jar                      Builds/installs sunjce_provider.jar
+#                                  If OpenJDK, does not sign.
+#                                  If JDK, tries to sign.
+#
+# Other lesser-used Targets (JDK/OPENJDK):
+#
+#     build-jar                Builds sunjce_provider.jar
+#                                  (does not sign/install)
+#
+#     install-jar              Alias for "jar" above.
+#
+# Other targets (JDK only):
+#
+#     sign                     Alias for sign-jar
+#         sign-jar             Builds/signs sunjce_provider.jar (no install)
+#
+#     release                  Builds all targets in preparation
+#                              for workspace integration.
+#
+#     install-prebuilt         Installs the pre-built jar files
+#
+# This makefile was written to support parallel target execution.
+#
+
+BUILDDIR = ../../../..
+PACKAGE = com.sun.crypto.provider
+PRODUCT = sun
+
+#
+# The following is for when we need to do postprocessing
+# (signing) against a read-only build.  If the OUTPUTDIR
+# isn't writable, the build currently crashes out.
+#
+ifndef OPENJDK
+  ifdef ALT_JCE_BUILD_DIR
+    # =====================================================
+    # Where to place the output, in case we're building from a read-only
+    # build area.  (e.g. a release engineering build.)
+    JCE_BUILD_DIR=${ALT_JCE_BUILD_DIR}
+    IGNORE_WRITABLE_OUTPUTDIR_TEST=true
+  else
+    JCE_BUILD_DIR=${TEMPDIR}
+  endif
+endif
+
+JAVAC_MAX_WARNINGS = false
+JAVAC_LINT_OPTIONS = -Xlint:all,-deprecation
+JAVAC_WARNINGS_FATAL = true
+include $(BUILDDIR)/common/Defs.gmk
+
+#
+# Location for the newly built classfiles.
+#
+CLASSDESTDIR = $(TEMPDIR)/classes
+
+#
+# Subdirectories of these are automatically included.
+#
+AUTO_FILES_JAVA_DIRS = \
+    com/sun/crypto/provider
+
+include $(BUILDDIR)/common/Classes.gmk
+
+#
+# Rules
+#
+
+#
+# Some licensees do not get the security sources, but we still need to
+# be able to build "all" for them.  Check here to see if the sources were
+# available.  If not, then we don't need to continue this rule.
+#
+
+ifdef OPENJDK
+all: build-jar install-jar
+else  # OPENJDK
+ifeq ($(strip $(FILES_java)),)
+all: install-prebuilt
+	$(no-source-warning)
+else  # FILES_java available
+all: build-jar install-prebuilt
+	$(build-warning)
+endif # $(FILES_java) available
+endif # OPENJDK
+
+#
+# We use a variety of subdirectories in the $(TEMPDIR) depending on what
+# part of the build we're doing.  Both OPENJDK/JDK builds are initially
+# done in the unsigned area.  When files are signed in JDK, they will be
+# placed in the appropriate areas.
+#
+UNSIGNED_DIR = $(TEMPDIR)/unsigned
+
+include $(BUILDDIR)/javax/crypto/Defs-jce.gmk
+
+
+# =====================================================
+# Build the unsigned sunjce_provider.jar file.
+#
+
+JAR_DESTFILE = $(EXTDIR)/sunjce_provider.jar
+
+#
+# The sunjce_provider.jar needs to be in the extension class directory,
+# therefore none of its classes should appear in $(CLASSBINDIR).
+# Currently no one is using any of the SunJCE internals, so these files
+# should not have been built.
+#
+
+#
+# Since the -C option to jar is used below, each directory entry must be
+# preceded with the appropriate directory to "cd" into.
+#
+JAR_DIRS = $(patsubst %, -C $(CLASSDESTDIR) %, $(AUTO_FILES_JAVA_DIRS))
+
+build-jar: $(UNSIGNED_DIR)/sunjce_provider.jar
+
+#
+# Build sunjce_provider.jar.
+#
+$(UNSIGNED_DIR)/sunjce_provider.jar: build $(JCE_MANIFEST_FILE)
+	$(prep-target)
+	$(BOOT_JAR_CMD) cmf $(JCE_MANIFEST_FILE) $@ $(JAR_DIRS) \
+	    $(BOOT_JAR_JFLAGS)
+	@$(java-vm-cleanup)
+
+
+ifndef OPENJDK
+# =====================================================
+# Sign the provider jar file.  Not needed for OpenJDK.
+#
+
+SIGNED_DIR = $(JCE_BUILD_DIR)/signed
+
+sign: sign-jar
+
+sign-jar: $(SIGNED_DIR)/sunjce_provider.jar
+
+ifndef ALT_JCE_BUILD_DIR
+$(SIGNED_DIR)/sunjce_provider.jar: $(UNSIGNED_DIR)/sunjce_provider.jar
+else
+#
+# We have to remove the build dependency, otherwise, we'll try to rebuild it
+# which we can't do on a read-only filesystem.
+#
+$(SIGNED_DIR)/sunjce_provider.jar:
+	@if [ ! -r $(UNSIGNED_DIR)/sunjce_provider.jar ] ; then \
+	    $(ECHO) "Couldn't find $(UNSIGNED_DIR)/sunjce_provider.jar"; \
+	    exit 1; \
+	fi
+endif
+	$(call sign-file, $(UNSIGNED_DIR)/sunjce_provider.jar)
+
+
+# =====================================================
+# Create the Release Engineering files.  Signed builds, etc.
+#
+
+release: $(SIGNED_DIR)/sunjce_provider.jar
+	$(RM) $(JCE_BUILD_DIR)/release/sunjce_provider.jar
+	$(MKDIR) -p $(JCE_BUILD_DIR)/release
+	$(CP) $(SIGNED_DIR)/sunjce_provider.jar $(JCE_BUILD_DIR)/release
+	$(release-warning)
+
+endif # OPENJDK
+
+
+# =====================================================
+# Install routines.
+#
+
+#
+# Install sunjce_provider.jar, depending on which type is requested.
+#
+install-jar jar: $(JAR_DESTFILE)
+ifndef OPENJDK
+	$(release-warning)
+endif
+
+ifdef OPENJDK
+$(JAR_DESTFILE): $(UNSIGNED_DIR)/sunjce_provider.jar
+else
+$(JAR_DESTFILE): $(SIGNED_DIR)/sunjce_provider.jar
+endif
+	$(install-file)
+
+ifndef OPENJDK
+install-prebuilt:
+	@$(ECHO) "\n>>>Installing prebuilt SunJCE provider..."
+	$(RM) $(JAR_DESTFILE)
+	$(CP) $(PREBUILT_DIR)/jce/sunjce_provider.jar $(JAR_DESTFILE)
+endif
+
+
+# =====================================================
+# Support routines.
+#
+
+clobber clean::
+	$(RM) -r $(JAR_DESTFILE) $(TEMPDIR) $(JCE_BUILD_DIR)
+
+.PHONY: build-jar jar install-jar
+ifndef OPENJDK
+.PHONY: sign sign-jar release install-prebuilt
+endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/common/Classes.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,67 @@
+#
+# Copyright (c) 1995, 2005, 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.
+#
+
+# WARNING: This file is shared with other workspaces.
+#          So when it includes other files, it must use JDK_TOPDIR.
+#
+
+include $(JDK_TOPDIR)/makefiles/common/Rules.gmk
+
+#
+# Say you built classes into $(ALT_CLASSBINDIR) and then at the end of
+# the build you might want to copy them over to $(ALT_CLASSDESTDIR);
+# this rule takes care of that.  No one should really set these
+# variables except the bootstrap/recompile stage of the java compiler.
+#
+ifdef ALT_CLASSBINDIR
+
+# By default post-processing is copying.  Suppose you want to build
+# a jar file then set ALT_CLASSES_DISPOSITION to '../../dest/nameof.jar'
+# before including this file.
+ifndef ALT_CLASSES_DISPOSITION
+ALT_CLASSES_DISPOSITION = copy-classes
+endif
+
+build : $(ALT_CLASSES_DISPOSITION)
+
+copy-classes: 
+ifneq ($(ALT_CLASSBINDIR), $(ALT_CLASSDESTDIR))
+	@if [ -s $(TEMPDIR)/.classes.list ]; then \
+	  mkdir -p $(ALT_CLASSDESTDIR); \
+	  echo "Copying $(ALT_CLASSBINDIR)..."; \
+	  echo "(cd $(ALT_CLASSBINDIR); tar cf - .) | \
+			(cd $(ALT_CLASSDESTDIR); tar xf -)"; \
+	  (cd $(ALT_CLASSBINDIR); tar cf - .) | \
+			(cd $(ALT_CLASSDESTDIR); tar xf -); \
+	fi
+else # ALT_CLASSBINDIR
+	@if [ -s $(TEMPDIR)/.classes.list ]; then \
+	  echo "Copy source and destination are the same: $(ALT_CLASSBINDIR) -- Copy skipped..."; \
+	fi
+endif # ALT_CLASSBINDIR
+
+.PHONY: copy-classes
+endif # ALT_CLASSBINDIR
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/common/Cscope.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,100 @@
+#
+# Copyright (c) 1998, 2010, 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.
+#
+
+#
+# The cscope.out file is made in the current directory and spans the entire
+# source tree.
+#
+# Things to note:
+#	1. We use relative names for cscope.
+#	2. We *don't* remove the old cscope.out file, because cscope is smart
+#	   enough to only build what has changed.  It can be confused, however,
+#	   if files are renamed or removed, so it may be necessary to manually
+#	   remove cscope.out if a lot of reorganization has occurred.
+#
+CSDIRS	= $(JDK_TOPDIR)/src $(JDK_TOPDIR)/build
+CSINCS	= $(CSDIRS:%=-I%)
+
+#
+# Set CSFLAGS env variable to -b when using fast cscope to build the fast
+# (but large) cscope data bases.
+#
+CSCOPE	= cscope-fast
+ifeq ($(CSCOPE), cscope-fast)
+CSFLAGS	= -b
+endif
+
+#
+# Adding .java files pushes the file count of a full workspace up about 2500
+# files, which slows database lookup.  Thus allow these files to be added from
+# the environment (CSCLASSES=yes).
+#
+ifdef	CSCLASSES
+ADDCLASSES=	-o -name '*.java'
+endif
+
+#
+# Adding CClassHeaders also pushes the file count of a full workspace up about
+# 200 files (these files also don't exist in a new workspace, and thus will
+# cause the recreation of the database as they get created, which might seem
+# A little confusing).  Thus allow these files to be added from the environment
+# (CSHEADERS=yes).
+#
+ifndef	CSHEADERS
+RMCCHEADERS=	-o -name CClassHeaders
+endif
+
+
+.PRECIOUS:	cscope.out
+
+cscope.out: cscope.files FRC
+	$(CSCOPE) $(CSFLAGS)
+
+#
+# What files should we include?  A simple rule might be just those files under
+# SCM control, however this would miss files we create like the opcodes and
+# CClassHeaders.  The following attempts to find everything that is *useful*.
+# (demo directories contain many .java files
+# that probably aren't useful for development, and the pkgarchive may contain
+# duplicates of files within the source hierarchy).  The ordering of the .raw
+# file is an attempt to make cscope display the most relevant files first.
+#
+cscope.files: FRC
+	@-$(RM) cscope.files cscope.files.raw
+	echo "$(CSINCS)" > cscope.files
+	-find $(CSDIRS) $(SCM_DIRS_prune) -o -type d \( -name '.del-*' -o \
+	    -name '*demo' -o -name pkgarchive $(RMCCHEADERS) \) -prune -o \
+	    -type f \( -name '*.[Ccshlxy]' -o -name '*.il' -o -name '*.cc' -o \
+	    -name 'Makefile*' -o -name GNUmakefile -o -name '*.gmk' -o \
+	    -name '*.cpp' $(ADDCLASSES) \) -print > cscope.files.raw
+	-egrep -v "\.java|\/build\/"	cscope.files.raw >> cscope.files
+	-fgrep ".java"			cscope.files.raw >> cscope.files
+	-fgrep "/build/"		cscope.files.raw >> cscope.files
+	@-$(RM) cscope.files.raw
+
+cscope.clean:
+	-$(RM) cscope.files cscope.files.raw cscope.out
+
+FRC:
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/common/Defs-embedded.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,76 @@
+#
+# Copyright (c) 2011, 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.
+#
+
+#
+# Variable definitions for SE Embedded builds.  This file should
+# not contain rules.
+#
+ifdef JAVASE_EMBEDDED
+
+# Compress jar files
+COMPRESS_JARS = true
+
+# Don't mmap zip files
+LIBZIP_CAN_USE_MMAP = false
+
+# Disable ALSA version check
+REQUIRED_ALSA_VERSION =
+
+# Compilation settings
+OTHER_CPPFLAGS += -DJAVASE_EMBEDDED
+
+# Product naming
+PRODUCT_SUFFIX = SE Runtime Environment for Embedded
+RUNTIME_NAME = $(PRODUCT_NAME) $(PRODUCT_SUFFIX)
+
+# Reduced JRE locations
+JRE_REDUCED_HEADLESS_IMAGE_DIR = $(ABS_OUTPUTDIR)/j2re-reduced-headless-image
+JRE_REDUCED_IMAGE_DIR = $(ABS_OUTPUTDIR)/j2re-reduced-image
+
+# Override on linux to further reduce binary/lib sizes in product build
+ifeq ($(PLATFORM), linux)
+  ifeq ($(VARIANT), OPT)
+    ifneq ($(NO_STRIP), true)
+      ifneq ($(DEBUG_BINARIES), true)
+        POST_STRIP_PROCESS = $(STRIP) --strip-unneeded
+      endif
+    endif
+  endif
+endif
+
+# NIO Platform specific source file location
+ifdef CROSS_COMPILE_ARCH
+  NIO_PLATFORM_CLASSES_ROOT_DIR = $(CLOSED_PLATFORM_SRC)/classes/
+endif
+
+# For ARM sflt we need to link to a library with improved FP accuracy
+# and it must be linked after fdlibm - this places it at the end after libc
+# -z muldefs avoids linker errors for duplicate symbols.
+ifeq ($(CROSS_COMPILE_ARCH), arm)
+  EXTRA_LIBS +=  $(EXT_LIBS_PATH)/sflt_glibc_jdk.a -Xlinker -z -Xlinker muldefs
+endif
+
+endif # JAVASE_EMBEDDED
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/common/Defs-linux.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,430 @@
+#
+# Copyright (c) 1999, 2011, 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.
+#
+
+#
+# Makefile to specify compiler flags for programs and libraries
+# targeted to Linux.  Should not contain any rules.
+#
+# WARNING: This file is shared with other workspaces. 
+#          So when it includes other files, it must use JDK_TOPDIR.
+#
+
+# Warning: the following variables are overriden by Defs.gmk. Set
+# values will be silently ignored:
+#   CFLAGS        (set $(OTHER_CFLAGS) instead)
+#   CPPFLAGS      (set $(OTHER_CPPFLAGS) instead)
+#   CXXFLAGS      (set $(OTHER_CXXFLAGS) instead)
+#   LDFLAGS       (set $(OTHER_LDFAGS) instead)
+#   LDLIBS        (set $(EXTRA_LIBS) instead)
+#   LDLIBS_COMMON (set $(EXTRA_LIBS) instead)
+
+# Get shared JDK settings
+include $(JDK_MAKE_SHARED_DIR)/Defs.gmk
+
+# Part of INCREMENTAL_BUILD mechanism.
+#   Compiler emits things like:  path/file.o: file.h
+#   We want something like: relative_path/file.o relative_path/file.d: file.h
+CC_DEPEND	 = -MM
+CC_DEPEND_FILTER = $(SED) -e 's!$*\.$(OBJECT_SUFFIX)!$(dir $@)& $(dir $@)$*.$(DEPEND_SUFFIX)!g'
+
+ifndef PLATFORM_SRC
+  PLATFORM_SRC = $(BUILDDIR)/../src/solaris
+endif # PLATFORM_SRC
+
+# Platform specific closed sources
+ifndef OPENJDK
+  ifndef CLOSED_PLATFORM_SRC
+    CLOSED_PLATFORM_SRC = $(BUILDDIR)/../src/closed/solaris
+  endif
+endif
+
+# platform specific include files
+PLATFORM_INCLUDE_NAME = $(PLATFORM)
+PLATFORM_INCLUDE      = $(INCLUDEDIR)/$(PLATFORM_INCLUDE_NAME)
+
+# suffix used for make dependencies files.
+DEPEND_SUFFIX = d
+# The suffix applied to the library name for FDLIBM
+FDDLIBM_SUFFIX = a
+# The suffix applied to scripts (.bat for windows, nothing for unix)
+SCRIPT_SUFFIX =
+# CC compiler object code output directive flag value
+CC_OBJECT_OUTPUT_FLAG = -o #trailing blank required!
+
+# Default OBJCOPY comes from GNU Binutils on Linux:
+DEF_OBJCOPY=/usr/bin/objcopy
+ifdef CROSS_COMPILE_ARCH
+  # don't try to generate .debuginfo files when cross compiling
+  _JUNK_ := $(shell \
+    echo >&2 "INFO: cross compiling for ARCH $(CROSS_COMPILE_ARCH)," \
+      "skipping .debuginfo generation.")
+  OBJCOPY=
+else
+  OBJCOPY=$(shell test -x $(DEF_OBJCOPY) && echo $(DEF_OBJCOPY))
+  ifneq ($(ALT_OBJCOPY),)
+    _JUNK_ := $(shell echo >&2 "INFO: ALT_OBJCOPY=$(ALT_OBJCOPY)")
+    # disable .debuginfo support by setting ALT_OBJCOPY to a non-existent path
+    OBJCOPY=$(shell test -x $(ALT_OBJCOPY) && echo $(ALT_OBJCOPY))
+  endif
+endif
+
+ifdef LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS
+# The setting of OBJCOPY above enables the JDK build to import
+# .debuginfo files from the HotSpot build. However, adding FDS
+# support to the JDK build will occur in phases so a different
+# make variable is used to indicate that a particular library
+# supports FDS.
+
+ifeq ($(OBJCOPY),)
+  _JUNK_ := $(shell \
+    echo >&2 "INFO: no objcopy cmd found so cannot create .debuginfo files.")
+else
+  _JUNK_ := $(shell \
+    echo >&2 "INFO: $(OBJCOPY) cmd found so will create .debuginfo files.")
+
+  # Library stripping policies for .debuginfo configs:
+  #   all_strip - strips everything from the library
+  #   min_strip - strips most stuff from the library; leaves minimum symbols
+  #   no_strip  - does not strip the library at all
+  #
+  # Oracle security policy requires "all_strip". A waiver was granted on
+  # 2011.09.01 that permits using "min_strip" in the Java JDK and Java JRE.
+  #
+  DEF_STRIP_POLICY="min_strip"
+  ifeq ($(ALT_STRIP_POLICY),)
+    STRIP_POLICY=$(DEF_STRIP_POLICY)
+  else
+    STRIP_POLICY=$(ALT_STRIP_POLICY)
+  endif
+
+  _JUNK_ := $(shell \
+    echo >&2 "INFO: STRIP_POLICY=$(STRIP_POLICY)")
+endif
+endif
+
+#
+# Default optimization
+#
+
+ifndef OPTIMIZATION_LEVEL
+  ifeq ($(PRODUCT), java)
+    OPTIMIZATION_LEVEL = HIGHER
+  else
+    OPTIMIZATION_LEVEL = LOWER
+  endif
+endif
+ifndef FASTDEBUG_OPTIMIZATION_LEVEL
+  FASTDEBUG_OPTIMIZATION_LEVEL = LOWER
+endif
+
+CC_OPT/NONE     = 
+CC_OPT/LOWER    = -O2
+CC_OPT/HIGHER   = -O3
+CC_OPT/HIGHEST  = -O3
+
+CC_OPT          = $(CC_OPT/$(OPTIMIZATION_LEVEL))
+
+# For all platforms, do not omit the frame pointer register usage. 
+#    We need this frame pointer to make it easy to walk the stacks.
+#    This should be the default on X86, but ia64 and amd64 may not have this
+#    as the default.
+CFLAGS_REQUIRED_amd64   += -fno-omit-frame-pointer -D_LITTLE_ENDIAN
+CFLAGS_REQUIRED_i586    += -fno-omit-frame-pointer -D_LITTLE_ENDIAN
+CFLAGS_REQUIRED_ia64    += -fno-omit-frame-pointer -D_LITTLE_ENDIAN
+CFLAGS_REQUIRED_sparcv9 += -m64 -mcpu=v9
+LDFLAGS_COMMON_sparcv9  += -m64 -mcpu=v9
+CFLAGS_REQUIRED_sparc   += -m32 -mcpu=v9
+LDFLAGS_COMMON_sparc    += -m32 -mcpu=v9
+CFLAGS_REQUIRED_arm     += -fsigned-char -D_LITTLE_ENDIAN
+CFLAGS_REQUIRED_ppc     += -fsigned-char -D_BIG_ENDIAN
+ifeq ($(ZERO_BUILD), true)
+  CFLAGS_REQUIRED       =  $(ZERO_ARCHFLAG)
+  ifeq ($(ZERO_ENDIANNESS), little)
+    CFLAGS_REQUIRED     += -D_LITTLE_ENDIAN
+  endif
+  LDFLAGS_COMMON        += $(ZERO_ARCHFLAG)
+else
+  CFLAGS_REQUIRED       =  $(CFLAGS_REQUIRED_$(ARCH))
+  LDFLAGS_COMMON        += $(LDFLAGS_COMMON_$(ARCH))
+endif
+
+# 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
+#
+GCC_INHIBIT	= -Wno-unused -Wno-parentheses
+GCC_STYLE	= 
+GCC_WARNINGS	= -W -Wall $(GCC_STYLE) $(GCC_INHIBIT)
+
+#
+# Treat compiler warnings as errors, if warnings not allowed
+#
+ifeq ($(COMPILER_WARNINGS_FATAL),true)
+  GCC_WARNINGS += -Werror
+endif
+
+#
+# Misc compiler options
+#
+ifneq ($(ARCH),ppc)
+  CFLAGS_COMMON   = -fno-strict-aliasing
+endif 
+PIC_CODE_LARGE = -fPIC
+PIC_CODE_SMALL = -fpic
+GLOBAL_KPIC = $(PIC_CODE_LARGE)
+CFLAGS_COMMON   += $(GLOBAL_KPIC) $(GCC_WARNINGS)
+ifeq ($(ARCH), amd64)
+ CFLAGS_COMMON += -pipe
+endif
+
+# Linux 64bit machines use Dwarf2, which can be HUGE, have fastdebug use -g1
+DEBUG_FLAG = -g
+ifeq ($(FASTDEBUG), true)
+  ifeq ($(ARCH_DATA_MODEL), 64)
+    DEBUG_FLAG = -g1
+  endif
+endif
+
+# DEBUG_BINARIES overrides everything, use full -g debug information
+ifeq ($(DEBUG_BINARIES), true)
+  DEBUG_FLAG = -g
+  CFLAGS_REQUIRED += $(DEBUG_FLAG)
+endif
+
+CFLAGS_OPT      = $(CC_OPT)
+CFLAGS_DBG      = $(DEBUG_FLAG)
+CFLAGS_COMMON += $(CFLAGS_REQUIRED)
+
+CXXFLAGS_COMMON = $(GLOBAL_KPIC) -DCC_NOEX $(GCC_WARNINGS)
+CXXFLAGS_OPT	= $(CC_OPT)
+CXXFLAGS_DBG	= $(DEBUG_FLAG)
+CXXFLAGS_COMMON += $(CFLAGS_REQUIRED)
+
+# FASTDEBUG: Optimize the code in the -g versions, gives us a faster debug java
+ifeq ($(FASTDEBUG), true)
+  CFLAGS_DBG    += $(CC_OPT/$(FASTDEBUG_OPTIMIZATION_LEVEL))
+  CXXFLAGS_DBG	+= $(CC_OPT/$(FASTDEBUG_OPTIMIZATION_LEVEL))
+endif
+
+CPP_ARCH_FLAGS = -DARCH='"$(ARCH)"'
+
+# Alpha arch does not like "alpha" defined (potential general arch cleanup issue here)
+ifneq ($(ARCH),alpha)
+  CPP_ARCH_FLAGS += -D$(ARCH)
+else
+  CPP_ARCH_FLAGS += -D_$(ARCH)_
+endif
+
+CPPFLAGS_COMMON = $(CPP_ARCH_FLAGS) -DLINUX $(VERSION_DEFINES) \
+		  -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -D_REENTRANT
+
+ifeq ($(ARCH_DATA_MODEL), 64)
+CPPFLAGS_COMMON += -D_LP64=1
+endif
+
+CPPFLAGS_OPT    = -DNDEBUG
+CPPFLAGS_DBG    = -DDEBUG
+ifneq ($(PRODUCT), java)
+  CPPFLAGS_DBG    += -DLOGGING 
+endif
+
+ifdef LIBRARY
+  # Libraries need to locate other libraries at runtime, and you can tell
+  #   a library where to look by way of the dynamic runpaths (RPATH or RUNPATH)
+  #   buried inside the .so. The $ORIGIN says to look relative to where
+  #   the library itself is and it can be followed with relative paths from
+  #   that. By default we always look in $ORIGIN, optionally we add relative
+  #   paths if the Makefile sets LD_RUNPATH_EXTRAS to those relative paths.
+  #   On Linux we add a flag -z origin, not sure if this is necessary, but 
+  #   doesn't seem to hurt.
+  #   The environment variable LD_LIBRARY_PATH will over-ride these runpaths.
+  #   Try: 'readelf -d lib*.so' to see these settings in a library.
+  #
+  Z_ORIGIN_FLAG/sparc = -Xlinker -z -Xlinker origin
+  Z_ORIGIN_FLAG/i586  = -Xlinker -z -Xlinker origin
+  Z_ORIGIN_FLAG/amd64 = -Xlinker -z -Xlinker origin 
+  Z_ORIGIN_FLAG/ia64  = -Xlinker -z -Xlinker origin
+  Z_ORIGIN_FLAG/arm   = 
+  Z_ORIGIN_FLAG/ppc   =
+  Z_ORIGIN_FLAG/zero  = -Xlinker -z -Xlinker origin
+
+  LDFLAG_Z_ORIGIN = $(Z_ORIGIN_FLAG/$(ARCH_FAMILY))
+
+  LDFLAGS_COMMON += $(LDFLAG_Z_ORIGIN) -Xlinker -rpath -Xlinker \$$ORIGIN
+  LDFLAGS_COMMON += $(LD_RUNPATH_EXTRAS:%=$(LDFLAG_Z_ORIGIN) -Xlinker -rpath -Xlinker \$$ORIGIN/%)
+
+endif
+
+EXTRA_LIBS += -lc
+
+LDFLAGS_DEFS_OPTION  = -Xlinker -z -Xlinker defs
+#LDFLAGS_COMMON  += $(LDFLAGS_DEFS_OPTION)
+
+#
+# -L paths for finding and -ljava
+#
+LDFLAGS_OPT     = -Xlinker -O1
+LDFLAGS_COMMON += -L$(LIBDIR)/$(LIBARCH)
+LDFLAGS_COMMON += -Wl,-soname=$(LIB_PREFIX)$(LIBRARY).$(LIBRARY_SUFFIX)
+
+#
+# -static-libgcc is a gcc-3 flag to statically link libgcc, gcc-2.9x always
+# statically link libgcc but will print a warning with the flag. We don't 
+# want the warning, so check gcc version first.
+#
+ifeq ($(CC_MAJORVER),3)
+  OTHER_LDFLAGS  += -static-libgcc
+endif
+
+# Automatic precompiled header option to use (if COMPILE_APPROACH=batch)
+#   (See Rules.gmk) The gcc 5 compiler might have an option for this?
+AUTOMATIC_PCH_OPTION = 
+
+#
+# Post Processing of libraries/executables
+#
+ifeq ($(VARIANT), OPT)
+  ifneq ($(NO_STRIP), true)
+    ifneq ($(DEBUG_BINARIES), true)
+      # Debug 'strip -g' leaves local function Elf symbols (better stack
+      # traces)
+      POST_STRIP_PROCESS = $(STRIP) -g
+    endif
+  endif
+endif
+
+#
+# Use: ld $(LD_MAPFILE_FLAG) mapfile *.o
+#
+LD_MAPFILE_FLAG = -Xlinker --version-script -Xlinker
+
+#
+# Support for Quantify.
+#
+ifdef QUANTIFY
+QUANTIFY_CMD = quantify
+QUANTIFY_OPTIONS = -cache-dir=/tmp/quantify -always-use-cache-dir=yes
+LINK_PRE_CMD = $(QUANTIFY_CMD) $(QUANTIFY_OPTIONS)
+endif
+
+#
+# Path and option to link against the VM, if you have to.  Note that
+# there are libraries that link against only -ljava, but they do get
+# -L to the -ljvm, this is because -ljava depends on -ljvm, whereas
+# the library itself should not.
+#
+VM_NAME         = server
+# First try to link against server, if that does not exist link against client.
+JVMLIB          = -L$(LIBDIR)/$(LIBARCH)/server -L$(LIBDIR)/$(LIBARCH)/client -ljvm
+JAVALIB         = -ljava $(JVMLIB)
+
+#
+# We want to privatize JVM symbols on Solaris. This is so the user can
+# write a function called FindClass and this should not override the 
+# FindClass that is inside the JVM. At this point in time we are not
+# concerned with other JNI libraries because we hope that there will
+# not be as many clashes there.
+#
+PRIVATIZE_JVM_SYMBOLS = false
+
+USE_PTHREADS = true
+override ALT_CODESET_KEY         = _NL_CTYPE_CODESET_NAME
+override AWT_RUNPATH             =
+override HAVE_ALTZONE            = false
+override HAVE_FILIOH             = false
+override HAVE_GETHRTIME          = false
+override HAVE_GETHRVTIME         = false
+override HAVE_SIGIGNORE          = true
+override LEX_LIBRARY             = -lfl
+ifeq ($(STATIC_CXX),true)
+override LIBCXX                  = -Wl,-Bstatic -lstdc++ -lgcc -Wl,-Bdynamic
+else
+override LIBCXX                  = -lstdc++
+endif
+override LIBPOSIX4               =
+override LIBSOCKET               =
+override LIBNSL                  =
+override LIBSCF                  =
+override LIBTHREAD               =
+override LIBDL                   = -ldl
+override MOOT_PRIORITIES         = true
+override NO_INTERRUPTIBLE_IO     = true
+ifeq ($(ARCH), amd64)
+override OPENWIN_LIB             = $(OPENWIN_HOME)/lib64
+else
+override OPENWIN_LIB             = $(OPENWIN_HOME)/lib
+endif
+override OTHER_M4FLAGS           = -D__GLIBC__ -DGNU_ASSEMBLER
+override SUN_CMM_SUBDIR          =
+override THREADS_FLAG            = native
+override USE_GNU_M4              = true
+override USING_GNU_TAR           = true
+override WRITE_LIBVERSION        = false
+
+# USE_EXECNAME forces the launcher to look up argv[0] on $PATH, and put the
+# resulting resolved absolute name of the executable in the environment
+# variable EXECNAME.  That executable name is then used that to locate the
+# installation area.
+override USE_EXECNAME            = true
+
+# If your platform has DPS, it will have Type1 fonts too, in which case
+# it is best to enable DPS support until such time as 2D's rasteriser
+# can fully handle Type1 fonts in all cases. Default is "yes".
+# HAVE_DPS should only be "no" if the platform has no DPS headers or libs
+# DPS (Displayable PostScript) is available on Solaris machines
+HAVE_DPS = no
+
+#
+# Japanese manpages
+#
+JA_SOURCE_ENCODING = eucJP
+JA_TARGET_ENCODINGS = UTF-8
+
+# Settings for the JDI - Serviceability Agent binding.
+HOTSPOT_SALIB_PATH   = $(HOTSPOT_IMPORT_PATH)/jre/lib/$(LIBARCH)
+SALIB_NAME = $(LIB_PREFIX)saproc.$(LIBRARY_SUFFIX)
+SA_DEBUGINFO_NAME = $(LIB_PREFIX)saproc.debuginfo
+
+# The JDI - Serviceability Agent binding is not currently supported
+# on Linux-ia64.
+ifeq ($(ARCH), ia64)
+  INCLUDE_SA = false
+else
+  INCLUDE_SA = true
+endif
+
+ifdef CROSS_COMPILE_ARCH
+  # X11 headers are not under /usr/include
+  OTHER_CFLAGS += -I$(OPENWIN_HOME)/include
+  OTHER_CXXFLAGS += -I$(OPENWIN_HOME)/include
+  OTHER_CPPFLAGS += -I$(OPENWIN_HOME)/include
+endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/common/Defs-macosx.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,402 @@
+#
+# Copyright (c) 1999, 2011, 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.
+#
+
+#
+# Makefile to specify compiler flags for programs and libraries
+# targeted to MACOSX.  Should not contain any rules.
+#
+# WARNING: This file is shared with other workspaces. 
+#          So when it includes other files, it must use JDK_TOPDIR.
+#
+
+# Warning: the following variables are overriden by Defs.gmk. Set
+# values will be silently ignored:
+#   CFLAGS        (set $(OTHER_CFLAGS) instead)
+#   CPPFLAGS      (set $(OTHER_CPPFLAGS) instead)
+#   CXXFLAGS      (set $(OTHER_CXXFLAGS) instead)
+#   LDFLAGS       (set $(OTHER_LDFAGS) instead)
+#   LDLIBS        (set $(EXTRA_LIBS) instead)
+#   LDLIBS_COMMON (set $(EXTRA_LIBS) instead)
+
+# Get shared JDK settings
+include $(JDK_MAKE_SHARED_DIR)/Defs.gmk
+
+# Part of INCREMENTAL_BUILD mechanism.
+#   Compiler emits things like:  path/file.o: file.h
+#   We want something like: relative_path/file.o relative_path/file.d: file.h
+CC_DEPEND	 = -MM
+CC_DEPEND_FILTER = $(SED) -e 's!$*\.$(OBJECT_SUFFIX)!$(dir $@)& $(dir $@)$*.$(DEPEND_SUFFIX)!g'
+
+ifndef PLATFORM_SRC
+  PLATFORM_SRC = $(BUILDDIR)/../src/solaris
+endif # PLATFORM_SRC
+
+PLATFORM_SRC_MACOS = $(BUILDDIR)/../src/macosx
+
+# BSD build pulls its platform sources from the solaris tree.
+JAVA_SRCDIR_LIST = src/$(PLATFORM) src/solaris src/share
+NATIVE_SRCDIR_LIST = src/$(PLATFORM) src/solaris src/share
+
+# Platform specific closed sources
+ifndef OPENJDK
+  ifndef CLOSED_PLATFORM_SRC
+    CLOSED_PLATFORM_SRC = $(BUILDDIR)/../src/closed/solaris
+  endif
+endif
+
+# platform specific include files
+PLATFORM_INCLUDE_NAME = $(OS_NAME)
+PLATFORM_INCLUDE      = $(INCLUDEDIR)/$(PLATFORM_INCLUDE_NAME)
+
+# suffix used for make dependencies files.
+DEPEND_SUFFIX = d
+# The suffix applied to the library name for FDLIBM
+FDDLIBM_SUFFIX = a
+# The suffix applied to scripts (.bat for windows, nothing for unix)
+SCRIPT_SUFFIX =
+# CC compiler object code output directive flag value
+CC_OBJECT_OUTPUT_FLAG = -o #trailing blank required!
+CC_PROGRAM_OUTPUT_FLAG = -o #trailing blank required!
+
+#
+# Default optimization
+#
+
+ifndef OPTIMIZATION_LEVEL
+  ifeq ($(PRODUCT), java)
+    OPTIMIZATION_LEVEL = HIGHER
+  else
+    OPTIMIZATION_LEVEL = LOWER
+  endif
+endif
+ifndef FASTDEBUG_OPTIMIZATION_LEVEL
+  FASTDEBUG_OPTIMIZATION_LEVEL = LOWER
+endif
+
+# For macosx use -Os by default, unless -O3 can be proved to be worth the cost, as per policy
+# <http://wikis.sun.com/display/OpenJDK/Mac+OS+X+Port+Compilers>
+CC_OPT/NONE     = 
+CC_OPT/LOWER    = -Os
+CC_OPT/HIGHER   = -Os
+CC_OPT/HIGHEST  = -Os
+
+CC_OPT          = $(CC_OPT/$(OPTIMIZATION_LEVEL))
+
+# For all platforms, do not omit the frame pointer register usage. 
+#    We need this frame pointer to make it easy to walk the stacks.
+#    This should be the default on X86, but ia64 and amd64 may not have this
+#    as the default.
+CFLAGS_REQUIRED_amd64   += -m64 -fno-omit-frame-pointer -D_LITTLE_ENDIAN
+LDFLAGS_COMMON_amd64    += -m64
+CFLAGS_REQUIRED_i586    += -m32 -fno-omit-frame-pointer -D_LITTLE_ENDIAN
+LDFLAGS_COMMON_i586     += -m32
+CFLAGS_REQUIRED_ia64    += -m64 -fno-omit-frame-pointer -D_LITTLE_ENDIAN
+CFLAGS_REQUIRED_sparcv9 += -m64 -mcpu=v9
+LDFLAGS_COMMON_sparcv9  += -m64 -mcpu=v9
+CFLAGS_REQUIRED_sparc   += -m32 -mcpu=v9
+LDFLAGS_COMMON_sparc    += -m32 -mcpu=v9
+CFLAGS_REQUIRED_arm     += -fsigned-char -D_LITTLE_ENDIAN
+CFLAGS_REQUIRED_ppc     += -fsigned-char -D_BIG_ENDIAN
+ifeq ($(ZERO_BUILD), true)
+  CFLAGS_REQUIRED       =  $(ZERO_ARCHFLAG)
+  ifeq ($(ZERO_ENDIANNESS), little)
+    CFLAGS_REQUIRED     += -D_LITTLE_ENDIAN
+  endif
+  LDFLAGS_COMMON        += $(ZERO_ARCHFLAG)
+else ifeq ($(ARCH), universal)
+  CFLAGS_REQUIRED       += -arch i386 -arch x86_64 -D_LITTLE_ENDIAN
+  LDFLAGS_COMMON        += -arch i386 -arch x86_64
+else
+  CFLAGS_REQUIRED       =  $(CFLAGS_REQUIRED_$(ARCH))
+  LDFLAGS_COMMON        += $(LDFLAGS_COMMON_$(ARCH))
+endif
+# 16-byte stack re-alignment on 32-bit Darwin
+CFLAGS_REQUIRED_i586 += -mstackrealign
+
+OTHER_CFLAGS = \
+         -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
+	     -F/System/Library/Frameworks/ApplicationServices.framework/Frameworks
+
+#
+# Selection of warning messages
+#
+GCC_INHIBIT	= -Wno-unused -Wno-parentheses
+GCC_STYLE	= 
+GCC_WARNINGS	= -W -Wall $(GCC_STYLE) $(GCC_INHIBIT)
+
+#
+# Treat compiler warnings as errors, if warnings not allowed
+#
+ifeq ($(COMPILER_WARNINGS_FATAL),true)
+  GCC_WARNINGS += -Werror
+endif
+
+#
+# Misc compiler options
+#
+ifneq ($(ARCH),ppc)
+  CFLAGS_COMMON   = -fno-strict-aliasing
+endif 
+PIC_CODE_LARGE = -fPIC
+PIC_CODE_SMALL = -fpic
+GLOBAL_KPIC = $(PIC_CODE_LARGE)
+CFLAGS_COMMON   += $(GLOBAL_KPIC) $(GCC_WARNINGS)
+ifeq ($(ARCH), amd64)
+ CFLAGS_COMMON += -pipe
+endif
+
+# BSD 64bit machines use Dwarf2, which can be HUGE, have fastdebug use -g1
+DEBUG_FLAG = -g
+ifeq ($(FASTDEBUG), true)
+  ifeq ($(ARCH_DATA_MODEL), 64)
+    DEBUG_FLAG = -g1
+  endif
+endif
+
+# DEBUG_BINARIES overrides everything, use full -g debug information
+ifeq ($(DEBUG_BINARIES), true)
+  DEBUG_FLAG = -g
+  CFLAGS_REQUIRED += $(DEBUG_FLAG)
+endif
+
+CFLAGS_OPT      = $(CC_OPT)
+CFLAGS_DBG      = $(DEBUG_FLAG)
+CFLAGS_COMMON += $(CFLAGS_REQUIRED)
+
+CXXFLAGS_COMMON = $(GLOBAL_KPIC) -DCC_NOEX $(GCC_WARNINGS)
+CXXFLAGS_OPT	= $(CC_OPT)
+CXXFLAGS_DBG	= $(DEBUG_FLAG)
+CXXFLAGS_COMMON += $(CFLAGS_REQUIRED)
+
+# FASTDEBUG: Optimize the code in the -g versions, gives us a faster debug java
+ifeq ($(FASTDEBUG), true)
+  CFLAGS_DBG    += $(CC_OPT/$(FASTDEBUG_OPTIMIZATION_LEVEL))
+  CXXFLAGS_DBG	+= $(CC_OPT/$(FASTDEBUG_OPTIMIZATION_LEVEL))
+endif
+
+CPP_ARCH_FLAGS = -DARCH='"$(ARCH)"'
+
+# Alpha arch does not like "alpha" defined (potential general arch cleanup issue here)
+ifneq ($(ARCH),alpha)
+  CPP_ARCH_FLAGS += -D$(ARCH)
+else
+  CPP_ARCH_FLAGS += -D_$(ARCH)_
+endif
+CPPFLAGS_COMMON = $(CPP_ARCH_FLAGS) -D_ALLBSD_SOURCE $(VERSION_DEFINES) \
+		  -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -D_REENTRANT
+
+CPPFLAGS_COMMON += -DMACOSX
+
+ifeq ($(ARCH_DATA_MODEL), 64)
+CPPFLAGS_COMMON += -D_LP64=1
+endif
+
+CPPFLAGS_OPT    = -DNDEBUG
+CPPFLAGS_DBG    = -DDEBUG
+ifneq ($(PRODUCT), java)
+  CPPFLAGS_DBG    += -DLOGGING 
+endif
+
+# Libraries need to locate other libraries at runtime, and you can tell
+#   a library where to look by way of the dynamic runpaths (RPATH or RUNPATH)
+#   buried inside the .{so,dylib}. The {$ORIGIN,@loader_path/} says to look
+#   relative to where the library itself is and it can be followed
+#   with relative paths from that. By default we always look in
+#   {$ORIGIN,@loader_path/}, optionally we add relative paths if the Makefile
+#   sets LD_RUNPATH_EXTRAS to those relative paths.
+#   Except on MacOS X we add a flag -z origin, not sure if this is necessary,
+#   but doesn't seem to hurt.
+#   The environment variable LD_LIBRARY_PATH will over-ride these runpaths.
+#   See 'man {dyld,rtld}' for more information.
+#   Try: 'readelf -d lib*.so' to see these settings in a library.
+#
+LDFLAGS_COMMON += -Xlinker -rpath -Xlinker @loader_path/.
+LDFLAGS_COMMON += $(LD_RUNPATH_EXTRAS:%=-Xlinker -rpath -Xlinker @loader_path/%)
+LDFLAGS_COMMON += -Xlinker -install_name -Xlinker @rpath/$(@F)
+
+#
+# -L paths for finding and -ljava
+#
+LDFLAGS_COMMON += -L$(LIBDIR)
+
+#
+# -static-libgcc is a gcc-3 flag to statically link libgcc, gcc-2.9x always
+# statically link libgcc but will print a warning with the flag. We don't 
+# want the warning, so check gcc version first.
+#
+ifeq ($(CC_MAJORVER),3)
+  OTHER_LDFLAGS  += -static-libgcc
+endif
+
+# Automatic precompiled header option to use (if COMPILE_APPROACH=batch)
+#   (See Rules.gmk) The gcc 5 compiler might have an option for this?
+AUTOMATIC_PCH_OPTION = 
+
+#
+# Post Processing of libraries/executables
+#
+ifeq ($(VARIANT), OPT)
+  ifneq ($(NO_STRIP), true)
+    ifneq ($(DEBUG_BINARIES), true)
+      # Debug 'strip -S' leaves local function Elf symbols (better stack
+      # traces)
+      POST_STRIP_PROCESS = $(STRIP) -S
+    endif
+  endif
+endif
+
+#
+# Use: ld $(LD_MAPFILE_FLAG) mapfile *.o
+#
+LD_MAPFILE_FLAG = -Xlinker --version-script -Xlinker
+
+#
+# Support for Quantify.
+#
+ifdef QUANTIFY
+QUANTIFY_CMD = quantify
+QUANTIFY_OPTIONS = -cache-dir=/tmp/quantify -always-use-cache-dir=yes
+LINK_PRE_CMD = $(QUANTIFY_CMD) $(QUANTIFY_OPTIONS)
+endif
+
+# Darwin does not support linker map files.
+LDNOMAP=true
+
+#
+# Path and option to link against the VM, if you have to.  Note that
+# there are libraries that link against only -ljava, but they do get
+# -L to the -ljvm, this is because -ljava depends on -ljvm, whereas
+# the library itself should not.
+#
+VM_NAME         = server
+JVMLIB          = -L$(LIBDIR)/server -L$(LIBDIR)/client -ljvm
+JAVALIB         = -ljava $(JVMLIB)
+
+#
+# We want to privatize JVM symbols on Solaris. This is so the user can
+# write a function called FindClass and this should not override the 
+# FindClass that is inside the JVM. At this point in time we are not
+# concerned with other JNI libraries because we hope that there will
+# not be as many clashes there.
+#
+PRIVATIZE_JVM_SYMBOLS = false
+
+USE_PTHREADS = true
+override ALT_CODESET_KEY         = _NL_CTYPE_CODESET_NAME
+override AWT_RUNPATH             =
+override HAVE_ALTZONE            = false
+override HAVE_FILIOH             = false
+override HAVE_GETHRTIME          = false
+override HAVE_GETHRVTIME         = false
+override HAVE_SIGIGNORE          = true
+override LEX_LIBRARY             = -lfl
+ifeq ($(STATIC_CXX),true)
+override LIBCXX                  = -Wl,-Bstatic -lstdc++ -lgcc -Wl,-Bdynamic
+else
+override LIBCXX                  = -lstdc++
+endif
+override LIBPOSIX4               =
+override LIBSOCKET               =
+override LIBNSL                  =
+override LIBTHREAD               =
+override LIBDL                   =
+override MOOT_PRIORITIES         = true
+override NO_INTERRUPTIBLE_IO     = true
+override OPENWIN_HOME            = $(X11_PATH)
+override OPENWIN_LIB             = $(OPENWIN_HOME)/lib
+override OTHER_M4FLAGS           = -D__GLIBC__ -DGNU_ASSEMBLER
+override SUN_CMM_SUBDIR          =
+override THREADS_FLAG            = native
+override USE_GNU_M4              = true
+override USING_GNU_TAR           = true
+override WRITE_LIBVERSION        = false
+
+ifdef ALT_X11_PATH
+  X11_PATH = $(ALT_X11_PATH)
+else
+  X11_PATH = /usr/X11R6
+endif
+
+ifdef ALT_PACKAGE_PATH
+  PACKAGE_PATH = $(ALT_PACKAGE_PATH)
+else
+  PACKAGE_PATH = /opt/local
+endif
+
+# ALSA
+ifdef ALT_ALSA_LIB_PATH
+  ALSA_LIB_PATH = $(ALT_ALSA_LIB_PATH)
+else
+  ALSA_LIB_PATH = $(PACKAGE_PATH)/lib
+endif
+
+ifdef ALT_ALSA_HEADERS_PATH
+  ALSA_HEADERS_PATH = $(ALT_ALSA_HEADERS_PATH)
+else
+  ALSA_HEADERS_PATH = $(PACKAGE_PATH)/include
+endif
+
+# USE_EXECNAME forces the launcher to look up argv[0] on $PATH, and put the
+# resulting resolved absolute name of the executable in the environment
+# variable EXECNAME.  That executable name is then used that to locate the
+# installation area.
+override USE_EXECNAME            = true
+
+# If your platform has DPS, it will have Type1 fonts too, in which case
+# it is best to enable DPS support until such time as 2D's rasteriser
+# can fully handle Type1 fonts in all cases. Default is "yes".
+# HAVE_DPS should only be "no" if the platform has no DPS headers or libs
+# DPS (Displayable PostScript) is available on Solaris machines
+HAVE_DPS = no
+
+SYSTEM_ZLIB = true
+
+#
+# Japanese manpages
+#
+JA_SOURCE_ENCODING = eucJP
+JA_TARGET_ENCODINGS = UTF-8
+
+# Settings for the JDI - Serviceability Agent binding.
+
+HOTSPOT_SALIB_PATH = $(HOTSPOT_IMPORT_PATH)/jre/lib/$(LIBARCH)
+SALIB_NAME = $(LIB_PREFIX)saproc.$(LIBRARY_SUFFIX)
+
+# The JDI - Serviceability Agent binding is not currently supported
+# on ia64.
+ifeq ($(ARCH), ia64)
+  INCLUDE_SA = false
+else
+  INCLUDE_SA = true
+endif
+
+ifdef CROSS_COMPILE_ARCH
+  # X11 headers are not under /usr/include
+  OTHER_CFLAGS += -I$(OPENWIN_HOME)/include
+  OTHER_CXXFLAGS += -I$(OPENWIN_HOME)/include
+  OTHER_CPPFLAGS += -I$(OPENWIN_HOME)/include
+endif
+
+LIB_LOCATION ?= $(LIBDIR)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/common/Defs-solaris.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,757 @@
+#
+# Copyright (c) 1995, 2011, 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.
+#
+
+#
+# Makefile to specify compiler flags for programs and libraries
+# targeted to Solaris.  Should not contain any rules.
+#
+# WARNING: This file is shared with other workspaces. 
+#          So when it includes other files, it must use JDK_TOPDIR.
+#
+
+# Warning: the following variables are overridden by Defs.gmk. Set
+# values will be silently ignored:
+#   CFLAGS        (set $(OTHER_CFLAGS) instead)
+#   CPPFLAGS      (set $(OTHER_CPPFLAGS) instead)
+#   CXXFLAGS      (set $(OTHER_CXXFLAGS) instead)
+#   LDFLAGS       (set $(OTHER_LDFAGS) instead)
+#   LDLIBS        (set $(EXTRA_LIBS) instead)
+#   LDLIBS_COMMON (set $(EXTRA_LIBS) instead)
+#   LINTFLAGS     (set $(OTHER_LINTFLAGS) instead)
+#
+# Note: CPPFLAGS are used in C and C++ compiles.
+#
+
+# Get shared JDK settings
+include $(JDK_MAKE_SHARED_DIR)/Defs.gmk
+
+ifndef PLATFORM_SRC
+PLATFORM_SRC = $(BUILDDIR)/../src/solaris
+endif # PLATFORM_SRC
+
+# Platform specific closed sources
+ifndef OPENJDK
+  ifndef CLOSED_PLATFORM_SRC
+    CLOSED_PLATFORM_SRC = $(BUILDDIR)/../src/closed/solaris
+  endif
+endif
+
+# platform specific include files
+PLATFORM_INCLUDE_NAME = $(PLATFORM)
+PLATFORM_INCLUDE      = $(INCLUDEDIR)/$(PLATFORM_INCLUDE_NAME)
+
+# suffix used for make dependencies files
+DEPEND_SUFFIX = d
+# suffix used for lint files
+LINT_SUFFIX = ln
+# The suffix applied to the library name for FDLIBM
+FDDLIBM_SUFFIX = a
+# The suffix applied to scripts (.bat for windows, nothing for unix)
+SCRIPT_SUFFIX =
+# CC compiler object code output directive flag value
+CC_OBJECT_OUTPUT_FLAG = -o #trailing blank required!
+
+ifdef ENABLE_FULL_DEBUG_SYMBOLS
+# Only check for Full Debug Symbols support on Solaris if it is
+# specifically enabled. Hopefully, it can be enabled by default
+# once the .debuginfo size issues are worked out.
+
+# Default OBJCOPY comes from the SUNWbinutils package:
+DEF_OBJCOPY=/usr/sfw/bin/gobjcopy
+ifeq ($(PLATFORM)-$(LIBARCH), solaris-amd64)
+  # On Solaris AMD64/X64, gobjcopy is not happy and fails:
+  #
+  # usr/sfw/bin/gobjcopy --add-gnu-debuglink=<lib>.debuginfo <lib>.so
+  # BFD: stKPaiop: Not enough room for program headers, try linking with -N
+  # /usr/sfw/bin/gobjcopy: stKPaiop: Bad value
+  # BFD: stKPaiop: Not enough room for program headers, try linking with -N
+  # /usr/sfw/bin/gobjcopy: libsaproc.debuginfo: Bad value
+  # BFD: stKPaiop: Not enough room for program headers, try linking with -N
+  # /usr/sfw/bin/gobjcopy: stKPaiop: Bad value
+  _JUNK_ := $(shell \
+    echo >&2 "INFO: $(DEF_OBJCOPY) is not working on Solaris AMD64/X64")
+  OBJCOPY=
+else
+  OBJCOPY=$(shell test -x $(DEF_OBJCOPY) && echo $(DEF_OBJCOPY))
+  ifneq ($(ALT_OBJCOPY),)
+    _JUNK_ := $(shell echo >&2 "INFO: ALT_OBJCOPY=$(ALT_OBJCOPY)")
+    # disable .debuginfo support by setting ALT_OBJCOPY to a non-existent path
+    OBJCOPY=$(shell test -x $(ALT_OBJCOPY) && echo $(ALT_OBJCOPY))
+  endif
+endif
+
+ifdef LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS
+# The setting of OBJCOPY above enables the JDK build to import
+# .debuginfo files from the HotSpot build. However, adding FDS
+# support to the JDK build will occur in phases so a different
+# make variable is used to indicate that a particular library
+# supports FDS.
+
+ifeq ($(OBJCOPY),)
+  _JUNK_ := $(shell \
+    echo >&2 "INFO: no objcopy cmd found so cannot create .debuginfo files.")
+else
+  _JUNK_ := $(shell \
+    echo >&2 "INFO: $(OBJCOPY) cmd found so will create .debuginfo files.")
+
+  # Library stripping policies for .debuginfo configs:
+  #   all_strip - strips everything from the library
+  #   min_strip - strips most stuff from the library; leaves minimum symbols
+  #   no_strip  - does not strip the library at all
+  #
+  # Oracle security policy requires "all_strip". A waiver was granted on
+  # 2011.09.01 that permits using "min_strip" in the Java JDK and Java JRE.
+  #
+  DEF_STRIP_POLICY="min_strip"
+  ifeq ($(ALT_STRIP_POLICY),)
+    STRIP_POLICY=$(DEF_STRIP_POLICY)
+  else
+    STRIP_POLICY=$(ALT_STRIP_POLICY)
+  endif
+  _JUNK_ := $(shell \
+    echo >&2 "INFO: STRIP_POLICY=$(STRIP_POLICY)")
+endif
+endif
+endif
+
+#
+# Java default optimization (-x04/-O2) etc.  Applies to the VM.
+#
+ifndef OPTIMIZATION_LEVEL
+  ifeq ($(PRODUCT), java)
+    OPTIMIZATION_LEVEL = HIGHER
+  else
+    OPTIMIZATION_LEVEL = LOWER
+  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
+# optimized build, and that ordering of the flags completely freaks
+# out cc.  Hence, -Xa is instead in each CFLAGS variant.
+#
+# The more unusual options to the Sun C compiler:
+#	-v		Stricter type checking, more error checking
+#			(To turn ALL warnings into fatals, use -errwarn=%all)
+#	-xstrconst	Place string literals and constants in read-only area
+#			(means you can't write on your string literals)
+#	-xs		Force debug information (stabs) into the .so or a.out
+#			(makes the library/executable debuggable without the
+#			.o files needing to be around, but at a space cost)
+#	-g & -O		If you add the -g option to the optimized compiles
+#			you will get better stack retraces, the code is
+#			still optimized. This includes a space cost too.
+#       -xc99=%none     Do NOT allow for c99 extensions to be used.
+#                       e.g. declarations must precede statements
+#       -xCC            Allow the C++ style of comments in C: //
+#                       Required with many of the source files.
+#       -mt             Assume multi-threaded (important)
+#
+# The more unusual options to the Sun C compiler:
+#       +w              Print more warnings
+#       +w2             Maximum warnings
+#
+
+#
+# Debug flag for C and C++ compiler
+#
+CFLAGS_DEBUG_OPTION    = -g $(CC_OPT/NONE)
+CXXFLAGS_DEBUG_OPTION  = -g $(CXX_OPT/NONE)
+
+# Turn off -g if we are doing tcov build
+ifdef TCOV_BUILD
+  CFLAGS_DEBUG_OPTION=
+  CXXFLAGS_DEBUG_OPTION=
+endif
+
+# FASTDEBUG: Optimize the -g builds, gives us a faster debug java
+#        If true adds -O to the debug compiles. This allows for any assert
+#        tests to remain and debug checking. The resulting code is faster
+#        but less debuggable.  Stack traces are still valid, although only
+#        approximate line numbers are given. Printing of local variables
+#        during a debugging session is not possible, but stepping and
+#        printing of global or static variables should be possible.
+#        Performance/size of files should be about the same, maybe smaller.
+#
+ifeq ($(FASTDEBUG), true)
+  CFLAGS_DEBUG_OPTION    = -g  $(CC_OPT/$(FASTDEBUG_OPTIMIZATION_LEVEL))
+  CXXFLAGS_DEBUG_OPTION  = -g0 $(CXX_OPT/$(FASTDEBUG_OPTIMIZATION_LEVEL))
+endif
+
+CFLAGS_COMMON   = -L$(OBJDIR)
+
+# Do not allow C99 language features like declarations in code etc.
+CFLAGS_COMMON  += -xc99=%none
+
+# Allow C++ comments in C code
+CFLAGS_COMMON  += -xCC
+
+# Show error message tags on errors
+CFLAGS_COMMON   += -errshort=tags
+CXXFLAGS_COMMON += -errtags=yes
+
+# Optimization flags
+CFLAGS_OPT      = $(CC_OPT)
+
+# Debug version flags
+CFLAGS_DBG      = $(CFLAGS_DEBUG_OPTION)
+
+# Required C compiler flags
+CFLAGS_COMMON  += -Xa $(CFLAGS_REQUIRED)
+
+# Maximum warnings all the time
+CXXFLAGS_COMMON += +w
+CFLAGS_COMMON   += -v
+
+# Assume MT behavior all the time (important)
+CXXFLAGS_COMMON += -mt
+CFLAGS_COMMON   += -mt
+
+# Assume no C++ exceptions are used
+CXXFLAGS_COMMON += -features=no%except -DCC_NOEX
+
+# For C++, these options tell it to assume nothing about locating libraries
+#    either at compile time, or at runtime. Use of these options will likely
+#    require the use of -L and -R options to indicate where libraries will
+#    be found at compile time (-L) and at runtime (-R).
+#    The /usr/lib location comes for free, so no need to specify that one.
+#    Note: C is much simplier and there is no need for these options. This
+#          is mostly needed to avoid dependencies on libraries in the
+#          Compiler install area, also see LIBCXX and LIBM.
+CXXFLAGS_COMMON += -norunpath -xnolib
+
+#
+# Treat compiler warnings as errors, if requested
+#
+ifeq ($(COMPILER_WARNINGS_FATAL),true)
+  CFLAGS_COMMON += -errwarn=%all
+  CXXFLAGS_COMMON += -errwarn=%all
+endif
+
+CXXFLAGS_OPT	= $(CXX_OPT)
+CXXFLAGS_DBG	= $(CXXFLAGS_DEBUG_OPTION)
+CXXFLAGS_COMMON += $(CFLAGS_REQUIRED)
+
+# Add -xstrconst to the library compiles. This forces all string
+#  literals into the read-only data section, which prevents them from
+#  being written to and increases the runtime pages shared on the system.
+#
+ifdef LIBRARY
+  CFLAGS_COMMON +=-xstrconst
+endif
+
+# Source browser database
+#
+# COMPILE_WITH_SB    
+#        If defined adds -xsb to compiles and creates a
+#        source browsing database during compilation.
+#
+ifdef COMPILE_WITH_SB
+  ifeq ($(LIBRARY), java)
+    CFLAGS_DBG +=   -xsb
+  endif
+endif
+
+# Lint Flags:
+#	-Xa			ANSI C plus K&R, favor ANSI rules
+#	-fd			report on old style func defs
+#	-errchk=structarg	report on 64bit struct args by value
+#	-errchk=longptr64	report on 64bit to 32bit issues (ignores casts)
+#	-errchk=parentheses	report on suggested use of extra parens
+#	-v 			suppress unused args
+#	-x			suppress unused externs
+#	-u			suppress extern func/vars used/defined
+#	-errfmt=simple		use one line errors with position info
+#       $(LINT_XARCH_OPTION)    See Compiler-sun.gwk
+
+LINTFLAGS_COMMON  = -Xa
+LINTFLAGS_COMMON += -fd 
+LINTFLAGS_COMMON += -errchk=structarg,longptr64,parentheses
+LINTFLAGS_COMMON += -v
+LINTFLAGS_COMMON += -x 
+LINTFLAGS_COMMON += -u
+LINTFLAGS_COMMON += -errfmt=simple 
+LINTFLAGS_OPT   = 
+LINTFLAGS_DBG   =
+
+# The -W0,-noglobal tells the compiler to NOT generate mangled global
+#    ELF data symbols for file local static data.
+#    This can break fix&continue, but we'd rather do the same compilations
+#    for deliverable bits as we do for non-deliverable bits
+#    Tell the compilers to never generate globalized names, all the time.
+CFLAGS_COMMON += -W0,-noglobal
+
+# If we have a specific arch value to use, add it
+CFLAGS_COMMON    += $(XARCH_OPTION)
+CXXFLAGS_COMMON  += $(XARCH_OPTION)
+ASFLAGS_COMMON   += $(AS_XARCH_OPTION)
+EXTRA_LIBS       += $(XARCH_OPTION)
+LINTFLAGS_COMMON += $(LINT_XARCH_OPTION)
+
+#
+# uncomment the following to build with PERTURBALOT set
+#
+# OTHER_CFLAGS += -DPERTURBALOT
+#
+
+CPPFLAGS_COMMON = -D__solaris__  -D$(ARCH_FAMILY)
+CPPFLAGS_OPT    = -DNDEBUG
+CPPFLAGS_DBG    = -DDEBUG
+
+ifneq ($(PRODUCT), java)
+  CPPFLAGS_DBG    += -DLOGGING -DDBINFO
+endif
+
+ifeq ($(ARCH_FAMILY), i586)
+  # The macro _LITTLE_ENDIAN needs to be defined the same to avoid the
+  #   Sun C compiler warning message: warning: macro redefined: _LITTLE_ENDIAN
+  #   (The Solaris X86 system defines this in file /usr/include/sys/isa_defs.h).
+  #   Note: -Dmacro         is the same as    #define macro 1
+  #         -Dmacro=	    is the same as    #define macro
+  #
+  CPPFLAGS_COMMON +=  -DcpuIntel -D_LITTLE_ENDIAN= -D$(LIBARCH)
+  # Turn off a superfluous compiler error message on Intel
+  CFLAGS_COMMON += -erroff=E_BAD_PRAGMA_PACK_VALUE
+endif
+
+# Java memory management is based on memory mapping by default, but a
+# system only assuming malloc/free can be built by adding -DUSE_MALLOC 
+
+CPPFLAGS_COMMON	+= -DTRACING -DMACRO_MEMSYS_OPS -DBREAKPTS
+CPPFLAGS_OPT	+= -DTRIMMED
+
+LDFLAGS_DEFS_OPTION  = -z defs
+LDFLAGS_COMMON  += $(LDFLAGS_DEFS_OPTION)
+
+#
+# -L paths for finding and -ljava
+#
+LDFLAGS_COMMON += -L$(LIBDIR)/$(LIBARCH)
+LDFLAGS_OPT     =
+LDFLAGS_DBG     =
+
+#
+# We never really want the incremental linker, ever
+#    The -xildoff option tells Sun's compilers to NOT use incremental linker
+#
+LDFLAGS_COMMON  += -xildoff
+
+ifdef LIBRARY
+  # Libraries need to locate other libraries at runtime, and you can tell
+  #   a library where to look by way of the dynamic runpaths (RPATH or RUNPATH)
+  #   buried inside the .so. The $ORIGIN says to look relative to where
+  #   the library itself is and it can be followed with relative paths from
+  #   that. By default we always look in $ORIGIN, optionally we add relative
+  #   paths if the Makefile sets LD_RUNPATH_EXTRAS to those relative paths.
+  #   The environment variable LD_LIBRARY_PATH will over-ride these runpaths.
+  #   Try: 'dump -Lv lib*.so' to see these settings in a library.
+  #
+  LDFLAGS_COMMON += -R\$$ORIGIN
+  LDFLAGS_COMMON += $(LD_RUNPATH_EXTRAS:%=-R\$$ORIGIN/%)
+endif
+
+EXTRA_LIBS += -lc
+
+# Postprocessing is done on the images directories only
+#
+ifeq ($(VARIANT), OPT)
+  ifeq ($(PARTIAL_GPROF), true)
+    NO_STRIP = true
+  endif
+  ifeq ($(GPROF), true)
+    NO_STRIP = true
+  endif
+  ifneq ($(NO_STRIP), true)
+    # Debug 'strip -x' leaves local function Elf symbols (better stack traces)
+    POST_STRIP_PROCESS = $(STRIP) -x
+  endif
+endif
+POST_MCS_PROCESS=$(MCS) -d -a "JDK $(FULL_VERSION)"
+
+#
+# Sun C compiler will take -M and pass it on to ld.
+# Usage: ld $(LD_MAPFILE_FLAG) mapfile *.o
+#
+ifeq ($(CC_VERSION),gcc)
+LD_MAPFILE_FLAG = -Xlinker -M -Xlinker
+else
+LD_MAPFILE_FLAG = -M
+endif
+
+#
+# Variables globally settable from the make command line (default
+# values in brackets):
+#	GPROF (false)
+# Eg: 	% gnumake GPROF=true
+GPROF = false
+ifeq ($(GPROF), true)
+    CFLAGS_COMMON += -DGPROF -xpg
+    EXTRA_LIBS += -xpg
+endif
+
+# PARTIAL_GPROF is to be used ONLY during compilation - it should not
+# appear during linking of libraries or programs.  It also should
+# prevent linking with -z defs to allow a symbol to remain undefined.
+#
+PARTIAL_GPROF = false
+ifeq ($(PARTIAL_GPROF), true)
+  CFLAGS_GPROF += -xpg
+  LDFLAGS_DEFS_OPTION  = -z nodefs
+endif
+
+#
+# For a TCOV build we add in the TCOV_OPTION
+#
+ifdef TCOV_BUILD
+  TCOV_OPTION		= -xprofile=tcov
+  LDFLAGS_COMMON 	+= $(TCOV_OPTION) -Kpic
+  CFLAGS_COMMON  	+= $(TCOV_OPTION)
+  CXXFLAGS_COMMON 	+= $(TCOV_OPTION)
+  EXTRA_LIBS 	+= $(TCOV_OPTION)
+  LDNOMAP=true
+endif
+
+#
+# Solaris only uses native threads. 
+#
+THREADS_FLAG=	native
+THREADS_DIR=	threads
+
+#
+# Support for Quantify.
+#
+ifdef QUANTIFY
+  QUANTIFY_CMD = quantify
+  QUANTIFY_OPTIONS = -cache-dir=/tmp/quantify -always-use-cache-dir=yes
+  LINK_PRE_CMD = $(QUANTIFY_CMD) $(QUANTIFY_OPTIONS)
+  ifdef LIBRARY
+    CFLAGS_COMMON += -K PIC
+  endif
+endif
+
+#
+# Support for Purify.
+#
+ifdef PURIFY
+  PURIFY_CMD = /net/suntools.eng/export/tools/sparc/bin/purify
+  PURIFY_OPTIONS = -cache-dir=/tmp/quantify -always-use-cache-dir=yes
+  LINK_PRE_CMD = $(PURIFY_CMD) $(PURIFY_OPTIONS)
+  ifdef LIBRARY
+    CFLAGS_COMMON += -K PIC
+  endif
+endif
+
+#
+# Different "levels" of optimization.
+#
+ifeq ($(CC_VERSION),gcc)
+  
+  CC_OPT/NONE     =
+  CC_OPT/LOWER    = -O2
+  CC_OPT/HIGHER   = -O3
+  CC_OPT/HIGHEST  = -O3
+
+  CXX_OPT/NONE    =
+  CXX_OPT/LOWER   = -O2
+  CXX_OPT/HIGHER  = -O3
+  CXX_OPT/HIGHEST = -O3
+
+  CFLAGS_REQUIRED_i586  += -fno-omit-frame-pointer
+  CFLAGS_REQUIRED_amd64 += -fno-omit-frame-pointer
+  
+  # Automatic precompiled header option to use (if COMPILE_APPROACH=batch)
+  #   (See Rules.gmk) May need to wait for gcc 5?
+  AUTOMATIC_PCH_OPTION = 
+
+else
+  
+  # Highest could be -xO5, but indications are that -xO5 should be reserved
+  #    for a per-file use, on sources with known performance impacts.
+  OPT_LEVEL/LOWER    = 2
+  OPT_LEVEL/HIGHER   = 4
+  OPT_LEVEL/HIGHEST  = 4
+  
+  CC_OPT/NONE     =
+  CC_OPT/LOWER    = $(OPT_LEVEL/LOWER:%=-xO%)
+  CC_OPT/HIGHER   = $(OPT_LEVEL/HIGHER:%=-xO%)
+  CC_OPT/HIGHEST  = $(OPT_LEVEL/HIGHEST:%=-xO%)
+  
+  CXX_OPT/NONE    =
+  CXX_OPT/LOWER   = $(OPT_LEVEL/LOWER:%=-xO%)
+  CXX_OPT/HIGHER  = $(OPT_LEVEL/HIGHER:%=-xO%)
+  CXX_OPT/HIGHEST = $(OPT_LEVEL/HIGHEST:%=-xO%)
+    
+  # We need stack frames at all times
+  USE_XKEEPFRAME_OPTION = false
+  ifeq ($(USE_XKEEPFRAME_OPTION),true)
+    
+    # Unknown spelling on this option at this time (Maybe in SS13?)
+    CC_XKEEPFRAME_OPTIONS  = -xkeepframe
+    CXX_XKEEPFRAME_OPTIONS = -xkeepframe
+  
+  else
+  
+    # On X86, make sure tail call optimization is off
+    #    The z and y are the tail call optimizations.
+    ifeq ($(ARCH_FAMILY), i586)
+      CC_NEWER_THAN_58 := \
+        $(shell $(EXPR) $(CC_MAJORVER) \> 5 \| \
+	    \( $(CC_MAJORVER) = 5 \& $(CC_MINORVER) \> 8 \) )
+      ifeq ($(CC_NEWER_THAN_58),1)
+        #    Somehow, tail call optimization is creeping in.
+        #    Make sure it is off.
+        # WARNING: These may cause compiler warnings about duplicate -O options
+        CC_XKEEPFRAME_OPTIONS  += -Wu,-O$(OPT_LEVEL/$(OPTIMIZATION_LEVEL))~yz
+        CXX_XKEEPFRAME_OPTIONS += -Qoption ube -O$(OPT_LEVEL/$(OPTIMIZATION_LEVEL))~yz
+      endif
+    endif
+  
+    #  On i586 we need to tell the code generator to ALWAYS use a
+    #   frame pointer.
+    ifeq ($(ARCH_FAMILY), i586)
+      # Note that in 5.7, this is done with -xregs=no%frameptr
+      ifeq ($(CC_VER), 5.5)
+        # It's not exactly clear when this optimization kicks in, the
+        #   current assumption is -xO4 or greater and for C++ with
+        #   the -features=no%except option and -xO4 and greater.
+        #   Bottom line is, we ALWAYS want a frame pointer!
+        CC_XKEEPFRAME_OPTIONS  += -Wu,-Z~B
+        CXX_XKEEPFRAME_OPTIONS += -Qoption ube -Z~B
+      endif
+
+      CC_NEWER_THAN_56 := \
+        $(shell $(EXPR) $(CC_MAJORVER) \> 5 \| \
+	    \( $(CC_MAJORVER) = 5 \& $(CC_MINORVER) \> 6 \) )
+      ifeq ($(CC_NEWER_THAN_56),1)
+        # Do NOT use frame pointer register as a general purpose opt register
+        CC_OPT/NONE            += -xregs=no%frameptr
+        CXX_OPT/NONE           += -xregs=no%frameptr
+        CC_XKEEPFRAME_OPTIONS  += -xregs=no%frameptr
+        CXX_XKEEPFRAME_OPTIONS += -xregs=no%frameptr
+      endif
+    endif
+  
+    #  Optimizer for sparc needs to be told not to do certain things
+    #   related to frames or save instructions.
+    ifeq ($(ARCH_FAMILY), sparc)
+      #  Do not use save instructions instead of add instructions
+      #  This was an optimization starting in SC5.0 that made it hard for us to
+      #    find the "save" instruction (which got turned into an "add")
+      CC_XKEEPFRAME_OPTIONS  += -Wc,-Qrm-s
+      CXX_XKEEPFRAME_OPTIONS += -Qoption cg -Qrm-s
+      # Don't allow tail call code optimization. Started in SC5.0.
+      #    We don't like code of this form:
+      #	save
+      #	<code>
+      #	call foo
+      #	   restore
+      #   because we can't tell if the method will have a stack frame
+      #   and register windows or not.
+      CC_XKEEPFRAME_OPTIONS  += -Wc,-Qiselect-T0
+      CXX_XKEEPFRAME_OPTIONS += -Qoption cg -Qiselect-T0
+    endif
+  
+  endif
+
+  # Extra options used with HIGHEST
+  #
+  # WARNING: Use of OPTIMIZATION_LEVEL=HIGHEST in your Makefile needs to be
+  #          done with care, there are some assumptions below that need to
+  #          be understood about the use of pointers, and IEEE behavior.
+  #
+  # Use non-standard floating point mode (not IEEE 754)
+  CC_HIGHEST_EXTRAS += -fns
+  # Do some simplification of floating point arithmetic (not IEEE 754)
+  CC_HIGHEST_EXTRAS += -fsimple
+  # Use single precision floating point with 'float'
+  CC_HIGHEST_EXTRAS += -fsingle
+  # Assume memory references via basic pointer types do not alias
+  #   (Source with excessing pointer casting and data access with mixed 
+  #    pointer types are not recommended)
+  CC_HIGHEST_EXTRAS += -xalias_level=basic
+  # Use intrinsic or inline versions for math/std functions
+  #   (If you expect perfect errno behavior, do not use this)
+  CC_HIGHEST_EXTRAS += -xbuiltin=%all
+  # Loop data dependency optimizations (need -xO3 or higher)
+  CC_HIGHEST_EXTRAS += -xdepend
+  # Pointer parameters to functions do not overlap
+  #   (Similar to -xalias_level=basic usage, but less obvious sometimes.
+  #    If you pass in multiple pointers to the same data, do not use this)
+  CC_HIGHEST_EXTRAS += -xrestrict
+  # Inline some library routines
+  #   (If you expect perfect errno behavior, do not use this)
+  CC_HIGHEST_EXTRAS += -xlibmil
+  # Use optimized math routines
+  #   (If you expect perfect errno behavior, do not use this)
+  #  Can cause undefined external on Solaris 8 X86 on __sincos, removing for now
+  #  CC_HIGHEST_EXTRAS += -xlibmopt
+  ifeq ($(ARCH_FAMILY), sparc)
+    # Assume at most 8byte alignment, raise SIGBUS on error
+    ### Presents an ABI issue with customer JNI libs?
+    ####CC_HIGHEST_EXTRAS  += -xmemalign=8s
+    # Automatic prefetch instructions, explicit prefetch macros
+    CC_HIGHEST_EXTRAS += -xprefetch=auto,explicit
+    # Pick ultra as the chip to optimize to
+    CC_HIGHEST_EXTRAS += -xchip=ultra
+  endif
+  ifeq ($(ARCH), i586)
+    # Pick pentium as the chip to optimize to
+    CC_HIGHEST_EXTRAS += -xchip=pentium
+  endif
+  ifdef LIBRARY
+    # The Solaris CBE (Common Build Environment) requires that the use
+    # of appl registers be disabled when compiling a public library (or
+    # a library that's loaded by a public library) on sparc.
+    CFLAGS_REQUIRED_sparc    += -xregs=no%appl
+    CFLAGS_REQUIRED_sparcv9  += -xregs=no%appl
+  endif
+  CC_NEWER_THAN_56 := \
+    $(shell $(EXPR) $(CC_MAJORVER) \> 5 \| \
+         \( $(CC_MAJORVER) = 5 \& $(CC_MINORVER) \> 6 \) )
+  ifeq ($(CC_NEWER_THAN_56),1)
+    #     Presents an ABI issue with customer JNI libs? We must be able to
+    #     to handle 4byte aligned objects? (rare occurance, but possible?)
+    CFLAGS_REQUIRED_sparc += -xmemalign=4s
+  endif
+  # Just incase someone trys to use the SOS9 compilers
+  ifeq ($(CC_VER), 5.6)
+    # We MUST allow data alignment of 4 for sparc (sparcv9 is ok at 8s)
+    CFLAGS_REQUIRED_sparc += -xmemalign=4s
+  endif
+  # Automatic precompiled header option to use (if COMPILE_APPROACH=batch)
+  #   (See Rules.gmk) The SS11 -xpch=auto* options appear to be broken.
+  AUTOMATIC_PCH_OPTION =
+  
+  # Add in keep frame options
+  CC_OPT/LOWER    += $(CC_XKEEPFRAME_OPTIONS)
+  CC_OPT/HIGHER   += $(CC_XKEEPFRAME_OPTIONS)
+  CC_OPT/HIGHEST  += $(CC_XKEEPFRAME_OPTIONS)
+  CXX_OPT/LOWER   += $(CXX_XKEEPFRAME_OPTIONS)
+  CXX_OPT/HIGHER  += $(CXX_XKEEPFRAME_OPTIONS)
+  CXX_OPT/HIGHEST += $(CXX_XKEEPFRAME_OPTIONS)
+ 
+  # Add in highest optimization settings
+  CC_OPT/HIGHEST  += $(CC_HIGHEST_EXTRAS)
+  CXX_OPT/HIGHEST += $(CC_HIGHEST_EXTRAS)
+  
+endif
+
+# Default optimization settings based on level.
+CC_OPT  = $(CC_OPT/$(OPTIMIZATION_LEVEL))
+CXX_OPT = $(CXX_OPT/$(OPTIMIZATION_LEVEL))
+
+# Flags required all the time
+CFLAGS_REQUIRED = $(CFLAGS_REQUIRED_$(ARCH))
+
+#
+# Path and option to link against the VM, if you have to.  Note that
+# there are libraries that link against only -ljava, but they do get
+# -L to the -ljvm, this is because -ljava depends on -ljvm, whereas
+# the library itself should not.
+#
+VM_NAME         = server
+JVMLIB          = -L$(LIBDIR)/$(LIBARCH)/server -L$(LIBDIR)/$(LIBARCH)/client -ljvm
+JAVALIB         = -ljava $(JVMLIB)
+
+# Part of INCREMENTAL_BUILD mechanism.
+#   Compiler emits things like:  path/file.o: file.h
+#   We want something like: relative_path/file.o relative_path/file.d: file.h
+#   In addition on Solaris, any include file starting with / is deleted,
+#   this gets rid of things like /usr/include files, which never change.
+CC_DEPEND	 = -xM1
+CC_DEPEND_FILTER = $(SED) -e '/:[ 	]*[/]/d' -e 's!$*\.$(OBJECT_SUFFIX)!$(dir $@)& $(dir $@)$*.$(DEPEND_SUFFIX)!g' | $(SORT) -u
+
+# Location of openwin libraries (do we really need this anymore?)
+OPENWIN_HOME    = /usr/openwin
+OPENWIN_LIB     = $(OPENWIN_HOME)/lib$(ISA_DIR)
+
+# Runtime graphics library search paths...
+OPENWIN_RUNTIME_LIB = /usr/openwin/lib$(ISA_DIR)
+AWT_RUNPATH = -R/usr/dt/lib$(ISA_DIR) -R$(OPENWIN_RUNTIME_LIB)
+
+# C++ Runtime library (libCrun.so), use instead of -lCrun.
+#    Originally used instead of -lCrun to guarantee use of the system
+#    .so version and not the .a or .so that came with the compilers.
+#    With the newer compilers this could probably change back to -lCrun but
+#    in general this is ok to continue to do.
+LIBCXX = /usr/lib$(ISA_DIR)/libCrun.so.1
+
+# JDK now requires Solaris 10, so pick up libm.so.2
+LIBM = /usr/lib$(ISA_DIR)/libm.so.2
+
+# Socket library
+LIBSOCKET = -lsocket
+
+# Network Services library
+LIBNSL = -lnsl
+
+# service configuration facility library
+LIBSCF = -lscf
+
+# Dynamic Loading library
+LIBDL = -ldl
+
+# GLOBAL_KPIC: If set means all libraries are PIC, position independent code
+#    EXCEPT for select compiles
+#    If a .o file is compiled non-PIC then it should be forced
+#	   into the RW data segment with a mapfile option. This is done
+#    with object files which generated from .s files.
+#    The -ztext enforces that no relocations remain in the text segment
+#    so that it remains purely read-only for optimum system performance.
+#    Some libraries may use a smaller size (13bit -Kpic) on sparc instead of 
+#    (32 bit -KPIC) and will override GLOBAL_KPIC appropriately.
+#
+PIC_CODE_LARGE   = -KPIC
+PIC_CODE_SMALL   = -Kpic
+ifndef TCOV_BUILD
+    GLOBAL_KPIC      = $(PIC_CODE_LARGE)
+    CXXFLAGS_COMMON += $(GLOBAL_KPIC)
+    CFLAGS_COMMON   += $(GLOBAL_KPIC)
+    LDFLAGS_COMMON  += -ztext
+endif # TCOV_BUILD
+
+# If your platform has DPS, it will have Type1 fonts too, in which case
+# it is best to enable DPS support until such time as 2D's rasteriser
+# can fully handle Type1 fonts in all cases. Default is "yes".
+# HAVE_DPS should only be "no" if the platform has no DPS headers or libs
+# DPS (Displayable PostScript) is available on Solaris machines
+
+HAVE_DPS = yes
+
+#
+# Japanese manpages
+#
+JA_SOURCE_ENCODING = eucJP
+JA_TARGET_ENCODINGS = eucJP UTF-8 PCK
+
+# Settings for the JDI - Serviceability Agent binding.
+HOTSPOT_SALIB_PATH   = $(HOTSPOT_IMPORT_PATH)/jre/lib/$(LIBARCH)
+SALIB_NAME = $(LIB_PREFIX)saproc.$(LIBRARY_SUFFIX)
+SA_DEBUGINFO_NAME = $(LIB_PREFIX)saproc.debuginfo
+INCLUDE_SA=true
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/common/Defs-windows.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,418 @@
+#
+# Copyright (c) 1999, 2011, 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.
+#
+
+#
+# Makefile to specify compiler flags for programs and libraries
+# targeted to Windows builds.  Should not contain any rules.
+#
+# WARNING: This file is shared with other workspaces. 
+#          So when it includes other files, it must use JDK_TOPDIR.
+#
+
+# Get shared JDK settings
+include $(JDK_MAKE_SHARED_DIR)/Defs.gmk
+
+# CC compiler object code output directive flag value
+CC_OBJECT_OUTPUT_FLAG = -Fo
+
+# The suffix applied to the library name for FDLIBM
+FDDLIBM_SUFFIX = lib
+# The suffix applied to scripts (.bat for windows, nothing for unix)
+SCRIPT_SUFFIX = .bat
+
+# LIB_LOCATION, which for windows identifies where .exe files go, may be
+# set by each GNUmakefile. The default is BINDIR.
+ifndef LIB_LOCATION
+  LIB_LOCATION = $(BINDIR)
+endif # LIB_LOCATION
+
+ifndef PLATFORM_SRC
+  PLATFORM_SRC  = $(BUILDDIR)/../src/windows
+endif # PLATFORM_SRC
+
+# Platform specific closed sources
+ifndef OPENJDK
+  ifndef CLOSED_PLATFORM_SRC
+    CLOSED_PLATFORM_SRC  = $(BUILDDIR)/../src/closed/windows
+  endif
+endif
+
+# for backwards compatability, the old "win32" is used here instead of 
+# the more proper "windows"
+PLATFORM_INCLUDE_NAME = win32
+PLATFORM_INCLUDE      = $(INCLUDEDIR)/$(PLATFORM_INCLUDE_NAME)
+
+# The following DLL's are considered MS runtime libraries and should
+#     not to be REBASEd, see deploy/make/common/Release.gmk.
+#     msvcr*.dll: Microsoft runtimes
+ifeq ($(COMPILER_VERSION), VS2010)
+  MSVCRNN_DLL = msvcr100.dll
+  MSVCPNN_DLL = msvcp100.dll
+endif
+
+EXTRA_LFLAGS += /LIBPATH:$(DXSDK_LIB_PATH)
+
+# C Compiler flag definitions
+
+#
+# Default optimization
+#
+
+ifndef OPTIMIZATION_LEVEL
+  ifeq ($(PRODUCT), java)
+    OPTIMIZATION_LEVEL = HIGHER
+  else
+    OPTIMIZATION_LEVEL = LOWER
+  endif
+endif
+ifndef FASTDEBUG_OPTIMIZATION_LEVEL
+  FASTDEBUG_OPTIMIZATION_LEVEL = LOWER
+endif
+
+ifeq ($(CC_VERSION),msvc)
+  # Visual Studio compiler option definitions:
+  #   -O1      Favors reduced size over speed (-Og     -Os -Oy -Ob2 -Gs -GF -Gy)
+  #   -O2      Favors speed over reduced size (-Og -Oi -Ot -Oy -Ob2 -Gs -GF -Gy)
+  #   -Ob2     More aggressive inlining
+  #   -Og      Global optimizations
+  #   -Oi      Replace some functions with intrinsic or special forms
+  #   -fp:precise (should be the default)
+  #            Improve floating point calculations (disables some optimizations)
+  #   -Os      Favor small code
+  #   -Ot      Favor faster code
+  #   -Oy      Frame pointer omission
+  #   -G6      Used to be -GB?
+  #   -GF      Pool strings in read-only memory
+  #   -Gf      Pool strings in read-write memory (the default)
+  #   -Gs      Controls stack probess
+  #   -GS      Adds buffer overflow checks on stacks (the default)
+  #   -EHsc    Enables exception handling 
+  #   -Gy      Function level linking only
+  #
+
+  CC_OPT/NONE    = -Od
+  CC_OPT/LOWER   = -O2
+  CC_OPT/HIGHER  = -O3
+  CC_OPT/HIGHEST = -O3
+  
+  ifeq ($(COMPILER_VERSION), VS2010)
+    # Automatic precompiled header option to use (if COMPILE_APPROACH=batch)
+    AUTOMATIC_PCH_OPTION =
+    GX_OPTION = -EHsc
+    GZ_OPTION = -RTC1
+    ifeq ($(ARCH_DATA_MODEL), 32)
+      CC_OPT/HIGHEST = -O2
+      CC_OPT/HIGHER  = -O1
+      CC_OPT/LOWER   = -O1
+    else
+      CC_OPT/HIGHEST = -O2
+      CC_OPT/HIGHER  = -O1
+      CC_OPT/LOWER   = -O1
+    endif
+  endif
+
+else # CC_VERSION
+  # GCC not supported, but left for historical reference...
+  CC_OPT/NONE     =
+  CC_OPT/LOWER    = -O2
+  CC_OPT/HIGHER   = -O2
+  CC_OPT/HIGHEST  = -O3
+
+endif
+
+CC_OPT = $(CC_OPT/$(OPTIMIZATION_LEVEL))
+
+# Select the runtime support library carefully, need to be consistent
+#
+# Visual Studio Runtime compiler option definitions:
+#   -MD        Use dynamic multi-threaded runtime library
+#   -MDd       Use debug version (don't use, doesn't mix with -MD DLL's)
+#   -MT        Use static multi-threaded runtime library (-ML is going away)
+#   -MTd       Use static debug version (better than -MDd, no runtime issues)
+#   -D_DEBUG   Change use of malloc/free/etc to use special debug ones (-MTd)
+#
+#      NOTE: We also will use /D _STATIC_CPPLIB  so we don't need msvcpnn.dll
+#
+# If MS_RUNTIME_STATIC is requested we may have a problem, it is no longer
+#     supported by VS2010
+ifneq ($(MS_RUNTIME_STATIC),true)
+  MS_RUNTIME_OPTION=-MD
+endif
+# The _DEBUG macro option (changes things like malloc to use debug version)
+MS_RUNTIME_DEBUG_OPTION=
+MS_RC_DEBUG_OPTION=
+# Externally set environment variable can force any build to use the debug vers
+ifeq ($(MFC_DEBUG), true)
+  ifeq ($(MS_RUNTIME_STATIC),true)
+    MS_RUNTIME_OPTION=-MTd
+  else
+    # This MS debugging flag forces a dependence on the debug
+    #     version of the runtime library (MSVCR*D.DLL), as does -MDd.
+    #     We cannot re-distribute this debug runtime.
+    MS_RUNTIME_OPTION=-MDd
+  endif
+  MS_RUNTIME_DEBUG_OPTION= -D_DEBUG
+  MS_RC_DEBUG_OPTION= -d _DEBUG
+endif
+
+# Always add _STATIC_CPPLIB definition
+STATIC_CPPLIB_OPTION = /D _STATIC_CPPLIB
+
+# Silence the warning about using _STATIC_CPPLIB
+ifneq ($(SHOW_ALL_WARNINGS),true)
+  # Needed with VS2010 to turn off the deprecated warning.
+  STATIC_CPPLIB_OPTION += /D _DISABLE_DEPRECATE_STATIC_CPPLIB
+endif
+
+MS_RUNTIME_OPTION += $(STATIC_CPPLIB_OPTION)
+
+ifeq ($(CC_VERSION),msvc)
+  # Visual Studio compiler option definitions:
+  #   -Zi      Cause *.pdb file to be created, full debug information
+  #   -Z7      Full debug inside the .obj, no .pdb
+  #   -Zd      Basic debug, no local variables? In the .obj
+  #   -Zl      Don't add runtime library name to obj file?
+  #   -Od      Turns off optimization and speeds compilation
+  #   -YX -Fp/.../foobar.pch   Use precompiled headers (try someday?)
+  #   -nologo  Don't print out startup message
+  #   /D _STATIC_CPPLIB
+  #            Use static link for the C++ runtime (so msvcpnn.dll not needed)
+  #   
+  CFLAGS_COMMON  += -Zi -nologo
+  CFLAGS_OPT      = $(CC_OPT)
+  CFLAGS_DBG      = -Od $(MS_RUNTIME_DEBUG_OPTION)
+
+  CFLAGS_VS2010 += -Zc:wchar_t-
+
+  # All builds get the same runtime setting
+  CFLAGS_COMMON += $(MS_RUNTIME_OPTION) $(CFLAGS_$(COMPILER_VERSION))
+
+  LDEBUG = /debug
+  
+  ifeq ($(VTUNE_SUPPORT), true)
+    OTHER_CFLAGS = -Z7 -Ox 
+    LDEBUG += /pdb:NONE
+  endif
+  
+  # VS2010, always need safe exception handlers, not needed on 64bit
+  ifeq ($(ARCH_DATA_MODEL), 32)
+    LFLAGS_VS2010 +=  -SAFESEH
+  endif
+
+  # LFLAGS are the flags given to $(LINK) and used to build the actual DLL file
+  BASELFLAGS = -nologo /opt:REF /incremental:no
+
+  LFLAGS = $(BASELFLAGS) $(LDEBUG) $(EXTRA_LFLAGS) $(LFLAGS_$(COMPILER_VERSION))
+  LDDFLAGS += $(LFLAGS_$(COMPILER_VERSION))
+  
+endif
+
+#
+# Preprocessor macro definitions
+#
+CPPFLAGS_COMMON = -DWIN32 -DIAL -D_LITTLE_ENDIAN
+ifeq ($(ARCH), amd64)
+  CPPFLAGS_COMMON += -D_AMD64_ -Damd64
+else
+  CPPFLAGS_COMMON += -D_X86_ -Dx86 
+endif
+CPPFLAGS_COMMON += -DWIN32_LEAN_AND_MEAN
+
+#
+# Output options (use specific filenames to avoid parallel compile errors)
+#
+CFLAGS_COMMON += -Fd$(OBJDIR)/$(basename $(@F)).pdb -Fm$(OBJDIR)/$(basename $(@F)).map
+
+#
+# Use -wdNNNN to disable warning NNNN.
+#   C4800 is a warning about bool performance casts (can't make go away)
+#
+COMPILER_WARNINGS_TO_IGNORE = 4800
+CFLAGS_COMMON += $(COMPILER_WARNINGS_TO_IGNORE:%=-wd%)
+
+#
+# Treat compiler warnings as errors, if requested
+#
+CFLAGS_COMMON += -W$(COMPILER_WARNING_LEVEL)
+ifeq ($(COMPILER_WARNINGS_FATAL),true)
+  CFLAGS_COMMON += -WX
+endif
+
+# Turn off some warnings by default, enable them all if asked.
+ifneq ($(SHOW_ALL_WARNINGS),true)
+  # The -D _CRT_SECURE_NO_DEPRECATE turns off security/deprecated warnings on
+  #    the standard C library functions like strcpy.
+  CFLAGS_COMMON += -D _CRT_SECURE_NO_DEPRECATE
+  # The -D _CRT_NONSTDC_NO_DEPRECATE turns off deprecation warnings about using
+  #    non-standard C POSIX functions.
+  CFLAGS_COMMON += -D _CRT_NONSTDC_NO_DEPRECATE
+endif
+
+CPPFLAGS_OPT    = -DNDEBUG
+CPPFLAGS_DBG    = -DDEBUG -DLOGGING
+
+CXXFLAGS_COMMON = $(CFLAGS_COMMON)
+CXXFLAGS_OPT    = $(CFLAGS_OPT)
+CXXFLAGS_DBG    = $(CFLAGS_DBG)
+
+ifneq ($(LIBRARY),fdlibm)
+  EXTRA_LIBS += advapi32.lib
+endif
+
+#
+# Path and option to link against the VM, if you have to. 
+#
+JVMLIB = $(LIBDIR)/jvm.lib
+JAVALIB = $(LIBDIR)/java.lib
+
+ifeq ($(CC_VERSION), msvc)
+  CC_DEPEND        = -FD
+  CC_DEPEND_FILTER = 
+else # CC_VERSION
+# not supported, but left for historical reference...
+  CC_DEPEND        = -MM
+  CC_DEPEND_FILTER = $(SED) -e 's!$*\.$(OBJECT_SUFFIX)!$(dir $@)&!g'
+endif # CC_VERSION
+
+LIBRARY_SUFFIX = dll
+LIB_SUFFIX     = lib
+
+# Settings for the JDI - Serviceability Agent binding.
+HOTSPOT_SALIB_PATH   = $(HOTSPOT_IMPORT_PATH)/jre/bin
+SALIB_NAME = $(LIB_PREFIX)sawindbg.$(LIBRARY_SUFFIX)
+SAMAP_NAME = $(LIB_PREFIX)sawindbg.map
+SAPDB_NAME = $(LIB_PREFIX)sawindbg.pdb
+
+ifeq ($(ARCH), ia64)
+  # SA will never be supported here.
+  INCLUDE_SA = false
+else
+  INCLUDE_SA = true
+endif
+
+# Settings for the VERSIONINFO tap on windows. 
+VERSIONINFO_RESOURCE = $(BUILDDIR)/../src/windows/resource/version.rc
+
+ifneq ($(JDK_BUILD_NUMBER),)
+ COOKED_BUILD_NUMBER = $(shell $(ECHO) $(JDK_BUILD_NUMBER) | $(SED) -e 's/^b//' -e 's/^0//')
+else
+ COOKED_BUILD_NUMBER = 0
+endif
+
+# If the update version contains non-numeric characters, we need
+# to massage it into a numeric format. 
+# We use the following formula:
+# JDK_UPDATE_VER = JDK_UPDATE_VERSION * 10 + EXCEPTION_VERSION
+#
+# Here are some examples:
+#     1.5.0    b01  ->  5,0,0,1
+#     1.5.0_10 b01  ->  5,0,100,1
+#     1.4.2 b01     ->  4,2,0,1
+#     1.4.2_02 b01  ->  4,2,20,1
+#     1.4.2_02a b01 ->  4,2,21,1
+#     1.4.2_02b b01 ->  4,2,22,1
+ifdef JDK_UPDATE_VERSION
+  VTMP := $(shell $(ECHO) $(JDK_UPDATE_VERSION) | $(TR) "abcde" "12345")
+  CAB_CHAR1 := $(shell $(ECHO) $(VTMP) | $(NAWK) '{print substr($$1, 1, 1);}')
+  CAB_CHAR2 := $(shell $(ECHO) $(VTMP) | $(NAWK) '{print substr($$1, 2, 1);}')
+  CAB_CHAR3 := $(shell $(ECHO) $(VTMP) | $(NAWK) '{print substr($$1, 3, 1);}')
+  JDK_UPDATE_META_TAG := U$(MARKETING_NUMBER)
+  ifeq ($(CAB_CHAR3),)
+    CAB_CHAR3 := 0
+  endif
+  ifeq ($(CAB_CHAR1), 0)
+    JDK_UPDATE_VER := $(CAB_CHAR2)$(CAB_CHAR3)
+  else
+    JDK_UPDATE_VER := $(CAB_CHAR1)$(CAB_CHAR2)$(CAB_CHAR3)
+  endif
+else
+  JDK_UPDATE_VER := 0
+endif
+
+#RC_FLAGS = /l 0x409 /r
+
+#ifeq ($(VARIANT), OPT)
+#  RC_FLAGS += -d NDEBUG 
+#else
+#  RC_FLAGS += $(MS_RC_DEBUG_OPTION)
+#endif 
+
+# Values for the RC variables defined in RC_FLAGS
+#JDK_RC_BUILD_ID = $(FULL_VERSION)
+#JDK_RC_COMPANY = $(COMPANY_NAME)
+#JDK_RC_COMPONENT = $(PRODUCT_NAME) $(JDK_RC_PLATFORM_NAME) binary
+#JDK_RC_VER = \
+#    $(JDK_MINOR_VERSION).$(JDK_MICRO_VERSION).$(JDK_UPDATE_VER).$(COOKED_BUILD_NUMBER)
+#JDK_RC_COPYRIGHT = Copyright \xA9 $(COPYRIGHT_YEAR)
+#JDK_RC_NAME = \
+#    $(PRODUCT_NAME) $(JDK_RC_PLATFORM_NAME) $(JDK_MINOR_VERSION) $(JDK_UPDATE_META_TAG)
+#JDK_RC_FVER = \
+#    $(JDK_MINOR_VERSION),$(JDK_MICRO_VERSION),$(JDK_UPDATE_VER),$(COOKED_BUILD_NUMBER)
+
+# JDK name required here
+#RC_FLAGS += -d "JDK_BUILD_ID=$(JDK_RC_BUILD_ID)" \
+#            -d "JDK_COMPANY=$(JDK_RC_COMPANY)" \
+#            -d "JDK_COMPONENT=$(JDK_RC_COMPONENT)" \
+#            -d "JDK_VER=$(JDK_RC_VER)" \
+#            -d "JDK_COPYRIGHT=$(JDK_RC_COPYRIGHT)" \
+#            -d "JDK_NAME=$(JDK_RC_NAME)" \
+#            -d "JDK_FVER=$(JDK_RC_FVER)"
+
+# Enable 7-Zip LZMA file (de)compression for Java Kernel if it is available
+ifeq ($(ARCH_DATA_MODEL), 32)
+  ifneq ($(KERNEL), off)
+    # This is a hack to use until  7-Zip (and UPX) bundles can be put
+    # under /java/devtools.
+    ifndef DEPLOY_TOPDIR
+      DEPLOY_TOPDIR=$(JDK_TOPDIR)/../deploy
+    endif
+    # Uncomment this block to cause build failure if above assumption false
+    #DCHK = $(shell if [ ! -d $(DEPLOY_TOPDIR) ] ; then \
+    #  $(ECHO) deploy_not_a_peer_of_j2se ; \
+    #fi )
+    #ifeq ($(DCHK), deploy_not_a_peer_of_j2se)
+    #  If a build failure points to control coming here it means
+    #  it means deploy is not in the same directory
+    #  as j2se. Java Kernel can't tolerate that for the time being.
+    #endif
+    EC_TMP = $(shell if [ -d $(DEPLOY_TOPDIR)/make/lzma ] ; then \
+      $(ECHO) true ; \
+    else \
+      $(ECHO) false ; \
+    fi )
+    ifeq ($(EC_TMP), true)
+      EXTRA_COMP_INSTALL_PATH = lib\\\\deploy\\\\lzma.dll
+      # Crazy but true: deploy/make/plugin/jinstall/Makefile.jkernel does
+      # not include deploy/make/common/Defs-windows.gmk, either directly
+      # or indirectly. But it does include this file, so redundantly declare
+      # these variables that are in deploy/make/common/Defs-windows.gmk for
+      # the sake of the Java Kernel part of the deploy build. Whew!
+      EXTRA_COMP_LIB_NAME = lzma.dll
+      EXTRA_COMP_PATH = $(OUTPUTDIR)/tmp/deploy/lzma/win32/obj
+      EXTRA_COMP_CMD_PATH = $(EXTRA_COMP_PATH)/lzma.exe
+      EXTRA_COMP_LIB_PATH = $(EXTRA_COMP_PATH)/$(EXTRA_COMP_LIB_NAME)
+    endif
+  endif
+endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/common/Defs.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,577 @@
+#
+# Copyright (c) 1995, 2011, 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.
+#
+
+#
+# Common variables used by all the Java makefiles.  This file should
+# not contain rules.
+#
+
+# WARNING: This file is shared with other workspaces.
+#          So when it includes other files, it must use JDK_TOPDIR.
+#
+
+# Check for strange explicit settings (change to empty or true)
+ifdef OPENJDK
+  ifneq ($(OPENJDK),true)
+    x:=$(error "OPENJDK (if defined) can only be set to true")
+  endif
+endif
+
+#
+# On Solaris, the 'make' utility from Sun will not work with these makefiles.
+#    This little rule is only understood by Sun's make, and is harmless
+#    when seen by the GNU make tool. If using Sun's make, this causes the
+#    make command to fail.
+#
+SUN_MAKE_TEST:sh = echo "ERROR: PLEASE USE GNU VERSION OF MAKE"; exit 33
+
+include $(SPEC)
+include $(JDK_MAKE_SHARED_DIR)/Platform.gmk
+
+# Historically PLATFORM_SRC used to be src/$(PLATFORM), but we switched it to
+# src/solaris so if you want to build on Linux you didn't need a src/linux
+# directory.  In an ideal world it would be called src/genunix but we are not
+# there yet.
+#
+ifndef SHARE_SRC
+  SHARE_SRC    = $(BUILDDIR)/../src/share
+endif
+
+# Files that cannot be included in the OpenJDK distribution are
+# collected under a parent directory which contains just those files.
+ifndef CLOSED_SRC
+  CLOSED_SRC  = $(BUILDDIR)/../src/closed
+endif
+
+# If CLOSE_SRC_INCLUDED isn't set to true, check if there's any
+# closed directory.
+ifneq ($(CLOSED_SRC_INCLUDED), true)
+  CLOSED_SRC_INCLUDED := $(shell \
+    if [ -d $(CLOSED_SRC) ] ; then \
+      echo true; \
+    else \
+      echo false; \
+    fi)
+endif
+
+# Set OPENJDK based on CLOSED_SRC_INCLUDED
+ifeq ($(CLOSED_SRC_INCLUDED), false)
+  OPENJDK = true
+endif
+
+# Define where closed directories are
+ifdef OPENJDK
+  CLOSED_SRC =
+  CLOSED_SHARE_SRC =
+else
+  ifndef CLOSED_SHARE_SRC
+    CLOSED_SHARE_SRC    = $(CLOSED_SRC)/share
+  endif
+endif
+
+#
+# Get platform definitions
+#
+
+include $(JDK_TOPDIR)/makefiles/common/Defs-$(PLATFORM).gmk
+
+#
+# SE-Embedded support, if enabled
+#
+
+include $(JDK_TOPDIR)/makefiles/common/Defs-embedded.gmk
+
+#
+# Cross-compilation Settings
+#
+ifdef CROSS_COMPILE_ARCH
+  # Can't run the tools we just built
+  USE_ONLY_BOOTDIR_TOOLS = true
+
+  # When cross-compiling CC generates code for the target, but
+  # some parts of the build generate C code that has to be compiled
+  # and executed on the build host - HOST_CC is the 'local' compiler.
+  # For linux the default is /usr/bin/gcc; other platforms need to
+  # set it explicitly
+  ifeq ($(PLATFORM), linux)
+    ifndef HOST_CC
+      HOST_CC = $(USRBIN_PATH)gcc
+    endif
+  endif
+else
+  # Must set HOST_CC if not already set
+  ifndef HOST_CC
+    HOST_CC = $(CC)
+  endif
+endif
+
+# Reset the VM name for client-only builds
+ifeq ($(JVM_VARIANT),client)
+  VM_NAME = client
+endif
+
+#
+# Freetype logic is applicable to OpenJDK only
+#
+ifdef OPENJDK
+
+ifeq ($(PLATFORM), windows)
+  DEVTOOLS_FT_DIR=$(JDK_DEVTOOLS_DIR)/win32/freetype-$(ARCH)
+endif
+ifeq ($(PLATFORM), linux)
+  DEVTOOLS_FT_DIR=$(JDK_DEVTOOLS_DIR)/$(PLATFORM)/freetype-$(ARCH)
+endif
+ifeq ($(PLATFORM), solaris)
+  # historically for Solaris we have slightly different devtools 
+  # naming conventions
+  DEVTOOLS_FT_DIR=$(JDK_DEVTOOLS_DIR)/$(ARCH_FAMILY)/freetype-$(ARCH)
+endif
+
+DEVTOOLS_FT_DIR_EXISTS = $(shell \
+  if [ -f $(DEVTOOLS_FT_DIR)/include/ft2build.h ] ; then \
+    echo true; \
+  else \
+    echo false; \
+  fi)
+
+  ifdef ALT_FREETYPE_LIB_PATH
+    FREETYPE_LIB_PATH = $(ALT_FREETYPE_LIB_PATH)
+    ifeq ($(PLATFORM), macosx)
+      USING_SYSTEM_FT_LIB=true
+    endif
+  else
+    ifeq ($(DEVTOOLS_FT_DIR_EXISTS), true)
+      FREETYPE_LIB_PATH = $(DEVTOOLS_FT_DIR)/lib
+    else
+      ifeq ($(PLATFORM), macosx)
+        FREETYPE_LIB_PATH = /usr/X11R6/lib
+      else
+        FREETYPE_LIB_PATH = /usr/lib
+      endif
+      USING_SYSTEM_FT_LIB=true
+    endif
+  endif 
+
+  ifdef ALT_FREETYPE_HEADERS_PATH
+    FREETYPE_HEADERS_PATH = $(ALT_FREETYPE_HEADERS_PATH)
+  else
+    ifeq ($(DEVTOOLS_FT_DIR_EXISTS), true)
+      FREETYPE_HEADERS_PATH = $(DEVTOOLS_FT_DIR)/include
+    else
+      ifeq ($(PLATFORM), macosx)
+        FREETYPE_HEADERS_PATH = /usr/X11R6/include
+      else
+        FREETYPE_HEADERS_PATH = /usr/include
+      endif
+    endif
+  endif
+endif
+
+#
+# zlib version
+#
+ZLIB_VERSION = 1.2.5
+
+
+#
+# Localizations for the different parts of the product beyond English
+#
+
+JRE_LOCALES   = de es fr it ja ko pt_BR sv zh_CN zh_TW zh_HK
+PLUGIN_LOCALES = de es fr it ja ko pt_BR sv zh_CN zh_TW zh_HK
+JDK_LOCALES  = ja zh_CN
+
+#
+# A list of locales we support but don't have resource files.
+# This is defined to optimize the search of resource bundles.
+#
+JRE_NONEXIST_LOCALES = en en_US de_DE es_ES fr_FR it_IT ja_JP ko_KR sv_SE zh
+
+#
+# For now, most libraries except libjava and libjvm itself link against libjvm
+# and libjava, the latter for its exported common utilities. libjava only
+# links against libjvm. Programs' makefiles take their own responsibility for
+# adding other libs.
+#
+# The makefiles for these packages do not link against libjvm and libjava.
+# This list will eventually go away and each Programs' makefiles
+# will have to explicitly declare that they want to link to libjava/libjvm
+#
+NO_JAVALIB_PKGS = \
+		sun.security.mscapi \
+		sun.security.krb5 \
+		sun.security.pkcs11 \
+		sun.security.jgss \
+		sun.security.jgss.wrapper \
+		sun.security.ec \
+		sun.security.smartcardio \
+		com.sun.security.auth.module
+
+ifdef PACKAGE
+# put JAVALIB first, but do not lose any platform specific values....
+  ifeq (,$(findstring $(PACKAGE),$(NO_JAVALIB_PKGS)))
+    LDLIBS_COMMON = $(JAVALIB)
+  endif
+endif # PACKAGE
+
+#
+# Libraries that must appear ahead of libc.so on the link command line
+#
+ifdef PROGRAM
+
+  ifeq ($(PLATFORM), solaris)
+    LDLIBS_COMMON = -lthread -ldl
+  endif
+
+  ifeq ($(PLATFORM), linux)
+    LDLIBS_COMMON = -ldl
+  endif
+
+  ifeq ($(PLATFORM), macosx)
+    LDLIBS_COMMON = -pthread
+  endif
+
+endif # PROGRAM
+
+LDLIBS_COMMON += $(EXTRA_LIBS)
+
+# for generated binaries
+BINDIR              = $(OUTPUTDIR)/bin$(ISA_DIR)
+# for generated libraries
+LIBDIR              = $(OUTPUTDIR)/lib
+ABS_LIBDIR          = $(ABS_OUTPUTDIR)/lib
+# Optional place to save the windows .lib files
+LIBFILES_DIR        = $(OUTPUTDIR)/libfiles
+# for ext jre files
+EXTDIR              = $(LIBDIR)/ext
+# for generated include files
+INCLUDEDIR          = $(OUTPUTDIR)/include
+# for generated class files
+CLASSBINDIR         = $(OUTPUTDIR)/classes
+DEMOCLASSDIR        = $(OUTPUTDIR)/democlasses
+# for generated tool class files
+BUILDTOOLCLASSDIR   = $(OUTPUTDIR)/btclasses
+# for build tool jar files
+BUILDTOOLJARDIR     = $(OUTPUTDIR)/btjars
+ABS_BUILDTOOLJARDIR = $(ABS_OUTPUTDIR)/btjars
+# for generated tool class files
+BUILDTOOLBINDIR     = $(OUTPUTDIR)/btbins
+# for generated java source files
+GENSRCDIR           = $(OUTPUTDIR)/gensrc
+# for generated C source files (not javah)
+GENNATIVESRCDIR     = $(OUTPUTDIR)/gennativesrc
+# for imported source files
+IMPORTSRCDIR        = $(OUTPUTDIR)/impsrc
+# for imported documents
+IMPORTDOCDIR        = $(OUTPUTDIR)/impdoc
+# for generated demo
+DEMODIR             = $(OUTPUTDIR)/demo
+NEWDEMODIR	    = $(OUTPUTDIR)/newdemo
+# for sample code
+SAMPLEDIR           = $(OUTPUTDIR)/sample
+# for generated documentation
+DOCSDIR             = $(OUTPUTDIR)/docs$(DOCSDIRSUFFIX)
+DOCSDIRSUFFIX       =
+
+# The MESSAGE, WARNING and ERROR files are used to store sanityck and 
+# warnings and errors. 
+ifndef ERROR_FILE
+  ERROR_FILE   = $(OUTPUTDIR)/sanityCheckErrors.txt
+endif
+ifndef WARNING_FILE
+  WARNING_FILE = $(OUTPUTDIR)/sanityCheckWarnings.txt
+endif
+ifndef MESSAGE_FILE
+  MESSAGE_FILE = $(OUTPUTDIR)/sanityCheckMessages.txt
+endif
+
+#where the demo source can be found
+DEMOSRCDIR          = $(SHARE_SRC)/demo
+
+#where the sample source can be found
+SAMPLESRCDIR          = $(SHARE_SRC)/sample
+
+# An attempt is made to generate unique enough directories for the
+# generated files to not have name collisisons. Most build units
+# defines PRODUCT (except Release.gmk), but then they may or may 
+# not define PACKAGE, PROGRAM, and LIBRARY. This code attempts to
+# generate a unique OBJDIR/CLASSHDRDIR for each build unit based
+# on which of those values are set within each build unit.
+
+UNIQUE_LOCATION_STRING = tmp
+
+ifneq ($(PRODUCT),)
+  UNIQUE_LOCATION_STRING += /$(PRODUCT)
+endif
+
+ifneq ($(PACKAGE),)
+  UNIQUE_LOCATION_STRING += /$(PACKAGE)
+endif
+
+ifneq ($(PROGRAM),)
+  UNIQUE_LOCATION_STRING += /$(PROGRAM)
+endif
+
+ifneq ($(LIBRARY),)
+  ifneq ($(LIBRARY_OUTPUT),)
+    UNIQUE_LOCATION_STRING += /$(LIBRARY_OUTPUT)
+  else
+    UNIQUE_LOCATION_STRING += /$(LIBRARY)
+  endif
+endif
+
+# the use of += above makes a space separated list which we need to 
+# remove for filespecs.
+#
+NULLSTRING :=
+ONESPACE := $(NULLSTRING) # space before this comment is required.
+UNIQUE_PATH = $(subst $(ONESPACE),,$(UNIQUE_LOCATION_STRING))
+
+# TEMPDIR is a unique general purpose directory
+# need to use 'override' because GNU Make on Linux exports the wrong
+# value.
+TEMPDIR      ?= $(OUTPUTDIR)/$(UNIQUE_PATH)
+ABS_TEMPDIR  ?= $(ABS_OUTPUTDIR)/$(UNIQUE_PATH)
+
+# This must be created right away for pattern rules in Sanity.gmk to work.
+dummy1:=$(shell $(MKDIR) -p $(TEMPDIR))
+dummy2:=$(shell $(MKDIR) -p $(TEMP_DISK))
+
+# OBJDIRNAME is the name of the directory where the object code is to
+#   be placed. It's name depends on whether the data model architecture 
+#   is 32-bit or not.
+ifneq ($(ARCH_DATA_MODEL), 32)
+  OBJDIRNAME  = obj$(ARCH_DATA_MODEL)$(OBJDIRNAME_SUFFIX)
+else
+  OBJDIRNAME  = obj$(OBJDIRNAME_SUFFIX)
+endif
+OBJDIR      = $(TEMPDIR)/$(OBJDIRNAME)
+
+# CLASSHDRDIR is where the generated C Class Header files go.
+CLASSHDRDIR = $(TEMPDIR)/CClassHeaders
+
+#
+# CLASSDESTDIR can be used to specify the directory where generated classes
+# are to be placed. The default is CLASSBINDIR.
+#
+ifndef CLASSDESTDIR
+CLASSDESTDIR = $(CLASSBINDIR)
+endif
+
+INCLUDES = -I. -I$(CLASSHDRDIR) \
+	$(patsubst %,-I%,$(subst $(CLASSPATH_SEPARATOR), ,$(VPATH.h))) $(OTHER_INCLUDES)
+OTHER_CPPFLAGS += $(INCLUDES)
+
+#
+# vpaths.  These are the default locations searched for source files.
+# GNUmakefiles of individual areas often override the default settings.
+# There are no longer default vpath entries for C and assembler files
+# so we can ensure that libraries don't get their hands on JVM files.
+#
+# We define an intermediate variable for Java files because
+# we use its value later to help define $SOURCEPATH
+
+ifeq ($(PLATFORM), macosx)
+  VPATH0.java = $(subst $(ONESPACE),:,$(GENSRCDIR) $(call JavaSrcDirList,,classes))
+else
+  VPATH0.java = $(GENSRCDIR)$(CLASSPATH_SEPARATOR)$(PLATFORM_SRC)/classes$(CLASSPATH_SEPARATOR)$(SHARE_SRC)/classes
+endif
+
+ifdef OPENJDK
+  VPATH.java = $(VPATH0.java)
+else
+  #
+  # If filenames are duplicated between open/closed workspaces, prefer
+  # the closed files.
+  #
+  # Source ordering is important: some targets depend on closed files
+  # replacing open ones, and thus the closed file sources must be found
+  # before the open ones.
+  #
+  # Don't reorder without consulting the teams that depend on this behavior.
+  #
+  VPATH.java = $(CLOSED_PLATFORM_SRC)/classes$(CLASSPATH_SEPARATOR)$(CLOSED_SHARE_SRC)/classes$(CLASSPATH_SEPARATOR)$(VPATH0.java)
+endif
+vpath %.java $(VPATH.java)
+vpath %.class $(CLASSBINDIR)
+vpath %.$(OBJECT_SUFFIX) $(OBJDIR)
+
+#
+# VPATH.h is used elsewhere to generate include flags.  By default, 
+# anyone has access to the include files that the JVM area exports,
+# namely jni.h, jvm.h, and jni_utils.h, plus their platform-specific
+# relatives.
+#
+VPATH0.h =   $(PLATFORM_SRC)/javavm/export$(CLASSPATH_SEPARATOR)$(SHARE_SRC)/javavm/export
+ifdef OPENJDK
+  VPATH.h = $(VPATH0.h)
+else
+  VPATH.h = $(CLOSED_SHARE_SRC)/javavm/export$(CLASSPATH_SEPARATOR)$(VPATH0.h)
+endif
+vpath %.h   $(VPATH.h)
+
+#
+# Used in two ways: helps link against libjava.so. Also if overridden
+# determines where your shared library is installed.
+#
+ifndef LIB_LOCATION
+  LIB_LOCATION    =  $(LIBDIR)/$(LIBARCH)
+endif
+
+#
+# Java header and stub variables
+#
+CLASSHDRS     = $(patsubst %,$(CLASSHDRDIR)/%.h,$(subst .,_,$(CLASSES.export)))
+CLASSSTUBOBJS = classstubs.$(OBJECT_SUFFIX)
+STUBPREAMBLE  = $(INCLUDEDIR)/StubPreamble.h
+
+#
+# Classpath seen by javac (different from the one seen by the VM
+# running javac), and useful variables.
+#
+SOURCEPATH	= $(VPATH.java)
+PKG		= $(shell $(EXPR) $(PACKAGE) : '\([a-z]*\)')
+PKGDIR		= $(subst .,/,$(PACKAGE))
+
+#
+# The java/javac/jdk variables (JAVAC_CMD, JAVA_CMD, etc.)
+#
+include $(JDK_MAKE_SHARED_DIR)/Defs-java.gmk
+
+UNIQUE_PATH_PATTERN = $(subst /,.,$(UNIQUE_PATH))
+
+# Run MAKE $@ for a launcher:
+#   $(call make-launcher, name, mainclass, java-args, main-args)
+define make-launcher
+$(CD) $(BUILDDIR)/launchers && \
+$(MAKE) -f Makefile.launcher \
+        PROGRAM=$(strip $1) \
+        MAIN_CLASS=$(strip $2) \
+        MAIN_JAVA_ARGS="$(strip $3)" \
+        MAIN_ARGS="$(strip $4)"
+endef
+
+#
+# Convenient macros
+#
+
+# Prepare $@ target, remove old one and making sure directory exists
+define prep-target
+mkdir -p $(@D)
+rm -f $@
+endef
+
+# Simple install of $< file to $@
+define install-file
+$(prep-target)
+$(CP) $< $@
+endef
+
+define chmod-file
+$(CHMOD) $1 $@
+endef
+
+define install-sym-link
+$(LN) -s $1 $@
+endef
+
+define install-manifest-file
+$(install-file)
+endef
+
+# Cleanup rule for after debug java run (hotspot.log file is left around)
+#   (This could be an old leftover file in a read-only area, use the @- prefix)
+HOTSPOT_LOG_NAME = hotspot.log
+define java-vm-cleanup
+if [ -w $(HOTSPOT_LOG_NAME) ] ; then rm -f $(HOTSPOT_LOG_NAME); fi
+endef
+
+# Current directory
+CURRENT_DIRECTORY := $(shell $(PWD))
+
+#
+# Create BYFILE OPT and DBG settings, if CFLAGS_OPT/foobar.o is set then it is
+#    used for this file, otherwise the default settings are used.
+#
+CFLAGS_$(VARIANT)/BYFILE    = $(CFLAGS_$(VARIANT)/$(@F)) \
+                              $(CFLAGS_$(VARIANT)$(CFLAGS_$(VARIANT)/$(@F)))
+CXXFLAGS_$(VARIANT)/BYFILE  = $(CXXFLAGS_$(VARIANT)/$(@F)) \
+                              $(CXXFLAGS_$(VARIANT)$(CXXFLAGS_$(VARIANT)/$(@F)))
+
+#
+# Tool flags
+#
+# EXTRA_CFLAGS are used to define cross-compilation options
+#
+ASFLAGS         = $(ASFLAGS_$(VARIANT)) $(ASFLAGS_COMMON) $(OTHER_ASFLAGS)
+CFLAGS          = $(CFLAGS_$(VARIANT)/BYFILE)   $(CFLAGS_COMMON) $(OTHER_CFLAGS) $(EXTRA_CFLAGS)
+CXXFLAGS        = $(CXXFLAGS_$(VARIANT)/BYFILE) $(CXXFLAGS_COMMON) $(OTHER_CXXFLAGS) $(EXTRA_CFLAGS)
+CPPFLAGS        = $(CPPFLAGS_$(VARIANT)) $(CPPFLAGS_COMMON) $(OTHER_CPPFLAGS) \
+		  $(DEFINES) $(OPTIONS:%=-D%) 
+LDFLAGS         = $(LDFLAGS_$(VARIANT)) $(LDFLAGS_COMMON) $(OTHER_LDFLAGS)
+LDLIBS          = $(OTHER_LDLIBS) $(LDLIBS_$(VARIANT)) $(LDLIBS_COMMON)
+LINTFLAGS       = $(LINTFLAGS_$(VARIANT)) $(LINTFLAGS_COMMON) \
+		  $(OTHER_LINTFLAGS)
+
+VERSION_DEFINES = -DRELEASE='"$(RELEASE)"'
+
+ifdef INSANE
+  export INSANE
+endif
+
+ifdef ALT_COPYRIGHT_YEAR
+  COPYRIGHT_YEAR = $(ALT_COPYRIGHT_YEAR)
+else
+  COPYRIGHT_YEAR := $(shell $(DATE) '+%Y')
+endif
+
+ifndef OPENJDK
+include $(JDK_TOPDIR)/make/closed/common/Defs.gmk
+endif
+
+# Install of imported file (JDK_IMPORT_PATH, or some other external location)
+define install-importonly-file
+@$(ECHO) "ASSEMBLY_IMPORT: $@"
+$(prep-target)
+$(CP) $< $@
+@if [ "$(PLATFORM)" = "linux" -a "$(@F)" = "libjvm.so" ] ; then     \
+  if [ -x /usr/sbin/selinuxenabled ] ; then                         \
+    /usr/sbin/selinuxenabled;                                       \
+    if [ $$? = 0 ] ; then                                           \
+      $(ECHO) "/usr/bin/chcon -t textrel_shlib_t $@";               \
+      /usr/bin/chcon -t textrel_shlib_t $@;                         \
+      if [ $$? != 0 ]; then                                         \
+        echo "ERROR: Cannot chcon $@";                              \
+      fi;                                                           \
+    fi;                                                             \
+  fi;                                                               \
+fi
+endef
+
+define install-import-file
+$(install-importonly-file)
+endef
+
+.PHONY: all build clean clobber
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/common/Demo.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,415 @@
+#
+# Copyright (c) 2004, 2011, 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.
+#
+
+COMPILE.c = $(CC) $(CFLAGS) $(CPPFLAGS) -c
+COMPILE.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c
+LINK.c = $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) 
+LINK.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) 
+
+# JDK Demo building jar file.
+  
+# Some names are defined with LIBRARY inside the Defs.gmk file
+LIBRARY=$(DEMONAME)
+OBJDIR=$(TEMPDIR)/$(DEMONAME)
+
+# Input:
+#    DEMONAME           - name of the demo
+#    DEMO_ROOT          - path to root of all demo files
+#    DEMO_DESTDIR       - path to final demo destination directory
+#
+# Optional Input:
+#    DEMO_SRCDIR        - path to source if different from DEMO_ROOT
+#    DEMO_PSRCDIR       - path to additional platform specific source
+#    DEMO_PKGDIR        - sub directory of sources we want
+#    DEMO_TOPFILES      - names of top-level files relative to DEMO_ROOT
+#    DEMO_MAINCLASS     - name of the main class for the jar manifest
+#    DEMO_NATIVECLASS   - name of the class with native methods
+#    DEMO_DESCRIPTOR    - name of service file for jar (relative to DEMO_SRCDIR)
+#    DEMO_EXTRA_SRCDIR  - path to directory that holds extra sources to add
+#    DEMO_EXTRA_FILES   - extra sources relative to DEMO_EXTRA_SRCDIR
+#    DEMO_OBJECTS       - extra native object files needed
+#    DEMO_MANIFEST_ATTR - extra line to add to the jar manifest file
+
+# Assume the source directory is the root directory if not set
+ifndef DEMO_SRCDIR
+  DEMO_SRCDIR = $(DEMO_ROOT)
+endif
+ifndef DEMO_PKGDIR
+  DEMO_PKGDIR = .
+endif
+
+# Some demos have special needs
+ifneq ($(DEMONAME),agent_util)
+  DEMO_NEEDS_AGENT_UTIL    = $(findstring agent_util,$(DEMO_OBJECTS))
+endif
+ifneq ($(DEMONAME),java_crw_demo)
+  DEMO_NEEDS_JAVA_CRW_DEMO = $(findstring java_crw_demo,$(DEMO_OBJECTS))
+endif
+ifeq ($(DEMONAME),hprof)
+  DEMO_NEEDS_NPT           = true
+endif
+
+# Place to hold the build area (kind of a temp area)
+DEMO_BUILD_AREA     = $(DEMOCLASSDIR)/$(PRODUCT)/$(DEMONAME)
+
+# Destination "src" directory
+DEMO_BUILD_SRCDIR     = $(DEMO_BUILD_AREA)/src
+
+ifndef DEMO_SKIP_SRCZIP
+  DEMO_BUILD_SRCZIP     = $(DEMO_BUILD_AREA)/src.zip
+  DEMO_SOURCE_ZIP       = $(DEMO_DESTDIR)/src.zip
+endif
+
+# Place to hold the jar image we are creating
+DEMO_JAR_IMAGE      = $(DEMO_BUILD_AREA)/jar_image
+
+# The jar manifest file we will create and use
+DEMO_MANIFEST       = $(DEMO_BUILD_AREA)/manifest.mf
+
+# The list of source files or options we will supply to javac
+DEMO_JAVAC_INPUT    = $(DEMO_BUILD_AREA)/javac_input.txt
+
+# Any name of javah file
+DEMO_JAVAH_FILE = $(DEMO_NATIVECLASS:%=$(DEMO_BUILD_SRCDIR)/%.h)
+
+# Get complete list of files for this demo
+ifdef DEMO_PSRCDIR
+  DEMO_ALL_FILES2  := $(shell ( $(CD) $(DEMO_PSRCDIR) \
+    && $(FIND) $(DEMO_PKGDIR) $(SCM_DIRS_prune) -o -type f -print ) \
+    | $(SED) 's@^\./@@' )
+  DEMO_ALL_FILES   += $(DEMO_ALL_FILES2)
+endif
+ifdef DEMO_EXTRA_SRCDIR
+  DEMO_ALL_FILES   += $(DEMO_EXTRA_FILES)
+endif
+DEMO_ALL_FILES1    := $(shell ( $(CD) $(DEMO_SRCDIR) \
+  && $(FIND) $(DEMO_PKGDIR) $(SCM_DIRS_prune) -o -type f -print ) \
+  | $(SED) 's@^\./@@' )
+DEMO_ALL_FILES      += $(DEMO_ALL_FILES1)
+
+# Just the java sources
+DEMO_JAVA_SOURCES = $(filter %.java,$(DEMO_ALL_FILES))
+
+# Just the C and C++ sources
+DEMO_C_SRC_FILES   = $(filter %.c,$(DEMO_ALL_FILES))
+DEMO_CPP_SRC_FILES = $(filter %.cpp,$(DEMO_ALL_FILES))
+
+# All the native source files
+DEMO_ALL_NATIVE_SOURCES  = $(DEMO_C_SRC_FILES)
+DEMO_ALL_NATIVE_SOURCES += $(DEMO_CPP_SRC_FILES)
+DEMO_ALL_NATIVE_SOURCES += $(filter %.h,$(DEMO_ALL_FILES))
+DEMO_ALL_NATIVE_SOURCES += $(filter %.hpp,$(DEMO_ALL_FILES))
+
+# If we have java sources, then define the jar file we will create
+ifndef DEMO_JAR_NAME
+  DEMO_JAR_NAME = $(DEMONAME).jar
+endif
+ifneq ($(strip $(DEMO_JAVA_SOURCES)),)
+  DEMO_JAR            = $(DEMO_DESTDIR)/$(DEMO_JAR_NAME)
+endif
+
+# If we have native sources, define the native library we will create
+ifneq ($(strip $(DEMO_ALL_NATIVE_SOURCES)),)
+  # Path to native library we will create
+  DEMO_LIBRARY = \
+      $(DEMO_DESTDIR)/lib$(ISA_DIR)/$(LIB_PREFIX)$(DEMONAME).$(LIBRARY_SUFFIX)
+  # C and C++ compiler flags we need to add to standard flags
+  DEMO_CPPFLAGS     += -I$(DEMO_BUILD_SRCDIR)
+  # If the npt library is used we need to find the npt.h file
+  ifneq ($(DEMO_NEEDS_NPT),)
+    # The npt library is delivered as part of the JRE
+    DEMO_CPPFLAGS   += -I$(SHARE_SRC)/npt -I$(PLATFORM_SRC)/npt
+  endif
+  # Is the shared agent_util code needed
+  ifneq ($(DEMO_NEEDS_AGENT_UTIL),)
+    DEMO_FULL_SOURCES  += $(DEMO_BUILD_SRCDIR)/agent_util.c
+    DEMO_FULL_SOURCES  += $(DEMO_BUILD_SRCDIR)/agent_util.h
+  endif
+  # Is the shared java_crw_demo code needed
+  ifneq ($(DEMO_NEEDS_JAVA_CRW_DEMO),)
+    DEMO_FULL_SOURCES  += $(DEMO_BUILD_SRCDIR)/java_crw_demo.c
+    DEMO_FULL_SOURCES  += $(DEMO_BUILD_SRCDIR)/java_crw_demo.h
+  endif
+  # All the native object files we need to build the library
+  DEMO_OBJECTS += $(DEMO_C_SRC_FILES:%.c=%.$(OBJECT_SUFFIX)) \
+                  $(DEMO_CPP_SRC_FILES:%.cpp=%.$(OBJECT_SUFFIX))
+  # Linking is special depending on whether we had C++ code or on windows
+  DEMO_NEEDS_CPP = $(strip $(DEMO_CPP_SRC_FILES))
+  CPPFLAGS      += $(DEMO_CPPFLAGS)
+  ifeq ($(PLATFORM),windows)
+    # Note: This is a link with cl.exe, not link.exe, options differ quite
+    #       bit between them.
+    LINK.demo   = $(LINK.c)
+    LDLIBS.demo = $(EXTRA_LIBS) $(LFLAGS_$(COMPILER_VERSION))
+    DEMO_VERSION_INFO = $(OBJDIR)/$(LIBRARY).res
+    LDLIBS.demo += $(DEMO_VERSION_INFO)
+  else
+    ifneq ($(DEMO_NEEDS_CPP),)
+      LINK.demo   = $(LINK.cpp)
+      LDLIBS.demo = $(LIBCXX)
+      ifeq ($(PLATFORM),solaris)
+        LDLIBS.demo += -lc
+      endif
+    else
+      LINK.demo   = $(LINK.c)
+      LDLIBS.demo = $(LDLIBS)
+    endif
+  endif
+endif
+
+# Files that are considered resources (need to be in the jar file)
+DEMO_RESOURCES        += $(filter-out %.java,$(DEMO_ALL_FILES))
+
+# All destination files (top level readme files and all sources)
+#   Note: We exclude the topfiles from the src tree.
+DEMO_DEST_TOPFILES     = $(DEMO_TOPFILES:%=$(DEMO_DESTDIR)/%)
+DEMO_FILTERED_SOURCES  = $(filter-out $(DEMO_TOPFILES),$(DEMO_ALL_FILES))
+DEMO_FULL_SOURCES     += $(DEMO_FILTERED_SOURCES:%=$(DEMO_BUILD_SRCDIR)/%)
+
+# Default rule
+all: build demo_info
+
+# Used to populate the destination directories
+$(DEMO_DESTDIR)/%: $(DEMO_ROOT)/%
+	$(install-file)
+ifneq ($(DEMO_SRCDIR),$(DEMO_ROOT))
+$(DEMO_DESTDIR)/%: $(DEMO_SRCDIR)/%
+	$(install-file)
+endif
+$(DEMO_BUILD_SRCDIR)/%: $(DEMO_SRCDIR)/%
+	$(install-file)
+ifdef DEMO_PSRCDIR
+$(DEMO_BUILD_SRCDIR)/%: $(DEMO_PSRCDIR)/%
+	$(install-file)
+endif
+ifdef DEMO_EXTRA_SRCDIR
+$(DEMO_BUILD_SRCDIR)/%: $(DEMO_EXTRA_SRCDIR)/%
+	$(install-file)
+endif
+ifneq ($(DEMO_NEEDS_AGENT_UTIL),)
+$(DEMO_BUILD_SRCDIR)/%: $(DEMO_SRCDIR)/../agent_util/%
+	$(install-file)
+endif
+ifneq ($(DEMO_NEEDS_JAVA_CRW_DEMO),)
+$(DEMO_BUILD_SRCDIR)/%: $(DEMO_SRCDIR)/../java_crw_demo/%
+	$(install-file)
+endif
+
+# Jar manifest file
+MAINMANIFEST  = $(JDK_TOPDIR)/make/tools/manifest.mf
+$(DEMO_MANIFEST): $(MAINMANIFEST)
+	@$(prep-target)
+	$(SED) -e "s#@@RELEASE@@#$(RELEASE)#"           \
+               -e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" \
+               $(MAINMANIFEST) >> $@
+	$(ECHO) "Main-Class: $(DEMO_MAINCLASS)" >> $@
+ifdef DEMO_MANIFEST_ATTR
+	$(ECHO) "$(DEMO_MANIFEST_ATTR)" >> $@
+endif
+
+# Populating the jar image directory
+$(DEMO_JAR_IMAGE)/%: $(DEMO_SRCDIR)/%
+	$(install-file)
+ifdef DEMO_PSRCDIR
+$(DEMO_JAR_IMAGE)/%: $(DEMO_PSRCDIR)/%
+	$(install-file)
+endif
+ifdef DEMO_EXTRA_SRCDIR
+$(DEMO_JAR_IMAGE)/%: $(DEMO_EXTRA_SRCDIR)/%
+	$(install-file)
+endif
+ifdef DEMO_DESCRIPTOR
+$(DEMO_JAR_IMAGE)/META-INF/services/$(DEMO_DESCRIPTOR): \
+    $(DEMO_SRCDIR)/$(DEMO_DESCRIPTOR)
+	$(install-file)
+endif
+
+# If we are creating a jar file (we have java code)
+ifdef DEMO_JAR
+
+# Input file for javac
+$(DEMO_JAVAC_INPUT): $(DEMO_JAVA_SOURCES:%=$(DEMO_BUILD_SRCDIR)/%)
+	@$(prep-target)
+	@for i in $(DEMO_JAVA_SOURCES) ; do \
+	  $(ECHO) "$(DEMO_BUILD_SRCDIR)/$$i" >> $@ ; \
+	done
+
+# Jar file creation
+$(DEMO_JAR): \
+    $(DEMO_JAVAC_INPUT) \
+    $(DEMO_MANIFEST) \
+    $(DEMO_DESCRIPTOR:%=$(DEMO_JAR_IMAGE)/META-INF/services/%) \
+    $(DEMO_RESOURCES:%=$(DEMO_JAR_IMAGE)/%)
+	@$(prep-target)
+	$(MKDIR) -p $(DEMO_JAR_IMAGE)
+	$(JAVAC_CMD) -d $(DEMO_JAR_IMAGE) -sourcepath $(DEMO_BUILD_SRCDIR) \
+	    @$(DEMO_JAVAC_INPUT)
+  ifeq ($(DEMO_INCL_SRC),true)
+	$(CP) $(DEMO_JAVA_SOURCES:%=$(DEMO_BUILD_SRCDIR)/%) $(DEMO_JAR_IMAGE)
+  endif
+  ifeq ($(DEMO_ONLY_SRC),true)
+	$(RM) -r $(DEMO_JAR_IMAGE)
+	$(MKDIR) -p $(DEMO_JAR_IMAGE)
+	$(CP) -r $(DEMO_BUILD_SRCDIR)/* $(DEMO_JAR_IMAGE)
+    ifneq ($(DEMO_TOPFILES),)
+	$(CP) $(DEMO_ROOT)/$(DEMO_TOPFILES) $(DEMO_JAR_IMAGE)
+    endif
+  endif
+	$(BOOT_JAR_CMD) -cfm $@ $(DEMO_MANIFEST) \
+	     -C $(DEMO_JAR_IMAGE) . \
+	     $(BOOT_JAR_JFLAGS)
+	@$(java-vm-cleanup)
+
+endif
+
+ifndef DEMO_SKIP_SRCZIP
+  # Create a src.zip file
+  $(DEMO_BUILD_SRCZIP): $(DEMO_FULL_SOURCES)
+	@$(prep-target)
+	$(CD) $(DEMO_BUILD_AREA)/src && $(ZIPEXE) -q -r ../$(@F) .
+
+  # Install the destination src.zip file and create the src tree
+  $(DEMO_SOURCE_ZIP): $(DEMO_BUILD_SRCZIP)
+	$(install-file)
+endif
+
+ifeq ($(PLATFORM),windows)
+# JDK name required here
+RC_FLAGS += /D "JDK_FNAME=$(LIBRARY).dll" \
+            /D "JDK_INTERNAL_NAME=$(LIBRARY)" \
+            /D "JDK_FTYPE=0x2L"
+endif
+
+# Native library building
+ifdef DEMO_LIBRARY
+
+  # Full paths to object files
+  DEMO_FULL_OBJECTS = $(DEMO_OBJECTS:%=$(OBJDIR)/%)
+  VPATH=
+
+# Native compile rules
+$(OBJDIR)/%.$(OBJECT_SUFFIX): $(DEMO_BUILD_SRCDIR)/%.c
+	@$(prep-target)
+	$(COMPILE.c) $(CC_OBJECT_OUTPUT_FLAG)$@ $<
+  ifneq ($(DEMO_NEEDS_CPP),)
+$(OBJDIR)/%.$(OBJECT_SUFFIX): $(DEMO_BUILD_SRCDIR)/%.cpp
+	@$(prep-target)
+	$(COMPILE.cpp) $(CC_OBJECT_OUTPUT_FLAG)$@ $<
+  endif
+
+  # Actual creation of the native shared library (C++ and C are different)
+$(DEMO_LIBRARY): $(DEMO_FULL_OBJECTS)
+	@$(prep-target)
+  ifeq ($(PLATFORM),windows)
+	$(RC) $(RC_FLAGS) $(CC_OBJECT_OUTPUT_FLAG)$(DEMO_VERSION_INFO) $(VERSIONINFO_RESOURCE)
+	$(LINK.demo) $(SHARED_LIBRARY_FLAG) -Fe$@ \
+	    $(DEMO_FULL_OBJECTS) $(LDLIBS.demo)
+  else
+	$(LINK.demo) $(SHARED_LIBRARY_FLAG) -o $@ \
+	    $(DEMO_FULL_OBJECTS) $(LDLIBS.demo)
+  endif
+	@$(call binary_file_verification,$@)
+
+  # Generation of any javah include file, make sure objects are dependent on it
+  ifdef DEMO_NATIVECLASS
+$(DEMO_JAVAH_FILE): $(DEMO_JAR)
+	@$(prep-target)
+	$(JAVAH_CMD) -d $(DEMO_BUILD_SRCDIR) -classpath $(DEMO_JAR) \
+	    $(DEMO_NATIVECLASS)
+	@$(java-vm-cleanup)
+$(DEMO_FULL_OBJECTS): $(DEMO_JAVAH_FILE)
+  endif
+
+endif
+
+# Build involves populating the destination "src" tree, building the jar and
+#     native library, and creating a source bundle
+
+sources:  $(DEMO_FULL_SOURCES)
+	@$(ECHO) "Created $@"
+
+objects: 
+	@$(ECHO) "Created $@"
+
+# Why the nested make here? It only works this way, don't know why.
+bundles: $(DEMO_BUILD_SRCZIP)
+	$(RM) -r $(DEMO_DESTDIR)
+	$(MKDIR) -p $(DEMO_DESTDIR)
+	$(MAKE) $(DEMO_LIBRARY) $(DEMO_JAR) $(DEMO_SOURCE_ZIP) $(DEMO_DEST_TOPFILES)
+# Applets are special, no jar file, no src.zip, everything expanded.
+ifdef DEMO_IS_APPLET
+	@$(ECHO) "Expanding jar file into demos area at $(DEMO_DESTDIR)"
+	( $(CD) $(DEMO_DESTDIR) && \
+	  $(BOOT_JAR_CMD) -xfv $(DEMO_JAR_NAME) \
+	     $(BOOT_JAR_JFLAGS) && \
+	  $(RM) -r META-INF $(DEMO_JAR_NAME) && \
+	  $(java-vm-cleanup) )
+	@( $(CD) $(DEMO_DESTDIR) && $(java-vm-cleanup) )
+	@$(ECHO) "Expanding source into demos area at $(DEMO_DESTDIR)"
+	( $(CD) $(DEMO_DESTDIR) && $(UNZIP) -o src.zip && $(RM) src.zip )
+endif
+
+build: sources bundles
+
+# Printing out a demo information line
+define printDemoSetting
+if [ "$2" != "" ] ; then $(PRINTF) "%-20s %s\n" "$1:" "$2"; fi
+endef
+
+# Print out the demo information
+demo_info:
+	@$(ECHO) "========================================================="
+	@$(call printDemoSetting,DEMONAME,$(DEMONAME))
+	@$(call printDemoSetting,DEMO_ROOT,$(DEMO_ROOT))
+	@$(call printDemoSetting,DEMO_SRCDIR,$(DEMO_SRCDIR))
+	@$(call printDemoSetting,DEMO_DESTDIR,$(DEMO_DESTDIR))
+	@$(call printDemoSetting,DEMO_JAR,$(DEMO_JAR))
+	@$(call printDemoSetting,DEMO_MANIFEST_ATTR,$(DEMO_MANIFEST_ATTR))
+	@$(call printDemoSetting,DEMO_PSRCDIR,$(DEMO_PSRCDIR))
+	@$(call printDemoSetting,DEMO_EXTRA_SRCDIR,$(DEMO_EXTRA_SRCDIR))
+	@$(call printDemoSetting,DEMO_EXTRA_FILES,$(DEMO_EXTRA_FILES))
+	@$(call printDemoSetting,DEMO_TOPFILES,$(DEMO_TOPFILES))
+	@$(call printDemoSetting,DEMO_MAINCLASS,$(DEMO_MAINCLASS))
+	@$(call printDemoSetting,DEMO_DESCRIPTOR,$(DEMO_DESCRIPTOR))
+	@$(call printDemoSetting,DEMO_NATIVECLASS,$(DEMO_NATIVECLASS))
+	@$(call printDemoSetting,DEMO_LIBRARY,$(DEMO_LIBRARY))
+	@$(call printDemoSetting,DEMO_OBJECTS,$(DEMO_OBJECTS))
+	@$(call printDemoSetting,DEMO_SOURCE_ZIP,$(DEMO_SOURCE_ZIP))
+	@$(ECHO) "========================================================="
+
+# Clean rule
+clean clobber:
+	$(RM) -r $(DEMO_BUILD_AREA)
+	$(RM) -r $(DEMO_DESTDIR)
+
+# This should not be needed, but some versions of GNU make have a bug that
+#   sometimes deleted these files  for some strange  and unknown reason 
+#   (GNU make version 3.78.1 has the problem, GNU make version 3.80 doesn't?)
+.PRECIOUS: $(DEMO_FULL_SOURCES) $(DEMO_BUILD_SRCZIP) $(DEMO_SOURCE_ZIP)
+
+# List phony targets
+.PHONY: all build clean clobber demo_info \
+	sources bundles
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/common/Library.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,326 @@
+#
+# Copyright (c) 1995, 2011, 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.
+#
+
+#
+# Generic makefile for building shared libraries.
+#
+
+# WARNING: This file is shared with other workspaces.
+#          So when it includes other files, it must use JDK_TOPDIR.
+#
+
+include $(JDK_TOPDIR)/makefiles/common/Classes.gmk
+
+#
+# It is important to define these *after* including Classes.gmk
+# in order to override the values defined inthat makefile.
+#
+
+ifeq ($(LIBRARY), fdlibm)
+ifeq ($(PLATFORM),windows)
+ACTUAL_LIBRARY_NAME = $(LIB_PREFIX)$(LIBRARY).$(FDDLIBM_SUFFIX)
+ACTUAL_LIBRARY_DIR = $(OBJDIR)
+else # PLATFORM
+ACTUAL_LIBRARY_NAME = $(LIB_PREFIX)$(LIBRARY).$(ARCH).$(FDDLIBM_SUFFIX)
+ACTUAL_LIBRARY_DIR = $(OBJDIR)
+endif #PLATFORM
+else # LIBRARY
+ACTUAL_LIBRARY_NAME = $(LIB_PREFIX)$(LIBRARY).$(LIBRARY_SUFFIX)
+ACTUAL_LIBRARY_DIR = $(LIB_LOCATION)
+endif
+ACTUAL_LIBRARY = $(ACTUAL_LIBRARY_DIR)/$(ACTUAL_LIBRARY_NAME)
+
+library:: $(ACTUAL_LIBRARY)
+
+FILES_o   = $(patsubst %.c,   %.$(OBJECT_SUFFIX), $(addprefix $(OBJDIR)/, $(notdir $(FILES_c))))
+FILES_o  += $(patsubst %.s,   %.$(OBJECT_SUFFIX), $(addprefix $(OBJDIR)/, $(notdir $(FILES_s))))
+FILES_o  += $(patsubst %.cpp, %.$(OBJECT_SUFFIX), $(addprefix $(OBJDIR)/, $(notdir $(FILES_cpp))))
+
+ifeq ($(PLATFORM), macosx)
+FILES_o  += $(patsubst %.m,   %.$(OBJECT_SUFFIX), $(addprefix $(OBJDIR)/, $(notdir $(FILES_objc))))
+FILES_o  += $(patsubst %.mm,  %.$(OBJECT_SUFFIX), $(addprefix $(OBJDIR)/, $(notdir $(FILES_objcpp))))
+
+INCREMENTAL_BUILD=false
+
+endif # PLATFORM
+
+ifeq ($(INCREMENTAL_BUILD),true)
+FILES_d   = $(patsubst %.c,   %.$(DEPEND_SUFFIX), $(addprefix $(OBJDIR)/, $(notdir $(FILES_c))))
+FILES_d  += $(patsubst %.cpp, %.$(DEPEND_SUFFIX), $(addprefix $(OBJDIR)/, $(notdir $(FILES_cpp))))
+endif # INCREMENTAL_BUILD
+
+ifeq ($(PLATFORM),solaris)
+# List of all lint files, one for each .c file (only for C)
+FILES_ln   = $(patsubst %.c,   %.$(LINT_SUFFIX), $(addprefix $(OBJDIR)/, $(notdir $(FILES_c))))
+endif
+
+LINK.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) 
+LINK.c = $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) 
+
+#
+# C++ libraries must be linked with CC.
+#
+ifdef CPLUSPLUSLIBRARY
+LINKER=$(LINK.cc)
+else
+LINKER=$(LINK.c)
+endif
+
+$(ACTUAL_LIBRARY):: $(INIT) $(TEMPDIR) $(LIBDIR) $(BINDIR) $(EXTDIR) classheaders
+	@$(ECHO) Building lib:$(ACTUAL_LIBRARY) 
+#
+# COMPILE_APPROACH: Different approaches to compile up the native object
+#   files as quickly as possible.
+#   The setting of parallel works best on Unix, batch on Windows.
+#
+
+COMPILE_FILES_o = $(OBJDIR)/.files_compiled
+$(COMPILE_FILES_o): $(FILES_d) $(FILES_o)
+	@$(ECHO) "$<" >> $@
+clean::
+	$(RM) $(COMPILE_FILES_o)
+
+#
+# COMPILE_APPROACH=parallel: Will trigger compilations (just compilations) to
+#   happen in parallel. Greatly decreases Unix build time, even on single CPU
+#   machines, more so on multiple CPU machines. Default is 2 compiles
+#   at a time, but can be adjusted with ALT_PARALLEL_COMPILE_JOBS.
+#   Note that each .d file will also be dependent on it's .o file, see
+#   Rules.gmk.
+#   Note this does not depend on Rules.gmk to work like batch (below)
+#   and this technique doesn't seem to help Windows build time nor does
+#   it work very well, it's possible the Windows Visual Studio compilers
+#   don't work well in a parallel situation, this needs investigation.
+#
+
+ifeq ($(COMPILE_APPROACH),parallel)
+
+.PHONY: library_parallel_compile
+
+library_parallel_compile:
+	@$(ECHO) "Begin parallel compiles: $(shell $(PWD))"
+	$(MAKE) -j $(PARALLEL_COMPILE_JOBS) $(COMPILE_FILES_o)
+	@$(ECHO) "Done with parallel compiles: $(shell $(PWD))"
+
+$(ACTUAL_LIBRARY):: library_parallel_compile
+
+endif
+
+#
+# COMPILE_APPROACH=batch: Will trigger compilations (just compilations) to
+#   happen in batch mode. Greatly decreases Windows build time.
+#   See logic in Rules.gmk for how compiles happen, the $(MAKE) in
+#   library_batch_compile below triggers the actions in Rules.gmk.
+#   Note that each .d file will also be dependent on it's .o file, see
+#   Rules.gmk.
+#
+ifeq ($(COMPILE_APPROACH),batch)
+
+.PHONY: library_batch_compile
+
+library_batch_compile:
+	@$(ECHO) "Begin BATCH compiles: $(shell $(PWD))"
+	$(MAKE) $(COMPILE_FILES_o)
+	$(MAKE) batch_compile
+	@$(ECHO) "Done with BATCH compiles: $(shell $(PWD))"
+	$(MAKE) COMPILE_APPROACH=normal $(COMPILE_FILES_o)
+
+$(ACTUAL_LIBRARY):: library_batch_compile
+
+endif
+
+ifeq ($(PLATFORM), windows)
+
+#
+# Library building rules.
+#
+
+$(LIBRARY).lib:: $(OBJDIR)
+
+ifeq ($(LIBRARY), fdlibm)
+$(ACTUAL_LIBRARY):: $(OBJDIR)/$(LIBRARY).lib
+
+$(OBJDIR)/$(LIBRARY).lib:: $(OBJDIR)/$(LIBRARY).lcf
+	@$(prep-target)
+	$(AR) -NODEFAULTLIB:MSVCRT -out:$@ -nologo \
+		@$(OBJDIR)/$(LIBRARY).lcf $(OTHER_LCF) $(LDLIBS_COMMON)
+else # LIBRARY
+# build it into $(OBJDIR) so that the other generated files get put 
+# there, then copy just the DLL (and MAP file) to the requested directory.
+#
+$(ACTUAL_LIBRARY):: $(OBJDIR)/$(LIBRARY).lcf
+	@$(prep-target)
+	@$(MKDIR) -p $(OBJDIR)
+	$(LD) -dll -out:$(OBJDIR)/$(@F) \
+	  -map:$(OBJDIR)/$(LIBRARY).map \
+	  $(LFLAGS) @$(OBJDIR)/$(LIBRARY).lcf \
+	  $(OTHER_LCF) $(LDLIBS)
+	$(CP) $(OBJDIR)/$(@F) $@
+	@$(call binary_file_verification,$@)
+	$(CP) $(OBJDIR)/$(LIBRARY).map $(@D)
+	$(CP) $(OBJDIR)/$(LIBRARY).pdb $(@D)
+
+endif # LIBRARY
+
+$(OBJDIR)/$(LIBRARY).lcf: $(OBJDIR)/$(LIBRARY).res $(COMPILE_FILES_o) $(FILES_m)
+	@$(prep-target)
+	@$(MKDIR) -p $(TEMPDIR)
+	@$(ECHO) $(FILES_o) > $@ 
+ifndef LOCAL_RESOURCE_FILE
+	@$(ECHO) $(OBJDIR)/$(LIBRARY).res >> $@
+endif
+	@$(ECHO) Created $@ 
+
+# JDK name required here
+RC_FLAGS += /D "JDK_FNAME=$(LIBRARY).dll" \
+            /D "JDK_INTERNAL_NAME=$(LIBRARY)" \
+            /D "JDK_FTYPE=0x2L"
+
+$(OBJDIR)/$(LIBRARY).res: $(VERSIONINFO_RESOURCE)
+ifndef LOCAL_RESOURCE_FILE
+	@$(prep-target)
+	$(RC) $(RC_FLAGS) $(CC_OBJECT_OUTPUT_FLAG)$(@) $(VERSIONINFO_RESOURCE)
+endif
+
+#
+# Install a .lib file if required.
+#
+ifeq ($(INSTALL_DOT_LIB), true)
+$(ACTUAL_LIBRARY):: $(LIBDIR)/$(LIBRARY).lib
+
+clean:: 
+	-$(RM) $(LIBDIR)/$(LIBRARY).lib
+
+$(LIBDIR)/$(LIBRARY).lib:: $(OBJDIR)/$(LIBRARY).lib
+	$(install-file)
+
+$(LIBDIR)/$(LIBRARY).dll:: $(OBJDIR)/$(LIBRARY).dll
+	$(install-file)
+
+endif # INSTALL_DOT_LIB
+
+else # PLATFORM
+
+#
+# On Solaris, use mcs to write the version into the comment section of
+# the shared library.  On other platforms set this to false at the
+# make command line.
+#
+
+ifneq ($(PLATFORM), macosx)
+  ARFLAGS = -r
+endif
+
+$(ACTUAL_LIBRARY):: $(COMPILE_FILES_o) $(FILES_m) $(FILES_reorder)
+	@$(prep-target)
+	@$(ECHO) "STATS: LIBRARY=$(LIBRARY), PRODUCT=$(PRODUCT), OPTIMIZATION_LEVEL=$(OPTIMIZATION_LEVEL)"
+	@$(ECHO) "Rebuilding $@ because of $?"
+ifeq ($(LIBRARY), fdlibm)
+	$(AR) $(ARFLAGS) $@ $(FILES_o)
+else # LIBRARY
+	$(LINKER) $(SHARED_LIBRARY_FLAG) -o $@ $(FILES_o) $(LDLIBS)
+	@$(call binary_file_verification,$@)
+ifeq ($(WRITE_LIBVERSION),true)
+	$(MCS) -d -a "$(FULL_VERSION)" $@
+endif # WRITE_LIBVERSION
+endif # LIBRARY
+
+endif # PLATFORM
+
+#
+# Cross check all linted files against each other
+#
+ifeq ($(PLATFORM),solaris)
+lint.errors : $(FILES_ln)
+	$(LINT.c) $(FILES_ln) $(LDLIBS) 
+endif
+
+#
+# Class libraries with JNI native methods get a include to the package.
+#
+ifdef PACKAGE
+vpath %.c $(PLATFORM_SRC)/native/$(PKGDIR)
+vpath %.c $(SHARE_SRC)/native/$(PKGDIR)
+OTHER_INCLUDES += -I$(SHARE_SRC)/native/common -I$(PLATFORM_SRC)/native/common
+OTHER_INCLUDES += -I$(SHARE_SRC)/native/$(PKGDIR) \
+		  -I$(PLATFORM_SRC)/native/$(PKGDIR)
+endif
+
+#
+# Clean/clobber rules
+#
+clean::
+	$(RM) -r $(ACTUAL_LIBRARY)
+
+clobber:: clean
+
+#
+# INCREMENTAL_BUILD means that this workspace will be built over and over
+#   possibly incrementally. This means tracking the object file dependencies
+#   on include files so that sources get re-compiled when the include files
+#   change. When building from scratch and doing a one time build (like
+#   release engineering or nightly builds) set INCREMENTAL_BUILD=false.
+#
+
+ifeq ($(INCREMENTAL_BUILD),true)
+
+#
+# Workaround: gnumake sometimes says files is empty when it shouldn't
+#    was:  files := $(foreach file, $(wildcard $(OBJDIR)/*.$(DEPEND_SUFFIX)), $(file))
+#
+files := $(shell $(LS) $(OBJDIR)/*.$(DEPEND_SUFFIX) 2>/dev/null)
+
+#
+# Only include these files if we have any.
+#
+ifneq ($(strip $(files)),)
+
+include $(files)
+
+endif # files
+
+endif # INCREMENTAL_BUILD
+
+#
+# Default dependencies
+#
+
+all: build
+
+build: library
+
+debug:
+	$(MAKE) VARIANT=DBG build
+
+fastdebug:
+	$(MAKE) VARIANT=DBG FASTDEBUG=true build
+
+openjdk:
+	$(MAKE) OPENJDK=true build
+
+FORCE:
+
+.PHONY: all build debug fastdebug
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/common/Mapfile-vers.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,97 @@
+#
+# Copyright (c) 1998, 2005, 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.
+#
+
+#
+# Makefile for linking with mapfiles.
+#
+# NOTE: Not using a mapfile will expose all your extern functions and
+#	extern data symbols as part of your interface, so unless your
+#	extern names are safe from being mistaken as names from other
+#	libraries, you better use a mapfile, or use a unique naming
+#	convention on all your extern symbols.
+#
+# The mapfile will establish versioning by defining the exported interface.
+#
+# The mapfile can also force certain .o files or elf sections into the 
+#   the different segments of the resulting library/program image.
+#
+# The macro FILES_m can contain any number of mapfiles.
+#
+
+# Always make sure 'all' is the default rule
+mapfile_default_rule: all
+
+ifeq ($(PLATFORM), solaris)
+
+ifeq ($(VARIANT), OPT)
+  # OPT build MUST have a mapfile?
+  ifndef FILES_m
+    FILES_m =        mapfile-vers
+  endif
+  
+  # If we are re-ordering functions in this solaris library, we need to make
+  # sure that -xF is added to the compile lines. This option is critical and
+  # enables the functions to be reordered.
+  ifdef FILES_reorder
+    CFLAGS_OPT   += -xF
+    CXXFLAGS_OPT += -xF
+  endif
+
+INIT += $(TEMPDIR)/mapfile-vers
+
+$(TEMPDIR)/mapfile-vers : $(FILES_m) $(FILES_reorder)
+	$(prep-target)
+	$(CAT) $(FILES_m) > $@
+  ifdef FILES_reorder
+	$(SED) -e 's=OUTPUTDIR=$(OUTPUTDIR)=' $(FILES_reorder) >> $@
+  endif
+endif # VARIANT
+
+ifndef LDNOMAP
+  LDMAPFLAGS_OPT =  -M$(TEMPDIR)/mapfile-vers
+  LDMAPFLAGS_DBG =  $(FILES_m:%=-M%)
+endif
+
+endif # PLATFORM
+
+ifeq ($(PLATFORM), linux)
+
+ifeq ($(VARIANT), OPT)
+  # OPT build MUST have a mapfile?
+  ifndef FILES_m
+    FILES_m =        mapfile-vers
+  endif
+endif # VARIANT
+
+ifndef LDNOMAP
+  LDMAPFLAGS_OPT =  $(FILES_m:%=-Xlinker -version-script=%)
+  LDMAPFLAGS_DBG =  $(FILES_m:%=-Xlinker -version-script=%)
+endif
+
+endif # PLATFORM
+  
+LDFLAGS_OPT +=  $(LDMAPFLAGS_OPT)
+LDFLAGS_DBG +=  $(LDMAPFLAGS_DBG)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/common/Modules.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,479 @@
+#
+# Copyright (c) 2009, 2010, 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.
+#
+
+JDK_MODULE_IMAGE_DIR = $(ABS_OUTPUTDIR)/jdk-module-image
+JRE_MODULE_IMAGE_DIR = $(ABS_OUTPUTDIR)/jre-module-image
+
+#
+# modules   Target to build jdk and jre module image
+#
+#           There is one jar file per module containing classes only.
+#           All module jars are currently placed under jre/lib directory.
+#
+# Open issues that need further investigation:
+# 1. Classes in jre/lib/ext/dnsns.jar are currently put in jre/lib/jndi-dns
+#    module.  META-INF/services file is not installed.
+# 2. Signed jars
+#    For JDK build, signed jars are copied to the build.
+#    All jars in the module image are unsigned.
+
+MODULE_IMAGEBINDIR = bin
+
+#
+# Targets.
+#
+INITIAL_MODULE_IMAGE_JRE=initial-module-image-jre
+INITIAL_MODULE_IMAGE_JDK=initial-module-image-jdk
+ifeq ($(PLATFORM), solaris)
+  ifeq ($(ARCH_DATA_MODEL), 64)
+    INITIAL_MODULE_IMAGE_JRE=initial-module-image-jre-sol64
+    INITIAL_MODULE_IMAGE_JDK=initial-module-image-jdk-sol64
+  endif
+endif
+
+modules modules-clobber \
+initial-module-image-jre initial-module-image-jdk \
+initial-module-image-jre-sol64 initial-module-image-jdk-sol64 \
+trim-module-image-jre trim-module-image-jdk \
+process-module-image-jre process-module-image-jdk ::
+	@$(ECHO) ">>>Making "$@" @ `$(DATE)` ..."
+
+# Order is important here, trim jre after jdk image is created
+modules:: gen-modules \
+	 $(INITIAL_MODULE_IMAGE_JRE) $(INITIAL_MODULE_IMAGE_JDK) \
+	 trim-module-image-jre trim-module-image-jdk \
+	 process-module-image-jre process-module-image-jdk
+
+# Don't use these
+module-image-jre:: initial-module-image-jre trim-module-image-jre process-module-image-jre
+module-image-jdk:: initial-module-image-jdk trim-module-image-jdk process-module-image-jdk
+
+#
+# Paths to these files we need
+JDK_MODULE_LICENSES   = $(LICENSE_DOCLIST_JDK:%=$(JDK_MODULE_IMAGE_DIR)/%)
+JDK_MODULE_64_LICENSES = $(LICENSE_DOCLIST_JDK:%=$(JDK_MODULE_IMAGE_DIR)/%64)
+JDK_MODULE_DOCFILES   = $(OTHER_DOCLIST_JDK:%=$(JDK_MODULE_IMAGE_DIR)/%)
+
+JRE_MODULE_LICENSES   = $(LICENSE_DOCLIST_JRE:%=$(JRE_MODULE_IMAGE_DIR)/%)
+JRE_MODULE_64_LICENSES = $(LICENSE_DOCLIST_JRE:%=$(JRE_MODULE_IMAGE_DIR)/%64)
+JRE_MODULE_DOCFILES   = $(OTHER_DOCLIST_JRE:%=$(JRE_MODULE_IMAGE_DIR)/%)
+JRE_MODULE_DOCFILES  += $(JRE_NAMECHANGE_DOCLIST:%=$(JRE_MODULE_IMAGE_DIR)/%$(TEXT_SUFFIX))
+
+###### RULES
+
+# JDK files
+$(JDK_MODULE_IMAGE_DIR)/%: $(SHARE_JDK_DOC_SRC)/%
+	$(process-doc-file)
+# Removes LICENSE_VERSION or not
+ifdef LICENSE_VERSION
+$(JDK_MODULE_IMAGE_DIR)/%: $(SHARE_JDK_DOC_SRC)/%$(LICENSE_VERSION)
+	$(process-doc-file)
+$(JDK_MODULE_IMAGE_DIR)/%64: $(SHARE_JDK_DOC_SRC)/%$(LICENSE_VERSION)
+	$(process-doc-file)
+else
+$(JDK_MODULE_IMAGE_DIR)/%64: $(SHARE_JDK_DOC_SRC)/%
+	$(process-doc-file)
+endif
+
+# JRE files 
+$(JRE_MODULE_IMAGE_DIR)/%: $(SHARE_JRE_DOC_SRC)/%
+	$(process-doc-file)
+# Add $(TEXT_SUFFIX) suffix
+ifdef TEXT_SUFFIX
+$(JRE_MODULE_IMAGE_DIR)/%$(TEXT_SUFFIX): $(SHARE_JRE_DOC_SRC)/%
+	$(process-doc-file)
+endif
+# Removes LICENSE_VERSION or not
+ifdef LICENSE_VERSION
+$(JRE_MODULE_IMAGE_DIR)/%: $(SHARE_JRE_DOC_SRC)/%$(LICENSE_VERSION)
+	$(process-doc-file)
+$(JRE_MODULE_IMAGE_DIR)/%64: $(SHARE_JRE_DOC_SRC)/%$(LICENSE_VERSION)
+	$(process-doc-file)
+else
+$(JRE_MODULE_IMAGE_DIR)/%64: $(SHARE_JRE_DOC_SRC)/%
+	$(process-doc-file)
+endif
+
+######################################################
+# JRE Image
+######################################################
+
+MODULES_LIST = $(MODULES_TEMPDIR)/classlist/modules.list
+
+# Modules in the jre/lib/security directory
+POLICY_MODULES = US_export_policy local_policy
+
+# Modules in the modules/ext directory
+EXT_MODULES = localedata security-sunec security-sunjce
+
+# Build PKCS#11 on all platforms except 64-bit Windows.
+PKCS11 = security-sunpkcs11
+ifeq ($(ARCH_DATA_MODEL), 64)
+  ifeq ($(PLATFORM), windows)
+    PKCS11 =
+  endif
+endif
+
+EXT_MODULES += $(PKCS11)
+
+# Build Microsoft CryptoAPI provider only on (non-64-bit) Windows platform.
+ifeq ($(PLATFORM), windows)
+  ifneq ($(ARCH_DATA_MODEL), 64)
+    EXT_MODULES += security-sunmscapi
+  endif
+endif
+
+# Modules for JDK only
+JDK_MODULES = tools
+
+gen-modules:
+	$(CD) modules; $(MAKE) all
+
+initial-module-image-jre-setup:
+	$(RM) -r $(JRE_MODULE_IMAGE_DIR)
+	$(MKDIR) -p $(JRE_MODULE_IMAGE_DIR)
+
+# 64-bit solaris jre image contains only the 64-bit add-on files.
+initial-module-image-jre-sol64:: initial-module-image-jre-setup \
+			  $(JRE_MODULE_LICENSES) $(JRE_MODULE_64_LICENSES)
+	@# Use tar instead of cp to preserve the symbolic links
+	for dir in bin lib ; do \
+	  ( $(CD) $(OUTPUTDIR) && \
+		$(TAR) cf - `$(FIND) $$dir -name '$(ARCH)' -print` | \
+		($(CD) $(JRE_MODULE_IMAGE_DIR) && $(TAR) xf -) ) ; \
+	done
+	@# Remove some files from the jre area
+	for t in $(NOTJRETOOLS) ; do \
+	    $(RM) $(JRE_MODULE_IMAGE_DIR)/bin$(ISA_DIR)/$$t ; \
+	done
+	$(RM) `$(FIND) $(JRE_MODULE_IMAGE_DIR)/lib -name 'orb.idl'`
+	$(RM) `$(FIND) $(JRE_MODULE_IMAGE_DIR)/lib -name 'ir.idl'`
+
+# Construct an initial jre image (initial jdk jre) no trimming or stripping
+initial-module-image-jre:: initial-module-image-jre-setup \
+		    $(JRE_LICENSES) $(JRE_MODULE_DOCFILES) \
+		    $(BUILDMETAINDEX_JARFILE)
+	@# Copy in bin directory
+	$(CD) $(OUTPUTDIR) && $(FIND) bin -depth | $(CPIO) -pdum $(JRE_MODULE_IMAGE_DIR)
+	@# CTE plugin security change require new empty directory lib/applet
+	$(MKDIR) -p $(JRE_MODULE_IMAGE_DIR)/lib/applet
+	@# Copy files but not .jar in lib directory 
+	$(CD) $(OUTPUTDIR) && $(FIND) lib -depth | $(EGREP) -v ".jar$$" | $(CPIO) -pdum $(JRE_MODULE_IMAGE_DIR)
+	@#
+	@# copy modules to jre/lib
+	@#
+	for m in `$(NAWK) '{print $$1}' $(MODULES_LIST)` ; do \
+	    $(CP) $(MODULES_DIR)/$$m/lib/$$m.jar $(JRE_MODULE_IMAGE_DIR)/lib ; \
+	done
+	$(MKDIR) -p $(JRE_MODULE_IMAGE_DIR)/lib/ext
+	for m in $(EXT_MODULES) ; do \
+           $(MV) $(JRE_MODULE_IMAGE_DIR)/lib/$$m.jar $(JRE_MODULE_IMAGE_DIR)/lib/ext ; \
+        done
+	for m in $(POLICY_MODULES) ; do \
+           $(MV) $(JRE_MODULE_IMAGE_DIR)/lib/$$m.jar $(JRE_MODULE_IMAGE_DIR)/lib/security; \
+        done
+	@# Remove jdk modules
+	for m in $(JDK_MODULES) ; do \
+           $(RM) $(JRE_MODULE_IMAGE_DIR)/lib/$$m.jar ; \
+        done
+
+	@# Make sure all directories are read/execute for everyone
+	$(CHMOD) a+rx `$(FIND) $(JRE_MODULE_IMAGE_DIR) -type d`
+	@# Remove some files from the jre area
+	for t in $(NOTJRETOOLS) ; do \
+	    $(RM) $(JRE_MODULE_IMAGE_DIR)/bin$(ISA_DIR)/$$t ; \
+	done
+	@# Remove orb.idl and ir.idl from jre
+	$(FIND) $(JRE_MODULE_IMAGE_DIR)/lib -name 'orb.idl' -exec $(RM) \{} \;
+	$(FIND) $(JRE_MODULE_IMAGE_DIR)/lib -name 'ir.idl' -exec $(RM) \{} \;
+	@# Generate meta-index to make boot and extension class loaders lazier
+	$(CD) $(JRE_MODULE_IMAGE_DIR)/lib && \
+	    $(BOOT_JAVA_CMD) -jar $(BUILDMETAINDEX_JARFILE) \
+		-o meta-index *.jar
+	@$(CD) $(JRE_MODULE_IMAGE_DIR)/lib && $(java-vm-cleanup)
+	$(CD) $(JRE_MODULE_IMAGE_DIR)/lib/ext && \
+	    $(BOOT_JAVA_CMD) -jar $(BUILDMETAINDEX_JARFILE) \
+		-o meta-index *.jar
+	@$(CD) $(JRE_MODULE_IMAGE_DIR)/lib/ext && $(java-vm-cleanup)
+ifeq ($(PLATFORM), windows)
+	@# Remove certain *.lib files
+	$(CD) $(JRE_MODULE_IMAGE_DIR)/lib && \
+            $(RM) java.$(LIB_SUFFIX) jvm.$(LIB_SUFFIX) \
+                  hpi.$(LIB_SUFFIX) awt.$(LIB_SUFFIX) jawt.$(LIB_SUFFIX)
+  ifeq ($(ARCH_DATA_MODEL), 32)
+	@# The Java Kernel JRE image ships with a special VM.  It is not included
+	@# in the full JRE image, so remove it.  Also, is it only for 32-bit windows.
+	$(CD) $(JRE_MODULE_IMAGE_DIR)/bin && $(RM) -r kernel
+  endif
+endif # Windows
+ifneq ($(PLATFORM), windows)
+	$(call copy-man-pages,$(JRE_MODULE_IMAGE_DIR),$(JRE_MAN_PAGES))
+endif # !windows
+
+# Trim out any extra files not for the jre shipment but wanted in the jdk jre.
+#   (Note the jdk WILL want the jre image before this trimming)
+#   Removes server VM on Windows 32bit.
+#   Remove certain shared libraries that should not be in the jre image
+#      but should be in the jdk jre image.
+trim-module-image-jre::
+ifeq ($(PLATFORM), windows)
+  ifeq ($(ARCH_DATA_MODEL), 32)
+	$(RM) -r $(JRE_MODULE_IMAGE_DIR)/bin/server
+  endif
+  ifdef NOTJRE_SHARED_LIBS
+	for l in $(NOTJRE_SHARED_LIBS) ; do \
+	    $(RM) $(JRE_MODULE_IMAGE_DIR)/bin/$$l ; \
+	done ;
+  endif
+else # PLATFORM
+  ifdef NOTJRE_SHARED_LIBS
+	for l in $(NOTJRE_SHARED_LIBS) ; do \
+	    $(RM) $(JRE_MODULE_IMAGE_DIR)/lib/$(LIBARCH)/$$l ; \
+	done ;
+  endif
+endif # PLATFORM
+
+# Get list of all Elf files in the jre
+JRE_MODULE_ELF_LIST=$(MODULES_TEMPDIR)/jre-elf-files.list
+$(JRE_MODULE_ELF_LIST):
+	@$(prep-target)
+ifneq ($(PLATFORM), windows)
+	$(RM) $@
+	$(FIND) $(JRE_MODULE_IMAGE_DIR)/lib -type f -name \*.$(LIB_SUFFIX) >> $@
+	$(FILE) `$(FIND) $(JRE_MODULE_IMAGE_DIR)/bin -type f -name \*$(EXE_SUFFIX)` \
+	    | $(EGREP) 'ELF' | $(CUT) -d':' -f1 >> $@
+endif
+
+# Post process the image (strips and mcs on Elf files we are shipping)
+#   (Note the jdk WILL want the jre image before this processing)
+process-module-image-jre:: $(JRE_MODULE_ELF_LIST)
+ifneq ($(POST_STRIP_PROCESS), )
+	for f in `$(CAT) $(JRE_MODULE_ELF_LIST)`; do \
+	  $(CHMOD) u+w $${f}; \
+	  $(ECHO) $(POST_STRIP_PROCESS) $${f}; \
+	  $(POST_STRIP_PROCESS) $${f}; \
+	  $(CHMOD) go-w $${f}; \
+	done
+endif
+ifneq ($(POST_MCS_PROCESS), )
+	for f in `$(CAT) $(JRE_MODULE_ELF_LIST)`; do \
+	  $(CHMOD) u+w $${f}; \
+	  $(ECHO) $(POST_MCS_PROCESS) $${f}; \
+	  $(POST_MCS_PROCESS) $${f}; \
+	  $(CHMOD) go-w $${f}; \
+	done
+endif
+	$(RM) $(JRE_MODULE_ELF_LIST)
+
+######################################################
+# JDK Image
+######################################################
+# Note: cpio ($(CPIO)) sometimes leaves directories without rx access.
+
+initial-module-image-jdk-setup:
+	$(RM) -r $(JDK_MODULE_IMAGE_DIR)
+	$(MKDIR) -p $(JDK_MODULE_IMAGE_DIR)/jre
+	($(CD) $(JRE_MODULE_IMAGE_DIR) && $(FIND) . -depth -print \
+	      | $(CPIO) -pdum $(JDK_MODULE_IMAGE_DIR)/jre )
+	$(RM) -rf $(JDK_MODULE_IMAGE_DIR)/jre/man
+	$(CHMOD) a+rx `$(FIND) $(JDK_MODULE_IMAGE_DIR) -type d`
+
+initial-module-image-jdk64-bindemos:
+	for dir in bin demo ; do \
+	  ( $(CD) $(OUTPUTDIR) && \
+		$(TAR) cf - `$(FIND) $$dir -name '$(LIBARCH)' -print` | \
+		($(CD) $(JDK_MODULE_IMAGE_DIR) && $(TAR) xf -) ) ; \
+        done
+
+# Solaris 64 bit image is special
+initial-module-image-jdk-sol64:: initial-module-image-jdk-setup \
+			  initial-module-image-jdk64-bindemos \
+			  $(JDK_MODULE_LICENSES) $(JDK_MODULARLIZED_64_LICENSES)
+
+# DB files to add
+ifeq ($(OPENJDK),true)
+
+initial-module-image-jdk-db:
+
+else
+
+# Create the list of db *.zip files to bundle with jdk
+ABS_DB_PATH  :=$(call FullPath,$(CLOSED_SHARE_SRC)/db)
+DB_ZIP_LIST = $(shell $(LS) $(ABS_DB_PATH)/*.zip 2>/dev/null)
+
+initial-module-image-jdk-db: $(DB_ZIP_LIST)
+	$(MKDIR) -p $(JDK_MODULE_IMAGE_DIR)/db
+	for d in $(DB_ZIP_LIST); do \
+          ($(CD) $(JDK_MODULE_IMAGE_DIR)/db && $(UNZIP) -o $$d); \
+	done
+
+endif
+
+# Standard jdk image
+initial-module-image-jdk:: initial-module-image-jdk-setup \
+		    initial-module-image-jdk-db \
+		    $(JDK_MODULE_LICENSES) $(JDK_MODULE_DOCFILES)
+	$(MKDIR) $(JDK_MODULE_IMAGE_DIR)/lib
+	@#
+	@# copy jdk modules to jdk/lib
+	@#
+	$(MKDIR) -p $(JDK_MODULE_IMAGE_DIR)/lib
+	for m in $(JDK_MODULES) ; do \
+	    $(CP) $(MODULES_DIR)/$$m/lib/$$m.jar $(JDK_MODULE_IMAGE_DIR)/lib ; \
+        done
+  ifeq ($(PLATFORM), windows)
+	@#
+	@# lib/
+	@#
+	$(CP) $(LIBDIR)/$(LIB_PREFIX)jvm.$(LIB_SUFFIX) $(JDK_MODULE_IMAGE_DIR)/lib
+	$(CP) $(LIBDIR)/$(LIB_PREFIX)jawt.$(LIB_SUFFIX) $(JDK_MODULE_IMAGE_DIR)/lib
+	@#
+	@# bin/
+	@#
+	@# copy all EXE files and only certain DLL files from BINDIR
+	$(MKDIR) -p $(JDK_MODULE_IMAGE_DIR)/bin
+	$(CP) $(BINDIR)/*$(EXE_SUFFIX) $(JDK_MODULE_IMAGE_DIR)/bin
+	$(CP) $(BINDIR)/jli.$(LIBRARY_SUFFIX) $(JDK_MODULE_IMAGE_DIR)/bin
+    ifeq ($(COMPILER_VERSION), VS2010)
+	$(CP) $(BINDIR)/msvc*100.$(LIBRARY_SUFFIX) $(JDK_MODULE_IMAGE_DIR)/bin
+    endif
+    ifeq ($(ARCH_DATA_MODEL), 32)
+      ifeq ($(COMPILER_VERSION), VS2003)
+	$(CP) $(BINDIR)/msvc*71.$(LIBRARY_SUFFIX) $(JDK_MODULE_IMAGE_DIR)/bin
+      endif
+    endif
+  else # PLATFORM
+	@#
+	@# bin/
+	@#
+	($(CD) $(BINDIR)/.. && $(TAR) cf - \
+	    `$(FIND) bin \( -type f -o -type l \) -print `) | \
+	    ($(CD) $(JDK_MODULE_IMAGE_DIR) && $(TAR) xf -)
+  endif # PLATFORM
+	@#
+	@# lib/ct.sym
+	@#
+	$(MKDIR) -p $(OUTPUTDIR)/symbols/META-INF/sym
+	$(JAVAC_CMD) -XDprocess.packages -proc:only \
+	    -processor com.sun.tools.javac.sym.CreateSymbols \
+	    -Acom.sun.tools.javac.sym.Jar=$(RT_JAR) \
+	    -Acom.sun.tools.javac.sym.Dest=$(OUTPUTDIR)/symbols/META-INF/sym/rt.jar \
+	    $(CORE_PKGS) $(NON_CORE_PKGS) $(EXCLUDE_PROPWARN_PKGS)
+	$(BOOT_JAR_CMD) c0f $(LIBDIR)/ct.sym \
+	    -C $(OUTPUTDIR)/symbols META-INF $(BOOT_JAR_JFLAGS)
+	@$(java-vm-cleanup)
+	$(CP) $(LIBDIR)/ct.sym $(JDK_MODULE_IMAGE_DIR)/lib/ct.sym
+	@#
+	@# CORBA supported orb.idl and ir.idl should be copied to lib
+	@#
+	$(CP) $(LIBDIR)/orb.idl $(JDK_MODULE_IMAGE_DIR)/lib/orb.idl
+	$(CP) $(LIBDIR)/ir.idl $(JDK_MODULE_IMAGE_DIR)/lib/ir.idl
+  ifeq ($(PLATFORM), linux)
+	@#
+	@# on Linux copy jexec from jre/lib to /lib
+	@#
+	$(CP) $(LIBDIR)/jexec $(JDK_MODULE_IMAGE_DIR)/lib/jexec
+  endif # PLATFORM
+	@#
+	@# demo, include
+	@#
+	$(CP) -r -f $(DEMODIR) $(JDK_MODULE_IMAGE_DIR)
+	$(CP) -r -f $(SAMPLEDIR) $(JDK_MODULE_IMAGE_DIR)
+	$(CP) -r $(INCLUDEDIR) $(JDK_MODULE_IMAGE_DIR)
+	@#
+	@# Swing BeanInfo generation
+	@#
+	$(CD) javax/swing/beaninfo && $(MAKE) JDK_IMAGE_DIR=$(JDK_MODULE_IMAGE_DIR) swing-1.2-beans
+ifneq ($(PLATFORM), windows)
+	$(call copy-man-pages,$(JDK_MODULE_IMAGE_DIR),$(JDK_MAN_PAGES))
+endif # !windows
+
+# Trim out files we don't want to ship
+trim-module-image-jdk::
+	@# Remove tools that should not be part of SDK.
+	for t in $(NOTJDKTOOLS); do \
+	    $(RM) $(JDK_MODULE_IMAGE_DIR)/bin/$${t}$(EXE_SUFFIX) \
+		  $(JDK_MODULE_IMAGE_DIR)/bin/*/native_threads/$${t}$(EXE_SUFFIX); \
+	done
+
+# Get list of Elf files in the jdk
+JDK_MODULE_ELF_LIST=$(MODULES_TEMPDIR)/jdk-elf-files.list
+$(JDK_MODULE_ELF_LIST):
+	@$(prep-target)
+ifneq ($(PLATFORM), windows)
+	$(RM) $@
+	$(FIND) $(JDK_MODULE_IMAGE_DIR)/jre/lib -type f -name \*.$(LIB_SUFFIX) >> $@
+	$(FILE) `$(FIND) $(JDK_MODULE_IMAGE_DIR)/jre/bin -type f -name \*$(EXE_SUFFIX)` \
+	    | $(EGREP) 'ELF' | $(CUT) -d':' -f1 >> $@
+	file `$(FIND) $(JDK_MODULE_IMAGE_DIR)/bin -type f -name \*$(EXE_SUFFIX)` \
+	    | $(EGREP) 'ELF' | $(CUT) -d':' -f1 >> $@
+endif
+
+# Post process the image (strips and mcs on files we are shipping)
+process-module-image-jdk:: $(JDK_MODULE_ELF_LIST)
+ifneq ($(POST_STRIP_PROCESS), )
+	for f in `$(CAT) $(JDK_MODULE_ELF_LIST)`; do \
+	  $(CHMOD) u+w $${f}; \
+	  $(ECHO) $(POST_STRIP_PROCESS) $${f}; \
+	  $(POST_STRIP_PROCESS) $${f}; \
+	  $(CHMOD) go-w $${f}; \
+	done
+endif
+ifneq ($(POST_MCS_PROCESS), )
+	for f in `$(CAT) $(JDK_MODULE_ELF_LIST)`; do \
+	  $(CHMOD) u+w $${f}; \
+	  $(ECHO) $(POST_MCS_PROCESS) $${f}; \
+	  $(POST_MCS_PROCESS) $${f}; \
+	  $(CHMOD) go-w $${f}; \
+	done
+endif
+	$(RM) $(JDK_MODULE_ELF_LIST)
+
+######################################################
+# clobber
+######################################################
+modules-clobber::
+	$(RM) -r $(JDK_MODULE_IMAGE_DIR)
+	$(RM) -r $(JRE_MODULE_IMAGE_DIR)
+
+modules modules-clobber::
+	@$(ECHO) ">>>Finished making "$@" @ `$(DATE)` ..."
+	@$(java-vm-cleanup)
+
+.PHONY: modules module-image-jre module-image-jdk \
+	initial-module-image-jre initial-module-image-jdk \
+	initial-module-image-jre-sol64 initial-module-image-jdk-sol64 \
+        initial-module-image-jdk-setup \
+	initial-module-image-jdk-db \
+        initial-module-image-jdk64-bindemos \
+        initial-module-image-jre-setup \
+	trim-module-image-jre trim-module-image-jdk \
+	process-module-image-jre process-module-image-jdk \
+	install-previous-jre install-previous-jdk \
+	modules-clobber
+
+# Force rule
+FRC:
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/common/Program.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,319 @@
+#
+# Copyright (c) 1995, 2011, 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.
+#
+
+#
+# Generic makefile for building executables.
+#
+
+# WARNING: This file is shared with other workspaces.
+#          So when it includes other files, it must use JDK_TOPDIR.
+#
+
+#
+# If building programs, use a normal compile approach
+#
+ifeq ($(COMPILE_APPROACH),batch)
+  override COMPILE_APPROACH = normal
+endif
+
+# set the platform specific directory for macosx, also this platform shares
+# substantial family ties with its siblings (solaris and linux), thus we add
+# solaris src path to its compilation dependencies.
+ifeq ($(PLATFORM), macosx)
+  LAUNCHER_PLATFORM_SRC = $(BUILDDIR)/../src/macosx
+  LAUNCHER_SOLARIS_PLATFORM_SRC  = $(BUILDDIR)/../src/solaris
+else
+  LAUNCHER_PLATFORM_SRC = $(PLATFORM_SRC)
+endif
+
+ifndef LAUNCHER_SHARE_SRC
+  LAUNCHER_SHARE_SRC = $(SHARE_SRC)
+endif
+
+ACTUAL_PROGRAM_NAME = $(PROGRAM)$(EXE_SUFFIX)
+ACTUAL_PROGRAM_DIR  = $(BINDIR)
+ACTUAL_PROGRAM      = $(ACTUAL_PROGRAM_DIR)/$(ACTUAL_PROGRAM_NAME)
+
+# Make sure the default rule is all
+program_default_rule: all
+
+program: $(ACTUAL_PROGRAM)
+
+# Work-around for missing processor specific mapfiles
+ifndef CROSS_COMPILE_ARCH
+  # reuse the mapfiles in the launcher's directory, the same should
+  # be applicable to the tool launchers as well.
+  FILES_m = $(BUILDDIR)/java/main/java/mapfile-$(ARCH)
+  include $(BUILDDIR)/common/Mapfile-vers.gmk
+endif
+
+include $(JDK_TOPDIR)/makefiles/common/Rules.gmk
+
+ifdef NEVER_ACT_AS_SERVER_CLASS_MACHINE
+  OTHER_CPPFLAGS += -DNEVER_ACT_AS_SERVER_CLASS_MACHINE
+endif
+
+#
+# Create a dependency on libjli (Java Launcher Infrastructure)
+#
+# On UNIX, this is a relative dependency using $ORIGIN. Unfortunately, to
+# do this reliably on Linux takes a different syntax than Solaris.
+#
+# On Windows, this is done by using the same directory as the executable
+# itself, as with all the Windows libraries.
+#
+ifeq ($(PLATFORM), macosx)
+  ifneq ($(ARCH), universal)
+    LDFLAGS += -Wl,-all_load
+  endif
+  LDFLAGS += $(OUTPUTDIR)/tmp/java/jli/$(OBJDIRNAME)/static/libjli.a
+
+  ifeq ($(SYSTEM_ZLIB),true)
+    OTHER_LDLIBS += -lz
+  endif
+endif
+
+ifneq (,$(findstring $(PLATFORM), linux solaris)) # UNIX systems
+  LDFLAGS += -L $(LIBDIR)/$(LIBARCH)/jli
+  OTHER_LDLIBS += -ljli
+  ifeq ($(PLATFORM), solaris)
+    ifeq ($(ARCH_DATA_MODEL), 32)
+      LDFLAGS += -R \$$ORIGIN/../lib/$(LIBARCH)/jli
+      LDFLAGS += -R \$$ORIGIN/../jre/lib/$(LIBARCH)/jli
+    else
+      LDFLAGS += -R \$$ORIGIN/../../lib/$(LIBARCH)/jli
+      LDFLAGS += -R \$$ORIGIN/../../jre/lib/$(LIBARCH)/jli
+    endif
+  endif
+  ifeq ($(PLATFORM), linux)
+    LDFLAGS += $(LDFLAG_Z_ORIGIN)
+    LDFLAGS += -Wl,--allow-shlib-undefined
+    LDFLAGS += -Wl,-rpath -Wl,\$$ORIGIN/../lib/$(LIBARCH)/jli
+    LDFLAGS += -Wl,-rpath -Wl,\$$ORIGIN/../jre/lib/$(LIBARCH)/jli
+  endif
+endif
+
+ifeq ($(PLATFORM), windows)
+  JLI_LCF = $(OUTPUTDIR)/tmp/java/jli/$(OBJDIRNAME)/jli.lcf
+  ifdef STATIC_JLI
+    LDFLAGS += -libpath:$(OUTPUTDIR)/tmp/java/jli/$(OBJDIRNAME)/static
+  else
+    LDFLAGS += -libpath:$(OUTPUTDIR)/tmp/java/jli/$(OBJDIRNAME)
+  endif
+  OTHER_LDLIBS += jli.lib
+endif
+
+#
+# Launcher specific files.
+#
+FILES_o = $(OBJDIR)/main.$(OBJECT_SUFFIX)
+
+$(ACTUAL_PROGRAM):: classes $(INIT) 
+
+#
+# Windows only
+#
+ifeq ($(PLATFORM), windows)
+  # JDK name required here
+  RC_FLAGS += /D "JDK_FNAME=$(PROGRAM)$(EXE_SUFFIX)" \
+              /D "JDK_INTERNAL_NAME=$(PROGRAM)" \
+              /D "JDK_FTYPE=0x1L"
+
+  $(OBJDIR)/$(PROGRAM).res: $(VERSIONINFO_RESOURCE)
+	@$(prep-target)
+  ifndef LOCAL_RESOURCE_FILE
+	$(RC) $(RC_FLAGS) $(CC_OBJECT_OUTPUT_FLAG)$(@) $(VERSIONINFO_RESOURCE)
+  endif
+
+  $(OBJDIR)/$(PROGRAM).lcf: $(OBJDIR)/$(PROGRAM).res $(FILES_o)
+	@$(prep-target)
+	@$(ECHO) $(FILES_o) > $@ 
+  ifndef LOCAL_RESOURCE_FILE
+	@$(ECHO) $(OBJDIR)/$(PROGRAM).res >> $@
+  endif
+	@$(ECHO) setargv.obj >> $@
+	@$(ECHO) Created $@ 
+
+  $(ACTUAL_PROGRAM):: $(OBJDIR)/$(PROGRAM)$(EXE_SUFFIX)
+	@$(install-file)
+
+  ifeq ($(ARCH_DATA_MODEL), 32)
+    STACK_SIZE=327680
+  else
+    # We need more Stack for Windows 64bit
+    STACK_SIZE=1048576
+  endif
+
+  IMVERSION=$(JDK_MINOR_VERSION).$(JDK_MICRO_VERSION).$(JDK_UPDATE_VER).$(COOKED_BUILD_NUMBER)
+  $(OBJDIR)/$(PROGRAM).exe.manifest: $(JDK_TOPDIR)/src/windows/resource/java.manifest
+	@$(prep-target)
+	$(SED) 's%IMVERSION%$(IMVERSION)%g;s%PROGRAM%$(PROGRAM)%g' $< > $@
+
+  # We used a hand-crafted manifest file for all executables.
+  # It is tweaked to embed the build number and executable name.
+  # Use ";#2" for .dll and ";#1" for .exe in the MT command below:
+  $(OBJDIR)/$(PROGRAM)$(EXE_SUFFIX):: $(OBJDIR)/$(PROGRAM).lcf $(FILES_o) $(JLI_LCF) $(OBJDIR)/$(PROGRAM).exe.manifest
+	@$(prep-target)
+	@set -- $?; \
+	    $(ECHO) Rebuilding $@ because of $$1 $$2 $$3 $$4 $$5 $$6 $${7:+...};
+	$(LD) -out:$@ /STACK:$(STACK_SIZE) \
+	    -map:$(OBJDIR)/$(PROGRAM).map $(LFLAGS) $(LDFLAGS) \
+	    @$(OBJDIR)/$(PROGRAM).lcf $(LDLIBS)
+  ifdef MT
+	$(MT) /manifest $(OBJDIR)/$(PROGRAM).exe.manifest /outputresource:$@;#1
+  endif
+	@$(call binary_file_verification,$@)
+else
+  #
+  # Note that we have to link -lthread even when USE_PTHREADS is true.
+  # This is becuase checkForCorrectLibthread() croaks otherwise.
+  #
+  LIBTHREAD = -lthread
+  ifeq ($(USE_PTHREADS),true)
+    THREADLIBS = -lpthread $(LIBTHREAD)
+  else
+    THREADLIBS = $(LIBTHREAD)
+  endif
+
+  ifeq ($(PLATFORM), macosx)
+    THREADLIBS = -pthread
+    # Needed for linking the various launchers
+    LDFLAGS += -framework Cocoa -framework Security \
+               -framework ApplicationServices
+    OTHER_CPPFLAGS += -DPACKAGE_PATH='"$(PACKAGE_PATH)"'
+
+    # Default Info.plist file for the command line tools. This gets overridden by
+    # some of the jvmstat tools so that they have task_for_pid() privileges
+    ifndef INFO_PLIST_FILE
+      INFO_PLIST_FILE = Info-cmdline.plist
+    endif
+    LDFLAGS += -sectcreate __TEXT __info_plist $(LAUNCHER_PLATFORM_SRC)/lib/$(INFO_PLIST_FILE)
+  else 
+    INFO_PLIST_FILE=
+  endif
+
+  #
+  # This rule only applies on unix.  It supports quantify and its ilk.
+  #
+  $(ACTUAL_PROGRAM):: $(FILES_o)
+	@$(prep-target)
+	@set -- $?; \
+	$(ECHO) Rebuilding $@ because of $$1 $$2 $$3 $$4 $$5 $$6 $${7:+...};
+	@$(MKDIR) -p $(TEMPDIR)
+	$(LINK_PRE_CMD) $(CC) $(CC_OBJECT_OUTPUT_FLAG)$@ $(LDFLAGS) \
+	$(FILES_o) $(THREADLIBS) $(LDLIBS)
+  ifeq ($(findstring privileged, $(INFO_PLIST_FILE)), privileged)
+	-codesign -s openjdk_codesign $@
+  endif
+	@$(call binary_file_verification,$@)
+endif # PLATFORM
+
+clean:: 
+ifeq ($(PLATFORM), windows)
+	$(RM) $(OBJDIR)/$(PROGRAM).rc
+	$(RM) $(OBJDIR)/$(PROGRAM).ico
+	$(RM) $(OBJDIR)/$(PROGRAM).lcf
+	$(RM) $(OBJDIR)/$(PROGRAM).map
+	$(RM) $(OBJDIR)/$(PROGRAM).exp
+	$(RM) $(OBJDIR)/$(PROGRAM).lib
+	$(RM) $(OBJDIR)/$(PROGRAM)$(EXE_SUFFIX)
+	$(RM) $(OBJDIR)/$(PROGRAM).ilk
+	$(RM) *.pdb
+endif
+
+
+clobber:: 
+	$(RM) $(ACTUAL_PROGRAM)
+
+#
+# Now include make dependencies (created during compilation, see Rules.gmk)
+#
+ifeq ($(INCREMENTAL_BUILD),true)
+  # Workaround: gnumake sometimes says files is empty when it shouldn't
+  #    was:  files := $(foreach file, $(wildcard */$(ARCH)/*.$(DEPEND_SUFFIX)), $(file))
+  files := $(shell $(LS) $(OBJDIR)/*.$(DEPEND_SUFFIX) 2>/dev/null)
+  ifneq ($(strip $(files)),)
+    include $(files)
+  endif
+endif
+
+ifdef JAVA_ARGS
+  OTHER_CPPFLAGS += -DJAVA_ARGS='$(JAVA_ARGS)'
+  OTHER_CPPFLAGS += -DLAUNCHER_NAME='"$(LAUNCHER_NAME)"'
+endif
+
+ifeq ($(PLATFORM), windows)
+  ifdef RELEASE
+    OTHER_CPPFLAGS += -DVERSION='"$(RELEASE)"'
+  endif
+endif
+
+
+ifneq ($(PLATFORM), windows)
+  HAVE_GETHRTIME=true
+endif
+
+ifeq ($(HAVE_GETHRTIME),true)
+  OTHER_CPPFLAGS += -DHAVE_GETHRTIME
+endif
+
+OTHER_INCLUDES += -I$(LAUNCHER_SHARE_SRC)/bin -I$(LAUNCHER_PLATFORM_SRC)/bin
+ifeq ($(PLATFORM), macosx)
+  OTHER_INCLUDES += -I$(LAUNCHER_SOLARIS_PLATFORM_SRC)/bin
+  ifneq ($(SYSTEM_ZLIB), true)
+    OTHER_INCLUDES += -I$(SHARE_SRC)/native/java/util/zip/zlib-1.1.3
+  endif
+else
+  OTHER_INCLUDES += -I$(SHARE_SRC)/native/java/util/zip/zlib-1.1.3
+endif
+
+OTHER_CPPFLAGS  += -DPROGNAME='"$(PROGRAM)"'
+VERSION_DEFINES += -DFULL_VERSION='"$(FULL_VERSION)"'
+
+VERSION_DEFINES += -DJDK_MAJOR_VERSION='"$(JDK_MAJOR_VERSION)"' \
+                   -DJDK_MINOR_VERSION='"$(JDK_MINOR_VERSION)"'
+
+
+
+$(OBJDIR)/main.$(OBJECT_SUFFIX): $(LAUNCHER_SHARE_SRC)/bin/main.c
+	@$(prep-target)
+	$(COMPILE.c) $(CC_OBJECT_OUTPUT_FLAG)$(OBJDIR)/main.$(OBJECT_SUFFIX) \
+		$(VERSION_DEFINES) $<
+
+#
+# Default dependencies
+#
+
+all: build
+
+build: program
+
+debug:
+	$(MAKE) VARIANT=DBG build
+
+fastdebug:
+	$(MAKE) VARIANT=DBG FASTDEBUG=true build
+
+.PHONY: all build program clean clobber debug fastdebug
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/common/Release-embedded.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,230 @@
+#
+# Copyright (c) 2011, 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.
+#
+
+#
+# SE-Embedded Reduced JRE targets
+#
+ifdef JAVASE_EMBEDDED
+
+reduced-image-jre reduced-headless-image-jre ::
+	@$(ECHO) ">>>Making "$@" @ `$(DATE)` ..."
+
+# Add the reduced-jre images as pre-reqs. These will be processed last
+images:: reduced-image-jre reduced-headless-image-jre
+
+
+######################################################
+# Create the headless rt.jar
+######################################################
+
+NOT_HEADLESS_RT_JAR_LIST = $(ABS_TEMPDIR)/not_hl_rt_jar.list
+HEADLESS_RT_JAR_FILELIST=$(JARFILELISTS_TEMPDIR)/hl_rt_jar_list
+TOTAL_HEADLESS_JAR_FILELIST=$(REORDER_TEMPDIR)/hl_file_list
+HEADLESS_CLASSLIST=$(ABS_TEMPDIR)/headless_classlist
+
+# Add the jar file directories that we don't want in the
+# headless JRE.  If you want to remove most classes in a
+# directory, put the directory in the NOT_HEADLESS_RT_JAR_LIST
+# and put the individual classes you want to keep in the 
+# HEADLESS_CLASSLIST file. 
+$(NOT_HEADLESS_RT_JAR_LIST): $(NOT_RT_JAR_LIST)
+	$(RM) $(HEADLESS_CLASSLIST)
+	$(RM) $(NOT_HEADLESS_RT_JAR_LIST)
+	$(CP) $(NOT_RT_JAR_LIST) $(NOT_HEADLESS_RT_JAR_LIST)
+# List all the packages to be excluded
+	$(ECHO) "sun/awt/motif/" >> $@
+	$(ECHO) "sun/awt/X11/" >> $@
+	$(ECHO) "sun/applet/" >> $@
+	$(ECHO) "sun/java2d/opengl/" >> $@
+	$(ECHO) "com/sun/java/swing/plaf/" >> $@
+# List all the individual classes to be included
+	$(ECHO) "sun/awt/motif/MFontConfiguration.class" >$(HEADLESS_CLASSLIST)
+	$(ECHO) "sun/applet/AppContextCreator.class" >>$(HEADLESS_CLASSLIST)
+	$(ECHO) "sun/applet/AppletAudioClip.class" >>$(HEADLESS_CLASSLIST)
+	$(ECHO) "sun/java2d/opengl/GLXSurfaceData.class" >>$(HEADLESS_CLASSLIST)
+	$(ECHO) "sun/java2d/opengl/GLXSurfaceData"\$$"GLXOffScreenSurfaceData.class" >>$(HEADLESS_CLASSLIST)
+	$(ECHO) "sun/java2d/opengl/GLXVolatileSurfaceManager.class" >>$(HEADLESS_CLASSLIST)
+	$(ECHO) "sun/java2d/opengl/OGLSurfaceData.class" >>$(HEADLESS_CLASSLIST)
+
+
+$(TOTAL_HEADLESS_JAR_FILELIST): $(JARREORDER_JARFILE) $(NOT_HEADLESS_RT_JAR_LIST)
+	$(prep-target)
+	$(RM) $@.temp
+	$(CD) $(CLASSBINDIR) ; \
+		$(BOOT_JAVA_CMD) -jar $(JARREORDER_JARFILE) \
+		-o  $@.temp - $(NOT_HEADLESS_RT_JAR_LIST)  .
+# Add on the explicitly included class files from the otherwise excluded packages
+	$(CAT) $(HEADLESS_CLASSLIST) >> $@.temp
+	$(MV) $@.temp $@
+	@$(CD) $(CLASSBINDIR); $(java-vm-cleanup)
+
+# Create the headless rt.jar file list & non-class files list
+MakeHeadlessJarFileList: $(TOTAL_HEADLESS_JAR_FILELIST) $(JARSPLIT_JARFILE)
+	@$(RM) $(HEADLESS_RT_JAR_FILELIST) $(RES_JAR_FILELIST)
+	$(BOOT_JAVA_CMD) -jar $(JARSPLIT_JARFILE) $(TOTAL_HEADLESS_JAR_FILELIST) \
+		-o  $(HEADLESS_RT_JAR_FILELIST) $(RES_JAR_FILELIST)
+	@$(java-vm-cleanup)
+
+# Create headless rt.jar
+HL_RT_JAR=$(ABS_TEMPDIR)/rt-hl-orig.jar
+$(HL_RT_JAR): MakeHeadlessJarFileList $(RT_JAR_MANIFEST_FILE)
+	$(prep-target)
+	$(CD) $(CLASSBINDIR) ; \
+		$(BOOT_JAR_CMD) $(CREATE_JAR_OPTS) $(RT_JAR_MANIFEST_FILE) $@ @$(HEADLESS_RT_JAR_FILELIST) \
+		 $(JAR_JFLAGS)
+	@$(CD) $(CLASSBINDIR); $(java-vm-cleanup)
+
+
+#
+# Produce a reduced Headful JRE for Embedded Devices
+#
+# The deployment binaries are added during the deployment build process
+#
+
+# Binaries that don't get included in reduced jre image bin directory
+NOT_REDUCEDJRE_BIN = \
+ java_vm \
+ kinit \
+ klist \
+ ktab \
+ orbd \
+ policytool \
+ rmid \
+ rmiregistry \
+ servertool \
+ tnameserv \
+ pack200 \
+ unpack200
+
+# jars/resources/libs that don't get included in reduced jre image lib directory
+NOT_REDUCEDJRE_LIB = \
+ charsets.jar \
+ ext/dnsns.jar \
+ ext/localedata.jar \
+ $(LIBARCH)/client/classes.jsa \
+ $(LIBARCH)/libjavaplugin_jni.so \
+ $(LIBARCH)/libjavaplugin_nscp_gcc29.so \
+ $(LIBARCH)/libjavaplugin_nscp.so \
+ $(LIBARCH)/libjavaplugin_oji.so
+
+# JRE docs that don't get included in reduced jre image top directory
+NOT_REDUCEDJRE_DOC = \
+ Welcome.html
+
+reduced-image-jre::
+	@$(ECHO) Starting to Produce Reduced JRE
+	@#
+	@# First make a copy of the full JRE
+	@#
+	$(RM) -r $(JRE_REDUCED_IMAGE_DIR)
+	$(MKDIR) -p $(JRE_REDUCED_IMAGE_DIR)
+	$(CD) $(JRE_IMAGE_DIR); \
+	    $(TAR) cf - . | ($(CD) $(JRE_REDUCED_IMAGE_DIR); $(TAR) xf - ); 
+
+	@#
+	@# Remove all of the files that are not needed for the
+	@# reduced JRE
+	@#
+	for l in $(NOT_REDUCEDJRE_BIN) ; do \
+	    $(RM) $(JRE_REDUCED_IMAGE_DIR)/bin/$$l ; \
+	done
+	for l in $(NOT_REDUCEDJRE_LIB) ; do \
+	    $(RM) $(JRE_REDUCED_IMAGE_DIR)/lib/$$l ; \
+	done
+	for l in $(NOT_REDUCEDJRE_DOC) ; do \
+	    $(RM) $(JRE_REDUCED_IMAGE_DIR)/$$l ; \
+	done
+
+	@# Remove misc. other files
+	$(RM) -r $(JRE_REDUCED_IMAGE_DIR)/man
+	$(RM) -f $(JRE_REDUCED_IMAGE_DIR)/CHANGES
+
+	@$(ECHO) Done Creating Reduced JRE
+
+#
+# Produce a reduced Headless JRE
+#
+reduced-headless-image-jre:: $(RT_JAR) $(RESOURCES_JAR) $(BUILD_META_INDEX) $(HL_RT_JAR)
+	@$(ECHO) Starting to Produce Reduced Headless JRE
+	@#
+	@# First make a copy of the reduced JRE we just built
+	@#
+	$(RM) -r $(JRE_REDUCED_HEADLESS_IMAGE_DIR)
+	$(MKDIR) -p $(JRE_REDUCED_HEADLESS_IMAGE_DIR)
+	$(CD) $(JRE_REDUCED_IMAGE_DIR); \
+	    $(TAR) cf - . | ($(CD) $(JRE_REDUCED_HEADLESS_IMAGE_DIR); $(TAR) xf - ); 
+
+	@# Replace the full rt.jar with the headless rt.jar
+	$(RM) -f $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/rt.jar
+	$(CP) $(HL_RT_JAR) $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/rt.jar
+
+	@#
+	@# Remove all of the files that are not needed for the
+	@# reduced Headless JRE
+	@#
+	$(RM) -f $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/$(LIBARCH)/gtkhelper
+	$(RM)  $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/$(LIBARCH)/libjsoundalsa.so
+	$(RM) -r $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/audio
+	$(RM) -fr $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/applet
+	$(RM)  $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/$(LIBARCH)/awt_robot
+	$(RM)  $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/$(LIBARCH)/libawt_xawt.so
+	$(RM) -r $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/$(LIBARCH)/libsplashscreen.so
+	@# Remove oblique fonts and reduce font support to LucidaSansRegular only
+	$(RM) -fr $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/oblique-fonts
+	$(RM) -f $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/fonts/LucidaBrightDemiBold.ttf
+	$(RM) -f $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/fonts/LucidaBrightDemiItalic.ttf
+	$(RM) -f $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/fonts/LucidaBrightItalic.ttf
+	$(RM) -f $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/fonts/LucidaBrightRegular.ttf
+	$(RM) -f $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/fonts/LucidaSansDemiBold.ttf
+	$(RM) -f $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/fonts/LucidaTypewriterBold.ttf
+	$(RM) -f $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/fonts/LucidaTypewriterRegular.ttf
+
+ifeq ($(PLATFORM), linux)
+# put out minimal fonts.dir file for the remaining font
+	$(RM) -f $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/fonts/fonts.dir
+	$(ECHO) 6>$(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/fonts/fonts.dir
+	$(ECHO) "LucidaSansRegular.ttf -b&h-lucidasans-medium-r-normal-sans-0-0-0-0-p-0-iso8859-1">>$(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/fonts/fonts.dir
+	$(ECHO) "LucidaSansRegular.ttf -b&h-lucidasans-medium-r-normal-sans-0-0-0-0-p-0-iso8859-2">>$(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/fonts/fonts.dir
+	$(ECHO) "LucidaSansRegular.ttf -b&h-lucidasans-medium-r-normal-sans-0-0-0-0-p-0-iso8859-4">>$(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/fonts/fonts.dir
+	$(ECHO) "LucidaSansRegular.ttf -b&h-lucidasans-medium-r-normal-sans-0-0-0-0-p-0-iso8859-5">>$(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/fonts/fonts.dir
+	$(ECHO) "LucidaSansRegular.ttf -b&h-lucidasans-medium-r-normal-sans-0-0-0-0-p-0-iso8859-7">>$(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/fonts/fonts.dir
+	$(ECHO) "LucidaSansRegular.ttf -b&h-lucidasans-medium-r-normal-sans-0-0-0-0-p-0-iso8859-9">>$(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/fonts/fonts.dir
+
+endif # Linux
+
+	@#
+	@# all done with JRE reduced headless image
+	@#
+
+	@$(ECHO) Done Creating Reduced Headless JRE
+
+images-clobber::
+	$(RM) -r $(JRE_REDUCED_IMAGE_DIR)
+	$(RM) -r $(JRE_REDUCED_HEADLESS_IMAGE_DIR)
+
+.PHONY: reduced-image-jre reduced-headless-image-jre 
+
+endif # JAVASE_EMBEDDED
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/common/Release-macosx.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,75 @@
+#
+# Copyright (c) 2011, 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.
+#
+
+MANBASEDIRS=$(JDK_TOPDIR)/src/bsd/doc $(IMPORTDOCDIR)
+MAN1SUBDIR = man
+JA_DIRNAME=ja_JP.UTF-8
+
+# Defines the release targets for Mac OS X build products
+
+JDK_BUNDLE_DIR = $(ABS_OUTPUTDIR)/j2sdk-bundle/$(THIS_JDK_VERSION).jdk/Contents
+JRE_BUNDLE_DIR = $(ABS_OUTPUTDIR)/j2re-bundle/$(THIS_JDK_VERSION).jre/Contents
+
+MACOSX_SRC	 = $(JDK_TOPDIR)/src/macosx
+
+BUNDLE_ID ?= net.java.openjdk
+BUNLDE_ID_JRE ?= $(BUNDLE_ID).jre
+BUNLDE_ID_JDK ?= $(BUNDLE_ID).jdk
+
+BUNDLE_NAME ?= OpenJDK $(JDK_MINOR_VERSION)
+BUNDLE_NAME_JRE ?= $(BUNDLE_NAME)
+BUNDLE_NAME_JDK ?= $(BUNDLE_NAME)
+
+BUNDLE_INFO ?= OpenJDK ($(JDK_VERSION))
+BUNDLE_INFO_JRE ?= $(BUNDLE_INFO)
+BUNDLE_INFO_JDK ?= $(BUNDLE_INFO)
+
+BUNDLE_PLATFORM_VERSION ?= $(JDK_MAJOR_VERSION).$(JDK_MINOR_VERSION)
+BUNDLE_VERSION ?= $(JDK_VERSION)
+BUNDLE_VENDOR ?= UNDEFINED
+
+jre-bundle-setup:
+	$(RM) -r $(JRE_BUNDLE_DIR)
+
+jdk-bundle-setup:
+	$(RM) -r $(JDK_BUNDLE_DIR)
+
+jre-bundle-files:
+	$(MKDIR) -p $(JRE_BUNDLE_DIR)/MacOS
+	ln -s ../Home/lib/jli/libjli.dylib $(JRE_BUNDLE_DIR)/MacOS/
+	$(CP) -r $(JRE_IMAGE_DIR) $(JRE_BUNDLE_DIR)/Home
+	$(SED) -e "s/@@ID@@/$(BUNDLE_ID_JRE)/g" -e "s/@@NAME@@/$(BUNDLE_NAME_JRE)/g" -e "s/@@INFO@@/$(BUNDLE_INFO_JRE)/g" -e "s/@@PLATFORM_VERSION@@/$(BUNDLE_PLATFORM_VERSION)/g" -e "s/@@VERSION@@/$(BUNDLE_VERSION)/g" -e "s/@@VENDOR@@/$(BUNDLE_VENDOR)/g" < $(MACOSX_SRC)/bundle/JRE-Info.plist > $(JRE_BUNDLE_DIR)/Info.plist
+	/usr/bin/SetFile -a B $(JRE_BUNDLE_DIR)/../
+
+jdk-bundle-files:
+	$(MKDIR) -p $(JDK_BUNDLE_DIR)/MacOS
+	ln -s ../Home/jre/lib/jli/libjli.dylib $(JDK_BUNDLE_DIR)/MacOS/
+	$(CP) -r $(JDK_IMAGE_DIR) $(JDK_BUNDLE_DIR)/Home
+	$(SED) -e "s/@@ID@@/$(BUNDLE_ID_JDK)/g" -e "s/@@NAME@@/$(BUNDLE_NAME_JDK)/g" -e "s/@@INFO@@/$(BUNDLE_INFO_JDK)/g" -e "s/@@PLATFORM_VERSION@@/$(BUNDLE_PLATFORM_VERSION)/g" -e "s/@@VERSION@@/$(BUNDLE_VERSION)/g" -e "s/@@VENDOR@@/$(BUNDLE_VENDOR)/g" < $(MACOSX_SRC)/bundle/JDK-Info.plist > $(JDK_BUNDLE_DIR)/Info.plist
+	/usr/bin/SetFile -a B $(JDK_BUNDLE_DIR)/../
+
+EXTRA_IMAGE_TARGETS += jre-bundle-setup jdk-bundle-setup jre-bundle-files jdk-bundle-files
+
+.PHONY: $(EXTRA_JRE_TARGETS) $(EXTRA_IMAGE_TARGETS)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/common/Release.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,1301 @@
+#
+# Copyright (c) 1997, 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 $(JDK_TOPDIR)/makefiles/docs/CORE_PKGS.gmk
+include $(JDK_TOPDIR)/makefiles/docs/NON_CORE_PKGS.gmk
+include $(JDK_TOPDIR)/makefiles/Tools.gmk
+
+# What jdk version are we building
+THIS_JDK_VERSION := $(JDK_MAJOR_VERSION).$(JDK_MINOR_VERSION).$(JDK_MICRO_VERSION)
+
+#
+# Perform release engineering tasks.
+#
+# images    An image is what the product looks like when it is
+#           installed.
+#
+
+IMAGE_BINDIR = bin
+
+# The compiler should not issue a "Proprietary" warning when compiling
+# classes in the com.sun.java.swing.plaf packages, since we've always
+# allowed, and even advocated, extending them (see bug 6476749).
+#
+# This approach is NOT to be used as a general purpose way to avoid such
+# compiler warnings for non-core packages. The correct way is to document
+# the packages in NON_CORE_PKGS.gmk, and include them in the NON_CORE_PKGS
+# definition.
+#
+# Swing has taken this approach only as a temporary measure to avoid
+# the compiler warnings until we can properly document these packages.
+# This is covered under 6491853.
+EXCLUDE_PROPWARN_PKGS = com.sun.java.swing.plaf.windows  \
+                        com.sun.java.swing.plaf.motif    \
+                        com.sun.java.swing.plaf.gtk
+
+#
+# Include the exported private packages in ct.sym.
+# This is an interim solution until the ct.sym is replaced
+# with a new module system (being discussed for JDK 8).
+#
+EXPORTED_PRIVATE_PKGS = com.sun.servicetag \
+                        com.oracle.net \
+                        com.oracle.nio
+
+# 64-bit solaris has a few special cases. We define the variable
+# SOLARIS64 for use in this Makefile to easily test those cases
+ifeq ($(PLATFORM), solaris)
+  ifeq ($(ARCH_DATA_MODEL), 64)
+    SOLARIS64 = true
+    IMAGE_BINDIR = bin/$(ARCH)
+  endif
+endif
+
+JTG_DOCS            = $(JDK_TOPDIR)/src/solaris/doc
+
+ifeq ($(PLATFORM), macosx)
+  include $(JDK_TOPDIR)/make/common/Release-$(PLATFORM).gmk
+endif
+
+# The base names of all the license and document files for the jdk and jre
+#   (These files get placed in the jdk and jre install images)
+ifdef OPENJDK
+  # Where to find these files
+  SHARE_JDK_DOC_SRC = $(JDK_TOPDIR)
+  SHARE_JRE_DOC_SRC = $(JDK_TOPDIR)
+  # Same files for jdk and jre, no name changes
+  IMAGE_DOCLIST_JDK = LICENSE ASSEMBLY_EXCEPTION THIRD_PARTY_README
+  IMAGE_DOCLIST_JDK_DEMOS_AND_SAMPLES =
+  IMAGE_DOCLIST_JRE = LICENSE ASSEMBLY_EXCEPTION THIRD_PARTY_README
+else
+  # make/closed/common/Defs.gmk for closed location of SHARE_JDK_DOC_SRC
+
+  IMAGE_DOCLIST_JDK = COPYRIGHT README.html  LICENSE THIRDPARTYLICENSEREADME.txt
+  IMAGE_DOCLIST_JDK_DEMOS_AND_SAMPLES = demo/DEMOS_LICENSE sample/SAMPLES_LICENSE
+  IMAGE_DOCLIST_JRE = COPYRIGHT Welcome.html LICENSE THIRDPARTYLICENSEREADME.txt
+  ifeq ($(PLATFORM), windows)
+    IMAGE_DOCLIST_JRE += README.txt
+  else
+    IMAGE_DOCLIST_JRE += README
+  endif
+endif
+
+# Paths to these files we need
+JDK_DOCFILES   = $(IMAGE_DOCLIST_JDK:%=$(JDK_IMAGE_DIR)/%)
+JRE_DOCFILES   = $(IMAGE_DOCLIST_JRE:%=$(JRE_IMAGE_DIR)/%)
+JDK_DEMOS_AND_SAMPLES_DOCFILES = $(IMAGE_DOCLIST_JDK_DEMOS_AND_SAMPLES:%=$(JDK_IMAGE_DIR)/%)
+
+# absolute directory names: note, these must exist prior to build
+# time - they are created in the main Makefile.
+JRE_IMAGE_BINDIR   = $(JRE_IMAGE_DIR)/bin
+
+MAINMANIFEST  = $(JDK_TOPDIR)/make/tools/manifest.mf
+BEANMANIFEST  = $(JDK_TOPDIR)/make/javax/swing/beaninfo/manifest
+
+#
+# Man pages
+#
+
+JRE_MAN_PAGES =         \
+	java.1		\
+	keytool.1	\
+	orbd.1          \
+	pack200.1	\
+	policytool.1    \
+	rmid.1		\
+	rmiregistry.1	\
+	servertool.1    \
+	tnameserv.1     \
+	unpack200.1
+
+ifndef OPENJDK
+  JRE_MAN_PAGES += javaws.1
+endif
+
+JDK_MAN_PAGES =            \
+	$(JRE_MAN_PAGES)   \
+	appletviewer.1     \
+	extcheck.1         \
+	idlj.1             \
+	jar.1              \
+	jarsigner.1        \
+	javac.1            \
+	javadoc.1          \
+	javah.1            \
+	javap.1            \
+	jconsole.1         \
+	jdb.1              \
+	jhat.1             \
+        jinfo.1            \
+        jmap.1             \
+        jps.1              \
+	jrunscript.1       \
+        jsadebugd.1        \
+        jstack.1           \
+        jstat.1            \
+        jstatd.1           \
+	native2ascii.1     \
+	rmic.1             \
+        schemagen.1        \
+	serialver.1        \
+        wsgen.1            \
+        wsimport.1         \
+        xjc.1
+
+ifeq ($(PLATFORM), solaris)
+  MANBASEDIRS=$(JDK_TOPDIR)/src/solaris/doc $(IMPORTDOCDIR)
+  MAN1SUBDIR=sun/man/man1
+endif # solaris
+
+ifeq ($(PLATFORM), linux)
+  MANBASEDIRS=$(JDK_TOPDIR)/src/linux/doc $(IMPORTDOCDIR)
+  MAN1SUBDIR=man
+  JA_DIRNAME=ja_JP.UTF-8
+endif # linux
+
+define copy-man-pages
+$(MKDIR) -p $1/man/man1
+for manbase in $(MANBASEDIRS:%=%/$(MAN1SUBDIR)) ; do \
+  for manpage in $2; do \
+    if [ -f $${manbase}/$${manpage} ] ; then \
+      $(CP) $${manbase}/$${manpage} $1/man/man1 ; \
+      for ja_encoding in $(JA_TARGET_ENCODINGS); do \
+        ja_dir="ja"; \
+        if [ "$${ja_encoding}" != "$(JA_SOURCE_ENCODING)" ]; then \
+          ja_dir="ja_JP.$${ja_encoding}"; \
+	fi; \
+        $(MKDIR) -p $1/man/$${ja_dir}/man1; \
+        $(CAT) $${manbase}/ja/$${manpage} \
+          | $(NATIVE2ASCII) -encoding $(JA_SOURCE_ENCODING) \
+          | $(SED) 's/@@VERSION@@/$(THIS_JDK_VERSION)/g' \
+          | $(NATIVE2ASCII) -reverse -encoding $${ja_encoding} \
+            > $1/man/$${ja_dir}/man1/$${manpage}; \
+      done; \
+    fi; \
+  done; \
+done
+$(java-vm-cleanup)
+if [ "$(JA_DIRNAME)" != "" ] ; then \
+  $(CD) $1/man && $(RM) ja && $(LN) -s $(JA_DIRNAME) ja; \
+fi
+endef
+
+
+# no compression unless requested
+ifndef COMPRESS_JARS
+  CREATE_JAR_OPTS = c0mf
+  CREATE_JAR_OPTS_NOMANIFEST = c0f
+else
+  CREATE_JAR_OPTS = cmf
+  CREATE_JAR_OPTS_NOMANIFEST = cf
+endif
+
+#
+# Targets.
+#
+INITIAL_IMAGE_JRE=initial-image-jre
+INITIAL_IMAGE_JDK=initial-image-jdk
+ifeq ($(PLATFORM), solaris)
+  ifeq ($(ARCH_DATA_MODEL), 64)
+    INITIAL_IMAGE_JRE=initial-image-jre-sol64
+    INITIAL_IMAGE_JDK=initial-image-jdk-sol64
+  endif
+endif
+
+images images-clobber \
+initial-image-jre initial-image-jdk \
+initial-image-jre-sol64 initial-image-jdk-sol64 \
+trim-image-jre trim-image-jdk \
+identify-image-jre identify-image-jdk \
+process-image-jre process-image-jdk \
+sec-files sec-files-win jgss-files ::
+	$(ECHO) ">>>Making "$@" @ `$(DATE)` ..."
+
+install: images
+
+# Order is important here, trim jre after jdk image is created
+ifeq ($(PLATFORM), macosx)
+
+images:: $(INITIAL_IMAGE_JRE) $(EXTRA_JRE_TARGETS) $(INITIAL_IMAGE_JDK) \
+	 trim-image-jre trim-image-jdk \
+     identify-image-jre identify-image-jdk \
+	 process-image-jre process-image-jdk sec-files sec-files-win jgss-files \
+	 $(EXTRA_IMAGE_TARGETS)
+else
+
+images:: $(INITIAL_IMAGE_JRE) $(INITIAL_IMAGE_JDK) \
+	 trim-image-jre trim-image-jdk \
+         identify-image-jre identify-image-jdk \
+	 process-image-jre process-image-jdk sec-files sec-files-win jgss-files 
+endif
+
+# Don't use these
+image-jre:: initial-image-jre trim-image-jre identify-image-jre process-image-jre
+image-jdk:: initial-image-jdk trim-image-jdk identify-image-jdk process-image-jdk
+
+#
+# Sources we ship in the SDK.
+#
+SOURCES = \
+	java/applet			\
+	java/awt			\
+	java/beans			\
+	java/io				\
+	java/lang			\
+	java/math			\
+	java/net			\
+	java/nio			\
+	java/rmi			\
+	java/security			\
+	java/sql			\
+	java/text			\
+	java/util			\
+	com/sun/corba			\
+	com/sun/image/codec/jpeg	\
+	com/sun/imageio                 \
+	com/sun/java/swing		\
+	com/sun/javadoc			\
+	com/sun/jmx			\
+	com/sun/source			\
+	com/sun/naming			\
+	com/sun/security/auth		\
+	com/sun/security/jgss		\
+	javax/accessibility		\
+	javax/annotation		\
+	javax/script			\
+	javax/imageio			\
+	javax/lang			\
+	javax/management		\
+	javax/naming			\
+	javax/print			\
+	javax/rmi			\
+	javax/security			\
+	javax/sound			\
+	javax/sql			\
+	javax/swing			\
+	javax/tools			\
+	javax/xml			\
+	com/sun/org/apache		\
+	com/sun/java_cup		\
+	com/sun/jlex	        	\
+	org/ietf			\
+	org/omg				\
+	org/w3c/dom			\
+	org/xml/sax			\
+	sunw
+#
+# Directories where sources may be found.  If a file with the same path
+# name exists in more than one of these places, the one found last on this
+# list wins.
+#
+SOURCE_DIRS = $(SHARE_SRC)/classes $(PLATFORM_SRC)/classes
+SOURCE_DIRS += $(GENSRCDIR)
+SOURCE_DIRS += $(IMPORTSRCDIR)
+SOURCE_DIRS += $(JDK_OUTPUTDIR)/gendocsrc_rmic
+ifndef OPENJDK
+  SOURCE_DIRS += $(CLOSED_SRC)/share/classes
+endif
+
+
+#
+# Specific files and directories that will be filtered out from above areas.
+#
+SOURCE_FILTERs = $(SCM_DIRs) ',*'
+SOURCE_FILES_filter = $(SOURCE_FILTERs:%=-name % -prune -o)
+
+#
+# Bug 4249883 - excluding some unnecessary packages from com.sun.tools
+#
+# Bug 5008685 - exclude jconsole from sun/tools
+#
+TOOLS = \
+	META-INF/services/com.sun.jdi.connect.Connector \
+	META-INF/services/com.sun.jdi.connect.spi.TransportService \
+	sun/tools/asm		\
+	sun/tools/jar		\
+	sun/tools/java		\
+	sun/tools/javac		\
+	sun/tools/jcmd		\
+	sun/tools/jps		\
+	sun/tools/jstat		\
+	sun/tools/jstatd	\
+	sun/tools/native2ascii	\
+	sun/tools/serialver	\
+	sun/tools/tree		\
+	sun/tools/util		\
+	sun/security/tools/JarBASE64Encoder.class \
+	sun/security/tools/JarSigner.class \
+	sun/security/tools/JarSignerParameters.class \
+	sun/security/tools/JarSignerResources.class \
+	sun/security/tools/JarSignerResources_ja.class \
+	sun/security/tools/JarSignerResources_zh_CN.class \
+	sun/security/tools/SignatureFile\$$Block.class \
+	sun/security/tools/SignatureFile.class \
+	sun/security/tools/TimestampedSigner.class \
+	sun/rmi/rmic		\
+	sun/applet		\
+	sun/jvmstat		\
+	com/sun/javadoc		\
+	com/sun/jdi		\
+	com/sun/jarsigner	\
+	com/sun/source          \
+	com/sun/tools/classfile \
+	com/sun/tools/doclets   \
+	com/sun/tools/example/debug/expr \
+	com/sun/tools/example/debug/tty  \
+	com/sun/tools/extcheck  \
+	com/sun/tools/hat       \
+	com/sun/tools/javac     \
+	com/sun/tools/javadoc   \
+	com/sun/tools/javah     \
+	com/sun/tools/javap     \
+	com/sun/tools/corba     \
+	com/sun/tools/internal/xjc       \
+	com/sun/tools/internal/ws       \
+	META-INF/services/com.sun.tools.internal.ws.wscompile.Plugin \
+	META-INF/services/com.sun.tools.internal.xjc.Plugin \
+	com/sun/istack/internal/tools       \
+	com/sun/tools/internal/jxc/ap   \
+	com/sun/tools/internal/ws/wscompile/plugin/at_generated \
+        com/sun/codemodel       \
+        com/sun/tools/internal/jxc             \
+        com/sun/xml/internal/rngom       \
+        com/sun/xml/internal/xsom       \
+        org/relaxng/datatype   \
+	com/sun/xml/internal/dtdparser \
+	com/sun/tools/jdi	\
+	com/sun/tools/script/shell	\
+	META-INF/services/com.sun.tools.attach.spi.AttachProvider \
+	com/sun/tools/attach	\
+	sun/tools/attach	\
+	sun/tools/jstack        \
+	sun/tools/jinfo         \
+	sun/tools/jmap
+
+# classes that go into jfr.jar
+JFR_CLASSES_DIRS= \
+	com/oracle/jrockit/jfr \
+	oracle/jrockit/jfr
+
+# classes that go into jsse.jar
+JSSE_CLASSES_DIRS = \
+	sun/security/provider/Sun.class \
+	sun/security/rsa/SunRsaSign.class \
+	sun/security/ssl \
+	com/sun/net/ssl/internal/ssl
+
+# classes that go into dnsns.jar
+DNS_CLASSES_DIRS = \
+        sun/net/spi/nameservice/dns \
+        META-INF/services/sun.net.spi.nameservice.NameServiceDescriptor
+
+# classes and files that go into localedata.jar
+LOCALEDATA_JAR_DIRS = \
+	sun/text/resources/*_ar* \
+	sun/text/resources/*_hi* \
+	sun/text/resources/*_iw* \
+	sun/text/resources/*_iw* \
+	sun/text/resources/*_ja* \
+	sun/text/resources/*_ko* \
+	sun/text/resources/*_th.* \
+	sun/text/resources/*_th_* \
+	sun/text/resources/*_vi* \
+	sun/text/resources/*_zh* \
+	sun/text/resources/*Data_th \
+	sun/text/resources/thai_dict \
+	sun/util/resources/*_ar* \
+	sun/util/resources/*_hi* \
+	sun/util/resources/*_iw* \
+	sun/util/resources/*_iw* \
+	sun/util/resources/*_ja* \
+	sun/util/resources/*_ko* \
+	sun/util/resources/*_th_* \
+	sun/util/resources/*_th.* \
+	sun/util/resources/*_vi* \
+	sun/util/resources/*_zh*
+
+LOCALEDATA_JAR_FILES = $(foreach i,$(LOCALEDATA_JAR_DIRS), $(wildcard $(CLASSBINDIR)/$i))
+
+# files under $(OUTPUTDIR) that need to go into sec-bin.zip for builds
+# where the corresponding sources are not available
+SEC_FILES_DIRS = \
+	classes/javax/net \
+	classes/javax/security/cert \
+	classes/com/sun/net/ssl \
+	classes/com/sun/security/cert \
+	classes/sun/net/www/protocol/https \
+	classes/sun/security/pkcs12 \
+	classes/sun/security/ssl \
+	classes/sun/security/krb5/*.class \
+	classes/sun/security/krb5/internal/*.class \
+	classes/sun/security/krb5/internal/ccache \
+	classes/sun/security/krb5/internal/crypto \
+	classes/sun/security/krb5/internal/ktab \
+	classes/sun/security/krb5/internal/rcache \
+	classes/sun/security/krb5/internal/util \
+	classes/sun/security/jgss/spi/GSSContextSpi.class
+
+# files under $(OUTPUTDIR) that need to go into sec-windows-win.zip for builds
+# where the corresponding sources are not available
+SEC_FILES_WIN_DIRS = \
+	classes/sun/security/krb5/internal/tools
+
+# files under $(BINDIR) that need to go into jgss_files.zip for builds
+# where the corresponding sources are not available
+JGSS_FILES_DIRS = \
+	bin/w2k_lsa_auth.dll \
+	bin/w2k_lsa_auth.map \
+	bin/w2k_lsa_auth.pdb
+
+# The following get removed from the SDK image.
+NOTJDKTOOLS = \
+	java_vm
+
+# The following get removed from the JRE after the bulk-copy of BINDIR...
+NOTJRETOOLS = \
+	appletviewer$(EXE_SUFFIX) \
+	extcheck$(EXE_SUFFIX) \
+	idlj$(EXE_SUFFIX) \
+	jar$(EXE_SUFFIX) \
+	jarsigner$(EXE_SUFFIX) \
+	java-rmi.cgi \
+	javac$(EXE_SUFFIX) \
+	javadoc$(EXE_SUFFIX) \
+	javah$(EXE_SUFFIX) \
+	javap$(EXE_SUFFIX) \
+	jcmd$(EXE_SUFFIX) \
+	jdb$(EXE_SUFFIX) \
+	jps$(EXE_SUFFIX) \
+	jrunscript$(EXE_SUFFIX) \
+	jstat$(EXE_SUFFIX) \
+	jstatd$(EXE_SUFFIX) \
+	jstack$(EXE_SUFFIX) \
+	packagebean$(SCRIPT_SUFFIX) \
+	rmic$(EXE_SUFFIX) \
+	serialver$(EXE_SUFFIX) \
+	unregbean$(EXE_SUFFIX) \
+	jconsole$(EXE_SUFFIX) \
+	jinfo$(EXE_SUFFIX) \
+	jmap$(EXE_SUFFIX) \
+	native2ascii$(EXE_SUFFIX) \
+	xjc$(EXE_SUFFIX) \
+	wsgen$(EXE_SUFFIX) \
+	wsimport$(EXE_SUFFIX) \
+        schemagen$(EXE_SUFFIX) \
+	jsadebugd$(EXE_SUFFIX) \
+	jhat$(EXE_SUFFIX)
+
+# The following get removed from the JRE after the bulk-copy of LIBDIR...
+NOTJRELIBS = tools.jar \
+        jconsole.jar
+
+ifeq ($(INCLUDE_SA), true)
+  NOTJRELIBS += sa-jdi.jar
+
+  # The following get removed from the JRE after the bulk-copy of LIBDIR...
+  NOTJRE_SHARED_LIBS = $(SALIB_NAME)
+else
+  NOTJRE_SHARED_LIBS =
+endif
+
+# Attach library is JDK only
+NOTJRE_SHARED_LIBS += $(LIB_PREFIX)attach.$(LIBRARY_SUFFIX)
+
+#
+###### RULES
+
+# Processing license files from source area to image area
+#    These will be modified to have the platform specific EOL chars.
+define process-doc-file
+$(prep-target)
+$(SED) 's/$$//g' $< > $@
+$(CHMOD) 444 $@
+endef
+
+# JDK files
+$(JDK_IMAGE_DIR)/%: $(SHARE_JDK_DOC_SRC)/%
+	$(process-doc-file)
+
+$(JDK_IMAGE_DIR)/demo/DEMOS_LICENSE: $(SHARE_JDK_DOC_SRC)/DEMOS_LICENSE
+	$(process-doc-file)
+
+$(JDK_IMAGE_DIR)/sample/SAMPLES_LICENSE: $(SHARE_JDK_DOC_SRC)/SAMPLES_LICENSE
+	$(process-doc-file)
+
+# JRE files 
+$(JRE_IMAGE_DIR)/%: $(SHARE_JRE_DOC_SRC)/%
+	$(process-doc-file)
+ifeq ($(PLATFORM), windows)
+$(JRE_IMAGE_DIR)/README.txt: $(SHARE_JRE_DOC_SRC)/README
+	$(process-doc-file)
+endif
+
+
+######################################################
+# List of directories in classes directory that should NOT be in rt.jar
+######################################################
+
+NOT_RT_JAR_LIST = $(IMAGES_OUTPUTDIR)/tmp/not_rt_jar.list
+
+$(NOT_RT_JAR_LIST): FRC
+	$(prep-target)
+	$(ECHO) "#\n" >> $@
+	$(ECHO) "# List of subdirectories not in include in rt.jar" >> $@
+	$(ECHO) "# Directories must contain trailing '/'." >> $@
+	$(ECHO) "com/sun/javadoc/" >> $@
+	$(ECHO) "com/sun/jdi/" >> $@
+	$(ECHO) "com/sun/jarsigner/" >> $@
+	$(ECHO) "com/sun/source/" >> $@
+	$(ECHO) "com/sun/istack/internal/tools/" >> $@
+	$(ECHO) "META-INF/services/com.sun.jdi.connect.Connector" >> $@
+	$(ECHO) "META-INF/services/com.sun.jdi.connect.spi.TransportService" >> $@
+	$(ECHO) "META-INF/services/com.sun.tools.xjc.Plugin" >> $@
+	$(ECHO) "com/sun/tools/" >> $@
+	$(ECHO) "sun/jvmstat/" >> $@
+	$(ECHO) "sun/nio/cs/ext/" >> $@
+	$(ECHO) "sun/awt/HKSCS.class" >> $@
+	$(ECHO) "sun/awt/motif/X11GB2312\$$Decoder.class" >> $@
+	$(ECHO) "sun/awt/motif/X11GB2312\$$Encoder.class" >> $@
+	$(ECHO) "sun/awt/motif/X11GB2312.class" >> $@
+	$(ECHO) "sun/awt/motif/X11GBK\$$Encoder.class" >> $@
+	$(ECHO) "sun/awt/motif/X11GBK.class" >> $@
+	$(ECHO) "sun/awt/motif/X11KSC5601\$$Decoder.class" >> $@
+	$(ECHO) "sun/awt/motif/X11KSC5601\$$Encoder.class" >> $@
+	$(ECHO) "sun/awt/motif/X11KSC5601.class" >> $@
+	$(ECHO) "sun/rmi/rmic/" >> $@
+	$(ECHO) "sun/tools/asm/" >> $@
+	$(ECHO) "sun/tools/java/" >> $@
+	$(ECHO) "sun/tools/javac/" >> $@
+	$(ECHO) "com/sun/tools/classfile/" >> $@
+	$(ECHO) "com/sun/tools/javap/" >> $@
+	$(ECHO) "sun/tools/jcmd/" >> $@
+	$(ECHO) "sun/tools/jconsole/" >> $@
+	$(ECHO) "sun/tools/jps/" >> $@
+	$(ECHO) "sun/tools/jstat/" >> $@
+	$(ECHO) "sun/tools/jstatd/" >> $@
+	$(ECHO) "sun/tools/native2ascii/" >> $@
+	$(ECHO) "sun/tools/serialver/" >> $@
+	$(ECHO) "sun/tools/tree/" >> $@
+	$(ECHO) "sun/tools/util/" >> $@
+	$(ECHO) "sun/security/tools/JarBASE64Encoder.class" >> $@
+	$(ECHO) "sun/security/tools/JarSigner.class" >> $@
+	$(ECHO) "sun/security/tools/JarSignerParameters.class" >> $@
+	$(ECHO) "sun/security/tools/JarSignerResources.class" >> $@
+	$(ECHO) "sun/security/tools/JarSignerResources_ja.class" >> $@
+	$(ECHO) "sun/security/tools/JarSignerResources_zh_CN.class" >> $@
+	$(ECHO) "sun/security/tools/SignatureFile\$$Block.class" >> $@
+	$(ECHO) "sun/security/tools/SignatureFile.class" >> $@
+	$(ECHO) "sun/security/tools/TimestampedSigner.class" >> $@
+	$(ECHO) "sun/security/provider/Sun.class" >> $@
+	$(ECHO) "sun/security/rsa/SunRsaSign.class" >> $@
+	$(ECHO) "sun/security/ssl/" >> $@
+	$(ECHO) "com/sun/net/ssl/internal/ssl/" >> $@
+	$(ECHO) "javax/crypto/" >> $@
+	$(ECHO) "sun/security/internal/" >> $@
+	$(ECHO) "com/sun/crypto/provider/" >> $@
+	$(ECHO) "META-INF/services/com.sun.tools.attach.spi.AttachProvider" >> $@
+	$(ECHO) "com/sun/tools/attach/" >> $@
+	$(ECHO) "org/relaxng/datatype/" >> $@
+	$(ECHO) "com/sun/codemodel/" >> $@
+	$(ECHO) "com/sun/xml/internal/dtdparser/" >> $@
+	$(ECHO) "com/sun/xml/internal/rngom/" >> $@
+	$(ECHO) "com/sun/xml/internal/xsom/" >> $@
+	$(ECHO) "com/sun/tools/script/shell/" >> $@
+	$(ECHO) "sun/tools/attach/" >> $@
+	$(ECHO) "sun/tools/jstack/" >> $@
+	$(ECHO) "sun/tools/jinfo/" >> $@
+	$(ECHO) "sun/tools/jmap/" >> $@
+	$(ECHO) "sun/net/spi/nameservice/dns/" >> $@
+	$(ECHO) "META-INF/services/sun.net.spi.nameservice.NameServiceDescriptor" >> $@
+	$(ECHO) $(patsubst $(CLASSBINDIR)/%,%,$(LOCALEDATA_JAR_FILES)) | sed 's/ /\n/g' >> $@
+ifndef OPENJDK
+ifndef JAVASE_EMBEDDED
+	$(ECHO) "com/oracle/jrockit/jfr/" >> $@
+	$(ECHO) "com/oracle/jrockit/jfr/client/" >> $@
+	$(ECHO) "com/oracle/jrockit/jfr/management/" >> $@
+	$(ECHO) "oracle/jrockit/jfr/" >> $@
+	$(ECHO) "oracle/jrockit/jfr/events/" >> $@
+	$(ECHO) "oracle/jrockit/jfr/openmbean/" >> $@
+	$(ECHO) "oracle/jrockit/jfr/parser/" >> $@
+	$(ECHO) "oracle/jrockit/jfr/settings/" >> $@
+	$(ECHO) "oracle/jrockit/jfr/tools/" >> $@
+	$(ECHO) "oracle/jrockit/jfr/util/" >> $@
+	$(ECHO) "oracle/jrockit/jfr/util/log/" >> $@
+	$(ECHO) "oracle/jrockit/jfr/util/os/" >> $@
+	$(ECHO) "oracle/jrockit/jfr/util/text/" >> $@
+endif
+endif
+
+
+# File order list for rt.jar
+#     - sun.applet is included, till hotjava stops relying on it.
+#     - sun.tools.jar is included, needs cleanup.
+#
+REORDER_TEMPDIR=$(IMAGES_OUTPUTDIR)/tmp/reorder
+TOTAL_JAR_FILELIST=$(REORDER_TEMPDIR)/file_list
+
+JARFILELISTS_TEMPDIR=$(IMAGES_OUTPUTDIR)/tmp/jarfilelists
+RT_JAR_FILELIST=$(JARFILELISTS_TEMPDIR)/rt_jar_list
+RES_JAR_FILELIST=$(JARFILELISTS_TEMPDIR)/resources_jar_list
+
+$(TOTAL_JAR_FILELIST): $(BUILD_TOOLS) $(NOT_RT_JAR_LIST)
+	$(prep-target)
+	$(RM) $@.temp
+	($(CD) $(CLASSBINDIR) && \
+	    $(TOOL_JARREORDER) \
+		-o  $@.temp $(ABS_LIBDIR)/classlist $(NOT_RT_JAR_LIST) . )
+	$(MV) $@.temp $@
+	($(CD) $(CLASSBINDIR) && $(java-vm-cleanup))
+
+# Create the jfr.jar containing Java Flight Recorder implementation
+JFR_JAR=
+ifndef OPENJDK
+ifndef JAVASE_EMBEDDED
+JFR_JAR=$(ABS_TEMPDIR)/jfr-orig.jar
+$(JFR_JAR): $(OTHER_JAR_MANIFEST_FILE)
+	$(prep-target)
+	$(CD) $(CLASSBINDIR) && \
+	    $(BOOT_JAR_CMD) $(CREATE_JAR_OPTS) $(OTHER_JAR_MANIFEST_FILE) $@ \
+		$(JFR_CLASSES_DIRS) $(BOOT_JAR_JFLAGS)
+	@$(CD) $(CLASSBINDIR) && $(java-vm-cleanup)
+endif
+endif
+
+# Create the rt.jar file list & non-class files list
+
+$(RT_JAR_FILELIST) + $(RES_JAR_FILELIST): \
+    $(TOTAL_JAR_FILELIST) $(BUILD_TOOLS)
+	$(RM) $(RT_JAR_FILELIST) $(RES_JAR_FILELIST)
+	$(MKDIR) -p $(JARFILELISTS_TEMPDIR)
+	$(TOOL_JARSPLIT) \
+		$(TOTAL_JAR_FILELIST) \
+		-o  $(RT_JAR_FILELIST) $(RES_JAR_FILELIST)
+	$(java-vm-cleanup)
+
+# Create the manifest file.
+RT_JAR_MANIFEST_FILE=$(IMAGES_OUTPUTDIR)/tmp/rt_manifest.tmp
+$(RT_JAR_MANIFEST_FILE): $(MAINMANIFEST) $(BEANMANIFEST)
+	$(prep-target)
+	$(SED) -e "s#@@RELEASE@@#$(RELEASE)#" 		\
+	       -e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" \
+	       $(MAINMANIFEST) >> $@
+	$(ECHO) >> $@
+	$(CAT) $(BEANMANIFEST) >> $@
+
+OTHER_JAR_MANIFEST_FILE=$(IMAGES_OUTPUTDIR)/tmp/other_manifest.tmp
+$(OTHER_JAR_MANIFEST_FILE): $(MAINMANIFEST)
+	$(prep-target)
+	$(SED) -e "s#@@RELEASE@@#$(RELEASE)#" 		\
+	       -e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" \
+	       $(MAINMANIFEST) >> $@
+
+# Create resources.jar containing non-class files
+RESOURCES_JAR=$(IMAGES_OUTPUTDIR)/tmp/resources-orig.jar
+$(RESOURCES_JAR): $(RES_JAR_FILELIST) $(OTHER_JAR_MANIFEST_FILE)
+	$(prep-target)
+	$(CD) $(CLASSBINDIR) && \
+	    $(BOOT_JAR_CMD) $(CREATE_JAR_OPTS) $(OTHER_JAR_MANIFEST_FILE) $@ \
+	        @$(RES_JAR_FILELIST) $(BOOT_JAR_JFLAGS)
+	$(CD) $(CLASSBINDIR) && $(java-vm-cleanup)
+
+# Create jsse.jar containing SunJSSE implementation classes
+JSSE_JAR=$(IMAGES_OUTPUTDIR)/tmp/jsse-orig.jar
+$(JSSE_JAR): $(OTHER_JAR_MANIFEST_FILE)
+	$(prep-target)
+	$(CD) $(CLASSBINDIR) && \
+	    $(BOOT_JAR_CMD) $(CREATE_JAR_OPTS) $(OTHER_JAR_MANIFEST_FILE) $@ \
+		$(JSSE_CLASSES_DIRS) $(BOOT_JAR_JFLAGS)
+	@$(CD) $(CLASSBINDIR) && $(java-vm-cleanup)
+
+# Create dnsns.jar 
+# Create without manifest for now to not differ with old buildsystem.
+DNS_JAR=$(IMAGES_OUTPUTDIR)/tmp/dns-orig.jar
+$(DNS_JAR): $(OTHER_JAR_MANIFEST_FILE)
+	$(prep-target)
+	$(CD) $(CLASSBINDIR) && \
+	    $(BOOT_JAR_CMD) $(CREATE_JAR_OPTS_NOMANIFEST) $@ \
+		$(DNS_CLASSES_DIRS) $(BOOT_JAR_JFLAGS)
+	@$(CD) $(CLASSBINDIR) && $(java-vm-cleanup)
+
+# Create localedata.jar containing localedata for non european languages
+LOCALEDATA_JAR=$(IMAGES_OUTPUTDIR)/localedata-orig.jar
+$(LOCALEDATA_JAR): $(LOCALEDATA_JAR_FILES)
+	$(prep-target)
+# Create without manifest for now to not differ with old buildsystem.
+#	$(CD) $(CLASSBINDIR) && \
+#	    $(BOOT_JAR_CMD) $(CREATE_JAR_OPTS) $(OTHER_JAR_MANIFEST_FILE) $@ \
+#	        $(LOCALEDATA_JAR_DIRS) $(BOOT_JAR_JFLAGS)
+	$(CD) $(CLASSBINDIR) && \
+	    $(BOOT_JAR_CMD) $(CREATE_JAR_OPTS_NOMANIFEST) $@ \
+	        $(LOCALEDATA_JAR_DIRS) $(BOOT_JAR_JFLAGS)
+	$(CD) $(CLASSBINDIR) && $(java-vm-cleanup)
+
+# Create sec-bin.zip
+SEC_FILES_ZIP=$(IMAGES_OUTPUTDIR)/tmp/sec-bin.zip
+sec-files::
+	$(prep-target)
+	$(RM) $(SEC_FILES_ZIP)
+	$(CD) $(OUTPUTDIR) && \
+		$(ZIPEXE) -rq9 $(SEC_FILES_ZIP) $(SEC_FILES_DIRS)
+	$(java-vm-cleanup)
+
+# Create sec-windows-bin.zip
+SEC_FILES_WIN_ZIP=$(IMAGES_OUTPUTDIR)/tmp/sec-windows-bin.zip
+sec-files-win::
+ifeq ($(PLATFORM), windows)
+	$(prep-target)
+	$(RM) $(SEC_FILES_WIN_ZIP)
+	$(CD) $(OUTPUTDIR) && \
+		$(ZIPEXE) -rq9 $(SEC_FILES_WIN_ZIP) $(SEC_FILES_WIN_DIRS)
+	$(java-vm-cleanup)
+endif
+
+# Create JGSS files that contains the native Kerberos library
+JGSS_WIN32_FILES_ZIP=$(IMAGES_OUTPUTDIR)/tmp/jgss-windows-i586-bin.zip
+JGSS_WIN64_FILES_ZIP=$(IMAGES_OUTPUTDIR)/tmp/jgss-windows-x64-bin.zip
+jgss-files::
+ifeq ($(PLATFORM), windows)
+	$(prep-target)
+  ifeq ($(ARCH_DATA_MODEL), 32)
+	$(RM) $(JGSS_WIN32_FILES_ZIP)
+	$(CD) $(OUTPUTDIR) && \
+		$(ZIPEXE) -rq9 $(JGSS_WIN32_FILES_ZIP) $(JGSS_FILES_DIRS)
+  else
+	$(RM) $(JGSS_WIN64_FILES_ZIP)
+	$(CD) $(OUTPUTDIR) && \
+		$(ZIPEXE) -rq9 $(JGSS_WIN64_FILES_ZIP) $(JGSS_FILES_DIRS)
+  endif
+	$(java-vm-cleanup)
+endif
+
+# Create rt.jar
+RT_JAR=$(IMAGES_OUTPUTDIR)/tmp/rt-orig.jar
+$(RT_JAR): $(RT_JAR_FILELIST) $(RT_JAR_MANIFEST_FILE)
+	$(prep-target)
+	$(CD) $(CLASSBINDIR) && \
+	    $(BOOT_JAR_CMD) $(CREATE_JAR_OPTS) $(RT_JAR_MANIFEST_FILE) $@ \
+	        @$(RT_JAR_FILELIST) $(BOOT_JAR_JFLAGS)
+	$(CD) $(CLASSBINDIR) && $(java-vm-cleanup)
+
+# SE-Embedded targets if enabled
+include $(JDK_TOPDIR)/makefiles/common/Release-embedded.gmk
+
+
+######################################################
+# JRE Image
+######################################################
+
+initial-image-jre-setup:
+	$(RM) -r $(JRE_IMAGE_DIR)
+	$(MKDIR) -p $(JRE_IMAGE_DIR)
+
+# 64-bit solaris jre image contains only the 64-bit add-on files.
+initial-image-jre-sol64:: initial-image-jre-setup
+	@# Use tar instead of cp to preserve the symbolic links
+	for dir in bin lib ; do \
+	  ( $(CD) $(OUTPUTDIR) && \
+		$(TAR) cf - `$(FIND) $$dir -name '$(ARCH)' -print` | \
+		($(CD) $(JRE_IMAGE_DIR) && $(TAR) xf -) ) ; \
+	done
+	@# Remove some files from the jre area
+	for t in $(NOTJRETOOLS) ; do \
+	    $(RM) $(JRE_IMAGE_DIR)/bin$(ISA_DIR)/$$t ; \
+	done
+	for l in $(NOTJRELIBS) ; do \
+	    $(RM) $(JRE_IMAGE_DIR)/lib/$$l ; \
+	done
+	$(RM) `$(FIND) $(JRE_IMAGE_DIR)/lib -name 'orb.idl'`
+	$(RM) `$(FIND) $(JRE_IMAGE_DIR)/lib -name 'ir.idl'`
+
+# Construct an initial jre image (initial jdk jre) no trimming or stripping
+# See "initial-image-jdk-setup" for an explanation of the rm of
+# drive names like C:
+initial-image-jre:: initial-image-jre-setup \
+		    $(JRE_DOCFILES) \
+		    $(RT_JAR) $(RESOURCES_JAR) $(JSSE_JAR) $(JFR_JAR) $(DNS_JAR) $(LOCALEDATA_JAR) \
+		    $(BUILD_TOOLS)
+	@# Copy in bin directory
+	$(CD) $(OUTPUTDIR) && $(FIND) bin -depth | $(CPIO) -pdum $(JRE_IMAGE_DIR)
+	@# CTE plugin security change require new empty directory lib/applet
+	$(MKDIR) -p $(JRE_IMAGE_DIR)/lib/applet
+	@# Copy in lib directory
+	$(CD) $(OUTPUTDIR) && $(FIND) lib -depth | $(CPIO) -pdum $(JRE_IMAGE_DIR)
+  ifeq ($(USING_CYGWIN),true)
+	  $(RM) -rf $(JRE_IMAGE_DIR)/[A-Za-z]:
+	  $(RM) -rf $(OUTPUTDIR)/[A-Za-z]:
+  endif
+	@# Make sure all directories are read/execute for everyone
+	$(CHMOD) a+rx `$(FIND) $(JRE_IMAGE_DIR) -type d`
+	@# Remove some files from the jre area
+	for t in $(NOTJRETOOLS) ; do \
+	    $(RM) $(JRE_IMAGE_DIR)/bin$(ISA_DIR)/$$t ; \
+	done
+	for l in $(NOTJRELIBS) ; do \
+	    $(RM) $(JRE_IMAGE_DIR)/lib/$$l ; \
+	done
+	@# Remove orb.idl and ir.idl from jre
+	$(FIND) $(JRE_IMAGE_DIR)/lib -name 'orb.idl' -exec $(RM) \{} \;
+	$(FIND) $(JRE_IMAGE_DIR)/lib -name 'ir.idl' -exec $(RM) \{} \;
+	@# Copy in rt.jar & resources.jar file
+	$(CP) $(RT_JAR) $(JRE_IMAGE_DIR)/lib/rt.jar
+	$(CP) $(RESOURCES_JAR) $(JRE_IMAGE_DIR)/lib/resources.jar
+	$(CP) $(JSSE_JAR) $(JRE_IMAGE_DIR)/lib/jsse.jar
+ifneq ($(JFR_JAR),)
+	$(CP) $(JFR_JAR) $(JRE_IMAGE_DIR)/lib/jfr.jar
+endif
+	$(CP) $(DNS_JAR) $(JRE_IMAGE_DIR)/lib/ext/dnsns.jar
+	$(CP) $(LOCALEDATA_JAR) $(JRE_IMAGE_DIR)/lib/ext/localedata.jar
+	@# Generate meta-index to make boot and extension class loaders lazier
+	$(CD) $(JRE_IMAGE_DIR)/lib && \
+	    $(TOOL_BUILDMETAINDEX) \
+		-o meta-index *.jar
+	$(CD) $(JRE_IMAGE_DIR)/lib && $(java-vm-cleanup)
+	$(CD) $(JRE_IMAGE_DIR)/lib/ext && \
+	    $(TOOL_BUILDMETAINDEX) \
+		-o meta-index *.jar
+	$(CD) $(JRE_IMAGE_DIR)/lib/ext && $(java-vm-cleanup)
+ifeq ($(PLATFORM), macosx)
+	@#install jobjc, apple mac only
+	$(CP) $(OUTPUTDIR)/JObjC.build/JObjC.jar $(JRE_IMAGE_DIR)/lib/JObjC.jar
+endif
+ifeq ($(PLATFORM), windows)
+	@# Remove certain *.lib files
+	$(CD) $(JRE_IMAGE_DIR)/lib && \
+            $(RM) java.$(LIB_SUFFIX) jvm.$(LIB_SUFFIX) \
+                  awt.$(LIB_SUFFIX) jawt.$(LIB_SUFFIX)
+  ifeq ($(ARCH_DATA_MODEL), 32)
+	@# The Java Kernel JRE image ships with a special VM.  It is not included
+	@# in the full JRE image, so remove it.  Also, is it only for 32-bit windows.
+	$(CD) $(JRE_IMAGE_DIR)/bin && $(RM) -r kernel
+  endif
+endif # Windows
+ifneq ($(PLATFORM), windows)
+	$(call copy-man-pages,$(JRE_IMAGE_DIR),$(JRE_MAN_PAGES))
+endif # !windows
+
+# Trim out any extra files not for the jre shipment but wanted in the jdk jre.
+#   (Note the jdk WILL want the jre image before this trimming)
+#   Removes server VM on Windows 32bit.
+#   Remove certain shared libraries that should not be in the jre image
+#      but should be in the jdk jre image.
+trim-image-jre::
+	@# Clean out all _the. files.
+	$(FIND) $(JRE_IMAGE_DIR) -name "_the.*" $(FIND_DELETE)
+ifeq ($(PLATFORM), windows)
+  ifeq ($(ARCH_DATA_MODEL), 32)
+	$(RM) -r $(JRE_IMAGE_DIR)/bin/server
+  endif
+  ifdef NOTJRE_SHARED_LIBS
+	for l in $(NOTJRE_SHARED_LIBS) ; do \
+	    $(RM) $(JRE_IMAGE_DIR)/bin/$$l ; \
+	done ;
+  endif
+else # PLATFORM
+  ifdef NOTJRE_SHARED_LIBS
+	for l in $(NOTJRE_SHARED_LIBS) ; do \
+	    $(RM) $(JRE_IMAGE_DIR)/lib/$(LIBARCH)/$$l ; \
+	done ;
+  endif
+endif # PLATFORM
+
+# Get list of all binary (COFF or Elf) files in the jre
+JRE_BIN_LIST=$(TEMPDIR)/jre-bin-files.list
+$(JRE_BIN_LIST):
+	$(RM) $@
+ifeq ($(PLATFORM), windows)
+	$(FIND) $(JRE_IMAGE_DIR)/bin -type f -name \*.exe \
+	   -o -name \*.dll | $(EGREP) -v -i "$(MSVCRNN_DLL)" > $@
+else
+	$(FIND) $(JRE_IMAGE_DIR)/lib -type f -name \*.$(LIB_SUFFIX) >> $@
+	$(FILE) `$(FIND) $(JRE_IMAGE_DIR)/bin -type f -name \*$(EXE_SUFFIX)` \
+	    | $(EGREP) 'ELF' | $(CUT) -d':' -f1 >> $@
+endif
+
+# Post process the image (strips and mcs on Elf files we are shipping)
+#   (Note the jdk WILL want the jre image before this processing)
+process-image-jre:: $(JRE_BIN_LIST)
+ifneq ($(POST_STRIP_PROCESS), )
+	@for f in `$(CAT) $(JRE_BIN_LIST)`; do \
+	  $(CHMOD) u+w $${f}; \
+	  $(ECHO) $(POST_STRIP_PROCESS) $${f}; \
+	  $(POST_STRIP_PROCESS) $${f}; \
+	  $(CHMOD) go-w $${f}; \
+	done
+endif
+ifneq ($(POST_MCS_PROCESS), )
+	@for f in `$(CAT) $(JRE_BIN_LIST)`; do \
+	  $(CHMOD) u+w $${f}; \
+	  $(ECHO) $(POST_MCS_PROCESS) $${f}; \
+	  $(POST_MCS_PROCESS) $${f}; \
+	  $(CHMOD) go-w $${f}; \
+	done
+endif
+	@for f in `$(CAT) $(JRE_BIN_LIST)`; do \
+	  $(call binary_file_verification,$${f}); \
+	done
+	$(RM) $(JRE_BIN_LIST)
+
+######################################################
+# JDK Image
+######################################################
+# Note: cpio ($(CPIO)) sometimes leaves directories without rx access.
+
+# REMIND: the $(RM) calls for patterns like c:, d: following $(CPIO)
+# are because the 1.7.x versions of cygwin's cpio command drops these
+# in the working directory if the output path begins with that pattern
+# The one for the output jre subdirectory gets there because cpio sees its
+# own dropping in the input jre subdirectory. Need to remove both of these.
+# We can remove these RM's if someone figures out how to stop cpio from
+# leaving these there.
+# Note that its a real problem not because this directory can end up in the
+# bundle (I think it won't since it not in bin or lib and those are the
+# only places from which we copy everything), but because the presence
+# of this file causes cygwin's find to bomb out, thus breaking the build
+# in "install".
+initial-image-jdk-setup:
+	$(RM) -r $(JDK_IMAGE_DIR)
+	$(MKDIR) -p $(JDK_IMAGE_DIR)/jre
+	($(CD) $(JRE_IMAGE_DIR) && $(FIND) . -depth -print \
+	      | $(CPIO) -pdum $(JDK_IMAGE_DIR)/jre )
+  ifeq ($(USING_CYGWIN),true)
+	  $(RM) -rf $(JRE_IMAGE_DIR)/[A-Za-z]:
+	  $(RM) -rf $(JDK_IMAGE_DIR)/jre/[A-Za-z]:
+  endif
+	$(RM) -rf $(JDK_IMAGE_DIR)/jre/man
+	$(CHMOD) a+rx `$(FIND) $(JDK_IMAGE_DIR) -type d`
+
+initial-image-jdk64-bindemos:
+	for dir in bin demo ; do \
+	  ( $(CD) $(OUTPUTDIR) && \
+		$(TAR) cf - `$(FIND) $$dir -name '$(LIBARCH)' -print` | \
+		($(CD) $(JDK_IMAGE_DIR) && $(TAR) xf -) ) ; \
+        done
+
+# Solaris 64 bit image is special
+initial-image-jdk-sol64:: initial-image-jdk-setup \
+			  initial-image-jdk64-bindemos
+
+# DB files to add
+ifdef OPENJDK
+
+initial-image-jdk-db:
+
+else
+
+# Create the list of db *.zip files to bundle with jdk
+ABS_DB_PATH  :=$(call FullPath,$(CLOSED_SHARE_SRC)/db)
+DB_ZIP_LIST := $(shell $(LS) $(ABS_DB_PATH)/*.zip 2>/dev/null)
+# Can't have : in these file names as they are used in a rule
+# below.
+ifdef USING_CYGWIN
+    DB_ZIP_LIST:=$(shell $(CYGPATH) -a -u $(DB_ZIP_LIST))
+endif
+
+# Java DB image. Move the Java DB demo directory into the JDK's demo
+# dir and in the process, rename it to db.  Also remove index.html,
+# since it presumes docs are co-located. Also remove register.html (no
+# longer relevant).
+initial-image-jdk-db: $(DB_ZIP_LIST)
+	$(MKDIR) -p $(JDK_IMAGE_DIR)/db
+	for d in $(DB_ZIP_LIST); do \
+          ($(CD) $(JDK_IMAGE_DIR)/db && $(UNZIP) -o $$d); \
+	done
+	$(CP) $(ABS_DB_PATH)/README-JDK.html $(JDK_IMAGE_DIR)/db
+ifndef NO_DEMOS
+	$(RM) -rf $(NEWDEMODIR)/db
+	$(MV) $(JDK_IMAGE_DIR)/db/demo $(NEWDEMODIR)/db
+	$(CP) $(ABS_DB_PATH)/README-JDK-DEMOS.html $(NEWDEMODIR)/db/
+else
+	$(RM) -rf $(JDK_IMAGE_DIR)/db/demo
+endif
+	$(RM) $(JDK_IMAGE_DIR)/db/index.html $(JDK_IMAGE_DIR)/db/register.html
+endif
+
+# The launcher source files we need for src.zip
+FILES_launcher = $(wildcard $(SHARE_SRC)/bin/*) \
+                 $(wildcard $(PLATFORM_SRC)/bin/java_md*)
+
+# Standard jdk image
+initial-image-jdk:: initial-image-jdk-setup \
+		    initial-image-jdk-db \
+		    $(JDK_DOCFILES) \
+		    $(JDK_DEMOS_AND_SAMPLES_DOCFILES)
+	$(MKDIR) $(JDK_IMAGE_DIR)/lib
+	@#
+	@# Copy in the jars in lib that only belong in the JDK
+	@#
+	for l in $(NOTJRELIBS); do \
+	    if [ -r $(LIBDIR)/$$l ]; then \
+	        $(CP) $(LIBDIR)/$$l $(JDK_IMAGE_DIR)/lib; \
+	    fi; \
+	done
+  ifeq ($(PLATFORM), windows)
+	@#
+	@# lib/
+	@#
+	$(CP) $(LIBDIR)/$(LIB_PREFIX)jvm.$(LIB_SUFFIX) $(JDK_IMAGE_DIR)/lib
+	$(CP) $(LIBDIR)/$(LIB_PREFIX)jawt.$(LIB_SUFFIX) $(JDK_IMAGE_DIR)/lib
+	@#
+	@# bin/
+	@#
+	@# copy all EXE files and only certain DLL files from BINDIR
+	$(MKDIR) -p $(JDK_IMAGE_DIR)/bin
+	$(CP) $(BINDIR)/*$(EXE_SUFFIX) $(JDK_IMAGE_DIR)/bin
+	$(CP) $(BINDIR)/jli.$(LIBRARY_SUFFIX) $(JDK_IMAGE_DIR)/bin
+    ifeq ($(COMPILER_VERSION), VS2010)
+	$(CP) $(BINDIR)/msvc*100.$(LIBRARY_SUFFIX) $(JDK_IMAGE_DIR)/bin
+    endif
+  else # PLATFORM
+	@#
+	@# bin/
+	@#
+	($(CD) $(BINDIR)/.. && $(TAR) cf - \
+	    `$(FIND) bin \( -type f -o -type l \) -print `) | \
+	    ($(CD) $(JDK_IMAGE_DIR) && $(TAR) xf -)
+  endif # PLATFORM
+	@#
+	@# lib/tools.jar
+	@#
+	$(MKDIR) -p $(IMAGES_OUTPUTDIR)/lib
+	$(CD) $(CLASSBINDIR) && \
+	    $(BOOT_JAR_CMD) $(CREATE_JAR_OPTS_NOMANIFEST) $(IMAGES_OUTPUTDIR)/lib/tools.jar \
+	        $(TOOLS) $(BOOT_JAR_JFLAGS)
+	$(CD) $(CLASSBINDIR) && $(java-vm-cleanup)
+	$(CP) $(IMAGES_OUTPUTDIR)/lib/tools.jar $(JDK_IMAGE_DIR)/lib/tools.jar
+	@#
+	@# lib/ct.sym
+	@#
+	$(MKDIR) -p $(IMAGES_OUTPUTDIR)/symbols/META-INF/sym
+	$(BOOT_JAVA_CMD) \
+		-Xbootclasspath/p:$(JAVAC_JAR) \
+		-Xbootclasspath/a:$(JDK_OUTPUTDIR)/classes \
+		-jar $(JAVAC_JAR) $(JAVACFLAGS) \
+	    -XDprocess.packages -proc:only \
+	    -processor com.sun.tools.javac.sym.CreateSymbols \
+	    -Acom.sun.tools.javac.sym.Jar=$(RT_JAR) \
+	    -Acom.sun.tools.javac.sym.Dest=$(IMAGES_OUTPUTDIR)/symbols/META-INF/sym/rt.jar \
+	    $(CORE_PKGS) $(NON_CORE_PKGS) $(EXCLUDE_PROPWARN_PKGS) $(EXPORTED_PRIVATE_PKGS)
+	$(BOOT_JAR_CMD) $(CREATE_JAR_OPTS_NOMANIFEST) $(IMAGES_OUTPUTDIR)/lib/ct.sym \
+	    -C $(IMAGES_OUTPUTDIR)/symbols META-INF $(BOOT_JAR_JFLAGS)
+	$(java-vm-cleanup)
+	$(CP) $(IMAGES_OUTPUTDIR)/lib/ct.sym $(JDK_IMAGE_DIR)/lib/ct.sym
+	@#
+	@# CORBA supported orb.idl and ir.idl should be copied to lib
+	@#
+	$(CP) $(LIBDIR)/orb.idl $(JDK_IMAGE_DIR)/lib/orb.idl
+	$(CP) $(LIBDIR)/ir.idl $(JDK_IMAGE_DIR)/lib/ir.idl
+  ifeq ($(PLATFORM), linux)
+	@#
+	@# on Linux copy jexec from jre/lib to /lib
+	@#
+	$(CP) $(LIBDIR)/jexec $(JDK_IMAGE_DIR)/lib/jexec
+  endif # PLATFORM
+	@#
+	@# src.zip
+	@#
+	$(MKDIR) -p $(JDK_IMAGE_DIR)/src
+	@#
+	@# The '*-*' pattern in the find command excludes files named with dashes,
+	@# such as the java.nio templates for generated classes
+	@#
+	@# The Linux 'tar' command cannot handle the huge command line argument
+	@# generated by the more efficient solaris/windows method of copying files.
+	@# So for Linux, make use of the -T option (like Solaris' -I option) of
+	@# obtaining the list of files from a file. MKS tar has no such option.
+
+  ifneq (,$(findstring $(PLATFORM), linux macosx))
+	for d in $(SOURCE_DIRS); do \
+	  $(RM) $(IMAGES_OUTPUTDIR)/tmp/src-files.list; \
+	  ($(CD) $$d &&  \
+	    for sd in $(SOURCES) ; do \
+              if [ -d $$sd ] ; then \
+	        $(FIND) $$sd $(SOURCE_FILES_filter) \
+		        -name '*.java' -print \
+		        >> $(IMAGES_OUTPUTDIR)/tmp/src-files.list ; \
+	      fi; \
+	    done ; \
+	  ) ; \
+	  if [ -f  $(IMAGES_OUTPUTDIR)/tmp/src-files.list ] ; then \
+	    ($(CD) $$d && $(TAR) cf - -T $(IMAGES_OUTPUTDIR)/tmp/src-files.list ) \
+	       | ($(CD) $(JDK_IMAGE_DIR)/src && $(TAR) xf -); \
+	  fi; \
+	done
+  else
+	for d in $(SOURCE_DIRS); do \
+	  $(RM) $(IMAGES_OUTPUTDIR)/tmp/src-files.list; \
+	  ($(CD) $$d && \
+	    for sd in $(SOURCES) ; do \
+              if [ -d $$sd ] ; then \
+	        $(FIND) $$sd $(SOURCE_FILES_filter) \
+		        -name '*.java' -print \
+		        >> $(IMAGES_OUTPUTDIR)/tmp/src-files.list ; \
+	      fi; \
+	    done ; \
+	  ) ; \
+	  if [ -f  $(IMAGES_OUTPUTDIR)/tmp/src-files.list ] ; then \
+	    ($(CD) $$d && $(TAR) cf - `$(CAT) $(IMAGES_OUTPUTDIR)/tmp/src-files.list`) \
+	      | ($(CD) $(JDK_IMAGE_DIR)/src && $(TAR) xf -); \
+	  fi; \
+	done
+  endif
+	$(RM) $(IMAGES_OUTPUTDIR)/tmp/src-files.list
+	$(CHMOD) -R +w $(JDK_IMAGE_DIR)/src
+	$(MKDIR) -p $(JDK_IMAGE_DIR)/src/launcher
+	$(CP) $(FILES_launcher) $(JDK_IMAGE_DIR)/src/launcher
+	$(CD) $(JDK_IMAGE_DIR)/src && $(ZIPEXE) -qr ../src.zip *
+	$(RM) -r $(JDK_IMAGE_DIR)/src
+	@#
+	@# demo, include
+	@#
+ifndef NO_DEMOS
+	mkdir -p $(JDK_IMAGE_DIR)/demo
+	$(CP) -r -f $(NEWDEMODIR)/* $(JDK_IMAGE_DIR)/demo
+	$(FIND) $(JDK_IMAGE_DIR)/demo -name "_the.*" $(FIND_DELETE)
+endif
+ifndef NO_SAMPLES
+	$(CP) -r -f $(SAMPLEDIR) $(JDK_IMAGE_DIR)
+endif
+	$(CP) -r $(INCLUDEDIR) $(JDK_IMAGE_DIR)
+	@#
+	@# Swing BeanInfo generation
+	@#
+	$(CD) javax/swing/beaninfo && $(MAKE) TEMPDIR=$(IMAGES_OUTPUTDIR)/tmp ABS_TEMPDIR=$(IMAGES_OUTPUTDIR)/tmp swing-1.2-beans
+ifneq ($(PLATFORM), windows)
+	$(call copy-man-pages,$(JDK_IMAGE_DIR),$(JDK_MAN_PAGES))
+endif # !windows
+
+# Trim out files we don't want to ship
+trim-image-jdk::
+	@# Clean out all _the. files.
+	$(FIND) $(JDK_IMAGE_DIR) -name "_the.*" $(FIND_DELETE)
+	@# Remove tools that should not be part of SDK.
+	for t in $(NOTJDKTOOLS); do \
+	    $(RM) $(JDK_IMAGE_DIR)/bin/$${t}$(EXE_SUFFIX); \
+	done
+
+# Get list of binary (COFF or Elf) files in the jdk
+JDK_BIN_LIST=$(TEMPDIR)/jdk-bin-files.list
+$(JDK_BIN_LIST):
+ifeq ($(PLATFORM), windows)
+	$(FIND) $(JDK_IMAGE_DIR)/jre/bin -type f -name \*.exe \
+	   -o -name \*.dll | $(EGREP) -v -i "$(MSVCRNN_DLL)" > $@
+	$(FIND) $(JDK_IMAGE_DIR)/bin -type f -name \*.exe \
+	   -o -name \*.dll | $(EGREP) -v -i "$(MSVCRNN_DLL)" >> $@
+else
+	$(RM) $@
+	$(FIND) $(JDK_IMAGE_DIR)/jre/lib -type f -name \*.$(LIB_SUFFIX) >> $@
+	$(FILE) `$(FIND) $(JDK_IMAGE_DIR)/jre/bin -type f -name \*$(EXE_SUFFIX)` \
+	    | $(EGREP) 'ELF' | $(CUT) -d':' -f1 >> $@
+	$(FILE) `$(FIND) $(JDK_IMAGE_DIR)/bin -type f -name \*$(EXE_SUFFIX)` \
+	    | $(EGREP) 'ELF' | $(CUT) -d':' -f1 >> $@
+endif
+
+# Post process the image (strips and mcs on files we are shipping)
+process-image-jdk:: $(JDK_BIN_LIST)
+ifneq ($(POST_STRIP_PROCESS), )
+	@for f in `$(CAT) $(JDK_BIN_LIST)`; do \
+	  $(CHMOD) u+w $${f}; \
+	  $(ECHO) $(POST_STRIP_PROCESS) $${f}; \
+	  $(POST_STRIP_PROCESS) $${f}; \
+	  $(CHMOD) go-w $${f}; \
+	done
+endif
+ifneq ($(POST_MCS_PROCESS), )
+	@for f in `$(CAT) $(JDK_BIN_LIST)`; do \
+	  $(CHMOD) u+w $${f}; \
+	  $(ECHO) $(POST_MCS_PROCESS) $${f}; \
+	  $(POST_MCS_PROCESS) $${f}; \
+	  $(CHMOD) go-w $${f}; \
+	done
+endif
+	@for f in `$(CAT) $(JDK_BIN_LIST)`; do \
+	  $(call binary_file_verification,$${f}); \
+	done
+	$(RM) $(JDK_BIN_LIST)
+
+###################################################################
+# What did we build
+###################################################################
+
+# The jdk text info file that lives at the root of the install image.
+
+JDK_INFO_FILE = $(JDK_IMAGE_DIR)/release
+JRE_INFO_FILE = $(JRE_IMAGE_DIR)/release
+
+# Common way to emit a line into the release or info file
+define info-file-item # name value
+$(PRINTF) '%s="%s"\n' $1 $2 >> $@
+endef
+
+# Values to emit
+MINIMUM_OS_NAME    := $(REQUIRED_OS_NAME)
+MINIMUM_OS_VERSION := $(REQUIRED_OS_VERSION)
+MINIMUM_OS_ARCH    := $(ARCH)
+ALL_SOURCE_TIPS     = $(shell \
+  if [ -f $(SOURCE_TIPS) ] ; then \
+    $(CAT) $(SOURCE_TIPS) ; \
+  fi)
+
+$(JDK_INFO_FILE): FRC
+	$(prep-target)
+	$(call info-file-item, "JAVA_VERSION", "$(THIS_JDK_VERSION)")
+	$(call info-file-item, "OS_NAME",      "$(MINIMUM_OS_NAME)")
+	$(call info-file-item, "OS_VERSION",   "$(MINIMUM_OS_VERSION)")
+	$(call info-file-item, "OS_ARCH",      "$(MINIMUM_OS_ARCH)")
+	$(call info-file-item, "SOURCE",       "$(ALL_SOURCE_TIPS)")
+
+# Create release file to identify this image
+identify-image-jdk:: $(JDK_INFO_FILE)
+
+$(JRE_INFO_FILE): FRC
+	$(prep-target)
+	$(call info-file-item, "JAVA_VERSION", "$(THIS_JDK_VERSION)")
+	$(call info-file-item, "OS_NAME",      "$(MINIMUM_OS_NAME)")
+	$(call info-file-item, "OS_VERSION",   "$(MINIMUM_OS_VERSION)")
+	$(call info-file-item, "OS_ARCH",      "$(MINIMUM_OS_ARCH)")
+	$(call info-file-item, "SOURCE",       "$(ALL_SOURCE_TIPS)")
+
+# Create release file to identify this image
+identify-image-jre:: $(JRE_INFO_FILE)
+
+images images-clobber::
+	$(ECHO) ">>>Finished making "$@" @ `$(DATE)` ..."
+	$(java-vm-cleanup)
+
+.PHONY: images image-jre image-jdk \
+	initial-image-jre initial-image-jdk \
+	initial-image-jre-sol64 initial-image-jdk-sol64 \
+        initial-image-jdk-setup \
+	initial-image-jdk-db \
+        initial-image-jdk64-bindemos \
+        initial-image-jre-setup \
+	trim-image-jre trim-image-jdk \
+	process-image-jre process-image-jdk \
+	identify-image-jre identify-image-jdk \
+	images-clobber
+
+# Force rule
+FRC:
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/common/Rules.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,357 @@
+#
+# Copyright (c) 1995, 2008, 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.
+#
+
+#
+#
+# Rules shared by all Java makefiles.
+#
+# Used to apply to source file $<, checks code conventions, issues warnings.
+define check-conventions
+  if [ "$(CONVENTION_WATCH)" = "true" ] ; then \
+    if [ "`$(CAT) -n -v -t $< | $(EGREP) -v '\@\(\#\)' | $(EGREP) '\^[MLI]'`" != "" ] ; then \
+      $(ECHO) "WARNING: File contains tabs, ^M, or ^L characters: $<"; \
+      if [ "$(CONVENTION_DETAILS)" = "true" ] ; then \
+        $(CAT) -n -v -t $< | $(EGREP) -v '\@\(\#\)' | $(EGREP) '\^[MLI]' ; \
+      fi; \
+    fi; \
+  fi
+endef
+
+# Make sure the default rule is all
+rules_default_rule: all
+
+#
+# Directory set up.  (Needed by deploy workspace)
+# 
+$(CLASSDESTDIR) $(CLASSHDRDIR) $(OBJDIR) $(OUTPUTDIR) $(BINDIR) $(LIBDIR) $(LIBDIR)/$(LIBARCH) $(TEMPDIR) $(EXTDIR):
+	$(MKDIR) -p $@ 
+
+#
+# All source tree areas for java/properties files (a few may be closed)
+#
+ifeq ($(PLATFORM), macosx)
+  ifdef OPENJDK
+    ALL_CLASSES_SRC = $(call JavaSrcDirList,,classes)
+  else
+    ALL_CLASSES_SRC = \
+	  $(CLOSED_SHARE_SRC)/classes $(CLOSED_PLATFORM_SRC)/classes \
+	  $(call JavaSrcDirList,,classes)
+  endif
+else
+  ifdef OPENJDK
+    ALL_CLASSES_SRC = $(SHARE_SRC)/classes $(PLATFORM_SRC)/classes
+  else
+    ALL_CLASSES_SRC = \
+	  $(CLOSED_SHARE_SRC)/classes $(CLOSED_PLATFORM_SRC)/classes \
+	  $(SHARE_SRC)/classes $(PLATFORM_SRC)/classes
+  endif
+endif
+
+#
+# If AUTO_FILES_PROPERTIES_DIRS used, automatically find properties files
+#
+ifdef AUTO_FILES_PROPERTIES_DIRS
+  AUTO_FILES_PROPERTIES_FILTERS1  = $(SCM_DIRs) ',*'
+  AUTO_FILES_PROPERTIES_FILTERS1 += $(AUTO_PROPERTIES_PRUNE)
+  FILES_properties_find_filters1 = $(AUTO_FILES_PROPERTIES_FILTERS1:%=-name % -prune -o)
+  FILES_properties_auto1 := \
+     $(shell \
+        for dir in $(ALL_CLASSES_SRC) ; do \
+          if [ -d $$dir ] ; then \
+            ( $(CD) $$dir; \
+              for sdir in $(AUTO_FILES_PROPERTIES_DIRS); do \
+                if [ -d $$sdir ] ; then \
+                  $(FIND) $$sdir $(FILES_properties_find_filters1) \
+                                 -name '*.properties' -print ; \
+                fi ; \
+              done \
+            ); \
+          fi; \
+        done \
+      )
+else
+  FILES_properties_auto1 =
+endif # AUTO_FILES_PROPERTIES_DIRS
+
+# Add any automatically found properties files to the properties file list
+FILES_properties += $(FILES_properties_auto1)
+
+#
+# Get Resources help
+#
+include $(JDK_TOPDIR)/makefiles/common/internal/Resources.gmk
+
+#
+# Compiling .java files.
+#
+
+#
+# Automatically add to FILES_java if AUTO_FILES_JAVA_DIRS is defined
+#
+#    There are two basic types of sources, normal source files and the
+#    generated ones. The Normal sources will be located in:
+#         $(ALL_CLASSES_SRC)
+#    The generated sources, which might show up late to dinner, are at:
+#         $(GENSRCDIR)
+#    and since they could be generated late, we need to be careful that
+#    we look for these sources late and not use the ':=' assignment which
+#    might miss their generation.
+
+ifdef AUTO_FILES_JAVA_DIRS
+  # Filter out these files or directories
+  AUTO_FILES_JAVA_SOURCE_FILTERS1  = $(SCM_DIRs) ',*'
+  AUTO_FILES_JAVA_SOURCE_FILTERS2  = 
+  AUTO_FILES_JAVA_SOURCE_FILTERS1 += $(AUTO_JAVA_PRUNE)
+  AUTO_FILES_JAVA_SOURCE_FILTERS2 += $(AUTO_JAVA_PRUNE)
+
+  # First list is the normal sources that should always be there,
+  #   by using the ':=', which means we do this processing once.
+  FILES_java_find_filters1 = $(AUTO_FILES_JAVA_SOURCE_FILTERS1:%=-name % -prune -o)
+  FILES_java_auto1 := \
+     $(shell \
+        for dir in $(ALL_CLASSES_SRC) ; do \
+          if [ -d $$dir ] ; then \
+            ( $(CD) $$dir; \
+              for sdir in $(AUTO_FILES_JAVA_DIRS); do \
+                if [ -d $$sdir ] ; then \
+                  $(FIND) $$sdir $(FILES_java_find_filters1) \
+                                 -name '*.java' -print ; \
+                fi ; \
+              done \
+            ); \
+          fi; \
+        done \
+      )
+  # Second list is the generated sources that should be rare, but will likely
+  #   show up late and we need to look for them at the last minute, so we
+  #   cannot use the ':=' assigment here. But if this gets expanded multiple
+  #   times, the if tests should make them relatively cheap.
+  FILES_java_find_filters2 = $(AUTO_FILES_JAVA_SOURCE_FILTERS2:%=-name % -prune -o)
+  FILES_java_auto2 = \
+     $(shell \
+        for dir in $(GENSRCDIR); do \
+          if [ -d $$dir ] ; then \
+            ( $(CD) $$dir; \
+              for sdir in $(AUTO_FILES_JAVA_DIRS); do \
+                if [ -d $$sdir ] ; then \
+                  $(FIND) $$sdir $(FILES_java_find_filters2) \
+                                 -name '*.java' -print ; \
+                fi ; \
+              done \
+            ); \
+          fi; \
+        done \
+      )
+else
+  FILES_java_auto1 =
+  FILES_java_auto2 =
+endif
+
+# Add all found java sources to FILES_java macro (if AUTO_FILES_JAVA_DIRS used)
+FILES_java += $(FILES_java_auto1) $(FILES_java_auto2)
+
+# File that will hold java source names that need compiling
+JAVA_SOURCE_LIST=$(TEMPDIR)/.classes.list
+
+# Add a java source to the list
+define add-java-file
+$(ECHO) "$?" >> $(JAVA_SOURCE_LIST)
+$(check-conventions)
+endef
+
+ifdef DEMOS
+$(CLASSDESTDIR)/%.class: $(SOURCEPATH)/%.java
+	$(add-java-file)
+#Redirect zh_HK java files to tmp directory which created from zh_TW
+#$(CLASSDESTDIR)/%_zh_HK.class: $(JDK_L10N_TMP_OUTPUTDIR)/%_zh_HK.java
+#	$(add-java-file)
+else
+
+#
+# Rules for closed files
+#
+# If filenames are duplicated between open/closed workspaces, prefer
+# the closed files.
+#
+# Rule ordering in this Makefile is important: some targets depend
+# on closed files replacing open ones, and thus the closed file rules
+# must be found before the open ones.
+#
+# Don't reorder without consulting teams that depend on this behavior.
+#
+ifndef OPENJDK
+$(CLASSDESTDIR)/%.class: $(CLOSED_PLATFORM_SRC)/classes/%.java
+	$(add-java-file)
+$(CLASSDESTDIR)/%.class: $(CLOSED_SHARE_SRC)/classes/%.java
+	$(add-java-file)
+endif
+
+$(CLASSDESTDIR)/%.class: $(GENSRCDIR)/%.java
+	$(add-java-file)
+
+ifeq ($(PLATFORM), macosx)
+$(CLASSDESTDIR)/%.class: $(JDK_TOPDIR)/src/macosx/classes/%.java
+	$(add-java-file)
+endif
+$(CLASSDESTDIR)/%.class: $(PLATFORM_SRC)/classes/%.java
+	$(add-java-file)
+
+$(CLASSDESTDIR)/%.class: $(SHARE_SRC)/classes/%.java
+	$(add-java-file)
+
+#Redirect zh_HK java files to tmp directory which created from zh_TW
+$(CLASSDESTDIR)/%_zh_HK.class: $(JDK_L10N_TMP_OUTPUTDIR)/%_zh_HK.java
+	$(add-java-file)
+endif
+
+# List of class files needed
+FILES_class = $(FILES_java:%.java=$(CLASSDESTDIR)/%.class)
+
+# Got to include exported files.
+FILES_class += $(FILES_export:%.java=$(CLASSDESTDIR)/%.class)
+
+# Construct list of java sources we need to compile
+source_list_prime:
+	mkdir -p $(TEMPDIR)
+# Note that we slip resources in so that compiled properties files get created:
+$(JAVA_SOURCE_LIST) : source_list_prime resources $(FILES_class)
+	touch $@
+
+.delete.classlist:
+	rm -f $(JAVA_SOURCE_LIST)
+
+# Make sure all newer sources are compiled (in a batch)
+classes : $(CLASSES_INIT) .delete.classlist .compile.classlist
+
+.compile.classlist : $(JAVA_SOURCE_LIST)
+	$(MKDIR) -p $(CLASSDESTDIR)
+	$(RM) $<.filtered
+	$(CAT) $< | $(NAWK) 'length>0' | $(SORT) -u > $<.filtered
+	numfiles=`$(WC) -l < $<.filtered` ; \
+	  if [ $$numfiles -ge 1 ] ; then \
+	    $(ECHO) "# Java sources to be compiled: (listed in file $<)"; \
+	    $(CAT) $<.filtered; \
+	    $(ECHO) "# Running javac: $$numfiles files; in $(CURDIR)"; \
+	    $(ECHO) $(JAVAC_CMD) -sourcepath "$(SOURCEPATH)" -d $(CLASSDESTDIR) @$<.filtered; \
+	    $(JAVAC_CMD) -sourcepath "$(SOURCEPATH)" -d $(CLASSDESTDIR) @$<.filtered && \
+	    $(ECHO) "# javac finished"; \
+	  fi
+	$(java-vm-cleanup)
+
+clobber clean::
+	rm -f $(JAVA_SOURCE_LIST)
+
+ifndef DONT_CLOBBER_CLASSES
+  ifndef PACKAGE
+    DONT_CLOBBER_CLASSES = true
+  else
+    DONT_CLOBBER_CLASSES = false
+  endif
+endif
+
+packages.clean:
+ifeq ($(DONT_CLOBBER_CLASSES),false)
+  ifdef AUTO_FILES_JAVA_DIRS
+	for sdir in $(AUTO_FILES_JAVA_DIRS); do \
+	  echo "rm -f -r $(CLASSDESTDIR)/$$sdir"; \
+	  rm -f -r $(CLASSDESTDIR)/$$sdir; \
+        done
+  else
+	rm -f -r $(CLASSDESTDIR)/$(PKGDIR)
+  endif
+endif
+
+ifdef DEMOS
+classes.clean:
+	rm -f -r $(DEMODST) $(CLASSDESTDIR)
+else
+classes.clean: packages.clean
+	rm -f $(JAVA_SOURCE_LIST)
+endif
+
+#
+# C and C++ make dependencies
+#
+include $(JDK_TOPDIR)/makefiles/common/internal/NativeCompileRules.gmk
+
+#
+# Running Javah to generate stuff into CClassHeaders.
+#
+
+ifdef FILES_export
+
+CLASSES.export  = $(subst /,.,$(FILES_export:%.java=%))
+CLASSES.export += $(subst /,.,$(FILES_export2:%.java=%))
+CLASSES.export += $(subst /,.,$(FILES_export3:%.java=%))
+CLASSES_export  = $(FILES_export:%.java=$(CLASSDESTDIR)/%.class)
+CLASSES_export += $(FILES_export2:%.java=$(CLASSDESTDIR)/%.class)
+CLASSES_export += $(FILES_export3:%.java=$(CLASSDESTDIR)/%.class)
+
+# Fix when deploy workspace makefiles don't depend on this name
+#CLASSHDR_DOTFILE=$(CLASSHDRDIR)/.classheaders
+
+CLASSHDR_DOTFILE=$(OBJDIR)/.class.headers.$(ARCH)
+
+classheaders: classes $(CLASSHDR_DOTFILE)
+
+$(CLASSHDR_DOTFILE): $(CLASSES_export)
+	$(prep-target)
+	echo "# Running javah:"
+	echo $(UNCYGDRIVE) $(JAVAH_CMD) -d $(CLASSHDRDIR)/ \
+		$(CLASSES.export) $(subst $$,\$$,$(EXPORTED_inner))
+	$(UNCYGDRIVE) $(JAVAH_CMD) -d $(CLASSHDRDIR)/ \
+		$(CLASSES.export) $(subst $$,\$$,$(EXPORTED_inner))
+	$(java-vm-cleanup)
+	touch $@
+
+classheaders.clean:
+	rm -f $(CLASSHDR_DOTFILE)
+	rm -f -r $(CLASSHDRDIR)
+
+else # FILES_export
+
+classheaders: classes
+
+classheaders.clean: 
+
+endif # FILES_export
+
+clean clobber:: classheaders.clean classes.clean .delete.classlist
+
+# 
+# Default dependencies
+#
+
+all: build
+
+build: classheaders
+
+default: all
+
+.PHONY: all build clean clobber \
+        .delete.classlist classes .compile.classlist classes.clean \
+	 classheaders classheaders.clean \
+	 batch_compile
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/common/Subdirs.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,148 @@
+# Copyright (c) 2010, 2011, 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.
+#
+
+#
+# Generic makefile for building subdirectories.
+#
+# SUBDIRS variables to specify the subdirectories to build recursively.
+# Makefile has to include Subdirs.gmk AFTER all SUBDIRS variables are
+# defined.
+#
+# This file does not contain any rule.
+#
+# WARNING: This file is shared with other workspaces.
+#          So when it includes other files, it must use JDK_TOPDIR.
+
+#
+# SUBDIRS          subdirs for the base module always get built
+# SUBDIRS_<group>  subdirs for the named group
+#
+# By default, subdirs specified in the SUBDIRS and all SUBDIRS_* 
+# variables will be built.
+#
+# Variables of the currently supported groups are:
+#  SUBDIRS_desktop    
+#  SUBDIRS_management
+#  SUBDIRS_enterprise
+#  SUBDIRS_misc
+#  SUBDIRS_tools
+# 
+# Change to the above list also need to update 
+# make/common/shared/Sanity.gmk.  NOTE: this list is subject
+# to change.
+# 
+# Eventually we want to restructure the make directory
+# according to these grouping (e.g. make/desktop/...) and
+# the SUBDIRS_<group> variables would not be needed.
+# 
+
+# Iterate the subdirectories specified in $1.
+# - cd into each subdir and make them
+
+# Given a SUBDIRS* list (first argument), cd into them and make them
+#   SUBDIRS_MAKEFLAGS      Make settings for a subdir make
+#   SUBDIRS_MAKEFLAGS-$@   Make settings specific to this target
+#
+define subdirs-group-loop
+$(ECHO) "Begin Processing SUBDIRS: $($1)"
+for i in DUMMY $($1) ; do \
+  if [ "$$i" != "DUMMY" ] ; then \
+    $(MAKE) -C $$i $@ $(SUBDIRS_MAKEFLAGS) $(SUBDIRS_MAKEFLAGS-$@) \
+            FULL_VERSION=$(FULL_VERSION) RELEASE=$(RELEASE) || exit 1; \
+  fi ; \
+done
+$(ECHO) "Done Processing SUBDIRS: $($1)"
+endef
+
+# Given a OTHERSUBDIRS list, cd into them and make them (extra loop define)
+#   OTHERSUBDIRS_MAKEFLAGS      Make settings for a subdir make
+define OTHERSUBDIRS-loop
+$(ECHO) "Begin Processing OTHERSUBDIRS: $(OTHERSUBDIRS)"
+for i in DUMMY $(OTHERSUBDIRS) ; do \
+  if [ "$$i" != "DUMMY" ] ; then \
+    $(MAKE) -C $$i $@ $(OTHERSUBDIRS_MAKEFLAGS) \
+            FULL_VERSION=$(FULL_VERSION) RELEASE=$(RELEASE) || exit 1; \
+  fi ; \
+done
+$(ECHO) "Done Processing OTHERSUBDIRS: $(OTHERSUBDIRS)"
+endef
+
+#
+# Iterate the list specified in SUBDIRS_<group> only if
+# SUBDIRS_<group> is set.
+#
+ifdef SUBDIRS_desktop 
+  define subdirs-desktop-loop
+      $(call subdirs-group-loop,SUBDIRS_desktop)
+  endef
+else   
+  define subdirs-desktop-loop
+  endef
+endif   # SUBDIRS_desktop 
+
+ifdef SUBDIRS_enterprise 
+  define subdirs-enterprise-loop
+      $(call subdirs-group-loop,SUBDIRS_enterprise)
+  endef
+else   
+define subdirs-enterprise-loop
+endef
+endif   # SUBDIRS_enterprise 
+
+ifdef SUBDIRS_management 
+  define subdirs-management-loop
+      $(call subdirs-group-loop,SUBDIRS_management)
+  endef
+else   
+  define subdirs-management-loop
+  endef
+endif   # SUBDIRS_management 
+
+ifdef SUBDIRS_misc 
+  define subdirs-misc-loop
+      $(call subdirs-group-loop,SUBDIRS_misc)
+  endef
+else   
+  define subdirs-misc-loop
+  endef
+endif   # SUBDIRS_misc 
+
+ifdef SUBDIRS_tools 
+  define subdirs-tools-loop
+      $(call subdirs-group-loop,SUBDIRS_tools)
+  endef
+else   
+  define subdirs-tools-loop
+  endef
+endif   # SUBDIRS_tools 
+
+#
+# If BUILD_MODULES is not set or it's set to "all",
+# iterate all groups.
+SUBDIRS_all = $(SUBDIRS) $(SUBDIRS_desktop) $(SUBDIRS_enterprise) \
+	      $(SUBDIRS_management) $(SUBDIRS_misc) $(SUBDIRS_tools)
+
+define SUBDIRS-loop
+  $(call subdirs-group-loop,SUBDIRS_all)
+endef
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/common/internal/Defs-corba.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,63 @@
+#
+# Copyright (c) 1997, 2007, 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.
+#
+
+# The specific packages that come from or go to rt.jar and tools.jar
+IMPORT_RT_PACKAGES +=  \
+     org/omg/CORBA \
+     org/omg/CORBA_2_3 \
+     org/omg/CosNaming \
+     org/omg/Dynamic \
+     org/omg/DynamicAny \
+     org/omg/IOP \
+     org/omg/Messaging \
+     org/omg/PortableInterceptor \
+     org/omg/PortableServer \
+     org/omg/SendingContext \
+     org/omg/stub/java/rmi \
+     javax/rmi \
+     javax/rmi/CORBA \
+     javax/activity \
+     javax/transaction \
+     com/sun/corba/se/GiopIDL \
+     com/sun/corba/se/PortableActivationIDL \
+     com/sun/corba/se/impl \
+     com/sun/corba/se/internal \
+     com/sun/corba/se/org/omg/CORBA \
+     com/sun/corba/se/pept \
+     com/sun/corba/se/spi \
+     com/sun/org/omg/CORBA \
+     com/sun/org/omg/SendingContext \
+     com/sun/tools/corba/se/logutil \
+     sun/corba \
+     sun/rmi/rmic/iiop
+
+IMPORT_TOOLS_PACKAGES += \
+     com/sun/tools/corba/se/idl \
+     sun/rmi/rmic/iiop
+
+IMPORT_CORBA_BINARIES += \
+     lib/orb.idl \
+     lib/ir.idl
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/common/internal/Defs-jaxp.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,53 @@
+#
+# Copyright (c) 1997, 2007, 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.
+#
+
+# The specific packages that come from or go to rt.jar and tools.jar
+IMPORT_RT_PACKAGES += \
+     org/w3c/dom \
+     org/xml/sax \
+     javax/xml/XMLConstants.class \
+     javax/xml/datatype \
+     javax/xml/namespace \
+     javax/xml/parsers \
+     javax/xml/stream \
+     javax/xml/transform \
+     javax/xml/validation \
+     javax/xml/xpath \
+     com/sun/java_cup \
+     com/sun/org/apache/bcel \
+     com/sun/org/apache/regexp \
+     com/sun/org/apache/xalan \
+     com/sun/org/apache/xerces \
+     com/sun/org/apache/xml/internal/dtm \
+     com/sun/org/apache/xml/internal/res \
+     com/sun/org/apache/xml/internal/resolver \
+     com/sun/org/apache/xml/internal/serialize \
+     com/sun/org/apache/xml/internal/serializer \
+     com/sun/org/apache/xml/internal/utils \
+     com/sun/org/apache/xpath \
+     com/sun/xml/internal/stream
+
+IMPORT_TOOLS_PACKAGES +=
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/common/internal/Defs-jaxws.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,63 @@
+#
+# Copyright (c) 1997, 2011, 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.
+#
+
+# The specific packages that come from or go to rt.jar and tools.jar
+IMPORT_RT_PACKAGES += \
+     META-INF/mailcap.default \
+     META-INF/mimetypes.default \
+     javax/activation \
+     com/sun/activation \
+     javax/xml/bind \
+     javax/xml/soap \
+     javax/xml/ws \
+     javax/jws \
+     javax/annotation \
+     com/sun/xml/internal/bind \
+     com/sun/xml/internal/fastinfoset \
+     com/sun/xml/internal/messaging \
+     com/sun/xml/internal/org/jvnet \
+     com/sun/xml/internal/txw2 \
+     com/sun/xml/internal/ws \
+     com/sun/xml/internal/stream/buffer
+
+NOT_USED_PACKAGES += \
+     com/sun/tools/internal/txw2
+
+IMPORT_TOOLS_PACKAGES += \
+     com/sun/codemodel \
+     com/sun/istack/internal/tools \
+     com/sun/xml/internal/rngom \
+     com/sun/xml/internal/xsom \
+     com/sun/xml/internal/dtdparser \
+     com/sun/tools/internal/xjc \
+     com/sun/tools/internal/ws \
+     com/sun/tools/internal/jxc \
+     org/relaxng \
+     META-INF/services/com.sun.tools.internal.ws.wscompile.Plugin \
+     META-INF/services/com.sun.tools.internal.xjc.Plugin \
+     com/sun/tools/internal/jxc/ap \
+     com/sun/tools/internal/ws/wscompile/plugin/at_generated
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/common/internal/Defs-langtools.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,42 @@
+#
+# Copyright (c) 1997, 2008, 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.
+#
+
+# The specific packages that come from or go to rt.jar and tools.jar
+
+IMPORT_RT_PACKAGES +=               \
+      javax/annotation/processing   \
+      javax/lang/model              \
+      javax/tools
+
+IMPORT_TOOLS_PACKAGES +=            \
+      com/sun/javadoc               \
+      com/sun/source                \
+      com/sun/tools/classfile       \
+      com/sun/tools/doclets         \
+      com/sun/tools/javac           \
+      com/sun/tools/javadoc         \
+      com/sun/tools/javah           \
+      com/sun/tools/javap
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/common/internal/ImportComponents.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,173 @@
+#
+# Copyright (c) 1997, 2008, 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)
+
+# JDK jars where component classes come from as second choice
+JDK_RT_JAR    = $(JDK_IMPORT_PATH)/jre/lib/rt.jar
+JDK_TOOLS_JAR = $(JDK_IMPORT_PATH)/lib/tools.jar
+JDK_RESOURCES_JAR = $(JDK_IMPORT_PATH)/jre/lib/resources.jar
+
+# The specific packages that come from or go to rt.jar and tools.jar
+#   IF the component deliverables are not available.
+IMPORT_TOOLS_PACKAGES =
+IMPORT_RT_PACKAGES =
+
+# The following will add to IMPORT_TOOLS_PACKAGES and/or IMPORT_RT_PACKAGES
+ifndef LANGTOOLS_DIST
+  include $(BUILDDIR)/common/internal/Defs-langtools.gmk
+endif
+ifndef CORBA_DIST
+  include $(BUILDDIR)/common/internal/Defs-corba.gmk
+endif
+ifndef JAXP_DIST
+  include $(BUILDDIR)/common/internal/Defs-jaxp.gmk
+endif
+ifndef JAXWS_DIST
+  include $(BUILDDIR)/common/internal/Defs-jaxws.gmk
+endif
+
+# Clean up these lists so empty lists are empty
+IMPORT_TOOLS_PACKAGES := $(strip $(IMPORT_TOOLS_PACKAGES))
+IMPORT_RT_PACKAGES    := $(strip $(IMPORT_RT_PACKAGES))
+
+# Relative paths to import component deliverables
+CLASSES_JAR_FILE=lib/classes.jar
+SRC_ZIP_FILE=lib/src.zip
+BIN_ZIP_FILE=lib/bin.zip
+DOC_ZIP_FILE=lib/doc.zip
+
+#################################################################
+# Macros:
+
+# Importing component class files
+define import-one-classes
+if [ "$($1)" != "" ] ; then \
+  $(ECHO) "Importing classes from component $1"; \
+  $(call Unjar,$2,$($1)/$(CLASSES_JAR_FILE),); \
+fi
+endef
+
+# Importing optional component doc files (for man pages?)
+define import-one-docs
+if [ "$($1)" != "" -a -f $($1)/$(DOC_ZIP_FILE) ] ; then \
+  $(ECHO) "Importing docs from component $1"; \
+  $(call Unzipper,$2,$($1)/$(DOC_ZIP_FILE)); \
+fi
+endef
+
+# Importing optional component src files (for jdk src.zip and javadoc)
+define import-one-sources
+if [ "$($1)" != "" ] ; then \
+  $(ECHO) "Importing sources from component $1"; \
+  $(call Unzipper,$2,$($1)/$(SRC_ZIP_FILE)); \
+fi
+endef
+
+# Importing optional component bin files (for install image)
+define import-one-binaries
+if [ "$($1)" != "" -a -f $($1)/$(BIN_ZIP_FILE) ] ; then \
+  $(ECHO) "Importing binaries from component $1"; \
+  $(call Unzipper,$2,$($1)/$(BIN_ZIP_FILE)); \
+fi
+endef
+
+# Unzip zip file $2 into directory $1 (if $2 exists)
+#   Warning: $2 must be absolute path not relative
+define Unzipper
+( \
+  $(MKDIR) -p $1; \
+  ( $(CD) $1 && $(UNZIP) -o $2 > /dev/null ) \
+)
+endef
+
+# Unjar directories $3 from jar file $2 into directory $1 (if $2 exists)
+#   Warning: $2 must be absolute path not relative
+define Unjar
+( \
+  $(MKDIR) -p $1; \
+  ( $(CD) $1 && $(BOOT_JAR_CMD) xf $2 $3 $(BOOT_JAR_JFLAGS) ) && \
+  ( $(CD) $1 && $(java-vm-cleanup) ) \
+)
+endef
+
+# Import all component sources into directory $1
+define import-component-sources
+$(call import-one-sources,LANGTOOLS_DIST,$1)
+$(call import-one-sources,CORBA_DIST,$1)
+$(call import-one-sources,JAXP_DIST,$1)
+$(call import-one-sources,JAXWS_DIST,$1)
+endef
+
+# Import all component docs into directory $1 (optional)
+define import-component-docs
+$(call import-one-docs,LANGTOOLS_DIST,$1)
+$(call import-one-docs,CORBA_DIST,$1)
+$(call import-one-docs,JAXP_DIST,$1)
+$(call import-one-docs,JAXWS_DIST,$1)
+endef
+
+# Import all component bins into directory $1 (optional)
+define import-component-binaries
+$(call import-one-binaries,LANGTOOLS_DIST,$1)
+$(call import-one-binaries,CORBA_DIST,$1)
+$(call import-one-binaries,JAXP_DIST,$1)
+$(call import-one-binaries,JAXWS_DIST,$1)
+if [ "$(CORBA_DIST)" = "" ] ; then \
+  $(MKDIR) -p $(OUTPUTDIR)/lib ; \
+  ( $(CD) $(JDK_IMPORT_PATH) && $(CP) $(IMPORT_CORBA_BINARIES) $(ABS_OUTPUTDIR)/lib ) ; \
+fi 
+endef
+
+# Import all component classes into directory $1
+#   Here we special case classes coming from JDK when component not supplied
+define import-component-classes
+$(ECHO) "Import classes from $(JDK_IMPORT_PATH)"
+if [ "$(IMPORT_TOOLS_PACKAGES)" != "" ] ; then \
+  $(call Unjar,$1,$(JDK_RESOURCES_JAR),$(IMPORT_TOOLS_PACKAGES)); \
+  $(call Unjar,$1,$(JDK_TOOLS_JAR),$(IMPORT_TOOLS_PACKAGES)); \
+fi
+if [ "$(IMPORT_RT_PACKAGES)" != "" ] ; then \
+  $(call Unjar,$1,$(JDK_RESOURCES_JAR),$(IMPORT_RT_PACKAGES)); \
+  $(call Unjar,$1,$(JDK_RT_JAR),$(IMPORT_RT_PACKAGES)); \
+fi
+$(call import-one-classes,LANGTOOLS_DIST,$1)
+$(call import-one-classes,CORBA_DIST,$1)
+$(call import-one-classes,JAXP_DIST,$1)
+$(call import-one-classes,JAXWS_DIST,$1)
+endef
+
+# Clean up import files
+define import-component-sources-clean
+$(RM) -r $1
+endef
+define import-component-docs-clean
+$(RM) -r $1
+endef
+define import-component-classes-clean
+$(RM) -r $(IMPORT_TOOLS_PACKAGES:%=$1/%)
+$(RM) -r $(IMPORT_RT_PACKAGES:%=$1/%)
+endef
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/common/internal/NativeCompileRules.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,238 @@
+#
+# Copyright (c) 1995, 2007, 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.
+#
+
+#
+# Native C/C++ Compile Rules
+#
+
+-include $(SPEC)
+-include $(VARS)
+
+COMPILE.c = $(CC) $(CFLAGS) $(CPPFLAGS) -c
+COMPILE.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c
+
+#
+# INCREMENTAL_BUILD: Record the #include file dependencies.
+#
+# NOTE: We build make include files with the suffix
+#       $(DEPEND_SUFFIX) on every compilation. These are initially 
+#       created as temp files just in case a ^C kills it in the middle.
+#	Compiler is smart enough to handle ^C and not create the .o file, or
+#	is supposed to be that smart, but the .$(DEPEND_SUFFIX) file 
+#       creation here isn't.
+#	These .$(DEPEND_SUFFIX) files are included by Library.gmk and 
+#       Program.gmk, when they exist (Search for 'make dependencies').
+#
+
+ifeq ($(INCREMENTAL_BUILD),true)
+
+$(OBJDIR)/%.$(DEPEND_SUFFIX): %.c
+	@$(prep-target)
+	@$(ECHO) "Creating $@"
+	@$(RM) $@.temp
+	@$(CC) $(CC_DEPEND) $(CPPFLAGS) $< 2> $(DEV_NULL) | \
+	    $(CC_DEPEND_FILTER) > $@.temp
+	@$(MV) $@.temp $@
+
+$(OBJDIR)/%.$(DEPEND_SUFFIX): %.cpp
+	@$(prep-target)
+	@$(ECHO) "Creating $@"
+	@$(RM) $@.temp
+	@$(CXX) $(CC_DEPEND) $(CPPFLAGS) $(CXXFLAGS) $< 2> $(DEV_NULL) | \
+	    $(CC_DEPEND_FILTER) > $@.temp
+	@$(MV) $@.temp $@
+
+endif # INCREMENTAL_BUILD
+
+#
+# C, C++, asm files.
+#
+# Normal or parallel compile rule is the same, but batch compiles require
+#  we save up the sources files that use the same compile line so that we
+#  can do one compile line.
+#
+
+ifneq ($(COMPILE_APPROACH), batch)
+
+$(OBJDIR)/%.$(OBJECT_SUFFIX): %.c
+	@$(prep-target)
+	$(COMPILE.c) $(CC_OBJECT_OUTPUT_FLAG)$@ $(CFLAGS_GPROF) $<
+	@$(check-conventions)
+
+$(OBJDIR)/%.$(OBJECT_SUFFIX): %.cpp
+	@$(prep-target)
+	$(COMPILE.cc) $(CC_OBJECT_OUTPUT_FLAG)$@ $(CFLAGS_GPROF) $<
+	@$(check-conventions)
+
+else
+  
+  #
+  # Batch compiling might be faster if the compiler was smart about recognizing
+  #   optimization opportunities available when all files are being compiled
+  #   the same way. Unfortunately this is rare.
+  #   Automatic pre-compiled headers (pch) might be a possibility so we
+  #   add any auto pch options here.
+  # So we save all the source files that have the same compile line as the
+  #   first file. A normal compile pass is made after the batch compile
+  #   to catch anything missed.
+  # If the compilers had a -o option that allowed us to direct where to
+  #   write the object files to, then we would not need to save the object
+  #   file list or move them from the make directory to the build directory.
+  #
+
+  # Source names
+  COMPILE_LIST.c         = $(OBJDIR)/.source_names_c
+  COMPILE_LIST.cpp       = $(OBJDIR)/.source_names_cpp
+
+  # Object file list
+  COMPILE_OBJ_LIST.c     = $(OBJDIR)/.obj_names_c
+  COMPILE_OBJ_LIST.cpp   = $(OBJDIR)/.obj_names_cpp
+  
+  # The compile line
+  COMPILE_BATCH.c        = $(OBJDIR)/.compile_c
+  COMPILE_BATCH.cpp      = $(OBJDIR)/.compile_cpp
+
+  # The compile line for the current target
+  THIS_COMPILE_BATCH.c   = $(COMPILE_BATCH.c)-$(@F)
+  THIS_COMPILE_BATCH.cpp = $(COMPILE_BATCH.cpp)-$(@F)
+
+$(OBJDIR)/%.$(OBJECT_SUFFIX): %.c
+	@$(prep-target)
+	@$(ECHO) "$(COMPILE.c) $(CFLAGS_GPROF)" > $(THIS_COMPILE_BATCH.c)
+	@if [ ! -s $(COMPILE_BATCH.c) ] ; then \
+	  $(CP) $(THIS_COMPILE_BATCH.c) $(COMPILE_BATCH.c) ; \
+	  $(ECHO) $< > $(COMPILE_LIST.c); \
+	  $(ECHO) $(@F) > $(COMPILE_OBJ_LIST.c); \
+	elif [ "`$(DIFF) -w -b $(THIS_COMPILE_BATCH.c) $(COMPILE_BATCH.c)`" \
+	       = "" ] ; then \
+	  $(ECHO) $< >> $(COMPILE_LIST.c); \
+	  $(ECHO) $(@F) >> $(COMPILE_OBJ_LIST.c); \
+	fi
+	@$(RM) $(THIS_COMPILE_BATCH.c)
+	@$(check-conventions)
+
+$(OBJDIR)/%.$(OBJECT_SUFFIX): %.cpp
+	@$(prep-target)
+	@$(ECHO) "$(COMPILE.cc) $(CFLAGS_GPROF)" > $(THIS_COMPILE_BATCH.cpp)
+	@if [ ! -s $(COMPILE_BATCH.cpp) ] ; then \
+	  $(CP) $(THIS_COMPILE_BATCH.cpp) $(COMPILE_BATCH.cpp) ; \
+	  $(ECHO) $< > $(COMPILE_LIST.cpp); \
+	  $(ECHO) $(@F) > $(COMPILE_OBJ_LIST.cpp); \
+	elif [ "`$(DIFF) -w -b $(THIS_COMPILE_BATCH.cpp) $(COMPILE_BATCH.cpp)`"\
+	       = "" ] ; then \
+	  $(ECHO) $< >> $(COMPILE_LIST.cpp); \
+	  $(ECHO) $(@F) >> $(COMPILE_OBJ_LIST.cpp); \
+	fi
+	@$(RM) $(THIS_COMPILE_BATCH.cpp)
+	@$(check-conventions)
+
+batch_compile: $(FILES_o)
+	@$(ECHO) "Doing batch compilations"
+	@if [ -s $(COMPILE_LIST.c) ] ; then \
+	  $(ECHO) "$(COMPILE.c) $(CFLAGS_GPROF) $(AUTOMATIC_PCH_OPTION) \
+	   `$(CAT) $(COMPILE_LIST.c)`" ; \
+	  ( $(COMPILE.c) $(CFLAGS_GPROF) $(AUTOMATIC_PCH_OPTION) \
+	    `$(CAT) $(COMPILE_LIST.c)` && \
+	    $(ECHO) "$(MV) `$(CAT) $(COMPILE_OBJ_LIST.c)` $(OBJDIR)" && \
+	    $(MV) `$(CAT) $(COMPILE_OBJ_LIST.c)` $(OBJDIR) ) || exit 1 ; \
+	fi
+	@if [ -s $(COMPILE_LIST.cpp) ] ; then \
+	  $(ECHO) "$(COMPILE.cc) $(CFLAGS_GPROF) $(AUTOMATIC_PCH_OPTION) \
+	   `$(CAT) $(COMPILE_LIST.cpp)`" ; \
+	  ( $(COMPILE.cc) $(CFLAGS_GPROF) $(AUTOMATIC_PCH_OPTION) \
+	    `$(CAT) $(COMPILE_LIST.cpp)` && \
+	    $(ECHO) "$(MV) `$(CAT) $(COMPILE_OBJ_LIST.cpp)` $(OBJDIR)" && \
+	    $(MV) `$(CAT) $(COMPILE_OBJ_LIST.cpp)` $(OBJDIR) ) || exit 1 ; \
+	fi
+	@$(RM) $(COMPILE_BATCH.c)   $(COMPILE_LIST.c)   $(COMPILE_OBJ_LIST.c)
+	@$(RM) $(COMPILE_BATCH.cpp) $(COMPILE_LIST.cpp) $(COMPILE_OBJ_LIST.cpp)
+
+endif
+
+# newer as does not handle c++ style comments
+$(OBJDIR)/%.$(OBJECT_SUFFIX): %.s
+    ifneq ($(CC_VERSION), gcc)
+	@$(prep-target)
+	$(COMPILE.s) $(CC_OBJECT_OUTPUT_FLAG)$@ $<
+    else
+	@$(prep-target)
+	$(CPP) -x assembler-with-cpp $< | $(COMPILE.s) -o $@
+    endif
+	@$(check-conventions)
+
+# Obj-C files (Mac OS X only).
+ifeq ($(PLATFORM), macosx)
+$(OBJDIR)/%.$(OBJECT_SUFFIX): %.m
+	@$(prep-target)
+	$(COMPILE.c) $(CC_OBJECT_OUTPUT_FLAG)$@ $(CFLAGS_GPROF) $<
+	@$(check-conventions)
+
+$(OBJDIR)/%.$(OBJECT_SUFFIX): %.mm
+	@$(prep-target)
+	$(COMPILE.cc) $(CC_OBJECT_OUTPUT_FLAG)$@ $(CFLAGS_GPROF) $<
+	@$(check-conventions)
+
+$(OBJDIR)/%.$(OBJECT_SUFFIX): %.c
+	@$(prep-target)
+	$(COMPILE.c) $(CC_OBJECT_OUTPUT_FLAG)$@ $(CFLAGS_GPROF) $<
+	@$(check-conventions)
+endif # PLATFORM
+
+#
+# Quick hack for making the compiler generate just the assembly file.
+#	$ gnumake obj/sparc/myfile.s
+#
+$(OBJDIR)/%.s: %.c
+	@$(prep-target)
+	$(COMPILE.c) $(CC_OBJECT_OUTPUT_FLAG)$@ -S $<
+	@$(check-conventions)
+
+# remove the intermediate files from the directories.
+#    (If VARIANT=OPT, this removes all debug and fastdebug files too)
+clobber clean::
+	$(RM) -r $(OBJDIR)
+	$(RM) -r $(OBJDIR)_*
+
+#
+# Lint support
+# (The 'lint' rule below is an older rule not using the .$(LINT_SUFFIX) files)
+#
+
+ifeq ($(PLATFORM), solaris)
+$(OBJDIR)/%.$(LINT_SUFFIX): %.c
+	@$(prep-target)
+	$(LINT.c) -dirout=$(OBJDIR) -c $<
+lint.clean:
+	$(RM) $(OBJDIR)/*.$(LINT_SUFFIX)
+# Old rule
+lint: $(FILES_c)
+        ifneq ($(FILES_c),)
+	  $(LINT.c) -Ncheck -Nlevel=3 $? $(LDLIBS) > lint.$(ARCH) 2>&1
+        endif
+endif
+
+.PHONY: batch_compile
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/common/internal/Resources.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,262 @@
+#
+# Copyright (c) 1997, 2010, 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.
+#
+
+# 
+# Generic mechanism for installing properties files, resource bundles,
+#   and other resource files.
+#
+# FILES_properties should be defined.
+# FILES_compiled_properties should be defined.
+# 
+# If COMPILED_PROPERTIES_SUPERCLASS is defined, ALL the FILES_properties
+# files will be compiled into java with this super class.
+#
+# You can add locales to LOCALE_SUFFIXES explicitly, or use the
+# LOCALE_SET_DEFINITION variable to add some pre-defined locale lists.
+# The LOCALE_SET_DEFINITION can have the value: jre, plugin, or jdk.
+#
+# Resource bundles to be installed are identified using the following variables.
+# Note that only the file name of the base bundle is given; localized versions
+# are added automatically. For Java files, use a format suitable for inclusion
+# in the FILES_java list; dito for properties, all relative paths.
+#
+#   NEW_RESOURCE_BUNDLES_JAVA        - new resource bundles implemented in
+#                                      Java, not localized
+#   RESOURCE_BUNDLES_JAVA            - resource bundles implemented in
+#                                      Java, localized
+#
+# The following variable is now used for most .properties files in the JDK. 
+# These properties files are converted into java and compiled with javac.
+# The resulting .class files are usually smaller and are always faster to load. 
+# The relative path to the properties file becomes a relative path to a
+# java source file.
+#
+#   RESOURCE_BUNDLES_COMPILED_PROPERTIES - resource bundles implemented as
+#                                          properties files, localized
+#   NEW_RESOURCE_BUNDLES_COMPILED_PROPERTIES - same as above, not localized
+#
+# For non-compiled properties files, use the following variables:
+#
+#   NEW_RESOURCE_BUNDLES_UNCOMPILED_PROPERTIES  - new resource bundles implemented as
+#                                      properties files, not localized
+#   RESOURCE_BUNDLES_UNCOMPILED_PROPERTIES      - resource bundles implemented as
+#                                      properties files, localized
+#
+# Other properties files to be installed are identified using the variable:
+#
+#   OTHER_PROPERTIES
+#
+
+include $(SPEC)
+include $(SRC_ROOT)/jdk/makefiles/Tools.gmk
+
+# Compile properties files into java source?
+ifdef COMPILED_PROPERTIES_SUPERCLASS
+  # Add all properties files to the compiled properties list (all or nothing)
+  COMPILED_PROPERTIES += $(FILES_compiled_properties) $(FILES_properties)
+else
+  COMPILED_PROPERTIES_SUPERCLASS = ListResourceBundle
+  COMPILED_PROPERTIES += $(FILES_compiled_properties)
+endif
+
+# Determine the locale suffixes needed beyond the base bundle
+
+ifeq ($(LOCALE_SET_DEFINITION), plugin)
+  LOCALE_SUFFIXES += $(PLUGIN_LOCALES)
+endif
+ifeq ($(LOCALE_SET_DEFINITION), jdk)
+  LOCALE_SUFFIXES += $(JDK_LOCALES)
+endif
+ifeq ($(LOCALE_SET_DEFINITION), jre)
+  LOCALE_SUFFIXES += $(JRE_LOCALES)
+endif
+
+# Java files get tacked onto the standard list of files to compile
+RESOURCE_BUNDLE_FILES_java += $(NEW_RESOURCE_BUNDLES_JAVA)
+RESOURCE_BUNDLE_FILES_java += $(RESOURCE_BUNDLES_JAVA) \
+    $(foreach file,$(RESOURCE_BUNDLES_JAVA), \
+       $(foreach locale,$(LOCALE_SUFFIXES), \
+	  $(basename $(file))_$(locale).java))
+
+# Add to java sources list
+FILES_java += $(RESOURCE_BUNDLE_FILES_java)
+
+# Compiled properties files are translated to .java.
+#   The .java files are generated into GENSRCDIR.
+COMPILED_PROPERTIES += $(NEW_RESOURCE_BUNDLES_COMPILED_PROPERTIES)
+COMPILED_PROPERTIES += $(RESOURCE_BUNDLES_COMPILED_PROPERTIES) \
+    $(foreach file,$(RESOURCE_BUNDLES_COMPILED_PROPERTIES),\
+      $(foreach locale,$(LOCALE_SUFFIXES),\
+	 $(basename $(file))_$(locale)$(suffix $(file))))
+
+# Add to java sources list
+FILES_java += $(COMPILED_PROPERTIES:%.properties=%.java)
+
+# Non-compiled files
+PROPERTIES_FILES += $(NEW_RESOURCE_BUNDLES_UNCOMPILED_PROPERTIES)
+PROPERTIES_FILES += $(RESOURCE_BUNDLES_UNCOMPILED_PROPERTIES) \
+    $(foreach file,$(RESOURCE_BUNDLES_UNCOMPILED_PROPERTIES), \
+       $(foreach locale,$(LOCALE_SUFFIXES), \
+	  $(basename $(file))_$(locale)$(suffix $(file))))
+# other properties
+PROPERTIES_FILES += $(OTHER_PROPERTIES)
+
+#
+# Process and strip all non-compiled properties files (in a batch mode)
+#
+STRIP_PROP_FILES = $(PROPERTIES_FILES:%=$(CLASSDESTDIR)/%)
+# To efficiently strip properties we use one run of StripProperties. 
+# This macro gathers an option for use later.
+STRIP_PROP_options=$(TEMPDIR)/strip_prop_options
+define install-properties-file
+$(install-file)
+$(call chmod-file, a+rw)
+@$(ECHO) "# Adding to strip properties list: $@"
+$(ECHO) "$@" >> $(STRIP_PROP_options)
+endef
+
+# Constructs command line options file
+$(STRIP_PROP_options): $(STRIP_PROP_FILES)
+	@$(TOUCH) $@
+strip_prop_options_clean:
+	@$(RM) $(STRIP_PROP_options)
+
+# Strip the properties files
+strip_all_props: $(BUILD_TOOLS) $(STRIP_PROP_options)
+	@if [ -s $(STRIP_PROP_options) ] ; then \
+          $(ECHO) "$(TOOL_STRIPPROPERTIES) @$(STRIP_PROP_options)" ; \
+          $(TOOL_STRIPPROPERTIES) @$(STRIP_PROP_options) ; \
+        fi
+	@$(java-vm-cleanup)
+
+#
+# Creates files in CLASSDESTDIR
+#
+
+# In some cases, we move files from package to resources subdir
+$(CLASSDESTDIR)/$(PKGDIR)/resources/%.properties: \
+	     $(SHARE_SRC)/classes/$(PKGDIR)/%.properties
+	$(install-properties-file)
+$(CLASSDESTDIR)/%.properties: $(SHARE_SRC)/classes/%.properties
+	$(install-properties-file)
+$(CLASSDESTDIR)/%.res: $(SHARE_SRC)/classes/%.res
+	$(install-file)
+$(CLASSDESTDIR)/%.dtd: $(SHARE_SRC)/classes/%.dtd
+	$(install-file)
+$(CLASSDESTDIR)/%.xml: $(SHARE_SRC)/classes/%.xml
+	$(install-file)
+$(CLASSDESTDIR)/%.prp: $(SHARE_SRC)/classes/%.prp
+	$(install-file)
+
+#
+# To efficiently compile properties into java sources we use one run
+#   of compileproperties. This macro gathers an option for use later.
+#   Note: The properties file and java source name can be different
+#         locales, e.g. zh_TW and zh_HK. The java source filename
+#         determines the name of the class.
+COMPILE_PROP_options=$(TEMPDIR)/compile_prop_options
+define add-property-java-file
+@$(prep-target)
+@$(ECHO) "# Adding to compile properties list: $? -> $@"
+$(ECHO) "-compile $? $@ $(COMPILED_PROPERTIES_SUPERCLASS)" \
+   >> $(COMPILE_PROP_options)
+endef
+
+$(GENSRCDIR)/%.java: $(PLATFORM_SRC)/classes/%.properties
+	$(add-property-java-file)
+$(GENSRCDIR)/%.java: $(SHARE_SRC)/classes/%.properties
+	$(add-property-java-file)
+$(GENSRCDIR)/%.java: $(GENSRCDIR)/%.properties
+	$(add-property-java-file)
+ifndef OPENJDK
+$(GENSRCDIR)/%.java: $(CLOSED_PLATFORM_SRC)/classes/%.properties
+	$(add-property-java-file)
+$(GENSRCDIR)/%.java: $(CLOSED_SHARE_SRC)/classes/%.properties
+	$(add-property-java-file)
+endif
+
+# Create HK java file from zh_TW (explicit resource bundles only)
+define create-hk-java-file
+@$(prep-target)
+$(CAT) $< | $(SED) -e '/class/s/_zh_TW/_zh_HK/' > $@
+endef
+
+# Explicit resource bundles
+$(GENSRCDIR)/%_zh_HK.java: $(PLATFORM_SRC)/classes/%_zh_TW.java
+	$(create-hk-java-file)
+$(GENSRCDIR)/%_zh_HK.java: $(SHARE_SRC)/classes/%_zh_TW.java
+	$(create-hk-java-file)
+
+# Compile of zh_HK properties just uses the zh_TW properties files
+$(GENSRCDIR)/%_zh_HK.java: $(PLATFORM_SRC)/classes/%_zh_TW.properties
+	$(add-property-java-file)
+$(GENSRCDIR)/%_zh_HK.java: $(SHARE_SRC)/classes/%_zh_TW.properties
+	$(add-property-java-file)
+
+# Simple delivery of zh_HK properties files just copies zh_TW properties files
+$(CLASSDESTDIR)/%_zh_HK.properties: \
+             $(PLATFORM_SRC)/classes/%_zh_TW.properties
+	$(install-properties-file)
+$(CLASSDESTDIR)/%_zh_HK.properties: \
+             $(SHARE_SRC)/classes/%_zh_TW.properties
+	$(install-properties-file)
+
+# List of java files converted from properties files needed
+COMPILE_PROP_JAVA_FILES = $(COMPILED_PROPERTIES:%.properties=$(GENSRCDIR)/%.java)
+
+# Constructs command line options file
+$(COMPILE_PROP_options): $(COMPILE_PROP_JAVA_FILES)
+	@$(TOUCH) $@
+compile_prop_options_clean:
+	@$(RM) $(COMPILE_PROP_options)
+
+# Make sure all are compiled, one compiler run
+compile_all_props: $(BUILD_TOOLS) $(COMPILE_PROP_options)
+	@if [ `$(CAT) $(COMPILE_PROP_options) | $(WC) -l` -ge 1 ] ; then \
+	  $(MKDIR) -p $(GENSRCDIR); \
+	  $(ECHO) "$(TOOL_COMPILEPROPERTIES) @$(COMPILE_PROP_options)";\
+	  $(TOOL_COMPILEPROPERTIES) @$(COMPILE_PROP_options) ; \
+	  $(java-vm-cleanup); \
+	fi
+
+# Make sure the build rule creates all the properties
+resources:
+
+ifneq ($(strip $(PROPERTIES_FILES)),)
+  resources: strip_prop_options_clean   strip_all_props
+  clobber clean:: 
+	$(RM) $(STRIP_PROP_FILES) $(STRIP_PROP_options)
+endif
+
+ifneq ($(strip $(COMPILED_PROPERTIES)),)
+  resources: compile_prop_options_clean compile_all_props
+  clobber clean:: 
+	$(RM) $(COMPILE_PROP_JAVA_FILES) $(COMPILE_PROP_options)
+endif
+
+.PHONY: resources \
+	compile_prop_options_clean compile_all_props \
+	strip_prop_options_clean   strip_all_props
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/common/shared/Compiler-gcc.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,98 @@
+#
+# Copyright (c) 2005, 2010, 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.
+#
+
+#
+# GCC Compiler settings
+#
+
+ifeq ($(PLATFORM), windows)
+
+  # Settings specific to Windows, pretty stale, hasn't been used
+  CC           ?= $(COMPILER_PATH)gcc
+  CPP          ?= $(COMPILER_PATH)gcc -E
+  CXX          ?= $(COMPILER_PATH)g++
+  CCC          ?= $(COMPILER_PATH)g++
+  AR           ?= $(COMPILER_PATH)lib
+  LINK         ?= $(COMPILER_PATH)link
+  RC           ?= $(COMPILER_PATH)rc
+  LINK32       = $(LINK)
+  RSC          = $(RC)
+  # unset any GNU Make settings of MFLAGS and MAKEFLAGS which may mess up nmake
+  NMAKE          = MFLAGS= MAKEFLAGS= $(COMPILER_PATH)nmake -nologo
+  ifeq ($(ARCH_DATA_MODEL), 32)
+    CC_VER  = UNKNOWN
+  else
+    CC_VER  = UNKNOWN
+  endif
+  _LINK_VER :=$(shell $(LINK) 2>&1 | $(HEAD) -n 1)
+  LINK_VER  :=$(call GetVersion,"$(_LINK_VER)")
+
+endif
+
+ifeq ($(PLATFORM), linux)
+
+# Settings specific to Linux
+  CC             ?= $(COMPILER_PATH)gcc
+  CPP            ?= $(COMPILER_PATH)gcc -E
+# Acquire the paths to the compilers and tools
+  # statically link libstdc++ before C++ ABI is stablized on Linux
+  STATIC_CXX     = true
+  ifeq ($(STATIC_CXX),true)
+    # g++ always dynamically links libstdc++, even we use "-Wl,-Bstatic -lstdc++"
+    # We need to use gcc to statically link the C++ runtime. gcc and g++ use
+    # the same subprocess to compile C++ files, so it is OK to build using gcc.
+    CXX            ?= $(CC)
+    #$(COMPILER_PATH)gcc
+  else
+#    CXX            = $(COMPILER_PATH)g++
+  endif
+  # Option used to create a shared library
+  SHARED_LIBRARY_FLAG = -shared
+  SUN_COMP_VER := $(shell $(CC) --verbose 2>&1 )
+
+endif
+
+ifeq ($(PLATFORM), solaris)
+
+  # Settings specific to Solaris
+  CC             ?= $(COMPILER_PATH)gcc
+  CPP            ?= $(COMPILER_PATH)gcc -E
+  CXX            ?= $(COMPILER_PATH)g++
+
+  # Option used to create a shared library
+  SHARED_LIBRARY_FLAG = -G
+  
+endif
+
+# Get gcc version
+_CC_VER :=$(shell $(CC) -dumpversion 2>&1 )
+CC_VER  :=$(call GetVersion,"$(_CC_VER)")
+CC_MAJORVER  :=$(call MajorVersion,$(CC_VER))
+CC_MINORVER  :=$(call MinorVersion,$(CC_VER))
+
+# Name of compiler
+COMPILER_NAME = GCC$(call MajorVersion,$(CC_VER))
+COMPILER_VERSION = $(COMPILER_NAME)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/common/shared/Compiler-llvm.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,59 @@
+#
+# Copyright (c) 2011, 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.
+#
+
+#
+# LLVM Compiler settings
+#
+
+ifeq ($(PLATFORM), macosx)
+
+  # Settings specific to Mac OS X
+  ifeq ($(origin CC), default)
+   CC             = $(COMPILER_PATH)llvm-gcc
+  endif
+  CPP             = $(COMPILER_PATH)llvm-gcc -E
+  ifeq ($(origin CXX), default)
+   CXX            = $(COMPILER_PATH)llvm-g++
+  endif
+
+  REQUIRED_CC_VER = 4.2.1
+
+  # Option used to create a shared library
+  SHARED_LIBRARY_FLAG = -Wl,-install_name,@rpath/$(@F) -dynamiclib -compatibility_version 1.0.0 -current_version 1.0.0
+  SUN_COMP_VER := $(shell $(CC) --verbose 2>&1 )
+
+  AR = $(CC)
+  ARFLAGS = -nostdlib -r -arch i386 -arch x86_64 -o
+
+endif
+
+# Get llvm version
+_CC_VER :=$(shell $(CC) -dumpversion 2>&1 )
+CC_VER  :=$(call GetVersion,"$(_CC_VER)")
+
+# Name of compiler
+COMPILER_NAME = LLVM-GCC$(call MajorVersion,$(CC_VER))
+COMPILER_VERSION = $(COMPILER_NAME)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/common/shared/Compiler-msvc.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,93 @@
+#
+# Copyright (c) 2005, 2011, 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.
+#
+
+#
+# MSVC Compiler settings
+#
+
+ifeq ($(PLATFORM), windows)
+  CC           ?= $(COMPILER_PATH)cl
+  CPP          ?= $(COMPILER_PATH)cl
+  CXX          ?= $(COMPILER_PATH)cl
+  CCC          ?= $(COMPILER_PATH)cl
+  AR           ?= $(COMPILER_PATH)lib
+  LINK         ?= $(COMPILER_PATH)link
+  LINK32       ?= $(LINK)
+# TODO Add dumpbin.exe to configure
+  DUMPBIN      ?= $(COMPILER_PATH)dumpbin.exe
+ 
+  # Fill in unknown values
+  COMPILER_NAME=Unknown MSVC Compiler
+  COMPILER_VERSION=
+  
+  # unset any GNU Make settings of MFLAGS and MAKEFLAGS which may mess up nmake
+  NMAKE          = MFLAGS= MAKEFLAGS= $(COMPILER_PATH)nmake -nologo
+
+  # Compiler version and type (Always get word after "Version")
+  CC_VER  := $(shell $(CC) 2>&1 | $(HEAD) -n 1 | $(SED) 's/.*\(Version.*\)/\1/' | $(NAWK) '{print $$2}')
+
+  LINK_VER := $(shell $(LINK) | $(HEAD) -n 1 | $(NAWK) '{print $$6}')
+  CC_MAJORVER :=$(call MajorVersion,$(CC_VER))
+  
+  # The VS2010 compiler is the same one used on both 32bit and 64bit
+  ifeq ($(CC_MAJORVER), 16)
+    COMPILER_NAME=Microsoft Visual Studio 10 (16.00.30319.01)
+    COMPILER_VERSION=VS2010
+    ifeq ($(WINDOWSSDKDIR),)
+      WINDOWSSDKDIR := $(error WINDOWSSDKDIR cannot be empty here)
+    endif
+    ifeq ($(ARCH_DATA_MODEL), 32)
+      _OTHER_TOOLS_BIN = $(WINDOWSSDKDIR)/Bin
+    else
+      ifeq ($(ARCH), ia64)
+        _OTHER_TOOLS_BIN = $(WINDOWSSDKDIR)/Bin/ia64
+      else
+        _OTHER_TOOLS_BIN = $(WINDOWSSDKDIR)/Bin/x64
+      endif
+    endif
+    RC     = $(_OTHER_TOOLS_BIN)/RC.Exe
+    REBASE = $(_OTHER_TOOLS_BIN)/ReBase.Exe
+    MT     = $(_OTHER_TOOLS_BIN)/mt.exe
+    MTL    = $(_OTHER_TOOLS_BIN)/midl.exe
+  endif
+  
+  # These variables can never be empty
+  ifndef COMPILER_PATH
+    COMPILER_PATH := $(error COMPILER_PATH cannot be empty here)
+  endif
+  ifndef COMPILER_VERSION
+    COMPILER_VERSION := $(error COMPILER_VERSION cannot be empty here)
+  endif
+  ifneq ($(COMPILER_VERSION),VS2010)
+    COMPILER_VERSION := $(error COMPILER_VERSION must be VS2010)
+  endif
+  
+  # Shared library generation flag
+  SHARED_LIBRARY_FLAG = -LD
+  # RSC is always same as RC (Not sure who uses this RSC variable)
+  RSC = $(RC)
+
+endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/common/shared/Compiler-sun.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,138 @@
+#
+# Copyright (c) 2005, 2010, 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.
+#
+
+#
+# Sun Studio Compiler settings
+#
+
+# Sun Studio Compiler settings specific to Solaris
+ifeq ($(PLATFORM), solaris)
+  CC             ?= $(COMPILER_PATH)cc
+  CPP            ?= $(COMPILER_PATH)cc -E
+  CXX            ?= $(COMPILER_PATH)CC
+  LINT           ?= $(COMPILER_PATH)lint
+  # Option used to create a shared library
+  SHARED_LIBRARY_FLAG = -G
+  GCC =$(GCC_COMPILER_PATH)gcc
+endif
+
+# Sun Studio Compiler settings specific to Linux
+ifeq ($(PLATFORM), linux)
+  # This has not been tested
+  CC             ?= $(COMPILER_PATH)cc
+  CPP            ?= $(COMPILER_PATH)cc -E
+  CXX            ?= $(COMPILER_PATH)CC
+  LINT           ?= $(COMPILER_PATH)lint
+  # statically link libstdc++ before C++ ABI is stablized on Linux
+  STATIC_CXX     = true
+  ifeq ($(STATIC_CXX),true)
+    # CC always dynamically links libstdc++, even we use "-Wl,-Bstatic -lstdc++"
+    # We need to use cc to statically link the C++ runtime.
+    CXX            ?= $(COMPILER_PATH)cc
+  else
+    CXX            ?= $(COMPILER_PATH)CC
+  endif
+  # Option used to create a shared library
+  SHARED_LIBRARY_FLAG = -G
+endif
+
+# Get compiler version
+_CC_VER :=$(shell $(CC) -V 2>&1 | $(HEAD) -n 1)
+CC_VER  :=$(call GetVersion,"$(_CC_VER)")
+CC_MAJORVER  :=$(call MajorVersion,$(CC_VER))
+CC_MINORVER  :=$(call MinorVersion,$(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 = SS12u1
+COMPILER_NAME-5.10    = Sun Studio 12 Update 1
+COMPILER_VERSION-5.11 = OSS12u2
+COMPILER_NAME-5.11    = Oracle Solaris Studio 12 Update 2
+COMPILER_VERSION      = $(COMPILER_VERSION-$(CC_VER))
+COMPILER_NAME         = $(COMPILER_NAME-$(CC_VER))
+
+# Arch specific settings (determines type of .o files and instruction set)
+#  Starting in SS12 (5.9), the arch options changed.
+#  The assembler /usr/ccs/bin/as wants older SS11 (5.8) style options.
+#   Note: We need to have both 32 and 64 values at all times for awt Makefiles.
+#
+XARCH_OPTION_OLD/32 =
+XARCH_OPTION_OLD/64 =
+XARCH_OPTION_NEW/32 = -m32
+XARCH_OPTION_NEW/64 = -m64
+# Lint options are slightly different
+LINT_XARCH_OPTION_OLD/32 =
+LINT_XARCH_OPTION_OLD/64 =
+LINT_XARCH_OPTION_NEW/32 = -m32
+LINT_XARCH_OPTION_NEW/64 = -m64
+ifeq ($(ARCH_FAMILY), sparc)
+  ifdef VIS_NEEDED
+    XARCH_OPTION_OLD/32 += -xarch=v8plusa
+    XARCH_OPTION_OLD/64 += -xarch=v9a
+    XARCH_OPTION_NEW/32 += -xarch=sparcvis
+    XARCH_OPTION_NEW/64 += -xarch=sparcvis
+  else
+    # Someday this should change to improve optimization on UltraSPARC
+    #    and abandon v8, even change to sparcvis or sparcvis2, this
+    #    abandons machines like the SPARCstation 10.
+    #    Indications with jdk6 is that alacrity runs do not show a
+    #    big improvement using v8plus over v8, but other benchmarks might.
+    XARCH_OPTION_OLD/32 += -xarch=v8
+    XARCH_OPTION_OLD/64 += -xarch=v9
+    # Note that this new option (SS12+) effectively means v8plus
+    XARCH_OPTION_NEW/32 += -xarch=sparc
+    XARCH_OPTION_NEW/64 += -xarch=sparc
+  endif
+  LINT_XARCH_OPTION_OLD/64 += -Xarch=v9
+endif
+ifeq ($(ARCH_FAMILY), i586)
+  XARCH_OPTION_OLD/64      += -xarch=amd64
+  LINT_XARCH_OPTION_OLD/64 += -Xarch=amd64
+endif
+# Pick the options we want based on the compiler being used. (5.9 or newer)
+CC_59_OR_NEWER := \
+  $(shell expr $(CC_MAJORVER) \> 5 \| \
+      \( $(CC_MAJORVER) = 5 \& $(CC_MINORVER) \>= 9 \) )
+ifeq ($(CC_59_OR_NEWER), 1)
+  XARCH_OPTION/32 = $(XARCH_OPTION_NEW/32)
+  XARCH_OPTION/64 = $(XARCH_OPTION_NEW/64)
+  LINT_XARCH_OPTION/32 = $(LINT_XARCH_OPTION_NEW/32)
+  LINT_XARCH_OPTION/64 = $(LINT_XARCH_OPTION_NEW/64)
+else
+  XARCH_OPTION/32 = $(XARCH_OPTION_OLD/32)
+  XARCH_OPTION/64 = $(XARCH_OPTION_OLD/64)
+  LINT_XARCH_OPTION/32 = $(LINT_XARCH_OPTION_OLD/32)
+  LINT_XARCH_OPTION/64 = $(LINT_XARCH_OPTION_OLD/64)
+endif
+XARCH_OPTION = $(XARCH_OPTION/$(ARCH_DATA_MODEL))
+LINT_XARCH_OPTION = $(LINT_XARCH_OPTION/$(ARCH_DATA_MODEL))
+# The /usr/ccs/bin/as assembler always wants the older SS11 (5.8) options.
+AS_XARCH_OPTION = $(XARCH_OPTION_OLD/$(ARCH_DATA_MODEL))
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/common/shared/Defs-control.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,143 @@
+#
+# Copyright (c) 1995, 2011, 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.
+#
+
+#
+# Common variables used by all the Java makefiles.  This file should
+# not contain rules.
+#
+
+# WARNING: This file is shared with other components.
+#
+
+ifndef JDK_MAKE_SHARED_DIR
+  JDK_MAKE_SHARED_DIR = $(JDK_TOPDIR)/makefiles/common/shared
+endif
+
+ifndef HOTSPOT_TOPDIR
+  HOTSPOT_TOPDIR=$(TOPDIR)/hotspot
+endif
+ifndef LANGTOOLS_TOPDIR
+  LANGTOOLS_TOPDIR=$(TOPDIR)/langtools
+endif
+ifndef CORBA_TOPDIR
+  CORBA_TOPDIR=$(TOPDIR)/corba
+endif
+ifndef JAXP_TOPDIR
+  JAXP_TOPDIR=$(TOPDIR)/jaxp
+endif
+ifndef JAXWS_TOPDIR
+  JAXWS_TOPDIR=$(TOPDIR)/jaxws
+endif
+ifndef JDK_TOPDIR
+  JDK_TOPDIR=$(TOPDIR)/jdk
+endif
+ifndef INSTALL_TOPDIR
+  INSTALL_TOPDIR=$(TOPDIR)/install
+endif
+ifndef SPONSORS_TOPDIR
+  SPONSORS_TOPDIR=$(TOPDIR)/sponsors
+endif
+ifndef DEPLOY_TOPDIR
+  DEPLOY_TOPDIR=$(TOPDIR)/deploy
+endif
+
+# Get shared platform settings
+include $(JDK_MAKE_SHARED_DIR)/Platform.gmk
+
+# Default directory immediately above the "build" output directory (OUTPUTDIR)
+BUILD_PARENT_DIRECTORY=$(TOPDIR)
+
+# Get platform specific settings
+include $(JDK_MAKE_SHARED_DIR)/Defs.gmk
+
+SRC_BUNDLEDIR       = $(OUTPUTDIR)/source-bundles
+ABS_SRC_BUNDLEDIR   = $(ABS_OUTPUTDIR)/source-bundles
+BIN_BUNDLEDIR       = $(OUTPUTDIR)/bundles
+BIN_DEMOS_BUNDLEDIR = $(OUTPUTDIR)/demos-bundles
+ABS_BIN_BUNDLEDIR   = $(ABS_OUTPUTDIR)/bundles
+
+dummy := $(shell $(MKDIR) -p $(BIN_BUNDLEDIR))
+dummy := $(shell $(MKDIR) -p $(BIN_DEMOS_BUNDLEDIR) )
+dummy := $(shell $(MKDIR) -p $(SRC_BUNDLEDIR) )
+
+TEMP_DIR = $(OUTPUTDIR)/tmp
+ABS_TEMP_DIR = $(ABS_OUTPUTDIR)/tmp
+
+dummy := $(shell $(MKDIR) -p $(TEMP_DIR))
+
+# The language version we want for this jdk build
+SOURCE_LANGUAGE_VERSION=7
+# The class version we want for this jdk build
+TARGET_CLASS_VERSION=7
+
+# The MESSAGE, WARNING and ERROR files are used to store sanity check and 
+# source check messages, warnings and errors. 
+export ERROR_FILE   := $(ABS_OUTPUTDIR)/sanityCheckErrors.txt
+export WARNING_FILE := $(ABS_OUTPUTDIR)/sanityCheckWarnings.txt
+export MESSAGE_FILE := $(ABS_OUTPUTDIR)/sanityCheckMessages.txt
+
+# source bundle generation definitions
+BUNDLE_DATE := $(shell $(DATE) '+%d_%b_%Y' | $(TR) "[A-Z]" "[a-z]")
+ifdef ALT_BUNDLE_DATE
+  BUNDLE_DATE := $(ALT_BUNDLE_DATE)
+endif
+
+# If the update version contains non-numeric characters, we need
+# to massage it into a numeric format.  Unfortunately, the
+# Windows VERSIONINFO resource that we stick in jvm.dll cannot
+# handle non-numeric characters.  We have to do this here because
+# Hotspot (nmake) cannot handle calculations.  So we use the
+# following formula:
+# COOKED_JDK_UPDATE_VERSION = JDK_UPDATE_VERSION * 10 + EXCEPTION_VERSION
+# 
+# Here are some examples:
+#     1.5.0    b01  ->  5,0,0,1
+#     1.5.0_10 b01  ->  5,0,100,1 
+#     1.4.2 b01     ->  4,2,0,1
+#     1.4.2_02 b01  ->  4,2,20,1
+#     1.4.2_02a b01 ->  4,2,21,1
+#     1.4.2_02b b01 ->  4,2,22,1
+ifdef JDK_UPDATE_VERSION
+  VTMP := $(shell $(ECHO) $(JDK_UPDATE_VERSION) | $(TR) "abcde" "12345")
+  CHAR1 := $(shell $(ECHO) $(VTMP) | $(NAWK) '{print substr($$1, 1, 1);}')
+  CHAR2 := $(shell $(ECHO) $(VTMP) | $(NAWK) '{print substr($$1, 2, 1);}')
+  CHAR3 := $(shell $(ECHO) $(VTMP) | $(NAWK) '{print substr($$1, 3, 1);}')
+  ifeq ($(CHAR3),)
+    CHAR3 := 0
+  endif
+  ifeq ($(CHAR1), 0)
+    COOKED_JDK_UPDATE_VERSION := $(CHAR2)$(CHAR3)
+  else
+    COOKED_JDK_UPDATE_VERSION := $(CHAR1)$(CHAR2)$(CHAR3)
+  endif
+endif
+
+ifneq ($(JDK_BUILD_NUMBER),)
+ COOKED_BUILD_NUMBER = $(shell $(ECHO) $(JDK_BUILD_NUMBER) \
+			       | $(SED) -e 's/^b//' | $(SED) -e 's/^0//')
+else
+ COOKED_BUILD_NUMBER = 0
+endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/common/shared/Defs-java.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,249 @@
+#
+# Copyright (c) 2007, 2011, 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.
+#
+
+#
+# Common java/javac/jdk variables used by all the Java makefiles.
+# This file should not contain rules.
+#
+
+# WARNING: This file is shared with other workspaces.
+#          So when it includes other files, it must use JDK_TOPDIR.
+#
+
+-include $(SPEC)
+
+#
+# Memory related -J flags that all uses of java tools should use.
+#
+#JAVA_MEM_FLAGS   = -Xmx$(MAX_VM_MEMORY)m
+#ifeq ($(ARCH), ia64)
+  # Special flags for javac on ia64 to work around a VM problem with
+  #   bad code generation during inlining (what version had this problem?):
+  #   Suspect this may not be needed anymore.
+#  JAVA_MEM_FLAGS   += -Xms$(MAX_VM_MEMORY)m -XX:-Inline
+#else
+#  JAVA_MEM_FLAGS   += -Xms$(MIN_VM_MEMORY)m -XX:PermSize=32m -XX:MaxPermSize=160m
+#endif
+
+#
+# All java tools (javac, javah, and javadoc) run faster with certain java
+#    options, this macro should be used with all these tools.
+#    In particular, the client VM makes these tools run faster when
+#    it's available.
+#
+ADD_CLIENT_VM_OPTION = false
+ifeq ($(PLATFORM), solaris)
+  ADD_CLIENT_VM_OPTION = true
+else
+  ifeq ($(ARCH_DATA_MODEL), 32)
+    ADD_CLIENT_VM_OPTION = true
+  endif
+endif
+
+# 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
+ifeq ($(PLATFORM), macosx)
+  JAVA_JVM_FLAGS = $(JAVA_HOTSPOT_DISABLE_PRINT_VMOPTIONS) -Djava.awt.headless=true
+else
+  JAVA_JVM_FLAGS = $(JAVA_HOTSPOT_DISABLE_PRINT_VMOPTIONS)
+endif
+
+#ifeq ($(ADD_CLIENT_VM_OPTION), true)
+#  JAVA_JVM_FLAGS += -client
+#endif
+#ifdef USE_HOTSPOT_INTERPRETER_MODE
+#  JAVA_JVM_FLAGS += -Xint
+#endif
+
+# Various VM flags
+JAVA_TOOLS_FLAGS  = $(JAVA_JVM_FLAGS) $(JAVA_MEM_FLAGS)
+
+# The VM flags for javac
+JAVAC_JVM_FLAGS =
+
+# 64-bit builds require a larger thread stack size.
+#ifeq ($(ARCH_DATA_MODEL), 32)
+#  JAVAC_JVM_FLAGS    += -J-XX:ThreadStackSize=768
+#else
+#  JAVAC_JVM_FLAGS    += -J-XX:ThreadStackSize=1536
+#endif
+JAVAC_JVM_FLAGS    += $(JAVA_TOOLS_FLAGS:%=-J%)
+
+# The jar -J options are special, must be added at the end of the command line
+JAR_JFLAGS       = $(JAVA_TOOLS_FLAGS:%=-J%)
+
+# JAVA_TOOLS_DIR is the default location to find Java tools to run, if
+#    langtools is not available.
+#    This should be the latest promoted JDK javac.
+ifndef JAVA_TOOLS_DIR
+  JAVA_TOOLS_DIR = $(JDK_IMPORT_PATH)/bin
+endif
+
+#
+# Invoking the Java compiler.   In leaf makefiles, choose as follows:
+#  -- Use JAVAC if you want to take full control of what options get
+#     passed to javac.
+#  -- Use JAVAC_CMD if you want to take the defaults given to you.
+#
+
+ifndef DEBUG_CLASSFILES
+  ifeq ($(VARIANT), DBG)
+    DEBUG_CLASSFILES = true
+  endif
+endif
+JAVACFLAGS =
+ifeq ($(DEBUG_CLASSFILES),true)
+  JAVACFLAGS += -g
+endif
+ifeq ($(JAVAC_MAX_WARNINGS), true)
+  JAVAC_LINT_OPTIONS += -Xlint:all
+endif
+ifeq ($(JAVAC_WARNINGS_FATAL), true)
+  JAVACFLAGS  += -Werror
+endif
+
+# TODO: Workaround for CR 7063027. Remove -path eventually.
+JAVAC_LINT_OPTIONS += -Xlint:-path
+
+JAVACFLAGS += $(JAVAC_LINT_OPTIONS)
+
+#
+# Some licensees do not get the Security Source bundles.  We will
+# fall back on the prebuilt jce.jar so that we can do a best
+# attempt at building.  If sources exist, we always want to
+# build/use the most recent source instead of an older jce.jar, whether
+# built implicitly/explicitly.
+#
+ifeq ($(wildcard $(SHARE_SRC)/classes/javax/crypto/Cipher.java),)
+  JCEFLAGS = $(CLASSPATH_SEPARATOR)$(LIBDIR)/jce.jar
+endif
+
+# Add the source level
+SOURCE_LANGUAGE_VERSION = 7
+LANGUAGE_VERSION = -source $(SOURCE_LANGUAGE_VERSION)
+JAVACFLAGS  += $(LANGUAGE_VERSION)
+
+# Add the class version we want
+TARGET_CLASS_VERSION = 7
+CLASS_VERSION = -target $(TARGET_CLASS_VERSION)
+JAVACFLAGS  += $(CLASS_VERSION)
+JAVACFLAGS  += -encoding ascii
+JAVACFLAGS  += "-Xbootclasspath:$(CLASSBINDIR)$(JCEFLAGS)"
+JAVACFLAGS  += $(OTHER_JAVACFLAGS)
+
+# Needed for javah
+JAVAHFLAGS += -bootclasspath "$(CLASSBINDIR)$(JCEFLAGS)"
+
+# Needed for javadoc to ensure it builds documentation
+# against the newly built classes
+JAVADOCFLAGS += -bootclasspath $(CLASSBINDIR)
+
+# Needed for JAVADOC and BOOT_JAVACFLAGS
+NO_PROPRIETARY_API_WARNINGS = -XDignore.symbol.file=true
+
+# Langtools
+LANGTOOLS_DIST ?= $(ALT_LANGTOOLS_DIST)
+
+ifdef LANGTOOLS_DIST
+  JAVAC_JAR   = $(LANGTOOLS_DIST)/bootstrap/lib/javac.jar
+  JAVAH_JAR   = $(LANGTOOLS_DIST)/bootstrap/lib/javah.jar
+  JAVADOC_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/javadoc.jar
+  DOCLETS_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/doclets.jar
+  JAVAC_CMD   = $(BOOT_JAVA_CMD) \
+		"-Xbootclasspath/p:$(JAVAC_JAR)" \
+		-jar $(JAVAC_JAR) $(JAVACFLAGS)
+  JAVAH_CMD   = $(BOOT_JAVA_CMD) \
+		"-Xbootclasspath/p:$(JAVAH_JAR)$(CLASSPATH_SEPARATOR)$(JAVAC_JAR)"  \
+		-jar $(JAVAH_JAR) $(JAVAHFLAGS)
+  JAVADOC_CMD = $(BOOT_JAVA_CMD) \
+		"-Xbootclasspath/p:$(JAVADOC_JAR)$(CLASSPATH_SEPARATOR)$(JAVAC_JAR)$(CLASSPATH_SEPARATOR)$(DOCLETS_JAR)" \
+		-jar $(JAVADOC_JAR) $(JAVADOCFLAGS)
+else
+  # If no explicit tools, use boot tools (add VM flags in this case)
+  JAVAC_CMD     = $(UNCYGDRIVE) $(JAVA_TOOLS_DIR)/javac $(JAVAC_JVM_FLAGS) \
+		  $(JAVACFLAGS)
+  JAVAH_CMD     = $(UNCYGDRIVE) $(JAVA_TOOLS_DIR)/javah \
+		  $(JAVAHFLAGS)
+  JAVADOC_CMD   = $(UNCYGDRIVE) $(JAVA_TOOLS_DIR)/javadoc $(JAVA_TOOLS_FLAGS:%=-J%) \
+		  $(JAVADOCFLAGS)
+endif
+
+# Override of what javac to use (see deploy workspace)
+#ifdef JAVAC
+#  JAVAC_CMD     = $(JAVAC)
+#endif
+
+#
+# The bootstrap java compiler (defined as the javac in the ALT_BOOTDIR jdk).
+#   Will be used to compile java code used to build the jdk, e.g. class files
+#   created by this compiler will NOT become part of this built jdk, but just
+#   used to build this jdk, e.g. run with the java in the ALT_BOOTDIR jdk.
+#
+# The javac supplied with the LANGTOOLS_DIST should be used to build the
+#   classes that will be put into the built jdk. But note that this javac
+#   will use the ALT_BOOTDIR java runtime. Any classes created by the
+#   LANGTOOLS_DIST javac should not be run during this jdk build and indeed
+#   may not even run with the ALT_BOOTDIR jdk because they may be a newer
+#   class file version that the ALT_BOOTDIR jdk doesn't understand.
+#
+# The important observation here is that the built jdk is NOT run during
+#   the build. If the built jdk needs to be verified that it can build this
+#   same jdk, then it should be supplied to the build process as the ALT_BOOTDIR
+#   jdk, and this resulting built jdk should be compared to the first one.
+#   (They should be the same). Re-using this built jdk as the ALT_BOOTDIR
+#   jdk will be the only way and the recommeneded way to verify the built jdk
+#   can bootstrap itself.
+#
+
+# The javac options supplied to the boot javac is limited. This compiler
+#   should only be used to build the 'make/tools' sources, which are not
+#   class files that end up in the classes directory.
+BOOT_JAVACFLAGS += $(JAVAC_LINT_OPTIONS)
+ifeq ($(JAVAC_WARNINGS_FATAL), true)
+  BOOT_JAVACFLAGS  += -Werror
+endif
+
+BOOT_JAVACFLAGS  += -encoding ascii
+BOOT_JAR_JFLAGS += $(JAR_JFLAGS)
+
+BOOT_JAVACFLAGS  += $(NO_PROPRIETARY_API_WARNINGS)
+
+BOOT_JAVA_CMD      = $(UNCYGDRIVE) $(BOOTDIR)/bin/java $(JAVA_TOOLS_FLAGS)
+BOOT_JAVAC_CMD     = $(UNCYGDRIVE) $(BOOTDIR)/bin/javac $(JAVAC_JVM_FLAGS) $(BOOT_JAVACFLAGS)
+BOOT_JAR_CMD       = $(UNCYGDRIVE) $(BOOTDIR)/bin/jar
+BOOT_JARSIGNER_CMD = $(UNCYGDRIVE) $(BOOTDIR)/bin/jarsigner
+
+# Various tools we need to run (FIXUP: Are these the right ones?)
+NATIVE2ASCII    = $(UNCYGDRIVE) $(BOOTDIR)/bin/native2ascii $(JAVA_TOOLS_FLAGS:%=-J%)
+RMIC		= $(UNCYGDRIVE) $(BOOTDIR)/bin/rmic $(JAVA_TOOLS_FLAGS:%=-J%)
+IDLJ		= $(UNCYGDRIVE) $(BOOTDIR)/bin/idlj $(JAVA_TOOLS_FLAGS:%=-J%)
+
+# Should not be used
+#JAVA		= /should/not/be/used
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/common/shared/Defs-javadoc.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,71 @@
+#
+# Copyright (c) 1997, 2011, 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.
+#
+
+# Copyright year for beginning of Java and some of the apis
+#   (Needed when creating the javadocs)
+FIRST_COPYRIGHT_YEAR                = 1993
+DOMAPI_FIRST_COPYRIGHT_YEAR         = 2005
+MIRROR_FIRST_COPYRIGHT_YEAR         = 2004
+DOCLETAPI_FIRST_COPYRIGHT_YEAR      = 1993
+TAGLETAPI_FIRST_COPYRIGHT_YEAR      = 1993
+JDI_FIRST_COPYRIGHT_YEAR            = 1999
+JAAS_FIRST_COPYRIGHT_YEAR           = 1998
+JGSS_FIRST_COPYRIGHT_YEAR           = 2000
+SMARTCARDIO_FIRST_COPYRIGHT_YEAR    = 2005
+HTTPSERVER_FIRST_COPYRIGHT_YEAR     = 2005
+MGMT_FIRST_COPYRIGHT_YEAR           = 2003
+ATTACH_FIRST_COPYRIGHT_YEAR         = 2005
+JCONSOLE_FIRST_COPYRIGHT_YEAR       = 2006
+SCTPAPI_FIRST_COPYRIGHT_YEAR        = 2009
+TRACING_FIRST_COPYRIGHT_YEAR        = 2008
+TREEAPI_FIRST_COPYRIGHT_YEAR        = 2005
+JNLP_FIRST_COPYRIGHT_YEAR           = 1998
+PLUGIN2_FIRST_COPYRIGHT_YEAR        = 2007
+
+# Oracle name
+FULL_COMPANY_NAME = Oracle and/or its affiliates
+
+# Copyright address
+COMPANY_ADDRESS = 500 Oracle Parkway<br>Redwood Shores, CA 94065 USA.
+
+# The trademark symbol
+TRADEMARK = &trade;
+
+# Common copyright lines used
+#   The word "Copyright" might optionally be a link to the file cpyr.html.
+#   The first year of copyright may vary or not be available.
+#   The address to the company might be optional.
+COMMA:= ,
+EMPTY:=
+SPACE:=$(EMPTY) $(EMPTY)
+COPYRIGHT_SYMBOL = &\#x00a9;
+# Macro to construct the copyright line
+#   (The GNU make 3.78.1 "if" conditional is broken, fixed in GNU make 3.81)
+define CopyrightLine # optionalurl optionalfirstyear optionaladdress
+$(if $(strip $1),<a href="$(strip $1)">Copyright</a>,Copyright) \
+$(COPYRIGHT_SYMBOL) $(if $2,$2${COMMA},) $(COPYRIGHT_YEAR),\
+$(FULL_COMPANY_NAME). $3 All rights reserved.
+endef
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/common/shared/Defs-linux.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,213 @@
+#
+# Copyright (c) 2005, 2011, 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.
+#
+
+#
+# Definitions for Linux.
+#
+
+# Default for COMPILER_WARNINGS_FATAL on Linux (C & C++ compiler warnings)
+ifndef COMPILER_WARNINGS_FATAL
+  COMPILER_WARNINGS_FATAL=false
+endif
+
+# Linux should use parallel compilation for best build times
+ifndef COMPILE_APPROACH
+  COMPILE_APPROACH = parallel
+endif
+
+# Indication that we are doing an incremental build.
+#    This may trigger the creation of make depend files.
+ifndef INCREMENTAL_BUILD
+  INCREMENTAL_BUILD = false
+endif
+
+# FullPath just makes sure it never ends with a / and no duplicates
+define FullPath
+$(shell cd $1 2> $(DEV_NULL) && pwd)
+endef
+
+# OptFullPath: Absolute path name of a dir that might not initially exist.
+define OptFullPath
+$(shell if [ "$1" != "" -a -d "$1" ]; then (cd $1 && pwd); else echo "$1"; fi)
+endef
+
+# Location on system where jdk installs might be
+USRJDKINSTANCES_PATH =/opt/java
+
+# UNIXCOMMAND_PATH: path to where the most common Unix commands are.
+#  NOTE: Must end with / so that it could be empty, allowing PATH usage.
+ifneq "$(origin ALT_UNIXCOMMAND_PATH)" "undefined"
+  UNIXCOMMAND_PATH :=$(call PrefixPath,$(ALT_UNIXCOMMAND_PATH))
+else
+  UNIXCOMMAND_PATH  = /bin/
+endif
+
+# USRBIN_PATH: path to where the most common Unix commands are.
+#  NOTE: Must end with / so that it could be empty, allowing PATH usage.
+ifneq "$(origin ALT_USRBIN_PATH)" "undefined"
+  USRBIN_PATH :=$(call PrefixPath,$(ALT_USRBIN_PATH))
+else
+  USRBIN_PATH  = /usr/bin/
+endif
+
+# UNIXCCS_PATH: path to where the Solaris ported UNIX commands can be found
+#  NOTE: Must end with / so that it could be empty, allowing PATH usage.
+ifneq "$(origin ALT_UNIXCCS_PATH)" "undefined"
+  UNIXCCS_PATH :=$(call PrefixPath,$(ALT_UNIXCCS_PATH))
+else
+  UNIXCCS_PATH = /usr/ccs/bin/
+endif
+
+# SLASH_JAVA: location of all network accessable files
+ifdef ALT_SLASH_JAVA
+  SLASH_JAVA  :=$(ALT_SLASH_JAVA)
+else
+  SLASH_JAVA  := $(call DirExists,/java,/java,/NOT-SET)
+endif
+
+# JDK_DEVTOOLS_DIR: common path for all the java devtools
+ifdef ALT_JDK_DEVTOOLS_DIR
+  JDK_DEVTOOLS_DIR  =$(ALT_JDK_DEVTOOLS_DIR)
+else
+  JDK_DEVTOOLS_DIR =$(SLASH_JAVA)/devtools
+endif
+
+# COMPILER_PATH: path to where the compiler and tools are installed.
+#  NOTE: Must end with / so that it could be empty, allowing PATH usage.
+ifneq "$(origin ALT_COMPILER_PATH)" "undefined"
+  COMPILER_PATH :=$(call PrefixPath,$(ALT_COMPILER_PATH))
+else
+  COMPILER_PATH  =/usr/bin/
+endif
+
+# OPENWIN_HOME: path to where the X11 environment is installed.
+#  NOTE: Must end with / so that it could be empty, allowing PATH usage.
+ifneq ($(ALT_OPENWIN_HOME),)
+  OPENWIN_HOME :=$(call PrefixPath,$(ALT_OPENWIN_HOME))
+else
+  OPENWIN_HOME  ?=$(SYS_ROOT)/usr/X11R6/
+endif
+
+# DEVTOOLS_PATH: for other tools required for building (such as zip, etc.)
+#  NOTE: Must end with / so that it could be empty, allowing PATH usage.
+ifneq "$(origin ALT_DEVTOOLS_PATH)" "undefined"
+  DEVTOOLS_PATH :=$(call PrefixPath,$(ALT_DEVTOOLS_PATH))
+else
+  DEVTOOLS_PATH =/usr/bin/
+endif
+
+# _BOOTDIR1: First choice for a Bootstrap JDK, previous released JDK.
+# _BOOTDIR2: Second choice
+ifndef ALT_BOOTDIR
+  _BOOTDIR1  =$(SLASH_JAVA)/re/jdk/$(PREVIOUS_JDK_VERSION)/archive/fcs/binaries/$(PLATFORM)-$(ARCH)
+  _BOOTDIR2  =$(USRJDKINSTANCES_PATH)/jdk$(PREVIOUS_JDK_VERSION)
+endif
+
+# Always build headless on Linux
+BUILD_HEADLESS = true
+LIBM=-lm
+
+# GCC29_COMPILER_PATH: is the path to where the gcc 2.9 compiler is installed
+#  NOTE: Must end with / so that it could be empty, allowing PATH usage.
+ifdef ALT_GCC29_COMPILER_PATH
+  GCC29_COMPILER_PATH :=$(call PrefixPath,$(ALT_GCC29_COMPILER_PATH))
+else
+  GCC29_COMPILER_PATH = $(JDK_DEVTOOLS_DIR)/$(PLATFORM)/gcc29/usr/
+endif
+
+_CUPS_HEADERS_PATH=/usr/include
+
+# Import JDK images allow for partial builds, components not built are
+#    imported (or copied from) these import areas when needed.
+
+# BUILD_JDK_IMPORT_PATH: location of JDK install trees to import for 
+#   multiple platforms, e.g. windows-i586, solaris-sparc, linux-586, etc.
+ifdef ALT_BUILD_JDK_IMPORT_PATH
+  BUILD_JDK_IMPORT_PATH  :=$(call FullPath,$(ALT_BUILD_JDK_IMPORT_PATH))
+else
+  BUILD_JDK_IMPORT_PATH   = $(PROMOTED_BUILD_BINARIES)
+endif
+
+# JDK_IMPORT_PATH: location of JDK install tree (this version) to import
+ifdef ALT_JDK_IMPORT_PATH
+  JDK_IMPORT_PATH  :=$(call FullPath,$(ALT_JDK_IMPORT_PATH))
+else
+  JDK_IMPORT_PATH   = $(BUILD_JDK_IMPORT_PATH)/$(PLATFORM)-$(ARCH)$(_JDK_IMPORT_VARIANT)
+endif
+
+# HOTSPOT_IMPORT_PATH: location of hotspot pre-built files
+ifdef ALT_HOTSPOT_IMPORT_PATH
+  HOTSPOT_IMPORT_PATH :=$(call FullPath,$(ALT_HOTSPOT_IMPORT_PATH))
+else
+  HOTSPOT_IMPORT_PATH ?=$(JDK_IMPORT_PATH)
+endif
+
+# HOTSPOT_CLIENT_PATH: location of client jvm library file.
+ifeq ($(ARCH_DATA_MODEL), 32)
+  ifdef ALT_HOTSPOT_CLIENT_PATH
+    HOTSPOT_CLIENT_PATH :=$(call FullPath,$(ALT_HOTSPOT_CLIENT_PATH))
+  else
+    HOTSPOT_CLIENT_PATH   =$(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/client
+  endif
+endif
+
+# HOTSPOT_SERVER_PATH: location of server jvm library file.
+ifdef ALT_HOTSPOT_SERVER_PATH
+  HOTSPOT_SERVER_PATH :=$(call FullPath,$(ALT_HOTSPOT_SERVER_PATH))
+else
+  HOTSPOT_SERVER_PATH   =$(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/server
+endif
+
+# Special define for checking the binaries
+
+# Debug builds should downgrade warnings to just info
+MAPFILE_WARNING-DBG=INFO
+MAPFILE_WARNING-OPT=WARNING
+MAPFILE_WARNING-=WARNING
+MAPFILE_WARNING=$(MAPFILE_WARNING-$(VARIANT))
+
+# Macro to check it's input file for banned dependencies and verify the
+#   binary built properly. Relies on process exit code.
+ifndef CROSS_COMPILE_ARCH
+define binary_file_verification # binary_file
+( \
+  $(ECHO) "Checking for mapfile use in: $1" && \
+  if [ "`$(NM) -D -g --defined-only $1 | $(EGREP) 'SUNWprivate'`" = "" ] ; then \
+    $(ECHO) "$(MAPFILE_WARNING): File was not built with a mapfile: $1"; \
+  fi && \
+  $(ECHO) "Library loads for: $1" && \
+  $(LDD) $1 && \
+  $(ECHO) "RUNPATH for: $1" && \
+  ( $(READELF) -d $1 | $(EGREP) 'NEEDED|RUNPATH|RPATH' ) \
+)
+endef
+else
+define binary_file_verification 
+( \
+  $(ECHO) "Skipping binary file verification for cross-compile build" \
+)
+endef
+endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/common/shared/Defs-macosx.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,252 @@
+#
+# Copyright (c) 2005, 2011, 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.
+#
+
+#
+# Definitions for Bsd.
+#
+
+# Default for COMPILER_WARNINGS_FATAL on Bsd (C & C++ compiler warnings)
+ifndef COMPILER_WARNINGS_FATAL
+  COMPILER_WARNINGS_FATAL=false
+endif
+
+# Bsd should use parallel compilation for best build times
+ifndef COMPILE_APPROACH
+  COMPILE_APPROACH = parallel
+endif
+
+# Indication that we are doing an incremental build.
+#    This may trigger the creation of make depend files.
+ifndef INCREMENTAL_BUILD
+  INCREMENTAL_BUILD = false
+endif
+
+# FullPath just makes sure it never ends with a / and no duplicates
+define FullPath
+$(shell cd $1 2> $(DEV_NULL) && pwd)
+endef
+
+# OptFullPath: Absolute path name of a dir that might not initially exist.
+define OptFullPath
+$(shell if [ "$1" != "" -a -d "$1" ]; then (cd $1 && pwd); else echo "$1"; fi)
+endef
+
+# Location on system where jdk installs might be
+USRJDKINSTANCES_PATH = $(PACKAGE_PATH)
+
+# UNIXCOMMAND_PATH: path to where the most common Unix commands are.
+#  NOTE: Must end with / so that it could be empty, allowing PATH usage.
+ifneq "$(origin ALT_UNIXCOMMAND_PATH)" "undefined"
+  UNIXCOMMAND_PATH :=$(call PrefixPath,$(ALT_UNIXCOMMAND_PATH))
+else
+  UNIXCOMMAND_PATH  = /bin/
+endif
+
+# USRBIN_PATH: path to where the most common Unix commands are.
+#  NOTE: Must end with / so that it could be empty, allowing PATH usage.
+ifneq "$(origin ALT_USRBIN_PATH)" "undefined"
+  USRBIN_PATH :=$(call PrefixPath,$(ALT_USRBIN_PATH))
+else
+  USRBIN_PATH  = /usr/bin/
+endif
+
+# UNIXCCS_PATH: path to where the Solaris ported UNIX commands can be found
+#  NOTE: Must end with / so that it could be empty, allowing PATH usage.
+ifneq "$(origin ALT_UNIXCCS_PATH)" "undefined"
+  UNIXCCS_PATH :=$(call PrefixPath,$(ALT_UNIXCCS_PATH))
+else
+  UNIXCCS_PATH = /usr/ccs/bin/
+endif
+
+# SLASH_JAVA: location of all network accessable files
+ifdef ALT_SLASH_JAVA
+  SLASH_JAVA  :=$(ALT_SLASH_JAVA)
+else
+  SLASH_JAVA  := $(call DirExists,/java,/java,/NOT-SET)
+endif
+
+# JDK_DEVTOOLS_DIR: common path for all the java devtools
+ifdef ALT_JDK_DEVTOOLS_DIR
+  JDK_DEVTOOLS_DIR  =$(ALT_JDK_DEVTOOLS_DIR)
+else
+  JDK_DEVTOOLS_DIR =$(SLASH_JAVA)/devtools
+endif
+
+# COMPILER_PATH: path to where the compiler and tools are installed.
+#  NOTE: Must end with / so that it could be empty, allowing PATH usage.
+ifneq "$(origin ALT_COMPILER_PATH)" "undefined"
+  COMPILER_PATH :=$(call PrefixPath,$(ALT_COMPILER_PATH))
+else
+ ifeq ($(OS_VENDOR), Apple)
+  ifndef DEVELOPER_DIR
+   DEVELOPER_DIR = $(shell /usr/bin/xcode-select -print-path)/usr/bin/
+  endif
+  
+  COMPILER_PATH  := $(call DirExists,$(DEVELOPER_DIR),/usr/bin/,/NOT-SET)
+ else
+  COMPILER_PATH  =/usr/bin/
+ endif
+endif
+
+# OPENWIN_HOME: path to where the X11 environment is installed.
+#  NOTE: Must end with / so that it could be empty, allowing PATH usage.
+ifneq ($(ALT_OPENWIN_HOME),)
+  OPENWIN_HOME :=$(call PrefixPath,$(ALT_OPENWIN_HOME))
+else
+  OPENWIN_HOME  ?=$(X11_PATH)
+endif
+
+# DEVTOOLS_PATH: for other tools required for building (such as zip, etc.)
+#  NOTE: Must end with / so that it could be empty, allowing PATH usage.
+ifneq "$(origin ALT_DEVTOOLS_PATH)" "undefined"
+  DEVTOOLS_PATH :=$(call PrefixPath,$(ALT_DEVTOOLS_PATH))
+else
+  DEVTOOLS_PATH =$(PACKAGE_PATH)/bin/
+endif
+
+# _BOOTDIR1: First choice for a Bootstrap JDK, previous released JDK.
+# _BOOTDIR2: Second choice
+ifndef ALT_BOOTDIR
+  _BOOTDIR1  =$(SLASH_JAVA)/re/jdk/$(PREVIOUS_JDK_VERSION)/archive/fcs/binaries/$(PLATFORM)-$(ARCH)
+  _BOOTDIR2  =$(USRJDKINSTANCES_PATH)/jdk$(PREVIOUS_JDK_VERSION)
+endif
+
+# Always build headless on Bsd
+BUILD_HEADLESS = true
+LIBM=-lm
+
+ifeq ($(OS_VENDOR), Apple)
+  _CUPS_HEADERS_PATH=/usr/include
+else
+  _CUPS_HEADERS_PATH=$(PACKAGE_PATH)/include
+endif
+
+# Import JDK images allow for partial builds, components not built are
+#    imported (or copied from) these import areas when needed.
+
+# BUILD_JDK_IMPORT_PATH: location of JDK install trees to import for 
+#   multiple platforms, e.g. windows-i586, solaris-sparc, bsd-586, etc.
+ifdef ALT_BUILD_JDK_IMPORT_PATH
+  BUILD_JDK_IMPORT_PATH  :=$(call FullPath,$(ALT_BUILD_JDK_IMPORT_PATH))
+else
+  BUILD_JDK_IMPORT_PATH   = $(PROMOTED_BUILD_BINARIES)
+endif
+BUILD_JDK_IMPORT_PATH:=$(call AltCheckValue,BUILD_JDK_IMPORT_PATH)
+
+# JDK_IMPORT_PATH: location of JDK install tree (this version) to import
+ifdef ALT_JDK_IMPORT_PATH
+  JDK_IMPORT_PATH  :=$(call FullPath,$(ALT_JDK_IMPORT_PATH))
+else
+  JDK_IMPORT_PATH   = $(BUILD_JDK_IMPORT_PATH)/$(PLATFORM)-$(ARCH)$(_JDK_IMPORT_VARIANT)
+endif
+JDK_IMPORT_PATH:=$(call AltCheckValue,JDK_IMPORT_PATH)
+
+# HOTSPOT_IMPORT_PATH: location of hotspot pre-built files
+ifdef ALT_HOTSPOT_IMPORT_PATH
+  HOTSPOT_IMPORT_PATH :=$(call FullPath,$(ALT_HOTSPOT_IMPORT_PATH))
+else
+  HOTSPOT_IMPORT_PATH ?=$(JDK_IMPORT_PATH)
+endif
+HOTSPOT_IMPORT_PATH:=$(call AltCheckValue,HOTSPOT_IMPORT_PATH)
+
+# HOTSPOT_CLIENT_PATH: location of client jvm library file.
+ifeq ($(ARCH_DATA_MODEL), 32)
+  ifdef ALT_HOTSPOT_CLIENT_PATH
+    HOTSPOT_CLIENT_PATH :=$(call FullPath,$(ALT_HOTSPOT_CLIENT_PATH))
+  else
+    HOTSPOT_CLIENT_PATH   =$(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/client
+  endif
+  HOTSPOT_CLIENT_PATH:=$(call AltCheckValue,HOTSPOT_CLIENT_PATH)
+endif
+
+# HOTSPOT_SERVER_PATH: location of server jvm library file.
+ifdef ALT_HOTSPOT_SERVER_PATH
+  HOTSPOT_SERVER_PATH :=$(call FullPath,$(ALT_HOTSPOT_SERVER_PATH))
+else
+  HOTSPOT_SERVER_PATH   =$(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/server
+endif
+HOTSPOT_SERVER_PATH:=$(call AltCheckValue,HOTSPOT_SERVER_PATH)
+
+# Special define for checking the binaries
+
+# Debug builds should downgrade warnings to just info
+MAPFILE_WARNING-DBG=INFO
+MAPFILE_WARNING-OPT=WARNING
+MAPFILE_WARNING-=WARNING
+MAPFILE_WARNING=$(MAPFILE_WARNING-$(VARIANT))
+
+# Macro to check it's input file for banned dependencies and verify the
+#   binary built properly. Relies on process exit code.
+ifndef CROSS_COMPILE_ARCH
+ifeq ($(OS_VENDOR), Apple)
+define binary_file_verification # binary_file
+( \
+  $(ECHO) "Checking for mapfile use in: $1" && \
+  if [ "`$(NM) -g $1 | $(EGREP) 'SUNWprivate'`" = "" ] ; then \
+    $(ECHO) "WARNING: File was not built with a mapfile: $1"; \
+  fi && \
+  $(ECHO) "Library loads for: $1" && \
+  $(OTOOL) -L $1 && \
+  $(ECHO) "RUNPATH for: $1" && \
+  ( $(OTOOL) -l $1 | $(EGREP) 'path ' ) \
+) || true
+endef
+else
+ifeq ($(OS_VENDOR), OpenBSD)
+define binary_file_verification # binary_file
+( \
+  $(ECHO) "Checking for mapfile use in: $1" && \
+  if [ "`$(OBJDUMP) -T $1 | $(EGREP) '[0-9a-f]* g *DF \.text.*SUNWprivate'`" = "" ] ; then \
+    $(ECHO) "$(MAPFILE_WARNING): File was not built with a mapfile: $1"; \
+  fi && \
+  $(ECHO) "Library loads for: $1" && \
+  $(LDD) $1 && \
+  $(ECHO) "RUNPATH for: $1" && \
+  ( $(READELF) -d $1 | $(EGREP) 'NEEDED|RUNPATH|RPATH' ) \
+) || true
+endef
+else
+define binary_file_verification # binary_file
+( \
+  $(ECHO) "Checking for mapfile use in: $1" && \
+  if [ "`$(NM) -D -g --defined-only $1 | $(EGREP) 'SUNWprivate'`" = "" ] ; then \
+    $(ECHO) "$(MAPFILE_WARNING): File was not built with a mapfile: $1"; \
+  fi && \
+  $(ECHO) "Library loads for: $1" && \
+  $(LDD) $1 && \
+  $(ECHO) "RUNPATH for: $1" && \
+  ( $(READELF) -d $1 | $(EGREP) 'NEEDED|RUNPATH|RPATH' ) \
+)
+endef
+endif # OS_VENDOR == OpenBSD
+endif # OS_VENDOR == Apple
+else
+define binary_file_verification 
+( \
+  $(ECHO) "Skipping binary file verification for cross-compile build" \
+)
+endef
+endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/common/shared/Defs-solaris.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,239 @@
+#
+# Copyright (c) 2005, 2011, 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.
+#
+
+#
+# Definitions for Solaris.
+#
+
+# Default for COMPILER_WARNINGS_FATAL on Solaris (C & C++ compiler warnings)
+ifndef COMPILER_WARNINGS_FATAL
+  COMPILER_WARNINGS_FATAL=false
+endif
+
+# Solaris should use parallel compilation for best build times
+ifndef COMPILE_APPROACH
+  COMPILE_APPROACH = parallel
+endif
+
+# Indication that we are doing an incremental build.
+#    This may trigger the creation of make depend files.
+ifndef INCREMENTAL_BUILD
+  INCREMENTAL_BUILD = false
+endif
+
+# FullPath just makes sure it never ends with a / and no duplicates
+define FullPath
+$(shell cd $1 2> $(DEV_NULL) && pwd)
+endef
+
+# OptFullPath: Absolute path name of a dir that might not initially exist.
+define OptFullPath
+$(shell if [ "$1" != "" -a -d "$1" ]; then (cd $1 && pwd); else echo "$1"; fi)
+endef
+
+# Location on system where jdk installs might be
+USRJDKINSTANCES_PATH =/usr/jdk/instances
+
+# UNIXCOMMAND_PATH: path to where the most common Unix commands are.
+#  NOTE: Must end with / so that it could be empty, allowing PATH usage.
+ifneq "$(origin ALT_UNIXCOMMAND_PATH)" "undefined"
+  UNIXCOMMAND_PATH :=$(call PrefixPath,$(ALT_UNIXCOMMAND_PATH))
+else
+  UNIXCOMMAND_PATH  = /usr/bin/
+endif
+
+# UNIXCCS_PATH: path to where the less common UNIX commands can be found
+#  NOTE: Must end with / so that it could be empty, allowing PATH usage.
+ifneq "$(origin ALT_UNIXCCS_PATH)" "undefined"
+  UNIXCCS_PATH :=$(call PrefixPath,$(ALT_UNIXCCS_PATH))
+else
+  UNIXCCS_PATH = /usr/ccs/bin/
+endif
+
+# SLASH_JAVA: location of all network accessable files
+ifdef ALT_SLASH_JAVA
+  SLASH_JAVA  :=$(ALT_SLASH_JAVA)
+else
+  SLASH_JAVA  := $(call DirExists,/java,/java,/NOT-SET)
+endif
+
+# JDK_DEVTOOLS_DIR: common path for all the java devtools
+ifdef ALT_JDK_DEVTOOLS_DIR
+  JDK_DEVTOOLS_DIR  =$(ALT_JDK_DEVTOOLS_DIR)
+else
+  JDK_DEVTOOLS_DIR =$(SLASH_JAVA)/devtools
+endif
+
+# COMPILER_PATH: path to where the compiler and tools are installed.
+#  NOTE: Must end with / so that it could be empty, allowing PATH usage.
+ifneq "$(origin ALT_COMPILER_PATH)" "undefined"
+  COMPILER_PATH :=$(call PrefixPath,$(ALT_COMPILER_PATH))
+else
+  # 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.
+  #  (DirExists checks for this path twice, an automount double check)
+  _SUNSTUDIO_SET_ROOT=$(JDK_DEVTOOLS_DIR)/$(ARCH_FAMILY)/SUNWspro
+  SUNSTUDIO_SET_ROOT:=$(call DirExists,$(_SUNSTUDIO_SET_ROOT),$(_SUNSTUDIO_SET_ROOT),)
+  ifneq ($(SUNSTUDIO_SET_ROOT),)
+    COMPILER_PATH =$(SUNSTUDIO_SET_ROOT)/$(REQUIRED_COMPILER_VERSION)/bin/
+  else
+    COMPILER_PATH =/opt/SUNWspro/bin/
+  endif
+endif
+
+# DEVTOOLS_PATH: for other tools required for building (such as zip, etc.)
+#  NOTE: Must end with / so that it could be empty, allowing PATH usage.
+ifneq "$(origin ALT_DEVTOOLS_PATH)" "undefined"
+  DEVTOOLS_PATH :=$(call PrefixPath,$(ALT_DEVTOOLS_PATH))
+else
+  ifdef ALT_JDK_DEVTOOLS_DIR
+    DEVTOOLS_PATH =$(JDK_DEVTOOLS_DIR)/$(ARCH_FAMILY)/bin/
+  else
+    ifdef OPENJDK
+      DEVTOOLS_PATH = /usr/bin/
+    else
+      DEVTOOLS_PATH =$(JDK_DEVTOOLS_DIR)/$(ARCH_FAMILY)/bin/
+    endif
+  endif
+endif
+
+# _BOOTDIR1: First choice for a Bootstrap JDK, previous released JDK.
+# _BOOTDIR2: Second choice
+ifndef ALT_BOOTDIR
+  _BOOTDIR1  =$(SLASH_JAVA)/re/jdk/$(PREVIOUS_JDK_VERSION)/archive/fcs/binaries/$(PLATFORM)-$(ARCH)
+  _BOOTDIR2  =$(USRJDKINSTANCES_PATH)/jdk$(PREVIOUS_JDK_VERSION)
+endif
+
+# GCC_COMPILER_PATH: path to where the gcc/g++ compiler and tools are installed
+#  NOTE: Must end with / so that it could be empty, allowing PATH usage.
+ifneq "$(origin ALT_GCC_COMPILER_PATH)" "undefined"
+  GCC_COMPILER_PATH :=$(call PrefixPath,$(ALT_GCC_COMPILER_PATH))
+else
+  GCC_COMPILER_PATH = $(JDK_DEVTOOLS_DIR)/$(ARCH_FAMILY)/gnucc/bin/
+endif
+
+
+# Always build headless on Solaris
+BUILD_HEADLESS = true
+
+_CUPS_HEADERS_PATH=/opt/sfw/cups/include
+
+# Import JDK images allow for partial builds, components not built are
+#    imported (or copied from) these import areas when needed.
+
+# BUILD_JDK_IMPORT_PATH: location of JDK install trees to import for 
+#   multiple platforms, e.g. windows-i586, solaris-sparc, linux-586, etc.
+ifdef ALT_BUILD_JDK_IMPORT_PATH
+  BUILD_JDK_IMPORT_PATH  :=$(call FullPath,$(ALT_BUILD_JDK_IMPORT_PATH))
+else
+  BUILD_JDK_IMPORT_PATH   = $(PROMOTED_BUILD_BINARIES)
+endif
+
+# JDK_IMPORT_PATH: location of previously built JDK (this version) to import
+ifdef ALT_JDK_IMPORT_PATH
+  JDK_IMPORT_PATH  :=$(call FullPath,$(ALT_JDK_IMPORT_PATH))
+else
+  JDK_IMPORT_PATH   = $(BUILD_JDK_IMPORT_PATH)/$(PLATFORM)-$(ARCH)$(_JDK_IMPORT_VARIANT)
+endif
+
+# HOTSPOT_IMPORT_PATH: location of hotspot pre-built files
+ifdef ALT_HOTSPOT_IMPORT_PATH
+  HOTSPOT_IMPORT_PATH :=$(call FullPath,$(ALT_HOTSPOT_IMPORT_PATH))
+else
+  HOTSPOT_IMPORT_PATH ?=$(JDK_IMPORT_PATH)
+endif
+
+# HOTSPOT_CLIENT_PATH: location of client jvm library file.
+ifeq ($(ARCH_DATA_MODEL), 32)
+  ifdef ALT_HOTSPOT_CLIENT_PATH
+    HOTSPOT_CLIENT_PATH :=$(call FullPath,$(ALT_HOTSPOT_CLIENT_PATH))
+  else
+    HOTSPOT_CLIENT_PATH   =$(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/client
+  endif
+endif
+
+# HOTSPOT_SERVER_PATH: location of server jvm library file.
+ifdef ALT_HOTSPOT_SERVER_PATH
+  HOTSPOT_SERVER_PATH :=$(call FullPath,$(ALT_HOTSPOT_SERVER_PATH))
+else
+  HOTSPOT_SERVER_PATH   =$(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/server
+endif
+
+# Special define for checking the binaries
+
+# Debug builds should downgrade warnings to just info
+MAPFILE_WARNING-DBG=INFO
+MAPFILE_WARNING-OPT=WARNING
+MAPFILE_WARNING-=WARNING
+MAPFILE_WARNING=$(MAPFILE_WARNING-$(VARIANT))
+
+# Some libraries do not have mapfiles for multiple reasons.
+#   These libraries for sparc and sparcv9 are exceptions to the mapfile rule:
+#     libjdgaSUNWafb.so
+#     libjdgaSUNWcg6.so
+#     libjdgaSUNWffb.so
+#     libjdgaSUNWm64.so
+#     libxinerama.so
+#   The library libJdbcOdbc.so has also been given an exception.
+#   The JNI/JVMTI demo libraries are also missing mapfiles, no exceptions yet.
+ifeq ($(ARCH_FAMILY),sparc)
+  MAPFILE_EXCEPTIONS = \
+    (libJdbcOdbc|libjdgaSUNWafb|libjdgaSUNWcg6|libjdgaSUNWffb|libjdgaSUNWm64|libxinerama)
+else
+  MAPFILE_EXCEPTIONS = (libJdbcOdbc)
+endif
+
+# Macro to check it's input file for banned dependencies and verify the
+#   binary built properly. Relies on process exit code.
+ifndef CROSS_COMPILE_ARCH
+ifneq (,$(DUMP))
+define binary_file_verification # binary_file
+( \
+  $(ECHO) "Checking for mapfile use in: $1" && \
+  if [ "`$(ECHO) $(basename $(notdir $1)) | $(EGREP) '$(MAPFILE_EXCEPTIONS)'`" = "" \
+       -a "`$(NM) -g -D $1 | $(EGREP) -v 'UNDEF' | $(EGREP) 'SUNWprivate'`" = "" ] ; then \
+    $(ECHO) "$(MAPFILE_WARNING): File was not built with a mapfile: $1"; \
+  fi && \
+  $(ECHO) "Library loads for: $1" && \
+  $(LDD) $1 && \
+  $(ECHO) "RUNPATH for: $1" && \
+  ( $(DUMP) -L -v $1 | $(EGREP) 'NEEDED|RUNPATH|RPATH' ) \
+)
+endef
+else
+define binary_file_verification 
+( \
+  $(ECHO) "Skipping binary file verification since no dump command found" \
+)
+endef
+endif
+else
+define binary_file_verification 
+( \
+  $(ECHO) "Skipping binary file verification for cross-compile build" \
+)
+endef
+endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/common/shared/Defs-versions.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,215 @@
+#
+# Copyright (c) 2009, 2011, 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.
+#
+
+#
+# WARNING: This file is shared with other workspaces.
+#
+
+# This file needs these set: PLATFORM, ARCH_FAMILY, and ARCH_DATA_MODEL.
+
+# Windows uses Microsoft compilers by default
+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
+
+# Mac OS X uses LLVM by default
+ifeq ($(PLATFORM), macosx)
+  override CC_VERSION = llvm
+endif
+
+##########################################################################
+#
+# 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_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 legacy OJI 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_NAME            = SunOS
+  REQUIRED_OS_VERSION         = 5.10
+  REQUIRED_OS_VARIANT_NAME    = Solaris
+  REQUIRED_OS_VARIANT_VERSION = $(REQUIRED_OS_VERSION)
+  REQUIRED_COMPILER_NAME      = Sun Studio 12 Update 1
+  REQUIRED_COMPILER_VERSION   = SS12u1
+  # Cross-compilation compiler versions are target specific
+  # so don't set a required version if cross-compiling
+  ifndef CROSS_COMPILE_ARCH
+    ifeq ($(CC_VERSION),sun)
+      REQUIRED_CC_VER           = 5.10
+    endif
+    ifeq ($(CC_VERSION),gcc)
+      REQUIRED_CC_VER           = 3.4.3
+    endif
+  endif
+  REQUIRED_GCC_VER            = 2.95.2
+endif
+
+# Linux specific
+ifeq ($(PLATFORM), linux)
+  REQUIRED_OS_NAME            = Linux
+  REQUIRED_OS_VERSION         = 2.6
+  REQUIRED_OS_VARIANT_NAME    = Fedora
+  REQUIRED_OS_VARIANT_VERSION = 9
+  REQUIRED_ALSA_VERSION       = 0.9.1
+  REQUIRED_COMPILER_NAME      = GCC4
+  REQUIRED_COMPILER_VERSION   = GCC4
+  REQUIRED_GCC_VER            = 2.95
+  # Cross-compilation compiler versions are target specific
+  # so don't set a required version if cross-compiling
+  ifndef CROSS_COMPILE_ARCH
+    ifeq ($(CC_VERSION),gcc)
+      REQUIRED_CC_VER           = 4.3.0
+    endif
+    ifeq ($(CC_VERSION),sun)
+      REQUIRED_CC_VER           = 5.10
+    endif
+  endif
+endif
+
+# Mac specific
+ifeq ($(PLATFORM), macosx)
+  REQUIRED_OS_NAME            = Darwin
+  REQUIRED_OS_VERSION         = 11.2
+  REQUIRED_OS_VARIANT_NAME    = MacOSX
+  REQUIRED_OS_VARIANT_VERSION = 10.7.2
+  REQUIRED_COMPILER_NAME      = GCC4
+  REQUIRED_COMPILER_VERSION   = GCC4
+  REQUIRED_CC_VER             = 4.2.1
+endif
+
+# Windows specific
+ifeq ($(PLATFORM), windows)
+  REQUIRED_OS_NAME            = 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_DXSDK_VER          = 0x0900
+  ifeq ($(CC_VERSION),msvc)
+    REQUIRED_COMPILER_NAME    = Visual Studio 10
+    REQUIRED_COMPILER_VERSION = VS2010
+    REQUIRED_CC_VER           = 16.00.30319.01
+    REQUIRED_LINK_VER         = 10.00.30319.01
+  endif
+  ifeq ($(CC_VERSION),gcc)
+    REQUIRED_CC_VER           = 3.4.3
+  endif
+endif
+
+# Generic
+REQUIRED_ANT_VER          = 1.7.1
+REQUIRED_BOOT_VER         = 1.7
+REQUIRED_FREETYPE_VERSION = 2.3.0
+REQUIRED_MAKE_VER         = 3.81
+REQUIRED_UNZIP_VER        = 5.12
+REQUIRED_ZIP_VER          = 2.2
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/common/shared/Defs-windows.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,696 @@
+#
+# Copyright (c) 2005, 2011, 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.
+#
+
+#
+# Definitions for Windows.
+#
+
+# Default for COMPILER_WARNINGS_FATAL on Windows (C++ compiler warnings)
+#    Level: Default is 3, 0 means none, 4 is the most but may be unreliable
+#    Some makefiles may have set this to 0 to turn off warnings completely,
+#    which also effectively creates a COMPILER_WARNINGS_FATAL=false situation.
+#    Program.gmk may turn this down to 2 (building .exe's).
+#    Windows 64bit platforms are less likely to be warning free.
+#    Historically, Windows 32bit builds should be mostly warning free.
+#    VS2010 introduced a large number of security warnings that are off by
+#    default but will be turned back on with SHOW_ALL_WARNINGS=true.
+ifndef COMPILER_WARNING_LEVEL
+  COMPILER_WARNING_LEVEL=3
+endif
+ifndef COMPILER_WARNINGS_FATAL
+  COMPILER_WARNINGS_FATAL=false
+endif
+ifndef SHOW_ALL_WARNINGS
+  SHOW_ALL_WARNINGS = false
+endif
+
+# Windows should use parallel compilation for best build times
+ifndef COMPILE_APPROACH
+  COMPILE_APPROACH = normal
+endif
+
+# Indication that we are doing an incremental build.
+#    This may trigger the creation of make depend files.
+#    (This may not be working on windows yet, always force to false.)
+override INCREMENTAL_BUILD = false
+
+# WARNING: This is extremely touch stuff, between CYGWIN vs. MKS and all
+#          variations of MKS and CYGWIN releases, and 32bit vs 64bit,
+#          this file can give you nightmares.
+#
+# Notes:
+#   Keep all paths in the windows "mixed" style except CYGWIN UNXIXCOMMAND_PATH.
+#   Use of PrefixPath is critical, some variables must end with / (see NOTE).
+#   Use of quotes is critical due to possible spaces in paths coming from
+#     the environment variables, be careful.
+#   First convert \ to / with subst, keep it quoted due to blanks, then
+#     use cygpath -s or dosname -s to get the short non-blank name.
+#   If the MKS is old and doesn't have a dosname -s, you will be forced
+#     to set ALT variables with the short non-space directory names.
+#     If dosname doesn't appear to work, we won't use it.
+#     The dosname utility also wants to accept stdin if it is not supplied
+#     any path on the command line, this is really dangerous when using
+#     make variables that can easily become empty, so I use:
+#        echo $1 | dosname -s     instead of    dosname -s $1
+#     to prevent dosname from hanging up the make process when $1 is empty.
+#     The cygpath utility does not have this problem.
+#   The ALT values should never really have spaces or use \.
+#   Suspect these environment variables to have spaces and/or \ characters:
+#     SYSTEMROOT, SystemRoot, WINDIR, windir, PROGRAMFILES, ProgramFiles,
+#     DXSDK_DIR, MSTOOLS, Mstools, MSSDK, MSSdk, VCnnCOMNTOOLS, 
+#     MSVCDIR, MSVCDir.
+#     So use $(subst \,/,) on them first adding quotes and placing them in
+#         their own variable assigned with :=, then use FullPath.
+#
+
+ifdef USING_CYGWIN
+# Macro to effectively do a toupper without an exec
+define ToUpper
+$(subst a,A,$(subst b,B,$(subst c,C,$(subst d,D,$(subst e,E,$(subst f,F,\
+$(subst g,G,$(subst h,H,$(subst i,I,$(subst j,J,$(subst k,K,$(subst l,L,\
+$(subst m,M,$(subst n,N,$(subst o,O,$(subst p,P,$(subst q,Q,$(subst r,R,\
+$(subst s,S,$(subst t,T,$(subst u,U,$(subst v,V,$(subst w,W,$(subst x,X,\
+$(subst y,Y,$(subst z,Z,$1))))))))))))))))))))))))))
+endef
+# All possible drive letters
+drives=a b c d e f g h i j k l m n o p q r s t v u w x y z
+# Convert /cygdrive/ paths to the mixed style without an exec of cygpath
+#   Must be a path with no spaces. /cygdrive/letter is always lowercase
+#   and letter:/ is always uppercase coming from cygpath.
+define MixedPath
+$(patsubst /%,$(CYGWIN_HOME)/%,$(sort $(filter-out /cygdrive/%,$(foreach drive,$(drives),$(patsubst /cygdrive/$(drive)/%,$(call ToUpper,$(drive)):/%,$1)))))
+endef
+# Use FullPath to get C:/ style non-spaces path. Never ends with a /!
+# We assume cygpath is available in the search path
+#    NOTE: Use of 'pwd' with CYGWIN will not get you a mixed style path!
+define FullPath
+$(if $(word 2,$1),$(shell $(CYGPATH_CMD) $1 2> $(DEV_NULL)),$(call MixedPath,$(realpath $(subst ",,$1))))
+endef
+define OptFullPath
+$(shell if [ "$1" != "" -a -d "$1" ]; then $(CYGPATH_CMD) "$1" 2> $(DEV_NULL); else echo "$1"; fi)
+endef
+else
+# Temporary until we upgrade to MKS 8.7, MKS pwd returns mixed mode path
+define FullPath
+$(shell cd $1 2> $(DEV_NULL) && pwd)
+endef
+define OptFullPath
+$(shell if [ "$1" != "" -a -d "$1" ]; then (cd $1 && pwd); else echo "$1"; fi)
+endef
+endif
+
+# System drive
+ifdef SYSTEMDRIVE
+  _system_drive =$(SYSTEMDRIVE)
+else
+  ifdef SystemDrive
+    _system_drive =$(SystemDrive)
+  endif
+endif
+_system_drive:=$(call CheckValue,_system_drive,C:)
+
+# UNIXCOMMAND_PATH: path to where the most common Unix commands are.
+#  NOTE: Must end with / so that it could be empty, allowing PATH usage.
+#        With cygwin, just use this as is don't use FullPath on it.
+ifdef ALT_UNIXCOMMAND_PATH
+  ifdef USING_CYGWIN
+    UNIXCOMMAND_PATH       :=$(call PrefixPath,$(ALT_UNIXCOMMAND_PATH))
+  else
+    xALT_UNIXCOMMAND_PATH  :="$(subst \,/,$(ALT_UNIXCOMMAND_PATH))"
+    fxALT_UNIXCOMMAND_PATH :=$(call FullPath,$(xALT_UNIXCOMMAND_PATH))
+    UNIXCOMMAND_PATH       :=$(call PrefixPath,$(fxALT_UNIXCOMMAND_PATH))
+  endif
+else
+  ifdef USING_CYGWIN
+    UNIXCOMMAND_PATH :=$(call PrefixPath,/usr/bin)
+  else
+    ifdef ROOTDIR
+      xROOTDIR :="$(subst \,/,$(ROOTDIR))"
+      _rootdir :=$(call FullPath,$(xROOTDIR))
+    else
+      xROOTDIR :="$(_system_drive)/mksnt"
+      _rootdir :=$(call FullPath,$(xROOTDIR))
+    endif
+    ifneq ($(_rootdir),)
+      UNIXCOMMAND_PATH :=$(call PrefixPath,$(_rootdir)/mksnt)
+    endif
+  endif
+endif
+UNIXCOMMAND_PATH:=$(call AltCheckSpaces,UNIXCOMMAND_PATH)
+
+# Get version of MKS or CYGWIN
+ifndef USING_CYGWIN
+_MKS_VER :=$(shell $(MKSINFO) 2>&1 | $(GREP) Release | $(TAIL) -1 | $(SED) -e 's@.*\(Release.*\)@\1@')
+MKS_VER  :=$(call GetVersion,$(_MKS_VER))
+# At this point, we can re-define FullPath to use DOSNAME_CMD
+CHECK_MKS87:=$(call CheckVersions,$(MKS_VER),8.7)
+TRY_DOSNAME:=false
+ifeq ($(CHECK_MKS87),same)
+TRY_DOSNAME:=true
+endif
+# Newer should be ok
+ifeq ($(CHECK_MKS87),newer)
+TRY_DOSNAME:=true
+endif
+ifeq ($(TRY_DOSNAME),true)
+ifeq ($(shell $(UNIXCOMMAND_PATH)dosname -s $(_system_drive)/ 2> $(DEV_NULL)),$(_system_drive)/)
+_DOSNAME=$(UNIXCOMMAND_PATH)dosname
+DOSNAME_CMD:=$(_DOSNAME) -s
+define FullPath
+$(subst //,/,$(shell echo $1 | $(DOSNAME_CMD) 2> $(DEV_NULL)))
+endef
+endif # test dosname -s
+endif # TRY_DOSNAME
+endif # MKS
+
+# We try to get references to what we need via the default component
+#    environment variables, or what was used historically.
+
+# Process Windows values into FullPath values, these paths may have \ chars
+
+# System root
+ifdef SYSTEMROOT
+  xSYSTEMROOT  :="$(subst \,/,$(SYSTEMROOT))"
+  _system_root :=$(call FullPath,$(xSYSTEMROOT))
+else
+  ifdef SystemRoot
+     xSYSTEMROOT :="$(subst \,/,$(SystemRoot))"
+    _system_root :=$(call FullPath,$(xSYSTEMROOT))
+  else
+    ifdef WINDIR
+      xWINDIR      :="$(subst \,/,$(WINDIR))"
+      _system_root :=$(call FullPath,$(xWINDIR))
+    else
+      ifdef windir
+        xWINDIR      :="$(subst \,/,$(windir))"
+        _system_root :=$(call FullPath,$(xWINDIR))
+      endif
+    endif
+  endif
+endif
+_system_root:=$(call CheckValue,_system_root,$(_system_drive)/WINNT)
+
+# Program Files directory
+ifdef PROGRAMFILES
+  xPROGRAMFILES      :="$(subst \,/,$(PROGRAMFILES))"
+else
+  ifeq ($(ARCH_DATA_MODEL), 32)
+    xPROGRAMFILES    :="$(_system_drive)/Program Files"
+  else
+    xPROGRAMFILES    :="$(_system_drive)/Program Files (x86)"
+  endif
+endif
+ifeq ($(ARCH_DATA_MODEL), 32)
+  _program_files     :=$(call FullPath,$(xPROGRAMFILES))
+  _program_files32   :=$(_program_files)
+else
+  ifdef PROGRAMW6432
+    xPROGRAMW6432    :="$(subst \,/,$(PROGRAMW6432))"
+  else
+    xPROGRAMW6432    :="$(_system_drive)/Program Files"
+  endif
+  _program_files     :=$(call FullPath,$(xPROGRAMW6432))
+  _program_files32   :=$(call FullPath,$(xPROGRAMFILES))
+  ifneq ($(word 1,$(_program_files32)),$(_program_files32))
+    _program_files32:=
+  endif
+endif
+ifneq ($(word 1,$(_program_files)),$(_program_files))
+  _program_files:=
+endif
+
+# DirectX SDK
+ifdef ALT_DXSDK_DRIVE
+  _dx_sdk_dir  =$(ALT_DXSDK_DRIVE):/DXSDK
+else
+  ifdef DXSDK_DIR
+    xDXSDK_DIR  :="$(subst \,/,$(DXSDK_DIR))"
+  else
+    xDXSDK_DIR  :="$(_system_drive)/DXSDK"
+  endif
+  _dx_sdk_dir :=$(call FullPath,$(xDXSDK_DIR))
+endif
+
+# Use of the Visual Studio compilers requires certain env variables be set:
+#   PATH should include the path to cl.exe
+#   INCLUDE should be defined
+#   LIB     should be defined
+#   LIBPATH should be defined
+#   VS100COMNTOOLS should be defined
+#   WINDOWSSDKDIR should be defined
+#     The 7.0a path is from VS2010 Pro, the 7.1 path is the standalone SDK.
+#     For 64bit either will work for us.
+#     If a developer chooses to install the standalone SDK in some other
+#     location, then they need to set WINDOWSSDKDIR.
+#
+# Compilers for 64bit may be from the free SDK, or Visual Studio Professional.
+#   The free Express compilers don't contain 64 bit compilers, which is why
+#   you instead need the SDK.
+#   Release enginering will use VS2010 Pro, so the frequency of testing of
+#     SDK based builds will depend entirely on individual usage.
+
+# We only need to do this once
+ifndef VS2010_EXISTS
+  # The 2 key paths we need are WINDOWSSDKDIR and VS100COMNTOOLS.
+  #   If not defined try to see if default location exists.
+  #   If defined make sure that the path has no spaces.
+  #   Finally, export path with no spaces so logic minimizes FullPath calls.
+  ifndef WINDOWSSDKDIR
+    # The 7.0a SDK is the second choice.
+    xWINDOWSSDKDIR :="$(_program_files32)/Microsoft SDKs/Windows/v7.0a/"
+    fWINDOWSSDKDIR :=$(call FullPath,$(xWINDOWSSDKDIR))
+    # The 7.1 SDK is the second choice.
+    ifeq ($(fWINDOWSSDKDIR),)
+      xWINDOWSSDKDIR :="$(_program_files32)/Microsoft SDKs/Windows/v7.1/"
+      fWINDOWSSDKDIR :=$(call FullPath,$(xWINDOWSSDKDIR))
+    endif
+  else
+    ifneq ($(word 2,$(WINDOWSSDKDIR)),)
+      xWINDOWSSDKDIR :="$(subst \,/,$(WINDOWSSDKDIR))"
+      fWINDOWSSDKDIR :=$(call FullPath,$(xWINDOWSSDKDIR))
+    else
+      fWINDOWSSDKDIR :=$(WINDOWSSDKDIR)
+    endif
+  endif
+  ifneq ($(fWINDOWSSDKDIR),)
+    WINDOWSSDKDIR  :=$(fWINDOWSSDKDIR)/
+  endif
+  ifndef VS100COMNTOOLS
+    xVS100COMNTOOLS :="$(_program_files32)/Microsoft Visual Studio 10.0/Common7/Tools/"
+    fVS100COMNTOOLS :=$(call FullPath,$(xVS100COMNTOOLS))
+  else
+    xVS100COMNTOOLS :="$(subst \,/,$(VS100COMNTOOLS))"
+    ifneq ($(word 2,$(VS100COMNTOOLS)),)
+      fVS100COMNTOOLS :=$(call FullPath,$(xVS100COMNTOOLS))
+    else
+      fVS100COMNTOOLS :=$(xVS100COMNTOOLS)
+    endif
+  endif
+  ifneq ($(fVS100COMNTOOLS),)
+    VS100COMNTOOLS :=$(fVS100COMNTOOLS)/
+  endif
+  # Check to see that both exist
+  ifeq ($(WINDOWSSDKDIR),)
+    _vs2010_message := No WINDOWSSDKDIR found on system. $(_vs2010_message)
+    VS2010_EXISTS   := false
+  endif
+  ifeq ($(VS100COMNTOOLS),)
+    _vs2010_message := No VS100COMNTOOLS found on system. $(_vs2010_message)
+    VS2010_EXISTS   := false
+  endif
+  ifeq ($(VS2010_EXISTS),false)
+    x:=$(warning WARNING: No VS2010 available. $(_vs2010_message))
+    VS100COMNTOOLS :=
+    WINDOWSSDKDIR  :=
+  else
+    VS2010_EXISTS := true
+    _msvc_dir     :=$(VS100COMNTOOLS)/../../Vc
+  endif
+  export VS2010_EXISTS
+  export VS100COMNTOOLS
+  export WINDOWSSDKDIR
+endif
+
+ifneq ($(VS2010_EXISTS),true)
+  x:=$(error ERROR: No VS2010 found on system.)
+endif 
+
+# VS2010 Compiler root directory
+_msvc_dir :=$(VS100COMNTOOLS)/../../Vc
+# SDK root directory
+_ms_sdk   :=$(WINDOWSSDKDIR)
+# Compiler bin directory and redist directory
+ifeq ($(ARCH_DATA_MODEL), 32)
+  _compiler_bin :=$(_msvc_dir)/Bin
+  _redist_sdk   :=$(call FullPath,$(_msvc_dir)/redist/x86/Microsoft.VC100.CRT)
+endif
+ifeq ($(ARCH_DATA_MODEL), 64)
+  _compiler_bin :=$(_msvc_dir)/bin/amd64
+  _redist_sdk   :=$(call FullPath,$(_msvc_dir)/redist/x64/Microsoft.VC100.CRT)
+endif
+ifeq ($(_redist_sdk),)
+  _redist_sdk   :=$(_system_root)/system32
+endif
+
+# Location on system where jdk installs might be
+ifneq ($(_program_files),)
+  USRJDKINSTANCES_PATH =$(_program_files)/Java
+else
+  USRJDKINSTANCES_PATH =$(_system_drive)/
+endif
+
+# SLASH_JAVA: location of all network accessable files
+# NOTE: Do not use FullPath on this because it's often a drive letter and
+#       plain drive letters are ambiguous, so just use this 'as is'.
+ifdef ALT_SLASH_JAVA
+  xALT_SLASH_JAVA :="$(subst \,/,$(ALT_SLASH_JAVA))"
+  SLASH_JAVA      :=$(xALT_SLASH_JAVA)
+else
+  ifdef ALT_JDK_JAVA_DRIVE
+    SLASH_JAVA  =$(JDK_JAVA_DRIVE)
+  else
+    SLASH_JAVA  =J:
+  endif
+endif
+#SLASH_JAVA:=$(call AltCheckSpaces,SLASH_JAVA)
+
+# JDK_DEVTOOLS_DIR: common path for all the java devtools
+ifdef ALT_JDK_DEVTOOLS_DIR
+  xALT_JDK_DEVTOOLS_DIR :="$(subst \,/,$(ALT_JDK_DEVTOOLS_DIR))"
+  JDK_DEVTOOLS_DIR      :=$(call FullPath,$(xALT_JDK_DEVTOOLS_DIR))
+else
+  JDK_DEVTOOLS_DIR =$(SLASH_JAVA)/devtools
+endif
+JDK_DEVTOOLS_DIR:=$(call AltCheckSpaces,JDK_DEVTOOLS_DIR)
+
+# COMPILER_PATH: path to where the compiler and tools are installed.
+#  NOTE: Must end with / so that it could be empty, allowing PATH usage.
+ifdef ALT_COMPILER_PATH
+  xALT_COMPILER_PATH  :="$(subst \,/,$(ALT_COMPILER_PATH))"
+  fxALT_COMPILER_PATH :=$(call FullPath,$(xALT_COMPILER_PATH))
+  COMPILER_PATH       :=$(call PrefixPath,$(fxALT_COMPILER_PATH))
+else
+  COMPILER_PATH :=$(call PrefixPath,$(_compiler_bin))
+endif
+COMPILER_PATH :=$(call AltCheckSpaces,COMPILER_PATH)
+
+# MSDEVTOOLS_PATH: path to where the additional MS Compiler tools are.
+#  NOTE: Must end with / so that it could be empty, allowing PATH usage.
+ifdef ALT_MSDEVTOOLS_PATH
+  xALT_MSDEVTOOLS_PATH  :="$(subst \,/,$(ALT_MSDEVTOOLS_PATH))"
+  fxALT_MSDEVTOOLS_PATH :=$(call FullPath,$(xALT_MSDEVTOOLS_PATH))
+  MSDEVTOOLS_PATH       :=$(call PrefixPath,$(fxALT_MSDEVTOOLS_PATH))
+else
+  ifeq ($(ARCH_DATA_MODEL), 64)
+    ifdef MSTOOLS
+      xMSTOOLS  :="$(subst \,/,$(MSTOOLS))"
+      _ms_tools :=$(call FullPath,$(xMSTOOLS))
+    else
+      ifdef Mstools
+        xMSTOOLS  :="$(subst \,/,$(Mstools))"
+        _ms_tools :=$(call FullPath,$(xMSTOOLS))
+      else
+        _ms_tools :=
+      endif
+    endif
+    ifneq ($(_ms_tools),)
+      _ms_tools_bin :=$(_ms_tools)/Bin
+    else
+      # Assumes compiler bin is .../Bin/win64/x86/AMD64, rc.exe is 3 levels up
+      _ms_tools_bin :=$(_compiler_bin)/../../..
+    endif
+  else
+    _ms_tools_bin :=$(_compiler_bin)
+  endif
+  MSDEVTOOLS_PATH :=$(call PrefixPath,$(_ms_tools_bin))
+endif
+MSDEVTOOLS_PATH:=$(call AltCheckSpaces,MSDEVTOOLS_PATH)
+
+# DEVTOOLS_PATH: for other tools required for building (such as zip, etc.)
+#  NOTE: Must end with / so that it could be empty, allowing PATH usage.
+ifdef ALT_DEVTOOLS_PATH
+  xALT_DEVTOOLS_PATH  :="$(subst \,/,$(ALT_DEVTOOLS_PATH))"
+  fxALT_DEVTOOLS_PATH :=$(call FullPath,$(xALT_DEVTOOLS_PATH))
+  DEVTOOLS_PATH       :=$(call PrefixPath,$(fxALT_DEVTOOLS_PATH))
+else
+  ifdef USING_CYGWIN
+    DEVTOOLS_PATH :=$(UNIXCOMMAND_PATH)
+  else
+    xDEVTOOLS_PATH  :="$(_system_drive)/utils"
+    fxDEVTOOLS_PATH :=$(call FullPath,$(xDEVTOOLS_PATH))
+    DEVTOOLS_PATH  :=$(call PrefixPath,$(fxDEVTOOLS_PATH))
+  endif
+endif
+DEVTOOLS_PATH:=$(call AltCheckSpaces,DEVTOOLS_PATH)
+
+# _BOOTDIR1: First choice for a Bootstrap JDK, previous released JDK.
+# _BOOTDIR2: Second choice
+# The _BOOTDIR3 is defind optionally.
+ifndef ALT_BOOTDIR
+  _BOOTDIR1  =$(_system_drive)/jdk$(PREVIOUS_JDK_VERSION)
+  _BOOTDIR2  =$(USRJDKINSTANCES_PATH)/jdk$(PREVIOUS_JDK_VERSION)
+  _BOOTDIR3  =$(SLASH_JAVA)/re/jdk/$(PREVIOUS_JDK_VERSION)/archive/fcs/binaries/$(PLATFORM)-$(ARCH)
+endif
+
+# Everybody needs the MSVCRNN runtime starting with VS2010
+_NEEDS_MSVCRNN = true
+
+ifeq ($(_NEEDS_MSVCRNN), true)
+  # MSVCRNN_DLL_PATH: location of msvcrnn.dll that will be re-distributed
+  ifdef ALT_MSVCRNN_DLL_PATH
+    xALT_MSVCRNN_DLL_PATH :="$(subst \,/,$(ALT_MSVCRNN_DLL_PATH))"
+    MSVCRNN_DLL_PATH      :=$(call FullPath,$(xALT_MSVCRNN_DLL_PATH))
+  else
+    MSVCRNN_DLL_PATH :=$(_redist_sdk)
+  endif
+  MSVCRNN_DLL_PATH :=$(call AltCheckSpaces,MSVCRNN_DLL_PATH)
+endif
+
+# DXSDK_PATH: path to Microsoft DirectX SDK Include and Lib
+ifdef ALT_DXSDK_PATH
+  xALT_DXSDK_PATH :="$(subst \,/,$(ALT_DXSDK_PATH))"
+  DXSDK_PATH      :=$(call FullPath,$(xALT_DXSDK_PATH))
+else
+  _DXSDK_PATH1 :=$(_dx_sdk_dir)
+  _DXSDK_PATH2 :=$(JDK_DEVTOOLS_DIR)/windows/dxsdk
+  DXSDK_PATH  :=$(call DirExists,$(_DXSDK_PATH1),$(_DXSDK_PATH2),$(_dx_sdk_dir))
+endif
+DXSDK_PATH :=$(call AltCheckSpaces,DXSDK_PATH)
+
+# DXSDK_INCLUDE_PATH: path to Microsoft DirectX SDK Include
+ifdef ALT_DXSDK_INCLUDE_PATH
+  xALT_DXSDK_INCLUDE_PATH :="$(subst \,/,$(ALT_DXSDK_INCLUDE_PATH))"
+  DXSDK_INCLUDE_PATH      :=$(call FullPath,$(xALT_DXSDK_INCLUDE_PATH))
+else
+  DXSDK_INCLUDE_PATH =$(subst //,/,$(DXSDK_PATH)/Include)
+endif
+
+# DXSDK_LIB_PATH: path to Microsoft DirectX SDK Lib
+ifdef ALT_DXSDK_LIB_PATH
+  xALT_DXSDK_LIB_PATH :="$(subst \,/,$(ALT_DXSDK_LIB_PATH))"
+  DXSDK_LIB_PATH      :=$(call FullPath,$(xALT_DXSDK_LIB_PATH))
+else
+  ifeq ($(ARCH_DATA_MODEL), 64)
+    # 64bit libs are located in "Lib/x64" subdir
+    DXSDK_LIB_PATH =$(subst //,/,$(DXSDK_PATH)/Lib/x64)
+  else
+    DXSDK_LIB_PATH =$(subst //,/,$(DXSDK_PATH)/Lib)
+  endif
+endif
+
+# DEPLOY_MSSDK: Microsoft SDK for this platform (for deploy)
+ifdef ALT_DEPLOY_MSSDK
+  xALT_DEPLOY_MSSDK :="$(subst \,/,$(ALT_DEPLOY_MSSDK))"
+  DEPLOY_MSSDK      :=$(call FullPath,$(xALT_DEPLOY_MSSDK))
+else
+  DEPLOY_MSSDK      :=$(_ms_sdk)
+endif
+DEPLOY_MSSDK:=$(call AltCheckSpaces,DEPLOY_MSSDK)
+
+# INSTALL_MSSDK: Microsoft Installer SDK for this platform (for install)
+ifdef ALT_INSTALL_MSSDK
+  xALT_INSTALL_MSSDK :="$(subst \,/,$(ALT_INSTALL_MSSDK))"
+  INSTALL_MSSDK      :=$(call FullPath,$(xALT_INSTALL_MSSDK))
+else
+  INSTALL_MSSDK      :=$(_ms_sdk)
+endif
+INSTALL_MSSDK:=$(call AltCheckSpaces,INSTALL_MSSDK)
+
+# WSCRIPT: path to wscript.exe (used in creating install bundles)
+ifdef ALT_WSCRIPT
+  xALT_WSCRIPT :="$(subst \,/,$(ALT_WSCRIPT))"
+  WSCRIPT  =$(xALT_WSCRIPT)
+else
+  _WSCRIPT1 :=$(_system_root)/system32/wscript.exe
+  _WSCRIPT2 :=$(DEVTOOLS_PATH)wscript.exe
+  WSCRIPT  :=$(call FileExists,$(_WSCRIPT1),$(_WSCRIPT2))
+endif
+WSCRIPT:=$(call AltCheckSpaces,WSCRIPT)
+# batch mode no modal dialogs on errors, please.
+WSCRIPT += -B
+
+# CSCRIPT: path to cscript.exe (used in creating install bundles)
+ifdef ALT_CSCRIPT
+  xALT_CSCRIPT :="$(subst \,/,$(ALT_CSCRIPT))"
+  CSCRIPT  =$(xALT_CSCRIPT)
+else
+  _CSCRIPT1 :=$(_system_root)/system32/cscript.exe
+  _CSCRIPT2 :=$(DEVTOOLS_PATH)cscript.exe
+  CSCRIPT  :=$(call FileExists,$(_CSCRIPT1),$(_CSCRIPT2))
+endif
+CSCRIPT:=$(call AltCheckSpaces,CSCRIPT)
+
+# CABARC: path to cabarc.exe (used in creating install bundles)
+ifdef ALT_CABARC
+  xALT_CABARC :="$(subst \,/,$(ALT_CABARC))"
+  CABARC  =$(xALT_CABARC)
+else
+  _CABARC1 :=$(_system_root)/system32/cabarc.exe
+  _CABARC2 :=$(DEVTOOLS_PATH)cabarc.exe
+  CABARC  :=$(call FileExists,$(_CABARC1),$(_CABARC2))
+endif
+CABARC:=$(call AltCheckSpaces,CABARC)
+
+# MSICERT: path to msicert.exe (used in creating install bundles)
+ifdef ALT_MSICERT
+  xALT_MSICERT :="$(subst \,/,$(ALT_MSICERT))"
+  MSICERT  =$(xALT_MSICERT)
+else
+  _MSICERT1 :=$(INSTALL_MSSDK)/Bin/msicert.exe
+  _MSICERT2 :=$(DEVTOOLS_PATH)msicert.exe
+  MSICERT   :=$(call FileExists,$(_MSICERT1),$(_MSICERT2))
+endif
+MSICERT:=$(call AltCheckSpaces,MSICERT)
+
+# Import JDK images allow for partial builds, components not built are
+#    imported (or copied from) these import areas when needed.
+
+# BUILD_JDK_IMPORT_PATH: location of JDK install trees to import for
+#   multiple platforms, e.g. windows-i586, solaris-sparc, linux-586, etc.
+ifdef ALT_BUILD_JDK_IMPORT_PATH
+  BUILD_JDK_IMPORT_PATH  :=$(call FullPath,$(ALT_BUILD_JDK_IMPORT_PATH))
+else
+  BUILD_JDK_IMPORT_PATH   = $(PROMOTED_BUILD_BINARIES)
+endif
+BUILD_JDK_IMPORT_PATH:=$(call AltCheckSpaces,BUILD_JDK_IMPORT_PATH)
+
+# JDK_IMPORT_PATH: location of previously built JDK (this version) to import
+ifdef ALT_JDK_IMPORT_PATH
+  JDK_IMPORT_PATH  :=$(call FullPath,$(ALT_JDK_IMPORT_PATH))
+else
+  JDK_IMPORT_PATH   = $(BUILD_JDK_IMPORT_PATH)/$(PLATFORM)-$(ARCH)$(_JDK_IMPORT_VARIANT)
+endif
+JDK_IMPORT_PATH:=$(call AltCheckSpaces,JDK_IMPORT_PATH)
+
+# HOTSPOT_CLIENT_PATH: location of client jvm library file.
+ifeq ($(ARCH_DATA_MODEL), 32)
+  ifdef ALT_HOTSPOT_CLIENT_PATH
+    HOTSPOT_CLIENT_PATH :=$(call FullPath,$(ALT_HOTSPOT_CLIENT_PATH))
+  else
+    HOTSPOT_CLIENT_PATH   =$(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/client
+  endif
+  HOTSPOT_CLIENT_PATH:=$(call AltCheckSpaces,HOTSPOT_CLIENT_PATH)
+endif
+
+# HOTSPOT_SERVER_PATH: location of server jvm library file.
+ifdef ALT_HOTSPOT_SERVER_PATH
+  HOTSPOT_SERVER_PATH :=$(call FullPath,$(ALT_HOTSPOT_SERVER_PATH))
+else
+  HOTSPOT_SERVER_PATH   =$(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/server
+endif
+HOTSPOT_SERVER_PATH:=$(call AltCheckSpaces,HOTSPOT_SERVER_PATH)
+
+# HOTSPOT_LIB_PATH: location of jvm.lib file.
+ifdef ALT_HOTSPOT_LIB_PATH
+  xALT_HOTSPOT_LIB_PATH :="$(subst \,/,$(ALT_HOTSPOT_LIB_PATH))"
+  HOTSPOT_LIB_PATH      :=$(call FullPath,$(xALT_HOTSPOT_LIB_PATH))
+else
+  HOTSPOT_LIB_PATH  =$(HOTSPOT_IMPORT_PATH)/lib
+endif
+HOTSPOT_LIB_PATH:=$(call AltCheckSpaces,HOTSPOT_LIB_PATH)
+
+# Special define for checking the binaries
+
+# All windows dll and exe files should have been built with /NXCOMPAT
+#   and be setup for dynamic base addresses.
+#   In addition, we should not be dependent on certain dll files that
+#   we do not or cannot redistribute.
+
+# List of filenames we should NOT be dependent on
+ifeq ($(MFC_DEBUG),true)
+  BANNED_DLLS=msvcp100[.]dll
+else
+  BANNED_DLLS=msvcp100[.]dll|msvcr100d[.]dll|msvcrtd[.]dll
+endif
+
+# Check for /safeseh (only used on 32bit)
+define binary_file_safeseh_verification # binary_file
+( \
+  $(ECHO) "Checking for /SAFESEH usage in: $1" && \
+  if [ "`$(DUMPBIN) /loadconfig $1 | $(EGREP) -i 'Safe Exception Handler Table'`" = "" ] ; then \
+    $(ECHO) "ERROR: Did not find 'Safe Exception Handler Table' in loadconfig: $1" ; \
+    $(DUMPBIN) /loadconfig $1 ; \
+    exit 6 ; \
+  fi ; \
+)
+endef
+
+# Check for /NXCOMPAT usage
+define binary_file_nxcompat_verification # binary_file
+( \
+  $(ECHO) "Checking for /NXCOMPAT usage in: $1" && \
+  if [ "`$(DUMPBIN) /headers $1 | $(EGREP) -i 'NX compatible'`" = "" ] ; then \
+    $(ECHO) "ERROR: Did not find 'NX compatible' in headers: $1" ; \
+    $(DUMPBIN) /headers $1 ; \
+    exit 7 ; \
+  fi ; \
+)
+endef
+
+# Check for /DYNAMICBASE usage
+define binary_file_dynamicbase_verification # binary_file
+( \
+  $(ECHO) "Checking for /DYNAMICBASE usage in: $1" && \
+  if [ "`$(DUMPBIN) /headers $1 | $(EGREP) -i 'Dynamic base'`" = "" ] ; then \
+    $(ECHO) "ERROR: Did not find 'Dynamic base' in headers: $1" ; \
+    $(DUMPBIN) /headers $1 ; \
+    exit 8 ; \
+  fi ; \
+)
+endef
+
+# Check for banned dll usage
+define binary_file_dll_verification # binary_file
+( \
+  $(ECHO) "Checking for banned dependencies in: $1" && \
+  if [ "`$(DUMPBIN) /dependents $1 | $(EGREP) -i '$(BANNED_DLLS)'`" != "" ] ; then \
+    $(ECHO) "ERROR: Found use of $(BANNED_DLLS)"; \
+    $(DUMPBIN) /dependents $1 ; \
+    exit 9 ; \
+  fi ; \
+)
+endef
+
+# Macro to check it's input file for properly built executables.
+#   Relies on process exit code. Different for 32bit vs 64bit.
+ifeq ($(ARCH_DATA_MODEL),32)
+define binary_file_verification # binary_file
+( \
+  $(call binary_file_safeseh_verification,$1); \
+  $(call binary_file_nxcompat_verification,$1); \
+  $(call binary_file_dynamicbase_verification,$1); \
+  $(call binary_file_dll_verification,$1); \
+)
+endef
+else
+define binary_file_verification # binary_file
+( \
+  $(call binary_file_nxcompat_verification,$1); \
+  $(call binary_file_dynamicbase_verification,$1); \
+  $(call binary_file_dll_verification,$1); \
+)
+endef
+endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/common/shared/Defs.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,666 @@
+#
+# Copyright (c) 2005, 2011, 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.
+#
+
+#
+# Definitions for all platforms.
+#
+# Normally the convention is that these alternate definitions of
+#   primary make variables are never defined inside the Makefiles anywhere
+#   but are defined via environment variables or set on the make command
+#   line. So you should never see an ALT_* variable defined in any
+#   makefiles, just used. This is the convention and there are some
+#   exceptions, either mistakes or unusual circumstances.
+#
+# The naming convention for the default value of one of these variables
+#   that has an ALT_* override capability is to name the default value with a
+#   leading underscore (_). So for XXX you would have:
+#      _XXX      default value
+#      ALT_XXX   any override the user is providing if any
+#      XXX       the final value, either the default _XXX or the ALT_XXX value.
+#
+
+# On Directory names. In very rare cases should the Windows directory
+#    names use the backslash, please use the C:/ style of windows paths.
+#    Avoid duplicating the // characters in paths, this has known to cause
+#    strange problems with jar and other utilities, e.g. /a//b/ != /a/b/.
+#    Some of these variables have an explicit trailing / character, but in
+#    general, they should NOT have the trailing / character.
+
+-include $(SPEC)
+-include $(VARS)
+
+# Get shared system utilities macros defined
+include $(JDK_MAKE_SHARED_DIR)/Defs-utils.gmk
+
+# Assumes ARCH, PLATFORM, ARCH_VM_SUBDIR, JDK_TOPDIR, etc. have been defined.
+
+# Simple pwd path
+# NOTE: Just use the shell's cd and pwd here, more reliable at sanity time.
+define PwdPath
+$(shell cd $1 2> $(DEV_NULL) && pwd)
+endef
+define AbsPwdPathCheck
+$(shell cd .. 2> $(DEV_NULL) && cd $1 2> $(DEV_NULL) && pwd)
+endef
+
+# Checks an ALT value for spaces (should be one word), 
+#       warns and returns Check_ALT_$1 if spaces
+define AltCheckSpaces
+$(if $(word 2,$($1)),$(warning "WARNING: Value of $1 contains a space: '$($1)', check or set ALT_$1")Check_ALT_$1,$($1))
+endef
+
+# Checks an ALT value for empty, warns and returns Check_ALT_$1 if empty
+define AltCheckValue
+$(if $($1),$($1),$(warning "WARNING: Value of $1 cannot be empty, check or set ALT_$1")Check_ALT_$1)
+endef
+
+# Checks any value for empty, warns and returns $2 if empty
+define CheckValue
+$(if $($1),$($1),$(warning "WARNING: Value of $1 cannot be empty, will use '$2'")$2)
+endef
+
+# Prefix for a utility prefix path, if empty leave alone, otherwise end with a /
+define PrefixPath
+$(if $1,$(subst //,/,$1/),)
+endef
+
+# Select a directory if it exists, or the alternate 2 or the alternate 3
+define DirExists
+$(shell \
+  if [ -d "$1" ]; then  \
+    echo "$1"; \
+  elif [ -d "$2" ]; then \
+    echo "$2"; \
+  else \
+    echo "$3"; \
+  fi)
+endef
+
+# Select a directory if it exists, or the alternate 2, or the alternate 3, or the alternate 4
+define DirExists4
+$(shell \
+  if [ -d "$1" ]; then  \
+    echo "$1"; \
+  elif [ -d "$2" ]; then \
+    echo "$2"; \
+  elif [ -d "$3" ]; then \
+    echo "$3"; \
+  else \
+    echo "$4"; \
+  fi)
+endef
+
+
+# Select a writable directory if it exists and is writable, or the alternate
+define WriteDirExists
+$(shell \
+  if [ -d "$1" -a -w "$1" ]; then  \
+    echo "$1"; \
+  else \
+    echo "$2"; \
+  fi)
+endef
+
+# Select a file if it exists, or the alternate 1, or the alternate 2
+define FileExists
+$(shell \
+  if [ -r "$1" ]; then \
+    echo "$1"; \
+  elif [ -r "$2" ]; then \
+    echo "$2"; \
+  else \
+    echo "NO_FILE_EXISTS"; \
+  fi)
+endef
+
+# Given a line of text, get the version number from it
+define GetVersion
+$(shell echo $1 | sed -e 's@[^0-9]*\([0-9][0-9]*\.[0-9][.0-9]*\).*@\1@' )
+endef
+
+# Return one part of the version numbers, watch out for non digits.
+define VersionWord # Number Version
+$(word $1,$(subst ., ,$(subst -, ,$2)))
+endef
+
+# Given a major.minor.micro version, return the major, minor, or micro number
+define MajorVersion
+$(if $(call VersionWord,1,$1),$(call VersionWord,1,$1),0)
+endef
+define MinorVersion
+$(if $(call VersionWord,2,$1),$(call VersionWord,2,$1),0)
+endef
+define MicroVersion
+$(if $(call VersionWord,3,$1),$(call VersionWord,3,$1),0)
+endef
+
+# Macro that returns missing, same, newer, or older $1=version $2=required
+define CheckVersions
+$(shell \
+  if [ "$1" = "" -o "$2" = "" ]; then \
+    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 \
+    echo same; \
+  fi)
+endef
+
+# Expand SRCDIR_LIST, which is used to automatically include various
+# platform and shared sources/headers.  This is mainly useful for the
+# Mac OS X build, which pulls its platform sources from the solaris and/or
+# macosx trees, depending on the component.
+ifeq ($(PLATFORM), macosx)
+  define JavaSrcDirList
+  $(JAVA_SRCDIR_LIST:%=$1$(JDK_TOPDIR)/%/$2)
+  endef
+  define NativeSrcDirList
+  $(NATIVE_SRCDIR_LIST:%=$1$(JDK_TOPDIR)/%/$2)
+  endef
+endif
+
+# Make sure certain variables are non-empty at this point
+_check_values:=\
+$(call CheckValue,ARCH,),\
+$(call CheckValue,ARCH_DATA_MODEL,),\
+$(call CheckValue,ARCH_VM_SUBDIR,),\
+$(call CheckValue,JDK_TOPDIR,),\
+$(call CheckValue,JDK_MAKE_SHARED_DIR,),\
+$(call CheckValue,VARIANT,),\
+$(call CheckValue,PLATFORM,)
+
+# Misc common settings for all workspaces
+#   This determines the version of the product, and the previous version or boot
+ifndef JDK_MAJOR_VERSION
+  JDK_MAJOR_VERSION      = 1
+  PREVIOUS_MAJOR_VERSION = 1
+endif
+
+ifndef JDK_MINOR_VERSION
+  JDK_MINOR_VERSION      = 8
+  PREVIOUS_MINOR_VERSION = 7
+endif
+
+ifndef JDK_MICRO_VERSION
+  JDK_MICRO_VERSION      = 0
+  PREVIOUS_MICRO_VERSION = 0
+endif
+
+ifndef MILESTONE
+  MILESTONE = internal
+endif
+
+# Default names
+ifdef OPENJDK
+  LAUNCHER_NAME = openjdk
+  PRODUCT_NAME = OpenJDK
+  PRODUCT_SUFFIX = Runtime Environment
+  JDK_RC_PLATFORM_NAME = Platform
+  COMPANY_NAME = N/A
+else
+  LAUNCHER_NAME = java
+  PRODUCT_NAME = Java(TM)
+  PRODUCT_SUFFIX = SE Runtime Environment
+  JDK_RC_PLATFORM_NAME = Platform SE
+  COMPANY_NAME = Oracle Corporation
+endif
+
+RUNTIME_NAME = $(PRODUCT_NAME) $(PRODUCT_SUFFIX)
+
+ifndef BUILD_NUMBER
+  JDK_BUILD_NUMBER = b00
+else
+  ifndef JDK_BUILD_NUMBER
+    JDK_BUILD_NUMBER = $(BUILD_NUMBER)
+  endif
+endif
+
+# Default variant is the optimized version of everything
+#    can be OPT or DBG,  default is OPT
+#    Determine the extra pattern to add to the release name for debug/fastdebug.
+#    Determine the JDK_IMPORT_VARIANT, so we get the right VM files copied over.
+#    Determine suffix for obj directory or OBJDIR, for .o files.
+#    (by keeping .o files separate, just .o files, they don't clobber each
+#     other, however, the library files will clobber each other).
+#
+ifeq ($(VARIANT), DBG)
+  BUILD_VARIANT_RELEASE=-debug
+  OBJDIRNAME_SUFFIX=_g
+else
+  BUILD_VARIANT_RELEASE=
+  OBJDIRNAME_SUFFIX=
+endif
+ifeq ($(FASTDEBUG), true)
+  VARIANT=DBG
+  BUILD_VARIANT_RELEASE=-fastdebug
+  OBJDIRNAME_SUFFIX=_gO
+  _JDK_IMPORT_VARIANT=/fastdebug
+endif
+
+# Depending on the flavor of the build, add a -debug or -fastdebug to the name
+ifdef DEBUG_NAME
+  BUILD_VARIANT_RELEASE=-$(DEBUG_NAME)
+endif
+
+# These default values are redefined during a release build.
+#    CTE can set JDK_UPDATE_VERSION during the update release
+ifdef JDK_UPDATE_VERSION
+  JDK_VERSION  = $(JDK_MAJOR_VERSION).$(JDK_MINOR_VERSION).$(JDK_MICRO_VERSION)_$(JDK_UPDATE_VERSION)
+  MARKETING_NUMBER := $(shell \
+	$(ECHO) $(JDK_UPDATE_VERSION) | $(NAWK) '{if (substr($$0,1,1)=="0") print substr($$0, 2); else print $$0;}')
+  MARKET_NAME= $(shell $(ECHO) " Update $(MARKETING_NUMBER)")
+  JDK_MKTG_VERSION  = $(JDK_MINOR_VERSION)u$(MARKETING_NUMBER)
+else
+  JDK_VERSION  = $(JDK_MAJOR_VERSION).$(JDK_MINOR_VERSION).$(JDK_MICRO_VERSION)
+  JDK_MKTG_VERSION  = $(JDK_MINOR_VERSION)
+  MARKET_NAME=
+endif
+JDK_UNDERSCORE_VERSION =  $(subst .,_,$(JDK_VERSION))
+JDK_MKTG_UNDERSCORE_VERSION =  $(subst .,_,$(JDK_MKTG_VERSION))
+
+# RELEASE is JDK_VERSION and -MILESTONE if MILESTONE is set
+ifneq ($(MILESTONE),fcs)
+  RELEASE      = $(JDK_VERSION)-$(MILESTONE)$(BUILD_VARIANT_RELEASE)
+else
+  RELEASE      = $(JDK_VERSION)$(BUILD_VARIANT_RELEASE)
+endif
+
+# FULL_VERSION is RELEASE and -BUILD_NUMBER if BUILD_NUMBER is set
+ifdef BUILD_NUMBER
+  FULL_VERSION = $(RELEASE)-$(BUILD_NUMBER)
+else
+  BUILD_NUMBER = b00
+  ifndef USER_RELEASE_SUFFIX
+    BUILD_DATE := $(shell $(DATE) '+%Y_%m_%d_%H_%M')
+    # Avoid [:alnum:] since it depends on the locale.
+    CLEAN_USERNAME := $(shell $(ECHO) "$(USER)" | $(TR) -d -c 'abcdefghijklmnopqrstuvqxyz0123456789')
+    USER_RELEASE_SUFFIX := $(shell $(ECHO) "$(CLEAN_USERNAME)_$(BUILD_DATE)" | $(TR) 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvqxyz')
+  endif
+  export USER_RELEASE_SUFFIX
+  FULL_VERSION = $(RELEASE)-$(USER_RELEASE_SUFFIX)-$(BUILD_NUMBER)
+endif
+
+# Promoted build location
+PROMOTED_RE_AREA = $(SLASH_JAVA)/re/jdk/$(JDK_VERSION)/promoted
+PROMOTED_BUILD_LATEST = latest
+PROMOTED_BUILD_BASEDIR = $(PROMOTED_RE_AREA)/$(PROMOTED_BUILD_LATEST)
+PROMOTED_BUILD_DISTDIR = $(PROMOTED_BUILD_BASEDIR)/dist/$(PLATFORM)-$(ARCH)
+PROMOTED_BUILD_BINARIES = $(PROMOTED_BUILD_BASEDIR)/binaries
+
+# PARALLEL_COMPILE_JOBS: is the number of compiles done in parallel.
+#  If the user sets ALT_PARALLEL_COMPILE_JOBS, then COMPILE_APPROACH is set
+#  to parallel.
+#
+#  Recommended setting: 2 seems to be ideal for single cpu machines,
+#                       2 times the number of CPU's is a basic formula, 
+#                       but probably not more than 4 if the machine is 
+#                       being shared by others, or the machine is limited 
+#                       in RAM or swap.
+#
+ifdef ALT_PARALLEL_COMPILE_JOBS
+  PARALLEL_COMPILE_JOBS=$(ALT_PARALLEL_COMPILE_JOBS)
+else
+  PARALLEL_COMPILE_JOBS=2
+endif
+
+# Previous JDK release (version of BOOTDIR version)
+ifdef ALT_PREVIOUS_JDK_VERSION
+  PREVIOUS_JDK_VERSION = $(ALT_PREVIOUS_JDK_VERSION)
+else
+  PREVIOUS_JDK_VERSION  = $(PREVIOUS_MAJOR_VERSION).$(PREVIOUS_MINOR_VERSION).$(PREVIOUS_MICRO_VERSION)
+endif
+export PREVIOUS_JDK_VERSION
+PREVIOUS_JDK_VERSION:=$(call AltCheckSpaces,PREVIOUS_JDK_VERSION)
+
+# Version with _ instead of . in number
+ifeq ($(PREVIOUS_MINOR_VERSION),5)
+  PREVIOUS_JDK_UNDERSCORE_VERSION =  $(subst .,_,$(PREVIOUS_JDK_VERSION))
+else
+  PREVIOUS_JDK_UNDERSCORE_VERSION = $(PREVIOUS_MINOR_VERSION)
+endif
+
+# Include any private definitions for this set of workspaces
+_PRIVATE_DEFS_FILE=$(JDK_MAKE_SHARED_DIR)/PrivateDefs.gmk
+ifeq ($(USING_PRIVATE_DEFS),)
+  USING_PRIVATE_DEFS:=$(shell if [ -f $(_PRIVATE_DEFS_FILE) ]; then echo true; else echo false; fi)
+endif
+ifeq ($(USING_PRIVATE_DEFS),true)
+dummy:=$(warning "WARNING: Using definitions from $(_PRIVATE_DEFS_FILE)")
+include $(_PRIVATE_DEFS_FILE)
+endif
+
+# OUTPUTDIR: Location of all output for the build
+ifdef ALT_OUTPUTDIR
+  OUTPUTDIR:=$(subst \,/,$(ALT_OUTPUTDIR))
+  # Assumes this is absolute (checks later)
+  ABS_OUTPUTDIR:=$(OUTPUTDIR)
+else
+  ifndef _OUTPUTDIR
+    # Default:  Get "build" parent directory, which should always exist
+    ifndef BUILD_PARENT_DIRECTORY
+      BUILD_PARENT_DIRECTORY=$(BUILDDIR)/..
+    endif
+    ifdef OPENJDK
+      _OUTPUTDIRNAME=$(PLATFORM)-$(ARCH)$(OPENJDK_SUFFIX)
+    else
+      _OUTPUTDIRNAME=$(PLATFORM)-$(ARCH)
+    endif
+    _OUTPUTDIR=$(BUILD_PARENT_DIRECTORY)/build/$(_OUTPUTDIRNAME)
+  endif
+  OUTPUTDIR:=$(_OUTPUTDIR)
+endif
+# Check for spaces and null value
+OUTPUTDIR:=$(call AltCheckSpaces,OUTPUTDIR)
+
+# Get platform specific settings
+# NB: OUTPUTDIR must be defined. Otherwise hotspot import detection will not work correctly
+# On other hand this must be included early as it provides platform specific defines such as FullPath
+include $(JDK_MAKE_SHARED_DIR)/Defs-versions.gmk
+
+# Get platform specific settings (defines COMPILER_PATH)
+include $(JDK_MAKE_SHARED_DIR)/Defs-$(PLATFORM).gmk
+
+# Components
+ifdef ALT_LANGTOOLS_DIST
+  LANGTOOLS_DIST :=$(call FullPath,$(ALT_LANGTOOLS_DIST))
+else
+  LANGTOOLS_DIST =
+endif
+ifdef ALT_CORBA_DIST
+  CORBA_DIST :=$(call FullPath,$(ALT_CORBA_DIST))
+else
+  CORBA_DIST =
+endif
+ifdef ALT_JAXP_DIST
+  JAXP_DIST :=$(call FullPath,$(ALT_JAXP_DIST))
+else
+  JAXP_DIST =
+endif
+ifdef ALT_JAXWS_DIST
+  JAXWS_DIST :=$(call FullPath,$(ALT_JAXWS_DIST))
+else
+  JAXWS_DIST =
+endif
+
+# HOTSPOT_DOCS_IMPORT_PATH: Path to hotspot docs files to import into the docs generation
+ifdef ALT_HOTSPOT_DOCS_IMPORT_PATH
+  HOTSPOT_DOCS_IMPORT_PATH :=$(call FullPath,$(ALT_HOTSPOT_DOCS_IMPORT_PATH))
+else
+  HOTSPOT_DOCS_IMPORT_PATH :=$(call DirExists,$(HOTSPOT_IMPORT_PATH)/docs,$(PROMOTED_BUILD_BASEDIR)/docs,/NO_DOCS_DIR)
+endif
+
+# These are the same on all platforms but require the above platform include 1st
+
+# BOOTDIR: Bootstrap JDK, previous released JDK.
+#   _BOOTDIR1 and _BOOTDIR2 picked by platform
+#   Platform may optionally define _BOOTDIR3 as well.
+ifdef ALT_BOOTDIR
+  BOOTDIR =$(ALT_BOOTDIR)
+else
+  ifdef _BOOTDIR3
+    BOOTDIR  :=$(call DirExists4,$(_BOOTDIR1),$(_BOOTDIR2),$(_BOOTDIR3),/NO_BOOTDIR)
+  else
+    BOOTDIR  :=$(call DirExists,$(_BOOTDIR1),$(_BOOTDIR2),/NO_BOOTDIR)
+  endif
+endif
+export BOOTDIR
+BOOTDIR:=$(call AltCheckSpaces,BOOTDIR)
+
+# PREVIOUS_FCS_RE_AREA: re path to where previous release binaries/bundles are
+PREVIOUS_FCS_RE_AREA = $(SLASH_JAVA)/re/jdk/$(PREVIOUS_JDK_VERSION)/archive/fcs
+
+# PREVIOUS_RELEASE_IMAGE: Previous install image to compare against
+ifdef ALT_PREVIOUS_RELEASE_IMAGE
+  
+  # Explicit image provided, no bundle access needed
+  PREVIOUS_RELEASE_IMAGE :=$(call FullPath,$(ALT_PREVIOUS_RELEASE_IMAGE))
+
+else
+  
+  # PREVIOUS_RELEASE_PATH: path to where previous release bundles are
+  ifdef ALT_PREVIOUS_RELEASE_PATH
+    PREVIOUS_RELEASE_PATH :=$(call OptFullPath,$(ALT_PREVIOUS_RELEASE_PATH))
+  else
+    PREVIOUS_RELEASE_PATH := \
+	$(call DirExists,$(PREVIOUS_FCS_RE_AREA)/bundles/$(PLATFORM)-$(ARCH),,)
+  endif
+
+  # Depending on if we have access to these bundles
+  ifeq ($(PREVIOUS_RELEASE_PATH),)
+    # Use images in re area or BOOTDIR (which is normally the previous release)
+    PREVIOUS_RELEASE_IMAGE := \
+         $(call DirExists,$(PREVIOUS_FCS_RE_AREA)/binaries/$(PLATFORM)-$(ARCH),$(BOOTDIR),)
+  else
+    # Get names of and paths to bundles
+    PREVIOUS_RELEASE_PATH:=$(call AltCheckSpaces,PREVIOUS_RELEASE_PATH)
+    export PREVIOUS_RELEASE_PATH
+  
+    # PREVIOUS_JDK_FILE: filename of install bundle for previous JDK
+    ifdef ALT_PREVIOUS_JDK_FILE
+      PREVIOUS_JDK_FILE  =$(ALT_PREVIOUS_JDK_FILE)
+    else
+      PREVIOUS_JDK_FILE = \
+	  jdk-$(PREVIOUS_JDK_UNDERSCORE_VERSION)-$(PLATFORM)-$(ARCH)$(BUNDLE_FILE_SUFFIX)
+    endif
+    export PREVIOUS_JDK_FILE
+    PREVIOUS_JDK_FILE:=$(call AltCheckSpaces,PREVIOUS_JDK_FILE)
+
+    # PREVIOUS_JRE_FILE: filename of install bundle for previous JRE
+    ifdef ALT_PREVIOUS_JRE_FILE
+      PREVIOUS_JRE_FILE  =$(ALT_PREVIOUS_JRE_FILE)
+    else
+      PREVIOUS_JRE_FILE = \
+	  jre-$(PREVIOUS_JDK_UNDERSCORE_VERSION)-$(PLATFORM)-$(ARCH)$(BUNDLE_FILE_SUFFIX)
+    endif
+    export PREVIOUS_JRE_FILE
+    PREVIOUS_JRE_FILE:=$(call AltCheckSpaces,PREVIOUS_JRE_FILE)
+   
+    # Paths to these bundles
+    PREVIOUS_JRE_BUNDLE = $(PREVIOUS_RELEASE_PATH)/$(PREVIOUS_JRE_FILE)
+    PREVIOUS_JDK_BUNDLE = $(PREVIOUS_RELEASE_PATH)/$(PREVIOUS_JDK_FILE)
+  endif
+
+endif
+
+# Indicate we are using an image comparison
+ifneq ($(PREVIOUS_RELEASE_IMAGE),)
+    PREVIOUS_RELEASE_PATH = USING-PREVIOUS_RELEASE_IMAGE
+    PREVIOUS_JRE_BUNDLE   = USING-PREVIOUS_RELEASE_IMAGE
+    PREVIOUS_JDK_BUNDLE   = USING-PREVIOUS_RELEASE_IMAGE
+endif
+
+# CACERTS_FILE: if OPENJDK is false and the internal version of the file 
+#		(that is, non-empty) is available, use it, otherwise use an 
+#		empty keystore.
+#
+# We put this variable here for sanity checks and in case another
+# components will need to know which cacerts file is being used.
+#
+ifdef ALT_CACERTS_FILE
+  CACERTS_FILE = $(ALT_CACERTS_FILE)
+else
+  CACERTS_EXT   = $(SHARE_SRC)/lib/security/cacerts
+  ifdef OPENJDK
+    CACERTS_FILE  :=$(CACERTS_EXT)
+  else # (!OPENJDK)
+    CACERTS_INT   = $(CLOSED_SHARE_SRC)/lib/security/cacerts.internal
+    CACERTS_FILE  :=$(call FileExists,$(CACERTS_INT),$(CACERTS_EXT))
+  endif # (OPENJDK)
+endif
+CACERTS_FILE:=$(call AltCheckSpaces,CACERTS_FILE)
+
+#
+# When signing the JCE framework and provider, we could be using built
+# bits on a read-only filesystem.  If so, this test will fail and crash
+# the build.
+#
+ifndef IGNORE_WRITABLE_OUTPUTDIR_TEST
+# Create the output directory and make sure it exists and is writable
+_create_outputdir:=$(shell $(MKDIR) -p "$(OUTPUTDIR)" > $(DEV_NULL) 2>&1)
+ifeq ($(call WriteDirExists,$(OUTPUTDIR),/dev/null),/dev/null)
+  _outputdir_error:=$(error "ERROR: OUTPUTDIR '$(OUTPUTDIR)' not created or not writable")
+endif
+endif
+
+# Define absolute path if needed and check for spaces and null value
+ifndef ABS_OUTPUTDIR
+  ifdef _OUTPUTDIRNAME
+    #Could not define this at the same time as _OUTPUTDIRNAME as FullPath is not defined at that point
+    ABS_BUILD_PARENT_DIRECTORY:=$(call FullPath,$(BUILD_PARENT_DIRECTORY))
+    ABS_OUTPUTDIR:=$(ABS_BUILD_PARENT_DIRECTORY)/build/$(_OUTPUTDIRNAME)
+  else
+    ABS_OUTPUTDIR:=$(call FullPath,$(OUTPUTDIR))
+  endif
+endif
+ABS_OUTPUTDIR:=$(call AltCheckSpaces,ABS_OUTPUTDIR)
+# Make doubly sure this is a full path
+ifeq ($(call AbsPwdPathCheck,$(ABS_OUTPUTDIR)), )
+  ifdef ALT_OUTPUTDIR
+    _outputdir_error:=$(error "ERROR: Trouble with the absolute path for OUTPUTDIR '$(OUTPUTDIR)', was ALT_OUTPUTDIR '$(ALT_OUTPUTDIR)' an absolute path?")
+  else
+    _outputdir_error:=$(error "ERROR: Trouble with the absolute path for OUTPUTDIR '$(OUTPUTDIR)'")
+  endif
+endif
+_dir1:=$(call FullPath,$(ABS_OUTPUTDIR))
+_dir2:=$(call FullPath,$(OUTPUTDIR))
+ifneq ($(_dir1),$(_dir2))
+  _outputdir_error:=$(error "ERROR: ABS_OUTPUTDIR '$(ABS_OUTPUTDIR)' is not the same directory as OUTPUTDIR '$(OUTPUTDIR)', '$(_dir1)'!='$(_dir2)'")
+endif
+
+# Bin directory
+#   NOTE: ISA_DIR is usually empty, on Solaris it might be /sparcv9 or /amd64
+BINDIR      = $(OUTPUTDIR)/bin$(ISA_DIR)
+
+# MOZILLA_HEADERS_PATH: path to mozilla header files for plugin
+ifdef ALT_MOZILLA_HEADERS_PATH
+  MOZILLA_HEADERS_PATH :=$(call FullPath,$(ALT_MOZILLA_HEADERS_PATH))
+else
+  MOZILLA_HEADERS_PATH  =$(JDK_DEVTOOLS_DIR)/share/plugin
+endif
+MOZILLA_HEADERS_PATH:=$(call AltCheckSpaces,MOZILLA_HEADERS_PATH)
+
+# CUPS_HEADERS_PATH: path to Cups headers files for Unix printing
+#ifneq ($(PLATFORM), windows)
+#JDK_CUPS_HEADERS_PATH=$(JDK_DEVTOOLS_DIR)/share/cups/include
+#  ifdef ALT_CUPS_HEADERS_PATH
+#     CUPS_HEADERS_PATH:=$(call FullPath,$(ALT_CUPS_HEADERS_PATH))
+#     CUPS_HEADERS_PATH:=$(call AltCheckValue,CUPS_HEADERS_PATH)
+#  else 
+#    CUPS_HEADERS_PATH:= \
+#      $(shell if [ -d "$(JDK_CUPS_HEADERS_PATH)" ]; then \
+#        echo "$(JDK_CUPS_HEADERS_PATH)"; \
+#      else \
+#         echo "$(_CUPS_HEADERS_PATH)";\
+#      fi)
+#  endif
+#endif
+
+# Utilities ant
+ifeq ($(PLATFORM), windows)
+  ifeq ($(ANT_HOME),)
+    ANT_HOME := $(call DirExists,$(JDK_DEVTOOLS_DIR)/share/ant/latest,,)
+  endif
+endif
+
+# There are few problems with ant we need to workaround:
+#  1) ant is using temporary directory java.io.tmpdir
+#     However, this directory is not unique enough and two separate ant processes
+#     can easily end up using the exact same temp directory. This may lead to weird build failures
+#     To workaround this we will define tmp dir explicitly
+#  2) ant attempts to detect JDK location based on java.exe location
+#     This is fragile as developer may have JRE first on the PATH. 
+#     To workaround this we will specify JAVA_HOME explicitly
+
+ANT_TMPDIR = $(ABS_OUTPUTDIR)/tmp
+ANT_WORKAROUNDS = ANT_OPTS=-Djava.io.tmpdir='$(ANT_TMPDIR)' JAVA_HOME='$(BOOTDIR)'
+
+ifeq ($(ANT_HOME),)
+  ANT = $(ANT_WORKAROUNDS) ant
+else
+  ANT = $(ANT_WORKAROUNDS) $(ANT_HOME)/bin/ant
+endif
+
+ifdef ALT_COPYRIGHT_YEAR
+  COPYRIGHT_YEAR = $(ALT_COPYRIGHT_YEAR)
+else
+  COPYRIGHT_YEAR = $(shell $(DATE) '+%Y')
+endif
+
+# Create file with source information
+SOURCE_TIPS=$(ABS_OUTPUTDIR)/source_tips
+
+# The source tips can come from the Mercurial repository, or in the files
+#   $(HGTIP_FILENAME) which contains the tip but is also positioned in the same
+#   directory as the original $(HGDIR) directory.
+#   These should not be := assignments, only used from the root Makefile.
+HG_VERSION = $(shell $(HG) version 2> $(DEV_NULL))
+HG_DIRECTORY=.hg
+HGTIP_FILENAME=.hgtip
+HG_SEARCH = ./REPO ./*/REPO ./*/*/REPO ./*/*/*/REPO
+REPO_LIST = $(patsubst ./%,%,$(patsubst %/,%,$(sort $(dir \
+    $(shell ( $(LS) -d $(HG_SEARCH:%/REPO=%/$(HG_DIRECTORY)) ; \
+              $(LS)    $(HG_SEARCH:%/REPO=%/$(HGTIP_FILENAME)) ) \
+	        2> $(DEV_NULL))))))
+
+# Emit the repo:tip pairs to $@
+define GetSourceTips
+for i in $(REPO_LIST) IGNORE ; do \
+  if [ "$${i}" = "IGNORE" ] ; then \
+    continue; \
+  elif [ -d $${i}/$(HG_DIRECTORY) -a "$(HG_VERSION)" != "" ] ; then \
+    $(PRINTF) " %s:%s" \
+      "$${i}" `$(HG) tip --repository $${i} --template '{node|short}\n'` ; \
+  elif [ -f $${i}/$(HGTIP_FILENAME) ] ; then \
+    $(PRINTF) " %s:%s" \
+      "$${i}" `$(CAT) $${i}/$(HGTIP_FILENAME)` ; \
+  fi; \
+done >> $@
+$(PRINTF) "\n" >> $@
+endef
+
+# Create the HGTIP_FILENAME file
+define CreateHgTip
+$(HG) tip --repository $1 --template '{node|short}\n' > $1/$(HGTIP_FILENAME);\
+$(ECHO) $1/$(HGTIP_FILENAME)
+endef
+
+# Get the compiler specific settings (will run the compiler to find out)
+#   NOTE: COMPILER_PATH must be set by this time.
+#   Up until we include this file, we don't know what specific compiler
+#   version is actually being used (i.e. what is in PATH or COMPILER_PATH).
+include $(JDK_MAKE_SHARED_DIR)/Compiler-$(CC_VERSION).gmk
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/common/shared/Platform.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,526 @@
+#
+# Copyright (c) 1997, 2011, 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.
+#
+
+#
+# Shared platform (OS/ARCH) variable settings for the JDK builds.
+#
+# Includes basic system requirements, versions of utilities required,
+#   suffixes on files, and basic defaults attributed to the build platform.
+#
+
+#
+# Assumes some basic unix system utilities (e.g. uname) are in the search path
+#   in order to figure out the system.
+#
+
+ifndef PLATFORM_SHARED
+
+PLATFORM_SHARED=done
+
+# Possible Input variables:
+#     ARCH_DATA_MODEL             32 or 64, default to 32
+#     USER, LOGNAME               user name (runs logname, or id if not set)
+#     PROCESSOR_IDENTIFIER        windows only: needed in environment
+#
+# (Also gets input by running the utilities uname, logname, isainfo, or id.)
+#
+# Variables set by this file:
+#     SYSTEM_UNAME                what 'uname' says this system is
+#     USER                        login name of user (minus blanks)
+#     PLATFORM                    windows, solaris, or linux
+#     VARIANT                     OPT or DBG, OPT is the default
+#     TEMP_DISK                   /tmp or C:/temp
+#     ARCH_DATA_MODEL             32 or 64
+#     ARCH                        sparc, sparcv9, i586, amd64, or ia64
+#     ARCH_FAMILY                 sparc or i586
+#     ARCHPROP                    sparc or x86
+#     ARCH_VM_SUBDIR              jre/bin, jre/lib/sparc, etc.
+#     LIBARCH                     sparc, sparcv9, i386, amd64, or ia64
+#     DEV_NULL                    destination of /dev/null, NUL or /dev/NULL
+#     CLASSPATH_SEPARATOR         separator in classpath, ; or :
+#     LIB_PREFIX                  dynamic or static library prefix, lib or empty
+#     LIB_SUFFIX                  static library file suffix, .lib or .a?
+#     LIBRARY_SUFFIX              dynamic library file suffix, .dll or .so
+#     OBJECT_SUFFIX               object file suffix, .o or .obj
+#     EXE_SUFFIX                  executable file suffix, .exe or empty
+#     BUNDLE_FILE_SUFFIX          suffix for bundles: .tar or .tar.gz
+#     ISA_DIR                     solaris only: /sparcv9 or /amd64
+#     LIBARCH32                   solaris only: sparc or i386
+#     LIBARCH64                   solaris only: sparcv9 or amd64
+#     USING_CYGWIN                windows only: true or false
+#     ISHIELD_TEMP_MIN            windows only: minimum disk space in temp area
+
+# Only run uname once in this make session.
+ifndef SYSTEM_UNAME
+  SYSTEM_UNAME := $(shell uname)
+  export SYSTEM_UNAME
+endif
+
+#
+# Prune out all known SCM (Source Code Management) directories
+# so they will not be included when copying directory trees
+# or packaging up .jar files, etc.  This applies to all workspaces.
+#
+SCM_DIRs = .hg .svn CVS RCS SCCS Codemgr_wsdata deleted_files .hgignore .hgtags
+# When changing SCM_DIRs also change SCM_DIRS_rexp and SCM_DIRS_prune:
+SCM_DIRS_rexp = ".hg|.svn|CVS|RCS|SCCS|Codemgr_wsdata|deleted_files|.hgignore|.hgtags"
+SCM_DIRS_prune = \( -name .hg -o -name .svn -o -name CVS -o -name RCS -o -name SCCS -o -name Codemgr_wsdata -o -name deleted_files -o -name .hgignore -o -name .hgtags \) -prune
+
+# Don't define this unless it's not defined
+ifndef VARIANT
+  VARIANT=OPT
+endif
+
+# Platform settings specific to Solaris
+ifeq ($(SYSTEM_UNAME), SunOS)
+  PLATFORM = solaris
+  # Solaris sparc build can be either 32-bit or 64-bit.
+  #   Default to 32, but allow explicit setting to 32 or 64.
+  ifndef ARCH_DATA_MODEL
+    ARCH_DATA_MODEL=32
+  endif
+  ifeq ($(ARCH_DATA_MODEL), 32)
+    processor := $(shell uname -p)
+    archExpr = case "$(processor)" in  \
+                i[3-9]86) \
+                    echo i586 \
+                    ;; \
+                sparc*)  \
+                    echo sparc \
+                    ;; \
+                *) \
+                    echo $(processor)  \
+                    ;; \
+        esac
+    ARCH        := $(shell $(archExpr))
+  else
+    ARCH := $(shell isainfo -n)
+    # ISA_DIR is used to locate 64-bit specific libraries which are generally
+    # in the same general place as other libraries under the ./$(ARCH) directory
+    ISA_DIR = /$(ARCH)
+  endif
+  # Need to maintain the jre/lib/i386 location for 32-bit Intel
+  ifeq ($(ARCH), i586)
+     ARCH_FAMILY = $(ARCH)
+     LIBARCH     = i386
+     # Value of Java os.arch property
+     ARCHPROP    = x86
+  else
+     ifeq ($(ARCH), amd64)
+        ARCH_FAMILY = i586
+     else
+        ARCH_FAMILY = sparc
+     endif
+     LIBARCH  = $(ARCH)
+     # Value of Java os.arch property
+     ARCHPROP = $(LIBARCH)
+  endif
+  # The two LIBARCH names
+  ifeq ($(ARCH_FAMILY), sparc)
+    LIBARCH32 = sparc
+    LIBARCH64 = sparcv9
+  else
+    LIBARCH32 = i386
+    LIBARCH64 = amd64
+  endif
+  # Suffix for file bundles used in previous release
+  BUNDLE_FILE_SUFFIX=.tar
+  # How much RAM does this machine have (zones send an error to stderr):
+  MB_OF_MEMORY:=$(shell /usr/sbin/prtconf 2>/dev/null | fgrep 'Memory size:' | expand | cut -d' ' -f3)
+endif
+
+# Platform settings specific to Linux
+ifeq ($(SYSTEM_UNAME), Linux)
+  PLATFORM = linux
+  # Arch and OS name/version
+  ifdef CROSS_COMPILE_ARCH
+    mach := $(CROSS_COMPILE_ARCH)
+  else
+    mach := $(shell uname -m)
+  endif
+  archExpr = case "$(mach)" in \
+                i[3-9]86) \
+                    echo i586 \
+                    ;; \
+                ia64) \
+                    echo ia64 \
+                    ;; \
+                x86_64) \
+                    echo amd64 \
+                    ;; \
+                sparc*) \
+                    echo sparc \
+                    ;; \
+                arm*) \
+                    echo arm \
+                    ;; \
+                *) \
+                    echo $(mach) \
+                    ;; \
+      esac
+  ARCH        := $(shell $(archExpr) )
+  ARCH_FAMILY := $(ARCH)
+
+  # Linux builds may be 32-bit or 64-bit data model.
+  ifeq ($(ARCH), sparc)
+    # Linux sparc build can be either 32-bit or 64-bit.
+    #   Default to 32, but allow explicit setting to 32 or 64.
+    ifndef ARCH_DATA_MODEL
+      ARCH_DATA_MODEL=32
+    endif
+    ifeq ($(ARCH_DATA_MODEL), 32)
+      ARCH=sparc
+    else
+      ARCH=sparcv9
+    endif
+  else
+    # Most archs are 32-bit
+    ifndef ARCH_DATA_MODEL
+      ARCH_DATA_MODEL=32
+      ifeq ($(ARCH), amd64)
+        ARCH_DATA_MODEL=64
+      endif
+      ifeq ($(ARCH), ia64)
+        ARCH_DATA_MODEL=64
+      endif
+    endif
+  endif
+
+  # Need to maintain the jre/lib/i386 location for 32-bit Intel
+  ifeq ($(ARCH), i586)
+    LIBARCH = i386
+  else
+    LIBARCH = $(ARCH)
+  endif
+
+  # Value of Java os.arch property
+  ARCHPROP  = $(LIBARCH)
+
+  # Suffix for file bundles used in previous release
+  BUNDLE_FILE_SUFFIX=.tar.gz
+  # How much RAM does this machine have:
+  MB_OF_MEMORY := $(shell free -m | fgrep Mem: | awk '{print $$2;}' )
+endif
+
+ifeq ($(SYSTEM_UNAME), Darwin)
+  PLATFORM = macosx
+  OS_NAME = darwin
+  OS_VENDOR = Apple
+  GB_OF_MEMORY := $(shell system_profiler SPHardwareDataType | fgrep Memory: | awk '{print $$2}')
+  MB_OF_MEMORY := $(shell expr ${GB_OF_MEMORY} '*' 1024)
+endif
+
+# Platform settings specific to BSD/Mac OS X
+ifeq ($(PLATFORM), macosx)
+  OS_VERSION := $(shell uname -r)
+
+  # Arch and OS name/version
+  # Darwin x86 builds are i386/amd64 universal by default.
+  # Allow arch to be set from the environment to avoid this.
+  ifeq ($(origin ARCH), undefined)
+   ifeq ($(PLATFORM), macosx)
+#     ifdef OPENJDK -- when universal 32/64 binaries available in Hotspot
+#        mach := universal
+#     else
+        mach := x86_64
+#     endif
+   else
+    mach := $(shell uname -m)
+   endif
+  else
+   mach := $(ARCH)
+  endif
+
+  archExpr = case "$(mach)" in \
+                i[3-9]86) \
+                    echo i586 \
+                    ;; \
+                sparc64) \
+                    echo sparcv9 \
+                    ;; \
+                sparc*) \
+                    echo sparc \
+                    ;; \
+                x86_64) \
+                    echo amd64 \
+                    ;; \
+                universal) \
+                    echo universal \
+                    ;; \
+                "Power Macintosh") \
+                    echo ppc \
+                    ;; \
+                *) \
+                    echo $(mach) \
+                    ;; \
+      esac
+  ARCH        := $(shell $(archExpr) )
+  ARCH_FAMILY := $(ARCH)
+
+  # i586, sparc, and ppc are 32 bit, amd64 and sparc64 are 64
+  # ARCH_DATA_MODEL does not exactly mean anything in universal
+  # but it has to be one or the other, so pick 32
+  ifneq (,$(findstring $(ARCH), i586 sparc ppc universal))
+    ARCH_DATA_MODEL=32
+  else
+    ARCH_DATA_MODEL=64
+  endif
+
+  # Need to maintain the jre/lib/i386 location for 32-bit Intel
+  ifeq ($(ARCH), i586)
+    LIBARCH = i386
+  else
+    LIBARCH = $(ARCH)
+  endif
+
+  # Value of Java os.arch property
+  ARCHPROP  = $(LIBARCH)
+
+  # Suffix for file bundles used in previous release
+  BUNDLE_FILE_SUFFIX=.tar.gz
+  # How much RAM does this machine have:
+endif
+
+# Windows with and without CYGWIN will be slightly different
+ifeq ($(SYSTEM_UNAME), Windows_NT)
+  PLATFORM = windows
+endif
+ifneq (,$(findstring CYGWIN,$(SYSTEM_UNAME)))
+  PLATFORM = windows
+  USING_CYGWIN = true
+  export USING_CYGWIN
+  CYGPATH_CMD=cygpath -a -s -m
+  # Only run "cygpath /" once in this make session.
+  ifndef CYGWIN_HOME
+    CYGWIN_HOME := $(shell $(CYGPATH_CMD) /)
+    export CYGWIN_HOME
+  endif
+endif
+
+# Platform settings specific to Windows
+ifeq ($(PLATFORM), windows)
+  # Windows builds default to the appropriate for the underlaying
+  # architecture.
+  # Temporary disk area
+  TEMP_DISK=C:/temp
+  # GNU Make or MKS overrides $(PROCESSOR_ARCHITECTURE) to always
+  #  return "x86". Use the first word of $(PROCESSOR_IDENTIFIER) instead.
+  #  And sometimes PROCESSOR_IDENTIFIER is not defined at all
+  #  (in some restricted shells), so we use uname if we have to.
+  ifeq ($(PROCESSOR_IDENTIFIER),)
+    # Only run uname -m once in this make session.
+    ifndef SYSTEM_UNAME_M
+      SYSTEM_UNAME_M := $(shell uname -m)
+      export SYSTEM_UNAME_M
+    endif
+    PROC_ARCH:=$(SYSTEM_UNAME_M)
+  else
+    PROC_ARCH:=$(word 1, $(PROCESSOR_IDENTIFIER))
+  endif
+  # Cover all the possibilities, MKS uname, CYGWIN uname, PROCESSOR_IDENTIFIER
+  #    Get: X86, X64, or IA64
+  PROC_ARCH:=$(patsubst 386,X86,$(PROC_ARCH))
+  PROC_ARCH:=$(patsubst 486,X86,$(PROC_ARCH))
+  PROC_ARCH:=$(patsubst 586,X86,$(PROC_ARCH))
+  PROC_ARCH:=$(patsubst 686,X86,$(PROC_ARCH))
+  PROC_ARCH:=$(patsubst i386,X86,$(PROC_ARCH))
+  PROC_ARCH:=$(patsubst i486,X86,$(PROC_ARCH))
+  PROC_ARCH:=$(patsubst i586,X86,$(PROC_ARCH))
+  PROC_ARCH:=$(patsubst i686,X86,$(PROC_ARCH))
+  PROC_ARCH:=$(patsubst x86,X86,$(PROC_ARCH))
+  PROC_ARCH:=$(patsubst intel64,X64,$(PROC_ARCH))
+  PROC_ARCH:=$(patsubst Intel64,X64,$(PROC_ARCH))
+  PROC_ARCH:=$(patsubst INTEL64,X64,$(PROC_ARCH))
+  PROC_ARCH:=$(patsubst em64t,X64,$(PROC_ARCH))
+  PROC_ARCH:=$(patsubst EM64T,X64,$(PROC_ARCH))
+  PROC_ARCH:=$(patsubst amd64,X64,$(PROC_ARCH))
+  PROC_ARCH:=$(patsubst AMD64,X64,$(PROC_ARCH))
+  PROC_ARCH:=$(patsubst 8664,X64,$(PROC_ARCH))
+  PROC_ARCH:=$(patsubst x86_64,X64,$(PROC_ARCH))
+  PROC_ARCH:=$(patsubst ia64,IA64,$(PROC_ARCH))
+  ifndef ARCH_DATA_MODEL
+    ifeq ($(PROC_ARCH),IA64)
+      ARCH_DATA_MODEL=64
+    else
+      ifeq ($(PROC_ARCH),X64)
+        ARCH_DATA_MODEL=64
+      else
+        ARCH_DATA_MODEL=32
+      endif
+    endif
+  endif
+  export ARCH_DATA_MODEL
+  ifeq ($(ARCH_DATA_MODEL), 64)
+    # If the user wants to perform a cross compile build then they must
+    # - set ARCH_DATA_MODEL=64 and either
+    #      + set ARCH to ia64 or amd64, or
+    ifeq ($(PROC_ARCH),X64)
+      ARCH=amd64
+    else
+      ifeq ($(PROC_ARCH),IA64)
+        ARCH=ia64
+      endif
+    endif
+    LIBARCH=$(ARCH)
+    # Value of Java os.arch property
+    ARCHPROP=$(LIBARCH)
+  else
+    # LIBARCH is used to preserve the jre/lib/i386 directory name for 32-bit intel
+    ARCH=i586
+    LIBARCH=i386
+    # Value of Java os.arch property
+    ARCHPROP=x86
+  endif
+  ARCH_FAMILY = $(ARCH)
+  # Where is unwanted output to be delivered?
+  # MKS uses the special file "NUL", cygwin uses the customary unix file.
+  ifeq ($(USING_CYGWIN),true)
+    DEV_NULL = /dev/null
+  else
+    DEV_NULL = NUL
+  endif
+  export DEV_NULL
+  # Classpath separator
+  CLASSPATH_SEPARATOR = ;
+  # The suffix used for object file (.o for unix .obj for windows)
+  OBJECT_SUFFIX = obj
+  # The suffix applied to executables (.exe for windows, nothing for solaris)
+  EXE_SUFFIX = .exe
+  # The prefix applied to library files (lib for solaris, nothing for windows)
+  LIB_PREFIX=
+  LIBRARY_SUFFIX = dll
+  LIB_SUFFIX     = lib
+  # User name determination (set _USER)
+  ifndef USER
+    ifdef USERNAME
+      _USER := $(USERNAME)
+    else
+      ifdef LOGNAME
+        _USER := $(LOGNAME)
+      else
+        _USER := $(shell id -un)
+      endif
+    endif
+  else
+    _USER:=$(USER)
+  endif
+  # Location of client/server directories
+  ARCH_VM_SUBDIR=jre/bin
+  # Suffix for file bundles used in previous release
+  BUNDLE_FILE_SUFFIX=.tar
+  # ISHIELD_TEMP_MIN is the difference of an empty C:\TEMP vs. one after a
+  #     bundles build on windows.
+  ISHIELD_TEMP_MIN=250000
+  # How much RAM does this machine have:
+  ifeq ($(JDK_HAS_MEM_INFO),)
+    MB_OF_MEMORY := 1024
+  endif
+endif
+
+# Unix type settings (same for all unix platforms)
+ifneq ($(PLATFORM), windows)
+  # Temporary disk area
+  TEMP_DISK=/tmp
+  # Where is unwanted output to be delivered?
+  DEV_NULL = /dev/null
+  export DEV_NULL
+  # Character used between entries in classpath 
+  CLASSPATH_SEPARATOR = :
+  # suffix used for object file (.o for unix .obj for windows)
+  OBJECT_SUFFIX = o
+  # The suffix applied to runtime libraries
+  LIBRARY_SUFFIX = so
+  # The suffix applied to link libraries
+  LIB_SUFFIX = so
+  # The suffix applied to executables (.exe for windows, nothing for solaris)
+  EXE_SUFFIX =
+  # The prefix applied to library files (lib for solaris, nothing for windows)
+  LIB_PREFIX = lib
+  # User name determination (set _USER)
+  ifndef USER
+    ifdef LOGNAME
+      _USER := $(LOGNAME)
+    else
+      _USER := $(shell logname)
+    endif
+  else
+    _USER:=$(USER)
+  endif
+  # Location of client/server directories
+  ARCH_VM_SUBDIR=jre/lib/$(LIBARCH)
+endif
+
+# Darwin-specific Overrides
+ifeq ($(SYSTEM_UNAME),Darwin)
+  # The suffix applied to runtime libraries
+  LIBRARY_SUFFIX = dylib
+  # The suffix applied to link libraries
+  ifeq ($(ARCH), universal)
+    LIB_SUFFIX = o
+  else
+    LIB_SUFFIX = a
+  endif
+
+  ifeq ($(PLATFORM), macosx)
+  	ARCH_VM_SUBDIR=jre/lib/$(LIBARCH)
+  endif
+endif
+
+# Machines with 512Mb or less of real memory are considered low memory
+#    build machines and adjustments will be made to prevent excessing
+#    system swapping during the build.
+ifeq ($(JDK_HAS_MEM_INFO),)
+  JDK_HAS_MEM_INFO=true
+  export JDK_HAS_MEM_INFO
+  ifneq ($(MB_OF_MEMORY),)
+    LOW_MEMORY_MACHINE := $(shell \
+      if [ $(MB_OF_MEMORY) -le 512 ] ; then \
+        echo "true"; \
+      else \
+        echo "false"; \
+      fi)
+    MAX_VM_MEMORY := 512
+    MIN_VM_MEMORY := $(MAX_VM_MEMORY)
+  else
+    MB_OF_MEMORY       := unknown
+    LOW_MEMORY_MACHINE := true
+    MAX_VM_MEMORY      := 384
+    MIN_VM_MEMORY      := 128
+  endif
+  export MB_OF_MEMORY
+  export LOW_MEMORY_MACHINE
+  export MAX_VM_MEMORY
+  export MIN_VM_MEMORY
+endif
+
+# If blanks in the username, use the first 4 words and pack them together
+_USER1:=$(subst ', ,$(_USER))
+_USER2:=$(subst ", ,$(_USER1))
+USER:=$(word 1,$(_USER2))$(word 2,$(_USER2))$(word 3,$(_USER2))$(word 4,$(_USER2))
+export USER
+
+export PLATFORM
+endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/common/shared/PrivateDefs.gmk-example	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,19 @@
+
+# This file, when re-named to PrivateDefs.gmk will get included in the
+#   makefile definitions (before the ALT_ variables are read) so that you can
+#   override makefile settings permanently for a workspace.
+#   Use of this file will cause WARNING errors, repeatedly, for a reason.
+#
+# WARNING: Use with caution.
+#
+
+# EXAMPLE: Testing a special build of hotspot
+#    (this is the build/solaris/export-solaris-sparc directory from doing
+#     a 'cd hotspot/make; gnumake' build)
+#
+ifeq ($(PLATFORM),solaris)
+  ifeq ($(ARCH),sparc)
+    ALT_HOTSPOT_IMPORT_PATH=$(JDK_TOPDIR)/../export-solaris-sparc
+  endif
+endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/common/shared/Sanity-Settings.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,267 @@
+#
+# Copyright (c) 2005, 2011, 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.
+#
+
+#
+# Shared sanity settings file. Fills in the variable ALL_SETTINGS.
+#
+
+# On Windows in particular, it can happen that quotes get into the PATH
+#    variable. This is very bad, and must be caught early or you can
+#    see errors like: sh: -c: line 0: syntax error near unexpected token
+#
+ifneq ($(PATH), $(subst ",,$(PATH)))
+  dummy1:=$(error ERROR: PATH variable contains double quotes, fix your PATH.)
+endif
+ifneq ($(PATH), $(subst ',,$(PATH)))
+  dummy1:=$(error ERROR: PATH variable contains single quotes, fix your PATH.)
+endif
+
+# Used to add a heading to ALL_SETTINGS
+define addHeading
+"\n$1:\n"
+endef
+
+# Used to add a line to ALL_SETTINGS for an optional value
+#   (need if test for windows which has issues with ; characters in values)
+define addOptionalSetting
+$(if $($1)," $1 = $($1)\n"," $1 = $($1)\n")
+endef
+
+# Used to add a line to ALL_SETTINGS for something that must have a value
+define addRequiredSetting
+$(if $($1)," $1 = $($1)\n",$(warning WARNING: $1 should not be empty [Sanity-Settings.gmk]))
+endef
+
+# Used to add a line to ALL_SETTINGS for something that must have a value
+define addRequiredVersionSetting
+$(if $($1)," $1 = $($1) [requires at least $(REQUIRED_$1)]\n",$(warning WARNING: $1 should not be empty [Sanity-Settings.gmk]))
+endef
+
+# Used to add a series of lines to ALL_SETTINGS
+define addAltSetting
+" $1 = $($1)\n    ALT_$1 = $(ALT_$1)\n"
+endef
+
+# Variable that contains a string of all information
+
+# Make sure this is a 'do it now' variable.
+ALL_SETTINGS:=$(call addHeading,Bootstrap Settings)
+ALL_SETTINGS+=$(call addAltSetting,BOOTDIR)
+ALL_SETTINGS+=$(call addRequiredVersionSetting,BOOT_VER)
+ALL_SETTINGS+=$(call addAltSetting,OUTPUTDIR)
+ALL_SETTINGS+=$(call addRequiredSetting,ABS_OUTPUTDIR)
+
+
+ALL_SETTINGS+=$(call addHeading,Build Tool Settings)
+ALL_SETTINGS+=$(call addAltSetting,SLASH_JAVA)
+ALL_SETTINGS+=$(call addRequiredSetting,VARIANT)
+ALL_SETTINGS+=$(call addAltSetting,JDK_DEVTOOLS_DIR)
+ALL_SETTINGS+=$(call addOptionalSetting,ANT_HOME)
+ALL_SETTINGS+=$(call addAltSetting,UNIXCOMMAND_PATH)
+ALL_SETTINGS+=$(call addAltSetting,COMPILER_PATH)
+ALL_SETTINGS+=$(call addAltSetting,DEVTOOLS_PATH)
+ifeq ($(PLATFORM),linux)
+  ALL_SETTINGS+=$(call addAltSetting,UNIXCCS_PATH)
+  ALL_SETTINGS+=$(call addAltSetting,USRBIN_PATH)
+  ifndef OPENJDK
+    ALL_SETTINGS+=$(call addAltSetting,GCC29_COMPILER_PATH)
+  endif
+endif
+ifeq ($(PLATFORM),solaris)
+  ALL_SETTINGS+=$(call addAltSetting,UNIXCCS_PATH)
+  ifndef OPENJDK
+    ALL_SETTINGS+=$(call addAltSetting,GCC_COMPILER_PATH)
+  endif
+endif
+ifeq ($(PLATFORM),windows)
+  ifneq ($(MSVCRNN_DLL),)
+    ALL_SETTINGS+=$(call addAltSetting,MSVCRNN_DLL_PATH)
+  endif
+  ALL_SETTINGS+=$(call addRequiredSetting,INCLUDE)
+  ALL_SETTINGS+=$(call addRequiredSetting,LIB)
+endif
+ALL_SETTINGS+=$(call addOptionalSetting,COMPILER_NAME)
+ALL_SETTINGS+=$(call addOptionalSetting,COMPILER_VERSION)
+ifdef REQUIRED_CC_VER
+  ALL_SETTINGS+=$(call addRequiredVersionSetting,CC_VER)
+else
+  ALL_SETTINGS+=$(call addOptionalSetting,CC_VER)
+endif
+ifeq ($(PLATFORM),solaris)
+  ifeq ($(ARCH_DATA_MODEL), 32)
+    ifndef OPENJDK
+      ALL_SETTINGS+=$(call addRequiredVersionSetting,GCC_VER)
+    endif
+  endif
+endif
+ALL_SETTINGS+=$(call addRequiredVersionSetting,ZIP_VER)
+ALL_SETTINGS+=$(call addRequiredVersionSetting,UNZIP_VER)
+ifeq ($(PLATFORM),windows)
+  ALL_SETTINGS+=$(call addRequiredVersionSetting,LINK_VER)
+  ALL_SETTINGS+=$(call addRequiredSetting,CC)
+  ALL_SETTINGS+=$(call addRequiredSetting,LINK)
+  ALL_SETTINGS+=$(call addRequiredSetting,DUMPBIN)
+endif
+ALL_SETTINGS+=$(call addRequiredVersionSetting,ANT_VER)
+ALL_SETTINGS+=$(call addRequiredSetting,TEMPDIR)
+
+
+ALL_SETTINGS+=$(call addHeading,Build Directives)
+ALL_SETTINGS+=$(call addOptionalSetting,OPENJDK)
+ALL_SETTINGS+=$(call addOptionalSetting,USE_HOTSPOT_INTERPRETER_MODE)
+ALL_SETTINGS+=$(call addOptionalSetting,PEDANTIC)
+ALL_SETTINGS+=$(call addOptionalSetting,DEV_ONLY)
+ALL_SETTINGS+=$(call addOptionalSetting,NO_DOCS)
+ALL_SETTINGS+=$(call addOptionalSetting,NO_DEMOS)
+ALL_SETTINGS+=$(call addOptionalSetting,NO_SAMPLES)
+ALL_SETTINGS+=$(call addOptionalSetting,NO_IMAGES)
+ALL_SETTINGS+=$(call addOptionalSetting,TOOLS_ONLY)
+ALL_SETTINGS+=$(call addOptionalSetting,INSANE)
+ALL_SETTINGS+=$(call addRequiredSetting,COMPILE_APPROACH)
+ifeq ($(COMPILE_APPROACH), parallel)
+  ALL_SETTINGS+=$(call addAltSetting,PARALLEL_COMPILE_JOBS)
+endif
+ALL_SETTINGS+=$(call addOptionalSetting,FASTDEBUG)
+ALL_SETTINGS+=$(call addRequiredSetting,COMPILER_WARNINGS_FATAL)
+ALL_SETTINGS+=$(call addOptionalSetting,COMPILER_WARNING_LEVEL)
+ALL_SETTINGS+=$(call addOptionalSetting,SHOW_ALL_WARNINGS)
+ALL_SETTINGS+=$(call addRequiredSetting,INCREMENTAL_BUILD)
+ALL_SETTINGS+=$(call addOptionalSetting,CC_HIGHEST_OPT)
+ALL_SETTINGS+=$(call addOptionalSetting,CC_HIGHER_OPT)
+ALL_SETTINGS+=$(call addOptionalSetting,CC_LOWER_OPT)
+ALL_SETTINGS+=$(call addOptionalSetting,CXXFLAGS)
+ALL_SETTINGS+=$(call addOptionalSetting,CFLAGS)
+
+ALL_SETTINGS+=$(call addOptionalSetting,BOOT_JAVA_CMD)
+ALL_SETTINGS+=$(call addOptionalSetting,BOOT_JAVAC_CMD)
+ALL_SETTINGS+=$(call addOptionalSetting,BOOT_JAR_CMD)
+ALL_SETTINGS+=$(call addOptionalSetting,BOOT_JARSIGNER_CMD)
+
+# These don't print out well with windows due to the ';' characters
+ifneq ($(PLATFORM),windows)
+  ALL_SETTINGS+=$(call addOptionalSetting,JAVAC_CMD)
+  ALL_SETTINGS+=$(call addOptionalSetting,JAVAH_CMD)
+  ALL_SETTINGS+=$(call addOptionalSetting,JAVADOC_CMD)
+endif
+
+ALL_SETTINGS+=$(call addHeading,Build Platform Settings)
+ALL_SETTINGS+=$(call addRequiredSetting,USER)
+ALL_SETTINGS+=$(call addRequiredSetting,PLATFORM)
+ALL_SETTINGS+=$(call addRequiredSetting,ARCH)
+ALL_SETTINGS+=$(call addRequiredSetting,LIBARCH)
+ALL_SETTINGS+=$(call addRequiredSetting,ARCH_FAMILY)
+ALL_SETTINGS+=$(call addRequiredSetting,ARCH_DATA_MODEL)
+ALL_SETTINGS+=$(call addRequiredSetting,ARCHPROP)
+ifeq ($(PLATFORM),windows)
+  ALL_SETTINGS+=$(call addRequiredSetting,PROCESSOR_ARCHITECTURE)
+  ALL_SETTINGS+=$(call addRequiredSetting,PROCESSOR_IDENTIFIER)
+  ifdef USING_CYGWIN
+    ALL_SETTINGS+=$(call addRequiredSetting,USING_CYGWIN)
+    ALL_SETTINGS+=$(call addRequiredVersionSetting,CYGWIN_VER)
+    ALL_SETTINGS+=$(call addRequiredSetting,CYGPATH_CMD)
+  else
+    ALL_SETTINGS+=$(call addRequiredVersionSetting,MKS_VER)
+    ALL_SETTINGS+=$(call addOptionalSetting,DOSNAME_CMD)
+  endif
+endif
+ifeq ($(PLATFORM),linux)
+  ifdef REQUIRED_ALSA_VERSION
+    ALL_SETTINGS+=$(call addRequiredSetting,ALSA_VERSION)
+  endif
+endif
+ALL_SETTINGS+=$(call addRequiredVersionSetting,OS_VERSION)
+ALL_SETTINGS+=$(call addOptionalSetting,OS_VARIANT_NAME)
+ALL_SETTINGS+=$(call addOptionalSetting,OS_VARIANT_VERSION)
+ALL_SETTINGS+=$(call addRequiredSetting,MB_OF_MEMORY)
+
+
+ALL_SETTINGS+=$(call addHeading,GNU Make Settings)
+ALL_SETTINGS+=$(call addRequiredSetting,MAKE)
+ALL_SETTINGS+=$(call addRequiredVersionSetting,MAKE_VER)
+ALL_SETTINGS+=$(call addOptionalSetting,MAKECMDGOALS)
+ALL_SETTINGS+=$(call addOptionalSetting,MAKEFLAGS)
+ALL_SETTINGS+=$(call addRequiredSetting,SHELL)
+
+
+ALL_SETTINGS+=$(call addHeading,Target Build Versions)
+ALL_SETTINGS+=$(call addRequiredSetting,JDK_VERSION)
+ALL_SETTINGS+=$(call addOptionalSetting,MILESTONE)
+ALL_SETTINGS+=$(call addOptionalSetting,RELEASE)
+ALL_SETTINGS+=$(call addRequiredSetting,FULL_VERSION)
+ALL_SETTINGS+=$(call addOptionalSetting,BUILD_NUMBER)
+
+
+ALL_SETTINGS+=$(call addHeading,External File/Binary Locations)
+ALL_SETTINGS+=$(call addRequiredSetting,USRJDKINSTANCES_PATH)
+ALL_SETTINGS+=$(call addAltSetting,BUILD_JDK_IMPORT_PATH)
+ALL_SETTINGS+=$(call addAltSetting,JDK_IMPORT_PATH)
+ALL_SETTINGS+=$(call addAltSetting,LANGTOOLS_DIST)
+ALL_SETTINGS+=$(call addAltSetting,CORBA_DIST)
+ALL_SETTINGS+=$(call addAltSetting,JAXP_DIST)
+ALL_SETTINGS+=$(call addAltSetting,JAXWS_DIST)
+ALL_SETTINGS+=$(call addAltSetting,HOTSPOT_DOCS_IMPORT_PATH)
+ALL_SETTINGS+=$(call addAltSetting,HOTSPOT_IMPORT_PATH)
+ifeq ($(ARCH_DATA_MODEL), 32)
+  ALL_SETTINGS+=$(call addAltSetting,HOTSPOT_CLIENT_PATH)
+endif
+ALL_SETTINGS+=$(call addAltSetting,HOTSPOT_SERVER_PATH)
+ifeq ($(PLATFORM),windows)
+  ALL_SETTINGS+=$(call addAltSetting,HOTSPOT_LIB_PATH)
+  ALL_SETTINGS+=$(call addRequiredSetting,DXSDK_VER)
+  ALL_SETTINGS+=$(call addAltSetting,DXSDK_PATH)
+  ALL_SETTINGS+=$(call addAltSetting,DXSDK_INCLUDE_PATH)
+  ALL_SETTINGS+=$(call addAltSetting,DXSDK_LIB_PATH)
+  ALL_SETTINGS+=$(call addAltSetting,WINDOWSSDKDIR)
+  ALL_SETTINGS+=$(call addRequiredSetting,RC)
+  ALL_SETTINGS+=$(call addRequiredSetting,REBASE)
+  ifndef OPENJDK
+    ALL_SETTINGS+=$(call addAltSetting,DEPLOY_MSSDK)
+    ALL_SETTINGS+=$(call addAltSetting,INSTALL_MSSDK)
+    ALL_SETTINGS+=$(call addAltSetting,WSCRIPT)
+    ALL_SETTINGS+=$(call addAltSetting,MSICERT)
+  endif
+endif
+ALL_SETTINGS+=$(call addAltSetting,CACERTS_FILE)
+ifndef OPENJDK
+  ALL_SETTINGS+=$(call addAltSetting,MOZILLA_HEADERS_PATH)
+endif
+ifneq ($(PLATFORM),windows)
+  ALL_SETTINGS+=$(call addAltSetting,CUPS_HEADERS_PATH)
+endif
+
+ifdef OPENJDK
+  ALL_SETTINGS+=$(call addHeading,OpenJDK-specific settings)
+  ALL_SETTINGS+=$(call addAltSetting,FREETYPE_HEADERS_PATH)
+  ALL_SETTINGS+=$(call addAltSetting,FREETYPE_LIB_PATH)
+endif
+
+ifdef OPENJDK
+  ALL_SETTINGS+=$(call addHeading,Previous JDK Settings)
+  ALL_SETTINGS+=$(call addAltSetting,PREVIOUS_RELEASE_PATH)
+  ALL_SETTINGS+=$(call addAltSetting,PREVIOUS_JDK_VERSION)
+  ALL_SETTINGS+=$(call addAltSetting,PREVIOUS_JDK_FILE)
+  ALL_SETTINGS+=$(call addAltSetting,PREVIOUS_JRE_FILE)
+  ALL_SETTINGS+=$(call addAltSetting,PREVIOUS_RELEASE_IMAGE)
+endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/docs/CORE_PKGS.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,293 @@
+#
+# Copyright (c) 2001, 2011, 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.
+#
+
+# EXCLUDE_PKGS is the list of packages to exclude from the
+# Java API Specification.  Do not add these to CORE_PKGS.
+# The concatenation of EXCLUDE_PKGS and CORE_PKGS
+# should make up the list of all packages under the
+# src/shared/classes directory of the JDK source tree.
+#
+EXCLUDE_PKGS =             \
+  java.awt.peer            \
+  java.awt.dnd.peer        \
+  sun.*                    \
+  sunw.*                   \
+  com.sun.*                \
+  org.apache.*             \
+  org.jcp.*		   \
+  org.w3c.dom.css          \
+  org.w3c.dom.html         \
+  org.w3c.dom.stylesheets  \
+  org.w3c.dom.traversal    \
+  org.w3c.dom.ranges       \
+  org.w3c.dom.views        \
+  org.omg.stub.javax.management.remote.rmi
+
+#
+# ACTIVE_JSR_PKGS are packages that are part of an active JSR process--
+# one that is doing its own review. These packages are not included when
+# creating diff pages for the platform's JCP process.
+# 
+#       (see /java/pubs/apisrc/jdk/6.0/beta/make/docs/active_jsr_pkgs)
+# Note:
+# This is a list of regular expressions. So foo.* matches "foo" and "foo.bar".
+#
+ACTIVE_JSR_PKGS= \
+  java.lang.invoke \
+  java.sql  \
+  javax.activation  \
+  javax.annotation.*  \
+  javax.jws.*  \
+  javax.lang.*  \
+  javax.management.*  \
+  javax.script  \
+  javax.sql.*  \
+  javax.tools  \
+  javax.xml.*  \
+  org.w3c.*  \
+  org.xml.sax
+
+#
+# CORE_PKGS is the list of packages that form the
+# Java API Specification.
+#
+### ***IMPORTANT NOTE***
+### There is also a "REGEXP" variable in the docs/makefile that
+### determines which table the packages go in on the main page.
+### Currently, there is only table ("Platform Packages") and
+### everything goes in it, so REGEXP is "*". But if that policy
+### changes, packages added will need to be reflected in  that
+### list of wildcard expressions, as well.
+###
+CORE_PKGS =                                      \
+  java.applet                                    \
+  java.awt                                       \
+  java.awt.color                                 \
+  java.awt.datatransfer                          \
+  java.awt.dnd                                   \
+  java.awt.event                                 \
+  java.awt.font                                  \
+  java.awt.geom                                  \
+  java.awt.im                                    \
+  java.awt.im.spi                                \
+  java.awt.image                                 \
+  java.awt.image.renderable                      \
+  java.awt.print                                 \
+  java.beans                                     \
+  java.beans.beancontext                         \
+  java.io                                        \
+  java.lang                                      \
+  java.lang.annotation                           \
+  java.lang.instrument                           \
+  java.lang.invoke                               \
+  java.lang.management                           \
+  java.lang.ref                                  \
+  java.lang.reflect                              \
+  java.math                                      \
+  java.net                                       \
+  java.nio                                       \
+  java.nio.channels                              \
+  java.nio.channels.spi                          \
+  java.nio.charset                               \
+  java.nio.charset.spi                           \
+  java.nio.file					 \
+  java.nio.file.attribute			 \
+  java.nio.file.spi				 \
+  java.rmi                                       \
+  java.rmi.activation                            \
+  java.rmi.dgc                                   \
+  java.rmi.registry                              \
+  java.rmi.server                                \
+  java.security                                  \
+  java.security.acl                              \
+  java.security.cert                             \
+  java.security.interfaces                       \
+  java.security.spec                             \
+  java.sql                                       \
+  java.text                                      \
+  java.text.spi                                  \
+  java.util                                      \
+  java.util.concurrent                           \
+  java.util.concurrent.atomic                    \
+  java.util.concurrent.locks                     \
+  java.util.jar                                  \
+  java.util.logging                              \
+  java.util.prefs                                \
+  java.util.regex                                \
+  java.util.spi                                  \
+  java.util.zip                                  \
+  javax.accessibility                            \
+  javax.activation                               \
+  javax.activity                                 \
+  javax.annotation                               \
+  javax.annotation.processing                    \
+  javax.crypto                                   \
+  javax.crypto.interfaces                        \
+  javax.crypto.spec                              \
+  javax.imageio                                  \
+  javax.imageio.event                            \
+  javax.imageio.metadata                         \
+  javax.imageio.plugins.jpeg                     \
+  javax.imageio.plugins.bmp                      \
+  javax.imageio.spi                              \
+  javax.imageio.stream                           \
+  javax.jws                                      \
+  javax.jws.soap                                 \
+  javax.lang.model                               \
+  javax.lang.model.element                       \
+  javax.lang.model.type                          \
+  javax.lang.model.util                          \
+  javax.management                               \
+  javax.management.loading                       \
+  javax.management.monitor                       \
+  javax.management.relation                      \
+  javax.management.openmbean                     \
+  javax.management.timer                         \
+  javax.management.modelmbean                    \
+  javax.management.remote                        \
+  javax.management.remote.rmi                    \
+  javax.naming                                   \
+  javax.naming.directory                         \
+  javax.naming.event                             \
+  javax.naming.ldap                              \
+  javax.naming.spi                               \
+  javax.net                                      \
+  javax.net.ssl                                  \
+  javax.print                                    \
+  javax.print.attribute                          \
+  javax.print.attribute.standard                 \
+  javax.print.event                              \
+  javax.rmi                                      \
+  javax.rmi.CORBA                                \
+  javax.rmi.ssl                                  \
+  javax.script                                   \
+  javax.security.auth                            \
+  javax.security.auth.callback                   \
+  javax.security.auth.kerberos                   \
+  javax.security.auth.login                      \
+  javax.security.auth.spi                        \
+  javax.security.auth.x500                       \
+  javax.security.cert                            \
+  javax.security.sasl                            \
+  javax.sound.sampled                            \
+  javax.sound.sampled.spi                        \
+  javax.sound.midi                               \
+  javax.sound.midi.spi                           \
+  javax.sql                                      \
+  javax.sql.rowset                               \
+  javax.sql.rowset.serial                        \
+  javax.sql.rowset.spi                           \
+  javax.swing                                    \
+  javax.swing.border                             \
+  javax.swing.colorchooser                       \
+  javax.swing.filechooser                        \
+  javax.swing.event                              \
+  javax.swing.table                              \
+  javax.swing.text                               \
+  javax.swing.text.html                          \
+  javax.swing.text.html.parser                   \
+  javax.swing.text.rtf                           \
+  javax.swing.tree                               \
+  javax.swing.undo                               \
+  javax.swing.plaf                               \
+  javax.swing.plaf.basic                         \
+  javax.swing.plaf.metal                         \
+  javax.swing.plaf.multi                         \
+  javax.swing.plaf.nimbus                        \
+  javax.swing.plaf.synth                         \
+  javax.tools                                    \
+  javax.transaction                              \
+  javax.transaction.xa                           \
+  javax.xml.parsers                              \
+  javax.xml.bind                                 \
+  javax.xml.bind.annotation                      \
+  javax.xml.bind.annotation.adapters             \
+  javax.xml.bind.attachment                      \
+  javax.xml.bind.helpers                         \
+  javax.xml.bind.util                            \
+  javax.xml.soap                                 \
+  javax.xml.ws                                   \
+  javax.xml.ws.handler                           \
+  javax.xml.ws.handler.soap                      \
+  javax.xml.ws.http                              \
+  javax.xml.ws.soap                              \
+  javax.xml.ws.spi                               \
+  javax.xml.ws.spi.http                          \
+  javax.xml.ws.wsaddressing                      \
+  javax.xml.transform                            \
+  javax.xml.transform.sax                        \
+  javax.xml.transform.dom                        \
+  javax.xml.transform.stax                       \
+  javax.xml.transform.stream                     \
+  javax.xml                                      \
+  javax.xml.crypto				 \
+  javax.xml.crypto.dom				 \
+  javax.xml.crypto.dsig				 \
+  javax.xml.crypto.dsig.dom			 \
+  javax.xml.crypto.dsig.keyinfo			 \
+  javax.xml.crypto.dsig.spec			 \
+  javax.xml.datatype                             \
+  javax.xml.validation                           \
+  javax.xml.namespace                            \
+  javax.xml.xpath                                \
+  javax.xml.stream                               \
+  javax.xml.stream.events                        \
+  javax.xml.stream.util                          \
+  org.ietf.jgss                                  \
+  org.omg.CORBA                                  \
+  org.omg.CORBA.DynAnyPackage                    \
+  org.omg.CORBA.ORBPackage                       \
+  org.omg.CORBA.TypeCodePackage                  \
+  org.omg.stub.java.rmi                          \
+  org.omg.CORBA.portable                         \
+  org.omg.CORBA_2_3                              \
+  org.omg.CORBA_2_3.portable                     \
+  org.omg.CosNaming                              \
+  org.omg.CosNaming.NamingContextExtPackage      \
+  org.omg.CosNaming.NamingContextPackage         \
+  org.omg.SendingContext                         \
+  org.omg.PortableServer                         \
+  org.omg.PortableServer.CurrentPackage          \
+  org.omg.PortableServer.POAPackage              \
+  org.omg.PortableServer.POAManagerPackage       \
+  org.omg.PortableServer.ServantLocatorPackage   \
+  org.omg.PortableServer.portable                \
+  org.omg.PortableInterceptor                    \
+  org.omg.PortableInterceptor.ORBInitInfoPackage \
+  org.omg.Messaging                              \
+  org.omg.IOP                                    \
+  org.omg.IOP.CodecFactoryPackage                \
+  org.omg.IOP.CodecPackage                       \
+  org.omg.Dynamic                                \
+  org.omg.DynamicAny                             \
+  org.omg.DynamicAny.DynAnyPackage               \
+  org.omg.DynamicAny.DynAnyFactoryPackage        \
+  org.w3c.dom                                    \
+  org.w3c.dom.events                             \
+  org.w3c.dom.bootstrap                          \
+  org.w3c.dom.ls                                 \
+  org.xml.sax                                    \
+  org.xml.sax.ext                                \
+  org.xml.sax.helpers
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/docs/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,1174 @@
+# Copyright (c) 1997, 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.
+#
+
+#
+# Definitions for $(DOCSDIR), $(MKDIR), $(BINDIR), etc.
+#
+BUILDDIR=..
+PRODUCT=docs
+include $(BUILDDIR)/common/Defs.gmk
+
+# Get CopyrightLine macro and other shared variables
+include $(BUILDDIR)/common/shared/Defs-javadoc.gmk
+
+# Url to root of documents
+DOCSDIR_URL = {@docroot}/$(GET2DOCSDIR)
+
+# Url to copyright html file
+COPYRIGHT_URL-7 = $(DOCSDIR_URL)/legal/cpyr.html
+COPYRIGHT_URL = $(COPYRIGHT_URL-$(JDK_MINOR_VERSION))
+
+# Url to bug filing site
+BUG_SUBMIT_URL = http://bugreport.sun.com/bugreport/
+
+# Common line for how to submit a bug or rfe
+BUG_SUBMIT_LINE = <a href="$(BUG_SUBMIT_URL)">Submit a bug or feature</a>
+
+# Url to devdocs page
+#   Was: http://java.sun.com/javase/6/webnotes/devdocs-vs-specs.html
+DEV_DOCS_URL-5 = http://java.sun.com/j2se/1.5.0/docs/index.html
+DEV_DOCS_URL-6 = http://download.oracle.com/javase/6/docs/index.html
+DEV_DOCS_URL-7 = http://download.oracle.com/javase/7/docs/index.html
+DEV_DOCS_URL = $(DEV_DOCS_URL-$(JDK_MINOR_VERSION))
+DOCS_BASE_URL = http://download.oracle.com/javase/7/docs
+
+# Url to Java Language Spec
+#JLS3_URL = http://java.sun.com/docs/books/jls/
+
+# Common Java trademark line
+JAVA_TRADEMARK_LINE = Java is a trademark or registered trademark of \
+$(FULL_COMPANY_NAME) in the US and other countries.
+
+#
+# Definitions for imported components
+#
+include $(BUILDDIR)/common/internal/ImportComponents.gmk
+
+# We override whatever the max VM memory setting is here.
+#    NOTE: javadoc will not complete without these larger settings.
+#    WARNING: This could cause thrashing on low memory machines.
+ifeq ($(ARCH_DATA_MODEL),64)
+  MAX_VM_MEMORY = 1024
+else ifeq ($(ARCH),universal)
+  MAX_VM_MEMORY = 1024
+else
+  MAX_VM_MEMORY = 612
+endif
+
+# List of all possible directories for javadoc to look for sources
+#    NOTE: Quotes are required around sourcepath argument only on Windows.
+#          Otherwise, you get "No packages or classes specified." due 
+#          to $(CLASSPATH_SEPARATOR) being interpreted as an end of 
+#          command (newline or shell ; character)
+ALL_SOURCE_DIRS = $(SHARE_SRC)/classes \
+                  $(IMPORTSRCDIR) \
+                  $(GENSRCDIR) \
+                  $(SHARE_SRC)/../solaris/classes \
+	          $(SHARE_SRC)/../windows/classes \
+		  $(SHARE_SRC)/doc/stub
+
+# List of directories that actually exist
+ALL_EXISTING_SOURCE_DIRS := $(wildcard $(ALL_SOURCE_DIRS))
+
+# List with classpath separator between them
+EMPTY:=
+SPACE:= $(EMPTY) $(EMPTY)
+RELEASEDOCS_SOURCEPATH = \
+    $(subst $(SPACE),$(CLASSPATH_SEPARATOR),$(strip $(ALL_SOURCE_DIRS)))
+
+# Prep for javadoc creation, assumes $@ is an index.html file
+define prep-javadoc
+@if [ -f "$@" -a "$?" != "" ] ; then \
+  $(ECHO) "# Dependencies have changed: $?"; \
+fi
+$(RM) -r $(@D)
+$(MKDIR) -p $(@D)
+endef
+
+# A cache of the directories in ALL_SOURCE_DIRS
+DIRECTORY_CACHE = $(DOCSTMPDIR)/directory.cache
+
+# Given a list of packages, return a list of files or dirs to be dependent on
+#   (Currently only returning a list of directories)
+define PackageDependencies # packages
+$(shell							\
+  if [ "$1" != "" -a -f $(DIRECTORY_CACHE) ] ; then	\
+    for p in $1 ; do 					\
+      pd=`$(ECHO) $${p} | $(SED) -e 's@[.]@/@g'`;	\
+      $(CAT) $(DIRECTORY_CACHE) | $(GREP) "/$${pd}/" ; 	\
+    done; 						\
+  fi							\
+)
+endef
+
+# Given a list of packages, add packages that exist to $@, print summary
+define PackageFilter # packages
+@if [ "$1" != "" ] ; then 				\
+  for p in $1 ; do 					\
+    pd=`$(ECHO) $${p} | $(SED) -e 's@[.]@/@g'`; 	\
+    found="false"; 					\
+    for cp in $(ALL_SOURCE_DIRS) ; do 			\
+      if [ -d $${cp}/$${pd} ] ; then 			\
+        $(ECHO) "$${p}" >> $@; 				\
+	found="true";					\
+	break; 						\
+      fi; 						\
+    done; 						\
+    if [ "$${found}" = "false" ] ; then 		\
+      $(ECHO) "WARNING: Package not found: $${p}"; 	\
+    fi; 						\
+  done; 						\
+fi
+endef
+
+# Print out a summary of the javadoc command about to be run
+define JavadocSummary # optionsfile packagesfile
+@$(ECHO) "# Summary for $@";\
+ $(ECHO) "# Options (`$(BASENAME) $1`):"; $(SED) -e 's@^@#   @' $1; \
+ $(ECHO) "# Packages (`$(BASENAME) $2`):";$(SED) -e 's@^@#   @' $2
+endef
+
+#
+# Temporary directory for javadoc creation
+#
+DOCSTMPDIR = $(TEMPDIR)/doctmp
+
+#
+# Different api directories created from root directory
+#
+COREAPI_DOCSDIR   = $(DOCSDIR)/api
+JDK_API_DOCSDIR   = $(DOCSDIR)/jdk/api
+JRE_API_DOCSDIR   = $(DOCSDIR)/jre/api
+PLATFORM_DOCSDIR  = $(DOCSDIR)/platform
+
+# The non-core api javadocs need to be able to access the root of the core
+#   api directory, so for jdk/api or jre/api to get to the core api/
+#   directory we would use this:
+JDKJRE2COREAPI    = ../../api
+
+# Common bottom argument
+define CommonBottom # year
+<font size="-1"><br> $(call CopyrightLine,,$1,)</font>
+endef
+
+# Common trademark bottom argument (Not sure why this is used sometimes)
+define CommonTrademarkBottom # year
+<font size="-1">\
+$(BUG_SUBMIT_LINE)<br>$(JAVA_TRADEMARK_LINE)<br>\
+$(call CopyrightLine,,$1,$(COMPANY_ADDRESS))\
+</font>
+endef
+
+# Common echo of option
+define OptionOnly # opt
+$(PRINTF) "%s\n" "$1"
+endef
+define OptionPair # opt arg
+$(PRINTF) "%s '%s'\n" "$1" '$2'
+endef
+define OptionTrip # opt arg arg
+$(PRINTF) "%s '%s' '%s'\n" "$1" '$2' '$3'
+endef
+
+# Core api bottom argument (with special sauce)
+COREAPI_BOTTOM = <font size="-1"> $(BUG_SUBMIT_LINE)\
+<br>For further API reference and developer documentation, \
+see <a href="$(DEV_DOCS_URL)" target="_blank">Java SE Documentation</a>. \
+That documentation contains more detailed, developer-targeted descriptions, \
+with conceptual overviews, definitions of terms, workarounds, \
+and working code examples.<br>\
+$(call CopyrightLine,$(COPYRIGHT_URL),$(FIRST_COPYRIGHT_YEAR),)\
+</font>
+
+# Common javadoc options used by all
+COMMON_JAVADOCFLAGS =					\
+                $(NO_PROPRIETARY_API_WARNINGS)          \
+		-quiet					\
+                -use					\
+                -keywords				\
+		$(ADDITIONAL_JAVADOCFLAGS)
+
+ifdef OPENJDK
+  ADDITIONAL_JAVADOCFLAGS =				\
+                -Xdocrootparent $(DOCS_BASE_URL)
+else
+  ADDITIONAL_JAVADOCFLAGS =
+endif
+
+# Draft used for non-fcs documents
+JDK_IS_FCS = false
+DRAFT_HEADER =
+ifeq ($(JDK_MINOR_VERSION),5)
+  JDK_IS_FCS = true
+endif
+ifeq ($(JDK_MINOR_VERSION),6)
+  JDK_IS_FCS = true
+endif
+ifeq ($(JDK_MINOR_VERSION),7)
+  JDK_IS_FCS = true
+endif
+ifeq ($(JDK_IS_FCS),false)
+  ifneq ($(MILESTONE), fcs)
+    DRAFT_HEADER = <br><strong>DRAFT&nbsp;$(MILESTONE)-$(BUILD_NUMBER)</strong>
+    DRAFT_BOTTOM = <br><strong>DRAFT&nbsp;$(MILESTONE)-$(BUILD_NUMBER)</strong>
+    DRAFT_WINTITLE = $(BUILD_NUMBER)
+    # Early access top text (not used in FCS releases)
+    COREAPI_TOP_EARLYACCESS = \
+<div style="background-color: \#EEEEEE"> \
+<div style="padding: 6px; margin-top: 2px; margin-bottom: 6px; \
+margin-left: 6px; margin-right: 6px; text-align: justify; \
+font-size: 80%; font-family: Helvetica, Arial, sans-serif; \
+font-weight: normal;"> \
+Please note that the specifications and other information \
+contained herein are not final and are subject to change. \
+The information is being made available to you solely for purpose of \
+evaluation. \
+</div> </div>
+  endif
+endif
+
+#################################################################
+
+#
+# CORE_PKGS environment variable has been moved to the following file
+#
+include CORE_PKGS.gmk
+
+#
+# Load environment variables for API package names that are not part of
+# the Java SE platform
+#
+include NON_CORE_PKGS.gmk
+
+#################################################################
+
+#
+# Default target is same as docs target, create core api and all others it can
+#
+
+all: docs
+docs: coredocs otherdocs
+
+#################################################################
+# Production Targets -- USE THESE TARGETS WHEN:
+#    a) You're generating docs outside of release engineering's
+#       standard control build.
+#    b) The docs will be pushed to the web and/or included in
+#       the downloaded doc bundle.
+#
+# See:  Notes.html#releaseTargets
+# Note: Spaces precede ifdef/ifndef indents. Tabs precede target commands (!)
+#
+
+sanitycheckcoredocs:
+	@$(ECHO) ""
+	@$(ECHO) "Building core api docs with these values:"
+	@$(ECHO) "    BUILD_NUMBER = $(BUILD_NUMBER)"
+	@$(ECHO) "    MILESTONE = $(MILESTONE)"
+	@$(ECHO) ""
+  ifeq ($(BUILD_NUMBER), b00)
+	@$(ECHO) "ERROR: Build number must be defined"
+	@$(ECHO) "MILESTONE is set to $(MILESTONE)"
+	@$(ECHO) ""
+	exit 1
+  endif
+
+#############################################################
+#
+# coredocs
+#
+COREAPI_DOCTITLE  = Java$(TRADEMARK) Platform, Standard Edition \
+$(JDK_MINOR_VERSION)<br>API Specification
+COREAPI_WINDOWTITLE  = Java Platform SE $(JDK_MINOR_VERSION)
+COREAPI_HEADER = \
+<strong>Java$(TRADEMARK)&nbsp;Platform<br>Standard&nbsp;Ed.&nbsp;$(JDK_MINOR_VERSION)</strong>
+
+# Java language specification cite
+TAG_JLS = jls:a:See <cite> \
+The Java&trade; Language Specification</cite>:
+
+# Overview file for core apis
+COREAPI_OVERVIEW = $(SHARE_SRC)/classes/overview-core.html
+
+# The index.html, options, and packages files
+COREAPI_INDEX_FILE    = $(COREAPI_DOCSDIR)/index.html
+COREAPI_OPTIONS_FILE  = $(DOCSTMPDIR)/coredocs.options
+COREAPI_PACKAGES_FILE = $(DOCSTMPDIR)/coredocs.packages
+
+coredocs: $(COREAPI_INDEX_FILE)
+
+# Set relative location to core api document root
+$(COREAPI_INDEX_FILE): GET2DOCSDIR=..
+
+# Run javadoc if the index file is out of date or missing
+$(COREAPI_INDEX_FILE): $(COREAPI_OPTIONS_FILE) $(COREAPI_PACKAGES_FILE)
+	$(prep-javadoc)
+	$(call JavadocSummary,$(COREAPI_OPTIONS_FILE),$(COREAPI_PACKAGES_FILE))
+	$(JAVADOC_CMD) $(JAVADOC_VM_MEMORY_FLAGS) -d $(@D) \
+	  @$(COREAPI_OPTIONS_FILE) @$(COREAPI_PACKAGES_FILE)
+
+# Create file with javadoc options in it
+$(COREAPI_OPTIONS_FILE): $(COREAPI_OVERVIEW)
+	$(prep-target)
+	@($(call OptionOnly,$(COMMON_JAVADOCFLAGS))			; \
+	  $(call OptionPair,-sourcepath,$(RELEASEDOCS_SOURCEPATH))	; \
+	  $(call OptionPair,-encoding,ISO-8859-1)			; \
+	  $(call OptionPair,-tag,beaninfo:X)				; \
+	  $(call OptionPair,-tag,revised:X)				; \
+	  $(call OptionPair,-tag,since.unbundled:X)			; \
+	  $(call OptionPair,-tag,spec:X)				; \
+	  $(call OptionPair,-tag,specdefault:X)				; \
+	  $(call OptionPair,-tag,Note:X)				; \
+	  $(call OptionPair,-tag,ToDo:X)				; \
+          $(call OptionPair,-tag,$(TAG_JLS)) 				; \
+	  $(call OptionOnly,-splitIndex)				; \
+	  $(call OptionPair,-overview,$(COREAPI_OVERVIEW))		; \
+	  $(call OptionPair,-doctitle,$(COREAPI_DOCTITLE))		; \
+	  $(call OptionPair,-windowtitle,$(COREAPI_WINDOWTITLE) $(DRAFT_WINTITLE)) ;\
+	  $(call OptionPair,-header,$(COREAPI_HEADER)$(DRAFT_HEADER))	; \
+	  $(call OptionPair,-bottom,$(COREAPI_BOTTOM)$(DRAFT_BOTTOM))	; \
+        ) >> $@
+ifdef COREAPI_TOP_EARLYACCESS
+	@$(call OptionPair,-top,$(COREAPI_TOP_EARLYACCESS)) >> $@
+endif
+
+# Create a file with the package names in it
+$(COREAPI_PACKAGES_FILE): $(DIRECTORY_CACHE) $(call PackageDependencies,$(CORE_PKGS))
+	$(prep-target)
+	$(call PackageFilter,$(CORE_PKGS))
+
+#############################################################
+#
+# docletapidocs
+#
+
+# Part of langtools
+ifdef LANGTOOLS_DIST
+  ALL_OTHER_TARGETS += docletapidocs
+endif
+
+DOCLETAPI_DOCDIR       := $(JDK_API_DOCSDIR)/javadoc/doclet
+DOCLETAPI2COREAPI      := ../../$(JDKJRE2COREAPI)
+DOCLETAPI_DOCTITLE     := Doclet API
+DOCLETAPI_WINDOWTITLE  := Doclet API
+DOCLETAPI_HEADER       := <strong>Doclet API</strong>
+DOCLETAPI_BOTTOM       := $(call CommonTrademarkBottom,$(DOCLETAPI_FIRST_COPYRIGHT_YEAR))
+DOCLETAPI_GROUPNAME    := Packages
+DOCLETAPI_REGEXP       := com.sun.javadoc
+# DOCLETAPI_PKGS is located in NON_CORE_PKGS.gmk
+
+# The index.html, options, and packages files
+DOCLETAPI_INDEX_FILE    = $(DOCLETAPI_DOCDIR)/index.html
+DOCLETAPI_OPTIONS_FILE  = $(DOCSTMPDIR)/docletapi.options
+DOCLETAPI_PACKAGES_FILE = $(DOCSTMPDIR)/docletapi.packages
+
+docletapidocs: $(DOCLETAPI_INDEX_FILE)
+
+# Set relative location to core api document root
+$(DOCLETAPI_INDEX_FILE): GET2DOCSDIR=$(DOCLETAPI2COREAPI)/..
+
+# Run javadoc if the index file is out of date or missing
+$(DOCLETAPI_INDEX_FILE): $(DOCLETAPI_OPTIONS_FILE) $(DOCLETAPI_PACKAGES_FILE)
+	$(prep-javadoc)
+	$(call JavadocSummary,$(DOCLETAPI_OPTIONS_FILE),$(DOCLETAPI_PACKAGES_FILE))
+	$(JAVADOC_CMD) $(JAVADOC_VM_MEMORY_FLAGS) -d $(@D) \
+	  @$(DOCLETAPI_OPTIONS_FILE) @$(DOCLETAPI_PACKAGES_FILE)
+
+# Create file with javadoc options in it
+$(DOCLETAPI_OPTIONS_FILE):
+	$(prep-target)
+	@($(call OptionOnly,$(COMMON_JAVADOCFLAGS))			; \
+	  $(call OptionPair,-sourcepath,$(RELEASEDOCS_SOURCEPATH))	; \
+	  $(call OptionPair,-encoding,ascii)				; \
+	  $(call OptionOnly,-breakiterator)				; \
+	  $(call OptionPair,-doctitle,$(DOCLETAPI_DOCTITLE))		; \
+	  $(call OptionPair,-windowtitle,$(DOCLETAPI_WINDOWTITLE) $(DRAFT_WINTITLE));\
+	  $(call OptionPair,-header,$(DOCLETAPI_HEADER)$(DRAFT_HEADER))	; \
+	  $(call OptionPair,-bottom,$(DOCLETAPI_BOTTOM)$(DRAFT_BOTTOM))	; \
+	  $(call OptionTrip,-group,$(DOCLETAPI_GROUPNAME),$(DOCLETAPI_REGEXP)); \
+	  $(call OptionTrip,-linkoffline,$(DOCLETAPI2COREAPI),$(COREAPI_DOCSDIR)/); \
+        ) >> $@
+
+# Create a file with the package names in it
+$(DOCLETAPI_PACKAGES_FILE): $(DIRECTORY_CACHE) $(call PackageDependencies,$(DOCLETAPI_PKGS))
+	$(prep-target)
+	$(call PackageFilter,$(DOCLETAPI_PKGS))
+
+#############################################################
+#
+# tagletapidocs
+#
+
+# Part of langtools
+ifdef LANGTOOLS_DIST
+  ALL_OTHER_TARGETS += tagletapidocs
+endif
+
+TAGLETAPI_DOCDIR   := $(JDK_API_DOCSDIR)/javadoc/taglet
+TAGLETAPI2COREAPI  := ../../$(JDKJRE2COREAPI)
+TAGLETAPI_BOTTOM   := $(call CommonTrademarkBottom,$(TAGLETAPI_FIRST_COPYRIGHT_YEAR))
+# TAGLETAPI_FILE is located in NON_CORE_PKGS.gmk
+
+# Temporary directory (special generation rules)
+TAGLETAPI_TEMPDIR       = $(DOCSTMPDIR)/taglets_temp
+
+# The index.html, options, and packages files
+TAGLETAPI_INDEX_FILE    = $(TAGLETAPI_DOCDIR)/index.html
+TAGLETAPI_OPTIONS_FILE  = $(DOCSTMPDIR)/tagletapi.options
+TAGLETAPI_PACKAGES_FILE = $(DOCSTMPDIR)/tagletapi.packages
+
+tagletapidocs: $(TAGLETAPI_INDEX_FILE)
+
+# Set relative location to core api document root
+$(TAGLETAPI_INDEX_FILE): GET2DOCSDIR=$(TAGLETAPI2COREAPI)/..
+
+# Run javadoc if the index file is out of date or missing
+$(TAGLETAPI_INDEX_FILE): $(TAGLETAPI_OPTIONS_FILE) $(TAGLETAPI_PACKAGES_FILE)
+	$(prep-javadoc)
+	$(RM) -r $(TAGLETAPI_TEMPDIR)
+	$(MKDIR) -p $(TAGLETAPI_TEMPDIR)
+	$(call JavadocSummary,$(TAGLETAPI_OPTIONS_FILE),$(TAGLETAPI_PACKAGES_FILE))
+	$(JAVADOC_CMD) $(JAVADOC_VM_MEMORY_FLAGS) -d $(TAGLETAPI_TEMPDIR) \
+	  @$(TAGLETAPI_OPTIONS_FILE) @$(TAGLETAPI_PACKAGES_FILE)
+	cp -r $(TAGLETAPI_TEMPDIR)/com $(@D)
+	cp $(TAGLETAPI_TEMPDIR)/stylesheet.css $(@D)
+	$(RM) -r $(TAGLETAPI_TEMPDIR)
+
+# Create file with javadoc options in it
+$(TAGLETAPI_OPTIONS_FILE):
+	$(prep-target)
+	@($(call OptionOnly,$(COMMON_JAVADOCFLAGS))			; \
+	  $(call OptionPair,-sourcepath,$(RELEASEDOCS_SOURCEPATH))	; \
+	  $(call OptionPair,-encoding,ascii)				; \
+	  $(call OptionOnly,-nonavbar)					; \
+	  $(call OptionOnly,-noindex)					; \
+	  $(call OptionPair,-bottom,$(TAGLETAPI_BOTTOM)$(DRAFT_BOTTOM))	; \
+	  $(call OptionTrip,-linkoffline,$(TAGLETAPI2COREAPI),$(COREAPI_DOCSDIR)/); \
+        ) >> $@
+
+# Create a file with the package names in it
+$(TAGLETAPI_PACKAGES_FILE): $(IMPORTSRCDIR)/$(TAGLETAPI_FILE)
+	$(prep-target)
+	@($(ECHO) "$(IMPORTSRCDIR)/$(TAGLETAPI_FILE)" ) > $@
+
+#############################################################
+#
+# domapidocs
+#
+
+ALL_OTHER_TARGETS += domapidocs
+
+DOMAPI_DOCDIR       := $(JRE_API_DOCSDIR)/plugin/dom
+DOMAPI2COREAPI      := ../../$(JDKJRE2COREAPI)
+DOMAPI_DOCTITLE     := Common DOM API
+DOMAPI_WINDOWTITLE  := Common DOM API
+DOMAPI_HEADER       := <strong>Common DOM API</strong>
+DOMAPI_BOTTOM       := $(call CommonTrademarkBottom,$(DOMAPI_FIRST_COPYRIGHT_YEAR))
+DOMAPI_GROUPNAME    := Packages
+DOMAPI_REGEXP       := com.sun.java.browser.dom:org.w3c.dom*
+# DOMAPI_PKGS is located in NON_CORE_PKGS.gmk
+
+# The index.html, options, and packages files
+DOMAPI_INDEX_FILE    = $(DOMAPI_DOCDIR)/index.html
+DOMAPI_OPTIONS_FILE  = $(DOCSTMPDIR)/domapi.options
+DOMAPI_PACKAGES_FILE = $(DOCSTMPDIR)/domapi.packages
+
+domapidocs: $(DOMAPI_INDEX_FILE)
+
+# Set relative location to core api document root
+$(DOMAPI_INDEX_FILE): GET2DOCSDIR=$(DOMAPI2COREAPI)/..
+
+# Run javadoc if the index file is out of date or missing
+$(DOMAPI_INDEX_FILE): $(DOMAPI_OPTIONS_FILE) $(DOMAPI_PACKAGES_FILE)
+	$(prep-javadoc)
+	$(call JavadocSummary,$(DOMAPI_OPTIONS_FILE),$(DOMAPI_PACKAGES_FILE))
+	$(JAVADOC_CMD) $(JAVADOC_VM_MEMORY_FLAGS) -d $(@D) \
+	  @$(DOMAPI_OPTIONS_FILE) @$(DOMAPI_PACKAGES_FILE)
+
+# Create file with javadoc options in it
+$(DOMAPI_OPTIONS_FILE):
+	$(prep-target)
+	@($(call OptionOnly,$(COMMON_JAVADOCFLAGS))			; \
+	  $(call OptionPair,-sourcepath,$(RELEASEDOCS_SOURCEPATH))	; \
+	  $(call OptionPair,-encoding,ascii)				; \
+	  $(call OptionOnly,-splitIndex)				; \
+	  $(call OptionPair,-doctitle,$(DOMAPI_DOCTITLE))		; \
+	  $(call OptionPair,-windowtitle,$(DOMAPI_WINDOWTITLE) $(DRAFT_WINTITLE));\
+	  $(call OptionPair,-header,$(DOMAPI_HEADER)$(DRAFT_HEADER))	; \
+	  $(call OptionPair,-bottom,$(DOMAPI_BOTTOM)$(DRAFT_BOTTOM))	; \
+	  $(call OptionTrip,-group,$(DOMAPI_GROUPNAME),$(DOMAPI_REGEXP)); \
+	  $(call OptionTrip,-linkoffline,$(DOMAPI2COREAPI),$(COREAPI_DOCSDIR)/); \
+        ) >> $@
+
+# Create a file with the package names in it
+$(DOMAPI_PACKAGES_FILE): $(DIRECTORY_CACHE) $(call PackageDependencies,$(DOMAPI_PKGS))
+	$(prep-target)
+	$(call PackageFilter,$(DOMAPI_PKGS))
+
+#############################################################
+#
+# jpdadocs
+#
+
+ALL_OTHER_TARGETS += jpdadocs
+
+jpdadocs: jdidocs jdwpdocs jvmtidocs
+
+#############################################################
+#
+# jdidocs
+#
+
+ALL_OTHER_TARGETS += jdidocs
+
+JDI_DOCDIR      := $(JDK_API_DOCSDIR)/jpda/jdi
+JDI2COREAPI     := ../../$(JDKJRE2COREAPI)
+JDI_DOCTITLE    := Java$(TRADEMARK) Debug Interface
+JDI_WINDOWTITLE := Java Debug Interface
+JDI_HEADER      := <strong>Java Debug Interface</strong>
+JDI_BOTTOM      := $(call CommonBottom,$(JDI_FIRST_COPYRIGHT_YEAR))
+JDI_OVERVIEW    := $(SHARE_SRC)/classes/jdi-overview.html
+# JDI_PKGS is located in NON_CORE_PKGS.gmk
+
+# The index.html, options, and packages files
+JDI_INDEX_FILE    = $(JDI_DOCDIR)/index.html
+JDI_OPTIONS_FILE  = $(DOCSTMPDIR)/jdi.options
+JDI_PACKAGES_FILE = $(DOCSTMPDIR)/jdi.packages
+
+jdidocs: $(JDI_INDEX_FILE)
+
+# Set relative location to core api document root
+$(JDI_INDEX_FILE): GET2DOCSDIR=$(JDI2COREAPI)/..
+
+# Run javadoc if the index file is out of date or missing
+$(JDI_INDEX_FILE): $(JDI_OPTIONS_FILE) $(JDI_PACKAGES_FILE)
+	$(prep-javadoc)
+	$(call JavadocSummary,$(JDI_OPTIONS_FILE),$(JDI_PACKAGES_FILE))
+	$(JAVADOC_CMD) $(JAVADOC_VM_MEMORY_FLAGS) -d $(@D) \
+	  @$(JDI_OPTIONS_FILE) @$(JDI_PACKAGES_FILE)
+
+# Create file with javadoc options in it
+$(JDI_OPTIONS_FILE): $(JDI_OVERVIEW)
+	$(prep-target)
+	@($(call OptionOnly,$(COMMON_JAVADOCFLAGS))			; \
+	  $(call OptionPair,-sourcepath,$(RELEASEDOCS_SOURCEPATH))	; \
+	  $(call OptionPair,-encoding,ascii)				; \
+	  $(call OptionPair,-overview,$(JDI_OVERVIEW))			; \
+	  $(call OptionPair,-doctitle,$(JDI_DOCTITLE))			; \
+	  $(call OptionPair,-windowtitle,$(JDI_WINDOWTITLE) $(DRAFT_WINTITLE)); \
+	  $(call OptionPair,-header,$(JDI_HEADER)$(DRAFT_HEADER))	; \
+	  $(call OptionPair,-bottom,$(JDI_BOTTOM)$(DRAFT_BOTTOM))	; \
+	  $(call OptionTrip,-linkoffline,$(JDI2COREAPI),$(COREAPI_DOCSDIR)/); \
+        ) >> $@
+
+# Create a file with the package names in it
+$(JDI_PACKAGES_FILE): $(DIRECTORY_CACHE) $(call PackageDependencies,$(JDI_PKGS))
+	$(prep-target)
+	$(call PackageFilter,$(JDI_PKGS))
+
+#############################################################
+#
+# jdwpdocs
+#
+
+ALL_OTHER_TARGETS += jdwpdocs
+
+JDWP_DOCDIR     = $(PLATFORM_DOCSDIR)/jpda/jdwp
+JDWP_SPEC       = $(BUILDDIR)/jpda/jdwp/jdwp.spec
+
+jdwpdocs: $(JDWP_DOCDIR)/jdwp-protocol.html
+$(JDWP_DOCDIR)/jdwp-protocol.html: $(BUILD_TOOLS) $(JDWP_SPEC)
+	$(prep-javadoc)
+	$(TOOL_JDWPGEN) $(JDWP_SPEC) -doc $@
+
+#############################################################
+#
+# jvmtidocs
+#
+
+ALL_OTHER_TARGETS += jvmtidocs
+
+JVMTI_DOCDIR      = $(PLATFORM_DOCSDIR)/jvmti
+JVMTI_HTML        = $(HOTSPOT_DOCS_IMPORT_PATH)/platform/jvmti/jvmti.html
+
+jvmtidocs:  $(JVMTI_DOCDIR)/jvmti.html
+$(JVMTI_DOCDIR)/jvmti.html:
+	@$(prep-javadoc)
+	@if [ -f $(JVMTI_HTML) ] ; then		                           \
+	  $(ECHO) "$(CP) $(JVMTI_HTML) $@";                 	           \
+	  $(CP) $(JVMTI_HTML) $@; 	                 	           \
+	else 						                   \
+	  $(ECHO) "WARNING: Generated file does not exist: $(JVMTI_HTML)"; \
+	fi
+
+#############################################################
+#
+# jaasdocs
+#
+
+ALL_OTHER_TARGETS += jaasdocs
+
+JAAS_DOCDIR	 := $(JRE_API_DOCSDIR)/security/jaas/spec
+JAAS2COREAPI     := ../../../$(JDKJRE2COREAPI)
+JAAS_DOCTITLE    := Java$(TRADEMARK) Authentication and Authorization Service
+JAAS_WINDOWTITLE := Java Authentication and Authorization Service
+JAAS_HEADER      := <strong>Java Authentication and Authorization Service</strong>
+JAAS_BOTTOM      := $(call CommonBottom,$(JAAS_FIRST_COPYRIGHT_YEAR))
+# JAAS_PKGS is located in NON_CORE_PKGS.gmk
+JAAS_OVERVIEW    := $(SHARE_SRC)/classes/com/sun/security/auth/jaas-overview.html
+
+# The index.html, options, and packages files
+JAAS_INDEX_FILE    = $(JAAS_DOCDIR)/index.html
+JAAS_OPTIONS_FILE  = $(DOCSTMPDIR)/jaas.options
+JAAS_PACKAGES_FILE = $(DOCSTMPDIR)/jaas.packages
+
+jaasdocs: $(JAAS_INDEX_FILE)
+
+# Set relative location to core api document root
+$(JAAS_INDEX_FILE): GET2DOCSDIR=$(JAAS2COREAPI)/..
+
+# Run javadoc if the index file is out of date or missing
+$(JAAS_INDEX_FILE): $(JAAS_OPTIONS_FILE) $(JAAS_PACKAGES_FILE)
+	$(prep-javadoc)
+	$(call JavadocSummary,$(JAAS_OPTIONS_FILE),$(JAAS_PACKAGES_FILE))
+	$(JAVADOC_CMD) $(JAVADOC_VM_MEMORY_FLAGS) -d $(@D) \
+	  @$(JAAS_OPTIONS_FILE) @$(JAAS_PACKAGES_FILE)
+
+# Create file with javadoc options in it
+$(JAAS_OPTIONS_FILE): $(JAAS_OVERVIEW)
+	$(prep-target)
+	@($(call OptionOnly,$(COMMON_JAVADOCFLAGS))			; \
+	  $(call OptionPair,-sourcepath,$(RELEASEDOCS_SOURCEPATH))	; \
+	  $(call OptionPair,-encoding,ascii)				; \
+	  $(call OptionPair,-overview,$(JAAS_OVERVIEW))			; \
+	  $(call OptionPair,-doctitle,$(JAAS_DOCTITLE))			; \
+	  $(call OptionPair,-windowtitle,$(JAAS_WINDOWTITLE) $(DRAFT_WINTITLE)); \
+	  $(call OptionPair,-header,$(JAAS_HEADER)$(DRAFT_HEADER))	; \
+	  $(call OptionPair,-bottom,$(JAAS_BOTTOM)$(DRAFT_BOTTOM))	; \
+	  $(call OptionTrip,-linkoffline,$(JAAS2COREAPI),$(COREAPI_DOCSDIR)/); \
+        ) >> $@
+
+# Create a file with the package names in it
+$(JAAS_PACKAGES_FILE): $(DIRECTORY_CACHE) $(call PackageDependencies,$(JAAS_PKGS))
+	$(prep-target)
+	$(call PackageFilter,$(JAAS_PKGS))
+
+#############################################################
+#
+# jgssdocs
+#
+
+ALL_OTHER_TARGETS += jgssdocs
+
+JGSS_DOCDIR	 := $(JRE_API_DOCSDIR)/security/jgss/spec
+JGSS2COREAPI     := ../../../$(JDKJRE2COREAPI)
+JGSS_DOCTITLE    := Java$(TRADEMARK) GSS-API Utilities
+JGSS_WINDOWTITLE := Java GSS-API Utilities
+JGSS_HEADER      := <strong>Java GSS-API Utilities</strong>
+JGSS_BOTTOM      := $(call CommonBottom,$(JGSS_FIRST_COPYRIGHT_YEAR))
+JGSS_OVERVIEW    := $(SHARE_SRC)/classes/com/sun/security/jgss/jgss-overview.html
+# JGSS_PKGS is located in NON_CORE_PKGS.gmk
+
+# The index.html, options, and packages files
+JGSS_INDEX_FILE    = $(JGSS_DOCDIR)/index.html
+JGSS_OPTIONS_FILE  = $(DOCSTMPDIR)/jgss.options
+JGSS_PACKAGES_FILE = $(DOCSTMPDIR)/jgss.packages
+
+jgssdocs: $(JGSS_INDEX_FILE)
+
+# Set relative location to core api document root
+$(JGSS_INDEX_FILE): GET2DOCSDIR=$(JGSS2COREAPI)/..
+
+# Run javadoc if the index file is out of date or missing
+$(JGSS_INDEX_FILE): $(JGSS_OPTIONS_FILE) $(JGSS_PACKAGES_FILE)
+	$(prep-javadoc)
+	$(call JavadocSummary,$(JGSS_OPTIONS_FILE),$(JGSS_PACKAGES_FILE))
+	$(JAVADOC_CMD) $(JAVADOC_VM_MEMORY_FLAGS) -d $(@D) \
+	  @$(JGSS_OPTIONS_FILE) @$(JGSS_PACKAGES_FILE)
+
+# Create file with javadoc options in it
+$(JGSS_OPTIONS_FILE): $(JGSS_OVERVIEW)
+	$(prep-target)
+	@($(call OptionOnly,$(COMMON_JAVADOCFLAGS))			; \
+	  $(call OptionPair,-sourcepath,$(RELEASEDOCS_SOURCEPATH))	; \
+	  $(call OptionPair,-encoding,ascii)				; \
+	  $(call OptionOnly,-nodeprecatedlist)				; \
+	  $(call OptionPair,-overview,$(JGSS_OVERVIEW))			; \
+	  $(call OptionPair,-doctitle,$(JGSS_DOCTITLE))			; \
+	  $(call OptionPair,-windowtitle,$(JGSS_WINDOWTITLE) $(DRAFT_WINTITLE)); \
+	  $(call OptionPair,-header,$(JGSS_HEADER)$(DRAFT_HEADER))	; \
+	  $(call OptionPair,-bottom,$(JGSS_BOTTOM)$(DRAFT_BOTTOM))	; \
+	  $(call OptionTrip,-linkoffline,$(JGSS2COREAPI),$(COREAPI_DOCSDIR)/); \
+        ) >> $@
+
+# Create a file with the package names in it
+$(JGSS_PACKAGES_FILE): $(DIRECTORY_CACHE) $(call PackageDependencies,$(JGSS_PKGS))
+	$(prep-target)
+	$(call PackageFilter,$(JGSS_PKGS))
+
+#############################################################
+#
+# smartcardiodocs
+#
+
+ALL_OTHER_TARGETS += smartcardiodocs
+
+SMARTCARDIO_DOCDIR	:= $(JRE_API_DOCSDIR)/security/smartcardio/spec
+SMARTCARDIO2COREAPI     := ../../../$(JDKJRE2COREAPI)
+SMARTCARDIO_DOCTITLE    := Java$(TRADEMARK) Smart Card I/O
+SMARTCARDIO_WINDOWTITLE := Java Smart Card I/O
+SMARTCARDIO_HEADER      := <strong>Java Smart Card I/O</strong>
+SMARTCARDIO_BOTTOM      := $(call CommonBottom,$(SMARTCARDIO_FIRST_COPYRIGHT_YEAR))
+# SMARTCARDIO_PKGS is located in NON_CORE_PKGS.gmk
+
+# The index.html, options, and packages files
+SMARTCARDIO_INDEX_FILE    = $(SMARTCARDIO_DOCDIR)/index.html
+SMARTCARDIO_OPTIONS_FILE  = $(DOCSTMPDIR)/smartcardio.options
+SMARTCARDIO_PACKAGES_FILE = $(DOCSTMPDIR)/smartcardio.packages
+
+smartcardiodocs: $(SMARTCARDIO_INDEX_FILE)
+
+# Set relative location to core api document root
+$(SMARTCARDIO_INDEX_FILE): GET2DOCSDIR=$(SMARTCARDIO2COREAPI)/..
+
+# Run javadoc if the index file is out of date or missing
+$(SMARTCARDIO_INDEX_FILE): $(SMARTCARDIO_OPTIONS_FILE) $(SMARTCARDIO_PACKAGES_FILE)
+	$(prep-javadoc)
+	$(call JavadocSummary,$(SMARTCARDIO_OPTIONS_FILE),$(SMARTCARDIO_PACKAGES_FILE))
+	$(JAVADOC_CMD) $(JAVADOC_VM_MEMORY_FLAGS) -d $(@D) \
+	  @$(SMARTCARDIO_OPTIONS_FILE) @$(SMARTCARDIO_PACKAGES_FILE)
+
+# Create file with javadoc options in it
+$(SMARTCARDIO_OPTIONS_FILE):
+	$(prep-target)
+	@($(call OptionOnly,$(COMMON_JAVADOCFLAGS))			; \
+	  $(call OptionPair,-sourcepath,$(RELEASEDOCS_SOURCEPATH))	; \
+	  $(call OptionPair,-encoding,ascii)				; \
+	  $(call OptionOnly,-nodeprecatedlist)				; \
+	  $(call OptionPair,-doctitle,$(SMARTCARDIO_DOCTITLE))		; \
+	  $(call OptionPair,-windowtitle,$(SMARTCARDIO_WINDOWTITLE) $(DRAFT_WINTITLE));\
+	  $(call OptionPair,-header,$(SMARTCARDIO_HEADER)$(DRAFT_HEADER)); \
+	  $(call OptionPair,-bottom,$(SMARTCARDIO_BOTTOM)$(DRAFT_BOTTOM)); \
+	  $(call OptionTrip,-linkoffline,$(SMARTCARDIO2COREAPI),$(COREAPI_DOCSDIR)/); \
+        ) >> $@
+
+# Create a file with the package names in it
+$(SMARTCARDIO_PACKAGES_FILE): $(DIRECTORY_CACHE) $(call PackageDependencies,$(SMARTCARDIO_PKGS))
+	$(prep-target)
+	$(call PackageFilter,$(SMARTCARDIO_PKGS))
+
+#############################################################
+#
+# httpserverdocs
+#
+
+ALL_OTHER_TARGETS += httpserverdocs
+
+HTTPSERVER_DOCDIR      := $(JRE_API_DOCSDIR)/net/httpserver/spec
+HTTPSERVER2COREAPI     := ../../../$(JDKJRE2COREAPI)
+HTTPSERVER_DOCTITLE    := Java$(TRADEMARK) HTTP Server
+HTTPSERVER_WINDOWTITLE := Java HTTP Server
+HTTPSERVER_HEADER      := <strong>Java HTTP Server</strong>
+HTTPSERVER_BOTTOM      := $(call CommonBottom,$(HTTPSERVER_FIRST_COPYRIGHT_YEAR))
+# HTTPSERVER_PKGS is located in NON_CORE_PKGS.gmk
+
+HTTPSERVER_INDEX_HTML    = $(HTTPSERVER_DOCDIR)/index.html
+HTTPSERVER_OPTIONS_FILE  = $(DOCSTMPDIR)/httpserver.options
+HTTPSERVER_PACKAGES_FILE = $(DOCSTMPDIR)/httpserver.packages
+
+httpserverdocs: $(HTTPSERVER_INDEX_HTML)
+
+# Set relative location to core api document root
+$(HTTPSERVER_INDEX_HTML): GET2DOCSDIR=$(HTTPSERVER2COREAPI)/..
+
+# Run javadoc if the index file is out of date or missing
+$(HTTPSERVER_INDEX_HTML): $(HTTPSERVER_OPTIONS_FILE) $(HTTPSERVER_PACKAGES_FILE)
+	$(prep-javadoc)
+	$(call JavadocSummary,$(HTTPSERVER_OPTIONS_FILE),$(HTTPSERVER_PACKAGES_FILE))
+	$(JAVADOC_CMD) $(JAVADOC_VM_MEMORY_FLAGS) -d $(@D) \
+	  @$(HTTPSERVER_OPTIONS_FILE) @$(HTTPSERVER_PACKAGES_FILE)
+
+# Create file with javadoc options in it
+$(HTTPSERVER_OPTIONS_FILE):
+	$(prep-target)
+	@($(call OptionOnly,$(COMMON_JAVADOCFLAGS))			; \
+	  $(call OptionPair,-sourcepath,$(RELEASEDOCS_SOURCEPATH))	; \
+	  $(call OptionPair,-encoding,ascii)				; \
+	  $(call OptionOnly,-nodeprecatedlist)				; \
+	  $(call OptionPair,-doctitle,$(HTTPSERVER_DOCTITLE))		; \
+	  $(call OptionPair,-windowtitle,$(HTTPSERVER_WINDOWTITLE) $(DRAFT_WINTITLE));\
+	  $(call OptionPair,-header,$(HTTPSERVER_HEADER)$(DRAFT_HEADER)); \
+	  $(call OptionPair,-bottom,$(HTTPSERVER_BOTTOM)$(DRAFT_BOTTOM)); \
+	  $(call OptionTrip,-linkoffline,$(HTTPSERVER2COREAPI),$(COREAPI_DOCSDIR)/); \
+        ) >> $@
+
+# Create a file with the package names in it
+$(HTTPSERVER_PACKAGES_FILE): $(DIRECTORY_CACHE) $(call PackageDependencies,$(HTTPSERVER_PKGS))
+	$(prep-target)
+	$(call PackageFilter,$(HTTPSERVER_PKGS))
+
+#############################################################
+#
+# mgmtdocs
+#
+
+ALL_OTHER_TARGETS += mgmtdocs
+
+MGMT_DOCDIR	 := $(JRE_API_DOCSDIR)/management/extension
+MGMT2COREAPI     := ../../$(JDKJRE2COREAPI)
+JVM_MIB_NAME     := JVM-MANAGEMENT-MIB.mib
+JVM_MIB_SRC      := $(CLOSED_SRC)/share/classes/sun/management/snmp/$(JVM_MIB_NAME)
+MGMT_DOCTITLE    := Monitoring and Management Interface for the Java$(TRADEMARK) Platform
+MGMT_WINDOWTITLE := Monitoring and Management Interface for the Java Platform
+MGMT_HEADER      := <strong>Monitoring and Management Interface for the Java Platform</strong>
+MGMT_BOTTOM      := $(call CommonBottom,$(MGMT_FIRST_COPYRIGHT_YEAR))
+MGMT_OVERVIEW    := $(SHARE_SRC)/classes/com/sun/management/mgmt-overview.html
+# MGMT_PKGS is located in NON_CORE_PKGS.gmk
+
+# The index.html, options, and packages files
+MGMT_INDEX_FILE    = $(MGMT_DOCDIR)/index.html
+MGMT_OPTIONS_FILE  = $(DOCSTMPDIR)/mgmt.options
+MGMT_PACKAGES_FILE = $(DOCSTMPDIR)/mgmt.packages
+
+mgmtdocs: $(MGMT_INDEX_FILE)
+
+# Set relative location to core api document root
+$(MGMT_INDEX_FILE): GET2DOCSDIR=$(MGMT2COREAPI)/..
+
+# Run javadoc if the index file is out of date or missing
+$(MGMT_INDEX_FILE): $(MGMT_OPTIONS_FILE) $(MGMT_PACKAGES_FILE)
+	$(prep-javadoc)
+	@if [ -f $(JVM_MIB_SRC) ] ; then 				\
+	  $(ECHO) "$(CP) $(JVM_MIB_SRC) $(@D)/.."; 			\
+	  $(CP) $(JVM_MIB_SRC) $(@D)/.. ; 				\
+	else 								\
+	  $(ECHO) "WARNING: File $(JVM_MIB_NAME) not available."; 	\
+	fi
+	$(call JavadocSummary,$(MGMT_OPTIONS_FILE),$(MGMT_PACKAGES_FILE))
+	$(JAVADOC_CMD) $(JAVADOC_VM_MEMORY_FLAGS) -d $(@D) \
+	  @$(MGMT_OPTIONS_FILE) @$(MGMT_PACKAGES_FILE)
+
+# Create file with javadoc options in it
+$(MGMT_OPTIONS_FILE): $(MGMT_OVERVIEW)
+	$(prep-target)
+	@($(call OptionOnly,$(COMMON_JAVADOCFLAGS))			; \
+	  $(call OptionPair,-sourcepath,$(RELEASEDOCS_SOURCEPATH))	; \
+	  $(call OptionPair,-encoding,ascii)				; \
+	  $(call OptionOnly,-nodeprecatedlist)				; \
+	  $(call OptionPair,-overview,$(MGMT_OVERVIEW))			; \
+	  $(call OptionPair,-doctitle,$(MGMT_DOCTITLE))			; \
+	  $(call OptionPair,-windowtitle,$(MGMT_WINDOWTITLE) $(DRAFT_WINTITLE)); \
+	  $(call OptionPair,-header,$(MGMT_HEADER)$(DRAFT_HEADER))	; \
+	  $(call OptionPair,-bottom,$(MGMT_BOTTOM)$(DRAFT_BOTTOM))	; \
+	  $(call OptionTrip,-linkoffline,$(MGMT2COREAPI),$(COREAPI_DOCSDIR)/); \
+        ) >> $@
+
+# Create a file with the package names in it
+$(MGMT_PACKAGES_FILE): $(DIRECTORY_CACHE) $(call PackageDependencies,$(MGMT_PKGS))
+	$(prep-target)
+	$(call PackageFilter,$(MGMT_PKGS))
+
+#############################################################
+#
+# attachdocs
+#
+
+ALL_OTHER_TARGETS += attachdocs
+
+ATTACH_DOCDIR      := $(JDK_API_DOCSDIR)/attach/spec
+ATTACH2COREAPI     := ../../$(JDKJRE2COREAPI)
+ATTACH_DOCTITLE    := Attach API
+ATTACH_WINDOWTITLE := Attach API
+ATTACH_HEADER      := <strong>Attach API</strong>
+ATTACH_BOTTOM      := $(call CommonBottom,$(ATTACH_FIRST_COPYRIGHT_YEAR))
+# ATTACH_PKGS is located in NON_CORE_PKGS.gmk
+
+ATTACH_INDEX_HTML    = $(ATTACH_DOCDIR)/index.html
+ATTACH_OPTIONS_FILE  = $(DOCSTMPDIR)/attach.options
+ATTACH_PACKAGES_FILE = $(DOCSTMPDIR)/attach.packages
+
+attachdocs: $(ATTACH_INDEX_HTML)
+
+# Set relative location to core api document root
+$(ATTACH_INDEX_HTML): GET2DOCSDIR=$(ATTACH2COREAPI)/..
+
+# Run javadoc if the index file is out of date or missing
+$(ATTACH_INDEX_HTML): $(ATTACH_OPTIONS_FILE) $(ATTACH_PACKAGES_FILE)
+	$(prep-javadoc)
+	$(call JavadocSummary,$(ATTACH_OPTIONS_FILE),$(ATTACH_PACKAGES_FILE))
+	$(JAVADOC_CMD) $(JAVADOC_VM_MEMORY_FLAGS) -d $(@D) \
+	  @$(ATTACH_OPTIONS_FILE) @$(ATTACH_PACKAGES_FILE)
+
+# Create file with javadoc options in it
+$(ATTACH_OPTIONS_FILE):
+	$(prep-target)
+	@($(call OptionOnly,$(COMMON_JAVADOCFLAGS))			; \
+	  $(call OptionPair,-sourcepath,$(RELEASEDOCS_SOURCEPATH))	; \
+	  $(call OptionPair,-encoding,ascii)				; \
+	  $(call OptionOnly,-nodeprecatedlist)				; \
+	  $(call OptionPair,-doctitle,$(ATTACH_DOCTITLE))		; \
+	  $(call OptionPair,-windowtitle,$(ATTACH_WINDOWTITLE) $(DRAFT_WINTITLE));\
+	  $(call OptionPair,-header,$(ATTACH_HEADER)$(DRAFT_HEADER))	; \
+	  $(call OptionPair,-bottom,$(ATTACH_BOTTOM)$(DRAFT_BOTTOM))	; \
+	  $(call OptionTrip,-linkoffline,$(ATTACH2COREAPI),$(COREAPI_DOCSDIR)/); \
+        ) >> $@
+
+# Create a file with the package names in it
+$(ATTACH_PACKAGES_FILE): $(DIRECTORY_CACHE) $(call PackageDependencies,$(ATTACH_PKGS))
+	$(prep-target)
+	$(call PackageFilter,$(ATTACH_PKGS))
+
+#############################################################
+#
+# jconsoledocs
+#
+
+ALL_OTHER_TARGETS += jconsoledocs
+
+JCONSOLE_DOCDIR      := $(JDK_API_DOCSDIR)/jconsole/spec
+JCONSOLE2COREAPI     := ../../$(JDKJRE2COREAPI)
+JCONSOLE_DOCTITLE    := JConsole API
+JCONSOLE_WINDOWTITLE := JConsole API
+JCONSOLE_HEADER      := <strong>JConsole API</strong>
+JCONSOLE_BOTTOM      := $(call CommonBottom,$(JCONSOLE_FIRST_COPYRIGHT_YEAR))
+# JCONSOLE_PKGS is located in NON_CORE_PKGS.gmk
+
+JCONSOLE_INDEX_HTML    = $(JCONSOLE_DOCDIR)/index.html
+JCONSOLE_OPTIONS_FILE  = $(DOCSTMPDIR)/jconsole.options
+JCONSOLE_PACKAGES_FILE = $(DOCSTMPDIR)/jconsole.packages
+
+jconsoledocs: $(JCONSOLE_INDEX_HTML)
+
+# Set relative location to core api document root
+$(JCONSOLE_INDEX_HTML): GET2DOCSDIR=$(JCONSOLE2COREAPI)/..
+
+# Run javadoc if the index file is out of date or missing
+$(JCONSOLE_INDEX_HTML): $(JCONSOLE_OPTIONS_FILE) $(JCONSOLE_PACKAGES_FILE)
+	$(prep-javadoc)
+	$(call JavadocSummary,$(JCONSOLE_OPTIONS_FILE),$(JCONSOLE_PACKAGES_FILE))
+	$(JAVADOC_CMD) $(JAVADOC_VM_MEMORY_FLAGS) -d $(@D) \
+	  @$(JCONSOLE_OPTIONS_FILE) @$(JCONSOLE_PACKAGES_FILE)
+
+# Create file with javadoc options in it
+$(JCONSOLE_OPTIONS_FILE):
+	$(prep-target)
+	@($(call OptionOnly,$(COMMON_JAVADOCFLAGS))			; \
+	  $(call OptionPair,-sourcepath,$(RELEASEDOCS_SOURCEPATH))	; \
+	  $(call OptionPair,-encoding,ascii)				; \
+	  $(call OptionOnly,-nodeprecatedlist)				; \
+	  $(call OptionPair,-doctitle,$(JCONSOLE_DOCTITLE))		; \
+	  $(call OptionPair,-windowtitle,$(JCONSOLE_WINDOWTITLE) $(DRAFT_WINTITLE));\
+	  $(call OptionPair,-header,$(JCONSOLE_HEADER)$(DRAFT_HEADER))	; \
+	  $(call OptionPair,-bottom,$(JCONSOLE_BOTTOM)$(DRAFT_BOTTOM))	; \
+	  $(call OptionTrip,-linkoffline,$(JCONSOLE2COREAPI),$(COREAPI_DOCSDIR)/); \
+        ) >> $@
+
+# Create a file with the package names in it
+$(JCONSOLE_PACKAGES_FILE): $(DIRECTORY_CACHE) $(call PackageDependencies,$(JCONSOLE_PKGS))
+	$(prep-target)
+	$(call PackageFilter,$(JCONSOLE_PKGS))
+
+#############################################################
+#
+# treeapidocs
+#
+
+# Part of langtools
+ifdef LANGTOOLS_DIST
+  ALL_OTHER_TARGETS += treeapidocs
+endif
+
+TREEAPI_DOCDIR       := $(JDK_API_DOCSDIR)/javac/tree
+TREEAPI2COREAPI      := ../../$(JDKJRE2COREAPI)
+TREEAPI_DOCTITLE     := Compiler Tree API
+TREEAPI_WINDOWTITLE  := Compiler Tree API
+TREEAPI_HEADER       := <strong>Compiler Tree API</strong>
+TREEAPI_BOTTOM       := $(call CommonBottom,$(TREEAPI_FIRST_COPYRIGHT_YEAR))
+TREEAPI_GROUPNAME    := Packages
+TREEAPI_REGEXP       := com.sun.source.*
+# TREEAPI_PKGS is located in NON_CORE_PKGS.gmk
+
+TREEAPI_INDEX_HTML    = $(TREEAPI_DOCDIR)/index.html
+TREEAPI_OPTIONS_FILE  = $(DOCSTMPDIR)/treeapi.options
+TREEAPI_PACKAGES_FILE = $(DOCSTMPDIR)/treeapi.packages
+
+treeapidocs: $(TREEAPI_INDEX_HTML)
+
+# Set relative location to core api document root
+$(TREEAPI_INDEX_HTML): GET2DOCSDIR=$(TREEAPI2COREAPI)/..
+
+# Run javadoc if the index file is out of date or missing
+$(TREEAPI_INDEX_HTML): $(TREEAPI_OPTIONS_FILE) $(TREEAPI_PACKAGES_FILE)
+	$(prep-javadoc)
+	$(call JavadocSummary,$(TREEAPI_OPTIONS_FILE),$(TREEAPI_PACKAGES_FILE))
+	$(JAVADOC_CMD) $(JAVADOC_VM_MEMORY_FLAGS) -d $(@D) \
+	  @$(TREEAPI_OPTIONS_FILE) @$(TREEAPI_PACKAGES_FILE)
+
+# Create file with javadoc options in it
+$(TREEAPI_OPTIONS_FILE):
+	$(prep-target)
+	@($(call OptionOnly,$(COMMON_JAVADOCFLAGS))			; \
+	  $(call OptionPair,-sourcepath,$(RELEASEDOCS_SOURCEPATH))	; \
+	  $(call OptionPair,-encoding,ascii)				; \
+	  $(call OptionPair,-doctitle,$(TREEAPI_DOCTITLE))		; \
+	  $(call OptionPair,-windowtitle,$(TREEAPI_WINDOWTITLE) $(DRAFT_WINTITLE));\
+	  $(call OptionPair,-header,$(TREEAPI_HEADER)$(DRAFT_HEADER))	; \
+          $(call OptionPair,-tag,$(TAG_JLS)) 				; \
+	  $(call OptionPair,-bottom,$(TREEAPI_BOTTOM)$(DRAFT_BOTTOM))	; \
+	  $(call OptionTrip,-group,$(TREEAPI_GROUPNAME),$(TREEAPI_REGEXP)); \
+	  $(call OptionTrip,-linkoffline,$(TREEAPI2COREAPI),$(COREAPI_DOCSDIR)/); \
+        ) >> $@
+
+# Create a file with the package names in it
+$(TREEAPI_PACKAGES_FILE): $(DIRECTORY_CACHE) $(call PackageDependencies,$(TREEAPI_PKGS))
+	$(prep-target)
+	$(call PackageFilter,$(TREEAPI_PKGS))
+
+#############################################################
+#
+# sctpdocs
+#
+
+ALL_OTHER_TARGETS += sctpdocs
+
+SCTPAPI_DOCDIR      := $(JRE_API_DOCSDIR)/nio/sctp/spec
+SCTPAPI2COREAPI     := ../../../$(JDKJRE2COREAPI)
+SCTPAPI_DOCTITLE    := SCTP API
+SCTPAPI_WINDOWTITLE := SCTP API
+SCTPAPI_HEADER      := <strong>SCTP API</strong>
+SCTPAPI_BOTTOM      := $(call CommonBottom,$(SCTPAPI_FIRST_COPYRIGHT_YEAR))
+# SCTPAPI_PKGS is located in NON_CORE_PKGS.gmk
+
+SCTPAPI_INDEX_HTML    = $(SCTPAPI_DOCDIR)/index.html
+SCTPAPI_OPTIONS_FILE  = $(DOCSTMPDIR)/sctp.options
+SCTPAPI_PACKAGES_FILE = $(DOCSTMPDIR)/sctp.packages
+
+sctpdocs: $(SCTPAPI_INDEX_HTML)
+
+# Set relative location to core api document root
+$(SCTSCTSCTP: GET2DOCSDIR=$(SCTPAPI2COREAPI)/..
+
+# Run javadoc if the index file is out of date or missing
+$(SCTPAPI_INDEX_HTML): $(SCTPAPI_OPTIONS_FILE) $(SCTPAPI_PACKAGES_FILE)
+	$(prep-javadoc)
+	$(call JavadocSummary,$(SCTPAPI_OPTIONS_FILE),$(SCTPAPI_PACKAGES_FILE))
+	$(JAVADOC_CMD) $(JAVADOC_VM_MEMORY_FLAGS) -d $(@D) \
+	  @$(SCTPAPI_OPTIONS_FILE) @$(SCTPAPI_PACKAGES_FILE)
+
+# Create file with javadoc options in it
+$(SCTPAPI_OPTIONS_FILE):
+	$(prep-target)
+	@($(call OptionOnly,$(COMMON_JAVADOCFLAGS))			; \
+	  $(call OptionPair,-sourcepath,$(RELEASEDOCS_SOURCEPATH))	; \
+	  $(call OptionPair,-encoding,ascii)				; \
+	  $(call OptionOnly,-nodeprecatedlist)				; \
+	  $(call OptionPair,-doctitle,$(SCTPAPI_DOCTITLE))		; \
+	  $(call OptionPair,-windowtitle,$(SCTPAPI_WINDOWTITLE) $(DRAFT_WINTITLE));\
+	  $(call OptionPair,-header,$(SCTPAPI_HEADER)$(DRAFT_HEADER))	; \
+	  $(call OptionPair,-bottom,$(SCTPAPI_BOTTOM)$(DRAFT_BOTTOM))	; \
+	  $(call OptionTrip,-linkoffline,$(SCTPAPI2COREAPI),$(COREAPI_DOCSDIR)/); \
+        ) >> $@
+
+# Create a file with the package names in it
+$(SCTPAPI_PACKAGES_FILE): $(DIRECTORY_CACHE) $(call PackageDependencies,$(SCTPAPI_PKGS))
+	$(prep-target)
+	$(call PackageFilter,$(SCTPAPI_PKGS))
+
+#############################################################
+#
+# Get a cache of all the directories
+
+$(DIRECTORY_CACHE): $(ALL_EXISTING_SOURCE_DIRS)
+	$(prep-target)
+	@for cp in $(ALL_EXISTING_SOURCE_DIRS) ; do 	\
+	  $(ECHO) "$(FIND) $${cp} -type f >> $@"; 	\
+	  $(FIND) $${cp} -type f >> $@; 		\
+	done
+
+#############################################################
+#release version of core packages ########
+# Maximize performance and ensure that build number & milestone are set.
+
+rel-coredocs: sanitycheckcoredocs
+	$(MAKE) coredocs
+
+rel-docs: rel-coredocs $(ALL_OTHER_TARGETS)
+#
+# end of production targets
+
+otherdocs: $(ALL_OTHER_TARGETS)
+
+clean:
+	$(RM) -r $(DOCSDIR) $(DOCSTMPDIR)
+
+#############################################################
+# DEBUG TARGET
+# List the values defined in the makefile hierarchy, to make sure everything
+# is set properly, and to help identify values we can use instead of making new ones.
+# (Most of them come from common/shared/Defs.gmk)
+#
+#  Notes:
+#    * BUILD_NUMBER defaults to b00 if not set on command line with BUILD_NUMBER=<value>
+#    * MILESTONE defaults to internal unless set to beta, rc, or fcs on command line
+#
+
+echovalues:
+	@$(ECHO) ""
+	@$(ECHO) --------------Imports---------------------------
+	@$(ECHO) "IMPORT_PACKAGES = $(IMPORT_PACKAGES)"
+	@$(ECHO) "IMPORT_PACKAGE_FILTER = $(IMPORT_PACKAGE_FILTER)"
+	@$(ECHO) --------------Imports---------------------------
+	@$(ECHO) ""
+	@$(ECHO) --------------Shared---------------------------
+	@$(ECHO) BUILD_NUMBER = $(BUILD_NUMBER)
+	@$(ECHO) FULL_VERSION = $(FULL_VERSION)
+	@$(ECHO) JDK_VERSION = $(JDK_VERSION)
+	@$(ECHO) JDK_MAJOR_VERSION = $(JDK_MAJOR_VERSION)
+	@$(ECHO) JDK_MINOR_VERSION = $(JDK_MINOR_VERSION)
+	@$(ECHO) JDK_MICRO_VERSION = $(JDK_MICRO_VERSION)
+	@$(ECHO) JDK_UPDATE_VERSION = $(JDK_UPDATE_VERSION)
+	@$(ECHO) JDK_MKTG_VERSION = $(JDK_MKTG_VERSION)
+	@$(ECHO) JDK_UNDERSCORE_VERSION = $(JDK_UNDERSCORE_VERSION)
+	@$(ECHO) JDK_MKTG_UNDERSCORE_VERSION = $(JDK_MKTG_UNDERSCORE_VERSION)
+	@$(ECHO) MARKETING_NUMBER = $(MARKETING_NUMBER)
+	@$(ECHO) MARKET_NAME = $(MARKET_NAME)
+	@$(ECHO) MILESTONE = $(MILESTONE)
+	@$(ECHO) RELEASE = $(RELEASE)
+	@$(ECHO) USER_RELEASE_SUFFIX = $(USER_RELEASE_SUFFIX)
+	@$(ECHO) --------------Shared---------------------------
+	@$(ECHO) ""
+	@$(ECHO) --------------common/Defs---------------------------
+	@$(ECHO) "RELEASEDOCS_SOURCEPATH"
+	@$(ECHO) "   SHARE_SRC/classes: $(SHARE_SRC)/classes"
+	@$(ECHO) "   PLATFORM_SRC/classes: $(PLATFORM_SRC)/classes"
+	@$(ECHO) "   GENSRCDIR: $(GENSRCDIR)"
+	@$(ECHO) "   SHARE_SRC/doc/stub: $(SHARE_SRC)/doc/stub"
+	@$(ECHO) "   IMPORTSRCDIR: $(IMPORTSRCDIR)"
+	@$(ECHO) --------------common/Defs---------------------------
+	@$(ECHO) ""
+
+#############################################################
+.PHONY: all docs coredocs rel-docs echovalues otherdocs rel-coredocs \
+        sanitycheckcoredocs $(ALL_OTHER_TARGETS)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/docs/NON_CORE_PKGS.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,104 @@
+#
+# Copyright (c) 2002, 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.
+#
+
+#
+# This file contains the package names of all the "non-core" 
+# API published in the Java 2 SDK documentation.  "Non-core" means
+# it includes all published API outside of the JDK API specification.
+#
+# These environment variables are used by javadoc in 
+# make/docs/Makefile and are referenced by the localization
+# team when determining which APIs to extract javadoc
+# comments from.
+
+DOMAPI_PKGS      = com.sun.java.browser.dom   \
+                   org.w3c.dom                \
+                   org.w3c.dom.bootstrap      \
+                   org.w3c.dom.ls             \
+                   org.w3c.dom.ranges         \
+                   org.w3c.dom.traversal      \
+                   org.w3c.dom.html           \
+                   org.w3c.dom.stylesheets    \
+                   org.w3c.dom.css            \
+                   org.w3c.dom.events         \
+                   org.w3c.dom.views
+
+JDI_PKGS         = com.sun.jdi                \
+                   com.sun.jdi.event          \
+                   com.sun.jdi.request        \
+                   com.sun.jdi.connect        \
+                   com.sun.jdi.connect.spi
+
+MGMT_PKGS        = com.sun.management
+
+JAAS_PKGS        = com.sun.security.auth          \
+                   com.sun.security.auth.callback \
+                   com.sun.security.auth.login    \
+                   com.sun.security.auth.module
+
+JGSS_PKGS        = com.sun.security.jgss
+
+OLD_JSSE_PKGS    = com.sun.net.ssl
+
+HTTPSERVER_PKGS  = com.sun.net.httpserver       \
+                   com.sun.net.httpserver.spi 
+
+NIO_PKGS         = com.sun.nio.file
+
+DOCLETAPI_PKGS   = com.sun.javadoc
+
+TAGLETAPI_FILE   = com/sun/tools/doclets/Taglet.java
+
+ATTACH_PKGS      = com.sun.tools.attach         \
+                   com.sun.tools.attach.spi
+
+JCONSOLE_PKGS    = com.sun.tools.jconsole
+
+TREEAPI_PKGS 	 = com.sun.source.tree \
+		   com.sun.source.util
+
+SMARTCARDIO_PKGS = javax.smartcardio
+
+SCTPAPI_PKGS     = com.sun.nio.sctp
+
+ifeq ($(PLATFORM), macosx)
+APPLE_EXT_PKGS   = com.apple.concurrent   \
+                   com.apple.eawt         \
+                   com.apple.eawt.event   \
+                   com.apple.eio
+endif
+
+# non-core packages in rt.jar
+NON_CORE_PKGS    = $(DOMAPI_PKGS) \
+                   $(MGMT_PKGS) \
+                   $(JAAS_PKGS) \
+                   $(JGSS_PKGS) \
+                   $(NIO_PKGS) \
+                   $(OLD_JSSE_PKGS) \
+                   $(HTTPSERVER_PKGS) \
+                   $(SMARTCARDIO_PKGS) \
+                   $(SCTPAPI_PKGS) \
+                   $(APPLE_EXT_PKGS)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/docs/Notes.html	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,49 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<title>Doc Process Notes</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+
+<body>
+<h3><a name="REGEXP"></a><br>
+REGEXP</h3>
+<p> REGEXP is a list of wildcard patterns that determines which packages listed 
+  in CORE_PKGS.gmk go into which summary-table on the main API index page. It 
+  was motivated by the need to divide the world into &quot;core packages&quot; 
+  (java.*) and &quot;extension packages&quot; (javax.*). In time, the distinction 
+  went away. The whole table is now called &quot;Platform Packages&quot;--which 
+  eliminated the need for this list of regular expressions. But it lingered on, 
+  accreting all of the packages in the JVM, one by one. I pruned it back to &quot;*&quot;, 
+  so it now covers every package in the Java platform API docs. If some separation 
+  is needed in the future, it can grow back into a colon-separated list, starting 
+  with this, which is in all respects equivalent to &quot;*&quot; at this point 
+  in time:</p>
+<blockquote> 
+  <pre>REGEXP = &quot;java.*:javax.*:org.ietf*:org.omg.</pre>
+</blockquote>
+<h3><a name="releaseTargets"></a><br>
+  Release Targets</h3>
+<p> (Thanks to Kelly O'Hair for this info.)</p>
+<p> The <tt>rel-coredocs</tt> and <tt>rel-docs</tt> targets were added by Eric 
+  Armstrong. <tt>rel-coredocs</tt> assumes the kind of large, 32-bit machine used 
+  in the javapubs group's docs-release process. It specifies memory settings accordingly 
+  to maximize performance.</p>
+<p> The performance settings, like the sanity check, are most important for the 
+  core docs--the platform APIs. Running javadoc on those APIs takes a significant 
+  amount of time and memory. Setting the initial heap size as large as possible 
+  is important to prevent thrashing as the heap grows. Setting the maximum as 
+  large as necessary is also important to keep the job from failing.</p>
+<blockquote>
+  <p> <tt>-J-Xmx512</tt> sets a maximum of 512, which became necessary in 6.0<br>
+    <tt>-J-Xms256</tt> sets starting size to 256 (default is 8)</p>
+</blockquote>
+<p> <tt>rel-coredocs</tt> also includes a sanity check to help ensure that <tt>BUILD_NUMBER</tt> 
+  and <tt>MILESTONE</tt> are specified properly when docs are built outside of 
+  the normal release engineering process, with the intention of releasing them 
+  on the web or in a downloaded docs bundle. (When invoked in release engineering's 
+  control build, the values are always set properly. But when the targets are 
+  run by themselves, they default to b00 and &quot;internal&quot;--which silently 
+  sabotage the result of a build that can take many hours to complete.</p>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,69 @@
+#
+# Copyright (c) 1995, 2011, 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.
+#
+
+#
+# Makefile for building all of java
+#
+
+PRODUCT=java
+BUILDDIR=..
+include $(BUILDDIR)/common/Defs.gmk
+
+#
+# The order of subdirs here is important
+#
+SUBDIRS += jvm redist verify fdlibm java sun_nio jli main
+
+# Others
+#    Note: java_crw_demo java_hprof_demo are demos but must be delivered built in sdk
+
+SUBDIRS += security util net nio
+
+SUBDIRS_management = management
+SUBDIRS_misc       = npt java_crw_demo java_hprof_demo \
+                     instrument 
+#TODO Check invoke
+#                     logging instrument invoke sql rmi
+
+
+ifeq ($(PLATFORM), solaris)
+  ifeq ($(ARCH_DATA_MODEL), 32)
+    SUBDIRS += jexec
+  endif
+endif # PLATFORM
+
+ifeq ($(PLATFORM), linux)
+  SUBDIRS += jexec
+endif # PLATFORM
+
+ifeq ($(PLATFORM), macosx)
+  SUBDIRS += jobjc
+endif # PLATFORM
+
+include $(BUILDDIR)/common/Subdirs.gmk
+
+all build clean clobber::
+	$(SUBDIRS-loop)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/fdlibm/FILES_c.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,88 @@
+#
+# Copyright (c) 1998, 2002, 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.
+#
+
+FILES_c = \
+	k_standard.c \
+	k_rem_pio2.c \
+	k_cos.c \
+	k_sin.c \
+	k_tan.c \
+	e_acos.c \
+	e_asin.c \
+	e_atan2.c \
+	e_atanh.c \
+	e_cosh.c \
+	e_exp.c \
+	e_fmod.c \
+	e_hypot.c \
+	e_log.c \
+	e_log10.c \
+	e_pow.c \
+	e_rem_pio2.c \
+	e_remainder.c \
+	e_scalb.c \
+	e_sinh.c \
+	e_sqrt.c \
+	w_acos.c \
+	w_asin.c \
+	w_atan2.c \
+	w_atanh.c \
+	w_cosh.c \
+	w_exp.c \
+	w_fmod.c \
+	w_hypot.c \
+	w_log.c \
+	w_log10.c \
+	w_pow.c \
+	w_remainder.c \
+	w_scalb.c \
+	w_sinh.c \
+	w_sqrt.c \
+	s_atan.c \
+	s_cbrt.c \
+	s_ceil.c \
+	s_copysign.c \
+	s_cos.c \
+	s_expm1.c \
+	s_fabs.c \
+	s_finite.c \
+	s_floor.c \
+	s_frexp.c \
+	s_ilogb.c \
+	s_isnan.c \
+	s_ldexp.c \
+	s_lib_version.c \
+	s_log1p.c \
+	s_logb.c \
+	s_matherr.c \
+	s_modf.c \
+	s_nextafter.c \
+	s_rint.c \
+	s_scalbn.c \
+	s_signgam.c \
+	s_significand.c \
+	s_sin.c \
+	s_tan.c \
+	s_tanh.c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/fdlibm/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,93 @@
+#
+# Copyright (c) 1998, 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.
+#
+
+#
+# Makefile for fdlibm
+#
+# Note:
+# The fdlibm libraries are built using special rules in Library.gmk.
+#
+
+BUILDDIR     = ../..
+LIBRARY      = fdlibm
+PRODUCT      = java
+
+include $(BUILDDIR)/common/Defs.gmk
+
+#
+# Where is fdlibm in the source tree?
+#
+FDLIBM_SRC = $(SHARE_SRC)/native/java/lang/fdlibm
+
+# Windows: compiler flags
+ifeq ($(PLATFORM),windows)
+  # Turn all optimizations off
+  OPTIMIZATION_LEVEL = NONE
+  FASTDEBUG_OPTIMIZATION_LEVEL = NONE
+  OTHER_CFLAGS =
+  CPPFLAGS_DBG += -DLOGGING
+endif
+
+#
+# Linux: Disable optimization to get correctly reproducible
+# floating-point results.
+#
+ifeq ($(PLATFORM),linux)
+  # Turn all optimizations off
+  OPTIMIZATION_LEVEL = NONE
+  FASTDEBUG_OPTIMIZATION_LEVEL = NONE
+endif
+
+ifeq ($(PLATFORM),macosx)
+  # Turn all optimizations off
+  OPTIMIZATION_LEVEL = NONE
+  FASTDEBUG_OPTIMIZATION_LEVEL = NONE
+endif
+
+#
+# Include path.
+#
+OTHER_INCLUDES = -I$(FDLIBM_SRC)/include
+
+#
+# Things that must be linked in.
+#
+OTHER_LDLIBS =
+
+#
+# Files to compile.
+#
+include FILES_c.gmk
+
+#
+# Rules for the .a file.
+#
+include $(BUILDDIR)/common/Library.gmk
+
+#
+# Find fdlibm source files.
+#
+vpath %.c
+vpath %.c $(FDLIBM_SRC)/src
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/instrument/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,149 @@
+#
+# Copyright (c) 2003, 2011, 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.
+#
+
+# Makefile for building the Java Programming Language Instrumentation Services
+# agent, supporting java.lang.instrument
+
+BUILDDIR = ../..
+PACKAGE = sun.instrument
+LIBRARY = instrument
+PRODUCT = sun
+
+# Configure the CFLAGS for this library.  Use static binding so that there
+# are not dependencies on modules not on the search patch when invoked from
+# the Windows system directory (or elsewhere).
+MS_RUNTIME_STATIC=true
+
+FILES_m = mapfile-vers
+
+JAVAC_MAX_WARNINGS = true
+JAVAC_WARNINGS_FATAL = true
+
+include $(BUILDDIR)/common/Defs.gmk
+
+# Use the mapfile-vers (See the mapfile located with this Makefile)
+ifdef FILES_m
+include $(BUILDDIR)/common/Mapfile-vers.gmk
+endif
+
+#
+# Files to compile.
+#
+FILES_c = \
+	EncodingSupport.c \
+	EncodingSupport_md.c \
+	FileSystemSupport_md.c \
+	InstrumentationImplNativeMethods.c \
+	InvocationAdapter.c \
+	JarFacade.c \
+	JPLISAgent.c \
+	JPLISAssert.c \
+	JavaExceptions.c \
+	PathCharsValidator.c \
+	Reentrancy.c \
+	Utilities.c
+
+#
+# -jaragent support requires zip and jar manfiest parser to be compiled
+# into the instrument library.
+#
+IO_PLATFORM_SRC = $(PLATFORM_SRC)/native/java/io
+LAUNCHER_SHARE_SRC = $(SHARE_SRC)/bin
+LAUNCHER_PLATFORM_SRC = $(PLATFORM_SRC)/bin
+
+FILES_c += \
+	canonicalize_md.c
+
+FILES_export = \
+	sun/instrument/InstrumentationImpl.java
+
+#
+# This controls the ability to do logging in the library.
+#
+CPPFLAGS_DBG += -DJPLIS_LOGGING
+CPPFLAGS_OPT += -DNO_JPLIS_LOGGING
+
+OTHER_INCLUDES = -I$(SHARE_SRC)/instrument
+OTHER_INCLUDES += -I$(PLATFORM_SRC)/instrument
+OTHER_INCLUDES += -I$(IO_PLATFORM_SRC)
+OTHER_INCLUDES += -I$(LAUNCHER_SHARE_SRC) -I$(LAUNCHER_PLATFORM_SRC)
+
+#
+# Create a dependency on libjli (Java Launcher Infrastructure)
+#
+# On UNIX, this is a relative dependency using $ORIGIN. Unfortunately, to
+# do this reliably on Linux takes a different syntax than Solaris.
+#
+# On Windows, this is done by using the same directory as the executable
+# itself, as with all the Windows libraries.
+#
+ifeq ($(PLATFORM), windows)
+  OTHER_LDLIBS += $(OUTPUTDIR)/tmp/java/jli/$(OBJDIRNAME)/static/jli.lib
+  OTHER_LCF += -export:Agent_OnAttach
+  # equivalent of strcasecmp is stricmp on Windows
+  CPPFLAGS_COMMON += -Dstrcasecmp=stricmp
+else
+ifneq (,$(findstring $(PLATFORM), macosx))
+  ifneq ($(ARCH), universal)
+    LDFLAGS += -Wl,-all_load
+  endif
+  LDFLAGS += $(OUTPUTDIR)/tmp/java/jli/$(OBJDIRNAME)/static/libjli.a
+  OTHER_LDLIBS += -liconv
+  ifeq ($(SYSTEM_ZLIB), true)
+    OTHER_LDLIBS += -lz
+  endif
+else
+  LDFLAGS += -L $(LIBDIR)/$(LIBARCH)/jli
+  OTHER_LDLIBS += -ljli
+  OTHER_LDLIBS += -ldl 
+  ifeq ($(PLATFORM), solaris)
+    LDFLAGS += -R \$$ORIGIN/jli
+  endif
+  ifeq ($(PLATFORM), linux)
+    LDFLAGS += $(LDFLAG_Z_ORIGIN)
+    LDFLAGS += -Wl,--allow-shlib-undefined
+    LDFLAGS += -Wl,-rpath -Wl,\$$ORIGIN/jli
+  endif
+endif
+endif
+
+ifeq ($(PLATFORM), macosx)
+  LDFLAGS += -framework Cocoa -framework Security -framework ApplicationServices
+endif
+
+#
+# Library to compile.
+#
+include $(BUILDDIR)/common/Library.gmk
+
+# We don't want to link against -ljava
+JAVALIB=
+
+#
+# Add to ambient vpath so we pick up the library files
+#
+vpath %.c $(SHARE_SRC)/instrument $(PLATFORM_SRC)/instrument
+vpath %.c $(IO_PLATFORM_SRC)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/instrument/mapfile-vers	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,44 @@
+#
+# Copyright (c) 2003, 2005, 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.
+#
+
+# Define public interface.
+
+SUNWprivate_1.1 {
+	global:
+	    Agent_OnLoad;
+	    Agent_OnAttach;
+            Java_sun_instrument_InstrumentationImpl_isModifiableClass0;
+            Java_sun_instrument_InstrumentationImpl_isRetransformClassesSupported0;
+            Java_sun_instrument_InstrumentationImpl_setHasRetransformableTransformers;
+            Java_sun_instrument_InstrumentationImpl_retransformClasses0;
+            Java_sun_instrument_InstrumentationImpl_getAllLoadedClasses0;
+            Java_sun_instrument_InstrumentationImpl_getInitiatedClasses0;
+            Java_sun_instrument_InstrumentationImpl_redefineClasses0;
+            Java_sun_instrument_InstrumentationImpl_getObjectSize0;
+	    Java_sun_instrument_InstrumentationImpl_appendToClassLoaderSearch0;
+	    Java_sun_instrument_InstrumentationImpl_setNativeMethodPrefixes;
+	local:
+		*;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/invoke/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,42 @@
+#
+# Copyright (c) 2008, 2011, 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.
+#
+
+BUILDDIR = ../..
+
+PACKAGE = java.lang.invoke
+PRODUCT = java
+include $(BUILDDIR)/common/Defs.gmk
+
+AUTO_FILES_JAVA_DIRS = java/lang/invoke sun/invoke
+FILES_java = \
+    java/lang/ClassValue.java \
+    java/lang/BootstrapMethodError.java
+
+# The sources built here use new language syntax to generate
+# method handle calls.  Let's be sure we are using that format.
+LANGUAGE_VERSION = -source 7
+CLASS_VERSION = -target 7
+
+include $(BUILDDIR)/common/Classes.gmk
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/java/Exportedfiles.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,178 @@
+#
+# Copyright (c) 1997, 2006, 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.
+#
+
+#
+# These are the names of JAVA classes for which we will make .h files.
+#
+ifneq ($(PLATFORM), windows)
+FILES_export = \
+    java/lang/Object.java \
+    java/lang/Class.java \
+    java/lang/Compiler.java \
+    java/lang/String.java \
+    java/lang/Thread.java \
+    java/lang/ThreadGroup.java \
+    java/lang/StrictMath.java \
+    java/lang/Number.java \
+    java/lang/Byte.java \
+    java/lang/Short.java \
+    java/lang/Integer.java \
+    java/lang/Long.java \
+    java/lang/Float.java \
+    java/lang/Double.java \
+    java/lang/Boolean.java \
+    java/lang/Character.java \
+    java/lang/System.java \
+    java/lang/ClassLoader.java \
+    java/lang/Runtime.java \
+    java/lang/SecurityManager.java \
+    java/lang/Shutdown.java \
+    java/lang/Package.java \
+    java/lang/ref/Finalizer.java \
+    java/lang/reflect/AccessibleObject.java \
+    java/lang/reflect/Field.java \
+    java/lang/reflect/Method.java \
+    java/lang/reflect/Constructor.java \
+    java/lang/reflect/InvocationTargetException.java \
+    java/lang/reflect/Array.java \
+    java/lang/reflect/Proxy.java \
+    java/security/AccessController.java \
+    java/util/Date.java \
+    java/util/TimeZone.java \
+    java/util/ResourceBundle.java \
+    java/util/concurrent/atomic/AtomicLong.java \
+    java/util/prefs/FileSystemPreferences.java \
+    java/io/Console.java \
+    java/io/FileDescriptor.java \
+    java/io/InputStream.java \
+    java/io/FileInputStream.java \
+    java/io/FileOutputStream.java \
+    java/io/PrintStream.java \
+    java/io/RandomAccessFile.java \
+    java/io/DataInputStream.java \
+    java/io/DataOutputStream.java \
+    java/io/File.java \
+    java/io/FileSystem.java \
+    java/io/UnixFileSystem.java \
+    java/io/ObjectInputStream.java \
+    java/io/ObjectOutputStream.java \
+    java/io/ObjectStreamClass.java \
+    java/lang/Throwable.java \
+    java/lang/NoClassDefFoundError.java \
+    java/lang/StringIndexOutOfBoundsException.java \
+    java/lang/OutOfMemoryError.java \
+    sun/misc/Version.java \
+    sun/misc/VM.java \
+    sun/misc/VMSupport.java \
+    sun/misc/Signal.java \
+    sun/misc/MessageUtils.java \
+    sun/misc/NativeSignalHandler.java \
+    sun/misc/GC.java \
+    sun/reflect/ConstantPool.java \
+    sun/reflect/NativeConstructorAccessorImpl.java \
+    sun/reflect/NativeMethodAccessorImpl.java \
+    sun/reflect/Reflection.java
+
+EXPORTED_inner = \
+    java.lang.ClassLoader$$NativeLibrary
+
+else # PLATFORM
+FILES_export = \
+    java/lang/Object.java \
+    java/lang/Class.java \
+    java/lang/Compiler.java \
+    java/lang/String.java \
+    java/lang/Thread.java \
+    java/lang/ThreadGroup.java \
+    java/lang/StrictMath.java \
+    java/lang/Number.java \
+    java/lang/Byte.java \
+    java/lang/Short.java \
+    java/lang/Integer.java \
+    java/lang/Long.java \
+    java/lang/Float.java \
+    java/lang/Double.java \
+    java/lang/Boolean.java \
+    java/lang/System.java \
+    java/lang/Package.java \
+    java/lang/ClassLoader.java \
+    java/lang/Runtime.java \
+    java/lang/SecurityManager.java \
+    java/lang/Shutdown.java \
+    java/lang/reflect/AccessibleObject.java \
+    java/lang/reflect/Field.java \
+    java/lang/reflect/Method.java \
+    java/lang/reflect/Constructor.java \
+    java/lang/reflect/InvocationTargetException.java \
+    java/lang/reflect/Array.java \
+    java/lang/reflect/Proxy.java \
+    java/lang/ref/Reference.java \
+    java/lang/ref/Finalizer.java \
+    java/util/Date.java \
+    java/util/Properties.java \
+    java/util/ResourceBundle.java \
+    java/util/TimeZone.java \
+    java/util/concurrent/atomic/AtomicLong.java \
+    java/util/prefs/WindowsPreferences.java \
+    java/util/prefs/WindowsPreferencesFactory.java \
+    java/util/logging/FileHandler.java \
+    java/io/Console.java \
+    java/io/FileSystem.java \
+    java/io/FileDescriptor.java \
+    java/io/InputStream.java \
+    java/io/FileInputStream.java \
+    java/io/FileOutputStream.java \
+    java/io/PrintStream.java \
+    java/io/RandomAccessFile.java \
+    java/io/DataInputStream.java \
+    java/io/DataOutputStream.java \
+    java/io/File.java \
+    java/io/ObjectOutputStream.java \
+    java/io/ObjectInputStream.java \
+    java/io/ObjectStreamClass.java \
+    java/lang/Throwable.java \
+    java/lang/NoClassDefFoundError.java \
+    java/lang/StringIndexOutOfBoundsException.java \
+    java/lang/OutOfMemoryError.java \
+    java/lang/ProcessImpl.java \
+    sun/misc/Version.java \
+    sun/misc/VM.java \
+    sun/misc/VMSupport.java \
+    sun/misc/GC.java \
+    sun/misc/Signal.java \
+    sun/misc/NativeSignalHandler.java \
+    sun/misc/MessageUtils.java \
+    java/security/AccessController.java \
+    sun/reflect/ConstantPool.java \
+    sun/reflect/NativeConstructorAccessorImpl.java \
+    sun/reflect/NativeMethodAccessorImpl.java \
+    sun/reflect/Reflection.java \
+    sun/security/provider/NativeSeedGenerator.java \
+    sun/io/Win32ErrorMode.java
+
+EXPORTED_inner = \
+    java.lang.ClassLoader$$NativeLibrary
+
+endif # PLATFORM
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/java/FILES_c.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,82 @@
+#
+# Copyright (c) 1996, 2006, 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.
+#
+
+FILES_c = \
+	AccessController.c \
+	Array.c \
+	String.c \
+	Class.c \
+	ClassLoader.c \
+	Compiler.c \
+	Console_md.c \
+	Double.c \
+	FileSystem_md.c \
+	FileDescriptor_md.c \
+	FileInputStream.c \
+	FileInputStream_md.c \
+	FileOutputStream_md.c \
+	Finalizer.c \
+	Float.c \
+	Object.c \
+	ObjectOutputStream.c \
+	ObjectInputStream.c \
+	ObjectStreamClass.c \
+	Package.c \
+	ProcessEnvironment_md.c \
+	Proxy.c \
+	RandomAccessFile.c \
+	RandomAccessFile_md.c \
+	ResourceBundle.c \
+	Runtime.c \
+	SecurityManager.c \
+	Shutdown.c \
+	StrictMath.c \
+	System.c \
+	Thread.c \
+	Throwable.c \
+	Signal.c \
+	NativeSignalHandler.c \
+	verify_stub.c \
+	io_util.c \
+	io_util_md.c \
+	jio.c \
+	logging.c \
+	jni_util.c \
+	jni_util_md.c \
+	jdk_util.c \
+	jdk_util_md.c \
+	check_version.c \
+	java_props_md.c \
+	DriverManager.c \
+	ConstantPool.c \
+	MessageUtils.c \
+	GC.c \
+	NativeAccessors.c \
+	Reflection.c \
+	Bits.c \
+	AtomicLong.c \
+	Version.c \
+	VM.c \
+	VMSupport.c 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/java/FILES_java.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,489 @@
+#
+# Copyright (c) 1996, 2011, 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.
+#
+
+#
+# This is the list of java classes that will be automatically built
+# from sources.  See Exportedfiles.gmk for the list of files which
+# will generate header files
+#
+JAVA_JAVA_java = \
+    java/lang/Object.java \
+    java/lang/AutoCloseable.java \
+    java/lang/Class.java \
+    java/lang/Thread.java \
+    java/lang/Character.java \
+    java/lang/CharacterData.java \
+    java/lang/CharacterName.java \
+    sun/misc/ASCIICaseInsensitiveComparator.java \
+    sun/misc/VM.java \
+    sun/misc/Signal.java \
+    sun/misc/NativeSignalHandler.java \
+    java/lang/ThreadGroup.java \
+    java/lang/ThreadLocal.java \
+        java/lang/InheritableThreadLocal.java \
+    java/lang/String.java \
+        java/lang/ConditionalSpecialCasing.java \
+        java/lang/StringCoding.java \
+    java/lang/StringBuffer.java \
+    java/lang/StringBuilder.java \
+    java/lang/SuppressWarnings.java \
+    java/lang/AbstractStringBuilder.java \
+    java/lang/ClassLoader.java \
+    java/lang/AssertionStatusDirectives.java \
+    java/lang/Enum.java \
+    java/lang/StrictMath.java \
+    java/lang/Math.java \
+    sun/misc/FloatingDecimal.java \
+    sun/misc/FormattedFloatingDecimal.java \
+    java/lang/Number.java \
+        java/lang/Byte.java \
+        java/lang/Short.java \
+        java/lang/Integer.java \
+        java/lang/Long.java \
+        java/lang/Float.java \
+        java/lang/Double.java \
+    java/lang/Boolean.java \
+    java/lang/Void.java \
+    java/lang/Runnable.java \
+    java/lang/Cloneable.java \
+    java/lang/CharSequence.java \
+    java/lang/SecurityManager.java \
+    java/lang/Runtime.java \
+    java/lang/RuntimePermission.java \
+    java/lang/ApplicationShutdownHooks.java \
+    java/lang/Shutdown.java \
+    java/lang/Terminator.java \
+    java/lang/System.java \
+    java/lang/Compiler.java \
+    java/lang/Throwable.java \
+        java/lang/Exception.java \
+	    java/lang/ReflectiveOperationException.java \
+	    java/lang/IllegalAccessException.java \
+	    java/lang/InstantiationException.java \
+	    java/lang/ClassNotFoundException.java \
+	    java/lang/CloneNotSupportedException.java \
+            java/lang/InterruptedException.java \
+	    java/lang/NoSuchFieldException.java \
+	    java/lang/NoSuchMethodException.java \
+            java/lang/RuntimeException.java \
+                java/lang/ArithmeticException.java \
+	        java/lang/ArrayStoreException.java \
+	        java/lang/ClassCastException.java \
+	        java/lang/IndexOutOfBoundsException.java \
+	            java/lang/ArrayIndexOutOfBoundsException.java \
+	            java/lang/StringIndexOutOfBoundsException.java \
+	        java/lang/NegativeArraySizeException.java \
+	        java/lang/NullPointerException.java \
+                java/lang/IllegalStateException.java \
+                java/lang/IllegalArgumentException.java \
+                    java/lang/NumberFormatException.java \
+                    java/lang/IllegalThreadStateException.java \
+                    java/lang/IllegalMonitorStateException.java \
+                java/lang/SecurityException.java \
+                java/lang/TypeNotPresentException.java \
+                java/lang/EnumConstantNotPresentException.java \
+                java/lang/UnsupportedOperationException.java \
+        java/lang/Error.java \
+            java/lang/AssertionError.java \
+            java/lang/ThreadDeath.java \
+            java/lang/LinkageError.java \
+		java/lang/ClassCircularityError.java \
+		java/lang/ClassFormatError.java \
+		    java/lang/UnsupportedClassVersionError.java \
+		java/lang/ExceptionInInitializerError.java \
+		java/lang/IncompatibleClassChangeError.java \
+		    java/lang/AbstractMethodError.java \
+		    java/lang/IllegalAccessError.java \
+		    java/lang/InstantiationError.java \
+		    java/lang/NoSuchFieldError.java \
+		    java/lang/NoSuchMethodError.java \
+		java/lang/NoClassDefFoundError.java \
+		java/lang/UnsatisfiedLinkError.java \
+		java/lang/VerifyError.java \
+	    java/lang/VirtualMachineError.java \
+		java/lang/InternalError.java \
+		java/lang/OutOfMemoryError.java \
+		java/lang/StackOverflowError.java \
+		java/lang/UnknownError.java \
+    java/lang/StackTraceElement.java \
+    java/lang/Package.java \
+    java/lang/Process.java \
+    java/lang/ProcessBuilder.java \
+    java/lang/ProcessEnvironment.java \
+    java/lang/ProcessImpl.java \
+    java/lang/Appendable.java \
+    java/lang/Comparable.java \
+    java/lang/Readable.java \
+    java/lang/Override.java \
+    java/lang/SafeVarargs.java \
+    java/lang/SuppressWarnings.java \
+    java/lang/ref/Reference.java \
+        java/lang/ref/SoftReference.java \
+	java/lang/ref/WeakReference.java \
+	java/lang/ref/FinalReference.java \
+	java/lang/ref/PhantomReference.java \
+    java/lang/ref/ReferenceQueue.java \
+    java/lang/ref/Finalizer.java \
+    java/util/BitSet.java \
+    java/util/Calendar.java \
+        java/util/GregorianCalendar.java \
+            sun/util/BuddhistCalendar.java \
+        java/util/JapaneseImperialCalendar.java \
+        sun/util/calendar/CalendarDate.java \
+	    sun/util/calendar/ImmutableGregorianDate.java \
+        sun/util/calendar/CalendarSystem.java \
+	sun/util/calendar/Era.java \
+        sun/util/calendar/CalendarUtils.java \
+	sun/util/calendar/AbstractCalendar.java \
+	sun/util/calendar/BaseCalendar.java \
+	    sun/util/calendar/Gregorian.java \
+	    sun/util/calendar/JulianCalendar.java \
+	    sun/util/calendar/LocalGregorianCalendar.java \
+    java/util/Currency.java \
+    java/util/Date.java \
+    java/util/Dictionary.java \
+    java/util/EmptyStackException.java \
+    java/util/Enumeration.java \
+    java/util/EventListener.java \
+	java/util/EventListenerProxy.java \
+    java/util/EventObject.java \
+    java/util/Formatter.java \
+    java/util/Formattable.java \
+    java/util/FormattableFlags.java \
+    java/util/IllegalFormatException.java \
+        java/util/DuplicateFormatFlagsException.java \
+        java/util/FormatFlagsConversionMismatchException.java \
+        java/util/IllegalFormatCodePointException.java \
+        java/util/IllegalFormatConversionException.java \
+        java/util/IllegalFormatFlagsException.java \
+        java/util/IllegalFormatPrecisionException.java \
+        java/util/IllegalFormatWidthException.java \
+        java/util/MissingFormatArgumentException.java \
+        java/util/MissingFormatWidthException.java \
+        java/util/UnknownFormatConversionException.java \
+        java/util/UnknownFormatFlagsException.java \
+    java/util/IllformedLocaleException.java \
+    java/util/FormatterClosedException.java \
+    java/util/ListResourceBundle.java \
+        sun/util/EmptyListResourceBundle.java \
+    java/util/Locale.java \
+        sun/util/locale/BaseLocale.java \
+        sun/util/locale/Extension.java \
+        sun/util/locale/InternalLocaleBuilder.java \
+        sun/util/locale/LanguageTag.java \
+        sun/util/locale/LocaleExtensions.java \
+        sun/util/locale/LocaleObjectCache.java \
+        sun/util/locale/LocaleSyntaxException.java \
+        sun/util/locale/LocaleUtils.java \
+        sun/util/locale/ParseStatus.java \
+        sun/util/locale/StringTokenIterator.java \
+        sun/util/locale/UnicodeLocaleExtension.java \
+    java/util/LocaleISOData.java \
+        sun/util/LocaleServiceProviderPool.java \
+	sun/util/LocaleDataMetaInfo.java \
+    java/util/MissingResourceException.java \
+    java/util/NoSuchElementException.java \
+    java/util/Observable.java \
+    java/util/Observer.java \
+    java/util/Properties.java \
+        java/util/InvalidPropertiesFormatException.java \
+    java/util/PropertyPermission.java \
+    java/util/PropertyResourceBundle.java \
+    java/util/Random.java \
+    java/util/ResourceBundle.java \
+        sun/util/ResourceBundleEnumeration.java \
+        sun/util/CoreResourceBundleControl.java \
+    java/util/Scanner.java \
+    java/util/InputMismatchException.java \
+    java/util/Stack.java \
+    java/util/StringTokenizer.java \
+    java/util/TimeZone.java \
+        java/util/SimpleTimeZone.java \
+        sun/util/TimeZoneNameUtility.java \
+        sun/util/calendar/ZoneInfo.java \
+        sun/util/calendar/ZoneInfoFile.java \
+        sun/util/calendar/TzIDOldMapping.java \
+    java/util/TooManyListenersException.java \
+    java/util/Comparator.java \
+    java/util/Collections.java \
+    java/util/Iterator.java \
+    java/util/ListIterator.java \
+    java/util/Collection.java \
+        java/util/Set.java \
+            java/util/SortedSet.java \
+                java/util/NavigableSet.java \
+        java/util/List.java \
+	java/util/Queue.java \
+	    java/util/Deque.java \
+    java/util/AbstractCollection.java \
+        java/util/AbstractSet.java \
+            java/util/HashSet.java \
+            java/util/LinkedHashSet.java \
+            java/util/TreeSet.java \
+            java/util/EnumSet.java \
+                java/util/RegularEnumSet.java \
+                java/util/JumboEnumSet.java \
+        java/util/AbstractList.java \
+            java/util/ArrayList.java \
+            java/util/Vector.java \
+        java/util/AbstractSequentialList.java \
+                java/util/LinkedList.java \
+	java/util/AbstractQueue.java \
+	    java/util/PriorityQueue.java \
+	java/util/ArrayDeque.java \
+    java/util/Map.java \
+        java/util/SortedMap.java \
+            java/util/NavigableMap.java \
+    java/util/AbstractMap.java \
+        java/util/HashMap.java \
+        java/util/LinkedHashMap.java \
+        java/util/TreeMap.java \
+        java/util/Hashtable.java \
+	java/util/WeakHashMap.java \
+	java/util/IdentityHashMap.java \
+	java/util/EnumMap.java \
+    java/util/Arrays.java \
+    java/util/DualPivotQuicksort.java \
+    java/util/TimSort.java \
+    java/util/ComparableTimSort.java \
+    java/util/ConcurrentModificationException.java \
+    java/util/ServiceLoader.java \
+    java/util/ServiceConfigurationError.java \
+    java/util/Timer.java \
+    java/util/TimerTask.java \
+    java/util/Objects.java \
+    java/util/UUID.java \
+    java/util/concurrent/AbstractExecutorService.java \
+    java/util/concurrent/ArrayBlockingQueue.java \
+    java/util/concurrent/BlockingDeque.java \
+    java/util/concurrent/BlockingQueue.java \
+    java/util/concurrent/BrokenBarrierException.java \
+    java/util/concurrent/Callable.java \
+    java/util/concurrent/CancellationException.java \
+    java/util/concurrent/CompletionService.java \
+    java/util/concurrent/ConcurrentHashMap.java \
+    java/util/concurrent/ConcurrentLinkedDeque.java \
+    java/util/concurrent/ConcurrentLinkedQueue.java \
+    java/util/concurrent/ConcurrentMap.java \
+    java/util/concurrent/ConcurrentNavigableMap.java \
+    java/util/concurrent/ConcurrentSkipListMap.java \
+    java/util/concurrent/ConcurrentSkipListSet.java \
+    java/util/concurrent/CopyOnWriteArrayList.java \
+    java/util/concurrent/CopyOnWriteArraySet.java \
+    java/util/concurrent/CountDownLatch.java \
+    java/util/concurrent/CyclicBarrier.java \
+    java/util/concurrent/DelayQueue.java \
+    java/util/concurrent/Delayed.java \
+    java/util/concurrent/Exchanger.java \
+    java/util/concurrent/ExecutionException.java \
+    java/util/concurrent/Executor.java \
+    java/util/concurrent/ExecutorService.java \
+    java/util/concurrent/ExecutorCompletionService.java \
+    java/util/concurrent/Executors.java \
+    java/util/concurrent/ForkJoinPool.java \
+    java/util/concurrent/ForkJoinTask.java \
+    java/util/concurrent/ForkJoinWorkerThread.java \
+    java/util/concurrent/Future.java \
+    java/util/concurrent/FutureTask.java \
+    java/util/concurrent/LinkedBlockingDeque.java \
+    java/util/concurrent/LinkedBlockingQueue.java \
+    java/util/concurrent/LinkedTransferQueue.java \
+    java/util/concurrent/Phaser.java \
+    java/util/concurrent/PriorityBlockingQueue.java \
+    java/util/concurrent/RecursiveAction.java \
+    java/util/concurrent/RecursiveTask.java \
+    java/util/concurrent/RejectedExecutionException.java \
+    java/util/concurrent/RejectedExecutionHandler.java \
+    java/util/concurrent/RunnableFuture.java \
+    java/util/concurrent/RunnableScheduledFuture.java \
+    java/util/concurrent/ScheduledExecutorService.java \
+    java/util/concurrent/ScheduledFuture.java \
+    java/util/concurrent/ScheduledThreadPoolExecutor.java \
+    java/util/concurrent/Semaphore.java \
+    java/util/concurrent/SynchronousQueue.java \
+    java/util/concurrent/ThreadFactory.java \
+    java/util/concurrent/ThreadLocalRandom.java \
+    java/util/concurrent/ThreadPoolExecutor.java \
+    java/util/concurrent/TimeUnit.java \
+    java/util/concurrent/TimeoutException.java \
+    java/util/concurrent/TransferQueue.java \
+    java/util/concurrent/atomic/AtomicBoolean.java \
+    java/util/concurrent/atomic/AtomicInteger.java \
+    java/util/concurrent/atomic/AtomicIntegerArray.java \
+    java/util/concurrent/atomic/AtomicIntegerFieldUpdater.java \
+    java/util/concurrent/atomic/AtomicLong.java \
+    java/util/concurrent/atomic/AtomicLongArray.java \
+    java/util/concurrent/atomic/AtomicLongFieldUpdater.java \
+    java/util/concurrent/atomic/AtomicMarkableReference.java \
+    java/util/concurrent/atomic/AtomicReference.java \
+    java/util/concurrent/atomic/AtomicReferenceArray.java \
+    java/util/concurrent/atomic/AtomicReferenceFieldUpdater.java \
+    java/util/concurrent/atomic/AtomicStampedReference.java \
+    java/util/concurrent/locks/AbstractOwnableSynchronizer.java \
+    java/util/concurrent/locks/AbstractQueuedLongSynchronizer.java \
+    java/util/concurrent/locks/AbstractQueuedSynchronizer.java \
+    java/util/concurrent/locks/AbstractQueuedLongSynchronizer.java \
+    java/util/concurrent/locks/Condition.java \
+    java/util/concurrent/locks/Lock.java \
+    java/util/concurrent/locks/LockSupport.java \
+    java/util/concurrent/locks/ReadWriteLock.java \
+    java/util/concurrent/locks/ReentrantLock.java \
+    java/util/concurrent/locks/ReentrantReadWriteLock.java \
+    java/util/regex/Pattern.java \
+    java/util/regex/Matcher.java \
+    java/util/regex/MatchResult.java \
+    java/util/regex/ASCII.java \
+    java/util/regex/UnicodeProp.java \
+    java/util/regex/PatternSyntaxException.java \
+    java/util/prefs/Preferences.java \
+        java/util/prefs/AbstractPreferences.java \
+    java/util/prefs/PreferenceChangeEvent.java \
+    java/util/prefs/PreferenceChangeListener.java \
+    java/util/prefs/NodeChangeEvent.java \
+    java/util/prefs/NodeChangeListener.java \
+    java/util/prefs/BackingStoreException.java \
+    java/util/prefs/InvalidPreferencesFormatException.java \
+    java/util/prefs/PreferencesFactory.java \
+    java/util/prefs/Base64.java \
+    java/util/prefs/XmlSupport.java \
+    java/util/spi/CurrencyNameProvider.java \
+    java/util/spi/LocaleNameProvider.java \
+    java/util/spi/LocaleServiceProvider.java \
+    java/util/spi/TimeZoneNameProvider.java \
+    java/io/Closeable.java \
+    java/io/Flushable.java \
+    java/io/PipedInputStream.java \
+    java/io/PipedOutputStream.java \
+    java/io/IOException.java \
+	java/io/CharConversionException.java \
+        java/io/FileNotFoundException.java \
+        java/io/EOFException.java \
+	java/io/SyncFailedException.java \
+        java/io/UTFDataFormatException.java \
+        java/io/InterruptedIOException.java \
+	java/io/UnsupportedEncodingException.java \
+    java/io/DataInput.java \
+    java/io/DataOutput.java \
+    java/io/InputStream.java \
+        java/io/FileInputStream.java \
+        java/io/FilterInputStream.java \
+            java/io/BufferedInputStream.java \
+            java/io/DataInputStream.java \
+        java/io/ByteArrayInputStream.java \
+        java/io/PushbackInputStream.java \
+        java/io/SequenceInputStream.java \
+        java/io/StringBufferInputStream.java \
+        java/io/LineNumberInputStream.java \
+    java/io/OutputStream.java \
+        java/io/FileOutputStream.java \
+        java/io/FilterOutputStream.java \
+            java/io/BufferedOutputStream.java \
+            java/io/DataOutputStream.java \
+        java/io/ByteArrayOutputStream.java \
+        java/io/PrintStream.java \
+    java/io/RandomAccessFile.java \
+    java/io/StreamTokenizer.java \
+    java/io/DeleteOnExitHook.java \
+    java/io/File.java \
+    java/io/FileSystem.java \
+    java/io/FileDescriptor.java \
+    java/io/FilenameFilter.java \
+    java/io/FileFilter.java \
+    java/io/FilePermission.java \
+    java/io/Serializable.java \
+    java/io/Externalizable.java \
+    java/io/SerialCallbackContext.java \
+	java/io/Bits.java \
+	java/io/ObjectInput.java \
+	java/io/ObjectInputStream.java \
+	java/io/ObjectInputValidation.java \
+	java/io/ObjectOutput.java \
+	java/io/ObjectOutputStream.java \
+	java/io/ObjectStreamClass.java \
+	java/io/ObjectStreamConstants.java \
+	java/io/ObjectStreamField.java \
+	java/io/SerializablePermission.java \
+	java/io/InvalidClassException.java \
+	java/io/InvalidObjectException.java \
+	java/io/NotActiveException.java \
+	java/io/NotSerializableException.java \
+	java/io/ObjectStreamException.java \
+	java/io/OptionalDataException.java \
+	java/io/StreamCorruptedException.java \
+	java/io/WriteAbortedException.java \
+    java/io/Reader.java \
+	java/io/BufferedReader.java \
+            java/io/LineNumberReader.java \
+        java/io/CharArrayReader.java \
+        java/io/FilterReader.java \
+            java/io/PushbackReader.java \
+        java/io/InputStreamReader.java \
+            java/io/FileReader.java \
+        java/io/PipedReader.java \
+        java/io/StringReader.java \
+    java/io/Writer.java \
+	java/io/BufferedWriter.java \
+	    java/io/PrintWriter.java \
+        java/io/CharArrayWriter.java \
+	java/io/FilterWriter.java \
+        java/io/OutputStreamWriter.java \
+	    java/io/FileWriter.java \
+        java/io/PipedWriter.java \
+	java/io/StringWriter.java \
+    java/io/Console.java \
+    java/io/ExpiringCache.java \
+    java/nio/charset/Charset.java \
+    java/nio/charset/CharsetDecoder.java \
+    java/nio/charset/CharsetEncoder.java \
+    java/nio/charset/UnmappableCharacterException.java \
+    java/nio/Bits.java \
+    java/nio/DirectByteBuffer.java \
+    java/nio/HeapByteBuffer.java \
+    java/nio/HeapCharBuffer.java \
+    java/security/AccessController.java \
+    java/security/ProtectionDomain.java \
+    java/net/URLClassLoader.java \
+    java/net/URLConnection.java \
+    sun/misc/Launcher.java \
+    sun/misc/MetaIndex.java \
+    sun/misc/URLClassPath.java \
+    sun/misc/Version.java \
+    sun/misc/FileURLMapper.java \
+    sun/misc/MessageUtils.java \
+    sun/misc/GC.java \
+    sun/misc/Service.java \
+    sun/misc/JavaAWTAccess.java \
+    sun/misc/JavaLangAccess.java \
+    sun/misc/JavaIOAccess.java \
+    sun/misc/JavaIOFileDescriptorAccess.java \
+    sun/misc/JavaNioAccess.java \
+    sun/misc/Perf.java \
+    sun/misc/PerfCounter.java \
+    sun/net/www/protocol/jar/Handler.java \
+    sun/net/www/protocol/jar/JarURLConnection.java \
+    sun/net/www/protocol/file/Handler.java \
+    sun/net/www/protocol/file/FileURLConnection.java
+
+FILES_java = $(JAVA_JAVA_java)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/java/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,375 @@
+#
+# Copyright (c) 1997, 2011, 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.
+#
+
+#
+# Makefile for core Java libraries
+# (java.lang, java.lang.ref, java.lang.reflect, java.io, java.util)
+#
+
+BUILDDIR = ../..
+PACKAGE = java.lang
+LIBRARY = java
+PRODUCT = java
+SUBDIRS_MAKEFLAGS += JAVAC_MAX_WARNINGS=true
+SUBDIRS_MAKEFLAGS += JAVAC_WARNINGS_FATAL=true
+JAVAC_MAX_WARNINGS=true
+include $(BUILDDIR)/common/Defs.gmk
+
+$(info ENTERING java)
+
+# windows compiler flags
+ifeq ($(PLATFORM),windows)
+  OTHER_CFLAGS =
+  # build directly into BINDIR...
+  LIB_LOCATION = $(BINDIR)
+  # Exported functions
+  OTHER_LCF = -export:winFileHandleOpen -export:handleLseek
+endif
+
+OTHER_CFLAGS += -DJDK_MAJOR_VERSION='"$(JDK_MAJOR_VERSION)"' \
+                -DJDK_MINOR_VERSION='"$(JDK_MINOR_VERSION)"' \
+                -DJDK_MICRO_VERSION='"$(JDK_MICRO_VERSION)"' \
+                -DJDK_BUILD_NUMBER='"$(JDK_BUILD_NUMBER)"' 
+
+ifdef JDK_UPDATE_VERSION
+OTHER_CFLAGS += -DJDK_UPDATE_VERSION='"$(JDK_UPDATE_VERSION)"'
+endif
+
+
+#
+# Files to compile.
+#
+include FILES_c.gmk
+include FILES_java.gmk
+include Exportedfiles.gmk
+
+ifeq ($(PLATFORM),windows)
+FILES_java += 	java/io/Win32FileSystem.java \
+		java/io/WinNTFileSystem.java \
+		java/util/prefs/WindowsPreferences.java \
+                java/util/prefs/WindowsPreferencesFactory.java
+
+FILES_c    +=   ProcessImpl_md.c \
+		Win32FileSystem_md.c \
+		WinNTFileSystem_md.c \
+		canonicalize_md.c \
+		dirent_md.c \
+		TimeZone.c \
+		TimeZone_md.c \
+		WindowsPreferences.c \
+		sun/security/provider/WinCAPISeedGenerator.c \
+		sun/io/Win32ErrorMode.c
+
+else # PLATFORM
+FILES_java += 	java/lang/UNIXProcess.java \
+		java/io/UnixFileSystem.java \
+		java/util/prefs/FileSystemPreferences.java \
+                java/util/prefs/FileSystemPreferencesFactory.java \
+
+FILES_c    +=   UNIXProcess_md.c \
+		UnixFileSystem_md.c \
+		canonicalize_md.c \
+		TimeZone.c \
+		TimeZone_md.c \
+		FileSystemPreferences.c
+
+INIT += $(GENSRCDIR)/java/lang/UNIXProcess.java
+
+endif # PLATFORM
+
+ifeq ($(PLATFORM), macosx)
+FILES_c    +=   java_props_macosx.c
+FILES_java += 	java/util/prefs/MacOSXPreferences.java \
+		java/util/prefs/MacOSXPreferencesFile.java \
+		java/util/prefs/MacOSXPreferencesFactory.java
+
+CFLAGS_$(VARIANT)/java_props_md.o = -Os -x objective-c
+endif
+
+#
+# Make sure first rule does 'all'
+#
+default_rule: all
+
+#
+# Source files to generate before we try to compile anything
+#
+
+CLASSES_INIT = niosrc rbcontrolsrc 
+
+niosrc: ; ($(CD) ../nio; $(MAKE) sources)
+
+rbcontrolsrc: $(GENSRCDIR)/sun/util/CoreResourceBundleControl.java
+
+#
+# Add to the default C file search paths
+#
+vpath %.c $(PLATFORM_SRC)/native/java/lang:$(SHARE_SRC)/native/java/lang
+vpath %.c $(SHARE_SRC)/native/java/lang/ref
+vpath %.c $(SHARE_SRC)/native/java/lang/reflect
+vpath %.c $(SHARE_SRC)/native/java/io
+vpath %.c $(PLATFORM_SRC)/native/java/io
+vpath %.c $(SHARE_SRC)/native/java/nio
+vpath %.c $(SHARE_SRC)/native/java/security
+vpath %.c $(SHARE_SRC)/native/common
+vpath %.c $(SHARE_SRC)/native/sun/misc
+vpath %.c $(SHARE_SRC)/native/sun/reflect
+vpath %.c $(SHARE_SRC)/native/java/sql
+vpath %.c $(SHARE_SRC)/native/java/util
+vpath %.c $(SHARE_SRC)/native/java/util/concurrent/atomic
+vpath %.c $(PLATFORM_SRC)/native/common
+vpath %.c $(PLATFORM_SRC)/native/java/util
+vpath %.c $(PLATFORM_SRC)/native/sun/security/provider
+vpath %.c $(PLATFORM_SRC)/native/sun/io
+
+#
+# Includes the fdlibm header file.
+#
+OTHER_INCLUDES += -I$(SHARE_SRC)/native/java/lang/fdlibm/include
+
+#
+# Also include the io_util.h header file.
+#
+OTHER_INCLUDES += -I$(SHARE_SRC)/native/java/io
+OTHER_INCLUDES += -I$(PLATFORM_SRC)/native/java/io
+
+#
+# Also include the TimeZone_md.h header file.
+#
+OTHER_INCLUDES += -I$(PLATFORM_SRC)/native/java/util
+
+#
+# Is the altzone extern documented in ctime(3C) available?
+#
+ifneq ($(PLATFORM), windows)
+ifneq ($(PLATFORM), macosx)
+HAVE_ALTZONE=true
+endif
+endif
+
+ifeq ($(HAVE_ALTZONE),true)
+OTHER_CPPFLAGS += -DHAVE_ALTZONE
+endif
+
+#
+# System.c needs RELEASE.
+# java_props_md.c needs ARCH on non-Solaris platforms.
+#
+OTHER_CPPFLAGS += $(VERSION_DEFINES)
+
+#
+# Include name of LIBARCH
+#
+OTHER_CPPFLAGS += -DARCHPROPNAME='"$(ARCHPROP)"'
+
+#
+# Is the key in the call nl_langinfo(CODESET) called something other than
+# CODESET?
+#
+ifdef ALT_CODESET_KEY
+OTHER_CPPFLAGS += -DALT_CODESET_KEY=$(ALT_CODESET_KEY)
+endif
+
+#
+# Install .lib file.
+#
+INSTALL_DOT_LIB = true
+
+#
+# What to link?
+# On Windows, shell32 is not normally required and so it is delay loaded.
+#
+ifeq ($(PLATFORM),windows)
+OTHER_LDLIBS += $(JVMLIB) -libpath:$(OBJDIR)/../../../fdlibm/$(OBJDIRNAME) fdlibm.lib \
+		       -libpath:$(OBJDIR)/../../../verify/$(OBJDIRNAME) verify.lib \
+		       shell32.lib delayimp.lib /DELAYLOAD:shell32.dll
+else
+OTHER_LDLIBS += $(JVMLIB) -lverify $(LIBSOCKET) $(LIBNSL) $(LIBSCF) $(LIBDL) \
+		-L$(OBJDIR)/../../../fdlibm/$(OBJDIRNAME) -lfdlibm.$(ARCH)
+ifeq ($(PLATFORM), macosx)
+OTHER_LDLIBS += \
+        -framework CoreFoundation \
+        -framework Security \
+        -framework SystemConfiguration
+endif
+endif
+
+#
+# Rules.
+#
+ifeq ($(PLATFORM), solaris)
+  ifneq ($(ARCH), amd64)
+    FILES_reorder += reorder-$(ARCH)
+  endif
+endif
+
+SUBDIRS = reflect
+include $(BUILDDIR)/common/Subdirs.gmk
+
+all build:
+	$(SUBDIRS-loop)
+clean clobber::
+	$(SUBDIRS-loop)
+
+include $(BUILDDIR)/common/Mapfile-vers.gmk
+include $(BUILDDIR)/common/Library.gmk
+
+ifeq ($(PLATFORM), solaris)
+  ifeq ($(CC_VER), 5.8)
+    ifndef REMOVE_ALL_WORKAROUNDS
+      CFLAGS_OPT/ObjectInputStream.o = -xO3 \
+	  $(warning  "WARNING: Using workaround for SS11 bug 6346242, on $@")
+    endif
+  endif
+endif
+
+ifneq ($(PLATFORM),windows)
+
+# UNIXProcess.java is different for solaris and linux. We need to copy
+# the correct UNIXProcess.java over to $(GENSRCDIR)/java/lang/.
+
+ifeq ($(PLATFORM), macosx)
+PLATFORM_UNIX_PROCESS = \
+    $(PLATFORM_SRC)/classes/java/lang/UNIXProcess.java.bsd
+else
+PLATFORM_UNIX_PROCESS = \
+    $(PLATFORM_SRC)/classes/java/lang/UNIXProcess.java.$(PLATFORM)
+endif
+
+$(GENSRCDIR)/java/lang/UNIXProcess.java: $(PLATFORM_UNIX_PROCESS)
+	$(install-file)
+
+clean:: 
+	$(RM) $(GENSRCDIR)/java/lang/UNIXProcess.java
+
+endif
+
+
+#
+# Because we can't link against ourselves!
+#
+JAVALIB =
+
+#
+# Special rules.
+#
+clean:: 
+	$(RM) -r $(CLASSHDRDIR)
+
+clobber:: 
+	$(RM) -r $(CLASSBINDIR)/java/io $(CLASSBINDIR)/java/lang \
+		$(CLASSBINDIR)/java/security $(CLASSBINDIR)/java/util \
+		$(CLASSBINDIR)/sun/misc
+
+#
+# Additional rule from sun/net/GNUmakefile to copy content-type.properties
+# file so that the MimeTable class won't complain while bootstrapping...
+#
+PROPS = content-types.properties
+
+#
+# Rule to copy calendars.properties file.
+#
+CAL_PROPS = calendars.properties
+
+#
+# Rule to copy tzmappings file on Windows
+#
+ifeq ($(PLATFORM), windows)
+TZMAP = $(LIBDIR)/tzmappings
+TZMAPFILE = $(PLATFORM_SRC)/lib/tzmappings
+
+$(TZMAP): $(TZMAPFILE)
+	$(install-file)
+	$(call chmod-file, 444)
+endif
+
+build: $(LIBDIR)/$(PROPS) $(LIBDIR)/$(CAL_PROPS) $(TZMAP)
+
+$(LIBDIR)/$(PROPS): $(PLATFORM_SRC)/lib/$(PROPS)
+	$(install-file)
+
+$(LIBDIR)/$(CAL_PROPS): $(SHARE_SRC)/lib/$(CAL_PROPS)
+	$(install-file)
+
+clean:: 
+	$(RM) -r $(LIBDIR)/$(PROPS) $(TZMAP)
+
+#
+# Rules to create lib/currency.data
+#
+
+CURDATA = $(LIBDIR)/currency.data
+
+build: $(CURDATA)
+
+$(CURDATA): \
+  $(BUILD_TOOLS) \
+  $(SHARE_SRC)/classes/java/util/CurrencyData.properties
+	$(RM) $(CURDATA)
+	$(TOOL_GENERATECURRENCYDATA) -o $@.temp \
+		< $(SHARE_SRC)/classes/java/util/CurrencyData.properties
+	$(MV) $@.temp $@
+	$(call chmod-file, 444)
+
+clean:: 
+	$(RM) $(CURDATA)
+
+
+#
+# Rules to generate classes/java/lang/uniName.dat
+#
+
+
+
+UNINAME = $(CLASSBINDIR)/java/lang/uniName.dat
+
+build: $(UNINAME)
+$(UNINAME): $(JDK_TOPDIR)/make/tools/UnicodeData/UnicodeData.txt \
+	$(BUILD_TOOLS)
+	@$(prep-target)
+	$(TOOL_CHARACTERNAME) \
+		 $(JDK_TOPDIR)/make/tools/UnicodeData/UnicodeData.txt $(UNINAME)
+
+clean:: 
+	$(RM) $(UNINAME)
+
+#
+# End of rules to create $(GENSRCDIR)/java/lang/CharacterDataXX.java
+#
+
+#
+# Rule to precompile CoreResourceBundleControl.java 
+#
+LOCALES_GEN_SH = localelist.sh
+
+$(GENSRCDIR)/sun/util/CoreResourceBundleControl.java: \
+	$(SHARE_SRC)/classes/sun/util/CoreResourceBundleControl-XLocales.java.template $(LOCALES_GEN_SH)
+	@$(prep-target) 
+	NAWK="$(NAWK)" SED="$(SED)" $(SH) $(LOCALES_GEN_SH) "$(JRE_NONEXIST_LOCALES)" \
+		$< $@ 
+clean::
+	$(RM) $(GENSRCDIR)/sun/util/CoreResourceBundleControl.java
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/java/localelist.sh	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,109 @@
+#!/bin/sh
+
+#
+# Copyright (c) 2005, 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.
+#
+
+#
+# This script is to generate the supported locale list string and replace the
+# #LOCALE_LIST# in <ws>/src/share/classes/sun/util/CoreResourceBundleControl.java.
+#
+# NAWK & SED is passed in as environment variables.
+#
+LOCALE_LIST=$1
+INUT_FILE=$2
+OUTPUT_FILE=$3
+
+LOCALES=`(for I in $LOCALE_LIST; do echo $I;done) | sort | uniq`
+JAVA_LOCALES=
+
+toJavaLocale()
+{
+    NewLocale=`echo $1 | $NAWK '
+		BEGIN {
+		    # The following values have to be consistent with java.util.Locale.
+		    javalocales["en"] = "ENGLISH";
+		    javalocales["fr"] = "FRENCH";
+		    javalocales["de"] = "GERMAN";
+		    javalocales["it"] = "ITALIAN";
+		    javalocales["ja"] = "JAPANESE";
+		    javalocales["ko"] = "KOREAN";
+		    javalocales["zh"] = "CHINESE";
+		    javalocales["zh_CN"] = "SIMPLIFIED_CHINESE";
+		    javalocales["zh_TW"] = "TRADITIONAL_CHINESE";
+		    javalocales["fr_FR"] = "FRANCE";
+		    javalocales["de_DE"] = "GERMANY";
+		    javalocales["it_IT"] = "ITALY";
+		    javalocales["ja_JP"] = "JAPAN";
+		    javalocales["ko_KR"] = "KOREA";
+		    javalocales["en_GB"] = "UK";
+		    javalocales["en_US"] = "US";
+		    javalocales["en_CA"] = "CANADA";
+		    javalocales["fr_CA"] = "CANADA_FRENCH";
+		}
+		{
+		    if ($0 in javalocales) {
+			print "	Locale." javalocales[$0];
+		    } else {
+			split($0, a, "_");
+			if (a[3] != "") {
+			    print " new Locale(\"" a[1] "\", \"" a[2] "\", \"" a[3] "\")";
+			} else if (a[2] != "") {
+			    print " new Locale(\"" a[1] "\", \"" a[2] "\")";
+			} else {
+			    print " new Locale(\"" a[1] "\")";
+			}
+		    }
+		}'`
+
+    JAVA_LOCALES=$JAVA_LOCALES$NewLocale
+}
+
+# count the number of locales
+counter=0
+for i in $LOCALES
+do
+    counter=`expr $counter + 1`
+done
+
+index=0
+for locale in $LOCALES
+do
+    index=`expr $index + 1`;
+    if [ $index != $counter ]
+    then
+	toJavaLocale $locale
+	JAVA_LOCALES=$JAVA_LOCALES","
+    else
+	toJavaLocale $locale
+    fi
+done
+
+# replace the #LOCALE_LIST# in the precompiled CoreResourceBundleControl.java file.
+
+$SED -e "s@^#warn .*@// -- This file was mechanically generated: Do not edit! -- //@" \
+    -e  "s/#LOCALE_LIST#/$JAVA_LOCALES/g" $2 > $3
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/java/mapfile-vers	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,300 @@
+#
+# Copyright (c) 1997, 2009, 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.
+#
+
+# Define public interface.
+
+SUNWprivate_1.1 {
+	global:
+		JNI_OnLoad;
+		JNU_ThrowNoSuchMethodException;
+		JNU_CallStaticMethodByName;
+		JNU_CallMethodByName;
+		JNU_CallMethodByNameV;
+		JNU_ClassClass;
+		JNU_ClassObject;
+		JNU_ClassString;
+		JNU_ClassThrowable;
+		JNU_CopyObjectArray;
+		JNU_Equals;
+		JNU_GetEnv;
+		JNU_GetFieldByName;
+		JNU_GetStaticFieldByName;
+		JNU_GetStringPlatformChars;
+		JNU_IsInstanceOfByName;
+		JNU_MonitorWait;
+		JNU_NewObjectByName;
+		JNU_NewStringPlatform;
+		JNU_Notify;
+		JNU_NotifyAll;
+		JNU_PrintClass;
+		JNU_PrintString;
+		JNU_ReleaseStringPlatformChars;
+		JNU_SetFieldByName;
+		JNU_SetStaticFieldByName;
+		JNU_ThrowArrayIndexOutOfBoundsException;
+		JNU_ThrowByName;
+		JNU_ThrowByNameWithLastError;
+		JNU_ThrowClassNotFoundException;
+		JNU_ThrowIllegalAccessError;
+		JNU_ThrowIllegalAccessException;
+		JNU_ThrowIllegalArgumentException;
+		JNU_ThrowInstantiationException;
+		JNU_ThrowInternalError;
+		JNU_ThrowIOException;
+		JNU_ThrowIOExceptionWithLastError;
+		JNU_ThrowNoSuchFieldError;
+		JNU_ThrowNoSuchFieldException;
+		JNU_ThrowNoSuchMethodError;
+		JNU_ThrowNullPointerException;
+		JNU_ThrowNumberFormatException;
+		JNU_ThrowOutOfMemoryError;
+		JNU_ThrowStringIndexOutOfBoundsException;
+		JNU_ToString;
+
+		Java_java_io_FileDescriptor_initIDs;
+		Java_java_io_FileDescriptor_sync;
+		Java_java_io_FileInputStream_available;
+		Java_java_io_FileInputStream_close0;
+		Java_java_io_FileInputStream_initIDs;
+		Java_java_io_FileInputStream_open;
+		Java_java_io_FileInputStream_read;
+		Java_java_io_FileInputStream_readBytes;
+		Java_java_io_FileInputStream_skip;
+		Java_java_io_FileOutputStream_close0;
+		Java_java_io_FileOutputStream_initIDs;
+		Java_java_io_FileOutputStream_open;
+		Java_java_io_FileOutputStream_write;
+		Java_java_io_FileOutputStream_writeBytes;
+		Java_java_io_FileSystem_getFileSystem;
+		Java_java_io_ObjectInputStream_bytesToDoubles;
+		Java_java_io_ObjectInputStream_bytesToFloats;
+		Java_java_io_ObjectOutputStream_doublesToBytes;
+		Java_java_io_ObjectOutputStream_floatsToBytes;
+		Java_java_io_ObjectStreamClass_hasStaticInitializer;
+		Java_java_io_ObjectStreamClass_initNative;
+		Java_java_io_RandomAccessFile_close0;
+		Java_java_io_RandomAccessFile_getFilePointer;
+		Java_java_io_RandomAccessFile_initIDs;
+		Java_java_io_RandomAccessFile_length;
+		Java_java_io_RandomAccessFile_open;
+		Java_java_io_RandomAccessFile_read;
+		Java_java_io_RandomAccessFile_readBytes;
+		Java_java_io_RandomAccessFile_seek;
+		Java_java_io_RandomAccessFile_setLength;
+		Java_java_io_RandomAccessFile_write;
+		Java_java_io_RandomAccessFile_writeBytes;
+		Java_java_io_UnixFileSystem_canonicalize0;
+		Java_java_io_UnixFileSystem_checkAccess;
+		Java_java_io_UnixFileSystem_createDirectory;
+		Java_java_io_UnixFileSystem_createFileExclusively;
+		Java_java_io_UnixFileSystem_delete0;
+		Java_java_io_UnixFileSystem_getBooleanAttributes0;
+		Java_java_io_UnixFileSystem_getLastModifiedTime;
+		Java_java_io_UnixFileSystem_getLength;
+		Java_java_io_UnixFileSystem_getSpace;
+		Java_java_io_UnixFileSystem_initIDs;
+		Java_java_io_UnixFileSystem_list;
+		Java_java_io_UnixFileSystem_rename0;
+		Java_java_io_UnixFileSystem_setLastModifiedTime;
+		Java_java_io_UnixFileSystem_setReadOnly;
+		Java_java_io_UnixFileSystem_setPermission;
+		Java_java_lang_Class_forName0;
+		Java_java_lang_Class_getPrimitiveClass;
+		Java_java_lang_Class_isAssignableFrom;
+		Java_java_lang_Class_isInstance;
+		Java_java_lang_Class_registerNatives;
+		Java_java_lang_ClassLoader_findBootstrapClass;
+		Java_java_lang_ClassLoader_defineClass0;
+		Java_java_lang_ClassLoader_defineClass1;
+		Java_java_lang_ClassLoader_defineClass2;
+		Java_java_lang_ClassLoader_findLoadedClass0;
+		Java_java_lang_ClassLoader_resolveClass0;
+		Java_java_lang_ClassLoader_00024NativeLibrary_find;
+		Java_java_lang_ClassLoader_00024NativeLibrary_load;
+		Java_java_lang_ClassLoader_00024NativeLibrary_unload;
+		Java_java_lang_ClassLoader_getCaller; 
+		Java_java_lang_ClassLoader_registerNatives;
+		Java_java_lang_Compiler_registerNatives;
+		Java_java_lang_Double_longBitsToDouble;
+		Java_java_lang_Double_doubleToRawLongBits;
+		Java_java_lang_reflect_Proxy_defineClass0;
+		Java_java_lang_Shutdown_runAllFinalizers;
+		Java_java_lang_ref_Finalizer_invokeFinalizeMethod;
+		Java_java_lang_Float_intBitsToFloat;
+		Java_java_lang_Float_floatToRawIntBits;
+		Java_java_lang_StrictMath_IEEEremainder;
+		Java_java_lang_StrictMath_acos;
+		Java_java_lang_StrictMath_asin;
+		Java_java_lang_StrictMath_atan;
+		Java_java_lang_StrictMath_atan2;
+		Java_java_lang_StrictMath_cos;
+		Java_java_lang_StrictMath_exp;
+		Java_java_lang_StrictMath_log;
+		Java_java_lang_StrictMath_log10;
+		Java_java_lang_StrictMath_pow;
+		Java_java_lang_StrictMath_sin;
+		Java_java_lang_StrictMath_sqrt;
+		Java_java_lang_StrictMath_cbrt;
+		Java_java_lang_StrictMath_tan;
+		Java_java_lang_StrictMath_cosh;
+		Java_java_lang_StrictMath_sinh;
+		Java_java_lang_StrictMath_tanh;
+		Java_java_lang_StrictMath_hypot;
+		Java_java_lang_StrictMath_log1p;
+		Java_java_lang_StrictMath_expm1;
+		Java_java_lang_Object_getClass;
+		Java_java_lang_Object_registerNatives;
+		Java_java_lang_Package_getSystemPackage0;
+		Java_java_lang_Package_getSystemPackages0;
+		Java_java_lang_ProcessEnvironment_environ;
+		Java_java_lang_reflect_Array_get;
+		Java_java_lang_reflect_Array_getBoolean;
+		Java_java_lang_reflect_Array_getByte;
+		Java_java_lang_reflect_Array_getChar;
+		Java_java_lang_reflect_Array_getDouble;
+		Java_java_lang_reflect_Array_getFloat;
+		Java_java_lang_reflect_Array_getInt;
+		Java_java_lang_reflect_Array_getLength;
+		Java_java_lang_reflect_Array_getLong;
+		Java_java_lang_reflect_Array_getShort;
+		Java_java_lang_reflect_Array_multiNewArray;
+		Java_java_lang_reflect_Array_newArray;
+		Java_java_lang_reflect_Array_set;
+		Java_java_lang_reflect_Array_setBoolean;
+		Java_java_lang_reflect_Array_setByte;
+		Java_java_lang_reflect_Array_setChar;
+		Java_java_lang_reflect_Array_setDouble;
+		Java_java_lang_reflect_Array_setFloat;
+		Java_java_lang_reflect_Array_setInt;
+		Java_java_lang_reflect_Array_setLong;
+		Java_java_lang_reflect_Array_setShort;
+		Java_java_lang_Runtime_freeMemory;
+                Java_java_lang_Runtime_maxMemory;
+		Java_java_lang_Runtime_gc;
+		Java_java_lang_Runtime_runFinalization0;
+		Java_java_lang_Runtime_totalMemory;
+		Java_java_lang_Runtime_traceInstructions;
+		Java_java_lang_Runtime_traceMethodCalls;
+                Java_java_lang_Runtime_availableProcessors;
+		Java_java_lang_SecurityManager_classDepth;
+		Java_java_lang_SecurityManager_classLoaderDepth0;
+		Java_java_lang_SecurityManager_currentClassLoader0;
+		Java_java_lang_SecurityManager_currentLoadedClass0;
+		Java_java_lang_SecurityManager_getClassContext;
+		Java_java_lang_Shutdown_halt0;
+		Java_java_lang_String_intern;
+		Java_java_lang_System_identityHashCode;
+		Java_java_lang_System_initProperties;
+		Java_java_lang_System_mapLibraryName;
+		Java_java_lang_System_registerNatives;
+		Java_java_lang_System_setErr0;
+		Java_java_lang_System_setIn0;
+		Java_java_lang_System_setOut0;
+		Java_java_lang_Thread_registerNatives;
+		Java_java_lang_Throwable_fillInStackTrace;
+                Java_java_lang_Throwable_getStackTraceDepth;
+                Java_java_lang_Throwable_getStackTraceElement;
+		Java_java_lang_UNIXProcess_initIDs;
+		Java_java_lang_UNIXProcess_waitForProcessExit;
+		Java_java_lang_UNIXProcess_forkAndExec;
+		Java_java_lang_UNIXProcess_destroyProcess;
+                Java_java_nio_Bits_copyFromShortArray;
+                Java_java_nio_Bits_copyToShortArray;
+                Java_java_nio_Bits_copyFromIntArray;
+                Java_java_nio_Bits_copyToIntArray;
+                Java_java_nio_Bits_copyFromLongArray;
+                Java_java_nio_Bits_copyToLongArray;
+		Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedAction_2;
+		Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedAction_2Ljava_security_AccessControlContext_2;
+		Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedExceptionAction_2;
+		Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedExceptionAction_2Ljava_security_AccessControlContext_2;
+		Java_java_security_AccessController_getStackAccessControlContext;
+		Java_java_security_AccessController_getInheritedAccessControlContext;
+		Java_java_sql_DriverManager_getCallerClassLoader;
+		Java_java_util_ResourceBundle_getClassContext;
+		Java_java_util_TimeZone_getSystemTimeZoneID;
+		Java_java_util_TimeZone_getSystemGMTOffsetID;
+		Java_java_util_concurrent_atomic_AtomicLong_VMSupportsCS8;
+		Java_java_util_prefs_FileSystemPreferences_chmod;
+		Java_java_util_prefs_FileSystemPreferences_lockFile0;
+		Java_java_util_prefs_FileSystemPreferences_unlockFile0;
+		Java_java_util_logging_FileHandler_isSetUID;
+		Java_sun_misc_MessageUtils_toStderr;
+		Java_sun_misc_MessageUtils_toStdout;
+		Java_sun_misc_NativeSignalHandler_handle0;
+		Java_sun_misc_Signal_findSignal;
+		Java_sun_misc_Signal_handle0;
+		Java_sun_misc_Signal_raise0;
+              Java_sun_reflect_ConstantPool_getClassAt0;
+              Java_sun_reflect_ConstantPool_getClassAtIfLoaded0;
+              Java_sun_reflect_ConstantPool_getDoubleAt0;
+              Java_sun_reflect_ConstantPool_getFieldAt0;
+              Java_sun_reflect_ConstantPool_getFieldAtIfLoaded0;
+              Java_sun_reflect_ConstantPool_getFloatAt0;
+              Java_sun_reflect_ConstantPool_getIntAt0;
+              Java_sun_reflect_ConstantPool_getLongAt0;
+              Java_sun_reflect_ConstantPool_getMemberRefInfoAt0;
+              Java_sun_reflect_ConstantPool_getMethodAt0;
+              Java_sun_reflect_ConstantPool_getMethodAtIfLoaded0;
+              Java_sun_reflect_ConstantPool_getSize0;
+              Java_sun_reflect_ConstantPool_getStringAt0;
+              Java_sun_reflect_ConstantPool_getUTF8At0;
+		Java_java_io_Console_istty;
+		Java_java_io_Console_encoding;
+                Java_java_io_Console_echo;
+		Java_sun_misc_GC_maxObjectInspectionAge;
+		Java_sun_reflect_NativeConstructorAccessorImpl_newInstance0;
+		Java_sun_reflect_NativeMethodAccessorImpl_invoke0;
+		Java_sun_reflect_Reflection_getCallerClass;
+		Java_sun_reflect_Reflection_getClassAccessFlags;
+                Java_sun_misc_Version_getJdkVersionInfo;
+                Java_sun_misc_Version_getJdkSpecialVersion;
+                Java_sun_misc_Version_getJvmVersionInfo;
+                Java_sun_misc_Version_getJvmSpecialVersion;
+                Java_sun_misc_VM_getThreadStateValues;
+		Java_sun_misc_VM_latestUserDefinedLoader;
+                Java_sun_misc_VM_initialize;
+		Java_sun_misc_VMSupport_initAgentProperties;
+
+                # ZipFile.c needs this one
+		throwFileNotFoundException;
+
+#		Java_sun_misc_VM_getState;			threads.c
+#		Java_sun_misc_VM_threadsSuspended;		threads.c
+#		Java_sun_misc_VM_unsuspendSomeThreads;		threads.c
+#		Java_sun_misc_VM_unsuspendThreads;		threads.c
+
+	# Outcalls from libjvm done using dlsym().
+
+		VerifyClassCodes;
+		VerifyClassCodesForMajorVersion;
+		NewStringPlatform;
+		GetStringPlatformChars;
+		Canonicalize;
+		JDK_GetVersionInfo0;
+
+	local:
+		*;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/java/reflect/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,61 @@
+#
+# Copyright (c) 2003, 2005, 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.
+#
+
+#
+# Makefile for reflection and annotations
+#
+
+BUILDDIR = ../../..
+PACKAGE = java.lang.reflect
+PRODUCT = java
+
+include $(BUILDDIR)/common/Defs.gmk
+
+#
+# Files to compile.
+#
+AUTO_FILES_JAVA_DIRS = java/lang/reflect sun/reflect
+
+#
+# Install .lib file.
+#
+INSTALL_DOT_LIB = true
+
+include $(BUILDDIR)/common/Classes.gmk
+
+#
+# Special rules.
+#
+
+subdirs: classes
+
+clean:: 
+	$(RM) -r $(CLASSHDRDIR)
+
+clobber:: 
+	$(RM) -r $(CLASSBINDIR)/java/lang/reflect  \
+		$(CLASSBINDIR)/java/lang/annotatation
+
+.PHONY: clean clobber
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/java/reorder-i586	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,109 @@
+data = R0x2000;
+text = LOAD ?RXO;
+# Test Null
+text: .text%_init;
+text: .text%init64IO: OUTPUTDIR/tmp/java/java.lang/java/obj/UnixFileSystem_md.o;
+text: .text%JNI_OnLoad;
+text: .text%Canonicalize;
+text: .text%canonicalize;
+text: .text%collapse: OUTPUTDIR/tmp/java/java.lang/java/obj/canonicalize_md.o;
+text: .text%Java_java_lang_Object_registerNatives;
+text: .text%Java_java_lang_System_registerNatives;
+text: .text%Java_java_lang_Thread_registerNatives;
+text: .text%Java_java_security_AccessController_getStackAccessControlContext;
+text: .text%Java_java_security_AccessController_getInheritedAccessControlContext;
+text: .text%Java_java_lang_ClassLoader_registerNatives;
+text: .text%Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedAction_2;
+text: .text%Java_java_lang_Class_registerNatives;
+text: .text%Java_java_lang_Class_getPrimitiveClass;
+text: .text%Java_java_lang_System_initProperties;
+text: .text%GetJavaProperties;
+text: .text%uname: OUTPUTDIR/tmp/java/java.lang/java/obj/java_props_md.o;
+text: .text%mapLookup: OUTPUTDIR/tmp/java/java.lang/java/obj/java_props_md.o;
+text: .text%setPathEnvironment: OUTPUTDIR/tmp/java/java.lang/java/obj/java_props_md.o;
+text: .text%JNU_NewStringPlatform;
+text: .text%JNU_CallStaticMethodByName;
+text: .text%NewStringPlatform;
+text: .text%Java_java_io_FileInputStream_initIDs;
+text: .text%Java_java_io_FileDescriptor_initIDs;
+text: .text%Java_java_io_FileOutputStream_initIDs;
+text: .text%Java_java_lang_System_setIn0;
+text: .text%Java_sun_reflect_Reflection_getCallerClass;
+text: .text%Java_java_lang_Class_forName0;
+text: .text%Java_java_lang_String_intern;
+text: .text%Java_sun_reflect_NativeConstructorAccessorImpl_newInstance0;
+text: .text%Java_java_lang_Throwable_fillInStackTrace;
+text: .text%Java_java_lang_System_setOut0;
+text: .text%Java_java_lang_System_setErr0;
+text: .text%Java_java_lang_Compiler_registerNatives;
+text: .text%Java_java_io_FileSystem_getFileSystem;
+text: .text%JNU_NewObjectByName;
+text: .text%Java_java_io_UnixFileSystem_initIDs;
+text: .text%Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedExceptionAction_2;
+text: .text%Java_java_io_UnixFileSystem_list;
+text: .text%JNU_GetStringPlatformChars;
+text: .text%JNU_ReleaseStringPlatformChars;
+text: .text%JNU_ClassString;
+text: .text%JNU_CopyObjectArray;
+text: .text%Java_java_io_UnixFileSystem_canonicalize;
+text: .text%Java_java_io_UnixFileSystem_getBooleanAttributes0;
+text: .text%Java_java_lang_ClassLoader_findLoadedClass;
+text: .text%Java_java_lang_ClassLoader_findBootstrapClass;
+text: .text%Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedExceptionAction_2Ljava_security_AccessControlContext_2;
+text: .text%Java_java_lang_System_mapLibraryName;
+text: .text%cpchars: OUTPUTDIR/tmp/java/java.lang/java/obj/System.o;
+text: .text%Java_java_lang_ClassLoader_00024NativeLibrary_load;
+text: .text%Java_java_lang_ClassLoader_00024NativeLibrary_find;
+text: .text%Java_java_lang_Float_floatToIntBits;
+text: .text%Java_java_lang_Double_doubleToLongBits;
+text: .text%Java_java_io_FileInputStream_open;
+text: .text%fileOpen;
+text: .text%Java_java_io_UnixFileSystem_getLength;
+text: .text%Java_java_io_FileInputStream_readBytes;
+text: .text%readBytes;
+text: .text%Java_java_io_FileInputStream_close0;
+text: .text%Java_java_lang_Object_getClass;
+text: .text%Java_java_lang_ClassLoader_defineClass0;
+text: .text%VerifyClassCodes;
+# Test Exit
+text: .text%Java_java_lang_Shutdown_halt;
+# Test Hello
+text: .text%Java_java_io_FileOutputStream_writeBytes;
+text: .text%writeBytes;
+# Test Sleep
+# Test IntToString
+# Test LoadToolkit
+text: .text%Java_java_util_ResourceBundle_getClassContext;
+text: .text%Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedAction_2Ljava_security_AccessControlContext_2;
+text: .text%JNU_GetEnv;
+text: .text%Java_java_io_UnixFileSystem_checkAccess;
+text: .text%Java_sun_reflect_NativeMethodAccessorImpl_invoke0;
+text: .text%Java_java_lang_ref_Finalizer_invokeFinalizeMethod;
+text: .text%Java_java_io_FileInputStream_available;
+text: .text%Java_java_lang_reflect_Array_newArray;
+text: .text%Java_java_lang_Throwable_getStackTraceDepth;
+text: .text%Java_java_lang_Throwable_getStackTraceElement;
+text: .text%Java_java_lang_System_identityHashCode;
+text: .text%Java_sun_misc_Signal_findSignal;
+text: .text%Java_sun_misc_Signal_handle0;
+text: .text%JNU_NotifyAll;
+# Test LoadFrame
+text: .text%JNU_CallMethodByName;
+text: .text%JNU_CallMethodByNameV;
+text: .text%Java_java_util_logging_FileHandler_lockFile;
+text: .text%Java_java_io_FileOutputStream_open;
+text: .text%Java_java_io_UnixFileSystem_createDirectory;
+text: .text%Java_java_io_UnixFileSystem_getLastModifiedTime;
+text: .text%Java_java_util_prefs_FileSystemPreferences_lockFile0;
+text: .text%Java_java_io_UnixFileSystem_setLastModifiedTime;
+text: .text%Java_java_util_prefs_FileSystemPreferences_unlockFile0;
+text: .text%Java_java_io_FileOutputStream_close0;
+text: .text%Java_java_util_logging_FileHandler_unlockFile;
+# Test LoadJFrame
+text: .text%Java_java_lang_Class_isAssignableFrom;
+text: .text%Java_java_lang_Class_isInstance;
+# Test JHello
+# SwingSet
+text: .text%Java_java_util_TimeZone_getSystemTimeZoneID;
+text: .text%findJavaTZ_md;
+text: .text%Java_java_lang_StrictMath_log;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/java/reorder-sparc	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,107 @@
+data = R0x2000;
+text = LOAD ?RXO;
+# Test Null
+text: .text%init64IO: OUTPUTDIR/tmp/java/java.lang/java/obj/UnixFileSystem_md.o;
+text: .text%JNI_OnLoad;
+text: .text%Canonicalize;
+text: .text%canonicalize;
+text: .text%collapse: OUTPUTDIR/tmp/java/java.lang/java/obj/canonicalize_md.o;
+text: .text%Java_java_lang_Object_registerNatives;
+text: .text%Java_java_lang_System_registerNatives;
+text: .text%Java_java_lang_Thread_registerNatives;
+text: .text%Java_java_security_AccessController_getStackAccessControlContext;
+text: .text%Java_java_security_AccessController_getInheritedAccessControlContext;
+text: .text%Java_java_lang_ClassLoader_registerNatives;
+text: .text%Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedAction_2;
+text: .text%Java_java_lang_Class_registerNatives;
+text: .text%Java_java_io_ObjectStreamClass_initNative;
+text: .text%Java_java_lang_Class_getPrimitiveClass;
+text: .text%Java_java_lang_System_initProperties;
+text: .text%GetJavaProperties;
+text: .text%JNU_NewStringPlatform;
+text: .text%initializeEncoding: OUTPUTDIR/tmp/java/java.lang/java/obj/jni_util.o;
+text: .text%JNU_CallStaticMethodByName;
+text: .text%newString646_US: OUTPUTDIR/tmp/java/java.lang/java/obj/jni_util.o;
+text: .text%NewStringPlatform;
+text: .text%Java_java_io_FileInputStream_initIDs;
+text: .text%Java_java_io_FileDescriptor_initIDs;
+text: .text%Java_java_io_FileOutputStream_initIDs;
+text: .text%Java_java_lang_System_setIn0;
+text: .text%Java_sun_reflect_Reflection_getCallerClass;
+text: .text%Java_java_lang_Class_forName0;
+text: .text%Java_java_lang_Object_getClass;
+text: .text%Java_sun_reflect_Reflection_getClassAccessFlags;
+text: .text%Java_sun_reflect_NativeConstructorAccessorImpl_newInstance0;
+text: .text%Java_java_lang_System_setOut0;
+text: .text%Java_java_lang_System_setErr0;
+text: .text%Java_java_lang_System_identityHashCode;
+text: .text%Java_sun_misc_Signal_findSignal;
+text: .text%Java_sun_misc_Signal_handle0;
+text: .text%Java_java_io_FileSystem_getFileSystem;
+text: .text%JNU_NewObjectByName;
+text: .text%Java_java_io_UnixFileSystem_initIDs;
+text: .text%Java_java_io_UnixFileSystem_canonicalize;
+text: .text%JNU_GetStringPlatformChars;
+text: .text%JNU_ReleaseStringPlatformChars;
+text: .text%Java_java_io_FileInputStream_open;
+text: .text%fileOpen;
+text: .text%Java_java_io_FileInputStream_readBytes;
+text: .text%readBytes;
+text: .text%Java_java_io_FileInputStream_available;
+text: .text%Java_java_io_FileInputStream_close0;
+text: .text%Java_java_lang_System_mapLibraryName;
+text: .text%Java_java_io_UnixFileSystem_getBooleanAttributes0;
+text: .text%statMode: OUTPUTDIR/tmp/java/java.lang/java/obj/UnixFileSystem_md.o;
+text: .text%Java_java_lang_ClassLoader_00024NativeLibrary_load;
+text: .text%Java_java_lang_Compiler_registerNatives;
+text: .text%Java_java_lang_ClassLoader_00024NativeLibrary_find;
+text: .text%Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedExceptionAction_2;
+text: .text%Java_java_io_UnixFileSystem_list;
+text: .text%JNU_ClassString;
+text: .text%JNU_CopyObjectArray;
+text: .text%Java_java_lang_String_intern;
+text: .text%Java_java_lang_ClassLoader_findLoadedClass;
+text: .text%Java_java_lang_ClassLoader_findBootstrapClass;
+text: .text%Java_java_lang_Throwable_fillInStackTrace;
+text: .text%Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedExceptionAction_2Ljava_security_AccessControlContext_2;
+text: .text%Java_java_io_UnixFileSystem_getLastModifiedTime;
+text: .text%Java_java_lang_Float_floatToIntBits;
+text: .text%Java_java_lang_Double_doubleToLongBits;
+text: .text%Java_java_io_UnixFileSystem_getLength;
+text: .text%Java_java_lang_ClassLoader_defineClass0;
+text: .text%VerifyClassCodes;
+# Test Exit
+text: .text%Java_java_lang_Shutdown_halt;
+# Test Hello
+text: .text%Java_java_io_FileOutputStream_writeBytes;
+text: .text%writeBytes;
+# Test Sleep
+# Test IntToString
+# Test LoadToolkit
+text: .text%Java_java_util_ResourceBundle_getClassContext;
+text: .text%Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedAction_2Ljava_security_AccessControlContext_2;
+text: .text%JNU_GetEnv;
+text: .text%Java_java_io_UnixFileSystem_checkAccess;
+text: .text%Java_java_lang_reflect_Array_newArray;
+text: .text%Java_java_lang_Throwable_getStackTraceDepth;
+text: .text%Java_java_lang_Throwable_getStackTraceElement;
+text: .text%throwFileNotFoundException;
+text: .text%JNU_NotifyAll;
+# Test LoadFrame
+text: .text%Java_java_lang_ref_Finalizer_invokeFinalizeMethod;
+text: .text%JNU_CallMethodByName;
+text: .text%JNU_CallMethodByNameV;
+text: .text%Java_java_io_UnixFileSystem_createDirectory;
+text: .text%Java_java_util_prefs_FileSystemPreferences_lockFile0;
+text: .text%Java_java_io_UnixFileSystem_setLastModifiedTime;
+text: .text%Java_java_util_prefs_FileSystemPreferences_unlockFile0;
+# Test LoadJFrame
+text: .text%Java_sun_reflect_NativeMethodAccessorImpl_invoke0;
+text: .text%Java_java_lang_Class_isInstance;
+# Test JHello
+# SwingSet
+text: .text%Java_java_lang_Class_isAssignableFrom;
+text: .text%Java_java_util_TimeZone_getSystemTimeZoneID;
+text: .text%findJavaTZ_md;
+text: .text%Java_java_lang_StrictMath_log;
+text: .text%Java_java_lang_StrictMath_sqrt;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/java/reorder-sparcv9	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,103 @@
+data = R0x2000;
+text = LOAD ?RXO;
+# Test Null
+text: .text%init64IO: OUTPUTDIR/tmp/java/java.lang/java/obj64/UnixFileSystem_md.o;
+text: .text%JNI_OnLoad;
+text: .text%Canonicalize;
+text: .text%canonicalize;
+text: .text%collapse: OUTPUTDIR/tmp/java/java.lang/java/obj64/canonicalize_md.o;
+text: .text%Java_java_lang_Object_registerNatives;
+text: .text%Java_java_lang_System_registerNatives;
+text: .text%Java_java_lang_Thread_registerNatives;
+text: .text%Java_java_security_AccessController_getStackAccessControlContext;
+text: .text%Java_java_security_AccessController_getInheritedAccessControlContext;
+text: .text%Java_java_lang_ClassLoader_registerNatives;
+text: .text%Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedAction_2;
+text: .text%Java_java_lang_Class_registerNatives;
+text: .text%Java_java_lang_Class_getPrimitiveClass;
+text: .text%Java_java_lang_System_initProperties;
+text: .text%GetJavaProperties;
+text: .text%JNU_NewStringPlatform;
+text: .text%initializeEncoding: OUTPUTDIR/tmp/java/java.lang/java/obj64/jni_util.o;
+text: .text%JNU_CallStaticMethodByName;
+text: .text%newString8859_1: OUTPUTDIR/tmp/java/java.lang/java/obj64/jni_util.o;
+text: .text%NewStringPlatform;
+text: .text%Java_java_io_FileInputStream_initIDs;
+text: .text%Java_java_io_FileDescriptor_initIDs;
+text: .text%Java_java_io_FileOutputStream_initIDs;
+text: .text%Java_java_lang_System_setIn0;
+text: .text%Java_sun_reflect_Reflection_getCallerClass;
+text: .text%Java_java_lang_Class_forName0;
+text: .text%Java_java_lang_String_intern;
+text: .text%Java_java_lang_Float_floatToIntBits;
+text: .text%Java_java_lang_Double_doubleToLongBits;
+text: .text%Java_java_lang_ClassLoader_findLoadedClass;
+text: .text%Java_java_lang_ClassLoader_findBootstrapClass;
+text: .text%VerifyClassCodes;
+text: .text%Java_java_lang_Throwable_fillInStackTrace;
+text: .text%Java_java_lang_System_setOut0;
+text: .text%Java_java_lang_System_setErr0;
+text: .text%Java_java_lang_System_identityHashCode;
+text: .text%Java_sun_misc_Signal_findSignal;
+text: .text%Java_sun_misc_Signal_handle0;
+text: .text%Java_java_io_FileSystem_getFileSystem;
+text: .text%JNU_NewObjectByName;
+text: .text%Java_java_io_UnixFileSystem_initIDs;
+text: .text%Java_java_io_UnixFileSystem_canonicalize;
+text: .text%JNU_GetStringPlatformChars;
+text: .text%JNU_ReleaseStringPlatformChars;
+text: .text%Java_java_io_FileInputStream_open;
+text: .text%fileOpen;
+text: .text%Java_java_io_FileInputStream_readBytes;
+text: .text%readBytes;
+text: .text%Java_java_io_FileInputStream_available;
+text: .text%Java_java_io_FileInputStream_close0;
+text: .text%Java_java_lang_Compiler_registerNatives;
+text: .text%Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedExceptionAction_2;
+text: .text%Java_java_io_UnixFileSystem_list;
+text: .text%JNU_ClassString;
+text: .text%JNU_CopyObjectArray;
+text: .text%Java_java_io_UnixFileSystem_getBooleanAttributes0;
+text: .text%statMode: OUTPUTDIR/tmp/java/java.lang/java/obj64/UnixFileSystem_md.o;
+text: .text%Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedExceptionAction_2Ljava_security_AccessControlContext_2;
+text: .text%Java_java_lang_System_mapLibraryName;
+text: .text%Java_java_lang_ClassLoader_00024NativeLibrary_load;
+text: .text%Java_java_lang_ClassLoader_00024NativeLibrary_find;
+text: .text%Java_java_io_UnixFileSystem_getLength;
+text: .text%Java_java_lang_Object_getClass;
+text: .text%Java_java_lang_ClassLoader_defineClass0;
+# Test Exit
+text: .text%Java_java_lang_Shutdown_halt;
+# Test Hello
+text: .text%Java_java_io_FileOutputStream_writeBytes;
+text: .text%writeBytes;
+# Test Sleep
+# Test IntToString
+# Test LoadToolkit
+text: .text%Java_java_util_ResourceBundle_getClassContext;
+text: .text%Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedAction_2Ljava_security_AccessControlContext_2;
+text: .text%JNU_GetEnv;
+text: .text%Java_java_io_UnixFileSystem_checkAccess;
+text: .text%Java_java_lang_ref_Finalizer_invokeFinalizeMethod;
+text: .text%Java_java_lang_reflect_Array_newArray;
+text: .text%Java_java_lang_Throwable_getStackTraceDepth;
+text: .text%Java_java_lang_Throwable_getStackTraceElement;
+text: .text%throwFileNotFoundException: OUTPUTDIR/tmp/java/java.lang/java/obj64/io_util.o;
+text: .text%JNU_NotifyAll;
+# Test LoadFrame
+text: .text%JNU_CallMethodByName;
+text: .text%JNU_CallMethodByNameV;
+text: .text%Java_java_io_UnixFileSystem_createDirectory;
+text: .text%Java_java_io_UnixFileSystem_getLastModifiedTime;
+text: .text%Java_java_util_prefs_FileSystemPreferences_lockFile0;
+text: .text%Java_java_io_UnixFileSystem_setLastModifiedTime;
+text: .text%Java_java_util_prefs_FileSystemPreferences_unlockFile0;
+# Test LoadJFrame
+text: .text%Java_java_lang_Class_isAssignableFrom;
+text: .text%Java_java_lang_Class_isInstance;
+# Test JHello
+# SwingSet
+text: .text%Java_java_util_TimeZone_getSystemTimeZoneID;
+text: .text%findJavaTZ_md;
+text: .text%Java_java_lang_StrictMath_log;
+text: .text%Java_java_lang_StrictMath_sqrt;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/java_crw_demo/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,63 @@
+#
+# Copyright (c) 2004, 2011, 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.
+#
+
+BUILDDIR = ../..
+
+LIBRARY = java_crw_demo
+PRODUCT = sun
+LIBRARY_OUTPUT = java_crw_demo
+
+# Configure the CFLAGS for this library.
+
+include $(BUILDDIR)/common/Defs.gmk
+
+SRCDIR=$(SHARE_SRC)/demo/jvmti/java_crw_demo
+
+# Use the mapfile-vers (See the mapfile located with this Makefile)
+FILES_m = mapfile-vers
+ifdef FILES_m
+include $(BUILDDIR)/common/Mapfile-vers.gmk
+endif
+
+#
+# Files to compile.
+#
+FILES_c = java_crw_demo.c
+
+OTHER_INCLUDES = -I$(SRCDIR)
+
+#
+# Library to compile.
+#
+include $(BUILDDIR)/common/Library.gmk
+
+# We don't want to link against -ljava
+JAVALIB=
+
+#
+# Add to ambient vpath so we pick up the library files
+#
+vpath %.c $(SRCDIR)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/java_crw_demo/mapfile-vers	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,34 @@
+#
+# Copyright (c) 2004, 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.
+#
+
+# Define public interface.
+
+SUNWprivate_1.1 {
+	global:
+	    java_crw_demo;
+	    java_crw_demo_classname;
+	local:
+	    *;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/java_hprof_demo/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,120 @@
+#
+# Copyright (c) 2003, 2011, 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.
+#
+
+BUILDDIR = ../..
+LIBRARY = hprof
+PRODUCT = sun
+LIBRARY_OUTPUT = hprof_jvmti
+
+# Use highest optimization
+OPTIMIZATION_LEVEL = HIGHEST
+
+# Configure the CFLAGS for this library.
+FILES_m = mapfile-vers
+
+include $(BUILDDIR)/common/Defs.gmk
+
+SRCDIR=$(SHARE_SRC)/demo/jvmti/hprof
+PSRCDIR=$(PLATFORM_SRC)/demo/jvmti/hprof
+
+# Use the mapfile-vers (See the mapfile located with this Makefile)
+ifdef FILES_m
+include $(BUILDDIR)/common/Mapfile-vers.gmk
+endif
+
+#
+# Files to compile.
+#
+FILES_c = 				\
+	debug_malloc.c 	\
+	hprof_blocks.c 	\
+	hprof_check.c 	\
+	hprof_class.c 	\
+	hprof_cpu.c 		\
+	hprof_error.c 	\
+	hprof_event.c 	\
+	hprof_frame.c 	\
+	hprof_init.c 	\
+	hprof_io.c 		\
+	hprof_ioname.c 	\
+	hprof_listener.c 	\
+	hprof_loader.c 	\
+	hprof_md.c 		\
+	hprof_monitor.c	\
+	hprof_object.c	\
+	hprof_reference.c	\
+	hprof_site.c 	\
+	hprof_stack.c 	\
+	hprof_string.c 	\
+	hprof_table.c 	\
+	hprof_tag.c 		\
+	hprof_tls.c 		\
+	hprof_trace.c	\
+	hprof_tracker.c 	\
+	hprof_util.c
+
+OTHER_INCLUDES = -I$(SRCDIR) \
+	         -I$(SHARE_SRC)/npt \
+	         -I$(PLATFORM_SRC)/npt \
+	         -I$(SHARE_SRC)/demo/jvmti/java_crw_demo
+
+ifeq ($(PLATFORM), windows)
+  OTHER_LDLIBS += wsock32.lib winmm.lib
+else
+  OTHER_LDLIBS += $(LIBSOCKET) $(LIBNSL) $(LIBDL)
+endif
+
+#
+# Tell library.gmk to copy the txt file first
+#
+INIT += $(LIBDIR)/jvm.hprof.txt
+
+#
+# This puts logging code in
+#
+CPPFLAGS_DBG += -DHPROF_LOGGING
+
+#
+# Library to compile.
+#
+include $(BUILDDIR)/common/Library.gmk
+
+# We don't want to link against -ljava
+JAVALIB=
+
+#
+# Add to ambient vpath so we pick up the library files
+#
+vpath %.c $(SRCDIR):$(PSRCDIR)
+
+#
+# Install the hprof prelude
+#
+$(LIBDIR)/jvm.hprof.txt: $(SRCDIR)/jvm.hprof.txt
+	$(install-file)
+
+clean clobber::
+	$(RM) $(LIBDIR)/jvm.hprof.txt
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/java_hprof_demo/mapfile-vers	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,34 @@
+#
+# Copyright (c) 2003, 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.
+#
+
+# Define public interface.
+
+SUNWprivate_1.1 {
+	global:
+	    Agent_OnLoad;
+	    Agent_OnUnload;
+	local:
+	    *;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/jexec/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,72 @@
+#
+# Copyright (c) 1999, 2005, 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.
+#
+
+#
+# Makefile for building jexec, a wrapper for direct execution of JAR files
+# on UNIX systems.
+#
+
+BUILDDIR = ../..
+
+PACKAGE = java.jexec
+PRODUCT = sun
+PROGRAM = jexec
+
+include $(BUILDDIR)/common/Defs.gmk
+
+ifeq ($(COMPILE_APPROACH),batch)
+  override COMPILE_APPROACH = normal
+endif
+
+include $(BUILDDIR)/common/Rules.gmk
+
+JEXE_SRC =      $(PLATFORM_SRC)/bin
+
+FILES_c =       jexec.c
+FILES_o =       $(patsubst %.c,$(OBJDIR)/%.o,$(FILES_c))
+
+vpath %.c       $(JEXE_SRC)
+
+ifeq ($(PLATFORM), linux)
+  #
+  # On Linux jexec goes in lib, not lib/<arch>
+  #
+  LIB_LOCATION = $(LIBDIR)
+
+  #
+  # Also include the manifest_info.h header file.
+  #
+  OTHER_INCLUDES += -I$(SHARE_SRC)/bin
+endif # PLATFORM
+
+build: $(LIB_LOCATION)/$(PROGRAM)
+
+$(LIB_LOCATION)/$(PROGRAM):: $(FILES_o)
+	$(prep-target)
+	$(LINK_PRE_CMD) $(CC) $(LDFLAGS) $(FILES_o) $(CC_OBJECT_OUTPUT_FLAG)$@
+
+clean clobber:: 
+	$(RM) $(FILES_o) $(LIB_LOCATION)/$(PROGRAM)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/jli/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,231 @@
+#
+# Copyright (c) 2005, 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.
+#
+
+#
+# Java Launcher Infrastructure Library (libjli)
+#
+# This library provides shared support for the Java launcher in all of
+# its manifestations (java, javaw, javac, ...).
+#
+BUILDDIR = ../..
+LIBRARY = jli
+PRODUCT = java
+
+#
+# Must be included before Defs.gmk to be functional.
+#
+# Note that for Windows, both a dynamic and static version are built.
+# Doing the compiles with the static library specified can be overridden
+# by the link step, but not the reverse.
+#
+MS_RUNTIME_STATIC = true
+
+include $(BUILDDIR)/common/Defs.gmk
+
+ifneq ($(SYSTEM_ZLIB),true)
+  ZIP_SRC = $(SHARE_SRC)/native/java/util/zip/zlib-$(ZLIB_VERSION)
+endif #SYSTEM_ZLIB
+LAUNCHER_SHARE_SRC = $(SHARE_SRC)/bin
+
+# set the platform specific directory for macosx, also this platform shares
+# substantial family ties with its siblings (solaris and linux), thus we add
+# solaris src path to its compilation dependencies.
+ifeq ($(PLATFORM), macosx)
+ LAUNCHER_PLATFORM_SRC = $(BUILDDIR)/../src/macosx/bin
+ LAUNCHER_SOLARIS_PLATFORM_SRC  = $(BUILDDIR)/../src/solaris/bin
+else # !MACOSX
+ LAUNCHER_PLATFORM_SRC = $(PLATFORM_SRC)/bin
+endif #PLATFORM
+
+ifeq ($(ZERO_BUILD), true)
+  ERGO_FAMILY=zero
+else # !ZERO_BUILD
+  ifneq (,$(findstring $(ARCH_FAMILY), amd64 x86_64))
+    ERGO_FAMILY=i586
+  else # !X86 FAMILY
+    ERGO_FAMILY=$(ARCH_FAMILY)
+  endif #ARCH_FAMILY
+endif # ZERO_BUILD
+
+#
+# Files to compile.
+#
+FILES_c = java.c \
+          splashscreen_stubs.c \
+          parse_manifest.c \
+          version_comp.c \
+          wildcard.c \
+          jli_util.c
+
+ifneq ($(SYSTEM_ZLIB),true)
+  FILES_c += inflate.c \
+             inftrees.c \
+             inffast.c \
+             zadler32.c \
+             zcrc32.c \
+             zutil.c
+endif # SYSTEM_ZLIB
+
+# add platform specific files
+ifeq ($(PLATFORM), windows)
+  FILES_c += java_md.c
+else # NIXES
+  FILES_c += java_md_common.c
+  ifeq ($(PLATFORM), macosx)
+    FILES_c += java_md_macosx.c
+  else # SOLARIS/LINUX
+    FILES_c += java_md_solinux.c
+    FILES_c += ergo.c 
+    ERGO_ARCH_FILE = ergo_$(ERGO_FAMILY).c
+    # if the architecture specific ergo file exists then
+    # use it, else use the generic definitions from ergo.c
+    ifneq ($(wildcard $(LAUNCHER_PLATFORM_SRC)/$(ERGO_ARCH_FILE)),)
+      FILES_c += $(ERGO_ARCH_FILE)
+    else # !ERGO_ARCH_FILE
+      OTHER_CPPFLAGS += -DUSE_GENERIC_ERGO
+    endif # ERGO_ARCH_FILE
+  endif #MACOSX
+endif #WINDOWS
+
+# Names of arch directories
+LIBARCH_DEFINES = -DLIBARCHNAME='"$(LIBARCH)"'
+ifeq ($(PLATFORM), solaris)
+  LIBARCH_DEFINES += -DLIBARCH32NAME='"$(LIBARCH32)"'
+  LIBARCH_DEFINES += -DLIBARCH64NAME='"$(LIBARCH64)"'
+endif # PLATFORM
+
+ifeq ($(PLATFORM), macosx)
+  OTHER_CPPFLAGS += $(LIBARCH_DEFINES) -DPACKAGE_PATH=\"$(PACKAGE_PATH)\"
+else # ! MACOSX
+  OTHER_CPPFLAGS += $(LIBARCH_DEFINES)
+endif #PLATFORM
+
+ifneq ($(PLATFORM), windows)	# UNIX systems
+  ifeq ($(PLATFORM), macosx)
+    LIB_LOCATION = $(LIBDIR)/jli
+  else # SOLARIS/LINUX
+    LD_RUNPATH_EXTRAS += ..
+    LIB_LOCATION = $(LIBDIR)/$(LIBARCH)/jli
+    # Note: it is important to keep this order, meaning -lc as the
+    # last library, otherwise it could cause compatibility issues
+    # by pulling in SUNW_private symbols from libc
+    LDLIBS = -ldl -lc
+    ifeq ($(USE_PTHREADS),true)
+      LDLIBS += -lpthread
+    endif # USE_PTHREADS 
+  endif # PLATFORM
+endif # PLATFORM
+
+ifeq ($(PLATFORM), windows)
+  EXTRA_LIBS = advapi32.lib \
+               comctl32.lib \
+               user32.lib
+  JAVALIB =
+  OTHER_LCF = -export:JLI_Launch \
+              -export:JLI_ManifestIterate \
+              -export:JLI_SetTraceLauncher \
+              -export:JLI_ReportErrorMessage \
+              -export:JLI_ReportErrorMessageSys \
+              -export:JLI_ReportMessage \
+              -export:JLI_ReportExceptionDescription
+endif # PLATFORM
+
+OTHER_INCLUDES += -I$(LAUNCHER_SHARE_SRC)
+OTHER_INCLUDES += -I$(LAUNCHER_PLATFORM_SRC)
+ifneq ($(SYSTEM_ZLIB),true)
+  OTHER_INCLUDES += -I$(ZIP_SRC)
+else # !SYSTEM_ZLIB
+  LDLIBS += -lz
+endif # SYSTEM_ZLIB
+
+#
+# Library to compile.
+#
+include $(BUILDDIR)/common/Mapfile-vers.gmk
+include $(BUILDDIR)/common/Library.gmk
+
+#
+# On Windows, some executable objects need to be statically linked against
+# the jli library.  Hence, we need both a standard library (archive) and
+# an import library (associated with a dll).  These both usually have the
+# extension .LIB, so they need to be placed in different directories.  The
+# import library is build (as usual) in the $(OBJDIR) directory while the
+# standard library is built in a "static" subdirectory.  The standard library
+# is not delivered as part of the product, but is only needed as part of
+# the build process.  The import library is built by the standard rules
+# in Library.gmk.  The additional rules which follow build the standard
+# library.
+#
+ifeq ($(PLATFORM), windows)
+  STATIC_LIBRARY = $(OBJDIR)/static/$(LIBPREFIX)$(LIBRARY).lib
+
+  $(STATIC_LIBRARY): $(FILES_o)
+	@$(prep-target)
+	$(AR) -nologo -out:$@ $(FILES_o)
+
+  library:: $(STATIC_LIBRARY)
+else
+
+ifeq ($(PLATFORM), macosx)
+  # Some Obj-C code is embedded in java_md_macosx.c, we stipulate so, using
+  # "-x" option. Not doing so will cause the compiler to choose the language
+  # based on the filename suffix, also "-Os" optimizes the file for size.
+  CFLAGS_$(VARIANT)/java_md_macosx.o = -Os -x objective-c
+  # Needed for linking the various launchers
+  LDFLAGS += -framework Cocoa -framework Security \
+             -framework ApplicationServices
+  # Add solaris sources containing common logic to the header path
+  OTHER_INCLUDES += -I$(LAUNCHER_SOLARIS_PLATFORM_SRC)
+endif # PLATFORM macosx
+
+STATIC_LIBRARY_DIR = $(OBJDIR)/static
+STATIC_LIBRARY_NAME = lib$(LIBRARY).a
+STATIC_LIBRARY = $(STATIC_LIBRARY_DIR)/$(STATIC_LIBRARY_NAME)
+
+$(STATIC_LIBRARY_DIR): | $(OBJDIR)
+	@$(MKDIR) $(STATIC_LIBRARY_DIR)
+
+$(STATIC_LIBRARY): $(STATIC_LIBRARY_DIR)
+	@$(prep-target)
+	$(AR) $(ARFLAGS) $@ $(FILES_o)
+
+library:: $(STATIC_LIBRARY)
+endif # NOT WINDOWS
+
+vpath %.c $(LAUNCHER_SHARE_SRC) $(LAUNCHER_PLATFORM_SRC)
+ifneq ($(SYSTEM_ZLIB),true)
+  vpath %.c $(ZIP_SRC)
+else # !SYSTEM_ZLIB
+  #
+  # Add to ambient vpath so we pick up the library files, for macos we add 
+  # solaris sources which contains the common logic for all nixes
+  #
+  ifeq ($(PLATFORM), macosx)
+    vpath %.c $(LAUNCHER_SHARE_SRC) $(ZIP_SRC) $(LAUNCHER_PLATFORM_SRC) \
+          $(LAUNCHER_SOLARIS_PLATFORM_SRC)
+  else # !MACOSX
+    vpath %.c $(LAUNCHER_SHARE_SRC) $(ZIP_SRC) $(LAUNCHER_PLATFORM_SRC)
+  endif # MACOSX
+endif # SYSTEM_LIB
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/jli/mapfile-vers	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,39 @@
+#
+# Copyright (c) 2005, 2008, 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.
+#
+
+# Define public interface.
+
+SUNWprivate_1.1 {
+	global:
+		JLI_Launch;
+		JLI_ManifestIterate;
+		JLI_SetTraceLauncher;
+		JLI_ReportErrorMessage;
+		JLI_ReportErrorMessageSys;
+		JLI_ReportMessage;
+		JLI_ReportExceptionDescription;
+	local:
+		*;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/jobjc/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,76 @@
+#
+# Copyright (c) 2011, 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.
+#
+
+#
+# Makefile for building jobjc
+
+BUILDDIR = ../..
+include $(BUILDDIR)/common/Defs.gmk
+SRCDIR = $(JDK_TOPDIR)/src/macosx/native/jobjc
+
+ifeq ($(PLATFORM),macosx)
+
+# FRAMEWORKS for which we want to build bridge support
+FRAMEWORKS = Foundation CoreFoundation AppKit
+
+# metadata stuff
+GEN_DIR = $(OUTPUTDIR)/bridge_metadata
+STABLE_GEN_DIR = $(OUTPUTDIR)/stable_bridge_metadata
+STABLE_METADATA_FILES = $(addsuffix Full.bridgesupport,$(addprefix $(STABLE_GEN_DIR)/,$(FRAMEWORKS)))
+
+# source files
+CORE_SRC = $(shell $(FIND) $(SRCDIR) -type f -name "*.hs" -or -name "*.java" -or -name "*.m" -or -name "*.h" -print)
+GENERATOR_SRC = $(shell $(FIND) $(SRCDIR) -type f -name "*.java" -print)
+ADDITIONS_SRC = $(shell $(FIND) $(SRCDIR) -type f -name "*.java" -or -name "*.m" -or -name "*.h" -print)
+BUILD_SRC = $(SRCDIR)/JObjC.xcodeproj/project.pbxproj $(SRCDIR)/bridgesupport.gmk $(SRCDIR)/build.xml $(SRCDIR)/extract_classes.pl $(SRCDIR)/run-and-write-if-okay $(SRCDIR)/rungen $(SRCDIR)/runjava
+
+# jobjc products for jdk
+BUILT_DYLIB = $(OUTPUTDIR)/JObjC.dst/Debug/libJObjC.dylib
+BUILT_JAR = $(OUTPUTDIR)/JObjC.build/JObjC.jar
+
+$(GEN_DIR):
+	mkdir -p $(GEN_DIR)
+
+stabilize: $(GEN_DIR)
+	@echo Updating bridge support in $(GEN_DIR)
+	($(CD) $(GEN_DIR); $(MAKE) STABLE_GEN_DIR="$(STABLE_GEN_DIR)" FRAMEWORKS="$(FRAMEWORKS)" -f $(SRCDIR)/bridgesupport.gmk all)
+
+$(STABLE_METADATA_FILES): stabilize
+
+ABS_OUTPUTDIR=$(realpath $(OUTPUTDIR))
+ABS_STABLE_GEN_DIR=$(realpath $(STABLE_GEN_DIR))
+
+$(BUILT_DYLIB) $(BUILT_JAR): $(STABLE_METADATA_FILES) $(CORE_SRC) $(GENERATOR_SRC) $(ADDITIONS_SRC) $(BUILD_SRC)
+	@echo JObjC dylib or jar out of data wrt FRAMEWORKS '(' $(FRAMEWORKS) ')' or JObjC source '(' core, generator, additions, build ')'
+	@echo Running ant with java_home set to ${ALT_BOOTDIR}
+	(cd $(SRCDIR); OBJROOT="$(ABS_OUTPUTDIR)/JObjC.build" DSTROOT="$(ABS_OUTPUTDIR)/JObjC.dst" JAVA_HOME=${ALT_BOOTDIR} STABLE_GEN_DIR="$(ABS_STABLE_GEN_DIR)" /usr/bin/ant -verbose all)
+
+all: $(BUILD_DYLIB) $(BUILT_JAR)
+	$(CP) $(BUILT_DYLIB) $(LIB_LOCATION)/libJObjC.dylib
+
+clean clobber::
+	(cd $(SRCDIR); export OBJROOT=$(OUTPUTDIR)/JObjC.build; export DSTROOT=$(OUTPUTDIR)/JObjC.dst; /usr/bin/ant clean)
+
+endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/jvm/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,95 @@
+#
+# Copyright (c) 1995, 2011, 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.
+#
+
+BUILDDIR = ../..
+
+include $(BUILDDIR)/common/Defs.gmk
+
+JVMCFG = $(JVMCFG_DIR)/jvm.cfg
+
+#
+# How to install jvm.cfg.
+#
+ifeq ($(ZERO_BUILD), true)
+JVMCFG_ARCH = zero
+else
+JVMCFG_ARCH = $(ARCH)
+endif
+
+ifeq ($(PLATFORM),macosx)
+  JVMCFG_SRC=$(PLATFORM_SRC_MACOS)/bin/$(JVMCFG_ARCH)/jvm.cfg
+  JVMCFG_DIR = $(LIBDIR)
+else
+  JVMCFG_SRC=$(PLATFORM_SRC)/bin/$(JVMCFG_ARCH)/jvm.cfg
+  JVMCFG_DIR = $(LIBDIR)/$(LIBARCH)
+endif
+
+ifeq ($(ARCH_DATA_MODEL),32)
+    # On 32 bit machines, we can have client and/or server libjvms installed.
+    # Since the currently committed jvm.cfg expects clientANDserver, we need 
+    # to patch the jvm.cfg when we have built only a client or only a server.
+    # This should also support -kernel, -zero and -zeroshark.
+    ifeq ($(JVM_VARIANTS),$(COMMA)client$(COMMA))
+        # Create a patched jvm.cfg to use -client by default and alias -server to -client.
+        $(JVMCFG)::
+		$(MKDIR) -p $(JVMCFG_DIR)
+		$(RM) -f $(JVMCFG)
+		$(PRINTF) "-client KNOWN\n">$(JVMCFG)
+		$(PRINTF) "-server IGNORE\n">>$(JVMCFG)
+		$(PRINTF) "-hotspot ALIASED_TO -client\n">>$(JVMCFG)
+		$(PRINTF) "-classic WARN\n">>$(JVMCFG)
+		$(PRINTF) "-native ERROR\n">>$(JVMCFG)
+		$(PRINTF) "-green ERROR\n">>$(JVMCFG)
+    else
+        ifeq ($(JVM_VARIANTS),$(COMMA)server$(COMMA))
+            # Create a patched jvm.cfg to use -server by default and alias -client to -server.
+            $(JVMCFG)::
+		$(MKDIR) -p $(JVMCFG_DIR)
+		$(RM) -f $(JVMCFG)
+		$(PRINTF) "-server KNOWN\n">$(JVMCFG)
+		$(PRINTF) "-client IGNORE\n">>$(JVMCFG)
+		$(PRINTF) "-hotspot IGNORE\n">>$(JVMCFG)
+		$(PRINTF) "-classic WARN\n">>$(JVMCFG)
+		$(PRINTF) "-native ERROR\n">>$(JVMCFG)
+		$(PRINTF) "-green ERROR\n">>$(JVMCFG)
+        else
+            # Use the default jvm.cfg for this 32 bit setup. 
+            $(JVMCFG): $(JVMCFG_SRC)
+		$(install-file)
+        endif
+    endif
+else
+    # Use the default jvm.cfg for this 64 bit setup.
+    $(JVMCFG): $(JVMCFG_SRC)
+	$(install-file)
+endif
+
+all: build
+
+build: $(JVMCFG)
+
+clean clobber:: 
+	$(RM) $(JVMCFG)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/main/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,43 @@
+#
+# Copyright (c) 1998, 2010, 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.
+#
+
+#
+# Makefile for building java command line tools
+#
+
+BUILDDIR = ../..
+PRODUCT = java
+include $(BUILDDIR)/common/Defs.gmk
+
+ifeq ($(PLATFORM), windows) 
+SUBDIRS = java javaw
+else 
+SUBDIRS = java
+endif 
+include $(BUILDDIR)/common/Subdirs.gmk
+
+all build clean clobber::
+	$(SUBDIRS-loop)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/main/java/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,64 @@
+#
+# Copyright (c) 1996, 2011, 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.
+#
+
+BUILDDIR = ../../..
+PROGRAM = java
+PRODUCT = java
+
+#
+# Statically link java to avoid the dependency on msvcrNN.dll.  This
+# must be set before Defs.gmk is included.
+#
+MS_RUNTIME_STATIC = true
+#
+# Statically link java to avoid the dependency on jli.dll.  This
+# must be set before Program.gmk is included.
+#
+STATIC_JLI = true
+
+include $(BUILDDIR)/common/Defs.gmk
+
+# Override the default version info with our own resource file (see 5106536)
+ifeq ($(PLATFORM), windows)
+LDLIBS_COMMON += user32.lib comctl32.lib
+
+ifdef OPENJDK
+    RC_FLAGS += -i "$(PLATFORM_SRC)/resource/icons"
+else
+    RC_FLAGS += -i "$(CLOSED_SRC)/windows/native/sun/windows"
+endif
+  VERSIONINFO_RESOURCE = $(PLATFORM_SRC)/resource/java.rc
+endif
+
+#
+# Rules.
+#
+include $(BUILDDIR)/common/Program.gmk
+OTHER_CPPFLAGS += -DEXPAND_CLASSPATH_WILDCARDS
+OTHER_CPPFLAGS += -DLAUNCHER_NAME='"$(LAUNCHER_NAME)"'
+
+ifeq ($(PLATFORM), solaris)
+LDFLAGS += -R$(OPENWIN_LIB)
+endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/main/java/mapfile-amd64	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,39 @@
+#
+# Copyright (c) 2004, 2011, 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.
+#
+#
+# Specify what global symbols we export.  Note that we're not really
+# interested in declaring a version, simply scoping the file is sufficient.
+#
+
+SUNWprivate_1.1 {
+	global:
+		main;		# Provides basic adb symbol offsets
+		environ;	# Public symbols and required by Java run time
+		_environ;
+		__environ_lock;
+
+	local:
+		*;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/main/java/mapfile-i586	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,48 @@
+#
+# Copyright (c) 2004, 2011, 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.
+#
+#
+# Specify what global symbols we export.  Note that we're not really
+# interested in declaring a version, simply scoping the file is sufficient.
+#
+
+SUNWprivate_1.1 {
+	global:
+		main;		# Provides basic adb symbol offsets
+		environ;	# Public symbols and required by Java run time
+		_environ;
+		__environ_lock;
+		___Argv;	# The following are private, but as they are
+		_start;		# exported from ctr1/crtn, the clever hacker
+		_init;		# might know about them.  However note, that
+		_fini;		# their use is strictly not supported.
+		_lib_version;
+#		_mcount;
+		__fsr;
+		__fsr_init_value;
+		__longdouble_used;
+
+	local:
+		*;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/main/java/mapfile-sparc	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,47 @@
+#
+# Copyright (c) 2004, 2011, 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.
+#
+# Specify what global symbols we export.  Note that we're not really
+# interested in declaring a version, simply scoping the file is sufficient.
+#
+
+SUNWprivate_1.1 {
+	global:
+		main;		# Provides basic adb symbol offsets
+		environ;	# Public symbols and required by Java run time
+		_environ;
+		__environ_lock;
+		___Argv;	# The following are private, but as they are
+		_start;		# exported from ctr1/crtn, the clever hacker
+		_init;		# might know about them.  However note, that
+		_fini;		# their use is strictly not supported.
+		_lib_version;
+		__cg92_used;
+		__xargc;
+		__xargv;
+		__fsr_init_value;
+
+	local:
+		*;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/main/java/mapfile-sparcv9	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,48 @@
+#
+# Copyright (c) 2004, 2011, 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.
+#
+
+#
+# Specify what global symbols we export.  Note that we're not really
+# interested in declaring a version, simply scoping the file is sufficient.
+#
+
+SUNWprivate_1.1 {
+	global:
+		main;		# Provides basic adb symbol offsets
+		environ;	# Public symbols and required by Java run time
+		_environ;
+		__environ_lock;
+		___Argv;	# The following are private, but as they are
+		_start;		# exported from ctr1/crtn, the clever hacker
+		_init;		# might know about them.  However note, that
+		_fini;		# their use is strictly not supported.
+		_lib_version;
+		__xargc;
+		__xargv;
+		__fsr_init_value;
+
+	local:
+		*;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/main/javaw/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,66 @@
+#
+# Copyright (c) 2000, 2011, 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.
+#
+
+#
+# Makefile for building javaw.exe (for windows)
+#
+
+BUILDDIR = ../../..
+PROGRAM = javaw
+PRODUCT = java
+
+#
+# Statically link javaw to avoid the dependency on msvcrNN.dll.  This
+# must be set before Defs.gmk is included.
+#
+MS_RUNTIME_STATIC = true
+#
+# Statically link javaw to avoid the dependency on jli.dll.  This
+# must be set before Program.gmk is included.
+#
+STATIC_JLI = true
+
+include $(BUILDDIR)/common/Defs.gmk
+
+OTHER_CPPFLAGS += -DJAVAW
+LDLIBS_COMMON +=  user32.lib comctl32.lib
+
+# Override the default version info with our own resource file (see 5106536)
+ifeq ($(PLATFORM), windows)
+ifdef OPENJDK
+    RC_FLAGS += -i "$(PLATFORM_SRC)/resource/icons"
+else
+    RC_FLAGS += -i "$(CLOSED_SRC)/windows/native/sun/windows"
+endif
+  VERSIONINFO_RESOURCE = $(PLATFORM_SRC)/resource/java.rc
+endif
+
+#
+# Rules.
+#
+include $(BUILDDIR)/common/Program.gmk
+OTHER_CPPFLAGS += -DEXPAND_CLASSPATH_WILDCARDS
+OTHER_CPPFLAGS += -DLAUNCHER_NAME='"$(LAUNCHER_NAME)"'
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/management/Exportedfiles.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,42 @@
+#
+# Copyright (c) 2003, 2005, 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.
+#
+
+#
+# These are the names of Java classes for which we will make .h files.
+#
+
+FILES_export = \
+	sun/management/ClassLoadingImpl.java \
+	sun/management/FileSystemImpl.java \
+	sun/management/Flag.java \
+	sun/management/GarbageCollectorImpl.java \
+	sun/management/GcInfoBuilder.java \
+	sun/management/HotSpotDiagnostic.java \
+	sun/management/HotspotThread.java \
+	sun/management/MemoryImpl.java \
+	sun/management/MemoryManagerImpl.java \
+	sun/management/MemoryPoolImpl.java \
+	sun/management/ThreadImpl.java \
+	sun/management/VMManagementImpl.java 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/management/FILES_c.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,40 @@
+#
+# Copyright (c) 2003, 2005, 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.
+#
+
+FILES_c = \
+	ClassLoadingImpl.c \
+	FileSystemImpl.c \
+	Flag.c \
+	GarbageCollectorImpl.c \
+	GcInfoBuilder.c \
+	HotSpotDiagnostic.c \
+	HotspotThread.c \
+	MemoryImpl.c \
+	MemoryManagerImpl.c \
+	MemoryPoolImpl.c \
+	ThreadImpl.c \
+	VMManagementImpl.c \
+	management.c
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/management/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,131 @@
+#
+# Copyright (c) 2003, 2011, 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.
+#
+
+BUILDDIR = ../..
+PACKAGE = java.lang.management
+LIBRARY = management
+PRODUCT = java
+include $(BUILDDIR)/common/Defs.gmk
+
+MGMT_SRC  = $(SHARE_SRC)/classes/java/lang/management
+SMGMT_SRC = $(SHARE_SRC)/classes/sun/management
+
+AGENTJAR = $(LIBDIR)/management-agent.jar
+MANIFEST = $(SMGMT_SRC)/manifest
+
+#
+# Use mapfile
+#
+FILES_m = mapfile-vers
+include $(BUILDDIR)/common/Mapfile-vers.gmk
+
+#
+# Files to compile
+#
+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
+
+include Exportedfiles.gmk
+
+ifeq ($(PLATFORM),windows)
+
+FILES_c     +=  OperatingSystem_md.c
+
+FILES_export +=	com/sun/management/OperatingSystem.java
+
+else # PLATFORM (i.e. solaris & linux)
+
+FILES_c     +=  UnixOperatingSystem_md.c
+
+FILES_export +=	com/sun/management/UnixOperatingSystem.java
+
+ifeq ($(PLATFORM),solaris)
+
+FILES_c     += SolarisOperatingSystem.c
+OTHER_LDLIBS += -lkstat
+
+endif # PLATFORM solaris
+
+ifeq ($(PLATFORM),linux)
+
+FILES_c     += LinuxOperatingSystem.c
+
+endif # PLATFORM linux
+
+ifeq ($(PLATFORM),macosx)
+
+FILES_c     += MacosxOperatingSystem.c
+
+endif # PLATFORM macosx
+
+endif # PLATFORM
+
+#
+# Resources
+#
+LOCALE_SET_DEFINITION = jre
+RESOURCE_BUNDLES_COMPILED_PROPERTIES = sun/management/resources/agent.properties
+
+#
+# Find C source files
+#
+vpath %.c $(SHARE_SRC)/native/sun/management
+vpath %.c $(PLATFORM_SRC)/native/sun/management
+vpath %.c $(PLATFORM_SRC)/native/com/sun/management
+
+#
+# Access to management.h 
+#
+
+OTHER_INCLUDES += \
+  -I$(SHARE_SRC)/native/sun/management 
+
+ifeq ($(PLATFORM),windows)
+  # Need process status helper API (psapi) on Windows
+  OTHER_LDLIBS += $(JVMLIB) psapi.lib
+endif
+
+#
+# Library to compile.
+#
+include $(BUILDDIR)/common/Library.gmk
+
+$(AGENTJAR): $(LIBDIR) $(TEMPDIR)/manifest
+	$(BOOT_JAR_CMD) -cfm $(AGENTJAR) $(TEMPDIR)/manifest $(BOOT_JAR_JFLAGS)
+	@$(java-vm-cleanup)
+
+$(TEMPDIR)/manifest: $(MANIFEST)
+	$(install-manifest-file)
+
+build: $(AGENTJAR)
+
+clean clobber::
+	$(RM) -r $(CLASSDESTDIR)/java/management
+	$(RM) -r $(CLASSDESTDIR)/sun/management
+	$(RM) $(TEMPDIR)/manifest $(AGENTJAR)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/management/mapfile-vers	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,120 @@
+#
+# Copyright (c) 2005, 2011, 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.
+#
+
+# Define library interface.
+
+SUNWprivate_1.1 {
+	global:
+	    Java_com_sun_management_UnixOperatingSystem_getCommittedVirtualMemorySize;
+	    Java_com_sun_management_UnixOperatingSystem_getFreePhysicalMemorySize;
+	    Java_com_sun_management_UnixOperatingSystem_getFreeSwapSpaceSize;
+	    Java_com_sun_management_UnixOperatingSystem_getMaxFileDescriptorCount;
+	    Java_com_sun_management_UnixOperatingSystem_getOpenFileDescriptorCount;
+	    Java_com_sun_management_UnixOperatingSystem_getProcessCpuLoad;
+	    Java_com_sun_management_UnixOperatingSystem_getProcessCpuTime;
+	    Java_com_sun_management_UnixOperatingSystem_getSystemCpuLoad;
+	    Java_com_sun_management_UnixOperatingSystem_getTotalPhysicalMemorySize;
+	    Java_com_sun_management_UnixOperatingSystem_getTotalSwapSpaceSize;
+	    Java_com_sun_management_UnixOperatingSystem_initialize;
+	    Java_sun_management_ClassLoadingImpl_setVerboseClass;
+	    Java_sun_management_FileSystemImpl_isAccessUserOnly0;
+	    Java_sun_management_Flag_getAllFlagNames;
+	    Java_sun_management_Flag_getFlags;
+	    Java_sun_management_Flag_getInternalFlagCount;
+	    Java_sun_management_Flag_initialize;
+	    Java_sun_management_Flag_setLongValue;
+	    Java_sun_management_Flag_setBooleanValue;
+	    Java_sun_management_Flag_setStringValue;
+	    Java_sun_management_GarbageCollectorImpl_getCollectionCount;
+	    Java_sun_management_GarbageCollectorImpl_getCollectionTime;
+	    Java_sun_management_GarbageCollectorImpl_setNotificationEnabled;
+	    Java_sun_management_GcInfoBuilder_fillGcAttributeInfo;
+	    Java_sun_management_GcInfoBuilder_getLastGcInfo0;
+	    Java_sun_management_GcInfoBuilder_getNumGcExtAttributes;
+	    Java_sun_management_HotSpotDiagnostic_dumpHeap;
+	    Java_sun_management_HotspotThread_getInternalThreadCount;
+	    Java_sun_management_HotspotThread_getInternalThreadTimes0;
+	    Java_sun_management_MemoryImpl_getMemoryManagers0;
+	    Java_sun_management_MemoryImpl_getMemoryPools0;
+	    Java_sun_management_MemoryImpl_getMemoryUsage0;
+	    Java_sun_management_MemoryImpl_setVerboseGC;
+	    Java_sun_management_MemoryManagerImpl_getMemoryPools0;
+	    Java_sun_management_MemoryPoolImpl_getCollectionUsage0;
+	    Java_sun_management_MemoryPoolImpl_getMemoryManagers0;
+	    Java_sun_management_MemoryPoolImpl_getPeakUsage0;
+	    Java_sun_management_MemoryPoolImpl_getUsage0;
+	    Java_sun_management_MemoryPoolImpl_resetPeakUsage0;
+	    Java_sun_management_MemoryPoolImpl_setCollectionThreshold0;
+	    Java_sun_management_MemoryPoolImpl_setPoolCollectionSensor;
+	    Java_sun_management_MemoryPoolImpl_setPoolUsageSensor;
+	    Java_sun_management_MemoryPoolImpl_setUsageThreshold0;
+	    Java_sun_management_ThreadImpl_dumpThreads0;
+	    Java_sun_management_ThreadImpl_findDeadlockedThreads0;
+	    Java_sun_management_ThreadImpl_findMonitorDeadlockedThreads0;
+	    Java_sun_management_ThreadImpl_getThreadInfo1;
+	    Java_sun_management_ThreadImpl_getThreads;
+	    Java_sun_management_ThreadImpl_getThreadTotalCpuTime0;
+	    Java_sun_management_ThreadImpl_getThreadTotalCpuTime1;
+	    Java_sun_management_ThreadImpl_getThreadUserCpuTime0;
+	    Java_sun_management_ThreadImpl_getThreadUserCpuTime1;
+	    Java_sun_management_ThreadImpl_getThreadAllocatedMemory1;
+	    Java_sun_management_ThreadImpl_resetContentionTimes0;
+	    Java_sun_management_ThreadImpl_resetPeakThreadCount0;
+	    Java_sun_management_ThreadImpl_setThreadContentionMonitoringEnabled0;
+	    Java_sun_management_ThreadImpl_setThreadCpuTimeEnabled0;
+	    Java_sun_management_ThreadImpl_setThreadAllocatedMemoryEnabled0;
+	    Java_sun_management_VMManagementImpl_getAvailableProcessors;
+	    Java_sun_management_VMManagementImpl_getClassInitializationTime;
+	    Java_sun_management_VMManagementImpl_getClassLoadingTime;
+	    Java_sun_management_VMManagementImpl_getClassVerificationTime;
+	    Java_sun_management_VMManagementImpl_getDaemonThreadCount;
+	    Java_sun_management_VMManagementImpl_getInitializedClassCount;
+	    Java_sun_management_VMManagementImpl_getLiveThreadCount;
+	    Java_sun_management_VMManagementImpl_getLoadedClassSize;
+	    Java_sun_management_VMManagementImpl_getMethodDataSize;
+	    Java_sun_management_VMManagementImpl_getPeakThreadCount;
+	    Java_sun_management_VMManagementImpl_getProcessId;
+	    Java_sun_management_VMManagementImpl_getSafepointCount;
+	    Java_sun_management_VMManagementImpl_getSafepointSyncTime;
+	    Java_sun_management_VMManagementImpl_getStartupTime;
+	    Java_sun_management_VMManagementImpl_getTotalApplicationNonStoppedTime;
+	    Java_sun_management_VMManagementImpl_getTotalClassCount;
+	    Java_sun_management_VMManagementImpl_getTotalCompileTime;
+	    Java_sun_management_VMManagementImpl_getTotalSafepointTime;
+	    Java_sun_management_VMManagementImpl_getTotalThreadCount;
+	    Java_sun_management_VMManagementImpl_getUnloadedClassCount;
+	    Java_sun_management_VMManagementImpl_getUnloadedClassSize;
+	    Java_sun_management_VMManagementImpl_getVerboseClass;
+	    Java_sun_management_VMManagementImpl_getVerboseGC;
+	    Java_sun_management_VMManagementImpl_getVersion0;
+	    Java_sun_management_VMManagementImpl_getVmArguments0;
+	    Java_sun_management_VMManagementImpl_initOptionalSupportFields;
+	    Java_sun_management_VMManagementImpl_isThreadContentionMonitoringEnabled;
+	    Java_sun_management_VMManagementImpl_isThreadCpuTimeEnabled;
+	    Java_sun_management_VMManagementImpl_isThreadAllocatedMemoryEnabled;
+            JNI_OnLoad;
+	local:
+	    *;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/net/FILES_c.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,59 @@
+#
+# Copyright (c) 1996, 2010, 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.
+#
+
+FILES_c = \
+	DatagramPacket.c \
+	InetAddress.c \
+	Inet4Address.c \
+	Inet6Address.c \
+	NetworkInterface.c \
+	InetAddressImplFactory.c \
+	Inet4AddressImpl.c \
+	Inet6AddressImpl.c \
+	SocketInputStream.c \
+	SocketOutputStream.c \
+	net_util.c \
+	net_util_md.c \
+	ResolverConfigurationImpl.c \
+	DefaultProxySelector.c
+
+ifeq ($(PLATFORM), linux)
+    FILES_c += linux_close.c
+endif
+
+ifeq ($(PLATFORM), macosx)
+    FILES_c += bsd_close.c
+endif
+
+ifeq ($(PLATFORM), windows)
+    FILES_c += TwoStacksPlainSocketImpl.c
+    FILES_c += DualStackPlainSocketImpl.c
+    FILES_c += TwoStacksPlainDatagramSocketImpl.c
+    FILES_c += DualStackPlainDatagramSocketImpl.c
+else
+    FILES_c += PlainSocketImpl.c
+    FILES_c += PlainDatagramSocketImpl.c
+endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/net/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,141 @@
+#
+# Copyright (c) 1995, 2011, 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.
+#
+
+BUILDDIR = ../..
+PACKAGE = java.net
+LIBRARY = net
+PRODUCT = sun
+JAVAC_MAX_WARNINGS = true
+JAVAC_WARNINGS_FATAL = true
+JAVAC_LINT_OPTIONS = -Xlint:all,-deprecation
+include $(BUILDDIR)/common/Defs.gmk
+
+#
+# Files
+#
+include FILES_c.gmk
+
+AUTO_FILES_JAVA_DIRS = java/net
+
+ifeq ($(PLATFORM), windows)
+    FILES_c += NTLMAuthSequence.c
+    FILES_c += NetworkInterface_winXP.c
+else
+    FILES_c += SdpSupport.c
+endif
+
+FILES_export = \
+    java/net/Socket.java \
+    java/net/SocketOptions.java \
+    java/net/SocketImpl.java \
+    java/net/AbstractPlainSocketImpl.java \
+    java/net/PlainSocketImpl.java \
+    java/net/ServerSocket.java \
+    java/net/InetAddress.java \
+    java/net/Inet4Address.java \
+    java/net/Inet6Address.java \
+    java/net/InetAddressImpl.java \
+    java/net/Inet4AddressImpl.java \
+    java/net/Inet6AddressImpl.java \
+    java/net/NetworkInterface.java \
+    java/net/SocketInputStream.java \
+    java/net/SocketOutputStream.java \
+    java/net/DefaultDatagramSocketImplFactory.java \
+    java/net/DatagramPacket.java \
+    java/net/DatagramSocket.java \
+    java/net/DatagramSocketImpl.java \
+    java/net/AbstractPlainDatagramSocketImpl.java \
+    java/net/MulticastSocket.java \
+    java/net/UnknownHostException.java \
+    java/net/ProtocolException.java \
+    sun/net/spi/DefaultProxySelector.java
+
+ifeq ($(PLATFORM), windows) 
+    FILES_export += java/net/TwoStacksPlainSocketImpl.java
+    FILES_export += java/net/DualStackPlainSocketImpl.java
+    FILES_export += java/net/TwoStacksPlainDatagramSocketImpl.java
+    FILES_export += java/net/DualStackPlainDatagramSocketImpl.java
+else
+    FILES_export += java/net/PlainDatagramSocketImpl.java
+endif
+
+#
+# Find platform specific native code
+#
+vpath %.c $(PLATFORM_SRC)/native/sun/net/dns $(PLATFORM_SRC)/native/sun/net/www/protocol/http/ntlm \
+    $(PLATFORM_SRC)/native/sun/net/sdp $(PLATFORM_SRC)/native/sun/net/spi
+
+#
+# Include rules
+#
+include $(BUILDDIR)/common/Mapfile-vers.gmk
+
+include $(BUILDDIR)/common/Library.gmk
+
+ifeq ($(PLATFORM), macosx)
+ifdef DONT_ENABLE_IPV6
+  OTHER_CFLAGS += -DDONT_ENABLE_IPV6
+endif
+  OTHER_LDLIBS = $(JVMLIB) -pthread
+else
+ifeq ($(PLATFORM), windows)
+  OTHER_LDLIBS = ws2_32.lib $(JVMLIB) \
+                 secur32.lib iphlpapi.lib delayimp.lib \
+                 /DELAYLOAD:secur32.dll /DELAYLOAD:iphlpapi.dll
+else
+  OTHER_LDLIBS = $(LIBSOCKET) $(LIBNSL) $(LIBDL) $(JVMLIB)
+endif
+ifeq ($(PLATFORM), linux)
+  OTHER_LDLIBS += -lpthread
+endif
+endif # PLATFORM
+
+CLASSES.export += java.lang.Integer java.io.FileDescriptor java.net.InetAddressImplFactory java.net.Inet4AddressImpl java.net.Inet6AddressImpl
+
+#
+# Resources
+#
+LOCALE_SET_DEFINITION = jre
+
+MISC_FILES = $(LIBDIR) $(LIBDIR)/net.properties
+
+$(LIBDIR)/net.properties: $(SHARE_SRC)/lib/net.properties
+	$(install-file)
+
+# 
+# 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)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/net/mapfile-vers	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,109 @@
+#
+# Copyright (c) 1997, 2010, 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.
+#
+
+# Define public interface.
+
+SUNWprivate_1.1 {
+	global:
+		JNI_OnLoad;
+		Java_java_net_PlainSocketImpl_socketListen;
+		Java_java_net_PlainDatagramSocketImpl_getTTL;
+		Java_java_net_PlainDatagramSocketImpl_init;
+		Java_java_net_SocketOutputStream_socketWrite0;
+		Java_java_net_PlainSocketImpl_socketCreate;
+		Java_java_net_PlainSocketImpl_socketAvailable;
+		Java_java_net_PlainDatagramSocketImpl_join;
+		Java_java_net_PlainDatagramSocketImpl_socketGetOption;
+		Java_java_net_InetAddress_init;
+		Java_java_net_Inet4Address_init;
+		Java_java_net_Inet6Address_init;
+		Java_java_net_PlainDatagramSocketImpl_setTTL;
+		Java_java_net_PlainDatagramSocketImpl_socketSetOption;
+		Java_java_net_PlainDatagramSocketImpl_bind0;
+		Java_java_net_PlainSocketImpl_socketAccept;
+		Java_java_net_DatagramPacket_init;
+		Java_java_net_PlainDatagramSocketImpl_leave;
+		Java_java_net_SocketInputStream_socketRead0;
+		Java_java_net_InetAddressImplFactory_isIPv6Supported;
+		Java_java_net_Inet4AddressImpl_getLocalHostName;
+		Java_java_net_Inet4AddressImpl_lookupAllHostAddr;
+		Java_java_net_Inet4AddressImpl_getHostByAddr;
+		Java_java_net_Inet4AddressImpl_isReachable0;
+		Java_java_net_Inet6AddressImpl_getLocalHostName;
+		Java_java_net_Inet6AddressImpl_lookupAllHostAddr;
+		Java_java_net_Inet6AddressImpl_getHostByAddr;
+		Java_java_net_Inet6AddressImpl_isReachable0;
+		Java_java_net_NetworkInterface_init;
+		Java_java_net_NetworkInterface_getByName0;
+		Java_java_net_NetworkInterface_getByIndex0;
+		Java_java_net_NetworkInterface_getByInetAddress0;
+		Java_java_net_NetworkInterface_getAll;
+		Java_java_net_NetworkInterface_isUp0;
+		Java_java_net_NetworkInterface_isLoopback0;
+		Java_java_net_NetworkInterface_isP2P0;
+		Java_java_net_NetworkInterface_supportsMulticast0;
+		Java_java_net_NetworkInterface_getMacAddr0;
+		Java_java_net_NetworkInterface_getMTU0;
+		Java_java_net_PlainDatagramSocketImpl_send;
+		Java_java_net_PlainSocketImpl_socketClose0;
+		Java_java_net_SocketOutputStream_init;
+		Java_java_net_PlainDatagramSocketImpl_peek;
+		Java_java_net_PlainDatagramSocketImpl_peekData;
+		Java_java_net_PlainSocketImpl_socketSetOption;
+		Java_java_net_PlainSocketImpl_socketSendUrgentData;
+		Java_java_net_PlainDatagramSocketImpl_datagramSocketCreate;
+		Java_java_net_PlainSocketImpl_socketGetOption;
+		Java_java_net_PlainDatagramSocketImpl_receive0;
+		Java_java_net_PlainDatagramSocketImpl_connect0;
+		Java_java_net_PlainDatagramSocketImpl_disconnect0;
+		Java_java_net_PlainDatagramSocketImpl_datagramSocketClose;
+		Java_java_net_PlainSocketImpl_initProto;
+		Java_java_net_PlainSocketImpl_socketBind;
+		Java_java_net_PlainSocketImpl_socketShutdown;
+		Java_java_net_SocketInputStream_init;
+		Java_java_net_PlainSocketImpl_socketConnect;
+		Java_java_net_PlainDatagramSocketImpl_getTimeToLive;
+		Java_java_net_PlainDatagramSocketImpl_setTimeToLive;
+		Java_sun_net_dns_ResolverConfigurationImpl_localDomain0;
+		Java_sun_net_dns_ResolverConfigurationImpl_fallbackDomain0;
+		Java_sun_net_sdp_SdpSupport_convert0;
+		Java_sun_net_sdp_SdpSupport_create0;
+		Java_sun_net_spi_DefaultProxySelector_init;
+		Java_sun_net_spi_DefaultProxySelector_getSystemProxy;
+		NET_AllocSockaddr;
+		NET_SockaddrToInetAddress;
+                NET_SockaddrEqualsInetAddress;
+		NET_InetAddressToSockaddr;
+		NET_GetPortFromSockaddr;
+		NET_SetSockOpt;
+		NET_GetSockOpt;
+		NET_Bind;
+		NET_MapSocketOption;
+		NET_Wait;
+                ipv6_available;
+
+	local:
+		*;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/nio/Exportedfiles.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,46 @@
+#
+# Copyright (c) 2000, 2009, 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.
+#
+
+#   
+# These are the names of Java classes for which we will make .h files.
+#   
+   
+FILES_export = \
+    java/net/SocketOptions.java \
+    java/nio/MappedByteBuffer.java \
+    sun/nio/ch/DatagramChannelImpl.java \
+    sun/nio/ch/DatagramDispatcher.java \
+    sun/nio/ch/FileChannelImpl.java \
+    sun/nio/ch/FileDispatcherImpl.java \
+    sun/nio/ch/FileKey.java \
+    sun/nio/ch/FileLockImpl.java \
+    sun/nio/ch/IOStatus.java \
+    sun/nio/ch/IOUtil.java \
+    sun/nio/ch/Net.java \
+    sun/nio/ch/PollArrayWrapper.java \
+    sun/nio/ch/ServerSocketChannelImpl.java \
+    sun/nio/ch/SocketChannelImpl.java \
+    sun/nio/ch/SocketDispatcher.java \
+    java/io/FileDescriptor.java \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/nio/FILES_c.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,37 @@
+#
+# Copyright (c) 2000, 2009, 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.
+#
+
+FILES_c = \
+        DatagramChannelImpl.c \
+        DatagramDispatcher.c \
+	FileChannelImpl.c \
+	FileDispatcherImpl.c \
+	FileKey.c \
+	IOUtil.c \
+        MappedByteBuffer.c \
+	Net.c \
+	ServerSocketChannelImpl.c \
+	SocketChannelImpl.c \
+	SocketDispatcher.c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/nio/FILES_java.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,442 @@
+#
+# Copyright (c) 2000, 2011, 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.
+#
+
+FILES_src = \
+	java/nio/Bits.java \
+	java/nio/Buffer.java \
+	java/nio/ByteOrder.java \
+	java/nio/MappedByteBuffer.java \
+	java/nio/StringCharBuffer.java \
+	\
+	java/nio/channels/AsynchronousByteChannel.java \
+	java/nio/channels/AsynchronousChannel.java \
+	java/nio/channels/AsynchronousChannelGroup.java \
+	java/nio/channels/AsynchronousFileChannel.java \
+	java/nio/channels/AsynchronousServerSocketChannel.java \
+	java/nio/channels/AsynchronousSocketChannel.java \
+	java/nio/channels/ByteChannel.java \
+	java/nio/channels/Channel.java \
+	java/nio/channels/Channels.java \
+	java/nio/channels/CompletionHandler.java \
+	java/nio/channels/DatagramChannel.java \
+	java/nio/channels/FileChannel.java \
+	java/nio/channels/FileLock.java \
+	java/nio/channels/GatheringByteChannel.java \
+	java/nio/channels/InterruptibleChannel.java \
+	java/nio/channels/Pipe.java \
+	java/nio/channels/MembershipKey.java \
+	java/nio/channels/MulticastChannel.java \
+	java/nio/channels/NetworkChannel.java \
+	java/nio/channels/ReadableByteChannel.java \
+	java/nio/channels/ScatteringByteChannel.java \
+	java/nio/channels/SeekableByteChannel.java \
+	java/nio/channels/SelectableChannel.java \
+	java/nio/channels/Selector.java \
+	java/nio/channels/SelectionKey.java \
+	java/nio/channels/ServerSocketChannel.java \
+	java/nio/channels/SocketChannel.java \
+	java/nio/channels/WritableByteChannel.java \
+	\
+	java/nio/channels/spi/AbstractInterruptibleChannel.java \
+	java/nio/channels/spi/AbstractSelectableChannel.java \
+	java/nio/channels/spi/AbstractSelectionKey.java \
+	java/nio/channels/spi/AbstractSelector.java \
+	java/nio/channels/spi/AsynchronousChannelProvider.java \
+	java/nio/channels/spi/SelectorProvider.java \
+	\
+	java/nio/charset/Charset.java \
+	java/nio/charset/CoderResult.java \
+	java/nio/charset/CoderMalfunctionError.java \
+	java/nio/charset/CodingErrorAction.java \
+	java/nio/charset/MalformedInputException.java \
+	java/nio/charset/StandardCharsets.java \
+	java/nio/charset/UnmappableCharacterException.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/CopyMoveHelper.java \
+	java/nio/file/CopyOption.java \
+	java/nio/file/DirectoryIteratorException.java \
+	java/nio/file/DirectoryNotEmptyException.java \
+	java/nio/file/DirectoryStream.java \
+	java/nio/file/FileAlreadyExistsException.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/StandardWatchEventKinds.java \
+	java/nio/file/TempFileHelper.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/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/FileTime.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/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/ch/AbstractPollArrayWrapper.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/CompletedFuture.java \
+        sun/nio/ch/DatagramChannelImpl.java \
+        sun/nio/ch/DatagramDispatcher.java \
+	sun/nio/ch/DatagramSocketAdaptor.java \
+	sun/nio/ch/DefaultAsynchronousChannelProvider.java \
+        sun/nio/ch/DefaultSelectorProvider.java \
+	sun/nio/ch/DirectBuffer.java \
+	sun/nio/ch/ExtendedSocketOption.java \
+	sun/nio/ch/FileChannelImpl.java \
+	sun/nio/ch/FileDispatcher.java \
+	sun/nio/ch/FileDispatcherImpl.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/Invoker.java \
+	sun/nio/ch/IOUtil.java \
+	sun/nio/ch/IOStatus.java \
+	sun/nio/ch/IOVecWrapper.java \
+	sun/nio/ch/MembershipKeyImpl.java \
+	sun/nio/ch/MembershipRegistry.java \
+	sun/nio/ch/NativeDispatcher.java \
+	sun/nio/ch/NativeObject.java \
+	sun/nio/ch/NativeThread.java \
+	sun/nio/ch/NativeThreadSet.java \
+	sun/nio/ch/Net.java \
+	sun/nio/ch/OptionKey.java \
+	sun/nio/ch/PendingFuture.java \
+	sun/nio/ch/PipeImpl.java \
+	sun/nio/ch/PollArrayWrapper.java \
+	sun/nio/ch/Reflect.java \
+	sun/nio/ch/Secrets.java \
+	sun/nio/ch/SelectionKeyImpl.java \
+	sun/nio/ch/SelectorImpl.java \
+	sun/nio/ch/SelectorProviderImpl.java \
+	sun/nio/ch/SelChImpl.java \
+	sun/nio/ch/ServerSocketAdaptor.java \
+	sun/nio/ch/ServerSocketChannelImpl.java \
+        sun/nio/ch/SinkChannelImpl.java \
+	sun/nio/ch/SocketAdaptor.java \
+	sun/nio/ch/SocketChannelImpl.java \
+	sun/nio/ch/SocketDispatcher.java \
+	sun/nio/ch/SocketOptionRegistry.java \
+        sun/nio/ch/SourceChannelImpl.java \
+	sun/nio/ch/ThreadPool.java \
+	sun/nio/ch/Util.java \
+	\
+	sun/nio/cs/AbstractCharsetProvider.java \
+	sun/nio/cs/ArrayDecoder.java \
+	sun/nio/cs/ArrayEncoder.java \
+	sun/nio/cs/FastCharsetProvider.java \
+	sun/nio/cs/HistoricallyNamedCharset.java \
+	sun/nio/cs/ISO_8859_1.java \
+	sun/nio/cs/SingleByte.java \
+	sun/nio/cs/SingleByteDecoder.java \
+	sun/nio/cs/SingleByteEncoder.java \
+	sun/nio/cs/StreamEncoder.java \
+	sun/nio/cs/StreamDecoder.java \
+	sun/nio/cs/Surrogate.java \
+	sun/nio/cs/ThreadLocalCoders.java \
+	sun/nio/cs/US_ASCII.java \
+	sun/nio/cs/UTF_16.java \
+	sun/nio/cs/UTF_16BE.java \
+	sun/nio/cs/UTF_16LE.java \
+	sun/nio/cs/UTF_8.java \
+	sun/nio/cs/CESU_8.java \
+	sun/nio/cs/Unicode.java \
+	sun/nio/cs/UnicodeDecoder.java \
+	sun/nio/cs/UnicodeEncoder.java \
+	sun/nio/cs/UTF_32.java \
+	sun/nio/cs/UTF_32BE.java \
+	sun/nio/cs/UTF_32LE.java \
+	sun/nio/cs/UTF_32BE_BOM.java \
+	sun/nio/cs/UTF_32LE_BOM.java \
+	sun/nio/cs/UTF_32Coder.java \
+	\
+	sun/nio/fs/AbstractAclFileAttributeView.java \
+	sun/nio/fs/AbstractBasicFileAttributeView.java \
+	sun/nio/fs/AbstractFileTypeDetector.java \
+        sun/nio/fs/AbstractFileSystemProvider.java \
+	sun/nio/fs/AbstractPath.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/DynamicFileAttributeView.java \
+	sun/nio/fs/FileOwnerAttributeViewImpl.java \
+	sun/nio/fs/Globs.java \
+	sun/nio/fs/NativeBuffer.java \
+	sun/nio/fs/NativeBuffers.java \
+	sun/nio/fs/Reflect.java \
+	sun/nio/fs/Util.java \
+	\
+	java/net/DatagramSocket.java \
+	java/net/DatagramSocketImpl.java \
+	java/net/PlainSocketImpl.java \
+	java/net/Socket.java \
+	java/net/ServerSocket.java \
+	java/net/SocketImpl.java \
+	java/net/Socket.java \
+	java/io/InputStreamReader.java \
+	java/io/OutputStreamWriter.java \
+	java/lang/String.java \
+	java/lang/StringCoding.java \
+	\
+	sun/misc/Cleaner.java \
+	sun/util/PreHashedMap.java
+
+# Generated coder classes
+#
+FILES_gen_coder = \
+	java/nio/charset/CharsetDecoder.java \
+	java/nio/charset/CharsetEncoder.java
+
+# Generated buffer classes
+#
+FILES_gen_buffer = \
+	java/nio/ByteBuffer.java \
+	java/nio/CharBuffer.java \
+	java/nio/ShortBuffer.java \
+	java/nio/IntBuffer.java \
+	java/nio/LongBuffer.java \
+	java/nio/FloatBuffer.java \
+	java/nio/DoubleBuffer.java \
+	\
+	java/nio/HeapByteBuffer.java \
+	java/nio/HeapByteBufferR.java \
+	java/nio/HeapCharBuffer.java \
+	java/nio/HeapCharBufferR.java \
+	java/nio/HeapShortBuffer.java \
+	java/nio/HeapShortBufferR.java \
+	java/nio/HeapIntBuffer.java \
+	java/nio/HeapIntBufferR.java \
+	java/nio/HeapLongBuffer.java \
+	java/nio/HeapLongBufferR.java \
+	java/nio/HeapFloatBuffer.java \
+	java/nio/HeapFloatBufferR.java \
+	java/nio/HeapDoubleBuffer.java \
+	java/nio/HeapDoubleBufferR.java \
+	\
+	java/nio/DirectByteBuffer.java \
+	java/nio/DirectByteBufferR.java \
+	\
+	java/nio/DirectCharBufferU.java \
+	java/nio/DirectCharBufferRU.java \
+	java/nio/DirectShortBufferU.java \
+	java/nio/DirectShortBufferRU.java \
+	java/nio/DirectIntBufferU.java \
+	java/nio/DirectIntBufferRU.java \
+	java/nio/DirectLongBufferU.java \
+	java/nio/DirectLongBufferRU.java \
+	java/nio/DirectFloatBufferU.java \
+	java/nio/DirectFloatBufferRU.java \
+	java/nio/DirectDoubleBufferU.java \
+	java/nio/DirectDoubleBufferRU.java \
+	\
+	java/nio/DirectCharBufferS.java \
+	java/nio/DirectCharBufferRS.java \
+	java/nio/DirectShortBufferS.java \
+	java/nio/DirectShortBufferRS.java \
+	java/nio/DirectIntBufferS.java \
+	java/nio/DirectIntBufferRS.java \
+	java/nio/DirectLongBufferS.java \
+	java/nio/DirectLongBufferRS.java \
+	java/nio/DirectFloatBufferS.java \
+	java/nio/DirectFloatBufferRS.java \
+	java/nio/DirectDoubleBufferS.java \
+	java/nio/DirectDoubleBufferRS.java \
+	\
+	java/nio/ByteBufferAsCharBufferB.java \
+	java/nio/ByteBufferAsCharBufferRB.java \
+	java/nio/ByteBufferAsShortBufferB.java \
+	java/nio/ByteBufferAsShortBufferRB.java \
+	java/nio/ByteBufferAsIntBufferB.java \
+	java/nio/ByteBufferAsIntBufferRB.java \
+	java/nio/ByteBufferAsLongBufferB.java \
+	java/nio/ByteBufferAsLongBufferRB.java \
+	java/nio/ByteBufferAsFloatBufferB.java \
+	java/nio/ByteBufferAsFloatBufferRB.java \
+	java/nio/ByteBufferAsDoubleBufferB.java \
+	java/nio/ByteBufferAsDoubleBufferRB.java \
+	\
+	java/nio/ByteBufferAsCharBufferL.java \
+	java/nio/ByteBufferAsCharBufferRL.java \
+	java/nio/ByteBufferAsShortBufferL.java \
+	java/nio/ByteBufferAsShortBufferRL.java \
+	java/nio/ByteBufferAsIntBufferL.java \
+	java/nio/ByteBufferAsIntBufferRL.java \
+	java/nio/ByteBufferAsLongBufferL.java \
+	java/nio/ByteBufferAsLongBufferRL.java \
+	java/nio/ByteBufferAsFloatBufferL.java \
+	java/nio/ByteBufferAsFloatBufferRL.java \
+	java/nio/ByteBufferAsDoubleBufferL.java \
+	java/nio/ByteBufferAsDoubleBufferRL.java
+
+# Generated exception classes
+#
+FILES_gen_ex = \
+	java/nio/BufferOverflowException.java \
+	java/nio/BufferUnderflowException.java \
+	java/nio/InvalidMarkException.java \
+	java/nio/ReadOnlyBufferException.java \
+	\
+	java/nio/channels/AcceptPendingException.java \
+	java/nio/channels/AlreadyBoundException.java \
+	java/nio/channels/AlreadyConnectedException.java \
+	java/nio/channels/AsynchronousCloseException.java \
+	java/nio/channels/CancelledKeyException.java \
+	java/nio/channels/ClosedByInterruptException.java \
+	java/nio/channels/ClosedChannelException.java \
+	java/nio/channels/ClosedSelectorException.java \
+	java/nio/channels/ConnectionPendingException.java \
+	java/nio/channels/FileLockInterruptionException.java \
+	java/nio/channels/IllegalBlockingModeException.java \
+	java/nio/channels/IllegalChannelGroupException.java \
+	java/nio/channels/IllegalSelectorException.java \
+	java/nio/channels/InterruptedByTimeoutException.java \
+	java/nio/channels/NoConnectionPendingException.java \
+	java/nio/channels/NonReadableChannelException.java \
+	java/nio/channels/NonWritableChannelException.java \
+	java/nio/channels/NotYetBoundException.java \
+	java/nio/channels/NotYetConnectedException.java \
+	java/nio/channels/OverlappingFileLockException.java \
+	java/nio/channels/ReadPendingException.java \
+	java/nio/channels/ShutdownChannelGroupException.java \
+	java/nio/channels/UnresolvedAddressException.java \
+	java/nio/channels/UnsupportedAddressTypeException.java \
+	java/nio/channels/WritePendingException.java \
+	\
+	java/nio/charset/CharacterCodingException.java \
+	java/nio/charset/IllegalCharsetNameException.java \
+	java/nio/charset/UnsupportedCharsetException.java
+
+FILES_gen_sbcs = \
+	sun/nio/cs/ISO_8859_2.java \
+	sun/nio/cs/ISO_8859_4.java \
+	sun/nio/cs/ISO_8859_5.java \
+	sun/nio/cs/ISO_8859_7.java \
+	sun/nio/cs/ISO_8859_9.java \
+	sun/nio/cs/ISO_8859_13.java \
+	sun/nio/cs/ISO_8859_15.java \
+	sun/nio/cs/IBM437.java \
+	sun/nio/cs/IBM737.java \
+	sun/nio/cs/IBM775.java \
+	sun/nio/cs/IBM850.java \
+	sun/nio/cs/IBM852.java \
+	sun/nio/cs/IBM855.java \
+	sun/nio/cs/IBM857.java \
+	sun/nio/cs/IBM858.java \
+	sun/nio/cs/IBM862.java \
+	sun/nio/cs/IBM866.java \
+	sun/nio/cs/IBM874.java \
+	sun/nio/cs/KOI8_R.java \
+	sun/nio/cs/KOI8_U.java \
+	sun/nio/cs/MS1250.java \
+	sun/nio/cs/MS1251.java \
+	sun/nio/cs/MS1252.java \
+	sun/nio/cs/MS1253.java \
+	sun/nio/cs/MS1254.java \
+	sun/nio/cs/MS1257.java
+
+FILES_gen_csp = sun/nio/cs/StandardCharsets.java
+
+FILES_gen_sor = sun/nio/ch/SocketOptionRegistry.java
+
+FILES_gen = $(FILES_gen_coder) $(FILES_gen_buffer) $(FILES_gen_ex) \
+    $(FILES_gen_csp) $(FILES_gen_sor)
+
+FILES_java = $(FILES_src) $(FILES_gen) $(FILES_gen_sbcs)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/nio/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,994 @@
+#
+# Copyright (c) 2000, 2011, 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.
+#
+
+#
+# Makefile for java.nio
+#
+
+BUILDDIR = ../..
+LEGACY_BUILDDIR = ../../../make
+PACKAGE = java.nio
+LIBRARY = nio
+PRODUCT = java
+JAVAC_MAX_WARNINGS = true
+JAVAC_WARNINGS_FATAL = true
+include $(BUILDDIR)/common/Defs.gmk
+
+NIO_SRC = $(SHARE_SRC)/classes/java/nio
+NIO_GEN = $(GENSRCDIR)/java/nio
+
+SNIO_SRC = $(SHARE_SRC)/classes/sun/nio
+SNIO_GEN = $(GENSRCDIR)/sun/nio
+
+#
+# Files to compile
+#
+
+include FILES_java.gmk
+include FILES_c.gmk
+include Exportedfiles.gmk
+
+ifeq ($(PLATFORM), solaris)
+FILES_java += \
+        sun/nio/ch/AbstractPollSelectorImpl.java \
+	sun/nio/ch/DevPollArrayWrapper.java \
+	sun/nio/ch/DevPollSelectorImpl.java \
+        sun/nio/ch/DevPollSelectorProvider.java \
+	sun/nio/ch/InheritedChannel.java \
+        sun/nio/ch/PollSelectorProvider.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 += \
+        DevPollArrayWrapper.c \
+	InheritedChannel.c \
+	NativeThread.c \
+        PollArrayWrapper.c \
+	SolarisEventPort.c \
+	UnixAsynchronousServerSocketChannelImpl.c \
+	UnixAsynchronousSocketChannelImpl.c \
+	\
+	GnomeFileTypeDetector.c \
+	SolarisNativeDispatcher.c \
+	SolarisWatchService.c \
+	UnixCopyFile.c \
+	UnixNativeDispatcher.c
+
+FILES_export += \
+	sun/nio/ch/DevPollArrayWrapper.java \
+	sun/nio/ch/InheritedChannel.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
+
+ifeq ($(PLATFORM), windows)
+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/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 += \
+	Iocp.c \
+	RegistryFileTypeDetector.c \
+	WindowsAsynchronousFileChannelImpl.c \
+	WindowsAsynchronousServerSocketChannelImpl.c \
+	WindowsAsynchronousSocketChannelImpl.c \
+	WindowsNativeDispatcher.c \
+        WindowsSelectorImpl.c
+
+FILES_export += \
+	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
+
+ifeq ($(PLATFORM), linux)
+FILES_java += \
+        sun/nio/ch/AbstractPollSelectorImpl.java \
+	sun/nio/ch/EPoll.java \
+	sun/nio/ch/EPollArrayWrapper.java \
+	sun/nio/ch/EPollPort.java \
+	sun/nio/ch/EPollSelectorProvider.java \
+	sun/nio/ch/EPollSelectorImpl.java \
+	sun/nio/ch/InheritedChannel.java \
+	sun/nio/ch/LinuxAsynchronousChannelProvider.java \
+        sun/nio/ch/PollSelectorProvider.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/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 += \
+	EPoll.c \
+	EPollArrayWrapper.c \
+	EPollPort.c \
+	InheritedChannel.c \
+	NativeThread.c \
+        PollArrayWrapper.c \
+	UnixAsynchronousServerSocketChannelImpl.c \
+	UnixAsynchronousSocketChannelImpl.c \
+	\
+	GnomeFileTypeDetector.c \
+	LinuxNativeDispatcher.c \
+	LinuxWatchService.c \
+	UnixCopyFile.c \
+	UnixNativeDispatcher.c
+
+FILES_export += \
+	sun/nio/ch/EPoll.java \
+        sun/nio/ch/EPollArrayWrapper.java \
+	sun/nio/ch/EPollPort.java \
+	sun/nio/ch/InheritedChannel.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
+
+ifeq ($(PLATFORM), macosx)
+FILES_java += \
+        sun/nio/ch/AbstractPollSelectorImpl.java \
+	sun/nio/ch/BsdAsynchronousChannelProvider.java \
+	sun/nio/ch/InheritedChannel.java \
+	sun/nio/ch/KQueue.java \
+	sun/nio/ch/KQueuePort.java \
+        sun/nio/ch/PollSelectorProvider.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/BsdFileStore.java \
+	sun/nio/fs/BsdFileSystem.java \
+	sun/nio/fs/BsdFileSystemProvider.java \
+	sun/nio/fs/BsdNativeDispatcher.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 += \
+	InheritedChannel.c \
+	NativeThread.c \
+        PollArrayWrapper.c \
+	UnixAsynchronousServerSocketChannelImpl.c \
+	UnixAsynchronousSocketChannelImpl.c \
+	\
+	GnomeFileTypeDetector.c \
+	BsdNativeDispatcher.c \
+	UnixCopyFile.c \
+	UnixNativeDispatcher.c \
+	\
+	KQueue.c \
+	KQueuePort.c
+
+FILES_export += \
+	sun/nio/ch/InheritedChannel.java \
+	sun/nio/ch/KQueue.java \
+	sun/nio/ch/KQueuePort.java \
+	sun/nio/ch/NativeThread.java \
+	sun/nio/ch/UnixAsynchronousServerSocketChannelImpl.java \
+	sun/nio/ch/UnixAsynchronousSocketChannelImpl.java \
+	\
+	sun/nio/fs/GnomeFileTypeDetector.java \
+	sun/nio/fs/BsdNativeDispatcher.java \
+	sun/nio/fs/UnixCopyFile.java \
+	sun/nio/fs/UnixNativeDispatcher.java
+
+FILES_gen += \
+	sun/nio/fs/UnixConstants.java
+endif # PLATFORM = bsd, macosx
+
+ifeq ($(PLATFORM), macosx)
+FILES_java += \
+    sun/nio/ch/KQueueSelectorProvider.java \
+    sun/nio/ch/KQueueSelectorImpl.java \
+    sun/nio/ch/KQueueArrayWrapper.java
+
+FILES_c += \
+    KQueueArrayWrapper.c
+
+vpath %.c $(call NativeSrcDirList,,native/sun/nio/fs)
+vpath %.c $(call NativeSrcDirList,,native/sun/nio/ch)
+
+else
+
+#
+# Find platform-specific C source files
+#
+vpath %.c $(PLATFORM_SRC)/native/sun/nio/fs
+vpath %.c $(PLATFORM_SRC)/native/sun/nio/ch
+vpath %.c $(SHARE_SRC)/native/sun/nio/ch
+
+endif # PLATFORM = macosx
+
+#
+# Various variables
+#
+
+JAVALIB = 		# Don't self-link
+
+#
+# Access to io_util.c and net_util.c
+#
+
+OTHER_INCLUDES += \
+  -I$(SHARE_SRC)/native/sun/nio/ch \
+  -I$(SHARE_SRC)/native/java/io \
+  -I$(SHARE_SRC)/native/java/net \
+  -I$(PLATFORM_SRC)/native/java/net \
+  -I$(CLASSHDRDIR)/../../../java.lang/java/CClassHeaders
+
+ifeq ($(PLATFORM),windows)
+  OTHER_LDLIBS += $(JVMLIB) ws2_32.lib \
+     -libpath:$(LIBDIR) java.lib \
+     $(OBJDIR)/../../../../sun/java.net/net/$(OBJDIRNAME)/net.lib \
+     $(OBJDIR)/../../../java.lang/java/$(OBJDIRNAME)/io_util.obj \
+     $(OBJDIR)/../../../java.lang/java/$(OBJDIRNAME)/FileDescriptor_md.obj
+endif
+ifeq ($(PLATFORM), linux)
+OTHER_LDLIBS += -L$(LIBDIR)/$(LIBARCH) -ljava -lnet -lpthread $(LIBDL)
+endif
+ifeq ($(PLATFORM), macosx)
+OTHER_LDLIBS += -L$(LIBDIR) -ljava -lnet -pthread
+endif
+ifeq ($(PLATFORM), solaris)
+OTHER_LDLIBS += $(JVMLIB) $(LIBSOCKET) -lposix4 $(LIBDL) -lsendfile \
+		-L$(LIBDIR)/$(LIBARCH) -ljava -lnet
+endif # PLATFORM
+
+#
+# Rules
+#
+
+build: sources
+
+clean clobber::
+	$(RM) -r $(NIO_GEN) $(SNIO_GEN)
+	$(RM) -r $(CLASSDESTDIR)/java/nio
+	$(RM) -r $(CLASSDESTDIR)/sun/nio
+
+ifeq ($(PLATFORM), solaris)
+FILES_m = mapfile-solaris
+endif
+ifeq ($(PLATFORM), linux)
+FILES_m = mapfile-linux
+endif
+ifeq ($(PLATFORM), macosx)
+FILES_m = mapfile-bsd
+endif
+include $(BUILDDIR)/common/Mapfile-vers.gmk
+include $(BUILDDIR)/common/Library.gmk
+
+#
+# Generate source files
+#
+
+FILES_genout = $(FILES_gen:%.java=$(GENSRCDIR)/%.java)
+
+BUF_SRC=$(NIO_SRC)
+CH_SRC=$(NIO_SRC)/channels
+CS_SRC=$(NIO_SRC)/charset
+SCH_SRC=$(SNIO_SRC)/ch
+SCS_SRC=$(SNIO_SRC)/cs
+SFS_SRC=$(SNIO_SRC)/fs
+
+# Template files
+HEAP_X_BUF_TEMPLATE=$(BUF_SRC)/Heap-X-Buffer.java.template
+BYTE_X_BUF_TEMPLATE=$(BUF_SRC)/ByteBufferAs-X-Buffer.java.template
+X_BUF_TEMPLATE=$(BUF_SRC)/X-Buffer.java.template
+X_BUF_BIN_TEMPLATE=$(BUF_SRC)/X-Buffer-bin.java.template
+DIRECT_X_BUF_TEMPLATE=$(BUF_SRC)/Direct-X-Buffer.java.template
+DIRECT_X_BUF_BIN_TEMPLATE=$(BUF_SRC)/Direct-X-Buffer-bin.java.template
+CHARSET_X_CODER_TEMPLATE=$(CS_SRC)/Charset-X-Coder.java.template
+
+BUF_GEN=$(NIO_GEN)
+CH_GEN=$(NIO_GEN)/channels
+CS_GEN=$(NIO_GEN)/charset
+SCH_GEN=$(SNIO_GEN)/ch
+SCS_GEN=$(SNIO_GEN)/cs
+SFS_GEN=$(SNIO_GEN)/fs
+
+FILES_gensbcs_out = $(FILES_gen_sbcs:%.java=$(GENSRCDIR)/%.java)
+
+sources: $(SPP_JARFILE) $(FILES_genout) $(FILES_gensbcs_out)
+
+#
+# Generated buffer classes
+#
+
+GEN_BUFFER_SH = genBuffer.sh
+
+GEN_BUFFER_CMD = SPP="$(TOOL_SPP)" NAWK="$(NAWK)" SED="$(SED)" SH="$(SH)" \
+                 $(SH) $(GEN_BUFFER_SH)
+
+# Public abstract buffer classes
+#
+$(BUF_GEN)/ByteBuffer.java: $(X_BUF_TEMPLATE) \
+			    $(X_BUF_BIN_TEMPLATE) \
+			    $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=byte BIN=1 SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/CharBuffer.java: $(X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=char SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/ShortBuffer.java: $(X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=short SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/IntBuffer.java: $(X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=int SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/LongBuffer.java: $(X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=long SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/FloatBuffer.java: $(X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=float SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/DoubleBuffer.java: $(X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=double SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+
+# Buffers whose contents are heap-allocated
+# 
+$(BUF_GEN)/HeapByteBuffer.java: $(HEAP_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=byte SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/HeapByteBuffer%.java: $(HEAP_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=byte RW=$* SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/HeapCharBuffer.java: $(HEAP_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=char SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/HeapCharBuffer%.java: $(HEAP_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=char RW=$* SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/HeapShortBuffer.java: $(HEAP_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=short SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/HeapShortBuffer%.java: $(HEAP_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=short RW=$* SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/HeapIntBuffer.java: $(HEAP_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=int SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/HeapIntBuffer%.java: $(HEAP_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=int RW=$* SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/HeapLongBuffer.java: $(HEAP_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=long SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/HeapLongBuffer%.java: $(HEAP_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=long RW=$* SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/HeapFloatBuffer.java: $(HEAP_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=float SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/HeapFloatBuffer%.java: $(HEAP_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=float RW=$* SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/HeapDoubleBuffer.java: $(HEAP_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=double SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/HeapDoubleBuffer%.java: $(HEAP_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=double RW=$* SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+
+# Direct byte buffer
+# 
+$(BUF_GEN)/DirectByteBuffer.java: $(DIRECT_X_BUF_TEMPLATE) \
+				  $(DIRECT_X_BUF_TEMPLATE) \
+				  $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=byte BIN=1 SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/DirectByteBuffer%.java: $(DIRECT_X_BUF_TEMPLATE) \
+				   $(DIRECT_X_BUF_TEMPLATE) \
+				   $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=byte RW=$* BIN=1 SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+
+# Unswapped views of direct byte buffers
+#
+$(BUF_GEN)/DirectCharBufferU.java: $(DIRECT_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=char BO=U SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/DirectCharBuffer%U.java: $(DIRECT_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=char RW=$* BO=U SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/DirectShortBufferU.java: $(DIRECT_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=short BO=U SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/DirectShortBuffer%U.java: $(DIRECT_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=short RW=$* BO=U SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/DirectIntBufferU.java: $(DIRECT_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=int BO=U SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/DirectIntBuffer%U.java: $(DIRECT_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=int RW=$* BO=U SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/DirectLongBufferU.java: $(DIRECT_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=long BO=U SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/DirectLongBuffer%U.java: $(DIRECT_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=long RW=$* BO=U SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/DirectFloatBufferU.java: $(DIRECT_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=float BO=U SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/DirectFloatBuffer%U.java: $(DIRECT_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=float RW=$* BO=U SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/DirectDoubleBufferU.java: $(DIRECT_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=double BO=U SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/DirectDoubleBuffer%U.java: $(DIRECT_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=double RW=$* BO=U SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+
+# Swapped views of direct byte buffers
+#
+$(BUF_GEN)/DirectCharBufferS.java: $(DIRECT_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=char BO=S SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/DirectCharBuffer%S.java: $(DIRECT_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=char RW=$* BO=S SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/DirectShortBufferS.java: $(DIRECT_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=short BO=S SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/DirectShortBuffer%S.java: $(DIRECT_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=short RW=$* BO=S SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/DirectIntBufferS.java: $(DIRECT_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=int BO=S SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/DirectIntBuffer%S.java: $(DIRECT_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=int RW=$* BO=S SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/DirectLongBufferS.java: $(DIRECT_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=long BO=S SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/DirectLongBuffer%S.java: $(DIRECT_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=long RW=$* BO=S SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/DirectFloatBufferS.java: $(DIRECT_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=float BO=S SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/DirectFloatBuffer%S.java: $(DIRECT_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=float RW=$* BO=S SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/DirectDoubleBufferS.java: $(DIRECT_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=double BO=S SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/DirectDoubleBuffer%S.java: $(DIRECT_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=double RW=$* BO=S SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+
+# Big-endian views of byte buffers
+#
+$(BUF_GEN)/ByteBufferAsCharBufferB.java: $(BYTE_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=char BO=B SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/ByteBufferAsCharBuffer%B.java: $(BYTE_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=char RW=$* BO=B SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/ByteBufferAsShortBufferB.java: $(BYTE_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=short BO=B SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/ByteBufferAsShortBuffer%B.java: $(BYTE_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=short RW=$* BO=B SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/ByteBufferAsIntBufferB.java: $(BYTE_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=int BO=B SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/ByteBufferAsIntBuffer%B.java: $(BYTE_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=int RW=$* BO=B SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/ByteBufferAsLongBufferB.java: $(BYTE_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=long BO=B SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/ByteBufferAsLongBuffer%B.java: $(BYTE_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=long RW=$* BO=B SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/ByteBufferAsFloatBufferB.java: $(BYTE_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=float BO=B SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/ByteBufferAsFloatBuffer%B.java: $(BYTE_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=float RW=$* BO=B SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/ByteBufferAsDoubleBufferB.java: $(BYTE_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=double BO=B SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/ByteBufferAsDoubleBuffer%B.java: $(BYTE_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=double RW=$* BO=B SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+
+# Little-endian views of byte buffers
+#
+$(BUF_GEN)/ByteBufferAsCharBufferL.java: $(BYTE_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=char BO=L SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/ByteBufferAsCharBuffer%L.java: $(BYTE_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=char RW=$* BO=L SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/ByteBufferAsShortBufferL.java: $(BYTE_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=short BO=L SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/ByteBufferAsShortBuffer%L.java: $(BYTE_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=short RW=$* BO=L SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/ByteBufferAsIntBufferL.java: $(BYTE_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=int BO=L SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/ByteBufferAsIntBuffer%L.java: $(BYTE_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=int RW=$* BO=L SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/ByteBufferAsLongBufferL.java: $(BYTE_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=long BO=L SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/ByteBufferAsLongBuffer%L.java: $(BYTE_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=long RW=$* BO=L SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/ByteBufferAsFloatBufferL.java: $(BYTE_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=float BO=L SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/ByteBufferAsFloatBuffer%L.java: $(BYTE_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=float RW=$* BO=L SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/ByteBufferAsDoubleBufferL.java: $(BYTE_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=double BO=L SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+$(BUF_GEN)/ByteBufferAsDoubleBuffer%L.java: $(BYTE_X_BUF_TEMPLATE) $(GEN_BUFFER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	TYPE=double RW=$* BO=L SRC=$< DST=$@.temp $(GEN_BUFFER_CMD)
+	$(MV) $@.temp $@
+
+#
+# Generated coder classes
+#
+
+GEN_CODER_SH = genCoder.sh
+
+GEN_CODER_CMD = SPP="$(TOOL_SPP)" SED="$(SED)" NAWK="$(NAWK)" SH="$(SH)" $(SH) $(GEN_CODER_SH)
+
+$(CS_GEN)/CharsetDecoder.java: $(CHARSET_X_CODER_TEMPLATE) $(GEN_CODER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	$(GEN_CODER_CMD) decoder $< $@.temp
+	$(MV) $@.temp $@
+
+$(CS_GEN)/CharsetEncoder.java: $(CHARSET_X_CODER_TEMPLATE) $(GEN_CODER_SH)
+	$(prep-target)
+	@$(RM) $@.temp
+	$(GEN_CODER_CMD) encoder $< $@.temp
+	$(MV) $@.temp $@
+
+#
+# Generated exception classes
+#
+
+GEN_EX_SH = genExceptions.sh
+ 
+GEN_EX_CMD = NAWK="$(NAWK)" SH="$(SH)" $(SH) $(GEN_EX_SH)
+
+$(CH_GEN)/%Exception.java: genExceptions.sh $(CH_SRC)/exceptions
+	$(prep-target)
+	@$(RM) $@.temp
+	$(GEN_EX_CMD) $(CH_SRC)/exceptions $(CH_GEN)
+
+$(CS_GEN)/%Exception.java: genExceptions.sh $(CS_SRC)/exceptions
+	$(prep-target)
+	@$(RM) $@.temp
+	$(GEN_EX_CMD) $(CS_SRC)/exceptions $(CS_GEN)
+
+$(BUF_GEN)/%Exception.java: genExceptions.sh $(BUF_SRC)/exceptions
+	$(prep-target)
+	@$(RM) $@.temp
+	$(GEN_EX_CMD) $(BUF_SRC)/exceptions $(BUF_GEN)
+
+#
+# Generated charset-provider classes
+#
+
+$(SCS_GEN)/StandardCharsets.java: genCharsetProvider.sh \
+    $(HASHER_JARFILE) $(SCS_SRC)/standard-charsets
+	$(prep-target)
+	@$(RM) $@.temp
+	NAWK="$(NAWK)" TEMPDIR="$(TEMPDIR)" SH="$(SH)" \
+	  HASHER="$(TOOL_HASHER)" \
+	  $(SH) -e genCharsetProvider.sh $(SCS_SRC)/standard-charsets $(SCS_GEN)
+
+#
+# Generated channel implementation classes.
+# C source is compiled in TEMPDIR to avoid turds left by Windows compilers.
+#
+
+GENSOR_SRC = $(SHARE_SRC)/native/sun/nio/ch/genSocketOptionRegistry.c
+
+GENSOR_EXE = $(TEMPDIR)/genSocketOptionRegistry$(EXE_SUFFIX)
+
+SOR_COPYRIGHT_YEARS = $(shell $(CAT) $(GENSOR_SRC) | \
+	$(NAWK) '/^.*Copyright.*Oracle/ { printf "%s %s",$$4,$$5 }') 
+
+$(TEMPDIR)/$(GENSOR_SRC) : $(GENSOR_SRC)
+	$(install-file)
+
+ifndef NIO_CC
+  ifeq ($(PLATFORM), macosx)
+    NIO_CC=$(HOST_CC)
+  else
+    NIO_CC=$(CC)
+  endif
+endif
+
+$(GENSOR_EXE) : $(TEMPDIR)/$(GENSOR_SRC)
+	$(prep-target)
+	($(CD) $(TEMPDIR); $(NIO_CC) $(CPPFLAGS) $(LDDFLAGS) \
+	   -o genSocketOptionRegistry$(EXE_SUFFIX) $(GENSOR_SRC))
+
+ifdef NIO_PLATFORM_CLASSES_ROOT_DIR
+$(SCH_GEN)/SocketOptionRegistry.java: $(NIO_PLATFORM_CLASSES_ROOT_DIR)/sun/nio/ch/SocketOptionRegistry-$(PLATFORM)-$(ARCH).java
+	$(prep-target)
+	$(CP) $< $@
+else 
+$(SCH_GEN)/SocketOptionRegistry.java: $(GENSOR_EXE)
+	$(prep-target)
+	NAWK="$(NAWK)" SH="$(SH)" $(SH) -e addNotices.sh "$(SOR_COPYRIGHT_YEARS)" > $@
+	$(GENSOR_EXE) >> $@
+endif
+#
+# Generated sun.nio.cs SingleByte classes
+#
+GENCSSRC = $(LEGACY_BUILDDIR)/tools/CharsetMapping
+
+$(FILES_gensbcs_out): $(GENCSSRC)/SingleByte-X.java.template $(GENCSSRC)/sbcs
+	@$(prep-target)
+	$(TOOL_CHARSETMAPPING) $(GENCSSRC) $(SCS_GEN) sbcs
+
+# 
+# Generated file system implementation classes (Unix only)
+#
+
+GENUC_SRC = $(PLATFORM_SRC)/native/sun/nio/fs/genUnixConstants.c
+
+GENUC_OBJ = $(TEMPDIR)/genUnixConstants.o
+GENUC_EXE = $(TEMPDIR)/genUnixConstants
+
+GENUC_COPYRIGHT_YEARS = $(shell $(CAT) $(GENUC_SRC) | \
+	$(NAWK) '/^.*Copyright.*Oracle/ { printf "%s %s",$$4,$$5 }')
+
+$(GENUC_EXE) : $(GENUC_SRC)
+	$(prep-target)
+	$(NIO_CC) $(CPPFLAGS) -c -o $(GENUC_OBJ) $(GENUC_SRC)
+	$(NIO_CC) $(CPPFLAGS) -o $@ $(GENUC_OBJ)
+
+ifdef NIO_PLATFORM_CLASSES_ROOT_DIR
+$(SFS_GEN)/UnixConstants.java: $(NIO_PLATFORM_CLASSES_ROOT_DIR)/sun/nio/fs/UnixConstants-$(PLATFORM)-$(ARCH).java
+	$(prep-target)
+	$(CP) $< $@
+else
+$(SFS_GEN)/UnixConstants.java: $(GENUC_EXE)
+	$(prep-target)
+	NAWK="$(NAWK)" SH="$(SH)" $(SH) -e addNotices.sh "$(GENUC_COPYRIGHT_YEARS)" > $@
+	$(GENUC_EXE) >> $@
+endif
+
+GENSC_SRC = $(PLATFORM_SRC)/native/sun/nio/fs/genSolarisConstants.c
+
+GENSC_OBJ = $(TEMPDIR)/genSolarisConstants.o
+GENSC_EXE = $(TEMPDIR)/genSolarisConstants
+
+GENSC_COPYRIGHT_YEARS = $(shell $(CAT) $(GENSC_SRC) | \
+	$(NAWK) '/^.*Copyright.*Oracle/ { printf "%s %s",$$4,$$5 }')
+
+$(GENSC_EXE) : $(GENSC_SRC)
+	$(prep-target)
+	$(NIO_CC) $(CPPFLAGS) -c -o $(GENSC_OBJ) $(GENSC_SRC)
+	$(NIO_CC) $(CPPFLAGS) -o $@ $(GENSC_OBJ)
+
+ifdef NIO_PLATFORM_CLASSES_ROOT_DIR
+$(SFS_GEN)/SolarisConstants.java: $(NIO_PLATFORM_CLASSES_ROOT_DIR)/sun/nio/fs/SolarisConstants-$(PLATFORM)-$(ARCH).java
+	$(prep-target)
+	$(CP) $< $@
+else
+$(SFS_GEN)/SolarisConstants.java: $(GENSC_EXE)
+	$(prep-target)
+	NAWK="$(NAWK)" SH="$(SH)" $(SH) -e addNotices.sh "$(GENSC_COPYRIGHT_YEARS)" > $@
+	$(GENSC_EXE) >> $@
+endif
+
+.PHONY: sources 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/nio/addNotices.sh	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,45 @@
+#! /bin/sh
+#
+# Copyright (c) 2007, 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.
+#
+
+# Parse the first contiguous comment block in this script and generate
+# a java comment block.  If this script is invoked with a copyright 
+# year/year range, the java comment block will contain a Sun copyright.
+
+COPYRIGHT_YEARS="$1"
+
+cat <<__END__
+/*
+__END__
+
+if [ "x$COPYRIGHT_YEARS" != x ]; then
+  cat <<__END__
+ * Copyright (c) $COPYRIGHT_YEARS Oracle and/or its affiliates. All rights reserved.
+__END__
+fi
+
+$NAWK ' /^#.*Copyright.*Oracle/ { next }
+        /^#([^!]|$)/ { sub(/^#/, " *"); print }
+        /^$/ { print " */"; exit } ' $0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/nio/genBuffer.sh	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,173 @@
+#! /bin/sh
+
+#
+# Copyright (c) 2000, 2005, 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.
+#
+
+# Generate concrete buffer classes
+
+# Required environment variables
+#   NAWK SED SPP    To invoke tools
+#   TYPE            Primitive type
+#   SRC             Source file
+#   DST             Destination file
+#
+# Optional environment variables
+#   RW              Mutability: R(ead only), W(ritable)
+#   BO              Byte order: B(ig), L(ittle), S(wapped), U(nswapped)
+#   BIN             Defined => generate binary-data access methods
+
+type=$TYPE
+rw=$RW
+rwkey=XX
+
+case $type in
+  char)  fulltype=character;;
+  int)   fulltype=integer;;
+  *)     fulltype=$type;;
+esac
+
+case $type in
+  byte)           LBPV=0;;
+  char | short)   LBPV=1;;
+  int | float)    LBPV=2;;
+  long | double)  LBPV=3;;
+esac
+
+case $type in 
+  float|double) floatingPointOrIntegralType=floatingPointType;;
+  *)            floatingPointOrIntegralType=integralType;;
+esac
+
+typesAndBits() {
+
+  type="$1"; BO="$2"
+  memtype=$type; swaptype=$type; frombits=; tobits=
+
+  case $type in
+    float)   memtype=int
+             if [ x$BO != xU ]; then
+	       swaptype=int
+	       fromBits=Float.intBitsToFloat
+	       toBits=Float.floatToRawIntBits
+	     fi;;
+    double)  memtype=long
+             if [ x$BO != xU ]; then
+	       swaptype=long
+	       fromBits=Double.longBitsToDouble
+	       toBits=Double.doubleToRawLongBits
+	     fi;;
+  esac
+
+  echo memtype=$memtype swaptype=$swaptype fromBits=$fromBits toBits=$toBits
+
+  echo $type $fulltype $memtype $swaptype \
+  | $NAWK '{ type = $1; fulltype = $2; memtype = $3; swaptype = $4;
+	     x = substr(type, 1, 1);
+	     Type = toupper(x) substr(type, 2);
+	     Fulltype = toupper(x) substr(fulltype, 2);
+	     Memtype = toupper(substr(memtype, 1, 1)) substr(memtype, 2);
+	     Swaptype = toupper(substr(swaptype, 1, 1)) substr(swaptype, 2);
+	     printf("Type=%s x=%s Fulltype=%s Memtype=%s Swaptype=%s ",
+		    Type, x, Fulltype, Memtype, Swaptype); }'
+
+  echo "swap=`if [ x$BO = xS ]; then echo Bits.swap; fi`"
+
+}
+
+eval `typesAndBits $type $BO`
+
+a=`if [ $type = int ]; then echo an; else echo a; fi`
+A=`if [ $type = int ]; then echo An; else echo A; fi`
+
+if [ "x$rw" = xR ]; then rwkey=ro; else rwkey=rw; fi
+
+set -e
+
+$SPP <$SRC >$DST \
+  -K$type \
+  -K$floatingPointOrIntegralType \
+  -Dtype=$type \
+  -DType=$Type \
+  -Dfulltype=$fulltype \
+  -DFulltype=$Fulltype \
+  -Dx=$x \
+  -Dmemtype=$memtype \
+  -DMemtype=$Memtype \
+  -DSwaptype=$Swaptype \
+  -DfromBits=$fromBits \
+  -DtoBits=$toBits \
+  -DLG_BYTES_PER_VALUE=$LBPV \
+  -DBYTES_PER_VALUE="(1 << $LBPV)" \
+  -DBO=$BO \
+  -Dswap=$swap \
+  -DRW=$rw \
+  -K$rwkey \
+  -Da=$a \
+  -DA=$A \
+  -Kbo$BO
+
+if [ $BIN ]; then
+
+  genBinOps() {
+    type="$1"
+    Type=`echo $1 | $NAWK '{ print toupper(substr($1, 1, 1)) substr($1, 2) }'`
+    fulltype="$2"
+    LBPV="$3"
+    nbytes="$4"
+    nbytesButOne="$5"
+    a=`if [ $type = int ]; then echo an; else echo a; fi`
+    src=$6
+    eval `typesAndBits $type`
+    $SPP <$src \
+      -Dtype=$type \
+      -DType=$Type \
+      -Dfulltype=$fulltype \
+      -Dmemtype=$memtype \
+      -DMemtype=$Memtype \
+      -DfromBits=$fromBits \
+      -DtoBits=$toBits \
+      -DLG_BYTES_PER_VALUE=$LBPV \
+      -DBYTES_PER_VALUE="(1 << $LBPV)" \
+      -Dnbytes=$nbytes \
+      -DnbytesButOne=$nbytesButOne \
+      -DRW=$rw \
+      -K$rwkey \
+      -Da=$a \
+      -be
+  }
+
+  mv $DST $DST.tmp
+  sed -e '/#BIN/,$d' <$DST.tmp >$DST
+  rm -f $DST.tmp
+  binops=`dirname $SRC`/`basename $SRC .java.template`-bin.java.template
+  genBinOps char character 1 two one $binops >>$DST
+  genBinOps short short 1 two one $binops >>$DST
+  genBinOps int integer 2 four three $binops >>$DST
+  genBinOps long long 3 eight seven $binops >>$DST
+  genBinOps float float 2 four three $binops >>$DST
+  genBinOps double double 3 eight seven $binops >>$DST
+  echo '}' >>$DST
+
+fi
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/nio/genCharsetProvider.sh	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,131 @@
+#! /bin/sh
+
+#
+# Copyright (c) 2004, 2008, 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.
+#
+
+# Generate a charset provider class
+
+# Required environment variables
+#   NAWK	awk tool
+#   TEMPDIR      temporary directory
+#   HASHER	Hasher program
+
+SPEC=$1; shift
+DST=$1; shift
+
+eval `$NAWK <$SPEC '
+  /^[ \t]*copyright / { printf "COPYRIGHT_YEARS=\"%s %s\"\n", $2, $3; }
+  /^[ \t]*package / { printf "PKG=%s\n", $2; }
+  /^[ \t]*class / { printf "CLASS=%s\n", $2; }
+'`
+
+OUT=$DST/$CLASS.java
+echo '-->' $OUT
+
+
+# Header
+#
+
+$SH ./addNotices.sh "$COPYRIGHT_YEARS" > $OUT
+
+cat <<__END__ >>$OUT
+
+// -- This file was mechanically generated: Do not edit! -- //
+
+package $PKG;
+
+import java.nio.charset.*;
+
+
+public class $CLASS
+    extends FastCharsetProvider
+{
+
+__END__
+
+
+# Alias tables
+#
+$NAWK <$SPEC >>$OUT '
+  BEGIN { n = 1; m = 1; }
+
+  /^[ \t]*charset / {
+    csn = $2; cln = $3;
+    lcsn = tolower(csn);
+    lcsns[n++] = lcsn;
+    csns[lcsn] = csn;
+    classMap[lcsn] = cln;
+    if (n > 2)
+      printf "    };\n\n";
+    printf "    static final String[] aliases_%s = new String[] {\n", cln;
+  }
+
+  /^[ \t]*alias / {
+    acsns[m++] = tolower($2);
+    aliasMap[tolower($2)] = lcsn; 
+    printf "        \"%s\",\n", $2;
+  }
+
+  END {
+    printf "    };\n\n";
+  }
+'
+
+
+# Prehashed alias and class maps
+#
+$NAWK <$SPEC >$TEMPDIR/aliases '
+  /^[ \t]*charset / {
+    csn = $2;
+    lcsn = tolower(csn);
+  }
+  /^[ \t]*alias / {
+    an = tolower($2);
+    printf "%-20s \"%s\"\n", an, lcsn;
+  }
+'
+
+$NAWK <$SPEC >$TEMPDIR/classes '
+  /^[ \t]*charset / {
+    csn = $2; cln = $3;
+    lcsn = tolower(csn);
+    printf "%-20s \"%s\"\n", lcsn, cln;
+  }
+'
+
+${HASHER} -i Aliases <$TEMPDIR/aliases >>$OUT
+${HASHER} -i Classes <$TEMPDIR/classes >>$OUT
+${HASHER} -i -e Cache -t Charset <$TEMPDIR/classes >>$OUT
+
+
+# Constructor
+#
+cat <<__END__ >>$OUT
+    public $CLASS() {
+        super("$PKG", new Aliases(), new Classes(), new Cache());
+    }
+
+}
+__END__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/nio/genCoder.sh	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,99 @@
+#! /bin/sh
+
+#
+# Copyright (c) 2000, 2008, 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.
+#
+
+# Generate charset coder and decoder classes
+
+# Environment variables required from make: SED SPP
+
+what=$1
+SRC=$2
+DST=$3
+
+if [ x$what = xdecoder ]; then
+
+  echo '  '$SRC '--('$what')-->' $DST
+  $SPP <$SRC >$DST \
+    -K$what \
+    -DA='A' \
+    -Da='a' \
+    -DCode='Decode' \
+    -Dcode='decode' \
+    -DitypesPhrase='bytes in a specific charset' \
+    -DotypesPhrase='sixteen-bit Unicode characters' \
+    -Ditype='byte' \
+    -Dotype='character' \
+    -DItype='Byte' \
+    -DOtype='Char' \
+    -Dcoder='decoder' \
+    -DCoder='Decoder' \
+    -Dcoding='decoding' \
+    -DOtherCoder='Encoder' \
+    -DreplTypeName='string' \
+    -DdefaultRepl='"\\uFFFD"' \
+    -DdefaultReplName='<tt>"\&#92;uFFFD"<\/tt>' \
+    -DreplType='String' \
+    -DreplFQType='java.lang.String' \
+    -DreplLength='length()' \
+    -DItypesPerOtype='CharsPerByte' \
+    -DnotLegal='not legal for this charset' \
+    -Dotypes-per-itype='chars-per-byte' \
+    -DoutSequence='Unicode character'
+
+elif [ x$what = xencoder ]; then
+
+  echo '  '$SRC '--('$what')-->' $DST
+  $SPP <$SRC >$DST \
+    -K$what \
+    -DA='An' \
+    -Da='an' \
+    -DCode='Encode' \
+    -Dcode='encode' \
+    -DitypesPhrase='sixteen-bit Unicode characters' \
+    -DotypesPhrase='bytes in a specific charset' \
+    -Ditype='character' \
+    -Dotype='byte' \
+    -DItype='Char' \
+    -DOtype='Byte' \
+    -Dcoder='encoder' \
+    -DCoder='Encoder' \
+    -Dcoding='encoding' \
+    -DOtherCoder='Decoder' \
+    -DreplTypeName='byte array' \
+    -DdefaultRepl='new byte[] { (byte)'"'"\\?"'"' }' \
+    -DdefaultReplName='<tt>{<\/tt>\&nbsp;<tt>(byte)'"'"\\?"'"'<\/tt>\&nbsp;<tt>}<\/tt>' \
+    -DreplType='byte[]' \
+    -DreplFQType='byte[]' \
+    -DreplLength='length' \
+    -DItypesPerOtype='BytesPerChar' \
+    -DnotLegal='not a legal sixteen-bit Unicode sequence' \
+    -Dotypes-per-itype='bytes-per-char' \
+    -DoutSequence='byte sequence in the given charset'
+
+else
+  echo Illegal coder type: $what
+  exit 1
+fi
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/nio/genExceptions.sh	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,110 @@
+#! /bin/sh
+#
+# Copyright (c) 2000, 2008, 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.
+#
+
+# Generate exception classes
+
+SPEC=$1
+DST=$2
+
+gen() {
+  ID=$1
+  WHAT=$2
+  SVUID=$3 
+  ARG_TYPE=$4
+  ARG_ID=$5
+  ARG_PROP=$6
+  ARG_PHRASE=$7
+  ARG_PARAM="$ARG_TYPE$ $ARG_ID"
+  echo '-->' $DST/$ID.java
+  out=$DST/${ID}.java
+
+  $SH ./addNotices.sh "$COPYRIGHT_YEARS" > $out
+
+cat >>$out <<__END__
+
+// -- This file was mechanically generated: Do not edit! -- //
+
+package $PACKAGE;
+
+
+/**$WHAT
+ *
+ * @since $SINCE
+ */
+
+public `if [ ${ABSTRACT:-0} = 1 ];
+        then echo 'abstract '; fi`class $ID
+    extends ${SUPER}
+{
+
+    private static final long serialVersionUID = $SVUID;
+__END__
+
+  if [ $ARG_ID ]; then
+
+    cat >>$out <<__END__
+
+    private $ARG_TYPE $ARG_ID;
+
+    /**
+     * Constructs an instance of this class. </p>
+     *
+     * @param  $ARG_ID
+     *         The $ARG_PHRASE
+     */
+    public $ID($ARG_TYPE $ARG_ID) {
+        super(String.valueOf($ARG_ID));
+	this.$ARG_ID = $ARG_ID;
+    }
+
+    /**
+     * Retrieves the $ARG_PHRASE. </p>
+     *
+     * @return  The $ARG_PHRASE
+     */
+    public $ARG_TYPE get$ARG_PROP() {
+        return $ARG_ID;
+    }
+
+}
+__END__
+
+  else
+
+    cat >>$out <<__END__
+
+    /**
+     * Constructs an instance of this class.
+     */
+    public $ID() { }
+
+}
+__END__
+
+  fi
+}
+
+. $SPEC
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/nio/mapfile-bsd	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,179 @@
+#
+# Copyright (c) 2001, 2011, 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.
+#
+
+SUNWprivate_1.1 {
+	global:
+                Java_java_nio_MappedByteBuffer_force0;
+                Java_java_nio_MappedByteBuffer_isLoaded0;
+                Java_java_nio_MappedByteBuffer_load0;
+                Java_sun_nio_ch_DatagramChannelImpl_disconnect0;
+                Java_sun_nio_ch_DatagramChannelImpl_initIDs;
+                Java_sun_nio_ch_DatagramChannelImpl_receive0;
+                Java_sun_nio_ch_DatagramChannelImpl_send0;
+                Java_sun_nio_ch_DatagramDispatcher_read0;
+                Java_sun_nio_ch_DatagramDispatcher_readv0;
+                Java_sun_nio_ch_DatagramDispatcher_write0;
+                Java_sun_nio_ch_DatagramDispatcher_writev0;
+                Java_sun_nio_ch_FileChannelImpl_close0;
+                Java_sun_nio_ch_FileChannelImpl_initIDs;
+                Java_sun_nio_ch_FileChannelImpl_map0;
+                Java_sun_nio_ch_FileChannelImpl_position0;
+                Java_sun_nio_ch_FileChannelImpl_transferTo0;
+                Java_sun_nio_ch_FileChannelImpl_unmap0;
+                Java_sun_nio_ch_FileDispatcherImpl_close0;
+                Java_sun_nio_ch_FileDispatcherImpl_closeIntFD;
+		Java_sun_nio_ch_FileDispatcherImpl_force0;
+                Java_sun_nio_ch_FileDispatcherImpl_init;
+		Java_sun_nio_ch_FileDispatcherImpl_lock0;
+                Java_sun_nio_ch_FileDispatcherImpl_preClose0;
+                Java_sun_nio_ch_FileDispatcherImpl_pread0;
+                Java_sun_nio_ch_FileDispatcherImpl_pwrite0;
+                Java_sun_nio_ch_FileDispatcherImpl_read0;
+                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_initIDs;
+		Java_sun_nio_ch_InheritedChannel_close0;
+		Java_sun_nio_ch_InheritedChannel_dup;
+		Java_sun_nio_ch_InheritedChannel_dup2;
+		Java_sun_nio_ch_InheritedChannel_open0;
+		Java_sun_nio_ch_InheritedChannel_peerAddress0;
+		Java_sun_nio_ch_InheritedChannel_peerPort0;
+		Java_sun_nio_ch_InheritedChannel_soType0;
+                Java_sun_nio_ch_IOUtil_configureBlocking;
+                Java_sun_nio_ch_IOUtil_drain;
+                Java_sun_nio_ch_IOUtil_fdVal;
+                Java_sun_nio_ch_IOUtil_initIDs;
+                Java_sun_nio_ch_IOUtil_makePipe;
+                Java_sun_nio_ch_IOUtil_randomBytes;
+                Java_sun_nio_ch_IOUtil_setfdVal;
+		Java_sun_nio_ch_KQueue_kqueue;
+		Java_sun_nio_ch_KQueue_keventRegister;
+		Java_sun_nio_ch_KQueue_keventPoll;
+		Java_sun_nio_ch_KQueue_keventSize;
+		Java_sun_nio_ch_KQueue_identOffset;
+		Java_sun_nio_ch_KQueue_filterOffset;
+		Java_sun_nio_ch_KQueue_flagsOffset;
+		Java_sun_nio_ch_KQueuePort_socketpair;
+		Java_sun_nio_ch_KQueuePort_interrupt;
+		Java_sun_nio_ch_KQueuePort_drain1;
+		Java_sun_nio_ch_KQueuePort_close0;
+		Java_sun_nio_ch_NativeThread_current;
+		Java_sun_nio_ch_NativeThread_init;
+		Java_sun_nio_ch_NativeThread_signal;
+		Java_sun_nio_ch_Net_canIPv6SocketJoinIPv4Group0;
+		Java_sun_nio_ch_Net_canJoin6WithIPv4Group0;
+		Java_sun_nio_ch_Net_socket0;
+		Java_sun_nio_ch_Net_bind0;
+		Java_sun_nio_ch_Net_connect0;
+		Java_sun_nio_ch_Net_listen;
+		Java_sun_nio_ch_Net_localPort;
+		Java_sun_nio_ch_Net_localInetAddress;
+		Java_sun_nio_ch_Net_getIntOption0;
+		Java_sun_nio_ch_Net_setIntOption0;
+                Java_sun_nio_ch_Net_initIDs;
+		Java_sun_nio_ch_Net_isIPv6Available0;
+		Java_sun_nio_ch_Net_joinOrDrop4;
+		Java_sun_nio_ch_Net_blockOrUnblock4;
+		Java_sun_nio_ch_Net_joinOrDrop6;
+		Java_sun_nio_ch_Net_blockOrUnblock6;
+		Java_sun_nio_ch_Net_setInterface4;
+		Java_sun_nio_ch_Net_getInterface4;
+		Java_sun_nio_ch_Net_setInterface6;
+		Java_sun_nio_ch_Net_getInterface6;
+		Java_sun_nio_ch_Net_shutdown;
+                Java_sun_nio_ch_PollArrayWrapper_interrupt;
+                Java_sun_nio_ch_PollArrayWrapper_poll0;
+                Java_sun_nio_ch_ServerSocketChannelImpl_accept0;
+                Java_sun_nio_ch_ServerSocketChannelImpl_initIDs;
+                Java_sun_nio_ch_SocketChannelImpl_checkConnect;
+		Java_sun_nio_ch_SocketChannelImpl_sendOutOfBandData;
+		Java_sun_nio_ch_UnixAsynchronousServerSocketChannelImpl_accept0;
+		Java_sun_nio_ch_UnixAsynchronousServerSocketChannelImpl_initIDs;
+		Java_sun_nio_ch_UnixAsynchronousSocketChannelImpl_checkConnect;
+		Java_sun_nio_fs_BsdNativeDispatcher_initIDs;
+		Java_sun_nio_fs_BsdNativeDispatcher_getfsstat;
+		Java_sun_nio_fs_BsdNativeDispatcher_fsstatEntry;
+		Java_sun_nio_fs_BsdNativeDispatcher_endfsstat;
+		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_init;
+		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;
+		handleSocketError;
+
+	local:
+		*;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/nio/mapfile-linux	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,197 @@
+#
+# Copyright (c) 2001, 2011, 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.
+#
+
+SUNWprivate_1.1 {
+	global:
+                Java_java_nio_MappedByteBuffer_force0;
+                Java_java_nio_MappedByteBuffer_isLoaded0;
+                Java_java_nio_MappedByteBuffer_load0;
+                Java_sun_nio_ch_DatagramChannelImpl_disconnect0;
+                Java_sun_nio_ch_DatagramChannelImpl_initIDs;
+                Java_sun_nio_ch_DatagramChannelImpl_receive0;
+                Java_sun_nio_ch_DatagramChannelImpl_send0;
+                Java_sun_nio_ch_DatagramDispatcher_read0;
+                Java_sun_nio_ch_DatagramDispatcher_readv0;
+                Java_sun_nio_ch_DatagramDispatcher_write0;
+                Java_sun_nio_ch_DatagramDispatcher_writev0;
+                Java_sun_nio_ch_EPollArrayWrapper_epollCreate;
+                Java_sun_nio_ch_EPollArrayWrapper_epollCtl;
+                Java_sun_nio_ch_EPollArrayWrapper_epollWait;
+		Java_sun_nio_ch_EPollArrayWrapper_fdLimit;
+		Java_sun_nio_ch_EPollArrayWrapper_init;
+		Java_sun_nio_ch_EPollArrayWrapper_interrupt;
+		Java_sun_nio_ch_EPollArrayWrapper_offsetofData;
+		Java_sun_nio_ch_EPollArrayWrapper_sizeofEPollEvent;
+		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_initIDs;
+                Java_sun_nio_ch_FileChannelImpl_map0;
+                Java_sun_nio_ch_FileChannelImpl_position0;
+                Java_sun_nio_ch_FileChannelImpl_transferTo0;
+                Java_sun_nio_ch_FileChannelImpl_unmap0;
+                Java_sun_nio_ch_FileDispatcherImpl_close0;
+                Java_sun_nio_ch_FileDispatcherImpl_closeIntFD;
+		Java_sun_nio_ch_FileDispatcherImpl_force0;
+                Java_sun_nio_ch_FileDispatcherImpl_init;
+		Java_sun_nio_ch_FileDispatcherImpl_lock0;
+                Java_sun_nio_ch_FileDispatcherImpl_preClose0;
+                Java_sun_nio_ch_FileDispatcherImpl_pread0;
+                Java_sun_nio_ch_FileDispatcherImpl_pwrite0;
+                Java_sun_nio_ch_FileDispatcherImpl_read0;
+                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_initIDs;
+		Java_sun_nio_ch_InheritedChannel_close0;
+		Java_sun_nio_ch_InheritedChannel_dup;
+		Java_sun_nio_ch_InheritedChannel_dup2;
+		Java_sun_nio_ch_InheritedChannel_open0;
+		Java_sun_nio_ch_InheritedChannel_peerAddress0;
+		Java_sun_nio_ch_InheritedChannel_peerPort0;
+		Java_sun_nio_ch_InheritedChannel_soType0;
+                Java_sun_nio_ch_IOUtil_configureBlocking;
+                Java_sun_nio_ch_IOUtil_drain;
+                Java_sun_nio_ch_IOUtil_fdVal;
+                Java_sun_nio_ch_IOUtil_initIDs;
+                Java_sun_nio_ch_IOUtil_makePipe;
+                Java_sun_nio_ch_IOUtil_randomBytes;
+                Java_sun_nio_ch_IOUtil_setfdVal;
+		Java_sun_nio_ch_NativeThread_current;
+		Java_sun_nio_ch_NativeThread_init;
+		Java_sun_nio_ch_NativeThread_signal;
+		Java_sun_nio_ch_Net_canIPv6SocketJoinIPv4Group0;
+		Java_sun_nio_ch_Net_canJoin6WithIPv4Group0;
+		Java_sun_nio_ch_Net_socket0;
+		Java_sun_nio_ch_Net_bind0;
+		Java_sun_nio_ch_Net_connect0;
+		Java_sun_nio_ch_Net_listen;
+		Java_sun_nio_ch_Net_localPort;
+		Java_sun_nio_ch_Net_localInetAddress;
+		Java_sun_nio_ch_Net_getIntOption0;
+		Java_sun_nio_ch_Net_setIntOption0;
+                Java_sun_nio_ch_Net_initIDs;
+		Java_sun_nio_ch_Net_isIPv6Available0;
+		Java_sun_nio_ch_Net_joinOrDrop4;
+		Java_sun_nio_ch_Net_blockOrUnblock4;
+		Java_sun_nio_ch_Net_joinOrDrop6;
+		Java_sun_nio_ch_Net_blockOrUnblock6;
+		Java_sun_nio_ch_Net_setInterface4;
+		Java_sun_nio_ch_Net_getInterface4;
+		Java_sun_nio_ch_Net_setInterface6;
+		Java_sun_nio_ch_Net_getInterface6;
+		Java_sun_nio_ch_Net_shutdown;
+                Java_sun_nio_ch_PollArrayWrapper_interrupt;
+                Java_sun_nio_ch_PollArrayWrapper_poll0;
+                Java_sun_nio_ch_ServerSocketChannelImpl_accept0;
+                Java_sun_nio_ch_ServerSocketChannelImpl_initIDs;
+                Java_sun_nio_ch_SocketChannelImpl_checkConnect;
+		Java_sun_nio_ch_SocketChannelImpl_sendOutOfBandData;
+		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_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_init;
+		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;
+		handleSocketError;
+
+	local:
+		*;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/nio/mapfile-solaris	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,185 @@
+#
+# Copyright (c) 2001, 2011, 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.
+#
+
+SUNWprivate_1.1 {
+	global:
+                Java_java_nio_MappedByteBuffer_force0;
+                Java_java_nio_MappedByteBuffer_isLoaded0;
+                Java_java_nio_MappedByteBuffer_load0;
+                Java_sun_nio_ch_DatagramChannelImpl_disconnect0;
+                Java_sun_nio_ch_DatagramChannelImpl_initIDs;
+                Java_sun_nio_ch_DatagramChannelImpl_receive0;
+                Java_sun_nio_ch_DatagramChannelImpl_send0;
+                Java_sun_nio_ch_DatagramDispatcher_read0;
+                Java_sun_nio_ch_DatagramDispatcher_readv0;
+                Java_sun_nio_ch_DatagramDispatcher_write0;
+                Java_sun_nio_ch_DatagramDispatcher_writev0;
+                Java_sun_nio_ch_DevPollArrayWrapper_fdLimit;
+                Java_sun_nio_ch_DevPollArrayWrapper_init;
+                Java_sun_nio_ch_DevPollArrayWrapper_interrupt;
+                Java_sun_nio_ch_DevPollArrayWrapper_poll0;
+                Java_sun_nio_ch_DevPollArrayWrapper_register;
+                Java_sun_nio_ch_DevPollArrayWrapper_registerMultiple;
+                Java_sun_nio_ch_FileChannelImpl_close0;
+                Java_sun_nio_ch_FileChannelImpl_initIDs;
+                Java_sun_nio_ch_FileChannelImpl_map0;
+                Java_sun_nio_ch_FileChannelImpl_position0;
+                Java_sun_nio_ch_FileChannelImpl_transferTo0;
+                Java_sun_nio_ch_FileChannelImpl_unmap0;
+                Java_sun_nio_ch_FileDispatcherImpl_close0;
+                Java_sun_nio_ch_FileDispatcherImpl_closeIntFD;
+		Java_sun_nio_ch_FileDispatcherImpl_force0;
+                Java_sun_nio_ch_FileDispatcherImpl_init;
+		Java_sun_nio_ch_FileDispatcherImpl_lock0;
+                Java_sun_nio_ch_FileDispatcherImpl_preClose0;
+                Java_sun_nio_ch_FileDispatcherImpl_pread0;
+                Java_sun_nio_ch_FileDispatcherImpl_pwrite0;
+                Java_sun_nio_ch_FileDispatcherImpl_read0;
+                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_initIDs;
+		Java_sun_nio_ch_InheritedChannel_close0;
+		Java_sun_nio_ch_InheritedChannel_dup;
+		Java_sun_nio_ch_InheritedChannel_dup2;
+		Java_sun_nio_ch_InheritedChannel_open0;
+		Java_sun_nio_ch_InheritedChannel_peerAddress0;
+		Java_sun_nio_ch_InheritedChannel_peerPort0;
+		Java_sun_nio_ch_InheritedChannel_soType0;
+                Java_sun_nio_ch_IOUtil_configureBlocking;
+                Java_sun_nio_ch_IOUtil_drain;
+                Java_sun_nio_ch_IOUtil_fdVal;
+                Java_sun_nio_ch_IOUtil_initIDs;
+                Java_sun_nio_ch_IOUtil_makePipe;
+                Java_sun_nio_ch_IOUtil_randomBytes;
+                Java_sun_nio_ch_IOUtil_setfdVal;
+		Java_sun_nio_ch_NativeThread_current;
+		Java_sun_nio_ch_NativeThread_init;
+		Java_sun_nio_ch_NativeThread_signal;
+		Java_sun_nio_ch_Net_canIPv6SocketJoinIPv4Group0;
+                Java_sun_nio_ch_Net_canJoin6WithIPv4Group0;
+		Java_sun_nio_ch_Net_socket0;
+		Java_sun_nio_ch_Net_bind0;
+		Java_sun_nio_ch_Net_connect0;
+		Java_sun_nio_ch_Net_listen;
+		Java_sun_nio_ch_Net_localPort;
+		Java_sun_nio_ch_Net_localInetAddress;
+		Java_sun_nio_ch_Net_getIntOption0;
+		Java_sun_nio_ch_Net_setIntOption0;
+                Java_sun_nio_ch_Net_initIDs;
+		Java_sun_nio_ch_Net_isIPv6Available0;
+		Java_sun_nio_ch_Net_joinOrDrop4;
+		Java_sun_nio_ch_Net_blockOrUnblock4;
+		Java_sun_nio_ch_Net_joinOrDrop6;
+		Java_sun_nio_ch_Net_blockOrUnblock6;
+		Java_sun_nio_ch_Net_setInterface4;
+		Java_sun_nio_ch_Net_getInterface4;
+		Java_sun_nio_ch_Net_setInterface6;
+		Java_sun_nio_ch_Net_getInterface6;
+		Java_sun_nio_ch_Net_shutdown;
+                Java_sun_nio_ch_PollArrayWrapper_interrupt;
+                Java_sun_nio_ch_PollArrayWrapper_poll0;
+                Java_sun_nio_ch_ServerSocketChannelImpl_accept0;
+                Java_sun_nio_ch_ServerSocketChannelImpl_initIDs;
+                Java_sun_nio_ch_SocketChannelImpl_checkConnect;
+		Java_sun_nio_ch_SocketChannelImpl_sendOutOfBandData;
+		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_init;
+		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;
+		handleSocketError;
+
+	local:
+		*;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/nio/reorder-i586	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,17 @@
+data = R0x2000;
+text = LOAD ?RXO;
+# Test Null
+# Test Exit
+# Test Hello
+# Test Sleep
+# Test IntToString
+# Test LoadToolkit
+text: .text%Java_sun_nio_ch_FileChannelImpl_initIDs;
+text: .text%Java_sun_nio_ch_FileDispatcher_initIDs;
+text: .text%Java_sun_nio_ch_IOUtil_initIDs;
+text: .text%Java_sun_nio_ch_FileDispatcher_read0;
+text: .text%convertReturnVal;
+# Test LoadFrame
+# Test LoadJFrame
+# Test JHello
+# SwingSet
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/nio/reorder-sparc	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,12 @@
+data = R0x2000;
+text = LOAD ?RXO;
+# Test Null
+# Test Exit
+# Test Hello
+# Test Sleep
+# Test IntToString
+# Test LoadToolkit
+# Test LoadFrame
+# Test LoadJFrame
+# Test JHello
+# SwingSet
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/nio/reorder-sparcv9	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,17 @@
+data = R0x2000;
+text = LOAD ?RXO;
+# Test Null
+# Test Exit
+# Test Hello
+# Test Sleep
+# Test IntToString
+# Test LoadToolkit
+text: .text%Java_sun_nio_ch_FileChannelImpl_initIDs;
+text: .text%Java_sun_nio_ch_FileDispatcher_initIDs;
+text: .text%Java_sun_nio_ch_IOUtil_initIDs;
+text: .text%Java_sun_nio_ch_FileDispatcher_read0;
+text: .text%convertReturnVal;
+# Test LoadFrame
+# Test LoadJFrame
+# Test JHello
+# SwingSet
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/npt/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,79 @@
+#
+# Copyright (c) 2004, 2011, 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.
+#
+
+BUILDDIR = ../..
+
+# It's currently used by jpda and hprof.  Put it in base module for now.
+LIBRARY = npt
+PRODUCT = sun
+LIBRARY_OUTPUT = npt
+
+# Configure the CFLAGS for this library.
+
+FILES_m = mapfile-vers
+
+include $(BUILDDIR)/common/Defs.gmk
+
+SRCDIR=$(SHARE_SRC)/npt
+PSRCDIR=$(PLATFORM_SRC)/npt
+
+# Use the mapfile-vers (See the mapfile located with this Makefile)
+ifdef FILES_m
+include $(BUILDDIR)/common/Mapfile-vers.gmk
+endif
+
+#
+# Files to compile.
+#
+FILES_c = 			\
+	npt.c 	\
+	utf.c 	\
+	utf_md.c
+
+OTHER_INCLUDES = -I$(SRCDIR) -I$(PSRCDIR)
+
+#
+# Library to compile.
+#
+include $(BUILDDIR)/common/Library.gmk
+
+# We don't want to link against -ljava
+JAVALIB=
+
+# Add -export options to explicitly spell exported symbols
+ifeq ($(PLATFORM), windows)
+  OTHER_LCF += -export:nptInitialize -export:nptTerminate
+endif
+
+# Add location of iconv header
+ifeq ($(PLATFORM), macosx)
+  OTHER_LDLIBS += -liconv
+endif
+
+#
+# Add to ambient vpath so we pick up the library files
+#
+vpath %.c $(SRCDIR):$(PSRCDIR)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/npt/mapfile-vers	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,34 @@
+#
+# Copyright (c) 2004, 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.
+#
+
+# Define public interface.
+
+SUNWprivate_1.1 {
+	global:
+	    nptInitialize;
+	    nptTerminate;
+	local:
+	    *;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/redist/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,497 @@
+#
+# Copyright (c) 1997, 2011, 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.
+#
+
+#
+# Imports files exported by a hotspot build or provided from an external
+#   location into the OUTPUTDIR, and also primes the OUTPUTDIR with files
+#   that are provided inside this workspace.
+#
+# IMPORT_LIST contains the list of destination files that are copied 
+#     from external places (outside this workspace).
+#
+# INTERNAL_IMPORT_LIST is the list of destination files from BUILDDIR.
+# 
+
+BUILDDIR = ../..
+PRODUCT  = java
+include $(BUILDDIR)/common/Defs.gmk
+include $(BUILDDIR)/Tools.gmk
+
+$(info ENTERING redist)
+
+SERVER_LOCATION = server
+CLIENT_LOCATION = client
+KERNEL_LOCATION = kernel
+
+DB_SUFFIX = _db
+DTRACE_SUFFIX = _dtrace
+
+ifeq ($(PLATFORM), windows)
+  LIB_LOCATION = $(BINDIR)
+else ifeq ($(PLATFORM), macosx)
+  LIB_LOCATION = $(LIBDIR)
+else
+  LIB_LOCATION = $(LIBDIR)/$(LIBARCH)
+endif
+
+JVM_NAME               = $(LIB_PREFIX)jvm.$(LIBRARY_SUFFIX)
+JVMLIB_NAME            = $(LIB_PREFIX)jvm.$(LIB_SUFFIX)
+JVMMAP_NAME            = $(LIB_PREFIX)jvm.map
+JVMPDB_NAME            = $(LIB_PREFIX)jvm.pdb
+LIBJSIG_NAME           = $(LIB_PREFIX)jsig.$(LIBRARY_SUFFIX)
+JVMDB_NAME             = $(LIB_PREFIX)jvm$(DB_SUFFIX).$(LIBRARY_SUFFIX)
+JVMDTRACE_NAME         = $(LIB_PREFIX)jvm$(DTRACE_SUFFIX).$(LIBRARY_SUFFIX)
+
+JVM_DEBUGINFO_NAME       = $(LIB_PREFIX)jvm.debuginfo
+LIBJSIG_DEBUGINFO_NAME   = $(LIB_PREFIX)jsig.debuginfo
+JVMDB_DEBUGINFO_NAME     = $(LIB_PREFIX)jvm$(DB_SUFFIX).debuginfo
+JVMDTRACE_DEBUGINFO_NAME = $(LIB_PREFIX)jvm$(DTRACE_SUFFIX).debuginfo
+
+CLASSSHARINGDATA_DIR   = $(BUILDDIR)/../make/tools/sharing
+
+# Needed to do file copy
+ABS_BUILDDIR :=$(call FullPath,$(BUILDDIR))
+
+SUBDIRS_desktop = fonts
+SUBDIRS_tools   = sajdi
+include $(BUILDDIR)/common/Subdirs.gmk
+
+all clean clobber::
+	$(SUBDIRS-loop)
+
+all:: build
+
+# List of files created here or coming from BUILDDIR area (this workspace)
+INTERNAL_IMPORT_LIST = $(LIBDIR)/classlist
+
+# List of files coming from outside this workspace
+ifeq ($(JVM_VARIANT_SERVER),true)
+    IMPORT_LIST = $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVM_NAME) \
+                  $(LIB_LOCATION)/$(SERVER_LOCATION)/Xusage.txt
+    ifneq ($(OBJCOPY),)
+        # the import JDK may not contain .debuginfo files
+        ifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/$(JVM_DEBUGINFO_NAME)),)
+           IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVM_DEBUGINFO_NAME)
+        endif
+    endif
+endif
+ifeq ($(JVM_VARIANT_CLIENT),true)
+    IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVM_NAME) \
+                   $(LIB_LOCATION)/$(CLIENT_LOCATION)/Xusage.txt
+    ifneq ($(OBJCOPY),)
+        # the import JDK may not contain .debuginfo files
+        ifneq ($(wildcard $(HOTSPOT_CLIENT_PATH)/$(JVM_DEBUGINFO_NAME)),)
+            IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVM_DEBUGINFO_NAME)
+        endif
+    endif
+endif
+
+$(info ENTERING redist 2)
+ifeq ($(PLATFORM), windows)
+    IMPORT_LIST += $(BINDIR)/$(notdir $(MSVCR100DLL))
+
+    $(BINDIR)/$(notdir $(MSVCR100DLL)): $(MSVCR100DLL)
+	$(install-import-file)
+	$(call chmod-file, a+x)
+
+    # Get the hotspot .map and .pdb files for client and server
+    ifeq ($(JVM_VARIANT_SERVER),true)
+        IMPORT_LIST += \
+		$(LIBDIR)/$(JVMLIB_NAME) \
+		$(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMMAP_NAME) \
+		$(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMPDB_NAME)
+    endif
+
+    # Add .map and .pdb files to the import path for client and kernel VMs. 
+    ifeq ($(JVM_VARIANT_CLIENT),true)
+        IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMMAP_NAME) \
+                       $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMPDB_NAME)
+    endif
+    ifeq ($(JVM_VARIANT_KERNEL),true)
+        IMPORT_LIST += $(LIB_LOCATION)/$(KERNEL_LOCATION)/$(JVMMAP_NAME) \
+                       $(LIB_LOCATION)/$(KERNEL_LOCATION)/$(JVMPDB_NAME)
+    endif
+
+    $(info XXXX $(LIBDIR)/$(JVMLIB_NAME): $(HOTSPOT_LIB_PATH)/$(JVMLIB_NAME))
+    $(LIBDIR)/$(JVMLIB_NAME): $(HOTSPOT_LIB_PATH)/$(JVMLIB_NAME)
+	$(install-import-file)
+
+    # it is OK for the .map and .pdb files to not exist, so do not force a 
+    # dependency on them from the bootstrap location, and allow the copy to fail.
+    $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMMAP_NAME):
+	@$(prep-target)
+	-$(CP) $(HOTSPOT_CLIENT_PATH)/$(JVMMAP_NAME)  $@
+
+    $(LIB_LOCATION)/$(KERNEL_LOCATION)/$(JVMMAP_NAME):
+	@$(prep-target)
+	-$(CP) $(HOTSPOT_KERNEL_PATH)/$(JVMMAP_NAME)  $@
+
+    $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMMAP_NAME):
+	@$(prep-target)
+	-$(CP) $(HOTSPOT_SERVER_PATH)/$(JVMMAP_NAME) $@
+
+    $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMPDB_NAME):
+	@$(prep-target)
+	-$(CP) $(HOTSPOT_CLIENT_PATH)/$(JVMPDB_NAME)  $@
+
+    $(LIB_LOCATION)/$(KERNEL_LOCATION)/$(JVMPDB_NAME):
+	@$(prep-target)
+	-$(CP) $(HOTSPOT_KERNEL_PATH)/$(JVMPDB_NAME)  $@
+
+    $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMPDB_NAME): 
+	@$(prep-target)
+	-$(CP) $(HOTSPOT_SERVER_PATH)/$(JVMPDB_NAME) $@
+
+else
+    # Posix like systems
+    IMPORT_LIST += $(LIB_LOCATION)/$(LIBJSIG_NAME)
+    ifneq ($(OBJCOPY),)
+        # the import JDK may not contain .debuginfo files
+        ifneq ($(wildcard $(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/$(LIBJSIG_DEBUGINFO_NAME)),)
+            IMPORT_LIST += $(LIB_LOCATION)/$(LIBJSIG_DEBUGINFO_NAME)
+        endif
+    endif
+    ifeq ($(JVM_VARIANT_CLIENT),true)
+        IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(LIBJSIG_NAME)
+        ifneq ($(OBJCOPY),)
+            # the import JDK may not contain the target of the symlink
+            ifneq ($(wildcard $(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/$(LIBJSIG_DEBUGINFO_NAME)),)
+                IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(LIBJSIG_DEBUGINFO_NAME)
+            endif
+        endif
+    endif
+    ifeq ($(JVM_VARIANT_SERVER),true)
+        IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/$(LIBJSIG_NAME)
+        ifneq ($(OBJCOPY),)
+            # the import JDK may not contain the target of the symlink
+            ifneq ($(wildcard $(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/$(LIBJSIG_DEBUGINFO_NAME)),)
+                IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/$(LIBJSIG_DEBUGINFO_NAME)
+            endif
+        endif
+    endif
+
+    ifeq ($(PLATFORM), solaris)
+
+        ifeq ($(JVM_VARIANT_CLIENT),true)
+            IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMDB_NAME)
+
+            # The conditional can be removed when import JDKs contain these files.
+            ifneq ($(wildcard $(HOTSPOT_CLIENT_PATH)/$(JVMDTRACE_NAME)),)
+                IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMDTRACE_NAME)
+                IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/64/$(JVMDB_NAME)
+                IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/64/$(JVMDTRACE_NAME)
+                ifneq ($(OBJCOPY),)
+                    # the import JDK may not contain .debuginfo files
+                    ifneq ($(wildcard $(HOTSPOT_CLIENT_PATH)/$(JVMDTRACE_DEBUGINFO_NAME)),)
+                        IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMDTRACE_DEBUGINFO_NAME)
+                        IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/64/$(JVMDB_DEBUGINFO_NAME)
+                        IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/64/$(JVMDTRACE_DEBUGINFO_NAME)
+                    endif
+                endif
+            else
+                $(warning WARNING: $(HOTSPOT_CLIENT_PATH)/$(JVMDTRACE_NAME) not found!)
+            endif
+
+            $(LIB_LOCATION)/$(JVM_NAME): $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVM_NAME)
+			@$(prep-target)
+        endif 
+
+        ifeq ($(JVM_VARIANT_SERVER),true)
+            IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMDB_NAME)
+            ifneq ($(OBJCOPY),)
+                # the import JDK may not contain .debuginfo files
+                ifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/$(JVMDB_DEBUGINFO_NAME)),)
+                    IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMDB_DEBUGINFO_NAME)
+                endif
+            endif
+            # The conditional can be removed when import JDKs contain these files.
+            ifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/$(JVMDTRACE_NAME)),)
+                IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMDTRACE_NAME)
+                ifneq ($(OBJCOPY),)
+                    # the import JDK may not contain .debuginfo files
+                    ifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/$(JVMDTRACE_DEBUGINFO_NAME)),)
+                        IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMDTRACE_DEBUGINFO_NAME)
+                    endif
+                endif
+            else
+                $(warning WARNING: $(HOTSPOT_SERVER_PATH)/$(JVMDB_NAME) not found!)
+            endif 
+
+            # The conditional can be removed when import JDKs contain these files.
+            ifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/64/$(JVMDB_NAME)),)
+                IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/64/$(JVMDB_NAME)
+                ifneq ($(OBJCOPY),)
+                    # the import JDK may not contain .debuginfo files
+                    ifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/64/$(JVMDB_DEBUGINFO_NAME)),)
+                        IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/64/$(JVMDB_DEBUGINFO_NAME)
+                    endif
+                endif
+            else
+                $(warning WARNING: $(HOTSPOT_SERVER_PATH)/64/$(JVMDB_NAME) not found!)
+            endif
+
+            # The conditional can be removed when import JDKs contain these files.
+            ifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/64/$(JVMDTRACE_NAME)),)
+                IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/64/$(JVMDTRACE_NAME)
+                ifneq ($(OBJCOPY),)
+                    # the import JDK may not contain .debuginfo files
+                    ifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/64/$(JVMDTRACE_DEBUGINFO_NAME)),)
+                        IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/64/$(JVMDTRACE_DEBUGINFO_NAME)
+                    endif
+                endif
+            else
+                $(warning WARNING: $(HOTSPOT_SERVER_PATH)/64/$(JVMDTRACE_NAME) not found!)
+            endif
+        endif
+    endif 
+endif 
+
+$(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVM_NAME): $(HOTSPOT_CLIENT_PATH)/$(JVM_NAME)
+	$(install-import-file)
+	@$(call binary_file_verification,$@)
+
+ifneq ($(OBJCOPY),)
+$(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVM_DEBUGINFO_NAME): $(HOTSPOT_CLIENT_PATH)/$(JVM_DEBUGINFO_NAME)
+	$(install-import-file)
+endif
+
+$(LIB_LOCATION)/$(KERNEL_LOCATION)/$(JVM_NAME): $(HOTSPOT_KERNEL_PATH)/$(JVM_NAME)
+	$(install-file)
+	@$(call binary_file_verification,$@)
+
+$(LIB_LOCATION)/$(LIBJSIG_NAME): $(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/$(LIBJSIG_NAME)
+	$(install-import-file)
+	@$(call binary_file_verification,$@)
+
+ifneq ($(OBJCOPY),)
+$(LIB_LOCATION)/$(LIBJSIG_DEBUGINFO_NAME): $(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/$(LIBJSIG_DEBUGINFO_NAME)
+	$(install-import-file)
+endif
+
+$(LIB_LOCATION)/$(SERVER_LOCATION)/$(LIBJSIG_NAME):
+	@$(prep-target)
+	$(call install-sym-link, ../$(LIBJSIG_NAME))
+
+ifneq ($(OBJCOPY),)
+$(LIB_LOCATION)/$(CLIENT_LOCATION)/$(LIBJSIG_DEBUGINFO_NAME) \
+$(LIB_LOCATION)/$(SERVER_LOCATION)/$(LIBJSIG_DEBUGINFO_NAME):
+	@$(prep-target)
+	$(call install-sym-link, ../$(LIBJSIG_DEBUGINFO_NAME))
+endif
+$(LIB_LOCATION)/$(CLIENT_LOCATION)/$(LIBJSIG_NAME):
+	@$(prep-target)
+	$(call install-sym-link, ../$(LIBJSIG_NAME))
+
+ifneq ($(OBJCOPY),)
+$(LIB_LOCATION)/$(CLIENT_LOCATION)/$(LIBJSIG_DEBUGINFO_NAME):
+	@$(prep-target)
+	$(call install-sym-link, ../$(LIBJSIG_DEBUGINFO_NAME))
+endif
+
+$(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMDB_NAME): $(HOTSPOT_CLIENT_PATH)/$(JVMDB_NAME)
+	$(install-import-file)
+	@$(call binary_file_verification,$@)
+
+$(LIB_LOCATION)/$(CLIENT_LOCATION)/64/$(JVMDB_NAME): $(HOTSPOT_CLIENT_PATH)/64/$(JVMDB_NAME)
+	$(install-import-file)
+	@$(call binary_file_verification,$@)
+
+ifneq ($(OBJCOPY),)
+$(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMDB_DEBUGINFO_NAME): $(HOTSPOT_CLIENT_PATH)/$(JVMDB_DEBUGINFO_NAME)
+	$(install-import-file)
+
+$(LIB_LOCATION)/$(CLIENT_LOCATION)/64/$(JVMDB_DEBUGINFO_NAME): $(HOTSPOT_CLIENT_PATH)/64/$(JVMDB_DEBUGINFO_NAME)
+	$(install-import-file)
+endif
+
+$(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMDB_NAME): $(HOTSPOT_SERVER_PATH)/$(JVMDB_NAME)
+	$(install-import-file)
+	@$(call binary_file_verification,$@)
+
+$(LIB_LOCATION)/$(SERVER_LOCATION)/64/$(JVMDB_NAME): $(HOTSPOT_SERVER_PATH)/64/$(JVMDB_NAME)
+	$(install-import-file)
+	@$(call binary_file_verification,$@)
+
+ifneq ($(OBJCOPY),)
+$(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMDB_DEBUGINFO_NAME): $(HOTSPOT_SERVER_PATH)/$(JVMDB_DEBUGINFO_NAME)
+	$(install-import-file)
+
+$(LIB_LOCATION)/$(SERVER_LOCATION)/64/$(JVMDB_DEBUGINFO_NAME): $(HOTSPOT_SERVER_PATH)/64/$(JVMDB_DEBUGINFO_NAME)
+	$(install-import-file)
+endif
+
+$(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMDTRACE_NAME): $(HOTSPOT_CLIENT_PATH)/$(JVMDTRACE_NAME)
+	$(install-import-file)
+	@$(call binary_file_verification,$@)
+
+$(LIB_LOCATION)/$(CLIENT_LOCATION)/64/$(JVMDTRACE_NAME): $(HOTSPOT_CLIENT_PATH)/64/$(JVMDTRACE_NAME)
+	$(install-import-file)
+	@$(call binary_file_verification,$@)
+
+ifneq ($(OBJCOPY),)
+$(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMDTRACE_DEBUGINFO_NAME): $(HOTSPOT_CLIENT_PATH)/$(JVMDTRACE_DEBUGINFO_NAME)
+	$(install-import-file)
+
+$(LIB_LOCATION)/$(CLIENT_LOCATION)/64/$(JVMDTRACE_DEBUGINFO_NAME): $(HOTSPOT_CLIENT_PATH)/64/$(JVMDTRACE_DEBUGINFO_NAME)
+	$(install-import-file)
+endif
+
+$(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMDTRACE_NAME): $(HOTSPOT_SERVER_PATH)/$(JVMDTRACE_NAME)
+	$(install-import-file)
+	@$(call binary_file_verification,$@)
+
+$(LIB_LOCATION)/$(SERVER_LOCATION)/64/$(JVMDTRACE_NAME): $(HOTSPOT_SERVER_PATH)/64/$(JVMDTRACE_NAME)
+	$(install-import-file)
+	@$(call binary_file_verification,$@)
+
+$(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVM_NAME): $(HOTSPOT_SERVER_PATH)/$(JVM_NAME)
+	$(install-import-file)
+	@$(call binary_file_verification,$@)
+
+ifneq ($(OBJCOPY),)
+$(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMDTRACE_DEBUGINFO_NAME): $(HOTSPOT_SERVER_PATH)/$(JVMDTRACE_DEBUGINFO_NAME)
+	$(install-import-file)
+
+$(LIB_LOCATION)/$(SERVER_LOCATION)/64/$(JVMDTRACE_DEBUGINFO_NAME): $(HOTSPOT_SERVER_PATH)/64/$(JVMDTRACE_DEBUGINFO_NAME)
+	$(install-import-file)
+
+$(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVM_DEBUGINFO_NAME): $(HOTSPOT_SERVER_PATH)/$(JVM_DEBUGINFO_NAME)
+	$(install-import-file)
+endif
+
+$(LIB_LOCATION)/$(SERVER_LOCATION)/Xusage.txt : $(HOTSPOT_SERVER_PATH)/Xusage.txt
+	$(install-import-file)
+
+
+$(LIB_LOCATION)/$(CLIENT_LOCATION)/Xusage.txt : $(HOTSPOT_CLIENT_PATH)/Xusage.txt
+	$(install-import-file)
+
+$(LIB_LOCATION)/$(KERNEL_LOCATION)/Xusage.txt : $(HOTSPOT_KERNEL_PATH)/Xusage.txt
+	$(install-file)
+
+#
+# Specific to non-OpenJDK building
+#
+ifndef OPENJDK
+
+INTERNAL_IMPORT_LIST += \
+            $(LIBDIR)/security/US_export_policy.jar \
+            $(LIBDIR)/security/local_policy.jar \
+            $(LIBDIR)/jce.jar
+
+$(LIBDIR)/jce.jar: \
+	    $(JDK_TOPDIR)/make/closed/tools/crypto/jce/jce.jar
+	$(install-file)
+$(LIBDIR)/security/US_export_policy.jar: \
+	    $(JDK_TOPDIR)/make/closed/tools/crypto/jce/US_export_policy.jar
+	$(install-file)
+$(LIBDIR)/security/local_policy.jar: \
+	    $(JDK_TOPDIR)/make/closed/tools/crypto/jce/local_policy.jar
+	$(install-file)
+
+endif # OPENJDK
+
+# Construct classlist file
+$(LIBDIR)/classlist: \
+    $(CLASSSHARINGDATA_DIR)/classlist.$(PLATFORM) \
+    $(ADDJSUM_JARFILE)
+	@$(prep-target)
+	@$(RM) -f $@.temp
+	$(TOOL_ADDJSUM) \
+	    $(CLASSSHARINGDATA_DIR)/classlist.$(PLATFORM) $@.temp
+	$(MV) $@.temp $@
+
+# Import internal files (ones that are stashed in this source tree)
+import_internal_files : $(INTERNAL_IMPORT_LIST)
+
+# Import files from the JDK that we are not building
+import_files: $(IMPORT_LIST)
+
+# Get component information variables and rules
+include $(BUILDDIR)/common/internal/ImportComponents.gmk
+
+# Security files we need to import
+SEC_FILES_ZIP=$(ABS_BUILDDIR)/tools/crypto/sec-bin.zip
+SEC_FILES_WIN_ZIP=$(ABS_BUILDDIR)/tools/crypto/sec-windows-bin.zip
+JGSS_WIN32_FILES_ZIP=$(ABS_BUILDDIR)/tools/crypto/jgss-windows-i586-bin.zip
+JGSS_WIN64_FILES_ZIP=$(ABS_BUILDDIR)/tools/crypto/jgss-windows-x64-bin.zip
+
+# Unzip zip file $2 into directory $1 (if $2 exists)
+#   Warning: $2 must be absolute path not relative
+define SecUnzipper
+if [ -f $2 ] ; then \
+  $(MKDIR) -p $1; \
+  $(ECHO) "( $(CD) $1 && $(UNZIP) -o $2 )"; \
+  ( $(CD) $1 && $(UNZIP) -o $2 ); \
+fi
+endef
+
+# If sec-bin exists, unpack it into the build directory
+#   Also, the library recompile build indirectly depends on two SSL classes,
+#   so copy those as well   FIXUP
+#   if sec-windows-bin exists, unpack it into the build directory
+#   if JGSS files exists, unpack it into the build directory
+$(TEMPDIR)/security_imported:
+	@$(prep-target)
+	@$(call SecUnzipper,$(OUTPUTDIR),$(SEC_FILES_ZIP))
+ifeq ($(PLATFORM), windows)
+	@$(call SecUnzipper,$(OUTPUTDIR),$(SEC_FILES_WIN_ZIP))
+endif
+ifeq ($(PLATFORM), windows)
+    ifeq ($(ARCH_DATA_MODEL), 32)
+	@$(call SecUnzipper,$(OUTPUTDIR),$(JGSS_WIN32_FILES_ZIP))
+    else
+	@$(call SecUnzipper,$(OUTPUTDIR),$(JGSS_WIN64_FILES_ZIP))
+    endif
+endif
+	@$(ECHO) "Imported on `$(DATE)`" > $@
+
+# Import all files from other components
+$(TEMPDIR)/components_imported:
+	@$(prep-target)
+	$(call import-component-binaries,$(ABS_OUTPUTDIR))
+	$(call import-component-sources,$(IMPORTSRCDIR))
+	$(call import-component-docs,$(IMPORTDOCDIR))
+	$(call import-component-classes,$(CLASSDESTDIR))
+	@$(ECHO) "Imported on `$(DATE)`" > $@
+
+# Do pretty much everything
+build : import_files \
+	import_internal_files \
+	$(TEMPDIR)/components_imported \
+	$(TEMPDIR)/security_imported
+
+# Clean up what we imported (except for component files)
+clean clobber::
+	$(RM) $(IMPORT_LIST)
+	$(RM) $(INTERNAL_IMPORT_LIST)
+	$(call import-component-sources-clean,$(IMPORTSRCDIR))
+	$(call import-component-docs-clean,$(IMPORTDOCDIR))
+	$(call import-component-classes-clean,$(CLASSDESTDIR))
+	$(RM) $(TEMPDIR)/components_imported
+	$(RM) $(TEMPDIR)/security_imported
+
+.PHONY: import_files import_internal_files
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/redist/fonts/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,110 @@
+#
+# Copyright (c) 2009, 2011, 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.
+#
+
+BUILDDIR = ../../..
+PRODUCT  = java
+include $(BUILDDIR)/common/Defs.gmk
+
+
+#
+# List of lucida font files that we redistribute.
+#
+
+SHARED_FONTFILES =					\
+	$(LIBDIR)/fonts/LucidaTypewriterRegular.ttf	\
+	$(LIBDIR)/fonts/LucidaTypewriterBold.ttf        \
+	$(LIBDIR)/fonts/LucidaBrightRegular.ttf         \
+	$(LIBDIR)/fonts/LucidaBrightDemiBold.ttf        \
+	$(LIBDIR)/fonts/LucidaBrightItalic.ttf          \
+	$(LIBDIR)/fonts/LucidaBrightDemiItalic.ttf	\
+	$(LIBDIR)/fonts/LucidaSansRegular.ttf       	\
+	$(LIBDIR)/fonts/LucidaSansDemiBold.ttf       	\
+
+ifeq ($(PLATFORM), linux)
+
+# The oblique versions of the font are derived from the base versions
+# and since 2D can do this derivation on the fly at run time there is no
+# need to redistribute the fonts. An exception to this is on Linux.
+# The reason is that the Lucidas are specified in the font.properties files
+# on Linux, and so AWT/Motif components expect to be able to ask the Xserver
+# for these oblique fonts, but the Xserver cannot do the same derivation as
+# 2D can.
+
+OBLIQUE_FONTFILES =                                             \
+	$(LIBDIR)/oblique-fonts/LucidaTypewriterOblique.ttf     \
+	$(LIBDIR)/oblique-fonts/LucidaTypewriterBoldOblique.ttf \
+	$(LIBDIR)/oblique-fonts/LucidaSansOblique.ttf       	\
+	$(LIBDIR)/oblique-fonts/LucidaSansDemiOblique.ttf       \
+
+endif
+
+ifndef OPENJDK
+
+# Lucida font files are not included in the OpenJDK distribution.
+# Get names of font files
+
+# Copy font files into OUTPUTDIR area
+
+FONTFILES = $(SHARED_FONTFILES)
+FONTSDIR  = $(LIBDIR)/fonts
+FONTSDIRFILE  = $(FONTSDIR)/fonts.dir
+INTERNAL_IMPORT_LIST = $(FONTFILES) 
+
+ifneq ($(PLATFORM), windows)
+  INTERNAL_IMPORT_LIST += $(FONTSDIRFILE)
+endif
+
+$(LIBDIR)/fonts/%.ttf: $(CLOSED_SRC)/share/lib/fonts/%.ttf
+	$(install-file)
+
+$(FONTSDIRFILE): $(PLATFORM_SRC)/classes/sun/awt/motif/java.fonts.dir
+	$(install-file)
+
+ifeq ($(PLATFORM), linux)
+
+# The oblique fonts are only needed/wanted on Linux.
+
+OBLFONTSDIR  = $(LIBDIR)/oblique-fonts
+OBLFONTSDIRFILE	 = $(OBLFONTSDIR)/fonts.dir
+INTERNAL_IMPORT_LIST += $(OBLIQUE_FONTFILES) $(OBLFONTSDIRFILE)
+
+$(LIBDIR)/oblique-fonts/%.ttf: $(CLOSED_SRC)/share/lib/fonts/oblique/%.ttf
+	$(install-file)
+
+$(OBLFONTSDIRFILE): $(PLATFORM_SRC)/classes/sun/awt/motif/java.oblique-fonts.dir
+	$(install-file)
+
+endif # linux
+
+all build : $(INTERNAL_IMPORT_LIST)
+
+clean clobber::
+	$(RM) $(INTERNAL_IMPORT_LIST)
+
+else 
+
+all build clean clobber :
+
+endif # !OPENJDK
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/redist/sajdi/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,99 @@
+#
+# Copyright (c) 1997, 2011, 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.
+#
+
+BUILDDIR = ../../..
+PRODUCT  = java
+include $(BUILDDIR)/common/Defs.gmk
+
+ifeq ($(PLATFORM), windows)
+  LIB_LOCATION = $(BINDIR)
+else ifeq ($(PLATFORM), macosx)
+  LIB_LOCATION = $(LIBDIR)
+else
+  LIB_LOCATION = $(LIBDIR)/$(LIBARCH)
+endif
+
+# INCLUDE_SA is false on platforms where SA is not supported.
+# On platforms where it is supported, we want to allow it to
+# not be present, at least temporarily.  So,
+# if the SA files (well, just sa-jdi.jar) do not exist
+# in the HOTSPOT_IMPORT_PATH, then we won't build SA.
+SA_EXISTS := $(shell if [ -r $(HOTSPOT_IMPORT_PATH)/lib/sa-jdi.jar ] ; then \
+                          $(ECHO) true; \
+                        else \
+                          $(ECHO) false; \
+                        fi)
+
+ifeq ($(SA_EXISTS), false)
+  INCLUDE_SA := false
+endif
+
+IMPORT_LIST =
+ifeq ($(INCLUDE_SA), true)
+  IMPORT_LIST += $(LIBDIR)/sa-jdi.jar \
+                 $(LIB_LOCATION)/$(SALIB_NAME)
+  ifeq ($(PLATFORM), windows)
+    IMPORT_LIST += $(LIB_LOCATION)/$(SAMAP_NAME) \
+                   $(LIB_LOCATION)/$(SAPDB_NAME)
+  endif
+  ifneq ($(OBJCOPY),)
+    # the import JDK may not contain .debuginfo files
+    ifneq ($(wildcard $(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/$(SA_DEBUGINFO_NAME)),)
+      IMPORT_LIST += $(LIB_LOCATION)/$(SA_DEBUGINFO_NAME)
+    endif
+  endif
+endif # INCLUDE_SA
+
+
+ifeq ($(INCLUDE_SA), true)
+# The Serviceability Agent is built in the Hotspot workspace.
+# It contains two files:
+#  - sa-jdi.jar:  This goes into the same dir as tools.jar.
+#  - a shared library:  sawindbg.dll on windows / libproc.sa on unix
+#		        This goes into the same dir as the other
+#			shared libs, eg. libjdwp.so.
+$(LIBDIR)/sa-jdi.jar: $(HOTSPOT_IMPORT_PATH)/lib/sa-jdi.jar
+	$(install-importonly-file)
+
+$(LIB_LOCATION)/$(SALIB_NAME): $(HOTSPOT_SALIB_PATH)/$(SALIB_NAME)
+	$(install-import-file)
+
+ifeq ($(PLATFORM), windows)
+$(LIB_LOCATION)/$(SAPDB_NAME): $(HOTSPOT_SALIB_PATH)/$(SAPDB_NAME)
+	$(install-import-file)
+
+$(LIB_LOCATION)/$(SAMAP_NAME): $(HOTSPOT_SALIB_PATH)/$(SAMAP_NAME)
+	$(install-import-file)
+endif # windows
+
+  ifneq ($(OBJCOPY),)
+$(LIB_LOCATION)/$(SA_DEBUGINFO_NAME): $(HOTSPOT_SALIB_PATH)/$(SA_DEBUGINFO_NAME)
+	$(install-import-file)
+  endif
+endif # INCLUDE_SA
+
+all: $(IMPORT_LIST)
+
+clean clobber::
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/security/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,125 @@
+#
+# Copyright (c) 1996, 2011, 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.
+#
+
+BUILDDIR = ../..
+PACKAGE = java.security
+PRODUCT = sun
+JAVAC_MAX_WARNINGS = true 
+JAVAC_LINT_OPTIONS = -Xlint:all
+JAVAC_WARNINGS_FATAL = true
+include $(BUILDDIR)/common/Defs.gmk
+
+#
+# Rules
+#
+AUTO_FILES_JAVA_DIRS = java/security
+
+#
+# Directories
+#
+
+PROPS_SRC   = $(JDK_TOPDIR)/src/share/lib/security/java.security
+
+ifeq ($(PLATFORM), solaris)
+PROPS_SRC   = $(JDK_TOPDIR)/src/share/lib/security/java.security-solaris
+
+else # NOT_SOLARIS
+
+# Register Microsoft CryptoAPI provider only on Windows platform.
+ifeq ($(PLATFORM), windows)
+  PROPS_SRC   = $(JDK_TOPDIR)/src/share/lib/security/java.security-windows
+else # NOT_WINDOWS
+
+ifeq ($(PLATFORM), macosx)
+  PROPS_SRC   = $(JDK_TOPDIR)/src/share/lib/security/java.security-macosx
+endif # MACOSX
+
+endif # NOT_WINDOWS
+endif # NOT_SOLARIS
+
+
+PROPS_BUILD = $(LIBDIR)/security/java.security
+
+POLICY_SRC =	$(JDK_TOPDIR)/src/share/lib/security/java.policy
+POLICY_BUILD = $(LIBDIR)/security/java.policy
+
+CACERTS_SRC =	$(CACERTS_FILE)
+CACERTS_BUILD = $(LIBDIR)/security/cacerts
+
+ifndef OPENJDK
+  BLACKLIST_SRC =	$(CLOSED_SHARE_SRC)/lib/security/blacklist
+  BLACKLIST_BUILD = $(LIBDIR)/security/blacklist
+  TRUSTEDLIBS_SRC = $(CLOSED_SHARE_SRC)/lib/security/trusted.libraries
+  TRUSTEDLIBS_BUILD = $(LIBDIR)/security/trusted.libraries
+endif
+
+FILES_class = $(FILES_java:%.java=$(CLASSBINDIR)/%.class)
+
+#
+# Rules
+#
+include $(BUILDDIR)/common/Rules.gmk
+
+ifdef OPENJDK
+build: properties policy cacerts
+else
+build: properties policy cacerts blacklist trustedlibs
+endif
+
+install: all
+
+properties: classes  $(PROPS_BUILD)
+
+policy: classes  $(POLICY_BUILD)
+
+cacerts: classes $(CACERTS_BUILD)
+
+blacklist: classes $(BLACKLIST_BUILD)
+
+trustedlibs: classes $(TRUSTEDLIBS_BUILD)
+
+$(PROPS_BUILD): $(PROPS_SRC)
+	$(install-file)
+
+$(POLICY_BUILD): $(POLICY_SRC)
+	$(install-file)
+
+$(CACERTS_BUILD): $(CACERTS_SRC)
+	$(install-file)
+
+$(BLACKLIST_BUILD): $(BLACKLIST_SRC)
+	$(install-file)
+
+$(TRUSTEDLIBS_BUILD): $(TRUSTEDLIBS_SRC)
+	$(install-file)
+
+clean clobber:: .delete.classlist
+	$(RM) -r $(CLASSBINDIR)/java/security
+	$(RM) $(PROPS_BUILD) $(POLICY_BUILD) $(CACERTS_BUILD) $(BLACKLIST_BUILD) $(TRUSTEDLIBS_BUILD)
+
+# Additional Rule for building sun.security.util
+$(CLASSBINDIR)/%.class: $(SHARE_SRC)/sun/%.java
+	@$(ECHO) $? >> $(TEMPDIR)/.classes.list
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/sun_nio/FILES_java.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,78 @@
+#
+# Copyright (c) 2003, 2008, 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.
+#
+
+#
+# This is the list of java classes that will be automatically built
+# from sources.  See Exportedfiles.gmk for the list of files which
+# will generate header files
+#
+FILES_java = \
+    sun/nio/cs/StandardCharsets.java \
+    sun/nio/cs/AbstractCharsetProvider.java \
+    sun/nio/cs/HistoricallyNamedCharset.java \
+    sun/nio/cs/Surrogate.java \
+    sun/nio/cs/CharsetMapping.java \
+    sun/nio/cs/SingleByteEncoder.java \
+    sun/nio/cs/SingleByteDecoder.java \
+    sun/nio/cs/UnicodeEncoder.java \
+    sun/nio/cs/UnicodeDecoder.java \
+    sun/nio/cs/ISO_8859_1.java \
+    sun/nio/cs/ISO_8859_2.java \
+    sun/nio/cs/ISO_8859_4.java \
+    sun/nio/cs/ISO_8859_5.java \
+    sun/nio/cs/ISO_8859_7.java \
+    sun/nio/cs/ISO_8859_9.java \
+    sun/nio/cs/ISO_8859_13.java \
+    sun/nio/cs/ISO_8859_15.java \
+    sun/nio/cs/IBM437.java \
+    sun/nio/cs/IBM737.java \
+    sun/nio/cs/IBM775.java \
+    sun/nio/cs/IBM850.java \
+    sun/nio/cs/IBM852.java \
+    sun/nio/cs/IBM855.java \
+    sun/nio/cs/IBM857.java \
+    sun/nio/cs/IBM858.java \
+    sun/nio/cs/IBM862.java \
+    sun/nio/cs/IBM866.java \
+    sun/nio/cs/IBM874.java \
+    sun/nio/cs/KOI8_R.java \
+    sun/nio/cs/KOI8_U.java \
+    sun/nio/cs/MS1250.java \
+    sun/nio/cs/MS1251.java \
+    sun/nio/cs/MS1252.java \
+    sun/nio/cs/MS1253.java \
+    sun/nio/cs/MS1254.java \
+    sun/nio/cs/MS1257.java \
+    sun/nio/cs/US_ASCII.java \
+    sun/nio/cs/UTF_16.java \
+    sun/nio/cs/UTF_16BE.java \
+    sun/nio/cs/UTF_16LE.java \
+    sun/nio/cs/UTF_16LE_BOM.java \
+    sun/nio/cs/UTF_32.java \
+    sun/nio/cs/UTF_32BE.java \
+    sun/nio/cs/UTF_32LE.java \
+    sun/nio/cs/UTF_32BE_BOM.java \
+    sun/nio/cs/UTF_32LE_BOM.java
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/sun_nio/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,53 @@
+#
+# Copyright (c) 2003, 2010, 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.
+#
+
+#
+# Makefile for sun/nio files
+#
+
+BUILDDIR = ../..
+PACKAGE = sun.nio
+PRODUCT = sun
+
+JAVAC_MAX_WARNINGS = true
+JAVAC_WARNINGS_FATAL = true
+include $(BUILDDIR)/common/Defs.gmk
+
+#
+# Files to compile.
+#
+include FILES_java.gmk
+
+#
+# Install .lib file.
+#
+INSTALL_DOT_LIB = true
+
+include $(BUILDDIR)/common/Classes.gmk
+
+clean:: 
+	$(RM) -r $(CLASSHDRDIR)
+clobber:: 
+	$(RM) -r $(CLASSBINDIR)/sun/nio/cs 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/util/FILES_java.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,41 @@
+#
+# Copyright (c) 2005, 2010, 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.
+#
+
+FILES_java = \
+        sun/util/resources/LocaleData.java \
+        sun/util/resources/OpenListResourceBundle.java \
+        sun/util/resources/LocaleNamesBundle.java \
+        sun/util/resources/TimeZoneNamesBundle.java \
+        sun/util/resources/TimeZoneNames.java \
+        sun/util/resources/TimeZoneNames_de.java \
+        sun/util/resources/TimeZoneNames_en.java \
+        sun/util/resources/TimeZoneNames_en_CA.java \
+        sun/util/resources/TimeZoneNames_en_GB.java \
+        sun/util/resources/TimeZoneNames_en_IE.java \
+        sun/util/resources/TimeZoneNames_es.java \
+        sun/util/resources/TimeZoneNames_fr.java \
+        sun/util/resources/TimeZoneNames_it.java \
+        sun/util/resources/TimeZoneNames_pt_BR.java \
+        sun/util/resources/TimeZoneNames_sv.java
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/util/FILES_properties.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,213 @@
+#
+# Copyright (c) 2005, 2011, 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.
+#
+
+FILES_compiled_properties = \
+        sun/util/resources/LocaleNames.properties \
+        sun/util/resources/LocaleNames_be.properties \
+        sun/util/resources/LocaleNames_bg.properties \
+        sun/util/resources/LocaleNames_ca.properties \
+        sun/util/resources/LocaleNames_cs.properties \
+        sun/util/resources/LocaleNames_da.properties \
+        sun/util/resources/LocaleNames_de.properties \
+        sun/util/resources/LocaleNames_el.properties \
+        sun/util/resources/LocaleNames_el_CY.properties \
+        sun/util/resources/LocaleNames_en.properties \
+        sun/util/resources/LocaleNames_en_MT.properties \
+        sun/util/resources/LocaleNames_en_PH.properties \
+        sun/util/resources/LocaleNames_en_SG.properties \
+        sun/util/resources/LocaleNames_es.properties \
+        sun/util/resources/LocaleNames_es_US.properties \
+        sun/util/resources/LocaleNames_et.properties \
+        sun/util/resources/LocaleNames_fi.properties \
+        sun/util/resources/LocaleNames_fr.properties \
+        sun/util/resources/LocaleNames_ga.properties \
+        sun/util/resources/LocaleNames_hr.properties \
+        sun/util/resources/LocaleNames_hu.properties \
+        sun/util/resources/LocaleNames_in.properties \
+        sun/util/resources/LocaleNames_is.properties \
+        sun/util/resources/LocaleNames_it.properties \
+        sun/util/resources/LocaleNames_lt.properties \
+        sun/util/resources/LocaleNames_lv.properties \
+        sun/util/resources/LocaleNames_mk.properties \
+        sun/util/resources/LocaleNames_ms.properties \
+        sun/util/resources/LocaleNames_mt.properties \
+        sun/util/resources/LocaleNames_nl.properties \
+        sun/util/resources/LocaleNames_no.properties \
+        sun/util/resources/LocaleNames_no_NO_NY.properties \
+        sun/util/resources/LocaleNames_pl.properties \
+        sun/util/resources/LocaleNames_pt.properties \
+        sun/util/resources/LocaleNames_pt_BR.properties \
+        sun/util/resources/LocaleNames_pt_PT.properties \
+        sun/util/resources/LocaleNames_ro.properties \
+        sun/util/resources/LocaleNames_ru.properties \
+        sun/util/resources/LocaleNames_sk.properties \
+        sun/util/resources/LocaleNames_sl.properties \
+        sun/util/resources/LocaleNames_sq.properties \
+        sun/util/resources/LocaleNames_sr.properties \
+        sun/util/resources/LocaleNames_sr_Latn.properties \
+        sun/util/resources/LocaleNames_sv.properties \
+        sun/util/resources/LocaleNames_tr.properties \
+        sun/util/resources/LocaleNames_uk.properties \
+	\
+        sun/util/resources/CalendarData.properties \
+        sun/util/resources/CalendarData_be.properties \
+        sun/util/resources/CalendarData_bg.properties \
+        sun/util/resources/CalendarData_ca.properties \
+        sun/util/resources/CalendarData_cs.properties \
+        sun/util/resources/CalendarData_da.properties \
+        sun/util/resources/CalendarData_de.properties \
+        sun/util/resources/CalendarData_el.properties \
+        sun/util/resources/CalendarData_el_CY.properties \
+        sun/util/resources/CalendarData_en.properties \
+        sun/util/resources/CalendarData_en_GB.properties \
+        sun/util/resources/CalendarData_en_IE.properties \
+        sun/util/resources/CalendarData_en_MT.properties \
+        sun/util/resources/CalendarData_es.properties \
+        sun/util/resources/CalendarData_es_ES.properties \
+        sun/util/resources/CalendarData_es_US.properties \
+        sun/util/resources/CalendarData_et.properties \
+        sun/util/resources/CalendarData_fi.properties \
+        sun/util/resources/CalendarData_fr.properties \
+        sun/util/resources/CalendarData_fr_CA.properties \
+        sun/util/resources/CalendarData_hr.properties \
+        sun/util/resources/CalendarData_hu.properties \
+        sun/util/resources/CalendarData_in_ID.properties \
+        sun/util/resources/CalendarData_is.properties \
+        sun/util/resources/CalendarData_it.properties \
+        sun/util/resources/CalendarData_lt.properties \
+        sun/util/resources/CalendarData_lv.properties \
+        sun/util/resources/CalendarData_mk.properties \
+        sun/util/resources/CalendarData_ms_MY.properties \
+        sun/util/resources/CalendarData_mt.properties \
+        sun/util/resources/CalendarData_mt_MT.properties \
+        sun/util/resources/CalendarData_nl.properties \
+        sun/util/resources/CalendarData_no.properties \
+        sun/util/resources/CalendarData_pl.properties \
+        sun/util/resources/CalendarData_pt.properties \
+        sun/util/resources/CalendarData_pt_PT.properties \
+        sun/util/resources/CalendarData_ro.properties \
+        sun/util/resources/CalendarData_ru.properties \
+        sun/util/resources/CalendarData_sk.properties \
+        sun/util/resources/CalendarData_sl.properties \
+        sun/util/resources/CalendarData_sq.properties \
+        sun/util/resources/CalendarData_sr.properties \
+        sun/util/resources/CalendarData_sr_Latn_BA.properties \
+        sun/util/resources/CalendarData_sr_Latn_ME.properties \
+        sun/util/resources/CalendarData_sr_Latn_RS.properties \
+        sun/util/resources/CalendarData_sv.properties \
+        sun/util/resources/CalendarData_tr.properties \
+        sun/util/resources/CalendarData_uk.properties \
+	\
+        sun/util/resources/CurrencyNames.properties \
+        sun/util/resources/CurrencyNames_be_BY.properties \
+        sun/util/resources/CurrencyNames_bg_BG.properties \
+        sun/util/resources/CurrencyNames_ca_ES.properties \
+        sun/util/resources/CurrencyNames_cs_CZ.properties \
+        sun/util/resources/CurrencyNames_da_DK.properties \
+        sun/util/resources/CurrencyNames_de.properties \
+        sun/util/resources/CurrencyNames_de_AT.properties \
+        sun/util/resources/CurrencyNames_de_CH.properties \
+        sun/util/resources/CurrencyNames_de_DE.properties \
+        sun/util/resources/CurrencyNames_de_GR.properties \
+        sun/util/resources/CurrencyNames_de_LU.properties \
+        sun/util/resources/CurrencyNames_el_CY.properties \
+        sun/util/resources/CurrencyNames_el_GR.properties \
+        sun/util/resources/CurrencyNames_en_AU.properties \
+        sun/util/resources/CurrencyNames_en_CA.properties \
+        sun/util/resources/CurrencyNames_en_GB.properties \
+        sun/util/resources/CurrencyNames_en_IE.properties \
+        sun/util/resources/CurrencyNames_en_IN.properties \
+        sun/util/resources/CurrencyNames_en_MT.properties \
+        sun/util/resources/CurrencyNames_en_NZ.properties \
+        sun/util/resources/CurrencyNames_en_PH.properties \
+        sun/util/resources/CurrencyNames_en_SG.properties \
+        sun/util/resources/CurrencyNames_en_US.properties \
+        sun/util/resources/CurrencyNames_en_ZA.properties \
+        sun/util/resources/CurrencyNames_es.properties \
+        sun/util/resources/CurrencyNames_es_AR.properties \
+        sun/util/resources/CurrencyNames_es_BO.properties \
+        sun/util/resources/CurrencyNames_es_CL.properties \
+        sun/util/resources/CurrencyNames_es_CO.properties \
+        sun/util/resources/CurrencyNames_es_CR.properties \
+        sun/util/resources/CurrencyNames_es_CU.properties \
+        sun/util/resources/CurrencyNames_es_DO.properties \
+        sun/util/resources/CurrencyNames_es_EC.properties \
+        sun/util/resources/CurrencyNames_es_ES.properties \
+        sun/util/resources/CurrencyNames_es_GT.properties \
+        sun/util/resources/CurrencyNames_es_HN.properties \
+        sun/util/resources/CurrencyNames_es_MX.properties \
+        sun/util/resources/CurrencyNames_es_NI.properties \
+        sun/util/resources/CurrencyNames_es_PA.properties \
+        sun/util/resources/CurrencyNames_es_PE.properties \
+        sun/util/resources/CurrencyNames_es_PR.properties \
+        sun/util/resources/CurrencyNames_es_PY.properties \
+        sun/util/resources/CurrencyNames_es_SV.properties \
+        sun/util/resources/CurrencyNames_es_US.properties \
+        sun/util/resources/CurrencyNames_es_UY.properties \
+        sun/util/resources/CurrencyNames_es_VE.properties \
+        sun/util/resources/CurrencyNames_et_EE.properties \
+        sun/util/resources/CurrencyNames_fi_FI.properties \
+        sun/util/resources/CurrencyNames_fr.properties \
+        sun/util/resources/CurrencyNames_fr_BE.properties \
+        sun/util/resources/CurrencyNames_fr_CA.properties \
+        sun/util/resources/CurrencyNames_fr_CH.properties \
+        sun/util/resources/CurrencyNames_fr_FR.properties \
+        sun/util/resources/CurrencyNames_fr_LU.properties \
+        sun/util/resources/CurrencyNames_ga_IE.properties \
+        sun/util/resources/CurrencyNames_hr_HR.properties \
+        sun/util/resources/CurrencyNames_hu_HU.properties \
+        sun/util/resources/CurrencyNames_in_ID.properties \
+        sun/util/resources/CurrencyNames_is_IS.properties \
+        sun/util/resources/CurrencyNames_it.properties \
+        sun/util/resources/CurrencyNames_it_CH.properties \
+        sun/util/resources/CurrencyNames_it_IT.properties \
+        sun/util/resources/CurrencyNames_lt_LT.properties \
+        sun/util/resources/CurrencyNames_lv_LV.properties \
+        sun/util/resources/CurrencyNames_mk_MK.properties \
+        sun/util/resources/CurrencyNames_ms_MY.properties \
+        sun/util/resources/CurrencyNames_mt_MT.properties \
+        sun/util/resources/CurrencyNames_nl_BE.properties \
+        sun/util/resources/CurrencyNames_nl_NL.properties \
+        sun/util/resources/CurrencyNames_no_NO.properties \
+        sun/util/resources/CurrencyNames_pl_PL.properties \
+        sun/util/resources/CurrencyNames_pt.properties \
+        sun/util/resources/CurrencyNames_pt_BR.properties \
+        sun/util/resources/CurrencyNames_pt_PT.properties \
+        sun/util/resources/CurrencyNames_ro_RO.properties \
+        sun/util/resources/CurrencyNames_ru_RU.properties \
+        sun/util/resources/CurrencyNames_sk_SK.properties \
+        sun/util/resources/CurrencyNames_sl_SI.properties \
+        sun/util/resources/CurrencyNames_sq_AL.properties \
+        sun/util/resources/CurrencyNames_sr_BA.properties \
+        sun/util/resources/CurrencyNames_sr_CS.properties \
+        sun/util/resources/CurrencyNames_sr_ME.properties \
+        sun/util/resources/CurrencyNames_sr_RS.properties \
+        sun/util/resources/CurrencyNames_sr_Latn_BA.properties \
+        sun/util/resources/CurrencyNames_sr_Latn_ME.properties \
+        sun/util/resources/CurrencyNames_sr_Latn_RS.properties \
+        sun/util/resources/CurrencyNames_sv.properties \
+        sun/util/resources/CurrencyNames_sv_SE.properties \
+        sun/util/resources/CurrencyNames_tr_TR.properties \
+        sun/util/resources/CurrencyNames_uk_UA.properties
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/util/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,59 @@
+#
+# Copyright (c) 2005, 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.
+#
+
+#
+# Makefile for sun.util.resources that don't need
+# to be part of the bootstrap build.
+#
+
+BUILDDIR = ../..
+
+PACKAGE = java.util.resources
+PRODUCT = java
+JAVAC_MAX_WARNINGS = true
+JAVAC_WARNINGS_FATAL = true
+
+include $(BUILDDIR)/common/Defs.gmk
+
+#
+# Files
+#
+
+#  Adds more files than before?: AUTO_FILES_JAVA_DIRS=sun/util/resources
+include FILES_java.gmk
+
+#  Adds more files than before?: AUTO_FILES_PROPERTIES_DIRS=sun/util/resources
+include FILES_properties.gmk
+
+#
+# Compile properties
+#
+COMPILED_PROPERTIES_SUPERCLASS=LocaleNamesBundle
+
+#
+# Include
+#
+include $(BUILDDIR)/common/Classes.gmk
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/verify/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,70 @@
+#
+# Copyright (c) 1999, 2011, 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.
+#
+
+#
+# Build libverify.so
+#
+
+BUILDDIR = ../..
+PRODUCT = java
+LIBRARY = verify
+include $(BUILDDIR)/common/Defs.gmk
+
+#
+# Link to libjvm so JVM_ functions can be called.
+#
+OTHER_LDLIBS += $(JVMLIB)
+
+ifeq ($(PLATFORM), windows)
+  #
+  # Don't want JAVALIB
+  #
+  JAVALIB = 
+  EXTRA_LIBS = 
+endif
+
+#
+# Files to compile.
+#
+FILES_c = \
+	check_code.c \
+	check_format.c
+
+#
+# Targets.
+#
+ifeq ($(PLATFORM), solaris)
+  ifneq ($(ARCH), amd64)
+    FILES_reorder += reorder-$(ARCH)
+  endif
+endif
+include $(BUILDDIR)/common/Mapfile-vers.gmk
+include $(BUILDDIR)/common/Library.gmk
+
+#
+# Add to the ambient VPATH.
+#
+vpath %.c   $(SHARE_SRC)/native/common
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/verify/mapfile-vers	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,34 @@
+#
+# Copyright (c) 2000, 2003, 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.
+#
+ 
+SUNWprivate_1.1 {
+   global:
+           VerifyClass;
+           VerifyClassForMajorVersion;
+           VerifyClassname;
+           VerifyFixClassname;
+   local:
+           *;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/verify/reorder-i586	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,40 @@
+data = R0x2000;
+text = LOAD ?RXO;
+# Test Null
+text: .text%VerifyFixClassname;
+text: .text%VerifyClassname;
+text: .text%skip_over_fieldname: OUTPUTDIR/tmp/java/verify/obj/check_format.o;
+text: .text%skip_over_field_signature: OUTPUTDIR/tmp/java/verify/obj/check_format.o;
+text: .text%VerifyClass;
+text: .text%make_class_info_from_name: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%class_name_to_ID: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%make_class_info: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%free_block: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%verify_method: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%verify_opcode_operands: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%initialize_dataflow: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%signature_to_fieldtype: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%check_register_values: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%pop_stack: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%update_registers: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%push_stack: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%merge_into_successors: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%cp_index_to_class_fullinfo: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%set_protected: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%merge_into_one_successor: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%merge_registers: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+# Test Exit
+# Test Hello
+text: .text%merge_fullinfo_types: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%isAssignableTo: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+# Test Sleep
+text: .text%isLegalTarget: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%verify_constant_pool_type: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+# Test IntToString
+# Test LoadToolkit
+# Test LoadFrame
+# Test LoadJFrame
+# Test JHello
+# SwingSet
+text: .text%copy_stack: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%ntohl: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/verify/reorder-sparc	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,44 @@
+data = R0x2000;
+text = LOAD ?RXO;
+# Test Null
+text: .text%VerifyFixClassname;
+text: .text%VerifyClassname;
+text: .text%skip_over_fieldname: OUTPUTDIR/tmp/java/verify/obj/check_format.o;
+text: .text%VerifyClass;
+text: .text%CCinit: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%initialize_class_hash;
+text: .text%make_class_info_from_name: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%make_class_info: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%verify_method: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%instruction_length: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%verify_opcode_operands: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%initialize_exception_table: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%initialize_dataflow: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%signature_to_fieldtype: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%check_register_values: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%pop_stack: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%update_registers: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%push_stack: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%merge_into_successors: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%pop_and_free: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%cp_index_to_class_fullinfo: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%set_protected: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%merge_into_one_successor: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%merge_stack: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%merge_registers: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%finalize_class_hash: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%CCdestroy: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+# Test Exit
+# Test Hello
+text: .text%merge_fullinfo_types: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+# Test Sleep
+# Test IntToString
+# Test LoadToolkit
+# Test LoadFrame
+text: .text%verify_constant_pool_type: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+# Test LoadJFrame
+# Test JHello
+# SwingSet
+text: .text%verify_field: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%check_and_push: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%signature_to_args_size: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/java/verify/reorder-sparcv9	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,45 @@
+data = R0x2000;
+text = LOAD ?RXO;
+# Test Null
+text: .text%VerifyFixClassname;
+text: .text%next_utf2unicode: OUTPUTDIR/tmp/java/verify/obj64/check_format.o;
+text: .text%VerifyClassname;
+text: .text%skip_over_fieldname: OUTPUTDIR/tmp/java/verify/obj64/check_format.o;
+text: .text%VerifyClass;
+text: .text%CCinit: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%initialize_class_hash;
+text: .text%make_class_info_from_name: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%make_class_info: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%verify_method: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%instruction_length: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%verify_opcode_operands: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%verify_constant_pool_type: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%cp_index_to_class_fullinfo: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%check_and_push: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%pop_and_free: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%set_protected: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%initialize_exception_table: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%merge_fullinfo_types: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%initialize_dataflow: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%signature_to_fieldtype: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%check_register_values: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%pop_stack: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%update_registers: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%push_stack: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%merge_into_successors: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%merge_into_one_successor: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%merge_stack: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%merge_registers: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%finalize_class_hash: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%CCdestroy: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+# Test Exit
+# Test Hello
+# Test Sleep
+# Test IntToString
+# Test LoadToolkit
+# Test LoadFrame
+# Test LoadJFrame
+# Test JHello
+# SwingSet
+text: .text%verify_field: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%signature_to_args_size: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/javax/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,54 @@
+#
+# Copyright (c) 1998, 2011, 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.
+#
+
+#
+# Makefile for building javax
+#
+
+BUILDDIR = ..
+include $(BUILDDIR)/common/Defs.gmk
+
+SUBDIRS = 
+
+SUBDIRS_management = management
+
+SUBDIRS_misc = \
+        crypto \
+        sql 
+ 
+
+# imageio uses xml, so build it last
+SUBDIRS_desktop = \
+        swing \
+        sound \
+        imageio
+
+include $(BUILDDIR)/common/Subdirs.gmk
+
+all build:
+	$(SUBDIRS-loop)
+clean clobber::
+	$(SUBDIRS-loop)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/javax/crypto/Defs-jce.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,105 @@
+#
+# Copyright (c) 2007, 2011, 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 $(BUILDDIR)/common/Release.gmk
+
+#
+# Include these extra attributes for now, should probably take out.
+#
+JCE_MANIFEST_FILE    = $(TEMPDIR)/manifest.mf
+$(JCE_MANIFEST_FILE): $(MAINMANIFEST)
+	$(prep-target)
+	$(SED) -e "s#@@RELEASE@@#$(RELEASE)#"           \
+               -e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" \
+               $(MAINMANIFEST) >> $@
+	$(ECHO) "Extension-Name: javax.crypto" >> $@
+	$(ECHO) "Implementation-Vendor-Id: com.sun" >> $@
+
+README-MAKEFILE_WARNING = \
+    "\nPlease read make/javax/crypto/Makefile for further build instructions."
+
+define no-source-warning
+	@$(ECHO) "\n***JCE sources are not available, skipping build.***" \
+	    $(README-MAKEFILE_WARNING)
+endef
+
+ifndef OPENJDK
+
+PREBUILT_DIR = $(JDK_TOPDIR)/make/closed/tools/crypto
+
+define build-warning
+	@$(ECHO) "\n***JCE in JDK builds require special tools/procedures.***" \
+	    $(README-MAKEFILE_WARNING)
+endef
+
+#
+# Location for JCE codesigning key.
+#
+SIGNING_KEY_DIR    = /security/ws/JCE-signing/src
+SIGNING_KEYSTORE   = $(SIGNING_KEY_DIR)/KeyStore.jks
+SIGNING_PASSPHRASE = $(SIGNING_KEY_DIR)/passphrase.txt
+SIGNING_ALIAS      = oracle_jce_rsa
+
+#
+# Defines for signing the various jar files.
+#
+
+define presign
+    @if [ ! -f $(SIGNING_KEYSTORE) -o ! -f $(SIGNING_PASSPHRASE) ]; then \
+	$(ECHO) "\n$(SIGNING_KEYSTORE): Signing mechanism *NOT* available..." \
+	    $(README-MAKEFILE_WARNING); \
+	exit 2; \
+    fi
+endef
+
+define sign-target
+	$(BOOT_JARSIGNER_CMD) -keystore $(SIGNING_KEYSTORE) \
+	    $@ $(SIGNING_ALIAS) < $(SIGNING_PASSPHRASE)
+	@$(java-vm-cleanup)
+	@$(ECHO) "\nJar codesigning finished."
+endef
+
+RELEASE_DIR = $(OUTPUTDIR)/jce-release
+
+define release-warning
+	@$(ECHO) \
+	    "\n***The jar files built by the 'release' target must***" \
+	    "\n***still be checked into the closed workspace!     ***" \
+	    $(README-MAKEFILE_WARNING)
+endef
+
+#
+# Convenience macros for signing a jar file.
+#
+# Call through $(call sign-file, target file)
+#
+define sign-file
+	$(presign)
+	$(prep-target)
+	$(CP) $1 $@
+	$(sign-target)
+endef
+
+endif  # !OPENJDK
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/javax/crypto/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,484 @@
+#
+# Copyright (c) 2007, 2011, 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.
+#
+
+#
+# Makefile for building jce.jar and the various cryptographic strength
+# policy jar files.
+#
+
+#
+# (The terms "OpenJDK" and "JDK" below refer to OpenJDK and Sun JDK builds
+# respectively.)
+#
+# JCE builds are very different between OpenJDK and JDK.  The OpenJDK JCE
+# jar files do not require signing, but those for JDK do.  If an unsigned
+# jar file is installed into JDK, things will break when the crypto
+# routines are called.
+#
+# This Makefile does the "real" build of the JCE files.  There are some
+# javac options currently specific to JCE, so we recompile now to make
+# sure any implicit compilations didn't use any incorrect flags.
+#
+# For OpenJDK, the jar files built here are installed directly into the
+# OpenJDK.
+#
+# For JDK, the binaries use pre-built/pre-signed binary files stored in
+# the closed workspace that are not shipped in the OpenJDK workspaces.
+# We still build the JDK files here to verify the files compile, and in
+# preparation for possible signing.  Developers working on JCE in JDK
+# must sign the JCE files before testing.  The JCE signing key is kept
+# separate from the JDK workspace to prevent its disclosure.
+#
+# SPECIAL NOTE TO JCE/JDK developers:  The source files must eventually
+# be built and signed, and the resulting jar files *MUST BE CHECKED INTO
+# THE CLOSED PART OF THE WORKSPACE*.  This separate step *MUST NOT BE
+# FORGOTTEN*, otherwise a bug fixed in the source code will not be
+# reflected in the shipped binaries.  The "release" target should be
+# used to generate the required files.
+#
+# There are a number of targets to help both JDK/OpenJDK developers.
+#
+# Main Targets (JDK/OPENJDK):
+#
+#     all/clobber/clean        The usual.
+#                                  If OpenJDK: builds/installs the
+#                                      jce.jar/limited policy files.
+#                                  If JDK: builds but does not install.
+#                                     During full tops-down builds,
+#                                     prebuilt/presigned jce.jar &
+#                                     limited policy files are copied
+#                                     in by make/java/redist/Makefile.
+#                                     If you are working in this directory
+#                                     and want to install the prebuilts,
+#                                     use the "install-prebuilt" target.
+#
+#     jar                      Builds/installs jce.jar
+#                                  If OpenJDK, does not sign
+#                                  If JDK, tries to sign
+#
+# Other lesser-used Targets (JDK/OPENJDK):
+#
+#     build-jar                Builds jce.jar (does not sign/install)
+#
+#     build-policy             Builds policy files (does not sign/install)
+#
+#     install-jar              Alias for "jar" above
+#
+#     install-limited          Builds/installs limited policy files
+#                                  If OpenJDK, does not sign
+#                                  If JDK, tries to sign
+#     install-unlimited        Builds/nstalls unlimited policy files
+#                                  If OpenJDK, does not sign
+#                                  If JDK, tries to sign
+#
+# Other targets (JDK only):
+#
+#     sign                     Alias for sign-jar and sign-policy
+#          sign-jar            Builds/signs jce.jar file (no install)
+#          sign-policy         Builds/signs policy files (no install)
+#
+#     release                  Builds all targets in preparation
+#                              for workspace integration.
+#
+#     install-prebuilt         Installs the pre-built jar files
+#
+# This makefile was written to support parallel target execution.
+#
+
+BUILDDIR = ../..
+PACKAGE = javax.crypto
+PRODUCT = sun
+
+#
+# The following is for when we need to do postprocessing
+# (signing) against a read-only build.  If the OUTPUTDIR
+# isn't writable, the build currently crashes out.
+#
+ifndef OPENJDK
+  ifdef ALT_JCE_BUILD_DIR
+    # =====================================================
+    # Where to place the output, in case we're building from a read-only
+    # build area.  (e.g. a release engineering build.)
+    JCE_BUILD_DIR=${ALT_JCE_BUILD_DIR}
+    IGNORE_WRITABLE_OUTPUTDIR_TEST=true
+  else
+    JCE_BUILD_DIR=${TEMPDIR}
+  endif
+endif
+
+JAVAC_MAX_WARNINGS = true
+JAVAC_WARNINGS_FATAL = true
+include $(BUILDDIR)/common/Defs.gmk
+
+#
+# Location for the newly built classfiles.
+#
+CLASSDESTDIR = $(TEMPDIR)/classes
+
+#
+# Subdirectories of these are automatically included.
+#
+AUTO_FILES_JAVA_DIRS = \
+    javax/crypto \
+    sun/security/internal/interfaces \
+    sun/security/internal/spec
+
+include $(BUILDDIR)/common/Classes.gmk
+
+#
+# Rules
+#
+
+#
+# Some licensees do not get the security sources, but we still need to
+# be able to build "all" for them.  Check here to see if the sources were
+# available.  If not, then we don't need to continue this rule.
+#
+
+ifdef OPENJDK
+all: build-jar install-jar build-policy install-limited
+else  # OPENJDK
+ifeq ($(strip $(FILES_java)),)
+all:
+	$(no-source-warning)
+else  # FILES_java/policy files available
+all: build-jar build-policy
+	$(build-warning)
+endif # $(FILES_java)/policy files available
+endif # OPENJDK
+
+#
+# We use a variety of subdirectories in the $(TEMPDIR) depending on what
+# part of the build we're doing.  Both OPENJDK/JDK builds are initially
+# done in the unsigned area.  When files are signed in JDK, they will be
+# placed in the appropriate areas.
+#
+UNSIGNED_DIR = $(TEMPDIR)/unsigned
+
+include Defs-jce.gmk
+
+
+# =====================================================
+# Build the unsigned jce.jar file.  Signing comes later.
+#
+
+JAR_DESTFILE = $(LIBDIR)/jce.jar
+
+#
+# JCE building is somewhat involved.
+#
+# OpenJDK:  Since we do not ship prebuilt JCE files, previous compiles
+# in the build may have needed JCE class signatures.  There were then
+# implicitly built by javac (likely using the boot javac).  While using
+# those class files was fine for signatures, we need to rebuild using
+# the right compiler.
+#
+# JDK:  Even through the jce.jar was previously installed, since the
+# source files are accessible in the source directories, they will
+# always be "newer" than the prebuilt files inside the jar, and thus
+# make will always rebuild them.  (We could "hide" the JCE source in a
+# separate directory, but that would make the build logic for JDK and
+# OpenJDK more complicated.)
+#
+# Thus in either situation, we shouldn't use these files.
+#
+# To make sure the classes were built with the right compiler options,
+# delete the existing files in $(CLASSBINDIR), rebuild the right way in a
+# directory under $(TEMPDIR), then copy the files back to
+# $(CLASSBINDIR).   Building in $(TEMPDIR) allows us to use our make
+# infrastructure without modification:  .classes.list, macros, etc.
+#
+
+#
+# The list of directories that will be remade from scratch, using the
+# right compilers/options.
+#
+DELETE_DIRS = $(patsubst %, $(CLASSBINDIR)/%, $(AUTO_FILES_JAVA_DIRS))
+
+#
+# Since the -C option to jar is used below, each directory entry must be
+# preceded with the appropriate directory to "cd" into.
+#
+JAR_DIRS = $(patsubst %, -C $(CLASSDESTDIR) %, $(AUTO_FILES_JAVA_DIRS))
+
+build-jar: $(UNSIGNED_DIR)/jce.jar
+
+#
+# Build jce.jar, then replace the previously built JCE files in the
+# classes directory with these.  This ensures we have consistently built
+# files throughout the workspaces.
+#
+$(UNSIGNED_DIR)/jce.jar: prebuild build $(JCE_MANIFEST_FILE)
+	$(prep-target)
+	$(BOOT_JAR_CMD) cmf $(JCE_MANIFEST_FILE) $@ $(JAR_DIRS) \
+	    $(BOOT_JAR_JFLAGS)
+	$(CP) -r $(CLASSDESTDIR)/* $(CLASSBINDIR)
+	@$(java-vm-cleanup)
+
+build: prebuild
+
+prebuild:
+	$(RM) -r $(DELETE_DIRS)
+
+
+# =====================================================
+# Build the unsigned policy files.
+#
+# Given the current state of world export/import policies,
+# these settings work for Sun's situation.  This note is not
+# legal guidance, you must still resolve any export/import issues
+# applicable for your situation.  Contact your export/import
+# counsel for more information.
+#
+
+POLICY_DESTDIR			= $(LIBDIR)/security
+UNSIGNED_POLICY_BUILDDIR	= $(UNSIGNED_DIR)/policy
+
+build-policy: unlimited limited
+
+#
+# Build the unsigned unlimited policy files.
+#
+unlimited: \
+	    $(UNSIGNED_POLICY_BUILDDIR)/unlimited/US_export_policy.jar	\
+	    $(UNSIGNED_POLICY_BUILDDIR)/unlimited/local_policy.jar
+
+$(UNSIGNED_POLICY_BUILDDIR)/unlimited/US_export_policy.jar:		\
+	    policy/unlimited/default_US_export.policy			\
+	    policy/unlimited/UNLIMITED
+	$(prep-target)
+	$(BOOT_JAR_CMD) cmf policy/unlimited/UNLIMITED $@		\
+	    -C policy/unlimited default_US_export.policy		\
+	    $(BOOT_JAR_JFLAGS)
+	@$(java-vm-cleanup)
+
+$(UNSIGNED_POLICY_BUILDDIR)/unlimited/local_policy.jar:			\
+	    policy/unlimited/default_local.policy			\
+	    policy/unlimited/UNLIMITED
+	$(prep-target)
+	$(BOOT_JAR_CMD) cmf policy/unlimited/UNLIMITED $@		\
+	    -C policy/unlimited default_local.policy			\
+	    $(BOOT_JAR_JFLAGS)
+	@$(java-vm-cleanup)
+
+#
+# Build the unsigned limited policy files.
+#
+# NOTE:  We currently do not place restrictions on our limited export
+# policy.  This was not a typo.
+#
+limited: \
+	    $(UNSIGNED_POLICY_BUILDDIR)/limited/US_export_policy.jar	\
+	    $(UNSIGNED_POLICY_BUILDDIR)/limited/local_policy.jar
+
+$(UNSIGNED_POLICY_BUILDDIR)/limited/US_export_policy.jar:		\
+	    $(UNSIGNED_POLICY_BUILDDIR)/unlimited/US_export_policy.jar
+	$(install-file)
+
+$(UNSIGNED_POLICY_BUILDDIR)/limited/local_policy.jar:			\
+	    policy/limited/default_local.policy				\
+	    policy/limited/exempt_local.policy				\
+	    policy/limited/LIMITED
+	$(prep-target)
+	$(BOOT_JAR_CMD) cmf policy/limited/LIMITED $@			\
+	    -C policy/limited default_local.policy			\
+	    -C policy/limited exempt_local.policy			\
+	    $(BOOT_JAR_JFLAGS)
+	@$(java-vm-cleanup)
+
+UNSIGNED_POLICY_FILES = \
+    $(UNSIGNED_POLICY_BUILDDIR)/unlimited/US_export_policy.jar		\
+    $(UNSIGNED_POLICY_BUILDDIR)/unlimited/local_policy.jar		\
+    $(UNSIGNED_POLICY_BUILDDIR)/limited/US_export_policy.jar		\
+    $(UNSIGNED_POLICY_BUILDDIR)/limited/local_policy.jar		\
+
+
+ifndef OPENJDK
+# =====================================================
+# Sign the various jar files.  Not needed for OpenJDK.
+#
+
+SIGNED_DIR		= $(JCE_BUILD_DIR)/signed
+SIGNED_POLICY_BUILDDIR	= $(SIGNED_DIR)/policy
+
+SIGNED_POLICY_FILES = \
+    $(patsubst $(UNSIGNED_POLICY_BUILDDIR)/%,$(SIGNED_POLICY_BUILDDIR)/%, \
+	$(UNSIGNED_POLICY_FILES))
+
+sign: sign-jar sign-policy
+
+sign-jar: $(SIGNED_DIR)/jce.jar
+
+sign-policy: $(SIGNED_POLICY_FILES)
+
+ifndef ALT_JCE_BUILD_DIR
+$(SIGNED_DIR)/jce.jar: $(UNSIGNED_DIR)/jce.jar
+else
+#
+# We have to remove the build dependency, otherwise, we'll try to rebuild it
+# which we can't do on a read-only filesystem.
+#
+$(SIGNED_DIR)/jce.jar:
+	@if [ ! -r $(UNSIGNED_DIR)/jce.jar ] ; then \
+	    $(ECHO) "Couldn't find $(UNSIGNED_DIR)/jce.jar"; \
+	    exit 1; \
+	fi
+endif
+	$(call sign-file, $(UNSIGNED_DIR)/jce.jar)
+
+$(SIGNED_POLICY_BUILDDIR)/unlimited/US_export_policy.jar:	\
+	    $(UNSIGNED_POLICY_BUILDDIR)/unlimited/US_export_policy.jar
+	$(call sign-file, $<)
+
+$(SIGNED_POLICY_BUILDDIR)/unlimited/local_policy.jar:		\
+	    $(UNSIGNED_POLICY_BUILDDIR)/unlimited/local_policy.jar
+	$(call sign-file, $<)
+
+$(SIGNED_POLICY_BUILDDIR)/limited/US_export_policy.jar:		\
+	    $(UNSIGNED_POLICY_BUILDDIR)/limited/US_export_policy.jar
+	$(call sign-file, $<)
+
+$(SIGNED_POLICY_BUILDDIR)/limited/local_policy.jar:		\
+	    $(UNSIGNED_POLICY_BUILDDIR)/limited/local_policy.jar
+	$(call sign-file, $<)
+
+
+# =====================================================
+# Create the Release Engineering files.  Signed builds,
+# unlimited policy file distribution, etc.
+#
+
+CLOSED_DIR = $(BUILDDIR)/closed/javax/crypto
+
+release: $(SIGNED_DIR)/jce.jar sign-policy $(CLOSED_DIR)/doc/README.txt
+	$(RM) -r \
+	    $(JCE_BUILD_DIR)/release/UnlimitedJCEPolicy              \
+	    $(JCE_BUILD_DIR)/release/jce.jar                         \
+	    $(JCE_BUILD_DIR)/release/US_export_policy.jar            \
+	    $(JCE_BUILD_DIR)/release/local_policy.jar                \
+	    $(JCE_BUILD_DIR)/release/UnlimitedJCEPolicy.zip
+	$(MKDIR) -p $(JCE_BUILD_DIR)/release/UnlimitedJCEPolicy
+	$(CP) $(SIGNED_DIR)/jce.jar $(JCE_BUILD_DIR)/release
+	$(CP) \
+	    $(SIGNED_POLICY_BUILDDIR)/limited/US_export_policy.jar   \
+	    $(SIGNED_POLICY_BUILDDIR)/limited/local_policy.jar       \
+	    $(JCE_BUILD_DIR)/release
+	$(CP) \
+	    $(SIGNED_POLICY_BUILDDIR)/unlimited/US_export_policy.jar \
+	    $(SIGNED_POLICY_BUILDDIR)/unlimited/local_policy.jar     \
+	    $(CLOSED_DIR)/doc/README.txt                             \
+	    $(JCE_BUILD_DIR)/release/UnlimitedJCEPolicy
+	cd $(JCE_BUILD_DIR)/release ; \
+	$(ZIPEXE) -qr UnlimitedJCEPolicy.zip UnlimitedJCEPolicy
+	$(release-warning)
+
+endif # OPENJDK
+
+
+# =====================================================
+# Install routines.
+#
+
+#
+# Install jce.jar, depending on which type is requested.
+#
+install-jar jar: $(JAR_DESTFILE)
+ifndef OPENJDK
+	$(release-warning)
+endif
+
+ifdef OPENJDK
+$(JAR_DESTFILE): $(UNSIGNED_DIR)/jce.jar
+else
+$(JAR_DESTFILE): $(SIGNED_DIR)/jce.jar
+endif
+	$(install-file)
+
+#
+# Install the appropriate policy file, depending on the type of build.
+#
+ifdef OPENJDK
+INSTALL_POLICYDIR = $(UNSIGNED_POLICY_BUILDDIR)
+else
+INSTALL_POLICYDIR = $(SIGNED_POLICY_BUILDDIR)
+endif
+
+install-limited-jars: \
+	    $(INSTALL_POLICYDIR)/limited/US_export_policy.jar	\
+	    $(INSTALL_POLICYDIR)/limited/local_policy.jar
+	$(MKDIR) -p $(POLICY_DESTDIR)
+	$(RM) \
+	    $(POLICY_DESTDIR)/US_export_policy.jar		\
+	    $(POLICY_DESTDIR)/local_policy.jar
+	$(CP) $^ $(POLICY_DESTDIR)
+
+install-limited: install-limited-jars
+ifndef OPENJDK
+	$(release-warning)
+endif
+
+install-unlimited-jars: \
+	    $(INSTALL_POLICYDIR)/unlimited/US_export_policy.jar	\
+	    $(INSTALL_POLICYDIR)/unlimited/local_policy.jar 
+	$(MKDIR) -p $(POLICY_DESTDIR)
+	$(RM) \
+	    $(POLICY_DESTDIR)/US_export_policy.jar		\
+	    $(POLICY_DESTDIR)/local_policy.jar
+	$(CP) $^ $(POLICY_DESTDIR)
+
+install-unlimited: install-unlimited-jars
+ifndef OPENJDK
+	$(release-warning)
+endif
+
+ifndef OPENJDK
+install-prebuilt-jars:
+	@$(ECHO) "\n>>>Installing prebuilt JCE framework..."
+	$(RM) $(JAR_DESTFILE) \
+	    $(POLICY_DESTDIR)/US_export_policy.jar \
+	    $(POLICY_DESTDIR)/local_policy.jar
+	$(CP) $(PREBUILT_DIR)/jce/jce.jar $(JAR_DESTFILE)
+	$(CP) \
+	    $(PREBUILT_DIR)/jce/US_export_policy.jar \
+	    $(PREBUILT_DIR)/jce/local_policy.jar \
+	    $(POLICY_DESTDIR)
+
+install-prebuilt: install-prebuilt-jars
+endif
+
+# =====================================================
+# Support routines.
+#
+
+clobber clean::
+	$(RM) -r $(JAR_DESTFILE) $(POLICY_DESTDIR)/US_export_policy.jar \
+	    $(POLICY_DESTDIR)/local_policy.jar $(DELETE_DIRS) $(TEMPDIR) \
+	    $(JCE_BUILD_DIR)
+
+.PHONY: build-jar jar build-policy unlimited limited install-jar \
+	install-limited install-unlimited
+ifndef OPENJDK
+.PHONY: sign sign-jar sign-policy release install-prebuilt
+endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/javax/crypto/policy/limited/LIMITED	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,1 @@
+Crypto-Strength: limited
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/javax/crypto/policy/limited/default_local.policy	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,14 @@
+// Some countries have import limits on crypto strength. This policy file
+// is worldwide importable.
+
+grant {
+    permission javax.crypto.CryptoPermission "DES", 64;
+    permission javax.crypto.CryptoPermission "DESede", *;
+    permission javax.crypto.CryptoPermission "RC2", 128, 
+                                     "javax.crypto.spec.RC2ParameterSpec", 128;
+    permission javax.crypto.CryptoPermission "RC4", 128;
+    permission javax.crypto.CryptoPermission "RC5", 128, 
+          "javax.crypto.spec.RC5ParameterSpec", *, 12, *;
+    permission javax.crypto.CryptoPermission "RSA", *;
+    permission javax.crypto.CryptoPermission *, 128;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/javax/crypto/policy/limited/exempt_local.policy	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,13 @@
+// Some countries have import limits on crypto strength. So this file
+// will be useful.
+
+grant {
+    // There is no restriction to any algorithms if KeyRecovery is enforced.
+    permission javax.crypto.CryptoPermission *, "KeyRecovery"; 
+
+    // There is no restriction to any algorithms if KeyEscrow is enforced.
+    permission javax.crypto.CryptoPermission *, "KeyEscrow"; 
+
+    // There is no restriction to any algorithms if KeyWeakening is enforced. 
+    permission javax.crypto.CryptoPermission *, "KeyWeakening";
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/javax/crypto/policy/unlimited/UNLIMITED	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,1 @@
+Crypto-Strength: unlimited
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/javax/crypto/policy/unlimited/default_US_export.policy	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,5 @@
+// Manufacturing policy file.
+grant {
+    // There is no restriction to any algorithms.
+    permission javax.crypto.CryptoAllPermission; 
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/javax/crypto/policy/unlimited/default_local.policy	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,5 @@
+// Country-specific policy file for countries with no limits on crypto strength.
+grant {
+    // There is no restriction to any algorithms.
+    permission javax.crypto.CryptoAllPermission; 
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/javax/imageio/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,56 @@
+#
+# Copyright (c) 2000, 2011, 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.
+#
+
+#
+# Makefile for building all of JIIO (Java Image I/O) API
+#
+
+BUILDDIR = ../..
+PACKAGE = javax.imageio
+PRODUCT = jiio
+include $(BUILDDIR)/common/Defs.gmk
+
+#
+# Files to compile
+#
+AUTO_FILES_JAVA_DIRS = javax/imageio com/sun/imageio 
+
+#
+# Resources
+#
+LOCALE_SET_DEFINITION = jre
+OTHER_PROPERTIES = com/sun/imageio/plugins/common/iio-plugin.properties
+
+#
+# Rules
+#
+include $(BUILDDIR)/common/Classes.gmk
+
+build: copy-files
+
+copy-files: $(FILES_copy)
+
+.PHONY: copy-files
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/javax/management/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,53 @@
+#
+# Copyright (c) 2003, 2005, 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.
+#
+
+#
+# Makefile for building all of JMX
+#
+
+BUILDDIR = ../..
+PACKAGE = javax.management
+PRODUCT = sun
+include $(BUILDDIR)/common/Defs.gmk
+
+#
+# Files to compile
+#
+AUTO_JAVA_PRUNE = snmp
+AUTO_FILES_JAVA_DIRS = javax/management com/sun/jmx com/sun/management/jmx 
+
+#
+# Rules
+#
+include $(BUILDDIR)/common/Classes.gmk
+
+#
+# Clean up internal-use-only package.
+#
+clean clobber::
+	$(RM) -r $(CLASSDESTDIR)/com/sun/jmx \
+                 $(CLASSDESTDIR)/com/sun/management/jmx \
+                 $(CLASSDESTDIR)/org/omg/stub/javax/management/remote/rmi \
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/javax/sound/FILES_c.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,57 @@
+#
+# Copyright (c) 1999, 2007, 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.
+#
+
+FILES_c = \
+	Utilities.c \
+	Platform.c
+
+FILES_solaris = \
+	PLATFORM_API_SolarisOS_Utils.c \
+	PLATFORM_API_SolarisOS_Ports.c \
+	PLATFORM_API_SolarisOS_PCM.c
+
+FILES_linux = 
+
+FILES_bsd =
+
+FILES_macosx = \
+    PLATFORM_API_MacOSX_MidiIn.c \
+    PLATFORM_API_MacOSX_MidiOut.c \
+    PLATFORM_API_MacOSX_MidiUtils.c
+
+FILES_cpp_macosx = \
+    PLATFORM_API_MacOSX_Utils.cpp \
+    PLATFORM_API_MacOSX_PCM.cpp \
+    PLATFORM_API_MacOSX_Ports.cpp
+
+FILES_windows = \
+	PLATFORM_API_WinOS_MidiIn.c \
+	PLATFORM_API_WinOS_MidiOut.c \
+	PLATFORM_API_WinOS_Util.c \
+	PLATFORM_API_WinOS_Ports.c
+
+FILES_export = \
+	com/sun/media/sound/Platform.java
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/javax/sound/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,224 @@
+#
+# Copyright (c) 1999, 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.
+#
+
+BUILDDIR = ../..
+PACKAGE = javax.sound
+LIBRARY = jsound
+PRODUCT = sun
+
+ifeq ($(PLATFORM),macosx)
+CPLUSPLUSLIBRARY = true
+endif
+
+include $(BUILDDIR)/common/Defs.gmk
+
+# include defines for sound
+include SoundDefs.gmk
+
+# support for different mixer provider files on different platforms
+#MXSP = javax.sound.sampled.spi.MixerProvider
+# Mixer Service Provider Additional path
+#MXSPP_ADD =
+
+#
+# Add use of mapfile
+#
+FILES_m = mapfile-vers
+include $(BUILDDIR)/common/Mapfile-vers.gmk
+
+#
+# Files
+#
+include FILES_c.gmk
+
+# add java files
+AUTO_FILES_JAVA_DIRS = javax/sound com/sun/media/sound
+
+#
+# Files that just need cp.
+#
+SERVICEDIR = $(CLASSBINDIR)/META-INF/services
+
+FILES_copy = \
+	$(SERVICEDIR)/javax.sound.midi.spi.MidiDeviceProvider \
+	$(SERVICEDIR)/javax.sound.midi.spi.MidiFileWriter \
+	$(SERVICEDIR)/javax.sound.midi.spi.MidiFileReader \
+	$(SERVICEDIR)/javax.sound.midi.spi.SoundbankReader \
+	$(SERVICEDIR)/javax.sound.sampled.spi.AudioFileWriter \
+	$(SERVICEDIR)/javax.sound.sampled.spi.AudioFileReader \
+	$(SERVICEDIR)/javax.sound.sampled.spi.FormatConversionProvider \
+	$(SERVICEDIR)/javax.sound.sampled.spi.MixerProvider \
+	$(LIBDIR)/sound.properties
+
+FILES_mkdirs = \
+	$(CLASSBINDIR)/META-INF \
+	$(CLASSBINDIR)/META-INF/services
+
+FILES_copydirs = \
+	$(CLASSBINDIR) \
+	$(LIBDIR) \
+	$(FILES_mkdirs)
+
+FILES_c += $(FILES_$(PLATFORM))
+FILES_cpp += $(FILES_cpp_$(PLATFORM))
+
+
+#
+# system dependent flags
+#
+ifeq ($(PLATFORM), windows)
+  CPPFLAGS += 	-DUSE_PLATFORM_MIDI_OUT=TRUE \
+		-DUSE_PLATFORM_MIDI_IN=TRUE \
+		-DUSE_PORTS=TRUE
+  LDLIBS += winmm.lib
+
+  # Windows always provides MIDI and ports
+  INCLUDE_MIDI  = TRUE
+  INCLUDE_PORTS = TRUE
+
+  # DirectSound handles directaudio (both i586 and amd64)
+  SUBDIRS += jsoundds
+  EXTRA_SOUND_JNI_LIBS += jsoundds
+  #MXSPP_ADD = $(PLATFORM)-$(ARCH)/
+endif # PLATFORM win32
+
+ifeq ($(PLATFORM), linux)
+  # ALSA handles directaudio, ports, and MIDI
+  SUBDIRS += jsoundalsa
+  EXTRA_SOUND_JNI_LIBS += jsoundalsa
+  #MXSPP_ADD = $(PLATFORM)-$(ARCH)/
+endif # PLATFORM linux
+
+ifeq ($(PLATFORM), macosx)
+  CPPFLAGS += -DUSE_PORTS=TRUE \
+              -DUSE_DAUDIO=TRUE \
+              -DUSE_PLATFORM_MIDI_OUT=TRUE \
+              -DUSE_PLATFORM_MIDI_IN=TRUE
+
+  INCLUDE_PORTS = TRUE
+  INCLUDE_DAUDIO = TRUE
+  INCLUDE_MIDI = TRUE
+
+  LDFLAGS += -framework CoreAudio -framework CoreFoundation \
+             -framework CoreServices -framework AudioUnit -lstdc++ \
+             -framework CoreMIDI -framework AudioToolbox
+  CXXFLAGS += -I`xcode-select -print-path`/Extras/CoreAudio/PublicUtility
+endif
+
+ifeq ($(PLATFORM), solaris)
+  # build with ports and direct audio
+  CPPFLAGS += -DUSE_PORTS=TRUE 	\
+              -DUSE_DAUDIO=TRUE
+
+  INCLUDE_PORTS = TRUE
+  INCLUDE_DAUDIO = TRUE
+  # build with empty MIDI i/o
+  INCLUDE_MIDI = TRUE
+endif # PLATFORM solaris
+
+# for dynamic inclusion of extra sound libs: these
+# JNI libs will be loaded from Platform.java
+CPPFLAGS += -DEXTRA_SOUND_JNI_LIBS='"$(EXTRA_SOUND_JNI_LIBS)"'
+
+# integrate MIDI i/o in jsound lib
+ifeq ($(INCLUDE_MIDI),TRUE)
+  FILES_c += $(MIDIFILES_c)
+  FILES_export += $(MIDIFILES_export)
+endif
+
+# integrate port files in jsound lib
+ifeq ($(INCLUDE_PORTS),TRUE)
+  FILES_c += $(PORTFILES_c)
+  FILES_export += $(PORTFILES_export)
+endif
+
+# integrate port files in jsound lib
+ifeq ($(INCLUDE_DAUDIO),TRUE)
+  FILES_c += $(DAUDIOFILES_c)
+  FILES_export += $(DAUDIOFILES_export)
+endif
+
+#
+# Extra cc/linker flags.
+#
+CPPFLAGS += \
+	-I$(SHARE_SRC)/native/com/sun/media/sound
+
+ifeq ($(PLATFORM), macosx)
+vpath %.c   $(call NativeSrcDirList,,native/com/sun/media/sound)
+vpath %.cpp $(call NativeSrcDirList,,native/com/sun/media/sound)
+
+else
+#
+# Add to the ambient VPATH.
+#
+vpath %.c $(SHARE_SRC)/native/com/sun/media/sound
+vpath %.c $(PLATFORM_SRC)/native/com/sun/media/sound
+vpath %.cpp $(PLATFORM_SRC)/native/com/sun/media/sound
+
+endif
+
+#
+# Include rules
+#
+include $(BUILDDIR)/common/Library.gmk
+include $(BUILDDIR)/common/Subdirs.gmk
+
+#
+# Rules that copy files.
+#
+
+build: copy-files
+	$(SUBDIRS-loop)
+
+copy-files: $(FILES_copy)
+
+#$(SERVICEDIR)/$(MXSP): $(SHARE_SRC)/classes/com/sun/media/sound/services/$(MXSPP_ADD)$(MXSP)
+#	$(install-file)
+
+$(SERVICEDIR)/%: $(SHARE_SRC)/classes/com/sun/media/sound/services/%
+	$(install-file)
+
+$(LIBDIR)/audio/%: $(SHARE_SRC)/lib/audio/%
+	$(install-file)
+
+$(LIBDIR)/%: $(SHARE_SRC)/lib/%
+	$(install-file)
+
+#
+# Since we build more than the javax.sound (as stated in the
+# PACKAGE variable), we need to nuke the extra packages explicitly.
+#
+clean clobber::
+	$(SUBDIRS-loop)
+
+clean clobber::
+	$(RM) -r $(CLASSBINDIR)/com/sun/media/sound $(LIBDIR)/audio
+	$(RM) $(FILES_copy)
+
+#
+# Declare extra phony targets.
+#
+.PHONY: copy-files
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/javax/sound/SoundDefs.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,124 @@
+#
+# Copyright (c) 2002, 2011, 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.
+#
+
+# defines common for all Java Sound native code
+
+SUBDIRS=
+EXTRA_SOUND_JNI_LIBS=
+
+#
+# Extra cc/linker flags.
+#
+# system dependent flags
+ifeq ($(PLATFORM), windows)
+  CPPFLAGS += -DX_PLATFORM=X_WINDOWS
+endif # PLATFORM windows
+
+ifeq ($(PLATFORM), linux)
+  CPPFLAGS += -DX_PLATFORM=X_LINUX
+endif # PLATFORM linux
+
+ifeq ($(PLATFORM), macosx)
+  CPPFLAGS += -DX_PLATFORM=X_MACOSX
+endif # PLATFORM macosx
+
+ifeq ($(PLATFORM), solaris)
+  CPPFLAGS += -DX_PLATFORM=X_SOLARIS
+
+  # Solaris needs specific binding to libc
+  LDFLAGS += -lc
+
+  #
+  # Turn off C++ exception handling.
+  #
+  ifneq ($(CC_VERSION),gcc)
+    CXXFLAGS += -noex
+  endif # CC_VERSION
+
+endif # PLATFORM solaris
+
+ifeq ($(ZERO_BUILD), true)
+  CPPFLAGS += -DX_ARCH=X_ZERO
+else
+  ifeq ($(ARCH), i586)
+    CPPFLAGS += -DX_ARCH=X_I586
+  endif # ARCH i586
+
+  ifeq ($(ARCH), sparc)
+    CPPFLAGS += -DX_ARCH=X_SPARC
+  endif # ARCH sparc
+
+  ifeq ($(ARCH), sparcv9)
+    CPPFLAGS += -DX_ARCH=X_SPARCV9
+  endif # ARCH sparcv9
+
+  ifeq ($(ARCH), amd64)
+    CPPFLAGS += -DX_ARCH=X_AMD64
+  endif # ARCH amd64
+
+  ifeq ($(ARCH), arm)
+    CPPFLAGS += -DX_ARCH=X_ARM
+  endif # ARCH arm
+
+  ifeq ($(ARCH), ppc)
+    CPPFLAGS += -DX_ARCH=X_PPC
+  endif # ARCH ppc
+
+endif
+
+
+# files needed for MIDI i/o
+MIDIFILES_c = \
+	MidiInDevice.c \
+	MidiInDeviceProvider.c \
+	MidiOutDevice.c \
+	MidiOutDeviceProvider.c \
+	PlatformMidi.c
+
+MIDIFILES_export = \
+	com/sun/media/sound/MidiInDevice.java \
+	com/sun/media/sound/MidiInDeviceProvider.java \
+	com/sun/media/sound/MidiOutDevice.java \
+	com/sun/media/sound/MidiOutDeviceProvider.java
+
+# files needed for ports
+PORTFILES_c = \
+	PortMixerProvider.c \
+	PortMixer.c
+
+PORTFILES_export = \
+	com/sun/media/sound/PortMixer.java \
+	com/sun/media/sound/PortMixerProvider.java
+
+# files needed for direct audio
+DAUDIOFILES_c = \
+	DirectAudioDeviceProvider.c \
+	DirectAudioDevice.c
+
+DAUDIOFILES_export = \
+	com/sun/media/sound/DirectAudioDeviceProvider.java \
+	com/sun/media/sound/DirectAudioDevice.java
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/javax/sound/jsoundalsa/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,91 @@
+#
+# Copyright (c) 2002, 2011, 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.
+#
+
+BUILDDIR = ../../..
+PACKAGE = javax.sound
+LIBRARY = jsoundalsa
+PRODUCT = sun
+include $(BUILDDIR)/common/Defs.gmk
+
+# this Makefile compiles the native files for alsa support in java sound
+
+# include defines for sound
+include ../SoundDefs.gmk
+
+#
+# Use mapfile
+#
+FILES_m = mapfile-vers
+include $(BUILDDIR)/common/Mapfile-vers.gmk
+
+#
+# Files
+#
+
+FILES_c = \
+	Utilities.c \
+	$(DAUDIOFILES_c) \
+	$(MIDIFILES_c) \
+	$(PORTFILES_c)
+
+# platform dependent files
+FILES_c += \
+	PLATFORM_API_LinuxOS_ALSA_CommonUtils.c   \
+	PLATFORM_API_LinuxOS_ALSA_PCM.c     \
+	PLATFORM_API_LinuxOS_ALSA_PCMUtils.c   \
+	PLATFORM_API_LinuxOS_ALSA_MidiIn.c  \
+	PLATFORM_API_LinuxOS_ALSA_MidiOut.c \
+	PLATFORM_API_LinuxOS_ALSA_MidiUtils.c \
+	PLATFORM_API_LinuxOS_ALSA_Ports.c
+
+FILES_export = \
+	$(DAUDIOFILES_export) \
+	$(MIDIFILES_export) \
+	$(PORTFILES_export)
+
+OTHER_LDLIBS += -lasound
+
+CPPFLAGS += \
+	-DUSE_DAUDIO=TRUE \
+	-DUSE_PORTS=TRUE  \
+	-DUSE_PLATFORM_MIDI_OUT=TRUE \
+	-DUSE_PLATFORM_MIDI_IN=TRUE \
+	-I$(SHARE_SRC)/native/com/sun/media/sound
+
+#
+# Add to the ambient VPATH.
+#
+vpath %.c $(SHARE_SRC)/native/com/sun/media/sound
+vpath %.c $(PLATFORM_SRC)/native/com/sun/media/sound
+vpath %.cpp $(PLATFORM_SRC)/native/com/sun/media/sound
+
+
+#
+# Include rules
+#
+include $(BUILDDIR)/common/Library.gmk
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/javax/sound/jsoundalsa/mapfile-vers	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,82 @@
+#
+# Copyright (c) 2005, 2007, 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.
+#
+
+# Define library interface.
+
+SUNWprivate_1.1 {
+	global:
+            Java_com_sun_media_sound_DirectAudioDeviceProvider_nGetNumDevices;
+            Java_com_sun_media_sound_DirectAudioDeviceProvider_nNewDirectAudioDeviceInfo;
+            Java_com_sun_media_sound_DirectAudioDevice_nAvailable;
+            Java_com_sun_media_sound_DirectAudioDevice_nClose;
+            Java_com_sun_media_sound_DirectAudioDevice_nFlush;
+            Java_com_sun_media_sound_DirectAudioDevice_nGetBufferSize;
+            Java_com_sun_media_sound_DirectAudioDevice_nGetBytePosition;
+            Java_com_sun_media_sound_DirectAudioDevice_nGetFormats;
+            Java_com_sun_media_sound_DirectAudioDevice_nIsStillDraining;
+            Java_com_sun_media_sound_DirectAudioDevice_nOpen;
+            Java_com_sun_media_sound_DirectAudioDevice_nRead;
+            Java_com_sun_media_sound_DirectAudioDevice_nRequiresServicing;
+            Java_com_sun_media_sound_DirectAudioDevice_nService;
+            Java_com_sun_media_sound_DirectAudioDevice_nSetBytePosition;
+            Java_com_sun_media_sound_DirectAudioDevice_nStart;
+            Java_com_sun_media_sound_DirectAudioDevice_nStop;
+            Java_com_sun_media_sound_DirectAudioDevice_nWrite;
+            Java_com_sun_media_sound_MidiInDeviceProvider_nGetDescription;
+            Java_com_sun_media_sound_MidiInDeviceProvider_nGetName;
+            Java_com_sun_media_sound_MidiInDeviceProvider_nGetNumDevices;
+            Java_com_sun_media_sound_MidiInDeviceProvider_nGetVendor;
+            Java_com_sun_media_sound_MidiInDeviceProvider_nGetVersion;
+            Java_com_sun_media_sound_MidiInDevice_nClose;
+            Java_com_sun_media_sound_MidiInDevice_nGetMessages;
+            Java_com_sun_media_sound_MidiInDevice_nGetTimeStamp;
+            Java_com_sun_media_sound_MidiInDevice_nOpen;
+            Java_com_sun_media_sound_MidiInDevice_nStart;
+            Java_com_sun_media_sound_MidiInDevice_nStop;
+            Java_com_sun_media_sound_MidiOutDeviceProvider_nGetDescription;
+            Java_com_sun_media_sound_MidiOutDeviceProvider_nGetName;
+            Java_com_sun_media_sound_MidiOutDeviceProvider_nGetNumDevices;
+            Java_com_sun_media_sound_MidiOutDeviceProvider_nGetVendor;
+            Java_com_sun_media_sound_MidiOutDeviceProvider_nGetVersion;
+            Java_com_sun_media_sound_MidiOutDevice_nClose;
+            Java_com_sun_media_sound_MidiOutDevice_nGetTimeStamp;
+            Java_com_sun_media_sound_MidiOutDevice_nOpen;
+            Java_com_sun_media_sound_MidiOutDevice_nSendLongMessage;
+            Java_com_sun_media_sound_MidiOutDevice_nSendShortMessage;
+            Java_com_sun_media_sound_PortMixerProvider_nGetNumDevices;
+            Java_com_sun_media_sound_PortMixerProvider_nNewPortMixerInfo;
+            Java_com_sun_media_sound_PortMixer_nClose;
+            Java_com_sun_media_sound_PortMixer_nControlGetFloatValue;
+            Java_com_sun_media_sound_PortMixer_nControlGetIntValue;
+            Java_com_sun_media_sound_PortMixer_nControlSetFloatValue;
+            Java_com_sun_media_sound_PortMixer_nControlSetIntValue;
+            Java_com_sun_media_sound_PortMixer_nGetControls;
+            Java_com_sun_media_sound_PortMixer_nGetPortCount;
+            Java_com_sun_media_sound_PortMixer_nGetPortName;
+            Java_com_sun_media_sound_PortMixer_nGetPortType;
+            Java_com_sun_media_sound_PortMixer_nOpen;
+	local:
+	    *;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/javax/sound/jsoundds/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,71 @@
+#
+# Copyright (c) 2003, 2011, 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.
+#
+
+BUILDDIR = ../../..
+PACKAGE = javax.sound
+LIBRARY = jsoundds
+PRODUCT = sun
+CPLUSPLUSLIBRARY = true
+include $(BUILDDIR)/common/Defs.gmk
+
+# this Makefile compiles the native files for DirectSound support in java sound
+
+# include defines for sound
+include ../SoundDefs.gmk
+
+#
+# Files
+#
+
+FILES_c = \
+	Utilities.c \
+	$(DAUDIOFILES_c)
+
+FILES_cpp = \
+	PLATFORM_API_WinOS_DirectSound.cpp
+
+FILES_export = \
+	$(DAUDIOFILES_export)
+
+#
+# Extra cc/linker flags.
+#
+LDLIBS += dsound.lib winmm.lib user32.lib ole32.lib
+CPPFLAGS += \
+	-DUSE_DAUDIO=TRUE \
+	-I$(SHARE_SRC)/native/com/sun/media/sound \
+	-I$(DXSDK_INCLUDE_PATH)
+
+#
+# Add to the ambient VPATH.
+#
+vpath %.c $(SHARE_SRC)/native/com/sun/media/sound
+vpath %.c $(PLATFORM_SRC)/native/com/sun/media/sound
+vpath %.cpp $(PLATFORM_SRC)/native/com/sun/media/sound
+
+#
+# Include rules
+#
+include $(BUILDDIR)/common/Library.gmk
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/javax/sound/mapfile-vers	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,86 @@
+#
+# Copyright (c) 2005, 2007, 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.
+#
+
+# Define library interface.
+
+SUNWprivate_1.1 {
+	global:
+            Java_com_sun_media_sound_DirectAudioDevice_nAvailable;
+            Java_com_sun_media_sound_DirectAudioDevice_nClose;
+            Java_com_sun_media_sound_DirectAudioDevice_nFlush;
+            Java_com_sun_media_sound_DirectAudioDevice_nGetBufferSize;
+            Java_com_sun_media_sound_DirectAudioDevice_nGetBytePosition;
+            Java_com_sun_media_sound_DirectAudioDevice_nGetFormats;
+            Java_com_sun_media_sound_DirectAudioDevice_nIsStillDraining;
+            Java_com_sun_media_sound_DirectAudioDevice_nOpen;
+            Java_com_sun_media_sound_DirectAudioDevice_nRead;
+            Java_com_sun_media_sound_DirectAudioDevice_nRequiresServicing;
+            Java_com_sun_media_sound_DirectAudioDevice_nService;
+            Java_com_sun_media_sound_DirectAudioDevice_nSetBytePosition;
+            Java_com_sun_media_sound_DirectAudioDevice_nStart;
+            Java_com_sun_media_sound_DirectAudioDevice_nStop;
+            Java_com_sun_media_sound_DirectAudioDevice_nWrite;
+            Java_com_sun_media_sound_DirectAudioDeviceProvider_nGetNumDevices;
+            Java_com_sun_media_sound_DirectAudioDeviceProvider_nNewDirectAudioDeviceInfo;
+            Java_com_sun_media_sound_MidiInDevice_nClose;
+            Java_com_sun_media_sound_MidiInDevice_nGetMessages;
+            Java_com_sun_media_sound_MidiInDevice_nGetTimeStamp;
+            Java_com_sun_media_sound_MidiInDevice_nOpen;
+            Java_com_sun_media_sound_MidiInDevice_nStart;
+            Java_com_sun_media_sound_MidiInDevice_nStop;
+            Java_com_sun_media_sound_MidiInDeviceProvider_nGetDescription;
+            Java_com_sun_media_sound_MidiInDeviceProvider_nGetName;
+            Java_com_sun_media_sound_MidiInDeviceProvider_nGetNumDevices;
+            Java_com_sun_media_sound_MidiInDeviceProvider_nGetVendor;
+            Java_com_sun_media_sound_MidiInDeviceProvider_nGetVersion;
+            Java_com_sun_media_sound_MidiOutDevice_nClose;
+            Java_com_sun_media_sound_MidiOutDevice_nGetTimeStamp;
+            Java_com_sun_media_sound_MidiOutDevice_nOpen;
+            Java_com_sun_media_sound_MidiOutDevice_nSendLongMessage;
+            Java_com_sun_media_sound_MidiOutDevice_nSendShortMessage;
+            Java_com_sun_media_sound_MidiOutDeviceProvider_nGetDescription;
+            Java_com_sun_media_sound_MidiOutDeviceProvider_nGetName;
+            Java_com_sun_media_sound_MidiOutDeviceProvider_nGetNumDevices;
+            Java_com_sun_media_sound_MidiOutDeviceProvider_nGetVendor;
+            Java_com_sun_media_sound_MidiOutDeviceProvider_nGetVersion;
+            Java_com_sun_media_sound_Platform_nGetExtraLibraries;
+            Java_com_sun_media_sound_Platform_nGetLibraryForFeature;
+            Java_com_sun_media_sound_Platform_nIsBigEndian;
+            Java_com_sun_media_sound_Platform_nIsSigned8;
+            Java_com_sun_media_sound_PortMixer_nClose;
+            Java_com_sun_media_sound_PortMixer_nControlGetFloatValue;
+            Java_com_sun_media_sound_PortMixer_nControlGetIntValue;
+            Java_com_sun_media_sound_PortMixer_nControlSetFloatValue;
+            Java_com_sun_media_sound_PortMixer_nControlSetIntValue;
+            Java_com_sun_media_sound_PortMixer_nGetControls;
+            Java_com_sun_media_sound_PortMixer_nGetPortCount;
+            Java_com_sun_media_sound_PortMixer_nGetPortName;
+            Java_com_sun_media_sound_PortMixer_nGetPortType;
+            Java_com_sun_media_sound_PortMixer_nOpen;
+            Java_com_sun_media_sound_PortMixerProvider_nGetNumDevices;
+            Java_com_sun_media_sound_PortMixerProvider_nNewPortMixerInfo;
+	local:
+	    *;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/javax/sql/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,49 @@
+#
+# Copyright (c) 2000, 2011, 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.
+#
+
+#
+# Makefile for building JDBC API and JDBC RowSet
+#
+
+BUILDDIR = ../..
+PACKAGE = javax.sql
+PRODUCT = sun
+include $(BUILDDIR)/common/Defs.gmk
+
+#
+# Files to compile.
+#
+AUTO_FILES_JAVA_DIRS = javax/sql
+
+# 
+# Resources
+#
+OTHER_PROPERTIES  = $(PKGDIR)/rowset/rowset.properties
+
+#
+# Rules
+#
+include $(BUILDDIR)/common/Classes.gmk
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/javax/swing/FILES.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,235 @@
+#
+# Copyright (c) 1998, 2010, 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.
+#
+
+MISC_FILES = \
+        $(CLASSBINDIR)/javax/swing/text/html/default.css 			\
+        $(CLASSBINDIR)/javax/swing/text/rtf/charsets/NeXT.txt 			\
+        $(CLASSBINDIR)/javax/swing/text/rtf/charsets/ansi.txt 			\
+        $(CLASSBINDIR)/javax/swing/text/rtf/charsets/cpg437.txt 		\
+        $(CLASSBINDIR)/javax/swing/text/rtf/charsets/cpg850.txt 		\
+        $(CLASSBINDIR)/javax/swing/text/rtf/charsets/mac.txt
+
+BEANINFO_DOC = \
+	$(BUILDDIR)/tools/swing-beans/SwingBeanInfo.template
+
+BEANIMAGES   = $(BUILDDIR)/tools/swing-beans/beaninfo/images
+BEANINFO_IMG = \
+	$(BEANIMAGES)/AbstractButtonColor16.gif \
+	$(BEANIMAGES)/BorderColor16.gif \
+	$(BEANIMAGES)/JAppletColor16.gif \
+	$(BEANIMAGES)/JAppletColor32.gif \
+	$(BEANIMAGES)/JAppletMono16.gif \
+	$(BEANIMAGES)/JAppletMono32.gif \
+	$(BEANIMAGES)/JButtonColor32.gif \
+	$(BEANIMAGES)/JButtonColor16.gif \
+	$(BEANIMAGES)/JButtonMono32.gif \
+	$(BEANIMAGES)/JButtonMono16.gif \
+	$(BEANIMAGES)/JCheckBoxColor32.gif \
+	$(BEANIMAGES)/JCheckBoxColor16.gif \
+	$(BEANIMAGES)/JCheckBoxMono32.gif \
+	$(BEANIMAGES)/JCheckBoxMono16.gif \
+	$(BEANIMAGES)/JCheckBoxMenuItemColor32.gif \
+	$(BEANIMAGES)/JCheckBoxMenuItemColor16.gif \
+	$(BEANIMAGES)/JCheckBoxMenuItemMono32.gif \
+	$(BEANIMAGES)/JCheckBoxMenuItemMono16.gif \
+	$(BEANIMAGES)/JComboBoxColor32.gif \
+	$(BEANIMAGES)/JComboBoxColor16.gif \
+	$(BEANIMAGES)/JComboBoxMono32.gif \
+	$(BEANIMAGES)/JComboBoxMono16.gif \
+	$(BEANIMAGES)/JComponentColor16.gif \
+	$(BEANIMAGES)/JDesktopPaneColor32.gif \
+	$(BEANIMAGES)/JDesktopPaneColor16.gif \
+	$(BEANIMAGES)/JDesktopPaneMono32.gif \
+	$(BEANIMAGES)/JDesktopPaneMono16.gif \
+	$(BEANIMAGES)/JDialogColor32.gif \
+	$(BEANIMAGES)/JDialogColor16.gif \
+	$(BEANIMAGES)/JDialogMono16.gif \
+	$(BEANIMAGES)/JDialogMono32.gif \
+	$(BEANIMAGES)/JEditorPaneColor32.gif \
+	$(BEANIMAGES)/JEditorPaneColor16.gif \
+	$(BEANIMAGES)/JEditorPaneMono32.gif \
+	$(BEANIMAGES)/JEditorPaneMono16.gif \
+	$(BEANIMAGES)/JFrameColor32.gif \
+	$(BEANIMAGES)/JFrameColor16.gif \
+	$(BEANIMAGES)/JFrameMono32.gif \
+	$(BEANIMAGES)/JFrameMono16.gif \
+	$(BEANIMAGES)/JInternalFrameColor32.gif \
+	$(BEANIMAGES)/JInternalFrameColor16.gif \
+	$(BEANIMAGES)/JInternalFrameMono32.gif \
+	$(BEANIMAGES)/JInternalFrameMono16.gif \
+	$(BEANIMAGES)/JLabelColor32.gif \
+	$(BEANIMAGES)/JLabelColor16.gif \
+	$(BEANIMAGES)/JLabelMono32.gif \
+	$(BEANIMAGES)/JLabelMono16.gif \
+	$(BEANIMAGES)/JLayeredPaneColor32.gif \
+	$(BEANIMAGES)/JLayeredPaneColor16.gif \
+	$(BEANIMAGES)/JLayeredPaneMono32.gif \
+	$(BEANIMAGES)/JLayeredPaneMono16.gif \
+	$(BEANIMAGES)/JListColor32.gif \
+	$(BEANIMAGES)/JListColor16.gif \
+	$(BEANIMAGES)/JListMono32.gif \
+	$(BEANIMAGES)/JListMono16.gif \
+        $(BEANIMAGES)/JMenuBarColor32.gif \
+        $(BEANIMAGES)/JMenuBarColor16.gif \
+        $(BEANIMAGES)/JMenuBarMono32.gif \
+        $(BEANIMAGES)/JMenuBarMono16.gif \
+        $(BEANIMAGES)/JMenuColor32.gif \
+        $(BEANIMAGES)/JMenuColor16.gif \
+        $(BEANIMAGES)/JMenuMono32.gif \
+        $(BEANIMAGES)/JMenuMono16.gif \
+        $(BEANIMAGES)/JMenuItemColor32.gif \
+        $(BEANIMAGES)/JMenuItemColor16.gif \
+        $(BEANIMAGES)/JMenuItemMono32.gif \
+        $(BEANIMAGES)/JMenuItemMono16.gif \
+        $(BEANIMAGES)/JPanelColor32.gif \
+        $(BEANIMAGES)/JPanelColor16.gif \
+        $(BEANIMAGES)/JPanelMono32.gif \
+        $(BEANIMAGES)/JPanelMono16.gif \
+        $(BEANIMAGES)/JPasswordFieldColor32.gif \
+        $(BEANIMAGES)/JPasswordFieldColor16.gif \
+        $(BEANIMAGES)/JPasswordFieldMono32.gif \
+        $(BEANIMAGES)/JPasswordFieldMono16.gif \
+	$(BEANIMAGES)/JPopupMenuColor32.gif \
+	$(BEANIMAGES)/JPopupMenuColor16.gif \
+	$(BEANIMAGES)/JPopupMenuMono32.gif \
+	$(BEANIMAGES)/JPopupMenuMono16.gif \
+	$(BEANIMAGES)/JProgressBarColor32.gif \
+	$(BEANIMAGES)/JProgressBarColor16.gif \
+	$(BEANIMAGES)/JProgressBarMono32.gif \
+	$(BEANIMAGES)/JProgressBarMono16.gif \
+	$(BEANIMAGES)/JRadioButtonColor32.gif \
+	$(BEANIMAGES)/JRadioButtonColor16.gif \
+	$(BEANIMAGES)/JRadioButtonMono32.gif \
+	$(BEANIMAGES)/JRadioButtonMono16.gif \
+	$(BEANIMAGES)/JRadioButtonMenuItemColor32.gif \
+	$(BEANIMAGES)/JRadioButtonMenuItemColor16.gif \
+	$(BEANIMAGES)/JRadioButtonMenuItemMono32.gif \
+	$(BEANIMAGES)/JRadioButtonMenuItemMono16.gif \
+	$(BEANIMAGES)/JRootPaneColor32.gif \
+	$(BEANIMAGES)/JRootPaneColor16.gif \
+	$(BEANIMAGES)/JRootPaneMono32.gif \
+	$(BEANIMAGES)/JRootPaneMono16.gif \
+	$(BEANIMAGES)/JScrollPaneColor32.gif \
+	$(BEANIMAGES)/JScrollPaneColor16.gif \
+	$(BEANIMAGES)/JScrollPaneMono32.gif \
+	$(BEANIMAGES)/JScrollPaneMono16.gif \
+	$(BEANIMAGES)/JScrollBarColor32.gif \
+	$(BEANIMAGES)/JScrollBarColor16.gif \
+	$(BEANIMAGES)/JScrollBarMono32.gif \
+	$(BEANIMAGES)/JScrollBarMono16.gif \
+	$(BEANIMAGES)/JSeparatorColor32.gif \
+	$(BEANIMAGES)/JSeparatorColor16.gif \
+	$(BEANIMAGES)/JSeparatorMono32.gif \
+	$(BEANIMAGES)/JSeparatorMono16.gif \
+	$(BEANIMAGES)/JSliderColor32.gif \
+	$(BEANIMAGES)/JSliderColor16.gif \
+	$(BEANIMAGES)/JSliderMono32.gif \
+	$(BEANIMAGES)/JSliderMono16.gif \
+	$(BEANIMAGES)/JTextPaneColor32.gif \
+	$(BEANIMAGES)/JTextPaneColor16.gif \
+	$(BEANIMAGES)/JTextPaneMono32.gif \
+	$(BEANIMAGES)/JTextPaneMono16.gif \
+	$(BEANIMAGES)/JToggleButtonColor32.gif \
+	$(BEANIMAGES)/JToggleButtonColor16.gif \
+	$(BEANIMAGES)/JToggleButtonMono32.gif \
+	$(BEANIMAGES)/JToggleButtonMono16.gif \
+        $(BEANIMAGES)/JToolBarColor32.gif \
+        $(BEANIMAGES)/JToolBarColor16.gif \
+        $(BEANIMAGES)/JToolBarMono32.gif \
+        $(BEANIMAGES)/JToolBarMono16.gif \
+        $(BEANIMAGES)/JTabbedPaneColor32.gif \
+        $(BEANIMAGES)/JTabbedPaneColor16.gif \
+        $(BEANIMAGES)/JTabbedPaneMono32.gif \
+        $(BEANIMAGES)/JTabbedPaneMono16.gif \
+        $(BEANIMAGES)/JTreeColor32.gif \
+        $(BEANIMAGES)/JTreeColor16.gif \
+        $(BEANIMAGES)/JTreeMono32.gif \
+        $(BEANIMAGES)/JTreeMono16.gif \
+	$(BEANIMAGES)/JTextAreaColor32.gif \
+	$(BEANIMAGES)/JTextAreaColor16.gif \
+	$(BEANIMAGES)/JTextAreaMono32.gif \
+	$(BEANIMAGES)/JTextAreaMono16.gif \
+        $(BEANIMAGES)/JTextFieldColor32.gif \
+        $(BEANIMAGES)/JTextFieldColor16.gif \
+        $(BEANIMAGES)/JTextFieldMono32.gif \
+        $(BEANIMAGES)/JTextFieldMono16.gif \
+        $(BEANIMAGES)/JViewportColor32.gif \
+        $(BEANIMAGES)/JViewportColor16.gif \
+        $(BEANIMAGES)/JViewportMono32.gif \
+        $(BEANIMAGES)/JViewportMono16.gif \
+        $(BEANIMAGES)/JWindowColor32.gif \
+        $(BEANIMAGES)/JWindowColor16.gif \
+        $(BEANIMAGES)/JWindowMono32.gif \
+        $(BEANIMAGES)/JWindowMono16.gif \
+	$(BEANIMAGES)/JTableColor32.gif \
+	$(BEANIMAGES)/JTableColor16.gif \
+	$(BEANIMAGES)/JTableMono32.gif \
+	$(BEANIMAGES)/JTableMono16.gif
+
+BEANS = \
+	AbstractButton \
+	JComponent
+
+# These classes get listed in the swingall.jar manifest file and are
+# used during BeanInfo source generation.
+BEANS_MANIFEST = \
+	JApplet \
+	JButton \
+	JCheckBox \
+	JCheckBoxMenuItem \
+	JComboBox \
+	JDialog \
+	JEditorPane \
+	JFrame \
+	JInternalFrame \
+	JLabel \
+	JList \
+	JMenu \
+	JMenuBar \
+	JMenuItem \
+	JOptionPane \
+	JPanel \
+	JPasswordField \
+	JPopupMenu \
+	JProgressBar \
+	JRadioButton \
+	JRadioButtonMenuItem \
+	JRootPane \
+	JScrollBar \
+	JScrollPane \
+	JSeparator \
+	JSlider \
+	JSpinner \
+	JSplitPane \
+	JTabbedPane \
+	JTable \
+	JTextArea \
+	JTextField \
+	JTextPane \
+	JToggleButton \
+	JToolBar \
+	JTree \
+	JViewport \
+	JWindow
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/javax/swing/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,63 @@
+#
+# Copyright (c) 1998, 2011, 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.
+#
+
+BUILDDIR  = ../..
+PACKAGE   = javax.swing
+PRODUCT   = com
+SWING_SRC = $(SHARE_SRC)/classes/javax/swing
+include $(BUILDDIR)/common/Defs.gmk
+
+#
+# Files
+#
+include FILES.gmk
+AUTO_FILES_JAVA_DIRS = javax/swing sun/swing com/sun/java/swing
+AUTO_JAVA_PRUNE = plaf
+
+SUBDIRS = html32dtd plaf
+
+include $(BUILDDIR)/common/Classes.gmk
+include $(BUILDDIR)/common/Subdirs.gmk
+
+build: other_files
+	$(SUBDIRS-loop)
+
+clean clobber::
+	$(SUBDIRS-loop)
+
+other_files: $(MISC_FILES)
+
+$(CLASSBINDIR)/%.wav: $(SHARE_SRC)/classes/%.wav
+	$(install-file)
+
+$(CLASSBINDIR)/%.gif: $(SHARE_SRC)/classes/%.gif
+	$(install-file)
+
+$(CLASSBINDIR)/%.css: $(SHARE_SRC)/classes/%.css
+	$(install-file)
+
+$(CLASSBINDIR)/%.txt: $(SHARE_SRC)/classes/%.txt
+	$(install-file)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/javax/swing/beaninfo/FILES.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,126 @@
+#
+# Copyright (c) 1998, 2004, 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.
+#
+
+#
+# There are the Swing classes for which a BeanInfo class is generated.
+#
+
+# this is used for solaris
+
+BEANS	    = AbstractButton	\
+          Box           \
+	      JComponent	\
+	      JApplet		\
+	      JButton		\
+	      JCheckBox		\
+	      JCheckBoxMenuItem	\
+	      JComboBox		\
+	      JColorChooser	\
+          JDesktopPane  \
+	      JDialog	\
+	      JEditorPane	\
+	      JFileChooser	\
+	      JFrame		\
+	      JFormattedTextField \
+	      JInternalFrame	\
+	      JLabel		\
+          JLayeredPane  \
+	      JList		\
+	      JMenu		\
+	      JMenuBar		\
+	      JMenuItem		\
+	      JOptionPane	\
+	      JPanel		\
+	      JPasswordField	\
+	      JPopupMenu	\
+	      JProgressBar	\
+	      JRadioButton	\
+	      JRadioButtonMenuItem\
+	      JScrollBar	\
+	      JScrollPane	\
+	      JSeparator	\
+	      JSlider		\
+	      JSplitPane	\
+	      JSpinner		\
+	      JTabbedPane	\
+	      JTable		\
+	      JTextArea		\
+	      JTextField	\
+	      JTextPane		\
+	      JToggleButton	\
+	      JToolBar		\
+	      JTree		\
+	      JWindow
+
+# in a separate package
+BEANS_TEXT = JTextComponent  	\
+
+# and this is used for windows
+
+BEANS_SOURCES = ..\..\..\..\..\src\share\classes\javax\swing\AbstractButton.java \
+	        ..\..\..\..\..\src\share\classes\javax\swing\Box.java	\
+	        ..\..\..\..\..\src\share\classes\javax\swing\JComponent.java	\
+	        ..\..\..\..\..\src\share\classes\javax\swing\JColorChooser.java	\
+		..\..\..\..\..\src\share\classes\javax\swing\JApplet.java		\
+		..\..\..\..\..\src\share\classes\javax\swing\JButton.java		\
+	      ..\..\..\..\..\src\share\classes\javax\swing\JCheckBox.java		\
+	      ..\..\..\..\..\src\share\classes\javax\swing\JCheckBoxMenuItem.java	\
+	      ..\..\..\..\..\src\share\classes\javax\swing\JComboBox.java		\
+	      ..\..\..\..\..\src\share\classes\javax\swing\JDesktopPane.java    \
+	      ..\..\..\..\..\src\share\classes\javax\swing\JDialog.java		\
+	      ..\..\..\..\..\src\share\classes\javax\swing\JEditorPane.java	\
+	      ..\..\..\..\..\src\share\classes\javax\swing\JFileChooser.java		\
+	      ..\..\..\..\..\src\share\classes\javax\swing\JFormattedTextField.java	\
+	      ..\..\..\..\..\src\share\classes\javax\swing\JFrame.java		\
+	      ..\..\..\..\..\src\share\classes\javax\swing\JInternalFrame.java	\
+	      ..\..\..\..\..\src\share\classes\javax\swing\JLabel.java		\
+	      ..\..\..\..\..\src\share\classes\javax\swing\JLayeredPane.java \
+	      ..\..\..\..\..\src\share\classes\javax\swing\JList.java		\
+	      ..\..\..\..\..\src\share\classes\javax\swing\JMenu.java		\
+	      ..\..\..\..\..\src\share\classes\javax\swing\JMenuBar.java	\
+	      ..\..\..\..\..\src\share\classes\javax\swing\JMenuItem.java	\
+	      ..\..\..\..\..\src\share\classes\javax\swing\JOptionPane.java	\
+	      ..\..\..\..\..\src\share\classes\javax\swing\JPanel.java		\
+	      ..\..\..\..\..\src\share\classes\javax\swing\JPasswordField.java	\
+	      ..\..\..\..\..\src\share\classes\javax\swing\JPopupMenu.java	\
+	      ..\..\..\..\..\src\share\classes\javax\swing\JProgressBar.java	\
+	      ..\..\..\..\..\src\share\classes\javax\swing\JRadioButton.java	\
+	      ..\..\..\..\..\src\share\classes\javax\swing\JRadioButtonMenuItem.java \
+	      ..\..\..\..\..\src\share\classes\javax\swing\JScrollBar.java	\
+	      ..\..\..\..\..\src\share\classes\javax\swing\JScrollPane.java	\
+	      ..\..\..\..\..\src\share\classes\javax\swing\JSeparator.java	\
+	      ..\..\..\..\..\src\share\classes\javax\swing\JSlider.java		\
+	      ..\..\..\..\..\src\share\classes\javax\swing\JSpinner.java	\
+	      ..\..\..\..\..\src\share\classes\javax\swing\JSplitPane.java	\
+	      ..\..\..\..\..\src\share\classes\javax\swing\JTabbedPane.java	\
+	      ..\..\..\..\..\src\share\classes\javax\swing\JTable.java		\
+	      ..\..\..\..\..\src\share\classes\javax\swing\JTextArea.java	\
+	      ..\..\..\..\..\src\share\classes\javax\swing\text\JTextComponent.java	\
+	      ..\..\..\..\..\src\share\classes\javax\swing\JTextField.java	\
+	      ..\..\..\..\..\src\share\classes\javax\swing\JTextPane.java	\
+	      ..\..\..\..\..\src\share\classes\javax\swing\JToggleButton.java	\
+	      ..\..\..\..\..\src\share\classes\javax\swing\JToolBar.java	\
+	      ..\..\..\..\..\src\share\classes\javax\swing\JTree.java		\
+	      ..\..\..\..\..\src\share\classes\javax\swing\JWindow.java
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/javax/swing/beaninfo/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,38 @@
+#
+# Copyright (c) 1998, 2005, 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.
+#
+
+#
+# Create 1.1 version of BeanInfo files needed by Swing.
+#
+# Note that this makefile gets visited only during release engineering
+# time.
+#
+
+BUILDDIR = ../../..
+include $(BUILDDIR)/common/Defs.gmk
+include SwingBeans.gmk
+
+all build: swing-1.2-beans
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/javax/swing/beaninfo/SwingBeans.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,205 @@
+#
+# Copyright (c) 1998, 2010, 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.
+#
+
+#
+# Makefile to build the BeanInfo generation tool (ie, a doclet), and
+# then the beaninfo itself.  Swing versions prior to 1.2 are no longer
+# built.
+#
+# This makefile could be a lot simpler if we made it more regular.
+#
+
+# identify this as a swingbeans product - used only to identify a
+# unique name for OBJDIR
+PRODUCT = swing-beans
+
+#
+# Main targets provided by this makefile.
+# 
+swing-1.2-beans:
+	$(MAKE) DEBUG_FLAG=false make-swing-beans
+swing-1.2-beans-debug:
+	$(MAKE) DEBUG_FLAG=true make-swing-beans
+
+
+# get the absolute path to the jar command.
+PREFIX          = 1.2
+JAVADOCFLAGS    += $(NO_PROPRIETARY_API_WARNINGS) $(LANGUAGE_VERSION)
+SWINGPKG        = javax/swing
+LOCAL_JAVAC_FLAGS = $(OTHER_JAVACFLAGS)
+# since JAVADOC_CMD runs on ALT_BOOTDIR, the doclet and all its classes must be compiled to match
+DOCLET_JAVAC_FLAGS = -source 6 -target 6
+
+include FILES.gmk
+include $(BUILDDIR)/common/Release.gmk
+
+DOCLETSRC    = $(BUILDDIR)/../make/tools/swing-beans
+DOCLETDST    = $(TEMPDIR)
+
+FILES_java   = GenSwingBeanInfo.java GenDocletBeanInfo.java DocBeanInfo.java
+FILES_class  = $(FILES_java:%.java=$(DOCLETDST)/%.class)
+FAKESRC	     = $(JDK_TOPDIR)/src/share/classes
+BEANSRCDIR  =  $(TEMPDIR)/$(PREFIX)src
+BEANCLASSDIR = $(TEMPDIR)/$(PREFIX)classes
+FILES_beans =  $(BEANS:%=$(BEANSRCDIR)/%BeanInfo.java) \
+	       $(BEANS_TEXT:%=$(BEANSRCDIR)/text/%BeanInfo.java)  \
+	       $(BEANSRCDIR)/SwingBeanInfoBase.java \
+	       $(BEANSRCDIR)/BeanInfoUtils.java
+               
+FILES_bclass = $(FILES_beans:$(BEANSRCDIR)/%.java=$(BEANCLASSDIR)/$(SWINGPKG)/%.class)
+DOCLETFLAGS  = -doclet GenDocletBeanInfo
+LOCAL_CLASSPATH = "$(CLASSBINDIR)$(CLASSPATH_SEPARATOR)$(BEANCLASSDIR)$(CLASSPATH_SEPARATOR)."
+
+#
+# Main target.
+#
+make-swing-beans: mkdoclet mkbeaninfo mkclasses mkpackaging
+
+#
+# Make the doclet.
+#
+mkdoclet: $(DOCLETDST) $(FILES_class) .SwingBeanInfo
+
+$(OBJDIR) $(BEANCLASSDIR) $(BEANSRCDIR) $(DOCLETDST)::
+	@$(ECHO) "Making directory..." $@
+	@$(MKDIR) -p $@
+
+$(DOCLETDST)/%.class: $(DOCLETSRC)/%.java
+	$(JAVAC_CMD) $(LOCAL_JAVAC_FLAGS) $(DOCLET_JAVAC_FLAGS) -classpath "$(CLASSBINDIR)$(CLASSPATH_SEPARATOR)$(DOCLETSRC)" -d $(DOCLETDST) $?
+	@$(java-vm-cleanup)
+
+# To run, the doclet needs SwingBeanInfoBase class.  Also Notice the lie
+# here, SwingBeanInfoBase.class goes elswhere.
+
+.SwingBeanInfo: $(OBJDIR) $(BEANCLASSDIR) $(BEANSRCDIR) $(SWINGPKG)/BeanInfoUtils.class $(SWINGPKG)/SwingBeanInfoBase.class 
+
+$(SWINGPKG)/BeanInfoUtils.class: $(BEANSRCDIR)/BeanInfoUtils.java
+	$(JAVAC_CMD) $(LOCAL_JAVAC_FLAGS) $(DOCLET_JAVAC_FLAGS) -d $(BEANCLASSDIR) $<
+	@$(java-vm-cleanup)
+
+$(SWINGPKG)/SwingBeanInfoBase.class: $(BEANSRCDIR)/SwingBeanInfoBase.java $(BEANSRCDIR)/BeanInfoUtils.java
+	$(JAVAC_CMD) $(LOCAL_JAVAC_FLAGS) $(DOCLET_JAVAC_FLAGS) -classpath $(BEANCLASSDIR) -d $(BEANCLASSDIR) $<
+	@$(java-vm-cleanup)
+
+#
+# Stage 1: Generate *BeanInfo.java files.
+#
+mkbeaninfo: $(BEANSRCDIR) .delete.beanlist $(FILES_beans) .javadoc.beanlist
+
+.delete.beanlist: 
+	@$(RM) $(TEMPDIR)/.beans.list
+
+.javadoc.beanlist:
+	if [ -s $(TEMPDIR)/.beans.list ]; \
+	then $(JAVADOC_CMD) $(DOCLETFLAGS) -x $(DEBUG_FLAG) -d $(BEANSRCDIR) -t $(DOCLETSRC)/SwingBeanInfo.template -docletpath $(DOCLETDST) \
+	    $(shell if [ -s $(TEMPDIR)/.beans.list ]; then $(CAT) $(TEMPDIR)/.beans.list; fi); \
+	fi
+	@$(java-vm-cleanup)
+
+$(BEANSRCDIR)/text/%BeanInfo.java: $(FAKESRC)/$(SWINGPKG)/text/%.java
+	@$(ECHO) $< >> $(TEMPDIR)/.beans.list
+
+$(BEANSRCDIR)/%BeanInfo.java: $(FAKESRC)/$(SWINGPKG)/%.java
+	@$(ECHO) $< >> $(TEMPDIR)/.beans.list
+
+$(BEANSRCDIR)/SwingBeanInfoBase.java: $(DOCLETSRC)/beaninfo/SwingBeanInfoBase.java
+	$(CP) $< $@
+
+$(BEANSRCDIR)/BeanInfoUtils.java: $(DOCLETSRC)/beaninfo/BeanInfoUtils.java
+	$(CP) $< $@
+
+#
+# Compile the generated *BeanInfo.java files.
+#
+mkclasses: .delete.classlist $(BEANCLASSDIR)/$(SWINGPKG)/SwingBeanInfoBase.class \
+	$(BEANCLASSDIR)/$(SWINGPKG)/text/JTextComponentBeanInfo.class \
+	.create.classlist $(FILES_bclass) .compile.classlist
+
+$(BEANCLASSDIR)/$(SWINGPKG)/SwingBeanInfoBase.class:: \
+	$(BEANSRCDIR)/SwingBeanInfoBase.java
+
+$(BEANCLASSDIR)/$(SWINGPKG)/text/JTextComponentBeanInfo.class:: \
+	$(BEANSRCDIR)/JTextComponentBeanInfo.java
+
+$(FILES_bclass):: $(FILES_beans)
+
+# all the sources are in one directory, so make sure that the list does
+# not have the /text direcotry in it. Kludgy, this is...
+.create.classlist:
+	@$(ECHO) $(subst /text/,/,$(FILES_beans)) >> $(TEMPDIR)/.classes.list
+
+.delete.classlist:
+	@$(ECHO) "Deleting classes.list..."
+	@$(RM) $(TEMPDIR)/.classes.list
+
+.compile.classlist:
+	if [ -s $(TEMPDIR)/.classes.list ] ; then \
+	    $(JAVAC_CMD) $(LOCAL_JAVAC_FLAGS) -classpath $(LOCAL_CLASSPATH) -d $(BEANCLASSDIR) \
+	    $(shell if [ -s $(TEMPDIR)/.classes.list ] ; then $(CAT) $(TEMPDIR)/.classes.list; fi ) ; \
+	fi
+	@$(java-vm-cleanup)
+
+#
+# Packaging
+#
+mkpackaging: 
+	$(RM) -r $(BEANCLASSDIR)/$(SWINGPKG)/beaninfo/images
+	$(MKDIR) -p $(BEANCLASSDIR)/$(SWINGPKG)/beaninfo/images
+	$(CP) $(DOCLETSRC)/beaninfo/images/*.gif $(BEANCLASSDIR)/$(SWINGPKG)/beaninfo/images
+	$(BOOT_JAR_CMD) cf $(TEMPDIR)/tmp.jar \
+	     -C $(BEANCLASSDIR) javax \
+	     -C $(BEANCLASSDIR) sun \
+	     $(BOOT_JAR_JFLAGS)
+	$(MV) $(TEMPDIR)/tmp.jar $(JDK_IMAGE_DIR)/lib/dt.jar
+	@$(java-vm-cleanup)
+
+#
+# Cleanliness.
+#
+swingbeans.clean swingbeans.clobber::
+	$(RM) -r 1.2src 1.2classes
+	$(RM) -r java javax
+	$(RM) *.class
+	$(RM) $(TEMPDIR)/.beans.list $(TEMPDIR)/.classes.list beaninfo.jar
+
+#
+# Utility.
+#
+
+
+#
+# Debugging targets for looking at variables.
+#
+show-vars:
+	@$(ECHO) FILES_beans = $(FILES_beans)
+	@$(ECHO) FILES_bclass = $(FILES_bclass)
+
+.PRECIOUS: $(FILES_beans) 
+
+.PHONY: swing-1.2-beans swing-1.2-beans-debug \
+	make-swing-beans mkdoclet .SwingBeanInfo mkbeaninfo .delete.beanlist \
+	.javadoc.beanlist mkclasses .create.classlist .delete.classlist \
+	.compile.classlist mkpackaging mkpackaging swingbeans.clean \
+	swingbeans.clobber show-vars  
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/javax/swing/beaninfo/manifest	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,111 @@
+Name: javax/swing/JApplet.class
+Java-Bean: True
+
+Name: javax/swing/JButton.class
+Java-Bean: True
+
+Name: javax/swing/JCheckBox.class
+Java-Bean: True
+
+Name: javax/swing/JCheckBoxMenuItem.class
+Java-Bean: True
+
+Name: javax/swing/JComboBox.class
+Java-Bean: True
+
+Name: javax/swing/JDialog.class
+Java-Bean: True
+
+Name: javax/swing/JEditorPane.class
+Java-Bean: True
+
+Name: javax/swing/JFormattedTextField.class
+Java-Bean: True
+
+Name: javax/swing/JInternalFrame.class
+Java-Bean: True
+
+Name: javax/swing/JFrame.class
+Java-Bean: True
+
+Name: javax/swing/JLabel.class
+Java-Bean: True
+
+Name: javax/swing/JList.class
+Java-Bean: True
+
+Name: javax/swing/JMenu.class
+Java-Bean: True
+
+Name: javax/swing/JMenuBar.class
+Java-Bean: True
+
+Name: javax/swing/JMenuItem.class
+Java-Bean: True
+
+Name: javax/swing/JOptionPane.class
+Java-Bean: True
+
+Name: javax/swing/JPanel.class
+Java-Bean: True
+
+Name: javax/swing/JPasswordField.class
+Java-Bean: True
+
+Name: javax/swing/JPopupMenu.class
+Java-Bean: True
+
+Name: javax/swing/JProgressBar.class
+Java-Bean: True
+
+Name: javax/swing/JRadioButton.class
+Java-Bean: True
+
+Name: javax/swing/JRadioButtonMenuItem.class
+Java-Bean: True
+
+Name: javax/swing/JScrollBar.class
+Java-Bean: True
+
+Name: javax/swing/JScrollPane.class
+Java-Bean: True
+
+Name: javax/swing/JSeparator.class
+Java-Bean: True
+
+Name: javax/swing/JSlider.class
+Java-Bean: True
+
+Name: javax/swing/JSpinner.class
+Java-Bean: True
+
+Name: javax/swing/JSplitPane.class
+Java-Bean: True
+
+Name: javax/swing/JTabbedPane.class
+Java-Bean: True
+
+Name: javax/swing/JTextArea.class
+Java-Bean: True
+
+Name: javax/swing/JTextField.class
+Java-Bean: True
+
+Name: javax/swing/JTextPane.class
+Java-Bean: True
+
+Name: javax/swing/JToolBar.class
+Java-Bean: True
+
+Name: javax/swing/JTree.class
+Java-Bean: True
+
+Name: javax/swing/JTable.class
+Java-Bean: True
+
+Name: javax/swing/JToggleButton.class
+Java-Bean: True
+
+Name: javax/swing/JWindow.class
+Java-Bean: True
+ 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/javax/swing/html32dtd/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,44 @@
+#
+# Copyright (c) 1998, 2005, 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.
+#
+
+BUILDDIR     = ../../..
+PACKAGE      = javax/swing/html/parser
+PRODUCT      = swing
+include $(BUILDDIR)/common/Defs.gmk
+
+#
+# Shared defintions.
+#
+HTML32DTD          = $(CLASSBINDIR)/javax/swing/text/html/parser/html32.bdtd
+
+$(HTML32DTD): $(BUILD_TOOLS)
+	@$(prep-target)
+	($(TOOL_DTDBUILDER) html32 > $@) || exit 1
+	@$(java-vm-cleanup)
+
+all build: $(HTML32DTD)
+
+include $(BUILDDIR)/common/Rules.gmk
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/javax/swing/plaf/FILES.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,117 @@
+#
+# Copyright (c) 1998, 2007, 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.
+#
+
+MISC_SWING_FILES = \
+	$(CLASSBINDIR)/com/sun/java/swing/plaf/windows/icons/Computer.gif \
+	$(CLASSBINDIR)/com/sun/java/swing/plaf/windows/icons/DetailsView.gif \
+	$(CLASSBINDIR)/com/sun/java/swing/plaf/windows/icons/Directory.gif \
+	$(CLASSBINDIR)/com/sun/java/swing/plaf/windows/icons/Error.gif \
+	$(CLASSBINDIR)/com/sun/java/swing/plaf/windows/icons/File.gif \
+	$(CLASSBINDIR)/com/sun/java/swing/plaf/windows/icons/FloppyDrive.gif \
+	$(CLASSBINDIR)/com/sun/java/swing/plaf/windows/icons/HardDrive.gif \
+	$(CLASSBINDIR)/com/sun/java/swing/plaf/windows/icons/HomeFolder.gif \
+	$(CLASSBINDIR)/com/sun/java/swing/plaf/windows/icons/Inform.gif \
+	$(CLASSBINDIR)/com/sun/java/swing/plaf/windows/icons/ListView.gif \
+	$(CLASSBINDIR)/com/sun/java/swing/plaf/windows/icons/NewFolder.gif \
+	$(CLASSBINDIR)/com/sun/java/swing/plaf/windows/icons/Question.gif \
+	$(CLASSBINDIR)/com/sun/java/swing/plaf/windows/icons/TreeClosed.gif \
+	$(CLASSBINDIR)/com/sun/java/swing/plaf/windows/icons/TreeLeaf.gif \
+	$(CLASSBINDIR)/com/sun/java/swing/plaf/windows/icons/TreeOpen.gif \
+	$(CLASSBINDIR)/com/sun/java/swing/plaf/windows/icons/UpFolder.gif \
+	$(CLASSBINDIR)/com/sun/java/swing/plaf/windows/icons/Warn.gif \
+        $(CLASSBINDIR)/com/sun/java/swing/plaf/windows/icons/image-delayed.png \
+        $(CLASSBINDIR)/com/sun/java/swing/plaf/windows/icons/image-failed.png \
+\
+        $(CLASSBINDIR)/javax/swing/plaf/basic/icons/image-delayed.png \
+        $(CLASSBINDIR)/javax/swing/plaf/basic/icons/image-failed.png \
+\
+	$(CLASSBINDIR)/javax/swing/plaf/metal/icons/Error.gif \
+	$(CLASSBINDIR)/javax/swing/plaf/metal/icons/Inform.gif \
+	$(CLASSBINDIR)/javax/swing/plaf/metal/icons/Question.gif \
+	$(CLASSBINDIR)/javax/swing/plaf/metal/icons/sortDown.png \
+	$(CLASSBINDIR)/javax/swing/plaf/metal/icons/sortUp.png \
+	$(CLASSBINDIR)/javax/swing/plaf/metal/icons/Warn.gif \
+	$(CLASSBINDIR)/javax/swing/plaf/metal/icons/ocean/close.gif \
+	$(CLASSBINDIR)/javax/swing/plaf/metal/icons/ocean/close-pressed.gif \
+	$(CLASSBINDIR)/javax/swing/plaf/metal/icons/ocean/collapsed.gif \
+	$(CLASSBINDIR)/javax/swing/plaf/metal/icons/ocean/collapsed-rtl.gif \
+	$(CLASSBINDIR)/javax/swing/plaf/metal/icons/ocean/computer.gif \
+	$(CLASSBINDIR)/javax/swing/plaf/metal/icons/ocean/directory.gif \
+	$(CLASSBINDIR)/javax/swing/plaf/metal/icons/ocean/error.png \
+	$(CLASSBINDIR)/javax/swing/plaf/metal/icons/ocean/expanded.gif \
+	$(CLASSBINDIR)/javax/swing/plaf/metal/icons/ocean/file.gif \
+	$(CLASSBINDIR)/javax/swing/plaf/metal/icons/ocean/floppy.gif \
+	$(CLASSBINDIR)/javax/swing/plaf/metal/icons/ocean/hardDrive.gif \
+	$(CLASSBINDIR)/javax/swing/plaf/metal/icons/ocean/homeFolder.gif \
+	$(CLASSBINDIR)/javax/swing/plaf/metal/icons/ocean/iconify.gif \
+	$(CLASSBINDIR)/javax/swing/plaf/metal/icons/ocean/iconify-pressed.gif \
+	$(CLASSBINDIR)/javax/swing/plaf/metal/icons/ocean/info.png \
+	$(CLASSBINDIR)/javax/swing/plaf/metal/icons/ocean/maximize.gif \
+	$(CLASSBINDIR)/javax/swing/plaf/metal/icons/ocean/maximize-pressed.gif \
+	$(CLASSBINDIR)/javax/swing/plaf/metal/icons/ocean/menu.gif \
+	$(CLASSBINDIR)/javax/swing/plaf/metal/icons/ocean/minimize.gif \
+	$(CLASSBINDIR)/javax/swing/plaf/metal/icons/ocean/minimize-pressed.gif \
+	$(CLASSBINDIR)/javax/swing/plaf/metal/icons/ocean/newFolder.gif \
+	$(CLASSBINDIR)/javax/swing/plaf/metal/icons/ocean/paletteClose.gif \
+	$(CLASSBINDIR)/javax/swing/plaf/metal/icons/ocean/paletteClose-pressed.gif \
+	$(CLASSBINDIR)/javax/swing/plaf/metal/icons/ocean/question.png \
+	$(CLASSBINDIR)/javax/swing/plaf/metal/icons/ocean/upFolder.gif \
+	$(CLASSBINDIR)/javax/swing/plaf/metal/icons/ocean/warning.png \
+	$(CLASSBINDIR)/javax/swing/plaf/metal/sounds/FrameClose.wav \
+	$(CLASSBINDIR)/javax/swing/plaf/metal/sounds/FrameMaximize.wav \
+	$(CLASSBINDIR)/javax/swing/plaf/metal/sounds/FrameMinimize.wav \
+	$(CLASSBINDIR)/javax/swing/plaf/metal/sounds/FrameRestoreDown.wav \
+	$(CLASSBINDIR)/javax/swing/plaf/metal/sounds/FrameRestoreUp.wav \
+	$(CLASSBINDIR)/javax/swing/plaf/metal/sounds/MenuItemCommand.wav \
+	$(CLASSBINDIR)/javax/swing/plaf/metal/sounds/OptionPaneInformation.wav \
+	$(CLASSBINDIR)/javax/swing/plaf/metal/sounds/OptionPaneWarning.wav \
+	$(CLASSBINDIR)/javax/swing/plaf/metal/sounds/OptionPaneError.wav \
+	$(CLASSBINDIR)/javax/swing/plaf/metal/sounds/OptionPaneQuestion.wav \
+	$(CLASSBINDIR)/javax/swing/plaf/metal/sounds/PopupMenuPopup.wav
+
+MISC_SWING_FILES_MOTIF_GIF = \
+	$(CLASSBINDIR)/com/sun/java/swing/plaf/motif/icons/DesktopIcon.gif \
+	$(CLASSBINDIR)/com/sun/java/swing/plaf/motif/icons/TreeClosed.gif \
+	$(CLASSBINDIR)/com/sun/java/swing/plaf/motif/icons/TreeOpen.gif \
+	$(CLASSBINDIR)/com/sun/java/swing/plaf/motif/icons/Inform.gif \
+	$(CLASSBINDIR)/com/sun/java/swing/plaf/motif/icons/Question.gif \
+	$(CLASSBINDIR)/com/sun/java/swing/plaf/motif/icons/Warn.gif \
+	$(CLASSBINDIR)/com/sun/java/swing/plaf/motif/icons/Error.gif
+
+MISC_SWING_FILES_MOTIF_PNG = \
+        $(CLASSBINDIR)/com/sun/java/swing/plaf/motif/icons/image-delayed.png \
+        $(CLASSBINDIR)/com/sun/java/swing/plaf/motif/icons/image-failed.png
+
+MISC_SWING_FILES_UNIX = \
+	$(CLASSBINDIR)/com/sun/java/swing/plaf/gtk/icons/Directory.gif \
+	$(CLASSBINDIR)/com/sun/java/swing/plaf/gtk/icons/File.gif \
+        $(CLASSBINDIR)/com/sun/java/swing/plaf/gtk/icons/image-delayed.png \
+        $(CLASSBINDIR)/com/sun/java/swing/plaf/gtk/icons/image-failed.png \
+        $(CLASSBINDIR)/com/sun/java/swing/plaf/gtk/resources/metacity/SwingFallbackTheme/metacity-1/metacity-theme-1.xml
+
+LOGO_ICONS=\
+	$(CLASSBINDIR)/com/sun/java/swing/plaf/windows/icons/JavaCup32.png \
+	$(CLASSBINDIR)/javax/swing/plaf/basic/icons/JavaCup16.png
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/javax/swing/plaf/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,133 @@
+#
+# Copyright (c) 1998, 2011, 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.
+#
+
+BUILDDIR  = ../../..
+PACKAGE   = javax.swing.plaf
+PRODUCT   = com
+SWING_SRC = $(SHARE_SRC)/classes/javax/swing
+include $(BUILDDIR)/common/Defs.gmk
+
+#
+# Files
+#
+include FILES.gmk
+AUTO_FILES_JAVA_DIRS = javax/swing/plaf sun/swing com/sun/java/swing/plaf
+
+ifeq ($(PLATFORM), windows)
+    # Don't build GTK L&F on Windows
+    AUTO_JAVA_PRUNE = gtk
+endif
+
+ifdef DISABLE_NIMBUS
+    AUTO_JAVA_PRUNE += nimbus
+endif
+
+MISC_FILES = $(MISC_SWING_FILES)
+ifneq ($(PLATFORM), windows)
+    # Only include GTK icons on Solaris/Linux
+    MISC_FILES += $(MISC_SWING_FILES_UNIX)
+endif
+
+NIMBUS_GENSRC_DIR = $(GENSRCDIR)/javax/swing/plaf/nimbus
+NIMBUS_SKIN_FILE = $(SWING_SRC)/plaf/nimbus/skin.laf
+
+FILES_java = $(FILES_SWING_java)
+
+#
+# Resources
+#
+LOCALE_SET_DEFINITION = jre
+RESOURCE_BUNDLES_COMPILED_PROPERTIES = \
+	com/sun/swing/internal/plaf/basic/resources/basic.properties \
+	com/sun/swing/internal/plaf/metal/resources/metal.properties \
+	com/sun/swing/internal/plaf/synth/resources/synth.properties \
+	com/sun/java/swing/plaf/motif/resources/motif.properties \
+        com/sun/java/swing/plaf/windows/resources/windows.properties
+ifneq ($(PLATFORM), windows)
+    # Only compile GTK resource bundles on Solaris/Linux
+    RESOURCE_BUNDLES_COMPILED_PROPERTIES += \
+        com/sun/java/swing/plaf/gtk/resources/gtk.properties
+endif
+
+#
+# Rules.
+# Process LOGO_ICONS and Motif Icons first.
+#
+build: $(LOGO_ICONS) $(MISC_SWING_FILES_MOTIF_GIF) $(MISC_SWING_FILES_MOTIF_PNG) other_files
+
+$(NIMBUS_GENSRC_DIR): $(NIMBUS_SKIN_FILE) $(BUILD_TOOLS)
+	@$(ECHO) "Generating Nimbus source files:"
+	$(RM) -r $(NIMBUS_GENSRC_DIR)
+	$(TOOL_GENERATENIMBUS) \
+	    -skinFile $(NIMBUS_SKIN_FILE) -buildDir $(GENSRCDIR) \
+	    -packagePrefix $(PACKAGE).nimbus -lafName Nimbus
+	@$(ECHO) "Finished generating Nimbus source files"
+
+clean:: classes.clean
+	$(RM) -r $(NIMBUS_GENSRC_DIR)
+
+#
+# Include
+#
+ifndef DISABLE_NIMBUS
+    CLASSES_INIT = $(NIMBUS_GENSRC_DIR)
+endif
+
+include $(BUILDDIR)/common/Classes.gmk
+
+ifndef OPENJDK
+$(LOGO_ICONS): $(CLASSBINDIR)/%.png: $(CLOSED_SRC)/share/classes/%.png
+	$(install-file)
+
+$(MISC_SWING_FILES_MOTIF_GIF): $(CLASSBINDIR)/%.gif: $(CLOSED_SRC)/share/classes/%.gif
+	$(install-file)
+
+$(MISC_SWING_FILES_MOTIF_PNG): $(CLASSBINDIR)/%.png: $(CLOSED_SRC)/share/classes/%.png
+	$(install-file)
+endif	
+
+other_files: $(MISC_FILES)
+
+$(CLASSBINDIR)/%.wav: $(SHARE_SRC)/classes/%.wav
+	$(install-file)
+
+$(CLASSBINDIR)/%.gif: $(SHARE_SRC)/classes/%.gif
+	$(install-file)
+
+$(CLASSBINDIR)/%.png: $(SHARE_SRC)/classes/%.png
+	$(install-file)
+
+$(CLASSBINDIR)/%.xml: $(SHARE_SRC)/classes/%.xml
+	$(install-file)
+
+$(CLASSBINDIR)/%.css: $(SHARE_SRC)/classes/%.css
+	$(install-file)
+
+$(CLASSBINDIR)/%.bdtd: $(SHARE_SRC)/classes/%.bdtd
+	$(install-file)
+
+$(CLASSBINDIR)/%.txt: $(SHARE_SRC)/classes/%.txt
+	$(install-file)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/jpda/jdwp/jdwp.spec	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,3148 @@
+/*
+ * Copyright (c) 1998, 2006, 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.
+ */
+
+JDWP "Java(tm) Debug Wire Protocol"
+(CommandSet VirtualMachine=1
+    (Command Version=1 
+        "Returns the JDWP version implemented by the target VM. "
+	"The version string format is implementation dependent. "
+	(Out 
+        )
+        (Reply 
+	    (string description "Text information on the VM version")
+	    (int    jdwpMajor   "Major JDWP Version number")
+	    (int    jdwpMinor   "Minor JDWP Version number")
+	    (string vmVersion   "Target VM JRE version, as in the java.version property")
+	    (string vmName      "Target VM name, as in the java.vm.name property")
+        )
+        (ErrorSet
+            (Error VM_DEAD)   
+        )
+    )
+    (Command ClassesBySignature=2
+        "Returns reference types for all the classes loaded by the target VM "
+	"which match the given signature. "
+	"Multple reference types will be returned if two or more class "
+	"loaders have loaded a class of the same name. "
+	"The search is confined to loaded classes only; no attempt is made "
+	"to load a class of the given signature. "
+	(Out
+	    (string signature "JNI signature of the class to find "
+	                      "(for example, \"Ljava/lang/String;\"). "
+            )
+        )
+        (Reply 
+            (Repeat classes "Number of reference types that follow." 
+                (Group ClassInfo
+                    (byte refTypeTag  "<a href=\"#JDWP_TypeTag\">Kind</a> "
+		                      "of following reference type. ")
+                    (referenceTypeID typeID "Matching loaded reference type")
+                    (int status "The current class "
+		                "<a href=\"#JDWP_ClassStatus\">status.</a> ")
+                )
+            )
+        )
+        (ErrorSet
+            (Error VM_DEAD)
+        )
+    )
+    (Command AllClasses=3
+        "Returns reference types for all classes currently loaded by the "
+	"target VM."
+	(Out 
+        )
+        (Reply 
+            (Repeat classes "Number of reference types that follow." 
+                (Group ClassInfo
+                    (byte refTypeTag  "<a href=\"#JDWP_TypeTag\">Kind</a> "
+		                      "of following reference type. ")
+                    (referenceTypeID typeID "Loaded reference type")
+                    (string signature 
+                                "The JNI signature of the loaded reference type")
+                    (int status "The current class "
+		                "<a href=\"#JDWP_ClassStatus\">status.</a> ")
+                )
+            )
+        )
+        (ErrorSet
+            (Error VM_DEAD)
+        )
+    )
+    (Command AllThreads=4
+        "Returns all threads currently running in the target VM . "
+	"The returned list contains threads created through "
+	"java.lang.Thread, all native threads attached to "
+	"the target VM through JNI, and system threads created "
+	"by the target VM. Threads that have not yet been started "
+	"and threads that have completed their execution are not "
+	"included in the returned list. "
+        (Out
+        )
+        (Reply
+            (Repeat threads "Number of threads that follow." 
+                (threadObject thread "A running thread")
+            )
+        )
+        (ErrorSet
+            (Error VM_DEAD)
+        )
+    )
+    (Command TopLevelThreadGroups=5
+        "Returns all thread groups that do not have a parent. This command "
+	"may be used as the first step in building a tree (or trees) of the "
+	"existing thread groups."
+        (Out
+        )
+        (Reply
+            (Repeat groups "Number of thread groups that follow." 
+                (threadGroupObject group "A top level thread group")
+            )
+        )
+        (ErrorSet
+            (Error VM_DEAD)
+        )
+    )
+    (Command Dispose=6
+	"Invalidates this virtual machine mirror. "
+	"The communication channel to the target VM is closed, and "
+	"the target VM prepares to accept another subsequent connection "
+	"from this debugger or another debugger, including the "
+	"following tasks: "
+	"<ul>"
+	"<li>All event requests are cancelled. "
+	"<li>All threads suspended by the thread-level "
+	"<a href=\"#JDWP_ThreadReference_Resume\">resume</a> command "
+	"or the VM-level "
+	"<a href=\"#JDWP_VirtualMachine_Resume\">resume</a> command "
+	"are resumed as many times as necessary for them to run. "
+	"<li>Garbage collection is re-enabled in all cases where it was "
+	"<a href=\"#JDWP_ObjectReference_DisableCollection\">disabled</a> "
+	"</ul>"
+	"Any current method invocations executing in the target VM "
+	"are continued after the disconnection. Upon completion of any such "
+	"method invocation, the invoking thread continues from the "
+	"location where it was originally stopped. "
+	"<p>"
+	"Resources originating in  "
+	"this VirtualMachine (ObjectReferences, ReferenceTypes, etc.) "
+	"will become invalid. "
+        (Out
+        )
+        (Reply
+        )
+        (ErrorSet
+        )
+    )
+    (Command IDSizes=7
+        "Returns the sizes of variably-sized data types in the target VM."
+	"The returned values indicate the number of bytes used by the "
+	"identifiers in command and reply packets."
+        (Out
+        )
+        (Reply
+            (int fieldIDSize "fieldID size in bytes ")
+            (int methodIDSize "methodID size in bytes ")
+            (int objectIDSize "objectID size in bytes ")
+            (int referenceTypeIDSize "referenceTypeID size in bytes ")
+            (int frameIDSize "frameID size in bytes ")
+        )
+        (ErrorSet
+            (Error VM_DEAD)
+        )
+    )
+    (Command Suspend=8
+	"Suspends the execution of the application running in the target "
+	"VM. All Java threads currently running will be suspended. "
+	"<p>"
+	"Unlike java.lang.Thread.suspend, "
+	"suspends of both the virtual machine and individual threads are "
+	"counted. Before a thread will run again, it must be resumed through "
+	"the <a href=\"#JDWP_VirtualMachine_Resume\">VM-level resume</a> command "
+	"or the <a href=\"#JDWP_ThreadReference_Resume\">thread-level resume</a> command "
+	"the same number of times it has been suspended. "
+        (Out
+        )
+        (Reply
+        )
+        (ErrorSet
+            (Error VM_DEAD)
+        )
+    )
+    (Command Resume=9
+        "Resumes execution of the application after the suspend "
+        "command or an event has stopped it. "
+	"Suspensions of the Virtual Machine and individual threads are "
+	"counted. If a particular thread is suspended n times, it must "
+	"resumed n times before it will continue. "
+        (Out
+        )
+        (Reply
+        )
+        (ErrorSet
+        )
+    )
+    (Command Exit=10
+        "Terminates the target VM with the given exit code. "
+        "On some platforms, the exit code might be truncated, for "
+        "example, to the low order 8 bits. "
+	"All ids previously returned from the target VM become invalid. "
+	"Threads running in the VM are abruptly terminated. "
+	"A thread death exception is not thrown and "
+	"finally blocks are not run."
+        (Out
+            (int exitCode "the exit code")
+        )
+        (Reply
+        )
+        (ErrorSet
+        )
+    )
+    (Command CreateString=11
+        "Creates a new string object in the target VM and returns "
+	"its id. " 
+        (Out
+	    (string utf "UTF-8 characters to use in the created string. ")
+        )
+        (Reply
+            (stringObject stringObject 
+                "Created string (instance of java.lang.String) ")
+        )
+        (ErrorSet
+            (Error VM_DEAD)
+        )
+    )
+    (Command Capabilities=12
+        "Retrieve this VM's capabilities. The capabilities are returned "
+	"as booleans, each indicating the presence or absence of a "
+	"capability. The commands associated with each capability will "
+	"return the NOT_IMPLEMENTED error if the cabability is not "
+	"available."
+        (Out
+        )
+        (Reply
+            (boolean canWatchFieldModification 
+	             "Can the VM watch field modification, and therefore "
+		     "can it send the Modification Watchpoint Event?")
+            (boolean canWatchFieldAccess 
+	             "Can the VM watch field access, and therefore "
+		     "can it send the Access Watchpoint Event?")
+            (boolean canGetBytecodes 
+	             "Can the VM get the bytecodes of a given method? ")
+            (boolean canGetSyntheticAttribute 
+	             "Can the VM determine whether a field or method is "
+		     "synthetic? (that is, can the VM determine if the "
+		     "method or the field was invented by the compiler?) ")
+            (boolean canGetOwnedMonitorInfo 
+	             "Can the VM get the owned monitors infornation for "
+		     "a thread?")
+            (boolean canGetCurrentContendedMonitor 
+	             "Can the VM get the current contended monitor of a thread?")
+            (boolean canGetMonitorInfo 
+	             "Can the VM get the monitor information for a given object? ")
+        )
+        (ErrorSet
+            (Error VM_DEAD)
+        )
+    )
+    (Command ClassPaths=13
+        "Retrieve the classpath and bootclasspath of the target VM. "
+	"If the classpath is not defined, returns an empty list. If the "
+        "bootclasspath is not defined returns an empty list."
+        (Out
+        )
+        (Reply
+	    (string baseDir "Base directory used to resolve relative "
+	                    "paths in either of the following lists.")
+            (Repeat classpaths "Number of paths in classpath."
+                (string path "One component of classpath") )
+            (Repeat bootclasspaths "Number of paths in bootclasspath."
+                (string path "One component of bootclasspath") )
+        )
+        (ErrorSet
+            (Error VM_DEAD)
+        )
+    )
+    (Command DisposeObjects=14
+        "Releases a list of object IDs. For each object in the list, the "
+        "following applies. "
+        "The count of references held by the back-end (the reference "
+        "count) will be decremented by refCnt. "
+        "If thereafter the reference count is less than "
+        "or equal to zero, the ID is freed. "
+        "Any back-end resources associated with the freed ID may "
+        "be freed, and if garbage collection was "
+        "disabled for the object, it will be re-enabled. "
+        "The sender of this command "
+        "promises that no further commands will be sent "
+        "referencing a freed ID.
+	"<p>"
+	"Use of this command is not required. If it is not sent, "
+	"resources associated with each ID will be freed by the back-end "
+	"at some time after the corresponding object is garbage collected. "
+	"It is most useful to use this command to reduce the load on the "
+	"back-end if a very large number of "
+	"objects has been retrieved from the back-end (a large array, "
+	"for example) but may not be garbage collected any time soon. "
+	"<p>"
+        "IDs may be re-used by the back-end after they "
+        "have been freed with this command."
+        "This description assumes reference counting, "
+        "a back-end may use any implementation which operates "
+        "equivalently. "
+	(Out
+	    (Repeat requests "Number of object dispose requests that follow"
+		(Group Request
+	 	    (object object "The object ID")
+		    (int refCnt "The number of times this object ID has been "
+				"part of a packet received from the back-end. "
+				"An accurate count prevents the object ID "
+				"from being freed on the back-end if "
+				"it is part of an incoming packet, not yet "
+				"handled by the front-end.")
+		)
+	    )
+        )
+        (Reply
+        )
+        (ErrorSet
+        )
+    )
+    (Command HoldEvents=15
+        "Tells the target VM to stop sending events. Events are not discarded; "
+	"they are held until a subsequent ReleaseEvents command is sent. "
+	"This command is useful to control the number of events sent "
+	"to the debugger VM in situations where very large numbers of events "
+	"are generated. "
+	"While events are held by the debugger back-end, application "
+	"execution may be frozen by the debugger back-end to prevent "
+	"buffer overflows on the back end. 
+	"Responses to commands are never held and are not affected by this 
+	"command. If events are already being held, this command is "
+	"ignored."
+        (Out
+        )
+        (Reply
+        )
+        (ErrorSet
+        )
+    )
+    (Command ReleaseEvents=16
+        "Tells the target VM to continue sending events. This command is "
+	"used to restore normal activity after a HoldEvents command. If "
+	"there is no current HoldEvents command in effect, this command is "
+	"ignored."
+        (Out
+        )
+        (Reply
+        )
+        (ErrorSet
+        )
+    )
+    (Command CapabilitiesNew=17
+        "Retrieve all of this VM's capabilities. The capabilities are returned "
+	"as booleans, each indicating the presence or absence of a "
+	"capability. The commands associated with each capability will "
+	"return the NOT_IMPLEMENTED error if the cabability is not "
+	"available."
+        "Since JDWP version 1.4."
+        (Out
+        )
+        (Reply
+            (boolean canWatchFieldModification 
+	             "Can the VM watch field modification, and therefore "
+		     "can it send the Modification Watchpoint Event?")
+            (boolean canWatchFieldAccess 
+	             "Can the VM watch field access, and therefore "
+		     "can it send the Access Watchpoint Event?")
+            (boolean canGetBytecodes 
+	             "Can the VM get the bytecodes of a given method? ")
+            (boolean canGetSyntheticAttribute 
+	             "Can the VM determine whether a field or method is "
+		     "synthetic? (that is, can the VM determine if the "
+		     "method or the field was invented by the compiler?) ")
+            (boolean canGetOwnedMonitorInfo 
+	             "Can the VM get the owned monitors infornation for "
+		     "a thread?")
+            (boolean canGetCurrentContendedMonitor 
+	             "Can the VM get the current contended monitor of a thread?")
+            (boolean canGetMonitorInfo 
+	             "Can the VM get the monitor information for a given object? ")
+            (boolean canRedefineClasses 
+	             "Can the VM redefine classes?")
+            (boolean canAddMethod 
+	             "Can the VM add methods when redefining "
+                     "classes?")
+            (boolean canUnrestrictedlyRedefineClasses 
+	             "Can the VM redefine classes"
+                     "in arbitrary ways?")
+            (boolean canPopFrames
+	             "Can the VM pop stack frames?")
+            (boolean canUseInstanceFilters
+	             "Can the VM filter events by specific object?")
+            (boolean canGetSourceDebugExtension
+	             "Can the VM get the source debug extension?")
+            (boolean canRequestVMDeathEvent
+	             "Can the VM request VM death events?")
+            (boolean canSetDefaultStratum
+	             "Can the VM set a default stratum?")
+            (boolean canGetInstanceInfo
+	             "Can the VM return instances, counts of instances of classes "
+                     "and referring objects?")
+            (boolean canRequestMonitorEvents
+	             "Can the VM request monitor events?")
+            (boolean canGetMonitorFrameInfo
+	             "Can the VM get monitors with frame depth info?")
+            (boolean canUseSourceNameFilters
+	             "Can the VM filter class prepare events by source name?")
+            (boolean canGetConstantPool
+	             "Can the VM return the constant pool information?")
+            (boolean canForceEarlyReturn
+	             "Can the VM force early return from a method?")
+            (boolean reserved22
+	             "Reserved for future capability")
+            (boolean reserved23
+	             "Reserved for future capability")
+            (boolean reserved24
+	             "Reserved for future capability")
+            (boolean reserved25
+	             "Reserved for future capability")
+            (boolean reserved26
+	             "Reserved for future capability")
+            (boolean reserved27
+	             "Reserved for future capability")
+            (boolean reserved28
+	             "Reserved for future capability")
+            (boolean reserved29
+	             "Reserved for future capability")
+            (boolean reserved30
+	             "Reserved for future capability")
+            (boolean reserved31
+	             "Reserved for future capability")
+            (boolean reserved32
+	             "Reserved for future capability")
+        )
+        (ErrorSet
+            (Error VM_DEAD)
+        )
+    )
+    (Command RedefineClasses=18
+        "Installs new class definitions. "	
+	"If there are active stack frames in methods of the redefined classes in the "
+	"target VM then those active frames continue to run the bytecodes of the "
+	"original method. These methods are considered obsolete - see "
+	"<a href=\"#JDWP_Method_IsObsolete\">IsObsolete</a>. The methods in the "
+	"redefined classes will be used for new invokes in the target VM. "
+	"The original method ID refers to the redefined method. "
+	"All breakpoints in the redefined classes are cleared."
+	"If resetting of stack frames is desired, the "
+	"<a href=\"#JDWP_StackFrame_PopFrames\">PopFrames</a> command can be used "
+	"to pop frames with obsolete methods."
+	"<p>"
+	"Requires canRedefineClasses capability - see "
+	"<a href=\"#JDWP_VirtualMachine_CapabilitiesNew\">CapabilitiesNew</a>. "
+	"In addition to the canRedefineClasses capability, the target VM must "
+	"have the canAddMethod capability to add methods when redefining classes, "
+	"or the canUnrestrictedlyRedefineClasses to redefine classes in arbitrary "
+	"ways."
+	(Out 
+            (Repeat classes "Number of reference types that follow." 
+                (Group ClassDef
+                    (referenceType refType "The reference type.")
+                    (Repeat classfile "Number of bytes defining class (below)"
+                         (byte classbyte "byte in JVM class file "
+                                         "format.")
+                    )
+                )
+            )
+        )
+        (Reply 
+        )
+        (ErrorSet
+            (Error INVALID_CLASS    "One of the refTypes is not the ID of a reference "
+                                    "type.")
+            (Error INVALID_OBJECT   "One of the refTypes is not a known ID.")
+            (Error UNSUPPORTED_VERSION)
+            (Error INVALID_CLASS_FORMAT)
+            (Error CIRCULAR_CLASS_DEFINITION)
+            (Error FAILS_VERIFICATION)
+            (Error NAMES_DONT_MATCH)
+            (Error NOT_IMPLEMENTED  "No aspect of this functionality is implemented "
+                                    "(CapabilitiesNew.canRedefineClasses is false)")
+            (Error ADD_METHOD_NOT_IMPLEMENTED)
+            (Error SCHEMA_CHANGE_NOT_IMPLEMENTED)
+            (Error HIERARCHY_CHANGE_NOT_IMPLEMENTED)
+            (Error DELETE_METHOD_NOT_IMPLEMENTED)
+            (Error CLASS_MODIFIERS_CHANGE_NOT_IMPLEMENTED)
+            (Error METHOD_MODIFIERS_CHANGE_NOT_IMPLEMENTED)
+            (Error VM_DEAD)
+        )
+    )
+    (Command SetDefaultStratum=19
+        "Set the default stratum. Requires canSetDefaultStratum capability - see "
+	"<a href=\"#JDWP_VirtualMachine_CapabilitiesNew\">CapabilitiesNew</a>."
+	(Out
+	    (string stratumID "default stratum, or empty string to use "
+                              "reference type default.")
+        )
+        (Reply
+        )
+        (ErrorSet
+            (Error NOT_IMPLEMENTED)
+            (Error VM_DEAD)
+        )
+    )
+    (Command AllClassesWithGeneric=20
+        "Returns reference types for all classes currently loaded by the "
+	"target VM.  "
+        "Both the JNI signature and the generic signature are "
+        "returned for each class.  "
+	"Generic signatures are described in the signature attribute "
+        "section in "
+        "<cite>The Java&trade; Virtual Machine Specification</cite>. "
+        "Since JDWP version 1.5."
+	(Out 
+        )
+        (Reply 
+            (Repeat classes "Number of reference types that follow." 
+                (Group ClassInfo
+                    (byte refTypeTag  "<a href=\"#JDWP_TypeTag\">Kind</a> "
+		                      "of following reference type. ")
+                    (referenceTypeID typeID "Loaded reference type")
+                    (string signature 
+                                "The JNI signature of the loaded reference type.")
+                    (string genericSignature 
+                                "The generic signature of the loaded reference type "
+                                "or an empty string if there is none.")
+                    (int status "The current class "
+		                "<a href=\"#JDWP_ClassStatus\">status.</a> ")
+                )
+            )
+        )
+        (ErrorSet
+            (Error VM_DEAD)
+        )
+    )
+    
+    (Command InstanceCounts=21
+        "Returns the number of instances of each reference type in the input list. "
+        "Only instances that are reachable for the purposes of "
+        "garbage collection are counted.  If a reference type is invalid, "
+        "eg. it has been unloaded, zero is returned for its instance count."
+        "<p>Since JDWP version 1.6. Requires canGetInstanceInfo capability - see "
+        "<a href=\"#JDWP_VirtualMachine_CapabilitiesNew\">CapabilitiesNew</a>."
+        (Out
+            (Repeat refTypesCount "Number of reference types that follow.    Must be non-negative."
+                (referenceType refType "A reference type ID.")
+            )
+          )
+        (Reply
+            (Repeat counts "The number of counts that follow."
+              (long instanceCount "The number of instances for the corresponding reference type "
+                                  "in 'Out Data'.")
+            )
+        )
+        (ErrorSet
+            (Error ILLEGAL_ARGUMENT   "refTypesCount is less than zero.")
+            (Error NOT_IMPLEMENTED)
+            (Error VM_DEAD)
+        )
+    )
+)
+
+(CommandSet ReferenceType=2
+    (Command Signature=1
+        "Returns the JNI signature of a reference type. "
+	"JNI signature formats are described in the "
+	"<a href=\"http://java.sun.com/products/jdk/1.2/docs/guide/jni/index.html\">Java Native Inteface Specification</a>"
+	"<p>
+	"For primitive classes "
+	"the returned signature is the signature of the corresponding primitive "
+	"type; for example, \"I\" is returned as the signature of the class "
+	"represented by java.lang.Integer.TYPE."
+	(Out
+            (referenceType refType "The reference type ID.")
+        )
+        (Reply
+            (string signature 
+                "The JNI signature for the reference type.")
+        )
+        (ErrorSet
+            (Error INVALID_CLASS     "refType is not the ID of a reference "
+                                     "type.")
+            (Error INVALID_OBJECT    "refType is not a known ID.")
+            (Error VM_DEAD)
+        )
+    )
+    (Command ClassLoader=2
+        "Returns the instance of java.lang.ClassLoader which loaded "
+        "a given reference type. If the reference type was loaded by the "
+	"system class loader, the returned object ID is null."
+        (Out
+            (referenceType refType "The reference type ID.")
+        )
+        (Reply
+            (classLoaderObject classLoader "The class loader for the reference type. ")
+        )
+        (ErrorSet
+            (Error INVALID_CLASS     "refType is not the ID of a reference "
+                                     "type.")
+            (Error INVALID_OBJECT    "refType is not a known ID.")
+            (Error VM_DEAD)
+        )
+    )
+    (Command Modifiers=3
+        "Returns the modifiers (also known as access flags) for a reference type. "
+	"The returned bit mask contains information on the declaration "
+	"of the reference type. If the reference type is an array or " 
+	"a primitive class (for example, java.lang.Integer.TYPE), the "
+	"value of the returned bit mask is undefined."
+        (Out
+            (referenceType refType "The reference type ID.")
+        )
+        (Reply
+            (int modBits "Modifier bits as defined in Chapter 4 of "
+	                 "<cite>The Java&trade; Virtual Machine Specification</cite>")
+        )
+        (ErrorSet
+            (Error INVALID_CLASS     "refType is not the ID of a reference "
+                                     "type.")
+            (Error INVALID_OBJECT    "refType is not a known ID.")
+            (Error VM_DEAD)
+        )
+    )
+    (Command Fields=4
+        "Returns information for each field in a reference type. "
+        "Inherited fields are not included. "
+	"The field list will include any synthetic fields created "
+	"by the compiler. "
+        "Fields are returned in the order they occur in the class file."
+        (Out
+            (referenceType refType "The reference type ID.")
+        )
+        (Reply
+            (Repeat declared "Number of declared fields."
+                (Group FieldInfo
+                    (field fieldID "Field ID.")
+                    (string name "Name of field.")
+                    (string signature "JNI Signature of field.")
+                    (int modBits "The modifier bit flags (also known as access flags) "
+		                 "which provide additional information on the  "
+                                 "field declaration. Individual flag values are "
+				 "defined in Chapter 4 of "
+ 	                         "<cite>The Java&trade; Virtual Machine Specification</cite>. "
+				 "In addition, The <code>0xf0000000</code> bit identifies "
+				 "the field as synthetic, if the synthetic attribute "
+				 "<a href=\"#JDWP_VirtualMachine_Capabilities\">capability</a> is available.")
+                )
+            )
+        )
+        (ErrorSet
+            (Error CLASS_NOT_PREPARED)
+            (Error INVALID_CLASS     "refType is not the ID of a reference "
+                                     "type.")
+            (Error INVALID_OBJECT    "refType is not a known ID.")
+            (Error VM_DEAD)
+        )
+    )
+    (Command Methods=5
+        "Returns information for each method in a reference type. "
+        "Inherited methods are not included. The list of methods will "
+	"include constructors (identified with the name \"&lt;init&gt;\"), "
+	"the initialization method (identified with the name \"&lt;clinit&gt;\") "
+	"if present, and any synthetic methods created by the compiler. "
+        "Methods are returned in the order they occur in the class file."
+        (Out
+            (referenceType refType "The reference type ID.")
+        )
+        (Reply
+            (Repeat declared "Number of declared methods."
+                (Group MethodInfo
+                    (method methodID "Method ID.")
+                    (string name "Name of method.")
+                    (string signature "JNI signature of method.")
+                    (int modBits "The modifier bit flags (also known as access flags) "
+		                 "which provide additional information on the  "
+                                 "method declaration. Individual flag values are "
+				 "defined in Chapter 4 of "
+ 	                         "<cite>The Java&trade; Virtual Machine Specification</cite>. "
+				 "In addition, The <code>0xf0000000</code> bit identifies "
+				 "the method as synthetic, if the synthetic attribute "
+				 "<a href=\"#JDWP_VirtualMachine_Capabilities\">capability</a> is available.")
+                )
+            )
+        )
+        (ErrorSet
+            (Error CLASS_NOT_PREPARED)
+            (Error INVALID_CLASS     "refType is not the ID of a reference "
+                                     "type.")
+            (Error INVALID_OBJECT    "refType is not a known ID.")
+            (Error VM_DEAD)
+        )
+    )
+    (Command GetValues=6
+        "Returns the value of one or more static fields of the "
+	"reference type. Each field must be member of the reference type "
+	"or one of its superclasses, superinterfaces, or implemented interfaces. "
+	"Access control is not enforced; for example, the values of private "
+	"fields can be obtained."
+        (Out
+            (referenceType refType "The reference type ID.")
+            (Repeat fields "The number of values to get"	    	    
+                (Group Field
+                    (field fieldID "A field to get")
+                )
+            )
+        )
+        (Reply
+            (Repeat values "The number of values returned, always equal to fields, "
+	    		   "the number of values to get."	    
+                (value value "The field value")
+            )
+        )
+        (ErrorSet
+            (Error INVALID_CLASS     "refType is not the ID of a reference "
+                                     "type.")
+            (Error INVALID_OBJECT    "refType is not a known ID.")
+            (Error INVALID_FIELDID)
+            (Error VM_DEAD)
+        )
+    )
+    (Command SourceFile=7
+        "Returns the name of source file in which a reference type was "
+	"declared. "
+        (Out
+            (referenceType refType "The reference type ID.")
+        )
+        (Reply
+            (string sourceFile "The source file name. No path information "
+	                       "for the file is included")
+        )
+        (ErrorSet	    
+            (Error INVALID_CLASS     "refType is not the ID of a reference "
+                                     "type.")
+            (Error INVALID_OBJECT    "refType is not a known ID.")
+	    (Error ABSENT_INFORMATION	"The source file attribute is absent.")	    
+            (Error VM_DEAD)
+        )
+    )
+    (Command NestedTypes=8
+        "Returns the classes and interfaces directly nested within this type."
+        "Types further nested within those types are not included. "
+        (Out
+            (referenceType refType "The reference type ID.")
+        )
+        (Reply
+            (Repeat classes "The number of nested classes and interfaces"
+                (Group TypeInfo
+                    (byte refTypeTag  "<a href=\"#JDWP_TypeTag\">Kind</a> "
+		                      "of following reference type. ")
+                    (referenceTypeID typeID "The nested class or interface ID.")
+                )
+            )
+        )
+        (ErrorSet
+            (Error INVALID_CLASS     "refType is not the ID of a reference "
+                                     "type.")
+            (Error INVALID_OBJECT    "refType is not a known ID.")
+            (Error VM_DEAD)
+        )
+    )
+    (Command Status=9
+        "Returns the current status of the reference type. The status "
+	"indicates the extent to which the reference type has been "
+	"initialized, as described in section 2.1.6 of "
+	"<cite>The Java&trade; Virtual Machine Specification</cite>. "
+	"If the class is linked the PREPARED and VERIFIED bits in the returned status bits "
+	"will be set. If the class is initialized the INITIALIZED bit in the returned "
+	"status bits will be set. If an error occured during initialization then the "
+	"ERROR bit in the returned status bits will be set. "	
+	"The returned status bits are undefined for array types and for "
+	"primitive classes (such as java.lang.Integer.TYPE). "		
+        (Out
+            (referenceType refType "The reference type ID.")
+        )
+        (Reply
+            (int status "<a href=\"#JDWP_ClassStatus\">Status</a> bits:"
+                        "See <a href=\"#JDWP_ClassStatus\">JDWP.ClassStatus</a>")
+        )
+        (ErrorSet
+            (Error INVALID_CLASS     "refType is not the ID of a reference "
+                                     "type.")
+            (Error INVALID_OBJECT    "refType is not a known ID.")
+            (Error VM_DEAD)
+        )
+    )
+    (Command Interfaces=10
+        "Returns the interfaces declared as implemented by this class. "
+        "Interfaces indirectly implemented (extended by the implemented "
+        "interface or implemented by a superclass) are not included."
+        (Out
+            (referenceType refType "The reference type ID.")
+        )
+        (Reply
+            (Repeat interfaces "The number of implemented interfaces"
+                (interfaceType interfaceType "implemented interface.")
+            )
+        )
+        (ErrorSet
+            (Error INVALID_CLASS     "refType is not the ID of a reference "
+                                     "type.")
+            (Error INVALID_OBJECT    "refType is not a known ID.")
+            (Error VM_DEAD)
+        )
+    )
+    (Command ClassObject=11
+        "Returns the class object corresponding to this type. "
+        (Out
+            (referenceType refType "The reference type ID.")
+        )
+        (Reply
+            (classObject classObject "class object.")
+        )
+        (ErrorSet
+            (Error INVALID_CLASS     "refType is not the ID of a reference "
+                                     "type.")
+            (Error INVALID_OBJECT    "refType is not a known ID.")
+            (Error VM_DEAD)
+        )
+    )
+    (Command SourceDebugExtension=12
+        "Returns the value of the SourceDebugExtension attribute. "
+        "Since JDWP version 1.4. Requires canGetSourceDebugExtension capability - see "
+	"<a href=\"#JDWP_VirtualMachine_CapabilitiesNew\">CapabilitiesNew</a>."
+        (Out
+            (referenceType refType "The reference type ID.")
+        )
+        (Reply
+            (string extension "extension attribute")
+        )
+        (ErrorSet
+            (Error INVALID_CLASS      "refType is not the ID of a reference "
+                                      "type.")
+            (Error INVALID_OBJECT     "refType is not a known ID.")
+            (Error ABSENT_INFORMATION "If the extension is not specified.")
+            (Error NOT_IMPLEMENTED)
+            (Error VM_DEAD)
+        )
+    )
+    (Command SignatureWithGeneric=13
+        "Returns the JNI signature of a reference type along with the "
+        "generic signature if there is one.  "
+	"Generic signatures are described in the signature attribute "
+        "section in "
+        "<cite>The Java&trade; Virtual Machine Specification</cite>. "
+        "Since JDWP version 1.5."
+	"<p>
+	(Out
+            (referenceType refType "The reference type ID.")
+        )
+        (Reply
+            (string signature 
+                "The JNI signature for the reference type.")
+            (string genericSignature 
+                "The generic signature for the reference type or an empty "
+                "string if there is none.")
+        )
+        (ErrorSet
+            (Error INVALID_CLASS     "refType is not the ID of a reference "
+                                     "type.")
+            (Error INVALID_OBJECT    "refType is not a known ID.")
+            (Error VM_DEAD)
+        )
+    )
+    (Command FieldsWithGeneric=14
+        "Returns information, including the generic signature if any, "
+        "for each field in a reference type. "
+        "Inherited fields are not included. "
+	"The field list will include any synthetic fields created "
+	"by the compiler. "
+        "Fields are returned in the order they occur in the class file.  "
+	"Generic signatures are described in the signature attribute "
+        "section in "
+        "<cite>The Java&trade; Virtual Machine Specification</cite>. "
+        "Since JDWP version 1.5."
+        (Out
+            (referenceType refType "The reference type ID.")
+        )
+        (Reply
+            (Repeat declared "Number of declared fields."
+                (Group FieldInfo
+                    (field fieldID "Field ID.")
+                    (string name "The name of the field.")
+                    (string signature "The JNI signature of the field.")
+                    (string genericSignature "The generic signature of the "
+                                             "field, or an empty string if there is none.")
+                    (int modBits "The modifier bit flags (also known as access flags) "
+		                 "which provide additional information on the  "
+                                 "field declaration. Individual flag values are "
+				 "defined in Chapter 4 of "
+ 	                         "<cite>The Java&trade; Virtual Machine Specification</cite>. "
+				 "In addition, The <code>0xf0000000</code> bit identifies "
+				 "the field as synthetic, if the synthetic attribute "
+				 "<a href=\"#JDWP_VirtualMachine_Capabilities\">capability</a> is available.")
+                )
+            )
+        )
+        (ErrorSet
+            (Error CLASS_NOT_PREPARED)
+            (Error INVALID_CLASS     "refType is not the ID of a reference "
+                                     "type.")
+            (Error INVALID_OBJECT    "refType is not a known ID.")
+            (Error VM_DEAD)
+        )
+    )
+    (Command MethodsWithGeneric=15
+        "Returns information, including the generic signature if any, "
+        "for each method in a reference type. "
+        "Inherited methodss are not included. The list of methods will "
+	"include constructors (identified with the name \"&lt;init&gt;\"), "
+	"the initialization method (identified with the name \"&lt;clinit&gt;\") "
+	"if present, and any synthetic methods created by the compiler. "
+        "Methods are returned in the order they occur in the class file.  "
+	"Generic signatures are described in the signature attribute "
+        "section in "
+        "<cite>The Java&trade; Virtual Machine Specification</cite>. "
+        "Since JDWP version 1.5."
+        (Out
+            (referenceType refType "The reference type ID.")
+        )
+        (Reply
+            (Repeat declared "Number of declared methods."
+                (Group MethodInfo
+                    (method methodID "Method ID.")
+                    (string name "The name of the method.")
+                    (string signature "The JNI signature of the method.")
+                    (string genericSignature "The generic signature of the method, or "
+                                             "an empty string if there is none.")
+                    (int modBits "The modifier bit flags (also known as access flags) "
+		                 "which provide additional information on the  "
+                                 "method declaration. Individual flag values are "
+				 "defined in Chapter 4 of "
+ 	                         "<cite>The Java&trade; Virtual Machine Specification</cite>. "
+				 "In addition, The <code>0xf0000000</code> bit identifies "
+				 "the method as synthetic, if the synthetic attribute "
+				 "<a href=\"#JDWP_VirtualMachine_Capabilities\">capability</a> is available.")
+                )
+            )
+        )
+        (ErrorSet
+            (Error CLASS_NOT_PREPARED)
+            (Error INVALID_CLASS     "refType is not the ID of a reference "
+                                     "type.")
+            (Error INVALID_OBJECT    "refType is not a known ID.")
+            (Error VM_DEAD)
+        )
+    )
+    (Command Instances=16
+        "Returns instances of this reference type. " 
+        "Only instances that are reachable for the purposes of "
+        "garbage collection are returned. "
+        "<p>Since JDWP version 1.6. Requires canGetInstanceInfo capability - see "
+	"<a href=\"#JDWP_VirtualMachine_CapabilitiesNew\">CapabilitiesNew</a>."
+        (Out
+            (referenceType refType "The reference type ID.")
+            (int maxInstances "Maximum number of instances to return.  Must be non-negative. "
+                              "If zero, all instances are returned.")
+        )       
+        (Reply
+            (Repeat instances "The number of instances that follow."
+                 (tagged-object instance "An instance of this reference type.")
+             )
+        )
+        (ErrorSet
+            (Error INVALID_CLASS     "refType is not the ID of a reference "
+                                     "type.")
+            (Error INVALID_OBJECT    "refType is not a known ID.")
+            (Error ILLEGAL_ARGUMENT  "maxInstances is less than zero.")
+            (Error NOT_IMPLEMENTED)
+            (Error VM_DEAD)
+        )
+    )
+    (Command ClassFileVersion=17
+	"Returns the class file major and minor version numbers, as defined in the class "
+        "file format of the Java Virtual Machine specification. "
+         "<p>Since JDWP version 1.6. "
+        (Out
+            (referenceType refType "The class.")
+        )
+        (Reply
+	    (int majorVersion "Major version number")
+	    (int minorVersion "Minor version number")		
+        )
+        (ErrorSet
+            (Error INVALID_CLASS     "refType is not the ID of a reference "
+                                     "type.")
+            (Error INVALID_OBJECT    "refType is not a known ID.")
+	    (Error ABSENT_INFORMATION "The class file version information is "
+				      "absent for primitive and array types.")	    
+            (Error VM_DEAD)
+        )
+    )
+    (Command ConstantPool=18
+        "Return the raw bytes of the constant pool in the format of the "
+        "constant_pool item of the Class File Format in "
+        "<cite>The Java&trade; Virtual Machine Specification</cite>. "
+        "<p>Since JDWP version 1.6. Requires canGetConstantPool capability - see "
+	"<a href=\"#JDWP_VirtualMachine_CapabilitiesNew\">CapabilitiesNew</a>.""
+        (Out
+            (referenceType refType "The class.")
+        )
+        (Reply
+            (int count "Total number of constant pool entries plus one. This "
+                       "corresponds to the constant_pool_count item of the "
+                       "Class File Format in "
+                       "<cite>The Java&trade; Virtual Machine Specification</cite>. ")
+            (Repeat bytes
+                (byte cpbytes "Raw bytes of constant pool")
+            )
+        )
+        (ErrorSet
+            (Error INVALID_CLASS     "refType is not the ID of a reference "
+                                     "type.")
+            (Error INVALID_OBJECT    "refType is not a known ID.")
+            (Error NOT_IMPLEMENTED   "If the target virtual machine does not "
+                                     "support the retrieval of constant pool information.")
+	    (Error ABSENT_INFORMATION "The Constant Pool information is "
+			              "absent for primitive and array types.")	    
+            (Error VM_DEAD)
+        )
+    )
+)
+(CommandSet ClassType=3
+    (Command Superclass=1
+        "Returns the immediate superclass of a class."
+        (Out
+            (classType clazz "The class type ID.")
+        )
+        (Reply
+            (classType superclass 
+                "The superclass (null if the class ID for java.lang.Object is specified).")
+        )
+        (ErrorSet
+            (Error INVALID_CLASS     "clazz is not the ID of a class.")
+            (Error INVALID_OBJECT    "clazz is not a known ID.")
+            (Error VM_DEAD)
+        )
+    )
+    (Command SetValues=2
+        "Sets the value of one or more static fields. "
+	"Each field must be member of the class type "
+	"or one of its superclasses, superinterfaces, or implemented interfaces. "
+	"Access control is not enforced; for example, the values of private "
+	"fields can be set. Final fields cannot be set."
+	"For primitive values, the value's type must match the "
+	"field's type exactly. For object values, there must exist a "
+	"widening reference conversion from the value's type to the 
+	"field's type and the field's type must be loaded. "
+        (Out
+            (classType clazz "The class type ID.")
+            (Repeat values "The number of fields to set."
+                (Group FieldValue "A Field/Value pair."
+                    (field fieldID "Field to set.")
+                    (untagged-value value "Value to put in the field.")
+                )
+            )
+        )
+        (Reply "none"
+        )
+        (ErrorSet
+            (Error INVALID_CLASS     "clazz is not the ID of a class.")
+            (Error CLASS_NOT_PREPARED)
+            (Error INVALID_OBJECT    "clazz is not a known ID or a value of an "
+                                     "object field is not a known ID.")
+            (Error INVALID_FIELDID)
+            (Error VM_DEAD)
+        ) 
+    )
+    (Command InvokeMethod=3
+        "Invokes a static method. "
+	"The method must be member of the class type "
+	"or one of its superclasses, superinterfaces, or implemented interfaces. "
+	"Access control is not enforced; for example, private "
+	"methods can be invoked."
+	"<p>"
+	"The method invocation will occur in the specified thread. "
+	"Method invocation can occur only if the specified thread "
+	"has been suspended by an event. "
+	"Method invocation is not supported "
+	"when the target VM has been suspended by the front-end. "
+	"<p>"
+	"The specified method is invoked with the arguments in the specified "
+	"argument list. "
+	"The method invocation is synchronous; the reply packet is not "
+	"sent until the invoked method returns in the target VM. "
+	"The return value (possibly the void value) is "
+	"included in the reply packet. "
+	"If the invoked method throws an exception, the "
+	"exception object ID is set in the reply packet; otherwise, the "
+	"exception object ID is null. "
+	"<p>"
+	"For primitive arguments, the argument value's type must match the "
+	"argument's type exactly. For object arguments, there must exist a "
+	"widening reference conversion from the argument value's type to the "
+	"argument's type and the argument's type must be loaded. "
+	"<p>"
+        "By default, all threads in the target VM are resumed while "
+        "the method is being invoked if they were previously "
+        "suspended by an event or by command. "
+        "This is done to prevent the deadlocks "
+        "that will occur if any of the threads own monitors "
+        "that will be needed by the invoked method. It is possible that "
+        "breakpoints or other events might occur during the invocation. "
+        "Note, however, that this implicit resume acts exactly like "
+        "the ThreadReference resume command, so if the thread's suspend "
+        "count is greater than 1, it will remain in a suspended state "
+	"during the invocation. By default, when the invocation completes, "
+	"all threads in the target VM are suspended, regardless their state "
+	"before the invocation. "
+        "<p>"
+        "The resumption of other threads during the invoke can be prevented "
+        "by specifying the INVOKE_SINGLE_THREADED "
+        "bit flag in the <code>options</code> field; however, "
+        "there is no protection against or recovery from the deadlocks "
+        "described above, so this option should be used with great caution. "
+	"Only the specified thread will be resumed (as described for all "
+	"threads above). Upon completion of a single threaded invoke, the invoking thread "
+	"will be suspended once again. Note that any threads started during "
+	"the single threaded invocation will not be suspended when the "
+	"invocation completes. "
+	"<p>"
+        "If the target VM is disconnected during the invoke (for example, through "
+        "the VirtualMachine dispose command) the method invocation continues. "
+        (Out
+            (classType clazz "The class type ID.")
+            (threadObject thread "The thread in which to invoke.")
+            (method methodID "The method to invoke.")
+            (Repeat arguments 
+                (value arg "The argument value.")
+            )
+            (int options "Invocation <a href=\"#JDWP_InvokeOptions\">options</a>")
+        )
+        (Reply
+            (value returnValue "The returned value.")
+            (tagged-object exception "The thrown exception.")
+        )
+        (ErrorSet
+            (Error INVALID_CLASS     "clazz is not the ID of a class.")
+            (Error INVALID_OBJECT    "clazz is not a known ID.")
+            (Error INVALID_METHODID  "methodID is not the ID of a method.")
+            (Error INVALID_THREAD)
+            (Error THREAD_NOT_SUSPENDED)
+            (Error VM_DEAD)
+        )
+    )
+    (Command NewInstance=4
+        "Creates a new object of this type, invoking the specified "
+	"constructor. The constructor method ID must be a member of "
+	"the class type."
+	"<p>"
+	"Instance creation will occur in the specified thread. "
+	"Instance creation can occur only if the specified thread "
+	"has been suspended by an event. "
+	"Method invocation is not supported "
+	"when the target VM has been suspended by the front-end. "
+	"<p>"
+	"The specified constructor is invoked with the arguments in the specified "
+	"argument list. "
+	"The constructor invocation is synchronous; the reply packet is not "
+	"sent until the invoked method returns in the target VM. "
+	"The return value (possibly the void value) is "
+	"included in the reply packet. "
+	"If the constructor throws an exception, the "
+	"exception object ID is set in the reply packet; otherwise, the "
+	"exception object ID is null. "
+	"<p>"
+	"For primitive arguments, the argument value's type must match the "
+	"argument's type exactly. For object arguments, there must exist a "
+	"widening reference conversion from the argument value's type to the "
+	"argument's type and the argument's type must be loaded. "
+	"<p>"
+        "By default, all threads in the target VM are resumed while "
+        "the method is being invoked if they were previously "
+        "suspended by an event or by command. "
+        "This is done to prevent the deadlocks "
+        "that will occur if any of the threads own monitors "
+        "that will be needed by the invoked method. It is possible that "
+        "breakpoints or other events might occur during the invocation. "
+        "Note, however, that this implicit resume acts exactly like "
+        "the ThreadReference resume command, so if the thread's suspend "
+        "count is greater than 1, it will remain in a suspended state "
+	"during the invocation. By default, when the invocation completes, "
+	"all threads in the target VM are suspended, regardless their state "
+	"before the invocation. "
+        "<p>"
+        "The resumption of other threads during the invoke can be prevented "
+        "by specifying the INVOKE_SINGLE_THREADED "
+        "bit flag in the <code>options</code> field; however, "
+        "there is no protection against or recovery from the deadlocks "
+        "described above, so this option should be used with great caution. "
+	"Only the specified thread will be resumed (as described for all "
+	"threads above). Upon completion of a single threaded invoke, the invoking thread "
+	"will be suspended once again. Note that any threads started during "
+	"the single threaded invocation will not be suspended when the "
+	"invocation completes. "
+        "<p>"
+        "If the target VM is disconnected during the invoke (for example, through "
+        "the VirtualMachine dispose command) the method invocation continues. "
+        (Out
+            (classType clazz "The class type ID.")
+            (threadObject thread "The thread in which to invoke the constructor.")
+            (method methodID "The constructor to invoke.")
+            (Repeat arguments 
+                (value arg "The argument value.")
+            )
+            (int options "Constructor invocation <a href=\"#JDWP_InvokeOptions\">options</a>")
+        )
+        (Reply
+            (tagged-object newObject "The newly created object, or null "
+	                             "if the constructor threw an exception.")
+            (tagged-object exception "The thrown exception, if any; otherwise, null.")
+        )
+        (ErrorSet
+            (Error INVALID_CLASS     "clazz is not the ID of a class.")
+            (Error INVALID_OBJECT    "clazz is not a known ID or a value of an "
+                                     "object parameter is not a known ID..")
+            (Error INVALID_METHODID  "methodID is not the ID of a method.")
+            (Error INVALID_OBJECT)
+            (Error INVALID_THREAD)
+            (Error THREAD_NOT_SUSPENDED)
+            (Error VM_DEAD)
+        )
+    )
+)
+(CommandSet ArrayType=4
+    (Command NewInstance=1
+        "Creates a new array object of this type with a given length."
+        (Out
+            (arrayType arrType "The array type of the new instance.")
+            (int length "The length of the array.")
+        )
+        (Reply  
+	    (tagged-object newArray "The newly created array object. ")
+        )
+        (ErrorSet
+            (Error INVALID_ARRAY)
+            (Error INVALID_OBJECT)
+            (Error VM_DEAD)
+        )
+    )
+)
+(CommandSet InterfaceType=5
+)
+(CommandSet Method=6
+    (Command LineTable=1
+        "Returns line number information for the method, if present. "
+	"The line table maps source line numbers to the initial code index "
+	"of the line. The line table "
+	"is ordered by code index (from lowest to highest). The line number " 
+	"information is constant unless a new class definition is installed "
+	"using <a href=\"#JDWP_VirtualMachine_RedefineClasses\">RedefineClasses</a>."	
+        (Out
+            (referenceType refType "The class.")
+            (method methodID "The method.")
+        )
+        (Reply
+            (long start "Lowest valid code index for the method, >=0, or -1 if the method is native ")
+            (long end "Highest valid code index for the method, >=0, or -1 if the method is native")
+            (Repeat lines "The number of entries in the line table for this method."
+                (Group LineInfo
+                    (long lineCodeIndex "Initial code index of the line, "
+		    			"start <= lineCodeIndex < end")
+                    (int lineNumber "Line number.")
+                )
+            )
+        )
+        (ErrorSet
+            (Error INVALID_CLASS     "refType is not the ID of a reference "
+                                     "type.")
+            (Error INVALID_OBJECT    "refType is not a known ID.")
+            (Error INVALID_METHODID  "methodID is not the ID of a method.")
+            (Error VM_DEAD)
+        )
+    )
+    (Command VariableTable=2
+        "Returns variable information for the method. The variable table "
+	"includes arguments and locals declared within the method. For "
+	"instance methods, the \"this\" reference is included in the "
+	"table. Also, synthetic variables may be present. "
+        (Out
+            (referenceType refType "The class.")
+            (method methodID "The method.")
+        )
+        (Reply
+            (int argCnt "The number of words in the frame used by arguments. "
+                        "Eight-byte arguments use two words; all others use one. ")
+            (Repeat slots "The number of variables."
+                (Group SlotInfo "Information about the variable."
+                    (long codeIndex
+		        "First code index at which the variable is visible (unsigned). "
+		        "Used in conjunction with <code>length</code>. "
+		        "The variable can be get or set only when the current "
+			"<code>codeIndex</code> <= current frame code index < <code>codeIndex + length</code> ")
+                    (string name "The variable's name.")
+                    (string signature "The variable type's JNI signature.")
+                    (int length 
+		        "Unsigned value used in conjunction with <code>codeIndex</code>. "
+		        "The variable can be get or set only when the current "
+			"<code>codeIndex</code> <= current frame code index < <code>code index + length</code> ")
+                    (int slot "The local variable's index in its frame")
+                )
+            )
+        )
+        (ErrorSet
+            (Error INVALID_CLASS     "refType is not the ID of a reference "
+                                     "type.")
+            (Error INVALID_OBJECT    "refType is not a known ID.")
+            (Error INVALID_METHODID  "methodID is not the ID of a method.")
+            (Error ABSENT_INFORMATION "there is no variable information for the method.")
+            (Error VM_DEAD)
+        )
+    )
+    (Command Bytecodes=3
+        "Retrieve the method's bytecodes as defined in "
+        "<cite>The Java&trade; Virtual Machine Specification</cite>. "
+	"Requires canGetBytecodes capability - see "
+	"<a href=\"#JDWP_VirtualMachine_CapabilitiesNew\">CapabilitiesNew</a>."
+        (Out
+            (referenceType refType "The class.")
+            (method methodID "The method.")
+        )
+        (Reply
+            (Repeat bytes
+                (byte bytecode "A Java bytecode.")
+            )
+        )
+        (ErrorSet
+            (Error INVALID_CLASS     "refType is not the ID of a reference "
+                                     "type.")
+            (Error INVALID_OBJECT    "refType is not a known ID.")
+            (Error INVALID_METHODID  "methodID is not the ID of a method.")
+            (Error NOT_IMPLEMENTED   "If the target virtual machine does not "
+                                     "support the retrieval of bytecodes.")
+            (Error VM_DEAD)
+        )
+    )
+    (Command IsObsolete=4
+        "Determine if this method is obsolete. A method is obsolete if it has been replaced "
+	"by a non-equivalent method using the "
+	"<a href=\"#JDWP_VirtualMachine_RedefineClasses\">RedefineClasses</a> command. "
+	"The original and redefined methods are considered equivalent if their bytecodes are "
+	"the same except for indices into the constant pool and the referenced constants are "
+	"equal."
+        (Out
+            (referenceType refType "The class.")
+            (method methodID "The method.")
+        )
+        (Reply
+            (boolean isObsolete    "true if this method has been replaced"
+                                   "by a non-equivalent method using"
+				   "the RedefineClasses command.") 
+        )
+        (ErrorSet
+            (Error INVALID_CLASS     "refType is not the ID of a reference "
+                                     "type.")
+            (Error INVALID_OBJECT    "refType is not a known ID.")
+            (Error INVALID_METHODID  "methodID is not the ID of a method.")
+            (Error NOT_IMPLEMENTED   "If the target virtual machine does "
+                                     "not support this query.")
+            (Error VM_DEAD)
+        )
+    )
+    (Command VariableTableWithGeneric=5
+        "Returns variable information for the method, including "
+        "generic signatures for the variables. The variable table "
+	"includes arguments and locals declared within the method. For "
+	"instance methods, the \"this\" reference is included in the "
+	"table. Also, synthetic variables may be present. "
+	"Generic signatures are described in the signature attribute "
+        "section in "
+        "<cite>The Java&trade; Virtual Machine Specification</cite>. "
+        "Since JDWP version 1.5."
+        (Out
+            (referenceType refType "The class.")
+            (method methodID "The method.")
+        )
+        (Reply
+            (int argCnt "The number of words in the frame used by arguments. "
+                        "Eight-byte arguments use two words; all others use one. ")
+            (Repeat slots "The number of variables."
+                (Group SlotInfo "Information about the variable."
+                    (long codeIndex
+		        "First code index at which the variable is visible (unsigned). "
+		        "Used in conjunction with <code>length</code>. "
+		        "The variable can be get or set only when the current "
+			"<code>codeIndex</code> <= current frame code index < <code>codeIndex + length</code> ")
+                    (string name "The variable's name.")
+                    (string signature "The variable type's JNI signature.")
+                    (string genericSignature "The variable type's generic "
+                         "signature or an empty string if there is none.")
+                    (int length 
+		        "Unsigned value used in conjunction with <code>codeIndex</code>. "
+		        "The variable can be get or set only when the current "
+			"<code>codeIndex</code> <= current frame code index < <code>code index + length</code> ")
+                    (int slot "The local variable's index in its frame")
+                )
+            )
+        )
+        (ErrorSet
+            (Error INVALID_CLASS     "refType is not the ID of a reference "
+                                     "type.")
+            (Error INVALID_OBJECT    "refType is not a known ID.")
+            (Error INVALID_METHODID  "methodID is not the ID of a method.")
+            (Error ABSENT_INFORMATION "there is no variable information for the method.")
+            (Error VM_DEAD)
+        )
+    )
+
+) 
+(CommandSet Field=8
+)
+(CommandSet ObjectReference=9
+    (Command ReferenceType=1
+        "Returns the runtime type of the object. "
+        "The runtime type will be a class or an array. "
+        (Out
+            (object object "The object ID")
+        )
+        (Reply
+	    (byte refTypeTag  "<a href=\"#JDWP_TypeTag\">Kind</a> "
+			      "of following reference type. ")
+            (referenceTypeID typeID "The runtime reference type.")
+        )
+        (ErrorSet
+            (Error INVALID_OBJECT)
+            (Error VM_DEAD)
+        )
+    )
+    (Command GetValues=2
+        "Returns the value of one or more instance fields. "
+	"Each field must be member of the object's type "
+	"or one of its superclasses, superinterfaces, or implemented interfaces. "
+	"Access control is not enforced; for example, the values of private "
+	"fields can be obtained."
+        (Out
+            (object object "The object ID")
+            (Repeat fields "The number of values to get"
+                (Group Field
+                    (field fieldID "Field to get.")
+                )
+            )
+        )
+        (Reply
+            (Repeat values "The number of values returned, always equal to 'fields', "
+	    		   "the number of values to get. Field values are ordered "
+			   "in the reply in the same order as corresponding fieldIDs "
+ 			   "in the command."
+                (value value "The field value")
+            )
+        )
+        (ErrorSet
+            (Error INVALID_OBJECT)
+            (Error INVALID_FIELDID)
+            (Error VM_DEAD)
+        )
+    )
+    (Command SetValues=3
+        "Sets the value of one or more instance fields. "
+	"Each field must be member of the object's type "
+	"or one of its superclasses, superinterfaces, or implemented interfaces. "
+	"Access control is not enforced; for example, the values of private "
+	"fields can be set. "
+	"For primitive values, the value's type must match the "
+	"field's type exactly. For object values, there must be a "
+	"widening reference conversion from the value's type to the 
+	"field's type and the field's type must be loaded. "
+        (Out
+            (object object "The object ID")
+            (Repeat values "The number of fields to set."
+                (Group FieldValue "A Field/Value pair."
+                    (field fieldID "Field to set.")
+                    (untagged-value value "Value to put in the field.")
+                )
+            )
+        )
+        (Reply "none"
+        )
+        (ErrorSet
+            (Error INVALID_OBJECT)
+            (Error INVALID_FIELDID)
+            (Error VM_DEAD)
+        ) 
+    )
+    (Command MonitorInfo=5
+        "Returns monitor information for an object. All threads int the VM must "
+	"be suspended."
+	"Requires canGetMonitorInfo capability - see "
+	"<a href=\"#JDWP_VirtualMachine_CapabilitiesNew\">CapabilitiesNew</a>."
+        (Out
+            (object object "The object ID")
+        )
+        (Reply
+            (threadObject owner "The monitor owner, or null if it is not currently owned.")
+            (int entryCount "The number of times the monitor has been entered.")
+            (Repeat waiters "The number of threads that are waiting for the monitor "
+	                    "0 if there is no current owner"
+                (threadObject thread "A thread waiting for this monitor.")
+            )
+        )
+        (ErrorSet
+            (Error INVALID_OBJECT)
+            (Error NOT_IMPLEMENTED)
+            (Error VM_DEAD)
+        )
+    )
+    (Command InvokeMethod=6
+        "Invokes a instance method. "
+	"The method must be member of the object's type "
+	"or one of its superclasses, superinterfaces, or implemented interfaces. "
+	"Access control is not enforced; for example, private "
+	"methods can be invoked."
+	"<p>"
+	"The method invocation will occur in the specified thread. "
+	"Method invocation can occur only if the specified thread "
+	"has been suspended by an event. "
+	"Method invocation is not supported "
+	"when the target VM has been suspended by the front-end. "
+	"<p>"
+	"The specified method is invoked with the arguments in the specified "
+	"argument list. "
+	"The method invocation is synchronous; the reply packet is not "
+	"sent until the invoked method returns in the target VM. "
+	"The return value (possibly the void value) is "
+	"included in the reply packet. "
+	"If the invoked method throws an exception, the "
+	"exception object ID is set in the reply packet; otherwise, the "
+	"exception object ID is null. "
+	"<p>"
+	"For primitive arguments, the argument value's type must match the "
+	"argument's type exactly. For object arguments, there must be a "
+	"widening reference conversion from the argument value's type to the "
+	"argument's type and the argument's type must be loaded. "
+	"<p>"
+        "By default, all threads in the target VM are resumed while "
+        "the method is being invoked if they were previously "
+        "suspended by an event or by command. "
+        "This is done to prevent the deadlocks "
+        "that will occur if any of the threads own monitors "
+        "that will be needed by the invoked method. It is possible that "
+        "breakpoints or other events might occur during the invocation. "
+        "Note, however, that this implicit resume acts exactly like "
+        "the ThreadReference resume command, so if the thread's suspend "
+        "count is greater than 1, it will remain in a suspended state "
+	"during the invocation. By default, when the invocation completes, "
+	"all threads in the target VM are suspended, regardless their state "
+	"before the invocation. "
+        "<p>"
+        "The resumption of other threads during the invoke can be prevented "
+        "by specifying the INVOKE_SINGLE_THREADED "
+        "bit flag in the <code>options</code> field; however, "
+        "there is no protection against or recovery from the deadlocks "
+        "described above, so this option should be used with great caution. "
+	"Only the specified thread will be resumed (as described for all "
+	"threads above). Upon completion of a single threaded invoke, the invoking thread "
+	"will be suspended once again. Note that any threads started during "
+	"the single threaded invocation will not be suspended when the "
+	"invocation completes. "
+        "<p>"
+        "If the target VM is disconnected during the invoke (for example, through "
+        "the VirtualMachine dispose command) the method invocation continues. "
+        (Out
+            (object object "The object ID")
+            (threadObject thread "The thread in which to invoke.")
+            (classType clazz "The class type.")
+            (method methodID "The method to invoke.")
+            (Repeat arguments "The number of arguments."
+                (value arg "The argument value.")
+            )
+            (int options "Invocation <a href=\"#JDWP_InvokeOptions\">options</a>")
+        )
+        (Reply
+            (value returnValue "The returned value, or null if an exception is thrown.")
+            (tagged-object exception "The thrown exception, if any.")
+        )
+        (ErrorSet
+            (Error INVALID_OBJECT)
+            (Error INVALID_CLASS     "clazz is not the ID of a reference "
+                                     "type.")
+            (Error INVALID_METHODID  "methodID is not the ID of a method.")
+            (Error INVALID_THREAD)
+            (Error THREAD_NOT_SUSPENDED)
+            (Error VM_DEAD)
+        )
+    )
+    (Command DisableCollection=7
+	"Prevents garbage collection for the given object. By "
+	"default all objects in back-end replies may be "
+	"collected at any time the target VM is running. A call to "
+	"this command guarantees that the object will not be "
+	"collected. The "
+	"<a href=\"#JDWP_ObjectReference_EnableCollection\">EnableCollection</a> "
+	"command can be used to "
+	"allow collection once again. "
+	"<p>"
+	"Note that while the target VM is suspended, no garbage "
+	"collection will occur because all threads are suspended. "
+	"The typical examination of variables, fields, and arrays "
+	"during the suspension is safe without explicitly disabling "
+	"garbage collection. "
+	"<p>"
+	"This method should be used sparingly, as it alters the "
+	"pattern of garbage collection in the target VM and, "
+	"consequently, may result in application behavior under the "
+	"debugger that differs from its non-debugged behavior. "
+	(Out 
+	    (object object "The object ID")
+	)
+	(Reply "none"
+        )
+        (ErrorSet
+            (Error INVALID_OBJECT)
+            (Error VM_DEAD)
+        )
+    )
+    (Command EnableCollection=8
+	"Permits garbage collection for this object. By default all "
+	"objects returned by JDWP may become unreachable in the target VM, "
+	"and hence may be garbage collected. A call to this command is "
+	"necessary only if garbage collection was previously disabled with "
+	"the <a href=\"#JDWP_ObjectReference_DisableCollection\">DisableCollection</a> "
+	"command."
+        (Out 
+            (object object "The object ID")
+        )
+        (Reply "none"
+        )
+        (ErrorSet
+            (Error VM_DEAD)
+        )
+    )
+    (Command IsCollected=9
+        "Determines whether an object has been garbage collected in the "
+	"target VM. "
+        (Out
+            (object object "The object ID")
+        )
+        (Reply
+            (boolean isCollected "true if the object has been collected; false otherwise")
+        )
+        (ErrorSet
+            (Error INVALID_OBJECT)
+            (Error VM_DEAD)
+        )
+    )
+    (Command ReferringObjects=10
+        "Returns objects that directly reference this object.  "
+        "Only objects that are reachable for the purposes "
+        "of garbage collection are returned. "
+        "Note that an object can also be referenced in other ways, "
+        "such as from a local variable in a stack frame, or from a JNI global "
+        "reference.  Such non-object referrers are not returned by this command. "
+        "<p>Since JDWP version 1.6. Requires canGetInstanceInfo capability - see "
+	"<a href=\"#JDWP_VirtualMachine_CapabilitiesNew\">CapabilitiesNew</a>."
+        (Out
+            (object object "The object ID")
+            (int maxReferrers "Maximum number of referring objects to return. "
+                              "Must be non-negative. If zero, all referring "
+                              "objects are returned.")
+        )       
+        (Reply
+            (Repeat referringObjects "The number of objects that follow."
+                (tagged-object instance "An object that references this object.")
+             )
+        )
+        (ErrorSet
+            (Error INVALID_OBJECT    "object is not a known ID.")
+            (Error ILLEGAL_ARGUMENT  "maxReferrers is less than zero.")
+            (Error NOT_IMPLEMENTED)
+            (Error VM_DEAD)
+        )
+    )
+)
+
+(CommandSet StringReference=10
+    (Command Value=1
+        "Returns the characters contained in the string. "
+        (Out
+            (object stringObject "The String object ID. ")
+        )
+        (Reply
+            (string stringValue "UTF-8 representation of the string value.")
+       )
+        (ErrorSet
+            (Error INVALID_STRING)
+            (Error INVALID_OBJECT)
+            (Error VM_DEAD)
+        )
+    )
+)
+(CommandSet ThreadReference=11
+    (Command Name=1
+        "Returns the thread name. "
+        (Out
+            (threadObject thread "The thread object ID. ")
+        )
+        (Reply
+            (string threadName "The thread name.")
+        )
+        (ErrorSet
+            (Error INVALID_THREAD)
+            (Error INVALID_OBJECT    "thread is not a known ID.")
+            (Error VM_DEAD)
+        )
+    )
+    (Command Suspend=2
+        "Suspends the thread. "
+	"<p>"
+	"Unlike java.lang.Thread.suspend(), suspends of both "
+	"the virtual machine and individual threads are counted. Before "
+	"a thread will run again, it must be resumed the same number "
+	"of times it has been suspended. "
+	"<p>"
+	"Suspending single threads with command has the same "
+	"dangers java.lang.Thread.suspend(). If the suspended "
+	"thread holds a monitor needed by another running thread, "
+	"deadlock is possible in the target VM (at least until the "
+	"suspended thread is resumed again). "
+	"<p>"
+	"The suspended thread is guaranteed to remain suspended until "
+	"resumed through one of the JDI resume methods mentioned above; "
+	"the application in the target VM cannot resume the suspended thread "
+	"through {@link java.lang.Thread#resume}. "
+	"<p>"
+	"Note that this doesn't change the status of the thread (see the "
+	"<a href=\"#JDWP_ThreadReference_Status\">ThreadStatus</a> command.) "
+	"For example, if it was "
+	"Running, it will still appear running to other threads. "
+	(Out
+	    (threadObject thread "The thread object ID. ")
+	)
+	(Reply "none"
+	)
+        (ErrorSet
+            (Error INVALID_THREAD)
+            (Error INVALID_OBJECT    "thread is not a known ID.")
+            (Error VM_DEAD)
+        )
+    )
+    (Command Resume=3
+	"Resumes the execution of a given thread. If this thread was "
+	"not previously suspended by the front-end, "
+	"calling this command has no effect. "
+	"Otherwise, the count of pending suspends on this thread is "
+	"decremented. If it is decremented to 0, the thread will "
+	"continue to execute. "
+        (Out
+            (threadObject thread "The thread object ID. ")
+        )
+        (Reply "none"
+        )
+        (ErrorSet
+            (Error INVALID_THREAD)
+            (Error INVALID_OBJECT    "thread is not a known ID.")
+            (Error VM_DEAD)
+        )
+    )
+    (Command Status=4
+        "Returns the current status of a thread. The thread status "
+	"reply indicates the thread status the last time it was running. "
+	"the suspend status provides information on the thread's "
+	"suspension, if any."
+        (Out
+            (threadObject thread "The thread object ID. ")
+        )
+        (Reply 
+            (int threadStatus "One of the thread status codes "
+                    "See <a href=\"#JDWP_ThreadStatus\">JDWP.ThreadStatus</a>")
+            (int suspendStatus "One of the suspend status codes "
+                    "See <a href=\"#JDWP_SuspendStatus\">JDWP.SuspendStatus</a>")
+        )
+        (ErrorSet
+            (Error INVALID_THREAD)
+            (Error INVALID_OBJECT    "thread is not a known ID.")
+            (Error VM_DEAD)
+        )
+    )
+    (Command ThreadGroup=5
+        "Returns the thread group that contains a given thread. "
+        (Out
+            (threadObject thread "The thread object ID. ")
+        )
+        (Reply
+            (threadGroupObject group "The thread group of this thread. ")
+        )
+        (ErrorSet
+            (Error INVALID_THREAD)
+            (Error INVALID_OBJECT    "thread is not a known ID.")
+            (Error VM_DEAD)
+        )
+    )
+    (Command Frames=6
+        "Returns the current call stack of a suspended thread. "
+        "The sequence of frames starts with "
+        "the currently executing frame, followed by its caller, "
+        "and so on. The thread must be suspended, and the returned "
+	"frameID is valid only while the thread is suspended. "
+        (Out
+            (threadObject thread "The thread object ID. ")
+            (int startFrame "The index of the first frame to retrieve.")
+            (int length 
+                        "The count of frames to retrieve "
+                        "(-1 means all remaining). ")
+        )
+        (Reply
+            (Repeat frames "The number of frames retreived"
+                (Group Frame
+                    (frame frameID "The ID of this frame. ")
+                    (location location "The current location of this frame")
+                )
+            )
+        )
+        (ErrorSet
+            (Error INVALID_THREAD)
+            (Error INVALID_OBJECT    "thread is not a known ID.")
+            (Error VM_DEAD)
+        )
+    )
+    (Command FrameCount=7
+        "Returns the count of frames on this thread's stack. "
+	"The thread must be suspended, and the returned "	   	
+	"count is valid only while the thread is suspended. "	
+        "Returns JDWP.Error.errorThreadNotSuspended if not suspended. "
+        (Out
+            (threadObject thread "The thread object ID. ")
+        )
+        (Reply
+            (int frameCount "The count of frames on this thread's stack. ")
+        )
+        (ErrorSet
+            (Error INVALID_THREAD)
+            (Error INVALID_OBJECT    "thread is not a known ID.")
+            (Error VM_DEAD)
+        )
+    )
+    (Command OwnedMonitors=8
+        "Returns the objects whose monitors have been entered by this thread. "
+	"The thread must be suspended, and the returned information is "
+	"relevant only while the thread is suspended. "
+	"Requires canGetOwnedMonitorInfo capability - see "
+	"<a href=\"#JDWP_VirtualMachine_CapabilitiesNew\">CapabilitiesNew</a>."
+        (Out
+            (threadObject thread "The thread object ID. ")
+        )
+        (Reply
+            (Repeat owned "The number of owned monitors"
+                (tagged-object monitor "An owned monitor")
+            )
+        )
+        (ErrorSet
+            (Error INVALID_THREAD)
+            (Error INVALID_OBJECT    "thread is not a known ID.")
+            (Error NOT_IMPLEMENTED)
+            (Error VM_DEAD)
+        )
+    )
+    (Command CurrentContendedMonitor=9
+        "Returns the object, if any, for which this thread is waiting. The "
+	"thread may be waiting to enter a monitor, or it may be waiting, via "
+	"the java.lang.Object.wait method, for another thread to invoke the "
+	"notify method. "
+	"The thread must be suspended, and the returned information is "
+	"relevant only while the thread is suspended. "
+	"Requires canGetCurrentContendedMonitor capability - see "
+	"<a href=\"#JDWP_VirtualMachine_CapabilitiesNew\">CapabilitiesNew</a>."
+        (Out
+            (threadObject thread "The thread object ID. ")
+        )
+        (Reply
+            (tagged-object monitor "The contended monitor, or null if "
+	                           "there is no current contended monitor. ")
+        )
+        (ErrorSet
+            (Error INVALID_THREAD)
+            (Error INVALID_OBJECT    "thread is not a known ID.")
+            (Error NOT_IMPLEMENTED)
+            (Error VM_DEAD)
+        )
+    )
+    (Command Stop=10
+        "Stops the thread with an asynchronous exception, as if done by "
+	"java.lang.Thread.stop "
+        (Out
+            (threadObject thread "The thread object ID. ")
+            (object throwable "Asynchronous exception. This object must "
+	                      "be an instance of java.lang.Throwable or a subclass")
+        )
+        (Reply "none"
+        )
+        (ErrorSet
+            (Error INVALID_THREAD)
+            (Error INVALID_OBJECT "If thread is not a known ID or the asynchronous "
+                                  "exception has been garbage collected.")
+            (Error VM_DEAD)
+        )
+    )
+    (Command Interrupt=11
+        "Interrupt the thread, as if done by java.lang.Thread.interrupt "
+        (Out
+            (threadObject thread "The thread object ID. ")
+        )
+        (Reply "none"
+        )
+        (ErrorSet
+            (Error INVALID_THREAD)
+            (Error INVALID_OBJECT    "thread is not a known ID.")
+            (Error VM_DEAD)
+        )
+    )
+    (Command SuspendCount=12
+        "Get the suspend count for this thread. The suspend count is the  "
+	"number of times the thread has been suspended through the "
+	"thread-level or VM-level suspend commands without a corresponding resume "
+        (Out
+            (threadObject thread "The thread object ID. ")
+        )
+        (Reply 
+            (int suspendCount "The number of outstanding suspends of this thread. ")
+        )
+        (ErrorSet
+            (Error INVALID_THREAD)
+            (Error INVALID_OBJECT    "thread is not a known ID.")
+            (Error VM_DEAD)
+        )
+    )
+    (Command OwnedMonitorsStackDepthInfo=13
+        "Returns monitor objects owned by the thread, along with stack depth at which "
+        "the monitor was acquired. Returns stack depth of -1  if "
+        "the implementation cannot determine the stack depth "
+        "(e.g., for monitors acquired by JNI MonitorEnter)."
+	"The thread must be suspended, and the returned information is "
+	"relevant only while the thread is suspended. "
+	"Requires canGetMonitorFrameInfo capability - see "
+	"<a href=\"#JDWP_VirtualMachine_CapabilitiesNew\">CapabilitiesNew</a>. "
+	"<p>Since JDWP version 1.6. "
+
+        (Out
+            (threadObject thread "The thread object ID. ")
+        )
+        (Reply
+            (Repeat owned "The number of owned monitors"
+	       (Group monitor
+                  (tagged-object monitor "An owned monitor")
+		  (int stack_depth "Stack depth location where monitor was acquired")
+               )
+            )
+        )
+        (ErrorSet
+            (Error INVALID_THREAD)
+            (Error INVALID_OBJECT    "thread is not a known ID.")
+            (Error NOT_IMPLEMENTED)
+            (Error VM_DEAD)
+        )
+    )
+    (Command ForceEarlyReturn=14
+        "Force a method to return before it reaches a return "
+        "statement.  "
+	"<p>"
+        "The method which will return early is referred to as the "
+        "called method. The called method is the current method (as "
+        "defined by the Frames section in "
+        "<cite>The Java&trade; Virtual Machine Specification</cite>) "
+        "for the specified thread at the time this command "
+        "is received. "
+	"<p>"
+        "The specified thread must be suspended. "
+        "The return occurs when execution of Java programming "
+        "language code is resumed on this thread. Between sending this "
+        "command and resumption of thread execution, the "
+        "state of the stack is undefined. "
+	"<p>"
+        "No further instructions are executed in the called "
+        "method. Specifically, finally blocks are not executed. Note: "
+        "this can cause inconsistent states in the application. "
+	"<p>"
+        "A lock acquired by calling the called method (if it is a "
+        "synchronized method) and locks acquired by entering "
+        "synchronized blocks within the called method are "
+        "released. Note: this does not apply to JNI locks or "
+        "java.util.concurrent.locks locks. "
+	"<p>"
+        "Events, such as MethodExit, are generated as they would be in "
+        "a normal return. "
+	"<p>"
+        "The called method must be a non-native Java programming "
+        "language method. Forcing return on a thread with only one "
+        "frame on the stack causes the thread to exit when resumed. "
+	"<p>"
+        "For void methods, the value must be a void value. " 
+        "For methods that return primitive values, the value's type must "
+        "match the return type exactly.  For object values, there must be a "
+	"widening reference conversion from the value's type to the "
+	"return type type and the return type must be loaded. "
+        "<p>"
+        "Since JDWP version 1.6. Requires canForceEarlyReturn capability - see "
+	"<a href=\"#JDWP_VirtualMachine_CapabilitiesNew\">CapabilitiesNew</a>."
+        (Out
+            (threadObject thread "The thread object ID. ")
+            (value value "The value to return. ")
+        )
+        (Reply "none"
+        )
+        (ErrorSet
+            (Error INVALID_THREAD)
+            (Error INVALID_OBJECT    "Thread or value is not a known ID.")
+            (Error THREAD_NOT_SUSPENDED)
+            (Error THREAD_NOT_ALIVE)
+            (Error OPAQUE_FRAME      "Attempted to return early from "
+                                     "a frame corresponding to a native "
+                                     "method. Or the implementation is "
+                                     "unable to provide this functionality "
+                                     "on this frame.")
+            (Error NO_MORE_FRAMES)
+            (Error NOT_IMPLEMENTED)
+            (Error TYPE_MISMATCH   "Value is not an appropriate type for the "
+                                   "return value of the method.")
+            (Error VM_DEAD)
+        )
+    )
+
+)
+(CommandSet ThreadGroupReference=12
+    (Command Name=1
+        "Returns the thread group name. "
+        (Out
+            (threadGroupObject group "The thread group object ID. ")
+        )
+        (Reply
+            (string groupName "The thread group's name.")
+        )
+        (ErrorSet
+            (Error INVALID_THREAD_GROUP)
+            (Error INVALID_OBJECT    "group is not a known ID.")
+            (Error VM_DEAD)
+        )
+    )
+    (Command Parent=2
+        "Returns the thread group, if any, which contains a given thread group. "
+        (Out
+            (threadGroupObject group "The thread group object ID. ")
+        )
+        (Reply
+            (threadGroupObject parentGroup "The parent thread group object, or "
+	                                   "null if the given thread group "
+					   "is a top-level thread group")
+        )
+        (ErrorSet
+            (Error INVALID_THREAD_GROUP)
+            (Error INVALID_OBJECT    "group is not a known ID.")
+            (Error VM_DEAD)
+        )
+    )
+    (Command Children=3
+        "Returns the live threads and active thread groups directly contained "
+        "in this thread group. Threads and thread groups in child "
+	"thread groups are not included. "
+        "A thread is alive if it has been started and has not yet been stopped. "
+        "See <a href=../../../api/java/lang/ThreadGroup.html>java.lang.ThreadGroup </a>
+        "for information about active ThreadGroups.
+        (Out
+            (threadGroupObject group "The thread group object ID. ")
+        )
+        (Reply
+            (Repeat childThreads "The number of live child threads. "
+                (threadObject childThread "A direct child thread ID. ")
+            )
+            (Repeat childGroups "The number of active child thread groups. "
+                (threadGroupObject childGroup "A direct child thread group ID. ")
+            )
+        )
+        (ErrorSet
+            (Error INVALID_THREAD_GROUP)
+            (Error INVALID_OBJECT    "group is not a known ID.")
+            (Error VM_DEAD)
+        )
+    )
+)
+(CommandSet ArrayReference=13
+    (Command Length=1
+        "Returns the number of components in a given array. "
+        (Out
+            (arrayObject arrayObject "The array object ID. ")
+        )
+        (Reply
+            (int arrayLength "The length of the array.")
+        )
+        (ErrorSet
+            (Error INVALID_OBJECT    "arrayObject is not a known ID.")
+            (Error INVALID_ARRAY)
+            (Error VM_DEAD)
+        )
+    )
+    (Command GetValues=2
+        "Returns a range of array components. The specified range must "
+	"be within the bounds of the array. "
+        (Out
+            (arrayObject arrayObject "The array object ID. ")
+            (int firstIndex "The first index to retrieve.")
+            (int length "The number of components to retrieve.")
+        )
+        (Reply
+            (typed-sequence values "The retrieved values. If the values "
+	                           "are objects, they are tagged-values; "
+				   "otherwise, they are untagged-values")
+        )
+        (ErrorSet
+            (Error INVALID_LENGTH "If index is beyond the end of this array.")
+            (Error INVALID_OBJECT    "arrayObject is not a known ID.")
+            (Error INVALID_ARRAY)
+            (Error VM_DEAD)
+        )
+    )
+    (Command SetValues=3
+        "Sets a range of array components. The specified range must "
+	"be within the bounds of the array. "
+	"For primitive values, each value's type must match the "
+	"array component type exactly. For object values, there must be a "
+	"widening reference conversion from the value's type to the 
+	"array component type and the array component type must be loaded. "
+        (Out
+            (arrayObject arrayObject "The array object ID. ")
+            (int firstIndex "The first index to set.")
+            (Repeat values "The number of values to set. "
+                (untagged-value value "A value to set. ")
+            )
+        )
+        (Reply "none"
+        )
+        (ErrorSet
+            (Error INVALID_LENGTH "If index is beyond the end of this array.")
+            (Error INVALID_OBJECT    "arrayObject is not a known ID.")
+            (Error INVALID_ARRAY)
+            (Error VM_DEAD)
+        )
+    )
+)
+(CommandSet ClassLoaderReference=14
+    (Command VisibleClasses=1
+	"Returns a list of all classes which this class loader has "
+	"been requested to load. This class loader is considered to be "
+	"an <i>initiating</i> class loader for each class in the returned "
+	"list. The list contains each "
+	"reference type defined by this loader and any types for which "
+	"loading was delegated by this class loader to another class loader. "
+	"<p>"
+	"The visible class list has useful properties with respect to "
+	"the type namespace. A particular type name will occur at most "
+	"once in the list. Each field or variable declared with that "
+	"type name in a class defined by "
+	"this class loader must be resolved to that single type. "
+	"<p>"
+	"No ordering of the returned list is guaranteed. "
+        (Out
+            (classLoaderObject classLoaderObject "The class loader object ID. ")
+        )
+        (Reply
+            (Repeat classes "The number of visible classes. "
+                (Group ClassInfo
+                    (byte refTypeTag  "<a href=\"#JDWP_TypeTag\">Kind</a> "
+		                      "of following reference type. ")
+                    (referenceTypeID typeID  
+                        "A class visible to this class loader.")
+                )
+            )
+        )
+        (ErrorSet
+            (Error INVALID_OBJECT)
+            (Error INVALID_CLASS_LOADER)
+            (Error VM_DEAD)
+        )
+    )
+)
+(CommandSet EventRequest=15
+    (Command Set=1
+        "Set an event request. When the event described by this request "
+	"occurs, an <a href=\"#JDWP_Event\">event</a> is sent from the "
+	"target VM. If an event occurs that has not been requested then it is not sent "
+	"from the target VM. The two exceptions to this are the VM Start Event and "
+	"the VM Death Event which are automatically generated events - see "
+	"<a href=\"#JDWP_Event_Composite\">Composite Command</a> for further details."	
+        (Out
+            (byte eventKind "Event kind to request. "
+                      "See <a href=\"#JDWP_EventKind\">JDWP.EventKind</a> "
+		      "for a complete list of events that can be requested; "
+                      "some events may require a capability in order to be requested. "
+		      )
+            (byte suspendPolicy 
+                      "What threads are suspended when this event occurs? "
+                      "Note that the order of events and command replies "
+		      "accurately reflects the order in which threads are "
+		      "suspended and resumed. For example, if a "
+		      "<a href=\"#JDWP_VirtualMachine_Resume\">VM-wide resume</a> "
+		      "is processed before an event occurs which suspends the "
+		      "VM, the reply to the resume command will be written to "
+		      "the transport before the suspending event.")
+            (Repeat modifiers "Constraints used to control the number "
+	                      "of generated events."
+                              "Modifiers specify additional tests that "
+			      "an event must satisfy before it is placed "
+			      "in the event queue. Events are filtered by "
+                              "applying each modifier to an event in the "
+			      "order they are specified in this collection "
+			      "Only events that satisfy all modifiers "
+			      "are reported. A value of 0 means there are no "
+			      "modifiers in the request."
+			      "<p>"
+                              "Filtering can improve "
+                              "debugger performance dramatically by 
+			      "reducing the "
+                              "amount of event traffic sent from the "
+			      "target VM to the debugger VM. "
+                (Select Modifier
+                    (byte modKind "Modifier kind")
+                    (Alt Count=1 
+			"Limit the requested event to be reported at most once after a "
+			"given number of occurrences.  The event is not reported "
+			"the first <code>count - 1</code> times this filter is reached. "
+			"To request a one-off event, call this method with a count of 1. "
+			"<p>"
+			"Once the count reaches 0, any subsequent filters in this request "
+			"are applied. If none of those filters cause the event to be "
+			"suppressed, the event is reported. Otherwise, the event is not "
+			"reported. In either case subsequent events are never reported for "
+			"this request. "
+			"This modifier can be used with any event kind."
+			
+			(int count "Count before event. One for one-off.")
+                    )
+                    (Alt Conditional=2 "Conditional on expression"
+                        (int exprID "For the future")
+                    )
+                    (Alt ThreadOnly=3 
+		        "Restricts reported events to "
+			"those in the given thread. "
+			"This modifier can be used with any event kind "
+			"except for class unload. "
+			
+                        (threadObject thread "Required thread")
+                    )
+                    (Alt ClassOnly=4 
+			"For class prepare events, restricts the events "
+			"generated by this request to be the "
+			"preparation of the given reference type and any subtypes. "
+			"For monitor wait and waited events, restricts the events "
+        		"generated by this request to those whose monitor object "
+        		"is of the given reference type or any of its subtypes. "
+			"For other events, restricts the events generated "
+			"by this request to those "
+			"whose location is in the given reference type or any of its subtypes. "
+			"An event will be generated for any location in a reference type that can "
+			"be safely cast to the given reference type. "
+			"This modifier can be used with any event kind except "
+			"class unload, thread start, and thread end. "
+     
+                        (referenceType clazz "Required class")
+                    )
+                    (Alt ClassMatch=5 
+			"Restricts reported events to those for classes whose name "
+			"matches the given restricted regular expression. "
+			"For class prepare events, the prepared class name "
+			"is matched. For class unload events, the "
+			"unloaded class name is matched. For monitor wait "
+			"and waited events, the name of the class of the "
+			"monitor object is matched. For other events, "
+			"the class name of the event's location is matched. "
+			"This modifier can be used with any event kind except "
+			"thread start and thread end. "
+			
+                        (string classPattern "Required class pattern. "
+				"Matches are limited to exact matches of the "
+				"given class pattern and matches of patterns that "
+				"begin or end with '*'; for example, "
+				"\"*.Foo\" or \"java.*\". "
+			)
+			
+                    )
+                    (Alt ClassExclude=6 
+			"Restricts reported events to those for classes whose name "
+			"does not match the given restricted regular expression. "
+			"For class prepare events, the prepared class name "
+			"is matched. For class unload events, the "
+			"unloaded class name is matched. For monitor wait and "
+			"waited events, the name of the class of the monitor "
+			"object is matched. For other events, "
+			"the class name of the event's location is matched. "
+			"This modifier can be used with any event kind except "
+			"thread start and thread end. "
+			
+                        (string classPattern "Disallowed class pattern. "
+				"Matches are limited to exact matches of the "
+				"given class pattern and matches of patterns that "
+				"begin or end with '*'; for example, "
+				"\"*.Foo\" or \"java.*\". "
+			)
+                    )
+                    (Alt LocationOnly=7 
+		        "Restricts reported events to those that occur at "
+			"the given location. "
+			"This modifier can be used with "
+			"breakpoint, field access, field modification, "
+			"step, and exception event kinds. "
+			
+                        (location loc "Required location")
+                    )
+                    (Alt ExceptionOnly=8 
+		        "Restricts reported exceptions by their class and "
+			"whether they are caught or uncaught. "
+			"This modifier can be used with "
+			"exception event kinds only. "
+			
+                        (referenceType exceptionOrNull 
+                                "Exception to report. Null (0) means report "
+				"exceptions of all types. "
+				"A non-null type restricts the reported exception "
+				"events to exceptions of the given type or "
+				"any of its subtypes. "
+			)
+                        (boolean caught "Report caught exceptions")
+                        (boolean uncaught "Report uncaught exceptions. "
+				"Note that it "
+				"is not always possible to determine whether an "
+				"exception is caught or uncaught at the time it is "
+				"thrown. See the exception event catch location under "
+				"<a href=\"#JDWP_Event_Composite\">composite events</a> "
+				"for more information. "
+			)
+			
+                    )
+                    (Alt FieldOnly=9 
+			"Restricts reported events to those that occur for "
+			"a given field. "
+			"This modifier can be used with "
+			"field access and field modification event kinds only. "
+			
+                        (referenceType declaring "Type in which field is declared.")
+                        (field fieldID "Required field")
+                    )
+                    (Alt Step=10 
+		        "Restricts reported step events "
+			"to those which satisfy "
+			"depth and size constraints. "
+			"This modifier can be used with "
+			"step event kinds only. "
+			
+                        (threadObject thread "Thread in which to step")
+                        (int size "size of each step. "
+                           "See <a href=\"#JDWP_StepSize\">JDWP.StepSize</a>")
+                        (int depth "relative call stack limit. "
+                           "See <a href=\"#JDWP_StepDepth\">JDWP.StepDepth</a>")
+                    )
+                    (Alt InstanceOnly=11
+			"Restricts reported events to those whose "
+			"active 'this' object is the given object. "
+			"Match value is the null object for static methods. "
+			"This modifier can be used with any event kind "
+			"except class prepare, class unload, thread start, "
+			"and thread end. Introduced in JDWP version 1.4."
+     
+                        (object instance "Required 'this' object")
+                    )
+                    (Alt SourceNameMatch=12
+			"Restricts reported class prepare events to those "
+			"for reference types which have a source name "
+                        "which matches the given restricted regular expression. "
+                        "The source names are determined by the reference type's "
+                        "<a href=\"#JDWP_ReferenceType_SourceDebugExtension\"> "
+                        "SourceDebugExtension</a>. "
+			"This modifier can only be used with class prepare "
+                        "events. "
+                        "Since JDWP version 1.6. Requires the canUseSourceNameFilters "
+                        "capability - see "
+                        "<a href=\"#JDWP_VirtualMachine_CapabilitiesNew\">CapabilitiesNew</a>."
+
+                        (string sourceNamePattern "Required source name pattern. "
+				"Matches are limited to exact matches of the "
+				"given pattern and matches of patterns that "
+				"begin or end with '*'; for example, "
+				"\"*.Foo\" or \"java.*\". "
+                        )
+                    )
+
+                )
+            ) 
+        )
+        (Reply
+            (int requestID "ID of created request")
+        )
+        (ErrorSet
+            (Error INVALID_THREAD)
+            (Error INVALID_CLASS)
+            (Error INVALID_STRING)
+            (Error INVALID_OBJECT)
+            (Error INVALID_COUNT)
+            (Error INVALID_FIELDID)
+            (Error INVALID_METHODID)
+            (Error INVALID_LOCATION)
+            (Error INVALID_EVENT_TYPE)
+            (Error NOT_IMPLEMENTED)
+            (Error VM_DEAD)
+        )
+    )
+    (Command Clear=2
+        "Clear an event request. See <a href=\"#JDWP_EventKind\">JDWP.EventKind</a> "
+        "for a complete list of events that can be cleared. Only the event request matching " 
+	"the specified event kind and requestID is cleared. If there isn't a matching event "
+	"request the command is a no-op and does not result in an error. Automatically "
+	"generated events do not have a corresponding event request and may not be cleared "
+	"using this command."
+        (Out
+            (byte eventKind "Event kind to clear")
+            (int requestID "ID of request to clear")
+        )
+        (Reply "none"
+        )
+        (ErrorSet
+            (Error VM_DEAD)
+	    (Error INVALID_EVENT_TYPE)
+        )
+    )
+    (Command ClearAllBreakpoints=3
+        "Removes all set breakpoints, a no-op if there are no breakpoints set."
+        (Out "none"
+        )
+        (Reply "none"
+        )
+        (ErrorSet
+            (Error VM_DEAD)
+        )
+    )
+)
+(CommandSet StackFrame=16
+    (Command GetValues=1
+        "Returns the value of one or more local variables in a "
+	"given frame. Each variable must be visible at the frame's code index. "
+	"Even if local variable information is not available, values can "
+	"be retrieved if the front-end is able to "
+	"determine the correct local variable index. (Typically, this "
+	"index can be determined for method arguments from the method "
+	"signature without access to the local variable table information.) "
+        (Out
+            (threadObject thread "The frame's thread. ")
+            (frame frame "The frame ID. ")
+            (Repeat slots "The number of values to get. "
+                (Group SlotInfo 
+                    (int slot "The local variable's index in the frame. ")
+                    (byte sigbyte "A <a href=\"#JDWP_Tag\">tag</a> "
+		                  "identifying the type of the variable ")
+                )
+            )   
+        )
+        (Reply
+            (Repeat values "The number of values retrieved, always equal to slots, "
+	    		   "the number of values to get."	    
+                (value slotValue "The value of the local variable. ")
+            )
+        )
+        (ErrorSet
+            (Error INVALID_THREAD)
+            (Error INVALID_OBJECT)
+            (Error INVALID_FRAMEID)
+	    (Error INVALID_SLOT)
+            (Error VM_DEAD)
+        )
+    )
+    (Command SetValues=2
+        "Sets the value of one or more local variables. "
+	"Each variable must be visible at the current frame code index. "
+	"For primitive values, the value's type must match the "
+	"variable's type exactly. For object values, there must be a "
+	"widening reference conversion from the value's type to the 
+	"variable's type and the variable's type must be loaded. "
+	"<p>"
+	"Even if local variable information is not available, values can "
+	"be set, if the front-end is able to "
+	"determine the correct local variable index. (Typically, this 
+	"index can be determined for method arguments from the method "
+	"signature without access to the local variable table information.) "
+        (Out
+            (threadObject thread "The frame's thread. ")
+            (frame frame "The frame ID. ")
+            (Repeat slotValues "The number of values to set. "
+                (Group SlotInfo 
+                    (int slot "The slot ID. ")
+                    (value slotValue "The value to set. ")
+                )
+            )   
+        )
+        (Reply "none"
+        )
+        (ErrorSet
+            (Error INVALID_THREAD)
+            (Error INVALID_OBJECT)
+            (Error INVALID_FRAMEID)
+            (Error VM_DEAD)
+        )
+    )
+    (Command ThisObject=3
+        "Returns the value of the 'this' reference for this frame. "
+        "If the frame's method is static or native, the reply "
+        "will contain the null object reference. "
+        (Out
+            (threadObject thread "The frame's thread. ")
+            (frame frame "The frame ID. ")
+        )
+        (Reply
+            (tagged-object objectThis "The 'this' object for this frame. ")
+        )
+        (ErrorSet
+            (Error INVALID_THREAD)
+            (Error INVALID_OBJECT)
+            (Error INVALID_FRAMEID)
+            (Error VM_DEAD)
+        )
+    )
+    (Command PopFrames=4	
+	"Pop the top-most stack frames of the thread stack, up to, and including 'frame'. "
+	"The thread must be suspended to perform this command. "
+	"The top-most stack frames are discarded and the stack frame previous to 'frame' "
+	"becomes the current frame. The operand stack is restored -- the argument values "
+	"are added back and if the invoke was not <code>invokestatic</code>, "
+	"<code>objectref</code> is added back as well. The Java virtual machine "
+	"program counter is restored to the opcode of the invoke instruction."	
+	"<p>"
+        "Since JDWP version 1.4. Requires canPopFrames capability - see "
+	"<a href=\"#JDWP_VirtualMachine_CapabilitiesNew\">CapabilitiesNew</a>."
+        (Out
+            (threadObject thread "The thread object ID. ")
+            (frame frame "The frame ID. ")
+        )
+        (Reply "none"
+        )
+        (ErrorSet
+            (Error INVALID_THREAD)
+            (Error INVALID_OBJECT    "thread is not a known ID.")
+            (Error INVALID_FRAMEID)
+            (Error THREAD_NOT_SUSPENDED)
+            (Error NO_MORE_FRAMES)
+            (Error INVALID_FRAMEID)
+            (Error NOT_IMPLEMENTED)
+            (Error VM_DEAD)
+        )
+    )
+)
+(CommandSet ClassObjectReference=17
+    (Command ReflectedType = 1
+        "Returns the reference type reflected by this class object."
+        (Out
+            (classObject classObject "The class object. ")
+        )
+        (Reply
+	    (byte refTypeTag  "<a href=\"#JDWP_TypeTag\">Kind</a> "
+			      "of following reference type. ")
+	    (referenceTypeID typeID "reflected reference type")
+        )
+        (ErrorSet
+            (Error INVALID_OBJECT)
+            (Error VM_DEAD)
+        )
+    )
+)
+(CommandSet Event=64
+    (Command Composite=100
+	"Several events may occur at a given time in the target VM. "
+	"For example, there may be more than one breakpoint request "
+	"for a given location "
+	"or you might single step to the same location as a "
+	"breakpoint request.  These events are delivered "
+	"together as a composite event.  For uniformity, a " 
+	"composite event is always used "
+	"to deliver events, even if there is only one event to report. "
+	"<P>"
+	"The events that are grouped in a composite event are restricted in the "
+	"following ways: "
+	"<P>"
+	"<UL>"
+	"<LI>Only with other thread start events for the same thread:"
+	"    <UL>"
+	"    <LI>Thread Start Event"
+	"    </UL>"
+	"<LI>Only with other thread death events for the same thread:"
+	"    <UL>"
+	"    <LI>Thread Death Event"
+	"    </UL>"
+	"<LI>Only with other class prepare events for the same class:"
+	"    <UL>"
+	"    <LI>Class Prepare Event"
+	"    </UL>"
+	"<LI>Only with other class unload events for the same class:"
+	"    <UL>"
+	"    <LI>Class Unload Event"
+	"    </UL>"
+	"<LI>Only with other access watchpoint events for the same field access:"
+	"    <UL>"
+	"    <LI>Access Watchpoint Event"
+	"    </UL>"
+	"<LI>Only with other modification watchpoint events for the same field "
+	"modification:"
+	"    <UL>"
+	"    <LI>Modification Watchpoint Event"
+	"    </UL>"
+	"<LI>Only with other Monitor contended enter events for the same monitor object: "
+	"    <UL>"
+	"    <LI>Monitor Contended Enter Event"
+	"    </UL>"
+	"<LI>Only with other Monitor contended entered events for the same monitor object: "
+	"    <UL>"
+	"    <LI>Monitor Contended Entered Event"
+	"    </UL>"
+	"<LI>Only with other Monitor wait events for the same monitor object: "
+	"    <UL>"
+	"    <LI>Monitor Wait Event"
+	"    </UL>"
+	"<LI>Only with other Monitor waited events for the same monitor object: "
+	"    <UL>"
+	"    <LI>Monitor Waited Event"
+	"    </UL>"
+	"<LI>Only with other ExceptionEvents for the same exception occurrance:"
+	"    <UL>"
+	"    <LI>ExceptionEvent"
+	"    </UL>"
+	"<LI>Only with other members of this group, at the same location "
+	"and in the same thread: "
+	"    <UL>"
+	"    <LI>Breakpoint Event"
+	"    <LI>Step Event"
+	"    <LI>Method Entry Event"
+	"    <LI>Method Exit Event"
+	"    </UL>"
+	"</UL>"
+	"<P>"
+	"The VM Start Event and VM Death Event are automatically generated events. "
+	"This means they do not need to be requested using the "
+	"<a href=\"#JDWP_EventRequest_Set\">EventRequest.Set</a> command. "
+	"The VM Start event signals the completion of VM initialization. The VM Death "
+	"event signals the termination of the VM." 	
+	"If there is a debugger connected at the time when an automatically generated "
+	"event occurs it is sent from the target VM. Automatically generated events may "
+	"also be requested using the EventRequest.Set command and thus multiple events "
+	"of the same event kind will be sent from the target VM when an event occurs."
+	"Automatically generated events are sent with the requestID field "
+	"in the Event Data set to 0. The value of the suspendPolicy field in the "
+	"Event Data depends on the event. For the automatically generated VM Start "
+	"Event the value of suspendPolicy is not defined and is therefore implementation "
+	"or configuration specific. In the Sun implementation, for example, the "
+	"suspendPolicy is specified as an option to the JDWP agent at launch-time."
+	"The automatically generated VM Death Event will have the suspendPolicy set to "
+	"NONE."			
+	
+       (Event "Generated event"
+            (byte suspendPolicy 
+                "Which threads where suspended by this composite event?")
+            (Repeat events "Events in set."
+                (Select Events
+                    (byte eventKind "Event kind selector")
+                    (Alt VMStart=JDWP.EventKind.VM_START 
+			"Notification of initialization of a target VM.  This event is "
+			"received before the main thread is started and before any "
+			"application code has been executed. Before this event occurs "
+			"a significant amount of system code has executed and a number "
+			"of system classes have been loaded. "
+			"This event is always generated by the target VM, even "
+			"if not explicitly requested."
+			
+                     (int requestID 
+			     "Request that generated event (or 0 if this "
+			     "event is automatically generated.")
+                        (threadObject thread "Initial thread")
+                    ) 
+                    (Alt SingleStep=JDWP.EventKind.SINGLE_STEP 
+			"Notification of step completion in the target VM. The step event "
+			"is generated before the code at its location is executed. "
+			
+                        (int requestID "Request that generated event")
+                        (threadObject thread "Stepped thread")
+                        (location location "Location stepped to")
+                    ) 
+                    (Alt Breakpoint=JDWP.EventKind.BREAKPOINT
+			"Notification of a breakpoint in the target VM. The breakpoint event "
+			"is generated before the code at its location is executed. "
+			
+                        (int requestID "Request that generated event")
+                        (threadObject thread "Thread which hit breakpoint")
+                        (location location "Location hit")
+                    ) 
+                    (Alt MethodEntry=JDWP.EventKind.METHOD_ENTRY
+			 "Notification of a method invocation in the target VM. This event "
+			 "is generated before any code in the invoked method has executed. "
+			 "Method entry events are generated for both native and non-native "
+			 "methods. "
+			 "<P>"
+			 "In some VMs method entry events can occur for a particular thread "
+			 "before its thread start event occurs if methods are called "
+			 "as part of the thread's initialization. "
+
+                        (int requestID "Request that generated event")
+                        (threadObject thread "Thread which entered method")
+                        (location location "The initial executable location in the method.")
+                    ) 
+                    (Alt MethodExit=JDWP.EventKind.METHOD_EXIT
+			 "Notification of a method return in the target VM. This event "
+			 "is generated after all code in the method has executed, but the "
+			 "location of this event is the last executed location in the method. "
+			 "Method exit events are generated for both native and non-native "
+			 "methods. Method exit events are not generated if the method terminates "
+			 "with a thrown exception. "
+			 
+                        (int requestID "Request that generated event")
+                        (threadObject thread "Thread which exited method")
+                        (location location "Location of exit")
+                    ) 
+                    (Alt MethodExitWithReturnValue=JDWP.EventKind.METHOD_EXIT_WITH_RETURN_VALUE
+			 "Notification of a method return in the target VM. This event "
+			 "is generated after all code in the method has executed, but the "
+			 "location of this event is the last executed location in the method. "
+			 "Method exit events are generated for both native and non-native "
+			 "methods. Method exit events are not generated if the method terminates "
+			 "with a thrown exception. <p>Since JDWP version 1.6. "
+			 
+                        (int requestID "Request that generated event")
+                        (threadObject thread "Thread which exited method")
+                        (location location "Location of exit")
+                        (value value "Value that will be returned by the method")
+                    )
+                    (Alt MonitorContendedEnter=JDWP.EventKind.MONITOR_CONTENDED_ENTER		    
+			 "Notification that a thread in the target VM is attempting "
+			 "to enter a monitor that is already acquired by another thread. "
+			 "Requires canRequestMonitorEvents capability - see "
+			 "<a href=\"#JDWP_VirtualMachine_CapabilitiesNew\">CapabilitiesNew</a>. "
+			 "<p>Since JDWP version 1.6. "
+
+                        (int requestID 
+                                "Request that generated event")
+		        (threadObject thread "Thread which is trying to enter the monitor")
+			(tagged-object object "Monitor object reference")
+		        (location location "Location of contended monitor enter")
+                    )
+                    (Alt MonitorContendedEntered=JDWP.EventKind.MONITOR_CONTENDED_ENTERED		    
+ 			 "Notification of a thread in the target VM is entering a monitor "
+		         "after waiting for it to be released by another thread. "
+			 "Requires canRequestMonitorEvents capability - see "
+			 "<a href=\"#JDWP_VirtualMachine_CapabilitiesNew\">CapabilitiesNew</a>. "
+			 "<p>Since JDWP version 1.6. "
+
+                        (int requestID 
+                                "Request that generated event")
+		        (threadObject thread "Thread which entered monitor")
+			(tagged-object object "Monitor object reference")
+		        (location location "Location of contended monitor enter")
+                    )
+                    (Alt MonitorWait=JDWP.EventKind.MONITOR_WAIT		    
+                         "Notification of a thread about to wait on a monitor object. "
+			 "Requires canRequestMonitorEvents capability - see "
+			 "<a href=\"#JDWP_VirtualMachine_CapabilitiesNew\">CapabilitiesNew</a>. "
+			 "<p>Since JDWP version 1.6. "
+ 
+                        (int requestID 
+                                "Request that generated event")
+		        (threadObject thread "Thread which is about to wait")
+			(tagged-object object "Monitor object reference")
+		        (location location "Location at which the wait will occur")
+			(long     timeout  "Thread wait time in milliseconds")
+                    )
+                    (Alt MonitorWaited=JDWP.EventKind.MONITOR_WAITED		
+			 "Notification that a thread in the target VM has finished waiting on "
+			 "Requires canRequestMonitorEvents capability - see "
+			 "<a href=\"#JDWP_VirtualMachine_CapabilitiesNew\">CapabilitiesNew</a>. "
+		         "a monitor object. "
+			 "<p>Since JDWP version 1.6. "
+
+                        (int requestID 
+                                "Request that generated event")
+		        (threadObject thread "Thread which waited")
+			(tagged-object object "Monitor object reference")
+		        (location location "Location at which the wait occured")
+			(boolean  timed_out "True if timed out")
+                    )
+                    (Alt Exception=JDWP.EventKind.EXCEPTION
+			 "Notification of an exception in the target VM. "
+			 "If the exception is thrown from a non-native method, "
+			 "the exception event is generated at the location where the "
+			 "exception is thrown. "
+			 "If the exception is thrown from a native method, the exception event "
+			 "is generated at the first non-native location reached after the exception "
+			 "is thrown. "
+
+                        (int requestID "Request that generated event")
+                        (threadObject thread "Thread with exception")
+                        (location location "Location of exception throw "
+			"(or first non-native location after throw if thrown from a native method)")
+                        (tagged-object exception "Thrown exception")
+                        (location catchLocation 
+			    "Location of catch, or 0 if not caught. An exception "
+			    "is considered to be caught if, at the point of the throw, the "
+			    "current location is dynamically enclosed in a try statement that "
+			    "handles the exception. (See the JVM specification for details). "
+			    "If there is such a try statement, the catch location is the "
+			    "first location in the appropriate catch clause. "
+			    "<p>"
+			    "If there are native methods in the call stack at the time of the "
+			    "exception, there are important restrictions to note about the "
+			    "returned catch location. In such cases, "
+			    "it is not possible to predict whether an exception will be handled "
+			    "by some native method on the call stack. "
+			    "Thus, it is possible that exceptions considered uncaught "
+			    "here will, in fact, be handled by a native method and not cause "
+			    "termination of the target VM. Furthermore, it cannot be assumed that the "
+			    "catch location returned here will ever be reached by the throwing "
+			    "thread. If there is "
+			    "a native frame between the current location and the catch location, "
+			    "the exception might be handled and cleared in that native method "
+			    "instead. "
+			    "<p>"
+			    "Note that compilers can generate try-catch blocks in some cases "
+			    "where they are not explicit in the source code; for example, "
+			    "the code generated for <code>synchronized</code> and "
+			    "<code>finally</code> blocks can contain implicit try-catch blocks. "
+			    "If such an implicitly generated try-catch is "
+			    "present on the call stack at the time of the throw, the exception "
+			    "will be considered caught even though it appears to be uncaught from "
+			    "examination of the source code. "
+			)
+                    ) 
+                    (Alt ThreadStart=JDWP.EventKind.THREAD_START
+			"Notification of a new running thread in the target VM. "
+			"The new thread can be the result of a call to "
+			"<code>java.lang.Thread.start</code> or the result of "
+			"attaching a new thread to the VM though JNI. The "
+			"notification is generated by the new thread some time before "
+			"its execution starts. "
+			"Because of this timing, it is possible to receive other events "
+			"for the thread before this event is received. (Notably, "
+			"Method Entry Events and Method Exit Events might occur "
+			"during thread initialization. "
+			"It is also possible for the "
+   		        "<a href=\"#JDWP_VirtualMachine_AllThreads\">VirtualMachine AllThreads</a> "
+			"command to return "
+			"a thread before its thread start event is received. "
+			"<p>"
+			"Note that this event gives no information "
+			"about the creation of the thread object which may have happened "
+			"much earlier, depending on the VM being debugged. "
+      	    
+                        (int requestID "Request that generated event")
+                        (threadObject thread "Started thread")
+                    ) 
+                    (Alt ThreadDeath=JDWP.EventKind.THREAD_DEATH
+			"Notification of a completed thread in the target VM. The "
+			"notification is generated by the dying thread before it terminates. "
+			"Because of this timing, it is possible "
+			"for {@link VirtualMachine#allThreads} to return this thread "
+			"after this event is received. "
+			"<p>"
+			"Note that this event gives no information "
+			"about the lifetime of the thread object. It may or may not be collected "
+			"soon depending on what references exist in the target VM. "
+		    
+                        (int requestID "Request that generated event")
+                        (threadObject thread "Ending thread")
+                    ) 
+                    (Alt ClassPrepare=JDWP.EventKind.CLASS_PREPARE
+			"Notification of a class prepare in the target VM. See the JVM "
+			"specification for a definition of class preparation. Class prepare "
+			"events are not generated for primtiive classes (for example, "
+			"java.lang.Integer.TYPE). "
+			
+                        (int requestID "Request that generated event")
+                        (threadObject thread "Preparing thread. "
+			     "In rare cases, this event may occur in a debugger system "
+			     "thread within the target VM. Debugger threads take precautions "
+			     "to prevent these events, but they cannot be avoided under some "
+			     "conditions, especially for some subclasses of "
+			     "java.lang.Error. "
+			     "If the event was generated by a debugger system thread, the "
+			     "value returned by this method is null, and if the requested  "
+			     "<a href=\"#JDWP_SuspendPolicy\">suspend policy</a> "
+			     "for the event was EVENT_THREAD "
+			     "all threads will be suspended instead, and the "
+			     "composite event's suspend policy will reflect this change. "
+			     "<p>"
+			     "Note that the discussion above does not apply to system threads "
+			     "created by the target VM during its normal (non-debug) operation. "
+			)
+                        (byte refTypeTag  "Kind of reference type. "
+                           "See <a href=\"#JDWP_TypeTag\">JDWP.TypeTag</a>")
+                        (referenceTypeID typeID "Type being prepared")
+                        (string signature "Type signature")
+                        (int status "Status of type. "
+                         "See <a href=\"#JDWP_ClassStatus\">JDWP.ClassStatus</a>")
+                    ) 
+                    (Alt ClassUnload=JDWP.EventKind.CLASS_UNLOAD
+			 "Notification of a class unload in the target VM. "
+			 "<p>"
+			 "There are severe constraints on the debugger back-end during "
+			 "garbage collection, so unload information is greatly limited.	"
+			 
+                        (int requestID "Request that generated event")
+                        (string signature "Type signature")
+                    )
+                    (Alt FieldAccess=JDWP.EventKind.FIELD_ACCESS
+			"Notification of a field access in the target VM. "
+			"Field modifications "
+			"are not considered field accesses. "
+			"Requires canWatchFieldAccess capability - see "
+			"<a href=\"#JDWP_VirtualMachine_CapabilitiesNew\">CapabilitiesNew</a>."
+			
+                      (int requestID "Request that generated event")
+                        (threadObject thread "Accessing thread")
+                        (location location "Location of access")
+                        (byte refTypeTag  "Kind of reference type. "
+                           "See <a href=\"#JDWP_TypeTag\">JDWP.TypeTag</a>")
+                        (referenceTypeID typeID "Type of field")
+                        (field fieldID "Field being accessed")
+                        (tagged-object object
+                                "Object being accessed (null=0 for statics")
+                    )
+                    (Alt FieldModification=JDWP.EventKind.FIELD_MODIFICATION
+			"Notification of a field modification in the target VM. "
+			"Requires canWatchFieldModification capability - see "
+			"<a href=\"#JDWP_VirtualMachine_CapabilitiesNew\">CapabilitiesNew</a>."
+			
+                        (int requestID "Request that generated event")
+                        (threadObject thread "Modifying thread")
+                        (location location "Location of modify")
+                        (byte refTypeTag  "Kind of reference type. "
+                           "See <a href=\"#JDWP_TypeTag\">JDWP.TypeTag</a>")
+                        (referenceTypeID typeID "Type of field")
+                        (field fieldID "Field being modified")
+                        (tagged-object object
+                                "Object being modified (null=0 for statics")
+                        (value valueToBe "Value to be assigned")
+                    )
+		    (Alt VMDeath=JDWP.EventKind.VM_DEATH		    
+                        (int requestID 
+                                "Request that generated event")
+                    ) 
+                )
+            )
+        )
+    )
+)
+(ConstantSet Error
+    (Constant NONE                   =0   "No error has occurred.")
+    (Constant INVALID_THREAD         =10  "Passed thread is null, is not a valid thread or has exited.")
+    (Constant INVALID_THREAD_GROUP   =11  "Thread group invalid.")   
+    (Constant INVALID_PRIORITY       =12  "Invalid priority.")   
+    (Constant THREAD_NOT_SUSPENDED   =13  "If the specified thread has not been "
+                                          "suspended by an event.")   
+    (Constant THREAD_SUSPENDED       =14  "Thread already suspended.")   
+    (Constant THREAD_NOT_ALIVE       =15  "Thread has not been started or is now dead.")   
+
+    (Constant INVALID_OBJECT         =20  "If this reference type has been unloaded "
+                                          "and garbage collected.")   
+    (Constant INVALID_CLASS          =21  "Invalid class.")  
+    (Constant CLASS_NOT_PREPARED     =22  "Class has been loaded but not yet prepared.")   
+    (Constant INVALID_METHODID       =23  "Invalid method.")   
+    (Constant INVALID_LOCATION       =24  "Invalid location.")   
+    (Constant INVALID_FIELDID        =25  "Invalid field.") 
+    (Constant INVALID_FRAMEID        =30  "Invalid jframeID.")   
+    (Constant NO_MORE_FRAMES         =31  "There are no more Java or JNI frames on the "
+                                          "call stack.")   
+    (Constant OPAQUE_FRAME           =32  "Information about the frame is not available.")  
+    (Constant NOT_CURRENT_FRAME      =33  "Operation can only be performed on current frame.")
+    (Constant TYPE_MISMATCH          =34  "The variable is not an appropriate type for "
+                                          "the function used.")   
+    (Constant INVALID_SLOT           =35  "Invalid slot.")  
+    (Constant DUPLICATE              =40  "Item already set.")   
+    (Constant NOT_FOUND              =41  "Desired element not found.")   
+    (Constant INVALID_MONITOR        =50  "Invalid monitor.")   
+    (Constant NOT_MONITOR_OWNER      =51  "This thread doesn't own the monitor.")   
+    (Constant INTERRUPT              =52  "The call has been interrupted before completion.")   
+    (Constant INVALID_CLASS_FORMAT   =60  "The virtual machine attempted to read a class "
+                                          "file and determined that the file is malformed "
+                                          "or otherwise cannot be interpreted as a class file.")
+    (Constant CIRCULAR_CLASS_DEFINITION
+                                     =61  "A circularity has been detected while "
+                                          "initializing a class.")
+    (Constant FAILS_VERIFICATION     =62  "The verifier detected that a class file, "
+                                          "though well formed, contained some sort of "
+                                          "internal inconsistency or security problem.")   
+    (Constant ADD_METHOD_NOT_IMPLEMENTED
+                                     =63  "Adding methods has not been implemented.")   
+    (Constant SCHEMA_CHANGE_NOT_IMPLEMENTED
+                                     =64  "Schema change has not been implemented.")   
+    (Constant INVALID_TYPESTATE      =65  "The state of the thread has been modified, "
+                                          "and is now inconsistent.")   
+    (Constant HIERARCHY_CHANGE_NOT_IMPLEMENTED
+                                     =66  "A direct superclass is different for the new class "
+                                          "version, or the set of directly implemented "
+                                          "interfaces is different "
+                                          "and canUnrestrictedlyRedefineClasses is false.")   
+    (Constant DELETE_METHOD_NOT_IMPLEMENTED
+                                     =67  "The new class version does not declare a method "
+                                          "declared in the old class version "
+                                          "and canUnrestrictedlyRedefineClasses is false.")   
+    (Constant UNSUPPORTED_VERSION    =68  "A class file has a version number not supported "
+                                          "by this VM.")   
+    (Constant NAMES_DONT_MATCH       =69  "The class name defined in the new class file is "
+                                          "different from the name in the old class object.")   
+    (Constant CLASS_MODIFIERS_CHANGE_NOT_IMPLEMENTED 
+                                     =70  "The new class version has different modifiers and "
+                                          "and canUnrestrictedlyRedefineClasses is false.")   
+    (Constant METHOD_MODIFIERS_CHANGE_NOT_IMPLEMENTED
+                                     =71  "A method in the new class version has "
+                                          "different modifiers "
+                                          "than its counterpart in the old class version and "
+                                          "and canUnrestrictedlyRedefineClasses is false.")   
+    (Constant NOT_IMPLEMENTED        =99  "The functionality is not implemented in "
+                                          "this virtual machine.")
+    (Constant NULL_POINTER           =100 "Invalid pointer.")   
+    (Constant ABSENT_INFORMATION     =101 "Desired information is not available.")   
+    (Constant INVALID_EVENT_TYPE     =102 "The specified event type id is not recognized.")   
+    (Constant ILLEGAL_ARGUMENT       =103 "Illegal argument.")   
+    (Constant OUT_OF_MEMORY          =110 "The function needed to allocate memory and "
+                                          "no more memory was available for allocation.")   
+    (Constant ACCESS_DENIED          =111 "Debugging has not been enabled in this "
+                                          "virtual machine. JVMTI cannot be used.")   
+    (Constant VM_DEAD                =112 "The virtual machine is not running.")   
+    (Constant INTERNAL               =113 "An unexpected internal error has occurred.")   
+    (Constant UNATTACHED_THREAD      =115 "The thread being used to call this function "
+                                          "is not attached to the virtual machine. "
+                                          "Calls must be made from attached threads.")   
+    (Constant INVALID_TAG            =500 "object type id or class tag.")  
+    (Constant ALREADY_INVOKING       =502 "Previous invoke not complete.")   
+    (Constant INVALID_INDEX          =503 "Index is invalid.")   
+    (Constant INVALID_LENGTH         =504 "The length is invalid.")   
+    (Constant INVALID_STRING         =506 "The string is invalid.")   
+    (Constant INVALID_CLASS_LOADER   =507 "The class loader is invalid.")   
+    (Constant INVALID_ARRAY          =508 "The array is invalid.")   
+    (Constant TRANSPORT_LOAD         =509 "Unable to load the transport.")   
+    (Constant TRANSPORT_INIT         =510 "Unable to initialize the transport.")
+    (Constant NATIVE_METHOD          =511  )
+    (Constant INVALID_COUNT          =512 "The count is invalid.")   
+)
+(ConstantSet EventKind
+    (Constant SINGLE_STEP            =1   )
+    (Constant BREAKPOINT             =2   )
+    (Constant FRAME_POP              =3   )
+    (Constant EXCEPTION              =4   )
+    (Constant USER_DEFINED           =5   )
+    (Constant THREAD_START           =6   )
+    (Constant THREAD_DEATH           =7   )
+    (Constant THREAD_END             =7   "obsolete - was used in jvmdi")
+    (Constant CLASS_PREPARE          =8   )
+    (Constant CLASS_UNLOAD           =9   )
+    (Constant CLASS_LOAD             =10  )
+    (Constant FIELD_ACCESS           =20  )
+    (Constant FIELD_MODIFICATION     =21  )
+    (Constant EXCEPTION_CATCH        =30  )
+    (Constant METHOD_ENTRY           =40  )
+    (Constant METHOD_EXIT            =41  )
+    (Constant METHOD_EXIT_WITH_RETURN_VALUE =42  )
+    (Constant MONITOR_CONTENDED_ENTER          =43  )
+    (Constant MONITOR_CONTENDED_ENTERED        =44 )
+    (Constant MONITOR_WAIT           =45 )
+    (Constant MONITOR_WAITED         =46 )
+    (Constant VM_START               =90  )
+    (Constant VM_INIT                =90  "obsolete - was used in jvmdi")
+    (Constant VM_DEATH               =99  )
+    (Constant VM_DISCONNECTED        =100 "Never sent across JDWP")
+)
+
+(ConstantSet ThreadStatus
+    (Constant ZOMBIE                 =0  )
+    (Constant RUNNING                =1  )
+    (Constant SLEEPING               =2  )
+    (Constant MONITOR                =3  )
+    (Constant WAIT                   =4  )
+)
+
+(ConstantSet SuspendStatus
+    (Constant SUSPEND_STATUS_SUSPENDED = 0x1 )             
+)
+(ConstantSet ClassStatus
+    (Constant VERIFIED               =1  )
+    (Constant PREPARED               =2  )
+    (Constant INITIALIZED            =4  )
+    (Constant ERROR                  =8  )
+)
+(ConstantSet TypeTag
+    (Constant CLASS=1 "ReferenceType is a class. ")             
+    (Constant INTERFACE=2 "ReferenceType is an interface. ")             
+    (Constant ARRAY=3 "ReferenceType is an array. ")             
+)
+(ConstantSet Tag
+    (Constant ARRAY = '[' "'[' - an array object (objectID size). ")
+    (Constant BYTE = 'B' "'B' - a byte value (1 byte).")
+    (Constant CHAR = 'C' "'C' - a character value (2 bytes).")
+    (Constant OBJECT = 'L' "'L' - an object (objectID size).")
+    (Constant FLOAT = 'F' "'F' - a float value (4 bytes).")
+    (Constant DOUBLE = 'D' "'D' - a double value (8 bytes).")
+    (Constant INT = 'I' "'I' - an int value (4 bytes).")
+    (Constant LONG = 'J' "'J' - a long value (8 bytes).")
+    (Constant SHORT = 'S' "'S' - a short value (2 bytes).")
+    (Constant VOID = 'V' "'V' - a void value (no bytes).")
+    (Constant BOOLEAN = 'Z' "'Z' - a boolean value (1 byte).")
+    (Constant STRING = 's' "'s' - a String object (objectID size). ")
+    (Constant THREAD = 't' "'t' - a Thread object (objectID size). ")
+    (Constant THREAD_GROUP = 'g' 
+        "'g' - a ThreadGroup object (objectID size). ")
+    (Constant CLASS_LOADER = 'l' 
+        "'l' - a ClassLoader object (objectID size). ")
+    (Constant CLASS_OBJECT = 'c' 
+        "'c' - a class object object (objectID size). ")
+)
+
+(ConstantSet StepDepth
+    (Constant INTO = 0 
+        "Step into any method calls that occur before the end of the step. ")
+    (Constant OVER = 1 
+        "Step over any method calls that occur before the end of the step. ")
+    (Constant OUT = 2 
+        "Step out of the current method. ")
+)
+
+(ConstantSet StepSize
+    (Constant MIN = 0 
+        "Step by the minimum possible amount (often a bytecode instruction). ")
+    (Constant LINE = 1 
+        "Step to the next source line unless there is no line number information in which case a MIN step is done instead.")
+)
+
+(ConstantSet SuspendPolicy
+    (Constant NONE = 0 
+        "Suspend no threads when this event is encountered. ")
+    (Constant EVENT_THREAD = 1 
+        "Suspend the event thread when this event is encountered. ")
+    (Constant ALL = 2 
+        "Suspend all threads when this event is encountered. ")
+)
+	
+(ConstantSet InvokeOptions
+    "The invoke options are a combination of zero or more of the following bit flags:"
+    (Constant INVOKE_SINGLE_THREADED = 0x01
+        "otherwise, all threads started. ")
+    (Constant INVOKE_NONVIRTUAL = 0x02
+        "otherwise, normal virtual invoke (instance methods only)")
+)
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/jprt.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,46 @@
+#
+# Copyright (c) 2006, 2010, 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.
+#
+
+# JPRT rule to build this workspace
+
+JPRT_ARCHIVE_BUNDLE=$(ABS_OUTPUTDIR)/$(JPRT_BUILD_FLAVOR)-bundle.zip
+
+jprt_build_product:  all images
+	( $(CD) $(OUTPUTDIR)/j2sdk-image && \
+	  $(ZIPEXE) -q -r $(JPRT_ARCHIVE_BUNDLE) . )
+
+jprt_build_fastdebug: fastdebug images
+	( $(CD) $(OUTPUTDIR)/j2sdk-image && \
+	  $(ZIPEXE) -q -r $(JPRT_ARCHIVE_BUNDLE) . )
+
+jprt_build_debug: debug images 
+	( $(CD) $(OUTPUTDIR)/j2sdk-image && \
+	  $(ZIPEXE) -q -r $(JPRT_ARCHIVE_BUNDLE) . )
+
+#
+# Phonies to avoid accidents.
+#
+.PHONY: jprt_build_product jprt_build_fastdebug jprt_build_debug
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/jprt.properties	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,309 @@
+#
+# Copyright (c) 2006, 2010, 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.
+#
+
+# Properties for jprt
+
+# Release to build for
+jprt.tools.default.release=jdk8
+
+# The different build flavors we want, we override here so we just get these 2
+jprt.build.flavors=product,fastdebug
+
+# Standard list of jprt build targets for this source tree
+jprt.build.targets= 						\
+    solaris_sparc_5.10-{product|fastdebug}, 			\
+    solaris_sparcv9_5.10-{product|fastdebug}, 			\
+    solaris_i586_5.10-{product|fastdebug}, 			\
+    solaris_x64_5.10-{product|fastdebug}, 			\
+    linux_i586_2.6-{product|fastdebug}, 			\
+    linux_x64_2.6-{product|fastdebug}, 				\
+    windows_i586_5.1-{product|fastdebug}, 			\
+    windows_x64_5.2-{product|fastdebug}
+
+# User can select the test set with jprt submit "-testset name" option
+jprt.my.test.set=${jprt.test.set}
+
+# Standard vm test target
+jprt.vm.default.test.targets=					\
+    solaris_sparc_5.10-product-c1-jvm98, 			\
+    solaris_sparcv9_5.10-product-c2-jvm98, 			\
+    solaris_i586_5.10-product-c1-jvm98, 			\
+    solaris_x64_5.10-product-c2-jvm98, 				\
+    linux_i586_2.6-product-{c1|c2}-jvm98, 			\
+    linux_x64_2.6-product-c2-jvm98, 				\
+    windows_i586_5.1-product-c1-jvm98, 				\
+    windows_x64_5.2-product-c2-jvm98
+
+# Select vm testlist to use (allow for testset to be empty too)
+jprt.vm.all.test.targets=${jprt.vm.default.test.targets}
+jprt.vm..test.targets=${jprt.vm.default.test.targets} 
+jprt.test.targets=${jprt.vm.${jprt.my.test.set}.test.targets} 
+
+# Default jdk test targets in test/Makefile (no fastdebug & limited c2)
+jprt.make.rule.default.test.targets=				\
+    								\
+    solaris_sparc_5.10-product-c1-jdk_beans1, 			\
+    solaris_sparcv9_5.10-product-c2-jdk_beans1, 		\
+    solaris_i586_5.10-product-c1-jdk_beans1, 			\
+    solaris_x64_5.10-product-c2-jdk_beans1, 			\
+    linux_i586_2.6-product-{c1|c2}-jdk_beans1, 			\
+    linux_x64_2.6-product-c2-jdk_beans1, 			\
+    windows_i586_5.1-product-c1-jdk_beans1, 			\
+    windows_x64_5.2-product-c2-jdk_beans1, 			\
+    								\
+    solaris_sparc_5.10-product-c1-jdk_io, 			\
+    solaris_sparcv9_5.10-product-c2-jdk_io, 			\
+    solaris_i586_5.10-product-c1-jdk_io, 			\
+    solaris_x64_5.10-product-c2-jdk_io, 			\
+    linux_i586_2.6-product-{c1|c2}-jdk_io, 			\
+    linux_x64_2.6-product-c2-jdk_io, 				\
+    windows_i586_5.1-product-c1-jdk_io, 			\
+    windows_x64_5.2-product-c2-jdk_io, 				\
+    								\
+    solaris_sparc_5.10-product-c1-jdk_lang, 			\
+    solaris_sparcv9_5.10-product-c2-jdk_lang, 			\
+    solaris_i586_5.10-product-c1-jdk_lang, 			\
+    solaris_x64_5.10-product-c2-jdk_lang, 			\
+    linux_i586_2.6-product-{c1|c2}-jdk_lang, 			\
+    linux_x64_2.6-product-c2-jdk_lang, 				\
+    windows_i586_5.1-product-c1-jdk_lang, 			\
+    windows_x64_5.2-product-c2-jdk_lang, 			\
+    								\
+    solaris_sparc_5.10-product-c1-jdk_math, 			\
+    solaris_sparcv9_5.10-product-c2-jdk_math, 			\
+    solaris_i586_5.10-product-c1-jdk_math, 			\
+    solaris_x64_5.10-product-c2-jdk_math, 			\
+    linux_i586_2.6-product-{c1|c2}-jdk_math, 			\
+    linux_x64_2.6-product-c2-jdk_math, 				\
+    windows_i586_5.1-product-c1-jdk_math, 			\
+    windows_x64_5.2-product-c2-jdk_math, 			\
+    								\
+    solaris_sparc_5.10-product-c1-jdk_misc, 			\
+    solaris_sparcv9_5.10-product-c2-jdk_misc, 			\
+    solaris_i586_5.10-product-c1-jdk_misc, 			\
+    solaris_x64_5.10-product-c2-jdk_misc, 			\
+    linux_i586_2.6-product-{c1|c2}-jdk_misc, 			\
+    linux_x64_2.6-product-c2-jdk_misc, 				\
+    windows_i586_5.1-product-c1-jdk_misc, 			\
+    windows_x64_5.2-product-c2-jdk_misc, 			\
+    								\
+    solaris_sparc_5.10-product-c1-jdk_net, 			\
+    solaris_sparcv9_5.10-product-c2-jdk_net, 			\
+    solaris_i586_5.10-product-c1-jdk_net, 			\
+    solaris_x64_5.10-product-c2-jdk_net, 			\
+    linux_i586_2.6-product-{c1|c2}-jdk_net, 			\
+    linux_x64_2.6-product-c2-jdk_net, 				\
+    windows_i586_5.1-product-c1-jdk_net, 			\
+    windows_x64_5.2-product-c2-jdk_net, 			\
+    								\
+    solaris_sparc_5.10-product-c1-jdk_nio1, 			\
+    solaris_sparcv9_5.10-product-c2-jdk_nio1, 			\
+    solaris_i586_5.10-product-c1-jdk_nio1, 			\
+    solaris_x64_5.10-product-c2-jdk_nio1, 			\
+    linux_i586_2.6-product-{c1|c2}-jdk_nio1, 			\
+    linux_x64_2.6-product-c2-jdk_nio1, 				\
+    windows_i586_5.1-product-c1-jdk_nio1, 			\
+    windows_x64_5.2-product-c2-jdk_nio1, 			\
+    								\
+    solaris_sparc_5.10-product-c1-jdk_nio2, 			\
+    solaris_sparcv9_5.10-product-c2-jdk_nio2, 			\
+    solaris_i586_5.10-product-c1-jdk_nio2, 			\
+    solaris_x64_5.10-product-c2-jdk_nio2, 			\
+    linux_i586_2.6-product-{c1|c2}-jdk_nio2, 			\
+    linux_x64_2.6-product-c2-jdk_nio2, 				\
+    windows_i586_5.1-product-c1-jdk_nio2, 			\
+    windows_x64_5.2-product-c2-jdk_nio2, 			\
+    								\
+    solaris_sparc_5.10-product-c1-jdk_nio3, 			\
+    solaris_sparcv9_5.10-product-c2-jdk_nio3, 			\
+    solaris_i586_5.10-product-c1-jdk_nio3, 			\
+    solaris_x64_5.10-product-c2-jdk_nio3, 			\
+    linux_i586_2.6-product-{c1|c2}-jdk_nio3, 			\
+    linux_x64_2.6-product-c2-jdk_nio3, 				\
+    windows_i586_5.1-product-c1-jdk_nio3, 			\
+    windows_x64_5.2-product-c2-jdk_nio3, 			\
+    								\
+    solaris_sparc_5.10-product-c1-jdk_security1, 		\
+    solaris_sparcv9_5.10-product-c2-jdk_security1, 		\
+    solaris_i586_5.10-product-c1-jdk_security1, 		\
+    solaris_x64_5.10-product-c2-jdk_security1, 			\
+    linux_i586_2.6-product-{c1|c2}-jdk_security1, 		\
+    linux_x64_2.6-product-c2-jdk_security1, 			\
+    windows_i586_5.1-product-c1-jdk_security1, 			\
+    windows_x64_5.2-product-c2-jdk_security1, 			\
+    								\
+    solaris_sparc_5.10-product-c1-jdk_text, 			\
+    solaris_sparcv9_5.10-product-c2-jdk_text, 			\
+    solaris_i586_5.10-product-c1-jdk_text, 			\
+    solaris_x64_5.10-product-c2-jdk_text, 			\
+    linux_i586_2.6-product-{c1|c2}-jdk_text, 			\
+    linux_x64_2.6-product-c2-jdk_text, 				\
+    windows_i586_5.1-product-c1-jdk_text, 			\
+    windows_x64_5.2-product-c2-jdk_text, 			\
+    								\
+    solaris_sparc_5.10-product-c1-jdk_tools1, 			\
+    solaris_sparcv9_5.10-product-c2-jdk_tools1, 		\
+    solaris_i586_5.10-product-c1-jdk_tools1, 			\
+    solaris_x64_5.10-product-c2-jdk_tools1, 			\
+    linux_i586_2.6-product-{c1|c2}-jdk_tools1, 			\
+    linux_x64_2.6-product-c2-jdk_tools1, 			\
+    windows_i586_5.1-product-c1-jdk_tools1, 			\
+    windows_x64_5.2-product-c2-jdk_tools1, 			\
+    								\
+    solaris_sparc_5.10-product-c1-jdk_util, 			\
+    solaris_sparcv9_5.10-product-c2-jdk_util, 			\
+    solaris_i586_5.10-product-c1-jdk_util, 			\
+    solaris_x64_5.10-product-c2-jdk_util, 			\
+    linux_i586_2.6-product-{c1|c2}-jdk_util, 			\
+    linux_x64_2.6-product-c2-jdk_util, 				\
+    windows_i586_5.1-product-c1-jdk_util, 			\
+    windows_x64_5.2-product-c2-jdk_util
+
+# All jdk test targets in test/Makefile (still no fastdebug & limited c2)
+jprt.make.rule.all.test.targets=    				\
+    								\
+   ${jprt.make.rule.default.test.targets}, 			\
+    								\
+    solaris_sparc_5.10-product-c1-jdk_awt, 			\
+    solaris_sparcv9_5.10-product-c2-jdk_awt, 			\
+    solaris_i586_5.10-product-c1-jdk_awt, 			\
+    solaris_x64_5.10-product-c2-jdk_awt, 			\
+    linux_i586_2.6-product-{c1|c2}-jdk_awt, 			\
+    linux_x64_2.6-product-c2-jdk_awt, 				\
+    windows_i586_5.1-product-c1-jdk_awt, 			\
+    windows_x64_5.2-product-c2-jdk_awt, 			\
+    								\
+    solaris_sparc_5.10-product-c1-jdk_beans2, 			\
+    solaris_sparcv9_5.10-product-c2-jdk_beans2, 		\
+    solaris_i586_5.10-product-c1-jdk_beans2, 			\
+    solaris_x64_5.10-product-c2-jdk_beans2, 			\
+    linux_i586_2.6-product-{c1|c2}-jdk_beans2, 			\
+    linux_x64_2.6-product-c2-jdk_beans2, 			\
+    windows_i586_5.1-product-c1-jdk_beans2, 			\
+    windows_x64_5.2-product-c2-jdk_beans2, 			\
+    								\
+    solaris_sparc_5.10-product-c1-jdk_beans3, 			\
+    solaris_sparcv9_5.10-product-c2-jdk_beans3, 		\
+    solaris_i586_5.10-product-c1-jdk_beans3, 			\
+    solaris_x64_5.10-product-c2-jdk_beans3, 			\
+    linux_i586_2.6-product-{c1|c2}-jdk_beans3, 			\
+    linux_x64_2.6-product-c2-jdk_beans3, 			\
+    windows_i586_5.1-product-c1-jdk_beans3, 			\
+    windows_x64_5.2-product-c2-jdk_beans3, 			\
+    								\
+    solaris_sparc_5.10-product-c1-jdk_management1, 		\
+    solaris_sparcv9_5.10-product-c2-jdk_management1, 		\
+    solaris_i586_5.10-product-c1-jdk_management1, 		\
+    solaris_x64_5.10-product-c2-jdk_management1, 		\
+    linux_i586_2.6-product-{c1|c2}-jdk_management1, 		\
+    linux_x64_2.6-product-c2-jdk_management1, 			\
+    windows_i586_5.1-product-c1-jdk_management1, 		\
+    windows_x64_5.2-product-c2-jdk_management1, 		\
+    								\
+    solaris_sparc_5.10-product-c1-jdk_management2, 		\
+    solaris_sparcv9_5.10-product-c2-jdk_management2, 		\
+    solaris_i586_5.10-product-c1-jdk_management2, 		\
+    solaris_x64_5.10-product-c2-jdk_management2, 		\
+    linux_i586_2.6-product-{c1|c2}-jdk_management2, 		\
+    linux_x64_2.6-product-c2-jdk_management2, 			\
+    windows_i586_5.1-product-c1-jdk_management2, 		\
+    windows_x64_5.2-product-c2-jdk_management2, 		\
+    								\
+    solaris_sparc_5.10-product-c1-jdk_rmi, 			\
+    solaris_sparcv9_5.10-product-c2-jdk_rmi, 			\
+    solaris_i586_5.10-product-c1-jdk_rmi, 			\
+    solaris_x64_5.10-product-c2-jdk_rmi, 			\
+    linux_i586_2.6-product-{c1|c2}-jdk_rmi, 			\
+    linux_x64_2.6-product-c2-jdk_rmi, 				\
+    windows_i586_5.1-product-c1-jdk_rmi, 			\
+    windows_x64_5.2-product-c2-jdk_rmi, 			\
+    								\
+    solaris_sparc_5.10-product-c1-jdk_security2, 		\
+    solaris_sparcv9_5.10-product-c2-jdk_security2, 		\
+    solaris_i586_5.10-product-c1-jdk_security2, 		\
+    solaris_x64_5.10-product-c2-jdk_security2, 			\
+    linux_i586_2.6-product-{c1|c2}-jdk_security2, 		\
+    linux_x64_2.6-product-c2-jdk_security2, 			\
+    windows_i586_5.1-product-c1-jdk_security2, 			\
+    windows_x64_5.2-product-c2-jdk_security2, 			\
+    								\
+    solaris_sparc_5.10-product-c1-jdk_security3, 		\
+    solaris_sparcv9_5.10-product-c2-jdk_security3, 		\
+    solaris_i586_5.10-product-c1-jdk_security3, 		\
+    solaris_x64_5.10-product-c2-jdk_security3, 			\
+    linux_i586_2.6-product-{c1|c2}-jdk_security3, 		\
+    linux_x64_2.6-product-c2-jdk_security3, 			\
+    windows_i586_5.1-product-c1-jdk_security3, 			\
+    windows_x64_5.2-product-c2-jdk_security3, 			\
+    								\
+    solaris_sparc_5.10-product-c1-jdk_sound, 			\
+    solaris_sparcv9_5.10-product-c2-jdk_sound, 			\
+    solaris_i586_5.10-product-c1-jdk_sound, 			\
+    solaris_x64_5.10-product-c2-jdk_sound, 			\
+    linux_i586_2.6-product-{c1|c2}-jdk_sound, 			\
+    linux_x64_2.6-product-c2-jdk_sound, 			\
+    windows_i586_5.1-product-c1-jdk_sound, 			\
+    windows_x64_5.2-product-c2-jdk_sound, 			\
+    								\
+    solaris_sparc_5.10-product-c1-jdk_swing, 			\
+    solaris_sparcv9_5.10-product-c2-jdk_swing, 			\
+    solaris_i586_5.10-product-c1-jdk_swing, 			\
+    solaris_x64_5.10-product-c2-jdk_swing, 			\
+    linux_i586_2.6-product-{c1|c2}-jdk_swing, 			\
+    linux_x64_2.6-product-c2-jdk_swing, 			\
+    windows_i586_5.1-product-c1-jdk_swing, 			\
+    windows_x64_5.2-product-c2-jdk_swing, 			\
+    								\
+    solaris_sparc_5.10-product-c1-jdk_tools2, 			\
+    solaris_sparcv9_5.10-product-c2-jdk_tools2, 		\
+    solaris_i586_5.10-product-c1-jdk_tools2, 			\
+    solaris_x64_5.10-product-c2-jdk_tools2, 			\
+    linux_i586_2.6-product-{c1|c2}-jdk_tools2, 			\
+    linux_x64_2.6-product-c2-jdk_tools2, 			\
+    windows_i586_5.1-product-c1-jdk_tools2, 			\
+    windows_x64_5.2-product-c2-jdk_tools2
+
+# JCK test targets in test/Makefile (no fastdebug & limited c2, windows broken)
+jprt.my.jck.test.target.set=					\
+    solaris_sparc_5.10-product-c1-JCK7TESTRULE, 		\
+    solaris_sparcv9_5.10-product-c2-JCK7TESTRULE, 		\
+    solaris_i586_5.10-product-c1-JCK7TESTRULE, 			\
+    solaris_x64_5.10-product-c2-JCK7TESTRULE, 			\
+    linux_i586_2.6-product-c1-JCK7TESTRULE, 			\
+    linux_x64_2.6-product-c2-JCK7TESTRULE
+
+# JCK testset targets (e.g. jprt submit -testset jck ... )
+jprt.make.rule.jck.test.targets=				\
+    ${jprt.my.jck.test.target.set:JCK7TESTRULE=jck7devtools},   \
+    ${jprt.my.jck.test.target.set:JCK7TESTRULE=jck7runtime},    \
+    ${jprt.my.jck.test.target.set:JCK7TESTRULE=jck7compiler}
+
+# Select list to use (allow for testset to be empty too)
+jprt.make.rule..test.targets=${jprt.make.rule.default.test.targets} 
+jprt.make.rule.test.targets=${jprt.make.rule.${jprt.my.test.set}.test.targets} 
+
+# Directories to be excluded from the source bundles
+jprt.bundle.exclude.src.dirs=build dist webrev
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/mapfiles/launchers/mapfile-amd64	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,39 @@
+#
+# Copyright (c) 2004, 2011, 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.
+#
+#
+# Specify what global symbols we export.  Note that we're not really
+# interested in declaring a version, simply scoping the file is sufficient.
+#
+
+SUNWprivate_1.1 {
+	global:
+		main;		# Provides basic adb symbol offsets
+		environ;	# Public symbols and required by Java run time
+		_environ;
+		__environ_lock;
+
+	local:
+		*;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/mapfiles/launchers/mapfile-i586	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,48 @@
+#
+# Copyright (c) 2004, 2011, 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.
+#
+#
+# Specify what global symbols we export.  Note that we're not really
+# interested in declaring a version, simply scoping the file is sufficient.
+#
+
+SUNWprivate_1.1 {
+	global:
+		main;		# Provides basic adb symbol offsets
+		environ;	# Public symbols and required by Java run time
+		_environ;
+		__environ_lock;
+		___Argv;	# The following are private, but as they are
+		_start;		# exported from ctr1/crtn, the clever hacker
+		_init;		# might know about them.  However note, that
+		_fini;		# their use is strictly not supported.
+		_lib_version;
+#		_mcount;
+		__fsr;
+		__fsr_init_value;
+		__longdouble_used;
+
+	local:
+		*;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/mapfiles/launchers/mapfile-sparc	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,47 @@
+#
+# Copyright (c) 2004, 2011, 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.
+#
+# Specify what global symbols we export.  Note that we're not really
+# interested in declaring a version, simply scoping the file is sufficient.
+#
+
+SUNWprivate_1.1 {
+	global:
+		main;		# Provides basic adb symbol offsets
+		environ;	# Public symbols and required by Java run time
+		_environ;
+		__environ_lock;
+		___Argv;	# The following are private, but as they are
+		_start;		# exported from ctr1/crtn, the clever hacker
+		_init;		# might know about them.  However note, that
+		_fini;		# their use is strictly not supported.
+		_lib_version;
+		__cg92_used;
+		__xargc;
+		__xargv;
+		__fsr_init_value;
+
+	local:
+		*;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/mapfiles/launchers/mapfile-sparcv9	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,48 @@
+#
+# Copyright (c) 2004, 2011, 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.
+#
+
+#
+# Specify what global symbols we export.  Note that we're not really
+# interested in declaring a version, simply scoping the file is sufficient.
+#
+
+SUNWprivate_1.1 {
+	global:
+		main;		# Provides basic adb symbol offsets
+		environ;	# Public symbols and required by Java run time
+		_environ;
+		__environ_lock;
+		___Argv;	# The following are private, but as they are
+		_start;		# exported from ctr1/crtn, the clever hacker
+		_init;		# might know about them.  However note, that
+		_fini;		# their use is strictly not supported.
+		_lib_version;
+		__xargc;
+		__xargv;
+		__fsr_init_value;
+
+	local:
+		*;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/mapfiles/libattach/mapfile-linux	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,43 @@
+#
+# Copyright (c) 2005, 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.
+#
+
+# Define public interface.
+
+SUNWprivate_1.1 {
+	global:
+	    Java_sun_tools_attach_LinuxVirtualMachine_checkPermissions;
+	    Java_sun_tools_attach_LinuxVirtualMachine_close;
+	    Java_sun_tools_attach_LinuxVirtualMachine_connect;
+	    Java_sun_tools_attach_LinuxVirtualMachine_getLinuxThreadsManager;
+	    Java_sun_tools_attach_LinuxVirtualMachine_isLinuxThreads;
+	    Java_sun_tools_attach_LinuxVirtualMachine_open;
+	    Java_sun_tools_attach_LinuxVirtualMachine_sendQuitTo;
+            Java_sun_tools_attach_LinuxVirtualMachine_sendQuitToChildrenOf;
+	    Java_sun_tools_attach_LinuxVirtualMachine_socket;
+	    Java_sun_tools_attach_LinuxVirtualMachine_read;
+	    Java_sun_tools_attach_LinuxVirtualMachine_write;
+	local:
+		*;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/mapfiles/libattach/mapfile-solaris	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,38 @@
+#
+# Copyright (c) 2005, 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.
+#
+
+# Define public interface.
+
+SUNWprivate_1.1 {
+	global:
+            Java_sun_tools_attach_SolarisVirtualMachine_checkPermissions;
+            Java_sun_tools_attach_SolarisVirtualMachine_enqueue;
+            Java_sun_tools_attach_SolarisVirtualMachine_open;
+	    Java_sun_tools_attach_SolarisVirtualMachine_close;
+	    Java_sun_tools_attach_SolarisVirtualMachine_read;
+	    Java_sun_tools_attach_SolarisVirtualMachine_sigquit;
+	local:
+		*;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/mapfiles/libdt_socket/mapfile-vers	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,33 @@
+#
+# Copyright (c) 2004, 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.
+#
+
+# Define public interface.
+
+SUNWprivate_1.1 {
+	global:
+	    jdwpTransport_OnLoad;
+	local:
+		*;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/mapfiles/libfontmanager/mapfile-vers	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,61 @@
+#
+# Copyright (c) 1997, 2007, 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.
+#
+
+# Define public interface.
+
+SUNWprivate_1.1 {
+	global:
+                getSunFontIDs;
+                newLayoutTableCache; 
+                freeLayoutTableCache;
+                isNullScalerContext;
+                Java_sun_font_NullFontScaler_getNullScalerContext;
+                Java_sun_font_NullFontScaler_getGlyphImage;
+                Java_sun_font_SunFontManager_initIDs;
+                Java_sun_font_StrikeCache_getGlyphCacheDescription;
+                Java_sun_font_StrikeCache_freeIntPointer;
+                Java_sun_font_StrikeCache_freeLongPointer;
+                Java_sun_font_StrikeCache_freeIntMemory;
+                Java_sun_font_StrikeCache_freeLongMemory;
+                Java_sun_font_SunLayoutEngine_initGVIDs;
+                Java_sun_font_SunLayoutEngine_nativeLayout;
+                Java_sun_font_X11TextRenderer_doDrawGlyphList;
+		Java_sun_java2d_loops_DrawGlyphListAA_DrawGlyphListAA;
+		Java_sun_java2d_loops_DrawGlyphListLCD_DrawGlyphListLCD;
+		Java_sun_java2d_loops_DrawGlyphList_DrawGlyphList;
+                Java_sun_font_NativeStrikeDisposer_freeNativeScalerContext;
+                Java_sun_font_NativeStrike_createNullScalerContext;
+                Java_sun_font_NativeStrike_createScalerContext;
+                Java_sun_font_NativeStrike_getMaxGlyph;
+                Java_sun_font_NativeFont_fontExists;
+                Java_sun_font_NativeFont_haveBitmapFonts;
+                Java_sun_font_NativeFont_countGlyphs;
+                Java_sun_font_NativeFont_getGlyphAdvance;
+                Java_sun_font_NativeFont_getGlyphImage;
+                Java_sun_font_NativeFont_getGlyphImageNoDefault;
+                Java_sun_font_NativeFont_getFontMetrics;
+	local:
+		*;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/mapfiles/libfontmanager/mapfile-vers.openjdk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,80 @@
+#
+# Copyright (c) 1997, 2007, 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.
+#
+
+# Define public interface.
+
+# In addition to regular symbols also include Freetype scaler
+
+SUNWprivate_1.1 {
+	global:
+                getSunFontIDs;
+                newLayoutTableCache; 
+                freeLayoutTableCache;
+                isNullScalerContext;
+                Java_sun_font_NullFontScaler_getNullScalerContext;
+                Java_sun_font_NullFontScaler_getGlyphImage;
+                Java_sun_font_SunFontManager_initIDs;
+                Java_sun_font_StrikeCache_getGlyphCacheDescription;
+                Java_sun_font_StrikeCache_freeIntPointer;
+                Java_sun_font_StrikeCache_freeLongPointer;
+                Java_sun_font_StrikeCache_freeIntMemory;
+                Java_sun_font_StrikeCache_freeLongMemory;
+                Java_sun_font_SunLayoutEngine_initGVIDs;
+                Java_sun_font_SunLayoutEngine_nativeLayout;
+                Java_sun_font_X11TextRenderer_doDrawGlyphList;
+		Java_sun_java2d_loops_DrawGlyphListAA_DrawGlyphListAA;
+		Java_sun_java2d_loops_DrawGlyphListLCD_DrawGlyphListLCD;
+		Java_sun_java2d_loops_DrawGlyphList_DrawGlyphList;
+                Java_sun_font_NativeStrikeDisposer_freeNativeScalerContext;
+                Java_sun_font_NativeStrike_createNullScalerContext;
+                Java_sun_font_NativeStrike_createScalerContext;
+                Java_sun_font_NativeStrike_getMaxGlyph;
+                Java_sun_font_NativeFont_fontExists;
+                Java_sun_font_NativeFont_haveBitmapFonts;
+                Java_sun_font_NativeFont_countGlyphs;
+                Java_sun_font_NativeFont_getGlyphAdvance;
+                Java_sun_font_NativeFont_getGlyphImage;
+                Java_sun_font_NativeFont_getGlyphImageNoDefault;
+                Java_sun_font_NativeFont_getFontMetrics;
+                Java_sun_font_FreetypeFontScaler_initIDs;
+                Java_sun_font_FreetypeFontScaler_createScalerContextNative;
+                Java_sun_font_FreetypeFontScaler_disposeNativeScaler;
+                Java_sun_font_FreetypeFontScaler_getFontMetricsNative;
+                Java_sun_font_FreetypeFontScaler_getGlyphAdvanceNative;
+                Java_sun_font_FreetypeFontScaler_getGlyphCodeNative;
+                Java_sun_font_FreetypeFontScaler_getGlyphImageNative;
+                Java_sun_font_FreetypeFontScaler_getGlyphMetricsNative;
+                Java_sun_font_FreetypeFontScaler_getGlyphOutlineBoundsNative;
+                Java_sun_font_FreetypeFontScaler_getGlyphOutlineNative;
+                Java_sun_font_FreetypeFontScaler_getGlyphVectorOutlineNative;
+                Java_sun_font_FreetypeFontScaler_getLayoutTableCacheNative;
+                Java_sun_font_FreetypeFontScaler_getMissingGlyphCodeNative;
+                Java_sun_font_FreetypeFontScaler_getNumGlyphsNative;
+                Java_sun_font_FreetypeFontScaler_getUnitsPerEMNative;
+                Java_sun_font_FreetypeFontScaler_initNativeScaler;
+                Java_sun_font_FreetypeFontScaler_getGlyphPointNative;
+	local:
+		*;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/mapfiles/libjaas/mapfile-vers	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,35 @@
+#
+# Copyright (c) 2005, 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.
+#
+
+# Define library interface.
+
+SUNWprivate_1.1 {
+	global:
+            Java_com_sun_security_auth_module_SolarisSystem_getSolarisInfo;
+            Java_com_sun_security_auth_module_UnixSystem_getUnixInfo;
+        local:
+	    *;
+};
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/mapfiles/libjawt/mapfile-vers	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,33 @@
+#
+# Copyright (c) 2005, 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.
+#
+
+# Define library interface.
+
+SUNWprivate_1.1 {
+	global:
+	    JAWT_GetAWT;
+	local:
+	    *;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/mapfiles/libjdwp/mapfile-vers	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,34 @@
+#
+# Copyright (c) 2003, 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.
+#
+
+# Define public interface.
+
+SUNWprivate_1.1 {
+	global:
+	    Agent_OnLoad;
+	    Agent_OnUnload;
+	local:
+		*;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/mapfiles/libjpeg/mapfile-vers	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,55 @@
+#
+# Copyright (c) 1997, 2007, 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.
+#
+
+# Define public interface.
+
+SUNWprivate_1.1 {
+	global:
+		JNI_OnLoad;
+
+		Java_sun_awt_image_JPEGImageDecoder_initIDs;
+		Java_sun_awt_image_JPEGImageDecoder_readImage;
+
+                Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_initReaderIDs;
+                Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_initJPEGImageReader;
+                Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_setSource;
+                Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_readImageHeader;
+                Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_setOutColorSpace;
+                Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_readImage;
+                Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_abortRead;
+                Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_resetReader;
+                Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_disposeReader;
+                Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_resetLibraryState;
+                Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_initWriterIDs;
+                Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_initJPEGImageWriter;
+                Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_setDest;
+                Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_writeTables;
+                Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_writeImage;
+                Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_abortWrite;
+                Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_resetWriter;
+                Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_disposeWriter;
+	local:
+		*;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/mapfiles/libjpeg/mapfile-vers-closed	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,59 @@
+#
+# Copyright (c) 2007, 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.
+#
+
+# Define public interface.
+
+SUNWprivate_1.1 {
+	global:
+		JNI_OnLoad;
+
+		Java_sun_awt_image_JPEGImageDecoder_initIDs;
+		Java_sun_awt_image_JPEGImageDecoder_readImage;
+		Java_sun_awt_image_codec_JPEGImageDecoderImpl_initDecoder;
+		Java_sun_awt_image_codec_JPEGImageDecoderImpl_readJPEGStream;
+		Java_sun_awt_image_codec_JPEGImageEncoderImpl_initEncoder;
+		Java_sun_awt_image_codec_JPEGImageEncoderImpl_writeJPEGStream;
+
+                Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_initReaderIDs;
+                Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_initJPEGImageReader;
+                Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_setSource;
+                Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_readImageHeader;
+                Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_setOutColorSpace;
+                Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_readImage;
+                Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_abortRead;
+                Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_resetReader;
+                Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_disposeReader;
+                Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_resetLibraryState;
+                Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_initWriterIDs;
+                Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_initJPEGImageWriter;
+                Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_setDest;
+                Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_writeTables;
+                Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_writeImage;
+                Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_abortWrite;
+                Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_resetWriter;
+                Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_disposeWriter;
+	local:
+		*;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/mapfiles/libjpeg/reorder-i586	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,119 @@
+data = R0x2000;
+text = LOAD ?RXO;
+# Test Null
+# Test Exit
+# Test Hello
+# Test Sleep
+# Test IntToString
+# Test LoadToolkit
+# Test LoadFrame
+# Test LoadJFrame
+# Test JHello
+# SwingSet
+text: .text%JNI_OnLoad;
+text: .text%Java_sun_awt_image_JPEGImageDecoder_initIDs;
+text: .text%Java_sun_awt_image_JPEGImageDecoder_readImage;
+text: .text%jStdError;
+text: .text%jCreaDecompress;
+text: .text%jIMemMgr;
+text: .text%jMemInit;
+text: .text%jGetSmall;
+text: .text%jIMReader;
+text: .text%alloc_small: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jmemmgr.o;
+text: .text%reset_marker_reader: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmarker.o;
+text: .text%jIInCtlr;
+# text: .text%GET_ARRAYS: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jpegdecoder.o;
+text: .text%jReadHeader;
+text: .text%jConsumeInput;
+text: .text%reset_input_controller: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdinput.o;
+text: .text%reset_error_mgr: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jerror.o;
+text: .text%sun_jpeg_init_source;
+text: .text%consume_markers: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdinput.o;
+text: .text%read_markers: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmarker.o;
+# text: .text%first_marker: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmarker.o;
+text: .text%sun_jpeg_fill_input_buffer;
+# text: .text%RELEASE_ARRAYS: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jpegdecoder.o;
+# text: .text%get_soi: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmarker.o;
+text: .text%emit_message: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jerror.o;
+# text: .text%next_marker: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmarker.o;
+text: .text%get_interesting_appn: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmarker.o;
+# text: .text%examine_app0: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmarker.o;
+text: .text%skip_variable: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmarker.o;
+text: .text%sun_jpeg_skip_input_data;
+# text: .text%examine_app14: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmarker.o;
+text: .text%get_dqt: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmarker.o;
+text: .text%jAlcQTable;
+text: .text%get_sof: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmarker.o;
+# text: .text%get_dri: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmarker.o;
+text: .text%get_dht: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmarker.o;
+text: .text%jAlcHTable;
+text: .text%get_sos: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmarker.o;
+# text: .text%initial_setup: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdinput.o;
+text: .text%jDivRound;
+# text: .text%default_decompress_parms: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdapimin.o;
+text: .text%jHasMultScn;
+text: .text%jStrtDecompress;
+text: .text%jIDMaster;
+# text: .text%master_selection: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmaster.o;
+text: .text%jCalcDimensions;
+# text: .text%use_merged_upsample: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmaster.o;
+# text: .text%prepare_range_limit_table: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmaster.o;
+text: .text%jIDColor;
+# text: .text%build_ycc_rgb_table: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdcolor.o;
+text: .text%jIUpsampler;
+text: .text%jRound;
+text: .text%alloc_sarray: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jmemmgr.o;
+text: .text%alloc_large: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jmemmgr.o;
+text: .text%jGetLarge;
+text: .text%jIDPostC;
+text: .text%jIIDCT;
+text: .text%jIHDecoder;
+text: .text%jIDCoefC;
+text: .text%jIDMainC;
+# text: .text%alloc_funny_pointers: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmainct.o;
+text: .text%realize_virt_arrays: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jmemmgr.o;
+text: .text%start_input_pass: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdinput.o;
+# text: .text%per_scan_setup: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdinput.o;
+# text: .text%latch_quant_tables: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdinput.o;
+text: .text%start_pass_huff_decoder: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdhuff.o;
+text: .text%jMkDDerived;
+text: .text%start_input_pass: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdcoefct.o;
+# text: .text%start_iMCU_row: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdcoefct.o;
+# text: .text%output_pass_setup: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdapistd.o;
+text: .text%prepare_for_output_pass: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmaster.o;
+text: .text%start_pass: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jddctmgr.o;
+text: .text%start_output_pass: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdcoefct.o;
+text: .text%start_pass_dcolor: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdcolor.o;
+text: .text%start_pass_upsample: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdsample.o;
+text: .text%start_pass_dpost: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdpostct.o;
+text: .text%start_pass_main: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmainct.o;
+# text: .text%make_funny_pointers: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmainct.o;
+text: .text%jReadScanlines;
+text: .text%process_data_context_main: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmainct.o;
+text: .text%decompress_onepass: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdcoefct.o;
+text: .text%jZeroFar;
+text: .text%decode_mcu: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdhuff.o;
+text: .text%jFilBitBuf;
+text: .text%jHufDecode;
+text: .text%jRDislow;
+text: .text%sep_upsample: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdsample.o;
+text: .text%fullsize_upsample: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdsample.o;
+text: .text%h2v2_fancy_upsample: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdsample.o;
+text: .text%ycc_rgb_convert: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdcolor.o;
+# text: .text%set_wraparound_pointers: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmainct.o;
+# text: .text%process_restart: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdhuff.o;
+text: .text%read_restart_marker: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmarker.o;
+text: .text%finish_input_pass: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdinput.o;
+# text: .text%set_bottom_pointers: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmainct.o;
+text: .text%jFinDecompress;
+text: .text%finish_output_pass: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmaster.o;
+text: .text%sun_jpeg_term_source;
+text: .text%jAbort;
+text: .text%free_pool: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jmemmgr.o;
+text: .text%jFreeLarge;
+text: .text%jFreeSmall;
+text: .text%jDestDecompress;
+text: .text%jDestroy;
+text: .text%self_destruct: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jmemmgr.o;
+text: .text%jMemTerm;
+text: .text%process_data_simple_main: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmainct.o;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/mapfiles/libjpeg/reorder-sparc	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,119 @@
+data = R0x2000;
+text = LOAD ?RXO;
+# Test Null
+# Test Exit
+# Test Hello
+# Test Sleep
+# Test IntToString
+# Test LoadToolkit
+# Test LoadFrame
+# Test LoadJFrame
+# Test JHello
+# SwingSet
+text: .text%JNI_OnLoad;
+text: .text%Java_sun_awt_image_JPEGImageDecoder_initIDs;
+text: .text%Java_sun_awt_image_JPEGImageDecoder_readImage;
+text: .text%jStdError;
+text: .text%jCreaDecompress;
+text: .text%jIMemMgr;
+text: .text%jMemInit;
+text: .text%jGetSmall;
+text: .text%jIMReader;
+text: .text%alloc_small: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jmemmgr.o;
+text: .text%reset_marker_reader: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmarker.o;
+text: .text%jIInCtlr;
+text: .text%GET_ARRAYS: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jpegdecoder.o;
+text: .text%jReadHeader;
+text: .text%jConsumeInput;
+text: .text%reset_input_controller: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdinput.o;
+text: .text%reset_error_mgr: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jerror.o;
+text: .text%sun_jpeg_init_source;
+text: .text%consume_markers: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdinput.o;
+text: .text%read_markers: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmarker.o;
+# text: .text%first_marker: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmarker.o;
+text: .text%sun_jpeg_fill_input_buffer;
+text: .text%RELEASE_ARRAYS: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jpegdecoder.o;
+# text: .text%get_soi: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmarker.o;
+text: .text%emit_message: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jerror.o;
+text: .text%next_marker: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmarker.o;
+text: .text%get_interesting_appn: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmarker.o;
+text: .text%examine_app0: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmarker.o;
+text: .text%skip_variable: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmarker.o;
+text: .text%sun_jpeg_skip_input_data;
+text: .text%examine_app14: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmarker.o;
+text: .text%get_dqt: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmarker.o;
+text: .text%jAlcQTable;
+text: .text%get_sof: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmarker.o;
+# text: .text%get_dri: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmarker.o;
+text: .text%get_dht: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmarker.o;
+text: .text%jAlcHTable;
+text: .text%get_sos: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmarker.o;
+text: .text%initial_setup: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdinput.o;
+text: .text%jDivRound;
+text: .text%default_decompress_parms: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdapimin.o;
+text: .text%jHasMultScn;
+text: .text%jStrtDecompress;
+text: .text%jIDMaster;
+text: .text%master_selection: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmaster.o;
+text: .text%jCalcDimensions;
+# text: .text%use_merged_upsample: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmaster.o;
+# text: .text%prepare_range_limit_table: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmaster.o;
+text: .text%jIDColor;
+# text: .text%build_ycc_rgb_table: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdcolor.o;
+text: .text%jIUpsampler;
+text: .text%jRound;
+text: .text%alloc_sarray: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jmemmgr.o;
+text: .text%alloc_large: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jmemmgr.o;
+text: .text%jGetLarge;
+text: .text%jIDPostC;
+text: .text%jIIDCT;
+text: .text%jIHDecoder;
+text: .text%jIDCoefC;
+text: .text%jIDMainC;
+text: .text%alloc_funny_pointers: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmainct.o;
+text: .text%realize_virt_arrays: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jmemmgr.o;
+text: .text%start_input_pass: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdinput.o;
+text: .text%per_scan_setup: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdinput.o;
+text: .text%latch_quant_tables: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdinput.o;
+text: .text%start_pass_huff_decoder: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdhuff.o;
+text: .text%jMkDDerived;
+text: .text%start_input_pass: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdcoefct.o;
+# text: .text%start_iMCU_row: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdcoefct.o;
+text: .text%output_pass_setup: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdapistd.o;
+text: .text%prepare_for_output_pass: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmaster.o;
+text: .text%start_pass: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jddctmgr.o;
+text: .text%start_output_pass: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdcoefct.o;
+text: .text%start_pass_dcolor: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdcolor.o;
+text: .text%start_pass_upsample: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdsample.o;
+text: .text%start_pass_dpost: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdpostct.o;
+text: .text%start_pass_main: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmainct.o;
+text: .text%make_funny_pointers: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmainct.o;
+text: .text%jReadScanlines;
+text: .text%process_data_context_main: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmainct.o;
+text: .text%decompress_onepass: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdcoefct.o;
+text: .text%jZeroFar;
+text: .text%decode_mcu: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdhuff.o;
+text: .text%jFilBitBuf;
+text: .text%jHufDecode;
+text: .text%jRDislow;
+text: .text%sep_upsample: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdsample.o;
+text: .text%fullsize_upsample: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdsample.o;
+text: .text%h2v2_fancy_upsample: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdsample.o;
+text: .text%ycc_rgb_convert: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdcolor.o;
+# text: .text%set_wraparound_pointers: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmainct.o;
+#text: .text%process_restart: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdhuff.o;
+text: .text%read_restart_marker: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmarker.o;
+text: .text%finish_input_pass: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdinput.o;
+# text: .text%set_bottom_pointers: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmainct.o;
+text: .text%jFinDecompress;
+text: .text%finish_output_pass: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmaster.o;
+text: .text%sun_jpeg_term_source;
+text: .text%jAbort;
+text: .text%free_pool: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jmemmgr.o;
+text: .text%jFreeLarge;
+text: .text%jFreeSmall;
+text: .text%jDestDecompress;
+text: .text%jDestroy;
+text: .text%self_destruct: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jmemmgr.o;
+text: .text%jMemTerm;
+text: .text%process_data_simple_main: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj/jdmainct.o;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/mapfiles/libjpeg/reorder-sparcv9	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,119 @@
+data = R0x2000;
+text = LOAD ?RXO;
+# Test Null
+# Test Exit
+# Test Hello
+# Test Sleep
+# Test IntToString
+# Test LoadToolkit
+# Test LoadFrame
+# Test LoadJFrame
+# Test JHello
+# SwingSet
+text: .text%JNI_OnLoad;
+text: .text%Java_sun_awt_image_JPEGImageDecoder_initIDs;
+text: .text%Java_sun_awt_image_JPEGImageDecoder_readImage;
+text: .text%jStdError;
+text: .text%jCreaDecompress;
+text: .text%jIMemMgr;
+text: .text%jMemInit;
+text: .text%jGetSmall;
+text: .text%jIMReader;
+text: .text%alloc_small: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jmemmgr.o;
+text: .text%reset_marker_reader: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdmarker.o;
+text: .text%jIInCtlr;
+text: .text%GET_ARRAYS: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jpegdecoder.o;
+text: .text%jReadHeader;
+text: .text%jConsumeInput;
+text: .text%reset_input_controller: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdinput.o;
+text: .text%reset_error_mgr: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jerror.o;
+text: .text%sun_jpeg_init_source;
+text: .text%consume_markers: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdinput.o;
+text: .text%read_markers: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdmarker.o;
+# text: .text%first_marker: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdmarker.o;
+text: .text%sun_jpeg_fill_input_buffer;
+text: .text%RELEASE_ARRAYS: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jpegdecoder.o;
+# text: .text%get_soi: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdmarker.o;
+text: .text%emit_message: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jerror.o;
+text: .text%next_marker: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdmarker.o;
+text: .text%get_interesting_appn: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdmarker.o;
+text: .text%examine_app0: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdmarker.o;
+text: .text%skip_variable: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdmarker.o;
+text: .text%sun_jpeg_skip_input_data;
+text: .text%examine_app14: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdmarker.o;
+text: .text%get_dqt: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdmarker.o;
+text: .text%jAlcQTable;
+text: .text%get_sof: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdmarker.o;
+# text: .text%get_dri: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdmarker.o;
+text: .text%get_dht: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdmarker.o;
+text: .text%jAlcHTable;
+text: .text%get_sos: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdmarker.o;
+text: .text%initial_setup: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdinput.o;
+text: .text%jDivRound;
+text: .text%default_decompress_parms: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdapimin.o;
+text: .text%jHasMultScn;
+text: .text%jStrtDecompress;
+text: .text%jIDMaster;
+text: .text%master_selection: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdmaster.o;
+text: .text%jCalcDimensions;
+# text: .text%use_merged_upsample: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdmaster.o;
+# text: .text%prepare_range_limit_table: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdmaster.o;
+text: .text%jIDColor;
+# text: .text%build_ycc_rgb_table: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdcolor.o;
+text: .text%jIUpsampler;
+text: .text%jRound;
+text: .text%alloc_sarray: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jmemmgr.o;
+text: .text%alloc_large: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jmemmgr.o;
+text: .text%jGetLarge;
+text: .text%jIDPostC;
+text: .text%jIIDCT;
+text: .text%jIHDecoder;
+text: .text%jIDCoefC;
+text: .text%jIDMainC;
+text: .text%alloc_funny_pointers: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdmainct.o;
+text: .text%realize_virt_arrays: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jmemmgr.o;
+text: .text%start_input_pass: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdinput.o;
+text: .text%per_scan_setup: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdinput.o;
+text: .text%latch_quant_tables: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdinput.o;
+text: .text%start_pass_huff_decoder: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdhuff.o;
+text: .text%jMkDDerived;
+text: .text%start_input_pass: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdcoefct.o;
+# text: .text%start_iMCU_row: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdcoefct.o;
+text: .text%output_pass_setup: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdapistd.o;
+text: .text%prepare_for_output_pass: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdmaster.o;
+text: .text%start_pass: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jddctmgr.o;
+text: .text%start_output_pass: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdcoefct.o;
+text: .text%start_pass_dcolor: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdcolor.o;
+text: .text%start_pass_upsample: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdsample.o;
+text: .text%start_pass_dpost: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdpostct.o;
+text: .text%start_pass_main: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdmainct.o;
+text: .text%make_funny_pointers: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdmainct.o;
+text: .text%jReadScanlines;
+text: .text%process_data_context_main: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdmainct.o;
+text: .text%decompress_onepass: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdcoefct.o;
+text: .text%jZeroFar;
+text: .text%decode_mcu: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdhuff.o;
+text: .text%jFilBitBuf;
+text: .text%jHufDecode;
+text: .text%jRDislow;
+text: .text%sep_upsample: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdsample.o;
+text: .text%fullsize_upsample: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdsample.o;
+text: .text%h2v2_fancy_upsample: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdsample.o;
+text: .text%ycc_rgb_convert: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdcolor.o;
+# text: .text%set_wraparound_pointers: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdmainct.o;
+text: .text%process_restart: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdhuff.o;
+text: .text%read_restart_marker: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdmarker.o;
+text: .text%finish_input_pass: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdinput.o;
+# text: .text%set_bottom_pointers: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdmainct.o;
+text: .text%jFinDecompress;
+text: .text%finish_output_pass: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdmaster.o;
+text: .text%sun_jpeg_term_source;
+text: .text%jAbort;
+text: .text%free_pool: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jmemmgr.o;
+text: .text%jFreeLarge;
+text: .text%jFreeSmall;
+text: .text%jDestDecompress;
+text: .text%jDestroy;
+text: .text%self_destruct: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jmemmgr.o;
+text: .text%jMemTerm;
+text: .text%process_data_simple_main: OUTPUTDIR/tmp/sun/sun.awt/jpeg/obj64/jdmainct.o;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/mapfiles/libjsdt/mapfile-vers	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,37 @@
+#
+# Copyright (c) 2008, 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.
+#
+
+# Define library interface.
+
+SUNWprivate_1.1 {
+    global:
+        Java_sun_tracing_dtrace_JVM_isSupported0;
+        Java_sun_tracing_dtrace_JVM_activate0;
+        Java_sun_tracing_dtrace_JVM_dispose0;
+        Java_sun_tracing_dtrace_JVM_isEnabled0;
+        Java_sun_tracing_dtrace_JVM_defineClass0;
+    local:
+        *;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/mapfiles/liblcms/mapfile-vers	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,45 @@
+#
+# Copyright (c) 2007, 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.
+#
+
+# Define public interface.
+
+SUNWprivate_1.1 {
+	global:
+        Java_sun_java2d_cmm_lcms_LCMS_loadProfile;
+        Java_sun_java2d_cmm_lcms_LCMS_freeProfile;
+        Java_sun_java2d_cmm_lcms_LCMS_getProfileSize;
+        Java_sun_java2d_cmm_lcms_LCMS_getProfileData;
+        Java_sun_java2d_cmm_lcms_LCMS_getTagSize;
+        Java_sun_java2d_cmm_lcms_LCMS_getTagData;
+        Java_sun_java2d_cmm_lcms_LCMS_setTagData;
+        Java_sun_java2d_cmm_lcms_LCMS_colorConvert;
+        Java_sun_java2d_cmm_lcms_LCMS_getProfileID;
+        Java_sun_java2d_cmm_lcms_LCMS_initLCMS;
+        Java_sun_java2d_cmm_lcms_LCMS_createNativeTransform;
+        JNI_OnLoad;
+
+	local:
+		*;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/mapfiles/libsctp/mapfile-vers	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,55 @@
+#
+# Copyright (c) 2009, 2010, 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.
+#
+
+SUNWprivate_1.1 {
+	global:
+		Java_sun_nio_ch_sctp_SctpNet_init;
+		Java_sun_nio_ch_sctp_SctpNet_socket0;
+		Java_sun_nio_ch_sctp_SctpNet_bindx;
+		Java_sun_nio_ch_sctp_SctpNet_branch0;
+		Java_sun_nio_ch_sctp_SctpNet_listen0;
+		Java_sun_nio_ch_sctp_SctpNet_connect0;
+		Java_sun_nio_ch_sctp_SctpNet_close0;
+		Java_sun_nio_ch_sctp_SctpNet_preClose0;
+		Java_sun_nio_ch_sctp_SctpNet_getLocalAddresses0;
+		Java_sun_nio_ch_sctp_SctpNet_getRemoteAddresses0;
+		Java_sun_nio_ch_sctp_SctpNet_getPrimAddrOption0;
+		Java_sun_nio_ch_sctp_SctpNet_setPrimAddrOption0;
+		Java_sun_nio_ch_sctp_SctpNet_setPeerPrimAddrOption0;
+		Java_sun_nio_ch_sctp_SctpNet_getInitMsgOption0;
+		Java_sun_nio_ch_sctp_SctpNet_setInitMsgOption0;
+		Java_sun_nio_ch_sctp_SctpNet_getIntOption0;
+		Java_sun_nio_ch_sctp_SctpNet_setIntOption0;
+		Java_sun_nio_ch_sctp_SctpNet_shutdown0;
+		Java_sun_nio_ch_sctp_SctpChannelImpl_initIDs;
+		Java_sun_nio_ch_sctp_SctpChannelImpl_checkConnect;
+		Java_sun_nio_ch_sctp_SctpChannelImpl_receive0;
+		Java_sun_nio_ch_sctp_SctpChannelImpl_send0;
+		Java_sun_nio_ch_sctp_SctpServerChannelImpl_initIDs;
+		Java_sun_nio_ch_sctp_SctpServerChannelImpl_accept0;
+                JNI_OnLoad;
+	local:
+		*;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/mapfiles/libt2k/mapfile-vers	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,49 @@
+#
+# Copyright (c) 2007, 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.
+#
+
+# Define public interface.
+
+SUNWprivate_1.1 {
+	global:
+             Java_sun_font_T2KFontScaler_createScalerContextNative;
+             Java_sun_font_T2KFontScaler_disposeNativeScaler;
+             Java_sun_font_T2KFontScaler_getFontMetricsNative;
+             Java_sun_font_T2KFontScaler_getGlyphAdvanceNative;
+             Java_sun_font_T2KFontScaler_getGlyphCodeNative;
+             Java_sun_font_T2KFontScaler_getGlyphImageNative;
+             Java_sun_font_T2KFontScaler_getGlyphMetricsNative;
+             Java_sun_font_T2KFontScaler_getGlyphOutlineBoundsNative;
+             Java_sun_font_T2KFontScaler_getGlyphOutlineNative;
+             Java_sun_font_T2KFontScaler_getGlyphVectorOutlineNative;
+             Java_sun_font_T2KFontScaler_getLayoutTableCacheNative;
+             Java_sun_font_T2KFontScaler_getMissingGlyphCodeNative;
+             Java_sun_font_T2KFontScaler_getNumGlyphsNative;
+             Java_sun_font_T2KFontScaler_getUnitsPerEMNative;
+             Java_sun_font_T2KFontScaler_initIDs;
+             Java_sun_font_T2KFontScaler_initNativeScaler;
+             Java_sun_font_T2KFontScaler_getGlyphPointNative;
+	local:
+		*;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/mapfiles/libunpack/mapfile-vers	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,40 @@
+
+#
+# Copyright (c) 2005, 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.
+#
+
+# Define library interface.
+
+SUNWprivate_1.1 {
+	global:
+	    Java_com_sun_java_util_jar_pack_NativeUnpack_finish;
+	    Java_com_sun_java_util_jar_pack_NativeUnpack_getNextFile;
+	    Java_com_sun_java_util_jar_pack_NativeUnpack_getOption;
+	    Java_com_sun_java_util_jar_pack_NativeUnpack_getUnusedInput;
+	    Java_com_sun_java_util_jar_pack_NativeUnpack_initIDs;
+	    Java_com_sun_java_util_jar_pack_NativeUnpack_setOption;
+	    Java_com_sun_java_util_jar_pack_NativeUnpack_start;
+	local:
+	    *;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/mapfiles/libunpack/mapfile-vers-unpack200	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,31 @@
+#
+# Copyright (c) 2011, 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.
+#
+
+# Define library interface.
+
+SUNWprivate_1.1 {
+	local:
+	    *;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/mapfiles/libverify/mapfile-vers	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,34 @@
+#
+# Copyright (c) 2000, 2003, 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.
+#
+ 
+SUNWprivate_1.1 {
+   global:
+           VerifyClass;
+           VerifyClassForMajorVersion;
+           VerifyClassname;
+           VerifyFixClassname;
+   local:
+           *;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/mapfiles/libverify/reorder-i586	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,40 @@
+data = R0x2000;
+text = LOAD ?RXO;
+# Test Null
+text: .text%VerifyFixClassname;
+text: .text%VerifyClassname;
+text: .text%skip_over_fieldname: OUTPUTDIR/tmp/java/verify/obj/check_format.o;
+text: .text%skip_over_field_signature: OUTPUTDIR/tmp/java/verify/obj/check_format.o;
+text: .text%VerifyClass;
+text: .text%make_class_info_from_name: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%class_name_to_ID: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%make_class_info: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%free_block: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%verify_method: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%verify_opcode_operands: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%initialize_dataflow: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%signature_to_fieldtype: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%check_register_values: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%pop_stack: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%update_registers: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%push_stack: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%merge_into_successors: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%cp_index_to_class_fullinfo: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%set_protected: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%merge_into_one_successor: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%merge_registers: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+# Test Exit
+# Test Hello
+text: .text%merge_fullinfo_types: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%isAssignableTo: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+# Test Sleep
+text: .text%isLegalTarget: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%verify_constant_pool_type: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+# Test IntToString
+# Test LoadToolkit
+# Test LoadFrame
+# Test LoadJFrame
+# Test JHello
+# SwingSet
+text: .text%copy_stack: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%ntohl: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/mapfiles/libverify/reorder-sparc	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,44 @@
+data = R0x2000;
+text = LOAD ?RXO;
+# Test Null
+text: .text%VerifyFixClassname;
+text: .text%VerifyClassname;
+text: .text%skip_over_fieldname: OUTPUTDIR/tmp/java/verify/obj/check_format.o;
+text: .text%VerifyClass;
+text: .text%CCinit: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%initialize_class_hash;
+text: .text%make_class_info_from_name: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%make_class_info: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%verify_method: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%instruction_length: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%verify_opcode_operands: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%initialize_exception_table: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%initialize_dataflow: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%signature_to_fieldtype: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%check_register_values: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%pop_stack: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%update_registers: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%push_stack: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%merge_into_successors: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%pop_and_free: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%cp_index_to_class_fullinfo: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%set_protected: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%merge_into_one_successor: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%merge_stack: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%merge_registers: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%finalize_class_hash: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%CCdestroy: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+# Test Exit
+# Test Hello
+text: .text%merge_fullinfo_types: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+# Test Sleep
+# Test IntToString
+# Test LoadToolkit
+# Test LoadFrame
+text: .text%verify_constant_pool_type: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+# Test LoadJFrame
+# Test JHello
+# SwingSet
+text: .text%verify_field: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%check_and_push: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
+text: .text%signature_to_args_size: OUTPUTDIR/tmp/java/verify/obj/check_code.o;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/mapfiles/libverify/reorder-sparcv9	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,45 @@
+data = R0x2000;
+text = LOAD ?RXO;
+# Test Null
+text: .text%VerifyFixClassname;
+text: .text%next_utf2unicode: OUTPUTDIR/tmp/java/verify/obj64/check_format.o;
+text: .text%VerifyClassname;
+text: .text%skip_over_fieldname: OUTPUTDIR/tmp/java/verify/obj64/check_format.o;
+text: .text%VerifyClass;
+text: .text%CCinit: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%initialize_class_hash;
+text: .text%make_class_info_from_name: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%make_class_info: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%verify_method: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%instruction_length: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%verify_opcode_operands: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%verify_constant_pool_type: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%cp_index_to_class_fullinfo: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%check_and_push: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%pop_and_free: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%set_protected: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%initialize_exception_table: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%merge_fullinfo_types: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%initialize_dataflow: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%signature_to_fieldtype: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%check_register_values: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%pop_stack: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%update_registers: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%push_stack: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%merge_into_successors: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%merge_into_one_successor: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%merge_stack: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%merge_registers: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%finalize_class_hash: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%CCdestroy: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+# Test Exit
+# Test Hello
+# Test Sleep
+# Test IntToString
+# Test LoadToolkit
+# Test LoadFrame
+# Test LoadJFrame
+# Test JHello
+# SwingSet
+text: .text%verify_field: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
+text: .text%signature_to_args_size: OUTPUTDIR/tmp/java/verify/obj64/check_code.o;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/mapfiles/libzip/mapfile-vers	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,86 @@
+#
+# Copyright (c) 1997, 2005, 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.
+#
+
+# Define public interface.
+
+SUNWprivate_1.1 {
+	global:
+		Java_java_util_jar_JarFile_getMetaInfEntryNames;
+		Java_java_util_zip_Adler32_update;
+		Java_java_util_zip_Adler32_updateBytes;
+		Java_java_util_zip_Adler32_updateByteBuffer;
+		Java_java_util_zip_CRC32_update;
+		Java_java_util_zip_CRC32_updateBytes;
+		Java_java_util_zip_CRC32_updateByteBuffer;
+		Java_java_util_zip_Deflater_deflateBytes;
+		Java_java_util_zip_Deflater_end;
+		Java_java_util_zip_Deflater_getAdler;
+		Java_java_util_zip_Deflater_getBytesRead;
+		Java_java_util_zip_Deflater_getBytesWritten;
+		Java_java_util_zip_Deflater_init;
+		Java_java_util_zip_Deflater_initIDs;
+		Java_java_util_zip_Deflater_reset;
+		Java_java_util_zip_Deflater_setDictionary;
+		Java_java_util_zip_Inflater_end;
+		Java_java_util_zip_Inflater_getAdler;
+		Java_java_util_zip_Inflater_getBytesRead;
+		Java_java_util_zip_Inflater_getBytesWritten;
+		Java_java_util_zip_Inflater_inflateBytes;
+		Java_java_util_zip_Inflater_init;
+		Java_java_util_zip_Inflater_initIDs;
+		Java_java_util_zip_Inflater_reset;
+		Java_java_util_zip_Inflater_setDictionary;
+		Java_java_util_zip_ZipFile_close;
+		Java_java_util_zip_ZipFile_getCommentBytes;
+		Java_java_util_zip_ZipFile_freeEntry;
+		Java_java_util_zip_ZipFile_getEntry;
+		Java_java_util_zip_ZipFile_getEntryBytes;
+		Java_java_util_zip_ZipFile_getEntryCrc;
+		Java_java_util_zip_ZipFile_getEntryCSize;
+		Java_java_util_zip_ZipFile_getEntryFlag;
+		Java_java_util_zip_ZipFile_getEntryMethod;
+		Java_java_util_zip_ZipFile_getEntrySize;
+		Java_java_util_zip_ZipFile_getEntryTime;
+		Java_java_util_zip_ZipFile_getNextEntry;
+		Java_java_util_zip_ZipFile_getZipMessage;
+		Java_java_util_zip_ZipFile_getTotal;
+		Java_java_util_zip_ZipFile_initIDs;
+		Java_java_util_zip_ZipFile_open;
+		Java_java_util_zip_ZipFile_read;
+
+		ZIP_Close;
+		ZIP_CRC32;
+		ZIP_FindEntry;
+		ZIP_GetEntry;
+		ZIP_GetNextEntry;
+		ZIP_Lock;
+		ZIP_Open;
+		ZIP_Read;
+		ZIP_ReadEntry;
+		ZIP_Unlock;
+
+	local:
+		*;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/mapfiles/libzip/reorder-i586	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,49 @@
+data = R0x2000;
+text = LOAD ?RXO;
+# Test Null
+text: .text%ZIP_Open;
+text: .text%ZIP_Open_Generic;
+text: .text%InitializeZip;
+text: .text%allocZip;
+text: .text%readCEN: OUTPUTDIR/tmp/sun/java.util.zip/zip/obj/zip_util.o;
+text: .text%findEND: OUTPUTDIR/tmp/sun/java.util.zip/zip/obj/zip_util.o;
+text: .text%hash: OUTPUTDIR/tmp/sun/java.util.zip/zip/obj/zip_util.o;
+text: .text%isMetaName: OUTPUTDIR/tmp/sun/java.util.zip/zip/obj/zip_util.o;
+text: .text%addMetaName: OUTPUTDIR/tmp/sun/java.util.zip/zip/obj/zip_util.o;
+text: .text%ZIP_FindEntry;
+text: .text%ZIP_GetEntry;
+text: .text%ZIP_Lock;
+text: .text%readLOC: OUTPUTDIR/tmp/sun/java.util.zip/zip/obj/zip_util.o;
+text: .text%ZIP_Unlock;
+text: .text%ZIP_FreeEntry;
+text: .text%Java_java_util_zip_ZipFile_initIDs;
+text: .text%Java_java_util_zip_ZipFile_open;
+text: .text%Java_java_util_zip_ZipFile_getTotal;
+text: .text%Java_java_util_zip_ZipFile_getEntry;
+text: .text%Java_java_util_zip_ZipFile_freeEntry;
+text: .text%Java_java_util_zip_ZipFile_getEntryTime;
+text: .text%Java_java_util_zip_ZipFile_getEntryCrc;
+text: .text%Java_java_util_zip_ZipFile_getEntryCSize;
+text: .text%Java_java_util_zip_ZipFile_getEntrySize;
+text: .text%Java_java_util_zip_ZipFile_getEntryFlag;
+text: .text%Java_java_util_zip_ZipFile_getEntryMethod;
+text: .text%Java_java_util_zip_ZipFile_getEntryBytes;
+text: .text%Java_java_util_zip_Inflater_initIDs;
+text: .text%Java_java_util_zip_Inflater_init;
+text: .text%inflateInit2_;
+text: .text%zcalloc;
+text: .text%inflateReset;
+text: .text%Java_java_util_zip_Inflater_inflateBytes;
+text: .text%inflate;
+text: .text%Java_java_util_zip_ZipFile_read;
+text: .text%ZIP_Read;
+text: .text%huft_build: OUTPUTDIR/tmp/sun/java.util.zip/zip/obj/inftrees.o;
+text: .text%zcfree;
+text: .text%Java_java_util_jar_JarFile_getMetaInfEntryNames;
+text: .text%ZIP_ReadEntry;
+text: .text%InflateFully;
+text: .text%inflateEnd;
+text: .text%Java_java_util_zip_Inflater_reset;
+text: .text%Java_java_util_zip_ZipFile_close;
+text: .text%ZIP_Close;
+text: .text%Java_java_util_zip_Inflater_end;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/mapfiles/libzip/reorder-sparc	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,43 @@
+data = R0x2000;
+text = LOAD ?RXO;
+# Test Null
+text: .text%ZIP_Open;
+text: .text%ZIP_Open_Generic;
+text: .text%InitializeZip;
+text: .text%allocZip;
+text: .text%readCEN: OUTPUTDIR/tmp/sun/java.util.zip/zip/obj/zip_util.o;
+text: .text%findEND: OUTPUTDIR/tmp/sun/java.util.zip/zip/obj/zip_util.o;
+text: .text%hash: OUTPUTDIR/tmp/sun/java.util.zip/zip/obj/zip_util.o;
+text: .text%isMetaName: OUTPUTDIR/tmp/sun/java.util.zip/zip/obj/zip_util.o;
+text: .text%addMetaName: OUTPUTDIR/tmp/sun/java.util.zip/zip/obj/zip_util.o;
+text: .text%ZIP_FindEntry;
+text: .text%ZIP_GetEntry;
+text: .text%ZIP_Lock;
+text: .text%ZIP_Unlock;
+text: .text%ZIP_FreeEntry;
+text: .text%Java_java_util_zip_ZipFile_initIDs;
+text: .text%Java_java_util_zip_ZipFile_open;
+text: .text%Java_java_util_zip_ZipFile_getTotal;
+text: .text%Java_java_util_zip_ZipFile_getEntry;
+text: .text%Java_java_util_zip_ZipFile_freeEntry;
+text: .text%Java_java_util_zip_ZipFile_getEntryTime;
+text: .text%Java_java_util_zip_ZipFile_getEntryCrc;
+text: .text%Java_java_util_zip_ZipFile_getEntryCSize;
+text: .text%Java_java_util_zip_ZipFile_getEntrySize;
+text: .text%Java_java_util_zip_ZipFile_getEntryFlag;
+text: .text%Java_java_util_zip_ZipFile_getEntryMethod;
+text: .text%Java_java_util_zip_ZipFile_getEntryBytes;
+text: .text%Java_java_util_zip_Inflater_initIDs;
+text: .text%Java_java_util_zip_Inflater_init;
+text: .text%inflateInit2_;
+text: .text%zcalloc;
+text: .text%Java_java_util_zip_Inflater_inflateBytes;
+text: .text%Java_java_util_zip_ZipFile_read;
+text: .text%ZIP_Read;
+text: .text%zcfree;
+text: .text%Java_java_util_jar_JarFile_getMetaInfEntryNames;
+text: .text%Java_java_util_zip_Inflater_reset;
+text: .text%Java_java_util_zip_Inflater_end;
+text: .text%inflateEnd;
+text: .text%Java_java_util_zip_ZipFile_close;
+text: .text%ZIP_Close;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/mapfiles/libzip/reorder-sparcv9	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,48 @@
+data = R0x2000;
+text = LOAD ?RXO;
+text: .text%ZIP_Open;
+text: .text%ZIP_Open_Generic;
+text: .text%InitializeZip;
+text: .text%allocZip;
+text: .text%readCEN: OUTPUTDIR/tmp/sun/java.util.zip/zip/obj64/zip_util.o;
+text: .text%findEND: OUTPUTDIR/tmp/sun/java.util.zip/zip/obj64/zip_util.o;
+text: .text%hash: OUTPUTDIR/tmp/sun/java.util.zip/zip/obj64/zip_util.o;
+text: .text%isMetaName: OUTPUTDIR/tmp/sun/java.util.zip/zip/obj64/zip_util.o;
+text: .text%addMetaName: OUTPUTDIR/tmp/sun/java.util.zip/zip/obj64/zip_util.o;
+text: .text%ZIP_FindEntry;
+text: .text%ZIP_GetEntry;
+text: .text%ZIP_Lock;
+text: .text%readLOC: OUTPUTDIR/tmp/sun/java.util.zip/zip/obj64/zip_util.o;
+text: .text%ZIP_Unlock;
+text: .text%ZIP_FreeEntry;
+text: .text%Java_java_util_zip_ZipFile_initIDs;
+text: .text%Java_java_util_zip_ZipFile_open;
+text: .text%Java_java_util_zip_ZipFile_getTotal;
+text: .text%Java_java_util_zip_ZipFile_getEntry;
+text: .text%Java_java_util_zip_ZipFile_freeEntry;
+text: .text%Java_java_util_zip_ZipFile_getEntryTime;
+text: .text%Java_java_util_zip_ZipFile_getEntryCrc;
+text: .text%Java_java_util_zip_ZipFile_getEntryCSize;
+text: .text%Java_java_util_zip_ZipFile_getEntrySize;
+text: .text%Java_java_util_zip_ZipFile_getEntryFlag;
+text: .text%Java_java_util_zip_ZipFile_getEntryMethod;
+text: .text%Java_java_util_zip_ZipFile_getEntryBytes;
+text: .text%Java_java_util_zip_Inflater_initIDs;
+text: .text%Java_java_util_zip_Inflater_init;
+text: .text%inflateInit2_;
+text: .text%zcalloc;
+text: .text%inflateReset;
+text: .text%Java_java_util_zip_Inflater_inflateBytes;
+text: .text%inflate;
+text: .text%Java_java_util_zip_ZipFile_read;
+text: .text%ZIP_Read;
+text: .text%huft_build: OUTPUTDIR/tmp/sun/java.util.zip/zip/obj64/inftrees.o;
+text: .text%zcfree;
+text: .text%Java_java_util_jar_JarFile_getMetaInfEntryNames;
+text: .text%ZIP_ReadEntry;
+text: .text%InflateFully;
+text: .text%inflateEnd;
+text: .text%Java_java_util_zip_Inflater_reset;
+text: .text%Java_java_util_zip_ZipFile_close;
+text: .text%ZIP_Close;
+text: .text%Java_java_util_zip_Inflater_end;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/mkdemo/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,68 @@
+#
+# Copyright (c) 1997, 2011, 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.
+#
+
+#
+# Makefile for building all the demos
+#
+
+BUILDDIR = ..
+PRODUCT = demos
+include $(BUILDDIR)/common/Defs.gmk
+
+SUBDIRS            = jni
+SUBDIRS_desktop    = 
+SUBDIRS_management = 
+SUBDIRS_misc       = 
+SUBDIRS_tools      = jvmti
+
+include $(BUILDDIR)/common/Subdirs.gmk
+
+TOPLEVEL_FILES =							\
+	$(DEMODIR)/README
+
+all build:: nbproject
+	$(SUBDIRS-loop)
+
+all build:: $(TOPLEVEL_FILES)
+
+nbproject:
+	$(RM) -r $(DEMODIR)/nbproject
+	$(MKDIR) -p $(DEMODIR)
+	( $(CD) $(SHARE_SRC)/demo && $(TAR) -cf - \
+	  `$(FIND) nbproject $(SCM_DIRS_prune) -o -type f -print` ) | \
+	  ( $(CD) $(DEMODIR) && $(TAR) -xf - )
+ifndef OPENJDK
+	( $(CD) $(CLOSED_SHARE_SRC)/demo && $(TAR) -cf - \
+	  `$(FIND) nbproject $(SCM_DIRS_prune) -o -type f -print` ) | \
+	  ( $(CD) $(DEMODIR) && $(TAR) -xf - )
+endif
+
+$(DEMODIR)/%: $(DEMOSRCDIR)/%
+	$(install-file)
+
+clean clobber::
+	$(SUBDIRS-loop)
+	$(RM) -r $(DEMODIR)
+	$(RM) -r $(DEMOCLASSDIR)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/mkdemo/jni/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,44 @@
+#
+# Copyright (c) 1999, 2010, 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.
+#
+
+#
+# Makefile for building the jni demo(s)
+#
+
+BUILDDIR = ../..
+PRODUCT = demos
+include $(BUILDDIR)/common/Defs.gmk
+
+SUBDIRS =
+
+ifeq ($(PLATFORM),solaris)
+  SUBDIRS += Poller
+endif
+
+include $(BUILDDIR)/common/Subdirs.gmk
+
+all build clean clobber::
+	$(SUBDIRS-loop)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/mkdemo/jni/Poller/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,45 @@
+#
+# Copyright (c) 1999, 2006, 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.
+#
+
+#
+# Build Poller class demo.
+#
+
+BUILDDIR = ../../..
+PRODUCT = demo/jni
+DEMONAME = Poller
+include $(BUILDDIR)/common/Defs.gmk
+
+DEMO_ROOT       = $(PLATFORM_SRC)/demo/jni/$(DEMONAME)
+DEMO_TOPFILES   = ./README.txt
+DEMO_MAINCLASS  = Client
+DEMO_NATIVECLASS= $(DEMONAME)
+DEMO_DESTDIR    = $(DEMODIR)/jni/$(DEMONAME)
+
+#
+# Demo jar building rules.
+#
+include $(BUILDDIR)/common/Demo.gmk
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/mkdemo/jvmti/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,51 @@
+#
+# Copyright (c) 2004, 2011, 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.
+#
+
+#
+# Makefile for building the jvmti demo(s)
+#
+
+BUILDDIR = ../..
+PRODUCT = demos
+include $(BUILDDIR)/common/Defs.gmk
+
+# Can be built in any order, the JRE version of hprof and java_crw_demo are
+#   really built in make/java.
+#   The hprof target here just delivers the sources and README files.
+#   The java_crw_demo and agent_util files are copied into each demo that
+#   uses them.
+SUBDIRS = \
+	  hprof
+
+include $(BUILDDIR)/common/Subdirs.gmk
+
+all build clean clobber::
+	$(SUBDIRS-loop)
+
+all build :: $(DEMODIR)/jvmti/index.html
+
+$(DEMODIR)/jvmti/index.html: $(SHARE_SRC)/demo/jvmti/index.html
+	$(install-file)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/mkdemo/jvmti/README.txt	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,58 @@
+#
+# Copyright (c) 2004, 2010, 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.
+#
+
+Instructions on adding a jvmti demo agent.
+
+Basically you want to mimic the jvmti demo agent "mtrace".
+
+* Create and populate a source directory at src/share/demo/jvmti
+  (Try and re-use code in agent_util area like src/share/demo/jvmti/mtrace)
+  (This should include a small README.txt document on what this demo is)
+
+* Make sure the appropriate "demo" copyright notice is added to all the
+  source files.
+
+* Edit src/share/demo/jvmti/index.html and add in reference to this demo.
+
+* Create make directory at make/mkdemo/jvmti
+  (Mimic make/mkdemo/jvmti/mtrace/Makefile)
+
+* Edit make/mkdemo/jvmti/Makefile and add in the new demo
+
+* Create test directory at test/demo/jvmti, create at least one test
+  (Use test/demo/jvmti/mtrace as a template)
+
+* Don't forget to check in all the new files
+
+* Build and create images (cd make && gnumake && gnumake images)
+  (Do this on Solaris, Linux, and at least one Windows platform)
+
+* Verify that browsing build/*/j2sdk-images/demo/jvmti looks right
+
+* Run the tests: cd test/demo/jvmti && runregress .
+  (Do this on Solaris, Linux, and at least one Windows platform)
+
+Contact: serviceability-dev@openjdk.java.net for more information or help.
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/mkdemo/jvmti/hprof/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,52 @@
+#
+# Copyright (c) 2004, 2010, 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.
+#
+
+BUILDDIR = ../../..
+PRODUCT = demo/jvmti
+DEMONAME = hprof
+include $(BUILDDIR)/common/Defs.gmk
+
+DEMO_ROOT       = $(SHARE_SRC)/demo/jvmti/$(DEMONAME)
+DEMO_TOPFILES   = ./README.txt
+DEMO_PSRCDIR    = $(PLATFORM_SRC)/demo/jvmti/$(DEMONAME)
+DEMO_DESTDIR    = $(DEMODIR)/jvmti/$(DEMONAME)
+
+DEMO_OBJECTS    = java_crw_demo.$(OBJECT_SUFFIX)
+
+ifeq ($(PLATFORM), windows)
+  EXTRA_LIBS += wsock32.lib winmm.lib
+endif
+ifeq ($(PLATFORM), solaris)
+  OTHER_LDLIBS += $(LIBSOCKET) $(LIBNSL) -ldl
+endif
+ifeq ($(PLATFORM), linux)
+  OTHER_LDLIBS += $(LIBSOCKET) $(LIBNSL) -ldl -lpthread
+endif
+
+#
+# Demo jar building rules.
+#
+include $(BUILDDIR)/common/Demo.gmk
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/mkdemo/jvmti/mapfile-vers	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,34 @@
+#
+# Copyright (c) 2004, 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.
+#
+
+# Define public interface for a Java JVMTI agent library (Solaris & Linux).
+
+SUNWprivate_1.1 {
+	global:
+	    Agent_OnLoad;
+	    Agent_OnUnload;
+	local:
+	    *;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/mkdemo/management/README.txt	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,57 @@
+#
+# Copyright (c) 2004, 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.
+#
+
+Instructions on adding a java.lang.management demo.
+
+Basically you want to mimic the java.lang.management demo "FullThreadDump".
+
+* Create and populate a source directory at src/demo/management
+  (This should include a small README.txt document on what this demo is)
+
+* Make sure the appropriate "demo" copyright notice is added to all the
+  source files.
+
+* Edit src/share/demo/management/index.html and add in reference to this demo.
+
+* Create make directory at make/mkdemo/management
+  (Mimic make/mkdemo/management/FullThreadDump/Makefile)
+
+* Edit make/mkdemo/management/Makefile and add in the new demo
+
+* Create test directory at test/demo/management, create at least one test
+  (Use test/demo/management/FullThreadDump as a template)
+
+* Don't forget to put all files under SCM control
+
+* Build and create images (cd make && gnumake && gnumake images)
+  (Do this on Solaris, Linux, and at least one Windows platform)
+
+* Verify that browsing build/*/j2sdk-images/demo/management looks right
+
+* Run the tests: cd test/demo/management && runregress .
+  (Do this on Solaris, Linux, and at least one Windows platform)
+
+Contact: jk-svc-group@sun.com for more information or help.
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,98 @@
+#
+# Copyright (c) 1995, 2011, 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.
+#
+
+#
+# Makefile for building all of sun tools
+#
+
+BUILDDIR = ..
+PRODUCT  = sun
+include $(BUILDDIR)/common/Defs.gmk
+
+# Rhino/Mozilla java sources
+ORG_EXISTS := $(call DirExists,$(CLOSED_SRC)/share/classes/sun/org,,)
+ifneq ("$(ORG_EXISTS)", "")
+  ORG_SUBDIR = org
+endif
+
+# Non windows subdirs
+ifneq ($(PLATFORM), windows)
+  ifndef OPENJDK
+    ifeq ($(PLATFORM), solaris)
+      ifneq ($(ARCH), amd64)
+        # Solaris 11 does not have support for new compilation of DGA code.
+        OS_VERSION = $(shell uname -r)
+        OS_MAJOR_VERSION := $(call MajorVersion,$(OS_VERSION))
+        OS_MINOR_VERSION := $(call MinorVersion,$(OS_VERSION))
+        ifeq ($(shell $(EXPR) $(OS_MAJOR_VERSION) == 5), 1)
+          ifeq ($(shell $(EXPR) $(OS_MINOR_VERSION) \<= 10), 1)
+            DGA_SUBDIR = jdga
+          endif
+        endif
+      endif
+    endif
+  endif
+  HEADLESS_SUBDIR = headless
+  XAWT_SUBDIR     = xawt
+endif
+
+ifeq ($(PLATFORM), macosx)
+  LWAWT_PRE_SUBDIR = osxapp
+  LWAWT_SUBDIR = lwawt
+endif
+
+ifndef OPENJDK
+ifneq ($(PLATFORM), macosx)
+  JDBC_SUBDIR = jdbc
+endif
+endif
+
+ifdef OPENJDK
+else
+  RENDER_SUBDIR = dcpr
+endif
+
+# nio need to be compiled before awt to have all charsets ready
+SUBDIRS            = security javazic nio
+
+ifdef BUILD_HEADLESS_ONLY
+  DISPLAY_LIBS = awt $(HEADLESS_SUBDIR)
+  DISPLAY_TOOLS = 
+else
+  DISPLAY_LIBS = awt splashscreen $(XAWT_SUBDIR) $(HEADLESS_SUBDIR)
+  DISPLAY_TOOLS = 
+endif
+SUBDIRS_desktop    = $(RENDER_SUBDIR) image \
+                     $(LWAWT_PRE_SUBDIR) $(DISPLAY_LIBS) $(DGA_SUBDIR) $(LWAWT_SUBDIR)\
+                     cmm $(DISPLAY_TOOLS)
+SUBDIRS_management = 
+SUBDIRS_misc       = $(ORG_SUBDIR) $(JDBC_SUBDIR)
+SUBDIRS_tools      = 
+
+include $(BUILDDIR)/common/Subdirs.gmk
+
+all build clean clobber::
+	$(SUBDIRS-loop)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/awt/CondenseRules.awk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,21 @@
+BEGIN {
+    previous="";
+    prefix="";
+    ORS="";
+    OFS="";
+} 
+{
+    if ($1 != previous) { 
+	if (previous != "") {
+	    print "\n\n";
+	}
+	previous = $1;
+    	print $1;
+	prefix="\t";
+    }
+    print prefix $2;
+    prefix=" ";
+}
+END {
+    print "\n";
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/awt/Depend.mak	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,163 @@
+#
+# This makefile must be executed on a system with makedepend, such as Solaris.
+# In my copious amount of spare time, I hope to write a Java-based makedepend
+# to eliminate this dependency (no pun intended). TB
+
+BUILD_DIR = ../..
+TOPDIR   = ../../..
+
+STUBDIR = WindowsSystemHeaderStubs
+BUILDSTUBDIR = BuildStubs
+
+SHARE_SRC = $(TOPDIR)/src/share
+SUN_SRC = $(SHARE_SRC)/native/sun
+COMP_SRC = $(SUN_SRC)/awt/alphacomposite
+DEBUG_SRC = $(SUN_SRC)/awt/debug
+IMG_SRC = $(SUN_SRC)/awt/image
+MEDIA_SRC = $(SUN_SRC)/awt/medialib
+J2D_SRC  = $(SUN_SRC)/java2d
+J2D_FONT_SRC = $(SUN_SRC)/font
+J2D_WINDOWS_SRC = $(WINDOWS_SRC)/native/sun/java2d
+AWT_WINDOWS_SRC = $(WINDOWS_SRC)/native/sun/awt
+LOOP_SRC = $(SUN_SRC)/java2d/loops
+PIPE_SRC = $(SUN_SRC)/java2d/pipe
+WINDOWS_SRC = $(TOPDIR)/src/windows
+SRC = $(WINDOWS_SRC)/native/sun/windows
+
+# ensure consistent sort order
+LC_ALL:= C
+
+SRCDIRS = \
+	$(COMP_SRC) \
+	$(DEBUG_SRC) \
+	$(IMG_SRC) \
+	$(IMG_SRC)/cvutils \
+	$(IMG_SRC)/gif \
+	$(MEDIA_SRC) \
+	$(J2D_SRC) \
+	$(J2D_FONT_SRC) \
+	$(J2D_SRC)/opengl \
+	$(J2D_WINDOWS_SRC)/windows \
+	$(J2D_WINDOWS_SRC)/d3d \
+	$(J2D_WINDOWS_SRC)/opengl \
+	$(LOOP_SRC) \
+	$(PIPE_SRC) \
+	$(SRC)
+
+INCLUDES = \
+	   -I$(STUBDIR) \
+	   -I$(BUILDSTUBDIR) \
+	   -I$(SHARE_SRC)/javavm/export \
+	   -I$(WINDOWS_SRC)/javavm/export \
+	   -I$(SHARE_SRC)/native/common \
+	   -I$(WINDOWS_SRC)/native/common \
+	   -I$(SUN_SRC)/dc/doe \
+	   -I$(SUN_SRC)/dc/path \
+	   -I$(COMP_SRC) \
+	   -I$(DEBUG_SRC) \
+	   -I$(IMG_SRC) \
+	   -I$(IMG_SRC)/cvutils \
+	   -I$(MEDIA_SRC) \
+	   -I$(J2D_SRC) \
+	   -I$(J2D_FONT_SRC) \
+	   -I$(J2D_SRC)/opengl \
+	   -I$(J2D_WINDOWS_SRC) \
+	   -I$(J2D_WINDOWS_SRC)/windows \
+	   -I$(J2D_WINDOWS_SRC)/d3d \
+	   -I$(J2D_WINDOWS_SRC)/opengl \
+	   -I$(AWT_WINDOWS_SRC) \
+	   -I$(LOOP_SRC) \
+	   -I$(PIPE_SRC) \
+	   -I$(SRC)
+
+STUBFILES = \
+	$(STUBDIR)/ddraw.h \
+	$(STUBDIR)/d3d.h \
+	$(STUBDIR)/d3d9.h \
+	$(STUBDIR)/Ole2.h \
+	$(STUBDIR)/Zmouse.h \
+	$(STUBDIR)/cderr.h \
+	$(STUBDIR)/comdef.h \
+	$(STUBDIR)/commctrl.h \
+	$(STUBDIR)/commdlg.h \
+	$(STUBDIR)/comutil.h \
+	$(STUBDIR)/direct.h \
+	$(STUBDIR)/d3dcom.h \
+	$(STUBDIR)/imm.h \
+	$(STUBDIR)/ime.h \
+	$(STUBDIR)/io.h \
+	$(STUBDIR)/map \
+	$(STUBDIR)/mmsystem.h \
+	$(STUBDIR)/new.h \
+	$(STUBDIR)/new \
+	$(STUBDIR)/ole2.h \
+	$(STUBDIR)/process.h \
+	$(STUBDIR)/richole.h \
+	$(STUBDIR)/richedit.h \
+	$(STUBDIR)/shellapi.h \
+	$(STUBDIR)/shlwapi.h \
+	$(STUBDIR)/shlobj.h \
+	$(STUBDIR)/tchar.h \
+	$(STUBDIR)/winbase.h \
+	$(STUBDIR)/windef.h \
+	$(STUBDIR)/windows.h \
+	$(STUBDIR)/Windows.h \
+	$(STUBDIR)/windowsx.h \
+	$(STUBDIR)/winspool.h \
+	$(STUBDIR)/winuser.h \
+	$(STUBDIR)/wtypes.h \
+	$(STUBDIR)/zmouse.h \
+
+EXTRAFILES_c = \
+	img_colors.c
+
+default: dependencies
+
+include FILES_c_windows.gmk
+
+dependencies:
+	rm -rf make.depend
+	rm -rf make.tmp make.tmp2 make.tmp.bak
+	rm -rf $(STUBDIR) $(BUILDSTUBDIR) depend.filelist
+	for file in $(FILES_c) $(FILES_cpp) $(EXTRAFILES_c); do \
+	    for dir in $(SRCDIRS); do \
+	    	if [ -f $$dir/$$file ]; then \
+		    echo $$dir/$$file >>depend.filelist; \
+		fi; \
+	    	if [ -f $$dir/$${file}pp ]; then \
+		    echo $$dir/$${file}pp >>depend.filelist; \
+		fi; \
+	    done; \
+	done
+	touch make.tmp
+	mkdir $(STUBDIR)
+	touch $(STUBFILES)
+	mkdir $(BUILDSTUBDIR)
+	gnumake -f Depend.mak classhdrstubs
+	touch $(BUILDSTUBDIR)/awt_colors.h
+	cat depend.filelist | xargs -n 100 makedepend \
+		-DWIN32 -D_X86X -Dx86 -DDEBUG -D_MSC_VER -DMLIB_NO_LIBSUNMATH \
+                -DUNICODE -D_UNICODE \
+		-a -f make.tmp -o.obj $(INCLUDES)
+	fgrep .obj make.tmp | sed -f Depend.sed | sort -f -u | nawk -f CondenseRules.awk > make.depend
+	rm -rf make.tmp make.tmp2 make.tmp.bak
+	rm -rf $(STUBDIR) $(BUILDSTUBDIR) depend.filelist
+
+
+include FILES_export_windows.gmk
+
+EXTRAFILES_java = \
+        sun/java2d/opengl/OGLContext/OGLContextCaps.java \
+        sun/java2d/d3d/D3DPaints/MultiGradient.java \
+        sun/java2d/d3d/D3DContext/D3DContextCaps.java \
+	java/lang/Integer.java
+
+FILES_java = $(FILES_export) $(FILES_export2) $(FILES_export3) \
+	$(EXTRAFILES_java)
+
+classhdrstubs:
+	for file in `echo $(FILES_java) | \
+		      tr ' ' '\n' | \
+		      sed -e 'y/\//_/' -e 's/\.java/.h/'`; do \
+	    echo "#include <jni.h>" > $(BUILDSTUBDIR)/$$file; \
+	done
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/awt/Depend.sed	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,32 @@
+# Unqualify std headers
+# remove headers with no extension as well (e.g. C++ 94 STL headers) - robi
+# s/ \/usr\/include[^ ]*\.h//g
+s/ \/usr\/include[^ ]*//g
+
+# Unqualify std Windows headers 
+# remove headers with no extension as well (e.g. C++ 94 STL headers) - robi
+# s/ WindowsSystemHeaderStubs[^ ]*\.h//g
+s/ WindowsSystemHeaderStubs[^ ]*//g
+
+# ####################################
+# Rules to allow for generation of dependencies on an unbuilt tree...
+#
+# BuildStubs is populated with stubs for include files that are
+# generated by the build and then dependencies are adjusted here
+#
+# Adjust awt_colors.h
+# Change BuildStubs to .
+s/ BuildStubs\/awt_colors.h/ $(OBJDIR)\/awt_colors.h/g
+#
+# Adjust CClassHeaders
+# Change BuildStubs to CClassHeaders
+s/ BuildStubs/ $(CLASSHDRDIR)/g
+#
+# End of unbuilt tree adjustments
+# ####################################
+
+# Remove any empty rules
+/:[ ]*$/d
+
+# Change .obj path from src to proper awt/obj or awt/obj_g directory
+s/^.*\/\(.*:\)/$(OBJDIR)\/\1:/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/awt/FILES_c_macosx.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,28 @@
+#
+# Copyright (c) 1995, 2011, 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.
+#
+
+FILES_AWT_objc = \
+        $(TARGDIR)MacOSXResourceBundle.m
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/awt/FILES_c_unix.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,173 @@
+#
+# Copyright (c) 1996, 2010, 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.
+#
+
+#
+# The debug_* files included here aren't for 2D specifically but they
+# have no X dependency.
+
+FILES_2D_vis = \
+	vis_FuncArray.c           \
+	java2d_Mlib.c             \
+	mlib_ImageCreate.c        \
+	mlib_ImageZoom_NN.c       \
+	mlib_ImageCopy_Bit.c      \
+	mlib_sys.c                \
+	mlib_v_ImageClear.c       \
+	mlib_v_ImageClear_f.c     \
+	mlib_v_ImageConstXor.c    \
+	mlib_v_ImageCopy.c        \
+	mlib_v_ImageCopy_f.c      \
+	mlib_v_ImageXor.c         \
+	mlib_v_ImageZoom_NN_f.c   \
+	vis_Interp.c              \
+	vis_AlphaMacros.c         \
+	vis_AlphaMaskBlit.c       \
+	vis_AlphaMaskFill.c       \
+	vis_ByteGray.c            \
+	vis_ByteGray_FromRgb.c    \
+	vis_ByteGray_Mask.c       \
+	vis_ByteIndexed.c         \
+	vis_DrawLine.c            \
+	vis_FourByteAbgr.c        \
+	vis_IntArgb.c             \
+	vis_IntArgbPre.c          \
+	vis_IntArgbPre_Mask.c     \
+	vis_IntBgr.c              \
+	vis_IntRgb.c              \
+	vis_IntRgbx.c             \
+	vis_SrcMaskFill.c         \
+	vis_SrcOverMaskBlit.c     \
+	vis_SrcOverMaskFill.c     \
+	vis_FourByteAbgrPre.c     \
+	vis_GlyphList.c           \
+	vis_GlyphListXor.c        \
+	vis_IntArgbBm.c           \
+	vis_ThreeByteBgr.c        \
+	vis_UshortGray.c          \
+	vis_UshortGray_FromRgb.c  \
+	vis_XorBlit.c
+
+FILES_2D_c = \
+	gifdecoder.c \
+	imageInitIDs.c \
+	img_colors.c \
+        img_globals.c \
+	SurfaceData.c \
+	Region.c \
+	BufImgSurfaceData.c \
+	Disposer.c \
+        Trace.c \
+	GraphicsPrimitiveMgr.c \
+	Blit.c \
+	BlitBg.c \
+	ScaledBlit.c \
+	FillRect.c \
+	FillSpans.c \
+	FillParallelogram.c \
+	DrawParallelogram.c \
+	DrawLine.c \
+	DrawRect.c \
+	DrawPolygons.c \
+        DrawPath.c \
+        FillPath.c \
+        ProcessPath.c \
+	MaskBlit.c \
+	MaskFill.c \
+	TransformHelper.c \
+        AlphaMath.c \
+	AlphaMacros.c \
+	AnyByte.c \
+        ByteBinary1Bit.c \
+        ByteBinary2Bit.c \
+        ByteBinary4Bit.c \
+	ByteIndexed.c \
+	ByteGray.c \
+	Index8Gray.c \
+	Index12Gray.c \
+	AnyShort.c \
+	Ushort555Rgb.c \
+	Ushort565Rgb.c \
+	Ushort4444Argb.c \
+	Ushort555Rgbx.c \
+	UshortGray.c \
+	UshortIndexed.c \
+	Any3Byte.c \
+	ThreeByteBgr.c \
+	AnyInt.c \
+	IntArgb.c \
+        IntArgbPre.c \
+        IntArgbBm.c \
+	IntRgb.c \
+	IntBgr.c \
+	IntRgbx.c \
+	Any4Byte.c \
+        FourByteAbgr.c \
+        FourByteAbgrPre.c \
+	BufferedMaskBlit.c \
+	BufferedRenderPipe.c \
+	ShapeSpanIterator.c \
+	SpanClipRenderer.c \
+	awt_ImageRep.c \
+        awt_ImagingLib.c \
+        awt_Mlib.c \
+        awt_parseImage.c \
+	DataBufferNative.c \
+	dither.c \
+	debug_assert.c \
+	debug_mem.c \
+	debug_trace.c \
+	debug_util.c
+
+# These files are required to be built, with or without motif.  Some of
+# these are only dependent on X11, and some contain native source that
+# is required, even in a headless build.
+
+FILES_NO_MOTIF_c = \
+	awt_Font.c \
+	HeadlessToolkit.c \
+	fontpath.c \
+	VDrawingArea.c \
+	X11Color.c \
+	X11Renderer.c \
+	X11PMBlitLoops.c \
+	X11SurfaceData.c \
+	X11FontScaler_md.c \
+	X11TextRenderer_md.c \
+        OGLBlitLoops.c \
+        OGLBufImgOps.c \
+        OGLContext.c \
+        OGLFuncs.c \
+        OGLMaskBlit.c \
+        OGLMaskFill.c \
+        OGLPaints.c \
+        OGLRenderQueue.c \
+        OGLRenderer.c \
+        OGLSurfaceData.c \
+        OGLTextRenderer.c \
+        OGLVertexCache.c \
+        GLXGraphicsConfig.c \
+        GLXSurfaceData.c \
+        AccelGlyphCache.c \
+	CUPSfuncs.c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/awt/FILES_c_windows.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,208 @@
+#
+# Copyright (c) 1997, 2010, 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.
+#
+
+FILES_c = \
+	GraphicsPrimitiveMgr.c \
+	Blit.c \
+	BlitBg.c \
+	ScaledBlit.c \
+	FillRect.c \
+	FillSpans.c \
+	FillParallelogram.c \
+	DrawParallelogram.c \
+	DrawLine.c \
+	DrawRect.c \
+	DrawPolygons.c \
+        DrawPath.c \
+        FillPath.c \
+        ProcessPath.c \
+	MaskBlit.c \
+	MaskFill.c \
+	TransformHelper.c \
+        AlphaMath.c \
+	AlphaMacros.c \
+	AnyByte.c \
+        ByteBinary1Bit.c \
+        ByteBinary2Bit.c \
+        ByteBinary4Bit.c \
+	ByteIndexed.c \
+	ByteGray.c \
+	Index8Gray.c \
+	Index12Gray.c \
+	AnyShort.c \
+	Ushort555Rgb.c \
+	Ushort565Rgb.c \
+	Ushort4444Argb.c \
+	Ushort555Rgbx.c \
+	UshortGray.c \
+	UshortIndexed.c \
+	Any3Byte.c \
+	ThreeByteBgr.c \
+	AnyInt.c \
+	IntArgb.c \
+        IntArgbPre.c \
+        IntArgbBm.c \
+	IntRgb.c \
+	IntBgr.c \
+	IntRgbx.c \
+	Any4Byte.c \
+        FourByteAbgr.c \
+        FourByteAbgrPre.c \
+	BufferedMaskBlit.c \
+	BufferedRenderPipe.c \
+	ShapeSpanIterator.c \
+	SpanClipRenderer.c \
+	SurfaceData.c \
+	Region.c \
+	DataBufferNative.c \
+	BufImgSurfaceData.c \
+	Disposer.c \
+        Trace.c \
+	img_globals.c \
+	gifdecoder.c \
+	awt_parseImage.c \
+	awt_ImageRep.c \
+	awt_ImagingLib.c \
+	dither.c \
+	imageInitIDs.c \
+	debug_assert.c \
+	debug_mem.c \
+	debug_trace.c \
+	debug_util.c \
+        OGLBlitLoops.c \
+        OGLBufImgOps.c \
+        OGLContext.c \
+        OGLFuncs.c \
+        OGLMaskBlit.c \
+        OGLMaskFill.c \
+        OGLPaints.c \
+        OGLRenderQueue.c \
+        OGLRenderer.c \
+        OGLSurfaceData.c \
+        OGLTextRenderer.c \
+        OGLVertexCache.c \
+        WGLGraphicsConfig.c \
+        WGLSurfaceData.c \
+        AccelGlyphCache.c \
+        rect.c
+
+FILES_cpp = \
+	CmdIDList.cpp \
+	Hashtable.cpp \
+	GDIHashtable.cpp \
+	Devices.cpp \
+	ObjectList.cpp \
+	GDIBlitLoops.cpp \
+	GDIRenderer.cpp \
+	GDIWindowSurfaceData.cpp \
+	WindowsFlags.cpp \
+	WPrinterJob.cpp \
+	awt_AWTEvent.cpp \
+	awt_BitmapUtil.cpp \
+	awt_Brush.cpp \
+	awt_Button.cpp \
+	awt_Canvas.cpp \
+	awt_Checkbox.cpp \
+	awt_Choice.cpp \
+	awt_Clipboard.cpp \
+	awt_Color.cpp \
+	awt_Component.cpp \
+	awt_Container.cpp \
+	awt_Cursor.cpp \
+	awt_DataTransferer.cpp \
+	awt_Debug.cpp \
+	awt_Dimension.cpp \
+	awt_Desktop.cpp \
+	awt_DesktopProperties.cpp \
+	awt_Dialog.cpp \
+	awt_DrawingSurface.cpp \
+	awt_FileDialog.cpp \
+	awt_Event.cpp \
+	awt_Font.cpp \
+	awt_Frame.cpp \
+	awt_GDIObject.cpp \
+	awt_IconCursor.cpp \
+	awt_InputEvent.cpp \
+	awt_InputMethod.cpp \
+	awt_InputTextInfor.cpp \
+	awt_Insets.cpp \
+	awt_KeyEvent.cpp \
+	awt_KeyboardFocusManager.cpp \
+	awt_Label.cpp \
+	awt_List.cpp \
+	awt_Menu.cpp \
+	awt_MenuBar.cpp \
+	awt_MenuItem.cpp \
+	awt_MouseEvent.cpp \
+	awt_Object.cpp \
+	awt_Palette.cpp \
+	awt_Panel.cpp \
+	awt_PopupMenu.cpp \
+	awt_Pen.cpp \
+	awt_PrintControl.cpp \
+	awt_PrintDialog.cpp \
+	awt_PrintJob.cpp \
+	awt_Rectangle.cpp \
+	awt_Robot.cpp \
+	awt_Scrollbar.cpp \
+	awt_ScrollPane.cpp \
+	awt_TextArea.cpp \
+	awt_TextComponent.cpp \
+	awt_TextField.cpp \
+	awt_Toolkit.cpp \
+	awt_Window.cpp \
+	awt_Win32GraphicsEnv.cpp \
+	awt_Win32GraphicsDevice.cpp \
+	awt_Win32GraphicsConfig.cpp \
+	awt_DnDDT.cpp \
+	awt_DnDDS.cpp \
+	awt_Mlib.cpp \
+	awt_new.cpp \
+	awt_TrayIcon.cpp \
+	awt_DCHolder.cpp \
+	awt_ole.cpp \
+	ShaderList.cpp \
+	D3DBlitLoops.cpp \
+	D3DBufImgOps.cpp \
+	D3DContext.cpp \
+	D3DGlyphCache.cpp \
+	D3DGraphicsDevice.cpp \
+	D3DMaskBlit.cpp \
+	D3DMaskCache.cpp \
+	D3DMaskFill.cpp \
+	D3DPipelineManager.cpp \
+	D3DPaints.cpp \
+	D3DRenderer.cpp \
+	D3DRenderQueue.cpp \
+	D3DResourceManager.cpp \
+	D3DSurfaceData.cpp \
+	D3DTextRenderer.cpp \
+	D3DVertexCacher.cpp \
+	ShellFolder2.cpp \
+	ThemeReader.cpp \
+	ComCtl32Util.cpp \
+	DllUtil.cpp \
+	initIDs.cpp \
+	MouseInfo.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/awt/FILES_export_macosx.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,29 @@
+#
+# Copyright (c) 1995, 2011, 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.
+#
+
+# FILES_export definitions for Mac OS X
+
+FILES_export += \
+	com/apple/resources/MacOSXResourceBundle.java
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/awt/FILES_export_unix.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,189 @@
+#
+# Copyright (c) 2000, 2010, 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.
+#
+
+# FILES_export definitions for Solaris and Linux
+
+FILES_export = \
+        sun/font/FontManager.java \
+	sun/awt/image/ImageRepresentation.java \
+	sun/awt/image/GifImageDecoder.java \
+	sun/awt/image/NativeLibLoader.java \
+	sun/java2d/loops/Blit.java \
+	sun/java2d/loops/BlitBg.java \
+	sun/java2d/loops/ScaledBlit.java \
+	sun/java2d/loops/TransformBlit.java \
+	sun/java2d/loops/FillRect.java \
+	sun/java2d/loops/FillSpans.java \
+	sun/java2d/loops/FillParallelogram.java \
+	sun/java2d/loops/DrawParallelogram.java \
+        sun/java2d/loops/DrawGlyphList.java \
+        sun/java2d/loops/DrawGlyphListAA.java \
+        sun/java2d/loops/DrawGlyphListLCD.java \
+	sun/java2d/loops/DrawLine.java \
+	sun/java2d/loops/DrawRect.java \
+	sun/java2d/loops/DrawPolygons.java \
+        sun/java2d/loops/DrawPath.java \
+        sun/java2d/loops/FillPath.java \
+	sun/java2d/loops/MaskBlit.java \
+	sun/java2d/loops/MaskFill.java \
+	sun/java2d/loops/TransformHelper.java \
+	sun/java2d/loops/GraphicsPrimitiveMgr.java \
+        sun/java2d/loops/GraphicsPrimitive.java \
+        sun/java2d/pipe/hw/AccelSurface.java \
+	sun/java2d/pipe/hw/AccelDeviceEventNotifier.java \
+        sun/java2d/pipe/hw/ContextCapabilities.java \
+        sun/awt/image/ImagingLib.java \
+	sun/java2d/SurfaceData.java \
+	sun/java2d/SunGraphics2D.java \
+	sun/awt/KeyboardFocusManagerPeerImpl.java \
+	sun/awt/image/BufImgSurfaceData.java \
+	sun/awt/image/DataBufferNative.java \
+	\
+	sun/awt/X11InputMethod.java \
+	sun/awt/motif/MFontConfiguration.java \
+        sun/awt/DebugSettings.java \
+	sun/awt/EmbeddedFrame.java \
+	sun/awt/PlatformFont.java \
+	sun/awt/FontDescriptor.java \
+	sun/awt/NativeLibLoader.java \
+	sun/awt/X11GraphicsEnvironment.java \
+	sun/awt/X11GraphicsDevice.java \
+	sun/awt/X11GraphicsConfig.java \
+	sun/awt/CharsetString.java \
+	sun/awt/UNIXToolkit.java \
+	sun/java2d/pipe/BufferedContext.java \
+	sun/java2d/pipe/BufferedMaskBlit.java \
+	sun/java2d/pipe/BufferedOpCodes.java \
+	sun/java2d/pipe/BufferedMaskBlit.java \
+	sun/java2d/pipe/BufferedPaints.java \
+	sun/java2d/pipe/BufferedRenderPipe.java \
+	sun/java2d/pipe/BufferedTextPipe.java \
+	sun/java2d/pipe/RenderBuffer.java \
+	sun/java2d/pipe/ShapeSpanIterator.java \
+	sun/java2d/pipe/SpanClipRenderer.java \
+	sun/java2d/pipe/RegionIterator.java \
+        sun/awt/image/IntegerComponentRaster.java \
+        sun/java2d/cmm/CMSManager.java \
+        sun/java2d/cmm/PCMM.java \
+        sun/java2d/cmm/ColorTransform.java \
+        sun/awt/datatransfer/DataTransferer.java \
+	sun/awt/dnd/SunDragSourceContextPeer.java \
+	sun/java2d/opengl/OGLBlitLoops.java \
+	sun/java2d/opengl/OGLContext.java \
+	sun/java2d/opengl/OGLMaskFill.java \
+	sun/java2d/opengl/OGLPaints.java \
+	sun/java2d/opengl/OGLRenderer.java \
+	sun/java2d/opengl/OGLRenderQueue.java \
+	sun/java2d/opengl/OGLSurfaceData.java \
+	sun/java2d/opengl/OGLTextRenderer.java \
+	sun/java2d/opengl/GLXGraphicsConfig.java \
+	sun/java2d/opengl/GLXSurfaceData.java \
+	sun/java2d/x11/X11PMBlitLoops.java \
+	sun/java2d/x11/X11PMBlitBgLoops.java \
+	sun/java2d/x11/X11Renderer.java \
+	sun/java2d/x11/X11SurfaceData.java \
+        com/sun/java/swing/plaf/gtk/GTKEngine.java \
+        com/sun/java/swing/plaf/gtk/GTKStyle.java \
+        sun/awt/ExtendedKeyCodes.java
+
+
+FILES_export2 = \
+	java/awt/AlphaComposite.java \
+	java/awt/MouseInfo.java \
+	java/awt/Cursor.java \
+	java/awt/Graphics.java \
+	java/awt/Color.java \
+	java/awt/Image.java \
+	java/awt/Rectangle.java \
+	java/awt/Event.java \
+	java/awt/Font.java \
+	java/awt/Insets.java \
+	java/awt/Point.java \
+	java/awt/FontMetrics.java \
+	java/awt/Toolkit.java \
+	java/awt/Component.java \
+	java/awt/Container.java \
+	java/awt/Canvas.java \
+	java/awt/Button.java \
+	java/awt/List.java \
+	java/awt/Adjustable.java \
+	java/awt/Scrollbar.java \
+	java/awt/ScrollPane.java \
+	java/awt/ScrollPaneAdjustable.java \
+	java/awt/Window.java \
+	java/awt/TextField.java \
+	java/awt/Label.java \
+	java/awt/Choice.java \
+	java/awt/TextArea.java \
+	java/awt/MenuBar.java \
+	java/awt/Menu.java \
+	java/awt/MenuComponent.java \
+	java/awt/PopupMenu.java \
+	java/awt/Dialog.java \
+	java/awt/FileDialog.java \
+	java/awt/MenuItem.java \
+	java/awt/Checkbox.java \
+	java/awt/CheckboxMenuItem.java \
+	java/awt/CheckboxGroup.java \
+	java/awt/Frame.java \
+        java/awt/Transparency.java \
+	java/awt/AWTException.java \
+	java/awt/AWTEvent.java \
+        java/awt/AWTKeyStroke.java \
+        java/awt/KeyboardFocusManager.java \
+	java/awt/Dimension.java \
+	java/awt/SystemColor.java \
+	java/awt/TrayIcon.java \
+	java/awt/DisplayMode.java \
+        java/awt/color/ColorSpace.java \
+        java/awt/color/ICC_Profile.java \
+        java/awt/geom/PathIterator.java \
+	java/awt/image/AffineTransformOp.java \
+	java/awt/image/ImageConsumer.java \
+	java/awt/image/ImageObserver.java \
+        java/awt/image/BufferedImage.java \
+	java/awt/image/ColorModel.java \
+	java/awt/image/ConvolveOp.java \
+	java/awt/image/DirectColorModel.java \
+	java/awt/image/IndexColorModel.java \
+	java/awt/image/DataBuffer.java \
+        java/awt/datatransfer/Transferable.java \
+        java/awt/datatransfer/DataFlavor.java \
+        java/awt/datatransfer/UnsupportedFlavorException.java \
+        java/awt/datatransfer/Clipboard.java \
+	java/awt/datatransfer/ClipboardOwner.java \
+	java/awt/datatransfer/StringSelection.java \
+	java/awt/event/AdjustmentEvent.java \
+	java/awt/event/KeyEvent.java \
+	java/awt/event/MouseEvent.java \
+	java/awt/event/MouseWheelEvent.java \
+	java/awt/event/FocusEvent.java \
+	java/awt/event/InputEvent.java \
+	java/awt/event/WindowEvent.java \
+	java/awt/event/NativeLibLoader.java \
+	java/awt/peer/ComponentPeer.java \
+	java/awt/dnd/DnDConstants.java \
+	sun/awt/CausedFocusEvent.java
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/awt/FILES_export_windows.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,252 @@
+#
+# Copyright (c) 2000, 2010, 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.
+#
+
+# FILES_export definitions for Win32
+
+FILES_export = \
+	java/awt/AlphaComposite.java \
+	java/awt/MouseInfo.java \
+        java/awt/Graphics.java \
+        java/awt/Color.java \
+        java/awt/Image.java \
+        java/awt/Rectangle.java \
+        java/awt/Event.java \
+        java/awt/Font.java \
+        java/awt/FontMetrics.java \
+        java/awt/Toolkit.java \
+        java/awt/Component.java \
+        java/awt/Container.java \
+        java/awt/Canvas.java \
+        java/awt/Button.java \
+        java/awt/List.java \
+	java/awt/Adjustable.java \
+        java/awt/Scrollbar.java \
+        java/awt/ScrollPane.java \
+        java/awt/ScrollPaneAdjustable.java \
+        java/awt/Transparency.java \
+	java/awt/Window.java \
+        java/awt/TextField.java \
+        java/awt/Label.java \
+        java/awt/Choice.java \
+        java/awt/TextComponent.java \
+        java/awt/TextArea.java \
+        java/awt/MenuBar.java \
+        java/awt/Menu.java \
+	java/awt/Dialog.java \
+	java/awt/FileDialog.java \
+        java/awt/MenuItem.java \
+	java/awt/MenuComponent.java \
+        java/awt/Checkbox.java \
+        java/awt/CheckboxGroup.java \
+        java/awt/CheckboxMenuItem.java \
+        java/awt/Frame.java \
+	java/awt/Insets.java \
+	java/awt/Cursor.java \
+	java/awt/Dimension.java \
+	java/awt/PopupMenu.java \
+        java/awt/AWTEvent.java \
+        java/awt/AWTException.java \
+        java/awt/AWTKeyStroke.java \
+        java/awt/KeyboardFocusManager.java \
+	java/awt/DisplayMode.java \
+        java/awt/TrayIcon.java \
+	java/awt/datatransfer/StringSelection.java \
+	java/awt/datatransfer/Transferable.java \
+	java/awt/dnd/DnDConstants.java \
+	java/awt/event/ActionEvent.java \
+	java/awt/event/AdjustmentEvent.java \
+	java/awt/event/ComponentEvent.java \
+	java/awt/event/FocusEvent.java \
+	java/awt/event/ItemEvent.java \
+	java/awt/event/InputEvent.java \
+	java/awt/event/InvocationEvent.java \
+	java/awt/event/KeyEvent.java \
+	java/awt/event/MouseEvent.java \
+	java/awt/event/MouseWheelEvent.java \
+	java/awt/event/WindowEvent.java \
+	java/awt/event/InputMethodEvent.java \
+	java/awt/im/InputMethodHighlight.java \
+	java/awt/im/spi/InputMethod.java \
+	java/awt/font/TextHitInfo.java \
+	java/text/AttributedCharacterIterator.java \
+	java/text/AttributedString.java \
+        java/awt/geom/PathIterator.java \
+	java/awt/image/AffineTransformOp.java \
+	java/awt/image/ImageConsumer.java \
+	java/awt/image/ImageObserver.java \
+        java/awt/image/BufferedImage.java \
+        java/awt/image/ColorModel.java \
+        java/awt/image/ConvolveOp.java \
+        java/awt/image/DirectColorModel.java \
+        java/awt/image/IndexColorModel.java \
+        java/awt/image/Raster.java \
+        java/awt/color/ColorSpace.java \
+        java/awt/color/ICC_Profile.java \
+	java/awt/peer/ComponentPeer.java \
+	java/awt/peer/MenuComponentPeer.java \
+        java/io/InputStream.java
+
+FILES_export2 = \
+	sun/awt/im/InputMethodContext.java \
+	sun/awt/EmbeddedFrame.java \
+	sun/awt/KeyboardFocusManagerPeerImpl.java \
+	sun/awt/windows/WEmbeddedFrame.java \
+	sun/awt/windows/WEmbeddedFramePeer.java \
+	sun/awt/Win32FontManager.java \
+        sun/awt/Win32GraphicsEnvironment.java \
+        sun/awt/Win32GraphicsDevice.java \
+        sun/awt/Win32GraphicsConfig.java \
+        sun/java2d/SunGraphicsEnvironment.java \
+        sun/java2d/SunGraphics2D.java \
+        sun/java2d/SurfaceData.java \
+        sun/awt/image/IntegerComponentRaster.java \
+        sun/awt/image/ImagingLib.java \
+	sun/awt/image/BufImgSurfaceData.java \
+	sun/awt/image/DataBufferNative.java \
+        sun/awt/shell/Win32ShellFolder2.java \
+	sun/java2d/windows/GDIBlitLoops.java \
+	sun/java2d/windows/GDIRenderer.java \
+	sun/java2d/windows/GDIWindowSurfaceData.java \
+        sun/java2d/windows/WindowsFlags.java \
+	sun/java2d/loops/Blit.java \
+	sun/java2d/loops/BlitBg.java \
+	sun/java2d/loops/ScaledBlit.java \
+	sun/java2d/loops/FillRect.java \
+	sun/java2d/loops/FillSpans.java \
+	sun/java2d/loops/FillParallelogram.java \
+	sun/java2d/loops/DrawParallelogram.java \
+        sun/java2d/loops/DrawGlyphList.java \
+        sun/java2d/loops/DrawGlyphListAA.java \
+        sun/java2d/loops/DrawGlyphListLCD.java \
+	sun/java2d/loops/DrawLine.java \
+	sun/java2d/loops/DrawRect.java \
+	sun/java2d/loops/DrawPolygons.java \
+        sun/java2d/loops/DrawPath.java \
+        sun/java2d/loops/FillPath.java \
+	sun/java2d/loops/MaskBlit.java \
+	sun/java2d/loops/MaskFill.java \
+	sun/java2d/loops/TransformHelper.java \
+	sun/java2d/loops/GraphicsPrimitiveMgr.java \
+        sun/java2d/loops/GraphicsPrimitive.java \
+        sun/java2d/cmm/CMSManager.java \
+        sun/java2d/cmm/PCMM.java \
+        sun/java2d/cmm/ColorTransform.java \
+        sun/awt/ScrollPaneWheelScroller.java \
+        sun/awt/datatransfer/DataTransferer.java \
+	sun/awt/datatransfer/SunClipboard.java \
+	sun/awt/dnd/SunDragSourceContextPeer.java \
+        sun/awt/windows/WToolkitThreadBlockedHandler.java
+
+FILES_export3 = \
+        java/awt/CheckboxMenuItem.java \
+        java/awt/Menu.java \
+	java/awt/MenuBar.java \
+	java/awt/MenuComponent.java \
+        java/awt/MenuItem.java \
+	sun/awt/PlatformFont.java \
+	sun/awt/FontDescriptor.java \
+	sun/awt/CharsetString.java \
+	java/awt/image/DataBuffer.java \
+        sun/awt/image/GifImageDecoder.java \
+	sun/awt/image/ImageRepresentation.java \
+	sun/awt/windows/WCustomCursor.java \
+	sun/awt/windows/WDefaultFontCharset.java \
+	sun/awt/windows/WButtonPeer.java \
+	sun/awt/windows/WCanvasPeer.java \
+	sun/awt/windows/WCheckboxPeer.java \
+	sun/awt/windows/WCheckboxMenuItemPeer.java \
+	sun/awt/windows/WChoicePeer.java \
+	sun/awt/windows/WClipboard.java \
+	sun/awt/windows/WColor.java \
+	sun/awt/windows/WDataTransferer.java \
+	sun/awt/windows/WDesktopPeer.java \
+	sun/awt/windows/WDesktopProperties.java \
+	sun/awt/windows/WDialogPeer.java \
+	sun/awt/windows/WDragSourceContextPeer.java \
+	sun/awt/windows/WDropTargetContextPeer.java \
+	sun/awt/windows/WFileDialogPeer.java \
+	sun/awt/windows/WFontPeer.java \
+	sun/awt/windows/WFontMetrics.java \
+	sun/awt/windows/WFramePeer.java \
+	sun/awt/windows/WGlobalCursorManager.java \
+	sun/awt/windows/WInputMethod.java \
+	sun/awt/windows/WInputMethodDescriptor.java \
+        sun/awt/windows/WComponentPeer.java \
+        sun/awt/windows/WLabelPeer.java \
+        sun/awt/windows/WListPeer.java \
+	sun/awt/windows/WMenuBarPeer.java \
+	sun/awt/windows/WMenuItemPeer.java \
+	sun/awt/windows/WMenuPeer.java \
+	sun/awt/windows/WObjectPeer.java \
+	sun/awt/windows/WPopupMenuPeer.java \
+	sun/awt/windows/WPrintDialog.java \
+	sun/awt/windows/WPrintDialogPeer.java \
+	sun/awt/windows/WPrinterJob.java \
+        sun/awt/windows/WRobotPeer.java \
+        sun/awt/windows/WScrollbarPeer.java \
+        sun/awt/windows/WScrollPanePeer.java \
+        sun/awt/windows/WTextAreaPeer.java \
+        sun/awt/windows/WTextComponentPeer.java \
+        sun/awt/windows/WTextFieldPeer.java \
+	sun/awt/windows/WPanelPeer.java \
+        sun/awt/windows/WToolkit.java \
+        sun/awt/windows/WWindowPeer.java \
+        sun/awt/windows/ThemeReader.java \
+	sun/awt/windows/WBufferStrategy.java \
+	sun/awt/windows/WTrayIconPeer.java \
+	sun/awt/image/ImagingLib.java \
+	sun/awt/ExtendedKeyCodes.java \
+        sun/java2d/pipe/hw/AccelSurface.java \
+        sun/java2d/pipe/hw/AccelDeviceEventNotifier.java \
+        sun/java2d/pipe/hw/ContextCapabilities.java \
+        sun/java2d/pipe/BufferedContext.java \
+        sun/java2d/pipe/BufferedMaskBlit.java \
+        sun/java2d/pipe/BufferedOpCodes.java \
+        sun/java2d/pipe/BufferedPaints.java \
+        sun/java2d/pipe/BufferedRenderPipe.java \
+        sun/java2d/pipe/BufferedTextPipe.java \
+        sun/java2d/pipe/RenderBuffer.java \
+	sun/java2d/pipe/ShapeSpanIterator.java \
+	sun/java2d/pipe/SpanClipRenderer.java \
+	sun/java2d/pipe/RegionIterator.java \
+	sun/java2d/opengl/OGLBlitLoops.java \
+	sun/java2d/opengl/OGLContext.java \
+	sun/java2d/opengl/OGLMaskFill.java \
+	sun/java2d/opengl/OGLPaints.java \
+	sun/java2d/opengl/OGLRenderQueue.java \
+	sun/java2d/opengl/OGLRenderer.java \
+	sun/java2d/opengl/OGLSurfaceData.java \
+	sun/java2d/opengl/OGLTextRenderer.java \
+	sun/java2d/opengl/WGLGraphicsConfig.java \
+	sun/java2d/opengl/WGLSurfaceData.java \
+	sun/java2d/d3d/D3DBlitLoops.java \
+	sun/java2d/d3d/D3DGraphicsDevice.java \
+	sun/java2d/d3d/D3DSurfaceData.java \
+	sun/java2d/d3d/D3DMaskFill.java \
+	sun/java2d/d3d/D3DPaints.java \
+	sun/java2d/d3d/D3DRenderQueue.java \
+	sun/java2d/d3d/D3DRenderer.java \
+	sun/java2d/d3d/D3DTextRenderer.java \
+	sun/java2d/d3d/D3DContext.java
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/awt/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,568 @@
+#
+# Copyright (c) 1995, 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.
+#
+
+BUILDDIR = ../..
+PACKAGE = sun.awt
+LIBRARY = awt
+PRODUCT = sun
+
+# Tell Defs.gmk that VIS is needed
+VIS_NEEDED=true
+
+# Use highest optimization level
+OPTMIZATION_LEVEL = HIGHEST
+
+include $(BUILDDIR)/common/Defs.gmk
+include $(BUILDDIR)/Tools.gmk
+
+OTHER_CFLAGS += -D__MEDIALIB_OLD_NAMES -D__USE_J2D_NAMES
+
+#
+# Files
+#
+
+#
+# Include all Java source files in sun/awt and sun/java2d, except for:
+# sun/awt/resources       handled by java/awt/Makefile
+# sun/java2d/pisces       handled by sun/pisces/Makefile
+#
+AUTO_FILES_JAVA_DIRS = sun/awt sun/java2d com/sun/awt
+AUTO_JAVA_PRUNE = resources pisces
+
+ifeq ($(PLATFORM), windows)
+# vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv WINDOWS
+
+#
+# Files
+#
+include FILES_c_windows.gmk
+include FILES_export_windows.gmk
+
+#
+# Prune files that are currently unused on Windows (but still used on
+# Solaris/Linux).
+#
+AUTO_JAVA_PRUNE += RemoteOffScreenImage.java
+
+OTHER_CFLAGS += $(GX_OPTION) -DMLIB_NO_LIBSUNMATH -DUNICODE -D_UNICODE
+OTHER_CXXFLAGS += $(GX_OPTION) -DUNICODE -D_UNICODE
+
+ifeq ($(ARCH_DATA_MODEL), 64)
+  OTHER_CFLAGS += -DMLIB_OS64BIT
+endif
+
+# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ WINDOWS
+endif # PLATFORM
+
+ifneq ($(PLATFORM), windows)
+# vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv SOLARIS/LINUX
+
+#
+# Files
+#
+include FILES_c_unix.gmk
+include FILES_export_unix.gmk
+#
+# Prune the sun/awt/X11 subdirectory, which is handled by sun/xawt/Makefile.
+# Also prune files that are currently unused on Solaris/Linux (but still
+# used on Windows).
+#
+AUTO_JAVA_PRUNE += X11 AWTCharset.java
+
+ifeq  ($(PLATFORM), solaris)
+FILES_c = $(FILES_2D_c)
+FILES_c += awt_LoadLibrary.c
+OTHER_LDLIBS = $(JVMLIB) $(LIBM) $(LIBDL)
+ifeq ($(CC_VER), 5.8)
+  ifndef REMOVE_ALL_WORKAROUNDS
+    ifeq ($(ARCH_FAMILY), i586)
+      # If on Solaris 11 (or dlfcn.h has unknown_control_flow pragmas in it)
+      #   we trigger a SS11 bug that causes the compiler to crash (bug 6343678)
+      #   Here we check to see if we need this workaround and change the opt 
+      #   settings for this one file.
+      USE_WORKAROUND:=$(shell $(GREP) unknown_control_flow /usr/include/dlfcn.h)
+      ifneq ($(USE_WORKAROUND),)
+	ifeq ($(FASTDEBUG), true)
+          CFLAGS_DBG/awt_Mlib.o = -xO0 \
+	    $(warning  "WARNING: Using workaround for SS11 bug 6343678, on $@")
+	endif
+        # Compiler bug 6343678 need to prevent a SEGV in the compiler
+        CFLAGS_OPT/awt_Mlib.o = -g \
+	  $(warning  "WARNING: Using workaround for SS11 bug 6343678, on $@")
+      endif
+    endif
+  endif
+endif
+endif
+
+ifeq  ($(PLATFORM), linux)
+FILES_c = $(FILES_2D_c)
+FILES_c += awt_LoadLibrary.c
+OTHER_CFLAGS += -DMLIB_NO_LIBSUNMATH
+OTHER_LDLIBS = $(JVMLIB) $(LIBM) $(LIBDL)
+endif
+
+FILES_c += initIDs.c
+
+ifeq ($(PLATFORM), macosx)
+FILES_c = $(FILES_2D_c)
+FILES_c += awt_LoadLibrary.c
+OTHER_CFLAGS += -DMLIB_NO_LIBSUNMATH
+OTHER_LDLIBS = $(JVMLIB) $(LIBM)
+endif
+
+# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ SOLARIS/LINUX
+endif # PLATFORM 
+
+ifeq ($(PLATFORM), macosx)
+# vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv MAC OS X
+
+#
+# Files
+#
+include FILES_c_macosx.gmk
+include FILES_export_macosx.gmk
+
+FILES_objc = $(FILES_AWT_objc)
+OTHER_LDLIBS = -lmlib_image $(JVMLIB) $(LIBM) \
+    -framework Cocoa \
+    -framework OpenGL \
+    -framework JavaNativeFoundation \
+    -framework JavaRuntimeSupport \
+    -framework ApplicationServices \
+    -framework AudioToolbox
+
+# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ MAC OS X
+endif # PLATFORM 
+
+# vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv SOLARIS-SPARC
+# solaris-sparc and solaris-sparcv9 both build 'vis'
+ifeq ("$(PLATFORM)-$(ARCH_FAMILY)", "solaris-sparc")
+  FILES_c += $(FILES_2D_vis)
+  ASFLAGS += -P
+  FILES_s += mlib_v_ImageCopy_blk.s
+  INLINE_VIS = $(PLATFORM_SRC)/native/sun/awt/medialib/vis_$(ARCH_DATA_MODEL).il
+  CFLAGS_sparcv9 = -DMLIB_OS64BIT
+  
+  CFLAGS += $(CFLAGS_$(ARCH)) -DMLIB_ADD_SUFF $(INLINE_VIS) \
+	    -I$(SHARE_SRC)/native/sun/awt/medialib \
+	    -I$(PLATFORM_SRC)/native/sun/awt/medialib \
+	    -I$(PLATFORM_SRC)/native/sun/java2d/loops
+
+vpath %.c  $(PLATFORM_SRC)/native/sun/java2d/loops
+vpath %.c  $(SHARE_SRC)/native/sun/awt/medialib
+vpath %.c  $(PLATFORM_SRC)/native/sun/awt/medialib
+vpath %.s  $(PLATFORM_SRC)/native/sun/awt/medialib
+
+else
+  FILES_c += MapAccelFunc.c
+endif
+# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ SOLARIS-SPARC
+
+#
+# Resources
+#
+LOCALE_SET_DEFINITION = jre
+ifeq ($(PLATFORM), windows)
+  RESOURCE_BUNDLES_COMPILED_PROPERTIES += \
+	sun/awt/windows/awtLocalization.properties
+endif
+
+#
+# Rules
+#
+ifeq ($(PLATFORM), linux)
+  FILES_m = mapfile-vers-linux
+  # libawt.so on Linux is statically linked with Motif and contains all the
+  # Xm symbols. Mapfile is disabled so the symbols will remain public.
+  LDNOMAP=true
+endif
+
+include $(BUILDDIR)/common/Mapfile-vers.gmk
+include $(BUILDDIR)/common/Library.gmk
+
+COMPILEFONTCONFIG_FLAGS =
+ifdef ALT_COMPILEFONTCONFIG_FLAGS
+  COMPILEFONTCONFIG_FLAGS += $(ALT_COMPILEFONTCONFIG_FLAGS)
+endif
+build: fontconfigs
+
+
+ifeq ($(PLATFORM), windows)
+# vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv WINDOWS
+#
+# Additional dependencies.
+#
+# If make.depend is not working correctly, then it can be omitted
+# if you always build from a clean workspace. 
+
+include make.depend
+
+# required additional rules:
+
+# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ WINDOWS
+endif # PLATFORM
+
+ifneq ($(PLATFORM), windows)
+# vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv SOLARIS/LINUX
+
+ifndef OPENJDK
+build: dgalibs
+endif
+# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ SOLARIS/LINUX
+endif # PLATFORM
+
+clobber clean:: java2d.clean fontconfigs.clean
+
+ifndef OPENJDK
+clobber clean:: dgalib.clean 
+endif
+
+java2d.clean:
+	$(RM) -r $(CLASSBINDIR)/sun/java2d .classes.*
+
+#
+# Add to the ambient vpath to pick up files in subdirectories
+#
+vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/image
+vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/image/gif
+vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/image/cvutils
+vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/shell
+vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/medialib
+vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/debug
+vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/utility
+vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/../java2d
+vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/../java2d/loops
+vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/../java2d/pipe
+vpath %.cpp $(SHARE_SRC)/native/$(PKGDIR)/image
+ifeq ($(PLATFORM), windows)
+# vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv WINDOWS
+vpath %.cpp   $(PLATFORM_SRC)/native/sun/windows
+vpath %.cpp   $(PLATFORM_SRC)/native/$(PKGDIR)
+vpath %.cpp   $(PLATFORM_SRC)/native/$(PKGDIR)/../java2d/windows
+vpath %.cpp   $(PLATFORM_SRC)/native/$(PKGDIR)/../java2d/d3d
+vpath %.c     $(PLATFORM_SRC)/native/$(PKGDIR)/../java2d/opengl
+vpath %.c     $(SHARE_SRC)/native/$(PKGDIR)/../java2d/opengl
+vpath %.c     $(SHARE_SRC)/native/$(PKGDIR)/../font
+# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ WINDOWS
+endif # PLATFORM
+
+ifneq (,$(findstring $(PLATFORM), linux bsd))
+# vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv LINUX
+vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/../java2d/opengl
+vpath %.c   $(PLATFORM_SRC)/native/$(PKGDIR)/../java2d/opengl
+vpath %.c   $(PLATFORM_SRC)/native/$(PKGDIR)/../java2d/x11
+vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/../font
+# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ LINUX
+endif # PLATFORM
+
+ifeq ($(PLATFORM), macosx)
+# vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv MAC OS X
+vpath %.m   $(call NativeSrcDirList,,native/com/apple/resources)
+# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ MAC OS X
+endif # PLATFORM
+
+ifeq ($(PLATFORM), windows)
+# vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv WINDOWS
+OTHER_LDLIBS = kernel32.lib user32.lib gdi32.lib winspool.lib \
+               imm32.lib ole32.lib uuid.lib shell32.lib \
+               comdlg32.lib winmm.lib comctl32.lib \
+               shlwapi.lib delayimp.lib \
+               $(JVMLIB) \
+               /DELAYLOAD:user32.dll /DELAYLOAD:gdi32.dll \
+               /DELAYLOAD:shell32.dll /DELAYLOAD:winmm.dll \
+               /DELAYLOAD:winspool.drv /DELAYLOAD:imm32.dll \
+               /DELAYLOAD:ole32.dll /DELAYLOAD:comdlg32.dll \
+               /DELAYLOAD:comctl32.dll /DELAYLOAD:shlwapi.dll
+
+clean:: awt.clean
+
+awt.clean: 
+	$(RM) $(TEMPDIR)/awt.ico 
+	$(RM) $(TEMPDIR)/awt.res 
+	$(RM) $(TEMPDIR)/hand.cur 
+	$(RM) $(TEMPDIR)/check.bmp
+# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ WINDOWS
+endif # PLATFORM
+
+ifneq ($(PLATFORM), windows)
+# vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv SOLARIS/LINUX
+
+LIBXTST = -lXtst
+
+# Use -lXmu for EditRes support
+LIBXMU_DBG	= -lXmu
+LIBXMU_OPT	=
+LIBXMU	        = $(LIBXMU_$(VARIANT))
+
+#
+# Extra C flags.
+#
+
+
+ifndef OPENJDK
+
+#
+# Solaris X11 Direct Graphics Access library
+#
+
+_DGALIBS_sparc = \
+	libxinerama.so \
+	libjdgaSUNWcg6.so \
+	libjdgaSUNWffb.so \
+	libjdgaSUNWm64.so \
+	libjdgaSUNWafb.so
+
+_DGALIBS_sparcv9 = \
+	libxinerama.so \
+	libjdgaSUNWcg6.so \
+	libjdgaSUNWffb.so \
+	libjdgaSUNWm64.so \
+	libjdgaSUNWafb.so
+
+_DGALIBS_i586 = 	# no i586 library yet
+
+_DGALIBS_amd64 = 	# no amd64 library yet
+
+DGALIBS = $(_DGALIBS_$(ARCH):%=$(LIBDIR)/$(LIBARCH)/%)
+
+dgalibs: $(DGALIBS)
+
+$(LIBDIR)/$(LIBARCH)/libxinerama.so: $(CLOSED_SRC)/solaris/lib/$(ARCH)/libxinerama.so
+	$(install-file)
+	$(call chmod-file, a+x)
+
+$(LIBDIR)/$(LIBARCH)/libjdgaSUNW%.so: $(CLOSED_SRC)/solaris/lib/$(ARCH)/libjdgaSUNW%.so
+	$(install-file)
+	$(call chmod-file, a+x)
+
+$(LIBDIR)/$(LIBARCH)/libjdgaSUNWafb.so: $(LIBDIR)/$(LIBARCH)/libjdgaSUNWffb.so
+	$(prep-target)
+	$(call install-sym-link, libjdgaSUNWffb.so)
+
+clean:: dgalib.clean
+
+dgalib.clean:
+	$(RM) $(LIBDIR)/$(LIBARCH)/libjdgaSUNW* $(LIBDIR)/$(LIBARCH)/libxinerama.so
+endif
+
+# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ SOLARIS/LINUX
+endif # PLATFORM
+
+#
+# Font configs
+#
+
+ifeq ($(PLATFORM), windows)
+# vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv WINDOWS
+
+FONTCONFIGS_SRC = $(PLATFORM_SRC)/classes/sun/awt/windows
+_FONTCONFIGS = \
+        fontconfig.properties
+
+FONTCONFIGS_SRC_PREFIX =
+
+# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ WINDOWS
+endif # PLATFORM
+
+ifeq ($(PLATFORM), linux)
+# vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv LINUX
+ifdef OPENJDK
+
+FONTCONFIGS_SRC	= $(PLATFORM_SRC)/classes/sun/awt/fontconfigs
+_FONTCONFIGS	= \
+	fontconfig.properties				\
+	fontconfig.SuSE.properties                      \
+	fontconfig.Ubuntu.properties                    \
+	fontconfig.Fedora.properties
+else
+
+FONTCONFIGS_SRC	= $(CLOSED_SRC)/solaris/classes/sun/awt/fontconfigs
+_FONTCONFIGS	= \
+	fontconfig.properties				\
+	fontconfig.RedHat.5.properties			\
+	fontconfig.RedHat.6.properties			\
+	fontconfig.Turbo.properties			\
+	fontconfig.SuSE.10.properties                   \
+	fontconfig.SuSE.11.properties
+endif
+
+FONTCONFIGS_SRC_PREFIX = $(PLATFORM).
+
+# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ LINUX
+endif # PLATFORM
+
+ifeq ($(PLATFORM), solaris)
+# vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv SOLARIS
+
+FONTCONFIGS_SRC	= $(PLATFORM_SRC)/classes/sun/awt/fontconfigs
+_FONTCONFIGS	= \
+	fontconfig.properties
+
+FONTCONFIGS_SRC_PREFIX = $(PLATFORM).
+
+# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ SOLARIS
+endif # PLATFORM
+
+
+ifeq ($(PLATFORM), macosx)
+# vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv MAC OS X
+
+FONTCONFIGS_SRC = $(JDK_TOPDIR)/src/macosx/classes/sun/awt/fontconfigs
+_FONTCONFIGS    = \
+        fontconfig.properties
+
+FONTCONFIGS_SRC_PREFIX = $(PLATFORM).
+
+# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ MAC OS X
+endif # PLATFORM
+
+FONTCONFIGS     = $(_FONTCONFIGS:%=$(LIBDIR)/%.src)
+BINARYFONTCONFIGS = $(_FONTCONFIGS:%.properties=$(LIBDIR)/%.bfc)
+
+fontconfigs: $(FONTCONFIGS) $(BINARYFONTCONFIGS)
+
+$(LIBDIR)/%.src: $(FONTCONFIGS_SRC)/$(FONTCONFIGS_SRC_PREFIX)%
+	$(install-file)
+
+$(LIBDIR)/%.bfc: $(FONTCONFIGS_SRC)/$(FONTCONFIGS_SRC_PREFIX)%.properties \
+    $(BUILD_TOOLS)
+	$(prep-target)
+	$(TOOL_COMPILEFONTCONFIG) $(COMPILEFONTCONFIG_FLAGS) $< $@
+	$(call chmod-file, 444)
+	@$(java-vm-cleanup)
+
+fontconfigs.clean :
+	$(RM) $(FONTCONFIGS)
+	$(RM) $(BINARYFONTCONFIGS)
+
+ifeq ($(PLATFORM), windows)
+# vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv WINDOWS
+OTHER_CFLAGS += $(GX_OPTION) -DUNICODE -D_UNICODE
+
+ifeq ($(MILESTONE), internal)
+  CPPFLAGS += -DINTERNAL_BUILD
+endif
+
+#
+# Useful variables that name parts of the src tree.
+#
+WINAWT_native        = $(PLATFORM_SRC)/native/sun/windows
+WINAWT_COMMON_native = $(PLATFORM_SRC)/native/sun/awt_common
+
+# FIXME: awt shouldn't have to see the VM's private headers.
+# FIXME: if you re-order this list, the build breaks, possibly because 
+#        of filename collision. Such a collision, if present, is pure
+#        evil. Need to investigate this.
+
+OTHER_INCLUDES += -I$(CLASSHDRDIR)/../../java/jvm \
+	-I$(OBJDIR) \
+	-I$(SHARE_SRC)/native/common \
+	-I$(WINAWT_native) \
+	-I$(DXSDK_INCLUDE_PATH) \
+	-I$(SHARE_SRC)/native/sun/awt/image/cvutils \
+	-I$(SHARE_SRC)/native/sun/awt/image \
+	-I$(SHARE_SRC)/native/sun/java2d/loops \
+	-I$(SHARE_SRC)/native/sun/java2d \
+	-I$(PLATFORM_SRC)/native/sun/java2d \
+	-I$(SHARE_SRC)/native/sun/java2d/opengl \
+	-I$(PLATFORM_SRC)/native/sun/java2d/d3d \
+	-I$(PLATFORM_SRC)/native/sun/java2d/opengl \
+	-I$(PLATFORM_SRC)/native/sun/java2d/windows \
+	-I$(SHARE_SRC)/native/sun/font \
+	-I$(SHARE_SRC)/native/sun/java2d/pipe \
+	-I$(SHARE_SRC)/native/sun/dc/path \
+	-I$(SHARE_SRC)/native/sun/dc/doe \
+	-I$(SHARE_SRC)/native/sun/awt/debug \
+	-I$(PLATFORM_SRC)/native/sun/awt
+#	-I$(WINAWT_COMMON_native)
+
+# this is only required for compiling )/native/sun/awt/medialib/*.c files
+#
+OTHER_INCLUDES += -I$(SHARE_SRC)/native/sun/awt/medialib
+
+#
+# .res file construction.
+#
+
+ifdef OPENJDK
+    RC_FLAGS += -i "$(PLATFORM_SRC)/resource/icons"
+else
+    RC_FLAGS += -i "$(CLOSED_SRC)/windows/native/sun/windows"
+endif
+VERSIONINFO_RESOURCE = $(WINAWT_native)/awt.rc
+
+# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ WINDOWS
+endif # PLATFORM
+
+ifneq ($(PLATFORM), windows)
+# vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv SOLARIS/LINUX
+
+#
+# Other extra flags needed for compiling.
+#
+
+ifeq ($(PLATFORM), linux)
+CPPFLAGS += -I$(OPENWIN_HOME)/include \
+            -I$(OPENWIN_HOME)/include/X11/extensions \
+            -I$(PLATFORM_SRC)/native/$(PKGDIR)/font 
+endif
+CPPFLAGS += -I$(SHARE_SRC)/native/$(PKGDIR)/debug \
+            -I$(SHARE_SRC)/native/$(PKGDIR)/../font \
+            -I$(PLATFORM_SRC)/native/$(PKGDIR)/../font \
+            -I$(SHARE_SRC)/native/$(PKGDIR)/image \
+	    -I$(SHARE_SRC)/native/$(PKGDIR)/image/cvutils \
+	    -I$(SHARE_SRC)/native/$(PKGDIR)/shell \
+            -I$(SHARE_SRC)/native/$(PKGDIR)/medialib \
+            -I$(PLATFORM_SRC)/native/$(PKGDIR)/medialib \
+	    -I$(SHARE_SRC)/native/$(PKGDIR)/../java2d \
+	    -I$(PLATFORM_SRC)/native/$(PKGDIR)/../java2d \
+	    -I$(SHARE_SRC)/native/$(PKGDIR)/../java2d/loops \
+	    -I$(SHARE_SRC)/native/$(PKGDIR)/../java2d/pipe \
+	    -I$(SHARE_SRC)/native/$(PKGDIR)/../java2d/opengl \
+	    -I$(PLATFORM_SRC)/native/$(PKGDIR)/../java2d/opengl \
+	    -I$(PLATFORM_SRC)/native/$(PKGDIR)/../java2d/x11 \
+	    -I$(SHARE_SRC)/native/$(PKGDIR)/../dc/doe \
+	    -I$(SHARE_SRC)/native/$(PKGDIR)/../dc/path \
+            -I$(PLATFORM_SRC)/native/$(PKGDIR)/../jdga \
+            -I$(PLATFORM_SRC)/native/$(PKGDIR) \
+	    $(EVENT_MODEL)
+
+ifeq ($(PLATFORM), linux)
+LDFLAGS += -L$(OPENWIN_LIB)
+endif
+
+LDFLAGS += -L$(LIBDIR)/$(LIBARCH)/$(TSOBJDIR) \
+	   $(AWT_RUNPATH)
+
+# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ SOLARIS/LINUX
+endif # PLATFORM
+
+CLASSES.export += java.io.InputStream \
+		  java.lang.Integer \
+		  java.lang.ThreadGroup
+
+.PHONY: dgalibs dgalib.clean fontconfigs fontconfigs.clean
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/awt/README	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,26 @@
+README:
+
+This directory builds the new version of the Windows AWT.  It's been built
+successfully with Visual C++ 4.1, but since it uses very little of VC++'s
+runtime, it will probably work with other versions of that compiler.
+
+Included in this project is a generated file, make.depend, which lists
+all interdependencies of the source files.  This file is generated *on
+Solaris or Linux* with the following command:
+
+	% gnumake -f Depend.mak
+
+This step only needs to be run when new files are added to the project,
+or include statements are changed.
+
+Also, if new CClassHeader dependencies are added for Java class files
+that are not built from a Java source file listed in java_awt.jmk or
+windows_awt.jmk then you need to update the FILES_java list in the
+"else" part of the "ifdef JFILES" branch in Depend.mak.
+At some point we should look at a way to share the explicit list of
+exported files between Depend.mak and GNUmakefile.
+
+****NOTE****
+ In order to run this command, the executable 
+/usr/openwin/bin/makedepend is required to be in your $PATH.
+****NOTE****
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/awt/make.depend	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,357 @@
+$(OBJDIR)/AccelGlyphCache.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/AlphaMacros.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/AlphaMath.obj::	../../../src/share/native/sun/java2d/loops/AlphaMath.h
+
+$(OBJDIR)/Any3Byte.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/Any3Byte.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/Any4Byte.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/Any4Byte.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/AnyByte.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyByte.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/AnyInt.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyInt.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/AnyShort.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/awt_AWTEvent.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_BitmapUtil.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/awt/utility/rect.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_BitmapUtil.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Brush.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Button.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Button.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WButtonPeer.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Button.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Canvas.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsConfig.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Checkbox.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Checkbox.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WCheckboxPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Checkbox.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Choice.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Choice.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Toolkit.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WChoicePeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Choice.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dimension.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Clipboard.obj::	$(CLASSHDRDIR)/sun_awt_windows_WClipboard.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Clipboard.h ../../../src/windows/native/sun/windows/awt_DataTransferer.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Color.obj::	$(CLASSHDRDIR)/sun_awt_windows_WColor.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Color.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Component.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Color.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_InputMethodEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_MouseWheelEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Insets.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Toolkit.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WInputMethod.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPanelPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jawt.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/awt/utility/rect.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_BitmapUtil.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Cursor.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dimension.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_InputEvent.h ../../../src/windows/native/sun/windows/awt_InputTextInfor.h ../../../src/windows/native/sun/windows/awt_Insets.h ../../../src/windows/native/sun/windows/awt_KeyEvent.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MouseEvent.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Container.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Cursor.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Cursor.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WCustomCursor.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WGlobalCursorManager.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Cursor.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_IconCursor.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_DataTransferer.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_TextComponent.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_datatransfer_DataTransferer.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDataTransferer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/common/locale_str.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_DataTransferer.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_TextComponent.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_DCHolder.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_DCHolder.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_ole.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Debug.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Desktop.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_DesktopProperties.obj::	$(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_windows_WDesktopProperties.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DesktopProperties.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Dialog.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Dimension.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dimension.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_DnDDS.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_dnd_DnDConstants.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_dnd_SunDragSourceContextPeer.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDragSourceContextPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Cursor.h ../../../src/windows/native/sun/windows/awt_DataTransferer.h ../../../src/windows/native/sun/windows/awt_DCHolder.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DnDDS.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_ole.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_DnDDT.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_dnd_DnDConstants.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDropTargetContextPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_DataTransferer.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DnDDS.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_ole.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_DrawingSurface.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jawt.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jawt_md.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DrawingSurface.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Event.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Event.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_FileDialog.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Font.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDefaultFontCharset.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFontPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/Disposer.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Frame.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/java_lang_Integer.h $(CLASSHDRDIR)/sun_awt_EmbeddedFrame.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WEmbeddedFrame.h $(CLASSHDRDIR)/sun_awt_windows_WEmbeddedFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_IconCursor.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_GDIObject.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_IconCursor.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_IconCursor.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_ImageRep.obj::	$(CLASSHDRDIR)/sun_awt_image_ImageRepresentation.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/image/awt_parseImage.h ../../../src/share/native/sun/awt/image/imageInitIDs.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/awt_ImagingLib.obj::	$(CLASSHDRDIR)/java_awt_color_ColorSpace.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_image_BufferedImage.h $(CLASSHDRDIR)/java_awt_image_ConvolveOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_image_ImagingLib.h $(CLASSHDRDIR)/sun_awt_image_IntegerComponentRaster.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/image/awt_parseImage.h ../../../src/share/native/sun/awt/image/imageInitIDs.h ../../../src/share/native/sun/awt/medialib/awt_ImagingLib.h ../../../src/share/native/sun/awt/medialib/mlib_image_get.h ../../../src/share/native/sun/awt/medialib/mlib_image_types.h ../../../src/share/native/sun/awt/medialib/mlib_status.h ../../../src/share/native/sun/awt/medialib/mlib_types.h ../../../src/share/native/sun/awt/medialib/safe_alloc.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/awt_Mlib.h
+
+$(OBJDIR)/awt_InputEvent.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_InputEvent.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_InputMethod.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_InputMethodEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WInputMethod.h $(CLASSHDRDIR)/sun_awt_windows_WInputMethodDescriptor.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/common/locale_str.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_InputTextInfor.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_InputTextInfor.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Insets.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Insets.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_KeyboardFocusManager.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_KeyboardFocusManager.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_KeyEvent.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_KeyEvent.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Label.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Label.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WLabelPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Label.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_List.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_List.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WListPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dimension.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_List.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Menu.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_MenuBar.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_MenuItem.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_CheckboxMenuItem.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Toolkit.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCheckboxMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DesktopProperties.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Mlib.obj::	$(CLASSHDRDIR)/java_awt_image_BufferedImage.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/medialib/awt_ImagingLib.h ../../../src/share/native/sun/awt/medialib/mlib_image_get.h ../../../src/share/native/sun/awt/medialib/mlib_image_types.h ../../../src/share/native/sun/awt/medialib/mlib_status.h ../../../src/share/native/sun/awt/medialib/mlib_types.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Mlib.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_MouseEvent.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_MouseEvent.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_new.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_new.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Object.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_ole.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_ole.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Palette.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_CustomPaletteDef.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/img_util_md.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Panel.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Panel.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_parseImage.obj::	$(CLASSHDRDIR)/java_awt_color_ColorSpace.h $(CLASSHDRDIR)/java_awt_image_BufferedImage.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_image_ImagingLib.h $(CLASSHDRDIR)/sun_awt_image_IntegerComponentRaster.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/image/awt_parseImage.h ../../../src/share/native/sun/awt/image/imageInitIDs.h ../../../src/share/native/sun/awt/medialib/awt_ImagingLib.h ../../../src/share/native/sun/awt/medialib/mlib_image_get.h ../../../src/share/native/sun/awt/medialib/mlib_image_types.h ../../../src/share/native/sun/awt/medialib/mlib_status.h ../../../src/share/native/sun/awt/medialib/mlib_types.h ../../../src/share/native/sun/awt/medialib/safe_alloc.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/awt_Mlib.h
+
+$(OBJDIR)/awt_Pen.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_PopupMenu.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_PopupMenu.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPopupMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Event.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PopupMenu.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_PrintControl.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintControl.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_PrintDialog.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPrintDialog.h $(CLASSHDRDIR)/sun_awt_windows_WPrintDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintControl.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_PrintJob.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPrinterJob.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintControl.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Rectangle.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Rectangle.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Robot.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WRobotPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Robot.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Scrollbar.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Scrollbar.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WScrollbarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Scrollbar.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_ScrollPane.obj::	$(CLASSHDRDIR)/java_awt_Adjustable.h $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_AdjustmentEvent.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Insets.h $(CLASSHDRDIR)/java_awt_Scrollbar.h $(CLASSHDRDIR)/java_awt_ScrollPane.h $(CLASSHDRDIR)/java_awt_ScrollPaneAdjustable.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WScrollbarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WScrollPanePeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Insets.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Panel.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Scrollbar.h ../../../src/windows/native/sun/windows/awt_ScrollPane.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_TextArea.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_TextArea.h $(CLASSHDRDIR)/java_awt_TextComponent.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextAreaPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_TextArea.h ../../../src/windows/native/sun/windows/awt_TextComponent.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_TextComponent.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_TextComponent.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_TextComponent.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_TextField.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_TextComponent.h $(CLASSHDRDIR)/java_awt_TextField.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextFieldPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_TextComponent.h ../../../src/windows/native/sun/windows/awt_TextField.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Toolkit.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_InputMethodEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_List.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_ComponentPeer.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_PopupMenu.h $(CLASSHDRDIR)/java_awt_Toolkit.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WListPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPopupMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext_D3DContextCaps.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jawt.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jawt_md.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Clipboard.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Cursor.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DesktopProperties.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_DnDDS.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_DrawingSurface.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_InputEvent.h ../../../src/windows/native/sun/windows/awt_KeyEvent.h ../../../src/windows/native/sun/windows/awt_List.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_new.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PopupMenu.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/CmdIDList.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/DllUtil.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_TrayIcon.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_ActionEvent.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_TrayIcon.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WTrayIconPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_TrayIcon.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Win32GraphicsConfig.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_image_DataBuffer.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_Win32GraphicsConfig.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsConfig.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Win32GraphicsDevice.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_color_ColorSpace.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_image_DataBuffer.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_Win32GraphicsDevice.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/awt/image/dither.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/img_util_md.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Win32GraphicsEnv.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_Win32FontManager.h $(CLASSHDRDIR)/sun_awt_Win32GraphicsEnvironment.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/java2d/windows/WindowsFlags.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/DllUtil.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Window.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Container.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_ComponentEvent.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Insets.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_BitmapUtil.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_IconCursor.h ../../../src/windows/native/sun/windows/awt_Insets.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Panel.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/Blit.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_Blit.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/awt/utility/rect.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/BlitBg.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_BlitBg.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/awt/utility/rect.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/BufferedMaskBlit.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedMaskBlit.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedOpCodes.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntBgr.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/BufferedRenderPipe.obj::	$(CLASSHDRDIR)/sun_java2d_pipe_BufferedOpCodes.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedRenderPipe.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/BufImgSurfaceData.obj::	$(CLASSHDRDIR)/sun_awt_image_BufImgSurfaceData.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/image/BufImgSurfaceData.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/img_util_md.h
+
+$(OBJDIR)/ByteBinary1Bit.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyByteBinary.h ../../../src/share/native/sun/java2d/loops/ByteBinary1Bit.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/ByteBinary2Bit.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyByteBinary.h ../../../src/share/native/sun/java2d/loops/ByteBinary2Bit.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/ByteBinary4Bit.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyByteBinary.h ../../../src/share/native/sun/java2d/loops/ByteBinary4Bit.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/ByteGray.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyByte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/Index8Gray.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/ByteIndexed.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyByte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/CmdIDList.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/CmdIDList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/ComCtl32Util.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/D3DBlitLoops.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DBlitLoops.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext_D3DContextCaps.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntBgr.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/Ushort555Rgb.h ../../../src/share/native/sun/java2d/loops/Ushort565Rgb.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DBlitLoops.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/D3DBufImgOps.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext_D3DContextCaps.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DBufImgOps.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/D3DContext.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext_D3DContextCaps.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DBufImgOps.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DGlyphCache.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPaints.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DShaders.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DTextRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/D3DGlyphCache.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext_D3DContextCaps.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DGlyphCache.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DTextRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/D3DGraphicsDevice.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext_D3DContextCaps.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DGraphicsDevice.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DGraphicsDevice.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/D3DMaskBlit.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext_D3DContextCaps.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskBlit.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/D3DMaskCache.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext_D3DContextCaps.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/D3DMaskFill.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext_D3DContextCaps.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DMaskFill.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskFill.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/D3DPaints.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext_D3DContextCaps.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DPaints_MultiGradient.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPaints.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/D3DPipelineManager.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext_D3DContextCaps.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DBadHardware.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/WindowsFlags.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/D3DRenderer.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext_D3DContextCaps.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DRenderer.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedRenderPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/D3DRenderQueue.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DBlitLoops.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext_D3DContextCaps.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedOpCodes.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedRenderPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DBlitLoops.h ../../../src/windows/native/sun/java2d/d3d/D3DBufImgOps.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskBlit.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskFill.h ../../../src/windows/native/sun/java2d/d3d/D3DPaints.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DTextRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/D3DResourceManager.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext_D3DContextCaps.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPaints.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DTextRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/D3DSurfaceData.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext_D3DContextCaps.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_BitmapUtil.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/D3DTextRenderer.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext_D3DContextCaps.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DTextRenderer.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DGlyphCache.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DTextRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/D3DVertexCacher.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext_D3DContextCaps.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPaints.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/DataBufferNative.obj::	$(CLASSHDRDIR)/sun_awt_image_DataBufferNative.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/debug_assert.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/debug_mem.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/debug_trace.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/debug_util.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/Devices.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext_D3DContextCaps.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/Disposer.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/Disposer.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/dither.obj::	../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/awt/image/dither.h ../../../src/windows/native/sun/windows/colordata.h
+
+$(OBJDIR)/DllUtil.obj::	../../../src/windows/native/sun/windows/DllUtil.h
+
+$(OBJDIR)/DrawLine.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_DrawLine.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/DrawParallelogram.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_DrawParallelogram.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/ParallelogramUtils.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/DrawPath.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_DrawPath.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/DrawPath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/ProcessPath.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/DrawPolygons.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_DrawPolygons.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/DrawRect.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_DrawRect.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/FillParallelogram.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_FillParallelogram.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/ParallelogramUtils.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/FillPath.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_FillPath.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/DrawPath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/ProcessPath.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/FillRect.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_FillRect.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/FillSpans.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_FillSpans.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/FourByteAbgr.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/Any4Byte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/FourByteAbgr.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/FourByteAbgrPre.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/Any4Byte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/FourByteAbgrPre.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/GDIBlitLoops.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_windows_GDIBlitLoops.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/GDIHashtable.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/GDIRenderer.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_geom_PathIterator.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_windows_GDIRenderer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/GDIWindowSurfaceData.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_windows_GDIWindowSurfaceData.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/Disposer.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/awt/utility/rect.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/java2d/windows/WindowsFlags.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/gifdecoder.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/GraphicsPrimitiveMgr.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_GraphicsPrimitiveMgr.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/awt/utility/rect.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/Hashtable.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/imageInitIDs.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/image/imageInitIDs.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/img_colors.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/img_globals.obj::	$(CLASSHDRDIR)/java_awt_image_DirectColorModel.h $(CLASSHDRDIR)/java_awt_image_IndexColorModel.h $(CLASSHDRDIR)/java_awt_Transparency.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/windows/javavm/export/jni_md.h
+
+$(OBJDIR)/Index12Gray.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/Index8Gray.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/Index8Gray.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyByte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/Index8Gray.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/initIDs.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/IntArgb.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyInt.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/IntArgbBm.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyInt.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/IntArgbPre.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyInt.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/IntBgr.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyInt.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/Index8Gray.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntBgr.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/IntRgb.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyInt.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/IntRgbx.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyInt.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/IntRgbx.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/MaskBlit.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_MaskBlit.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/awt/utility/rect.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/MaskFill.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_MaskFill.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/ParallelogramUtils.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/MouseInfo.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/ObjectList.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/OGLBlitLoops.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLBlitLoops.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext_OGLContextCaps.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/OGLBlitLoops.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
+
+$(OBJDIR)/OGLBufImgOps.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext_OGLContextCaps.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/OGLBufImgOps.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
+
+$(OBJDIR)/OGLContext.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext_OGLContextCaps.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/awt/utility/rect.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
+
+$(OBJDIR)/OGLFuncs.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
+
+$(OBJDIR)/OGLMaskBlit.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext_OGLContextCaps.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLMaskBlit.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
+
+$(OBJDIR)/OGLMaskFill.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext_OGLContextCaps.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLMaskFill.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLMaskFill.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/opengl/OGLVertexCache.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
+
+$(OBJDIR)/OGLPaints.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext_OGLContextCaps.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedPaints.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLPaints.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
+
+$(OBJDIR)/OGLRenderer.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext_OGLContextCaps.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLRenderer.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedRenderPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLRenderer.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
+
+$(OBJDIR)/OGLRenderQueue.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLBlitLoops.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext_OGLContextCaps.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedOpCodes.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedRenderPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/OGLBlitLoops.h ../../../src/share/native/sun/java2d/opengl/OGLBufImgOps.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLMaskBlit.h ../../../src/share/native/sun/java2d/opengl/OGLMaskFill.h ../../../src/share/native/sun/java2d/opengl/OGLPaints.h ../../../src/share/native/sun/java2d/opengl/OGLRenderer.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/opengl/OGLTextRenderer.h ../../../src/share/native/sun/java2d/opengl/OGLVertexCache.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
+
+$(OBJDIR)/OGLSurfaceData.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
+
+$(OBJDIR)/OGLTextRenderer.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext_OGLContextCaps.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLTextRenderer.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/opengl/OGLTextRenderer.h ../../../src/share/native/sun/java2d/opengl/OGLVertexCache.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
+
+$(OBJDIR)/OGLVertexCache.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext_OGLContextCaps.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLPaints.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/opengl/OGLVertexCache.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
+
+$(OBJDIR)/ProcessPath.obj::	$(CLASSHDRDIR)/java_awt_geom_PathIterator.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/loops/ProcessPath.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/Region.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/awt/utility/rect.h
+
+$(OBJDIR)/ScaledBlit.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_ScaledBlit.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/awt/utility/rect.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/ShapeSpanIterator.obj::	$(CLASSHDRDIR)/java_awt_geom_PathIterator.h $(CLASSHDRDIR)/sun_java2d_pipe_ShapeSpanIterator.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/pipe/PathConsumer2D.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/ShellFolder2.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/SpanClipRenderer.obj::	$(CLASSHDRDIR)/sun_java2d_pipe_RegionIterator.h $(CLASSHDRDIR)/sun_java2d_pipe_SpanClipRenderer.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/SurfaceData.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/Disposer.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/ThemeReader.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_ThemeReader.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/ThreeByteBgr.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/Any3Byte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/Trace.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/TransformHelper.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_loops_TransformHelper.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/awt/utility/rect.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/Ushort4444Argb.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/Ushort4444Argb.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/Ushort555Rgb.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/Ushort555Rgb.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/Ushort555Rgbx.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/Ushort555Rgbx.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/Ushort565Rgb.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/Ushort4444Argb.h ../../../src/share/native/sun/java2d/loops/Ushort565Rgb.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/UshortGray.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/UshortIndexed.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyByte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/loops/UshortIndexed.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/WGLGraphicsConfig.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext_OGLContextCaps.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_opengl_WGLGraphicsConfig.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h ../../../src/windows/native/sun/java2d/opengl/WGLGraphicsConfig.h ../../../src/windows/native/sun/java2d/opengl/WGLSurfaceData.h
+
+$(OBJDIR)/WGLSurfaceData.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext_OGLContextCaps.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_opengl_WGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h ../../../src/windows/native/sun/java2d/opengl/WGLGraphicsConfig.h ../../../src/windows/native/sun/java2d/opengl/WGLSurfaceData.h
+
+$(OBJDIR)/WindowsFlags.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/WindowsFlags.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/WPrinterJob.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_PrintControl.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/stdhdrs.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/awt/mapfile-mawt-vers	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,285 @@
+#
+# Copyright (c) 2001, 2011, 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.
+#
+#		Java_java_awt_KeyboardFocusManager_getGlobalHeavyweightFocusOwner;
+
+# Define public interface.
+# These are the libmawt exports. See mapfile-vers for the libawt exports
+
+SUNWprivate_1.1 {
+	global:
+		JNI_OnLoad;
+
+		Java_sun_awt_DefaultMouseInfoPeer_fillPointWithCoords;
+		Java_sun_awt_DefaultMouseInfoPeer_isWindowUnderMouse;
+		Java_java_awt_AWTEvent_nativeSetSource;
+		Java_java_awt_Checkbox_initIDs;
+		Java_java_awt_Component_initIDs;
+		Java_java_awt_Dialog_initIDs;
+		Java_java_awt_Font_initIDs;
+                Java_java_awt_KeyboardFocusManager_initIDs;
+		Java_java_awt_Menu_initIDs;
+		Java_java_awt_MenuComponent_initIDs;
+		Java_java_awt_MenuItem_initIDs;
+		Java_java_awt_Scrollbar_initIDs;
+		Java_java_awt_ScrollPane_initIDs;
+		Java_java_awt_TextArea_initIDs;
+		Java_sun_awt_FontDescriptor_initIDs;
+		Java_sun_awt_KeyboardFocusManagerPeerImpl_clearNativeGlobalFocusOwner;
+                Java_sun_awt_KeyboardFocusManagerPeerImpl_getNativeFocusOwner;
+                Java_sun_awt_KeyboardFocusManagerPeerImpl_getNativeFocusedWindow;
+                Java_sun_awt_UNIXToolkit_check_1gtk;
+                Java_sun_awt_UNIXToolkit_load_1gtk;
+                Java_sun_awt_UNIXToolkit_unload_1gtk;
+                Java_sun_awt_UNIXToolkit_load_1stock_1icon;
+                Java_sun_awt_UNIXToolkit_load_1gtk_1icon;
+		Java_sun_awt_UNIXToolkit_nativeSync;
+		Java_sun_awt_X11InputMethod_disposeXIC;
+		Java_sun_awt_X11InputMethod_isCompositionEnabledNative;
+		Java_sun_awt_X11InputMethod_resetXIC;
+		Java_sun_awt_X11InputMethod_setCompositionEnabledNative;
+		Java_sun_awt_X11InputMethod_turnoffStatusWindow;
+		Java_sun_awt_SunToolkit_closeSplashScreen;
+		Java_sun_awt_PlatformFont_initIDs;
+		Java_sun_awt_X11GraphicsConfig_init;
+		Java_sun_awt_X11GraphicsConfig_dispose;
+		Java_sun_awt_X11GraphicsConfig_pGetBounds;
+		Java_sun_awt_X11GraphicsConfig_getNumColors;
+		Java_sun_awt_X11GraphicsConfig_getXResolution;
+		Java_sun_awt_X11GraphicsConfig_getYResolution;
+		Java_sun_awt_X11GraphicsConfig_createBackBuffer;
+		Java_sun_awt_X11GraphicsConfig_destroyBackBuffer;
+		Java_sun_awt_X11GraphicsConfig_swapBuffers;
+                Java_sun_awt_X11GraphicsConfig_isTranslucencyCapable;
+		Java_sun_awt_X11GraphicsDevice_isDBESupported;
+		Java_sun_awt_X11GraphicsDevice_getDisplay;
+		Java_sun_awt_X11GraphicsDevice_getDoubleBufferVisuals;
+		Java_sun_awt_X11GraphicsDevice_getNumConfigs;
+		Java_sun_awt_X11GraphicsDevice_initIDs;
+                Java_sun_awt_X11GraphicsDevice_initXrandrExtension;
+                Java_sun_awt_X11GraphicsDevice_enterFullScreenExclusive;
+                Java_sun_awt_X11GraphicsDevice_exitFullScreenExclusive;
+                Java_sun_awt_X11GraphicsDevice_getCurrentDisplayMode;
+                Java_sun_awt_X11GraphicsDevice_enumDisplayModes;
+                Java_sun_awt_X11GraphicsDevice_configDisplayMode;
+                Java_sun_awt_X11GraphicsDevice_resetNativeData;
+		Java_sun_awt_X11GraphicsEnvironment_checkShmExt;
+		Java_sun_awt_X11GraphicsEnvironment_getDefaultScreenNum;
+		Java_sun_awt_X11GraphicsEnvironment_getDisplayString;
+		Java_sun_awt_X11GraphicsEnvironment_getNumScreens;
+		Java_sun_awt_X11GraphicsEnvironment_initDisplay;
+                Java_sun_awt_X11GraphicsEnvironment_initGLX;
+		Java_sun_awt_X11GraphicsEnvironment_pRunningXinerama;
+		Java_sun_awt_X11GraphicsEnvironment_getXineramaCenterPoint;
+		Java_sun_awt_X11GraphicsEnvironment_initXRender;
+		Java_java_awt_AWTEvent_initIDs;
+		Java_java_awt_Button_initIDs;
+		Java_java_awt_Container_initIDs;
+		Java_java_awt_Cursor_finalizeImpl;
+		Java_java_awt_Cursor_initIDs;
+		Java_java_awt_Event_initIDs;
+		Java_java_awt_event_InputEvent_initIDs;
+		Java_java_awt_event_KeyEvent_initIDs;
+		Java_java_awt_FileDialog_initIDs;
+		Java_java_awt_Frame_initIDs;
+		Java_java_awt_Insets_initIDs;
+		Java_java_awt_TextField_initIDs;
+		Java_java_awt_Window_initIDs;
+		Java_sun_awt_X11GraphicsConfig_init;
+		Java_sun_awt_X11GraphicsConfig_initIDs;
+		Java_sun_awt_X11GraphicsConfig_makeColorModel;
+		Java_sun_awt_X11GraphicsDevice_getConfigVisualId;
+                Java_sun_awt_X11GraphicsDevice_getConfigColormap;
+                Java_sun_awt_X11GraphicsDevice_getConfigDepth;
+
+                Java_sun_java2d_x11_X11PMBlitLoops_nativeBlit;
+                Java_sun_java2d_x11_X11PMBlitLoops_updateBitmask;
+		Java_sun_java2d_x11_X11PMBlitBgLoops_nativeBlitBg;
+		Java_sun_java2d_x11_X11Renderer_XFillSpans;
+		Java_sun_java2d_x11_X11Renderer_XDrawArc;
+		Java_sun_java2d_x11_X11Renderer_XDrawLine;
+		Java_sun_java2d_x11_X11Renderer_XDrawOval;
+		Java_sun_java2d_x11_X11Renderer_XDrawPoly;
+		Java_sun_java2d_x11_X11Renderer_XDrawRect;
+		Java_sun_java2d_x11_X11Renderer_XDrawRoundRect;
+                Java_sun_java2d_x11_X11Renderer_XDoPath;
+		Java_sun_java2d_x11_X11Renderer_XFillArc;
+		Java_sun_java2d_x11_X11Renderer_XFillOval;
+		Java_sun_java2d_x11_X11Renderer_XFillPoly;
+		Java_sun_java2d_x11_X11Renderer_XFillRect;
+		Java_sun_java2d_x11_X11Renderer_XFillRoundRect;
+		Java_sun_java2d_x11_X11Renderer_devCopyArea;
+		Java_sun_java2d_x11_X11SurfaceData_initIDs;
+		Java_sun_java2d_x11_X11SurfaceData_initOps;
+		Java_sun_java2d_x11_X11SurfaceData_initSurface;
+		Java_sun_java2d_x11_X11SurfaceData_isDgaAvailable;
+		Java_sun_java2d_x11_X11SurfaceData_isShmPMAvailable;
+                Java_sun_java2d_x11_X11SurfaceData_XSetCopyMode;
+                Java_sun_java2d_x11_X11SurfaceData_XSetXorMode;
+                Java_sun_java2d_x11_X11SurfaceData_XSetForeground;
+
+		Java_sun_java2d_x11_XSurfaceData_initOps;
+		Java_sun_java2d_x11_XSurfaceData_XCreateGC;
+		Java_sun_java2d_x11_XSurfaceData_XResetClip;
+		Java_sun_java2d_x11_XSurfaceData_XSetClip;
+		Java_sun_java2d_x11_XSurfaceData_flushNativeSurface;
+		Java_sun_java2d_x11_XSurfaceData_isDrawableValid;
+		Java_sun_java2d_x11_XSurfaceData_setInvalid;
+		Java_sun_java2d_x11_XSurfaceData_XSetGraphicsExposures;
+		Java_sun_java2d_xr_XRSurfaceData_initXRPicture;
+		Java_sun_java2d_xr_XRSurfaceData_initIDs;
+		Java_sun_java2d_xr_XRSurfaceData_XRInitSurface;
+		Java_sun_java2d_xr_XRSurfaceData_freeXSDOPicture;
+		Java_sun_java2d_xr_XRBackendNative_initIDs;
+		Java_sun_java2d_xr_XIDGenerator_bufferXIDs;
+		Java_sun_java2d_xr_XRBackendNative_freeGC;
+		Java_sun_java2d_xr_XRBackendNative_createGC;
+		Java_sun_java2d_xr_XRBackendNative_createPixmap;
+		Java_sun_java2d_xr_XRBackendNative_createPictureNative;
+		Java_sun_java2d_xr_XRBackendNative_freePicture;
+		Java_sun_java2d_xr_XRBackendNative_freePixmap;
+		Java_sun_java2d_xr_XRBackendNative_setPictureRepeat;
+		Java_sun_java2d_xr_XRBackendNative_setGCExposures;
+		Java_sun_java2d_xr_XRBackendNative_setGCForeground;
+		Java_sun_java2d_xr_XRBackendNative_copyArea;
+		Java_sun_java2d_xr_XRBackendNative_renderComposite;
+		Java_sun_java2d_xr_XRBackendNative_renderRectangle;
+		Java_sun_java2d_xr_XRBackendNative_XRenderRectanglesNative;
+		Java_sun_java2d_xr_XRBackendNative_XRSetTransformNative;
+		Java_sun_java2d_xr_XRBackendNative_XRCreateLinearGradientPaintNative;
+		Java_sun_java2d_xr_XRBackendNative_XRCreateRadialGradientPaintNative;
+		Java_sun_java2d_xr_XRBackendNative_setFilter;
+		Java_sun_java2d_xr_XRBackendNative_XRSetClipNative;
+		Java_sun_java2d_xr_XRBackendNative_putMaskNative;
+		Java_sun_java2d_xr_XRBackendNative_XRAddGlyphsNative;
+		Java_sun_java2d_xr_XRBackendNative_XRFreeGlyphsNative;
+		Java_sun_java2d_xr_XRBackendNative_XRenderCreateGlyphSetNative;
+		Java_sun_java2d_xr_XRBackendNative_XRenderCompositeTextNative;
+		Java_sun_java2d_xr_XRBackendNative_setGCMode;
+		Java_sun_java2d_xr_XRBackendNative_GCRectanglesNative;
+		Java_sun_java2d_xr_XRUtils_initFormatPtrs;
+		Java_sun_java2d_xr_XRBackendNative_renderCompositeTrapezoidsNative;
+		XRT_DrawGlyphList;
+
+                Java_sun_java2d_opengl_OGLContext_getOGLIdString;
+                Java_sun_java2d_opengl_OGLMaskFill_maskFill;
+                Java_sun_java2d_opengl_OGLRenderer_drawPoly;
+                Java_sun_java2d_opengl_OGLRenderQueue_flushBuffer;
+                Java_sun_java2d_opengl_OGLSurfaceData_initTexture;
+                Java_sun_java2d_opengl_OGLSurfaceData_initFBObject;
+                Java_sun_java2d_opengl_OGLSurfaceData_initFlipBackbuffer;
+                Java_sun_java2d_opengl_OGLSurfaceData_getTextureID;
+                Java_sun_java2d_opengl_OGLSurfaceData_getTextureTarget;
+                Java_sun_java2d_opengl_OGLTextRenderer_drawGlyphList;
+                Java_sun_java2d_opengl_GLXGraphicsConfig_getGLXConfigInfo;
+                Java_sun_java2d_opengl_GLXGraphicsConfig_initConfig;
+                Java_sun_java2d_opengl_GLXGraphicsConfig_getOGLCapabilities;
+                Java_sun_java2d_opengl_GLXSurfaceData_initOps;
+                Java_sun_java2d_opengl_GLXSurfaceData_initPbuffer;
+
+                Java_sun_print_CUPSPrinter_initIDs;
+                Java_sun_print_CUPSPrinter_getCupsServer;
+                Java_sun_print_CUPSPrinter_getCupsPort;
+                Java_sun_print_CUPSPrinter_canConnect;	
+                Java_sun_print_CUPSPrinter_getMedia;
+                Java_sun_print_CUPSPrinter_getPageSizes;
+
+                Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1arrow;
+                Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1box;
+                Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1box_1gap;
+                Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1check;
+                Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1expander;
+                Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1extension;
+                Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1flat_1box;
+                Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1focus;
+                Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1handle;
+                Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1hline;
+                Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1option;
+                Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1shadow;
+                Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1slider;
+                Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1vline;
+                Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1background;
+                Java_com_sun_java_swing_plaf_gtk_GTKEngine_nativeStartPainting;
+                Java_com_sun_java_swing_plaf_gtk_GTKEngine_nativeFinishPainting;
+                Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1switch_1theme;
+                Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1get_1gtk_1setting;
+                Java_com_sun_java_swing_plaf_gtk_GTKEngine_nativeSetRangeValue;
+                Java_com_sun_java_swing_plaf_gtk_GTKStyle_nativeGetXThickness;
+                Java_com_sun_java_swing_plaf_gtk_GTKStyle_nativeGetYThickness;
+                Java_com_sun_java_swing_plaf_gtk_GTKStyle_nativeGetColorForState;
+                Java_com_sun_java_swing_plaf_gtk_GTKStyle_nativeGetClassValue;
+                Java_com_sun_java_swing_plaf_gtk_GTKStyle_nativeGetPangoFontName;
+                
+		awt_display;
+		awt_Lock;
+		awt_Unlock;
+	        awt_GetDrawingSurface;
+	        awt_FreeDrawingSurface;
+	        awt_GetComponent;
+
+		X11SurfaceData_GetOps;
+		getDefaultConfig;
+                Java_sun_font_FontConfigManager_getFontConfig;
+                Java_sun_font_FontConfigManager_getFontConfigAASettings;
+		Java_sun_awt_X11FontManager_getFontPathNative;
+		Java_sun_font_SunFontManager_populateFontFileNameMap;
+
+		# CDE private entry point
+		Java_sun_awt_motif_XsessionWMcommand;
+		Java_sun_awt_motif_XsessionWMcommand_New;
+
+		# Java Plugin
+		getAwtLockFunctions;
+		getAwtData;
+		getAwtDisplay;
+		
+		# libfontmanager entry points
+		AWTIsHeadless;
+		AWTCountFonts;
+                AWTLoadFont;
+                AWTFreeFont;
+                AWTFontAscent;
+                AWTFontDescent;
+                AWTFontMinByte1;
+                AWTFontMaxByte1;
+                AWTFontMinCharOrByte2;
+                AWTFontMaxCharOrByte2;
+                AWTFontDefaultChar;
+                AWTFontPerChar;
+                AWTFontMaxBounds;
+                AWTFontTextExtents16;
+                AWTFreeChar;
+                AWTFontGenerateImage;
+                AWTCharAdvance;
+                AWTCharLBearing;
+                AWTCharRBearing;
+                AWTCharAscent;
+                AWTCharDescent;
+                AWTDrawGlyphList;
+                AccelGlyphCache_RemoveAllCellInfos;
+
+	local:
+		*;
+};
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/awt/mapfile-vers	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,197 @@
+#
+# Copyright (c) 1997, 2010, 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.
+#
+
+# Define public interface.
+# These are the libawt exports, mapfile-mawt-vers contains the libmawt exports.
+
+SUNWprivate_1.1 {
+	global:
+		JNI_OnLoad;
+
+		Java_java_awt_CheckboxMenuItem_initIDs;
+		Java_java_awt_Color_initIDs;
+		Java_java_awt_FontMetrics_initIDs;
+		Java_java_awt_image_BufferedImage_initIDs;
+		Java_sun_awt_image_DataBufferNative_getElem;
+		Java_sun_awt_image_DataBufferNative_setElem;
+		Java_java_awt_image_ColorModel_initIDs;
+		Java_java_awt_image_ComponentSampleModel_initIDs;
+		Java_java_awt_image_IndexColorModel_initIDs;
+		Java_java_awt_image_Kernel_initIDs;
+		Java_java_awt_image_Raster_initIDs;
+		Java_java_awt_image_SampleModel_initIDs;
+		Java_java_awt_Label_initIDs;
+		Java_java_awt_MenuBar_initIDs;
+		Java_java_awt_ScrollPaneAdjustable_initIDs;
+		Java_java_awt_Toolkit_initIDs;
+                Java_sun_awt_DebugSettings_setCTracingOn__Z; 
+                Java_sun_awt_DebugSettings_setCTracingOn__ZLjava_lang_String_2; 
+                Java_sun_awt_DebugSettings_setCTracingOn__ZLjava_lang_String_2I; 
+		Java_sun_awt_image_ByteComponentRaster_initIDs;
+		Java_sun_awt_image_GifImageDecoder_initIDs;
+		Java_sun_awt_image_GifImageDecoder_parseImage;
+		Java_sun_awt_image_ImageRepresentation_initIDs;
+		Java_sun_awt_image_ImageRepresentation_setDiffICM;
+		Java_sun_awt_image_ImageRepresentation_setICMpixels;
+		Java_sun_awt_image_ImagingLib_convolveBI;
+		Java_sun_awt_image_ImagingLib_convolveRaster;
+		Java_sun_awt_image_ImagingLib_init;
+		Java_sun_awt_image_ImagingLib_transformBI;
+		Java_sun_awt_image_ImagingLib_transformRaster;
+		Java_sun_awt_image_IntegerComponentRaster_initIDs;
+		Java_sun_awt_image_ShortComponentRaster_initIDs;
+                Java_sun_java2d_pipe_BufferedMaskBlit_enqueueTile;
+                Java_sun_java2d_pipe_BufferedRenderPipe_fillSpans;
+		Java_sun_java2d_pipe_SpanClipRenderer_eraseTile;
+		Java_sun_java2d_pipe_SpanClipRenderer_fillTile;
+                Java_sun_java2d_pipe_ShapeSpanIterator_addSegment;
+                Java_sun_java2d_pipe_ShapeSpanIterator_moveTo;
+                Java_sun_java2d_pipe_ShapeSpanIterator_lineTo;
+                Java_sun_java2d_pipe_ShapeSpanIterator_quadTo;
+                Java_sun_java2d_pipe_ShapeSpanIterator_curveTo;
+                Java_sun_java2d_pipe_ShapeSpanIterator_closePath;
+                Java_sun_java2d_pipe_ShapeSpanIterator_pathDone;
+                Java_sun_java2d_pipe_ShapeSpanIterator_getNativeConsumer;
+                Java_sun_java2d_pipe_ShapeSpanIterator_appendPoly;
+                Java_sun_java2d_pipe_ShapeSpanIterator_dispose;
+                Java_sun_java2d_pipe_ShapeSpanIterator_getNativeIterator;
+                Java_sun_java2d_pipe_ShapeSpanIterator_getPathBox;
+                Java_sun_java2d_pipe_ShapeSpanIterator_initIDs;
+                Java_sun_java2d_pipe_ShapeSpanIterator_intersectClipBox;
+                Java_sun_java2d_pipe_ShapeSpanIterator_nextSpan;
+                Java_sun_java2d_pipe_ShapeSpanIterator_setNormalize;
+                Java_sun_java2d_pipe_ShapeSpanIterator_setOutputAreaXYXY;
+                Java_sun_java2d_pipe_ShapeSpanIterator_setRule;
+                Java_sun_java2d_pipe_ShapeSpanIterator_skipDownTo;
+
+		Java_java_awt_Dimension_initIDs;
+		Java_java_awt_event_MouseEvent_initIDs;
+		Java_java_awt_image_DataBufferInt_initIDs;
+		Java_java_awt_image_SinglePixelPackedSampleModel_initIDs;
+		Java_java_awt_Rectangle_initIDs;
+		Java_sun_awt_image_BufImgSurfaceData_initIDs;
+		Java_sun_awt_image_BufImgSurfaceData_initRaster;
+                Java_sun_awt_image_BufImgSurfaceData_freeNativeICMData;
+		Java_sun_awt_image_BytePackedRaster_initIDs;
+		Java_sun_awt_image_ImagingLib_lookupByteBI;
+		Java_sun_awt_image_ImagingLib_lookupByteRaster;
+		Java_sun_java2d_SurfaceData_initIDs;
+		Java_sun_java2d_SurfaceData_isOpaqueGray;
+		Java_sun_java2d_Disposer_initIDs;
+		Java_sun_java2d_DefaultDisposerRecord_invokeNativeDispose;
+		Java_sun_java2d_loops_BlitBg_BlitBg;
+		Java_sun_java2d_loops_Blit_Blit;
+		Java_sun_java2d_loops_ScaledBlit_Scale;
+		Java_sun_java2d_loops_DrawLine_DrawLine;
+		Java_sun_java2d_loops_DrawPolygons_DrawPolygons;
+                Java_sun_java2d_loops_DrawPath_DrawPath;
+                Java_sun_java2d_loops_FillPath_FillPath;
+
+		Java_sun_java2d_loops_DrawRect_DrawRect;
+		Java_sun_java2d_loops_FillRect_FillRect;
+		Java_sun_java2d_loops_FillSpans_FillSpans;
+		Java_sun_java2d_loops_FillParallelogram_FillParallelogram;
+		Java_sun_java2d_loops_DrawParallelogram_DrawParallelogram;
+		Java_sun_java2d_loops_GraphicsPrimitiveMgr_initIDs;
+		Java_sun_java2d_loops_GraphicsPrimitiveMgr_registerNativeLoops;
+		Java_sun_java2d_loops_MaskBlit_MaskBlit;
+		Java_sun_java2d_loops_MaskFill_MaskFill;
+		Java_sun_java2d_loops_MaskFill_FillAAPgram;
+		Java_sun_java2d_loops_MaskFill_DrawAAPgram;
+		Java_sun_java2d_loops_TransformHelper_Transform;
+		Java_sun_java2d_pipe_Region_initIDs;
+		Java_sun_java2d_pipe_SpanClipRenderer_initIDs;
+		sun_awt_image_GifImageDecoder_initIDs;
+
+		# libmawt entry points
+		SurfaceData_InitOps;
+		SurfaceData_ThrowInvalidPipeException;
+                SurfaceData_IntersectBlitBounds;
+                SurfaceData_IntersectBoundsXYXY;
+		Region_GetBounds;
+		Region_GetInfo;
+		Region_StartIteration;
+		Region_CountIterationRects;
+		Region_NextIteration;
+		Region_EndIteration;
+		RegionToYXBandedRectangles;
+		GrPrim_CompGetXorInfo;
+		GrPrim_CompGetAlphaInfo;
+                J2dTraceImpl;
+                J2dTraceInit;
+		img_makePalette;
+		initInverseGrayLut;
+		make_dither_arrays;
+		make_uns_ordered_dither_array;
+
+		# variables exported to libmawt
+		std_img_oda_red;
+		std_img_oda_blue;
+		std_img_oda_green;
+		std_odas_computed;
+		g_CMpDataID;
+		colorValueID;
+                mul8table;
+                jvm;
+        
+                # ProcessPath entry points and data
+                doDrawPath;
+                doFillPath;
+                path2DNumTypesID;
+                path2DTypesID;
+                path2DWindingRuleID;
+                path2DFloatCoordsID;
+                sg2dStrokeHintID;
+                sunHints_INTVAL_STROKE_PURE;
+
+		# CDE private entry points
+                # These are in awt_LoadLibrary.c and falls through to libmawt.
+                # Evidently CDE needs this for backward compatability.
+		Java_sun_awt_motif_XsessionWMcommand;
+		Java_sun_awt_motif_XsessionWMcommand_New;
+
+		# Java Plugin
+                # This is in awt_LoadLibrary.c and falls through to libmawt.
+                # Evidently plugin needs this for backward compatability.
+		getAwtLockFunctions;
+		getAwtData;
+		getAwtDisplay;
+
+		# libfontmanager entry points
+		AWTIsHeadless;
+		GrPrim_Sg2dGetCompInfo;
+		GrPrim_Sg2dGetClip;
+		GetNativePrim;
+		SurfaceData_IntersectBounds;
+		SurfaceData_GetOps;
+		Disposer_AddRecord;
+		GrPrim_Sg2dGetEaRGB;
+		GrPrim_Sg2dGetPixel;
+		GrPrim_Sg2dGetLCDTextContrast;
+
+	local:
+		*;
+};
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/awt/mapfile-vers-linux	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,316 @@
+#
+# Copyright (c) 2002, 2011, 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.
+#
+
+# Define public interface for libawt.so on Linux.
+# Linux port does not use mawt, all public symbols are in libawt.so
+
+SUNWprivate_1.1 {
+	global:
+		JNI_OnLoad;
+
+		Java_java_awt_CheckboxMenuItem_initIDs;
+		Java_java_awt_Color_initIDs;
+		Java_java_awt_FontMetrics_initIDs;
+		Java_java_awt_image_BufferedImage_initIDs;
+		Java_sun_awt_image_DataBufferNative_getElem;
+		Java_sun_awt_image_DataBufferNative_setElem;
+		Java_java_awt_image_ColorModel_initIDs;
+		Java_java_awt_image_ComponentSampleModel_initIDs;
+		Java_java_awt_image_IndexColorModel_initIDs;
+		Java_java_awt_image_Kernel_initIDs;
+		Java_java_awt_image_Raster_initIDs;
+		Java_java_awt_image_SampleModel_initIDs;
+		Java_java_awt_Label_initIDs;
+		Java_java_awt_MenuBar_initIDs;
+		Java_java_awt_ScrollPaneAdjustable_initIDs;
+		Java_java_awt_Toolkit_initIDs;
+		Java_java_awt_TrayIcon_initIDs;
+                Java_sun_awt_DebugSettings_setCTracingOn__Z; 
+                Java_sun_awt_DebugSettings_setCTracingOn__ZLjava_lang_String_2; 
+                Java_sun_awt_DebugSettings_setCTracingOn__ZLjava_lang_String_2I; 
+		Java_sun_awt_image_ByteComponentRaster_initIDs;
+		Java_sun_awt_image_GifImageDecoder_initIDs;
+		Java_sun_awt_image_GifImageDecoder_parseImage;
+		Java_sun_awt_image_Image_initIDs;
+		Java_sun_awt_image_ImageRepresentation_initIDs;
+		Java_sun_awt_image_ImageRepresentation_setDiffICM;
+		Java_sun_awt_image_ImageRepresentation_setICMpixels;
+		Java_sun_awt_image_ImagingLib_convolveBI;
+		Java_sun_awt_image_ImagingLib_convolveRaster;
+		Java_sun_awt_image_ImagingLib_init;
+		Java_sun_awt_image_ImagingLib_transformBI;
+		Java_sun_awt_image_ImagingLib_transformRaster;
+		Java_sun_awt_image_IntegerComponentRaster_initIDs;
+		Java_sun_awt_image_ShortComponentRaster_initIDs;
+		Java_sun_java2d_pipe_SpanClipRenderer_eraseTile;
+		Java_sun_java2d_pipe_SpanClipRenderer_fillTile;
+                Java_sun_java2d_pipe_ShapeSpanIterator_addSegment;
+                Java_sun_java2d_pipe_ShapeSpanIterator_moveTo;
+                Java_sun_java2d_pipe_ShapeSpanIterator_lineTo;
+                Java_sun_java2d_pipe_ShapeSpanIterator_quadTo;
+                Java_sun_java2d_pipe_ShapeSpanIterator_curveTo;
+                Java_sun_java2d_pipe_ShapeSpanIterator_closePath;
+                Java_sun_java2d_pipe_ShapeSpanIterator_pathDone;
+                Java_sun_java2d_pipe_ShapeSpanIterator_getNativeConsumer;
+                Java_sun_java2d_pipe_ShapeSpanIterator_appendPoly;
+                Java_sun_java2d_pipe_ShapeSpanIterator_dispose;
+                Java_sun_java2d_pipe_ShapeSpanIterator_getNativeIterator;
+                Java_sun_java2d_pipe_ShapeSpanIterator_getPathBox;
+                Java_sun_java2d_pipe_ShapeSpanIterator_initIDs;
+                Java_sun_java2d_pipe_ShapeSpanIterator_intersectClipBox;
+                Java_sun_java2d_pipe_ShapeSpanIterator_nextSpan;
+                Java_sun_java2d_pipe_ShapeSpanIterator_setNormalize;
+                Java_sun_java2d_pipe_ShapeSpanIterator_setOutputAreaXYXY;
+                Java_sun_java2d_pipe_ShapeSpanIterator_setRule;
+                Java_sun_java2d_pipe_ShapeSpanIterator_skipDownTo;
+
+		Java_java_awt_Dimension_initIDs;
+		Java_java_awt_event_MouseEvent_initIDs;
+		Java_java_awt_image_DataBufferInt_initIDs;
+		Java_java_awt_image_SinglePixelPackedSampleModel_initIDs;
+		Java_java_awt_Rectangle_initIDs;
+		Java_sun_awt_image_BufImgSurfaceData_getSurfaceData;
+		Java_sun_awt_image_BufImgSurfaceData_initIDs;
+		Java_sun_awt_image_BufImgSurfaceData_initRaster;
+		Java_sun_awt_image_BufImgSurfaceData_setSurfaceData;
+                Java_sun_awt_image_BufImgSurfaceData_freeNativeICMData;
+		Java_sun_awt_image_BytePackedRaster_initIDs;
+		Java_sun_awt_image_ImagingLib_lookupByteBI;
+		Java_sun_awt_image_ImagingLib_lookupByteRaster;
+		Java_sun_java2d_SurfaceData_initIDs;
+		Java_sun_java2d_SurfaceData_isOpaqueGray;
+		Java_sun_java2d_Disposer_initIDs;
+		Java_sun_java2d_DefaultDisposerRecord_invokeNativeDispose;
+		Java_sun_java2d_loops_BlitBg_BlitBg;
+		Java_sun_java2d_loops_Blit_Blit;
+		Java_sun_java2d_loops_ScaledBlit_Scale;
+		Java_sun_java2d_loops_DrawLine_DrawLine;
+		Java_sun_java2d_loops_DrawPolygons_DrawPolygons;
+		Java_sun_java2d_loops_DrawRect_DrawRect;
+		Java_sun_java2d_loops_FillRect_FillRect;
+		Java_sun_java2d_loops_FillSpans_FillSpans;
+		Java_sun_java2d_loops_GraphicsPrimitiveMgr_initIDs;
+		Java_sun_java2d_loops_GraphicsPrimitiveMgr_registerNativeLoops;
+		Java_sun_java2d_loops_MaskBlit_MaskBlit;
+		Java_sun_java2d_loops_MaskFill_MaskFill;
+		Java_sun_java2d_loops_MaskFill_FillAAPgram;
+		Java_sun_java2d_loops_MaskFill_DrawAAPgram;
+                Java_sun_java2d_pipe_BufferedRenderPipe_fillSpans;
+		Java_sun_java2d_pipe_SpanClipRenderer_initIDs;
+		sun_awt_image_GifImageDecoder_initIDs;
+
+		# libmawt entry points
+		SurfaceData_InitOps;
+		SurfaceData_ThrowInvalidPipeException;
+                Region_GetBounds;
+                Region_GetInfo;
+                Region_StartIteration;
+                Region_CountIterationRects;
+                Region_NextIteration;
+                Region_EndIteration;
+                GrPrim_CompGetXorInfo;
+                GrPrim_CompGetAlphaInfo;
+		img_makePalette;
+		initInverseGrayLut;
+		make_dither_arrays;
+		make_uns_ordered_dither_array;
+
+		# variables exported to libmawt
+		std_img_oda_red;
+		std_img_oda_blue;
+		std_img_oda_green;
+		std_odas_computed;
+		g_CMpDataID;
+		colorValueID;
+                jvm;
+
+		# CDE private entry point
+                # This is in awt_LoadLibrary.c and falls through to libmawt.
+                # Evidently CDE needs this for backward compatability.
+		Java_sun_awt_motif_XsessionWMcommand;
+
+		# Java Plugin
+                # This is in awt_LoadLibrary.c and falls through to libmawt.
+                # Evidently plugin needs this for backward compatability.
+		getAwtLockFunctions;
+		getAwtData;
+		getAwtDisplay;
+
+		# libfontmanager entry points
+		AWTIsHeadless;
+		GrPrim_Sg2dGetCompInfo;
+		GrPrim_Sg2dGetClip;
+		GetNativePrim;
+		SurfaceData_IntersectBounds;
+		SurfaceData_GetOps;
+		Disposer_AddRecord;
+		GrPrim_Sg2dGetEaRGB;
+		GrPrim_Sg2dGetPixel;
+		GrPrim_Sg2dGetLCDTextContrast;
+
+		Java_sun_awt_DefaultMouseInfoPeer_fillPointWithCoords;
+		Java_sun_awt_DefaultMouseInfoPeer_isWindowUnderMouse;
+		Java_java_awt_AWTEvent_nativeSetSource;
+		Java_java_awt_Checkbox_initIDs;
+		Java_java_awt_Component_initIDs;
+		Java_java_awt_Dialog_initIDs;
+		Java_java_awt_Font_initIDs;
+		Java_sun_awt_KeyboardFocusManagerPeerImpl_clearNativeGlobalFocusOwner;
+                Java_sun_awt_KeyboardFocusManagerPeerImpl_getNativeFocusOwner;
+                Java_sun_awt_KeyboardFocusManagerPeerImpl_getNativeFocusedWindow;
+                Java_java_awt_KeyboardFocusManager_initIDs;
+		Java_java_awt_Menu_initIDs;
+		Java_java_awt_MenuComponent_initIDs;
+		Java_java_awt_MenuItem_initIDs;
+		Java_java_awt_Scrollbar_initIDs;
+		Java_java_awt_ScrollPane_initIDs;
+		Java_java_awt_TextArea_initIDs;
+		Java_sun_awt_FontDescriptor_initIDs;
+		Java_sun_awt_X11InputMethod_disposeXIC;
+		Java_sun_awt_X11InputMethod_isCompositionEnabledNative;
+		Java_sun_awt_X11InputMethod_resetXIC;
+		Java_sun_awt_X11InputMethod_setCompositionEnabledNative;
+		Java_sun_awt_X11InputMethod_turnoffStatusWindow;
+		Java_sun_awt_SunToolkit_closeSplashScreen;
+		Java_sun_awt_PlatformFont_initIDs;
+		Java_sun_awt_X11GraphicsConfig_init;
+		Java_sun_awt_X11GraphicsConfig_dispose;
+		Java_sun_awt_X11GraphicsConfig_pGetBounds;
+		Java_sun_awt_X11GraphicsConfig_getNumColors;
+		Java_sun_awt_X11GraphicsConfig_getXResolution;
+		Java_sun_awt_X11GraphicsConfig_getYResolution;
+                Java_sun_awt_X11GraphicsConfig_isTranslucencyCapable;
+		Java_sun_awt_X11GraphicsDevice_isDBESupported;
+		Java_sun_awt_X11GraphicsDevice_getDisplay;
+		Java_sun_awt_X11GraphicsDevice_getDoubleBufferVisuals;
+		Java_sun_awt_X11GraphicsDevice_getNumConfigs;
+		Java_sun_awt_X11GraphicsDevice_initIDs;
+                Java_sun_awt_X11GraphicsDevice_initXrandrExtension;
+                Java_sun_awt_X11GraphicsDevice_enterFullScreenExclusive;
+                Java_sun_awt_X11GraphicsDevice_exitFullScreenExclusive;
+                Java_sun_awt_X11GraphicsDevice_getCurrentDisplayMode;
+                Java_sun_awt_X11GraphicsDevice_enumDisplayModes;
+                Java_sun_awt_X11GraphicsDevice_configDisplayMode;
+                Java_sun_awt_X11GraphicsDevice_resetNativeData;
+		Java_sun_awt_X11GraphicsEnvironment_checkShmExt;
+		Java_sun_awt_X11GraphicsEnvironment_getDefaultScreenNum;
+		Java_sun_awt_X11GraphicsEnvironment_getDisplayString;
+		Java_sun_awt_X11GraphicsEnvironment_getNumScreens;
+		Java_sun_awt_X11GraphicsEnvironment_initDisplay;
+		Java_sun_awt_X11GraphicsEnvironment_pRunningXinerama;
+		Java_sun_awt_X11GraphicsEnvironment_getXineramaCenterPoint;
+		Java_sun_awt_X11GraphicsEnvironment_initXRender;
+        
+        
+
+		Java_java_awt_AWTEvent_initIDs;
+		Java_java_awt_Button_initIDs;
+		Java_java_awt_Container_initIDs;
+		Java_java_awt_Cursor_finalizeImpl;
+		Java_java_awt_Cursor_initIDs;
+		Java_java_awt_Event_initIDs;
+		Java_java_awt_event_InputEvent_initIDs;
+		Java_java_awt_event_KeyEvent_initIDs;
+		Java_java_awt_FileDialog_initIDs;
+		Java_java_awt_Frame_initIDs;
+		Java_java_awt_Insets_initIDs;
+		Java_java_awt_TextField_initIDs;
+		Java_java_awt_Window_initIDs;
+		Java_sun_awt_motif_X11OffScreenImage_updateBitmask;
+		Java_sun_awt_X11GraphicsConfig_init;
+		Java_sun_awt_X11GraphicsConfig_initIDs;
+		Java_sun_awt_X11GraphicsConfig_makeColorModel;
+		Java_sun_awt_X11GraphicsDevice_getConfigVisualId;
+		Java_sun_awt_X11PMBlitLoops_Blit;
+		Java_sun_awt_X11PMBlitBgLoops_nativeBlitBg;
+		Java_sun_awt_X11Renderer_devFillSpans;
+		Java_sun_awt_X11Renderer_doDrawArc;
+		Java_sun_awt_X11Renderer_doDrawLine;
+		Java_sun_awt_X11Renderer_doDrawOval;
+		Java_sun_awt_X11Renderer_doDrawPoly;
+		Java_sun_awt_X11Renderer_doDrawRect;
+		Java_sun_awt_X11Renderer_doDrawRoundRect;
+		Java_sun_awt_X11Renderer_doFillArc;
+		Java_sun_awt_X11Renderer_doFillOval;
+		Java_sun_awt_X11Renderer_doFillPoly;
+		Java_sun_awt_X11Renderer_doFillRect;
+		Java_sun_awt_X11Renderer_doFillRoundRect;
+		Java_sun_awt_X11Renderer_devCopyArea;
+		Java_sun_awt_X11SurfaceData_initIDs;
+		Java_sun_awt_X11SurfaceData_initOps;
+		Java_sun_awt_X11SurfaceData_initSurface;
+		Java_sun_awt_X11SurfaceData_isDgaAvailable;
+		Java_sun_awt_X11SurfaceData_setInvalid;
+		Java_sun_awt_X11SurfaceData_flushNativeSurface;
+		awt_display;
+		awt_lock;
+		awt_Lock;
+		awt_Unlock;
+	        awt_GetDrawingSurface;
+	        awt_FreeDrawingSurface;
+	        awt_GetComponent;
+
+		X11SurfaceData_GetOps;
+		getDefaultConfig;
+                Java_sun_font_FontConfigManager_getFontConfig;
+                Java_sun_font_FontConfigManager_getFontConfigAASettings;
+		Java_sun_awt_X11FontManager_getFontPathNative;
+		Java_sun_font_SunFontManager_populateFontFileNameMap;
+
+		# CDE private entry point
+		Java_sun_awt_motif_XsessionWMcommand;
+
+		# Java Plugin
+		getAwtLockFunctions;
+		getAwtData;
+		getAwtDisplay;
+		
+		# libfontmanager entry points
+		AWTIsHeadless;
+		AWTCountFonts;
+                AWTLoadFont;
+                AWTFreeFont;
+                AWTFontMinByte1;
+                AWTFontMaxByte1;
+                AWTFontMinCharOrByte2;
+                AWTFontMaxCharOrByte2;
+                AWTFontDefaultChar;
+                AWTFontPerChar;
+                AWTFontMaxBounds;
+                AWTFontTextExtents16;
+                AWTFreeChar;
+                AWTFontGenerateImage;
+                AWTCharAdvance;
+                AWTCharLBearing;
+                AWTCharRBearing;
+                AWTCharAscent;
+                AWTCharDescent;
+                AWTDrawGlyphList;
+                AccelGlyphCache_RemoveAllCellInfos;
+
+	local:
+		*;
+};
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/awt/mawt.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,229 @@
+#
+# Copyright (c) 2000, 2011, 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.
+#
+
+#
+# to create directory:
+#
+INIT += $(LIB_LOCATION) 
+
+#
+# Files
+#
+# mawt.gmk is just used in building X/Motif native code, so
+# this list of java files is no longer included.
+#include FILES_java_unix.gmk
+include $(BUILDDIR)/sun/awt/FILES_c_unix.gmk
+
+include $(BUILDDIR)/sun/awt/FILES_export_unix.gmk
+
+# Check which C files should be built.  Headless uses only
+# non-motif files.  Also, a version-specific motif file is
+# compiled based on the motif version.
+FILES_c = $(FILES_NO_MOTIF_c)
+
+ifeq ($(PLATFORM), solaris)
+  ifneq ($(ARCH), amd64)
+    FILES_reorder += reorder-$(ARCH)
+  endif
+endif
+
+#
+# Rules
+#
+
+# Class files should be built & clobbered in make/sun/awt
+# If removing this line, also reinclude sun_awt.jmk
+DONT_CLOBBER_CLASSES = true
+
+
+ifndef HEADLESS
+ifeq ($(VARIANT), OPT)
+FILES_m = ../awt/mapfile-mawt-vers
+endif
+endif
+
+# Since this library will be living in a subdirectory below the other libraries
+#   we need to add an extra runpath so that libraries in the upper directory
+#   are found at runtime.
+LD_RUNPATH_EXTRAS = ..
+
+include $(BUILDDIR)/common/Mapfile-vers.gmk
+include $(BUILDDIR)/common/Library.gmk
+
+$(LIB_LOCATION):
+	$(MKDIR) -p $@
+
+clean:: 
+
+#
+# Add to the ambient vpath to pick up files in subdirectories
+#
+vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/alphacomposite
+vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/image
+vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/image/gif
+vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/image/cvutils
+vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/shell
+vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/medialib
+vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/../java2d/opengl
+vpath %.c   $(PLATFORM_SRC)/native/$(PKGDIR)/../java2d/opengl
+vpath %.c   $(PLATFORM_SRC)/native/$(PKGDIR)/../java2d/x11
+vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/debug
+vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/../font
+vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/../java2d
+vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/../java2d/loops
+vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/../java2d/pipe
+vpath %.cpp $(SHARE_SRC)/native/$(PKGDIR)/image
+vpath %.c   $(PLATFORM_SRC)/native/$(PKGDIR)/robot_child
+
+#
+# Libraries to link in.
+#
+
+
+ifeq ($(DEBUG_BINARIES), true)
+  CFLAGS += -g
+endif
+ifeq ($(HEADLESS),true)
+CFLAGS += -DHEADLESS=$(HEADLESS)
+CPPFLAGS += -DHEADLESS=$(HEADLESS)
+OTHER_LDLIBS =
+else
+LIBXTST = -lXtst
+ifeq ($(PLATFORM), linux)
+   ifeq ($(ARCH_DATA_MODEL), 64)
+   # XXX what about the rest of them?
+        LIBXT = -lXt
+    else
+    # Allows for builds on Debian GNU Linux, X11 is in a different place 
+       LIBXT = $(firstword $(wildcard $(OPENWIN_LIB)/libXt.a) \
+                        $(wildcard /usr/lib/libXt.a))
+       LIBSM = $(firstword $(wildcard $(OPENWIN_LIB)/libSM.a) \
+                        $(wildcard /usr/lib/libSM.a))
+       LIBICE = $(firstword $(wildcard $(OPENWIN_LIB)/libICE.a) \
+                         $(wildcard /usr/lib/libICE.a))
+       LIBXTST = $(firstword $(wildcard $(OPENWIN_LIB)/libXtst.a) \
+                         $(wildcard /usr/lib/libXtst.a))
+   endif
+endif
+
+# Use -lXmu for EditRes support
+LIBXMU_DBG	= -lXmu
+LIBXMU_OPT	=
+LIBXMU		= $(LIBXMU_$(VARIANT))
+
+ifeq ($(PLATFORM), solaris)
+OTHER_LDLIBS = -lXt -lXext $(LIBXTST) $(LIBXMU) -lX11 -lXi
+endif
+
+ifneq (,$(findstring $(PLATFORM), linux macosx))
+OTHER_CFLAGS += -DMLIB_NO_LIBSUNMATH
+# XXX what is this define below? Isn't it motif-related?
+OTHER_CFLAGS += -DXMSTRINGDEFINES=1
+OTHER_LDLIBS =  $(LIBXMU) $(LIBXTST) -lXext $(LIBXT) $(LIBSM) $(LIBICE) -lX11 -lXi
+endif
+
+endif
+# !HEADLESS
+
+OTHER_LDLIBS += $(JVMLIB) $(LIBCXX) \
+                -lawt $(LIBM) $(LIBDL)
+
+#
+# Sun CC with -Xa misdefines __STDC__ to 0 (zero).
+# The following will force checking of X11 prototypes.
+# 
+ifneq ($(CC_VERSION),gcc)
+CPPFLAGS += -DFUNCPROTO=15
+endif
+
+#
+# Other extra flags needed for compiling.
+#
+CPPFLAGS += $(CUPS_CFLAGS)
+
+ifndef HEADLESS
+CPPFLAGS += -I$(OPENWIN_HOME)/include 
+LDFLAGS  += -L$(OPENWIN_LIB)
+
+endif # !HEADLESS
+
+CPPFLAGS += -I$(SHARE_SRC)/native/$(PKGDIR)/debug \
+            -I$(SHARE_SRC)/native/$(PKGDIR)/../font \
+            -I$(PLATFORM_SRC)/native/$(PKGDIR)/../font \
+            -I$(SHARE_SRC)/native/$(PKGDIR)/image \
+	    -I$(SHARE_SRC)/native/$(PKGDIR)/image/cvutils \
+	    -I$(SHARE_SRC)/native/$(PKGDIR)/shell \
+	    -I$(SHARE_SRC)/native/$(PKGDIR)/alphacomposite \
+            -I$(SHARE_SRC)/native/$(PKGDIR)/medialib \
+            -I$(PLATFORM_SRC)/native/$(PKGDIR)/medialib \
+	    -I$(SHARE_SRC)/native/$(PKGDIR)/../java2d \
+	    -I$(PLATFORM_SRC)/native/$(PKGDIR)/../java2d \
+	    -I$(SHARE_SRC)/native/$(PKGDIR)/../java2d/loops \
+	    -I$(SHARE_SRC)/native/$(PKGDIR)/../java2d/pipe \
+            -I$(SHARE_SRC)/native/$(PKGDIR)/../java2d/opengl \
+            -I$(PLATFORM_SRC)/native/$(PKGDIR)/../java2d/opengl \
+            -I$(PLATFORM_SRC)/native/$(PKGDIR)/../java2d/x11 \
+        -I$(SHARE_SRC)/native/$(PKGDIR)/../dc/doe \
+        -I$(SHARE_SRC)/native/$(PKGDIR)/../dc/path \
+            -I$(PLATFORM_SRC)/native/$(PKGDIR)/../jdga \
+        -I$(PLATFORM_SRC)/native/$(PKGDIR) \
+        $(EVENT_MODEL)
+
+ifeq ($(PLATFORM), macosx)
+CPPFLAGS += -I$(CUPS_HEADERS_PATH)
+
+ifndef HEADLESS
+CPPFLAGS += -I$(MOTIF_DIR)/include \
+            -I$(OPENWIN_HOME)/include 
+LDFLAGS  += -L$(MOTIF_LIB) -L$(OPENWIN_LIB)
+
+endif # !HEADLESS
+endif # PLATFORM
+
+ifeq ($(PLATFORM), linux)
+  # Checking for the X11/extensions headers at the additional location
+  CPPFLAGS += -I$(firstword $(wildcard $(OPENWIN_HOME)/include/X11/extensions) \
+                        $(wildcard /usr/include/X11/extensions))
+endif
+
+ifeq ($(PLATFORM), macosx)
+  CPPFLAGS += -I$(OPENWIN_HOME)/include/X11/extensions \
+              -I$(OPENWIN_HOME)/include 
+endif
+
+ifeq ($(PLATFORM), solaris)
+  CPPFLAGS += -I$(OPENWIN_HOME)/include/X11/extensions
+endif
+
+ifeq ($(PLATFORM), macosx)
+  CPPFLAGS += -DX11_PATH=\"$(X11_PATH)\" -DPACKAGE_PATH=\"$(PACKAGE_PATH)\"
+endif
+
+LDFLAGS += -L$(LIBDIR)/$(LIBARCH)/$(TSOBJDIR) \
+	   $(AWT_RUNPATH)
+
+CLASSES.export += java.io.InputStream \
+		  java.lang.ThreadGroup
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/cmm/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,85 @@
+#
+# Copyright (c) 2006, 2011, 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.
+#
+
+BUILDDIR = ../..
+PRODUCT  = sun
+include $(BUILDDIR)/common/Defs.gmk
+
+ifdef OPENJDK
+    SUBDIRS +=
+    ICCPROFILE_SRC_DIR = $(SHARE_SRC)/lib/cmm/lcms
+else # !OPENJDK
+    SUBDIRS += kcms
+    ICCPROFILE_SRC_DIR = $(CLOSED_SRC)/share/lib/cmm/kcms
+endif # OPENJDK
+
+include $(BUILDDIR)/common/Subdirs.gmk
+
+#
+# ICC Profiles used by the CMM.
+#
+#ICCPROFILE_DEST_DIR = $(LIBDIR)/cmm
+
+#iccprofiles: $(ICCPROFILE_DEST_DIR)/sRGB.pf $(ICCPROFILE_DEST_DIR)/GRAY.pf \
+#	     $(ICCPROFILE_DEST_DIR)/CIEXYZ.pf $(ICCPROFILE_DEST_DIR)/PYCC.pf \
+#	     $(ICCPROFILE_DEST_DIR)/LINEAR_RGB.pf
+
+$(ICCPROFILE_DEST_DIR)/sRGB.pf: $(ICCPROFILE_SRC_DIR)/sRGB.pf
+	$(install-file)
+	$(call chmod-file, 444)
+
+$(ICCPROFILE_DEST_DIR)/GRAY.pf: $(ICCPROFILE_SRC_DIR)/GRAY.pf
+	$(install-file)
+	$(call chmod-file, 444)
+
+$(ICCPROFILE_DEST_DIR)/CIEXYZ.pf: $(ICCPROFILE_SRC_DIR)/CIEXYZ.pf
+	$(install-file)
+	$(call chmod-file, 444)
+
+$(ICCPROFILE_DEST_DIR)/PYCC.pf: $(ICCPROFILE_SRC_DIR)/PYCC.pf
+	$(install-file)
+	$(call chmod-file, 444)
+
+$(ICCPROFILE_DEST_DIR)/LINEAR_RGB.pf: $(ICCPROFILE_SRC_DIR)/LINEAR_RGB.pf
+	$(install-file)
+	$(call chmod-file, 444)
+
+iccprofiles.clean:
+	$(RM) -r $(ICCPROFILE_DEST_DIR)
+
+
+clobber: iccprofiles.clean
+	$(SUBDIRS-loop)
+
+clean: iccprofiles.clean
+	$(SUBDIRS-loop)
+
+all build:: # iccprofiles
+	$(SUBDIRS-loop)
+
+openjdk::
+	$(MAKE) OPENJDK=true build
+
+.PHONY: iccprofiles iccprofiles.clean copy-files openjdk
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/cmm/kcms/FILES_c_unix.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,134 @@
+#
+# Copyright (c) 1997, 2003, 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.
+#
+
+FILES_c = \
+	attrmgr.c \
+	auxpt.c \
+	calc.c \
+	calcgtbl.c \
+	calcitbl.c \
+	calcmtbl.c \
+	calcotbl.c \
+	chainsu.c \
+	chnrules.c \
+	cmpsatt.c \
+	cmpsattf.c \
+	cmyklin.c \
+	combine.c \
+	compilut.c \
+	compitbl.c \
+	compose.c \
+	compotbl.c \
+	convert1.c \
+	copy.c \
+	crc32.c \
+	dispatch.c \
+	doevalsw.c \
+	eval.c \
+	evalth13.c \
+	evalth14.c \
+	evalth1c.c \
+	evalth1g.c \
+	f4lex.c \
+	filemap.c \
+	fmtdata.c \
+	futiomem.c \
+	futiotbl.c \
+	futmft2.c \
+	fwdmono.c \
+	fwdxform.c \
+	fxnull.c \
+	invmono.c \
+	invxform.c \
+	io.c \
+	io_swab.c \
+	ioencode.c \
+	iomf.c \
+	iotable.c \
+	kcms_io.c \
+	kcpmgr.c \
+	kcpmgru.c \
+	kpfile.c \
+	kplib.c \
+	kpmd5.c \
+	lab2uvl.c \
+	lab2xyz.c \
+	lensity.c \
+	linlab.c \
+	logrgb.c \
+	loguvl.c \
+	malloc.c \
+	mat2fut.c \
+	matrix.c \
+	memory.c \
+	moncurv.c \
+	new.c \
+	outmat.c \
+	profile.c \
+	profilem.c \
+	ptchain.c \
+	pteval.c \
+	ptinvert.c \
+	ptiomem.c \
+	pttmgr.c \
+	rel2abs.c \
+	resize.c \
+	share.c \
+	solvemat.c \
+	spattpr.c \
+	spattr.c \
+	spattrio.c \
+	spcvrt.c \
+	speval.c \
+	splink.c \
+	splut.c \
+	sprofile.c \
+	sprofpr.c \
+	spsave.c \
+	spsearch.c \
+	spsys.c \
+	spsystem.c \
+	sptagio.c \
+	sptagmgr.c \
+	sputilpr.c \
+	spxf_gen.c \
+	spxfcvrt.c \
+	spxfgpr.c \
+	spxfmtag.c \
+	spxform.c \
+	spxfprv.c \
+	spxfromr.c \
+	sync.c \
+	systime.c \
+	thread.c \
+	thredmem.c \
+	ukcpmgr.c \
+	unixmem.c \
+	util.c \
+	uvl2lab.c \
+	xfers.c \
+	xyz2lab.c \
+	xyzmap.c \
+	CMM.c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/cmm/kcms/FILES_c_windows.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,138 @@
+#
+# Copyright (c) 1997, 2003, 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.
+#
+
+FILES_c = \
+	attrmgr.c \
+	auxpt.c \
+	calc.c \
+	calcgtbl.c \
+	calcitbl.c \
+	calcmtbl.c \
+	calcotbl.c \
+	chainsu.c \
+	chnrules.c \
+	cmmdll.c \
+	cmpsatt.c \
+	cmpsattf.c \
+	cmyklin.c \
+	combine.c \
+	compilut.c \
+	compitbl.c \
+	compose.c \
+	compotbl.c \
+	convert1.c \
+	copy.c \
+	crc32.c \
+	dispatch.c \
+	doevalsw.c \
+	eval.c \
+	evalth13.c \
+	evalth14.c \
+	evalth1c.c \
+	evalth1g.c \
+	f4lex.c \
+	filemap.c \
+	fmtdata.c \
+	futiomem.c \
+	futiotbl.c \
+	futmft2.c \
+	fwdmono.c \
+	fwdxform.c \
+	fxnull.c \
+	invmono.c \
+	invxform.c \
+	io.c \
+	io_swab.c \
+	ioencode.c \
+	iomf.c \
+	iotable.c \
+	kcms_io.c \
+	kcpmgr.c \
+	kcpmgru.c \
+	kpfile.c \
+	kplib.c \
+	kpmd5.c \
+	lab2uvl.c \
+	lab2xyz.c \
+	lensity.c \
+	linlab.c \
+	logrgb.c \
+	loguvl.c \
+	malloc.c \
+	mat2fut.c \
+	matrix.c \
+	memory.c \
+	moncurv.c \
+	new.c \
+	outmat.c \
+	profile.c \
+	profilem.c \
+	ptchain.c \
+	pteval.c \
+	ptinvert.c \
+	ptiomem.c \
+	pttmgr.c \
+	registry.c \
+	rel2abs.c \
+	resize.c \
+	share.c \
+	solvemat.c \
+	spattpr.c \
+	spattr.c \
+	spattrio.c \
+	spcvrt.c \
+	speval.c \
+	splink.c \
+	splut.c \
+	sprofile.c \
+	sprofpr.c \
+	spsave.c \
+	spsearch.c \
+	spsys.c \
+	spsystem.c \
+	sptagio.c \
+	sptagmgr.c \
+	sputilpr.c \
+	spxf_gen.c \
+	spxfcvrt.c \
+	spxffile.c \
+	spxfgpr.c \
+	spxfmtag.c \
+	spxform.c \
+	spxfprv.c \
+	spxfromr.c \
+	sync.c \
+	sysinfo.c \
+	systime.c \
+	thread.c \
+	thredmem.c \
+	util.c \
+	uvl2lab.c \
+	winmem.c \
+	wkcpmgr.c \
+	xfers.c \
+	xyz2lab.c \
+	xyzmap.c \
+	CMM.c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/cmm/kcms/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,108 @@
+#
+# Copyright (c) 1997, 2011, 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.
+#
+
+BUILDDIR = ../../..
+PACKAGE = sun.java2d.cmm.kcms
+LIBRARY = kcms
+PRODUCT = sun
+include $(BUILDDIR)/common/Defs.gmk
+
+#
+# Files
+#
+ifeq ($(PLATFORM), windows)
+include FILES_c_windows.gmk
+else # PLATFORM
+include FILES_c_unix.gmk
+endif # PLATFORM
+
+FILES_java = \
+    sun/java2d/cmm/kcms/CMM.java
+
+FILES_export = \
+    sun/java2d/cmm/kcms/CMM.java 
+
+ifeq ($(PLATFORM), windows)
+  # Override the default version info with our own resource file (see 5043594)
+  VERSIONINFO_RESOURCE = $(CLOSED_SRC)/share/native/sun/java2d/cmm/kcms/cmm.rc
+endif
+
+# Rules
+#
+include $(BUILDDIR)/common/Mapfile-vers.gmk
+include $(BUILDDIR)/common/Library.gmk
+
+SERVICEDIR = $(CLASSBINDIR)/META-INF/services
+
+FILES_copy = \
+	$(SERVICEDIR)/sun.java2d.cmm.PCMM
+
+
+build: copy-files
+
+copy-files: $(FILES_copy)
+
+$(SERVICEDIR)/%: $(CLOSED_SRC)/share/classes/sun/java2d/cmm/kcms/META-INF/services/%
+	$(install-file)
+
+#
+# Extra rules
+#
+ifeq  ($(PLATFORM), linux)
+    LDLIBS += -lpthread
+    OTHER_CFLAGS += -Wno-missing-field-initializers
+endif
+
+clean clobber:: 
+	$(RM) $(FILES_copy)
+
+#
+# Add to ambient vpath to get files in a subdirectory
+#
+vpath %.c   $(CLOSED_SRC)/share/native/$(PKGDIR)
+
+ifeq ($(PLATFORM), windows)
+
+OTHER_LDLIBS = user32.lib version.lib
+
+clean:: res.clean
+
+res.clean:
+	$(RM) $(OBJDIR)/cmm.rc
+	$(RM) $(OBJDIR)/cmm.res
+	$(RM) $(OBJDIR)/cmm.h
+
+else # PLATFORM
+OTHER_LDLIBS = $(LIBM)
+
+# Use pic instead of PIC on this library
+GLOBAL_KPIC = $(PIC_CODE_SMALL)
+
+CPPFLAGS += -I$(CLASSHDRDIR) \
+
+endif # PLATFORM
+
+CFLAGS += -DJAVACMM -DFUT_CALC_EX -DNO_FUT_GCONST
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/cmm/kcms/mapfile-vers	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,47 @@
+#
+# Copyright (c) 1997, 2006, 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.
+#
+
+# Define public interface.
+
+SUNWprivate_1.1 {
+	global:
+        Java_sun_java2d_cmm_kcms_CMM_cmmGetTagSize;
+        Java_sun_java2d_cmm_kcms_CMM_cmmGetNumComponents;
+        Java_sun_java2d_cmm_kcms_CMM_cmmColorConvert;
+        Java_sun_java2d_cmm_kcms_CMM_cmmInit;
+        Java_sun_java2d_cmm_kcms_CMM_cmmCombineTransforms;
+        Java_sun_java2d_cmm_kcms_CMM_cmmGetTagData;
+        Java_sun_java2d_cmm_kcms_CMM_cmmSetTagData;
+        Java_sun_java2d_cmm_kcms_CMM_cmmGetProfileData;
+        Java_sun_java2d_cmm_kcms_CMM_cmmFreeProfile;
+        Java_sun_java2d_cmm_kcms_CMM_cmmTerminate;
+        Java_sun_java2d_cmm_kcms_CMM_cmmLoadProfile;
+        Java_sun_java2d_cmm_kcms_CMM_cmmGetTransform;
+        Java_sun_java2d_cmm_kcms_CMM_cmmFreeTransform;
+        Java_sun_java2d_cmm_kcms_CMM_cmmGetProfileSize;
+
+	local:
+		*;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/dcpr/FILES_c.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,51 @@
+#
+# Copyright (c) 1997, 2007, 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.
+#
+
+FILES_c = \
+	CJError.c \
+	doeObject.c \
+	doeSun.c \
+	dcPool.c \
+	CJPathConsumer.c \
+	CJPathConsumer2D.c \
+	dcPathConsumer.c \
+	dcPathStore.c \
+	dcPathError.c \
+	dcPathException.c \
+	PathFiller.c \
+	PathDasher.c \
+	PathStroker.c \
+	dcLLFiller.c \
+	dcLLFillerH.c \
+	dcLLFillerS.c \
+        dcPRError.c \
+        dcPRException.c \
+	dcPathFiller.c \
+	dcPathDasher.c \
+	dcPathStorage.c \
+	dcPathStroker.c \
+	affine.c \
+	angles.c \
+	arcs.c \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/dcpr/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,93 @@
+#
+# Copyright (c) 1997, 2011, 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.
+#
+
+BUILDDIR = ../..
+PACKAGE = sun.dc
+LIBRARY = dcpr
+PRODUCT = sun
+include $(BUILDDIR)/common/Defs.gmk
+
+#
+# Files
+#
+include FILES_c.gmk
+
+FILES_java = \
+ sun/dc/DuctusRenderingEngine.java \
+ sun/dc/path/FastPathProducer.java \
+ sun/dc/path/PathConsumer.java \
+ sun/dc/path/PathError.java \
+ sun/dc/path/PathException.java \
+ sun/dc/pr/PathDasher.java \
+ sun/dc/pr/PathFiller.java \
+ sun/dc/pr/PathStroker.java \
+ sun/dc/pr/PRError.java \
+ sun/dc/pr/PRException.java \
+ sun/dc/pr/Rasterizer.java
+
+FILES_export = \
+	sun/dc/pr/PathDasher.java \
+	sun/dc/pr/PathFiller.java \
+	sun/dc/pr/PathStroker.java
+
+#
+# Rules.
+#
+include $(BUILDDIR)/common/Mapfile-vers.gmk
+include $(BUILDDIR)/common/Library.gmk
+
+SERVICEDIR = $(CLASSBINDIR)/META-INF/services
+
+FILES_copy = \
+	$(SERVICEDIR)/sun.java2d.pipe.RenderingEngine
+
+build: copy-files
+
+copy-files: $(FILES_copy)
+
+$(SERVICEDIR)/%: $(SHARE_SRC)/classes/sun/dc/META-INF/services/%
+	$(install-file)
+
+#
+# Add to the ambient vpath to pick up files in subdirectories
+#
+vpath %.c   $(CLOSED_SRC)/share/native/$(PKGDIR)/doe
+vpath %.c   $(CLOSED_SRC)/share/native/$(PKGDIR)/path
+vpath %.c   $(CLOSED_SRC)/share/native/$(PKGDIR)/pr
+vpath %.c   $(CLOSED_SRC)/share/native/$(PKGDIR)/util
+vpath %.c   $(SHARE_SRC)/native/sun/java2d/pipe
+
+ifneq ($(PLATFORM), windows)
+  OTHER_LDLIBS = $(LIBM)
+endif # PLATFORM
+
+CPPFLAGS += \
+	-I$(CLOSED_SRC)/share/native/$(PKGDIR)/doe \
+	-I$(CLOSED_SRC)/share/native/$(PKGDIR)/path \
+	-I$(CLOSED_SRC)/share/native/$(PKGDIR)/pr \
+	-I$(CLOSED_SRC)/share/native/$(PKGDIR)/util \
+	-I$(SHARE_SRC)/native/sun/java2d/pipe \
+	-I$(PLATFORM_SRC)/native/sun/java2d
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/dcpr/mapfile-vers	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,93 @@
+#
+# Copyright (c) 1997, 2007, 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.
+#
+
+# Define public interface.
+
+SUNWprivate_1.1 {
+	global:
+		Java_sun_dc_pr_PathDasher_beginPath;
+		Java_sun_dc_pr_PathFiller_getTileState;
+		Java_sun_dc_pr_PathStroker_setCaps;
+		Java_sun_dc_pr_PathStroker_setCorners;
+		Java_sun_dc_pr_PathFiller_writeAlpha16;
+		Java_sun_dc_pr_PathFiller_closedSubpath;
+		Java_sun_dc_pr_PathStroker_beginPath;
+		Java_sun_dc_pr_PathDasher_setDashT4;
+		Java_sun_dc_pr_PathFiller_dispose;
+		Java_sun_dc_pr_PathStroker_closedSubpath;
+		Java_sun_dc_pr_PathDasher_appendLine;
+		Java_sun_dc_pr_PathStroker_dispose;
+		Java_sun_dc_pr_PathDasher_setOutputConsumer;
+		Java_sun_dc_pr_PathStroker_reset;
+		Java_sun_dc_pr_PathFiller_beginSubpath;
+		Java_sun_dc_pr_PathFiller_writeAlpha8;
+		Java_sun_dc_pr_PathDasher_closedSubpath;
+		Java_sun_dc_pr_PathFiller_appendQuadratic;
+		Java_sun_dc_pr_PathDasher_setOutputT6;
+		Java_sun_dc_pr_PathStroker_setPenFitting;
+		Java_sun_dc_pr_PathStroker_endPath;
+		Java_sun_dc_pr_PathDasher_setDash;
+		Java_sun_dc_pr_PathFiller_nextTile;
+		Java_sun_dc_pr_PathStroker_setOutputConsumer;
+		Java_sun_dc_pr_PathFiller_setFillMode;
+		Java_sun_dc_pr_PathFiller_appendLine;
+		Java_sun_dc_pr_PathStroker_appendQuadratic;
+		Java_sun_dc_pr_PathFiller_endPath;
+		Java_sun_dc_pr_PathStroker_appendCubic;
+		Java_sun_dc_pr_PathDasher_appendCubic;
+		Java_sun_dc_pr_PathStroker_setPenDiameter;
+		Java_sun_dc_pr_PathFiller_setOutputArea;
+		Java_sun_dc_pr_PathFiller_getAlphaBox;
+		Java_sun_dc_pr_PathStroker_appendLine;
+		Java_sun_dc_pr_PathStroker_setOutputT6;
+		Java_sun_dc_pr_PathFiller_beginPath;
+		Java_sun_dc_pr_PathDasher_dispose;
+		Java_sun_dc_pr_PathDasher_reset;
+		Java_sun_dc_pr_PathFiller_reset;
+		Java_sun_dc_pr_PathDasher_endPath;
+		Java_sun_dc_pr_PathStroker_beginSubpath;
+		Java_sun_dc_pr_PathStroker_setPenT4;
+		Java_sun_dc_pr_PathDasher_appendQuadratic;
+		Java_sun_dc_pr_PathDasher_beginSubpath;
+		Java_sun_dc_pr_PathFiller_appendCubic;
+
+		Java_sun_dc_pr_PathDasher_cClassFinalize;
+		Java_sun_dc_pr_PathDasher_cClassInitialize;
+		Java_sun_dc_pr_PathDasher_cInitialize;
+		Java_sun_dc_pr_PathFiller_cClassFinalize;
+		Java_sun_dc_pr_PathFiller_cClassInitialize;
+		Java_sun_dc_pr_PathFiller_cInitialize;
+		Java_sun_dc_pr_PathStroker_cClassFinalize;
+		Java_sun_dc_pr_PathStroker_cClassInitialize;
+		Java_sun_dc_pr_PathStroker_cInitialize;
+		Java_sun_dc_pr_PathStroker_cInitialize2D;
+
+		Java_sun_dc_pr_PathDasher_getCPathConsumer;
+		Java_sun_dc_pr_PathFiller_getCPathConsumer;
+		Java_sun_dc_pr_PathStroker_getCPathConsumer;
+
+	local:
+		*;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/headless/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,44 @@
+#
+# Copyright (c) 2000, 2011, 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.
+#
+
+BUILDDIR = ../..
+HEADLESS = true
+NO_ROBOT = true
+MOTIF_VERSION = none
+MOTIF_VERSION_STRING=none
+
+PACKAGE = sun.awt
+LIBRARY = awt_headless
+PRODUCT = sun
+
+include $(BUILDDIR)/common/Defs.gmk
+
+ifdef BUILD_HEADLESS
+  include $(BUILDDIR)/sun/awt/mawt.gmk
+else
+  all build clean clobber ::
+  # do nothing case
+endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/headless/mapfile-vers	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,109 @@
+#
+# Copyright (c) 2001, 2011, 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.
+#
+
+# Define public interface.
+
+SUNWprivate_1.1 {
+	global:
+		JNI_OnLoad;
+
+                Java_sun_java2d_x11_X11PMBlitLoops_nativeBlit;
+		Java_sun_java2d_x11_X11PMBlitBgLoops_nativeBlitBg;
+		Java_sun_java2d_x11_X11Renderer_XFillSpans;
+		Java_sun_java2d_x11_X11Renderer_XDrawArc;
+		Java_sun_java2d_x11_X11Renderer_XDrawLine;
+		Java_sun_java2d_x11_X11Renderer_XDrawOval;
+		Java_sun_java2d_x11_X11Renderer_XDrawPoly;
+		Java_sun_java2d_x11_X11Renderer_XDrawRect;
+		Java_sun_java2d_x11_X11Renderer_XDrawRoundRect;
+                Java_sun_java2d_x11_X11Renderer_XDoPath;
+		Java_sun_java2d_x11_X11Renderer_XFillArc;
+		Java_sun_java2d_x11_X11Renderer_XFillOval;
+		Java_sun_java2d_x11_X11Renderer_XFillPoly;
+		Java_sun_java2d_x11_X11Renderer_XFillRect;
+		Java_sun_java2d_x11_X11Renderer_XFillRoundRect;
+		Java_sun_java2d_x11_X11Renderer_devCopyArea;
+		Java_sun_java2d_x11_X11SurfaceData_initIDs;
+		Java_sun_java2d_x11_X11SurfaceData_initSurface;
+                Java_sun_java2d_x11_X11SurfaceData_XSetCopyMode;
+                Java_sun_java2d_x11_X11SurfaceData_XSetXorMode;
+                Java_sun_java2d_x11_X11SurfaceData_XSetForeground;
+
+		Java_sun_java2d_x11_XSurfaceData_initOps;
+                Java_sun_java2d_x11_XSurfaceData_XCreateGC;
+                Java_sun_java2d_x11_XSurfaceData_XResetClip;
+                Java_sun_java2d_x11_XSurfaceData_XSetClip;
+                Java_sun_java2d_x11_XSurfaceData_flushNativeSurface;
+		Java_sun_java2d_x11_XSurfaceData_isDrawableValid;
+		Java_sun_java2d_x11_XSurfaceData_setInvalid;
+		Java_sun_java2d_x11_XSurfaceData_XSetGraphicsExposures;
+
+		X11SurfaceData_GetOps;
+		Java_java_awt_Font_initIDs;
+                Java_sun_font_FontConfigManager_getFontConfig;
+                Java_sun_font_FontConfigManager_getFontConfigAASettings;
+                Java_sun_font_FontConfigManager_getFontConfigVersion;
+                Java_sun_awt_X11FontManager_getFontPathNative;
+
+		Java_sun_awt_FontDescriptor_initIDs;
+		Java_sun_awt_PlatformFont_initIDs;
+
+		Java_sun_print_CUPSPrinter_initIDs;
+		Java_sun_print_CUPSPrinter_getCupsServer;
+		Java_sun_print_CUPSPrinter_getCupsPort;
+		Java_sun_print_CUPSPrinter_canConnect;	
+		Java_sun_print_CUPSPrinter_getMedia;
+		Java_sun_print_CUPSPrinter_getPageSizes;
+
+		# libfontmanager entry points
+		AWTIsHeadless;
+		AWTCountFonts;
+                AWTLoadFont;
+                AWTFreeFont;
+                AWTFontAscent;
+                AWTFontDescent;
+                AWTFontMinByte1;
+                AWTFontMaxByte1;
+                AWTFontMinCharOrByte2;
+                AWTFontMaxCharOrByte2;
+                AWTFontDefaultChar;
+                AWTFontPerChar;
+                AWTFontMaxBounds;
+                AWTFontTextExtents16;
+                AWTFreeChar;
+                AWTFontGenerateImage;
+                AWTCharAdvance;
+                AWTCharLBearing;
+                AWTCharRBearing;
+                AWTCharAscent;
+                AWTCharDescent;
+                AWTDrawGlyphList;
+                AccelGlyphCache_RemoveAllCellInfos;
+
+
+	local:
+		*;
+};
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/headless/reorder-i586	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,1 @@
+# Temporary file for headless
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/headless/reorder-sparc	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,1 @@
+# Temporary file for headless
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/headless/reorder-sparcv9	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,1 @@
+# Temporary file for headless
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/image/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,50 @@
+#
+# Copyright (c) 1998, 2010, 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.
+#
+
+#
+# Makefile for building the generic and vis versions of medialib
+#
+
+BUILDDIR = ../..
+PRODUCT = sun
+include $(BUILDDIR)/common/Defs.gmk
+
+SUBDIRS = generic
+
+# solaris-sparc and solaris-sparcv9 both build 'vis'
+ifeq ($(PLATFORM),solaris)
+  ifeq ($(ARCH),sparc)
+    SUBDIRS += vis
+  endif
+  ifeq ($(ARCH),sparcv9)
+    SUBDIRS += vis
+  endif
+endif
+
+include $(BUILDDIR)/common/Subdirs.gmk
+
+all build clean clobber::
+	$(SUBDIRS-loop)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/image/generic/FILES_c.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,96 @@
+#
+# Copyright (c) 1998, 2003, 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.
+#
+
+IMAGE_AFFINE_FILES = \
+	mlib_ImageAffine_NN.c \
+	mlib_ImageAffine_NN_Bit.c \
+	mlib_ImageAffine_BC_S32.c \
+	mlib_ImageAffine_BC_D64.c \
+	mlib_ImageAffine_BC_F32.c \
+	mlib_ImageAffine_BL_S32.c \
+	mlib_ImageAffine_BL_D64.c \
+	mlib_ImageAffine_BL_F32.c \
+	mlib_c_ImageAffine_NN.c \
+	mlib_c_ImageAffine_BL.c \
+	mlib_c_ImageAffine_BL_S16.c \
+	mlib_c_ImageAffine_BL_U16.c \
+	mlib_c_ImageAffine_BC.c \
+	mlib_c_ImageAffine_BC_S16.c \
+	mlib_c_ImageAffine_BC_U16.c \
+	mlib_c_ImageAffineIndex_BC.c \
+	mlib_c_ImageAffineIndex_BL.c \
+	mlib_ImageAffineEdge.c \
+	mlib_ImageScanPoly.c \
+	mlib_ImageColorTrue2Index.c \
+	mlib_ImageDivTables.c \
+	mlib_c_ImageThresh1_U8.c \
+	mlib_ImageFilters.c \
+
+IMAGE_LOOKUP_FILES = \
+	mlib_c_ImageLookUp_f.c \
+	mlib_ImageLookUp_64.c \
+	mlib_ImageLookUp_Bit.c \
+	mlib_c_ImageCopy.c \
+
+IMAGE_CONV_FILES = \
+	mlib_ImageConv_16ext.c \
+	mlib_ImageConv_u16ext.c \
+	mlib_ImageConvMxN_ext.c \
+	mlib_ImageConvMxN_Fp.c \
+	mlib_ImageConv_8ext.c \
+	mlib_c_ImageConv_f.c \
+	mlib_ImageClipping.c \
+	mlib_c_ImageConvCopyEdge.c \
+	mlib_c_ImageConvClearEdge.c \
+	mlib_ImageConv_8nw.c \
+	mlib_ImageConv_16nw.c \
+	mlib_ImageConv_u16nw.c \
+	mlib_ImageConv_32nw.c \
+	mlib_ImageConv_F32nw.c \
+	mlib_ImageConv_D64nw.c \
+	mlib_ImageConv2x2_f.c \
+	mlib_ImageConvClearEdge_Fp.c \
+	mlib_ImageConvCopyEdge_Bit.c \
+	mlib_ImageConvClearEdge_Bit.c \
+	mlib_ImageCopy_Bit.c \
+	mlib_c_ImageConvVersion.c \
+
+
+SHARE_SYS_FILES = \
+	mlib_sys.c  \
+	mlib_ImageUtils.c \
+
+
+FILES_c = \
+	mlib_ImageAffine.c \
+	mlib_ImageCreate.c \
+	mlib_c_ImageLookUp.c \
+	mlib_ImageConvMxN.c \
+	mlib_ImageConvKernelConvert.c \
+	$(IMAGE_AFFINE_FILES) \
+	$(IMAGE_LOOKUP_FILES) \
+	$(IMAGE_CONV_FILES) \
+	$(SHARE_SYS_FILES) \
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/image/generic/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,75 @@
+#
+# Copyright (c) 1998, 2011, 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.
+#
+
+#
+# Makefile for building the generic version of medialib
+#
+
+BUILDDIR = ../../..
+PACKAGE = sun.awt.medialib
+LIBRARY = mlib_image
+PRODUCT = sun
+
+# Use highest level of optimization on this library
+OPTIMIZATION_LEVEL = HIGHEST
+
+include $(BUILDDIR)/common/Defs.gmk
+
+#
+# Use mapfile
+#
+FILES_m = mapfile-vers
+include $(BUILDDIR)/common/Mapfile-vers.gmk
+
+#
+# Files
+#
+include FILES_c.gmk
+
+#
+# Rules
+#
+include $(BUILDDIR)/common/Library.gmk
+
+#
+# set compile options for solaris 32- or 64-bit build
+#
+ifeq ($(ARCH_DATA_MODEL), 64)
+  CFLAGS += -DMLIB_OS64BIT
+endif # ARCH_DATA_MODEL
+
+ifneq ($(PLATFORM), sparc)
+      OTHER_CFLAGS += -DMLIB_NO_LIBSUNMATH
+endif
+
+CPPFLAGS += \
+            -I$(PLATFORM_SRC)/native/$(PKGDIR)/medialib 
+
+OTHER_CFLAGS += -D__USE_J2D_NAMES -D__MEDIALIB_OLD_NAMES
+
+ifneq ($(PLATFORM), windows)
+	OTHER_LDLIBS = $(LIBM) $(LIBDL)
+endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/image/generic/mapfile-vers	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,39 @@
+#
+# Copyright (c) 2005, 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.
+#
+
+# Define public interface.
+
+SUNWprivate_1.1 {
+	global:
+            j2d_mlib_ImageDelete;
+            j2d_mlib_ImageCreateStruct;
+            j2d_mlib_ImageLookUp;
+            j2d_mlib_ImageCreate;
+            j2d_mlib_ImageConvMxN;
+            j2d_mlib_ImageAffine;
+            j2d_mlib_ImageConvKernelConvert;
+	local:
+	    *;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/image/vis/FILES_c.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,162 @@
+#
+# Copyright (c) 1998, 2003, 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.
+#
+
+REQUIRED_NATIVE_FILES = \
+	mlib_v_ImageLookUp.c \
+
+REQUIRED_SHARE_FILES = \
+	mlib_ImageCreate.c \
+	mlib_ImageAffine.c \
+	mlib_ImageConvMxN.c \
+	mlib_ImageConvKernelConvert.c \
+
+SYS_SHARE_FILES = \
+	mlib_sys.c \
+
+RADIO_SHARE_FILES = \
+	mlib_ImageLookUp_64.c \
+	mlib_ImageLookUp_Bit.c \
+	mlib_ImageColorTrue2Index.c \
+	mlib_c_ImageThresh1_U8.c \
+
+
+RADIO_NATIVE_FILES = \
+	mlib_v_ImageLookUpS16S16Func.c \
+	mlib_v_ImageLookUpS16S32Func.c \
+	mlib_v_ImageLookUpS16U16Func.c \
+	mlib_v_ImageLookUpS16U8Func.c \
+	mlib_v_ImageLookUpS32S16Func.c \
+	mlib_v_ImageLookUpS32S32Func.c \
+	mlib_v_ImageLookUpS32U16Func.c \
+	mlib_v_ImageLookUpS32U8Func.c \
+	mlib_v_ImageLookUpSIS16S16Func.c \
+	mlib_v_ImageLookUpSIS16S32Func.c \
+	mlib_v_ImageLookUpSIS16U16Func.c \
+	mlib_v_ImageLookUpSIS16U8Func.c \
+	mlib_v_ImageLookUpSIS32S16Func.c \
+	mlib_v_ImageLookUpSIS32S32Func.c \
+	mlib_v_ImageLookUpSIS32U16Func.c \
+	mlib_v_ImageLookUpSIS32U8Func.c \
+	mlib_v_ImageLookUpSIU16S16Func.c \
+	mlib_v_ImageLookUpSIU16S32Func.c \
+	mlib_v_ImageLookUpSIU16U16Func.c \
+	mlib_v_ImageLookUpSIU16U8Func.c \
+	mlib_v_ImageLookUpSIU8S16Func.c \
+	mlib_v_ImageLookUpSIU8S32Func.c \
+	mlib_v_ImageLookUpSIU8U16Func.c \
+	mlib_v_ImageLookUpSIU8U8Func.c \
+	mlib_v_ImageLookUpU16S16Func.c \
+	mlib_v_ImageLookUpU16S32Func.c \
+	mlib_v_ImageLookUpU16U16Func.c \
+	mlib_v_ImageLookUpU16U8Func.c \
+	mlib_v_ImageLookUpU8S16Func.c \
+	mlib_v_ImageLookUpU8S32Func.c \
+	mlib_v_ImageLookUpU8U16Func.c \
+	mlib_v_ImageLookUpU8U8Func.c \
+
+GEOM_NATIVE_FILES = \
+	mlib_v_ImageAffineIndex_BC.c \
+	mlib_v_ImageAffine_BC.c \
+	mlib_v_ImageAffine_BC_S16.c \
+	mlib_v_ImageAffine_BC_U16.c \
+	mlib_v_ImageAffine_BL.c \
+	mlib_v_ImageAffine_BL_S16.c \
+	mlib_v_ImageAffine_BL_U16.c \
+	mlib_v_ImageAffine_NN.c \
+	mlib_v_ImageFilters.c \
+
+GEOM_SHARE_FILES = \
+	mlib_ImageAffineEdge.c \
+	mlib_ImageAffine_BC_D64.c \
+	mlib_ImageAffine_BC_F32.c \
+	mlib_ImageAffine_BC_S32.c \
+	mlib_ImageAffine_BL_D64.c \
+	mlib_ImageAffine_BL_F32.c \
+	mlib_ImageAffine_BL_S32.c \
+	mlib_ImageAffine_NN.c \
+	mlib_ImageAffine_NN_Bit.c \
+	mlib_ImageFilters.c \
+	mlib_ImageScanPoly.c \
+
+SPATIAL_SHARED_FILES = \
+	mlib_ImageConv_8nw.c \
+	mlib_ImageConv_8ext.c \
+	mlib_ImageConv_16nw.c \
+	mlib_ImageConv_16ext.c \
+	mlib_ImageConv_u16nw.c \
+	mlib_ImageConv_u16ext.c \
+	mlib_ImageConv_32nw.c \
+	mlib_ImageConv_F32nw.c \
+	mlib_ImageConvMxN_Fp.c \
+	mlib_ImageConvMxN_ext.c \
+	mlib_ImageConv_D64nw.c \
+	mlib_ImageClipping.c \
+	mlib_ImageConvCopyEdge_Bit.c \
+	mlib_ImageConvClearEdge_Bit.c \
+	mlib_ImageConv2x2_f.c \
+	mlib_ImageConvClearEdge_Fp.c \
+
+SPATIAL_NATIVE_FILES = \
+	mlib_v_ImageConvMxN_8.c \
+	mlib_v_ImageConvClearEdge.c \
+	mlib_v_ImageConvCopyEdge.c \
+	mlib_v_ImageConvMxN_8ext.c \
+	mlib_v_ImageConvVersion.c \
+	mlib_v_ImageConv_8nw.c \
+	mlib_ImageConvCopyEdge_Fp.c \
+
+FORMAT_NATIVE_FILES = \
+	mlib_v_ImageChannelInsert_1.c \
+	mlib_v_ImageChannelExtract_43.c \
+	mlib_v_ImageChannelExtract_1.c \
+
+COPY_SHARED_FILES = \
+	mlib_ImageCopy_Bit.c \
+
+COPY_NATIVE_FILES = \
+	mlib_v_ImageCopy_f.c \
+
+COMMON_SHARED_FILES = \
+	mlib_ImageUtils.c \
+	mlib_ImageDivTables.c \
+
+NATIVE_FILES = \
+	$(REQUIRED_NATIVE_FILES) \
+
+FILES_c = \
+	$(REQUIRED_NATIVE_FILES) \
+	$(REQUIRED_SHARE_FILES) \
+	$(RADIO_SHARE_FILES) \
+	$(RADIO_NATIVE_FILES) \
+	$(GEOM_NATIVE_FILES) \
+	$(GEOM_SHARE_FILES) \
+	$(SPATIAL_SHARED_FILES) \
+	$(SPATIAL_NATIVE_FILES) \
+	$(FORMAT_NATIVE_FILES) \
+	$(SYS_SHARE_FILES) \
+	$(COPY_SHARED_FILES) \
+	$(COPY_NATIVE_FILES) \
+	$(COMMON_SHARED_FILES) \
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/image/vis/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,72 @@
+#
+# Copyright (c) 1998, 2011, 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.
+#
+
+#
+# Makefile for building the VIS (solaris-only) version of medialib
+#
+BUILDDIR = ../../..
+PACKAGE = sun.awt.medialib
+LIBRARY = mlib_image_v
+PRODUCT = sun
+
+# Tell Defs.gmk we need VIS instructions
+VIS_NEEDED=true
+
+# Select highest level of optimization for this library
+OPTIMIZATION_LEVEL = HIGHEST
+
+include $(BUILDDIR)/common/Defs.gmk
+
+#
+# Use generic mapfile
+#
+FILES_m = ../generic/mapfile-vers
+include $(BUILDDIR)/common/Mapfile-vers.gmk
+
+#
+# Files
+#
+include FILES_c.gmk
+
+#
+# Rules
+#
+include $(BUILDDIR)/common/Library.gmk
+
+vpath %.s	$(PLATFORM_SRC)/native/sun/awt/medialib
+vpath %.c	$(SHARE_SRC)/native/sun/awt/medialib
+
+#
+# set compile options for solaris 32- or 64-bit build
+#
+ASFLAGS += -P
+CFLAGS_sparcv9 = -DMLIB_OS64BIT
+INLINE = $(PLATFORM_SRC)/native/sun/awt/medialib/vis_$(ARCH_DATA_MODEL).il
+
+CFLAGS += $(CFLAGS_$(ARCH)) $(INLINE) -I$(PLATFORM_SRC)/native/sun/awt/medialib -I$(SHARE_SRC)/native/sun/awt/medialib
+
+OTHER_CFLAGS += -D__USE_J2D_NAMES -D__MEDIALIB_OLD_NAMES
+OTHER_LDLIBS = $(LIBM) $(LIBDL)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/javazic/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,71 @@
+#
+# Copyright (c) 2000, 2011, 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.
+#
+
+# Makefile for building javazic utility & TimeZone resource files
+
+
+BUILDDIR = ../..
+PACKAGE = sun.javazic
+PRODUCT = sun
+include $(BUILDDIR)/common/Defs.gmk
+
+# Time zone data file creation
+TZDATA = $(BUILDDIR)/../make/sun/javazic/tzdata/
+TZDATA_VER = `$(GREP) '^tzdata' $(TZDATA)VERSION`
+TZFILE = \
+    africa antarctica asia australasia europe northamerica \
+    pacificnew southamerica backward \
+    etcetera solar87 solar88 solar89 systemv
+JDKTZDATA = $(BUILDDIR)/../make/sun/javazic/tzdata_jdk/
+JDKTZFILES = gmt jdk11_backward
+TZFILES = \
+    $(addprefix $(TZDATA),$(TZFILE)) \
+    $(addprefix $(JDKTZDATA),$(JDKTZFILES))
+
+WORKDIR = $(TEMPDIR)/zi
+INSTALLDIR = $(LIBDIR)/zi
+MAPFILE = ZoneInfoMappings
+
+#
+# Rules
+#
+include $(BUILDDIR)/common/Classes.gmk
+
+# Add to the build rule
+build: $(INSTALLDIR)/$(MAPFILE)
+
+$(WORKDIR)/$(MAPFILE): $(BUILD_TOOLS) $(TZFILES)
+	$(RM) -r $(@D)
+	$(prep-target)
+	$(TOOL_JAVAZIC) -V "$(TZDATA_VER)" -d $(WORKDIR) $(TZFILES)
+	@$(java-vm-cleanup)
+
+$(INSTALLDIR)/$(MAPFILE): $(WORKDIR)/$(MAPFILE)
+	$(RM) -r $(@D)
+	$(prep-target)
+	$(CP) -r $(WORKDIR)/* $(@D)
+
+clean clobber::
+	$(RM) -r $(TEMPDIR) $(INSTALLDIR)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/jdbc/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,142 @@
+#
+# Copyright (c) 1996, 2011, 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.
+#
+
+#
+# Makefile for JDBC-ODBC Bridge Driver 
+#
+# Note - the native library for the bridge may be linked with the 
+# shared library for the ODBC driver manager.  Or dummy libraries
+# may be used to just create libJdbcOdbc.so with a dependency on
+# libodbc.so and libodbcinst.so.
+#
+
+BUILDDIR = ../..
+PACKAGE = sun.jdbc.odbc
+LIBRARY = JdbcOdbc
+PRODUCT = sun
+include $(BUILDDIR)/common/Defs.gmk
+
+#
+# Files
+#
+
+AUTO_FILES_JAVA_DIRS = sun/jdbc/odbc
+
+FILES_c = \
+	JdbcOdbc.c
+
+FILES_export = \
+    sun/jdbc/odbc/JdbcOdbc.java 
+
+# Use fake libraries on Solaris and Linux just so the library we create has
+#   a dependency on these two library names. (which are not part of the jdk)
+ifneq ($(PLATFORM), windows)
+  # In jdk5 and jdk6, and on Solaris 32bit, we would have required that
+  #    these two libraries exist at: $(ALT_ODBCDIR)/ISLIodbc/2.11/lib
+  #    In jdk7, we just fake them out like we did on Linux in jdk5 and jdk6.
+  #
+  # If you wanted to use the real odbc libraries, change the value of
+  #    ODBC_LIBRARY_LOCATION, and delete the variable assignments below.
+  #
+  # Tell linker to ignore missing externals when building this shared library.
+  LDFLAGS_DEFS_OPTION = -Xlinker -z -Xlinker nodefs
+  # Define a place to create the fake libraries and their names.
+  ODBC_LIBRARY_LOCATION = $(TEMPDIR)
+  ODBC_FAKE_LIBRARIES = $(ODBC_LIBRARY_LOCATION)/libodbcinst.so $(ODBC_LIBRARY_LOCATION)/libodbc.so
+  # Make sure they get created early.
+  INIT += $(ODBC_FAKE_LIBRARIES)
+endif
+
+#
+# Rules
+#
+include $(BUILDDIR)/common/Library.gmk
+
+#
+# The UNIX define specifies conditional compilation for UNIX
+#
+ifeq ($(PLATFORM), windows)
+  LDLIBS += odbc32.lib odbccp32.lib
+else
+  CFLAGS += -DUNIX
+  LDFLAGS += -L$(ODBC_LIBRARY_LOCATION) -lodbcinst -lodbc
+endif
+
+#
+# The native code for the bridge uses conditional compilation to 
+# support Solaris, Win95 and Mac PPC. This is the path to the shared C files
+# (which unfortunately are in the same directory as shared Java files).
+#
+vpath %.c $(CLOSED_SHARE_SRC)/classes/sun/jdbc/odbc
+
+#
+# Rules to generate fake libraries
+#
+
+ifdef ODBC_FAKE_LIBRARIES
+$(TEMPDIR)/dummyodbc.c: 
+	@$(prep-target)
+	$(ECHO) "void dummyOdbc(void){}" >> $@
+$(TEMPDIR)/dummyodbc.o: $(TEMPDIR)/dummyodbc.c
+	@$(prep-target)
+	$(COMPILE.c) $(CC_OBJECT_OUTPUT_FLAG)$@ $(CFLAGS_GPROF) $<
+$(ODBC_FAKE_LIBRARIES): $(TEMPDIR)/dummyodbc.o
+	@$(prep-target)
+	$(CC) $(SHARED_LIBRARY_FLAG) $(LDFLAGS_COMMON) -o $@ $< $(EXTRA_LIBS)
+clean::
+	$(RM) -f $(ODBC_FAKE_LIBRARIES)
+	$(RM) -f $(TEMPDIR)/dummyodbc.c
+	$(RM) -f $(TEMPDIR)/dummyodbc.o
+endif
+
+#
+# Files that need to be copied
+#
+SERVICEDIR = $(CLASSBINDIR)/META-INF/services
+
+FILES_copy = \
+	$(SERVICEDIR)/java.sql.Driver
+
+
+FILES_mkdirs = \
+	$(CLASSBINDIR)/META-INF \
+	$(CLASSBINDIR)/META-INF/services
+
+FILES_copydirs = \
+	$(CLASSBINDIR) \
+	$(FILES_mkdirs)
+
+build: copy-files
+
+copy-files: $(FILES_copy)
+
+$(SERVICEDIR)/%: $(CLOSED_SHARE_SRC)/classes/sun/jdbc/odbc/META-INF/services/%
+	$(install-file)
+
+clean clobber::
+	$(RM) $(FILES_copy)
+
+.PHONY: copy-files
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/jdga/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,66 @@
+#
+# Copyright (c) 1998, 2011, 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.
+#
+
+
+BUILDDIR = ../..
+PACKAGE = sun.jdga
+LIBRARY = sunwjdga
+PRODUCT = sun
+include $(BUILDDIR)/common/Defs.gmk
+
+#
+# Files
+#
+FILES_c = \
+	dgalock.c
+
+#
+# Add use of mapfile
+#
+ifeq ($(ARCH_FAMILY), sparc)
+FILES_m = mapfile-vers
+include $(BUILDDIR)/common/Mapfile-vers.gmk
+endif
+
+#
+# Rules.
+#
+include $(BUILDDIR)/common/Library.gmk
+
+#
+# Add to the ambient vpath to pick up files in subdirectories
+#
+vpath %.c   $(PLATFORM_SRC)/native/$(PKGDIR)
+
+ifneq ($(PLATFORM), windows)
+  LDLIBS =  -ldga -lX11 $(LIBDL) -lc
+
+  CPPFLAGS += \
+	-I$(SHARE_SRC)/javavm/export \
+	-I$(PLATFORM_SRC)/javavm/export \
+	-I$(OPENWIN_HOME)/include 
+endif
+
+LDFLAGS += -L$(OPENWIN_LIB) -R$(OPENWIN_RUNTIME_LIB)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/jdga/mapfile-vers	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,33 @@
+#
+# Copyright (c) 2005, 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.
+#
+
+# Define library interface.
+
+SUNWprivate_1.1 {
+	global:
+            JDgaLibInit;	
+	local:
+	    *;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/jkernel/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,94 @@
+#
+# Copyright (c) 2008, 2010, 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.
+#
+
+BUILDDIR = ../..
+MODULE  = jkernel
+PACKAGE = sun.jkernel
+LIBRARY = jkernel
+PRODUCT = sun
+
+include $(BUILDDIR)/common/Defs.gmk
+
+#
+# Use highest optimization level
+#
+_OPT = $(CC_HIGHEST_OPT)
+
+#
+# Java source files
+#
+include FILES_java.gmk
+AUTO_FILES_JAVA_DIRS = sun/jkernel
+
+LOCALE_SUFFIXES = $(JDK_LOCALES)
+
+#
+# Native source files
+#
+
+ifeq ($(ARCH_DATA_MODEL), 32) 
+
+ifeq ($(PLATFORM), windows)
+
+# If this is the VS Express compiler it will lack vc/atlmfc/
+ATL_MFC_DIR :=$(call DirExists,$(COMPILER_PATH)/../atlmfc,,)
+
+ifneq ($(ATL_MFC_DIR),)
+
+include FILES_c_windows.gmk
+
+vpath %.cpp   $(PLATFORM_SRC)/native/sun/jkernel
+
+
+VERSIONINFO_RESOURCE = $(PLATFORM_SRC)/native/sun/jkernel/kernel.rc
+
+LDLIBS += urlmon.lib wininet.lib shlwapi.lib version.lib comctl32.lib gdi32.lib -def:$(PLATFORM_SRC)/native/sun/jkernel/kernel.def
+
+include $(BUILDDIR)/common/Library.gmk
+
+endif
+
+endif
+
+endif
+
+#
+# Resources
+#
+include $(JDK_TOPDIR)/makefiles/common/internal/Resources.gmk
+
+#
+# Rules
+#
+include $(BUILDDIR)/common/Classes.gmk
+
+# If extra compression is going to be available in the deploy build enable 
+# its use here by defining the JRE-relative pathname of the shared library
+
+ifeq ($(PLATFORM), windows)
+  ifdef EXTRA_COMP_INSTALL_PATH
+    CPPFLAGS += -DEXTRA_COMP_INSTALL_PATH=$(EXTRA_COMP_INSTALL_PATH)
+  endif
+endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/lwawt/FILES_c_macosx.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,100 @@
+#
+# Copyright (c) 2011, 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.
+#
+
+FILES_objc = \
+        awt.m \
+        ApplicationDelegate.m \
+        CFRetainedResource.m \
+        CGLGraphicsConfig.m \
+        CGLSurfaceData.m \
+        CGLLayer.m \
+        CGraphicsConfig.m \
+        CGraphicsDevice.m \
+        CGraphicsEnv.m \
+        CCharToGlyphMapper.m \
+        CSystemColors.m \
+        AWTFont.m \
+        CGGlyphOutlines.m \
+        CGGlyphImages.m \
+        CoreTextSupport.m \
+        AWTStrike.m \
+        InitIDs.m \
+        AWTEvent.m \
+        AWTView.m \
+        AWTWindow.m \
+	AWTSurfaceLayers.m \
+        CCursorManager.m \
+        CClipboard.m \
+        CDataTransferer.m \
+        CDragSource.m \
+        CDragSourceContextPeer.m \
+        CDropTarget.m \
+        CDropTargetContextPeer.m \
+        CInputMethod.m \
+				CDesktopPeer.m \
+        OSVersion.m \
+        DnDUtilities.m \
+        CFileDialog.m \
+        CImage.m \
+        CMenu.m \
+        CMenuBar.m \
+        CMenuComponent.m \
+        CMenuItem.m \
+        CPopupMenu.m \
+        CRobot.m \
+        CTrayIcon.m \
+        CWrapper.m \
+        JavaAccessibilityAction.m \
+        JavaAccessibilityUtilities.m \
+        JavaComponentAccessibility.m \
+        JavaTextAccessibility.m \
+        LWCToolkit.m \
+        GeomUtilities.m \
+        CPrinterJob.m \
+        PrintModel.m \
+        PrinterSurfaceData.m \
+        PrinterView.m \
+        QuartzSurfaceData.m \
+        QuartzRenderer.m \
+        CTextPipe.m \
+        ImageSurfaceData.m \
+        awt_DrawingSurface.m
+
+FILES_c = \
+        OGLBlitLoops.c \
+        OGLBufImgOps.c \
+        OGLContext.c \
+        OGLFuncs.c \
+        OGLMaskBlit.c \
+        OGLMaskFill.c \
+        OGLPaints.c \
+        OGLRenderQueue.c \
+        OGLRenderer.c \
+        OGLSurfaceData.c \
+        OGLTextRenderer.c \
+        OGLVertexCache.c \
+        AccelGlyphCache.c \
+        CUPSfuncs.c
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/lwawt/FILES_export_macosx.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,279 @@
+#
+# Copyright (c) 2011, 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.
+#
+
+# FILES_export definitions for Mac OS X
+
+FILES_export = \
+        com/apple/eawt/Application.java \
+        com/apple/eawt/_AppDockIconHandler.java \
+        com/apple/eawt/_AppEventHandler.java \
+        com/apple/eawt/_AppEventLegacyHandler.java \
+        com/apple/eawt/_AppMenuBarHandler.java \
+        com/apple/eawt/_AppMiscHandlers.java \
+        com/apple/eawt/event/GestureHandler.java \
+        com/apple/eawt/FullScreenAdapter.java \
+        com/apple/eawt/FullScreenHandler.java \
+        com/apple/eawt/FullScreenListener.java \
+        com/apple/eawt/FullScreenUtilities.java \
+        sun/font/FontManager.java \
+        sun/awt/image/ImageRepresentation.java \
+        sun/awt/image/GifImageDecoder.java \
+        sun/awt/image/NativeLibLoader.java \
+        sun/java2d/CRenderer.java \
+        sun/java2d/CompositeCRenderer.java \
+        sun/java2d/DataBufferNIOInt.java \
+        sun/java2d/IntegerNIORaster.java \
+        sun/java2d/OSXSurfaceData.java \
+        sun/java2d/OSXOffScreenSurfaceData.java \
+        sun/java2d/loops/Blit.java \
+        sun/java2d/loops/BlitBg.java \
+        sun/java2d/loops/ScaledBlit.java \
+        sun/java2d/loops/TransformBlit.java \
+        sun/java2d/loops/FillRect.java \
+        sun/java2d/loops/FillSpans.java \
+        sun/java2d/loops/FillParallelogram.java \
+        sun/java2d/loops/DrawParallelogram.java \
+        sun/java2d/loops/DrawGlyphList.java \
+        sun/java2d/loops/DrawGlyphListAA.java \
+        sun/java2d/loops/DrawGlyphListLCD.java \
+        sun/java2d/loops/DrawLine.java \
+        sun/java2d/loops/DrawRect.java \
+        sun/java2d/loops/DrawPolygons.java \
+        sun/java2d/loops/DrawPath.java \
+        sun/java2d/loops/FillPath.java \
+        sun/java2d/loops/MaskBlit.java \
+        sun/java2d/loops/MaskFill.java \
+        sun/java2d/loops/TransformHelper.java \
+        sun/java2d/loops/GraphicsPrimitiveMgr.java \
+        sun/java2d/loops/GraphicsPrimitive.java \
+        sun/java2d/pipe/hw/AccelSurface.java \
+        sun/java2d/pipe/hw/AccelDeviceEventNotifier.java \
+        sun/java2d/pipe/hw/ContextCapabilities.java \
+        sun/awt/image/ImagingLib.java \
+        sun/java2d/SurfaceData.java \
+        sun/java2d/SunGraphics2D.java \
+        sun/awt/KeyboardFocusManagerPeerImpl.java \
+        sun/awt/image/BufImgSurfaceData.java \
+        sun/awt/image/DataBufferNative.java \
+        \
+        sun/awt/CGraphicsConfig.java \
+        sun/awt/CGraphicsDevice.java \
+        sun/awt/CGraphicsEnvironment.java \
+        sun/font/CCharToGlyphMapper.java \
+        sun/font/CFont.java \
+        sun/font/CFontConfiguration.java \
+        sun/font/CFontManager.java \
+        sun/font/CStrike.java \
+        sun/font/CStrikeDisposer.java \
+        sun/java2d/BackBufferCapsProvider.java \
+        sun/java2d/MacosxSurfaceManagerFactory.java \
+        sun/lwawt/LWButtonPeer.java \
+        sun/lwawt/LWCanvasPeer.java \
+        sun/lwawt/LWCheckboxPeer.java \
+        sun/lwawt/LWChoicePeer.java \
+        sun/lwawt/LWComponentPeer.java \
+        sun/lwawt/LWContainerPeer.java \
+        sun/lwawt/LWCursorManager.java \
+        sun/lwawt/LWKeyboardFocusManagerPeer.java \
+        sun/lwawt/LWLabelPeer.java \
+        sun/lwawt/LWListPeer.java \
+        sun/lwawt/LWMouseInfoPeer.java \
+        sun/lwawt/LWPanelPeer.java \
+        sun/lwawt/LWRepaintArea.java \
+        sun/lwawt/LWScrollBarPeer.java \
+        sun/lwawt/LWScrollPanePeer.java \
+        sun/lwawt/LWTextComponentPeer.java \
+        sun/lwawt/LWTextFieldPeer.java \
+        sun/lwawt/LWToolkit.java \
+        sun/lwawt/LWWindowPeer.java \
+        sun/lwawt/PlatformWindow.java \
+        sun/lwawt/SelectionClearListener.java \
+        sun/lwawt/macosx/CPrinterDevice.java \
+        sun/lwawt/macosx/CPrinterDialog.java \
+        sun/lwawt/macosx/CPrinterDialogPeer.java \
+        sun/lwawt/macosx/CPrinterGraphics.java \
+        sun/lwawt/macosx/CPrinterGraphicsConfig.java \
+        sun/lwawt/macosx/CPrinterJob.java \
+        sun/lwawt/macosx/CPrinterJobDialog.java \
+        sun/lwawt/macosx/CPrinterPageDialog.java \
+        sun/lwawt/macosx/CPrinterSurfaceData.java \
+        sun/lwawt/macosx/CTextPipe.java \
+        sun/lwawt/macosx/CDesktopPeer.java \
+        sun/java2d/CRenderer.java \
+        sun/lwawt/macosx/EventDispatchAccess.java \
+        sun/lwawt/macosx/NSPrintInfo.java \
+        sun/lwawt/macosx/CAccessibility.java \
+        sun/lwawt/macosx/CAccessible.java \
+        sun/lwawt/macosx/CFRetainedResource.java \
+        sun/lwawt/macosx/CCheckboxMenuItem.java \
+        sun/lwawt/macosx/CClipboard.java \
+        sun/lwawt/macosx/CDataTransferer.java \
+        sun/lwawt/macosx/CDragSourceContextPeer.java \
+        sun/lwawt/macosx/CMouseDragGestureRecognizer.java \
+        sun/lwawt/macosx/CDropTarget.java \
+        sun/lwawt/macosx/CDropTargetContextPeer.java \
+        sun/lwawt/macosx/CCursorManager.java \
+        sun/lwawt/macosx/CFileDialog.java \
+        sun/lwawt/macosx/CImage.java \
+        sun/lwawt/macosx/CMenu.java \
+        sun/lwawt/macosx/CMenuBar.java \
+        sun/lwawt/macosx/CMenuComponent.java \
+        sun/lwawt/macosx/CMenuItem.java \
+        sun/lwawt/macosx/CMouseInfoPeer.java \
+        sun/lwawt/macosx/CPlatformView.java \
+        sun/lwawt/macosx/CPlatformWindow.java \
+        sun/lwawt/macosx/CPlatformComponent.java \
+        sun/lwawt/macosx/CEmbeddedFrame.java \
+        sun/lwawt/macosx/CPlatformEmbeddedFrame.java \
+        sun/lwawt/macosx/CPlatformResponder.java \
+        sun/lwawt/macosx/CPopupMenu.java \
+        sun/lwawt/macosx/CRobot.java \
+        sun/lwawt/macosx/CSystemTray.java \
+        sun/lwawt/macosx/CTrayIcon.java \
+        sun/lwawt/macosx/CWrapper.java \
+        sun/lwawt/macosx/CocoaConstants.java \
+        sun/lwawt/macosx/LWCToolkit.java \
+        sun/lwawt/macosx/CInputMethod.java \
+        sun/lwawt/macosx/CInputMethodDescriptor.java \
+        sun/lwawt/macosx/event/NSEvent.java \
+        \
+        sun/awt/DebugSettings.java \
+        sun/awt/EmbeddedFrame.java \
+        sun/awt/PlatformFont.java \
+        sun/awt/FontDescriptor.java \
+        sun/awt/NativeLibLoader.java \
+        sun/awt/CharsetString.java \
+        sun/awt/SunHints.java \
+        sun/java2d/pipe/BufferedContext.java \
+        sun/java2d/pipe/BufferedMaskBlit.java \
+        sun/java2d/pipe/BufferedOpCodes.java \
+        sun/java2d/pipe/BufferedMaskBlit.java \
+        sun/java2d/pipe/BufferedPaints.java \
+        sun/java2d/pipe/BufferedRenderPipe.java \
+        sun/java2d/pipe/BufferedTextPipe.java \
+        sun/java2d/pipe/RenderBuffer.java \
+        sun/java2d/pipe/ShapeSpanIterator.java \
+        sun/java2d/pipe/SpanClipRenderer.java \
+        sun/java2d/pipe/RegionIterator.java \
+        sun/awt/image/IntegerComponentRaster.java \
+        sun/java2d/cmm/CMSManager.java \
+        sun/java2d/cmm/PCMM.java \
+        sun/java2d/cmm/ColorTransform.java \
+        sun/awt/datatransfer/DataTransferer.java \
+        sun/awt/dnd/SunDragSourceContextPeer.java \
+        sun/java2d/opengl/OGLBlitLoops.java \
+        sun/java2d/opengl/OGLContext.java \
+        sun/java2d/opengl/OGLMaskFill.java \
+        sun/java2d/opengl/OGLPaints.java \
+        sun/java2d/opengl/OGLRenderer.java \
+        sun/java2d/opengl/OGLRenderQueue.java \
+        sun/java2d/opengl/OGLSurfaceData.java \
+        sun/java2d/opengl/OGLTextRenderer.java \
+        sun/java2d/opengl/CGLGraphicsConfig.java \
+        sun/java2d/opengl/CGLSurfaceData.java \
+        sun/java2d/opengl/CGLLayer.java \
+        sun/awt/ExtendedKeyCodes.java 
+
+FILES_export2 = \
+        java/awt/AlphaComposite.java \
+        java/awt/MouseInfo.java \
+        java/awt/Cursor.java \
+        java/awt/Graphics.java \
+        java/awt/Color.java \
+        java/awt/Image.java \
+        java/awt/Rectangle.java \
+        java/awt/Event.java \
+        java/awt/Font.java \
+        java/awt/Insets.java \
+        java/awt/Point.java \
+        java/awt/FontMetrics.java \
+        java/awt/Toolkit.java \
+        java/awt/Component.java \
+        java/awt/Container.java \
+        java/awt/Canvas.java \
+        java/awt/Button.java \
+        java/awt/List.java \
+        java/awt/Adjustable.java \
+        java/awt/Scrollbar.java \
+        java/awt/ScrollPane.java \
+        java/awt/ScrollPaneAdjustable.java \
+        java/awt/Window.java \
+        java/awt/TextField.java \
+        java/awt/Label.java \
+        java/awt/Choice.java \
+        java/awt/TextArea.java \
+        java/awt/MenuBar.java \
+        java/awt/Menu.java \
+        java/awt/MenuComponent.java \
+        java/awt/PopupMenu.java \
+        java/awt/Dialog.java \
+        java/awt/FileDialog.java \
+        java/awt/MenuItem.java \
+        java/awt/Checkbox.java \
+        java/awt/CheckboxMenuItem.java \
+        java/awt/CheckboxGroup.java \
+        java/awt/Frame.java \
+        java/awt/Transparency.java \
+        java/awt/AWTException.java \
+        java/awt/AWTEvent.java \
+        java/awt/AWTKeyStroke.java \
+        java/awt/KeyboardFocusManager.java \
+        java/awt/Dimension.java \
+        java/awt/SystemColor.java \
+        java/awt/TrayIcon.java \
+        java/awt/DisplayMode.java \
+        java/awt/color/ColorSpace.java \
+        java/awt/color/ICC_Profile.java \
+        java/awt/geom/PathIterator.java \
+        java/awt/image/AffineTransformOp.java \
+        java/awt/image/ImageConsumer.java \
+        java/awt/image/ImageObserver.java \
+        java/awt/image/BufferedImage.java \
+        java/awt/image/ColorModel.java \
+        java/awt/image/ConvolveOp.java \
+        java/awt/image/DirectColorModel.java \
+        java/awt/image/IndexColorModel.java \
+        java/awt/image/DataBuffer.java \
+        java/awt/datatransfer/Transferable.java \
+        java/awt/datatransfer/DataFlavor.java \
+        java/awt/datatransfer/UnsupportedFlavorException.java \
+        java/awt/datatransfer/Clipboard.java \
+        java/awt/datatransfer/ClipboardOwner.java \
+        java/awt/datatransfer/StringSelection.java \
+        java/awt/event/AdjustmentEvent.java \
+        java/awt/event/KeyEvent.java \
+        java/awt/event/MouseEvent.java \
+        java/awt/event/MouseWheelEvent.java \
+        java/awt/event/FocusEvent.java \
+        java/awt/event/InputEvent.java \
+        java/awt/event/WindowEvent.java \
+        java/awt/event/NativeLibLoader.java \
+        java/awt/peer/ComponentPeer.java \
+        java/awt/dnd/DnDConstants.java \
+        sun/awt/CausedFocusEvent.java \
+        java/awt/print/PageFormat.java \
+        java/awt/print/Pageable.java \
+        java/awt/print/Printable.java \
+        java/awt/BasicStroke.java
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/lwawt/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,114 @@
+#
+# Copyright (c) 2011, 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.
+#
+
+BUILDDIR = ../..
+MODULE  = awt
+PACKAGE = sun.lwawt
+LIBRARY = awt_lwawt
+PRODUCT = sun
+
+LIB_LOCATION = $(LIBDIR)
+
+include $(BUILDDIR)/common/Defs.gmk
+
+#
+# Files
+#
+include FILES_c_macosx.gmk
+include FILES_export_macosx.gmk
+AUTO_FILES_JAVA_DIRS = sun/awt sun/font sun/lwawt sun/lwawt/macosx sun/java2d sun/java2d/opengl com/apple/eawt
+
+#
+# Rules.
+#
+# include $(BUILDDIR)/common/Mapfile-vers.gmk
+include $(BUILDDIR)/common/Library.gmk
+
+#
+# Add to the ambient vpath to pick up files in subdirectories
+#
+vpath %.c   $(SHARE_SRC)/native/sun/awt/debug
+vpath %.c   $(SHARE_SRC)/native/sun/awt/image
+vpath %.c   $(SHARE_SRC)/native/sun/awt/image/gif
+vpath %.c   $(SHARE_SRC)/native/sun/awt/image/cvutils
+vpath %.c   $(SHARE_SRC)/native/sun/awt/shell
+vpath %.c   $(SHARE_SRC)/native/sun/java2d
+vpath %.c   $(SHARE_SRC)/native/sun/java2d/loops
+vpath %.c   $(SHARE_SRC)/native/sun/java2d/pipe
+vpath %.c   $(SHARE_SRC)/native/sun/java2d/opengl
+vpath %.c   $(SHARE_SRC)/native/sun/awt/medialib
+vpath %.c   $(SHARE_SRC)/native/sun/awt/utility
+vpath %.c   $(SHARE_SRC)/native/sun/font
+vpath %.c   $(call NativeSrcDirList,,native/sun/awt)
+
+vpath %.cpp $(SHARE_SRC)/native/sun/image
+
+vpath %.m   $(call NativeSrcDirList,,native/sun/awt)
+vpath %.m   $(call NativeSrcDirList,,native/sun/font)
+vpath %.m   $(call NativeSrcDirList,,native/sun/java2d)
+vpath %.m   $(call NativeSrcDirList,,native/sun/java2d/opengl)
+
+OTHER_LDLIBS += \
+	-lawt -lmlib_image -losxapp $(JVMLIB) $(LIBM) \
+	-framework Accelerate \
+	-framework ApplicationServices \
+	-framework AudioToolbox \
+	-framework Carbon \
+	-framework Cocoa \
+	-framework Security \
+	-framework ExceptionHandling \
+	-framework JavaNativeFoundation \
+	-framework JavaRuntimeSupport \
+	-framework OpenGL \
+        -framework QuartzCore
+CPPFLAGS += \
+        -I$(CLASSHDRDIR) \
+        -I$(SHARE_SRC)/native/sun/awt/debug \
+        -I$(SHARE_SRC)/native/sun/awt/image/cvutils \
+        -I$(SHARE_SRC)/native/sun/java2d \
+	-I$(SHARE_SRC)/native/sun/java2d/loops \
+	-I$(SHARE_SRC)/native/sun/awt/image/cvutils \
+	-I$(SHARE_SRC)/native/sun/awt/image \
+	-I$(SHARE_SRC)/native/sun/font \
+	-I$(SHARE_SRC)/native/sun/java2d/pipe \
+	-I$(SHARE_SRC)/native/sun/java2d/opengl \
+	-I$(SHARE_SRC)/native/sun/dc/path \
+	-I$(SHARE_SRC)/native/sun/dc/doe \
+	-I$(SHARE_SRC)/native/sun/awt/alphacomposite \
+        -I$(SHARE_SRC)/native/sun/awt/medialib \
+        -I$(SHARE_SRC)/native/sun/awt \
+        $(call NativeSrcDirList,-I,/native/sun/awt) \
+        $(call NativeSrcDirList,-I,/native/sun/osxapp) \
+        $(call NativeSrcDirList,-I,/native/sun/font) \
+	$(call NativeSrcDirList,-I,/native/sun/java2d) \
+	$(call NativeSrcDirList,-I,/native/sun/java2d/opengl)
+
+ifeq ($(MILESTONE), internal)
+  CPPFLAGS += -DINTERNAL_BUILD
+endif
+
+clean clobber::
+
+.PHONY:
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/nio/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,38 @@
+#
+# Copyright (c) 2009, 2010, 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.
+#
+
+BUILDDIR = ../..
+PACKAGE = sun.nio
+PRODUCT = sun
+SUBDIRS_MAKEFLAGS += JAVAC_MAX_WARNINGS=true
+SUBDIRS_MAKEFLAGS += JAVAC_WARNINGS_FATAL=true
+include $(BUILDDIR)/common/Defs.gmk
+
+SUBDIRS = cs
+include $(BUILDDIR)/common/Subdirs.gmk
+
+all build clean clobber::
+	$(SUBDIRS-loop)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/nio/cs/FILES_java.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,133 @@
+#
+# Copyright (c) 2005, 2011, 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.
+#
+
+#
+# Character converters for lib/charsets.jar
+#
+# Core character converters are built from make/java/java.
+#
+
+FILES_gen_extcs = \
+	sun/nio/cs/ext/IBM037.java \
+	sun/nio/cs/ext/IBM1006.java \
+	sun/nio/cs/ext/IBM1025.java \
+	sun/nio/cs/ext/IBM1026.java \
+	sun/nio/cs/ext/IBM1046.java \
+	sun/nio/cs/ext/IBM1047.java \
+	sun/nio/cs/ext/IBM1097.java \
+	sun/nio/cs/ext/IBM1098.java \
+	sun/nio/cs/ext/IBM1112.java \
+	sun/nio/cs/ext/IBM1122.java \
+	sun/nio/cs/ext/IBM1123.java \
+	sun/nio/cs/ext/IBM1124.java \
+	sun/nio/cs/ext/IBM1140.java \
+	sun/nio/cs/ext/IBM1141.java \
+	sun/nio/cs/ext/IBM1142.java \
+	sun/nio/cs/ext/IBM1143.java \
+	sun/nio/cs/ext/IBM1144.java \
+	sun/nio/cs/ext/IBM1145.java \
+	sun/nio/cs/ext/IBM1146.java \
+	sun/nio/cs/ext/IBM1147.java \
+	sun/nio/cs/ext/IBM1148.java \
+	sun/nio/cs/ext/IBM1149.java \
+	sun/nio/cs/ext/IBM273.java \
+	sun/nio/cs/ext/IBM277.java \
+	sun/nio/cs/ext/IBM278.java \
+	sun/nio/cs/ext/IBM280.java \
+	sun/nio/cs/ext/IBM284.java \
+	sun/nio/cs/ext/IBM285.java \
+	sun/nio/cs/ext/IBM297.java \
+	sun/nio/cs/ext/IBM420.java \
+	sun/nio/cs/ext/IBM424.java \
+	sun/nio/cs/ext/IBM500.java \
+	sun/nio/cs/ext/IBM833.java \
+	sun/nio/cs/ext/IBM838.java \
+	sun/nio/cs/ext/IBM856.java \
+	sun/nio/cs/ext/IBM860.java \
+	sun/nio/cs/ext/IBM861.java \
+	sun/nio/cs/ext/IBM863.java \
+	sun/nio/cs/ext/IBM864.java \
+	sun/nio/cs/ext/IBM865.java \
+	sun/nio/cs/ext/IBM868.java \
+	sun/nio/cs/ext/IBM869.java \
+	sun/nio/cs/ext/IBM870.java \
+	sun/nio/cs/ext/IBM871.java \
+	sun/nio/cs/ext/IBM875.java \
+	sun/nio/cs/ext/IBM918.java \
+	sun/nio/cs/ext/IBM921.java \
+	sun/nio/cs/ext/IBM922.java \
+	sun/nio/cs/ext/ISO_8859_11.java \
+	sun/nio/cs/ext/ISO_8859_3.java \
+	sun/nio/cs/ext/ISO_8859_6.java \
+	sun/nio/cs/ext/ISO_8859_8.java \
+	sun/nio/cs/ext/MS1255.java \
+	sun/nio/cs/ext/MS1256.java \
+	sun/nio/cs/ext/MS1258.java \
+	sun/nio/cs/ext/MS874.java \
+	sun/nio/cs/ext/MacArabic.java \
+	sun/nio/cs/ext/MacCentralEurope.java \
+	sun/nio/cs/ext/MacCroatian.java \
+	sun/nio/cs/ext/MacCyrillic.java \
+	sun/nio/cs/ext/MacDingbat.java \
+	sun/nio/cs/ext/MacGreek.java \
+	sun/nio/cs/ext/MacHebrew.java \
+	sun/nio/cs/ext/MacIceland.java \
+	sun/nio/cs/ext/MacRoman.java \
+	sun/nio/cs/ext/MacRomania.java \
+	sun/nio/cs/ext/MacSymbol.java \
+	sun/nio/cs/ext/MacThai.java \
+	sun/nio/cs/ext/MacTurkish.java \
+	sun/nio/cs/ext/MacUkraine.java \
+	sun/nio/cs/ext/TIS_620.java \
+        sun/nio/cs/ext/EUC_TWMapping.java \
+        sun/nio/cs/ext/HKSCSMapping.java \
+        sun/nio/cs/ext/HKSCS2001Mapping.java \
+        sun/nio/cs/ext/HKSCS_XPMapping.java \
+	sun/nio/cs/ext/IBM1364.java \
+	sun/nio/cs/ext/IBM1381.java \
+	sun/nio/cs/ext/IBM1383.java \
+	sun/nio/cs/ext/IBM930.java \
+	sun/nio/cs/ext/IBM933.java \
+	sun/nio/cs/ext/IBM935.java \
+	sun/nio/cs/ext/IBM937.java \
+	sun/nio/cs/ext/IBM939.java \
+	sun/nio/cs/ext/IBM942.java \
+	sun/nio/cs/ext/IBM943.java \
+	sun/nio/cs/ext/IBM948.java \
+	sun/nio/cs/ext/IBM949.java \
+	sun/nio/cs/ext/IBM950.java \
+	sun/nio/cs/ext/IBM970.java \
+	sun/nio/cs/ext/EUC_CN.java \
+	sun/nio/cs/ext/EUC_KR.java \
+	sun/nio/cs/ext/Johab.java \
+	sun/nio/cs/ext/MS932.java \
+	sun/nio/cs/ext/MS936.java \
+	sun/nio/cs/ext/MS949.java \
+	sun/nio/cs/ext/MS950.java \
+	sun/nio/cs/ext/GBK.java   \
+	sun/nio/cs/ext/Big5.java
+
+FILES_java = $(FILES_src) $(FILES_gen_extcs)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/nio/cs/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,140 @@
+#
+# Copyright (c) 1996, 2011, 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.
+#
+
+#
+# Makefile for character converters.
+#
+
+BUILDDIR = ../../..
+
+# charsets should be separated from nio module 
+PACKAGE = sun.nio
+PRODUCT = sun
+
+# This re-directs all the class files to a separate location
+CLASSDESTDIR = $(TEMPDIR)/classes
+
+JAVAC_MAX_WARNINGS = false
+JAVAC_LINT_OPTIONS = -Xlint:all,-deprecation
+JAVAC_WARNINGS_FATAL = true
+include $(BUILDDIR)/common/Defs.gmk
+
+#
+# Files
+#
+include FILES_java.gmk
+AUTO_FILES_JAVA_DIRS = sun/nio/cs/ext
+
+# For Cygwin, command line arguments that are paths must be converted to
+# windows style paths. These paths cannot be used as targets, however, because 
+# the ":" in them  will interfere with GNU Make rules, generating "multiple
+# target pattern" errors.
+
+# this define is for the rule:
+CHARSETS_JAR = $(LIBDIR)/charsets.jar
+
+# extcs
+FILES_genout_extcs = $(FILES_gen_extcs:%.java=$(GENSRCDIR)/%.java)
+
+#
+# These sun.awt charsets use sun/nio/cs/ext charsets that only exist
+# in JDK7 charsets.jar, which causes problem when build the symbol
+# table for rt.jar in Release.gmk. They are now removed from the
+# rt.jar when building jdk/jre image (in Release.gmk), so add them
+# into charsets.jar here
+#
+ifeq ($(PLATFORM), windows)
+FILES_src += \
+	sun/awt/HKSCS.java
+else
+# Solaris/Linux
+FILES_src += \
+	sun/awt/HKSCS.java \
+	sun/awt/motif/X11GB2312.java \
+	sun/awt/motif/X11GBK.java \
+	sun/awt/motif/X11KSC5601.java
+endif # PLATFORM
+
+#
+# Rules
+#
+include $(BUILDDIR)/common/Classes.gmk
+
+build: $(FILES_genout_extcs) $(CHARSETS_JAR)
+
+#
+# Extra rules to build character converters.
+
+SERVICE_DESCRIPTION = java.nio.charset.spi.CharsetProvider
+SERVICE_DESCRIPTION_PATH = META-INF/services/$(SERVICE_DESCRIPTION)
+
+GENCSDATASRC = ../../../../make/tools/CharsetMapping
+GENCSSRCDIR = ../../../../make/tools/src/build/tools/charsetmapping
+GENCSEXT = $(GENSRCDIR)/sun/nio/cs/ext
+
+FILES_MAP = $(GENCSDATASRC)/sjis0213.map
+FILES_DAT = $(CLASSDESTDIR)/sun/nio/cs/ext/sjis0213.dat
+
+$(FILES_DAT): $(FILES_MAP)
+	@$(prep-target)
+	$(TOOL_CHARSETMAPPING) \
+		$(FILES_MAP) $(FILES_DAT) sjis0213
+
+
+$(FILES_genout_extcs): \
+                $(GENCSDATASRC)/SingleByte-X.java.template  \
+		$(GENCSDATASRC)/DoubleByte-X.java.template \
+		$(GENCSDATASRC)/extsbcs $(GENCSDATASRC)/dbcs
+	@$(prep-target)
+	$(RM) -r $(GENCSEXT)
+	$(MKDIR) -p $(GENCSEXT)
+	$(TOOL_CHARSETMAPPING) $(GENCSDATASRC) $(GENCSEXT) extsbcs
+	$(TOOL_CHARSETMAPPING) $(GENCSDATASRC) $(GENCSEXT) euctw \
+		$(GENCSSRCDIR)/EUC_TW.java
+	$(TOOL_CHARSETMAPPING) $(GENCSDATASRC) $(GENCSEXT) hkscs \
+		$(GENCSSRCDIR)/HKSCS.java
+	$(TOOL_CHARSETMAPPING) $(GENCSDATASRC) $(GENCSEXT) dbcs
+
+$(CLASSDESTDIR)/$(SERVICE_DESCRIPTION_PATH): \
+  $(SHARE_SRC)/classes/sun/nio/cs/ext/$(SERVICE_DESCRIPTION_PATH)
+	$(install-file)
+
+# no compression unless requested
+ifndef COMPRESS_JARS
+  CREATE_JAR_OPTS_NOMANIFEST = cf0
+else
+  CREATE_JAR_OPTS_NOMANIFEST = cf
+endif
+
+$(CHARSETS_JAR): $(FILES_class) $(CLASSDESTDIR)/$(SERVICE_DESCRIPTION_PATH) $(FILES_DAT)
+	$(BOOT_JAR_CMD) $(CREATE_JAR_OPTS_NOMANIFEST) $(CHARSETS_JAR) \
+	      -C $(CLASSDESTDIR) sun \
+	      -C $(CLASSDESTDIR) $(SERVICE_DESCRIPTION_PATH)  \
+	      $(BOOT_JAR_JFLAGS)
+	@$(java-vm-cleanup)
+
+clean::
+	$(RM) -r $(CLASSDESTDIR)
+	$(RM) $(CHARSETS_JAR)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/org/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,39 @@
+#
+# Copyright (c) 2005, 2010, 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.
+#
+
+#
+# Makefile for building Mozilla modules
+#
+
+BUILDDIR = ../..
+PRODUCT = org
+include $(BUILDDIR)/common/Defs.gmk
+
+SUBDIRS =  mozilla
+include $(BUILDDIR)/common/Subdirs.gmk
+
+all build clean clobber::
+	$(SUBDIRS-loop)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/org/mozilla/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,39 @@
+#
+# Copyright (c) 2005, 2010, 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.
+#
+
+#
+# Makefile for building Mozilla JavaScript modules
+#
+
+BUILDDIR = ../../..
+PRODUCT = org
+include $(BUILDDIR)/common/Defs.gmk
+
+SUBDIRS = javascript
+include $(BUILDDIR)/common/Subdirs.gmk
+
+all build clean clobber::
+	$(SUBDIRS-loop)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/org/mozilla/javascript/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,64 @@
+#
+# Copyright (c) 2005, 2011, 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.
+#
+
+#
+# Makefile for building all of sun.org.mozilla.javascript.internal.*
+#
+
+BUILDDIR = ../../../..
+PACKAGE = sun.org.mozilla.javascript.internal
+PRODUCT = sun
+include $(BUILDDIR)/common/Defs.gmk
+
+AUTO_FILES_JAVA_DIRS = sun/org/mozilla/javascript/internal
+
+RESOURCEDIR = \
+	$(CLASSDESTDIR)/sun/org/mozilla/javascript/internal/resources
+	
+FILES_copy = \
+	$(RESOURCEDIR)/Messages.properties \
+	$(RESOURCEDIR)/Messages_fr.properties
+
+#
+# Rules
+#
+
+include $(BUILDDIR)/common/Classes.gmk
+
+all: classes copy-files
+
+#
+# Copy resource messages file for Rhino JavaScript interpreter
+#
+
+copy-files: $(FILES_copy)
+
+$(RESOURCEDIR)/%: $(CLOSED_SRC)/share/classes/sun/org/mozilla/javascript/internal/resources/%
+	$(install-file)
+
+.PHONY: copy-files
+
+clean clobber::
+	$(RM) -rf $(CLASSDESTDIR)/sun/org/mozilla/javascript
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/osxapp/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,75 @@
+#
+# Copyright (c) 2011, 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.
+#
+
+BUILDDIR = ../..
+LIBRARY = osxapp
+PRODUCT = sun
+include $(BUILDDIR)/common/Defs.gmk
+
+#
+# Files
+#
+FILES_objc = \
+	NSApplicationAWT.m \
+	QueuingApplicationDelegate.m \
+	PropertiesUtilities.m \
+	ThreadUtilities.m
+
+#
+# Rules.
+#
+include $(BUILDDIR)/common/Library.gmk
+
+#
+# Add to the ambient vpath to pick up files in subdirectories
+#
+vpath %.m   $(call NativeSrcDirList,,native/sun/osxapp)
+
+# TODO: perhaps not all of the below frameworks are required
+OTHER_LDLIBS += \
+	-framework Accelerate \
+	-framework ApplicationServices \
+	-framework AudioToolbox \
+	-framework Carbon \
+	-framework Cocoa \
+	-framework Security \
+	-framework ExceptionHandling \
+	-framework JavaNativeFoundation \
+	-framework JavaRuntimeSupport \
+	-framework OpenGL \
+	-framework IOSurface \
+	-framework QuartzCore
+
+CPPFLAGS += \
+        $(call NativeSrcDirList,-I,/native/sun/osxapp)
+
+
+ifeq ($(MILESTONE), internal)
+  CPPFLAGS += -DINTERNAL_BUILD
+endif
+
+clean clobber::
+
+.PHONY:
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/security/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,82 @@
+#
+# Copyright (c) 1996, 2011, 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.
+#
+
+#
+# Build classes for security tools:
+#
+#		* keytool
+#		* jarsigner
+#		* policytool
+#
+# Also install wrappers for all of these.
+#
+
+BUILDDIR = ../..
+SUBDIRS_MAKEFLAGS += JAVAC_MAX_WARNINGS=true
+# Can't enable -Werror since krb5/Makefile implicitly compiles 
+# javax/security/auth/kerberos/ServicePermission.java, which contains
+# a fallthrough warning.
+#SUBDIRS_MAKEFLAGS += JAVAC_WARNINGS_FATAL=true
+include $(BUILDDIR)/common/Defs.gmk
+
+# build sun/security/jgss/wrapper on non-windows platform
+JGSS_WRAPPER =
+ifneq ($(PLATFORM), windows)
+    JGSS_WRAPPER = jgss/wrapper
+endif
+
+# Build PKCS#11 on all platforms except 64-bit Windows.
+# We exclude windows-amd64 because we don't have any
+# 64-bit PKCS#11 implementations to test with on that platform.
+PKCS11 = pkcs11
+ifeq ($(ARCH_DATA_MODEL), 64)
+  ifeq ($(PLATFORM), windows)
+    PKCS11 =
+  endif
+endif
+
+# Build Microsoft CryptoAPI provider only on Windows platform.
+MSCAPI =
+ifeq ($(PLATFORM), windows)
+  MSCAPI = mscapi
+endif
+
+# Build in-tree elliptic curve crypto provider only when
+# DISABLE_INTREE_EC is not set
+INTREE_EC = ec
+ifdef DISABLE_INTREE_EC
+  INTREE_EC =
+endif
+
+SUBDIRS       = $(INTREE_EC) other util krb5
+SUBDIRS_misc  = jgss $(PKCS11) $(JGSS_WRAPPER) $(MSCAPI) smartcardio
+SUBDIRS_tools = tools
+include $(BUILDDIR)/common/Subdirs.gmk
+
+all build clean clobber::
+	$(SUBDIRS-loop)
+
+clean::
+	$(RM) -r $(CLASSBINDIR)/sun/security
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/security/ec/FILES_c.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,54 @@
+#
+# Copyright (c) 2009, 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.
+#
+
+FILES_c = \
+	ec.c \
+	ec2_163.c \
+	ec2_193.c \
+	ec2_233.c \
+	ec2_aff.c \
+	ec2_mont.c \
+	ecdecode.c \
+	ecl.c \
+	ecl_curve.c \
+	ecl_gf.c \
+	ecl_mult.c \
+	ec_naf.c \
+	ecp_192.c \
+	ecp_224.c \
+	ecp_256.c \
+	ecp_384.c \
+	ecp_521.c \
+	ecp_aff.c \
+	ecp_jac.c \
+	ecp_jm.c \
+	ecp_mont.c \
+	mp_gf2m.c \
+	mpi.c \
+	mplogic.c \
+	mpmontg.c \
+	oid.c \
+	secitem.c
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/security/ec/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,332 @@
+#
+# Copyright (c) 2009, 2011, 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.
+#
+
+#
+# Makefile for building sunec.jar and sunec native library.
+#
+# This file was derived from make/com/sun/crypto/provider/Makefile.
+#
+
+#
+# (The terms "OpenJDK" and "JDK" below refer to OpenJDK and Sun JDK builds
+# respectively.)
+#
+# JCE builds are very different between OpenJDK and JDK.  The OpenJDK JCE
+# jar files do not require signing, but those for JDK do.  If an unsigned
+# jar file is installed into JDK, things will break when the crypto
+# routines are called.
+#
+# This Makefile does the "real" build of the JCE files.  For OpenJDK,
+# the jar files built here are installed directly into the OpenJDK.
+#
+# For JDK, the binaries use pre-built/pre-signed binary files stored in
+# the closed workspace that are not shipped in the OpenJDK workspaces.
+# We still build the JDK files here to verify the files compile, and in
+# preparation for possible signing.  Developers working on JCE in JDK
+# must sign the JCE files before testing.  The JCE signing key is kept
+# separate from the JDK workspace to prevent its disclosure.
+#
+# SPECIAL NOTE TO JCE/JDK developers:  The source files must eventually
+# be built, signed, and then the resulting jar files MUST BE CHECKED
+# INTO THE CLOSED PART OF THE WORKSPACE*.  This separate step *MUST NOT
+# BE FORGOTTEN*, otherwise a bug fixed in the source code will not be
+# reflected in the shipped binaries.  The "release" target should be
+# used to generate the required files.
+#
+# There are a number of targets to help both JDK/OpenJDK developers.
+#
+# Main Targets (JDK/OPENJDK):
+#
+#     all/clobber/clean		The usual, plus the native libraries.
+#				    If OpenJDK, installs sunec.jar.
+#				    If JDK, installs prebuilt
+#				    sunec.jar.
+#
+#     jar			Builds/installs sunec.jar
+#				    If OpenJDK, does not sign.
+#				    If JDK, tries to sign.
+#
+# Other lesser-used Targets (JDK/OPENJDK):
+#
+#     build-jar			Builds sunec.jar
+#				    (does not sign/install)
+#
+#     install-jar		Alias for "jar" above.
+#
+# Other targets (JDK only):
+#
+#     sign			Alias for sign-jar
+#	  sign-jar		Builds/signs sunec.jar (no install)
+#
+#     release			Builds all targets in preparation
+#				for workspace integration.
+#
+#     install-prebuilt		Installs the pre-built jar files
+#
+# This makefile was written to support parallel target execution.
+#
+
+BUILDDIR = ../../..
+PACKAGE = sun.security.ec
+PRODUCT = sun
+
+#
+# The following is for when we need to do postprocessing
+# (signing) against a read-only build.  If the OUTPUTDIR
+# isn't writable, the build currently crashes out.
+#
+ifndef OPENJDK
+  ifdef ALT_JCE_BUILD_DIR
+    # =====================================================
+    # Where to place the output, in case we're building from a read-only
+    # build area.  (e.g. a release engineering build.)
+    JCE_BUILD_DIR=${ALT_JCE_BUILD_DIR}
+    IGNORE_WRITABLE_OUTPUTDIR_TEST=true
+  else
+    JCE_BUILD_DIR=${TEMPDIR}
+  endif
+endif
+
+JAVAC_MAX_WARNINGS=false
+JAVAC_LINT_OPTIONS=-Xlint:all,-deprecation
+JAVAC_WARNINGS_FATAL=true
+include $(BUILDDIR)/common/Defs.gmk
+
+#
+# Location for the newly built classfiles.
+#
+CLASSDESTDIR = $(TEMPDIR)/classes
+
+#
+# Java files
+#
+AUTO_FILES_JAVA_DIRS = $(PKGDIR)
+
+#
+# Exclude the sources that get built by ../other/Makefile
+#
+AUTO_JAVA_PRUNE = \
+    ECKeyFactory.java \
+    ECParameters.java \
+    ECPrivateKeyImpl.java \
+    ECPublicKeyImpl.java \
+    NamedCurve.java
+
+#
+# Some licensees do not get the native ECC sources, but we still need to
+# be able to build "all" for them.  Check here to see if the sources are
+# available.  If not, then skip them.
+#
+
+NATIVE_ECC_AVAILABLE := $(shell \
+    if [ -d $(SHARE_SRC)/native/$(PKGDIR)/impl ] ; then \
+	$(ECHO) true; \
+    else \
+	$(ECHO) false; \
+    fi)
+
+ifeq ($(NATIVE_ECC_AVAILABLE), true)
+
+  LIBRARY = sunec
+
+  #
+  # Java files that define native methods
+  #
+  FILES_export = \
+      $(PKGDIR)/ECDHKeyAgreement.java \
+      $(PKGDIR)/ECDSASignature.java \
+      $(PKGDIR)/ECKeyPairGenerator.java
+
+  JAVAHFLAGS += -Xbootclasspath/p:$(CLASSDESTDIR)
+
+  #
+  # C and C++ files
+  #
+  include FILES_c.gmk
+
+  FILES_cpp = ECC_JNI.cpp
+
+  CPLUSPLUSLIBRARY=true
+
+  FILES_m = mapfile-vers
+
+  #
+  # Find native code
+  #
+  vpath %.cpp $(SHARE_SRC)/native/$(PKGDIR)
+
+  vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/impl
+
+  #
+  # Find include files
+  #
+  OTHER_INCLUDES += -I$(SHARE_SRC)/native/$(PKGDIR)/impl
+
+  #
+  # Compiler flags
+  #
+  OTHER_CFLAGS += -DMP_API_COMPATIBLE -DNSS_ECC_MORE_THAN_SUITE_B
+
+  #
+  # Libraries to link
+  #
+  ifneq ($(PLATFORM), windows)
+    OTHER_LDLIBS = $(LIBCXX)
+  endif
+
+  include $(BUILDDIR)/common/Mapfile-vers.gmk
+
+  include $(BUILDDIR)/common/Library.gmk
+
+else # NATIVE_ECC_AVAILABLE
+
+  include $(BUILDDIR)/common/Classes.gmk
+
+endif # NATIVE_ECC_AVAILABLE
+
+#
+# We use a variety of subdirectories in the $(TEMPDIR) depending on what
+# part of the build we're doing.  Both OPENJDK/JDK builds are initially
+# done in the unsigned area.  When files are signed in JDK,
+# they will be placed in the appropriate area.
+#
+UNSIGNED_DIR = $(TEMPDIR)/unsigned
+
+include $(BUILDDIR)/javax/crypto/Defs-jce.gmk
+
+#
+# Rules
+#
+
+ifdef OPENJDK
+all: build-jar install-jar
+else
+all: build-jar install-prebuilt
+	$(build-warning)
+endif
+
+
+# =====================================================
+# Build the unsigned sunec.jar file.
+#
+
+JAR_DESTFILE = $(EXTDIR)/sunec.jar
+
+#
+# Since the -C option to jar is used below, each directory entry must be
+# preceded with the appropriate directory to "cd" into.
+#
+JAR_DIRS = $(patsubst %, -C $(CLASSDESTDIR) %, $(AUTO_FILES_JAVA_DIRS))
+
+build-jar: $(UNSIGNED_DIR)/sunec.jar
+
+#
+# Build sunec.jar.
+#
+$(UNSIGNED_DIR)/sunec.jar: build
+	$(prep-target)
+	$(BOOT_JAR_CMD) cf $@ $(JAR_DIRS) \
+	    $(BOOT_JAR_JFLAGS)
+	@$(java-vm-cleanup)
+
+
+ifndef OPENJDK
+# =====================================================
+# Sign the provider jar file.  Not needed for OpenJDK.
+#
+
+SIGNED_DIR = $(JCE_BUILD_DIR)/signed
+
+sign: sign-jar
+
+sign-jar: $(SIGNED_DIR)/sunec.jar
+
+ifndef ALT_JCE_BUILD_DIR
+$(SIGNED_DIR)/sunec.jar: $(UNSIGNED_DIR)/sunec.jar
+else
+#
+# We have to remove the build dependency, otherwise, we'll try to rebuild it
+# which we can't do on a read-only filesystem.
+#
+$(SIGNED_DIR)/sunec.jar:
+	@if [ ! -r $(UNSIGNED_DIR)/sunec.jar ] ; then \
+	    $(ECHO) "Couldn't find $(UNSIGNED_DIR)/sunec.jar"; \
+	    exit 1; \
+	fi
+endif
+	$(call sign-file, $(UNSIGNED_DIR)/sunec.jar)
+
+
+# =====================================================
+# Create the Release Engineering files.  Signed builds, etc.
+#
+
+release: $(SIGNED_DIR)/sunec.jar
+	$(RM) $(JCE_BUILD_DIR)/release/sunec.jar
+	$(MKDIR) -p $(JCE_BUILD_DIR)/release
+	$(CP) $(SIGNED_DIR)/sunec.jar $(JCE_BUILD_DIR)/release
+	$(release-warning)
+
+endif # OPENJDK
+
+
+# =====================================================
+# Install routines.
+#
+
+#
+# Install sunec.jar, depending on which type is requested.
+#
+install-jar jar: $(JAR_DESTFILE)
+ifndef OPENJDK
+	$(release-warning)
+endif
+
+ifdef OPENJDK
+$(JAR_DESTFILE): $(UNSIGNED_DIR)/sunec.jar
+else
+$(JAR_DESTFILE): $(SIGNED_DIR)/sunec.jar
+endif
+	$(install-file)
+
+ifndef OPENJDK
+install-prebuilt:
+	@$(ECHO) "\n>>>Installing prebuilt SunEC provider..."
+	$(RM) $(JAR_DESTFILE)
+	$(CP) $(PREBUILT_DIR)/ec/sunec.jar $(JAR_DESTFILE)
+endif
+
+
+# =====================================================
+# Support routines.
+#
+
+clobber clean::
+	$(RM) -r $(JAR_DESTFILE) $(TEMPDIR) $(JCE_BUILD_DIR)
+
+.PHONY: build-jar jar install-jar
+ifndef OPENJDK
+.PHONY: sign sign-jar release install-prebuilt
+endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/security/ec/mapfile-vers	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,37 @@
+#
+# Copyright (c) 2009, 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.
+#
+
+# Define public interface.
+
+SUNWprivate_1.1 {
+        global:
+                Java_sun_security_ec_ECKeyPairGenerator_generateECKeyPair;
+                Java_sun_security_ec_ECKeyPairGenerator_getEncodedBytes;
+		Java_sun_security_ec_ECDSASignature_signDigest;
+		Java_sun_security_ec_ECDSASignature_verifySignedDigest;
+		Java_sun_security_ec_ECDHKeyAgreement_deriveKey;
+        local:
+                *;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/security/jgss/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,39 @@
+#
+# Copyright (c) 2000, 2005, 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.
+#
+
+BUILDDIR = ../../..
+PACKAGE = sun.security.jgss
+PRODUCT = sun
+include $(BUILDDIR)/common/Defs.gmk
+
+#
+# Files
+#
+AUTO_FILES_JAVA_DIRS = sun/security/jgss
+
+#
+# Rules
+#
+include $(BUILDDIR)/common/Classes.gmk
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/security/jgss/wrapper/FILES_c.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,29 @@
+#
+# Copyright (c) 2005, 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.
+#
+
+FILES_c = \
+	NativeUtil.c \
+	NativeFunc.c \
+	GSSLibStub.c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/security/jgss/wrapper/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,77 @@
+#
+# Copyright (c) 2005, 2011, 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.
+#
+
+BUILDDIR = ../../../..
+PACKAGE = sun.security.jgss.wrapper
+PRODUCT = sun
+
+LIBRARY = j2gss
+# Force name of temp directory (needed due to LIBRARY change below)
+LIBRARY_OUTPUT = j2gss
+
+include $(BUILDDIR)/common/Defs.gmk
+
+#
+# C and Java Files
+#
+include FILES_c.gmk
+
+AUTO_FILES_JAVA_DIRS = sun/security/jgss/wrapper
+
+#
+# Java files that define native methods
+#
+FILES_export = \
+    sun/security/jgss/wrapper/GSSLibStub.java
+
+#
+# Find native code
+#
+vpath %.c \
+  $(SHARE_SRC)/native/sun/security/jgss/wrapper \
+  $(PLATFORM_SRC)/native/sun/security/jgss/wrapper
+
+#
+# Find include files
+#
+OTHER_INCLUDES += \
+  -I$(SHARE_SRC)/native/sun/security/jgss/wrapper \
+  -I$(PLATFORM_SRC)/native/sun/security/jgss/wrapper
+
+#
+# Rules
+#
+#FILES_class = $(FILES_java:%.java=$(CLASSDESTDIR)/%.class)
+
+include $(BUILDDIR)/common/Mapfile-vers.gmk
+include $(BUILDDIR)/common/Library.gmk
+
+#
+# Libraries to link
+#
+ifneq ($(PLATFORM), windows)
+  OTHER_LDLIBS = $(LIBDL)
+endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/security/jgss/wrapper/mapfile-vers	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,63 @@
+#
+# Copyright (c) 2005, 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.
+#
+
+# Define public interface.
+
+SUNWprivate_1.1 {
+	global:
+		JNI_OnLoad;
+		JNI_OnUnload;
+		Java_sun_security_jgss_wrapper_GSSLibStub_releaseName;
+		Java_sun_security_jgss_wrapper_GSSLibStub_importName;
+		Java_sun_security_jgss_wrapper_GSSLibStub_compareName;
+		Java_sun_security_jgss_wrapper_GSSLibStub_canonicalizeName;
+		Java_sun_security_jgss_wrapper_GSSLibStub_exportName;
+		Java_sun_security_jgss_wrapper_GSSLibStub_displayName;
+		Java_sun_security_jgss_wrapper_GSSLibStub_acquireCred;
+		Java_sun_security_jgss_wrapper_GSSLibStub_releaseCred;
+		Java_sun_security_jgss_wrapper_GSSLibStub_getCredName;
+		Java_sun_security_jgss_wrapper_GSSLibStub_getCredTime;
+		Java_sun_security_jgss_wrapper_GSSLibStub_getCredUsage;
+		Java_sun_security_jgss_wrapper_GSSLibStub_importContext;
+		Java_sun_security_jgss_wrapper_GSSLibStub_initContext;
+		Java_sun_security_jgss_wrapper_GSSLibStub_acceptContext;
+		Java_sun_security_jgss_wrapper_GSSLibStub_getContextName;
+		Java_sun_security_jgss_wrapper_GSSLibStub_getContextMech;
+		Java_sun_security_jgss_wrapper_GSSLibStub_inquireContext;
+		Java_sun_security_jgss_wrapper_GSSLibStub_deleteContext;
+		Java_sun_security_jgss_wrapper_GSSLibStub_getContextTime;
+		Java_sun_security_jgss_wrapper_GSSLibStub_wrapSizeLimit;
+		Java_sun_security_jgss_wrapper_GSSLibStub_exportContext;
+		Java_sun_security_jgss_wrapper_GSSLibStub_getMic;
+		Java_sun_security_jgss_wrapper_GSSLibStub_verifyMic;
+		Java_sun_security_jgss_wrapper_GSSLibStub_wrap;
+		Java_sun_security_jgss_wrapper_GSSLibStub_unwrap;
+		Java_sun_security_jgss_wrapper_GSSLibStub_indicateMechs;
+		Java_sun_security_jgss_wrapper_GSSLibStub_inquireNamesForMech;
+		Java_sun_security_jgss_wrapper_GSSLibStub_init;
+		Java_sun_security_jgss_wrapper_GSSLibStub_getMechPtr;
+	local:
+		*;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/security/krb5/FILES_c_windows.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,28 @@
+#
+# Copyright (c) 2007, 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.
+#
+
+FILES_c = \
+	NativeCreds.c \
+	WindowsDirectory.c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/security/krb5/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,90 @@
+#
+# Copyright (c) 2007, 2011, 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.
+#
+
+BUILDDIR = ../../..
+PACKAGE = sun.security.krb5
+PRODUCT = sun
+include $(BUILDDIR)/common/Defs.gmk
+
+#
+# Java Files
+#
+AUTO_FILES_JAVA_DIRS = sun/security/krb5
+
+ifeq ($(PLATFORM), macosx)
+FILES_export = sun/security/krb5/Credentials.java
+FILES_c = nativeccache.c
+LIBRARY = osxkrb5
+endif # PLATFORM
+
+ifeq ($(PLATFORM), windows)
+#
+# Java files that define native methods
+#
+FILES_export = \
+	sun/security/krb5/Credentials.java \
+	sun/security/krb5/Config.java
+include FILES_c_windows.gmk
+# We need some extra libs for win32
+LIBRARY = w2k_lsa_auth
+EXTRA_LIBS += Secur32.lib netapi32.lib\
+ kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
+ advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\
+ odbccp32.lib wsock32.lib
+endif # PLATFORM
+
+#
+# Find native code
+#
+ifeq ($PLATFORM), macosx)
+  vpath %.c $(call NativeSrcDirList,,native/sun/security/krb5)
+else
+  vpath %.c \
+    $(PLATFORM_SRC)/native/sun/security/krb5
+endif
+
+JGSS_NATIVE_SRC=$(PLATFORM_SRC)/native/sun/security/krb5
+JGSS_NATIVE_DIR_EXISTS := $(shell if [ -d $(JGSS_NATIVE_SRC) ] ; then echo true; else echo false; fi)
+
+#
+# Rules
+#
+ifeq ($(PLATFORM), windows)
+  ifeq ($(JGSS_NATIVE_DIR_EXISTS), true)
+    include $(BUILDDIR)/common/Library.gmk
+  endif
+else ifeq ($(PLATFORM), macosx)
+  include $(BUILDDIR)/common/Library.gmk
+else
+include $(BUILDDIR)/common/Classes.gmk
+endif # PLATFORM
+
+ifneq ($(PLATFORM), windows)
+  ifeq ($(PLATFORM), macosx)
+    OTHER_LDLIBS = $(LIBDL) -framework Kerberos
+  else
+    OTHER_LDLIBS = $(LIBDL)
+  endif
+endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/security/mscapi/FILES_cpp.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,28 @@
+#
+# Copyright (c) 2005, 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.
+#
+
+FILES_cpp = \
+	security.cpp
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/security/mscapi/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,295 @@
+#
+# Copyright (c) 2005, 2011, 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.
+#
+
+#
+# Makefile for building sunmscapi.jar and native libraries.
+#
+# This file was derived from make/com/sun/crypto/provider/Makefile.
+#
+
+#
+# (The terms "OpenJDK" and "JDK" below refer to OpenJDK and Sun JDK builds
+# respectively.)
+#
+# JCE builds are very different between OpenJDK and JDK.  The OpenJDK JCE
+# jar files do not require signing, but those for JDK do.  If an unsigned
+# jar file is installed into JDK, things will break when the crypto
+# routines are called.
+#
+# This Makefile does the "real" build of the JCE files.  For OpenJDK,
+# the jar files built here are installed directly into the OpenJDK.
+#
+# For JDK, the binaries use pre-built/pre-signed binary files stored in
+# the closed workspace that are not shipped in the OpenJDK workspaces.
+# We still build the JDK files here to verify the files compile, and in
+# preparation for possible signing.  Developers working on JCE in JDK
+# must sign the JCE files before testing.  The JCE signing key is kept
+# separate from the JDK workspace to prevent its disclosure.
+#
+# SPECIAL NOTE TO JCE/JDK developers:  The source files must eventually
+# be built, signed, and then the resulting jar files MUST BE CHECKED
+# INTO THE CLOSED PART OF THE WORKSPACE*.  This separate step *MUST NOT
+# BE FORGOTTEN*, otherwise a bug fixed in the source code will not be
+# reflected in the shipped binaries.  The "release" target should be
+# used to generate the required files.
+#
+# There are a number of targets to help both JDK/OpenJDK developers.
+#
+# Main Targets (JDK/OPENJDK):
+#
+#     all/clobber/clean        The usual, plus the native libraries.
+#                                  If OpenJDK, installs sunmscapi.jar.
+#                                  If JDK, installs prebuilt
+#                                      sunmscapi.jar.
+#
+#     jar                      Builds/installs sunmscapi.jar
+#                                  If OpenJDK, does not sign.
+#                                  If JDK, tries to sign.
+#
+# Other lesser-used Targets (JDK/OPENJDK):
+#
+#     build-jar                Builds sunmscapi.jar
+#                                  (does not sign/install)
+#
+#     install-jar              Alias for "jar" above.
+#
+# Other targets (JDK only):
+#
+#     sign                     Alias for sign-jar
+#          sign-jar            Builds/signs sunmscapi.jar (no install)
+#
+#     release                  Builds all targets in preparation
+#                              for workspace integration.
+#
+#     install-prebuilt         Installs the pre-built jar files
+#
+# This makefile was written to support parallel target execution.
+#
+
+BUILDDIR = ../../..
+PACKAGE = sun.security.mscapi
+LIBRARY = sunmscapi
+PRODUCT = sun
+
+#
+# The following is for when we need to do postprocessing
+# (signing/obfuscation) against a read-only build.  If the OUTPUTDIR
+# isn't writable, the build currently crashes out.
+#
+ifndef OPENJDK
+  ifdef ALT_JCE_BUILD_DIR
+    # =====================================================
+    # Where to place the output, in case we're building from a read-only
+    # build area.  (e.g. a release engineering build.)
+    JCE_BUILD_DIR=${ALT_JCE_BUILD_DIR}
+    IGNORE_WRITABLE_OUTPUTDIR_TEST=true
+  else
+    JCE_BUILD_DIR=${TEMPDIR}
+  endif
+endif
+
+include $(BUILDDIR)/common/Defs.gmk
+
+CPLUSPLUSLIBRARY=true
+
+#
+# C++ and Java Files
+#
+include FILES_cpp.gmk
+
+AUTO_FILES_JAVA_DIRS = sun/security/mscapi
+
+#
+# Java files that define native methods
+#
+FILES_export = \
+    sun/security/mscapi/KeyStore.java \
+    sun/security/mscapi/Key.java \
+    sun/security/mscapi/PRNG.java \
+    sun/security/mscapi/RSACipher.java \
+    sun/security/mscapi/RSAPublicKey.java \
+    sun/security/mscapi/RSASignature.java \
+    sun/security/mscapi/RSAKeyPairGenerator.java
+
+#
+# Find native code
+#
+vpath %.cpp \
+  $(PLATFORM_SRC)/native/sun/security/mscapi
+
+#
+# Find include files
+#
+OTHER_INCLUDES += \
+  -I$(PLATFORM_SRC)/native/sun/security/mscapi
+
+#
+# Rules
+#
+CLASSDESTDIR = $(TEMPDIR)/classes
+JAVAHFLAGS += -Xbootclasspath/p:$(CLASSDESTDIR)
+
+include $(BUILDDIR)/common/Mapfile-vers.gmk
+
+include $(BUILDDIR)/common/Library.gmk
+
+#
+# Libraries to link
+#
+ifeq ($(PLATFORM), windows)
+  OTHER_LDLIBS += Crypt32.Lib
+endif
+
+#
+# We use a variety of subdirectories in the $(TEMPDIR) depending on what
+# part of the build we're doing.  Both OPENJDK/JDK builds are initially
+# done in the unsigned area.  When files are signed in JDK,
+# they will be placed in the appropriate area.
+#
+UNSIGNED_DIR = $(TEMPDIR)/unsigned
+
+#
+# Rules
+#
+
+ifdef OPENJDK
+all: build-jar install-jar
+else
+all: build-jar install-prebuilt
+	$(build-warning)
+endif
+
+include $(BUILDDIR)/javax/crypto/Defs-jce.gmk
+
+
+# =====================================================
+# Build the unsigned sunmscapi.jar file.
+#
+
+JAR_DESTFILE = $(EXTDIR)/sunmscapi.jar
+
+#
+# The sunmscapi.jar needs to be in the extension class directory,
+# therefore none of its classes can appear in $(CLASSBINDIR).
+# Currently no one is using any of the MSCAPI internals, so these files
+# should not have been built.
+#
+
+#
+# Since the -C option to jar is used below, each directory entry must be
+# preceded with the appropriate directory to "cd" into.
+#
+JAR_DIRS = $(patsubst %, -C $(CLASSDESTDIR) %, $(AUTO_FILES_JAVA_DIRS))
+
+build-jar: $(UNSIGNED_DIR)/sunmscapi.jar
+
+#
+# Build sunmscapi.jar.
+#
+$(UNSIGNED_DIR)/sunmscapi.jar: build
+	$(prep-target)
+	$(BOOT_JAR_CMD) cf $@ $(JAR_DIRS) \
+	    $(BOOT_JAR_JFLAGS)
+	@$(java-vm-cleanup)
+
+
+ifndef OPENJDK
+# =====================================================
+# Sign the provider jar file.  Not needed for OpenJDK.
+#
+
+SIGNED_DIR = $(JCE_BUILD_DIR)/signed
+
+sign: sign-jar
+
+sign-jar: $(SIGNED_DIR)/sunmscapi.jar
+
+ifndef ALT_JCE_BUILD_DIR
+$(SIGNED_DIR)/sunmscapi.jar: $(UNSIGNED_DIR)/sunmscapi.jar
+else
+#
+# We have to remove the build dependency, otherwise, we'll try to rebuild it
+# which we can't do on a read-only filesystem.
+#
+$(SIGNED_DIR)/sunmscapi.jar:
+	@if [ ! -r $(UNSIGNED_DIR)/sunmscapi.jar ] ; then \
+	    $(ECHO) "Couldn't find $(UNSIGNED_DIR)/sunmscapi.jar"; \
+	    exit 1; \
+	fi
+endif
+	$(call sign-file, $(UNSIGNED_DIR)/sunmscapi.jar)
+
+
+# =====================================================
+# Create the Release Engineering files.  Signed builds, etc.
+#
+
+release: $(SIGNED_DIR)/sunmscapi.jar
+	$(RM) $(JCE_BUILD_DIR)/release/sunmscapi.jar
+	$(MKDIR) -p $(JCE_BUILD_DIR)/release
+	$(CP) $(SIGNED_DIR)/sunmscapi.jar $(JCE_BUILD_DIR)/release
+	$(release-warning)
+
+endif # OPENJDK
+
+
+# =====================================================
+# Install routines.
+#
+
+#
+# Install sunmscapi.jar, depending on which type is requested.
+#
+install-jar jar: $(JAR_DESTFILE)
+ifndef OPENJDK
+	$(release-warning)
+endif
+
+ifdef OPENJDK
+$(JAR_DESTFILE): $(UNSIGNED_DIR)/sunmscapi.jar
+else
+$(JAR_DESTFILE): $(SIGNED_DIR)/sunmscapi.jar
+endif
+	$(install-file)
+
+ifndef OPENJDK
+install-prebuilt:
+	@$(ECHO) "\n>>>Installing prebuilt SunMSCAPI provider..."
+	$(RM) $(JAR_DESTFILE)
+	$(CP) $(PREBUILT_DIR)/mscapi/sunmscapi.jar $(JAR_DESTFILE)
+endif
+
+
+# =====================================================
+# Support routines.
+#
+
+clobber clean::
+	$(RM) -r $(JAR_DESTFILE) $(TEMPDIR) $(JCE_BUILD_DIR)
+
+.PHONY: build-jar jar install-jar
+ifndef OPENJDK
+.PHONY: sign sign-jar release install-prebuilt
+endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/security/other/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,65 @@
+#
+# Copyright (c) 1996, 2009, 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.
+#
+
+BUILDDIR = ../../..
+PACKAGE = sun.security.other
+PRODUCT = sun
+JAVAC_MAX_WARNINGS=true
+JAVAC_LINT_OPTIONS=-Xlint:all,-deprecation
+JAVAC_WARNINGS_FATAL=true
+include $(BUILDDIR)/common/Defs.gmk
+
+#
+# Files
+#
+AUTO_FILES_JAVA_DIRS = \
+    sun/security/acl \
+    sun/security/jca \
+    sun/security/pkcs \
+    sun/security/pkcs10 \
+    sun/security/pkcs12 \
+    sun/security/provider \
+    sun/security/rsa \
+    sun/security/ssl \
+    sun/security/ssl/krb5 \
+    sun/security/timestamp \
+    sun/security/validator \
+    sun/security/x509 \
+    com/sun/net/ssl/internal/ssl
+
+#
+# EC classes used by the packages above
+#
+FILES_java += \
+    sun/security/ec/ECKeyFactory.java \
+    sun/security/ec/ECParameters.java \
+    sun/security/ec/ECPrivateKeyImpl.java \
+    sun/security/ec/ECPublicKeyImpl.java \
+    sun/security/ec/NamedCurve.java
+
+#
+# Rules
+#
+include $(BUILDDIR)/common/Classes.gmk
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/security/pkcs11/FILES_c.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,41 @@
+#
+# Copyright (c) 2003, 2007, 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.
+#
+
+FILES_c = \
+	j2secmod.c \
+	j2secmod_md.c \
+	p11_convert.c \
+	p11_crypt.c \
+	p11_digest.c \
+	p11_dual.c \
+	p11_general.c \
+	p11_keymgmt.c \
+	p11_mutex.c \
+	p11_objmgmt.c \
+	p11_sessmgmt.c \
+	p11_sign.c \
+	p11_util.c \
+	p11_md.c
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/security/pkcs11/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,312 @@
+#
+# Copyright (c) 2003, 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.
+#
+
+#
+# Makefile for building sunpkcs11.jar and native libraries.
+#
+# This file was derived from make/com/sun/crypto/provider/Makefile.
+#
+
+#
+# (The terms "OpenJDK" and "JDK" below refer to OpenJDK and Sun JDK builds
+# respectively.)
+#
+# JCE builds are very different between OpenJDK and JDK.  The OpenJDK JCE
+# jar files do not require signing, but those for JDK do.  If an unsigned
+# jar file is installed into JDK, things will break when the crypto
+# routines are called.
+#
+# This Makefile does the "real" build of the JCE files.  For OpenJDK,
+# the jar files built here are installed directly into the OpenJDK.
+#
+# For JDK, the binaries use pre-built/pre-signed binary files stored in
+# the closed workspace that are not shipped in the OpenJDK workspaces.
+# We still build the JDK files here to verify the files compile, and in
+# preparation for possible signing.  Developers working on JCE in JDK
+# must sign the JCE files before testing.  The JCE signing key is kept
+# separate from the JDK workspace to prevent its disclosure.
+#
+# SPECIAL NOTE TO JCE/JDK developers:  The source files must eventually
+# be built, signed, and then the resulting jar files MUST BE CHECKED
+# INTO THE CLOSED PART OF THE WORKSPACE*.  This separate step *MUST NOT
+# BE FORGOTTEN*, otherwise a bug fixed in the source code will not be
+# reflected in the shipped binaries.  The "release" target should be
+# used to generate the required files.
+#
+# There are a number of targets to help both JDK/OpenJDK developers.
+#
+# Main Targets (JDK/OPENJDK):
+#
+#     all/clobber/clean        The usual, plus the native libraries.
+#                                  If OpenJDK, installs sunpkcs11.jar.
+#                                  If JDK, installs prebuilt
+#                                      sunpkcs11.jar.
+#
+#     jar                      Builds/installs sunpkcs11.jar
+#                                  If OpenJDK, does not sign.
+#                                  If JDK, tries to sign.
+#
+# Other lesser-used Targets (JDK/OPENJDK):
+#
+#     build-jar                Builds sunpkcs11.jar
+#                                  (does not sign/install)
+#
+#     install-jar              Alias for "jar" above.
+#
+# Other targets (JDK only):
+#
+#     sign                     Alias for sign-jar
+#          sign-jar            Builds/signs sunpkcs11.jar (no install)
+#
+#     release                  Builds all targets in preparation
+#                              for workspace integration.
+#
+#     install-prebuilt         Installs the pre-built jar files
+#
+# This makefile was written to support parallel target execution.
+#
+
+BUILDDIR = ../../..
+PACKAGE = sun.security.pkcs11
+LIBRARY = j2pkcs11
+PRODUCT = sun
+
+#
+# The following is for when we need to do postprocessing
+# (signing/obfuscation) against a read-only build.  If the OUTPUTDIR
+# isn't writable, the build currently crashes out.
+#
+ifndef OPENJDK
+  ifdef ALT_JCE_BUILD_DIR
+    # =====================================================
+    # Where to place the output, in case we're building from a read-only
+    # build area.  (e.g. a release engineering build.)
+    JCE_BUILD_DIR=${ALT_JCE_BUILD_DIR}
+    IGNORE_WRITABLE_OUTPUTDIR_TEST=true
+  else
+    JCE_BUILD_DIR=${TEMPDIR}
+  endif
+endif
+
+JAVAC_MAX_WARNINGS=false
+JAVAC_LINT_OPTIONS=-Xlint:all,-deprecation
+JAVAC_WARNINGS_FATAL=true
+include $(BUILDDIR)/common/Defs.gmk
+
+#
+# C and Java Files
+#
+include FILES_c.gmk
+
+#
+# Subdirectories of these are automatically included.
+#
+AUTO_FILES_JAVA_DIRS = sun/security/pkcs11
+
+#
+# Java files that define native methods
+#
+FILES_export = \
+    sun/security/pkcs11/wrapper/PKCS11.java \
+    sun/security/pkcs11/Secmod.java
+
+#
+# Find native code
+#
+vpath %.c \
+  $(SHARE_SRC)/native/sun/security/pkcs11/wrapper \
+  $(PLATFORM_SRC)/native/sun/security/pkcs11/wrapper \
+
+#
+# Find include files
+#
+OTHER_INCLUDES += \
+  -I$(SHARE_SRC)/native/sun/security/pkcs11/wrapper \
+  -I$(PLATFORM_SRC)/native/sun/security/pkcs11/wrapper
+
+#
+# Rules
+#
+CLASSDESTDIR = $(TEMPDIR)/classes
+JAVAHFLAGS = -bootclasspath "$(CLASSDESTDIR)$(CLASSPATH_SEPARATOR)$(CLASSBINDIR)"
+
+include $(BUILDDIR)/common/Mapfile-vers.gmk
+
+include $(BUILDDIR)/common/Library.gmk
+
+#
+# Libraries to link
+#
+ifneq ($(PLATFORM), windows)
+  OTHER_LDLIBS = $(LIBDL)
+endif
+
+# Other config files
+SUNPKCS11_CFG   =
+
+ifeq ($(PLATFORM), solaris)
+#SUNPKCS11_CFG   = sunpkcs11-cfg
+endif # PLATFORM
+
+SUNPKCS11_CFG_SRC   = $(TOPDIR)/src/share/lib/security/sunpkcs11-solaris.cfg
+SUNPKCS11_CFG_BUILD = $(LIBDIR)/security/sunpkcs11-solaris.cfg
+
+#
+# We use a variety of subdirectories in the $(TEMPDIR) depending on what
+# part of the build we're doing.  Both OPENJDK/JDK builds are initially
+# done in the unsigned area.  When files are signed in JDK,
+# they will be placed in the appropriate area.
+#
+UNSIGNED_DIR = $(TEMPDIR)/unsigned
+
+#
+# Rules
+#
+
+ifdef OPENJDK
+all: $(SUNPKCS11_CFG) build-jar install-jar
+else
+all: $(SUNPKCS11_CFG) build-jar install-prebuilt
+	$(build-warning)
+endif
+
+sunpkcs11-cfg: $(SUNPKCS11_CFG_BUILD)
+
+$(SUNPKCS11_CFG_BUILD): $(SUNPKCS11_CFG_SRC)
+	$(install-file)
+
+include $(BUILDDIR)/javax/crypto/Defs-jce.gmk
+
+
+# =====================================================
+# Build the unsigned sunpkcs11.jar file.
+#
+
+JAR_DESTFILE = $(EXTDIR)/sunpkcs11.jar
+
+#
+# The sunpkcs11.jar needs to be in the extension class directory,
+# therefore none of its classes can appear in $(CLASSBINDIR). 
+# Currently no one is using any of the PKCS11 internals, so these files
+# should not have been built.
+#
+
+#
+# Since the -C option to jar is used below, each directory entry must be
+# preceded with the appropriate directory to "cd" into.
+#
+JAR_DIRS = $(patsubst %, -C $(CLASSDESTDIR) %, $(AUTO_FILES_JAVA_DIRS))
+
+build-jar: $(UNSIGNED_DIR)/sunpkcs11.jar
+
+#
+# Build sunpkcs11.jar.
+#
+$(UNSIGNED_DIR)/sunpkcs11.jar: build
+	$(prep-target)
+	$(BOOT_JAR_CMD) cf $@ $(JAR_DIRS) \
+	    $(BOOT_JAR_JFLAGS)
+	@$(java-vm-cleanup)
+
+
+ifndef OPENJDK
+# =====================================================
+# Sign the provider jar file.  Not needed for OpenJDK.
+#
+
+SIGNED_DIR = $(JCE_BUILD_DIR)/signed
+
+sign: sign-jar
+
+sign-jar: $(SIGNED_DIR)/sunpkcs11.jar
+
+ifndef ALT_JCE_BUILD_DIR
+$(SIGNED_DIR)/sunpkcs11.jar: $(UNSIGNED_DIR)/sunpkcs11.jar
+else
+#
+# We have to remove the build dependency, otherwise, we'll try to rebuild it
+# which we can't do on a read-only filesystem.
+#
+$(SIGNED_DIR)/sunpkcs11.jar:
+	@if [ ! -r $(UNSIGNED_DIR)/sunpkcs11.jar ] ; then \
+            $(ECHO) "Couldn't find $(UNSIGNED_DIR)/sunpkcs11.jar"; \
+            exit 1; \
+        fi
+endif
+	$(call sign-file, $(UNSIGNED_DIR)/sunpkcs11.jar)
+
+
+# =====================================================
+# Create the Release Engineering files.  Signed builds, etc.
+#
+
+release: $(SIGNED_DIR)/sunpkcs11.jar
+	$(RM) $(JCE_BUILD_DIR)/release/sunpkcs11.jar
+	$(MKDIR) -p $(JCE_BUILD_DIR)/release
+	$(CP) $(SIGNED_DIR)/sunpkcs11.jar $(JCE_BUILD_DIR)/release
+	$(release-warning)
+
+endif # OPENJDK
+
+
+# =====================================================
+# Install routines.
+#
+
+#
+# Install sunpkcs11.jar, depending on which type is requested.
+#
+install-jar jar: $(JAR_DESTFILE)
+ifndef OPENJDK
+	$(release-warning)
+endif
+
+ifdef OPENJDK
+$(JAR_DESTFILE): $(UNSIGNED_DIR)/sunpkcs11.jar
+else
+$(JAR_DESTFILE): $(SIGNED_DIR)/sunpkcs11.jar
+endif
+	$(install-file)
+
+ifndef OPENJDK
+install-prebuilt:
+	@$(ECHO) "\n>>>Installing prebuilt SunPKCS11 provider..."
+	$(RM) $(JAR_DESTFILE)
+	$(CP) $(PREBUILT_DIR)/pkcs11/sunpkcs11.jar $(JAR_DESTFILE)
+endif
+
+
+# =====================================================
+# Support routines.
+#
+
+clobber clean::
+	$(RM) -r $(JAR_DESTFILE) $(TEMPDIR) $(JCE_BUILD_DIR)
+	$(RM) $(SUNPKCS11_CFG_BUILD) 
+
+.PHONY: build-jar jar install-jar
+ifndef OPENJDK
+.PHONY: sign sign-jar release install-prebuilt
+endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/security/pkcs11/mapfile-vers	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,110 @@
+#
+# Copyright (c) 2003, 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.
+#
+
+# Define public interface.
+
+SUNWprivate_1.1 {
+	global:
+		JNI_OnLoad;
+		Java_sun_security_pkcs11_wrapper_PKCS11_initializeLibrary;
+		Java_sun_security_pkcs11_wrapper_PKCS11_finalizeLibrary;
+		Java_sun_security_pkcs11_wrapper_PKCS11_connect;
+		Java_sun_security_pkcs11_wrapper_PKCS11_disconnect;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1Initialize;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1Finalize;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1GetInfo;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1GetSlotList;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1GetSlotInfo;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1GetTokenInfo;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1GetMechanismList;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1GetMechanismInfo;
+#		Java_sun_security_pkcs11_wrapper_PKCS11_C_1InitToken;
+#		Java_sun_security_pkcs11_wrapper_PKCS11_C_1InitPIN;
+#		Java_sun_security_pkcs11_wrapper_PKCS11_C_1SetPIN;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1OpenSession;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1CloseSession;
+#		Java_sun_security_pkcs11_wrapper_PKCS11_C_1CloseAllSessions;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1GetSessionInfo;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1GetOperationState;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1SetOperationState;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1Login;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1Logout;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1CreateObject;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1CopyObject;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1DestroyObject;
+#		Java_sun_security_pkcs11_wrapper_PKCS11_C_1GetObjectSize;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1GetAttributeValue;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1SetAttributeValue;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1FindObjectsInit;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1FindObjects;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1FindObjectsFinal;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1EncryptInit;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1Encrypt;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1EncryptUpdate;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1EncryptFinal;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1DecryptInit;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1Decrypt;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1DecryptUpdate;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1DecryptFinal;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1DigestInit;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1DigestSingle;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1DigestUpdate;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1DigestKey;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1DigestFinal;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1SignInit;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1Sign;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1SignUpdate;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1SignFinal;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1SignRecoverInit;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1SignRecover;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1VerifyInit;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1Verify;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1VerifyUpdate;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1VerifyFinal;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1VerifyRecoverInit;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1VerifyRecover;
+#		Java_sun_security_pkcs11_wrapper_PKCS11_C_1DigestEncryptUpdate;
+#		Java_sun_security_pkcs11_wrapper_PKCS11_C_1DecryptDigestUpdate;
+#		Java_sun_security_pkcs11_wrapper_PKCS11_C_1SignEncryptUpdate;
+#		Java_sun_security_pkcs11_wrapper_PKCS11_C_1DecryptVerifyUpdate;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1GenerateKey;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1GenerateKeyPair;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1WrapKey;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1UnwrapKey;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1DeriveKey;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1SeedRandom;
+		Java_sun_security_pkcs11_wrapper_PKCS11_C_1GenerateRandom;
+#		Java_sun_security_pkcs11_wrapper_PKCS11_C_1GetFunctionStatus;
+#		Java_sun_security_pkcs11_wrapper_PKCS11_C_1CancelFunction;
+#		Java_sun_security_pkcs11_wrapper_PKCS11_C_1WaitForSlotEvent;
+		Java_sun_security_pkcs11_Secmod_nssGetLibraryHandle;
+		Java_sun_security_pkcs11_Secmod_nssLoadLibrary;
+		Java_sun_security_pkcs11_Secmod_nssVersionCheck;
+		Java_sun_security_pkcs11_Secmod_nssInit;
+		Java_sun_security_pkcs11_Secmod_nssGetModuleList;
+
+	local:
+		*;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/security/smartcardio/FILES_c.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,28 @@
+#
+# Copyright (c) 2005, 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.
+#
+
+FILES_c = \
+	pcsc.c \
+	pcsc_md.c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/security/smartcardio/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,80 @@
+#
+# Copyright (c) 2005, 2011, 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.
+#
+
+BUILDDIR = ../../..
+PACKAGE = sun.security.smartcardio
+LIBRARY = j2pcsc
+PRODUCT = sun
+include $(BUILDDIR)/common/Defs.gmk
+
+#
+# C and Java Files
+#
+include FILES_c.gmk
+
+AUTO_FILES_JAVA_DIRS = sun/security/smartcardio
+
+#
+# Java files that define native methods
+#
+FILES_export = \
+    sun/security/smartcardio/PCSC.java \
+    sun/security/smartcardio/PlatformPCSC.java
+
+#
+# Find native code
+#
+vpath %.c \
+  $(SHARE_SRC)/native/sun/security/smartcardio \
+  $(PLATFORM_SRC)/native/sun/security/smartcardio
+
+#
+# Find include files
+#
+OTHER_INCLUDES += \
+  -I$(SHARE_SRC)/native/sun/security/smartcardio \
+  -I$(PLATFORM_SRC)/native/sun/security/smartcardio \
+  -I$(PLATFORM_SRC)/native/sun/security/smartcardio/MUSCLE
+
+#
+# Rules
+#
+#CLASSDESTDIR = $(TMPDIR)/classes
+
+#FILES_class = $(FILES_java:%.java=$(CLASSDESTDIR)/%.class)
+
+include $(BUILDDIR)/common/Mapfile-vers.gmk
+
+include $(BUILDDIR)/common/Library.gmk
+
+#
+# Libraries to link
+#
+ifeq ($(PLATFORM), windows)
+  OTHER_LDLIBS = winscard.lib
+else
+  OTHER_LDLIBS = $(LIBDL)
+  OTHER_CFLAGS = -D__sun_jdk
+endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/security/smartcardio/mapfile-vers	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,45 @@
+#
+# Copyright (c) 2005, 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.
+#
+
+# Define public interface.
+
+SUNWprivate_1.1 {
+	global:
+		JNI_OnLoad;
+		Java_sun_security_smartcardio_PlatformPCSC_initialize;
+		Java_sun_security_smartcardio_PCSC_SCardEstablishContext;
+		Java_sun_security_smartcardio_PCSC_SCardListReaders;
+		Java_sun_security_smartcardio_PCSC_SCardConnect;
+		Java_sun_security_smartcardio_PCSC_SCardTransmit;
+		Java_sun_security_smartcardio_PCSC_SCardStatus;
+		Java_sun_security_smartcardio_PCSC_SCardDisconnect;
+		Java_sun_security_smartcardio_PCSC_SCardGetStatusChange;
+		Java_sun_security_smartcardio_PCSC_SCardBeginTransaction;
+		Java_sun_security_smartcardio_PCSC_SCardEndTransaction;
+		Java_sun_security_smartcardio_PCSC_SCardControl;
+		
+	local:
+		*;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/security/tools/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,52 @@
+#
+# Copyright (c) 1997, 2011, 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.
+#
+
+BUILDDIR = ../../..
+PACKAGE = sun.security.tools
+PRODUCT = sun
+include $(BUILDDIR)/common/Defs.gmk
+
+#
+# Files
+#
+AUTO_FILES_JAVA_DIRS = sun/security/tools
+
+#
+# Resources
+#
+LOCALE_SET_DEFINITION = jdk
+RESOURCE_BUNDLES_JAVA = sun/security/tools/JarSignerResources.java
+
+#
+# Rules
+#
+include $(BUILDDIR)/common/Classes.gmk
+
+build:
+#	$(call make-launcher, keytool, sun.security.tools.KeyTool, , )
+#ifndef BUILD_HEADLESS_ONLY
+#	$(call make-launcher, policytool, sun.security.tools.policytool.PolicyTool, , )
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/security/util/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,46 @@
+#
+# Copyright (c) 1996, 2005, 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.
+#
+
+BUILDDIR = ../../..
+PACKAGE = sun.security.util
+PRODUCT = sun
+include $(BUILDDIR)/common/Defs.gmk
+
+#
+# Files
+#
+AUTO_FILES_JAVA_DIRS = sun/security/util
+
+#
+# Resources
+#
+LOCALE_SET_DEFINITION = jre
+RESOURCE_BUNDLES_JAVA = sun/security/util/Resources.java
+
+#
+# Rules
+#
+include $(BUILDDIR)/common/Classes.gmk
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/splashscreen/FILES_c.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,114 @@
+#
+# Copyright (c) 2005, 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.
+#
+
+FILES_c = \
+	java_awt_SplashScreen.c \
+	splashscreen_gfx_impl.c \
+	splashscreen_gif.c \
+	splashscreen_impl.c \
+	splashscreen_jpeg.c \
+	splashscreen_png.c \
+	splashscreen_sys.c \
+	png.c \
+	pngerror.c \
+	pngget.c \
+	pngmem.c  \
+	pngpread.c \
+	pngread.c \
+	pngrio.c \
+	pngrtran.c \
+	pngrutil.c \
+	pngset.c \
+	pngtrans.c \
+	pngwio.c \
+	pngwrite.c \
+	pngwtran.c \
+	pngwutil.c \
+	dgif_lib.c \
+	gif_err.c \
+	gifalloc.c \
+	jcomapi.c \
+	jdapimin.c \
+	jdapistd.c \
+	jdcoefct.c \
+	jdcolor.c \
+	jddctmgr.c \
+	jdhuff.c \
+	jdinput.c \
+	jdmainct.c \
+	jdmarker.c \
+	jdmaster.c \
+	jdmerge.c \
+	jdphuff.c \
+	jdpostct.c \
+	jdsample.c \
+	jerror.c \
+	jidctflt.c \
+	jidctfst.c \
+	jidctint.c \
+	jidctred.c \
+	jmemmgr.c \
+	jmemnobs.c \
+	jquant1.c \
+	jquant2.c \
+	jutils.c \
+	jcapimin.c \
+	jcapistd.c \
+	jccoefct.c \
+	jccolor.c \
+	jcdctmgr.c \
+	jchuff.c \
+	jcinit.c \
+	jcmainct.c \
+	jcmarker.c \
+	jcmaster.c \
+	jcparam.c \
+	jcphuff.c \
+	jcprepct.c \
+	jcsample.c \
+	jctrans.c \
+	jdtrans.c \
+	jfdctflt.c \
+	jfdctfst.c \
+	jfdctint.c
+
+ifneq ($(SYSTEM_ZLIB),true)
+  FILES_c += \
+	compress.c \
+	deflate.c \
+	gzclose.c \
+	gzlib.c \
+	gzread.c \
+	gzwrite.c \
+	infback.c \
+	inffast.c \
+	inflate.c \
+	inftrees.c \
+	trees.c \
+	uncompr.c \
+	zadler32.c \
+	zcrc32.c \
+	zutil.c
+endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/splashscreen/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,134 @@
+#
+# Copyright (c) 2005, 2011, 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.
+#
+
+BUILDDIR = ../..
+PACKAGE = sun.awt
+LIBRARY = splashscreen
+PRODUCT = sun
+include $(BUILDDIR)/common/Defs.gmk
+
+#
+# Files
+#
+include FILES_c.gmk
+
+FILES_java = \
+    java/awt/SplashScreen.java
+
+FILES_export = \
+    java/awt/SplashScreen.java
+
+
+#
+# Rules
+#
+# FIXME!!!!
+#ifeq ($(PLATFORM), solaris)
+#  ifneq ($(ARCH), amd64)
+#    FILES_reorder += reorder-$(ARCH)
+#  endif
+#endif
+include $(BUILDDIR)/common/Mapfile-vers.gmk
+include $(BUILDDIR)/common/Library.gmk
+
+JAVALIB=
+
+#
+# C Flags
+#
+
+CFLAGS += -DSPLASHSCREEN
+
+ifeq ($(PLATFORM), macosx)
+  CFLAGS += -DWITH_MACOSX
+
+  # CFLAGS and CPPFLAGS are added when linking as well, so we use VARIANT
+  # instead to specify that we're actually compiling objective-c code here
+  CFLAGS_$(VARIANT)/java_awt_SplashScreen.o = -x objective-c
+  CFLAGS_$(VARIANT)/splashscreen_gfx_impl.o = -x objective-c
+  CFLAGS_$(VARIANT)/splashscreen_gif.o = -x objective-c
+  CFLAGS_$(VARIANT)/splashscreen_impl.o = -x objective-c
+  CFLAGS_$(VARIANT)/splashscreen_jpeg.o = -x objective-c
+  CFLAGS_$(VARIANT)/splashscreen_png.o = -x objective-c
+  CFLAGS_$(VARIANT)/splashscreen_sys.o = -x objective-c
+
+  OTHER_CFLAGS += -F/System/Library/Frameworks/ApplicationServices.framework/Frameworks
+  CPPFLAGS += -I/System/Library/Frameworks/AppKit.framework/Versions/C/Headers
+  OTHER_LDLIBS += $(LIBM) -lpthread -liconv -losxapp \
+				  -framework ApplicationServices \
+				  -framework Foundation \
+				  -framework Cocoa \
+				  -framework JavaNativeFoundation
+else ifneq ($(PLATFORM), windows)
+  CFLAGS += -DWITH_X11
+  ifeq ($(PLATFORM), macosx)
+    OTHER_LDLIBS += -liconv
+    CPPFLAGS += -I$(OPENWIN_HOME)/include \
+                -I$(OPENWIN_HOME)/include/X11/extensions
+    OTHER_LDLIBS += -L$(OPENWIN_LIB) -lX11 -lXext $(LIBM) -pthread
+  else
+    CPPFLAGS += -I$(OPENWIN_HOME)/include -I$(OPENWIN_HOME)/include/X11/extensions
+    OTHER_LDLIBS += -L$(OPENWIN_LIB) -lX11 -lXext $(LIBM) -lpthread
+  endif
+else # PLATFORM
+  CFLAGS += -DWITH_WIN32
+  OTHER_LDLIBS += kernel32.lib user32.lib gdi32.lib delayimp.lib /DELAYLOAD:user32.dll
+#$(JVMLIB) $(OBJDIR)/../../jpeg/$(OBJDIRNAME)/jpeg$(SUFFIX).lib
+endif # PLATFORM
+
+#
+# Add to ambient vpath to get files in a subdirectory
+#
+vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/splashscreen
+vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)
+vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/giflib
+ifneq ($(SYSTEM_ZLIB),true)
+  vpath %.c   $(SHARE_SRC)/native/java/util/zip/zlib-$(ZLIB_VERSION)
+endif
+vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/libpng
+vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/image/jpeg
+ifneq ($(PLATFORM), macosx)
+  vpath %.c   $(PLATFORM_SRC)/native/$(PKGDIR)/splashscreen
+else
+  vpath %.m   $(call NativeSrcDirList,,native/$(PKGDIR)/splashscreen)
+endif
+
+ifneq ($(PLATFORM), macosx)
+  CPPFLAGS += -I$(PLATFORM_SRC)/native/$(PKGDIR)/splashscreen
+else
+  CPPFLAGS += $(call NativeSrcDirList,-I,native/$(PKGDIR)/splashscreen)
+  CPPFLAGS += $(call NativeSrcDirList,-I,/native/sun/osxapp)
+endif
+CPPFLAGS += -I$(SHARE_SRC)/native/$(PKGDIR)/splashscreen
+CPPFLAGS += -I$(SHARE_SRC)/native/$(PKGDIR)/image/jpeg
+ifneq ($(SYSTEM_ZLIB),true)
+  CPPFLAGS += -I$(SHARE_SRC)/native/java/util/zip/zlib-$(ZLIB_VERSION)
+else
+  OTHER_LDLIBS += -lz
+endif
+
+# Shun the less than portable MMX assembly code in pnggccrd.c,
+# and use alternative implementations in C.
+CPPFLAGS += -DPNG_NO_MMX_CODE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/splashscreen/mapfile-vers	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,46 @@
+#
+# Copyright (c) 2005, 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.
+#
+
+# Define public interface.
+
+SUNWprivate_1.1 {
+	global:
+		Java_java_awt_SplashScreen__1update;
+		Java_java_awt_SplashScreen__1isVisible;
+		Java_java_awt_SplashScreen__1getBounds;
+		Java_java_awt_SplashScreen__1getInstance;
+		Java_java_awt_SplashScreen__1close;
+                Java_java_awt_SplashScreen__1getImageFileName;
+                Java_java_awt_SplashScreen__1getImageJarName;
+                Java_java_awt_SplashScreen__1setImageData;
+
+		SplashLoadMemory;
+		SplashLoadFile;
+		SplashInit;
+		SplashClose;
+                SplashSetFileJarName;
+	local:
+		*;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/xawt/FILES_c_unix.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,85 @@
+#
+# Copyright (c) 2002, 2010, 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 rules
+#
+
+FILES_c = \
+	XlibWrapper.c \
+	XWindow.c \
+	XToolkit.c \
+	X11Color.c \
+	X11SurfaceData.c \
+	awt_GraphicsEnv.c \
+	awt_InputMethod.c \
+	robot_common.c \
+	awt_Robot.c \
+        list.c \
+        multiVis.c \
+	initIDs.c \
+	awt_util.c \
+	awt_Desktop.c \
+	awt_UNIXToolkit.c \
+	X11FontScaler_md.c \
+	X11TextRenderer_md.c \
+	fontpath.c \
+	awt_Insets.c \
+	awt_Event.c \
+	X11Renderer.c \
+	X11PMBlitLoops.c \
+	OGLBlitLoops.c \
+	OGLBufImgOps.c \
+	OGLContext.c \
+	OGLFuncs.c \
+	OGLMaskBlit.c \
+	OGLMaskFill.c \
+	OGLPaints.c \
+	OGLRenderQueue.c \
+	OGLRenderer.c \
+	OGLSurfaceData.c \
+	OGLTextRenderer.c \
+	OGLVertexCache.c \
+	GLXGraphicsConfig.c \
+	GLXSurfaceData.c \
+	AccelGlyphCache.c \
+	awt_Font.c \
+	multi_font.c \
+	awt_AWTEvent.c \
+	awt_DrawingSurface.c \
+	jawt.c \
+	CUPSfuncs.c \
+	debug_assert.c \
+	debug_mem.c \
+	debug_trace.c \
+	debug_util.c \
+	awt_Plugin.c \
+	gtk2_interface.c \
+        swing_GTKEngine.c \
+        swing_GTKStyle.c \
+        rect.c \
+	sun_awt_X11_GtkFileDialogPeer.c \
+	XRSurfaceData.c \
+	XRBackendNative.c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/xawt/FILES_export_unix.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,37 @@
+#
+# Copyright (c) 2002, 2010, 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 rules
+#
+
+FILES_export =   \
+      sun/awt/X11/XlibWrapper.java \
+      sun/awt/X11/XWindow.java \
+      sun/awt/X11/XDesktopPeer.java \
+      sun/awt/X11/XToolkit.java \
+      sun/awt/X11/XComponentPeer.java \
+      sun/awt/X11/XInputMethod.java \
+      sun/awt/X11/GtkFileDialogPeer.java
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/xawt/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,381 @@
+#
+# Copyright (c) 2002, 2011, 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.
+#
+
+BUILDDIR = ../..
+PACKAGE = sun.awt.X11
+LIBRARY = awt_xawt
+PRODUCT = sun
+
+include $(BUILDDIR)/common/Defs.gmk
+
+GEN_DIR=$(GENSRCDIR)/sun/awt/X11
+
+CLASSES_INIT += $(TEMPDIR)/.gen.wrappers $(TEMPDIR)/.gen_icons touch.wrappers
+
+.PHONY: generated.clean
+
+#
+# Files
+#
+include FILES_c_unix.gmk
+include FILES_export_unix.gmk
+AUTO_FILES_JAVA_DIRS = sun/awt/X11
+AUTO_JAVA_PRUNE = WrapperGenerator.java
+
+LDFLAGS += -L$(OPENWIN_LIB)
+
+# For Xrender extension.
+ifeq ($(PLATFORM), solaris)
+LDFLAGS += -L/usr/openwin/sfw/lib$(ISA_DIR) -R/usr/openwin/sfw/lib$(ISA_DIR)
+endif
+
+ifeq ($(PLATFORM), linux)
+LDFLAGS += -lpthread
+dummy := $(shell $(MKDIR) -p $(LIB_LOCATION))
+endif
+
+ifeq ($(PLATFORM), macosx)
+LDFLAGS += -pthread
+dummy := $(shell $(MKDIR) -p $(LIB_LOCATION))
+endif
+
+# Since this library will be living in a subdirectory below the other libraries
+#   we need to add an extra runpath so that libraries in the upper directory
+#   are found at runtime.
+LD_RUNPATH_EXTRAS = ..
+
+#
+# Rules.
+#
+include $(BUILDDIR)/common/Mapfile-vers.gmk
+include $(BUILDDIR)/common/Library.gmk
+
+#
+# Add to the ambient vpath to pick up files in subdirectories
+#
+vpath %.c   $(SHARE_SRC)/native/sunawt/alphacomposite
+vpath %.c   $(PLATFORM_SRC)/native/sun/xawt
+vpath %.c   $(PLATFORM_SRC)/native/sun/awt
+vpath %.c   $(SHARE_SRC)/native/sun/awt/debug
+vpath %.c   $(SHARE_SRC)/native/sun/awt/image
+vpath %.c   $(SHARE_SRC)/native/sun/awt/image/gif
+vpath %.c   $(SHARE_SRC)/native/sun/awt/image/cvutils
+vpath %.c   $(SHARE_SRC)/native/sun/awt/shell
+vpath %.c   $(SHARE_SRC)/native/sun/java2d
+vpath %.c   $(SHARE_SRC)/native/sun/java2d/loops
+vpath %.c   $(SHARE_SRC)/native/sun/java2d/pipe
+vpath %.c   $(SHARE_SRC)/native/sun/awt/medialib
+vpath %.c   $(SHARE_SRC)/native/sun/awt/utility
+vpath %.cpp $(SHARE_SRC)/native/sun/image
+vpath %.c   $(SHARE_SRC)/native/sun/font
+vpath %.c   $(PLATFORM_SRC)/native/sun/awt/robot_child
+vpath %.c   $(SHARE_SRC)/native/sun/java2d/opengl
+vpath %.c   $(PLATFORM_SRC)/native/sun/java2d/opengl
+vpath %.c   $(PLATFORM_SRC)/native/sun/java2d/x11
+
+OTHER_LDLIBS = $(LIBM) -lawt -lXext -lX11 -lXrender $(LIBDL) \
+                   $(LDFLAGS_COMMON) $(AWT_RUNPATH) $(OTHER_LDFLAGS) -lXtst -lXi
+
+ifeq  ($(PLATFORM), solaris)
+CPPFLAGS += -DFUNCPROTO=15
+dummy := $(shell $(MKDIR) -p $(LIB_LOCATION))
+endif
+
+CPPFLAGS += $(CUPS_CFLAGS)
+
+CPPFLAGS += -DXAWT -DXAWT_HACK \
+        -I$(TEMPDIR)/../../sun.awt/awt/CClassHeaders \
+        -I$(PLATFORM_SRC)/native/sun/awt \
+	-I$(PLATFORM_SRC)/native/sun/xawt \
+        -I$(PLATFORM_SRC)/native/sun/jdga \
+        -I$(SHARE_SRC)/native/sun/awt/debug \
+        -I$(SHARE_SRC)/native/sun/awt/image/cvutils \
+        -I$(SHARE_SRC)/native/sun/java2d \
+	-I$(SHARE_SRC)/native/sun/java2d/loops \
+	-I$(SHARE_SRC)/native/sun/awt/image/cvutils \
+	-I$(SHARE_SRC)/native/sun/awt/image \
+	-I$(SHARE_SRC)/native/sun/font \
+	-I$(PLATFORM_SRC)/native/sun/java2d \
+	-I$(SHARE_SRC)/native/sun/java2d/pipe \
+	-I$(SHARE_SRC)/native/sun/java2d/opengl \
+	-I$(PLATFORM_SRC)/native/sun/java2d/opengl \
+	-I$(PLATFORM_SRC)/native/sun/java2d/x11 \
+	-I$(SHARE_SRC)/native/sun/dc/path \
+	-I$(SHARE_SRC)/native/sun/dc/doe \
+	-I$(SHARE_SRC)/native/sun/awt/alphacomposite \
+        -I$(SHARE_SRC)/native/sun/awt/medialib \
+	-I$(PLATFORM_SRC)/native/sun/awt/medialib \
+        -I$(PLATFORM_SRC)/native/sun/font \
+        -I$(SHARE_SRC)/native/sun/awt \
+        -I$(PLATFORM_SRC)/native/sun/awt
+
+ifeq ($(PLATFORM), linux)
+  ifndef CROSS_COMPILE_ARCH
+    # Allows for builds on Debian GNU Linux, X11 is in a different place 
+    # This should really be handled at a higher-level so we don't have to
+    # work-around this when cross-compiling
+    CPPFLAGS += -I$(SYS_ROOT)/usr/X11R6/include/X11/extensions \
+                -I$(SYS_ROOT)/usr/include/X11/extensions \
+                -I$(OPENWIN_HOME)/include 
+  else
+    CPPFLAGS += -I$(OPENWIN_HOME)/include/X11/extensions \
+                -I$(OPENWIN_HOME)/include 
+  endif
+endif
+
+# We have some odd logic here because some Solaris 10 updates
+# have a render.h file that suggests gradients are supported, but
+# the Xrender.h doesn't have the corresponding type definitions.
+# Earlier updates have neither. We'd like to know if there's a mismatch.
+# Whilst in the C preprocessor we can tell if the render.h define's are set
+# we can't tell anything about C declarations.
+# A grep of Xrender.h is the only way to know this. If they are absent
+# we will set a flag indicating this mismatch and the JDK source file
+# will interpret it to resolve the problem.
+ifeq ($(PLATFORM), solaris)
+  CPPFLAGS += -I$(OPENWIN_HOME)/include/X11/extensions
+  OS_VERSION := $(shell uname -r)
+  XRENDER_H := $(OPENWIN_HOME)/share/include/X11/extensions/Xrender.h
+  ifeq ($(OS_VERSION),5.10) 
+     LINEARGRADIENT_CNT := $(shell $(EGREP) -c XLinearGradient $(XRENDER_H))
+     ifeq ($(LINEARGRADIENT_CNT),0) 
+       CFLAGS+= -DSOLARIS10_NO_XRENDER_STRUCTS
+     endif
+ endif
+endif
+
+ifeq ($(PLATFORM), macosx)
+  CPPFLAGS += -DX11_PATH=\"$(X11_PATH)\" -DPACKAGE_PATH=\"$(PACKAGE_PATH)\"
+endif
+
+ifeq ($(MILESTONE), internal)
+  CPPFLAGS += -DINTERNAL_BUILD
+endif
+
+#
+# Generation of wrappers
+#
+SIZER_DIR=$(GEN_DIR)/generator
+SIZER = $(SIZER_DIR)/sizer
+SIZER_32_C = $(SIZER).32.c
+SIZER_64_C = $(SIZER).64.c
+CFLAGS_32=$(CFLAGS)
+CFLAGS_64=$(CFLAGS)
+
+ifeq ($(PLATFORM), solaris)
+
+isalist:=$(shell $(ISAINFO))
+
+ifneq (,$(findstring sparcv9, $(isalist)))
+# On sparcv9 we generate both 32 and 64-bit sizers in spite of ARCH_DATA_MODEL.
+# On sparcv9 CFLAGS already contain $(XARCH_OPTION/64), so to generate 32-bit sizer we need to change this option.
+CFLAGS_32=$(subst $(XARCH_OPTION/64),$(XARCH_OPTION/32),$(CFLAGS))
+SIZERS = $(SIZER).32 $(SIZER).64
+SIZERS_C = $(SIZER_32_C) $(SIZER_64_C)
+SIZES = $(WRAPPER_GENERATOR_DIR)/sizes.32 $(WRAPPER_GENERATOR_DIR)/sizes.64
+CFLAGS_64=$(CFLAGS) $(XARCH_OPTION/64)
+else
+ifneq (,$(findstring amd64, $(isalist)))
+# On amd64 we generate both 32 and 64-bit sizers in spite of ARCH_DATA_MODEL.
+# On amd64 CFLAGS already contain $(XARCH_OPTION/64), so to generate 32-bit sizer we need to change this option.
+CFLAGS_32=$(subst $(XARCH_OPTION/64),$(XARCH_OPTION/32),$(CFLAGS))
+SIZERS = $(SIZER).32 $(SIZER).64
+SIZERS_C = $(SIZER_32_C) $(SIZER_64_C)
+SIZES = $(WRAPPER_GENERATOR_DIR)/sizes.32 $(WRAPPER_GENERATOR_DIR)/sizes.64
+CFLAGS_64=$(CFLAGS) $(XARCH_OPTION/64)
+else # !sparcv9 : includes (32-bit) sparc, i586
+SIZERS = $(SIZER).32
+SIZERS_C = $(SIZER_32_C)
+SIZES = $(WRAPPER_GENERATOR_DIR)/sizes.32
+endif # amd64
+endif # sparcv9
+
+else # !solaris
+
+ifeq ($(PLATFORM), macosx)
+CFLAGS_32=-arch i386
+SIZERS = $(SIZER).32 $(SIZER).64
+SIZERS_C = $(SIZER_32_C) $(SIZER_64_C)
+SIZES = $(WRAPPER_GENERATOR_DIR)/sizes.32 $(WRAPPER_GENERATOR_DIR)/sizes.64
+CFLAGS_64=-arch x86_64
+else # !macosx
+ifeq ($(ARCH_DATA_MODEL), 32)
+SIZERS = $(SIZER).32
+SIZERS_C = $(SIZER_32_C)
+SIZES = $(WRAPPER_GENERATOR_DIR)/sizes.32
+else # !32
+SIZERS = $(SIZER).64
+SIZERS_C = $(SIZER_64_C)
+SIZES = $(WRAPPER_GENERATOR_DIR)/sizes.64
+endif # 32
+endif # !macosx
+endif # solaris
+
+# XXX Hack for 6185483 - use hard-coded sizes.
+# Add the 64-bit platforms that need to be included into 32-bit build
+# and have sizes.64-$(PLATFORM)-$(LIBARCH) hardcoded in the workspace
+ifeq ($(PLATFORM)-$(LIBARCH), solaris-i386)
+# If you define DOHACK=true for some combination of $(PLATFORM)-$(LIBARCH),
+# make sure you have sizes.64-$(PLATFORM)-$(LIBARCH) pre-generated in
+# $(PLATFORM_SRC)/classes/sun/awt/X11/generator/
+DOHACK=true
+endif # Hack
+
+ifeq ($(DOHACK), true)
+PREDEFINED_SIZES_TMPL=$(PLATFORM_SRC)/classes/sun/awt/X11/generator/sizes.64-$(PLATFORM)-$(LIBARCH)
+PREDEFINED_SIZES=$(WRAPPER_GENERATOR_DIR)/sizes.64
+SIZES += $(WRAPPER_GENERATOR_DIR)/sizes.64
+endif
+
+ifeq ($(PLATFORM)-$(LIBARCH), solaris-amd64)
+DOCOMPARE=true
+endif
+# 64 bit sizers are generated on platform-libarch (left) for use 
+# on platform-libarch (right) and stored under the latter name.
+# Do compare manually stored and automatically generated pair(s) 
+# if DOCOMPARE=true, just after the generation.
+STORED_SIZES_TMPL_solaris_amd64=$(PLATFORM_SRC)/classes/sun/awt/X11/generator/sizes.64-solaris-i386
+
+WRAPPER_GENERATOR_JAVA=$(PLATFORM_SRC)/classes/sun/awt/X11/generator/WrapperGenerator.java
+WRAPPER_GENERATOR_DIR=$(GENSRCDIR)/sun/awt/X11/generator
+WRAPPER_GENERATOR_TEMPDIR=$(TEMPDIR)/sun/awt/X11/generator
+WRAPPER_GENERATOR_CLASS=$(WRAPPER_GENERATOR_TEMPDIR)/WrapperGenerator.class 
+XLIBTYPES=$(PLATFORM_SRC)/classes/sun/awt/X11/generator/xlibtypes.txt
+
+$(SIZERS): $(SIZERS_C) 
+	$(prep-target)
+ifndef CROSS_COMPILE_ARCH
+	$(CC) $(CFLAGS_$(subst .,,$(suffix $@))) $(CPPFLAGS) -c -o $(SIZER)$(suffix $@).o $(SIZER)$(suffix $@).c
+	$(CC) $(CFLAGS_$(subst .,,$(suffix $@))) -o $@ $(CPPFLAGS) $(SIZER)$(suffix $@).o
+else
+	$(HOST_CC) $(CPPFLAGS) -c -o $(SIZER)$(suffix $@).o $(SIZER)$(suffix $@).c
+	$(HOST_CC) $(CPPFLAGS) -o $@ $(SIZER)$(suffix $@).o
+endif
+
+$(WRAPPER_GENERATOR_CLASS): $(WRAPPER_GENERATOR_JAVA)
+	$(prep-target)
+	$(BOOT_JAVAC_CMD) -d $(WRAPPER_GENERATOR_TEMPDIR) $(WRAPPER_GENERATOR_JAVA)
+
+$(SIZERS_C): $(WRAPPER_GENERATOR_CLASS) $(XLIBTYPES)
+	$(prep-target)
+	$(MKDIR) -p $(WRAPPER_GENERATOR_TEMPDIR)
+	$(BOOT_JAVA_CMD) -cp $(WRAPPER_GENERATOR_TEMPDIR) WrapperGenerator \
+	    $(SIZER_DIR) $(XLIBTYPES) "sizer" $(subst .,,$(suffix $(basename $@)))
+
+$(SIZES): $(SIZERS)
+	@if [ "$(DOHACK)$@" = "true$(PREDEFINED_SIZES)" ]; then \
+	    $(ECHO) COPYING $(PREDEFINED_SIZES_TMPL) into $@; \
+	    $(CP) $(PREDEFINED_SIZES_TMPL) $@; \
+	    $(CHMOD) +w $@;\
+	else	\
+	    $(ECHO) GENERATING $@; \
+	    $(WRAPPER_GENERATOR_DIR)/sizer$(suffix $@) > $@; \
+	fi
+	@if [ "$(DOCOMPARE)$(suffix $@)" = "true.64" ]; then \
+	    $(ECHO) COMPARING $@ and $(STORED_SIZES_TMPL_$(PLATFORM)_$(LIBARCH)); \
+	    $(DIFF) $@ $(STORED_SIZES_TMPL_$(PLATFORM)_$(LIBARCH)); \
+	fi
+
+$(TEMPDIR)/.gen.wrappers: $(SIZES) $(WRAPPER_GENERATOR_CLASS) $(XLIBTYPES)
+	$(BOOT_JAVA_CMD) -cp $(WRAPPER_GENERATOR_TEMPDIR) WrapperGenerator \
+	    $(GEN_DIR) $(XLIBTYPES) "gen" $(WRAPPER_GENERATOR_DIR)/sizes
+
+touch.wrappers: $(TEMPDIR)/.gen.wrappers
+	$(MKDIR) -p $(TEMPDIR)
+	$(TOUCH) $(TEMPDIR)/.gen.wrappers
+
+generated.clean:
+	$(RM) -r $(WRAPPER_GENERATOR_TEMPDIR)
+	$(RM) -r $(WRAPPER_GENERATOR_DIR)
+	$(RM) -r $(GEN_DIR)/*.java
+	$(RM) -r $(TEMPDIR)/.gen_icons
+
+ifdef OPENJDK
+    ICONS_PATH_PREFIX=$(PLATFORM_SRC)
+else
+    ICONS_PATH_PREFIX=$(CLOSED_SRC)/solaris
+endif
+
+ICONS = \
+    $(ICONS_PATH_PREFIX)/classes/sun/awt/X11/java-icon16.png \
+    $(ICONS_PATH_PREFIX)/classes/sun/awt/X11/java-icon24.png \
+    $(ICONS_PATH_PREFIX)/classes/sun/awt/X11/java-icon32.png \
+    $(ICONS_PATH_PREFIX)/classes/sun/awt/X11/java-icon48.png
+
+
+ICONPATH=$(PLATFORM_SRC)/classes/sun/awt/X11
+
+ICONS += \
+   $(ICONPATH)/security-icon-bw16.png \
+   $(ICONPATH)/security-icon-interim16.png \
+   $(ICONPATH)/security-icon-yellow16.png \
+   $(ICONPATH)/security-icon-bw24.png \
+   $(ICONPATH)/security-icon-interim24.png \
+   $(ICONPATH)/security-icon-yellow24.png \
+   $(ICONPATH)/security-icon-bw32.png \
+   $(ICONPATH)/security-icon-interim32.png \
+   $(ICONPATH)/security-icon-yellow32.png \
+   $(ICONPATH)/security-icon-bw48.png \
+   $(ICONPATH)/security-icon-interim48.png \
+   $(ICONPATH)/security-icon-yellow48.png
+
+TEMPDIR_CLASSES = $(TEMPDIR)/classes
+
+$(TEMPDIR_CLASSES)/sun/awt/X11/ToBin.class: ToBin.java
+	@$(prep-target)
+	$(BOOT_JAVAC_CMD) -d $(TEMPDIR_CLASSES) $<
+
+$(TEMPDIR)/.gen_icons: $(TEMPDIR_CLASSES)/sun/awt/X11/ToBin.class $(ICONS)
+	$(prep-target)
+	for i in $(ICONS); do \
+            filename=`basename $$i`; \
+	    name=`$(ECHO) $$filename | $(TR) '\-.' '__'`;  \
+            classname=$(GEN_DIR)/XAWTIcon32_$$name.java; \
+	    $(RM) $$classname; \
+	    $(ECHO) "package sun.awt.X11;" >> $$classname ; \
+	    $(ECHO) "public class XAWTIcon32_$$name {" >> $$classname; \
+	    $(ECHO) "public static int[] $$name = { " >> $$classname;  \
+	    $(CAT) $$i | \
+	      $(BOOT_JAVA_CMD) -cp $(TEMPDIR_CLASSES)  \
+		-Djava.awt.headless=true \
+		sun.awt.X11.ToBin >> $$classname; \
+	    $(ECHO) "}; }" >> $$classname;  \
+            classname=$(GEN_DIR)/XAWTIcon64_$$name.java; \
+	    $(RM) $$classname; \
+	    $(ECHO) "package sun.awt.X11;" >> $$classname ; \
+	    $(ECHO) "public class XAWTIcon64_$$name {" >> $$classname; \
+	    $(ECHO) "public static long[] $$name = { " >> $$classname;  \
+	    $(CAT) $$i | \
+	      $(BOOT_JAVA_CMD) -cp $(TEMPDIR_CLASSES)  \
+		-Djava.awt.headless=true \
+		sun.awt.X11.ToBin >> $$classname; \
+	    $(ECHO) "}; }" >> $$classname;  \
+	done
+	$(TOUCH) $@
+
+clean clobber:: generated.clean
+
+.PHONY: generated.clean robot_child
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/xawt/ToBin.java	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,59 @@
+/*
+ * Copyright (c) 2005, 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.
+ */
+
+package sun.awt.X11;
+
+import java.io.*;
+import java.awt.image.*;
+import javax.imageio.*;
+import java.awt.*;
+
+public class ToBin {
+    public static void main(String[] args) throws Exception {
+        BufferedImage im = ImageIO.read(System.in);
+        BufferedImage bi = null;
+        int iconWidth = im.getWidth(null);
+        int iconHeight = im.getHeight(null);
+        if (im != null && iconHeight != 0 &&  iconWidth != 0) {
+            bi = new BufferedImage(iconWidth, iconHeight, BufferedImage.TYPE_INT_ARGB);
+            Graphics g = bi.getGraphics();
+            try {
+                g.drawImage(im, 0, 0, iconWidth, iconHeight, null);
+            } finally {
+                g.dispose();
+            }
+        }
+        DataBuffer srcBuf = bi.getData().getDataBuffer();
+        int[] buf = ((DataBufferInt)srcBuf).getData();
+        System.out.print(iconWidth + ",");
+        System.out.println(iconHeight + ",");
+        for (int i = 0; i < buf.length; i++) {
+            System.out.print("0x" + Integer.toHexString(buf[i]) + ", ");
+            if (i % 10 == 0) {
+                System.out.println();
+            }
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/makefiles/sun/xawt/mapfile-vers	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,463 @@
+#
+# Copyright (c) 2002, 2011, 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.
+#
+
+# Define public interface.
+
+SUNWprivate_1.1 {
+        global:
+        JNI_OnLoad;
+        Java_sun_awt_X11_XlibWrapper_copyIntArray;
+        Java_sun_awt_X11_XlibWrapper_copyLongArray;
+        Java_sun_awt_X11_XlibWrapper_getAddress;
+        Java_sun_awt_X11_XlibWrapper_XConvertSelection;
+        Java_sun_awt_X11_XlibWrapper_XSetSelectionOwner;
+        Java_sun_awt_X11_XlibWrapper_XGetSelectionOwner;
+        Java_sun_awt_X11_XlibWrapper_XGetAtomName;
+        Java_sun_awt_X11_XlibWrapper_XMaxRequestSize;
+        Java_sun_awt_X11_XlibWrapper_XReparentWindow;
+        Java_sun_awt_X11_XlibWrapper_XAllocSizeHints;
+        Java_sun_awt_X11_XlibWrapper_XAllocWMHints;
+        Java_sun_awt_X11_XlibWrapper_XSetMinMaxHints;
+        Java_sun_awt_X11_XlibWrapper_XGetVisualInfo;
+        Java_sun_awt_X11_XlibWrapper_XOpenDisplay;
+        Java_sun_awt_X11_XlibWrapper_XCloseDisplay;
+        Java_sun_awt_X11_XlibWrapper_XDisplayString;
+        Java_sun_awt_X11_XlibWrapper_XSetCloseDownMode;
+        Java_sun_awt_X11_XlibWrapper_XCreateWindow;
+        Java_sun_awt_X11_XlibWrapper_XMapWindow;
+        Java_sun_awt_X11_XlibWrapper_XMapRaised;
+        Java_sun_awt_X11_XlibWrapper_XUnmapWindow;
+        Java_sun_awt_X11_XlibWrapper_XSelectInput;
+        Java_sun_awt_X11_XlibWrapper_XNextEvent;
+        Java_sun_awt_X11_XlibWrapper_XMaskEvent;
+        Java_sun_awt_X11_XlibWrapper_XWindowEvent;
+        Java_sun_awt_X11_XlibWrapper_XFilterEvent;
+        Java_sun_awt_X11_XlibWrapper_XSupportsLocale;
+        Java_sun_awt_X11_XlibWrapper_XSetLocaleModifiers;
+        Java_sun_awt_X11_XlibWrapper_XPeekEvent;
+        Java_sun_awt_X11_XlibWrapper_DefaultScreen;
+	Java_sun_awt_X11_XlibWrapper_ScreenOfDisplay;
+	Java_sun_awt_X11_XlibWrapper_DoesBackingStore;
+        Java_sun_awt_X11_XlibWrapper_RootWindow;
+        Java_sun_awt_X11_XlibWrapper_DisplayHeight;
+        Java_sun_awt_X11_XlibWrapper_DisplayWidthMM;
+        Java_sun_awt_X11_XlibWrapper_DisplayWidth;
+        Java_sun_awt_X11_XlibWrapper_DisplayHeightMM;
+        Java_sun_awt_X11_XlibWrapper_ScreenCount;
+        Java_sun_awt_X11_XlibWrapper_XMoveResizeWindow;
+        Java_sun_awt_X11_XlibWrapper_XResizeWindow;
+        Java_sun_awt_X11_XlibWrapper_XMoveWindow;
+        Java_sun_awt_X11_XlibWrapper_XGetWindowAttributes;
+        Java_sun_awt_X11_XlibWrapper_XGetGeometry;
+        Java_sun_awt_X11_XlibWrapper_XGrabPointer;
+        Java_sun_awt_X11_XlibWrapper_XUngrabPointer;
+        Java_sun_awt_X11_XlibWrapper_XGrabKeyboard;
+        Java_sun_awt_X11_XlibWrapper_XUngrabKeyboard;
+        Java_sun_awt_X11_XlibWrapper_XSetWindowBackground;
+        Java_sun_awt_X11_XlibWrapper_XFlush;
+        Java_sun_awt_X11_XlibWrapper_XSync;
+        Java_sun_awt_X11_XlibWrapper_XEventsQueued;
+        Java_sun_awt_X11_XlibWrapper_XRaiseWindow;
+        Java_sun_awt_X11_XlibWrapper_XLowerWindow;
+        Java_sun_awt_X11_XlibWrapper_XRestackWindows;
+        Java_sun_awt_X11_XlibWrapper_XSetInputFocus;
+        Java_sun_awt_X11_XlibWrapper_XSetInputFocus2;
+        Java_sun_awt_X11_XlibWrapper_XGetInputFocus;
+        Java_sun_awt_X11_XlibWrapper_XDestroyWindow;
+        Java_sun_awt_X11_XlibWrapper_XTranslateCoordinates;
+        Java_sun_awt_X11_XlibWrapper_XCreateFontCursor;
+        Java_sun_awt_X11_XlibWrapper_XSetTransientFor;
+        Java_sun_awt_X11_XlibWrapper_XSetWMHints;
+        Java_sun_awt_X11_XlibWrapper_XGetWMHints;
+        Java_sun_awt_X11_XlibWrapper_XShapeQueryExtension;
+        Java_sun_awt_X11_XlibWrapper_SetRectangularShape;
+        Java_sun_awt_X11_XlibWrapper_SetBitmapShape;
+        Java_sun_awt_X11_XlibWrapper_XConfigureWindow;
+        Java_sun_awt_X11_XlibWrapper_SetZOrder;
+        Java_sun_awt_X11_XToolkit_initIDs;
+        Java_sun_awt_X11_XWindow_getNativeColor;
+        Java_sun_awt_X11_XWindow_getWMInsets;
+        Java_sun_awt_X11_XWindow_getTopWindow;
+        Java_sun_awt_X11_XWindow_getWindowBounds;
+        Java_sun_awt_X11_XWindow_setSizeHints;
+        Java_sun_awt_X11_XWindow_getAWTKeyCodeForKeySym;
+        Java_sun_awt_X11_XWindow_getKeySymForAWTKeyCode;
+        Java_sun_awt_X11_XToolkit_nativeLoadSystemColors;
+        Java_sun_awt_X11_XToolkit_awt_1toolkit_1init;
+        Java_sun_awt_X11_XToolkit_awt_1output_1flush;
+        Java_sun_awt_X11_XToolkit_wakeup_1poll;
+        Java_java_awt_Cursor_finalizeImpl;
+        Java_sun_awt_X11_XlibWrapper_InternAtom;
+        Java_sun_awt_X11_XlibWrapper_GetProperty;
+        Java_sun_awt_X11_XlibWrapper_SetProperty;
+        Java_sun_awt_X11_XlibWrapper_XGetDefault;
+        Java_sun_awt_X11_XlibWrapper_XGetPointerMapping;
+        Java_sun_awt_X11_XlibWrapper_XScreenNumberOfScreen;
+        Java_sun_awt_X11_XlibWrapper_getScreenOfWindow;
+        Java_sun_awt_X11_XlibWrapper_XIconifyWindow;
+        Java_sun_awt_X11_XlibWrapper_XBell;
+        Java_sun_awt_X11_XlibWrapper_XChangePropertyImpl;
+        Java_sun_awt_X11_XlibWrapper_XChangePropertyS;
+        Java_sun_awt_X11_XlibWrapper_XGetWindowProperty;
+        Java_sun_awt_X11_XlibWrapper_getStringBytes;
+        Java_sun_awt_X11_XlibWrapper_XFree;
+        Java_sun_awt_X11_XlibWrapper_ServerVendor;
+        Java_sun_awt_X11_XlibWrapper_VendorRelease;
+        Java_sun_awt_X11_XlibWrapper_IsXsunKPBehavior;
+        Java_sun_awt_X11_XlibWrapper_IsSunKeyboard;
+        Java_sun_awt_X11_XlibWrapper_IsKanaKeyboard;
+        Java_sun_awt_X11_XlibWrapper_SetToolkitErrorHandler;
+        Java_sun_awt_X11_XlibWrapper_XSetErrorHandler;
+        Java_sun_awt_X11_XlibWrapper_CallErrorHandler;
+        Java_sun_awt_X11_XlibWrapper_PrintXErrorEvent;
+        Java_sun_awt_X11_XlibWrapper_XInternAtoms;
+        Java_sun_awt_X11_XlibWrapper_XChangeWindowAttributes;
+        Java_sun_awt_X11_XlibWrapper_XDeleteProperty;
+        Java_sun_awt_X11_XlibWrapper_XSetWMNormalHints;
+        Java_sun_awt_X11_XlibWrapper_XGetWMNormalHints;
+        Java_sun_awt_X11_XlibWrapper_XSendEvent;
+        Java_sun_awt_X11_XlibWrapper_XQueryTree;
+        Java_sun_awt_X11_XlibWrapper_memcpy;
+        Java_sun_awt_X11_XlibWrapper_XdbeQueryExtension;
+        Java_sun_awt_X11_XlibWrapper_XQueryExtension;
+        Java_sun_awt_X11_XlibWrapper_IsKeypadKey;
+        Java_sun_awt_X11_XlibWrapper_XdbeAllocateBackBufferName;
+        Java_sun_awt_X11_XlibWrapper_XdbeDeallocateBackBufferName;
+        Java_sun_awt_X11_XlibWrapper_XdbeSwapBuffers;
+        Java_sun_awt_X11_XlibWrapper_XdbeBeginIdiom;
+        Java_sun_awt_X11_XlibWrapper_XdbeEndIdiom;
+        Java_sun_awt_X11_XDesktopPeer_init;
+        Java_sun_awt_X11_XDesktopPeer_gnome_1url_1show;
+        Java_sun_awt_X11_XRobotPeer_getRGBPixelsImpl;
+        Java_sun_awt_X11_XRobotPeer_keyPressImpl;
+        Java_sun_awt_X11_XRobotPeer_keyReleaseImpl;
+        Java_sun_awt_X11_XRobotPeer_mouseMoveImpl;
+        Java_sun_awt_X11_XRobotPeer_mousePressImpl;
+        Java_sun_awt_X11_XRobotPeer_mouseReleaseImpl;
+        Java_sun_awt_X11_XRobotPeer_mouseWheelImpl;
+        Java_sun_awt_X11_XRobotPeer_setup;
+        Java_sun_awt_X11_XToolkit_getNumberOfButtonsImpl;
+        Java_java_awt_Component_initIDs;
+        Java_java_awt_Container_initIDs;
+        Java_java_awt_Button_initIDs;
+        Java_java_awt_Scrollbar_initIDs;
+        Java_java_awt_Window_initIDs;
+        Java_java_awt_Frame_initIDs;
+	Java_sun_awt_SunToolkit_closeSplashScreen;
+        Java_sun_awt_UNIXToolkit_check_1gtk;
+        Java_sun_awt_UNIXToolkit_load_1gtk;
+        Java_sun_awt_UNIXToolkit_unload_1gtk;
+        Java_sun_awt_UNIXToolkit_load_1stock_1icon;
+        Java_sun_awt_UNIXToolkit_load_1gtk_1icon;
+        Java_sun_awt_UNIXToolkit_nativeSync;
+        Java_sun_awt_UNIXToolkit_gtkCheckVersionImpl;
+        Java_java_awt_AWTEvent_initIDs;
+        Java_java_awt_event_InputEvent_initIDs;
+        Java_java_awt_event_KeyEvent_initIDs;
+        Java_java_awt_MenuComponent_initIDs;
+        Java_java_awt_Cursor_initIDs;
+        Java_java_awt_MenuItem_initIDs;
+        Java_java_awt_Menu_initIDs;
+        Java_java_awt_TextArea_initIDs;
+        Java_java_awt_Checkbox_initIDs;
+        Java_java_awt_ScrollPane_initIDs;
+        Java_java_awt_TextField_initIDs;
+        Java_java_awt_TrayIcon_initIDs;
+        Java_sun_font_FontConfigManager_getFontConfig;
+        Java_sun_font_FontConfigManager_getFontConfigAASettings;
+        Java_sun_font_FontConfigManager_getFontConfigVersion;
+	Java_sun_awt_X11FontManager_getFontPathNative;
+        Java_sun_awt_X11GraphicsEnvironment_initDisplay;
+        Java_sun_awt_X11GraphicsEnvironment_initGLX;
+	Java_sun_awt_X11GraphicsEnvironment_initXRender;
+        Java_sun_awt_X11GraphicsEnvironment_checkShmExt;
+        Java_sun_awt_X11GraphicsEnvironment_getNumScreens;
+        Java_sun_awt_X11GraphicsEnvironment_getDefaultScreenNum;
+        Java_sun_awt_X11GraphicsEnvironment_pRunningXinerama;
+        Java_sun_awt_X11GraphicsEnvironment_getXineramaCenterPoint;
+        Java_sun_awt_X11GraphicsEnvironment_getDisplayString;
+#        Java_sun_awt_X11GraphicsEnvironment_getNativeFonts;
+        Java_sun_awt_X11GraphicsDevice_initIDs;
+        Java_sun_awt_X11GraphicsDevice_getConfigVisualId;
+        Java_sun_awt_X11GraphicsDevice_getConfigDepth;
+        Java_sun_awt_X11GraphicsDevice_getNumConfigs;
+        Java_sun_awt_X11GraphicsDevice_getConfigColormap;
+        Java_sun_awt_X11GraphicsDevice_isDBESupported;
+        Java_sun_awt_X11GraphicsDevice_getDisplay;
+        Java_sun_awt_X11GraphicsDevice_getDoubleBufferVisuals;
+        Java_sun_awt_X11GraphicsDevice_initXrandrExtension;
+        Java_sun_awt_X11GraphicsDevice_enterFullScreenExclusive;
+        Java_sun_awt_X11GraphicsDevice_exitFullScreenExclusive;
+        Java_sun_awt_X11GraphicsDevice_getCurrentDisplayMode;
+        Java_sun_awt_X11GraphicsDevice_enumDisplayModes;
+        Java_sun_awt_X11GraphicsDevice_configDisplayMode;
+        Java_sun_awt_X11GraphicsDevice_resetNativeData;
+        Java_sun_awt_X11GraphicsConfig_initIDs;
+        Java_sun_awt_X11GraphicsConfig_getXResolution;
+        Java_sun_awt_X11GraphicsConfig_getYResolution;
+        Java_sun_awt_X11GraphicsConfig_init;
+        Java_sun_awt_X11GraphicsConfig_dispose;
+        Java_sun_awt_X11GraphicsConfig_makeColorModel;
+        Java_sun_awt_X11GraphicsConfig_pGetBounds;
+        Java_sun_awt_X11GraphicsConfig_createBackBuffer;
+	Java_sun_awt_X11GraphicsConfig_destroyBackBuffer;
+	Java_sun_awt_X11GraphicsConfig_swapBuffers;
+	Java_sun_awt_X11GraphicsConfig_isTranslucencyCapable;
+        Java_sun_awt_X11_XToolkit_getTrayIconDisplayTimeout;
+        Java_java_awt_Insets_initIDs;
+        Java_java_awt_KeyboardFocusManager_initIDs;
+        Java_java_awt_Font_initIDs;
+        # libfontmanager entry points
+        AWTIsHeadless;
+	AWTCountFonts;
+        AWTLoadFont;
+        AWTFreeFont;
+        AWTFontAscent;
+        AWTFontDescent;
+        AWTFontMinByte1;
+        AWTFontMaxByte1;
+        AWTFontMinCharOrByte2;
+        AWTFontMaxCharOrByte2;
+        AWTFontDefaultChar;
+        AWTFontPerChar;
+        AWTFontMaxBounds;
+        AWTFontTextExtents16;
+        AWTFreeChar;
+        AWTFontGenerateImage;
+        AWTCharAdvance;
+        AWTCharLBearing;
+        AWTCharRBearing;
+        AWTCharAscent;
+        AWTCharDescent;
+        AWTDrawGlyphList;
+        AccelGlyphCache_RemoveAllCellInfos;
+
+        Java_sun_awt_X11_XToolkit_waitForEvents;
+        Java_java_awt_Event_initIDs;
+        Java_sun_awt_X11_XWindow_x11inputMethodLookupString;
+        Java_sun_awt_X11_XWindow_haveCurrentX11InputMethodInstance;
+        Java_java_awt_AWTEvent_nativeSetSource;
+        Java_java_awt_Dialog_initIDs;
+        Java_sun_awt_PlatformFont_initIDs;
+        Java_sun_awt_FontDescriptor_initIDs;
+        Java_sun_awt_X11_XFontPeer_initIDs;
+        Java_sun_awt_X11InputMethod_initIDs;
+        Java_sun_awt_X11InputMethod_resetXIC;
+        Java_sun_awt_X11InputMethod_disposeXIC;
+        Java_sun_awt_X11InputMethod_setCompositionEnabledNative;
+        Java_sun_awt_X11InputMethod_isCompositionEnabledNative;
+        Java_sun_awt_X11InputMethod_turnoffStatusWindow;
+        Java_sun_awt_X11_XInputMethod_openXIMNative;
+        Java_sun_awt_X11_XInputMethod_createXICNative;
+        Java_sun_awt_X11_XInputMethod_setXICFocusNative;
+        Java_sun_awt_X11_XInputMethod_adjustStatusWindow;
+        Java_sun_awt_X11_XlibWrapper_XQueryPointer;
+        Java_sun_awt_X11_XlibWrapper_XFreeCursor;
+        Java_sun_awt_X11_XToolkit_getDefaultXColormap;
+        Java_sun_awt_X11_XToolkit_getDefaultScreenData;
+        Java_sun_awt_X11_XToolkit_getEnv;
+        Java_sun_awt_X11_XlibWrapper_XCreateBitmapFromData;
+        Java_sun_awt_X11_XlibWrapper_XFreePixmap;
+        Java_sun_awt_X11_XlibWrapper_XAllocColor;
+        Java_sun_awt_X11_XlibWrapper_XCreatePixmapCursor;
+        Java_sun_awt_X11_XlibWrapper_XQueryBestCursor;
+        Java_sun_awt_X11_XlibWrapper_XCreatePixmap;
+        Java_sun_awt_X11_XlibWrapper_XCreateImage;
+        Java_sun_awt_X11_XlibWrapper_XCreateGC;
+        Java_sun_awt_X11_XlibWrapper_XDestroyImage;
+        Java_sun_awt_X11_XlibWrapper_XPutImage;
+        Java_sun_awt_X11_XlibWrapper_XFreeGC;
+        Java_sun_awt_X11_XlibWrapper_XSetWindowBackgroundPixmap;
+        Java_sun_awt_X11_XlibWrapper_XClearWindow;
+        Java_sun_awt_X11_XlibWrapper_XGetIconSizes;
+        Java_sun_awt_X11_XlibWrapper_XKeycodeToKeysym;
+        Java_sun_awt_X11_XlibWrapper_XKeysymToKeycode;
+	Java_sun_awt_X11_XlibWrapper_XQueryKeymap;
+        Java_sun_awt_X11_XlibWrapper_XkbGetEffectiveGroup;
+        Java_sun_awt_X11_XlibWrapper_XkbSelectEvents;
+        Java_sun_awt_X11_XlibWrapper_XkbSelectEventDetails;
+        Java_sun_awt_X11_XlibWrapper_XkbKeycodeToKeysym;
+        Java_sun_awt_X11_XlibWrapper_XkbLibraryVersion;
+        Java_sun_awt_X11_XlibWrapper_XkbQueryExtension;
+        Java_sun_awt_X11_XlibWrapper_XkbGetMap;
+        Java_sun_awt_X11_XlibWrapper_XkbGetUpdatedMap;
+        Java_sun_awt_X11_XlibWrapper_XkbFreeKeyboard;
+        Java_sun_awt_X11_XlibWrapper_XkbTranslateKeyCode;
+        Java_sun_awt_X11_XlibWrapper_XGetModifierMapping;
+        Java_sun_awt_X11_XlibWrapper_XFreeModifiermap;
+        Java_sun_awt_X11_XlibWrapper_XRefreshKeyboardMapping;
+        Java_sun_awt_X11_XlibWrapper_XChangeActivePointerGrab;
+        Java_sun_awt_X11_XlibWrapper_XNextSecondaryLoopEvent;
+        Java_sun_awt_X11_XlibWrapper_ExitSecondaryLoop;
+        Java_sun_awt_X11_XlibWrapper_XTextPropertyToStringList;
+        Java_sun_awt_X11_XlibWrapper_XGrabServer;
+        Java_sun_awt_X11_XlibWrapper_XUngrabServer;
+        Java_sun_awt_X11_XlibWrapper_XPutBackEvent;
+        Java_sun_awt_X11_XlibWrapper_XConvertCase;
+        Java_sun_awt_X11_XlibWrapper_XSynchronize;
+        Java_java_awt_FileDialog_initIDs;
+        Java_sun_awt_X11_XWindow_initIDs;
+        Java_sun_awt_X11_XWindowPeer_getLocalHostname;
+        Java_sun_awt_X11_XWindowPeer_getJvmPID;
+
+        Java_sun_java2d_opengl_OGLContext_getOGLIdString;
+        Java_sun_java2d_opengl_OGLMaskFill_maskFill;
+        Java_sun_java2d_opengl_OGLRenderer_drawPoly;
+        Java_sun_java2d_opengl_OGLRenderQueue_flushBuffer;
+        Java_sun_java2d_opengl_OGLSurfaceData_initTexture;
+        Java_sun_java2d_opengl_OGLSurfaceData_initFBObject;
+        Java_sun_java2d_opengl_OGLSurfaceData_initFlipBackbuffer;
+        Java_sun_java2d_opengl_OGLSurfaceData_getTextureID;
+        Java_sun_java2d_opengl_OGLSurfaceData_getTextureTarget;
+        Java_sun_java2d_opengl_OGLTextRenderer_drawGlyphList;
+        Java_sun_java2d_opengl_GLXGraphicsConfig_getGLXConfigInfo;
+        Java_sun_java2d_opengl_GLXGraphicsConfig_initConfig;
+        Java_sun_java2d_opengl_GLXGraphicsConfig_getOGLCapabilities;
+        Java_sun_java2d_opengl_GLXSurfaceData_initOps;
+        Java_sun_java2d_opengl_GLXSurfaceData_initPbuffer;
+
+        Java_sun_java2d_x11_X11PMBlitBgLoops_nativeBlitBg;
+        Java_sun_java2d_x11_X11PMBlitLoops_nativeBlit;
+        Java_sun_java2d_x11_X11PMBlitLoops_updateBitmask;
+	Java_sun_java2d_x11_X11Renderer_XFillSpans;
+	Java_sun_java2d_x11_X11Renderer_XDrawArc;
+	Java_sun_java2d_x11_X11Renderer_XDrawLine;
+	Java_sun_java2d_x11_X11Renderer_XDrawOval;
+	Java_sun_java2d_x11_X11Renderer_XDrawPoly;
+	Java_sun_java2d_x11_X11Renderer_XDrawRect;
+	Java_sun_java2d_x11_X11Renderer_XDrawRoundRect;
+        Java_sun_java2d_x11_X11Renderer_XDoPath;
+	Java_sun_java2d_x11_X11Renderer_XFillArc;
+	Java_sun_java2d_x11_X11Renderer_XFillOval;
+	Java_sun_java2d_x11_X11Renderer_XFillPoly;
+	Java_sun_java2d_x11_X11Renderer_XFillRect;
+	Java_sun_java2d_x11_X11Renderer_XFillRoundRect;
+        Java_sun_java2d_x11_X11Renderer_devCopyArea;
+        Java_sun_java2d_x11_X11SurfaceData_initIDs;
+        Java_sun_java2d_x11_X11SurfaceData_isDgaAvailable;
+	Java_sun_java2d_x11_X11SurfaceData_isShmPMAvailable;
+        Java_sun_java2d_x11_X11SurfaceData_initSurface;
+        Java_sun_java2d_x11_X11SurfaceData_XSetCopyMode;
+        Java_sun_java2d_x11_X11SurfaceData_XSetXorMode;
+        Java_sun_java2d_x11_X11SurfaceData_XSetForeground;
+
+        Java_sun_java2d_x11_XSurfaceData_initOps;
+        Java_sun_java2d_x11_XSurfaceData_XCreateGC;
+        Java_sun_java2d_x11_XSurfaceData_XResetClip;
+        Java_sun_java2d_x11_XSurfaceData_XSetClip;
+        Java_sun_java2d_x11_XSurfaceData_flushNativeSurface;
+	Java_sun_java2d_x11_XSurfaceData_isDrawableValid;
+        Java_sun_java2d_x11_XSurfaceData_setInvalid;
+        Java_sun_java2d_x11_XSurfaceData_XSetGraphicsExposures;
+        Java_sun_java2d_xr_XRSurfaceData_initXRPicture;
+        Java_sun_java2d_xr_XRSurfaceData_initIDs;
+        Java_sun_java2d_xr_XRSurfaceData_XRInitSurface;
+	Java_sun_java2d_xr_XRSurfaceData_freeXSDOPicture;
+	Java_sun_java2d_xr_XRBackendNative_initIDs;
+	Java_sun_java2d_xr_XRBackendNative_freeGC;
+	Java_sun_java2d_xr_XRBackendNative_createGC;
+	Java_sun_java2d_xr_XRBackendNative_createPixmap;
+	Java_sun_java2d_xr_XRBackendNative_createPictureNative;
+	Java_sun_java2d_xr_XRBackendNative_freePicture;
+	Java_sun_java2d_xr_XRBackendNative_freePixmap;
+	Java_sun_java2d_xr_XRBackendNative_setPictureRepeat;
+	Java_sun_java2d_xr_XRBackendNative_setGCExposures;
+	Java_sun_java2d_xr_XRBackendNative_setGCForeground;
+	Java_sun_java2d_xr_XRBackendNative_copyArea;
+	Java_sun_java2d_xr_XRBackendNative_renderComposite;
+	Java_sun_java2d_xr_XRBackendNative_renderRectangle;
+	Java_sun_java2d_xr_XRBackendNative_XRenderRectanglesNative;
+	Java_sun_java2d_xr_XRBackendNative_XRSetTransformNative;
+	Java_sun_java2d_xr_XRBackendNative_XRCreateLinearGradientPaintNative;
+	Java_sun_java2d_xr_XRBackendNative_XRCreateRadialGradientPaintNative;
+	Java_sun_java2d_xr_XRBackendNative_setFilter;
+	Java_sun_java2d_xr_XRBackendNative_XRSetClipNative;
+	Java_sun_java2d_xr_XRBackendNative_putMaskNative;
+	Java_sun_java2d_xr_XRBackendNative_XRAddGlyphsNative;
+	Java_sun_java2d_xr_XRBackendNative_XRFreeGlyphsNative;
+	Java_sun_java2d_xr_XRBackendNative_XRenderCreateGlyphSetNative;
+	Java_sun_java2d_xr_XRBackendNative_XRenderCompositeTextNative;
+	Java_sun_java2d_xr_XRBackendNative_setGCMode;
+	Java_sun_java2d_xr_XRBackendNative_GCRectanglesNative;
+	Java_sun_java2d_xr_XRBackendNative_renderCompositeTrapezoidsNative;
+
+        Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1arrow;
+        Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1box;
+        Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1box_1gap;
+        Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1check;
+        Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1expander;
+        Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1extension;
+        Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1flat_1box;
+        Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1focus;
+        Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1handle;
+        Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1hline;
+        Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1option;
+        Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1shadow;
+        Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1slider;
+        Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1vline;
+        Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1background;
+        Java_com_sun_java_swing_plaf_gtk_GTKEngine_nativeStartPainting;
+        Java_com_sun_java_swing_plaf_gtk_GTKEngine_nativeFinishPainting;
+        Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1switch_1theme;
+        Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1get_1gtk_1setting;
+        Java_com_sun_java_swing_plaf_gtk_GTKEngine_nativeSetRangeValue;
+        Java_com_sun_java_swing_plaf_gtk_GTKStyle_nativeGetXThickness;
+        Java_com_sun_java_swing_plaf_gtk_GTKStyle_nativeGetYThickness;
+        Java_com_sun_java_swing_plaf_gtk_GTKStyle_nativeGetColorForState;
+        Java_com_sun_java_swing_plaf_gtk_GTKStyle_nativeGetClassValue;
+        Java_com_sun_java_swing_plaf_gtk_GTKStyle_nativeGetPangoFontName;
+
+        Java_sun_awt_X11_GtkFileDialogPeer_initIDs;
+        Java_sun_awt_X11_GtkFileDialogPeer_run;
+        Java_sun_awt_X11_GtkFileDialogPeer_quit;
+        Java_sun_awt_X11_GtkFileDialogPeer_toFront;
+        Java_sun_awt_X11_GtkFileDialogPeer_setBounds;
+
+	Java_sun_print_CUPSPrinter_initIDs;
+	Java_sun_print_CUPSPrinter_getCupsServer;
+	Java_sun_print_CUPSPrinter_getCupsPort;
+	Java_sun_print_CUPSPrinter_canConnect;	
+	Java_sun_print_CUPSPrinter_getMedia;
+	Java_sun_print_CUPSPrinter_getPageSizes;
+
+        awt_GetDrawingSurface;
+        awt_FreeDrawingSurface;
+        awt_Unlock;
+        awt_Lock;
+        awt_GetComponent;
+
+        # Java Plugin
+        # This is in awt_LoadLibrary.c and falls through to libmawt.
+        # Evidently plugin needs this for backward compatability.
+        getAwtLockFunctions;
+        getAwtData;
+        getAwtDisplay;
+        #XAWT entry point for CDE
+        Java_sun_awt_motif_XsessionWMcommand;
+        Java_sun_awt_motif_XsessionWMcommand_New;
+
+        local:
+                *;
+};
--- a/jdk/src/macosx/classes/com/apple/eawt/_AppEventHandler.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/macosx/classes/com/apple/eawt/_AppEventHandler.java	Wed Jul 05 18:07:57 2017 +0200
@@ -157,7 +157,10 @@
                 }
             });
         } finally {
-            nativeReplyToAppShouldTerminate(true);
+            // Either we've just called System.exit(), or the app will call
+            // it when processing a WINDOW_CLOSING event. Either way, we reply
+            // to Cocoa that we don't want to exit the event loop yet.
+            nativeReplyToAppShouldTerminate(false);
         }
     }
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/macosx/classes/java/lang/ClassLoaderHelper.java	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) 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.
+ */
+package java.lang;
+
+import java.io.File;
+
+class ClassLoaderHelper {
+
+    private ClassLoaderHelper() {}
+
+    /**
+     * Returns an alternate path name for the given file
+     * such that if the original pathname did not exist, then the
+     * file may be located at the alternate location.
+     * For mac, this replaces the final .dylib suffix with .jnilib
+     */
+    static File mapAlternativeName(File lib) {
+        String name = lib.toString();
+        int index = name.lastIndexOf('.');
+        if (index < 0) {
+            return null;
+        }
+        return new File(name.substring(0, index) + ".jnilib");
+    }
+}
--- a/jdk/src/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java	Wed Jul 05 18:07:57 2017 +0200
@@ -29,6 +29,7 @@
 import java.awt.*;
 import java.awt.Dialog.ModalityType;
 import java.awt.event.*;
+import java.awt.peer.WindowPeer;
 import java.beans.*;
 import java.util.List;
 
@@ -202,6 +203,9 @@
     private LWWindowPeer peer;
     private CPlatformView contentView;
     private CPlatformWindow owner;
+    private boolean visible = false; // visibility status from native perspective
+    private boolean undecorated; // initialized in getInitialStyleBits()
+    private Rectangle normalBounds = null; // not-null only for undecorated maximized windows
 
     public CPlatformWindow(final PeerType peerType) {
         super(0, true);
@@ -277,8 +281,8 @@
 
         // Either java.awt.Frame or java.awt.Dialog can be undecorated, however java.awt.Window always is undecorated.
         {
-            final boolean undecorated = isFrame ? ((Frame)target).isUndecorated() : (isDialog ? ((Dialog)target).isUndecorated() : true);
-            if (undecorated) styleBits = SET(styleBits, DECORATED, false);
+            this.undecorated = isFrame ? ((Frame)target).isUndecorated() : (isDialog ? ((Dialog)target).isUndecorated() : true);
+            if (this.undecorated) styleBits = SET(styleBits, DECORATED, false);
         }
 
         // Either java.awt.Frame or java.awt.Dialog can be resizable, however java.awt.Window is never resizable
@@ -466,19 +470,62 @@
         nativeSetNSWindowBounds(getNSWindowPtr(), x, y, w, h);
     }
 
+    private void zoom() {
+        if (!undecorated) {
+            CWrapper.NSWindow.zoom(getNSWindowPtr());
+        } else {
+            // OS X handles -zoom incorrectly for undecorated windows
+            final boolean isZoomed = this.normalBounds == null;
+            deliverZoom(isZoomed);
+
+            Rectangle toBounds;
+            if (isZoomed) {
+                this.normalBounds = peer.getBounds();
+                long screen = CWrapper.NSWindow.screen(getNSWindowPtr());
+                toBounds = CWrapper.NSScreen.visibleFrame(screen).getBounds();
+                // Flip the y coordinate
+                Rectangle frame = CWrapper.NSScreen.frame(screen).getBounds();
+                toBounds.y = frame.height - toBounds.y - toBounds.height;
+            } else {
+                toBounds = normalBounds;
+                this.normalBounds = null;
+            }
+            setBounds(toBounds.x, toBounds.y, toBounds.width, toBounds.height);
+        }
+    }
+
+    private boolean isVisible() {
+        return this.visible;
+    }
+
     @Override // PlatformWindow
     public void setVisible(boolean visible) {
         final long nsWindowPtr = getNSWindowPtr();
 
-        if (owner != null) {
-            if (!visible) {
+        // 1. Process parent-child relationship when hiding
+        if (!visible) {
+            // 1a. Unparent my children
+            for (Window w : target.getOwnedWindows()) {
+                WindowPeer p = (WindowPeer)w.getPeer();
+                if (p instanceof LWWindowPeer) {
+                    CPlatformWindow pw = (CPlatformWindow)((LWWindowPeer)p).getPlatformWindow();
+                    if (pw != null && pw.isVisible()) {
+                        CWrapper.NSWindow.removeChildWindow(nsWindowPtr, pw.getNSWindowPtr());
+                    }
+                }
+            }
+
+            // 1b. Unparent myself
+            if (owner != null && owner.isVisible()) {
                 CWrapper.NSWindow.removeChildWindow(owner.getNSWindowPtr(), nsWindowPtr);
             }
         }
 
+        // 2. Configure stuff
         updateIconImages();
         updateFocusabilityForAutoRequestFocus(false);
 
+        // 3. Manage the extended state when hiding
         if (!visible) {
             // Cancel out the current native state of the window
             switch (peer.getState()) {
@@ -486,11 +533,12 @@
                     CWrapper.NSWindow.deminiaturize(nsWindowPtr);
                     break;
                 case Frame.MAXIMIZED_BOTH:
-                    CWrapper.NSWindow.zoom(nsWindowPtr);
+                    zoom();
                     break;
             }
         }
 
+        // 4. Actually show or hide the window
         LWWindowPeer blocker = peer.getBlocker();
         if (blocker == null || !visible) {
             // If it ain't blocked, or is being hidden, go regular way
@@ -517,7 +565,9 @@
             CWrapper.NSWindow.orderWindow(nsWindowPtr, CWrapper.NSWindow.NSWindowBelow,
                     ((CPlatformWindow)blocker.getPlatformWindow()).getNSWindowPtr());
         }
+        this.visible = visible;
 
+        // 5. Manage the extended state when showing
         if (visible) {
             // Re-apply the extended state as expected in shared code
             if (target instanceof Frame) {
@@ -526,23 +576,41 @@
                         CWrapper.NSWindow.miniaturize(nsWindowPtr);
                         break;
                     case Frame.MAXIMIZED_BOTH:
-                        CWrapper.NSWindow.zoom(nsWindowPtr);
+                        zoom();
                         break;
                 }
             }
         }
 
+        // 6. Configure stuff #2
         updateFocusabilityForAutoRequestFocus(true);
 
-        if (owner != null) {
-            if (visible) {
+        // 7. Manage parent-child relationship when showing
+        if (visible) {
+            // 7a. Add myself as a child
+            if (owner != null && owner.isVisible()) {
                 CWrapper.NSWindow.addChildWindow(owner.getNSWindowPtr(), nsWindowPtr, CWrapper.NSWindow.NSWindowAbove);
                 if (target.isAlwaysOnTop()) {
                     CWrapper.NSWindow.setLevel(nsWindowPtr, CWrapper.NSWindow.NSFloatingWindowLevel);
                 }
             }
+
+            // 7b. Add my own children to myself
+            for (Window w : target.getOwnedWindows()) {
+                WindowPeer p = (WindowPeer)w.getPeer();
+                if (p instanceof LWWindowPeer) {
+                    CPlatformWindow pw = (CPlatformWindow)((LWWindowPeer)p).getPlatformWindow();
+                    if (pw != null && pw.isVisible()) {
+                        CWrapper.NSWindow.addChildWindow(nsWindowPtr, pw.getNSWindowPtr(), CWrapper.NSWindow.NSWindowAbove);
+                        if (w.isAlwaysOnTop()) {
+                            CWrapper.NSWindow.setLevel(pw.getNSWindowPtr(), CWrapper.NSWindow.NSFloatingWindowLevel);
+                        }
+                    }
+                }
+            }
         }
 
+        // 8. Deal with the blocker of the window being shown
         if (blocker != null && visible) {
             // Make sure the blocker is above its siblings
             ((CPlatformWindow)blocker.getPlatformWindow()).orderAboveSiblings();
@@ -692,7 +760,7 @@
                 if (prevWindowState == Frame.MAXIMIZED_BOTH) {
                     // let's return into the normal states first
                     // the zoom call toggles between the normal and the max states
-                    CWrapper.NSWindow.zoom(nsWindowPtr);
+                    zoom();
                 }
                 CWrapper.NSWindow.miniaturize(nsWindowPtr);
                 break;
@@ -701,14 +769,14 @@
                     // let's return into the normal states first
                     CWrapper.NSWindow.deminiaturize(nsWindowPtr);
                 }
-                CWrapper.NSWindow.zoom(nsWindowPtr);
+                zoom();
                 break;
             case Frame.NORMAL:
                 if (prevWindowState == Frame.ICONIFIED) {
                     CWrapper.NSWindow.deminiaturize(nsWindowPtr);
                 } else if (prevWindowState == Frame.MAXIMIZED_BOTH) {
                     // the zoom call toggles between the normal and the max states
-                    CWrapper.NSWindow.zoom(nsWindowPtr);
+                    zoom();
                 }
                 break;
             default:
@@ -849,15 +917,23 @@
             return;
         }
 
-        // Recursively pop up the windows from the very bottom so that only
-        // the very top-most one becomes the main window
-        owner.orderAboveSiblings();
+        // NOTE: the logic will fail if we have a hierarchy like:
+        //       visible root owner
+        //          invisible owner
+        //              visible dialog
+        // However, this is an unlikely scenario for real life apps
+        if (owner.isVisible()) {
+            // Recursively pop up the windows from the very bottom so that only
+            // the very top-most one becomes the main window
+            owner.orderAboveSiblings();
 
-        // Order the window to front of the stack of child windows
-        final long nsWindowSelfPtr = getNSWindowPtr();
-        final long nsWindowOwnerPtr = owner.getNSWindowPtr();
-        CWrapper.NSWindow.removeChildWindow(nsWindowOwnerPtr, nsWindowSelfPtr);
-        CWrapper.NSWindow.addChildWindow(nsWindowOwnerPtr, nsWindowSelfPtr, CWrapper.NSWindow.NSWindowAbove);
+            // Order the window to front of the stack of child windows
+            final long nsWindowSelfPtr = getNSWindowPtr();
+            final long nsWindowOwnerPtr = owner.getNSWindowPtr();
+            CWrapper.NSWindow.removeChildWindow(nsWindowOwnerPtr, nsWindowSelfPtr);
+            CWrapper.NSWindow.addChildWindow(nsWindowOwnerPtr, nsWindowSelfPtr, CWrapper.NSWindow.NSWindowAbove);
+        }
+
         if (target.isAlwaysOnTop()) {
             CWrapper.NSWindow.setLevel(getNSWindowPtr(), CWrapper.NSWindow.NSFloatingWindowLevel);
         }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/macosx/lib/content-types.properties	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,276 @@
+#sun.net.www MIME content-types table
+#
+# Property fields:
+#
+#   <description> ::= 'description' '=' <descriptive string>
+#    <extensions> ::= 'file_extensions' '=' <comma-delimited list, include '.'>
+#         <image> ::= 'icon' '=' <filename of icon image>
+#        <action> ::= 'browser' | 'application' | 'save' | 'unknown'
+#   <application> ::= 'application' '=' <command line template>
+#
+
+#
+# The "we don't know anything about this data" type(s).
+# Used internally to mark unrecognized types.
+#
+content/unknown: description=Unknown Content
+unknown/unknown: description=Unknown Data Type
+
+#
+# The template we should use for temporary files when launching an application
+# to view a document of given type.
+#
+temp.file.template: /tmp/%s
+
+#
+# The "real" types.
+#
+application/octet-stream: \
+	description=Generic Binary Stream;\
+	file_extensions=.saveme,.dump,.hqx,.arc,.o,.a,.bin,.exe,.z,.gz
+
+application/oda: \
+	description=ODA Document;\
+	file_extensions=.oda
+
+application/pdf: \
+	description=Adobe PDF Format;\
+	file_extensions=.pdf
+
+application/postscript: \
+	description=Postscript File;\
+	file_extensions=.eps,.ai,.ps;\
+	icon=ps;\
+	action=application;\
+	application=imagetool %s
+
+application/x-dvi: \
+	description=TeX DVI File;\
+	file_extensions=.dvi;\
+	action=application;\
+	application=xdvi %s
+
+application/x-hdf: \
+	description=Hierarchical Data Format;\
+	file_extensions=.hdf;\
+	action=save
+
+application/x-latex: \
+	description=LaTeX Source;\
+	file_extensions=.latex
+
+application/x-netcdf: \
+	description=Unidata netCDF Data Format;\
+	file_extensions=.nc,.cdf;\
+	action=save
+
+application/x-tex: \
+	description=TeX Source;\
+	file_extensions=.tex
+
+application/x-texinfo: \
+	description=Gnu Texinfo;\
+	file_extensions=.texinfo,.texi
+
+application/x-troff: \
+	description=Troff Source;\
+	file_extensions=.t,.tr,.roff;\
+	action=application;\
+	application=xterm -title troff -e sh -c \"nroff %s | col | more -w\"
+
+application/x-troff-man: \
+	description=Troff Manpage Source;\
+	file_extensions=.man;\
+	action=application;\
+	application=xterm -title troff -e sh -c \"nroff -man %s | col | more -w\"
+
+application/x-troff-me: \
+	description=Troff ME Macros;\
+	file_extensions=.me;\
+	action=application;\
+	application=xterm -title troff -e sh -c \"nroff -me %s | col | more -w\"
+
+application/x-troff-ms: \
+	description=Troff MS Macros;\
+	file_extensions=.ms;\
+	action=application;\
+	application=xterm -title troff -e sh -c \"nroff -ms %s | col | more -w\"
+
+application/x-wais-source: \
+	description=Wais Source;\
+	file_extensions=.src,.wsrc
+
+application/zip: \
+	description=Zip File;\
+	file_extensions=.zip;\
+	icon=zip;\
+	action=save
+
+application/x-bcpio: \
+	description=Old Binary CPIO Archive;\
+	file_extensions=.bcpio; action=save
+
+application/x-cpio: \
+	description=Unix CPIO Archive;\
+	file_extensions=.cpio; action=save
+
+application/x-gtar: \
+	description=Gnu Tar Archive;\
+	file_extensions=.gtar;\
+	icon=tar;\
+	action=save
+
+application/x-shar: \
+	description=Shell Archive;\
+	file_extensions=.sh,.shar;\
+	action=save
+
+application/x-sv4cpio: \
+	description=SVR4 CPIO Archive;\
+	file_extensions=.sv4cpio; action=save
+
+application/x-sv4crc: \
+	description=SVR4 CPIO with CRC;\
+	file_extensions=.sv4crc; action=save
+
+application/x-tar: \
+	description=Tar Archive;\
+	file_extensions=.tar;\
+	icon=tar;\
+	action=save
+
+application/x-ustar: \
+	description=US Tar Archive;\
+	file_extensions=.ustar;\
+	action=save
+
+audio/basic: \
+	description=Basic Audio;\
+	file_extensions=.snd,.au;\
+	icon=audio;\
+	action=application;\
+	application=audiotool %s
+
+audio/x-aiff: \
+	description=Audio Interchange Format File;\
+	file_extensions=.aifc,.aif,.aiff;\
+	icon=aiff
+
+audio/x-wav: \
+	description=Wav Audio;\
+	file_extensions=.wav;\
+	icon=wav
+
+image/gif: \
+	description=GIF Image;\
+	file_extensions=.gif;\
+	icon=gif;\
+	action=browser
+
+image/ief: \
+	description=Image Exchange Format;\
+	file_extensions=.ief
+
+image/jpeg: \
+	description=JPEG Image;\
+	file_extensions=.jfif,.jfif-tbnl,.jpe,.jpg,.jpeg;\
+	icon=jpeg;\
+	action=browser;\
+	application=imagetool %s
+
+image/tiff: \
+	description=TIFF Image;\
+	file_extensions=.tif,.tiff;\
+	icon=tiff
+
+image/vnd.fpx: \
+	description=FlashPix Image;\
+	file_extensions=.fpx,.fpix
+
+image/x-cmu-rast: \
+	description=CMU Raster Image;\
+	file_extensions=.ras
+
+image/x-portable-anymap: \
+	description=PBM Anymap Format;\
+	file_extensions=.pnm
+
+image/x-portable-bitmap: \
+	description=PBM Bitmap Format;\
+	file_extensions=.pbm
+
+image/x-portable-graymap: \
+	description=PBM Graymap Format;\
+	file_extensions=.pgm
+
+image/x-portable-pixmap: \
+	description=PBM Pixmap Format;\
+	file_extensions=.ppm
+
+image/x-rgb: \
+	description=RGB Image;\
+	file_extensions=.rgb
+
+image/x-xbitmap: \
+	description=X Bitmap Image;\
+	file_extensions=.xbm,.xpm
+
+image/x-xwindowdump: \
+	description=X Window Dump Image;\
+	file_extensions=.xwd
+
+image/png: \
+	description=PNG Image;\
+	file_extensions=.png;\
+	icon=png;\
+	action=browser
+
+text/html: \
+	description=HTML Document;\
+	file_extensions=.htm,.html;\
+	icon=html
+
+text/plain: \
+	description=Plain Text;\
+	file_extensions=.text,.c,.cc,.c++,.h,.pl,.txt,.java,.el;\
+	icon=text;\
+	action=browser
+
+text/tab-separated-values: \
+	description=Tab Separated Values Text;\
+	file_extensions=.tsv
+
+text/x-setext: \
+	description=Structure Enhanced Text;\
+	file_extensions=.etx
+
+video/mpeg: \
+	description=MPEG Video Clip;\
+	file_extensions=.mpg,.mpe,.mpeg;\
+	icon=mpeg;\
+	action=application;\
+	application=mpeg_play %s
+
+video/quicktime: \
+	description=QuickTime Video Clip;\
+	file_extensions=.mov,.qt
+
+application/x-troff-msvideo: \
+	description=AVI Video;\
+	file_extensions=.avi;\
+	icon=avi
+
+video/x-sgi-movie: \
+	description=SGI Movie;\
+	file_extensions=.movie,.mv
+
+message/rfc822: \
+	description=Internet Email Message;\
+	file_extensions=.mime
+
+application/xml: \
+	description=XML document;\
+	file_extensions=.xml
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/macosx/lib/flavormap.properties	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,78 @@
+#
+# This properties file is used to initialize the default
+# java.awt.datatransfer.SystemFlavorMap. It contains the X11 platform-specific,
+# default mappings between common X11 selection atoms and platform-independent
+# MIME type strings, which will be converted into
+# java.awt.datatransfer.DataFlavors.
+#
+# These default mappings may be augmented by specifying the
+#
+#       AWT.DnD.flavorMapFileURL 
+#
+# property in the appropriate awt.properties file. The specified properties URL
+# will be loaded into the SystemFlavorMap.
+#
+# The standard format is:
+#
+# <native>=<MIME type>
+#
+# <native> should be a string identifier that the native platform will
+# recognize as a valid data format. <MIME type> should specify both a MIME
+# primary type and a MIME subtype separated by a '/'. The MIME type may include
+# parameters, where each parameter is a key/value pair separated by '=', and
+# where each parameter to the MIME type is separated by a ';'.
+#
+# Because SystemFlavorMap implements FlavorTable, developers are free to
+# duplicate both native keys and DataFlavor values. If a mapping contains a
+# duplicate key or value, earlier mappings which included this key or value
+# will be preferred.
+#
+# Mappings whose values specify DataFlavors with primary MIME types of
+# "text", and which support the charset parameter, should specify the exact
+# format in which the native platform expects the data. The "charset"
+# parameter specifies the char to byte encoding, the "eoln" parameter
+# specifies the end-of-line marker, and the "terminators" parameter specifies
+# the number of terminating NUL bytes. Note that "eoln" and "terminators"
+# are not standardized MIME type parameters. They are specific to this file
+# format ONLY. They will not appear in any of the DataFlavors returned by the
+# SystemFlavorMap at the Java level.
+#
+# If the "charset" parameter is omitted, or has zero length, the platform
+# default encoding is assumed. If the "eoln" parameter is omitted, or has
+# zero length, "\n" is assumed. If the "terminators" parameter is omitted,
+# or has a value less than zero, zero is assumed.
+#
+# Upon initialization, the data transfer subsystem will record the specified
+# details of the native text format, but the default SystemFlavorMap will
+# present a large set of synthesized DataFlavors which map, in both
+# directions, to the native. After receiving data from the application in one
+# of the synthetic DataFlavors, the data transfer subsystem will transform
+# the data stream into the format specified in this file before passing the
+# transformed stream to the native system.
+#
+# Mappings whose values specify DataFlavors with primary MIME types of
+# "text", but which do not support the charset parameter, will be treated as
+# opaque, 8-bit data. They will not undergo any transformation process, and
+# any "charset", "eoln", or "terminators" parameters specified in this file
+# will be ignored.
+#
+# See java.awt.datatransfer.DataFlavor.selectBestTextFlavor for a list of
+# text flavors which support the charset parameter.
+
+UTF8_STRING=text/plain;charset=UTF-8;eoln="\n";terminators=0
+
+# The COMPOUND_TEXT support for inter-client text transfer is disabled by 
+# default. The reason is that many native applications prefer this format over 
+# other native text formats, but are unable to decode the textual data in this 
+# format properly. This results in java-to-native text transfer failures.
+# To enable the COMPOUND_TEXT support for this JRE installation uncomment 
+# the line below.
+
+# COMPOUND_TEXT=text/plain;charset=x-compound-text;eoln="\n";terminators=0
+
+TEXT=text/plain;eoln="\n";terminators=0
+STRING=text/plain;charset=UTF-8;eoln="\n";terminators=0
+FILE_NAME=application/x-java-file-list;class=java.util.List
+text/uri-list=application/x-java-file-list;class=java.util.List
+PNG=image/x-java-image;class=java.awt.Image
+JFIF=image/x-java-image;class=java.awt.Image
--- a/jdk/src/macosx/native/sun/awt/CMenuItem.m	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/macosx/native/sun/awt/CMenuItem.m	Wed Jul 05 18:07:57 2017 +0200
@@ -125,11 +125,8 @@
 
     [JNFRunLoop performOnMainThreadWaiting:YES withBlock:^(){
         AWT_ASSERT_APPKIT_THREAD;
-
-        if (![theKeyEquivalent isEqualToString:@""]) {
-            [fMenuItem setKeyEquivalent:theKeyEquivalent];
-            [fMenuItem setKeyEquivalentModifierMask:modifierMask];
-        }
+        [fMenuItem setKeyEquivalent:theKeyEquivalent];
+        [fMenuItem setKeyEquivalentModifierMask:modifierMask];
         [fMenuItem setTitle:theLabel];
     }];
 }
--- a/jdk/src/macosx/native/sun/awt/awt.m	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/macosx/native/sun/awt/awt.m	Wed Jul 05 18:07:57 2017 +0200
@@ -306,6 +306,18 @@
         // AWT gets here AFTER +[AWTStarter appKitIsRunning:] is called.
         if (verbose) AWT_DEBUG_LOG(@"got out of the AppKit startup mutex");
     }
+
+    // Don't set the delegate until the NSApplication has been created and
+    // its finishLaunching has initialized it.
+    //  ApplicationDelegate is the support code for com.apple.eawt.
+    void (^setDelegateBlock)() = ^(){
+        OSXAPP_SetApplicationDelegate([ApplicationDelegate sharedDelegate]);
+    };
+    if (onMainThread) {
+        setDelegateBlock();
+    } else {
+        [JNFRunLoop performOnMainThreadWaiting:YES withBlock:setDelegateBlock];
+    }
 }
 
 - (void)starter:(NSArray*)args {
@@ -340,10 +352,6 @@
     //  AppKit Application.
     NSApplication *app = [NSApplicationAWT sharedApplication];
 
-    // Don't set the delegate until the NSApplication has been created.
-    //  ApplicationDelegate is the support code for com.apple.eawt.
-    OSXAPP_SetApplicationDelegate([ApplicationDelegate sharedDelegate]);
-
     // AWT gets to this point BEFORE NSApplicationDidFinishLaunchingNotification is sent.
     if (![app isRunning]) {
         if (verbose) AWT_DEBUG_LOG(@"+[AWTStarter startAWT]: ![app isRunning]");
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk.properties	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk.properties	Wed Jul 05 18:07:57 2017 +0200
@@ -1,83 +1,54 @@
-# Refer to the note in basic.properties for a description as to what
-# the mnemonics correspond to and how to calculate them.
-
-
-
-# GTK specific properties
-
-# GTK color chooser properties:
-GTKColorChooserPanel.nameText=GTK Color Chooser
-# mnemonic as a VK_ constant
-GTKColorChooserPanel.mnemonic=71
-# Can also define GTKColorChooserPanel.dispalyedMnemonicIndex if you
-# want an index other than would normally be underlined by
-# GTKColorChooserPanel.mnemonic to be underlined. This is only useful
-# if GTKColorChooserPanel.nameText defines the mnemonic character more
-# than once and you want a character other than the first underlined.
-
-# Text and mnemonics for the spinner. You can also defined a different
-# index for the mnemonic via xxxMnemonicIndex, for example
-# GTKColorChooserPanel.hueMnemonicIndex=1 would indicate the second
-# character of GTKColorChooserPanel.hueText should be underlined to
-# represent the mnemonic.
-GTKColorChooserPanel.hueText=Hue:
-GTKColorChooserPanel.hueMnemonic=72
-
-GTKColorChooserPanel.redText=Red:
-GTKColorChooserPanel.redMnemonic=69
-
-GTKColorChooserPanel.saturationText=Saturation:
-GTKColorChooserPanel.saturationMnemonic=83
-
-GTKColorChooserPanel.greenText=Green:
-GTKColorChooserPanel.greenMnemonic=71
-
-GTKColorChooserPanel.valueText=Value:
-GTKColorChooserPanel.valueMnemonic=86
-
-GTKColorChooserPanel.blueText=Blue:
-GTKColorChooserPanel.blueMnemonic=66
-
-GTKColorChooserPanel.colorNameText=Color Name:
-GTKColorChooserPanel.colorNameMnemonic=78
-
-
-
-############ FILE CHOOSER STRINGS #############
-
-FileChooser.acceptAllFileFilterText=All Files
-FileChooser.newFolderButtonText=New Folder
-FileChooser.newFolderButtonMnemonic=78
-FileChooser.newFolderDialogText=Folder name:
-FileChooser.newFolderNoDirectoryErrorTitleText=Error
-FileChooser.newFolderNoDirectoryErrorText=Error creating directory "{0}": No such file or directory
-FileChooser.deleteFileButtonText=Delete File
-FileChooser.deleteFileButtonMnemonic=76
-FileChooser.renameFileButtonText=Rename File
-FileChooser.renameFileButtonMnemonic=82
-FileChooser.cancelButtonText=Cancel
-FileChooser.cancelButtonMnemonic=67
-FileChooser.saveButtonText=OK
-FileChooser.saveButtonMnemonic=79
-FileChooser.openButtonText=OK
-FileChooser.openButtonMnemonic=79
-FileChooser.saveDialogTitleText=Save
-FileChooser.openDialogTitleText=Open
-FileChooser.pathLabelText=Selection:
-FileChooser.filterLabelText=Filter:
-FileChooser.pathLabelMnemonic=83
-FileChooser.foldersLabelText=Folders
-FileChooser.foldersLabelMnemonic=68
-FileChooser.filesLabelText=Files
-FileChooser.filesLabelMnemonic=70
-
-FileChooser.cancelButtonToolTipText=Abort file chooser dialog.
-FileChooser.saveButtonToolTipText=Save selected file.
-FileChooser.openButtonToolTipText=Open selected file.
-
-FileChooser.renameFileDialogText=Rename file "{0}" to
-FileChooser.renameFileErrorTitle=Error 
-FileChooser.renameFileErrorText=Error renaming file "{0}" to "{1}"
-
-OptionPane.okButtonMnemonic=79
-OptionPane.cancelButtonMnemonic=67
+# Refer to the note in basic.properties for a description as to what
+# the mnemonics correspond to and how to calculate them.
+
+
+
+# GTK specific properties
+
+# GTK color chooser properties:
+GTKColorChooserPanel.textAndMnemonic=&GTK Color Chooser
+# mnemonic as a VK_ constant
+
+GTKColorChooserPanel.hue.textAndMnemonic=&Hue:
+
+GTKColorChooserPanel.red.textAndMnemonic=R&ed:
+
+GTKColorChooserPanel.saturation.textAndMnemonic=&Saturation:
+
+GTKColorChooserPanel.green.textAndMnemonic=&Green:
+
+GTKColorChooserPanel.value.textAndMnemonic=&Value:
+
+GTKColorChooserPanel.blue.textAndMnemonic=&Blue:
+
+GTKColorChooserPanel.color.textAndMnemonic=Color &Name:
+
+
+
+############ FILE CHOOSER STRINGS #############
+
+FileChooser.acceptAllFileFilter.textAndMnemonic=All Files
+FileChooser.newFolderButton.textAndMnemonic=&New Folder
+FileChooser.newFolderDialog.textAndMnemonic=Folder name:
+FileChooser.newFolderNoDirectoryErrorTitle.textAndMnemonic=Error
+FileChooser.newFolderNoDirectoryError.textAndMnemonic=Error creating directory "{0}": No such file or directory
+FileChooser.deleteFileButton.textAndMnemonic=De&lete File
+FileChooser.renameFileButton.textAndMnemonic=&Rename File
+FileChooser.cancelButton.textAndMnemonic=&Cancel
+FileChooser.saveButton.textAndMnemonic=&OK
+FileChooser.openButton.textAndMnemonic=&OK
+FileChooser.saveDialogTitle.textAndMnemonic=Save
+FileChooser.openDialogTitle.textAndMnemonic=Open
+FileChooser.pathLabel.textAndMnemonic=&Selection:
+FileChooser.filterLabel.textAndMnemonic=Filter:
+FileChooser.foldersLabel.textAndMnemonic=Fol&ders
+FileChooser.filesLabel.textAndMnemonic=&Files
+
+FileChooser.cancelButtonToolTip.textAndMnemonic=Abort file chooser dialog.
+FileChooser.saveButtonToolTip.textAndMnemonic=Save selected file.
+FileChooser.openButtonToolTip.textAndMnemonic=Open selected file.
+
+FileChooser.renameFileDialog.textAndMnemonic=Rename file "{0}" to
+FileChooser.renameFileError.titleAndMnemonic=Error
+FileChooser.renameFileError.textAndMnemonic=Error renaming file "{0}" to "{1}"
+
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_de.properties	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_de.properties	Wed Jul 05 18:07:57 2017 +0200
@@ -1,88 +1,59 @@
-# Refer to the note in basic.properties for a description as to what
-# the mnemonics correspond to and how to calculate them.
-
-
-
-# GTK specific properties
-
-# GTK color chooser properties:
-GTKColorChooserPanel.nameText=GTK-Farbauswahl
-# mnemonic as a VK_ constant
-GTKColorChooserPanel.mnemonic=71
-# Can also define GTKColorChooserPanel.dispalyedMnemonicIndex if you
-# want an index other than would normally be underlined by
-# GTKColorChooserPanel.mnemonic to be underlined. This is only useful
-# if GTKColorChooserPanel.nameText defines the mnemonic character more
-# than once and you want a character other than the first underlined.
-
-# Text and mnemonics for the spinner. You can also defined a different
-# index for the mnemonic via xxxMnemonicIndex, for example
-# GTKColorChooserPanel.hueMnemonicIndex=1 would indicate the second
-# character of GTKColorChooserPanel.hueText should be underlined to
-# represent the mnemonic.
-GTKColorChooserPanel.hueText=Farbton:
-GTKColorChooserPanel.hueMnemonic=70
-
-GTKColorChooserPanel.redText=Rot:
-GTKColorChooserPanel.redMnemonic=82
-
-GTKColorChooserPanel.saturationText=S\u00E4ttigung:
-GTKColorChooserPanel.saturationMnemonic=83
-
-GTKColorChooserPanel.greenText=Gr\u00FCn:
-GTKColorChooserPanel.greenMnemonic=71
-
-GTKColorChooserPanel.valueText=Wert:
-GTKColorChooserPanel.valueMnemonic=87
-
-GTKColorChooserPanel.blueText=Blau:
-GTKColorChooserPanel.blueMnemonic=66
-
-GTKColorChooserPanel.colorNameText=Farbname:
-GTKColorChooserPanel.colorNameMnemonic=78
-
-
-
-############ FILE CHOOSER STRINGS #############
-
-FileChooser.acceptAllFileFilterText=Alle Dateien
-FileChooser.newFolderButtonText=Neuer Ordner
-FileChooser.newFolderButtonMnemonic=78
-FileChooser.newFolderDialogText=Ordnername:
-FileChooser.newFolderNoDirectoryErrorTitleText=Fehler
-FileChooser.newFolderNoDirectoryErrorText=Fehler beim Erstellen von Verzeichnis "{0}": Datei oder Verzeichnis nicht vorhanden
-FileChooser.deleteFileButtonText=Datei l\u00F6schen
-FileChooser.deleteFileButtonMnemonic=76
-FileChooser.renameFileButtonText=Datei umbenennen
-FileChooser.renameFileButtonMnemonic=85
-FileChooser.cancelButtonText=Abbrechen
-FileChooser.cancelButtonMnemonic=65
-FileChooser.saveButtonText=OK
-FileChooser.saveButtonMnemonic=79
-FileChooser.openButtonText=OK
-FileChooser.openButtonMnemonic=79
-FileChooser.saveDialogTitleText=Speichern
-FileChooser.openDialogTitleText=\u00D6ffnen
-FileChooser.pathLabelText=Auswahl:
-FileChooser.filterLabelText=Filter:
-FileChooser.pathLabelMnemonic=87
-FileChooser.foldersLabelText=Ordner
-FileChooser.foldersLabelMnemonic=79
-FileChooser.filesLabelText=Dateien
-FileChooser.filesLabelMnemonic=68
-
-FileChooser.cancelButtonToolTipText=Dialogfeld f\u00FCr Dateiauswahl schlie\u00DFen.
-FileChooser.saveButtonToolTipText=Ausgew\u00E4hlte Datei speichern.
-FileChooser.openButtonToolTipText=Ausgew\u00E4hlte Datei \u00F6ffnen.
-
-FileChooser.renameFileDialogText=Datei "{0}" umbenennen in
-FileChooser.renameFileErrorTitle=Fehler
-FileChooser.renameFileErrorText=Fehler beim Umbenennen der Datei "{0}" in "{1}"
-
-# dummy resource added for translation automation
-OptionPane.okButtonText=OK
-OptionPane.okButtonMnemonic=79
-# dummy resource added for translation automation
-OptionPane.cancelButtonText=Abbrechen
-OptionPane.cancelButtonMnemonic=65
-
+# Refer to the note in basic.properties for a description as to what
+# the mnemonics correspond to and how to calculate them.
+
+
+
+# GTK specific properties
+
+# GTK color chooser properties:
+GTKColorChooserPanel.textAndMnemonic=&GTK-Farbauswahl
+# mnemonic as a VK_ constant
+
+GTKColorChooserPanel.hue.textAndMnemonic=&Farbton:
+
+GTKColorChooserPanel.red.textAndMnemonic=&Rot:
+
+GTKColorChooserPanel.saturation.textAndMnemonic=S\u00E4ttigung(&S):
+
+GTKColorChooserPanel.green.textAndMnemonic=Gr\u00FCn(&G):
+
+GTKColorChooserPanel.value.textAndMnemonic=&Wert:
+
+GTKColorChooserPanel.blue.textAndMnemonic=&Blau:
+
+GTKColorChooserPanel.color.textAndMnemonic=Farb&name:
+
+
+
+############ FILE CHOOSER STRINGS #############
+
+FileChooser.acceptAllFileFilter.textAndMnemonic=Alle Dateien
+FileChooser.newFolderButton.textAndMnemonic=&Neuer Ordner
+FileChooser.newFolderDialog.textAndMnemonic=Ordnername:
+FileChooser.newFolderNoDirectoryErrorTitle.textAndMnemonic=Fehler
+FileChooser.newFolderNoDirectoryError.textAndMnemonic=Fehler beim Erstellen von Verzeichnis "{0}": Datei oder Verzeichnis nicht vorhanden
+FileChooser.deleteFileButton.textAndMnemonic=Datei l\u00F6schen(&L)
+FileChooser.renameFileButton.textAndMnemonic=Datei &umbenennen
+FileChooser.cancelButton.textAndMnemonic=&Abbrechen
+FileChooser.saveButton.textAndMnemonic=&OK
+FileChooser.openButton.textAndMnemonic=&OK
+FileChooser.saveDialogTitle.textAndMnemonic=Speichern
+FileChooser.openDialogTitle.textAndMnemonic=\u00D6ffnen
+FileChooser.pathLabel.textAndMnemonic=Aus&wahl:
+FileChooser.filterLabel.textAndMnemonic=Filter:
+FileChooser.foldersLabel.textAndMnemonic=&Ordner
+FileChooser.filesLabel.textAndMnemonic=&Dateien
+
+FileChooser.cancelButtonToolTip.textAndMnemonic=Dialogfeld f\u00FCr Dateiauswahl schlie\u00DFen.
+FileChooser.saveButtonToolTip.textAndMnemonic=Ausgew\u00E4hlte Datei speichern.
+FileChooser.openButtonToolTip.textAndMnemonic=Ausgew\u00E4hlte Datei \u00F6ffnen.
+
+FileChooser.renameFileDialog.textAndMnemonic=Datei "{0}" umbenennen in
+FileChooser.renameFileError.titleAndMnemonic=Fehler
+FileChooser.renameFileError.textAndMnemonic=Fehler beim Umbenennen der Datei "{0}" in "{1}"
+
+# dummy resource added for translation automation
+OptionPane.okButton.textAndMnemonic=&OK
+# dummy resource added for translation automation
+OptionPane.cancelButton.textAndMnemonic=&Abbrechen
+
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_es.properties	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_es.properties	Wed Jul 05 18:07:57 2017 +0200
@@ -1,88 +1,59 @@
-# Refer to the note in basic.properties for a description as to what
-# the mnemonics correspond to and how to calculate them.
-
-
-
-# GTK specific properties
-
-# GTK color chooser properties:
-GTKColorChooserPanel.nameText=Selector de Color para GTK
-# mnemonic as a VK_ constant
-GTKColorChooserPanel.mnemonic=71
-# Can also define GTKColorChooserPanel.dispalyedMnemonicIndex if you
-# want an index other than would normally be underlined by
-# GTKColorChooserPanel.mnemonic to be underlined. This is only useful
-# if GTKColorChooserPanel.nameText defines the mnemonic character more
-# than once and you want a character other than the first underlined.
-
-# Text and mnemonics for the spinner. You can also defined a different
-# index for the mnemonic via xxxMnemonicIndex, for example
-# GTKColorChooserPanel.hueMnemonicIndex=1 would indicate the second
-# character of GTKColorChooserPanel.hueText should be underlined to
-# represent the mnemonic.
-GTKColorChooserPanel.hueText=Mat:
-GTKColorChooserPanel.hueMnemonic=77
-
-GTKColorChooserPanel.redText=Rojo:
-GTKColorChooserPanel.redMnemonic=74
-
-GTKColorChooserPanel.saturationText=Saturaci\u00F3n:
-GTKColorChooserPanel.saturationMnemonic=83
-
-GTKColorChooserPanel.greenText=Verde:
-GTKColorChooserPanel.greenMnemonic=69
-
-GTKColorChooserPanel.valueText=Valor:
-GTKColorChooserPanel.valueMnemonic=86
-
-GTKColorChooserPanel.blueText=Azul:
-GTKColorChooserPanel.blueMnemonic=65
-
-GTKColorChooserPanel.colorNameText=Nombre del Color:
-GTKColorChooserPanel.colorNameMnemonic=78
-
-
-
-############ FILE CHOOSER STRINGS #############
-
-FileChooser.acceptAllFileFilterText=Todos los Archivos
-FileChooser.newFolderButtonText=Nueva Carpeta
-FileChooser.newFolderButtonMnemonic=78
-FileChooser.newFolderDialogText=Nombre de la Carpeta:
-FileChooser.newFolderNoDirectoryErrorTitleText=Error
-FileChooser.newFolderNoDirectoryErrorText=Error al crear el directorio "{0}": no existe dicho archivo o directorio
-FileChooser.deleteFileButtonText=Suprimir Archivo
-FileChooser.deleteFileButtonMnemonic=80
-FileChooser.renameFileButtonText=Cambiar Nombre de Archivo
-FileChooser.renameFileButtonMnemonic=82
-FileChooser.cancelButtonText=Cancelar
-FileChooser.cancelButtonMnemonic=67
-FileChooser.saveButtonText=Aceptar
-FileChooser.saveButtonMnemonic=65
-FileChooser.openButtonText=Aceptar
-FileChooser.openButtonMnemonic=65
-FileChooser.saveDialogTitleText=Guardar
-FileChooser.openDialogTitleText=Abrir
-FileChooser.pathLabelText=Selecci\u00F3n:
-FileChooser.filterLabelText=Filtro:
-FileChooser.pathLabelMnemonic=83
-FileChooser.foldersLabelText=Carpetas
-FileChooser.foldersLabelMnemonic=84
-FileChooser.filesLabelText=Archivos
-FileChooser.filesLabelMnemonic=65
-
-FileChooser.cancelButtonToolTipText=Abortar cuadro de di\u00E1logo del selector de archivos.
-FileChooser.saveButtonToolTipText=Guardar el archivo seleccionado.
-FileChooser.openButtonToolTipText=Abrir el archivo seleccionado.
-
-FileChooser.renameFileDialogText=Cambiar el nombre del archivo "{0}" por
-FileChooser.renameFileErrorTitle=Error
-FileChooser.renameFileErrorText=Error al cambiar el nombre del archivo "{0}" a "{1}"
-
-# dummy resource added for translation automation
-OptionPane.okButtonText=Aceptar
-OptionPane.okButtonMnemonic=65
-# dummy resource added for translation automation
-OptionPane.cancelButtonText=Cancelar
-OptionPane.cancelButtonMnemonic=67
-
+# Refer to the note in basic.properties for a description as to what
+# the mnemonics correspond to and how to calculate them.
+
+
+
+# GTK specific properties
+
+# GTK color chooser properties:
+GTKColorChooserPanel.textAndMnemonic=Selector de Color para &GTK
+# mnemonic as a VK_ constant
+
+GTKColorChooserPanel.hue.textAndMnemonic=&Mat:
+
+GTKColorChooserPanel.red.textAndMnemonic=Ro&jo:
+
+GTKColorChooserPanel.saturation.textAndMnemonic=Saturaci\u00F3n(&S):
+
+GTKColorChooserPanel.green.textAndMnemonic=V&erde:
+
+GTKColorChooserPanel.value.textAndMnemonic=&Valor:
+
+GTKColorChooserPanel.blue.textAndMnemonic=&Azul:
+
+GTKColorChooserPanel.color.textAndMnemonic=&Nombre del Color:
+
+
+
+############ FILE CHOOSER STRINGS #############
+
+FileChooser.acceptAllFileFilter.textAndMnemonic=Todos los Archivos
+FileChooser.newFolderButton.textAndMnemonic=&Nueva Carpeta
+FileChooser.newFolderDialog.textAndMnemonic=Nombre de la Carpeta:
+FileChooser.newFolderNoDirectoryErrorTitle.textAndMnemonic=Error
+FileChooser.newFolderNoDirectoryError.textAndMnemonic=Error al crear el directorio "{0}": no existe dicho archivo o directorio
+FileChooser.deleteFileButton.textAndMnemonic=Su&primir Archivo
+FileChooser.renameFileButton.textAndMnemonic=Cambia&r Nombre de Archivo
+FileChooser.cancelButton.textAndMnemonic=&Cancelar
+FileChooser.saveButton.textAndMnemonic=&Aceptar
+FileChooser.openButton.textAndMnemonic=&Aceptar
+FileChooser.saveDialogTitle.textAndMnemonic=Guardar
+FileChooser.openDialogTitle.textAndMnemonic=Abrir
+FileChooser.pathLabel.textAndMnemonic=Selecci\u00F3n(&S):
+FileChooser.filterLabel.textAndMnemonic=Filtro:
+FileChooser.foldersLabel.textAndMnemonic=Carpe&tas
+FileChooser.filesLabel.textAndMnemonic=&Archivos
+
+FileChooser.cancelButtonToolTip.textAndMnemonic=Abortar cuadro de di\u00E1logo del selector de archivos.
+FileChooser.saveButtonToolTip.textAndMnemonic=Guardar el archivo seleccionado.
+FileChooser.openButtonToolTip.textAndMnemonic=Abrir el archivo seleccionado.
+
+FileChooser.renameFileDialog.textAndMnemonic=Cambiar el nombre del archivo "{0}" por
+FileChooser.renameFileError.titleAndMnemonic=Error
+FileChooser.renameFileError.textAndMnemonic=Error al cambiar el nombre del archivo "{0}" a "{1}"
+
+# dummy resource added for translation automation
+OptionPane.okButton.textAndMnemonic=&Aceptar
+# dummy resource added for translation automation
+OptionPane.cancelButton.textAndMnemonic=&Cancelar
+
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_fr.properties	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_fr.properties	Wed Jul 05 18:07:57 2017 +0200
@@ -1,88 +1,59 @@
-# Refer to the note in basic.properties for a description as to what
-# the mnemonics correspond to and how to calculate them.
-
-
-
-# GTK specific properties
-
-# GTK color chooser properties:
-GTKColorChooserPanel.nameText=S\u00E9lecteur de couleurs GTK
-# mnemonic as a VK_ constant
-GTKColorChooserPanel.mnemonic=71
-# Can also define GTKColorChooserPanel.dispalyedMnemonicIndex if you
-# want an index other than would normally be underlined by
-# GTKColorChooserPanel.mnemonic to be underlined. This is only useful
-# if GTKColorChooserPanel.nameText defines the mnemonic character more
-# than once and you want a character other than the first underlined.
-
-# Text and mnemonics for the spinner. You can also defined a different
-# index for the mnemonic via xxxMnemonicIndex, for example
-# GTKColorChooserPanel.hueMnemonicIndex=1 would indicate the second
-# character of GTKColorChooserPanel.hueText should be underlined to
-# represent the mnemonic.
-GTKColorChooserPanel.hueText=Teinte :
-GTKColorChooserPanel.hueMnemonic=84
-
-GTKColorChooserPanel.redText=Rouge\u00A0:
-GTKColorChooserPanel.redMnemonic=69
-
-GTKColorChooserPanel.saturationText=Saturation :
-GTKColorChooserPanel.saturationMnemonic=83
-
-GTKColorChooserPanel.greenText=Vert :
-GTKColorChooserPanel.greenMnemonic=69
-
-GTKColorChooserPanel.valueText=Valeur :
-GTKColorChooserPanel.valueMnemonic=86
-
-GTKColorChooserPanel.blueText=Bleu :
-GTKColorChooserPanel.blueMnemonic=66
-
-GTKColorChooserPanel.colorNameText=Nom de couleur :
-GTKColorChooserPanel.colorNameMnemonic=78
-
-
-
-############ FILE CHOOSER STRINGS #############
-
-FileChooser.acceptAllFileFilterText=Tous les fichiers
-FileChooser.newFolderButtonText=Nouveau dossier
-FileChooser.newFolderButtonMnemonic=78
-FileChooser.newFolderDialogText=Nom du dossier :
-FileChooser.newFolderNoDirectoryErrorTitleText=Erreur
-FileChooser.newFolderNoDirectoryErrorText=Erreur lors de la cr\u00E9ation du r\u00E9pertoire "{0}" : ce fichier ou r\u00E9pertoire n''existe pas
-FileChooser.deleteFileButtonText=Supprimer le fichier
-FileChooser.deleteFileButtonMnemonic=76
-FileChooser.renameFileButtonText=Renommer le fichier
-FileChooser.renameFileButtonMnemonic=82
-FileChooser.cancelButtonText=Annuler
-FileChooser.cancelButtonMnemonic=65
-FileChooser.saveButtonText=OK
-FileChooser.saveButtonMnemonic=79
-FileChooser.openButtonText=OK
-FileChooser.openButtonMnemonic=79
-FileChooser.saveDialogTitleText=Enregistrer
-FileChooser.openDialogTitleText=Ouvrir
-FileChooser.pathLabelText=S\u00E9lection :
-FileChooser.filterLabelText=Filtre :
-FileChooser.pathLabelMnemonic=83
-FileChooser.foldersLabelText=Dossiers
-FileChooser.foldersLabelMnemonic=68
-FileChooser.filesLabelText=Fichiers
-FileChooser.filesLabelMnemonic=70
-
-FileChooser.cancelButtonToolTipText=Ferme la bo\u00EEte de dialogue du s\u00E9lecteur de fichiers.
-FileChooser.saveButtonToolTipText=Enregistre le fichier s\u00E9lectionn\u00E9.
-FileChooser.openButtonToolTipText=Ouvre le fichier s\u00E9lectionn\u00E9.
-
-FileChooser.renameFileDialogText=Renomme le fichier "{0}" en
-FileChooser.renameFileErrorTitle=Erreur
-FileChooser.renameFileErrorText=Erreur lors du changement de nom du fichier "{0}" en "{1}"
-
-# dummy resource added for translation automation
-OptionPane.okButtonText=OK
-OptionPane.okButtonMnemonic=79
-# dummy resource added for translation automation
-OptionPane.cancelButtonText=Annuler
-OptionPane.cancelButtonMnemonic=65
-
+# Refer to the note in basic.properties for a description as to what
+# the mnemonics correspond to and how to calculate them.
+
+
+
+# GTK specific properties
+
+# GTK color chooser properties:
+GTKColorChooserPanel.textAndMnemonic=S\u00E9lecteur de couleurs GTK(&G)
+# mnemonic as a VK_ constant
+
+GTKColorChooserPanel.hue.textAndMnemonic=&Teinte :
+
+GTKColorChooserPanel.red.textAndMnemonic=Rouge\u00A0(&E):
+
+GTKColorChooserPanel.saturation.textAndMnemonic=&Saturation :
+
+GTKColorChooserPanel.green.textAndMnemonic=V&ert :
+
+GTKColorChooserPanel.value.textAndMnemonic=&Valeur :
+
+GTKColorChooserPanel.blue.textAndMnemonic=&Bleu :
+
+GTKColorChooserPanel.color.textAndMnemonic=&Nom de couleur :
+
+
+
+############ FILE CHOOSER STRINGS #############
+
+FileChooser.acceptAllFileFilter.textAndMnemonic=Tous les fichiers
+FileChooser.newFolderButton.textAndMnemonic=&Nouveau dossier
+FileChooser.newFolderDialog.textAndMnemonic=Nom du dossier :
+FileChooser.newFolderNoDirectoryErrorTitle.textAndMnemonic=Erreur
+FileChooser.newFolderNoDirectoryError.textAndMnemonic=Erreur lors de la cr\u00E9ation du r\u00E9pertoire "{0}" : ce fichier ou r\u00E9pertoire n''existe pas
+FileChooser.deleteFileButton.textAndMnemonic=Supprimer &le fichier
+FileChooser.renameFileButton.textAndMnemonic=&Renommer le fichier
+FileChooser.cancelButton.textAndMnemonic=&Annuler
+FileChooser.saveButton.textAndMnemonic=&OK
+FileChooser.openButton.textAndMnemonic=&OK
+FileChooser.saveDialogTitle.textAndMnemonic=Enregistrer
+FileChooser.openDialogTitle.textAndMnemonic=Ouvrir
+FileChooser.pathLabel.textAndMnemonic=S\u00E9lection (&S):
+FileChooser.filterLabel.textAndMnemonic=Filtre :
+FileChooser.foldersLabel.textAndMnemonic=&Dossiers
+FileChooser.filesLabel.textAndMnemonic=&Fichiers
+
+FileChooser.cancelButtonToolTip.textAndMnemonic=Ferme la bo\u00EEte de dialogue du s\u00E9lecteur de fichiers.
+FileChooser.saveButtonToolTip.textAndMnemonic=Enregistre le fichier s\u00E9lectionn\u00E9.
+FileChooser.openButtonToolTip.textAndMnemonic=Ouvre le fichier s\u00E9lectionn\u00E9.
+
+FileChooser.renameFileDialog.textAndMnemonic=Renomme le fichier "{0}" en
+FileChooser.renameFileError.titleAndMnemonic=Erreur
+FileChooser.renameFileError.textAndMnemonic=Erreur lors du changement de nom du fichier "{0}" en "{1}"
+
+# dummy resource added for translation automation
+OptionPane.okButton.textAndMnemonic=&OK
+# dummy resource added for translation automation
+OptionPane.cancelButton.textAndMnemonic=&Annuler
+
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_it.properties	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_it.properties	Wed Jul 05 18:07:57 2017 +0200
@@ -1,88 +1,59 @@
-# Refer to the note in basic.properties for a description as to what
-# the mnemonics correspond to and how to calculate them.
-
-
-
-# GTK specific properties
-
-# GTK color chooser properties:
-GTKColorChooserPanel.nameText=Selezione colore GTK
-# mnemonic as a VK_ constant
-GTKColorChooserPanel.mnemonic=71
-# Can also define GTKColorChooserPanel.dispalyedMnemonicIndex if you
-# want an index other than would normally be underlined by
-# GTKColorChooserPanel.mnemonic to be underlined. This is only useful
-# if GTKColorChooserPanel.nameText defines the mnemonic character more
-# than once and you want a character other than the first underlined.
-
-# Text and mnemonics for the spinner. You can also defined a different
-# index for the mnemonic via xxxMnemonicIndex, for example
-# GTKColorChooserPanel.hueMnemonicIndex=1 would indicate the second
-# character of GTKColorChooserPanel.hueText should be underlined to
-# represent the mnemonic.
-GTKColorChooserPanel.hueText=Ton.:
-GTKColorChooserPanel.hueMnemonic=84
-
-GTKColorChooserPanel.redText=Rosso:
-GTKColorChooserPanel.redMnemonic=79
-
-GTKColorChooserPanel.saturationText=Saturazione:
-GTKColorChooserPanel.saturationMnemonic=83
-
-GTKColorChooserPanel.greenText=Verde:
-GTKColorChooserPanel.greenMnemonic=69
-
-GTKColorChooserPanel.valueText=Valore:
-GTKColorChooserPanel.valueMnemonic=86
-
-GTKColorChooserPanel.blueText=Blu:
-GTKColorChooserPanel.blueMnemonic=66
-
-GTKColorChooserPanel.colorNameText=Nome colore:
-GTKColorChooserPanel.colorNameMnemonic=78
-
-
-
-############ FILE CHOOSER STRINGS #############
-
-FileChooser.acceptAllFileFilterText=Tutti i file
-FileChooser.newFolderButtonText=Nuova cartella
-FileChooser.newFolderButtonMnemonic=78
-FileChooser.newFolderDialogText=Nome della cartella:
-FileChooser.newFolderNoDirectoryErrorTitleText=Errore
-FileChooser.newFolderNoDirectoryErrorText=Errore durante la creazione della directory "{0}": file o directory inesistente
-FileChooser.deleteFileButtonText=Elimina file
-FileChooser.deleteFileButtonMnemonic=76
-FileChooser.renameFileButtonText=Rinomina file
-FileChooser.renameFileButtonMnemonic=82
-FileChooser.cancelButtonText=Annulla
-FileChooser.cancelButtonMnemonic=65
-FileChooser.saveButtonText=OK
-FileChooser.saveButtonMnemonic=79
-FileChooser.openButtonText=OK
-FileChooser.openButtonMnemonic=79
-FileChooser.saveDialogTitleText=Salva
-FileChooser.openDialogTitleText=Apri
-FileChooser.pathLabelText=Selezione:
-FileChooser.filterLabelText=Filtro:
-FileChooser.pathLabelMnemonic=83
-FileChooser.foldersLabelText=Cartelle
-FileChooser.foldersLabelMnemonic=84
-FileChooser.filesLabelText=File
-FileChooser.filesLabelMnemonic=70
-
-FileChooser.cancelButtonToolTipText=Chiude la finestra di dialogo di selezione file.
-FileChooser.saveButtonToolTipText=Salva il file selezionato.
-FileChooser.openButtonToolTipText=Apre il file selezionato.
-
-FileChooser.renameFileDialogText=Rinomina file "{0}" in
-FileChooser.renameFileErrorTitle=Errore
-FileChooser.renameFileErrorText=Errore durante la ridenominazione del file "{0}" in "{1}"
-
-# dummy resource added for translation automation
-OptionPane.okButtonText=OK
-OptionPane.okButtonMnemonic=79
-# dummy resource added for translation automation
-OptionPane.cancelButtonText=Annulla
-OptionPane.cancelButtonMnemonic=65
-
+# Refer to the note in basic.properties for a description as to what
+# the mnemonics correspond to and how to calculate them.
+
+
+
+# GTK specific properties
+
+# GTK color chooser properties:
+GTKColorChooserPanel.textAndMnemonic=Selezione colore &GTK
+# mnemonic as a VK_ constant
+
+GTKColorChooserPanel.hue.textAndMnemonic=&Ton.:
+
+GTKColorChooserPanel.red.textAndMnemonic=R&osso:
+
+GTKColorChooserPanel.saturation.textAndMnemonic=&Saturazione:
+
+GTKColorChooserPanel.green.textAndMnemonic=V&erde:
+
+GTKColorChooserPanel.value.textAndMnemonic=&Valore:
+
+GTKColorChooserPanel.blue.textAndMnemonic=&Blu:
+
+GTKColorChooserPanel.color.textAndMnemonic=&Nome colore:
+
+
+
+############ FILE CHOOSER STRINGS #############
+
+FileChooser.acceptAllFileFilter.textAndMnemonic=Tutti i file
+FileChooser.newFolderButton.textAndMnemonic=&Nuova cartella
+FileChooser.newFolderDialog.textAndMnemonic=Nome della cartella:
+FileChooser.newFolderNoDirectoryErrorTitle.textAndMnemonic=Errore
+FileChooser.newFolderNoDirectoryError.textAndMnemonic=Errore durante la creazione della directory "{0}": file o directory inesistente
+FileChooser.deleteFileButton.textAndMnemonic=E&limina file
+FileChooser.renameFileButton.textAndMnemonic=&Rinomina file
+FileChooser.cancelButton.textAndMnemonic=&Annulla
+FileChooser.saveButton.textAndMnemonic=&OK
+FileChooser.openButton.textAndMnemonic=&OK
+FileChooser.saveDialogTitle.textAndMnemonic=Salva
+FileChooser.openDialogTitle.textAndMnemonic=Apri
+FileChooser.pathLabel.textAndMnemonic=&Selezione:
+FileChooser.filterLabel.textAndMnemonic=Filtro:
+FileChooser.foldersLabel.textAndMnemonic=Car&telle
+FileChooser.filesLabel.textAndMnemonic=&File
+
+FileChooser.cancelButtonToolTip.textAndMnemonic=Chiude la finestra di dialogo di selezione file.
+FileChooser.saveButtonToolTip.textAndMnemonic=Salva il file selezionato.
+FileChooser.openButtonToolTip.textAndMnemonic=Apre il file selezionato.
+
+FileChooser.renameFileDialog.textAndMnemonic=Rinomina file "{0}" in
+FileChooser.renameFileError.titleAndMnemonic=Errore
+FileChooser.renameFileError.textAndMnemonic=Errore durante la ridenominazione del file "{0}" in "{1}"
+
+# dummy resource added for translation automation
+OptionPane.okButton.textAndMnemonic=&OK
+# dummy resource added for translation automation
+OptionPane.cancelButton.textAndMnemonic=&Annulla
+
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_ja.properties	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_ja.properties	Wed Jul 05 18:07:57 2017 +0200
@@ -1,84 +1,55 @@
-# Refer to the note in basic.properties for a description as to what
-# the mnemonics correspond to and how to calculate them.
-
-
-
-# GTK specific properties
-
-# GTK color chooser properties:
-GTKColorChooserPanel.nameText=GTK\u30AB\u30E9\u30FC\u30FB\u30C1\u30E5\u30FC\u30B6(G)
-# mnemonic as a VK_ constant
-GTKColorChooserPanel.mnemonic=71
-# Can also define GTKColorChooserPanel.dispalyedMnemonicIndex if you
-# want an index other than would normally be underlined by
-# GTKColorChooserPanel.mnemonic to be underlined. This is only useful
-# if GTKColorChooserPanel.nameText defines the mnemonic character more
-# than once and you want a character other than the first underlined.
-
-# Text and mnemonics for the spinner. You can also defined a different
-# index for the mnemonic via xxxMnemonicIndex, for example
-# GTKColorChooserPanel.hueMnemonicIndex=1 would indicate the second
-# character of GTKColorChooserPanel.hueText should be underlined to
-# represent the mnemonic.
-GTKColorChooserPanel.hueText=\u8272\u76F8(H):
-GTKColorChooserPanel.hueMnemonic=72
-
-GTKColorChooserPanel.redText=\u8D64(E):
-GTKColorChooserPanel.redMnemonic=69
-
-GTKColorChooserPanel.saturationText=\u5F69\u5EA6(S):
-GTKColorChooserPanel.saturationMnemonic=83
-
-GTKColorChooserPanel.greenText=\u7DD1(G):
-GTKColorChooserPanel.greenMnemonic=71
-
-GTKColorChooserPanel.valueText=\u5024(V):
-GTKColorChooserPanel.valueMnemonic=86
-
-GTKColorChooserPanel.blueText=\u9752(B):
-GTKColorChooserPanel.blueMnemonic=66
-
-GTKColorChooserPanel.colorNameText=\u8272\u540D(N):
-GTKColorChooserPanel.colorNameMnemonic=78
-
-
-
-############ FILE CHOOSER STRINGS #############
-
-FileChooser.acceptAllFileFilterText=\u3059\u3079\u3066\u306E\u30D5\u30A1\u30A4\u30EB
-FileChooser.newFolderButtonText=\u65B0\u898F\u30D5\u30A9\u30EB\u30C0(N)
-FileChooser.newFolderButtonMnemonic=78
-FileChooser.newFolderDialogText=\u30D5\u30A9\u30EB\u30C0\u540D:
-FileChooser.newFolderNoDirectoryErrorTitleText=\u30A8\u30E9\u30FC
-FileChooser.newFolderNoDirectoryErrorText=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA"{0}"\u306E\u4F5C\u6210\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F: \u3053\u306E\u30D5\u30A1\u30A4\u30EB\u307E\u305F\u306F\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306F\u5B58\u5728\u3057\u307E\u305B\u3093
-FileChooser.deleteFileButtonText=\u30D5\u30A1\u30A4\u30EB\u306E\u524A\u9664(L)
-FileChooser.deleteFileButtonMnemonic=76
-FileChooser.renameFileButtonText=\u30D5\u30A1\u30A4\u30EB\u306E\u540D\u524D\u5909\u66F4(R)
-FileChooser.renameFileButtonMnemonic=82
-FileChooser.cancelButtonText=\u53D6\u6D88
-FileChooser.cancelButtonMnemonic=67
-FileChooser.saveButtonText=OK
-FileChooser.saveButtonMnemonic=79
-FileChooser.openButtonText=OK
-FileChooser.openButtonMnemonic=79
-FileChooser.saveDialogTitleText=\u4FDD\u5B58
-FileChooser.openDialogTitleText=\u958B\u304F
-FileChooser.pathLabelText=\u9078\u629E(S):
-FileChooser.filterLabelText=\u30D5\u30A3\u30EB\u30BF:
-FileChooser.pathLabelMnemonic=83
-FileChooser.foldersLabelText=\u30D5\u30A9\u30EB\u30C0(D)
-FileChooser.foldersLabelMnemonic=68
-FileChooser.filesLabelText=\u30D5\u30A1\u30A4\u30EB(F)
-FileChooser.filesLabelMnemonic=70
-
-FileChooser.cancelButtonToolTipText=\u30D5\u30A1\u30A4\u30EB\u30FB\u30C1\u30E5\u30FC\u30B6\u30FB\u30C0\u30A4\u30A2\u30ED\u30B0\u3092\u7D42\u4E86\u3057\u307E\u3059\u3002
-FileChooser.saveButtonToolTipText=\u9078\u629E\u3057\u305F\u30D5\u30A1\u30A4\u30EB\u3092\u4FDD\u5B58\u3057\u307E\u3059\u3002
-FileChooser.openButtonToolTipText=\u9078\u629E\u3057\u305F\u30D5\u30A1\u30A4\u30EB\u3092\u958B\u304D\u307E\u3059\u3002
-
-FileChooser.renameFileDialogText=\u30D5\u30A1\u30A4\u30EB"{0}"\u3092\u6B21\u306E\u540D\u524D\u306B\u5909\u66F4:
-FileChooser.renameFileErrorTitle=\u30A8\u30E9\u30FC
-FileChooser.renameFileErrorText=\u30D5\u30A1\u30A4\u30EB"{0}"\u306E"{1}"\u3078\u306E\u5909\u66F4\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F
-
-#OptionPane.okButtonMnemonic=79
-#OptionPane.cancelButtonMnemonic=67
-
+# Refer to the note in basic.properties for a description as to what
+# the mnemonics correspond to and how to calculate them.
+
+
+
+# GTK specific properties
+
+# GTK color chooser properties:
+GTKColorChooserPanel.textAndMnemonic=GTK\u30AB\u30E9\u30FC\u30FB\u30C1\u30E5\u30FC\u30B6(&G)
+# mnemonic as a VK_ constant
+
+GTKColorChooserPanel.hue.textAndMnemonic=\u8272\u76F8(&H):
+
+GTKColorChooserPanel.red.textAndMnemonic=\u8D64(&E):
+
+GTKColorChooserPanel.saturation.textAndMnemonic=\u5F69\u5EA6(&S):
+
+GTKColorChooserPanel.green.textAndMnemonic=\u7DD1(&G):
+
+GTKColorChooserPanel.value.textAndMnemonic=\u5024(&V):
+
+GTKColorChooserPanel.blue.textAndMnemonic=\u9752(&B):
+
+GTKColorChooserPanel.color.textAndMnemonic=\u8272\u540D(&N):
+
+
+
+############ FILE CHOOSER STRINGS #############
+
+FileChooser.acceptAllFileFilter.textAndMnemonic=\u3059\u3079\u3066\u306E\u30D5\u30A1\u30A4\u30EB
+FileChooser.newFolderButton.textAndMnemonic=\u65B0\u898F\u30D5\u30A9\u30EB\u30C0(&N)
+FileChooser.newFolderDialog.textAndMnemonic=\u30D5\u30A9\u30EB\u30C0\u540D:
+FileChooser.newFolderNoDirectoryErrorTitle.textAndMnemonic=\u30A8\u30E9\u30FC
+FileChooser.newFolderNoDirectoryError.textAndMnemonic=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA"{0}"\u306E\u4F5C\u6210\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F: \u3053\u306E\u30D5\u30A1\u30A4\u30EB\u307E\u305F\u306F\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306F\u5B58\u5728\u3057\u307E\u305B\u3093
+FileChooser.deleteFileButton.textAndMnemonic=\u30D5\u30A1\u30A4\u30EB\u306E\u524A\u9664(&L)
+FileChooser.renameFileButton.textAndMnemonic=\u30D5\u30A1\u30A4\u30EB\u306E\u540D\u524D\u5909\u66F4(&R)
+FileChooser.cancelButton.textAndMnemonic=\u53D6\u6D88(&C)
+FileChooser.saveButton.textAndMnemonic=&OK
+FileChooser.openButton.textAndMnemonic=&OK
+FileChooser.saveDialogTitle.textAndMnemonic=\u4FDD\u5B58
+FileChooser.openDialogTitle.textAndMnemonic=\u958B\u304F
+FileChooser.pathLabel.textAndMnemonic=\u9078\u629E(&S):
+FileChooser.filterLabel.textAndMnemonic=\u30D5\u30A3\u30EB\u30BF:
+FileChooser.foldersLabel.textAndMnemonic=\u30D5\u30A9\u30EB\u30C0(&D)
+FileChooser.filesLabel.textAndMnemonic=\u30D5\u30A1\u30A4\u30EB(&F)
+
+FileChooser.cancelButtonToolTip.textAndMnemonic=\u30D5\u30A1\u30A4\u30EB\u30FB\u30C1\u30E5\u30FC\u30B6\u30FB\u30C0\u30A4\u30A2\u30ED\u30B0\u3092\u7D42\u4E86\u3057\u307E\u3059\u3002
+FileChooser.saveButtonToolTip.textAndMnemonic=\u9078\u629E\u3057\u305F\u30D5\u30A1\u30A4\u30EB\u3092\u4FDD\u5B58\u3057\u307E\u3059\u3002
+FileChooser.openButtonToolTip.textAndMnemonic=\u9078\u629E\u3057\u305F\u30D5\u30A1\u30A4\u30EB\u3092\u958B\u304D\u307E\u3059\u3002
+
+FileChooser.renameFileDialog.textAndMnemonic=\u30D5\u30A1\u30A4\u30EB"{0}"\u3092\u6B21\u306E\u540D\u524D\u306B\u5909\u66F4:
+FileChooser.renameFileError.titleAndMnemonic=\u30A8\u30E9\u30FC
+FileChooser.renameFileError.textAndMnemonic=\u30D5\u30A1\u30A4\u30EB"{0}"\u306E"{1}"\u3078\u306E\u5909\u66F4\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F
+
+
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_ko.properties	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_ko.properties	Wed Jul 05 18:07:57 2017 +0200
@@ -1,84 +1,55 @@
-# Refer to the note in basic.properties for a description as to what
-# the mnemonics correspond to and how to calculate them.
-
-
-
-# GTK specific properties
-
-# GTK color chooser properties:
-GTKColorChooserPanel.nameText=GTK \uC0C9\uC0C1 \uC120\uD0DD\uAE30(G)
-# mnemonic as a VK_ constant
-GTKColorChooserPanel.mnemonic=71
-# Can also define GTKColorChooserPanel.dispalyedMnemonicIndex if you
-# want an index other than would normally be underlined by
-# GTKColorChooserPanel.mnemonic to be underlined. This is only useful
-# if GTKColorChooserPanel.nameText defines the mnemonic character more
-# than once and you want a character other than the first underlined.
-
-# Text and mnemonics for the spinner. You can also defined a different
-# index for the mnemonic via xxxMnemonicIndex, for example
-# GTKColorChooserPanel.hueMnemonicIndex=1 would indicate the second
-# character of GTKColorChooserPanel.hueText should be underlined to
-# represent the mnemonic.
-GTKColorChooserPanel.hueText=\uC0C9\uC870(H):
-GTKColorChooserPanel.hueMnemonic=72
-
-GTKColorChooserPanel.redText=\uBE68\uAC04\uC0C9(E):
-GTKColorChooserPanel.redMnemonic=69
-
-GTKColorChooserPanel.saturationText=\uCC44\uB3C4(S):
-GTKColorChooserPanel.saturationMnemonic=83
-
-GTKColorChooserPanel.greenText=\uB179\uC0C9(G):
-GTKColorChooserPanel.greenMnemonic=71
-
-GTKColorChooserPanel.valueText=\uAC12(V):
-GTKColorChooserPanel.valueMnemonic=86
-
-GTKColorChooserPanel.blueText=\uD30C\uB780\uC0C9(B):
-GTKColorChooserPanel.blueMnemonic=66
-
-GTKColorChooserPanel.colorNameText=\uC0C9\uC0C1 \uC774\uB984(N):
-GTKColorChooserPanel.colorNameMnemonic=78
-
-
-
-############ FILE CHOOSER STRINGS #############
-
-FileChooser.acceptAllFileFilterText=\uBAA8\uB4E0 \uD30C\uC77C
-FileChooser.newFolderButtonText=\uC0C8 \uD3F4\uB354(N)
-FileChooser.newFolderButtonMnemonic=78
-FileChooser.newFolderDialogText=\uD3F4\uB354 \uC774\uB984:
-FileChooser.newFolderNoDirectoryErrorTitleText=\uC624\uB958
-FileChooser.newFolderNoDirectoryErrorText="{0}" \uB514\uB809\uD1A0\uB9AC\uB97C \uC0DD\uC131\uD558\uB294 \uC911 \uC624\uB958 \uBC1C\uC0DD: \uD574\uB2F9 \uD30C\uC77C \uB610\uB294 \uB514\uB809\uD1A0\uB9AC\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.
-FileChooser.deleteFileButtonText=\uD30C\uC77C \uC0AD\uC81C(L)
-FileChooser.deleteFileButtonMnemonic=76
-FileChooser.renameFileButtonText=\uD30C\uC77C \uC774\uB984 \uBC14\uAFB8\uAE30(R)
-FileChooser.renameFileButtonMnemonic=82
-FileChooser.cancelButtonText=\uCDE8\uC18C
-FileChooser.cancelButtonMnemonic=67
-FileChooser.saveButtonText=\uD655\uC778
-FileChooser.saveButtonMnemonic=79
-FileChooser.openButtonText=\uD655\uC778
-FileChooser.openButtonMnemonic=79
-FileChooser.saveDialogTitleText=\uC800\uC7A5
-FileChooser.openDialogTitleText=\uC5F4\uAE30
-FileChooser.pathLabelText=\uC120\uD0DD \uC0AC\uD56D(S):
-FileChooser.filterLabelText=\uD544\uD130:
-FileChooser.pathLabelMnemonic=83
-FileChooser.foldersLabelText=\uD3F4\uB354(D)
-FileChooser.foldersLabelMnemonic=68
-FileChooser.filesLabelText=\uD30C\uC77C(F)
-FileChooser.filesLabelMnemonic=70
-
-FileChooser.cancelButtonToolTipText=\uD30C\uC77C \uC120\uD0DD\uAE30 \uB300\uD654\uC0C1\uC790\uB97C \uC911\uB2E8\uD569\uB2C8\uB2E4.
-FileChooser.saveButtonToolTipText=\uC120\uD0DD\uB41C \uD30C\uC77C\uC744 \uC800\uC7A5\uD569\uB2C8\uB2E4.
-FileChooser.openButtonToolTipText=\uC120\uD0DD\uB41C \uD30C\uC77C\uC744 \uC5FD\uB2C8\uB2E4.
-
-FileChooser.renameFileDialogText="{0}" \uD30C\uC77C\uC758 \uC774\uB984 \uBC14\uAFB8\uAE30
-FileChooser.renameFileErrorTitle=\uC624\uB958
-FileChooser.renameFileErrorText="{0}" \uD30C\uC77C\uC758 \uC774\uB984\uC744 "{1}"(\uC73C)\uB85C \uBC14\uAFB8\uB294 \uC911 \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4.
-
-#OptionPane.okButtonMnemonic=79
-#OptionPane.cancelButtonMnemonic=67
-
+# Refer to the note in basic.properties for a description as to what
+# the mnemonics correspond to and how to calculate them.
+
+
+
+# GTK specific properties
+
+# GTK color chooser properties:
+GTKColorChooserPanel.textAndMnemonic=GTK \uC0C9\uC0C1 \uC120\uD0DD\uAE30(&G)
+# mnemonic as a VK_ constant
+
+GTKColorChooserPanel.hue.textAndMnemonic=\uC0C9\uC870(&H):
+
+GTKColorChooserPanel.red.textAndMnemonic=\uBE68\uAC04\uC0C9(&E):
+
+GTKColorChooserPanel.saturation.textAndMnemonic=\uCC44\uB3C4(&S):
+
+GTKColorChooserPanel.green.textAndMnemonic=\uB179\uC0C9(&G):
+
+GTKColorChooserPanel.value.textAndMnemonic=\uAC12(&V):
+
+GTKColorChooserPanel.blue.textAndMnemonic=\uD30C\uB780\uC0C9(&B):
+
+GTKColorChooserPanel.color.textAndMnemonic=\uC0C9\uC0C1 \uC774\uB984(&N):
+
+
+
+############ FILE CHOOSER STRINGS #############
+
+FileChooser.acceptAllFileFilter.textAndMnemonic=\uBAA8\uB4E0 \uD30C\uC77C
+FileChooser.newFolderButton.textAndMnemonic=\uC0C8 \uD3F4\uB354(&N)
+FileChooser.newFolderDialog.textAndMnemonic=\uD3F4\uB354 \uC774\uB984:
+FileChooser.newFolderNoDirectoryErrorTitle.textAndMnemonic=\uC624\uB958
+FileChooser.newFolderNoDirectoryError.textAndMnemonic="{0}" \uB514\uB809\uD1A0\uB9AC\uB97C \uC0DD\uC131\uD558\uB294 \uC911 \uC624\uB958 \uBC1C\uC0DD: \uD574\uB2F9 \uD30C\uC77C \uB610\uB294 \uB514\uB809\uD1A0\uB9AC\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.
+FileChooser.deleteFileButton.textAndMnemonic=\uD30C\uC77C \uC0AD\uC81C(&L)
+FileChooser.renameFileButton.textAndMnemonic=\uD30C\uC77C \uC774\uB984 \uBC14\uAFB8\uAE30(&R)
+FileChooser.cancelButton.textAndMnemonic=\uCDE8\uC18C(&C)
+FileChooser.saveButton.textAndMnemonic=\uD655\uC778(&O)
+FileChooser.openButton.textAndMnemonic=\uD655\uC778(&O)
+FileChooser.saveDialogTitle.textAndMnemonic=\uC800\uC7A5
+FileChooser.openDialogTitle.textAndMnemonic=\uC5F4\uAE30
+FileChooser.pathLabel.textAndMnemonic=\uC120\uD0DD \uC0AC\uD56D(&S):
+FileChooser.filterLabel.textAndMnemonic=\uD544\uD130:
+FileChooser.foldersLabel.textAndMnemonic=\uD3F4\uB354(&D)
+FileChooser.filesLabel.textAndMnemonic=\uD30C\uC77C(&F)
+
+FileChooser.cancelButtonToolTip.textAndMnemonic=\uD30C\uC77C \uC120\uD0DD\uAE30 \uB300\uD654\uC0C1\uC790\uB97C \uC911\uB2E8\uD569\uB2C8\uB2E4.
+FileChooser.saveButtonToolTip.textAndMnemonic=\uC120\uD0DD\uB41C \uD30C\uC77C\uC744 \uC800\uC7A5\uD569\uB2C8\uB2E4.
+FileChooser.openButtonToolTip.textAndMnemonic=\uC120\uD0DD\uB41C \uD30C\uC77C\uC744 \uC5FD\uB2C8\uB2E4.
+
+FileChooser.renameFileDialog.textAndMnemonic="{0}" \uD30C\uC77C\uC758 \uC774\uB984 \uBC14\uAFB8\uAE30
+FileChooser.renameFileError.titleAndMnemonic=\uC624\uB958
+FileChooser.renameFileError.textAndMnemonic="{0}" \uD30C\uC77C\uC758 \uC774\uB984\uC744 "{1}"(\uC73C)\uB85C \uBC14\uAFB8\uB294 \uC911 \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4.
+
+
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_pt_BR.properties	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_pt_BR.properties	Wed Jul 05 18:07:57 2017 +0200
@@ -1,88 +1,59 @@
-# Refer to the note in basic.properties for a description as to what
-# the mnemonics correspond to and how to calculate them.
-
-
-
-# GTK specific properties
-
-# GTK color chooser properties:
-GTKColorChooserPanel.nameText=Seletor de Cores do GTK
-# mnemonic as a VK_ constant
-GTKColorChooserPanel.mnemonic=71
-# Can also define GTKColorChooserPanel.dispalyedMnemonicIndex if you
-# want an index other than would normally be underlined by
-# GTKColorChooserPanel.mnemonic to be underlined. This is only useful
-# if GTKColorChooserPanel.nameText defines the mnemonic character more
-# than once and you want a character other than the first underlined.
-
-# Text and mnemonics for the spinner. You can also defined a different
-# index for the mnemonic via xxxMnemonicIndex, for example
-# GTKColorChooserPanel.hueMnemonicIndex=1 would indicate the second
-# character of GTKColorChooserPanel.hueText should be underlined to
-# represent the mnemonic.
-GTKColorChooserPanel.hueText=Matiz:
-GTKColorChooserPanel.hueMnemonic=77
-
-GTKColorChooserPanel.redText=Vermelho:
-GTKColorChooserPanel.redMnemonic=69
-
-GTKColorChooserPanel.saturationText=Satura\u00E7\u00E3o:
-GTKColorChooserPanel.saturationMnemonic=83
-
-GTKColorChooserPanel.greenText=Verde:
-GTKColorChooserPanel.greenMnemonic=68
-
-GTKColorChooserPanel.valueText=Valor:
-GTKColorChooserPanel.valueMnemonic=86
-
-GTKColorChooserPanel.blueText=Azul:
-GTKColorChooserPanel.blueMnemonic=65
-
-GTKColorChooserPanel.colorNameText=Nome da Cor:
-GTKColorChooserPanel.colorNameMnemonic=78
-
-
-
-############ FILE CHOOSER STRINGS #############
-
-FileChooser.acceptAllFileFilterText=Todos os Arquivos
-FileChooser.newFolderButtonText=Nova Pasta
-FileChooser.newFolderButtonMnemonic=78
-FileChooser.newFolderDialogText=Nome da pasta:
-FileChooser.newFolderNoDirectoryErrorTitleText=Erro
-FileChooser.newFolderNoDirectoryErrorText=Erro ao criar o diret\u00F3rio "{0}": N\u00E3o h\u00E1 arquivo ou diret\u00F3rio
-FileChooser.deleteFileButtonText=Deletar Arquivo
-FileChooser.deleteFileButtonMnemonic=76
-FileChooser.renameFileButtonText=Renomear Arquivo
-FileChooser.renameFileButtonMnemonic=82
-FileChooser.cancelButtonText=Cancelar
-FileChooser.cancelButtonMnemonic=67
-FileChooser.saveButtonText=OK
-FileChooser.saveButtonMnemonic=79
-FileChooser.openButtonText=OK
-FileChooser.openButtonMnemonic=79
-FileChooser.saveDialogTitleText=Salvar
-FileChooser.openDialogTitleText=Abrir
-FileChooser.pathLabelText=Sele\u00E7\u00E3o:
-FileChooser.filterLabelText=Filtro:
-FileChooser.pathLabelMnemonic=83
-FileChooser.foldersLabelText=Pastas
-FileChooser.foldersLabelMnemonic=80
-FileChooser.filesLabelText=Arquivos
-FileChooser.filesLabelMnemonic=65
-
-FileChooser.cancelButtonToolTipText=Abortar caixa de di\u00E1logo do seletor de arquivos.
-FileChooser.saveButtonToolTipText=Salvar arquivo selecionado.
-FileChooser.openButtonToolTipText=Abrir arquivo selecionado.
-
-FileChooser.renameFileDialogText=Renomear arquivo "{0}" por
-FileChooser.renameFileErrorTitle=Erro
-FileChooser.renameFileErrorText=Erro ao renomear o arquivo "{0}" por "{1}"
-
-# dummy resource added for translation automation
-OptionPane.okButtonText=OK
-OptionPane.okButtonMnemonic=79
-# dummy resource added for translation automation
-OptionPane.cancelButtonText=Cancelar
-OptionPane.cancelButtonMnemonic=67
-
+# Refer to the note in basic.properties for a description as to what
+# the mnemonics correspond to and how to calculate them.
+
+
+
+# GTK specific properties
+
+# GTK color chooser properties:
+GTKColorChooserPanel.textAndMnemonic=Seletor de Cores do &GTK
+# mnemonic as a VK_ constant
+
+GTKColorChooserPanel.hue.textAndMnemonic=&Matiz:
+
+GTKColorChooserPanel.red.textAndMnemonic=V&ermelho:
+
+GTKColorChooserPanel.saturation.textAndMnemonic=Satura\u00E7\u00E3o(&S):
+
+GTKColorChooserPanel.green.textAndMnemonic=Ver&de:
+
+GTKColorChooserPanel.value.textAndMnemonic=&Valor:
+
+GTKColorChooserPanel.blue.textAndMnemonic=&Azul:
+
+GTKColorChooserPanel.color.textAndMnemonic=&Nome da Cor:
+
+
+
+############ FILE CHOOSER STRINGS #############
+
+FileChooser.acceptAllFileFilter.textAndMnemonic=Todos os Arquivos
+FileChooser.newFolderButton.textAndMnemonic=&Nova Pasta
+FileChooser.newFolderDialog.textAndMnemonic=Nome da pasta:
+FileChooser.newFolderNoDirectoryErrorTitle.textAndMnemonic=Erro
+FileChooser.newFolderNoDirectoryError.textAndMnemonic=Erro ao criar o diret\u00F3rio "{0}": N\u00E3o h\u00E1 arquivo ou diret\u00F3rio
+FileChooser.deleteFileButton.textAndMnemonic=De&letar Arquivo
+FileChooser.renameFileButton.textAndMnemonic=&Renomear Arquivo
+FileChooser.cancelButton.textAndMnemonic=&Cancelar
+FileChooser.saveButton.textAndMnemonic=&OK
+FileChooser.openButton.textAndMnemonic=&OK
+FileChooser.saveDialogTitle.textAndMnemonic=Salvar
+FileChooser.openDialogTitle.textAndMnemonic=Abrir
+FileChooser.pathLabel.textAndMnemonic=Sele\u00E7\u00E3o(&S):
+FileChooser.filterLabel.textAndMnemonic=Filtro:
+FileChooser.foldersLabel.textAndMnemonic=&Pastas
+FileChooser.filesLabel.textAndMnemonic=&Arquivos
+
+FileChooser.cancelButtonToolTip.textAndMnemonic=Abortar caixa de di\u00E1logo do seletor de arquivos.
+FileChooser.saveButtonToolTip.textAndMnemonic=Salvar arquivo selecionado.
+FileChooser.openButtonToolTip.textAndMnemonic=Abrir arquivo selecionado.
+
+FileChooser.renameFileDialog.textAndMnemonic=Renomear arquivo "{0}" por
+FileChooser.renameFileError.titleAndMnemonic=Erro
+FileChooser.renameFileError.textAndMnemonic=Erro ao renomear o arquivo "{0}" por "{1}"
+
+# dummy resource added for translation automation
+OptionPane.okButton.textAndMnemonic=&OK
+# dummy resource added for translation automation
+OptionPane.cancelButton.textAndMnemonic=&Cancelar
+
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_sv.properties	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_sv.properties	Wed Jul 05 18:07:57 2017 +0200
@@ -1,88 +1,59 @@
-# Refer to the note in basic.properties for a description as to what
-# the mnemonics correspond to and how to calculate them.
-
-
-
-# GTK specific properties
-
-# GTK color chooser properties:
-GTKColorChooserPanel.nameText=GTK-f\u00E4rgv\u00E4ljaren
-# mnemonic as a VK_ constant
-GTKColorChooserPanel.mnemonic=71
-# Can also define GTKColorChooserPanel.dispalyedMnemonicIndex if you
-# want an index other than would normally be underlined by
-# GTKColorChooserPanel.mnemonic to be underlined. This is only useful
-# if GTKColorChooserPanel.nameText defines the mnemonic character more
-# than once and you want a character other than the first underlined.
-
-# Text and mnemonics for the spinner. You can also defined a different
-# index for the mnemonic via xxxMnemonicIndex, for example
-# GTKColorChooserPanel.hueMnemonicIndex=1 would indicate the second
-# character of GTKColorChooserPanel.hueText should be underlined to
-# represent the mnemonic.
-GTKColorChooserPanel.hueText=Nyans:
-GTKColorChooserPanel.hueMnemonic=78
-
-GTKColorChooserPanel.redText=R\u00F6d:
-GTKColorChooserPanel.redMnemonic=82
-
-GTKColorChooserPanel.saturationText=M\u00E4ttnad:
-GTKColorChooserPanel.saturationMnemonic=77
-
-GTKColorChooserPanel.greenText=Gr\u00F6n:
-GTKColorChooserPanel.greenMnemonic=71
-
-GTKColorChooserPanel.valueText=V\u00E4rde:
-GTKColorChooserPanel.valueMnemonic=86
-
-GTKColorChooserPanel.blueText=Bl\u00E5:
-GTKColorChooserPanel.blueMnemonic=66
-
-GTKColorChooserPanel.colorNameText=F\u00E4rgnamn:
-GTKColorChooserPanel.colorNameMnemonic=70
-
-
-
-############ FILE CHOOSER STRINGS #############
-
-FileChooser.acceptAllFileFilterText=Alla filer
-FileChooser.newFolderButtonText=Ny mapp
-FileChooser.newFolderButtonMnemonic=78
-FileChooser.newFolderDialogText=Mapp:
-FileChooser.newFolderNoDirectoryErrorTitleText=Fel
-FileChooser.newFolderNoDirectoryErrorText=Ett fel intr\u00E4ffade vid f\u00F6rs\u00F6k att skapa katalogen "{0}": Filen eller katalogen finns inte
-FileChooser.deleteFileButtonText=Ta bort fil
-FileChooser.deleteFileButtonMnemonic=66
-FileChooser.renameFileButtonText=\u00C4ndra namn p\u00E5 filen
-FileChooser.renameFileButtonMnemonic=82
-FileChooser.cancelButtonText=Avbryt
-FileChooser.cancelButtonMnemonic=65
-FileChooser.saveButtonText=OK
-FileChooser.saveButtonMnemonic=79
-FileChooser.openButtonText=OK
-FileChooser.openButtonMnemonic=79
-FileChooser.saveDialogTitleText=Spara
-FileChooser.openDialogTitleText=\u00D6ppna
-FileChooser.pathLabelText=Urval:
-FileChooser.filterLabelText=Filter:
-FileChooser.pathLabelMnemonic=85
-FileChooser.foldersLabelText=Mappar
-FileChooser.foldersLabelMnemonic=80
-FileChooser.filesLabelText=Filer
-FileChooser.filesLabelMnemonic=70
-
-FileChooser.cancelButtonToolTipText=Avbryt dialogrutan Filv\u00E4ljare.
-FileChooser.saveButtonToolTipText=Spara vald fil.
-FileChooser.openButtonToolTipText=\u00D6ppna vald fil.
-
-FileChooser.renameFileDialogText=Namn\u00E4ndra fil "{0}" till
-FileChooser.renameFileErrorTitle=Fel
-FileChooser.renameFileErrorText=Fel vid namn\u00E4ndring av fil "{0}" till "{1}"
-
-# dummy resource added for translation automation
-OptionPane.okButtonText=OK
-OptionPane.okButtonMnemonic=79
-# dummy resource added for translation automation
-OptionPane.cancelButtonText=Avbryt
-OptionPane.cancelButtonMnemonic=65
-
+# Refer to the note in basic.properties for a description as to what
+# the mnemonics correspond to and how to calculate them.
+
+
+
+# GTK specific properties
+
+# GTK color chooser properties:
+GTKColorChooserPanel.textAndMnemonic=GTK-f\u00E4rgv\u00E4ljaren(&G)
+# mnemonic as a VK_ constant
+
+GTKColorChooserPanel.hue.textAndMnemonic=&Nyans:
+
+GTKColorChooserPanel.red.textAndMnemonic=R\u00F6d(&R):
+
+GTKColorChooserPanel.saturation.textAndMnemonic=M\u00E4ttnad(&M):
+
+GTKColorChooserPanel.green.textAndMnemonic=Gr\u00F6n(&G):
+
+GTKColorChooserPanel.value.textAndMnemonic=V\u00E4rde(&V):
+
+GTKColorChooserPanel.blue.textAndMnemonic=Bl\u00E5(&B):
+
+GTKColorChooserPanel.color.textAndMnemonic=F\u00E4rgnamn(&F):
+
+
+
+############ FILE CHOOSER STRINGS #############
+
+FileChooser.acceptAllFileFilter.textAndMnemonic=Alla filer
+FileChooser.newFolderButton.textAndMnemonic=&Ny mapp
+FileChooser.newFolderDialog.textAndMnemonic=Mapp:
+FileChooser.newFolderNoDirectoryErrorTitle.textAndMnemonic=Fel
+FileChooser.newFolderNoDirectoryError.textAndMnemonic=Ett fel intr\u00E4ffade vid f\u00F6rs\u00F6k att skapa katalogen "{0}": Filen eller katalogen finns inte
+FileChooser.deleteFileButton.textAndMnemonic=Ta &bort fil
+FileChooser.renameFileButton.textAndMnemonic=\u00C4ndra namn p\u00E5 filen(&R)
+FileChooser.cancelButton.textAndMnemonic=&Avbryt
+FileChooser.saveButton.textAndMnemonic=&OK
+FileChooser.openButton.textAndMnemonic=&OK
+FileChooser.saveDialogTitle.textAndMnemonic=Spara
+FileChooser.openDialogTitle.textAndMnemonic=\u00D6ppna
+FileChooser.pathLabel.textAndMnemonic=&Urval:
+FileChooser.filterLabel.textAndMnemonic=Filter:
+FileChooser.foldersLabel.textAndMnemonic=Ma&ppar
+FileChooser.filesLabel.textAndMnemonic=&Filer
+
+FileChooser.cancelButtonToolTip.textAndMnemonic=Avbryt dialogrutan Filv\u00E4ljare.
+FileChooser.saveButtonToolTip.textAndMnemonic=Spara vald fil.
+FileChooser.openButtonToolTip.textAndMnemonic=\u00D6ppna vald fil.
+
+FileChooser.renameFileDialog.textAndMnemonic=Namn\u00E4ndra fil "{0}" till
+FileChooser.renameFileError.titleAndMnemonic=Fel
+FileChooser.renameFileError.textAndMnemonic=Fel vid namn\u00E4ndring av fil "{0}" till "{1}"
+
+# dummy resource added for translation automation
+OptionPane.okButton.textAndMnemonic=&OK
+# dummy resource added for translation automation
+OptionPane.cancelButton.textAndMnemonic=&Avbryt
+
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_zh_CN.properties	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_zh_CN.properties	Wed Jul 05 18:07:57 2017 +0200
@@ -1,84 +1,55 @@
-# Refer to the note in basic.properties for a description as to what
-# the mnemonics correspond to and how to calculate them.
-
-
-
-# GTK specific properties
-
-# GTK color chooser properties:
-GTKColorChooserPanel.nameText=GTK \u989C\u8272\u9009\u62E9\u5668(G)
-# mnemonic as a VK_ constant
-GTKColorChooserPanel.mnemonic=71
-# Can also define GTKColorChooserPanel.dispalyedMnemonicIndex if you
-# want an index other than would normally be underlined by
-# GTKColorChooserPanel.mnemonic to be underlined. This is only useful
-# if GTKColorChooserPanel.nameText defines the mnemonic character more
-# than once and you want a character other than the first underlined.
-
-# Text and mnemonics for the spinner. You can also defined a different
-# index for the mnemonic via xxxMnemonicIndex, for example
-# GTKColorChooserPanel.hueMnemonicIndex=1 would indicate the second
-# character of GTKColorChooserPanel.hueText should be underlined to
-# represent the mnemonic.
-GTKColorChooserPanel.hueText=\u8272\u8C03(H):
-GTKColorChooserPanel.hueMnemonic=72
-
-GTKColorChooserPanel.redText=\u7EA2\u8272(E):
-GTKColorChooserPanel.redMnemonic=69
-
-GTKColorChooserPanel.saturationText=\u9971\u548C\u5EA6(S):
-GTKColorChooserPanel.saturationMnemonic=83
-
-GTKColorChooserPanel.greenText=\u7EFF\u8272(G):
-GTKColorChooserPanel.greenMnemonic=71
-
-GTKColorChooserPanel.valueText=\u503C(V):
-GTKColorChooserPanel.valueMnemonic=86
-
-GTKColorChooserPanel.blueText=\u84DD\u8272(B):
-GTKColorChooserPanel.blueMnemonic=66
-
-GTKColorChooserPanel.colorNameText=\u989C\u8272\u540D(N):
-GTKColorChooserPanel.colorNameMnemonic=78
-
-
-
-############ FILE CHOOSER STRINGS #############
-
-FileChooser.acceptAllFileFilterText=\u6240\u6709\u6587\u4EF6
-FileChooser.newFolderButtonText=\u65B0\u6587\u4EF6\u5939(N)
-FileChooser.newFolderButtonMnemonic=78
-FileChooser.newFolderDialogText=\u6587\u4EF6\u5939\u540D:
-FileChooser.newFolderNoDirectoryErrorTitleText=\u9519\u8BEF
-FileChooser.newFolderNoDirectoryErrorText=\u521B\u5EFA\u76EE\u5F55 "{0}" \u65F6\u51FA\u9519: \u6CA1\u6709\u6B64\u7C7B\u6587\u4EF6\u6216\u76EE\u5F55
-FileChooser.deleteFileButtonText=\u5220\u9664\u6587\u4EF6(L)
-FileChooser.deleteFileButtonMnemonic=76
-FileChooser.renameFileButtonText=\u91CD\u547D\u540D\u6587\u4EF6(R)
-FileChooser.renameFileButtonMnemonic=82
-FileChooser.cancelButtonText=\u53D6\u6D88
-FileChooser.cancelButtonMnemonic=67
-FileChooser.saveButtonText=\u786E\u5B9A
-FileChooser.saveButtonMnemonic=79
-FileChooser.openButtonText=\u786E\u5B9A
-FileChooser.openButtonMnemonic=79
-FileChooser.saveDialogTitleText=\u4FDD\u5B58
-FileChooser.openDialogTitleText=\u6253\u5F00
-FileChooser.pathLabelText=\u9009\u5B9A\u5185\u5BB9(S):
-FileChooser.filterLabelText=\u7B5B\u9009\u5668:
-FileChooser.pathLabelMnemonic=83
-FileChooser.foldersLabelText=\u6587\u4EF6\u5939(D)
-FileChooser.foldersLabelMnemonic=68
-FileChooser.filesLabelText=\u6587\u4EF6(F)
-FileChooser.filesLabelMnemonic=70
-
-FileChooser.cancelButtonToolTipText=\u4E2D\u6B62\u6587\u4EF6\u9009\u62E9\u5668\u5BF9\u8BDD\u6846\u3002
-FileChooser.saveButtonToolTipText=\u4FDD\u5B58\u6240\u9009\u6587\u4EF6\u3002
-FileChooser.openButtonToolTipText=\u6253\u5F00\u6240\u9009\u6587\u4EF6\u3002
-
-FileChooser.renameFileDialogText=\u5C06\u6587\u4EF6 "{0}" \u91CD\u547D\u540D\u4E3A
-FileChooser.renameFileErrorTitle=\u9519\u8BEF
-FileChooser.renameFileErrorText=\u5C06\u6587\u4EF6 "{0}" \u91CD\u547D\u540D\u4E3A "{1}" \u65F6\u51FA\u9519
-
-#OptionPane.okButtonMnemonic=79
-#OptionPane.cancelButtonMnemonic=67
-
+# Refer to the note in basic.properties for a description as to what
+# the mnemonics correspond to and how to calculate them.
+
+
+
+# GTK specific properties
+
+# GTK color chooser properties:
+GTKColorChooserPanel.textAndMnemonic=GTK \u989C\u8272\u9009\u62E9\u5668(&G)
+# mnemonic as a VK_ constant
+
+GTKColorChooserPanel.hue.textAndMnemonic=\u8272\u8C03(&H):
+
+GTKColorChooserPanel.red.textAndMnemonic=\u7EA2\u8272(&E):
+
+GTKColorChooserPanel.saturation.textAndMnemonic=\u9971\u548C\u5EA6(&S):
+
+GTKColorChooserPanel.green.textAndMnemonic=\u7EFF\u8272(&G):
+
+GTKColorChooserPanel.value.textAndMnemonic=\u503C(&V):
+
+GTKColorChooserPanel.blue.textAndMnemonic=\u84DD\u8272(&B):
+
+GTKColorChooserPanel.color.textAndMnemonic=\u989C\u8272\u540D(&N):
+
+
+
+############ FILE CHOOSER STRINGS #############
+
+FileChooser.acceptAllFileFilter.textAndMnemonic=\u6240\u6709\u6587\u4EF6
+FileChooser.newFolderButton.textAndMnemonic=\u65B0\u6587\u4EF6\u5939(&N)
+FileChooser.newFolderDialog.textAndMnemonic=\u6587\u4EF6\u5939\u540D:
+FileChooser.newFolderNoDirectoryErrorTitle.textAndMnemonic=\u9519\u8BEF
+FileChooser.newFolderNoDirectoryError.textAndMnemonic=\u521B\u5EFA\u76EE\u5F55 "{0}" \u65F6\u51FA\u9519: \u6CA1\u6709\u6B64\u7C7B\u6587\u4EF6\u6216\u76EE\u5F55
+FileChooser.deleteFileButton.textAndMnemonic=\u5220\u9664\u6587\u4EF6(&L)
+FileChooser.renameFileButton.textAndMnemonic=\u91CD\u547D\u540D\u6587\u4EF6(&R)
+FileChooser.cancelButton.textAndMnemonic=\u53D6\u6D88(&C)
+FileChooser.saveButton.textAndMnemonic=\u786E\u5B9A(&O)
+FileChooser.openButton.textAndMnemonic=\u786E\u5B9A(&O)
+FileChooser.saveDialogTitle.textAndMnemonic=\u4FDD\u5B58
+FileChooser.openDialogTitle.textAndMnemonic=\u6253\u5F00
+FileChooser.pathLabel.textAndMnemonic=\u9009\u5B9A\u5185\u5BB9(&S):
+FileChooser.filterLabel.textAndMnemonic=\u7B5B\u9009\u5668:
+FileChooser.foldersLabel.textAndMnemonic=\u6587\u4EF6\u5939(&D)
+FileChooser.filesLabel.textAndMnemonic=\u6587\u4EF6(&F)
+
+FileChooser.cancelButtonToolTip.textAndMnemonic=\u4E2D\u6B62\u6587\u4EF6\u9009\u62E9\u5668\u5BF9\u8BDD\u6846\u3002
+FileChooser.saveButtonToolTip.textAndMnemonic=\u4FDD\u5B58\u6240\u9009\u6587\u4EF6\u3002
+FileChooser.openButtonToolTip.textAndMnemonic=\u6253\u5F00\u6240\u9009\u6587\u4EF6\u3002
+
+FileChooser.renameFileDialog.textAndMnemonic=\u5C06\u6587\u4EF6 "{0}" \u91CD\u547D\u540D\u4E3A
+FileChooser.renameFileError.titleAndMnemonic=\u9519\u8BEF
+FileChooser.renameFileError.textAndMnemonic=\u5C06\u6587\u4EF6 "{0}" \u91CD\u547D\u540D\u4E3A "{1}" \u65F6\u51FA\u9519
+
+
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_zh_TW.properties	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_zh_TW.properties	Wed Jul 05 18:07:57 2017 +0200
@@ -1,84 +1,55 @@
-# Refer to the note in basic.properties for a description as to what
-# the mnemonics correspond to and how to calculate them.
-
-
-
-# GTK specific properties
-
-# GTK color chooser properties:
-GTKColorChooserPanel.nameText=GTK \u8272\u5F69\u9078\u64C7\u5668(G)
-# mnemonic as a VK_ constant
-GTKColorChooserPanel.mnemonic=71
-# Can also define GTKColorChooserPanel.dispalyedMnemonicIndex if you
-# want an index other than would normally be underlined by
-# GTKColorChooserPanel.mnemonic to be underlined. This is only useful
-# if GTKColorChooserPanel.nameText defines the mnemonic character more
-# than once and you want a character other than the first underlined.
-
-# Text and mnemonics for the spinner. You can also defined a different
-# index for the mnemonic via xxxMnemonicIndex, for example
-# GTKColorChooserPanel.hueMnemonicIndex=1 would indicate the second
-# character of GTKColorChooserPanel.hueText should be underlined to
-# represent the mnemonic.
-GTKColorChooserPanel.hueText=\u8272\u8ABF(H)\uFF1A
-GTKColorChooserPanel.hueMnemonic=72
-
-GTKColorChooserPanel.redText=\u7D05(E):
-GTKColorChooserPanel.redMnemonic=69
-
-GTKColorChooserPanel.saturationText=\u5F69\u5EA6(S):
-GTKColorChooserPanel.saturationMnemonic=83
-
-GTKColorChooserPanel.greenText=\u7DA0(G):
-GTKColorChooserPanel.greenMnemonic=71
-
-GTKColorChooserPanel.valueText=\u503C(V):
-GTKColorChooserPanel.valueMnemonic=86
-
-GTKColorChooserPanel.blueText=\u85CD(B):
-GTKColorChooserPanel.blueMnemonic=66
-
-GTKColorChooserPanel.colorNameText=\u984F\u8272\u540D\u7A31(N):
-GTKColorChooserPanel.colorNameMnemonic=78
-
-
-
-############ FILE CHOOSER STRINGS #############
-
-FileChooser.acceptAllFileFilterText=\u6240\u6709\u6A94\u6848
-FileChooser.newFolderButtonText=\u65B0\u5EFA\u8CC7\u6599\u593E(N)
-FileChooser.newFolderButtonMnemonic=78
-FileChooser.newFolderDialogText=\u8CC7\u6599\u593E\u540D\u7A31:
-FileChooser.newFolderNoDirectoryErrorTitleText=\u932F\u8AA4
-FileChooser.newFolderNoDirectoryErrorText=\u5EFA\u7ACB\u76EE\u9304 "{0}" \u6642\u767C\u751F\u932F\u8AA4: \u6C92\u6709\u6B64\u6A94\u6848\u6216\u76EE\u9304
-FileChooser.deleteFileButtonText=\u522A\u9664\u6A94\u6848(L)
-FileChooser.deleteFileButtonMnemonic=76
-FileChooser.renameFileButtonText=\u91CD\u65B0\u547D\u540D\u6A94\u6848(R)
-FileChooser.renameFileButtonMnemonic=82
-FileChooser.cancelButtonText=\u53D6\u6D88
-FileChooser.cancelButtonMnemonic=67
-FileChooser.saveButtonText=\u78BA\u5B9A
-FileChooser.saveButtonMnemonic=79
-FileChooser.openButtonText=\u78BA\u5B9A
-FileChooser.openButtonMnemonic=79
-FileChooser.saveDialogTitleText=\u5132\u5B58
-FileChooser.openDialogTitleText=\u958B\u555F
-FileChooser.pathLabelText=\u9078\u53D6(S):
-FileChooser.filterLabelText=\u7BE9\u9078:
-FileChooser.pathLabelMnemonic=83
-FileChooser.foldersLabelText=\u8CC7\u6599\u593E(D)
-FileChooser.foldersLabelMnemonic=68
-FileChooser.filesLabelText=\u6A94\u6848(F)
-FileChooser.filesLabelMnemonic=70
-
-FileChooser.cancelButtonToolTipText=\u4E2D\u6B62\u6A94\u6848\u9078\u64C7\u5668\u5C0D\u8A71\u65B9\u584A\u3002
-FileChooser.saveButtonToolTipText=\u5132\u5B58\u9078\u53D6\u7684\u6A94\u6848\u3002
-FileChooser.openButtonToolTipText=\u958B\u555F\u9078\u53D6\u7684\u6A94\u6848\u3002
-
-FileChooser.renameFileDialogText=\u5C07\u6A94\u6848 "{0}" \u91CD\u65B0\u547D\u540D\u70BA
-FileChooser.renameFileErrorTitle=\u932F\u8AA4
-FileChooser.renameFileErrorText=\u5C07\u6A94\u6848 "{0}" \u91CD\u65B0\u547D\u540D\u70BA "{1}" \u6642\u51FA\u73FE\u932F\u8AA4
-
-#OptionPane.okButtonMnemonic=79
-#OptionPane.cancelButtonMnemonic=67
-
+# Refer to the note in basic.properties for a description as to what
+# the mnemonics correspond to and how to calculate them.
+
+
+
+# GTK specific properties
+
+# GTK color chooser properties:
+GTKColorChooserPanel.textAndMnemonic=GTK \u8272\u5F69\u9078\u64C7\u5668(&G)
+# mnemonic as a VK_ constant
+
+GTKColorChooserPanel.hue.textAndMnemonic=\u8272\u8ABF(&H)\uFF1A
+
+GTKColorChooserPanel.red.textAndMnemonic=\u7D05(&E):
+
+GTKColorChooserPanel.saturation.textAndMnemonic=\u5F69\u5EA6(&S):
+
+GTKColorChooserPanel.green.textAndMnemonic=\u7DA0(&G):
+
+GTKColorChooserPanel.value.textAndMnemonic=\u503C(&V):
+
+GTKColorChooserPanel.blue.textAndMnemonic=\u85CD(&B):
+
+GTKColorChooserPanel.color.textAndMnemonic=\u984F\u8272\u540D\u7A31(&N):
+
+
+
+############ FILE CHOOSER STRINGS #############
+
+FileChooser.acceptAllFileFilter.textAndMnemonic=\u6240\u6709\u6A94\u6848
+FileChooser.newFolderButton.textAndMnemonic=\u65B0\u5EFA\u8CC7\u6599\u593E(&N)
+FileChooser.newFolderDialog.textAndMnemonic=\u8CC7\u6599\u593E\u540D\u7A31:
+FileChooser.newFolderNoDirectoryErrorTitle.textAndMnemonic=\u932F\u8AA4
+FileChooser.newFolderNoDirectoryError.textAndMnemonic=\u5EFA\u7ACB\u76EE\u9304 "{0}" \u6642\u767C\u751F\u932F\u8AA4: \u6C92\u6709\u6B64\u6A94\u6848\u6216\u76EE\u9304
+FileChooser.deleteFileButton.textAndMnemonic=\u522A\u9664\u6A94\u6848(&L)
+FileChooser.renameFileButton.textAndMnemonic=\u91CD\u65B0\u547D\u540D\u6A94\u6848(&R)
+FileChooser.cancelButton.textAndMnemonic=\u53D6\u6D88(&C)
+FileChooser.saveButton.textAndMnemonic=\u78BA\u5B9A(&O)
+FileChooser.openButton.textAndMnemonic=\u78BA\u5B9A(&O)
+FileChooser.saveDialogTitle.textAndMnemonic=\u5132\u5B58
+FileChooser.openDialogTitle.textAndMnemonic=\u958B\u555F
+FileChooser.pathLabel.textAndMnemonic=\u9078\u53D6(&S):
+FileChooser.filterLabel.textAndMnemonic=\u7BE9\u9078:
+FileChooser.foldersLabel.textAndMnemonic=\u8CC7\u6599\u593E(&D)
+FileChooser.filesLabel.textAndMnemonic=\u6A94\u6848(&F)
+
+FileChooser.cancelButtonToolTip.textAndMnemonic=\u4E2D\u6B62\u6A94\u6848\u9078\u64C7\u5668\u5C0D\u8A71\u65B9\u584A\u3002
+FileChooser.saveButtonToolTip.textAndMnemonic=\u5132\u5B58\u9078\u53D6\u7684\u6A94\u6848\u3002
+FileChooser.openButtonToolTip.textAndMnemonic=\u958B\u555F\u9078\u53D6\u7684\u6A94\u6848\u3002
+
+FileChooser.renameFileDialog.textAndMnemonic=\u5C07\u6A94\u6848 "{0}" \u91CD\u65B0\u547D\u540D\u70BA
+FileChooser.renameFileError.titleAndMnemonic=\u932F\u8AA4
+FileChooser.renameFileError.textAndMnemonic=\u5C07\u6A94\u6848 "{0}" \u91CD\u65B0\u547D\u540D\u70BA "{1}" \u6642\u51FA\u73FE\u932F\u8AA4
+
+
--- a/jdk/src/share/classes/com/sun/jndi/dns/DnsClient.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/com/sun/jndi/dns/DnsClient.java	Wed Jul 05 18:07:57 2017 +0200
@@ -577,8 +577,8 @@
         // enqueue only the first response, responses for retries are ignored.
         //
         synchronized (queuesLock) {
-            if (reqs.contains(xid)) { // enqueue only the first response
-                resps.put(xid, pkt);
+            if (reqs.contains(hdr.xid)) { // enqueue only the first response
+                resps.put(hdr.xid, pkt);
             }
         }
 
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic.properties	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic.properties	Wed Jul 05 18:07:57 2017 +0200
@@ -1,229 +1,189 @@
-# This properties file is used to create a PropertyResourceBundle
-# It contains Locale specific strings used in Swing
-# Currently, the following components need this for support:
-#
-#    ColorChooser
-#    FileChooser
-#    OptionPane
-#
-# When this file is read in, the strings are put into the 
-# defaults table.  This is an implementation detail of the current
-# workings of Swing.  DO NOT DEPEND ON THIS.  
-# This may change in future versions of Swing as we improve localization 
-# support.
-#
-#                        MNEMONIC NOTE:
-# Many of strings in this file are used by widgets that have a
-# mnemonic, for example:
-#   ColorChooser.rgbNameText=RGB
-#   ColorChooser.rgbMnemonic=71
-#   ColorChooser.rgbDisplayedMnemonicIndex=1
-# Indicates that the tab in the ColorChooser for RGB colors will have
-# the text 'RGB', further the mnemonic character will be 'g' and that
-# a decoration will be provided under the 'G'. This will typically
-# look like:  RGB
-#              -
-# 71 corresponds to the decimal value of the VK constant defined
-# in java/awt/KeyEvent.java. VK_G is defined as:
-#
-#    public static final int VK_G              = 0x47;
-#
-# 0x47 is a hex number and needs to be converted to decimal.
-# A simple way to calculate this for a-z is to add 64 to the index of
-# the letter in the alphabet. As 'a' is in the 1st letter the mnemonic
-# for 'a' is 65, 'b' is 66...
-#
-# The xxDisplayedMnemonicIndex is used to indicate the index of the
-# character that should be underlined in the String, with 0
-# corresponding to the first character in the String.
-#
-# One important thing to remember is that the mnemonic MUST exist in
-# the String, if it does not exist you should add text that makes it
-# exist. This will typically take the form 'XXXX (M)' where M is the
-# character for the mnemonic.
-# 
-# @author Steve Wilson
-
-############ FILE CHOOSER STRINGS #############
-FileChooser.fileDescriptionText=Generic File
-FileChooser.directoryDescriptionText=Directory
-FileChooser.newFolderErrorText=Error creating new folder
-FileChooser.newFolderErrorSeparator= : 
-FileChooser.newFolderParentDoesntExistTitleText=Unable to create folder
-FileChooser.newFolderParentDoesntExistText=Unable to create the folder.\n\nThe system cannot find the path specified.
-FileChooser.renameErrorTitleText=Error Renaming File or Folder
-FileChooser.renameErrorText=Cannot rename {0}
-FileChooser.renameErrorFileExistsText=Cannot rename {0}: A file with the name you specified already exists. \
-  Specify a different file name. 
-FileChooser.acceptAllFileFilterText=All Files
-FileChooser.cancelButtonText=Cancel
-#FileChooser.cancelButtonMnemonic=67 // not needed?
-FileChooser.saveButtonText=Save
-FileChooser.saveButtonMnemonic=83 // not needed?
-FileChooser.openButtonText=Open
-FileChooser.openButtonMnemonic=79 //not needed?
-FileChooser.saveDialogTitleText=Save
-FileChooser.openDialogTitleText=Open
-FileChooser.updateButtonText=Update
-FileChooser.updateButtonMnemonic=85
-FileChooser.helpButtonText=Help
-FileChooser.helpButtonMnemonic=72
-FileChooser.directoryOpenButtonText=Open
-FileChooser.directoryOpenButtonMnemonic=79
-
-# File Size Units
-FileChooser.fileSizeKiloBytes={0} KB
-FileChooser.fileSizeMegaBytes={0} MB
-FileChooser.fileSizeGigaBytes={0} GB
-
-# These strings are platform dependent not look and feel dependent.
-FileChooser.win32.newFolder=New Folder
-FileChooser.win32.newFolder.subsequent=New Folder ({0})
-FileChooser.other.newFolder=NewFolder
-FileChooser.other.newFolder.subsequent=NewFolder.{0}
-
-
-## file chooser tooltips ###
-FileChooser.cancelButtonToolTipText=Abort file chooser dialog
-FileChooser.saveButtonToolTipText=Save selected file
-FileChooser.openButtonToolTipText=Open selected file
-FileChooser.updateButtonToolTipText=Update directory listing
-FileChooser.helpButtonToolTipText=FileChooser help
-FileChooser.directoryOpenButtonToolTipText=Open selected directory
-
-FileChooser.filesListAccessibleName=Files List
-FileChooser.filesDetailsAccessibleName=Files Details
-
-############ COLOR CHOOSER STRINGS #############
-ColorChooser.previewText=Preview
-ColorChooser.okText=OK
-ColorChooser.cancelText=Cancel
-ColorChooser.resetText=Reset
-# VK_XXX constant for 'ColorChooser.resetText' button to make mnemonic
-ColorChooser.resetMnemonic=82
-ColorChooser.sampleText=Sample Text  Sample Text
-ColorChooser.swatchesNameText=Swatches
-ColorChooser.swatchesMnemonic=83
-ColorChooser.swatchesRecentText=Recent:
-# Each of the ColorChooser types can define a mnemonic, as a KeyEvent.VK_XXX
-# constant, and an index into the text to render the mnemonic as. The
-# mnemonic is xxxMnemonic and the index of the character to underline is
-# xxxDisplayedMnemonicIndex.
-ColorChooser.hsvNameText=HSV
-ColorChooser.hsvMnemonic=72
-ColorChooser.hsvHueText=Hue
-ColorChooser.hsvSaturationText=Saturation
-ColorChooser.hsvValueText=Value
-ColorChooser.hsvTransparencyText=Transparency
-ColorChooser.hslNameText=HSL
-ColorChooser.hslMnemonic=76
-ColorChooser.hslHueText=Hue
-ColorChooser.hslSaturationText=Saturation
-ColorChooser.hslLightnessText=Lightness
-ColorChooser.hslTransparencyText=Transparency
-ColorChooser.rgbNameText=RGB
-ColorChooser.rgbMnemonic=71
-ColorChooser.rgbRedText=Red
-ColorChooser.rgbRedMnemonic=68 // not needed?
-ColorChooser.rgbGreenText=Green
-ColorChooser.rgbGreenMnemonic=78 // not needed?
-ColorChooser.rgbBlueText=Blue
-ColorChooser.rgbBlueMnemonic=66 // not needed?
-ColorChooser.rgbAlphaText=Alpha
-ColorChooser.rgbHexCodeText=Color Code
-ColorChooser.rgbHexCodeMnemonic=67
-ColorChooser.cmykNameText=CMYK
-ColorChooser.cmykMnemonic=77
-ColorChooser.cmykCyanText=Cyan
-ColorChooser.cmykMagentaText=Magenta
-ColorChooser.cmykYellowText=Yellow
-ColorChooser.cmykBlackText=Black
-ColorChooser.cmykAlphaText=Alpha
-
-############ OPTION PANE STRINGS #############
-# Mnemonic keys correspond to KeyEvent.VK_XXX constant
-# We only define mnemonics for YES/NO, but for completeness you can
-# define mnemonics for any of the buttons.
-OptionPane.yesButtonText=Yes
-OptionPane.yesButtonMnemonic=89
-OptionPane.noButtonText=No
-OptionPane.noButtonMnemonic=78
-OptionPane.okButtonText=OK
-#OptionPane.okButtonMnemonic=0
-OptionPane.cancelButtonText=Cancel
-#OptionPane.cancelButtonMnemonic=0
-OptionPane.titleText=Select an Option
-# Title for the dialog for the showInputDialog methods. Only used if
-# the developer uses one of the variants that doesn't take a title.
-OptionPane.inputDialogTitle=Input
-# Title for the dialog for the showMessageDialog methods. Only used if
-# the developer uses one of the variants that doesn't take a title.
-OptionPane.messageDialogTitle=Message
-
-############ Printing Dialog Strings ############
-PrintingDialog.titleProgressText=Printing
-PrintingDialog.titleAbortingText=Printing (Aborting)
-
-PrintingDialog.contentInitialText=Printing in progress...
-
-# The following string will be formatted by a MessageFormat
-# and {0} will be replaced by page number being printed
-PrintingDialog.contentProgressText=Printed page {0}...
-
-PrintingDialog.contentAbortingText=Printing aborting...
-
-PrintingDialog.abortButtonText=Abort
-PrintingDialog.abortButtonMnemonic=65
-PrintingDialog.abortButtonDisplayedMnemonicIndex=0
-PrintingDialog.abortButtonToolTipText=Abort Printing
-
-############ Internal Frame Strings ############
-InternalFrame.iconButtonToolTip=Minimize
-InternalFrame.maxButtonToolTip=Maximize
-InternalFrame.restoreButtonToolTip=Restore
-InternalFrame.closeButtonToolTip=Close
-
-############ Internal Frame Title Pane Strings ############
-InternalFrameTitlePane.restoreButtonText=Restore
-InternalFrameTitlePane.moveButtonText=Move
-InternalFrameTitlePane.sizeButtonText=Size
-InternalFrameTitlePane.minimizeButtonText=Minimize
-InternalFrameTitlePane.maximizeButtonText=Maximize
-InternalFrameTitlePane.closeButtonText=Close
-
-############ Text strings #############
-# Used for html forms
-FormView.submitButtonText=Submit Query
-FormView.resetButtonText=Reset
-FormView.browseFileButtonText=Browse...
-
-############ Abstract Document Strings ############
-AbstractDocument.styleChangeText=style change
-AbstractDocument.additionText=addition
-AbstractDocument.deletionText=deletion
-AbstractDocument.undoText=Undo
-AbstractDocument.redoText=Redo
-
-############ Abstract Button Strings ############
-AbstractButton.clickText=click
-
-############ Abstract Undoable Edit Strings ############
-AbstractUndoableEdit.undoText=Undo
-AbstractUndoableEdit.redoText=Redo
-
-############ Combo Box Strings ############
-ComboBox.togglePopupText=togglePopup
-
-############ Progress Monitor Strings ############
-ProgressMonitor.progressText=Progress...
-
-############ Split Pane Strings ############
-SplitPane.leftButtonText=left button
-SplitPane.rightButtonText=right button
-# Used for Isindex
-IsindexView.prompt=This is a searchable index.  Enter search keywords:
-
-############ InternalFrameTitlePane Strings ############
-InternalFrameTitlePane.iconifyButtonAccessibleName=Iconify
-InternalFrameTitlePane.maximizeButtonAccessibleName=Maximize
-InternalFrameTitlePane.closeButtonAccessibleName=Close
+# This properties file is used to create a PropertyResourceBundle
+# It contains Locale specific strings used in Swing
+# Currently, the following components need this for support:
+#
+#    ColorChooser
+#    FileChooser
+#    OptionPane
+#
+# When this file is read in, the strings are put into the
+# defaults table.  This is an implementation detail of the current
+# workings of Swing.  DO NOT DEPEND ON THIS.
+# This may change in future versions of Swing as we improve localization
+# support.
+#
+#                        MNEMONIC NOTE:
+# Many of strings in this file are used by widgets that have a
+# mnemonic, for example:
+#   ColorChooser.rgbNameTextAndMnemonic=R&GB
+#
+# Indicates that the tab in the ColorChooser for RGB colors will have
+# the text 'RGB', further the mnemonic character will be 'g' and that
+# a decoration will be provided under the 'G'. This will typically
+# look like:  RGB
+#              -
+#
+# One important thing to remember is that the mnemonic MUST exist in
+# the String, if it does not exist you should add text that makes it
+# exist. This will typically take the form 'XXXX (M)' where M is the
+# character for the mnemonic.
+#
+# @author Steve Wilson
+
+############ FILE CHOOSER STRINGS #############
+FileChooser.fileDescription.textAndMnemonic=Generic File
+FileChooser.directoryDescription.textAndMnemonic=Directory
+FileChooser.newFolderError.textAndMnemonic=Error creating new folder
+FileChooser.newFolderErrorSeparator= :
+FileChooser.newFolderParentDoesntExistTitle.textAndMnemonic=Unable to create folder
+FileChooser.newFolderParentDoesntExist.textAndMnemonic=Unable to create the folder.\n\nThe system cannot find the path specified.
+FileChooser.renameErrorTitle.textAndMnemonic=Error Renaming File or Folder
+FileChooser.renameError.textAndMnemonic=Cannot rename {0}
+FileChooser.renameErrorFileExists.textAndMnemonic=Cannot rename {0}: A file with the name you specified already exists. \
+  Specify a different file name.
+FileChooser.acceptAllFileFilter.textAndMnemonic=All Files
+FileChooser.cancelButton.textAndMnemonic=Cancel
+FileChooser.saveButton.textAndMnemonic=&Save
+FileChooser.openButton.textAndMnemonic=&Open
+FileChooser.saveDialogTitle.textAndMnemonic=Save
+FileChooser.openDialogTitle.textAndMnemonic=Open
+FileChooser.updateButton.textAndMnemonic=&Update
+FileChooser.helpButton.textAndMnemonic=&Help
+FileChooser.directoryOpenButton.textAndMnemonic=&Open
+
+# File Size Units
+FileChooser.fileSizeKiloBytes={0} KB
+FileChooser.fileSizeMegaBytes={0} MB
+FileChooser.fileSizeGigaBytes={0} GB
+
+# These strings are platform dependent not look and feel dependent.
+FileChooser.win32.newFolder=New Folder
+FileChooser.win32.newFolder.subsequent=New Folder ({0})
+FileChooser.other.newFolder=NewFolder
+FileChooser.other.newFolder.subsequent=NewFolder.{0}
+
+
+## file chooser tooltips ###
+FileChooser.cancelButtonToolTip.textAndMnemonic=Abort file chooser dialog
+FileChooser.saveButtonToolTip.textAndMnemonic=Save selected file
+FileChooser.openButtonToolTip.textAndMnemonic=Open selected file
+FileChooser.updateButtonToolTip.textAndMnemonic=Update directory listing
+FileChooser.helpButtonToolTip.textAndMnemonic=FileChooser help
+FileChooser.directoryOpenButtonToolTip.textAndMnemonic=Open selected directory
+
+FileChooser.filesListAccessibleName=Files List
+FileChooser.filesDetailsAccessibleName=Files Details
+
+############ COLOR CHOOSER STRINGS #############
+ColorChooser.preview.textAndMnemonic=Preview
+ColorChooser.ok.textAndMnemonic=OK
+ColorChooser.cancel.textAndMnemonic=Cancel
+ColorChooser.reset.textAndMnemonic=&Reset
+ColorChooser.sample.textAndMnemonic=Sample Text  Sample Text
+ColorChooser.swatches.textAndMnemonic=&Swatches
+ColorChooser.swatchesRecent.textAndMnemonic=Recent:
+ColorChooser.hsv.textAndMnemonic=&HSV
+ColorChooser.hsvHue.textAndMnemonic=Hue
+ColorChooser.hsvSaturation.textAndMnemonic=Saturation
+ColorChooser.hsvValue.textAndMnemonic=Value
+ColorChooser.hsvTransparency.textAndMnemonic=Transparency
+ColorChooser.hsl.textAndMnemonic=HS&L
+ColorChooser.hslHue.textAndMnemonic=Hue
+ColorChooser.hslSaturation.textAndMnemonic=Saturation
+ColorChooser.hslLightness.textAndMnemonic=Lightness
+ColorChooser.hslTransparency.textAndMnemonic=Transparency
+ColorChooser.rgb.textAndMnemonic=R&GB
+ColorChooser.rgbRed.textAndMnemonic=Re&d
+ColorChooser.rgbGreen.textAndMnemonic=Gree&n
+ColorChooser.rgbBlue.textAndMnemonic=&Blue
+ColorChooser.rgbAlpha.textAndMnemonic=Alpha
+ColorChooser.rgbHexCode.textAndMnemonic=&Color Code
+ColorChooser.cmyk.textAndMnemonic=C&MYK
+ColorChooser.cmykCyan.textAndMnemonic=Cyan
+ColorChooser.cmykMagenta.textAndMnemonic=Magenta
+ColorChooser.cmykYellow.textAndMnemonic=Yellow
+ColorChooser.cmykBlack.textAndMnemonic=Black
+ColorChooser.cmykAlpha.textAndMnemonic=Alpha
+
+############ OPTION PANE STRINGS #############
+# We only define mnemonics for YES/NO, but for completeness you can
+# define mnemonics for any of the buttons.
+OptionPane.yesButton.textAndMnemonic=&Yes
+OptionPane.noButton.textAndMnemonic=&No
+OptionPane.okButton.textAndMnemonic=OK
+#OptionPane.okButtonMnemonic=0
+OptionPane.cancelButton.textAndMnemonic=Cancel
+#OptionPane.cancelButtonMnemonic=0
+OptionPane.title.textAndMnemonic=Select an Option
+# Title for the dialog for the showInputDialog methods. Only used if
+# the developer uses one of the variants that doesn't take a title.
+OptionPane.inputDialog.titleAndMnemonic=Input
+# Title for the dialog for the showMessageDialog methods. Only used if
+# the developer uses one of the variants that doesn't take a title.
+OptionPane.messageDialog.titleAndMnemonic=Message
+
+############ Printing Dialog Strings ############
+PrintingDialog.titleProgress.textAndMnemonic=Printing
+PrintingDialog.titleAborting.textAndMnemonic=Printing (Aborting)
+
+PrintingDialog.contentInitial.textAndMnemonic=Printing in progress...
+
+# The following string will be formatted by a MessageFormat
+# and {0} will be replaced by page number being printed
+PrintingDialog.contentProgress.textAndMnemonic=Printed page {0}...
+
+PrintingDialog.contentAborting.textAndMnemonic=Printing aborting...
+
+PrintingDialog.abortButton.textAndMnemonic=&Abort
+PrintingDialog.abortButtonToolTip.textAndMnemonic=Abort Printing
+
+############ Internal Frame Strings ############
+InternalFrame.iconButtonToolTip=Minimize
+InternalFrame.maxButtonToolTip=Maximize
+InternalFrame.restoreButtonToolTip=Restore
+InternalFrame.closeButtonToolTip=Close
+
+############ Internal Frame Title Pane Strings ############
+InternalFrameTitlePane.restoreButton.textAndMnemonic=Restore
+InternalFrameTitlePane.moveButton.textAndMnemonic=Move
+InternalFrameTitlePane.sizeButton.textAndMnemonic=Size
+InternalFrameTitlePane.minimizeButton.textAndMnemonic=Minimize
+InternalFrameTitlePane.maximizeButton.textAndMnemonic=Maximize
+InternalFrameTitlePane.closeButton.textAndMnemonic=Close
+
+############ Text strings #############
+# Used for html forms
+FormView.submitButton.textAndMnemonic=Submit Query
+FormView.resetButton.textAndMnemonic=Reset
+FormView.browseFileButton.textAndMnemonic=Browse...
+
+############ Abstract Document Strings ############
+AbstractDocument.styleChange.textAndMnemonic=style change
+AbstractDocument.addition.textAndMnemonic=addition
+AbstractDocument.deletion.textAndMnemonic=deletion
+AbstractDocument.undo.textAndMnemonic=Undo
+AbstractDocument.redo.textAndMnemonic=Redo
+
+############ Abstract Button Strings ############
+AbstractButton.click.textAndMnemonic=click
+
+############ Abstract Undoable Edit Strings ############
+AbstractUndoableEdit.undo.textAndMnemonic=Undo
+AbstractUndoableEdit.redo.textAndMnemonic=Redo
+
+############ Combo Box Strings ############
+ComboBox.togglePopup.textAndMnemonic=togglePopup
+
+############ Progress Monitor Strings ############
+ProgressMonitor.progress.textAndMnemonic=Progress...
+
+############ Split Pane Strings ############
+SplitPane.leftButton.textAndMnemonic=left button
+SplitPane.rightButton.textAndMnemonic=right button
+# Used for Isindex
+IsindexView.prompt=This is a searchable index.  Enter search keywords:
+
+############ InternalFrameTitlePane Strings ############
+InternalFrameTitlePane.iconifyButtonAccessibleName=Iconify
+InternalFrameTitlePane.maximizeButtonAccessibleName=Maximize
+InternalFrameTitlePane.closeButtonAccessibleName=Close
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_de.properties	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_de.properties	Wed Jul 05 18:07:57 2017 +0200
@@ -1,229 +1,187 @@
-# This properties file is used to create a PropertyResourceBundle
-# It contains Locale specific strings used in Swing
-# Currently, the following components need this for support:
-#
-#    ColorChooser
-#    FileChooser
-#    OptionPane
-#
-# When this file is read in, the strings are put into the
-# defaults table.  This is an implementation detail of the current
-# workings of Swing.  DO NOT DEPEND ON THIS.
-# This may change in future versions of Swing as we improve localization
-# support.
-#
-#                        MNEMONIC NOTE:
-# Many of strings in this file are used by widgets that have a
-# mnemonic, for example:
-#   ColorChooser.rgbNameText=RGB
-#   ColorChooser.rgbMnemonic=71
-#   ColorChooser.rgbDisplayedMnemonicIndex=1
-# Indicates that the tab in the ColorChooser for RGB colors will have
-# the text 'RGB', further the mnemonic character will be 'g' and that
-# a decoration will be provided under the 'G'. This will typically
-# look like:  RGB
-#              -
-# 71 corresponds to the decimal value of the VK constant defined
-# in java/awt/KeyEvent.java. VK_G is defined as:
-#
-#    public static final int VK_G              = 0x47;
-#
-# 0x47 is a hex number and needs to be converted to decimal.
-# A simple way to calculate this for a-z is to add 64 to the index of
-# the letter in the alphabet. As 'a' is in the 1st letter the mnemonic
-# for 'a' is 65, 'b' is 66...
-#
-# The xxDisplayedMnemonicIndex is used to indicate the index of the
-# character that should be underlined in the String, with 0
-# corresponding to the first character in the String.
-#
-# One important thing to remember is that the mnemonic MUST exist in
-# the String, if it does not exist you should add text that makes it
-# exist. This will typically take the form 'XXXX (M)' where M is the
-# character for the mnemonic.
-#
-# @author Steve Wilson
-
-############ FILE CHOOSER STRINGS #############
-FileChooser.fileDescriptionText=Allgemeine Datei
-FileChooser.directoryDescriptionText=Verzeichnis
-FileChooser.newFolderErrorText=Fehler beim Erstellen eines neuen Ordners
-FileChooser.newFolderErrorSeparator= :
-FileChooser.newFolderParentDoesntExistTitleText=Ordner kann nicht erstellt werden
-FileChooser.newFolderParentDoesntExistText=Ordner kann nicht erstellt werden.\n\nSystem kann den angegebenen Pfad nicht finden.
-FileChooser.renameErrorTitleText=Fehler beim Umbenennen von Datei oder Ordner
-FileChooser.renameErrorText={0} kann nicht umbenannt werden
-FileChooser.renameErrorFileExistsText={0} kann nicht umbenannt werden: Es ist bereits eine Datei mit dem angegebenen Namen vorhanden. Geben Sie einen anderen Dateinamen an.
-FileChooser.acceptAllFileFilterText=Alle Dateien
-FileChooser.cancelButtonText=Abbrechen
-FileChooser.cancelButtonMnemonic=65
-FileChooser.saveButtonText=Speichern
-FileChooser.saveButtonMnemonic=83
-FileChooser.openButtonText=\u00D6ffnen
-FileChooser.openButtonMnemonic=70
-FileChooser.saveDialogTitleText=Speichern
-FileChooser.openDialogTitleText=\u00D6ffnen
-FileChooser.updateButtonText=Aktualisieren
-FileChooser.updateButtonMnemonic=75
-FileChooser.helpButtonText=Hilfe
-FileChooser.helpButtonMnemonic=72
-FileChooser.directoryOpenButtonText=\u00D6ffnen
-FileChooser.directoryOpenButtonMnemonic=70
-
-# File Size Units
-FileChooser.fileSizeKiloBytes={0} KB
-FileChooser.fileSizeMegaBytes={0} MB
-FileChooser.fileSizeGigaBytes={0} GB
-
-# These strings are platform dependent not look and feel dependent.
-FileChooser.win32.newFolder=Neuer Ordner
-FileChooser.win32.newFolder.subsequent=Neuer Ordner ({0})
-FileChooser.other.newFolder=NewFolder
-FileChooser.other.newFolder.subsequent=NewFolder.{0}
-
-
-## file chooser tooltips ###
-FileChooser.cancelButtonToolTipText=Dialogfeld f\u00FCr Dateiauswahl schlie\u00DFen
-FileChooser.saveButtonToolTipText=Ausgew\u00E4hlte Datei speichern
-FileChooser.openButtonToolTipText=Ausgew\u00E4hlte Datei \u00F6ffnen
-FileChooser.updateButtonToolTipText=Verzeichnisliste aktualisieren
-FileChooser.helpButtonToolTipText=FileChooser-Hilfe
-FileChooser.directoryOpenButtonToolTipText=Ausgew\u00E4hltes Verzeichnis \u00F6ffnen
-
-FileChooser.filesListAccessibleName=Files List
-FileChooser.filesDetailsAccessibleName=Files Details
-
-############ COLOR CHOOSER STRINGS #############
-ColorChooser.previewText=Vorschau
-ColorChooser.okText=OK
-ColorChooser.cancelText=Abbrechen
-ColorChooser.resetText=Zur\u00FCcksetzen
-# VK_XXX constant for 'ColorChooser.resetText' button to make mnemonic
-ColorChooser.resetMnemonic=90
-ColorChooser.sampleText=Beispieltext  Beispieltext
-ColorChooser.swatchesNameText=Swatches
-ColorChooser.swatchesMnemonic=83
-ColorChooser.swatchesRecentText=Aktuell:
-# Each of the ColorChooser types can define a mnemonic, as a KeyEvent.VK_XXX
-# constant, and an index into the text to render the mnemonic as. The
-# mnemonic is xxxMnemonic and the index of the character to underline is
-# xxxDisplayedMnemonicIndex.
-ColorChooser.hsvNameText=HSV
-ColorChooser.hsvMnemonic=72
-ColorChooser.hsvHueText=Farbton
-ColorChooser.hsvSaturationText=S\u00E4ttigung
-ColorChooser.hsvValueText=Wert
-ColorChooser.hsvTransparencyText=Transparenz
-ColorChooser.hslNameText=HSL
-ColorChooser.hslMnemonic=76
-ColorChooser.hslHueText=Farbton
-ColorChooser.hslSaturationText=S\u00E4ttigung
-ColorChooser.hslLightnessText=Helligkeit
-ColorChooser.hslTransparencyText=Transparenz
-ColorChooser.rgbNameText=RGB
-ColorChooser.rgbMnemonic=71
-ColorChooser.rgbRedText=Rot
-ColorChooser.rgbRedMnemonic=84
-ColorChooser.rgbGreenText=Gr\u00FCn
-ColorChooser.rgbGreenMnemonic=78
-ColorChooser.rgbBlueText=Blau
-ColorChooser.rgbBlueMnemonic=66
-ColorChooser.rgbAlphaText=Alpha
-ColorChooser.rgbHexCodeText=Farbcode
-ColorChooser.rgbHexCodeMnemonic=70
-ColorChooser.cmykNameText=CMYK
-ColorChooser.cmykMnemonic=77
-ColorChooser.cmykCyanText=Zyan
-ColorChooser.cmykMagentaText=Magenta
-ColorChooser.cmykYellowText=Gelb
-ColorChooser.cmykBlackText=Schwarz
-ColorChooser.cmykAlphaText=Alpha
-
-############ OPTION PANE STRINGS #############
-# Mnemonic keys correspond to KeyEvent.VK_XXX constant
-# We only define mnemonics for YES/NO, but for completeness you can
-# define mnemonics for any of the buttons.
-OptionPane.yesButtonText=Ja
-OptionPane.yesButtonMnemonic=74
-OptionPane.noButtonText=Nein
-OptionPane.noButtonMnemonic=78
-OptionPane.okButtonText=OK
-OptionPane.okButtonMnemonic=O
-OptionPane.cancelButtonText=Abbrechen
-OptionPane.cancelButtonMnemonic=A
-OptionPane.titleText=Option ausw\u00E4hlen
-# Title for the dialog for the showInputDialog methods. Only used if
-# the developer uses one of the variants that doesn't take a title.
-OptionPane.inputDialogTitle=Eingabe
-# Title for the dialog for the showMessageDialog methods. Only used if
-# the developer uses one of the variants that doesn't take a title.
-OptionPane.messageDialogTitle=Meldung
-
-############ Printing Dialog Strings ############
-PrintingDialog.titleProgressText=Drucken
-PrintingDialog.titleAbortingText=Drucken (Abbruch)
-
-PrintingDialog.contentInitialText=Druckvorgang l\u00E4uft...
-
-# The following string will be formatted by a MessageFormat
-# and {0} will be replaced by page number being printed
-PrintingDialog.contentProgressText=Seite {0} wurde gedruckt...
-
-PrintingDialog.contentAbortingText=Druckvorgang wird abgebrochen...
-
-PrintingDialog.abortButtonText=Abbruch
-PrintingDialog.abortButtonMnemonic=65
-PrintingDialog.abortButtonDisplayedMnemonicIndex=0
-PrintingDialog.abortButtonToolTipText=Druckvorgang abbrechen
-
-############ Internal Frame Strings ############
-InternalFrame.iconButtonToolTip=Minimieren
-InternalFrame.maxButtonToolTip=Maximieren
-InternalFrame.restoreButtonToolTip=Wiederherstellen
-InternalFrame.closeButtonToolTip=Schlie\u00DFen
-
-############ Internal Frame Title Pane Strings ############
-InternalFrameTitlePane.restoreButtonText=Wiederherstellen
-InternalFrameTitlePane.moveButtonText=Verschieben
-InternalFrameTitlePane.sizeButtonText=Gr\u00F6\u00DFe
-InternalFrameTitlePane.minimizeButtonText=Minimieren
-InternalFrameTitlePane.maximizeButtonText=Maximieren
-InternalFrameTitlePane.closeButtonText=Schlie\u00DFen
-
-############ Text strings #############
-# Used for html forms
-FormView.submitButtonText=Abfrage weiterleiten
-FormView.resetButtonText=Zur\u00FCcksetzen
-FormView.browseFileButtonText=Durchsuchen...
-
-############ Abstract Document Strings ############
-AbstractDocument.styleChangeText=Formatvorlagen\u00E4nderung
-AbstractDocument.additionText=Hinzuf\u00FCgen
-AbstractDocument.deletionText=L\u00F6schen
-AbstractDocument.undoText=R\u00FCckg\u00E4ngig
-AbstractDocument.redoText=Wiederherstellen
-
-############ Abstract Button Strings ############
-AbstractButton.clickText=Klicken
-
-############ Abstract Undoable Edit Strings ############
-AbstractUndoableEdit.undoText=R\u00FCckg\u00E4ngig
-AbstractUndoableEdit.redoText=Wiederherstellen
-
-############ Combo Box Strings ############
-ComboBox.togglePopupText=togglePopup
-
-############ Progress Monitor Strings ############
-ProgressMonitor.progressText=Fortschritt...
-
-############ Split Pane Strings ############
-SplitPane.leftButtonText=linke Schaltfl\u00E4che
-SplitPane.rightButtonText=rechte Schaltfl\u00E4che
-# Used for Isindex
-IsindexView.prompt=Dieser Index kann durchsucht werden. Geben Sie Schl\u00FCsselw\u00F6rter f\u00FCr die Suche ein:
-
-############ InternalFrameTitlePane Strings ############
-InternalFrameTitlePane.iconifyButtonAccessibleName=Als Symbol darstellen
-InternalFrameTitlePane.maximizeButtonAccessibleName=Maximieren
-InternalFrameTitlePane.closeButtonAccessibleName=Schlie\u00DFen
-
+# This properties file is used to create a PropertyResourceBundle
+# It contains Locale specific strings used in Swing
+# Currently, the following components need this for support:
+#
+#    ColorChooser
+#    FileChooser
+#    OptionPane
+#
+# When this file is read in, the strings are put into the
+# defaults table.  This is an implementation detail of the current
+# workings of Swing.  DO NOT DEPEND ON THIS.
+# This may change in future versions of Swing as we improve localization
+# support.
+#
+#                        MNEMONIC NOTE:
+# Many of strings in this file are used by widgets that have a
+# mnemonic, for example:
+#   ColorChooser.rgbNameTextAndMnemonic=R&GB
+#
+# Indicates that the tab in the ColorChooser for RGB colors will have
+# the text 'RGB', further the mnemonic character will be 'g' and that
+# a decoration will be provided under the 'G'. This will typically
+# look like:  RGB
+#              -
+#
+# One important thing to remember is that the mnemonic MUST exist in
+# the String, if it does not exist you should add text that makes it
+# exist. This will typically take the form 'XXXX (M)' where M is the
+# character for the mnemonic.
+#
+# @author Steve Wilson
+
+############ FILE CHOOSER STRINGS #############
+FileChooser.fileDescription.textAndMnemonic=Allgemeine Datei
+FileChooser.directoryDescription.textAndMnemonic=Verzeichnis
+FileChooser.newFolderError.textAndMnemonic=Fehler beim Erstellen eines neuen Ordners
+FileChooser.newFolderErrorSeparator= :
+FileChooser.newFolderParentDoesntExistTitle.textAndMnemonic=Ordner kann nicht erstellt werden
+FileChooser.newFolderParentDoesntExist.textAndMnemonic=Ordner kann nicht erstellt werden.\n\nSystem kann den angegebenen Pfad nicht finden.
+FileChooser.renameErrorTitle.textAndMnemonic=Fehler beim Umbenennen von Datei oder Ordner
+FileChooser.renameError.textAndMnemonic={0} kann nicht umbenannt werden
+FileChooser.renameErrorFileExists.textAndMnemonic={0} kann nicht umbenannt werden: Es ist bereits eine Datei mit dem angegebenen Namen vorhanden. Geben Sie einen anderen Dateinamen an.
+FileChooser.acceptAllFileFilter.textAndMnemonic=Alle Dateien
+FileChooser.cancelButton.textAndMnemonic=&Abbrechen
+FileChooser.saveButton.textAndMnemonic=&Speichern
+FileChooser.openButton.textAndMnemonic=\u00D6ffnen(&F)
+FileChooser.saveDialogTitle.textAndMnemonic=Speichern
+FileChooser.openDialogTitle.textAndMnemonic=\u00D6ffnen
+FileChooser.updateButton.textAndMnemonic=A&ktualisieren
+FileChooser.helpButton.textAndMnemonic=&Hilfe
+FileChooser.directoryOpenButton.textAndMnemonic=\u00D6ffnen(&F)
+
+# File Size Units
+FileChooser.fileSizeKiloBytes={0} KB
+FileChooser.fileSizeMegaBytes={0} MB
+FileChooser.fileSizeGigaBytes={0} GB
+
+# These strings are platform dependent not look and feel dependent.
+FileChooser.win32.newFolder=Neuer Ordner
+FileChooser.win32.newFolder.subsequent=Neuer Ordner ({0})
+FileChooser.other.newFolder=NewFolder
+FileChooser.other.newFolder.subsequent=NewFolder.{0}
+
+
+## file chooser tooltips ###
+FileChooser.cancelButtonToolTip.textAndMnemonic=Dialogfeld f\u00FCr Dateiauswahl schlie\u00DFen
+FileChooser.saveButtonToolTip.textAndMnemonic=Ausgew\u00E4hlte Datei speichern
+FileChooser.openButtonToolTip.textAndMnemonic=Ausgew\u00E4hlte Datei \u00F6ffnen
+FileChooser.updateButtonToolTip.textAndMnemonic=Verzeichnisliste aktualisieren
+FileChooser.helpButtonToolTip.textAndMnemonic=FileChooser-Hilfe
+FileChooser.directoryOpenButtonToolTip.textAndMnemonic=Ausgew\u00E4hltes Verzeichnis \u00F6ffnen
+
+FileChooser.filesListAccessibleName=Files List
+FileChooser.filesDetailsAccessibleName=Files Details
+
+############ COLOR CHOOSER STRINGS #############
+ColorChooser.preview.textAndMnemonic=Vorschau
+ColorChooser.ok.textAndMnemonic=OK
+ColorChooser.cancel.textAndMnemonic=Abbrechen
+ColorChooser.reset.textAndMnemonic=Zur\u00FCcksetzen(&Z)
+ColorChooser.sample.textAndMnemonic=Beispieltext  Beispieltext
+ColorChooser.swatches.textAndMnemonic=&Swatches
+ColorChooser.swatchesRecent.textAndMnemonic=Aktuell:
+ColorChooser.hsv.textAndMnemonic=&HSV
+ColorChooser.hsvHue.textAndMnemonic=Farbton
+ColorChooser.hsvSaturation.textAndMnemonic=S\u00E4ttigung
+ColorChooser.hsvValue.textAndMnemonic=Wert
+ColorChooser.hsvTransparency.textAndMnemonic=Transparenz
+ColorChooser.hsl.textAndMnemonic=HS&L
+ColorChooser.hslHue.textAndMnemonic=Farbton
+ColorChooser.hslSaturation.textAndMnemonic=S\u00E4ttigung
+ColorChooser.hslLightness.textAndMnemonic=Helligkeit
+ColorChooser.hslTransparency.textAndMnemonic=Transparenz
+ColorChooser.rgb.textAndMnemonic=R&GB
+ColorChooser.rgbRed.textAndMnemonic=Ro&t
+ColorChooser.rgbGreen.textAndMnemonic=Gr\u00FCn(&N)
+ColorChooser.rgbBlue.textAndMnemonic=&Blau
+ColorChooser.rgbAlpha.textAndMnemonic=Alpha
+ColorChooser.rgbHexCode.textAndMnemonic=&Farbcode
+ColorChooser.cmyk.textAndMnemonic=C&MYK
+ColorChooser.cmykCyan.textAndMnemonic=Zyan
+ColorChooser.cmykMagenta.textAndMnemonic=Magenta
+ColorChooser.cmykYellow.textAndMnemonic=Gelb
+ColorChooser.cmykBlack.textAndMnemonic=Schwarz
+ColorChooser.cmykAlpha.textAndMnemonic=Alpha
+
+############ OPTION PANE STRINGS #############
+# We only define mnemonics for YES/NO, but for completeness you can
+# define mnemonics for any of the buttons.
+OptionPane.yesButton.textAndMnemonic=&Ja
+OptionPane.noButton.textAndMnemonic=&Nein
+OptionPane.okButton.textAndMnemonic=&OK
+OptionPane.cancelButton.textAndMnemonic=&Abbrechen
+OptionPane.title.textAndMnemonic=Option ausw\u00E4hlen
+# Title for the dialog for the showInputDialog methods. Only used if
+# the developer uses one of the variants that doesn't take a title.
+OptionPane.inputDialog.titleAndMnemonic=Eingabe
+# Title for the dialog for the showMessageDialog methods. Only used if
+# the developer uses one of the variants that doesn't take a title.
+OptionPane.messageDialog.titleAndMnemonic=Meldung
+
+############ Printing Dialog Strings ############
+PrintingDialog.titleProgress.textAndMnemonic=Drucken
+PrintingDialog.titleAborting.textAndMnemonic=Drucken (Abbruch)
+
+PrintingDialog.contentInitial.textAndMnemonic=Druckvorgang l\u00E4uft...
+
+# The following string will be formatted by a MessageFormat
+# and {0} will be replaced by page number being printed
+PrintingDialog.contentProgress.textAndMnemonic=Seite {0} wurde gedruckt...
+
+PrintingDialog.contentAborting.textAndMnemonic=Druckvorgang wird abgebrochen...
+
+PrintingDialog.abortButton.textAndMnemonic=&Abbruch
+PrintingDialog.abortButtonToolTip.textAndMnemonic=Druckvorgang abbrechen
+
+############ Internal Frame Strings ############
+InternalFrame.iconButtonToolTip=Minimieren
+InternalFrame.maxButtonToolTip=Maximieren
+InternalFrame.restoreButtonToolTip=Wiederherstellen
+InternalFrame.closeButtonToolTip=Schlie\u00DFen
+
+############ Internal Frame Title Pane Strings ############
+InternalFrameTitlePane.restoreButton.textAndMnemonic=Wiederherstellen
+InternalFrameTitlePane.moveButton.textAndMnemonic=Verschieben
+InternalFrameTitlePane.sizeButton.textAndMnemonic=Gr\u00F6\u00DFe
+InternalFrameTitlePane.minimizeButton.textAndMnemonic=Minimieren
+InternalFrameTitlePane.maximizeButton.textAndMnemonic=Maximieren
+InternalFrameTitlePane.closeButton.textAndMnemonic=Schlie\u00DFen
+
+############ Text strings #############
+# Used for html forms
+FormView.submitButton.textAndMnemonic=Abfrage weiterleiten
+FormView.resetButton.textAndMnemonic=Zur\u00FCcksetzen
+FormView.browseFileButton.textAndMnemonic=Durchsuchen...
+
+############ Abstract Document Strings ############
+AbstractDocument.styleChange.textAndMnemonic=Formatvorlagen\u00E4nderung
+AbstractDocument.addition.textAndMnemonic=Hinzuf\u00FCgen
+AbstractDocument.deletion.textAndMnemonic=L\u00F6schen
+AbstractDocument.undo.textAndMnemonic=R\u00FCckg\u00E4ngig
+AbstractDocument.redo.textAndMnemonic=Wiederherstellen
+
+############ Abstract Button Strings ############
+AbstractButton.click.textAndMnemonic=Klicken
+
+############ Abstract Undoable Edit Strings ############
+AbstractUndoableEdit.undo.textAndMnemonic=R\u00FCckg\u00E4ngig
+AbstractUndoableEdit.redo.textAndMnemonic=Wiederherstellen
+
+############ Combo Box Strings ############
+ComboBox.togglePopup.textAndMnemonic=togglePopup
+
+############ Progress Monitor Strings ############
+ProgressMonitor.progress.textAndMnemonic=Fortschritt...
+
+############ Split Pane Strings ############
+SplitPane.leftButton.textAndMnemonic=linke Schaltfl\u00E4che
+SplitPane.rightButton.textAndMnemonic=rechte Schaltfl\u00E4che
+# Used for Isindex
+IsindexView.prompt=Dieser Index kann durchsucht werden. Geben Sie Schl\u00FCsselw\u00F6rter f\u00FCr die Suche ein:
+
+############ InternalFrameTitlePane Strings ############
+InternalFrameTitlePane.iconifyButtonAccessibleName=Als Symbol darstellen
+InternalFrameTitlePane.maximizeButtonAccessibleName=Maximieren
+InternalFrameTitlePane.closeButtonAccessibleName=Schlie\u00DFen
+
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_es.properties	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_es.properties	Wed Jul 05 18:07:57 2017 +0200
@@ -1,229 +1,186 @@
-# This properties file is used to create a PropertyResourceBundle
-# It contains Locale specific strings used in Swing
-# Currently, the following components need this for support:
-#
-#    ColorChooser
-#    FileChooser
-#    OptionPane
-#
-# When this file is read in, the strings are put into the
-# defaults table.  This is an implementation detail of the current
-# workings of Swing.  DO NOT DEPEND ON THIS.
-# This may change in future versions of Swing as we improve localization
-# support.
-#
-#                        MNEMONIC NOTE:
-# Many of strings in this file are used by widgets that have a
-# mnemonic, for example:
-#   ColorChooser.rgbNameText=RGB
-#   ColorChooser.rgbMnemonic=71
-#   ColorChooser.rgbDisplayedMnemonicIndex=1
-# Indicates that the tab in the ColorChooser for RGB colors will have
-# the text 'RGB', further the mnemonic character will be 'g' and that
-# a decoration will be provided under the 'G'. This will typically
-# look like:  RGB
-#              -
-# 71 corresponds to the decimal value of the VK constant defined
-# in java/awt/KeyEvent.java. VK_G is defined as:
-#
-#    public static final int VK_G              = 0x47;
-#
-# 0x47 is a hex number and needs to be converted to decimal.
-# A simple way to calculate this for a-z is to add 64 to the index of
-# the letter in the alphabet. As 'a' is in the 1st letter the mnemonic
-# for 'a' is 65, 'b' is 66...
-#
-# The xxDisplayedMnemonicIndex is used to indicate the index of the
-# character that should be underlined in the String, with 0
-# corresponding to the first character in the String.
-#
-# One important thing to remember is that the mnemonic MUST exist in
-# the String, if it does not exist you should add text that makes it
-# exist. This will typically take the form 'XXXX (M)' where M is the
-# character for the mnemonic.
-#
-# @author Steve Wilson
-
-############ FILE CHOOSER STRINGS #############
-FileChooser.fileDescriptionText=Archivo Gen\u00E9rico
-FileChooser.directoryDescriptionText=Directorio
-FileChooser.newFolderErrorText=Error al crear una nueva carpeta
-FileChooser.newFolderErrorSeparator= :
-FileChooser.newFolderParentDoesntExistTitleText=No se ha podido crear la carpeta
-FileChooser.newFolderParentDoesntExistText=No se ha podido crear la carpeta.\n\nEl sistema no puede encontrar la ruta de acceso especificada.
-FileChooser.renameErrorTitleText=Error al cambiar el nombre del archivo o carpeta
-FileChooser.renameErrorText=No se puede cambiar el nombre de {0}
-FileChooser.renameErrorFileExistsText=No se puede cambiar el nombre de {0}: ya existe un archivo con el nombre especificado. Especifique otro nombre de archivo.
-FileChooser.acceptAllFileFilterText=Todos los Archivos
-FileChooser.cancelButtonText=Cancelar
-FileChooser.cancelButtonMnemonic=67
-FileChooser.saveButtonText=Guardar
-FileChooser.saveButtonMnemonic=71
-FileChooser.openButtonText=Abrir
-FileChooser.openButtonMnemonic=66
-FileChooser.saveDialogTitleText=Guardar
-FileChooser.openDialogTitleText=Abrir
-FileChooser.updateButtonText=Actualizar
-FileChooser.updateButtonMnemonic=85
-FileChooser.helpButtonText=Ayuda
-FileChooser.helpButtonMnemonic=89
-FileChooser.directoryOpenButtonText=Abrir
-FileChooser.directoryOpenButtonMnemonic=65
-
-# File Size Units
-FileChooser.fileSizeKiloBytes={0} KB
-FileChooser.fileSizeMegaBytes={0} MB
-FileChooser.fileSizeGigaBytes={0} GB
-
-# These strings are platform dependent not look and feel dependent.
-FileChooser.win32.newFolder=Nueva Carpeta
-FileChooser.win32.newFolder.subsequent=Nueva Carpeta ({0})
-FileChooser.other.newFolder=Nueva Carpeta
-FileChooser.other.newFolder.subsequent=Nueva Carpeta.{0}
-
-
-## file chooser tooltips ###
-FileChooser.cancelButtonToolTipText=Cuadro de di\u00E1logo para abortar el selector de archivos
-FileChooser.saveButtonToolTipText=Guardar archivo seleccionado
-FileChooser.openButtonToolTipText=Abrir archivo seleccionado
-FileChooser.updateButtonToolTipText=Actualizar lista de directorios
-FileChooser.helpButtonToolTipText=Ayuda del Selector de Archivos
-FileChooser.directoryOpenButtonToolTipText=Abrir directorio seleccionado
-
-FileChooser.filesListAccessibleName=Files List
-FileChooser.filesDetailsAccessibleName=Files Details
-
-############ COLOR CHOOSER STRINGS #############
-ColorChooser.previewText=Presentaci\u00F3n Preliminar
-ColorChooser.okText=Aceptar
-ColorChooser.cancelText=Cancelar
-ColorChooser.resetText=Restablecer
-# VK_XXX constant for 'ColorChooser.resetText' button to make mnemonic
-ColorChooser.resetMnemonic=82
-ColorChooser.sampleText=Texto de Ejemplo  Texto de Ejemplo
-ColorChooser.swatchesNameText=Muestras
-ColorChooser.swatchesMnemonic=83
-ColorChooser.swatchesRecentText=Reciente:
-# Each of the ColorChooser types can define a mnemonic, as a KeyEvent.VK_XXX
-# constant, and an index into the text to render the mnemonic as. The
-# mnemonic is xxxMnemonic and the index of the character to underline is
-# xxxDisplayedMnemonicIndex.
-ColorChooser.hsvNameText=HSV
-ColorChooser.hsvMnemonic=72
-ColorChooser.hsvHueText=Matiz
-ColorChooser.hsvSaturationText=Saturaci\u00F3n
-ColorChooser.hsvValueText=Valor
-ColorChooser.hsvTransparencyText=Transparencia
-ColorChooser.hslNameText=HSL
-ColorChooser.hslMnemonic=76
-ColorChooser.hslHueText=Matiz
-ColorChooser.hslSaturationText=Saturaci\u00F3n
-ColorChooser.hslLightnessText=Iluminaci\u00F3n
-ColorChooser.hslTransparencyText=Transparencia
-ColorChooser.rgbNameText=RGB
-ColorChooser.rgbMnemonic=71
-ColorChooser.rgbRedText=Rojo
-ColorChooser.rgbRedMnemonic=74
-ColorChooser.rgbGreenText=Verde
-ColorChooser.rgbGreenMnemonic=86
-ColorChooser.rgbBlueText=Azul
-ColorChooser.rgbBlueMnemonic=90
-ColorChooser.rgbAlphaText=Alfa
-ColorChooser.rgbHexCodeText=C\u00F3digo de Color
-ColorChooser.rgbHexCodeMnemonic=67
-ColorChooser.cmykNameText=CMYK
-ColorChooser.cmykMnemonic=77
-ColorChooser.cmykCyanText=Cian
-ColorChooser.cmykMagentaText=Magenta
-ColorChooser.cmykYellowText=Amarillo
-ColorChooser.cmykBlackText=Negro
-ColorChooser.cmykAlphaText=Alfa
-
-############ OPTION PANE STRINGS #############
-# Mnemonic keys correspond to KeyEvent.VK_XXX constant
-# We only define mnemonics for YES/NO, but for completeness you can
-# define mnemonics for any of the buttons.
-OptionPane.yesButtonText=S\u00ED
-OptionPane.yesButtonMnemonic=83
-OptionPane.noButtonText=No
-OptionPane.noButtonMnemonic=78
-OptionPane.okButtonText=Aceptar
-OptionPane.okButtonMnemonic=O
-OptionPane.cancelButtonText=Cancelar
-OptionPane.cancelButtonMnemonic=C
-OptionPane.titleText=Seleccionar una Opci\u00F3n
-# Title for the dialog for the showInputDialog methods. Only used if
-# the developer uses one of the variants that doesn't take a title.
-OptionPane.inputDialogTitle=Entrada
-# Title for the dialog for the showMessageDialog methods. Only used if
-# the developer uses one of the variants that doesn't take a title.
-OptionPane.messageDialogTitle=Mensaje
-
-############ Printing Dialog Strings ############
-PrintingDialog.titleProgressText=Impresi\u00F3n
-PrintingDialog.titleAbortingText=Impresi\u00F3n (Abortando)
-
-PrintingDialog.contentInitialText=Impresi\u00F3n en curso...
-
-# The following string will be formatted by a MessageFormat
-# and {0} will be replaced by page number being printed
-PrintingDialog.contentProgressText=P\u00E1gina impresa {0}...
-
-PrintingDialog.contentAbortingText=Abortando la impresi\u00F3n...
-
-PrintingDialog.abortButtonText=Abortar
-PrintingDialog.abortButtonMnemonic=65
-PrintingDialog.abortButtonDisplayedMnemonicIndex=0
-PrintingDialog.abortButtonToolTipText=Abortar Impresi\u00F3n
-
-############ Internal Frame Strings ############
-InternalFrame.iconButtonToolTip=Minimizar
-InternalFrame.maxButtonToolTip=Maximizar
-InternalFrame.restoreButtonToolTip=Restaurar
-InternalFrame.closeButtonToolTip=Cerrar
-
-############ Internal Frame Title Pane Strings ############
-InternalFrameTitlePane.restoreButtonText=Restaurar
-InternalFrameTitlePane.moveButtonText=Mover
-InternalFrameTitlePane.sizeButtonText=Tama\u00F1o
-InternalFrameTitlePane.minimizeButtonText=Minimizar
-InternalFrameTitlePane.maximizeButtonText=Maximizar
-InternalFrameTitlePane.closeButtonText=Cerrar
-
-############ Text strings #############
-# Used for html forms
-FormView.submitButtonText=Enviar Consulta
-FormView.resetButtonText=Restablecer
-FormView.browseFileButtonText=Examinar...
-
-############ Abstract Document Strings ############
-AbstractDocument.styleChangeText=cambio de estilo
-AbstractDocument.additionText=agregaci\u00F3n
-AbstractDocument.deletionText=supresi\u00F3n
-AbstractDocument.undoText=Deshacer
-AbstractDocument.redoText=Rehacer
-
-############ Abstract Button Strings ############
-AbstractButton.clickText=hacer clic
-
-############ Abstract Undoable Edit Strings ############
-AbstractUndoableEdit.undoText=Deshacer
-AbstractUndoableEdit.redoText=Rehacer
-
-############ Combo Box Strings ############
-ComboBox.togglePopupText=togglePopup
-
-############ Progress Monitor Strings ############
-ProgressMonitor.progressText=Progreso...
-
-############ Split Pane Strings ############
-SplitPane.leftButtonText=bot\u00F3n izquierdo
-SplitPane.rightButtonText=bot\u00F3n derecho
-# Used for Isindex
-IsindexView.prompt=En este \u00EDndice se pueden efectuar b\u00FAsquedas. Escriba las palabras clave de b\u00FAsqueda:
-
-############ InternalFrameTitlePane Strings ############
-InternalFrameTitlePane.iconifyButtonAccessibleName=Convertir en Icono
-InternalFrameTitlePane.maximizeButtonAccessibleName=Maximizar
-InternalFrameTitlePane.closeButtonAccessibleName=Cerrar
-
+# This properties file is used to create a PropertyResourceBundle
+# It contains Locale specific strings used in Swing
+# Currently, the following components need this for support:
+#
+#    ColorChooser
+#    FileChooser
+#    OptionPane
+#
+# When this file is read in, the strings are put into the
+# defaults table.  This is an implementation detail of the current
+# workings of Swing.  DO NOT DEPEND ON THIS.
+# This may change in future versions of Swing as we improve localization
+# support.
+#
+#                        MNEMONIC NOTE:
+# Many of strings in this file are used by widgets that have a
+# mnemonic, for example:
+#   ColorChooser.rgbNameTextAndMnemonic=R&GB
+# Indicates that the tab in the ColorChooser for RGB colors will have
+# the text 'RGB', further the mnemonic character will be 'g' and that
+# a decoration will be provided under the 'G'. This will typically
+# look like:  RGB
+#              -
+#
+# One important thing to remember is that the mnemonic MUST exist in
+# the String, if it does not exist you should add text that makes it
+# exist. This will typically take the form 'XXXX (M)' where M is the
+# character for the mnemonic.
+#
+# @author Steve Wilson
+
+############ FILE CHOOSER STRINGS #############
+FileChooser.fileDescription.textAndMnemonic=Archivo Gen\u00E9rico
+FileChooser.directoryDescription.textAndMnemonic=Directorio
+FileChooser.newFolderError.textAndMnemonic=Error al crear una nueva carpeta
+FileChooser.newFolderErrorSeparator= :
+FileChooser.newFolderParentDoesntExistTitle.textAndMnemonic=No se ha podido crear la carpeta
+FileChooser.newFolderParentDoesntExist.textAndMnemonic=No se ha podido crear la carpeta.\n\nEl sistema no puede encontrar la ruta de acceso especificada.
+FileChooser.renameErrorTitle.textAndMnemonic=Error al cambiar el nombre del archivo o carpeta
+FileChooser.renameError.textAndMnemonic=No se puede cambiar el nombre de {0}
+FileChooser.renameErrorFileExists.textAndMnemonic=No se puede cambiar el nombre de {0}: ya existe un archivo con el nombre especificado. Especifique otro nombre de archivo.
+FileChooser.acceptAllFileFilter.textAndMnemonic=Todos los Archivos
+FileChooser.cancelButton.textAndMnemonic=&Cancelar
+FileChooser.saveButton.textAndMnemonic=&Guardar
+FileChooser.openButton.textAndMnemonic=A&brir
+FileChooser.saveDialogTitle.textAndMnemonic=Guardar
+FileChooser.openDialogTitle.textAndMnemonic=Abrir
+FileChooser.updateButton.textAndMnemonic=Act&ualizar
+FileChooser.helpButton.textAndMnemonic=A&yuda
+FileChooser.directoryOpenButton.textAndMnemonic=&Abrir
+
+# File Size Units
+FileChooser.fileSizeKiloBytes={0} KB
+FileChooser.fileSizeMegaBytes={0} MB
+FileChooser.fileSizeGigaBytes={0} GB
+
+# These strings are platform dependent not look and feel dependent.
+FileChooser.win32.newFolder=Nueva Carpeta
+FileChooser.win32.newFolder.subsequent=Nueva Carpeta ({0})
+FileChooser.other.newFolder=Nueva Carpeta
+FileChooser.other.newFolder.subsequent=Nueva Carpeta.{0}
+
+
+## file chooser tooltips ###
+FileChooser.cancelButtonToolTip.textAndMnemonic=Cuadro de di\u00E1logo para abortar el selector de archivos
+FileChooser.saveButtonToolTip.textAndMnemonic=Guardar archivo seleccionado
+FileChooser.openButtonToolTip.textAndMnemonic=Abrir archivo seleccionado
+FileChooser.updateButtonToolTip.textAndMnemonic=Actualizar lista de directorios
+FileChooser.helpButtonToolTip.textAndMnemonic=Ayuda del Selector de Archivos
+FileChooser.directoryOpenButtonToolTip.textAndMnemonic=Abrir directorio seleccionado
+
+FileChooser.filesListAccessibleName=Files List
+FileChooser.filesDetailsAccessibleName=Files Details
+
+############ COLOR CHOOSER STRINGS #############
+ColorChooser.preview.textAndMnemonic=Presentaci\u00F3n Preliminar
+ColorChooser.ok.textAndMnemonic=Aceptar
+ColorChooser.cancel.textAndMnemonic=Cancelar
+ColorChooser.reset.textAndMnemonic=&Restablecer
+ColorChooser.sample.textAndMnemonic=Texto de Ejemplo  Texto de Ejemplo
+ColorChooser.swatches.textAndMnemonic=Mue&stras
+ColorChooser.swatchesRecent.textAndMnemonic=Reciente:
+ColorChooser.hsv.textAndMnemonic=&HSV
+ColorChooser.hsvHue.textAndMnemonic=Matiz
+ColorChooser.hsvSaturation.textAndMnemonic=Saturaci\u00F3n
+ColorChooser.hsvValue.textAndMnemonic=Valor
+ColorChooser.hsvTransparency.textAndMnemonic=Transparencia
+ColorChooser.hsl.textAndMnemonic=HS&L
+ColorChooser.hslHue.textAndMnemonic=Matiz
+ColorChooser.hslSaturation.textAndMnemonic=Saturaci\u00F3n
+ColorChooser.hslLightness.textAndMnemonic=Iluminaci\u00F3n
+ColorChooser.hslTransparency.textAndMnemonic=Transparencia
+ColorChooser.rgb.textAndMnemonic=R&GB
+ColorChooser.rgbRed.textAndMnemonic=Ro&jo
+ColorChooser.rgbGreen.textAndMnemonic=&Verde
+ColorChooser.rgbBlue.textAndMnemonic=A&zul
+ColorChooser.rgbAlpha.textAndMnemonic=Alfa
+ColorChooser.rgbHexCode.textAndMnemonic=C\u00F3digo de Color(&C)
+ColorChooser.cmyk.textAndMnemonic=C&MYK
+ColorChooser.cmykCyan.textAndMnemonic=Cian
+ColorChooser.cmykMagenta.textAndMnemonic=Magenta
+ColorChooser.cmykYellow.textAndMnemonic=Amarillo
+ColorChooser.cmykBlack.textAndMnemonic=Negro
+ColorChooser.cmykAlpha.textAndMnemonic=Alfa
+
+############ OPTION PANE STRINGS #############
+# We only define mnemonics for YES/NO, but for completeness you can
+# define mnemonics for any of the buttons.
+OptionPane.yesButton.textAndMnemonic=S\u00ED(&S)
+OptionPane.noButton.textAndMnemonic=&No
+OptionPane.okButton.textAndMnemonic=Aceptar(&O)
+OptionPane.cancelButton.textAndMnemonic=&Cancelar
+OptionPane.title.textAndMnemonic=Seleccionar una Opci\u00F3n
+# Title for the dialog for the showInputDialog methods. Only used if
+# the developer uses one of the variants that doesn't take a title.
+OptionPane.inputDialog.titleAndMnemonic=Entrada
+# Title for the dialog for the showMessageDialog methods. Only used if
+# the developer uses one of the variants that doesn't take a title.
+OptionPane.messageDialog.titleAndMnemonic=Mensaje
+
+############ Printing Dialog Strings ############
+PrintingDialog.titleProgress.textAndMnemonic=Impresi\u00F3n
+PrintingDialog.titleAborting.textAndMnemonic=Impresi\u00F3n (Abortando)
+
+PrintingDialog.contentInitial.textAndMnemonic=Impresi\u00F3n en curso...
+
+# The following string will be formatted by a MessageFormat
+# and {0} will be replaced by page number being printed
+PrintingDialog.contentProgress.textAndMnemonic=P\u00E1gina impresa {0}...
+
+PrintingDialog.contentAborting.textAndMnemonic=Abortando la impresi\u00F3n...
+
+PrintingDialog.abortButton.textAndMnemonic=&Abortar
+PrintingDialog.abortButtonToolTip.textAndMnemonic=Abortar Impresi\u00F3n
+
+############ Internal Frame Strings ############
+InternalFrame.iconButtonToolTip=Minimizar
+InternalFrame.maxButtonToolTip=Maximizar
+InternalFrame.restoreButtonToolTip=Restaurar
+InternalFrame.closeButtonToolTip=Cerrar
+
+############ Internal Frame Title Pane Strings ############
+InternalFrameTitlePane.restoreButton.textAndMnemonic=Restaurar
+InternalFrameTitlePane.moveButton.textAndMnemonic=Mover
+InternalFrameTitlePane.sizeButton.textAndMnemonic=Tama\u00F1o
+InternalFrameTitlePane.minimizeButton.textAndMnemonic=Minimizar
+InternalFrameTitlePane.maximizeButton.textAndMnemonic=Maximizar
+InternalFrameTitlePane.closeButton.textAndMnemonic=Cerrar
+
+############ Text strings #############
+# Used for html forms
+FormView.submitButton.textAndMnemonic=Enviar Consulta
+FormView.resetButton.textAndMnemonic=Restablecer
+FormView.browseFileButton.textAndMnemonic=Examinar...
+
+############ Abstract Document Strings ############
+AbstractDocument.styleChange.textAndMnemonic=cambio de estilo
+AbstractDocument.addition.textAndMnemonic=agregaci\u00F3n
+AbstractDocument.deletion.textAndMnemonic=supresi\u00F3n
+AbstractDocument.undo.textAndMnemonic=Deshacer
+AbstractDocument.redo.textAndMnemonic=Rehacer
+
+############ Abstract Button Strings ############
+AbstractButton.click.textAndMnemonic=hacer clic
+
+############ Abstract Undoable Edit Strings ############
+AbstractUndoableEdit.undo.textAndMnemonic=Deshacer
+AbstractUndoableEdit.redo.textAndMnemonic=Rehacer
+
+############ Combo Box Strings ############
+ComboBox.togglePopup.textAndMnemonic=togglePopup
+
+############ Progress Monitor Strings ############
+ProgressMonitor.progress.textAndMnemonic=Progreso...
+
+############ Split Pane Strings ############
+SplitPane.leftButton.textAndMnemonic=bot\u00F3n izquierdo
+SplitPane.rightButton.textAndMnemonic=bot\u00F3n derecho
+# Used for Isindex
+IsindexView.prompt=En este \u00EDndice se pueden efectuar b\u00FAsquedas. Escriba las palabras clave de b\u00FAsqueda:
+
+############ InternalFrameTitlePane Strings ############
+InternalFrameTitlePane.iconifyButtonAccessibleName=Convertir en Icono
+InternalFrameTitlePane.maximizeButtonAccessibleName=Maximizar
+InternalFrameTitlePane.closeButtonAccessibleName=Cerrar
+
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_fr.properties	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_fr.properties	Wed Jul 05 18:07:57 2017 +0200
@@ -1,229 +1,186 @@
-# This properties file is used to create a PropertyResourceBundle
-# It contains Locale specific strings used in Swing
-# Currently, the following components need this for support:
-#
-#    ColorChooser
-#    FileChooser
-#    OptionPane
-#
-# When this file is read in, the strings are put into the
-# defaults table.  This is an implementation detail of the current
-# workings of Swing.  DO NOT DEPEND ON THIS.
-# This may change in future versions of Swing as we improve localization
-# support.
-#
-#                        MNEMONIC NOTE:
-# Many of strings in this file are used by widgets that have a
-# mnemonic, for example:
-#   ColorChooser.rgbNameText=RGB
-#   ColorChooser.rgbMnemonic=71
-#   ColorChooser.rgbDisplayedMnemonicIndex=1
-# Indicates that the tab in the ColorChooser for RGB colors will have
-# the text 'RGB', further the mnemonic character will be 'g' and that
-# a decoration will be provided under the 'G'. This will typically
-# look like:  RGB
-#              -
-# 71 corresponds to the decimal value of the VK constant defined
-# in java/awt/KeyEvent.java. VK_G is defined as:
-#
-#    public static final int VK_G              = 0x47;
-#
-# 0x47 is a hex number and needs to be converted to decimal.
-# A simple way to calculate this for a-z is to add 64 to the index of
-# the letter in the alphabet. As 'a' is in the 1st letter the mnemonic
-# for 'a' is 65, 'b' is 66...
-#
-# The xxDisplayedMnemonicIndex is used to indicate the index of the
-# character that should be underlined in the String, with 0
-# corresponding to the first character in the String.
-#
-# One important thing to remember is that the mnemonic MUST exist in
-# the String, if it does not exist you should add text that makes it
-# exist. This will typically take the form 'XXXX (M)' where M is the
-# character for the mnemonic.
-#
-# @author Steve Wilson
-
-############ FILE CHOOSER STRINGS #############
-FileChooser.fileDescriptionText=Fichier g\u00E9n\u00E9rique
-FileChooser.directoryDescriptionText=R\u00E9pertoire
-FileChooser.newFolderErrorText=Erreur lors de la cr\u00E9ation du dossier
-FileChooser.newFolderErrorSeparator= :
-FileChooser.newFolderParentDoesntExistTitleText=Impossible de cr\u00E9er le dossier
-FileChooser.newFolderParentDoesntExistText=Impossible de cr\u00E9er le dossier.\n\nLe syst\u00E8me ne parvient pas \u00E0 trouver le chemin indiqu\u00E9.
-FileChooser.renameErrorTitleText=Erreur lors du changement de nom du fichier ou du dossier
-FileChooser.renameErrorText=Impossible de renommer {0}
-FileChooser.renameErrorFileExistsText=Impossible de renommer {0} : il existe d\u00E9j\u00E0 un fichier portant le nom indiqu\u00E9. Indiquez-en un autre.
-FileChooser.acceptAllFileFilterText=Tous les fichiers
-FileChooser.cancelButtonText=Annuler
-FileChooser.cancelButtonMnemonic=65
-FileChooser.saveButtonText=Enregistrer
-FileChooser.saveButtonMnemonic=83
-FileChooser.openButtonText=Ouvrir
-FileChooser.openButtonMnemonic=79
-FileChooser.saveDialogTitleText=Enregistrer
-FileChooser.openDialogTitleText=Ouvrir
-FileChooser.updateButtonText=Mettre \u00E0 jour
-FileChooser.updateButtonMnemonic=85
-FileChooser.helpButtonText=Aide
-FileChooser.helpButtonMnemonic=65
-FileChooser.directoryOpenButtonText=Ouvrir
-FileChooser.directoryOpenButtonMnemonic=79
-
-# File Size Units
-FileChooser.fileSizeKiloBytes={0} KB
-FileChooser.fileSizeMegaBytes={0} MB
-FileChooser.fileSizeGigaBytes={0} GB
-
-# These strings are platform dependent not look and feel dependent.
-FileChooser.win32.newFolder=Nouveau dossier
-FileChooser.win32.newFolder.subsequent=Nouveau dossier ({0})
-FileChooser.other.newFolder=NewFolder
-FileChooser.other.newFolder.subsequent=NewFolder.{0}
-
-
-## file chooser tooltips ###
-FileChooser.cancelButtonToolTipText=Ferme la bo\u00EEte de dialogue du s\u00E9lecteur de fichiers
-FileChooser.saveButtonToolTipText=Enregistre le fichier s\u00E9lectionn\u00E9
-FileChooser.openButtonToolTipText=Ouvre le fichier s\u00E9lectionn\u00E9
-FileChooser.updateButtonToolTipText=Met \u00E0 jour la liste des r\u00E9pertoires
-FileChooser.helpButtonToolTipText=Aide du s\u00E9lecteur de fichiers
-FileChooser.directoryOpenButtonToolTipText=Ouvre le r\u00E9pertoire s\u00E9lectionn\u00E9
-
-FileChooser.filesListAccessibleName=Files List
-FileChooser.filesDetailsAccessibleName=Files Details
-
-############ COLOR CHOOSER STRINGS #############
-ColorChooser.previewText=Aper\u00E7u
-ColorChooser.okText=OK
-ColorChooser.cancelText=Annuler
-ColorChooser.resetText=R\u00E9initialiser
-# VK_XXX constant for 'ColorChooser.resetText' button to make mnemonic
-ColorChooser.resetMnemonic=82
-ColorChooser.sampleText=Echantillon de texte  Echantillon de texte
-ColorChooser.swatchesNameText=Echantillons
-ColorChooser.swatchesMnemonic=69
-ColorChooser.swatchesRecentText=Dernier :
-# Each of the ColorChooser types can define a mnemonic, as a KeyEvent.VK_XXX
-# constant, and an index into the text to render the mnemonic as. The
-# mnemonic is xxxMnemonic and the index of the character to underline is
-# xxxDisplayedMnemonicIndex.
-ColorChooser.hsvNameText=TSV
-ColorChooser.hsvMnemonic=84
-ColorChooser.hsvHueText=Teinte
-ColorChooser.hsvSaturationText=Saturation
-ColorChooser.hsvValueText=Valeur
-ColorChooser.hsvTransparencyText=Transparence
-ColorChooser.hslNameText=TSL
-ColorChooser.hslMnemonic=76
-ColorChooser.hslHueText=Teinte
-ColorChooser.hslSaturationText=Saturation
-ColorChooser.hslLightnessText=Lumi\u00E8re
-ColorChooser.hslTransparencyText=Transparence
-ColorChooser.rgbNameText=RVB
-ColorChooser.rgbMnemonic=86
-ColorChooser.rgbRedText=Rouge
-ColorChooser.rgbRedMnemonic=79
-ColorChooser.rgbGreenText=Vert
-ColorChooser.rgbGreenMnemonic=86
-ColorChooser.rgbBlueText=Bleu
-ColorChooser.rgbBlueMnemonic=66
-ColorChooser.rgbAlphaText=Alpha
-ColorChooser.rgbHexCodeText=Code couleur
-ColorChooser.rgbHexCodeMnemonic=67
-ColorChooser.cmykNameText=CMYK
-ColorChooser.cmykMnemonic=77
-ColorChooser.cmykCyanText=Cyan
-ColorChooser.cmykMagentaText=Magenta
-ColorChooser.cmykYellowText=Jaune
-ColorChooser.cmykBlackText=Noir
-ColorChooser.cmykAlphaText=Alpha
-
-############ OPTION PANE STRINGS #############
-# Mnemonic keys correspond to KeyEvent.VK_XXX constant
-# We only define mnemonics for YES/NO, but for completeness you can
-# define mnemonics for any of the buttons.
-OptionPane.yesButtonText=Oui
-OptionPane.yesButtonMnemonic=79
-OptionPane.noButtonText=Non
-OptionPane.noButtonMnemonic=78
-OptionPane.okButtonText=OK
-OptionPane.okButtonMnemonic=O
-OptionPane.cancelButtonText=Annuler
-OptionPane.cancelButtonMnemonic=A
-OptionPane.titleText=S\u00E9lectionner une option
-# Title for the dialog for the showInputDialog methods. Only used if
-# the developer uses one of the variants that doesn't take a title.
-OptionPane.inputDialogTitle=Entr\u00E9e
-# Title for the dialog for the showMessageDialog methods. Only used if
-# the developer uses one of the variants that doesn't take a title.
-OptionPane.messageDialogTitle=Message
-
-############ Printing Dialog Strings ############
-PrintingDialog.titleProgressText=Impression
-PrintingDialog.titleAbortingText=Impression (abandon)
-
-PrintingDialog.contentInitialText=Impression en cours...
-
-# The following string will be formatted by a MessageFormat
-# and {0} will be replaced by page number being printed
-PrintingDialog.contentProgressText=Page {0} imprim\u00E9e...
-
-PrintingDialog.contentAbortingText=Abandon de l'impression...
-
-PrintingDialog.abortButtonText=Abandonner
-PrintingDialog.abortButtonMnemonic=65
-PrintingDialog.abortButtonDisplayedMnemonicIndex=0
-PrintingDialog.abortButtonToolTipText=Abandonner l'impression
-
-############ Internal Frame Strings ############
-InternalFrame.iconButtonToolTip=R\u00E9duire
-InternalFrame.maxButtonToolTip=Agrandir
-InternalFrame.restoreButtonToolTip=Restaurer
-InternalFrame.closeButtonToolTip=Fermer
-
-############ Internal Frame Title Pane Strings ############
-InternalFrameTitlePane.restoreButtonText=Restaurer
-InternalFrameTitlePane.moveButtonText=D\u00E9placer
-InternalFrameTitlePane.sizeButtonText=Taille
-InternalFrameTitlePane.minimizeButtonText=R\u00E9duire
-InternalFrameTitlePane.maximizeButtonText=Agrandir
-InternalFrameTitlePane.closeButtonText=Fermer
-
-############ Text strings #############
-# Used for html forms
-FormView.submitButtonText=Soumettre la requ\u00EAte
-FormView.resetButtonText=R\u00E9initialiser
-FormView.browseFileButtonText=Parcourir...
-
-############ Abstract Document Strings ############
-AbstractDocument.styleChangeText=modification de style
-AbstractDocument.additionText=ajout
-AbstractDocument.deletionText=suppression
-AbstractDocument.undoText=Annuler
-AbstractDocument.redoText=R\u00E9tablir
-
-############ Abstract Button Strings ############
-AbstractButton.clickText=cliquer
-
-############ Abstract Undoable Edit Strings ############
-AbstractUndoableEdit.undoText=Annuler
-AbstractUndoableEdit.redoText=R\u00E9tablir
-
-############ Combo Box Strings ############
-ComboBox.togglePopupText=togglePopup
-
-############ Progress Monitor Strings ############
-ProgressMonitor.progressText=Progression...
-
-############ Split Pane Strings ############
-SplitPane.leftButtonText=bouton gauche
-SplitPane.rightButtonText=bouton droit
-# Used for Isindex
-IsindexView.prompt=Ceci est un index de recherche. Tapez des mots-cl\u00E9s pour la recherche :
-
-############ InternalFrameTitlePane Strings ############
-InternalFrameTitlePane.iconifyButtonAccessibleName=R\u00E9duire
-InternalFrameTitlePane.maximizeButtonAccessibleName=Agrandir
-InternalFrameTitlePane.closeButtonAccessibleName=Fermer
-
+# This properties file is used to create a PropertyResourceBundle
+# It contains Locale specific strings used in Swing
+# Currently, the following components need this for support:
+#
+#    ColorChooser
+#    FileChooser
+#    OptionPane
+#
+# When this file is read in, the strings are put into the
+# defaults table.  This is an implementation detail of the current
+# workings of Swing.  DO NOT DEPEND ON THIS.
+# This may change in future versions of Swing as we improve localization
+# support.
+#
+#                        MNEMONIC NOTE:
+# Many of strings in this file are used by widgets that have a
+# mnemonic, for example:
+#   ColorChooser.rgbNameTextAndMnemonic=R&GB
+# Indicates that the tab in the ColorChooser for RGB colors will have
+# the text 'RGB', further the mnemonic character will be 'g' and that
+# a decoration will be provided under the 'G'. This will typically
+# look like:  RGB
+#              -
+#
+# One important thing to remember is that the mnemonic MUST exist in
+# the String, if it does not exist you should add text that makes it
+# exist. This will typically take the form 'XXXX (M)' where M is the
+# character for the mnemonic.
+#
+# @author Steve Wilson
+
+############ FILE CHOOSER STRINGS #############
+FileChooser.fileDescription.textAndMnemonic=Fichier g\u00E9n\u00E9rique
+FileChooser.directoryDescription.textAndMnemonic=R\u00E9pertoire
+FileChooser.newFolderError.textAndMnemonic=Erreur lors de la cr\u00E9ation du dossier
+FileChooser.newFolderErrorSeparator= :
+FileChooser.newFolderParentDoesntExistTitle.textAndMnemonic=Impossible de cr\u00E9er le dossier
+FileChooser.newFolderParentDoesntExist.textAndMnemonic=Impossible de cr\u00E9er le dossier.\n\nLe syst\u00E8me ne parvient pas \u00E0 trouver le chemin indiqu\u00E9.
+FileChooser.renameErrorTitle.textAndMnemonic=Erreur lors du changement de nom du fichier ou du dossier
+FileChooser.renameError.textAndMnemonic=Impossible de renommer {0}
+FileChooser.renameErrorFileExists.textAndMnemonic=Impossible de renommer {0} : il existe d\u00E9j\u00E0 un fichier portant le nom indiqu\u00E9. Indiquez-en un autre.
+FileChooser.acceptAllFileFilter.textAndMnemonic=Tous les fichiers
+FileChooser.cancelButton.textAndMnemonic=&Annuler
+FileChooser.saveButton.textAndMnemonic=Enregi&strer
+FileChooser.openButton.textAndMnemonic=&Ouvrir
+FileChooser.saveDialogTitle.textAndMnemonic=Enregistrer
+FileChooser.openDialogTitle.textAndMnemonic=Ouvrir
+FileChooser.updateButton.textAndMnemonic=Mettre \u00E0 jour(&U)
+FileChooser.helpButton.textAndMnemonic=&Aide
+FileChooser.directoryOpenButton.textAndMnemonic=&Ouvrir
+
+# File Size Units
+FileChooser.fileSizeKiloBytes={0} KB
+FileChooser.fileSizeMegaBytes={0} MB
+FileChooser.fileSizeGigaBytes={0} GB
+
+# These strings are platform dependent not look and feel dependent.
+FileChooser.win32.newFolder=Nouveau dossier
+FileChooser.win32.newFolder.subsequent=Nouveau dossier ({0})
+FileChooser.other.newFolder=NewFolder
+FileChooser.other.newFolder.subsequent=NewFolder.{0}
+
+
+## file chooser tooltips ###
+FileChooser.cancelButtonToolTip.textAndMnemonic=Ferme la bo\u00EEte de dialogue du s\u00E9lecteur de fichiers
+FileChooser.saveButtonToolTip.textAndMnemonic=Enregistre le fichier s\u00E9lectionn\u00E9
+FileChooser.openButtonToolTip.textAndMnemonic=Ouvre le fichier s\u00E9lectionn\u00E9
+FileChooser.updateButtonToolTip.textAndMnemonic=Met \u00E0 jour la liste des r\u00E9pertoires
+FileChooser.helpButtonToolTip.textAndMnemonic=Aide du s\u00E9lecteur de fichiers
+FileChooser.directoryOpenButtonToolTip.textAndMnemonic=Ouvre le r\u00E9pertoire s\u00E9lectionn\u00E9
+
+FileChooser.filesListAccessibleName=Files List
+FileChooser.filesDetailsAccessibleName=Files Details
+
+############ COLOR CHOOSER STRINGS #############
+ColorChooser.preview.textAndMnemonic=Aper\u00E7u
+ColorChooser.ok.textAndMnemonic=OK
+ColorChooser.cancel.textAndMnemonic=Annuler
+ColorChooser.reset.textAndMnemonic=R\u00E9initialiser(&R)
+ColorChooser.sample.textAndMnemonic=Echantillon de texte  Echantillon de texte
+ColorChooser.swatches.textAndMnemonic=&Echantillons
+ColorChooser.swatchesRecent.textAndMnemonic=Dernier :
+ColorChooser.hsv.textAndMnemonic=&TSV
+ColorChooser.hsvHue.textAndMnemonic=Teinte
+ColorChooser.hsvSaturation.textAndMnemonic=Saturation
+ColorChooser.hsvValue.textAndMnemonic=Valeur
+ColorChooser.hsvTransparency.textAndMnemonic=Transparence
+ColorChooser.hsl.textAndMnemonic=TS&L
+ColorChooser.hslHue.textAndMnemonic=Teinte
+ColorChooser.hslSaturation.textAndMnemonic=Saturation
+ColorChooser.hslLightness.textAndMnemonic=Lumi\u00E8re
+ColorChooser.hslTransparency.textAndMnemonic=Transparence
+ColorChooser.rgb.textAndMnemonic=R&VB
+ColorChooser.rgbRed.textAndMnemonic=R&ouge
+ColorChooser.rgbGreen.textAndMnemonic=&Vert
+ColorChooser.rgbBlue.textAndMnemonic=&Bleu
+ColorChooser.rgbAlpha.textAndMnemonic=Alpha
+ColorChooser.rgbHexCode.textAndMnemonic=&Code couleur
+ColorChooser.cmyk.textAndMnemonic=C&MYK
+ColorChooser.cmykCyan.textAndMnemonic=Cyan
+ColorChooser.cmykMagenta.textAndMnemonic=Magenta
+ColorChooser.cmykYellow.textAndMnemonic=Jaune
+ColorChooser.cmykBlack.textAndMnemonic=Noir
+ColorChooser.cmykAlpha.textAndMnemonic=Alpha
+
+############ OPTION PANE STRINGS #############
+# We only define mnemonics for YES/NO, but for completeness you can
+# define mnemonics for any of the buttons.
+OptionPane.yesButton.textAndMnemonic=&Oui
+OptionPane.noButton.textAndMnemonic=&Non
+OptionPane.okButton.textAndMnemonic=&OK
+OptionPane.cancelButton.textAndMnemonic=&Annuler
+OptionPane.title.textAndMnemonic=S\u00E9lectionner une option
+# Title for the dialog for the showInputDialog methods. Only used if
+# the developer uses one of the variants that doesn't take a title.
+OptionPane.inputDialog.titleAndMnemonic=Entr\u00E9e
+# Title for the dialog for the showMessageDialog methods. Only used if
+# the developer uses one of the variants that doesn't take a title.
+OptionPane.messageDialog.titleAndMnemonic=Message
+
+############ Printing Dialog Strings ############
+PrintingDialog.titleProgress.textAndMnemonic=Impression
+PrintingDialog.titleAborting.textAndMnemonic=Impression (abandon)
+
+PrintingDialog.contentInitial.textAndMnemonic=Impression en cours...
+
+# The following string will be formatted by a MessageFormat
+# and {0} will be replaced by page number being printed
+PrintingDialog.contentProgress.textAndMnemonic=Page {0} imprim\u00E9e...
+
+PrintingDialog.contentAborting.textAndMnemonic=Abandon de l'impression...
+
+PrintingDialog.abortButton.textAndMnemonic=&Abandonner
+PrintingDialog.abortButtonToolTip.textAndMnemonic=Abandonner l'impression
+
+############ Internal Frame Strings ############
+InternalFrame.iconButtonToolTip=R\u00E9duire
+InternalFrame.maxButtonToolTip=Agrandir
+InternalFrame.restoreButtonToolTip=Restaurer
+InternalFrame.closeButtonToolTip=Fermer
+
+############ Internal Frame Title Pane Strings ############
+InternalFrameTitlePane.restoreButton.textAndMnemonic=Restaurer
+InternalFrameTitlePane.moveButton.textAndMnemonic=D\u00E9placer
+InternalFrameTitlePane.sizeButton.textAndMnemonic=Taille
+InternalFrameTitlePane.minimizeButton.textAndMnemonic=R\u00E9duire
+InternalFrameTitlePane.maximizeButton.textAndMnemonic=Agrandir
+InternalFrameTitlePane.closeButton.textAndMnemonic=Fermer
+
+############ Text strings #############
+# Used for html forms
+FormView.submitButton.textAndMnemonic=Soumettre la requ\u00EAte
+FormView.resetButton.textAndMnemonic=R\u00E9initialiser
+FormView.browseFileButton.textAndMnemonic=Parcourir...
+
+############ Abstract Document Strings ############
+AbstractDocument.styleChange.textAndMnemonic=modification de style
+AbstractDocument.addition.textAndMnemonic=ajout
+AbstractDocument.deletion.textAndMnemonic=suppression
+AbstractDocument.undo.textAndMnemonic=Annuler
+AbstractDocument.redo.textAndMnemonic=R\u00E9tablir
+
+############ Abstract Button Strings ############
+AbstractButton.click.textAndMnemonic=cliquer
+
+############ Abstract Undoable Edit Strings ############
+AbstractUndoableEdit.undo.textAndMnemonic=Annuler
+AbstractUndoableEdit.redo.textAndMnemonic=R\u00E9tablir
+
+############ Combo Box Strings ############
+ComboBox.togglePopup.textAndMnemonic=togglePopup
+
+############ Progress Monitor Strings ############
+ProgressMonitor.progress.textAndMnemonic=Progression...
+
+############ Split Pane Strings ############
+SplitPane.leftButton.textAndMnemonic=bouton gauche
+SplitPane.rightButton.textAndMnemonic=bouton droit
+# Used for Isindex
+IsindexView.prompt=Ceci est un index de recherche. Tapez des mots-cl\u00E9s pour la recherche :
+
+############ InternalFrameTitlePane Strings ############
+InternalFrameTitlePane.iconifyButtonAccessibleName=R\u00E9duire
+InternalFrameTitlePane.maximizeButtonAccessibleName=Agrandir
+InternalFrameTitlePane.closeButtonAccessibleName=Fermer
+
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_it.properties	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_it.properties	Wed Jul 05 18:07:57 2017 +0200
@@ -1,229 +1,186 @@
-# This properties file is used to create a PropertyResourceBundle
-# It contains Locale specific strings used in Swing
-# Currently, the following components need this for support:
-#
-#    ColorChooser
-#    FileChooser
-#    OptionPane
-#
-# When this file is read in, the strings are put into the
-# defaults table.  This is an implementation detail of the current
-# workings of Swing.  DO NOT DEPEND ON THIS.
-# This may change in future versions of Swing as we improve localization
-# support.
-#
-#                        MNEMONIC NOTE:
-# Many of strings in this file are used by widgets that have a
-# mnemonic, for example:
-#   ColorChooser.rgbNameText=RGB
-#   ColorChooser.rgbMnemonic=71
-#   ColorChooser.rgbDisplayedMnemonicIndex=1
-# Indicates that the tab in the ColorChooser for RGB colors will have
-# the text 'RGB', further the mnemonic character will be 'g' and that
-# a decoration will be provided under the 'G'. This will typically
-# look like:  RGB
-#              -
-# 71 corresponds to the decimal value of the VK constant defined
-# in java/awt/KeyEvent.java. VK_G is defined as:
-#
-#    public static final int VK_G              = 0x47;
-#
-# 0x47 is a hex number and needs to be converted to decimal.
-# A simple way to calculate this for a-z is to add 64 to the index of
-# the letter in the alphabet. As 'a' is in the 1st letter the mnemonic
-# for 'a' is 65, 'b' is 66...
-#
-# The xxDisplayedMnemonicIndex is used to indicate the index of the
-# character that should be underlined in the String, with 0
-# corresponding to the first character in the String.
-#
-# One important thing to remember is that the mnemonic MUST exist in
-# the String, if it does not exist you should add text that makes it
-# exist. This will typically take the form 'XXXX (M)' where M is the
-# character for the mnemonic.
-#
-# @author Steve Wilson
-
-############ FILE CHOOSER STRINGS #############
-FileChooser.fileDescriptionText=File generico
-FileChooser.directoryDescriptionText=Directory
-FileChooser.newFolderErrorText=Errore durante la creazione della nuova cartella
-FileChooser.newFolderErrorSeparator= :
-FileChooser.newFolderParentDoesntExistTitleText=Impossibile creare la cartella
-FileChooser.newFolderParentDoesntExistText=Impossibile creare la cartella.\n\nIl sistema non \u00E8 in grado di trovare il percorso specificato.
-FileChooser.renameErrorTitleText=Errore durante la ridenominazione del file o della cartella
-FileChooser.renameErrorText=Impossibile rinominare {0}
-FileChooser.renameErrorFileExistsText=Impossibile rinominare {0}: esiste gi\u00E0 un file con il nome specificato. Specificare un altro nome.
-FileChooser.acceptAllFileFilterText=Tutti i file
-FileChooser.cancelButtonText=Annulla
-FileChooser.cancelButtonMnemonic=65
-FileChooser.saveButtonText=Salva
-FileChooser.saveButtonMnemonic=86
-FileChooser.openButtonText=Apri
-FileChooser.openButtonMnemonic=80
-FileChooser.saveDialogTitleText=Salva
-FileChooser.openDialogTitleText=Apri
-FileChooser.updateButtonText=Aggiorna
-FileChooser.updateButtonMnemonic=71
-FileChooser.helpButtonText=?(H)
-FileChooser.helpButtonMnemonic=72
-FileChooser.directoryOpenButtonText=Apri
-FileChooser.directoryOpenButtonMnemonic=65
-
-# File Size Units
-FileChooser.fileSizeKiloBytes={0} KB
-FileChooser.fileSizeMegaBytes={0} MB
-FileChooser.fileSizeGigaBytes={0} GB
-
-# These strings are platform dependent not look and feel dependent.
-FileChooser.win32.newFolder=Nuova cartella
-FileChooser.win32.newFolder.subsequent=Nuova cartella ({0})
-FileChooser.other.newFolder=NewFolder
-FileChooser.other.newFolder.subsequent=NewFolder.{0}
-
-
-## file chooser tooltips ###
-FileChooser.cancelButtonToolTipText=Chiude la finestra di dialogo di selezione file
-FileChooser.saveButtonToolTipText=Salva il file selezionato
-FileChooser.openButtonToolTipText=Apre il file selezionato
-FileChooser.updateButtonToolTipText=Aggiorna la lista directory
-FileChooser.helpButtonToolTipText=Guida FileChooser
-FileChooser.directoryOpenButtonToolTipText=Apre la directory selezionata
-
-FileChooser.filesListAccessibleName=Files List
-FileChooser.filesDetailsAccessibleName=Files Details
-
-############ COLOR CHOOSER STRINGS #############
-ColorChooser.previewText=Anteprima
-ColorChooser.okText=OK
-ColorChooser.cancelText=Annulla
-ColorChooser.resetText=Reimposta
-# VK_XXX constant for 'ColorChooser.resetText' button to make mnemonic
-ColorChooser.resetMnemonic=82
-ColorChooser.sampleText=Testo di prova          Testo di prova
-ColorChooser.swatchesNameText=Colori campione
-ColorChooser.swatchesMnemonic=80
-ColorChooser.swatchesRecentText=Recenti:
-# Each of the ColorChooser types can define a mnemonic, as a KeyEvent.VK_XXX
-# constant, and an index into the text to render the mnemonic as. The
-# mnemonic is xxxMnemonic and the index of the character to underline is
-# xxxDisplayedMnemonicIndex.
-ColorChooser.hsvNameText=HSV
-ColorChooser.hsvMnemonic=72
-ColorChooser.hsvHueText=Tonalit\u00E0
-ColorChooser.hsvSaturationText=Saturazione
-ColorChooser.hsvValueText=Valore
-ColorChooser.hsvTransparencyText=Trasparenza
-ColorChooser.hslNameText=HSL
-ColorChooser.hslMnemonic=76
-ColorChooser.hslHueText=Tonalit\u00E0
-ColorChooser.hslSaturationText=Saturazione
-ColorChooser.hslLightnessText=Luminosit\u00E0
-ColorChooser.hslTransparencyText=Trasparenza
-ColorChooser.rgbNameText=RGB
-ColorChooser.rgbMnemonic=71
-ColorChooser.rgbRedText=Rosso
-ColorChooser.rgbRedMnemonic=83
-ColorChooser.rgbGreenText=Verde
-ColorChooser.rgbGreenMnemonic=68
-ColorChooser.rgbBlueText=Blu
-ColorChooser.rgbBlueMnemonic=66
-ColorChooser.rgbAlphaText=Alfa
-ColorChooser.rgbHexCodeText=Codice colori
-ColorChooser.rgbHexCodeMnemonic=67
-ColorChooser.cmykNameText=CMYK
-ColorChooser.cmykMnemonic=77
-ColorChooser.cmykCyanText=Ciano
-ColorChooser.cmykMagentaText=Magenta
-ColorChooser.cmykYellowText=Giallo
-ColorChooser.cmykBlackText=Nero
-ColorChooser.cmykAlphaText=Alfa
-
-############ OPTION PANE STRINGS #############
-# Mnemonic keys correspond to KeyEvent.VK_XXX constant
-# We only define mnemonics for YES/NO, but for completeness you can
-# define mnemonics for any of the buttons.
-OptionPane.yesButtonText=S\u00EC
-OptionPane.yesButtonMnemonic=83
-OptionPane.noButtonText=No
-OptionPane.noButtonMnemonic=78
-OptionPane.okButtonText=OK
-OptionPane.okButtonMnemonic=O
-OptionPane.cancelButtonText=Annulla
-OptionPane.cancelButtonMnemonic=A
-OptionPane.titleText=Selezionare una opzione
-# Title for the dialog for the showInputDialog methods. Only used if
-# the developer uses one of the variants that doesn't take a title.
-OptionPane.inputDialogTitle=Input
-# Title for the dialog for the showMessageDialog methods. Only used if
-# the developer uses one of the variants that doesn't take a title.
-OptionPane.messageDialogTitle=Messaggio
-
-############ Printing Dialog Strings ############
-PrintingDialog.titleProgressText=Stampa in corso
-PrintingDialog.titleAbortingText=Stampa in corso (operazione interrotta)
-
-PrintingDialog.contentInitialText=Stampa in corso...
-
-# The following string will be formatted by a MessageFormat
-# and {0} will be replaced by page number being printed
-PrintingDialog.contentProgressText=Pagina stampata {0}...
-
-PrintingDialog.contentAbortingText=Interruzione della stampa...
-
-PrintingDialog.abortButtonText=Interrompi
-PrintingDialog.abortButtonMnemonic=78
-PrintingDialog.abortButtonDisplayedMnemonicIndex=0
-PrintingDialog.abortButtonToolTipText=Interrompi la stampa
-
-############ Internal Frame Strings ############
-InternalFrame.iconButtonToolTip=Riduci a icona
-InternalFrame.maxButtonToolTip=Ingrandisci
-InternalFrame.restoreButtonToolTip=Ripristina
-InternalFrame.closeButtonToolTip=Chiudi
-
-############ Internal Frame Title Pane Strings ############
-InternalFrameTitlePane.restoreButtonText=Ripristina
-InternalFrameTitlePane.moveButtonText=Sposta
-InternalFrameTitlePane.sizeButtonText=Dimensioni
-InternalFrameTitlePane.minimizeButtonText=Riduci a icona
-InternalFrameTitlePane.maximizeButtonText=Ingrandisci
-InternalFrameTitlePane.closeButtonText=Chiudi
-
-############ Text strings #############
-# Used for html forms
-FormView.submitButtonText=Sottometti query
-FormView.resetButtonText=Reimposta
-FormView.browseFileButtonText=Sfoglia...
-
-############ Abstract Document Strings ############
-AbstractDocument.styleChangeText=modifica di stile
-AbstractDocument.additionText=aggiunta
-AbstractDocument.deletionText=eliminazione
-AbstractDocument.undoText=Annulla
-AbstractDocument.redoText=Ripeti
-
-############ Abstract Button Strings ############
-AbstractButton.clickText=fare clic
-
-############ Abstract Undoable Edit Strings ############
-AbstractUndoableEdit.undoText=Annulla
-AbstractUndoableEdit.redoText=Ripeti
-
-############ Combo Box Strings ############
-ComboBox.togglePopupText=togglePopup
-
-############ Progress Monitor Strings ############
-ProgressMonitor.progressText=Avanzamento...
-
-############ Split Pane Strings ############
-SplitPane.leftButtonText=tasto sinistro
-SplitPane.rightButtonText=tasto destro
-# Used for Isindex
-IsindexView.prompt=Questo \u00E8 un indice di ricerca. Immettere le parole chiave:
-
-############ InternalFrameTitlePane Strings ############
-InternalFrameTitlePane.iconifyButtonAccessibleName=Riduci a icona
-InternalFrameTitlePane.maximizeButtonAccessibleName=Ingrandisci
-InternalFrameTitlePane.closeButtonAccessibleName=Chiudi
-
+# This properties file is used to create a PropertyResourceBundle
+# It contains Locale specific strings used in Swing
+# Currently, the following components need this for support:
+#
+#    ColorChooser
+#    FileChooser
+#    OptionPane
+#
+# When this file is read in, the strings are put into the
+# defaults table.  This is an implementation detail of the current
+# workings of Swing.  DO NOT DEPEND ON THIS.
+# This may change in future versions of Swing as we improve localization
+# support.
+#
+#                        MNEMONIC NOTE:
+# Many of strings in this file are used by widgets that have a
+# mnemonic, for example:
+#   ColorChooser.rgbNameTextAndMnemonic=R&GB
+# Indicates that the tab in the ColorChooser for RGB colors will have
+# the text 'RGB', further the mnemonic character will be 'g' and that
+# a decoration will be provided under the 'G'. This will typically
+# look like:  RGB
+#              -
+#
+# One important thing to remember is that the mnemonic MUST exist in
+# the String, if it does not exist you should add text that makes it
+# exist. This will typically take the form 'XXXX (M)' where M is the
+# character for the mnemonic.
+#
+# @author Steve Wilson
+
+############ FILE CHOOSER STRINGS #############
+FileChooser.fileDescription.textAndMnemonic=File generico
+FileChooser.directoryDescription.textAndMnemonic=Directory
+FileChooser.newFolderError.textAndMnemonic=Errore durante la creazione della nuova cartella
+FileChooser.newFolderErrorSeparator= :
+FileChooser.newFolderParentDoesntExistTitle.textAndMnemonic=Impossibile creare la cartella
+FileChooser.newFolderParentDoesntExist.textAndMnemonic=Impossibile creare la cartella.\n\nIl sistema non \u00E8 in grado di trovare il percorso specificato.
+FileChooser.renameErrorTitle.textAndMnemonic=Errore durante la ridenominazione del file o della cartella
+FileChooser.renameError.textAndMnemonic=Impossibile rinominare {0}
+FileChooser.renameErrorFileExists.textAndMnemonic=Impossibile rinominare {0}: esiste gi\u00E0 un file con il nome specificato. Specificare un altro nome.
+FileChooser.acceptAllFileFilter.textAndMnemonic=Tutti i file
+FileChooser.cancelButton.textAndMnemonic=&Annulla
+FileChooser.saveButton.textAndMnemonic=Sal&va
+FileChooser.openButton.textAndMnemonic=A&pri
+FileChooser.saveDialogTitle.textAndMnemonic=Salva
+FileChooser.openDialogTitle.textAndMnemonic=Apri
+FileChooser.updateButton.textAndMnemonic=A&ggiorna
+FileChooser.helpButton.textAndMnemonic=?(&H)
+FileChooser.directoryOpenButton.textAndMnemonic=&Apri
+
+# File Size Units
+FileChooser.fileSizeKiloBytes={0} KB
+FileChooser.fileSizeMegaBytes={0} MB
+FileChooser.fileSizeGigaBytes={0} GB
+
+# These strings are platform dependent not look and feel dependent.
+FileChooser.win32.newFolder=Nuova cartella
+FileChooser.win32.newFolder.subsequent=Nuova cartella ({0})
+FileChooser.other.newFolder=NewFolder
+FileChooser.other.newFolder.subsequent=NewFolder.{0}
+
+
+## file chooser tooltips ###
+FileChooser.cancelButtonToolTip.textAndMnemonic=Chiude la finestra di dialogo di selezione file
+FileChooser.saveButtonToolTip.textAndMnemonic=Salva il file selezionato
+FileChooser.openButtonToolTip.textAndMnemonic=Apre il file selezionato
+FileChooser.updateButtonToolTip.textAndMnemonic=Aggiorna la lista directory
+FileChooser.helpButtonToolTip.textAndMnemonic=Guida FileChooser
+FileChooser.directoryOpenButtonToolTip.textAndMnemonic=Apre la directory selezionata
+
+FileChooser.filesListAccessibleName=Files List
+FileChooser.filesDetailsAccessibleName=Files Details
+
+############ COLOR CHOOSER STRINGS #############
+ColorChooser.preview.textAndMnemonic=Anteprima
+ColorChooser.ok.textAndMnemonic=OK
+ColorChooser.cancel.textAndMnemonic=Annulla
+ColorChooser.reset.textAndMnemonic=&Reimposta
+ColorChooser.sample.textAndMnemonic=Testo di prova          Testo di prova
+ColorChooser.swatches.textAndMnemonic=Colori cam&pione
+ColorChooser.swatchesRecent.textAndMnemonic=Recenti:
+ColorChooser.hsv.textAndMnemonic=&HSV
+ColorChooser.hsvHue.textAndMnemonic=Tonalit\u00E0
+ColorChooser.hsvSaturation.textAndMnemonic=Saturazione
+ColorChooser.hsvValue.textAndMnemonic=Valore
+ColorChooser.hsvTransparency.textAndMnemonic=Trasparenza
+ColorChooser.hsl.textAndMnemonic=HS&L
+ColorChooser.hslHue.textAndMnemonic=Tonalit\u00E0
+ColorChooser.hslSaturation.textAndMnemonic=Saturazione
+ColorChooser.hslLightness.textAndMnemonic=Luminosit\u00E0
+ColorChooser.hslTransparency.textAndMnemonic=Trasparenza
+ColorChooser.rgb.textAndMnemonic=R&GB
+ColorChooser.rgbRed.textAndMnemonic=Ro&sso
+ColorChooser.rgbGreen.textAndMnemonic=Ver&de
+ColorChooser.rgbBlue.textAndMnemonic=&Blu
+ColorChooser.rgbAlpha.textAndMnemonic=Alfa
+ColorChooser.rgbHexCode.textAndMnemonic=&Codice colori
+ColorChooser.cmyk.textAndMnemonic=C&MYK
+ColorChooser.cmykCyan.textAndMnemonic=Ciano
+ColorChooser.cmykMagenta.textAndMnemonic=Magenta
+ColorChooser.cmykYellow.textAndMnemonic=Giallo
+ColorChooser.cmykBlack.textAndMnemonic=Nero
+ColorChooser.cmykAlpha.textAndMnemonic=Alfa
+
+############ OPTION PANE STRINGS #############
+# We only define mnemonics for YES/NO, but for completeness you can
+# define mnemonics for any of the buttons.
+OptionPane.yesButton.textAndMnemonic=S\u00EC(&S)
+OptionPane.noButton.textAndMnemonic=&No
+OptionPane.okButton.textAndMnemonic=&OK
+OptionPane.cancelButton.textAndMnemonic=&Annulla
+OptionPane.title.textAndMnemonic=Selezionare una opzione
+# Title for the dialog for the showInputDialog methods. Only used if
+# the developer uses one of the variants that doesn't take a title.
+OptionPane.inputDialog.titleAndMnemonic=Input
+# Title for the dialog for the showMessageDialog methods. Only used if
+# the developer uses one of the variants that doesn't take a title.
+OptionPane.messageDialog.titleAndMnemonic=Messaggio
+
+############ Printing Dialog Strings ############
+PrintingDialog.titleProgress.textAndMnemonic=Stampa in corso
+PrintingDialog.titleAborting.textAndMnemonic=Stampa in corso (operazione interrotta)
+
+PrintingDialog.contentInitial.textAndMnemonic=Stampa in corso...
+
+# The following string will be formatted by a MessageFormat
+# and {0} will be replaced by page number being printed
+PrintingDialog.contentProgress.textAndMnemonic=Pagina stampata {0}...
+
+PrintingDialog.contentAborting.textAndMnemonic=Interruzione della stampa...
+
+PrintingDialog.abortButton.textAndMnemonic=I&nterrompi
+PrintingDialog.abortButtonToolTip.textAndMnemonic=Interrompi la stampa
+
+############ Internal Frame Strings ############
+InternalFrame.iconButtonToolTip=Riduci a icona
+InternalFrame.maxButtonToolTip=Ingrandisci
+InternalFrame.restoreButtonToolTip=Ripristina
+InternalFrame.closeButtonToolTip=Chiudi
+
+############ Internal Frame Title Pane Strings ############
+InternalFrameTitlePane.restoreButton.textAndMnemonic=Ripristina
+InternalFrameTitlePane.moveButton.textAndMnemonic=Sposta
+InternalFrameTitlePane.sizeButton.textAndMnemonic=Dimensioni
+InternalFrameTitlePane.minimizeButton.textAndMnemonic=Riduci a icona
+InternalFrameTitlePane.maximizeButton.textAndMnemonic=Ingrandisci
+InternalFrameTitlePane.closeButton.textAndMnemonic=Chiudi
+
+############ Text strings #############
+# Used for html forms
+FormView.submitButton.textAndMnemonic=Sottometti query
+FormView.resetButton.textAndMnemonic=Reimposta
+FormView.browseFileButton.textAndMnemonic=Sfoglia...
+
+############ Abstract Document Strings ############
+AbstractDocument.styleChange.textAndMnemonic=modifica di stile
+AbstractDocument.addition.textAndMnemonic=aggiunta
+AbstractDocument.deletion.textAndMnemonic=eliminazione
+AbstractDocument.undo.textAndMnemonic=Annulla
+AbstractDocument.redo.textAndMnemonic=Ripeti
+
+############ Abstract Button Strings ############
+AbstractButton.click.textAndMnemonic=fare clic
+
+############ Abstract Undoable Edit Strings ############
+AbstractUndoableEdit.undo.textAndMnemonic=Annulla
+AbstractUndoableEdit.redo.textAndMnemonic=Ripeti
+
+############ Combo Box Strings ############
+ComboBox.togglePopup.textAndMnemonic=togglePopup
+
+############ Progress Monitor Strings ############
+ProgressMonitor.progress.textAndMnemonic=Avanzamento...
+
+############ Split Pane Strings ############
+SplitPane.leftButton.textAndMnemonic=tasto sinistro
+SplitPane.rightButton.textAndMnemonic=tasto destro
+# Used for Isindex
+IsindexView.prompt=Questo \u00E8 un indice di ricerca. Immettere le parole chiave:
+
+############ InternalFrameTitlePane Strings ############
+InternalFrameTitlePane.iconifyButtonAccessibleName=Riduci a icona
+InternalFrameTitlePane.maximizeButtonAccessibleName=Ingrandisci
+InternalFrameTitlePane.closeButtonAccessibleName=Chiudi
+
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ja.properties	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ja.properties	Wed Jul 05 18:07:57 2017 +0200
@@ -1,229 +1,186 @@
-# This properties file is used to create a PropertyResourceBundle
-# It contains Locale specific strings used in Swing
-# Currently, the following components need this for support:
-#
-#    ColorChooser
-#    FileChooser
-#    OptionPane
-#
-# When this file is read in, the strings are put into the
-# defaults table.  This is an implementation detail of the current
-# workings of Swing.  DO NOT DEPEND ON THIS.
-# This may change in future versions of Swing as we improve localization
-# support.
-#
-#                        MNEMONIC NOTE:
-# Many of strings in this file are used by widgets that have a
-# mnemonic, for example:
-#   ColorChooser.rgbNameText=RGB
-#   ColorChooser.rgbMnemonic=71
-#   ColorChooser.rgbDisplayedMnemonicIndex=1
-# Indicates that the tab in the ColorChooser for RGB colors will have
-# the text 'RGB', further the mnemonic character will be 'g' and that
-# a decoration will be provided under the 'G'. This will typically
-# look like:  RGB
-#              -
-# 71 corresponds to the decimal value of the VK constant defined
-# in java/awt/KeyEvent.java. VK_G is defined as:
-#
-#    public static final int VK_G              = 0x47;
-#
-# 0x47 is a hex number and needs to be converted to decimal.
-# A simple way to calculate this for a-z is to add 64 to the index of
-# the letter in the alphabet. As 'a' is in the 1st letter the mnemonic
-# for 'a' is 65, 'b' is 66...
-#
-# The xxDisplayedMnemonicIndex is used to indicate the index of the
-# character that should be underlined in the String, with 0
-# corresponding to the first character in the String.
-#
-# One important thing to remember is that the mnemonic MUST exist in
-# the String, if it does not exist you should add text that makes it
-# exist. This will typically take the form 'XXXX (M)' where M is the
-# character for the mnemonic.
-#
-# @author Steve Wilson
-
-############ FILE CHOOSER STRINGS #############
-FileChooser.fileDescriptionText=\u6C4E\u7528\u30D5\u30A1\u30A4\u30EB
-FileChooser.directoryDescriptionText=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA
-FileChooser.newFolderErrorText=\u65B0\u898F\u30D5\u30A9\u30EB\u30C0\u306E\u4F5C\u6210\u30A8\u30E9\u30FC
-FileChooser.newFolderErrorSeparator= :
-FileChooser.newFolderParentDoesntExistTitleText=\u30D5\u30A9\u30EB\u30C0\u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093
-FileChooser.newFolderParentDoesntExistText=\u30D5\u30A9\u30EB\u30C0\u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093\u3002\n\n\u6307\u5B9A\u3057\u305F\u30D1\u30B9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002
-FileChooser.renameErrorTitleText=\u30D5\u30A1\u30A4\u30EB\u307E\u305F\u306F\u30D5\u30A9\u30EB\u30C0\u306E\u540D\u524D\u5909\u66F4\u30A8\u30E9\u30FC
-FileChooser.renameErrorText={0}\u306E\u540D\u524D\u3092\u5909\u66F4\u3067\u304D\u307E\u305B\u3093
-FileChooser.renameErrorFileExistsText={0}\u306E\u540D\u524D\u3092\u5909\u66F4\u3067\u304D\u307E\u305B\u3093: \u6307\u5B9A\u3057\u305F\u540D\u524D\u306E\u30D5\u30A1\u30A4\u30EB\u306F\u3059\u3067\u306B\u5B58\u5728\u3057\u307E\u3059\u3002\u5225\u306E\u30D5\u30A1\u30A4\u30EB\u540D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002
-FileChooser.acceptAllFileFilterText=\u3059\u3079\u3066\u306E\u30D5\u30A1\u30A4\u30EB
-FileChooser.cancelButtonText=\u53D6\u6D88
-FileChooser.cancelButtonMnemonic=67
-FileChooser.saveButtonText=\u4FDD\u5B58
-FileChooser.saveButtonMnemonic=83
-FileChooser.openButtonText=\u958B\u304F
-FileChooser.openButtonMnemonic=79
-FileChooser.saveDialogTitleText=\u4FDD\u5B58
-FileChooser.openDialogTitleText=\u958B\u304F
-FileChooser.updateButtonText=\u66F4\u65B0(U)
-FileChooser.updateButtonMnemonic=85
-FileChooser.helpButtonText=\u30D8\u30EB\u30D7(H)
-FileChooser.helpButtonMnemonic=72
-FileChooser.directoryOpenButtonText=\u958B\u304F(O)
-FileChooser.directoryOpenButtonMnemonic=79
-
-# File Size Units
-FileChooser.fileSizeKiloBytes={0} KB
-FileChooser.fileSizeMegaBytes={0} MB
-FileChooser.fileSizeGigaBytes={0} GB
-
-# These strings are platform dependent not look and feel dependent.
-FileChooser.win32.newFolder=\u65B0\u898F\u30D5\u30A9\u30EB\u30C0
-FileChooser.win32.newFolder.subsequent=\u65B0\u898F\u30D5\u30A9\u30EB\u30C0({0})
-FileChooser.other.newFolder=\u65B0\u898F\u30D5\u30A9\u30EB\u30C0
-FileChooser.other.newFolder.subsequent=\u65B0\u898F\u30D5\u30A9\u30EB\u30C0.{0}
-
-
-## file chooser tooltips ###
-FileChooser.cancelButtonToolTipText=\u30D5\u30A1\u30A4\u30EB\u30FB\u30C1\u30E5\u30FC\u30B6\u30FB\u30C0\u30A4\u30A2\u30ED\u30B0\u3092\u7D42\u4E86\u3057\u307E\u3059
-FileChooser.saveButtonToolTipText=\u9078\u629E\u3057\u305F\u30D5\u30A1\u30A4\u30EB\u3092\u4FDD\u5B58\u3057\u307E\u3059
-FileChooser.openButtonToolTipText=\u9078\u629E\u3057\u305F\u30D5\u30A1\u30A4\u30EB\u3092\u958B\u304D\u307E\u3059
-FileChooser.updateButtonToolTipText=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E\u30EA\u30B9\u30C8\u3092\u66F4\u65B0\u3057\u307E\u3059
-FileChooser.helpButtonToolTipText=FileChooser\u306E\u30D8\u30EB\u30D7\u3067\u3059
-FileChooser.directoryOpenButtonToolTipText=\u9078\u629E\u3057\u305F\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u958B\u304D\u307E\u3059
-
-FileChooser.filesListAccessibleName=Files List
-FileChooser.filesDetailsAccessibleName=Files Details
-
-############ COLOR CHOOSER STRINGS #############
-ColorChooser.previewText=\u30D7\u30EC\u30D3\u30E5\u30FC
-ColorChooser.okText=OK
-ColorChooser.cancelText=\u53D6\u6D88
-ColorChooser.resetText=\u30EA\u30BB\u30C3\u30C8(R)
-# VK_XXX constant for 'ColorChooser.resetText' button to make mnemonic
-ColorChooser.resetMnemonic=82
-ColorChooser.sampleText=\u30B5\u30F3\u30D7\u30EB\u30FB\u30C6\u30AD\u30B9\u30C8  \u30B5\u30F3\u30D7\u30EB\u30FB\u30C6\u30AD\u30B9\u30C8
-ColorChooser.swatchesNameText=\u30B5\u30F3\u30D7\u30EB(S)
-ColorChooser.swatchesMnemonic=83
-ColorChooser.swatchesRecentText=\u6700\u65B0:
-# Each of the ColorChooser types can define a mnemonic, as a KeyEvent.VK_XXX
-# constant, and an index into the text to render the mnemonic as. The
-# mnemonic is xxxMnemonic and the index of the character to underline is
-# xxxDisplayedMnemonicIndex.
-ColorChooser.hsvNameText=HSV
-ColorChooser.hsvMnemonic=72
-ColorChooser.hsvHueText=\u8272\u76F8
-ColorChooser.hsvSaturationText=\u5F69\u5EA6
-ColorChooser.hsvValueText=\u5024
-ColorChooser.hsvTransparencyText=\u900F\u660E\u5EA6
-ColorChooser.hslNameText=HSL
-ColorChooser.hslMnemonic=76
-ColorChooser.hslHueText=\u8272\u76F8
-ColorChooser.hslSaturationText=\u5F69\u5EA6
-ColorChooser.hslLightnessText=\u660E\u5EA6
-ColorChooser.hslTransparencyText=\u900F\u660E\u5EA6
-ColorChooser.rgbNameText=RGB
-ColorChooser.rgbMnemonic=71
-ColorChooser.rgbRedText=\u8D64
-ColorChooser.rgbRedMnemonic=68
-ColorChooser.rgbGreenText=\u7DD1
-ColorChooser.rgbGreenMnemonic=78
-ColorChooser.rgbBlueText=\u9752
-ColorChooser.rgbBlueMnemonic=66
-ColorChooser.rgbAlphaText=\u30A2\u30EB\u30D5\u30A1
-ColorChooser.rgbHexCodeText=\u8272\u30B3\u30FC\u30C9(C)
-ColorChooser.rgbHexCodeMnemonic=67
-ColorChooser.cmykNameText=CMYK
-ColorChooser.cmykMnemonic=77
-ColorChooser.cmykCyanText=\u30B7\u30A2\u30F3
-ColorChooser.cmykMagentaText=\u30DE\u30BC\u30F3\u30BF
-ColorChooser.cmykYellowText=\u9EC4
-ColorChooser.cmykBlackText=\u9ED2
-ColorChooser.cmykAlphaText=\u30A2\u30EB\u30D5\u30A1
-
-############ OPTION PANE STRINGS #############
-# Mnemonic keys correspond to KeyEvent.VK_XXX constant
-# We only define mnemonics for YES/NO, but for completeness you can
-# define mnemonics for any of the buttons.
-OptionPane.yesButtonText=\u306F\u3044(Y)
-OptionPane.yesButtonMnemonic=89
-OptionPane.noButtonText=\u3044\u3044\u3048(N)
-OptionPane.noButtonMnemonic=78
-OptionPane.okButtonText=OK
-OptionPane.okButtonMnemonic=O
-OptionPane.cancelButtonText=\u53D6\u6D88
-OptionPane.cancelButtonMnemonic=0
-OptionPane.titleText=\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u9078\u629E
-# Title for the dialog for the showInputDialog methods. Only used if
-# the developer uses one of the variants that doesn't take a title.
-OptionPane.inputDialogTitle=\u5165\u529B
-# Title for the dialog for the showMessageDialog methods. Only used if
-# the developer uses one of the variants that doesn't take a title.
-OptionPane.messageDialogTitle=\u30E1\u30C3\u30BB\u30FC\u30B8
-
-############ Printing Dialog Strings ############
-PrintingDialog.titleProgressText=\u5370\u5237\u3057\u3066\u3044\u307E\u3059
-PrintingDialog.titleAbortingText=\u5370\u5237\u3092\u4E2D\u6B62\u3057\u3066\u3044\u307E\u3059
-
-PrintingDialog.contentInitialText=\u5370\u5237\u4E2D...
-
-# The following string will be formatted by a MessageFormat
-# and {0} will be replaced by page number being printed
-PrintingDialog.contentProgressText=\u30DA\u30FC\u30B8{0}\u3092\u5370\u5237\u3057\u307E\u3057\u305F...
-
-PrintingDialog.contentAbortingText=\u5370\u5237\u3092\u4E2D\u6B62\u3057\u3066\u3044\u307E\u3059...
-
-PrintingDialog.abortButtonText=\u4E2D\u6B62(A)
-PrintingDialog.abortButtonMnemonic=65
-PrintingDialog.abortButtonDisplayedMnemonicIndex=0
-PrintingDialog.abortButtonToolTipText=\u5370\u5237\u306E\u4E2D\u6B62
-
-############ Internal Frame Strings ############
-InternalFrame.iconButtonToolTip=\u6700\u5C0F\u5316
-InternalFrame.maxButtonToolTip=\u6700\u5927\u5316
-InternalFrame.restoreButtonToolTip=\u5FA9\u5143
-InternalFrame.closeButtonToolTip=\u9589\u3058\u308B
-
-############ Internal Frame Title Pane Strings ############
-InternalFrameTitlePane.restoreButtonText=\u5FA9\u5143
-InternalFrameTitlePane.moveButtonText=\u79FB\u52D5
-InternalFrameTitlePane.sizeButtonText=\u30B5\u30A4\u30BA
-InternalFrameTitlePane.minimizeButtonText=\u6700\u5C0F\u5316
-InternalFrameTitlePane.maximizeButtonText=\u6700\u5927\u5316
-InternalFrameTitlePane.closeButtonText=\u9589\u3058\u308B
-
-############ Text strings #############
-# Used for html forms
-FormView.submitButtonText=\u554F\u5408\u305B\u306E\u5B9F\u884C
-FormView.resetButtonText=\u30EA\u30BB\u30C3\u30C8
-FormView.browseFileButtonText=\u53C2\u7167...
-
-############ Abstract Document Strings ############
-AbstractDocument.styleChangeText=\u30B9\u30BF\u30A4\u30EB\u5909\u66F4
-AbstractDocument.additionText=\u8FFD\u52A0
-AbstractDocument.deletionText=\u524A\u9664
-AbstractDocument.undoText=\u5143\u306B\u623B\u3059
-AbstractDocument.redoText=\u3084\u308A\u76F4\u3057
-
-############ Abstract Button Strings ############
-AbstractButton.clickText=\u30AF\u30EA\u30C3\u30AF
-
-############ Abstract Undoable Edit Strings ############
-AbstractUndoableEdit.undoText=\u5143\u306B\u623B\u3059
-AbstractUndoableEdit.redoText=\u3084\u308A\u76F4\u3057
-
-############ Combo Box Strings ############
-ComboBox.togglePopupText=\u30C8\u30B0\u30EB\u30FB\u30DD\u30C3\u30D7\u30A2\u30C3\u30D7
-
-############ Progress Monitor Strings ############
-ProgressMonitor.progressText=\u9032\u884C\u4E2D...
-
-############ Split Pane Strings ############
-SplitPane.leftButtonText=\u5DE6\u30DC\u30BF\u30F3
-SplitPane.rightButtonText=\u53F3\u30DC\u30BF\u30F3
-# Used for Isindex
-IsindexView.prompt=\u691C\u7D22\u7528\u306E\u7D22\u5F15\u3067\u3059\u3002\u691C\u7D22\u3059\u308B\u30AD\u30FC\u30EF\u30FC\u30C9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044:
-
-############ InternalFrameTitlePane Strings ############
-InternalFrameTitlePane.iconifyButtonAccessibleName=\u30A2\u30A4\u30B3\u30F3\u5316
-InternalFrameTitlePane.maximizeButtonAccessibleName=\u6700\u5927\u5316
-InternalFrameTitlePane.closeButtonAccessibleName=\u9589\u3058\u308B
-
+# This properties file is used to create a PropertyResourceBundle
+# It contains Locale specific strings used in Swing
+# Currently, the following components need this for support:
+#
+#    ColorChooser
+#    FileChooser
+#    OptionPane
+#
+# When this file is read in, the strings are put into the
+# defaults table.  This is an implementation detail of the current
+# workings of Swing.  DO NOT DEPEND ON THIS.
+# This may change in future versions of Swing as we improve localization
+# support.
+#
+#                        MNEMONIC NOTE:
+# Many of strings in this file are used by widgets that have a
+# mnemonic, for example:
+#   ColorChooser.rgbNameTextAndMnemonic=R&GB
+# Indicates that the tab in the ColorChooser for RGB colors will have
+# the text 'RGB', further the mnemonic character will be 'g' and that
+# a decoration will be provided under the 'G'. This will typically
+# look like:  RGB
+#              -
+#
+# One important thing to remember is that the mnemonic MUST exist in
+# the String, if it does not exist you should add text that makes it
+# exist. This will typically take the form 'XXXX (M)' where M is the
+# character for the mnemonic.
+#
+# @author Steve Wilson
+
+############ FILE CHOOSER STRINGS #############
+FileChooser.fileDescription.textAndMnemonic=\u6C4E\u7528\u30D5\u30A1\u30A4\u30EB
+FileChooser.directoryDescription.textAndMnemonic=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA
+FileChooser.newFolderError.textAndMnemonic=\u65B0\u898F\u30D5\u30A9\u30EB\u30C0\u306E\u4F5C\u6210\u30A8\u30E9\u30FC
+FileChooser.newFolderErrorSeparator= :
+FileChooser.newFolderParentDoesntExistTitle.textAndMnemonic=\u30D5\u30A9\u30EB\u30C0\u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093
+FileChooser.newFolderParentDoesntExist.textAndMnemonic=\u30D5\u30A9\u30EB\u30C0\u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093\u3002\n\n\u6307\u5B9A\u3057\u305F\u30D1\u30B9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002
+FileChooser.renameErrorTitle.textAndMnemonic=\u30D5\u30A1\u30A4\u30EB\u307E\u305F\u306F\u30D5\u30A9\u30EB\u30C0\u306E\u540D\u524D\u5909\u66F4\u30A8\u30E9\u30FC
+FileChooser.renameError.textAndMnemonic={0}\u306E\u540D\u524D\u3092\u5909\u66F4\u3067\u304D\u307E\u305B\u3093
+FileChooser.renameErrorFileExists.textAndMnemonic={0}\u306E\u540D\u524D\u3092\u5909\u66F4\u3067\u304D\u307E\u305B\u3093: \u6307\u5B9A\u3057\u305F\u540D\u524D\u306E\u30D5\u30A1\u30A4\u30EB\u306F\u3059\u3067\u306B\u5B58\u5728\u3057\u307E\u3059\u3002\u5225\u306E\u30D5\u30A1\u30A4\u30EB\u540D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002
+FileChooser.acceptAllFileFilter.textAndMnemonic=\u3059\u3079\u3066\u306E\u30D5\u30A1\u30A4\u30EB
+FileChooser.cancelButton.textAndMnemonic=\u53D6\u6D88(&C)
+FileChooser.saveButton.textAndMnemonic=\u4FDD\u5B58(&S)
+FileChooser.openButton.textAndMnemonic=\u958B\u304F(&O)
+FileChooser.saveDialogTitle.textAndMnemonic=\u4FDD\u5B58
+FileChooser.openDialogTitle.textAndMnemonic=\u958B\u304F
+FileChooser.updateButton.textAndMnemonic=\u66F4\u65B0(&U)
+FileChooser.helpButton.textAndMnemonic=\u30D8\u30EB\u30D7(&H)
+FileChooser.directoryOpenButton.textAndMnemonic=\u958B\u304F(&O)
+
+# File Size Units
+FileChooser.fileSizeKiloBytes={0} KB
+FileChooser.fileSizeMegaBytes={0} MB
+FileChooser.fileSizeGigaBytes={0} GB
+
+# These strings are platform dependent not look and feel dependent.
+FileChooser.win32.newFolder=\u65B0\u898F\u30D5\u30A9\u30EB\u30C0
+FileChooser.win32.newFolder.subsequent=\u65B0\u898F\u30D5\u30A9\u30EB\u30C0({0})
+FileChooser.other.newFolder=\u65B0\u898F\u30D5\u30A9\u30EB\u30C0
+FileChooser.other.newFolder.subsequent=\u65B0\u898F\u30D5\u30A9\u30EB\u30C0.{0}
+
+
+## file chooser tooltips ###
+FileChooser.cancelButtonToolTip.textAndMnemonic=\u30D5\u30A1\u30A4\u30EB\u30FB\u30C1\u30E5\u30FC\u30B6\u30FB\u30C0\u30A4\u30A2\u30ED\u30B0\u3092\u7D42\u4E86\u3057\u307E\u3059
+FileChooser.saveButtonToolTip.textAndMnemonic=\u9078\u629E\u3057\u305F\u30D5\u30A1\u30A4\u30EB\u3092\u4FDD\u5B58\u3057\u307E\u3059
+FileChooser.openButtonToolTip.textAndMnemonic=\u9078\u629E\u3057\u305F\u30D5\u30A1\u30A4\u30EB\u3092\u958B\u304D\u307E\u3059
+FileChooser.updateButtonToolTip.textAndMnemonic=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E\u30EA\u30B9\u30C8\u3092\u66F4\u65B0\u3057\u307E\u3059
+FileChooser.helpButtonToolTip.textAndMnemonic=FileChooser\u306E\u30D8\u30EB\u30D7\u3067\u3059
+FileChooser.directoryOpenButtonToolTip.textAndMnemonic=\u9078\u629E\u3057\u305F\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u958B\u304D\u307E\u3059
+
+FileChooser.filesListAccessibleName=Files List
+FileChooser.filesDetailsAccessibleName=Files Details
+
+############ COLOR CHOOSER STRINGS #############
+ColorChooser.preview.textAndMnemonic=\u30D7\u30EC\u30D3\u30E5\u30FC
+ColorChooser.ok.textAndMnemonic=OK
+ColorChooser.cancel.textAndMnemonic=\u53D6\u6D88
+ColorChooser.reset.textAndMnemonic=\u30EA\u30BB\u30C3\u30C8(&R)
+ColorChooser.sample.textAndMnemonic=\u30B5\u30F3\u30D7\u30EB\u30FB\u30C6\u30AD\u30B9\u30C8  \u30B5\u30F3\u30D7\u30EB\u30FB\u30C6\u30AD\u30B9\u30C8
+ColorChooser.swatches.textAndMnemonic=\u30B5\u30F3\u30D7\u30EB(&S)
+ColorChooser.swatchesRecent.textAndMnemonic=\u6700\u65B0:
+ColorChooser.hsv.textAndMnemonic=&HSV
+ColorChooser.hsvHue.textAndMnemonic=\u8272\u76F8
+ColorChooser.hsvSaturation.textAndMnemonic=\u5F69\u5EA6
+ColorChooser.hsvValue.textAndMnemonic=\u5024
+ColorChooser.hsvTransparency.textAndMnemonic=\u900F\u660E\u5EA6
+ColorChooser.hsl.textAndMnemonic=HS&L
+ColorChooser.hslHue.textAndMnemonic=\u8272\u76F8
+ColorChooser.hslSaturation.textAndMnemonic=\u5F69\u5EA6
+ColorChooser.hslLightness.textAndMnemonic=\u660E\u5EA6
+ColorChooser.hslTransparency.textAndMnemonic=\u900F\u660E\u5EA6
+ColorChooser.rgb.textAndMnemonic=R&GB
+ColorChooser.rgbRed.textAndMnemonic=\u8D64(&D)
+ColorChooser.rgbGreen.textAndMnemonic=\u7DD1(&N)
+ColorChooser.rgbBlue.textAndMnemonic=\u9752(&B)
+ColorChooser.rgbAlpha.textAndMnemonic=\u30A2\u30EB\u30D5\u30A1
+ColorChooser.rgbHexCode.textAndMnemonic=\u8272\u30B3\u30FC\u30C9(&C)
+ColorChooser.cmyk.textAndMnemonic=C&MYK
+ColorChooser.cmykCyan.textAndMnemonic=\u30B7\u30A2\u30F3
+ColorChooser.cmykMagenta.textAndMnemonic=\u30DE\u30BC\u30F3\u30BF
+ColorChooser.cmykYellow.textAndMnemonic=\u9EC4
+ColorChooser.cmykBlack.textAndMnemonic=\u9ED2
+ColorChooser.cmykAlpha.textAndMnemonic=\u30A2\u30EB\u30D5\u30A1
+
+############ OPTION PANE STRINGS #############
+# We only define mnemonics for YES/NO, but for completeness you can
+# define mnemonics for any of the buttons.
+OptionPane.yesButton.textAndMnemonic=\u306F\u3044(&Y)
+OptionPane.noButton.textAndMnemonic=\u3044\u3044\u3048(&N)
+OptionPane.okButton.textAndMnemonic=&OK
+OptionPane.cancelButton.textAndMnemonic=\u53D6\u6D88
+OptionPane.title.textAndMnemonic=\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u9078\u629E
+# Title for the dialog for the showInputDialog methods. Only used if
+# the developer uses one of the variants that doesn't take a title.
+OptionPane.inputDialog.titleAndMnemonic=\u5165\u529B
+# Title for the dialog for the showMessageDialog methods. Only used if
+# the developer uses one of the variants that doesn't take a title.
+OptionPane.messageDialog.titleAndMnemonic=\u30E1\u30C3\u30BB\u30FC\u30B8
+
+############ Printing Dialog Strings ############
+PrintingDialog.titleProgress.textAndMnemonic=\u5370\u5237\u3057\u3066\u3044\u307E\u3059
+PrintingDialog.titleAborting.textAndMnemonic=\u5370\u5237\u3092\u4E2D\u6B62\u3057\u3066\u3044\u307E\u3059
+
+PrintingDialog.contentInitial.textAndMnemonic=\u5370\u5237\u4E2D...
+
+# The following string will be formatted by a MessageFormat
+# and {0} will be replaced by page number being printed
+PrintingDialog.contentProgress.textAndMnemonic=\u30DA\u30FC\u30B8{0}\u3092\u5370\u5237\u3057\u307E\u3057\u305F...
+
+PrintingDialog.contentAborting.textAndMnemonic=\u5370\u5237\u3092\u4E2D\u6B62\u3057\u3066\u3044\u307E\u3059...
+
+PrintingDialog.abortButton.textAndMnemonic=\u4E2D\u6B62(&A)
+PrintingDialog.abortButtonToolTip.textAndMnemonic=\u5370\u5237\u306E\u4E2D\u6B62
+
+############ Internal Frame Strings ############
+InternalFrame.iconButtonToolTip=\u6700\u5C0F\u5316
+InternalFrame.maxButtonToolTip=\u6700\u5927\u5316
+InternalFrame.restoreButtonToolTip=\u5FA9\u5143
+InternalFrame.closeButtonToolTip=\u9589\u3058\u308B
+
+############ Internal Frame Title Pane Strings ############
+InternalFrameTitlePane.restoreButton.textAndMnemonic=\u5FA9\u5143
+InternalFrameTitlePane.moveButton.textAndMnemonic=\u79FB\u52D5
+InternalFrameTitlePane.sizeButton.textAndMnemonic=\u30B5\u30A4\u30BA
+InternalFrameTitlePane.minimizeButton.textAndMnemonic=\u6700\u5C0F\u5316
+InternalFrameTitlePane.maximizeButton.textAndMnemonic=\u6700\u5927\u5316
+InternalFrameTitlePane.closeButton.textAndMnemonic=\u9589\u3058\u308B
+
+############ Text strings #############
+# Used for html forms
+FormView.submitButton.textAndMnemonic=\u554F\u5408\u305B\u306E\u5B9F\u884C
+FormView.resetButton.textAndMnemonic=\u30EA\u30BB\u30C3\u30C8
+FormView.browseFileButton.textAndMnemonic=\u53C2\u7167...
+
+############ Abstract Document Strings ############
+AbstractDocument.styleChange.textAndMnemonic=\u30B9\u30BF\u30A4\u30EB\u5909\u66F4
+AbstractDocument.addition.textAndMnemonic=\u8FFD\u52A0
+AbstractDocument.deletion.textAndMnemonic=\u524A\u9664
+AbstractDocument.undo.textAndMnemonic=\u5143\u306B\u623B\u3059
+AbstractDocument.redo.textAndMnemonic=\u3084\u308A\u76F4\u3057
+
+############ Abstract Button Strings ############
+AbstractButton.click.textAndMnemonic=\u30AF\u30EA\u30C3\u30AF
+
+############ Abstract Undoable Edit Strings ############
+AbstractUndoableEdit.undo.textAndMnemonic=\u5143\u306B\u623B\u3059
+AbstractUndoableEdit.redo.textAndMnemonic=\u3084\u308A\u76F4\u3057
+
+############ Combo Box Strings ############
+ComboBox.togglePopup.textAndMnemonic=\u30C8\u30B0\u30EB\u30FB\u30DD\u30C3\u30D7\u30A2\u30C3\u30D7
+
+############ Progress Monitor Strings ############
+ProgressMonitor.progress.textAndMnemonic=\u9032\u884C\u4E2D...
+
+############ Split Pane Strings ############
+SplitPane.leftButton.textAndMnemonic=\u5DE6\u30DC\u30BF\u30F3
+SplitPane.rightButton.textAndMnemonic=\u53F3\u30DC\u30BF\u30F3
+# Used for Isindex
+IsindexView.prompt=\u691C\u7D22\u7528\u306E\u7D22\u5F15\u3067\u3059\u3002\u691C\u7D22\u3059\u308B\u30AD\u30FC\u30EF\u30FC\u30C9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044:
+
+############ InternalFrameTitlePane Strings ############
+InternalFrameTitlePane.iconifyButtonAccessibleName=\u30A2\u30A4\u30B3\u30F3\u5316
+InternalFrameTitlePane.maximizeButtonAccessibleName=\u6700\u5927\u5316
+InternalFrameTitlePane.closeButtonAccessibleName=\u9589\u3058\u308B
+
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ko.properties	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ko.properties	Wed Jul 05 18:07:57 2017 +0200
@@ -1,229 +1,186 @@
-# This properties file is used to create a PropertyResourceBundle
-# It contains Locale specific strings used in Swing
-# Currently, the following components need this for support:
-#
-#    ColorChooser
-#    FileChooser
-#    OptionPane
-#
-# When this file is read in, the strings are put into the
-# defaults table.  This is an implementation detail of the current
-# workings of Swing.  DO NOT DEPEND ON THIS.
-# This may change in future versions of Swing as we improve localization
-# support.
-#
-#                        MNEMONIC NOTE:
-# Many of strings in this file are used by widgets that have a
-# mnemonic, for example:
-#   ColorChooser.rgbNameText=RGB
-#   ColorChooser.rgbMnemonic=71
-#   ColorChooser.rgbDisplayedMnemonicIndex=1
-# Indicates that the tab in the ColorChooser for RGB colors will have
-# the text 'RGB', further the mnemonic character will be 'g' and that
-# a decoration will be provided under the 'G'. This will typically
-# look like:  RGB
-#              -
-# 71 corresponds to the decimal value of the VK constant defined
-# in java/awt/KeyEvent.java. VK_G is defined as:
-#
-#    public static final int VK_G              = 0x47;
-#
-# 0x47 is a hex number and needs to be converted to decimal.
-# A simple way to calculate this for a-z is to add 64 to the index of
-# the letter in the alphabet. As 'a' is in the 1st letter the mnemonic
-# for 'a' is 65, 'b' is 66...
-#
-# The xxDisplayedMnemonicIndex is used to indicate the index of the
-# character that should be underlined in the String, with 0
-# corresponding to the first character in the String.
-#
-# One important thing to remember is that the mnemonic MUST exist in
-# the String, if it does not exist you should add text that makes it
-# exist. This will typically take the form 'XXXX (M)' where M is the
-# character for the mnemonic.
-#
-# @author Steve Wilson
-
-############ FILE CHOOSER STRINGS #############
-FileChooser.fileDescriptionText=\uC77C\uBC18 \uD30C\uC77C
-FileChooser.directoryDescriptionText=\uB514\uB809\uD1A0\uB9AC
-FileChooser.newFolderErrorText=\uC0C8 \uD3F4\uB354\uB97C \uC0DD\uC131\uD558\uB294 \uC911 \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4.
-FileChooser.newFolderErrorSeparator= :
-FileChooser.newFolderParentDoesntExistTitleText=\uD3F4\uB354\uB97C \uC0DD\uC131\uD560 \uC218 \uC5C6\uC74C
-FileChooser.newFolderParentDoesntExistText=\uD3F4\uB354\uB97C \uC0DD\uC131\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.\n\n\uC2DC\uC2A4\uD15C\uC5D0\uC11C \uC9C0\uC815\uB41C \uACBD\uB85C\uB97C \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
-FileChooser.renameErrorTitleText=\uD30C\uC77C \uB610\uB294 \uD3F4\uB354 \uC774\uB984 \uBC14\uAFB8\uB294 \uC911 \uC624\uB958 \uBC1C\uC0DD
-FileChooser.renameErrorText={0}\uC758 \uC774\uB984\uC744 \uBC14\uAFC0 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
-FileChooser.renameErrorFileExistsText={0}\uC758 \uC774\uB984\uC744 \uBC14\uAFC0 \uC218 \uC5C6\uC74C: \uC9C0\uC815\uD55C \uC774\uB984\uC744 \uC0AC\uC6A9\uD558\uB294 \uD30C\uC77C\uC774 \uC874\uC7AC\uD569\uB2C8\uB2E4. \uB2E4\uB978 \uD30C\uC77C \uC774\uB984\uC744 \uC9C0\uC815\uD558\uC2ED\uC2DC\uC624.
-FileChooser.acceptAllFileFilterText=\uBAA8\uB4E0 \uD30C\uC77C
-FileChooser.cancelButtonText=\uCDE8\uC18C
-FileChooser.cancelButtonMnemonic=67
-FileChooser.saveButtonText=\uC800\uC7A5
-FileChooser.saveButtonMnemonic=83
-FileChooser.openButtonText=\uC5F4\uAE30
-FileChooser.openButtonMnemonic=79
-FileChooser.saveDialogTitleText=\uC800\uC7A5
-FileChooser.openDialogTitleText=\uC5F4\uAE30
-FileChooser.updateButtonText=\uAC31\uC2E0(U)
-FileChooser.updateButtonMnemonic=85
-FileChooser.helpButtonText=\uB3C4\uC6C0\uB9D0(H)
-FileChooser.helpButtonMnemonic=72
-FileChooser.directoryOpenButtonText=\uC5F4\uAE30(O)
-FileChooser.directoryOpenButtonMnemonic=79
-
-# File Size Units
-FileChooser.fileSizeKiloBytes={0} KB
-FileChooser.fileSizeMegaBytes={0} MB
-FileChooser.fileSizeGigaBytes={0} GB
-
-# These strings are platform dependent not look and feel dependent.
-FileChooser.win32.newFolder=\uC0C8 \uD3F4\uB354
-FileChooser.win32.newFolder.subsequent=\uC0C8 \uD3F4\uB354({0})
-FileChooser.other.newFolder=NewFolder
-FileChooser.other.newFolder.subsequent=NewFolder.{0}
-
-
-## file chooser tooltips ###
-FileChooser.cancelButtonToolTipText=\uD30C\uC77C \uC120\uD0DD\uAE30 \uB300\uD654\uC0C1\uC790 \uC911\uB2E8
-FileChooser.saveButtonToolTipText=\uC120\uD0DD\uB41C \uD30C\uC77C \uC800\uC7A5
-FileChooser.openButtonToolTipText=\uC120\uD0DD\uB41C \uD30C\uC77C \uC5F4\uAE30
-FileChooser.updateButtonToolTipText=\uB514\uB809\uD1A0\uB9AC \uBAA9\uB85D \uAC31\uC2E0
-FileChooser.helpButtonToolTipText=FileChooser \uB3C4\uC6C0\uB9D0
-FileChooser.directoryOpenButtonToolTipText=\uC120\uD0DD\uB41C \uB514\uB809\uD1A0\uB9AC \uC5F4\uAE30
-
-FileChooser.filesListAccessibleName=Files List
-FileChooser.filesDetailsAccessibleName=Files Details
-
-############ COLOR CHOOSER STRINGS #############
-ColorChooser.previewText=\uBBF8\uB9AC\uBCF4\uAE30
-ColorChooser.okText=\uD655\uC778
-ColorChooser.cancelText=\uCDE8\uC18C
-ColorChooser.resetText=\uC7AC\uC124\uC815(R)
-# VK_XXX constant for 'ColorChooser.resetText' button to make mnemonic
-ColorChooser.resetMnemonic=82
-ColorChooser.sampleText=\uC0D8\uD50C \uD14D\uC2A4\uD2B8  \uC0D8\uD50C \uD14D\uC2A4\uD2B8
-ColorChooser.swatchesNameText=\uACAC\uBCF8(S)
-ColorChooser.swatchesMnemonic=83
-ColorChooser.swatchesRecentText=\uCD5C\uADFC \uBAA9\uB85D:
-# Each of the ColorChooser types can define a mnemonic, as a KeyEvent.VK_XXX
-# constant, and an index into the text to render the mnemonic as. The
-# mnemonic is xxxMnemonic and the index of the character to underline is
-# xxxDisplayedMnemonicIndex.
-ColorChooser.hsvNameText=HSV
-ColorChooser.hsvMnemonic=72
-ColorChooser.hsvHueText=\uC0C9\uC870
-ColorChooser.hsvSaturationText=\uCC44\uB3C4
-ColorChooser.hsvValueText=\uAC12
-ColorChooser.hsvTransparencyText=\uD22C\uBA85
-ColorChooser.hslNameText=HSL
-ColorChooser.hslMnemonic=76
-ColorChooser.hslHueText=\uC0C9\uC870
-ColorChooser.hslSaturationText=\uCC44\uB3C4
-ColorChooser.hslLightnessText=\uBC1D\uAE30
-ColorChooser.hslTransparencyText=\uD22C\uBA85
-ColorChooser.rgbNameText=RGB
-ColorChooser.rgbMnemonic=71
-ColorChooser.rgbRedText=\uBE68\uAC04\uC0C9
-ColorChooser.rgbRedMnemonic=68
-ColorChooser.rgbGreenText=\uB179\uC0C9
-ColorChooser.rgbGreenMnemonic=78
-ColorChooser.rgbBlueText=\uD30C\uB780\uC0C9
-ColorChooser.rgbBlueMnemonic=66
-ColorChooser.rgbAlphaText=\uC54C\uD30C
-ColorChooser.rgbHexCodeText=\uC0C9\uC0C1 \uCF54\uB4DC(C)
-ColorChooser.rgbHexCodeMnemonic=67
-ColorChooser.cmykNameText=CMYK
-ColorChooser.cmykMnemonic=77
-ColorChooser.cmykCyanText=\uCCAD\uB85D\uC0C9
-ColorChooser.cmykMagentaText=\uC9C4\uD64D\uC0C9
-ColorChooser.cmykYellowText=\uB178\uB780\uC0C9
-ColorChooser.cmykBlackText=\uAC80\uC815\uC0C9
-ColorChooser.cmykAlphaText=\uC54C\uD30C
-
-############ OPTION PANE STRINGS #############
-# Mnemonic keys correspond to KeyEvent.VK_XXX constant
-# We only define mnemonics for YES/NO, but for completeness you can
-# define mnemonics for any of the buttons.
-OptionPane.yesButtonText=\uC608(Y)
-OptionPane.yesButtonMnemonic=89
-OptionPane.noButtonText=\uC544\uB2C8\uC624(N)
-OptionPane.noButtonMnemonic=78
-OptionPane.okButtonText=\uD655\uC778
-OptionPane.okButtonMnemonic=O
-OptionPane.cancelButtonText=\uCDE8\uC18C
-OptionPane.cancelButtonMnemonic=0
-OptionPane.titleText=\uC635\uC158 \uC120\uD0DD
-# Title for the dialog for the showInputDialog methods. Only used if
-# the developer uses one of the variants that doesn't take a title.
-OptionPane.inputDialogTitle=\uC785\uB825
-# Title for the dialog for the showMessageDialog methods. Only used if
-# the developer uses one of the variants that doesn't take a title.
-OptionPane.messageDialogTitle=\uBA54\uC2DC\uC9C0
-
-############ Printing Dialog Strings ############
-PrintingDialog.titleProgressText=\uC778\uC1C4
-PrintingDialog.titleAbortingText=\uC778\uC1C4(\uC911\uB2E8 \uC911)
-
-PrintingDialog.contentInitialText=\uC778\uC1C4 \uC9C4\uD589 \uC911...
-
-# The following string will be formatted by a MessageFormat
-# and {0} will be replaced by page number being printed
-PrintingDialog.contentProgressText=\uC778\uC1C4\uB41C \uD398\uC774\uC9C0 {0}...
-
-PrintingDialog.contentAbortingText=\uC778\uC1C4 \uC911\uB2E8 \uC911...
-
-PrintingDialog.abortButtonText=\uC911\uB2E8(A)
-PrintingDialog.abortButtonMnemonic=65
-PrintingDialog.abortButtonDisplayedMnemonicIndex=0
-PrintingDialog.abortButtonToolTipText=\uC778\uC1C4 \uC911\uB2E8
-
-############ Internal Frame Strings ############
-InternalFrame.iconButtonToolTip=\uCD5C\uC18C\uD654
-InternalFrame.maxButtonToolTip=\uCD5C\uB300\uD654
-InternalFrame.restoreButtonToolTip=\uBCF5\uC6D0
-InternalFrame.closeButtonToolTip=\uB2EB\uAE30
-
-############ Internal Frame Title Pane Strings ############
-InternalFrameTitlePane.restoreButtonText=\uBCF5\uC6D0
-InternalFrameTitlePane.moveButtonText=\uC774\uB3D9
-InternalFrameTitlePane.sizeButtonText=\uD06C\uAE30
-InternalFrameTitlePane.minimizeButtonText=\uCD5C\uC18C\uD654
-InternalFrameTitlePane.maximizeButtonText=\uCD5C\uB300\uD654
-InternalFrameTitlePane.closeButtonText=\uB2EB\uAE30
-
-############ Text strings #############
-# Used for html forms
-FormView.submitButtonText=\uC9C8\uC758 \uC81C\uCD9C
-FormView.resetButtonText=\uC7AC\uC124\uC815
-FormView.browseFileButtonText=\uCC3E\uC544\uBCF4\uAE30...
-
-############ Abstract Document Strings ############
-AbstractDocument.styleChangeText=\uC2A4\uD0C0\uC77C \uBCC0\uACBD
-AbstractDocument.additionText=\uCD94\uAC00
-AbstractDocument.deletionText=\uC0AD\uC81C
-AbstractDocument.undoText=\uC2E4\uD589 \uCDE8\uC18C
-AbstractDocument.redoText=\uC7AC\uC2E4\uD589
-
-############ Abstract Button Strings ############
-AbstractButton.clickText=\uB204\uB974\uAE30
-
-############ Abstract Undoable Edit Strings ############
-AbstractUndoableEdit.undoText=\uC2E4\uD589 \uCDE8\uC18C
-AbstractUndoableEdit.redoText=\uC7AC\uC2E4\uD589
-
-############ Combo Box Strings ############
-ComboBox.togglePopupText=togglePopup
-
-############ Progress Monitor Strings ############
-ProgressMonitor.progressText=\uC9C4\uD589...
-
-############ Split Pane Strings ############
-SplitPane.leftButtonText=\uC67C\uCABD \uB2E8\uCD94
-SplitPane.rightButtonText=\uC624\uB978\uCABD \uB2E8\uCD94
-# Used for Isindex
-IsindexView.prompt=\uB2E4\uC74C\uC740 \uAC80\uC0C9 \uAC00\uB2A5\uD55C \uC778\uB371\uC2A4\uC785\uB2C8\uB2E4. \uAC80\uC0C9 \uD0A4\uC6CC\uB4DC \uC785\uB825:
-
-############ InternalFrameTitlePane Strings ############
-InternalFrameTitlePane.iconifyButtonAccessibleName=\uC544\uC774\uCF58\uD654
-InternalFrameTitlePane.maximizeButtonAccessibleName=\uCD5C\uB300\uD654
-InternalFrameTitlePane.closeButtonAccessibleName=\uB2EB\uAE30
-
+# This properties file is used to create a PropertyResourceBundle
+# It contains Locale specific strings used in Swing
+# Currently, the following components need this for support:
+#
+#    ColorChooser
+#    FileChooser
+#    OptionPane
+#
+# When this file is read in, the strings are put into the
+# defaults table.  This is an implementation detail of the current
+# workings of Swing.  DO NOT DEPEND ON THIS.
+# This may change in future versions of Swing as we improve localization
+# support.
+#
+#                        MNEMONIC NOTE:
+# Many of strings in this file are used by widgets that have a
+# mnemonic, for example:
+#   ColorChooser.rgbNameTextAndMnemonic=R&GB
+# Indicates that the tab in the ColorChooser for RGB colors will have
+# the text 'RGB', further the mnemonic character will be 'g' and that
+# a decoration will be provided under the 'G'. This will typically
+# look like:  RGB
+#              -
+#
+# One important thing to remember is that the mnemonic MUST exist in
+# the String, if it does not exist you should add text that makes it
+# exist. This will typically take the form 'XXXX (M)' where M is the
+# character for the mnemonic.
+#
+# @author Steve Wilson
+
+############ FILE CHOOSER STRINGS #############
+FileChooser.fileDescription.textAndMnemonic=\uC77C\uBC18 \uD30C\uC77C
+FileChooser.directoryDescription.textAndMnemonic=\uB514\uB809\uD1A0\uB9AC
+FileChooser.newFolderError.textAndMnemonic=\uC0C8 \uD3F4\uB354\uB97C \uC0DD\uC131\uD558\uB294 \uC911 \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4.
+FileChooser.newFolderErrorSeparator= :
+FileChooser.newFolderParentDoesntExistTitle.textAndMnemonic=\uD3F4\uB354\uB97C \uC0DD\uC131\uD560 \uC218 \uC5C6\uC74C
+FileChooser.newFolderParentDoesntExist.textAndMnemonic=\uD3F4\uB354\uB97C \uC0DD\uC131\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.\n\n\uC2DC\uC2A4\uD15C\uC5D0\uC11C \uC9C0\uC815\uB41C \uACBD\uB85C\uB97C \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
+FileChooser.renameErrorTitle.textAndMnemonic=\uD30C\uC77C \uB610\uB294 \uD3F4\uB354 \uC774\uB984 \uBC14\uAFB8\uB294 \uC911 \uC624\uB958 \uBC1C\uC0DD
+FileChooser.renameError.textAndMnemonic={0}\uC758 \uC774\uB984\uC744 \uBC14\uAFC0 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
+FileChooser.renameErrorFileExists.textAndMnemonic={0}\uC758 \uC774\uB984\uC744 \uBC14\uAFC0 \uC218 \uC5C6\uC74C: \uC9C0\uC815\uD55C \uC774\uB984\uC744 \uC0AC\uC6A9\uD558\uB294 \uD30C\uC77C\uC774 \uC874\uC7AC\uD569\uB2C8\uB2E4. \uB2E4\uB978 \uD30C\uC77C \uC774\uB984\uC744 \uC9C0\uC815\uD558\uC2ED\uC2DC\uC624.
+FileChooser.acceptAllFileFilter.textAndMnemonic=\uBAA8\uB4E0 \uD30C\uC77C
+FileChooser.cancelButton.textAndMnemonic=\uCDE8\uC18C(&C)
+FileChooser.saveButton.textAndMnemonic=\uC800\uC7A5(&S)
+FileChooser.openButton.textAndMnemonic=\uC5F4\uAE30(&O)
+FileChooser.saveDialogTitle.textAndMnemonic=\uC800\uC7A5
+FileChooser.openDialogTitle.textAndMnemonic=\uC5F4\uAE30
+FileChooser.updateButton.textAndMnemonic=\uAC31\uC2E0(&U)
+FileChooser.helpButton.textAndMnemonic=\uB3C4\uC6C0\uB9D0(&H)
+FileChooser.directoryOpenButton.textAndMnemonic=\uC5F4\uAE30(&O)
+
+# File Size Units
+FileChooser.fileSizeKiloBytes={0} KB
+FileChooser.fileSizeMegaBytes={0} MB
+FileChooser.fileSizeGigaBytes={0} GB
+
+# These strings are platform dependent not look and feel dependent.
+FileChooser.win32.newFolder=\uC0C8 \uD3F4\uB354
+FileChooser.win32.newFolder.subsequent=\uC0C8 \uD3F4\uB354({0})
+FileChooser.other.newFolder=NewFolder
+FileChooser.other.newFolder.subsequent=NewFolder.{0}
+
+
+## file chooser tooltips ###
+FileChooser.cancelButtonToolTip.textAndMnemonic=\uD30C\uC77C \uC120\uD0DD\uAE30 \uB300\uD654\uC0C1\uC790 \uC911\uB2E8
+FileChooser.saveButtonToolTip.textAndMnemonic=\uC120\uD0DD\uB41C \uD30C\uC77C \uC800\uC7A5
+FileChooser.openButtonToolTip.textAndMnemonic=\uC120\uD0DD\uB41C \uD30C\uC77C \uC5F4\uAE30
+FileChooser.updateButtonToolTip.textAndMnemonic=\uB514\uB809\uD1A0\uB9AC \uBAA9\uB85D \uAC31\uC2E0
+FileChooser.helpButtonToolTip.textAndMnemonic=FileChooser \uB3C4\uC6C0\uB9D0
+FileChooser.directoryOpenButtonToolTip.textAndMnemonic=\uC120\uD0DD\uB41C \uB514\uB809\uD1A0\uB9AC \uC5F4\uAE30
+
+FileChooser.filesListAccessibleName=Files List
+FileChooser.filesDetailsAccessibleName=Files Details
+
+############ COLOR CHOOSER STRINGS #############
+ColorChooser.preview.textAndMnemonic=\uBBF8\uB9AC\uBCF4\uAE30
+ColorChooser.ok.textAndMnemonic=\uD655\uC778
+ColorChooser.cancel.textAndMnemonic=\uCDE8\uC18C
+ColorChooser.reset.textAndMnemonic=\uC7AC\uC124\uC815(&R)
+ColorChooser.sample.textAndMnemonic=\uC0D8\uD50C \uD14D\uC2A4\uD2B8  \uC0D8\uD50C \uD14D\uC2A4\uD2B8
+ColorChooser.swatches.textAndMnemonic=\uACAC\uBCF8(&S)
+ColorChooser.swatchesRecent.textAndMnemonic=\uCD5C\uADFC \uBAA9\uB85D:
+ColorChooser.hsv.textAndMnemonic=&HSV
+ColorChooser.hsvHue.textAndMnemonic=\uC0C9\uC870
+ColorChooser.hsvSaturation.textAndMnemonic=\uCC44\uB3C4
+ColorChooser.hsvValue.textAndMnemonic=\uAC12
+ColorChooser.hsvTransparency.textAndMnemonic=\uD22C\uBA85
+ColorChooser.hsl.textAndMnemonic=HS&L
+ColorChooser.hslHue.textAndMnemonic=\uC0C9\uC870
+ColorChooser.hslSaturation.textAndMnemonic=\uCC44\uB3C4
+ColorChooser.hslLightness.textAndMnemonic=\uBC1D\uAE30
+ColorChooser.hslTransparency.textAndMnemonic=\uD22C\uBA85
+ColorChooser.rgb.textAndMnemonic=R&GB
+ColorChooser.rgbRed.textAndMnemonic=\uBE68\uAC04\uC0C9(&D)
+ColorChooser.rgbGreen.textAndMnemonic=\uB179\uC0C9(&N)
+ColorChooser.rgbBlue.textAndMnemonic=\uD30C\uB780\uC0C9(&B)
+ColorChooser.rgbAlpha.textAndMnemonic=\uC54C\uD30C
+ColorChooser.rgbHexCode.textAndMnemonic=\uC0C9\uC0C1 \uCF54\uB4DC(&C)
+ColorChooser.cmyk.textAndMnemonic=C&MYK
+ColorChooser.cmykCyan.textAndMnemonic=\uCCAD\uB85D\uC0C9
+ColorChooser.cmykMagenta.textAndMnemonic=\uC9C4\uD64D\uC0C9
+ColorChooser.cmykYellow.textAndMnemonic=\uB178\uB780\uC0C9
+ColorChooser.cmykBlack.textAndMnemonic=\uAC80\uC815\uC0C9
+ColorChooser.cmykAlpha.textAndMnemonic=\uC54C\uD30C
+
+############ OPTION PANE STRINGS #############
+# We only define mnemonics for YES/NO, but for completeness you can
+# define mnemonics for any of the buttons.
+OptionPane.yesButton.textAndMnemonic=\uC608(&Y)
+OptionPane.noButton.textAndMnemonic=\uC544\uB2C8\uC624(&N)
+OptionPane.okButton.textAndMnemonic=\uD655\uC778(&O)
+OptionPane.cancelButton.textAndMnemonic=\uCDE8\uC18C
+OptionPane.title.textAndMnemonic=\uC635\uC158 \uC120\uD0DD
+# Title for the dialog for the showInputDialog methods. Only used if
+# the developer uses one of the variants that doesn't take a title.
+OptionPane.inputDialog.titleAndMnemonic=\uC785\uB825
+# Title for the dialog for the showMessageDialog methods. Only used if
+# the developer uses one of the variants that doesn't take a title.
+OptionPane.messageDialog.titleAndMnemonic=\uBA54\uC2DC\uC9C0
+
+############ Printing Dialog Strings ############
+PrintingDialog.titleProgress.textAndMnemonic=\uC778\uC1C4
+PrintingDialog.titleAborting.textAndMnemonic=\uC778\uC1C4(\uC911\uB2E8 \uC911)
+
+PrintingDialog.contentInitial.textAndMnemonic=\uC778\uC1C4 \uC9C4\uD589 \uC911...
+
+# The following string will be formatted by a MessageFormat
+# and {0} will be replaced by page number being printed
+PrintingDialog.contentProgress.textAndMnemonic=\uC778\uC1C4\uB41C \uD398\uC774\uC9C0 {0}...
+
+PrintingDialog.contentAborting.textAndMnemonic=\uC778\uC1C4 \uC911\uB2E8 \uC911...
+
+PrintingDialog.abortButton.textAndMnemonic=\uC911\uB2E8(&A)
+PrintingDialog.abortButtonToolTip.textAndMnemonic=\uC778\uC1C4 \uC911\uB2E8
+
+############ Internal Frame Strings ############
+InternalFrame.iconButtonToolTip=\uCD5C\uC18C\uD654
+InternalFrame.maxButtonToolTip=\uCD5C\uB300\uD654
+InternalFrame.restoreButtonToolTip=\uBCF5\uC6D0
+InternalFrame.closeButtonToolTip=\uB2EB\uAE30
+
+############ Internal Frame Title Pane Strings ############
+InternalFrameTitlePane.restoreButton.textAndMnemonic=\uBCF5\uC6D0
+InternalFrameTitlePane.moveButton.textAndMnemonic=\uC774\uB3D9
+InternalFrameTitlePane.sizeButton.textAndMnemonic=\uD06C\uAE30
+InternalFrameTitlePane.minimizeButton.textAndMnemonic=\uCD5C\uC18C\uD654
+InternalFrameTitlePane.maximizeButton.textAndMnemonic=\uCD5C\uB300\uD654
+InternalFrameTitlePane.closeButton.textAndMnemonic=\uB2EB\uAE30
+
+############ Text strings #############
+# Used for html forms
+FormView.submitButton.textAndMnemonic=\uC9C8\uC758 \uC81C\uCD9C
+FormView.resetButton.textAndMnemonic=\uC7AC\uC124\uC815
+FormView.browseFileButton.textAndMnemonic=\uCC3E\uC544\uBCF4\uAE30...
+
+############ Abstract Document Strings ############
+AbstractDocument.styleChange.textAndMnemonic=\uC2A4\uD0C0\uC77C \uBCC0\uACBD
+AbstractDocument.addition.textAndMnemonic=\uCD94\uAC00
+AbstractDocument.deletion.textAndMnemonic=\uC0AD\uC81C
+AbstractDocument.undo.textAndMnemonic=\uC2E4\uD589 \uCDE8\uC18C
+AbstractDocument.redo.textAndMnemonic=\uC7AC\uC2E4\uD589
+
+############ Abstract Button Strings ############
+AbstractButton.click.textAndMnemonic=\uB204\uB974\uAE30
+
+############ Abstract Undoable Edit Strings ############
+AbstractUndoableEdit.undo.textAndMnemonic=\uC2E4\uD589 \uCDE8\uC18C
+AbstractUndoableEdit.redo.textAndMnemonic=\uC7AC\uC2E4\uD589
+
+############ Combo Box Strings ############
+ComboBox.togglePopup.textAndMnemonic=togglePopup
+
+############ Progress Monitor Strings ############
+ProgressMonitor.progress.textAndMnemonic=\uC9C4\uD589...
+
+############ Split Pane Strings ############
+SplitPane.leftButton.textAndMnemonic=\uC67C\uCABD \uB2E8\uCD94
+SplitPane.rightButton.textAndMnemonic=\uC624\uB978\uCABD \uB2E8\uCD94
+# Used for Isindex
+IsindexView.prompt=\uB2E4\uC74C\uC740 \uAC80\uC0C9 \uAC00\uB2A5\uD55C \uC778\uB371\uC2A4\uC785\uB2C8\uB2E4. \uAC80\uC0C9 \uD0A4\uC6CC\uB4DC \uC785\uB825:
+
+############ InternalFrameTitlePane Strings ############
+InternalFrameTitlePane.iconifyButtonAccessibleName=\uC544\uC774\uCF58\uD654
+InternalFrameTitlePane.maximizeButtonAccessibleName=\uCD5C\uB300\uD654
+InternalFrameTitlePane.closeButtonAccessibleName=\uB2EB\uAE30
+
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_pt_BR.properties	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_pt_BR.properties	Wed Jul 05 18:07:57 2017 +0200
@@ -1,229 +1,186 @@
-# This properties file is used to create a PropertyResourceBundle
-# It contains Locale specific strings used in Swing
-# Currently, the following components need this for support:
-#
-#    ColorChooser
-#    FileChooser
-#    OptionPane
-#
-# When this file is read in, the strings are put into the
-# defaults table.  This is an implementation detail of the current
-# workings of Swing.  DO NOT DEPEND ON THIS.
-# This may change in future versions of Swing as we improve localization
-# support.
-#
-#                        MNEMONIC NOTE:
-# Many of strings in this file are used by widgets that have a
-# mnemonic, for example:
-#   ColorChooser.rgbNameText=RGB
-#   ColorChooser.rgbMnemonic=71
-#   ColorChooser.rgbDisplayedMnemonicIndex=1
-# Indicates that the tab in the ColorChooser for RGB colors will have
-# the text 'RGB', further the mnemonic character will be 'g' and that
-# a decoration will be provided under the 'G'. This will typically
-# look like:  RGB
-#              -
-# 71 corresponds to the decimal value of the VK constant defined
-# in java/awt/KeyEvent.java. VK_G is defined as:
-#
-#    public static final int VK_G              = 0x47;
-#
-# 0x47 is a hex number and needs to be converted to decimal.
-# A simple way to calculate this for a-z is to add 64 to the index of
-# the letter in the alphabet. As 'a' is in the 1st letter the mnemonic
-# for 'a' is 65, 'b' is 66...
-#
-# The xxDisplayedMnemonicIndex is used to indicate the index of the
-# character that should be underlined in the String, with 0
-# corresponding to the first character in the String.
-#
-# One important thing to remember is that the mnemonic MUST exist in
-# the String, if it does not exist you should add text that makes it
-# exist. This will typically take the form 'XXXX (M)' where M is the
-# character for the mnemonic.
-#
-# @author Steve Wilson
-
-############ FILE CHOOSER STRINGS #############
-FileChooser.fileDescriptionText=Arquivo Gen\u00E9rico
-FileChooser.directoryDescriptionText=Diret\u00F3rio
-FileChooser.newFolderErrorText=Erro ao criar nova pasta
-FileChooser.newFolderErrorSeparator= :
-FileChooser.newFolderParentDoesntExistTitleText=N\u00E3o \u00E9 poss\u00EDvel criar a pasta
-FileChooser.newFolderParentDoesntExistText=N\u00E3o \u00E9 poss\u00EDvel criar a pasta.\n\nO sistema n\u00E3o pode localizar o caminho especificado.
-FileChooser.renameErrorTitleText=Erro ao Renomear o Arquivo ou a Pasta
-FileChooser.renameErrorText=N\u00E3o \u00E9 poss\u00EDvel renomear {0}
-FileChooser.renameErrorFileExistsText=N\u00E3o \u00E9 poss\u00EDvel renomear {0}: Um arquivo com o nome especificado j\u00E1 existe. Especifique outro nome de arquivo.
-FileChooser.acceptAllFileFilterText=Todos os Arquivos
-FileChooser.cancelButtonText=Cancelar
-FileChooser.cancelButtonMnemonic=67
-FileChooser.saveButtonText=Salvar
-FileChooser.saveButtonMnemonic=83
-FileChooser.openButtonText=Abrir
-FileChooser.openButtonMnemonic=66
-FileChooser.saveDialogTitleText=Salvar
-FileChooser.openDialogTitleText=Abrir
-FileChooser.updateButtonText=Atualizar
-FileChooser.updateButtonMnemonic=85
-FileChooser.helpButtonText=Ajuda
-FileChooser.helpButtonMnemonic=85
-FileChooser.directoryOpenButtonText=Abrir
-FileChooser.directoryOpenButtonMnemonic=66
-
-# File Size Units
-FileChooser.fileSizeKiloBytes={0} KB
-FileChooser.fileSizeMegaBytes={0} MB
-FileChooser.fileSizeGigaBytes={0} GB
-
-# These strings are platform dependent not look and feel dependent.
-FileChooser.win32.newFolder=Nova Pasta
-FileChooser.win32.newFolder.subsequent=Nova Pasta ({0})
-FileChooser.other.newFolder=NewFolder
-FileChooser.other.newFolder.subsequent=NewFolder.{0}
-
-
-## file chooser tooltips ###
-FileChooser.cancelButtonToolTipText=Abortar caixa de di\u00E1logo do seletor de arquivos
-FileChooser.saveButtonToolTipText=Salvar arquivo selecionado
-FileChooser.openButtonToolTipText=Abrir arquivo selecionado
-FileChooser.updateButtonToolTipText=Atualizar lista de diret\u00F3rios
-FileChooser.helpButtonToolTipText=Ajuda do FileChooser
-FileChooser.directoryOpenButtonToolTipText=Abrir diret\u00F3rio selecionado
-
-FileChooser.filesListAccessibleName=Files List
-FileChooser.filesDetailsAccessibleName=Files Details
-
-############ COLOR CHOOSER STRINGS #############
-ColorChooser.previewText=Visualizar
-ColorChooser.okText=OK
-ColorChooser.cancelText=Cancelar
-ColorChooser.resetText=Redefinir
-# VK_XXX constant for 'ColorChooser.resetText' button to make mnemonic
-ColorChooser.resetMnemonic=82
-ColorChooser.sampleText=Texto de Amostra Texto de Amostra
-ColorChooser.swatchesNameText=Amostras
-ColorChooser.swatchesMnemonic=83
-ColorChooser.swatchesRecentText=Recente:
-# Each of the ColorChooser types can define a mnemonic, as a KeyEvent.VK_XXX
-# constant, and an index into the text to render the mnemonic as. The
-# mnemonic is xxxMnemonic and the index of the character to underline is
-# xxxDisplayedMnemonicIndex.
-ColorChooser.hsvNameText=HSV
-ColorChooser.hsvMnemonic=72
-ColorChooser.hsvHueText=Matiz
-ColorChooser.hsvSaturationText=Satura\u00E7\u00E3o
-ColorChooser.hsvValueText=Valor
-ColorChooser.hsvTransparencyText=Transpar\u00EAncia
-ColorChooser.hslNameText=HSL
-ColorChooser.hslMnemonic=76
-ColorChooser.hslHueText=Matiz
-ColorChooser.hslSaturationText=Satura\u00E7\u00E3o
-ColorChooser.hslLightnessText=Clareza
-ColorChooser.hslTransparencyText=Transpar\u00EAncia
-ColorChooser.rgbNameText=RGB
-ColorChooser.rgbMnemonic=71
-ColorChooser.rgbRedText=Vermelho
-ColorChooser.rgbRedMnemonic=86
-ColorChooser.rgbGreenText=Verde
-ColorChooser.rgbGreenMnemonic=86
-ColorChooser.rgbBlueText=Azul
-ColorChooser.rgbBlueMnemonic=65
-ColorChooser.rgbAlphaText=Alfa
-ColorChooser.rgbHexCodeText=C\u00F3digo da Cor
-ColorChooser.rgbHexCodeMnemonic=67
-ColorChooser.cmykNameText=CMYK
-ColorChooser.cmykMnemonic=77
-ColorChooser.cmykCyanText=Ciano
-ColorChooser.cmykMagentaText=Magenta
-ColorChooser.cmykYellowText=Amarelo
-ColorChooser.cmykBlackText=Preto
-ColorChooser.cmykAlphaText=Alfa
-
-############ OPTION PANE STRINGS #############
-# Mnemonic keys correspond to KeyEvent.VK_XXX constant
-# We only define mnemonics for YES/NO, but for completeness you can
-# define mnemonics for any of the buttons.
-OptionPane.yesButtonText=Sim
-OptionPane.yesButtonMnemonic=83
-OptionPane.noButtonText=N\u00E3o
-OptionPane.noButtonMnemonic=78
-OptionPane.okButtonText=OK
-OptionPane.okButtonMnemonic=O
-OptionPane.cancelButtonText=Cancelar
-OptionPane.cancelButtonMnemonic=C
-OptionPane.titleText=Selecionar uma Op\u00E7\u00E3o
-# Title for the dialog for the showInputDialog methods. Only used if
-# the developer uses one of the variants that doesn't take a title.
-OptionPane.inputDialogTitle=Entrada
-# Title for the dialog for the showMessageDialog methods. Only used if
-# the developer uses one of the variants that doesn't take a title.
-OptionPane.messageDialogTitle=Mensagem
-
-############ Printing Dialog Strings ############
-PrintingDialog.titleProgressText=Impress\u00E3o
-PrintingDialog.titleAbortingText=Impress\u00E3o (Abortando)
-
-PrintingDialog.contentInitialText=Impress\u00E3o em andamento...
-
-# The following string will be formatted by a MessageFormat
-# and {0} will be replaced by page number being printed
-PrintingDialog.contentProgressText=P\u00E1gina impressa {0}...
-
-PrintingDialog.contentAbortingText=Abortando impress\u00E3o...
-
-PrintingDialog.abortButtonText=Abortar
-PrintingDialog.abortButtonMnemonic=65
-PrintingDialog.abortButtonDisplayedMnemonicIndex=0
-PrintingDialog.abortButtonToolTipText=Abortar Impress\u00E3o
-
-############ Internal Frame Strings ############
-InternalFrame.iconButtonToolTip=Minimizar
-InternalFrame.maxButtonToolTip=Maximizar
-InternalFrame.restoreButtonToolTip=Restaurar
-InternalFrame.closeButtonToolTip=Fechar
-
-############ Internal Frame Title Pane Strings ############
-InternalFrameTitlePane.restoreButtonText=Restaurar
-InternalFrameTitlePane.moveButtonText=Mover
-InternalFrameTitlePane.sizeButtonText=Tamanho
-InternalFrameTitlePane.minimizeButtonText=Minimizar
-InternalFrameTitlePane.maximizeButtonText=Maximizar
-InternalFrameTitlePane.closeButtonText=Fechar
-
-############ Text strings #############
-# Used for html forms
-FormView.submitButtonText=Submeter Consulta
-FormView.resetButtonText=Redefinir
-FormView.browseFileButtonText=Procurar...
-
-############ Abstract Document Strings ############
-AbstractDocument.styleChangeText=altera\u00E7\u00E3o de estilo
-AbstractDocument.additionText=adi\u00E7\u00E3o
-AbstractDocument.deletionText=dele\u00E7\u00E3o
-AbstractDocument.undoText=Desfazer
-AbstractDocument.redoText=Refazer
-
-############ Abstract Button Strings ############
-AbstractButton.clickText=clicar
-
-############ Abstract Undoable Edit Strings ############
-AbstractUndoableEdit.undoText=Desfazer
-AbstractUndoableEdit.redoText=Refazer
-
-############ Combo Box Strings ############
-ComboBox.togglePopupText=togglePopup
-
-############ Progress Monitor Strings ############
-ProgressMonitor.progressText=Progresso...
-
-############ Split Pane Strings ############
-SplitPane.leftButtonText=bot\u00E3o esquerdo
-SplitPane.rightButtonText=bot\u00E3o direito
-# Used for Isindex
-IsindexView.prompt=Trata-se de um \u00EDndice pesquis\u00E1vel. Informe as palavras-chave de pesquisa:
-
-############ InternalFrameTitlePane Strings ############
-InternalFrameTitlePane.iconifyButtonAccessibleName=Iconify
-InternalFrameTitlePane.maximizeButtonAccessibleName=Maximizar
-InternalFrameTitlePane.closeButtonAccessibleName=Fechar
-
+# This properties file is used to create a PropertyResourceBundle
+# It contains Locale specific strings used in Swing
+# Currently, the following components need this for support:
+#
+#    ColorChooser
+#    FileChooser
+#    OptionPane
+#
+# When this file is read in, the strings are put into the
+# defaults table.  This is an implementation detail of the current
+# workings of Swing.  DO NOT DEPEND ON THIS.
+# This may change in future versions of Swing as we improve localization
+# support.
+#
+#                        MNEMONIC NOTE:
+# Many of strings in this file are used by widgets that have a
+# mnemonic, for example:
+#   ColorChooser.rgbNameTextAndMnemonic=R&GB
+# Indicates that the tab in the ColorChooser for RGB colors will have
+# the text 'RGB', further the mnemonic character will be 'g' and that
+# a decoration will be provided under the 'G'. This will typically
+# look like:  RGB
+#              -
+#
+# One important thing to remember is that the mnemonic MUST exist in
+# the String, if it does not exist you should add text that makes it
+# exist. This will typically take the form 'XXXX (M)' where M is the
+# character for the mnemonic.
+#
+# @author Steve Wilson
+
+############ FILE CHOOSER STRINGS #############
+FileChooser.fileDescription.textAndMnemonic=Arquivo Gen\u00E9rico
+FileChooser.directoryDescription.textAndMnemonic=Diret\u00F3rio
+FileChooser.newFolderError.textAndMnemonic=Erro ao criar nova pasta
+FileChooser.newFolderErrorSeparator= :
+FileChooser.newFolderParentDoesntExistTitle.textAndMnemonic=N\u00E3o \u00E9 poss\u00EDvel criar a pasta
+FileChooser.newFolderParentDoesntExist.textAndMnemonic=N\u00E3o \u00E9 poss\u00EDvel criar a pasta.\n\nO sistema n\u00E3o pode localizar o caminho especificado.
+FileChooser.renameErrorTitle.textAndMnemonic=Erro ao Renomear o Arquivo ou a Pasta
+FileChooser.renameError.textAndMnemonic=N\u00E3o \u00E9 poss\u00EDvel renomear {0}
+FileChooser.renameErrorFileExists.textAndMnemonic=N\u00E3o \u00E9 poss\u00EDvel renomear {0}: Um arquivo com o nome especificado j\u00E1 existe. Especifique outro nome de arquivo.
+FileChooser.acceptAllFileFilter.textAndMnemonic=Todos os Arquivos
+FileChooser.cancelButton.textAndMnemonic=&Cancelar
+FileChooser.saveButton.textAndMnemonic=&Salvar
+FileChooser.openButton.textAndMnemonic=A&brir
+FileChooser.saveDialogTitle.textAndMnemonic=Salvar
+FileChooser.openDialogTitle.textAndMnemonic=Abrir
+FileChooser.updateButton.textAndMnemonic=At&ualizar
+FileChooser.helpButton.textAndMnemonic=Aj&uda
+FileChooser.directoryOpenButton.textAndMnemonic=A&brir
+
+# File Size Units
+FileChooser.fileSizeKiloBytes={0} KB
+FileChooser.fileSizeMegaBytes={0} MB
+FileChooser.fileSizeGigaBytes={0} GB
+
+# These strings are platform dependent not look and feel dependent.
+FileChooser.win32.newFolder=Nova Pasta
+FileChooser.win32.newFolder.subsequent=Nova Pasta ({0})
+FileChooser.other.newFolder=NewFolder
+FileChooser.other.newFolder.subsequent=NewFolder.{0}
+
+
+## file chooser tooltips ###
+FileChooser.cancelButtonToolTip.textAndMnemonic=Abortar caixa de di\u00E1logo do seletor de arquivos
+FileChooser.saveButtonToolTip.textAndMnemonic=Salvar arquivo selecionado
+FileChooser.openButtonToolTip.textAndMnemonic=Abrir arquivo selecionado
+FileChooser.updateButtonToolTip.textAndMnemonic=Atualizar lista de diret\u00F3rios
+FileChooser.helpButtonToolTip.textAndMnemonic=Ajuda do FileChooser
+FileChooser.directoryOpenButtonToolTip.textAndMnemonic=Abrir diret\u00F3rio selecionado
+
+FileChooser.filesListAccessibleName=Files List
+FileChooser.filesDetailsAccessibleName=Files Details
+
+############ COLOR CHOOSER STRINGS #############
+ColorChooser.preview.textAndMnemonic=Visualizar
+ColorChooser.ok.textAndMnemonic=OK
+ColorChooser.cancel.textAndMnemonic=Cancelar
+ColorChooser.reset.textAndMnemonic=&Redefinir
+ColorChooser.sample.textAndMnemonic=Texto de Amostra Texto de Amostra
+ColorChooser.swatches.textAndMnemonic=Amo&stras
+ColorChooser.swatchesRecent.textAndMnemonic=Recente:
+ColorChooser.hsv.textAndMnemonic=&HSV
+ColorChooser.hsvHue.textAndMnemonic=Matiz
+ColorChooser.hsvSaturation.textAndMnemonic=Satura\u00E7\u00E3o
+ColorChooser.hsvValue.textAndMnemonic=Valor
+ColorChooser.hsvTransparency.textAndMnemonic=Transpar\u00EAncia
+ColorChooser.hsl.textAndMnemonic=HS&L
+ColorChooser.hslHue.textAndMnemonic=Matiz
+ColorChooser.hslSaturation.textAndMnemonic=Satura\u00E7\u00E3o
+ColorChooser.hslLightness.textAndMnemonic=Clareza
+ColorChooser.hslTransparency.textAndMnemonic=Transpar\u00EAncia
+ColorChooser.rgb.textAndMnemonic=R&GB
+ColorChooser.rgbRed.textAndMnemonic=&Vermelho
+ColorChooser.rgbGreen.textAndMnemonic=&Verde
+ColorChooser.rgbBlue.textAndMnemonic=&Azul
+ColorChooser.rgbAlpha.textAndMnemonic=Alfa
+ColorChooser.rgbHexCode.textAndMnemonic=C\u00F3digo da Cor(&C)
+ColorChooser.cmyk.textAndMnemonic=C&MYK
+ColorChooser.cmykCyan.textAndMnemonic=Ciano
+ColorChooser.cmykMagenta.textAndMnemonic=Magenta
+ColorChooser.cmykYellow.textAndMnemonic=Amarelo
+ColorChooser.cmykBlack.textAndMnemonic=Preto
+ColorChooser.cmykAlpha.textAndMnemonic=Alfa
+
+############ OPTION PANE STRINGS #############
+# We only define mnemonics for YES/NO, but for completeness you can
+# define mnemonics for any of the buttons.
+OptionPane.yesButton.textAndMnemonic=&Sim
+OptionPane.noButton.textAndMnemonic=N\u00E3o(&N)
+OptionPane.okButton.textAndMnemonic=&OK
+OptionPane.cancelButton.textAndMnemonic=&Cancelar
+OptionPane.title.textAndMnemonic=Selecionar uma Op\u00E7\u00E3o
+# Title for the dialog for the showInputDialog methods. Only used if
+# the developer uses one of the variants that doesn't take a title.
+OptionPane.inputDialog.titleAndMnemonic=Entrada
+# Title for the dialog for the showMessageDialog methods. Only used if
+# the developer uses one of the variants that doesn't take a title.
+OptionPane.messageDialog.titleAndMnemonic=Mensagem
+
+############ Printing Dialog Strings ############
+PrintingDialog.titleProgress.textAndMnemonic=Impress\u00E3o
+PrintingDialog.titleAborting.textAndMnemonic=Impress\u00E3o (Abortando)
+
+PrintingDialog.contentInitial.textAndMnemonic=Impress\u00E3o em andamento...
+
+# The following string will be formatted by a MessageFormat
+# and {0} will be replaced by page number being printed
+PrintingDialog.contentProgress.textAndMnemonic=P\u00E1gina impressa {0}...
+
+PrintingDialog.contentAborting.textAndMnemonic=Abortando impress\u00E3o...
+
+PrintingDialog.abortButton.textAndMnemonic=&Abortar
+PrintingDialog.abortButtonToolTip.textAndMnemonic=Abortar Impress\u00E3o
+
+############ Internal Frame Strings ############
+InternalFrame.iconButtonToolTip=Minimizar
+InternalFrame.maxButtonToolTip=Maximizar
+InternalFrame.restoreButtonToolTip=Restaurar
+InternalFrame.closeButtonToolTip=Fechar
+
+############ Internal Frame Title Pane Strings ############
+InternalFrameTitlePane.restoreButton.textAndMnemonic=Restaurar
+InternalFrameTitlePane.moveButton.textAndMnemonic=Mover
+InternalFrameTitlePane.sizeButton.textAndMnemonic=Tamanho
+InternalFrameTitlePane.minimizeButton.textAndMnemonic=Minimizar
+InternalFrameTitlePane.maximizeButton.textAndMnemonic=Maximizar
+InternalFrameTitlePane.closeButton.textAndMnemonic=Fechar
+
+############ Text strings #############
+# Used for html forms
+FormView.submitButton.textAndMnemonic=Submeter Consulta
+FormView.resetButton.textAndMnemonic=Redefinir
+FormView.browseFileButton.textAndMnemonic=Procurar...
+
+############ Abstract Document Strings ############
+AbstractDocument.styleChange.textAndMnemonic=altera\u00E7\u00E3o de estilo
+AbstractDocument.addition.textAndMnemonic=adi\u00E7\u00E3o
+AbstractDocument.deletion.textAndMnemonic=dele\u00E7\u00E3o
+AbstractDocument.undo.textAndMnemonic=Desfazer
+AbstractDocument.redo.textAndMnemonic=Refazer
+
+############ Abstract Button Strings ############
+AbstractButton.click.textAndMnemonic=clicar
+
+############ Abstract Undoable Edit Strings ############
+AbstractUndoableEdit.undo.textAndMnemonic=Desfazer
+AbstractUndoableEdit.redo.textAndMnemonic=Refazer
+
+############ Combo Box Strings ############
+ComboBox.togglePopup.textAndMnemonic=togglePopup
+
+############ Progress Monitor Strings ############
+ProgressMonitor.progress.textAndMnemonic=Progresso...
+
+############ Split Pane Strings ############
+SplitPane.leftButton.textAndMnemonic=bot\u00E3o esquerdo
+SplitPane.rightButton.textAndMnemonic=bot\u00E3o direito
+# Used for Isindex
+IsindexView.prompt=Trata-se de um \u00EDndice pesquis\u00E1vel. Informe as palavras-chave de pesquisa:
+
+############ InternalFrameTitlePane Strings ############
+InternalFrameTitlePane.iconifyButtonAccessibleName=Iconify
+InternalFrameTitlePane.maximizeButtonAccessibleName=Maximizar
+InternalFrameTitlePane.closeButtonAccessibleName=Fechar
+
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_sv.properties	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_sv.properties	Wed Jul 05 18:07:57 2017 +0200
@@ -1,229 +1,186 @@
-# This properties file is used to create a PropertyResourceBundle
-# It contains Locale specific strings used in Swing
-# Currently, the following components need this for support:
-#
-#    ColorChooser
-#    FileChooser
-#    OptionPane
-#
-# When this file is read in, the strings are put into the
-# defaults table.  This is an implementation detail of the current
-# workings of Swing.  DO NOT DEPEND ON THIS.
-# This may change in future versions of Swing as we improve localization
-# support.
-#
-#                        MNEMONIC NOTE:
-# Many of strings in this file are used by widgets that have a
-# mnemonic, for example:
-#   ColorChooser.rgbNameText=RGB
-#   ColorChooser.rgbMnemonic=71
-#   ColorChooser.rgbDisplayedMnemonicIndex=1
-# Indicates that the tab in the ColorChooser for RGB colors will have
-# the text 'RGB', further the mnemonic character will be 'g' and that
-# a decoration will be provided under the 'G'. This will typically
-# look like:  RGB
-#              -
-# 71 corresponds to the decimal value of the VK constant defined
-# in java/awt/KeyEvent.java. VK_G is defined as:
-#
-#    public static final int VK_G              = 0x47;
-#
-# 0x47 is a hex number and needs to be converted to decimal.
-# A simple way to calculate this for a-z is to add 64 to the index of
-# the letter in the alphabet. As 'a' is in the 1st letter the mnemonic
-# for 'a' is 65, 'b' is 66...
-#
-# The xxDisplayedMnemonicIndex is used to indicate the index of the
-# character that should be underlined in the String, with 0
-# corresponding to the first character in the String.
-#
-# One important thing to remember is that the mnemonic MUST exist in
-# the String, if it does not exist you should add text that makes it
-# exist. This will typically take the form 'XXXX (M)' where M is the
-# character for the mnemonic.
-#
-# @author Steve Wilson
-
-############ FILE CHOOSER STRINGS #############
-FileChooser.fileDescriptionText=Generisk fil
-FileChooser.directoryDescriptionText=Katalog
-FileChooser.newFolderErrorText=Fel uppstod n\u00E4r ny mapp skapades
-FileChooser.newFolderErrorSeparator= :
-FileChooser.newFolderParentDoesntExistTitleText=Kan inte skapa mappen
-FileChooser.newFolderParentDoesntExistText=Kan inte skapa mappen.\n\nSystemet kan inte hitta angiven s\u00F6kv\u00E4g.
-FileChooser.renameErrorTitleText=Ett fel intr\u00E4ffade vid f\u00F6rs\u00F6k att \u00E4ndra namn p\u00E5 fil eller mapp
-FileChooser.renameErrorText=Kan inte namn\u00E4ndra {0}
-FileChooser.renameErrorFileExistsText=Kan inte namn\u00E4ndra {0}: En fil med angivet namn finns redan. Ange ett annat filnamn.
-FileChooser.acceptAllFileFilterText=Alla filer
-FileChooser.cancelButtonText=Avbryt
-FileChooser.cancelButtonMnemonic=65
-FileChooser.saveButtonText=Spara
-FileChooser.saveButtonMnemonic=83
-FileChooser.openButtonText=\u00D6ppna
-FileChooser.openButtonMnemonic=80
-FileChooser.saveDialogTitleText=Spara
-FileChooser.openDialogTitleText=\u00D6ppna
-FileChooser.updateButtonText=Uppdatera
-FileChooser.updateButtonMnemonic=68
-FileChooser.helpButtonText=Hj\u00E4lp
-FileChooser.helpButtonMnemonic=72
-FileChooser.directoryOpenButtonText=\u00D6ppna
-FileChooser.directoryOpenButtonMnemonic=80
-
-# File Size Units
-FileChooser.fileSizeKiloBytes={0} KB
-FileChooser.fileSizeMegaBytes={0} MB
-FileChooser.fileSizeGigaBytes={0} GB
-
-# These strings are platform dependent not look and feel dependent.
-FileChooser.win32.newFolder=Ny mapp
-FileChooser.win32.newFolder.subsequent=Ny mapp ({0})
-FileChooser.other.newFolder=Ny mapp
-FileChooser.other.newFolder.subsequent=Ny mapp.{0}
-
-
-## file chooser tooltips ###
-FileChooser.cancelButtonToolTipText=Avbryt filvalsdialogruta
-FileChooser.saveButtonToolTipText=Spara vald fil
-FileChooser.openButtonToolTipText=\u00D6ppna vald fil
-FileChooser.updateButtonToolTipText=Uppdatera kataloglistan
-FileChooser.helpButtonToolTipText=Hj\u00E4lp - Filv\u00E4ljare
-FileChooser.directoryOpenButtonToolTipText=\u00D6ppna vald katalog
-
-FileChooser.filesListAccessibleName=Files List
-FileChooser.filesDetailsAccessibleName=Files Details
-
-############ COLOR CHOOSER STRINGS #############
-ColorChooser.previewText=Granska
-ColorChooser.okText=OK
-ColorChooser.cancelText=Avbryt
-ColorChooser.resetText=\u00C5terst\u00E4ll
-# VK_XXX constant for 'ColorChooser.resetText' button to make mnemonic
-ColorChooser.resetMnemonic=84
-ColorChooser.sampleText=Exempeltext  Exempeltext
-ColorChooser.swatchesNameText=Prov
-ColorChooser.swatchesMnemonic=80
-ColorChooser.swatchesRecentText=Senaste:
-# Each of the ColorChooser types can define a mnemonic, as a KeyEvent.VK_XXX
-# constant, and an index into the text to render the mnemonic as. The
-# mnemonic is xxxMnemonic and the index of the character to underline is
-# xxxDisplayedMnemonicIndex.
-ColorChooser.hsvNameText=HSV
-ColorChooser.hsvMnemonic=72
-ColorChooser.hsvHueText=Nyans
-ColorChooser.hsvSaturationText=M\u00E4ttnad
-ColorChooser.hsvValueText=V\u00E4rde
-ColorChooser.hsvTransparencyText=Transparens
-ColorChooser.hslNameText=HSL
-ColorChooser.hslMnemonic=76
-ColorChooser.hslHueText=Nyans
-ColorChooser.hslSaturationText=M\u00E4ttnad
-ColorChooser.hslLightnessText=Ljusstyrka
-ColorChooser.hslTransparencyText=Transparens
-ColorChooser.rgbNameText=RGB
-ColorChooser.rgbMnemonic=71
-ColorChooser.rgbRedText=R\u00F6d
-ColorChooser.rgbRedMnemonic=68
-ColorChooser.rgbGreenText=Gr\u00F6n
-ColorChooser.rgbGreenMnemonic=78
-ColorChooser.rgbBlueText=Bl\u00E5
-ColorChooser.rgbBlueMnemonic=66
-ColorChooser.rgbAlphaText=Alfa
-ColorChooser.rgbHexCodeText=F\u00E4rgkod
-ColorChooser.rgbHexCodeMnemonic=70
-ColorChooser.cmykNameText=CMYK
-ColorChooser.cmykMnemonic=77
-ColorChooser.cmykCyanText=Cyan
-ColorChooser.cmykMagentaText=Magenta
-ColorChooser.cmykYellowText=Gul
-ColorChooser.cmykBlackText=Svart
-ColorChooser.cmykAlphaText=Alfa
-
-############ OPTION PANE STRINGS #############
-# Mnemonic keys correspond to KeyEvent.VK_XXX constant
-# We only define mnemonics for YES/NO, but for completeness you can
-# define mnemonics for any of the buttons.
-OptionPane.yesButtonText=Ja
-OptionPane.yesButtonMnemonic=74
-OptionPane.noButtonText=Nej
-OptionPane.noButtonMnemonic=78
-OptionPane.okButtonText=OK
-OptionPane.okButtonMnemonic=O
-OptionPane.cancelButtonText=Avbryt
-OptionPane.cancelButtonMnemonic=A
-OptionPane.titleText=V\u00E4lj ett alternativ
-# Title for the dialog for the showInputDialog methods. Only used if
-# the developer uses one of the variants that doesn't take a title.
-OptionPane.inputDialogTitle=Indata
-# Title for the dialog for the showMessageDialog methods. Only used if
-# the developer uses one of the variants that doesn't take a title.
-OptionPane.messageDialogTitle=Meddelande
-
-############ Printing Dialog Strings ############
-PrintingDialog.titleProgressText=Skriver ut
-PrintingDialog.titleAbortingText=Skriver ut (avbryter)
-
-PrintingDialog.contentInitialText=Utskrift p\u00E5g\u00E5r...
-
-# The following string will be formatted by a MessageFormat
-# and {0} will be replaced by page number being printed
-PrintingDialog.contentProgressText=Utskriven sida {0}...
-
-PrintingDialog.contentAbortingText=Utskriften avbryts...
-
-PrintingDialog.abortButtonText=Avbryt
-PrintingDialog.abortButtonMnemonic=65
-PrintingDialog.abortButtonDisplayedMnemonicIndex=0
-PrintingDialog.abortButtonToolTipText=Avbryt utskrift
-
-############ Internal Frame Strings ############
-InternalFrame.iconButtonToolTip=Minimera
-InternalFrame.maxButtonToolTip=Maximera
-InternalFrame.restoreButtonToolTip=\u00C5terst\u00E4ll
-InternalFrame.closeButtonToolTip=St\u00E4ng
-
-############ Internal Frame Title Pane Strings ############
-InternalFrameTitlePane.restoreButtonText=\u00C5terst\u00E4ll
-InternalFrameTitlePane.moveButtonText=Flytta
-InternalFrameTitlePane.sizeButtonText=Storlek
-InternalFrameTitlePane.minimizeButtonText=Minimera
-InternalFrameTitlePane.maximizeButtonText=Maximera
-InternalFrameTitlePane.closeButtonText=St\u00E4ng
-
-############ Text strings #############
-# Used for html forms
-FormView.submitButtonText=Skicka fr\u00E5ga
-FormView.resetButtonText=\u00C5terst\u00E4ll
-FormView.browseFileButtonText=Bl\u00E4ddra...
-
-############ Abstract Document Strings ############
-AbstractDocument.styleChangeText=format\u00E4ndring
-AbstractDocument.additionText=till\u00E4gg
-AbstractDocument.deletionText=borttagning
-AbstractDocument.undoText=\u00C5ngra
-AbstractDocument.redoText=G\u00F6r om
-
-############ Abstract Button Strings ############
-AbstractButton.clickText=klicka
-
-############ Abstract Undoable Edit Strings ############
-AbstractUndoableEdit.undoText=\u00C5ngra
-AbstractUndoableEdit.redoText=G\u00F6r om
-
-############ Combo Box Strings ############
-ComboBox.togglePopupText=v\u00E4xlaPopup
-
-############ Progress Monitor Strings ############
-ProgressMonitor.progressText=P\u00E5g\u00E5r...
-
-############ Split Pane Strings ############
-SplitPane.leftButtonText=v\u00E4nster knapp
-SplitPane.rightButtonText=h\u00F6ger knapp
-# Used for Isindex
-IsindexView.prompt=Detta \u00E4r ett s\u00F6kbart index. Ange s\u00F6kord:
-
-############ InternalFrameTitlePane Strings ############
-InternalFrameTitlePane.iconifyButtonAccessibleName=Minimera
-InternalFrameTitlePane.maximizeButtonAccessibleName=Maximera
-InternalFrameTitlePane.closeButtonAccessibleName=St\u00E4ng
-
+# This properties file is used to create a PropertyResourceBundle
+# It contains Locale specific strings used in Swing
+# Currently, the following components need this for support:
+#
+#    ColorChooser
+#    FileChooser
+#    OptionPane
+#
+# When this file is read in, the strings are put into the
+# defaults table.  This is an implementation detail of the current
+# workings of Swing.  DO NOT DEPEND ON THIS.
+# This may change in future versions of Swing as we improve localization
+# support.
+#
+#                        MNEMONIC NOTE:
+# Many of strings in this file are used by widgets that have a
+# mnemonic, for example:
+#   ColorChooser.rgbNameTextAndMnemonic=R&GB
+# Indicates that the tab in the ColorChooser for RGB colors will have
+# the text 'RGB', further the mnemonic character will be 'g' and that
+# a decoration will be provided under the 'G'. This will typically
+# look like:  RGB
+#              -
+#
+# One important thing to remember is that the mnemonic MUST exist in
+# the String, if it does not exist you should add text that makes it
+# exist. This will typically take the form 'XXXX (M)' where M is the
+# character for the mnemonic.
+#
+# @author Steve Wilson
+
+############ FILE CHOOSER STRINGS #############
+FileChooser.fileDescription.textAndMnemonic=Generisk fil
+FileChooser.directoryDescription.textAndMnemonic=Katalog
+FileChooser.newFolderError.textAndMnemonic=Fel uppstod n\u00E4r ny mapp skapades
+FileChooser.newFolderErrorSeparator= :
+FileChooser.newFolderParentDoesntExistTitle.textAndMnemonic=Kan inte skapa mappen
+FileChooser.newFolderParentDoesntExist.textAndMnemonic=Kan inte skapa mappen.\n\nSystemet kan inte hitta angiven s\u00F6kv\u00E4g.
+FileChooser.renameErrorTitle.textAndMnemonic=Ett fel intr\u00E4ffade vid f\u00F6rs\u00F6k att \u00E4ndra namn p\u00E5 fil eller mapp
+FileChooser.renameError.textAndMnemonic=Kan inte namn\u00E4ndra {0}
+FileChooser.renameErrorFileExists.textAndMnemonic=Kan inte namn\u00E4ndra {0}: En fil med angivet namn finns redan. Ange ett annat filnamn.
+FileChooser.acceptAllFileFilter.textAndMnemonic=Alla filer
+FileChooser.cancelButton.textAndMnemonic=&Avbryt
+FileChooser.saveButton.textAndMnemonic=&Spara
+FileChooser.openButton.textAndMnemonic=\u00D6ppna(&P)
+FileChooser.saveDialogTitle.textAndMnemonic=Spara
+FileChooser.openDialogTitle.textAndMnemonic=\u00D6ppna
+FileChooser.updateButton.textAndMnemonic=Upp&datera
+FileChooser.helpButton.textAndMnemonic=Hj\u00E4lp(&H)
+FileChooser.directoryOpenButton.textAndMnemonic=\u00D6ppna(&P)
+
+# File Size Units
+FileChooser.fileSizeKiloBytes={0} KB
+FileChooser.fileSizeMegaBytes={0} MB
+FileChooser.fileSizeGigaBytes={0} GB
+
+# These strings are platform dependent not look and feel dependent.
+FileChooser.win32.newFolder=Ny mapp
+FileChooser.win32.newFolder.subsequent=Ny mapp ({0})
+FileChooser.other.newFolder=Ny mapp
+FileChooser.other.newFolder.subsequent=Ny mapp.{0}
+
+
+## file chooser tooltips ###
+FileChooser.cancelButtonToolTip.textAndMnemonic=Avbryt filvalsdialogruta
+FileChooser.saveButtonToolTip.textAndMnemonic=Spara vald fil
+FileChooser.openButtonToolTip.textAndMnemonic=\u00D6ppna vald fil
+FileChooser.updateButtonToolTip.textAndMnemonic=Uppdatera kataloglistan
+FileChooser.helpButtonToolTip.textAndMnemonic=Hj\u00E4lp - Filv\u00E4ljare
+FileChooser.directoryOpenButtonToolTip.textAndMnemonic=\u00D6ppna vald katalog
+
+FileChooser.filesListAccessibleName=Files List
+FileChooser.filesDetailsAccessibleName=Files Details
+
+############ COLOR CHOOSER STRINGS #############
+ColorChooser.preview.textAndMnemonic=Granska
+ColorChooser.ok.textAndMnemonic=OK
+ColorChooser.cancel.textAndMnemonic=Avbryt
+ColorChooser.reset.textAndMnemonic=\u00C5terst\u00E4ll(&T)
+ColorChooser.sample.textAndMnemonic=Exempeltext  Exempeltext
+ColorChooser.swatches.textAndMnemonic=&Prov
+ColorChooser.swatchesRecent.textAndMnemonic=Senaste:
+ColorChooser.hsv.textAndMnemonic=&HSV
+ColorChooser.hsvHue.textAndMnemonic=Nyans
+ColorChooser.hsvSaturation.textAndMnemonic=M\u00E4ttnad
+ColorChooser.hsvValue.textAndMnemonic=V\u00E4rde
+ColorChooser.hsvTransparency.textAndMnemonic=Transparens
+ColorChooser.hsl.textAndMnemonic=HS&L
+ColorChooser.hslHue.textAndMnemonic=Nyans
+ColorChooser.hslSaturation.textAndMnemonic=M\u00E4ttnad
+ColorChooser.hslLightness.textAndMnemonic=Ljusstyrka
+ColorChooser.hslTransparency.textAndMnemonic=Transparens
+ColorChooser.rgb.textAndMnemonic=R&GB
+ColorChooser.rgbRed.textAndMnemonic=R\u00F6d(&D)
+ColorChooser.rgbGreen.textAndMnemonic=Gr\u00F6n(&N)
+ColorChooser.rgbBlue.textAndMnemonic=Bl\u00E5(&B)
+ColorChooser.rgbAlpha.textAndMnemonic=Alfa
+ColorChooser.rgbHexCode.textAndMnemonic=F\u00E4rgkod(&F)
+ColorChooser.cmyk.textAndMnemonic=C&MYK
+ColorChooser.cmykCyan.textAndMnemonic=Cyan
+ColorChooser.cmykMagenta.textAndMnemonic=Magenta
+ColorChooser.cmykYellow.textAndMnemonic=Gul
+ColorChooser.cmykBlack.textAndMnemonic=Svart
+ColorChooser.cmykAlpha.textAndMnemonic=Alfa
+
+############ OPTION PANE STRINGS #############
+# We only define mnemonics for YES/NO, but for completeness you can
+# define mnemonics for any of the buttons.
+OptionPane.yesButton.textAndMnemonic=&Ja
+OptionPane.noButton.textAndMnemonic=&Nej
+OptionPane.okButton.textAndMnemonic=&OK
+OptionPane.cancelButton.textAndMnemonic=&Avbryt
+OptionPane.title.textAndMnemonic=V\u00E4lj ett alternativ
+# Title for the dialog for the showInputDialog methods. Only used if
+# the developer uses one of the variants that doesn't take a title.
+OptionPane.inputDialog.titleAndMnemonic=Indata
+# Title for the dialog for the showMessageDialog methods. Only used if
+# the developer uses one of the variants that doesn't take a title.
+OptionPane.messageDialog.titleAndMnemonic=Meddelande
+
+############ Printing Dialog Strings ############
+PrintingDialog.titleProgress.textAndMnemonic=Skriver ut
+PrintingDialog.titleAborting.textAndMnemonic=Skriver ut (avbryter)
+
+PrintingDialog.contentInitial.textAndMnemonic=Utskrift p\u00E5g\u00E5r...
+
+# The following string will be formatted by a MessageFormat
+# and {0} will be replaced by page number being printed
+PrintingDialog.contentProgress.textAndMnemonic=Utskriven sida {0}...
+
+PrintingDialog.contentAborting.textAndMnemonic=Utskriften avbryts...
+
+PrintingDialog.abortButton.textAndMnemonic=&Avbryt
+PrintingDialog.abortButtonToolTip.textAndMnemonic=Avbryt utskrift
+
+############ Internal Frame Strings ############
+InternalFrame.iconButtonToolTip=Minimera
+InternalFrame.maxButtonToolTip=Maximera
+InternalFrame.restoreButtonToolTip=\u00C5terst\u00E4ll
+InternalFrame.closeButtonToolTip=St\u00E4ng
+
+############ Internal Frame Title Pane Strings ############
+InternalFrameTitlePane.restoreButton.textAndMnemonic=\u00C5terst\u00E4ll
+InternalFrameTitlePane.moveButton.textAndMnemonic=Flytta
+InternalFrameTitlePane.sizeButton.textAndMnemonic=Storlek
+InternalFrameTitlePane.minimizeButton.textAndMnemonic=Minimera
+InternalFrameTitlePane.maximizeButton.textAndMnemonic=Maximera
+InternalFrameTitlePane.closeButton.textAndMnemonic=St\u00E4ng
+
+############ Text strings #############
+# Used for html forms
+FormView.submitButton.textAndMnemonic=Skicka fr\u00E5ga
+FormView.resetButton.textAndMnemonic=\u00C5terst\u00E4ll
+FormView.browseFileButton.textAndMnemonic=Bl\u00E4ddra...
+
+############ Abstract Document Strings ############
+AbstractDocument.styleChange.textAndMnemonic=format\u00E4ndring
+AbstractDocument.addition.textAndMnemonic=till\u00E4gg
+AbstractDocument.deletion.textAndMnemonic=borttagning
+AbstractDocument.undo.textAndMnemonic=\u00C5ngra
+AbstractDocument.redo.textAndMnemonic=G\u00F6r om
+
+############ Abstract Button Strings ############
+AbstractButton.click.textAndMnemonic=klicka
+
+############ Abstract Undoable Edit Strings ############
+AbstractUndoableEdit.undo.textAndMnemonic=\u00C5ngra
+AbstractUndoableEdit.redo.textAndMnemonic=G\u00F6r om
+
+############ Combo Box Strings ############
+ComboBox.togglePopup.textAndMnemonic=v\u00E4xlaPopup
+
+############ Progress Monitor Strings ############
+ProgressMonitor.progress.textAndMnemonic=P\u00E5g\u00E5r...
+
+############ Split Pane Strings ############
+SplitPane.leftButton.textAndMnemonic=v\u00E4nster knapp
+SplitPane.rightButton.textAndMnemonic=h\u00F6ger knapp
+# Used for Isindex
+IsindexView.prompt=Detta \u00E4r ett s\u00F6kbart index. Ange s\u00F6kord:
+
+############ InternalFrameTitlePane Strings ############
+InternalFrameTitlePane.iconifyButtonAccessibleName=Minimera
+InternalFrameTitlePane.maximizeButtonAccessibleName=Maximera
+InternalFrameTitlePane.closeButtonAccessibleName=St\u00E4ng
+
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_CN.properties	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_CN.properties	Wed Jul 05 18:07:57 2017 +0200
@@ -1,229 +1,186 @@
-# This properties file is used to create a PropertyResourceBundle
-# It contains Locale specific strings used in Swing
-# Currently, the following components need this for support:
-#
-#    ColorChooser
-#    FileChooser
-#    OptionPane
-#
-# When this file is read in, the strings are put into the
-# defaults table.  This is an implementation detail of the current
-# workings of Swing.  DO NOT DEPEND ON THIS.
-# This may change in future versions of Swing as we improve localization
-# support.
-#
-#                        MNEMONIC NOTE:
-# Many of strings in this file are used by widgets that have a
-# mnemonic, for example:
-#   ColorChooser.rgbNameText=RGB
-#   ColorChooser.rgbMnemonic=71
-#   ColorChooser.rgbDisplayedMnemonicIndex=1
-# Indicates that the tab in the ColorChooser for RGB colors will have
-# the text 'RGB', further the mnemonic character will be 'g' and that
-# a decoration will be provided under the 'G'. This will typically
-# look like:  RGB
-#              -
-# 71 corresponds to the decimal value of the VK constant defined
-# in java/awt/KeyEvent.java. VK_G is defined as:
-#
-#    public static final int VK_G              = 0x47;
-#
-# 0x47 is a hex number and needs to be converted to decimal.
-# A simple way to calculate this for a-z is to add 64 to the index of
-# the letter in the alphabet. As 'a' is in the 1st letter the mnemonic
-# for 'a' is 65, 'b' is 66...
-#
-# The xxDisplayedMnemonicIndex is used to indicate the index of the
-# character that should be underlined in the String, with 0
-# corresponding to the first character in the String.
-#
-# One important thing to remember is that the mnemonic MUST exist in
-# the String, if it does not exist you should add text that makes it
-# exist. This will typically take the form 'XXXX (M)' where M is the
-# character for the mnemonic.
-#
-# @author Steve Wilson
-
-############ FILE CHOOSER STRINGS #############
-FileChooser.fileDescriptionText=\u666E\u901A\u7684\u6587\u4EF6
-FileChooser.directoryDescriptionText=\u76EE\u5F55
-FileChooser.newFolderErrorText=\u521B\u5EFA\u65B0\u7684\u6587\u4EF6\u5939\u65F6\u51FA\u9519
-FileChooser.newFolderErrorSeparator= :
-FileChooser.newFolderParentDoesntExistTitleText=\u65E0\u6CD5\u521B\u5EFA\u6587\u4EF6\u5939
-FileChooser.newFolderParentDoesntExistText=\u65E0\u6CD5\u521B\u5EFA\u6587\u4EF6\u5939\u3002\n\n\u7CFB\u7EDF\u627E\u4E0D\u5230\u6307\u5B9A\u7684\u8DEF\u5F84\u3002
-FileChooser.renameErrorTitleText=\u91CD\u547D\u540D\u6587\u4EF6\u6216\u6587\u4EF6\u5939\u65F6\u51FA\u9519
-FileChooser.renameErrorText=\u65E0\u6CD5\u91CD\u547D\u540D{0}
-FileChooser.renameErrorFileExistsText=\u65E0\u6CD5\u91CD\u547D\u540D{0}: \u5DF2\u5B58\u5728\u5177\u6709\u6240\u6307\u5B9A\u540D\u79F0\u7684\u6587\u4EF6\u3002\u8BF7\u6307\u5B9A\u5176\u4ED6\u6587\u4EF6\u540D\u3002
-FileChooser.acceptAllFileFilterText=\u6240\u6709\u6587\u4EF6
-FileChooser.cancelButtonText=\u53D6\u6D88
-FileChooser.cancelButtonMnemonic=67
-FileChooser.saveButtonText=\u4FDD\u5B58
-FileChooser.saveButtonMnemonic=83
-FileChooser.openButtonText=\u6253\u5F00
-FileChooser.openButtonMnemonic=79
-FileChooser.saveDialogTitleText=\u4FDD\u5B58
-FileChooser.openDialogTitleText=\u6253\u5F00
-FileChooser.updateButtonText=\u66F4\u65B0(U)
-FileChooser.updateButtonMnemonic=85
-FileChooser.helpButtonText=\u5E2E\u52A9(H)
-FileChooser.helpButtonMnemonic=72
-FileChooser.directoryOpenButtonText=\u6253\u5F00(O)
-FileChooser.directoryOpenButtonMnemonic=79
-
-# File Size Units
-FileChooser.fileSizeKiloBytes={0} KB
-FileChooser.fileSizeMegaBytes={0} MB
-FileChooser.fileSizeGigaBytes={0} GB
-
-# These strings are platform dependent not look and feel dependent.
-FileChooser.win32.newFolder=\u65B0\u5EFA\u6587\u4EF6\u5939
-FileChooser.win32.newFolder.subsequent=\u65B0\u5EFA\u6587\u4EF6\u5939 ({0})
-FileChooser.other.newFolder=NewFolder
-FileChooser.other.newFolder.subsequent=NewFolder.{0}
-
-
-## file chooser tooltips ###
-FileChooser.cancelButtonToolTipText=\u4E2D\u6B62\u6587\u4EF6\u9009\u62E9\u5668\u5BF9\u8BDD\u6846
-FileChooser.saveButtonToolTipText=\u4FDD\u5B58\u6240\u9009\u6587\u4EF6
-FileChooser.openButtonToolTipText=\u6253\u5F00\u6240\u9009\u6587\u4EF6
-FileChooser.updateButtonToolTipText=\u66F4\u65B0\u76EE\u5F55\u5217\u8868
-FileChooser.helpButtonToolTipText=FileChooser \u5E2E\u52A9
-FileChooser.directoryOpenButtonToolTipText=\u6253\u5F00\u9009\u62E9\u7684\u76EE\u5F55
-
-FileChooser.filesListAccessibleName=Files List
-FileChooser.filesDetailsAccessibleName=Files Details
-
-############ COLOR CHOOSER STRINGS #############
-ColorChooser.previewText=\u9884\u89C8
-ColorChooser.okText=\u786E\u5B9A
-ColorChooser.cancelText=\u53D6\u6D88
-ColorChooser.resetText=\u91CD\u7F6E(R)
-# VK_XXX constant for 'ColorChooser.resetText' button to make mnemonic
-ColorChooser.resetMnemonic=82
-ColorChooser.sampleText=\u793A\u4F8B\u6587\u672C  \u793A\u4F8B\u6587\u672C
-ColorChooser.swatchesNameText=\u793A\u4F8B(S)
-ColorChooser.swatchesMnemonic=83
-ColorChooser.swatchesRecentText=\u6700\u8FD1:
-# Each of the ColorChooser types can define a mnemonic, as a KeyEvent.VK_XXX
-# constant, and an index into the text to render the mnemonic as. The
-# mnemonic is xxxMnemonic and the index of the character to underline is
-# xxxDisplayedMnemonicIndex.
-ColorChooser.hsvNameText=HSV
-ColorChooser.hsvMnemonic=72
-ColorChooser.hsvHueText=\u8272\u8C03
-ColorChooser.hsvSaturationText=\u9971\u548C\u5EA6
-ColorChooser.hsvValueText=\u503C
-ColorChooser.hsvTransparencyText=\u900F\u660E\u5EA6
-ColorChooser.hslNameText=HSL
-ColorChooser.hslMnemonic=76
-ColorChooser.hslHueText=\u8272\u8C03
-ColorChooser.hslSaturationText=\u9971\u548C\u5EA6
-ColorChooser.hslLightnessText=\u4EAE\u5EA6
-ColorChooser.hslTransparencyText=\u900F\u660E\u5EA6
-ColorChooser.rgbNameText=RGB
-ColorChooser.rgbMnemonic=71
-ColorChooser.rgbRedText=\u7EA2\u8272
-ColorChooser.rgbRedMnemonic=68
-ColorChooser.rgbGreenText=\u7EFF\u8272
-ColorChooser.rgbGreenMnemonic=78
-ColorChooser.rgbBlueText=\u84DD\u8272
-ColorChooser.rgbBlueMnemonic=66
-ColorChooser.rgbAlphaText=Alpha
-ColorChooser.rgbHexCodeText=\u989C\u8272\u4EE3\u7801(C)
-ColorChooser.rgbHexCodeMnemonic=67
-ColorChooser.cmykNameText=CMYK
-ColorChooser.cmykMnemonic=77
-ColorChooser.cmykCyanText=\u9752\u8272
-ColorChooser.cmykMagentaText=\u7D2B\u7EA2\u8272
-ColorChooser.cmykYellowText=\u9EC4\u8272
-ColorChooser.cmykBlackText=\u9ED1\u8272
-ColorChooser.cmykAlphaText=Alpha
-
-############ OPTION PANE STRINGS #############
-# Mnemonic keys correspond to KeyEvent.VK_XXX constant
-# We only define mnemonics for YES/NO, but for completeness you can
-# define mnemonics for any of the buttons.
-OptionPane.yesButtonText=\u662F(Y)
-OptionPane.yesButtonMnemonic=89
-OptionPane.noButtonText=\u5426(N)
-OptionPane.noButtonMnemonic=78
-OptionPane.okButtonText=\u786E\u5B9A
-OptionPane.okButtonMnemonic=O
-OptionPane.cancelButtonText=\u53D6\u6D88
-OptionPane.cancelButtonMnemonic=0
-OptionPane.titleText=\u9009\u62E9\u4E00\u4E2A\u9009\u9879
-# Title for the dialog for the showInputDialog methods. Only used if
-# the developer uses one of the variants that doesn't take a title.
-OptionPane.inputDialogTitle=\u8F93\u5165
-# Title for the dialog for the showMessageDialog methods. Only used if
-# the developer uses one of the variants that doesn't take a title.
-OptionPane.messageDialogTitle=\u6D88\u606F
-
-############ Printing Dialog Strings ############
-PrintingDialog.titleProgressText=\u6253\u5370
-PrintingDialog.titleAbortingText=\u6253\u5370 (\u6B63\u5728\u4E2D\u6B62)
-
-PrintingDialog.contentInitialText=\u6B63\u5728\u8FDB\u884C\u6253\u5370...
-
-# The following string will be formatted by a MessageFormat
-# and {0} will be replaced by page number being printed
-PrintingDialog.contentProgressText=\u5DF2\u6253\u5370\u9875 {0}...
-
-PrintingDialog.contentAbortingText=\u6B63\u5728\u4E2D\u6B62\u6253\u5370...
-
-PrintingDialog.abortButtonText=\u4E2D\u6B62(A)
-PrintingDialog.abortButtonMnemonic=65
-PrintingDialog.abortButtonDisplayedMnemonicIndex=0
-PrintingDialog.abortButtonToolTipText=\u4E2D\u6B62\u6253\u5370
-
-############ Internal Frame Strings ############
-InternalFrame.iconButtonToolTip=\u6700\u5C0F\u5316
-InternalFrame.maxButtonToolTip=\u6700\u5927\u5316
-InternalFrame.restoreButtonToolTip=\u8FD8\u539F
-InternalFrame.closeButtonToolTip=\u5173\u95ED
-
-############ Internal Frame Title Pane Strings ############
-InternalFrameTitlePane.restoreButtonText=\u8FD8\u539F
-InternalFrameTitlePane.moveButtonText=\u79FB\u52A8
-InternalFrameTitlePane.sizeButtonText=\u5927\u5C0F
-InternalFrameTitlePane.minimizeButtonText=\u6700\u5C0F\u5316
-InternalFrameTitlePane.maximizeButtonText=\u6700\u5927\u5316
-InternalFrameTitlePane.closeButtonText=\u5173\u95ED
-
-############ Text strings #############
-# Used for html forms
-FormView.submitButtonText=\u63D0\u4EA4\u67E5\u8BE2
-FormView.resetButtonText=\u91CD\u8BBE
-FormView.browseFileButtonText=\u6D4F\u89C8...
-
-############ Abstract Document Strings ############
-AbstractDocument.styleChangeText=\u6837\u5F0F\u66F4\u6539
-AbstractDocument.additionText=\u6DFB\u52A0
-AbstractDocument.deletionText=\u5220\u9664
-AbstractDocument.undoText=\u64A4\u6D88
-AbstractDocument.redoText=\u91CD\u505A
-
-############ Abstract Button Strings ############
-AbstractButton.clickText=\u5355\u51FB
-
-############ Abstract Undoable Edit Strings ############
-AbstractUndoableEdit.undoText=\u64A4\u6D88
-AbstractUndoableEdit.redoText=\u91CD\u505A
-
-############ Combo Box Strings ############
-ComboBox.togglePopupText=togglePopup
-
-############ Progress Monitor Strings ############
-ProgressMonitor.progressText=\u8FDB\u5EA6...
-
-############ Split Pane Strings ############
-SplitPane.leftButtonText=\u5DE6\u952E
-SplitPane.rightButtonText=\u53F3\u952E
-# Used for Isindex
-IsindexView.prompt=\u8FD9\u662F\u53EF\u641C\u7D22\u7D22\u5F15\u3002\u8BF7\u8F93\u5165\u641C\u7D22\u5173\u952E\u5B57:
-
-############ InternalFrameTitlePane Strings ############
-InternalFrameTitlePane.iconifyButtonAccessibleName=\u56FE\u6807\u5316
-InternalFrameTitlePane.maximizeButtonAccessibleName=\u6700\u5927\u5316
-InternalFrameTitlePane.closeButtonAccessibleName=\u5173\u95ED
-
+# This properties file is used to create a PropertyResourceBundle
+# It contains Locale specific strings used in Swing
+# Currently, the following components need this for support:
+#
+#    ColorChooser
+#    FileChooser
+#    OptionPane
+#
+# When this file is read in, the strings are put into the
+# defaults table.  This is an implementation detail of the current
+# workings of Swing.  DO NOT DEPEND ON THIS.
+# This may change in future versions of Swing as we improve localization
+# support.
+#
+#                        MNEMONIC NOTE:
+# Many of strings in this file are used by widgets that have a
+# mnemonic, for example:
+#   ColorChooser.rgbNameTextAndMnemonic=R&GB
+# Indicates that the tab in the ColorChooser for RGB colors will have
+# the text 'RGB', further the mnemonic character will be 'g' and that
+# a decoration will be provided under the 'G'. This will typically
+# look like:  RGB
+#              -
+#
+# One important thing to remember is that the mnemonic MUST exist in
+# the String, if it does not exist you should add text that makes it
+# exist. This will typically take the form 'XXXX (M)' where M is the
+# character for the mnemonic.
+#
+# @author Steve Wilson
+
+############ FILE CHOOSER STRINGS #############
+FileChooser.fileDescription.textAndMnemonic=\u666E\u901A\u7684\u6587\u4EF6
+FileChooser.directoryDescription.textAndMnemonic=\u76EE\u5F55
+FileChooser.newFolderError.textAndMnemonic=\u521B\u5EFA\u65B0\u7684\u6587\u4EF6\u5939\u65F6\u51FA\u9519
+FileChooser.newFolderErrorSeparator= :
+FileChooser.newFolderParentDoesntExistTitle.textAndMnemonic=\u65E0\u6CD5\u521B\u5EFA\u6587\u4EF6\u5939
+FileChooser.newFolderParentDoesntExist.textAndMnemonic=\u65E0\u6CD5\u521B\u5EFA\u6587\u4EF6\u5939\u3002\n\n\u7CFB\u7EDF\u627E\u4E0D\u5230\u6307\u5B9A\u7684\u8DEF\u5F84\u3002
+FileChooser.renameErrorTitle.textAndMnemonic=\u91CD\u547D\u540D\u6587\u4EF6\u6216\u6587\u4EF6\u5939\u65F6\u51FA\u9519
+FileChooser.renameError.textAndMnemonic=\u65E0\u6CD5\u91CD\u547D\u540D{0}
+FileChooser.renameErrorFileExists.textAndMnemonic=\u65E0\u6CD5\u91CD\u547D\u540D{0}: \u5DF2\u5B58\u5728\u5177\u6709\u6240\u6307\u5B9A\u540D\u79F0\u7684\u6587\u4EF6\u3002\u8BF7\u6307\u5B9A\u5176\u4ED6\u6587\u4EF6\u540D\u3002
+FileChooser.acceptAllFileFilter.textAndMnemonic=\u6240\u6709\u6587\u4EF6
+FileChooser.cancelButton.textAndMnemonic=\u53D6\u6D88(&C)
+FileChooser.saveButton.textAndMnemonic=\u4FDD\u5B58(&S)
+FileChooser.openButton.textAndMnemonic=\u6253\u5F00(&O)
+FileChooser.saveDialogTitle.textAndMnemonic=\u4FDD\u5B58
+FileChooser.openDialogTitle.textAndMnemonic=\u6253\u5F00
+FileChooser.updateButton.textAndMnemonic=\u66F4\u65B0(&U)
+FileChooser.helpButton.textAndMnemonic=\u5E2E\u52A9(&H)
+FileChooser.directoryOpenButton.textAndMnemonic=\u6253\u5F00(&O)
+
+# File Size Units
+FileChooser.fileSizeKiloBytes={0} KB
+FileChooser.fileSizeMegaBytes={0} MB
+FileChooser.fileSizeGigaBytes={0} GB
+
+# These strings are platform dependent not look and feel dependent.
+FileChooser.win32.newFolder=\u65B0\u5EFA\u6587\u4EF6\u5939
+FileChooser.win32.newFolder.subsequent=\u65B0\u5EFA\u6587\u4EF6\u5939 ({0})
+FileChooser.other.newFolder=NewFolder
+FileChooser.other.newFolder.subsequent=NewFolder.{0}
+
+
+## file chooser tooltips ###
+FileChooser.cancelButtonToolTip.textAndMnemonic=\u4E2D\u6B62\u6587\u4EF6\u9009\u62E9\u5668\u5BF9\u8BDD\u6846
+FileChooser.saveButtonToolTip.textAndMnemonic=\u4FDD\u5B58\u6240\u9009\u6587\u4EF6
+FileChooser.openButtonToolTip.textAndMnemonic=\u6253\u5F00\u6240\u9009\u6587\u4EF6
+FileChooser.updateButtonToolTip.textAndMnemonic=\u66F4\u65B0\u76EE\u5F55\u5217\u8868
+FileChooser.helpButtonToolTip.textAndMnemonic=FileChooser \u5E2E\u52A9
+FileChooser.directoryOpenButtonToolTip.textAndMnemonic=\u6253\u5F00\u9009\u62E9\u7684\u76EE\u5F55
+
+FileChooser.filesListAccessibleName=Files List
+FileChooser.filesDetailsAccessibleName=Files Details
+
+############ COLOR CHOOSER STRINGS #############
+ColorChooser.preview.textAndMnemonic=\u9884\u89C8
+ColorChooser.ok.textAndMnemonic=\u786E\u5B9A
+ColorChooser.cancel.textAndMnemonic=\u53D6\u6D88
+ColorChooser.reset.textAndMnemonic=\u91CD\u7F6E(&R)
+ColorChooser.sample.textAndMnemonic=\u793A\u4F8B\u6587\u672C  \u793A\u4F8B\u6587\u672C
+ColorChooser.swatches.textAndMnemonic=\u793A\u4F8B(&S)
+ColorChooser.swatchesRecent.textAndMnemonic=\u6700\u8FD1:
+ColorChooser.hsv.textAndMnemonic=&HSV
+ColorChooser.hsvHue.textAndMnemonic=\u8272\u8C03
+ColorChooser.hsvSaturation.textAndMnemonic=\u9971\u548C\u5EA6
+ColorChooser.hsvValue.textAndMnemonic=\u503C
+ColorChooser.hsvTransparency.textAndMnemonic=\u900F\u660E\u5EA6
+ColorChooser.hsl.textAndMnemonic=HS&L
+ColorChooser.hslHue.textAndMnemonic=\u8272\u8C03
+ColorChooser.hslSaturation.textAndMnemonic=\u9971\u548C\u5EA6
+ColorChooser.hslLightness.textAndMnemonic=\u4EAE\u5EA6
+ColorChooser.hslTransparency.textAndMnemonic=\u900F\u660E\u5EA6
+ColorChooser.rgb.textAndMnemonic=R&GB
+ColorChooser.rgbRed.textAndMnemonic=\u7EA2\u8272(&D)
+ColorChooser.rgbGreen.textAndMnemonic=\u7EFF\u8272(&N)
+ColorChooser.rgbBlue.textAndMnemonic=\u84DD\u8272(&B)
+ColorChooser.rgbAlpha.textAndMnemonic=Alpha
+ColorChooser.rgbHexCode.textAndMnemonic=\u989C\u8272\u4EE3\u7801(&C)
+ColorChooser.cmyk.textAndMnemonic=C&MYK
+ColorChooser.cmykCyan.textAndMnemonic=\u9752\u8272
+ColorChooser.cmykMagenta.textAndMnemonic=\u7D2B\u7EA2\u8272
+ColorChooser.cmykYellow.textAndMnemonic=\u9EC4\u8272
+ColorChooser.cmykBlack.textAndMnemonic=\u9ED1\u8272
+ColorChooser.cmykAlpha.textAndMnemonic=Alpha
+
+############ OPTION PANE STRINGS #############
+# We only define mnemonics for YES/NO, but for completeness you can
+# define mnemonics for any of the buttons.
+OptionPane.yesButton.textAndMnemonic=\u662F(&Y)
+OptionPane.noButton.textAndMnemonic=\u5426(&N)
+OptionPane.okButton.textAndMnemonic=\u786E\u5B9A(&O)
+OptionPane.cancelButton.textAndMnemonic=\u53D6\u6D88
+OptionPane.title.textAndMnemonic=\u9009\u62E9\u4E00\u4E2A\u9009\u9879
+# Title for the dialog for the showInputDialog methods. Only used if
+# the developer uses one of the variants that doesn't take a title.
+OptionPane.inputDialog.titleAndMnemonic=\u8F93\u5165
+# Title for the dialog for the showMessageDialog methods. Only used if
+# the developer uses one of the variants that doesn't take a title.
+OptionPane.messageDialog.titleAndMnemonic=\u6D88\u606F
+
+############ Printing Dialog Strings ############
+PrintingDialog.titleProgress.textAndMnemonic=\u6253\u5370
+PrintingDialog.titleAborting.textAndMnemonic=\u6253\u5370 (\u6B63\u5728\u4E2D\u6B62)
+
+PrintingDialog.contentInitial.textAndMnemonic=\u6B63\u5728\u8FDB\u884C\u6253\u5370...
+
+# The following string will be formatted by a MessageFormat
+# and {0} will be replaced by page number being printed
+PrintingDialog.contentProgress.textAndMnemonic=\u5DF2\u6253\u5370\u9875 {0}...
+
+PrintingDialog.contentAborting.textAndMnemonic=\u6B63\u5728\u4E2D\u6B62\u6253\u5370...
+
+PrintingDialog.abortButton.textAndMnemonic=\u4E2D\u6B62(&A)
+PrintingDialog.abortButtonToolTip.textAndMnemonic=\u4E2D\u6B62\u6253\u5370
+
+############ Internal Frame Strings ############
+InternalFrame.iconButtonToolTip=\u6700\u5C0F\u5316
+InternalFrame.maxButtonToolTip=\u6700\u5927\u5316
+InternalFrame.restoreButtonToolTip=\u8FD8\u539F
+InternalFrame.closeButtonToolTip=\u5173\u95ED
+
+############ Internal Frame Title Pane Strings ############
+InternalFrameTitlePane.restoreButton.textAndMnemonic=\u8FD8\u539F
+InternalFrameTitlePane.moveButton.textAndMnemonic=\u79FB\u52A8
+InternalFrameTitlePane.sizeButton.textAndMnemonic=\u5927\u5C0F
+InternalFrameTitlePane.minimizeButton.textAndMnemonic=\u6700\u5C0F\u5316
+InternalFrameTitlePane.maximizeButton.textAndMnemonic=\u6700\u5927\u5316
+InternalFrameTitlePane.closeButton.textAndMnemonic=\u5173\u95ED
+
+############ Text strings #############
+# Used for html forms
+FormView.submitButton.textAndMnemonic=\u63D0\u4EA4\u67E5\u8BE2
+FormView.resetButton.textAndMnemonic=\u91CD\u8BBE
+FormView.browseFileButton.textAndMnemonic=\u6D4F\u89C8...
+
+############ Abstract Document Strings ############
+AbstractDocument.styleChange.textAndMnemonic=\u6837\u5F0F\u66F4\u6539
+AbstractDocument.addition.textAndMnemonic=\u6DFB\u52A0
+AbstractDocument.deletion.textAndMnemonic=\u5220\u9664
+AbstractDocument.undo.textAndMnemonic=\u64A4\u6D88
+AbstractDocument.redo.textAndMnemonic=\u91CD\u505A
+
+############ Abstract Button Strings ############
+AbstractButton.click.textAndMnemonic=\u5355\u51FB
+
+############ Abstract Undoable Edit Strings ############
+AbstractUndoableEdit.undo.textAndMnemonic=\u64A4\u6D88
+AbstractUndoableEdit.redo.textAndMnemonic=\u91CD\u505A
+
+############ Combo Box Strings ############
+ComboBox.togglePopup.textAndMnemonic=togglePopup
+
+############ Progress Monitor Strings ############
+ProgressMonitor.progress.textAndMnemonic=\u8FDB\u5EA6...
+
+############ Split Pane Strings ############
+SplitPane.leftButton.textAndMnemonic=\u5DE6\u952E
+SplitPane.rightButton.textAndMnemonic=\u53F3\u952E
+# Used for Isindex
+IsindexView.prompt=\u8FD9\u662F\u53EF\u641C\u7D22\u7D22\u5F15\u3002\u8BF7\u8F93\u5165\u641C\u7D22\u5173\u952E\u5B57:
+
+############ InternalFrameTitlePane Strings ############
+InternalFrameTitlePane.iconifyButtonAccessibleName=\u56FE\u6807\u5316
+InternalFrameTitlePane.maximizeButtonAccessibleName=\u6700\u5927\u5316
+InternalFrameTitlePane.closeButtonAccessibleName=\u5173\u95ED
+
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_TW.properties	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_TW.properties	Wed Jul 05 18:07:57 2017 +0200
@@ -1,229 +1,186 @@
-# This properties file is used to create a PropertyResourceBundle
-# It contains Locale specific strings used in Swing
-# Currently, the following components need this for support:
-#
-#    ColorChooser
-#    FileChooser
-#    OptionPane
-#
-# When this file is read in, the strings are put into the
-# defaults table.  This is an implementation detail of the current
-# workings of Swing.  DO NOT DEPEND ON THIS.
-# This may change in future versions of Swing as we improve localization
-# support.
-#
-#                        MNEMONIC NOTE:
-# Many of strings in this file are used by widgets that have a
-# mnemonic, for example:
-#   ColorChooser.rgbNameText=RGB
-#   ColorChooser.rgbMnemonic=71
-#   ColorChooser.rgbDisplayedMnemonicIndex=1
-# Indicates that the tab in the ColorChooser for RGB colors will have
-# the text 'RGB', further the mnemonic character will be 'g' and that
-# a decoration will be provided under the 'G'. This will typically
-# look like:  RGB
-#              -
-# 71 corresponds to the decimal value of the VK constant defined
-# in java/awt/KeyEvent.java. VK_G is defined as:
-#
-#    public static final int VK_G              = 0x47;
-#
-# 0x47 is a hex number and needs to be converted to decimal.
-# A simple way to calculate this for a-z is to add 64 to the index of
-# the letter in the alphabet. As 'a' is in the 1st letter the mnemonic
-# for 'a' is 65, 'b' is 66...
-#
-# The xxDisplayedMnemonicIndex is used to indicate the index of the
-# character that should be underlined in the String, with 0
-# corresponding to the first character in the String.
-#
-# One important thing to remember is that the mnemonic MUST exist in
-# the String, if it does not exist you should add text that makes it
-# exist. This will typically take the form 'XXXX (M)' where M is the
-# character for the mnemonic.
-#
-# @author Steve Wilson
-
-############ FILE CHOOSER STRINGS #############
-FileChooser.fileDescriptionText=\u4E00\u822C\u6A94\u6848
-FileChooser.directoryDescriptionText=\u76EE\u9304
-FileChooser.newFolderErrorText=\u5EFA\u7ACB\u65B0\u8CC7\u6599\u593E\u6642\u767C\u751F\u932F\u8AA4
-FileChooser.newFolderErrorSeparator= :
-FileChooser.newFolderParentDoesntExistTitleText=\u7121\u6CD5\u5EFA\u7ACB\u8CC7\u6599\u593E
-FileChooser.newFolderParentDoesntExistText=\u7121\u6CD5\u5EFA\u7ACB\u8CC7\u6599\u593E\u3002\n\n\u7CFB\u7D71\u627E\u4E0D\u5230\u6307\u5B9A\u7684\u8DEF\u5F91\u3002
-FileChooser.renameErrorTitleText=\u91CD\u65B0\u547D\u540D\u6A94\u6848\u6216\u8CC7\u6599\u593E\u6642\u767C\u751F\u932F\u8AA4\u3002
-FileChooser.renameErrorText=\u7121\u6CD5\u91CD\u65B0\u547D\u540D {0}
-FileChooser.renameErrorFileExistsText=\u7121\u6CD5\u91CD\u65B0\u547D\u540D {0}: \u5DF2\u7D93\u5B58\u5728\u60A8\u6240\u6307\u5B9A\u540D\u7A31\u7684\u6A94\u6848\u3002\u8ACB\u6307\u5B9A\u4E0D\u540C\u7684\u540D\u7A31\u3002
-FileChooser.acceptAllFileFilterText=\u6240\u6709\u6A94\u6848
-FileChooser.cancelButtonText=\u53D6\u6D88
-FileChooser.cancelButtonMnemonic=67
-FileChooser.saveButtonText=\u5132\u5B58
-FileChooser.saveButtonMnemonic=83
-FileChooser.openButtonText=\u958B\u555F
-FileChooser.openButtonMnemonic=79
-FileChooser.saveDialogTitleText=\u5132\u5B58
-FileChooser.openDialogTitleText=\u958B\u555F
-FileChooser.updateButtonText=\u66F4\u65B0(U)
-FileChooser.updateButtonMnemonic=85
-FileChooser.helpButtonText=\u8AAA\u660E(H)
-FileChooser.helpButtonMnemonic=72
-FileChooser.directoryOpenButtonText=\u958B\u555F(O)
-FileChooser.directoryOpenButtonMnemonic=79
-
-# File Size Units
-FileChooser.fileSizeKiloBytes={0} KB
-FileChooser.fileSizeMegaBytes={0} MB
-FileChooser.fileSizeGigaBytes={0} GB
-
-# These strings are platform dependent not look and feel dependent.
-FileChooser.win32.newFolder=\u65B0\u8CC7\u6599\u593E
-FileChooser.win32.newFolder.subsequent=\u65B0\u8CC7\u6599\u593E ({0})
-FileChooser.other.newFolder=\u65B0\u8CC7\u6599\u593E
-FileChooser.other.newFolder.subsequent=\u65B0\u8CC7\u6599\u593E.{0}
-
-
-## file chooser tooltips ###
-FileChooser.cancelButtonToolTipText=\u4E2D\u6B62\u6A94\u6848\u9078\u64C7\u5668\u5C0D\u8A71\u65B9\u584A
-FileChooser.saveButtonToolTipText=\u5132\u5B58\u9078\u53D6\u7684\u6A94\u6848
-FileChooser.openButtonToolTipText=\u958B\u555F\u9078\u53D6\u7684\u6A94\u6848
-FileChooser.updateButtonToolTipText=\u66F4\u65B0\u76EE\u9304\u6E05\u55AE
-FileChooser.helpButtonToolTipText=\u300C\u6A94\u6848\u9078\u64C7\u5668\u300D\u8AAA\u660E
-FileChooser.directoryOpenButtonToolTipText=\u958B\u555F\u9078\u53D6\u7684\u76EE\u9304
-
-FileChooser.filesListAccessibleName=Files List
-FileChooser.filesDetailsAccessibleName=Files Details
-
-############ COLOR CHOOSER STRINGS #############
-ColorChooser.previewText=\u9810\u89BD
-ColorChooser.okText=\u78BA\u5B9A
-ColorChooser.cancelText=\u53D6\u6D88
-ColorChooser.resetText=\u91CD\u8A2D(R)
-# VK_XXX constant for 'ColorChooser.resetText' button to make mnemonic
-ColorChooser.resetMnemonic=82
-ColorChooser.sampleText=\u7BC4\u4F8B\u6587\u5B57  \u7BC4\u4F8B\u6587\u5B57
-ColorChooser.swatchesNameText=\u8ABF\u8272\u677F(S)
-ColorChooser.swatchesMnemonic=83
-ColorChooser.swatchesRecentText=\u6700\u65B0\u9078\u64C7:
-# Each of the ColorChooser types can define a mnemonic, as a KeyEvent.VK_XXX
-# constant, and an index into the text to render the mnemonic as. The
-# mnemonic is xxxMnemonic and the index of the character to underline is
-# xxxDisplayedMnemonicIndex.
-ColorChooser.hsvNameText=HSV
-ColorChooser.hsvMnemonic=72
-ColorChooser.hsvHueText=\u8272\u8ABF
-ColorChooser.hsvSaturationText=\u5F69\u5EA6
-ColorChooser.hsvValueText=\u6578\u503C
-ColorChooser.hsvTransparencyText=\u900F\u660E\u5EA6
-ColorChooser.hslNameText=HSL
-ColorChooser.hslMnemonic=76
-ColorChooser.hslHueText=\u8272\u8ABF
-ColorChooser.hslSaturationText=\u5F69\u5EA6
-ColorChooser.hslLightnessText=\u4EAE\u5EA6
-ColorChooser.hslTransparencyText=\u900F\u660E\u5EA6
-ColorChooser.rgbNameText=RGB
-ColorChooser.rgbMnemonic=71
-ColorChooser.rgbRedText=\u7D05
-ColorChooser.rgbRedMnemonic=68
-ColorChooser.rgbGreenText=\u7DA0
-ColorChooser.rgbGreenMnemonic=78
-ColorChooser.rgbBlueText=\u85CD
-ColorChooser.rgbBlueMnemonic=66
-ColorChooser.rgbAlphaText=Alpha
-ColorChooser.rgbHexCodeText=\u984F\u8272\u4EE3\u78BC(C)
-ColorChooser.rgbHexCodeMnemonic=67
-ColorChooser.cmykNameText=CMYK
-ColorChooser.cmykMnemonic=77
-ColorChooser.cmykCyanText=\u85CD\u7DA0\u8272
-ColorChooser.cmykMagentaText=\u7D2B\u7D05\u8272
-ColorChooser.cmykYellowText=\u9EC3\u8272
-ColorChooser.cmykBlackText=\u9ED1\u8272
-ColorChooser.cmykAlphaText=Alpha
-
-############ OPTION PANE STRINGS #############
-# Mnemonic keys correspond to KeyEvent.VK_XXX constant
-# We only define mnemonics for YES/NO, but for completeness you can
-# define mnemonics for any of the buttons.
-OptionPane.yesButtonText=\u662F(Y)
-OptionPane.yesButtonMnemonic=89
-OptionPane.noButtonText=\u5426(N)
-OptionPane.noButtonMnemonic=78
-OptionPane.okButtonText=\u78BA\u5B9A
-OptionPane.okButtonMnemonic=O
-OptionPane.cancelButtonText=\u53D6\u6D88
-OptionPane.cancelButtonMnemonic=0
-OptionPane.titleText=\u9078\u53D6\u4E00\u500B\u9078\u9805
-# Title for the dialog for the showInputDialog methods. Only used if
-# the developer uses one of the variants that doesn't take a title.
-OptionPane.inputDialogTitle=\u8F38\u5165
-# Title for the dialog for the showMessageDialog methods. Only used if
-# the developer uses one of the variants that doesn't take a title.
-OptionPane.messageDialogTitle=\u8A0A\u606F
-
-############ Printing Dialog Strings ############
-PrintingDialog.titleProgressText=\u5217\u5370
-PrintingDialog.titleAbortingText=\u5217\u5370 (\u4E2D\u6B62)
-
-PrintingDialog.contentInitialText=\u6B63\u5728\u5217\u5370...
-
-# The following string will be formatted by a MessageFormat
-# and {0} will be replaced by page number being printed
-PrintingDialog.contentProgressText=\u5DF2\u5217\u5370\u7684\u9801\u9762 {0}...
-
-PrintingDialog.contentAbortingText=\u6B63\u5728\u4E2D\u6B62\u5217\u5370...
-
-PrintingDialog.abortButtonText=\u4E2D\u6B62(A)
-PrintingDialog.abortButtonMnemonic=65
-PrintingDialog.abortButtonDisplayedMnemonicIndex=0
-PrintingDialog.abortButtonToolTipText=\u4E2D\u6B62\u5217\u5370
-
-############ Internal Frame Strings ############
-InternalFrame.iconButtonToolTip=\u6700\u5C0F\u5316
-InternalFrame.maxButtonToolTip=\u6700\u5927\u5316
-InternalFrame.restoreButtonToolTip=\u5FA9\u539F
-InternalFrame.closeButtonToolTip=\u95DC\u9589
-
-############ Internal Frame Title Pane Strings ############
-InternalFrameTitlePane.restoreButtonText=\u5FA9\u539F
-InternalFrameTitlePane.moveButtonText=\u79FB\u52D5
-InternalFrameTitlePane.sizeButtonText=\u5927\u5C0F
-InternalFrameTitlePane.minimizeButtonText=\u6700\u5C0F\u5316
-InternalFrameTitlePane.maximizeButtonText=\u6700\u5927\u5316
-InternalFrameTitlePane.closeButtonText=\u95DC\u9589
-
-############ Text strings #############
-# Used for html forms
-FormView.submitButtonText=\u9001\u51FA\u67E5\u8A62
-FormView.resetButtonText=\u91CD\u8A2D
-FormView.browseFileButtonText=\u700F\u89BD...
-
-############ Abstract Document Strings ############
-AbstractDocument.styleChangeText=\u6A23\u5F0F\u8B8A\u66F4
-AbstractDocument.additionText=\u9644\u52A0
-AbstractDocument.deletionText=\u522A\u9664
-AbstractDocument.undoText=\u9084\u539F
-AbstractDocument.redoText=\u91CD\u505A
-
-############ Abstract Button Strings ############
-AbstractButton.clickText=\u6309\u4E00\u4E0B
-
-############ Abstract Undoable Edit Strings ############
-AbstractUndoableEdit.undoText=\u9084\u539F
-AbstractUndoableEdit.redoText=\u91CD\u505A
-
-############ Combo Box Strings ############
-ComboBox.togglePopupText=\u5207\u63DB\u5373\u73FE\u5F0F\u8996\u7A97
-
-############ Progress Monitor Strings ############
-ProgressMonitor.progressText=\u9032\u5EA6...
-
-############ Split Pane Strings ############
-SplitPane.leftButtonText=\u5DE6\u6309\u9215
-SplitPane.rightButtonText=\u53F3\u6309\u9215
-# Used for Isindex
-IsindexView.prompt=\u9019\u662F\u4E00\u500B\u53EF\u641C\u5C0B\u7684\u7D22\u5F15\u3002\u8F38\u5165\u641C\u5C0B\u95DC\u9375\u5B57:
-
-############ InternalFrameTitlePane Strings ############
-InternalFrameTitlePane.iconifyButtonAccessibleName=\u5716\u793A\u5316
-InternalFrameTitlePane.maximizeButtonAccessibleName=\u6700\u5927\u5316
-InternalFrameTitlePane.closeButtonAccessibleName=\u95DC\u9589
-
+# This properties file is used to create a PropertyResourceBundle
+# It contains Locale specific strings used in Swing
+# Currently, the following components need this for support:
+#
+#    ColorChooser
+#    FileChooser
+#    OptionPane
+#
+# When this file is read in, the strings are put into the
+# defaults table.  This is an implementation detail of the current
+# workings of Swing.  DO NOT DEPEND ON THIS.
+# This may change in future versions of Swing as we improve localization
+# support.
+#
+#                        MNEMONIC NOTE:
+# Many of strings in this file are used by widgets that have a
+# mnemonic, for example:
+#   ColorChooser.rgbNameTextAndMnemonic=R&GB
+# Indicates that the tab in the ColorChooser for RGB colors will have
+# the text 'RGB', further the mnemonic character will be 'g' and that
+# a decoration will be provided under the 'G'. This will typically
+# look like:  RGB
+#              -
+#
+# One important thing to remember is that the mnemonic MUST exist in
+# the String, if it does not exist you should add text that makes it
+# exist. This will typically take the form 'XXXX (M)' where M is the
+# character for the mnemonic.
+#
+# @author Steve Wilson
+
+############ FILE CHOOSER STRINGS #############
+FileChooser.fileDescription.textAndMnemonic=\u4E00\u822C\u6A94\u6848
+FileChooser.directoryDescription.textAndMnemonic=\u76EE\u9304
+FileChooser.newFolderError.textAndMnemonic=\u5EFA\u7ACB\u65B0\u8CC7\u6599\u593E\u6642\u767C\u751F\u932F\u8AA4
+FileChooser.newFolderErrorSeparator= :
+FileChooser.newFolderParentDoesntExistTitle.textAndMnemonic=\u7121\u6CD5\u5EFA\u7ACB\u8CC7\u6599\u593E
+FileChooser.newFolderParentDoesntExist.textAndMnemonic=\u7121\u6CD5\u5EFA\u7ACB\u8CC7\u6599\u593E\u3002\n\n\u7CFB\u7D71\u627E\u4E0D\u5230\u6307\u5B9A\u7684\u8DEF\u5F91\u3002
+FileChooser.renameErrorTitle.textAndMnemonic=\u91CD\u65B0\u547D\u540D\u6A94\u6848\u6216\u8CC7\u6599\u593E\u6642\u767C\u751F\u932F\u8AA4\u3002
+FileChooser.renameError.textAndMnemonic=\u7121\u6CD5\u91CD\u65B0\u547D\u540D {0}
+FileChooser.renameErrorFileExists.textAndMnemonic=\u7121\u6CD5\u91CD\u65B0\u547D\u540D {0}: \u5DF2\u7D93\u5B58\u5728\u60A8\u6240\u6307\u5B9A\u540D\u7A31\u7684\u6A94\u6848\u3002\u8ACB\u6307\u5B9A\u4E0D\u540C\u7684\u540D\u7A31\u3002
+FileChooser.acceptAllFileFilter.textAndMnemonic=\u6240\u6709\u6A94\u6848
+FileChooser.cancelButton.textAndMnemonic=\u53D6\u6D88(&C)
+FileChooser.saveButton.textAndMnemonic=\u5132\u5B58(&S)
+FileChooser.openButton.textAndMnemonic=\u958B\u555F(&O)
+FileChooser.saveDialogTitle.textAndMnemonic=\u5132\u5B58
+FileChooser.openDialogTitle.textAndMnemonic=\u958B\u555F
+FileChooser.updateButton.textAndMnemonic=\u66F4\u65B0(&U)
+FileChooser.helpButton.textAndMnemonic=\u8AAA\u660E(&H)
+FileChooser.directoryOpenButton.textAndMnemonic=\u958B\u555F(&O)
+
+# File Size Units
+FileChooser.fileSizeKiloBytes={0} KB
+FileChooser.fileSizeMegaBytes={0} MB
+FileChooser.fileSizeGigaBytes={0} GB
+
+# These strings are platform dependent not look and feel dependent.
+FileChooser.win32.newFolder=\u65B0\u8CC7\u6599\u593E
+FileChooser.win32.newFolder.subsequent=\u65B0\u8CC7\u6599\u593E ({0})
+FileChooser.other.newFolder=\u65B0\u8CC7\u6599\u593E
+FileChooser.other.newFolder.subsequent=\u65B0\u8CC7\u6599\u593E.{0}
+
+
+## file chooser tooltips ###
+FileChooser.cancelButtonToolTip.textAndMnemonic=\u4E2D\u6B62\u6A94\u6848\u9078\u64C7\u5668\u5C0D\u8A71\u65B9\u584A
+FileChooser.saveButtonToolTip.textAndMnemonic=\u5132\u5B58\u9078\u53D6\u7684\u6A94\u6848
+FileChooser.openButtonToolTip.textAndMnemonic=\u958B\u555F\u9078\u53D6\u7684\u6A94\u6848
+FileChooser.updateButtonToolTip.textAndMnemonic=\u66F4\u65B0\u76EE\u9304\u6E05\u55AE
+FileChooser.helpButtonToolTip.textAndMnemonic=\u300C\u6A94\u6848\u9078\u64C7\u5668\u300D\u8AAA\u660E
+FileChooser.directoryOpenButtonToolTip.textAndMnemonic=\u958B\u555F\u9078\u53D6\u7684\u76EE\u9304
+
+FileChooser.filesListAccessibleName=Files List
+FileChooser.filesDetailsAccessibleName=Files Details
+
+############ COLOR CHOOSER STRINGS #############
+ColorChooser.preview.textAndMnemonic=\u9810\u89BD
+ColorChooser.ok.textAndMnemonic=\u78BA\u5B9A
+ColorChooser.cancel.textAndMnemonic=\u53D6\u6D88
+ColorChooser.reset.textAndMnemonic=\u91CD\u8A2D(&R)
+ColorChooser.sample.textAndMnemonic=\u7BC4\u4F8B\u6587\u5B57  \u7BC4\u4F8B\u6587\u5B57
+ColorChooser.swatches.textAndMnemonic=\u8ABF\u8272\u677F(&S)
+ColorChooser.swatchesRecent.textAndMnemonic=\u6700\u65B0\u9078\u64C7:
+ColorChooser.hsv.textAndMnemonic=&HSV
+ColorChooser.hsvHue.textAndMnemonic=\u8272\u8ABF
+ColorChooser.hsvSaturation.textAndMnemonic=\u5F69\u5EA6
+ColorChooser.hsvValue.textAndMnemonic=\u6578\u503C
+ColorChooser.hsvTransparency.textAndMnemonic=\u900F\u660E\u5EA6
+ColorChooser.hsl.textAndMnemonic=HS&L
+ColorChooser.hslHue.textAndMnemonic=\u8272\u8ABF
+ColorChooser.hslSaturation.textAndMnemonic=\u5F69\u5EA6
+ColorChooser.hslLightness.textAndMnemonic=\u4EAE\u5EA6
+ColorChooser.hslTransparency.textAndMnemonic=\u900F\u660E\u5EA6
+ColorChooser.rgb.textAndMnemonic=R&GB
+ColorChooser.rgbRed.textAndMnemonic=\u7D05(&D)
+ColorChooser.rgbGreen.textAndMnemonic=\u7DA0(&N)
+ColorChooser.rgbBlue.textAndMnemonic=\u85CD(&B)
+ColorChooser.rgbAlpha.textAndMnemonic=Alpha
+ColorChooser.rgbHexCode.textAndMnemonic=\u984F\u8272\u4EE3\u78BC(&C)
+ColorChooser.cmyk.textAndMnemonic=C&MYK
+ColorChooser.cmykCyan.textAndMnemonic=\u85CD\u7DA0\u8272
+ColorChooser.cmykMagenta.textAndMnemonic=\u7D2B\u7D05\u8272
+ColorChooser.cmykYellow.textAndMnemonic=\u9EC3\u8272
+ColorChooser.cmykBlack.textAndMnemonic=\u9ED1\u8272
+ColorChooser.cmykAlpha.textAndMnemonic=Alpha
+
+############ OPTION PANE STRINGS #############
+# We only define mnemonics for YES/NO, but for completeness you can
+# define mnemonics for any of the buttons.
+OptionPane.yesButton.textAndMnemonic=\u662F(&Y)
+OptionPane.noButton.textAndMnemonic=\u5426(&N)
+OptionPane.okButton.textAndMnemonic=\u78BA\u5B9A(&O)
+OptionPane.cancelButton.textAndMnemonic=\u53D6\u6D88
+OptionPane.title.textAndMnemonic=\u9078\u53D6\u4E00\u500B\u9078\u9805
+# Title for the dialog for the showInputDialog methods. Only used if
+# the developer uses one of the variants that doesn't take a title.
+OptionPane.inputDialog.titleAndMnemonic=\u8F38\u5165
+# Title for the dialog for the showMessageDialog methods. Only used if
+# the developer uses one of the variants that doesn't take a title.
+OptionPane.messageDialog.titleAndMnemonic=\u8A0A\u606F
+
+############ Printing Dialog Strings ############
+PrintingDialog.titleProgress.textAndMnemonic=\u5217\u5370
+PrintingDialog.titleAborting.textAndMnemonic=\u5217\u5370 (\u4E2D\u6B62)
+
+PrintingDialog.contentInitial.textAndMnemonic=\u6B63\u5728\u5217\u5370...
+
+# The following string will be formatted by a MessageFormat
+# and {0} will be replaced by page number being printed
+PrintingDialog.contentProgress.textAndMnemonic=\u5DF2\u5217\u5370\u7684\u9801\u9762 {0}...
+
+PrintingDialog.contentAborting.textAndMnemonic=\u6B63\u5728\u4E2D\u6B62\u5217\u5370...
+
+PrintingDialog.abortButton.textAndMnemonic=\u4E2D\u6B62(&A)
+PrintingDialog.abortButtonToolTip.textAndMnemonic=\u4E2D\u6B62\u5217\u5370
+
+############ Internal Frame Strings ############
+InternalFrame.iconButtonToolTip=\u6700\u5C0F\u5316
+InternalFrame.maxButtonToolTip=\u6700\u5927\u5316
+InternalFrame.restoreButtonToolTip=\u5FA9\u539F
+InternalFrame.closeButtonToolTip=\u95DC\u9589
+
+############ Internal Frame Title Pane Strings ############
+InternalFrameTitlePane.restoreButton.textAndMnemonic=\u5FA9\u539F
+InternalFrameTitlePane.moveButton.textAndMnemonic=\u79FB\u52D5
+InternalFrameTitlePane.sizeButton.textAndMnemonic=\u5927\u5C0F
+InternalFrameTitlePane.minimizeButton.textAndMnemonic=\u6700\u5C0F\u5316
+InternalFrameTitlePane.maximizeButton.textAndMnemonic=\u6700\u5927\u5316
+InternalFrameTitlePane.closeButton.textAndMnemonic=\u95DC\u9589
+
+############ Text strings #############
+# Used for html forms
+FormView.submitButton.textAndMnemonic=\u9001\u51FA\u67E5\u8A62
+FormView.resetButton.textAndMnemonic=\u91CD\u8A2D
+FormView.browseFileButton.textAndMnemonic=\u700F\u89BD...
+
+############ Abstract Document Strings ############
+AbstractDocument.styleChange.textAndMnemonic=\u6A23\u5F0F\u8B8A\u66F4
+AbstractDocument.addition.textAndMnemonic=\u9644\u52A0
+AbstractDocument.deletion.textAndMnemonic=\u522A\u9664
+AbstractDocument.undo.textAndMnemonic=\u9084\u539F
+AbstractDocument.redo.textAndMnemonic=\u91CD\u505A
+
+############ Abstract Button Strings ############
+AbstractButton.click.textAndMnemonic=\u6309\u4E00\u4E0B
+
+############ Abstract Undoable Edit Strings ############
+AbstractUndoableEdit.undo.textAndMnemonic=\u9084\u539F
+AbstractUndoableEdit.redo.textAndMnemonic=\u91CD\u505A
+
+############ Combo Box Strings ############
+ComboBox.togglePopup.textAndMnemonic=\u5207\u63DB\u5373\u73FE\u5F0F\u8996\u7A97
+
+############ Progress Monitor Strings ############
+ProgressMonitor.progress.textAndMnemonic=\u9032\u5EA6...
+
+############ Split Pane Strings ############
+SplitPane.leftButton.textAndMnemonic=\u5DE6\u6309\u9215
+SplitPane.rightButton.textAndMnemonic=\u53F3\u6309\u9215
+# Used for Isindex
+IsindexView.prompt=\u9019\u662F\u4E00\u500B\u53EF\u641C\u5C0B\u7684\u7D22\u5F15\u3002\u8F38\u5165\u641C\u5C0B\u95DC\u9375\u5B57:
+
+############ InternalFrameTitlePane Strings ############
+InternalFrameTitlePane.iconifyButtonAccessibleName=\u5716\u793A\u5316
+InternalFrameTitlePane.maximizeButtonAccessibleName=\u6700\u5927\u5316
+InternalFrameTitlePane.closeButtonAccessibleName=\u95DC\u9589
+
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal.properties	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal.properties	Wed Jul 05 18:07:57 2017 +0200
@@ -1,60 +1,51 @@
-# This properties file is used to create a PropertyResourceBundle
-# It contains Locale specific strings used be the Metal Look and Feel.
-# Currently, the following components need this for support:
-#
-#    FileChooser
-#
-# When this file is read in, the strings are put into the 
-# defaults table.  This is an implementation detail of the current
-# workings of Swing.  DO NOT DEPEND ON THIS.  
-# This may change in future versions of Swing as we improve localization 
-# support.
-#
-# Refer to the note in basic.properties for a description as to what
-# the mnemonics correspond to and how to calculate them.
-#
-# @author Steve Wilson
-
-
-############ FILE CHOOSER STRINGS #############
-
-FileChooser.lookInLabelText=Look In:
-FileChooser.lookInLabelMnemonic=73
-FileChooser.saveInLabelText=Save In:
-FileChooser.fileNameLabelText=File Name:
-FileChooser.fileNameLabelMnemonic=78
-FileChooser.folderNameLabelText=Folder name:
-FileChooser.folderNameLabelMnemonic=78
-FileChooser.filesOfTypeLabelText=Files of Type:
-FileChooser.filesOfTypeLabelMnemonic=84
-FileChooser.upFolderToolTipText=Up One Level
-FileChooser.upFolderAccessibleName=Up
-FileChooser.homeFolderToolTipText=Home
-FileChooser.homeFolderAccessibleName=Home
-FileChooser.newFolderToolTipText=Create New Folder
-FileChooser.newFolderAccessibleName=New Folder
-FileChooser.newFolderActionLabelText=New Folder
-FileChooser.listViewButtonToolTipText=List
-FileChooser.listViewButtonAccessibleName=List
-FileChooser.listViewActionLabelText=List
-FileChooser.detailsViewButtonToolTipText=Details
-FileChooser.detailsViewButtonAccessibleName=Details
-FileChooser.detailsViewActionLabelText=Details
-FileChooser.refreshActionLabelText=Refresh
-FileChooser.viewMenuLabelText=View
-FileChooser.fileNameHeaderText=Name
-FileChooser.fileSizeHeaderText=Size
-FileChooser.fileTypeHeaderText=Type
-FileChooser.fileDateHeaderText=Modified
-FileChooser.fileAttrHeaderText=Attributes
-
-############ Used by MetalTitlePane if rendering window decorations############
-# All mnemonics are KeyEvent.VK_XXX as integers
-MetalTitlePane.restoreTitle=Restore
-MetalTitlePane.restoreMnemonic=82
-MetalTitlePane.iconifyTitle=Minimize
-MetalTitlePane.iconifyMnemonic=69
-MetalTitlePane.maximizeTitle=Maximize
-MetalTitlePane.maximizeMnemonic=88
-MetalTitlePane.closeTitle=Close
-MetalTitlePane.closeMnemonic=67
+# This properties file is used to create a PropertyResourceBundle
+# It contains Locale specific strings used be the Metal Look and Feel.
+# Currently, the following components need this for support:
+#
+#    FileChooser
+#
+# When this file is read in, the strings are put into the
+# defaults table.  This is an implementation detail of the current
+# workings of Swing.  DO NOT DEPEND ON THIS.
+# This may change in future versions of Swing as we improve localization
+# support.
+#
+# Refer to the note in basic.properties for a description as to what
+# the mnemonics correspond to and how to calculate them.
+#
+# @author Steve Wilson
+
+
+############ FILE CHOOSER STRINGS #############
+
+FileChooser.lookInLabel.textAndMnemonic=Look &In:
+FileChooser.saveInLabel.textAndMnemonic=Save In:
+FileChooser.fileNameLabel.textAndMnemonic=File &Name:
+FileChooser.folderNameLabel.textAndMnemonic=Folder &name:
+FileChooser.filesOfTypeLabel.textAndMnemonic=Files of &Type:
+FileChooser.upFolderToolTip.textAndMnemonic=Up One Level
+FileChooser.upFolderAccessibleName=Up
+FileChooser.homeFolderToolTip.textAndMnemonic=Home
+FileChooser.homeFolderAccessibleName=Home
+FileChooser.newFolderToolTip.textAndMnemonic=Create New Folder
+FileChooser.newFolderAccessibleName=New Folder
+FileChooser.newFolderActionLabel.textAndMnemonic=New Folder
+FileChooser.listViewButtonToolTip.textAndMnemonic=List
+FileChooser.listViewButtonAccessibleName=List
+FileChooser.listViewActionLabel.textAndMnemonic=List
+FileChooser.detailsViewButtonToolTip.textAndMnemonic=Details
+FileChooser.detailsViewButtonAccessibleName=Details
+FileChooser.detailsViewActionLabel.textAndMnemonic=Details
+FileChooser.refreshActionLabel.textAndMnemonic=Refresh
+FileChooser.viewMenuLabel.textAndMnemonic=View
+FileChooser.fileNameHeader.textAndMnemonic=Name
+FileChooser.fileSizeHeader.textAndMnemonic=Size
+FileChooser.fileTypeHeader.textAndMnemonic=Type
+FileChooser.fileDateHeader.textAndMnemonic=Modified
+FileChooser.fileAttrHeader.textAndMnemonic=Attributes
+
+############ Used by MetalTitlePane if rendering window decorations############
+MetalTitlePane.restore.titleAndMnemonic=&Restore
+MetalTitlePane.iconify.titleAndMnemonic=Minimiz&e
+MetalTitlePane.maximize.titleAndMnemonic=Ma&ximize
+MetalTitlePane.close.titleAndMnemonic=&Close
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_de.properties	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_de.properties	Wed Jul 05 18:07:57 2017 +0200
@@ -1,61 +1,52 @@
-# This properties file is used to create a PropertyResourceBundle
-# It contains Locale specific strings used be the Metal Look and Feel.
-# Currently, the following components need this for support:
-#
-#    FileChooser
-#
-# When this file is read in, the strings are put into the
-# defaults table.  This is an implementation detail of the current
-# workings of Swing.  DO NOT DEPEND ON THIS.
-# This may change in future versions of Swing as we improve localization
-# support.
-#
-# Refer to the note in basic.properties for a description as to what
-# the mnemonics correspond to and how to calculate them.
-#
-# @author Steve Wilson
-
-
-############ FILE CHOOSER STRINGS #############
-
-FileChooser.lookInLabelText=Suchen in:
-FileChooser.lookInLabelMnemonic=73
-FileChooser.saveInLabelText=Speichern in:
-FileChooser.fileNameLabelText=Dateiname:
-FileChooser.fileNameLabelMnemonic=78
-FileChooser.folderNameLabelText=Ordnername:
-FileChooser.folderNameLabelMnemonic=78
-FileChooser.filesOfTypeLabelText=Dateityp:
-FileChooser.filesOfTypeLabelMnemonic=84
-FileChooser.upFolderToolTipText=Eine Ebene h\u00F6her
-FileChooser.upFolderAccessibleName=Nach oben
-FileChooser.homeFolderToolTipText=Home
-FileChooser.homeFolderAccessibleName=Home
-FileChooser.newFolderToolTipText=Neuen Ordner erstellen
-FileChooser.newFolderAccessibleName=Neuer Ordner
-FileChooser.newFolderActionLabelText=Neuer Ordner
-FileChooser.listViewButtonToolTipText=Liste
-FileChooser.listViewButtonAccessibleName=Liste
-FileChooser.listViewActionLabelText=Liste
-FileChooser.detailsViewButtonToolTipText=Details
-FileChooser.detailsViewButtonAccessibleName=Details
-FileChooser.detailsViewActionLabelText=Details
-FileChooser.refreshActionLabelText=Aktualisieren
-FileChooser.viewMenuLabelText=Ansicht
-FileChooser.fileNameHeaderText=Name
-FileChooser.fileSizeHeaderText=Gr\u00F6\u00DFe
-FileChooser.fileTypeHeaderText=Typ
-FileChooser.fileDateHeaderText=Ge\u00E4ndert
-FileChooser.fileAttrHeaderText=Attribute
-
-############ Used by MetalTitlePane if rendering window decorations############
-# All mnemonics are KeyEvent.VK_XXX as integers
-MetalTitlePane.restoreTitle=Wiederherstellen
-MetalTitlePane.restoreMnemonic=87
-MetalTitlePane.iconifyTitle=Minimieren
-MetalTitlePane.iconifyMnemonic=82
-MetalTitlePane.maximizeTitle=Maximieren
-MetalTitlePane.maximizeMnemonic=88
-MetalTitlePane.closeTitle=Schlie\u00DFen
-MetalTitlePane.closeMnemonic=83
-
+# This properties file is used to create a PropertyResourceBundle
+# It contains Locale specific strings used be the Metal Look and Feel.
+# Currently, the following components need this for support:
+#
+#    FileChooser
+#
+# When this file is read in, the strings are put into the
+# defaults table.  This is an implementation detail of the current
+# workings of Swing.  DO NOT DEPEND ON THIS.
+# This may change in future versions of Swing as we improve localization
+# support.
+#
+# Refer to the note in basic.properties for a description as to what
+# the mnemonics correspond to and how to calculate them.
+#
+# @author Steve Wilson
+
+
+############ FILE CHOOSER STRINGS #############
+
+FileChooser.lookInLabel.textAndMnemonic=Suchen &in:
+FileChooser.saveInLabel.textAndMnemonic=Speichern in:
+FileChooser.fileNameLabel.textAndMnemonic=Datei&name:
+FileChooser.folderNameLabel.textAndMnemonic=Ord&nername:
+FileChooser.filesOfTypeLabel.textAndMnemonic=Da&teityp:
+FileChooser.upFolderToolTip.textAndMnemonic=Eine Ebene h\u00F6her
+FileChooser.upFolderAccessibleName=Nach oben
+FileChooser.homeFolderToolTip.textAndMnemonic=Home
+FileChooser.homeFolderAccessibleName=Home
+FileChooser.newFolderToolTip.textAndMnemonic=Neuen Ordner erstellen
+FileChooser.newFolderAccessibleName=Neuer Ordner
+FileChooser.newFolderActionLabel.textAndMnemonic=Neuer Ordner
+FileChooser.listViewButtonToolTip.textAndMnemonic=Liste
+FileChooser.listViewButtonAccessibleName=Liste
+FileChooser.listViewActionLabel.textAndMnemonic=Liste
+FileChooser.detailsViewButtonToolTip.textAndMnemonic=Details
+FileChooser.detailsViewButtonAccessibleName=Details
+FileChooser.detailsViewActionLabel.textAndMnemonic=Details
+FileChooser.refreshActionLabel.textAndMnemonic=Aktualisieren
+FileChooser.viewMenuLabel.textAndMnemonic=Ansicht
+FileChooser.fileNameHeader.textAndMnemonic=Name
+FileChooser.fileSizeHeader.textAndMnemonic=Gr\u00F6\u00DFe
+FileChooser.fileTypeHeader.textAndMnemonic=Typ
+FileChooser.fileDateHeader.textAndMnemonic=Ge\u00E4ndert
+FileChooser.fileAttrHeader.textAndMnemonic=Attribute
+
+############ Used by MetalTitlePane if rendering window decorations############
+MetalTitlePane.restore.titleAndMnemonic=&Wiederherstellen
+MetalTitlePane.iconify.titleAndMnemonic=Minimie&ren
+MetalTitlePane.maximize.titleAndMnemonic=Ma&ximieren
+MetalTitlePane.close.titleAndMnemonic=Schlie\u00DFen(&S)
+
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_es.properties	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_es.properties	Wed Jul 05 18:07:57 2017 +0200
@@ -1,61 +1,52 @@
-# This properties file is used to create a PropertyResourceBundle
-# It contains Locale specific strings used be the Metal Look and Feel.
-# Currently, the following components need this for support:
-#
-#    FileChooser
-#
-# When this file is read in, the strings are put into the
-# defaults table.  This is an implementation detail of the current
-# workings of Swing.  DO NOT DEPEND ON THIS.
-# This may change in future versions of Swing as we improve localization
-# support.
-#
-# Refer to the note in basic.properties for a description as to what
-# the mnemonics correspond to and how to calculate them.
-#
-# @author Steve Wilson
-
-
-############ FILE CHOOSER STRINGS #############
-
-FileChooser.lookInLabelText=Buscar en:
-FileChooser.lookInLabelMnemonic=73
-FileChooser.saveInLabelText=Guardar en:
-FileChooser.fileNameLabelText=Nombre de Archivo:
-FileChooser.fileNameLabelMnemonic=78
-FileChooser.folderNameLabelText=Nombre de la Carpeta:
-FileChooser.folderNameLabelMnemonic=78
-FileChooser.filesOfTypeLabelText=Archivos de Tipo:
-FileChooser.filesOfTypeLabelMnemonic=84
-FileChooser.upFolderToolTipText=Subir un Nivel
-FileChooser.upFolderAccessibleName=Arriba
-FileChooser.homeFolderToolTipText=Inicio
-FileChooser.homeFolderAccessibleName=Inicio
-FileChooser.newFolderToolTipText=Crear Nueva Carpeta
-FileChooser.newFolderAccessibleName=Nueva Carpeta
-FileChooser.newFolderActionLabelText=Nueva Carpeta
-FileChooser.listViewButtonToolTipText=Lista
-FileChooser.listViewButtonAccessibleName=Lista
-FileChooser.listViewActionLabelText=Lista
-FileChooser.detailsViewButtonToolTipText=Detalles
-FileChooser.detailsViewButtonAccessibleName=Detalles
-FileChooser.detailsViewActionLabelText=Detalles
-FileChooser.refreshActionLabelText=Refrescar
-FileChooser.viewMenuLabelText=Ver
-FileChooser.fileNameHeaderText=Nombre
-FileChooser.fileSizeHeaderText=Tama\u00F1o
-FileChooser.fileTypeHeaderText=Tipo
-FileChooser.fileDateHeaderText=Modificado
-FileChooser.fileAttrHeaderText=Atributos
-
-############ Used by MetalTitlePane if rendering window decorations############
-# All mnemonics are KeyEvent.VK_XXX as integers
-MetalTitlePane.restoreTitle=Restaurar
-MetalTitlePane.restoreMnemonic=82
-MetalTitlePane.iconifyTitle=Minimizar
-MetalTitlePane.iconifyMnemonic=90
-MetalTitlePane.maximizeTitle=Maximizar
-MetalTitlePane.maximizeMnemonic=88
-MetalTitlePane.closeTitle=Cerrar
-MetalTitlePane.closeMnemonic=67
-
+# This properties file is used to create a PropertyResourceBundle
+# It contains Locale specific strings used be the Metal Look and Feel.
+# Currently, the following components need this for support:
+#
+#    FileChooser
+#
+# When this file is read in, the strings are put into the
+# defaults table.  This is an implementation detail of the current
+# workings of Swing.  DO NOT DEPEND ON THIS.
+# This may change in future versions of Swing as we improve localization
+# support.
+#
+# Refer to the note in basic.properties for a description as to what
+# the mnemonics correspond to and how to calculate them.
+#
+# @author Steve Wilson
+
+
+############ FILE CHOOSER STRINGS #############
+
+FileChooser.lookInLabel.textAndMnemonic=Buscar en(&I):
+FileChooser.saveInLabel.textAndMnemonic=Guardar en:
+FileChooser.fileNameLabel.textAndMnemonic=&Nombre de Archivo:
+FileChooser.folderNameLabel.textAndMnemonic=&Nombre de la Carpeta:
+FileChooser.filesOfTypeLabel.textAndMnemonic=Archivos de &Tipo:
+FileChooser.upFolderToolTip.textAndMnemonic=Subir un Nivel
+FileChooser.upFolderAccessibleName=Arriba
+FileChooser.homeFolderToolTip.textAndMnemonic=Inicio
+FileChooser.homeFolderAccessibleName=Inicio
+FileChooser.newFolderToolTip.textAndMnemonic=Crear Nueva Carpeta
+FileChooser.newFolderAccessibleName=Nueva Carpeta
+FileChooser.newFolderActionLabel.textAndMnemonic=Nueva Carpeta
+FileChooser.listViewButtonToolTip.textAndMnemonic=Lista
+FileChooser.listViewButtonAccessibleName=Lista
+FileChooser.listViewActionLabel.textAndMnemonic=Lista
+FileChooser.detailsViewButtonToolTip.textAndMnemonic=Detalles
+FileChooser.detailsViewButtonAccessibleName=Detalles
+FileChooser.detailsViewActionLabel.textAndMnemonic=Detalles
+FileChooser.refreshActionLabel.textAndMnemonic=Refrescar
+FileChooser.viewMenuLabel.textAndMnemonic=Ver
+FileChooser.fileNameHeader.textAndMnemonic=Nombre
+FileChooser.fileSizeHeader.textAndMnemonic=Tama\u00F1o
+FileChooser.fileTypeHeader.textAndMnemonic=Tipo
+FileChooser.fileDateHeader.textAndMnemonic=Modificado
+FileChooser.fileAttrHeader.textAndMnemonic=Atributos
+
+############ Used by MetalTitlePane if rendering window decorations############
+MetalTitlePane.restore.titleAndMnemonic=&Restaurar
+MetalTitlePane.iconify.titleAndMnemonic=Minimi&zar
+MetalTitlePane.maximize.titleAndMnemonic=Ma&ximizar
+MetalTitlePane.close.titleAndMnemonic=&Cerrar
+
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_fr.properties	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_fr.properties	Wed Jul 05 18:07:57 2017 +0200
@@ -1,61 +1,52 @@
-# This properties file is used to create a PropertyResourceBundle
-# It contains Locale specific strings used be the Metal Look and Feel.
-# Currently, the following components need this for support:
-#
-#    FileChooser
-#
-# When this file is read in, the strings are put into the
-# defaults table.  This is an implementation detail of the current
-# workings of Swing.  DO NOT DEPEND ON THIS.
-# This may change in future versions of Swing as we improve localization
-# support.
-#
-# Refer to the note in basic.properties for a description as to what
-# the mnemonics correspond to and how to calculate them.
-#
-# @author Steve Wilson
-
-
-############ FILE CHOOSER STRINGS #############
-
-FileChooser.lookInLabelText=Rechercher dans :
-FileChooser.lookInLabelMnemonic=73
-FileChooser.saveInLabelText=Enregistrer dans :
-FileChooser.fileNameLabelText=Nom du fichier :
-FileChooser.fileNameLabelMnemonic=78
-FileChooser.folderNameLabelText=Nom du dossier :
-FileChooser.folderNameLabelMnemonic=78
-FileChooser.filesOfTypeLabelText=Fichiers de type :
-FileChooser.filesOfTypeLabelMnemonic=84
-FileChooser.upFolderToolTipText=Remonte d'un niveau.
-FileChooser.upFolderAccessibleName=Monter
-FileChooser.homeFolderToolTipText=R\u00E9pertoire d'origine
-FileChooser.homeFolderAccessibleName=R\u00E9pertoire d'origine
-FileChooser.newFolderToolTipText=Cr\u00E9e un dossier.
-FileChooser.newFolderAccessibleName=Nouveau dossier
-FileChooser.newFolderActionLabelText=Nouveau dossier
-FileChooser.listViewButtonToolTipText=Liste
-FileChooser.listViewButtonAccessibleName=Liste
-FileChooser.listViewActionLabelText=Liste
-FileChooser.detailsViewButtonToolTipText=D\u00E9tails
-FileChooser.detailsViewButtonAccessibleName=D\u00E9tails
-FileChooser.detailsViewActionLabelText=D\u00E9tails
-FileChooser.refreshActionLabelText=Actualiser
-FileChooser.viewMenuLabelText=Affichage
-FileChooser.fileNameHeaderText=Nom
-FileChooser.fileSizeHeaderText=Taille
-FileChooser.fileTypeHeaderText=Type
-FileChooser.fileDateHeaderText=Modifi\u00E9
-FileChooser.fileAttrHeaderText=Attributs
-
-############ Used by MetalTitlePane if rendering window decorations############
-# All mnemonics are KeyEvent.VK_XXX as integers
-MetalTitlePane.restoreTitle=Restaurer
-MetalTitlePane.restoreMnemonic=82
-MetalTitlePane.iconifyTitle=R\u00E9duire
-MetalTitlePane.iconifyMnemonic=68
-MetalTitlePane.maximizeTitle=Agrandir
-MetalTitlePane.maximizeMnemonic=65
-MetalTitlePane.closeTitle=Fermer
-MetalTitlePane.closeMnemonic=70
-
+# This properties file is used to create a PropertyResourceBundle
+# It contains Locale specific strings used be the Metal Look and Feel.
+# Currently, the following components need this for support:
+#
+#    FileChooser
+#
+# When this file is read in, the strings are put into the
+# defaults table.  This is an implementation detail of the current
+# workings of Swing.  DO NOT DEPEND ON THIS.
+# This may change in future versions of Swing as we improve localization
+# support.
+#
+# Refer to the note in basic.properties for a description as to what
+# the mnemonics correspond to and how to calculate them.
+#
+# @author Steve Wilson
+
+
+############ FILE CHOOSER STRINGS #############
+
+FileChooser.lookInLabel.textAndMnemonic=Rechercher dans (&I):
+FileChooser.saveInLabel.textAndMnemonic=Enregistrer dans :
+FileChooser.fileNameLabel.textAndMnemonic=&Nom du fichier :
+FileChooser.folderNameLabel.textAndMnemonic=&Nom du dossier :
+FileChooser.filesOfTypeLabel.textAndMnemonic=Fichiers de &type :
+FileChooser.upFolderToolTip.textAndMnemonic=Remonte d'un niveau.
+FileChooser.upFolderAccessibleName=Monter
+FileChooser.homeFolderToolTip.textAndMnemonic=R\u00E9pertoire d'origine
+FileChooser.homeFolderAccessibleName=R\u00E9pertoire d'origine
+FileChooser.newFolderToolTip.textAndMnemonic=Cr\u00E9e un dossier.
+FileChooser.newFolderAccessibleName=Nouveau dossier
+FileChooser.newFolderActionLabel.textAndMnemonic=Nouveau dossier
+FileChooser.listViewButtonToolTip.textAndMnemonic=Liste
+FileChooser.listViewButtonAccessibleName=Liste
+FileChooser.listViewActionLabel.textAndMnemonic=Liste
+FileChooser.detailsViewButtonToolTip.textAndMnemonic=D\u00E9tails
+FileChooser.detailsViewButtonAccessibleName=D\u00E9tails
+FileChooser.detailsViewActionLabel.textAndMnemonic=D\u00E9tails
+FileChooser.refreshActionLabel.textAndMnemonic=Actualiser
+FileChooser.viewMenuLabel.textAndMnemonic=Affichage
+FileChooser.fileNameHeader.textAndMnemonic=Nom
+FileChooser.fileSizeHeader.textAndMnemonic=Taille
+FileChooser.fileTypeHeader.textAndMnemonic=Type
+FileChooser.fileDateHeader.textAndMnemonic=Modifi\u00E9
+FileChooser.fileAttrHeader.textAndMnemonic=Attributs
+
+############ Used by MetalTitlePane if rendering window decorations############
+MetalTitlePane.restore.titleAndMnemonic=&Restaurer
+MetalTitlePane.iconify.titleAndMnemonic=R\u00E9duire(&D)
+MetalTitlePane.maximize.titleAndMnemonic=&Agrandir
+MetalTitlePane.close.titleAndMnemonic=&Fermer
+
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_it.properties	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_it.properties	Wed Jul 05 18:07:57 2017 +0200
@@ -1,61 +1,52 @@
-# This properties file is used to create a PropertyResourceBundle
-# It contains Locale specific strings used be the Metal Look and Feel.
-# Currently, the following components need this for support:
-#
-#    FileChooser
-#
-# When this file is read in, the strings are put into the
-# defaults table.  This is an implementation detail of the current
-# workings of Swing.  DO NOT DEPEND ON THIS.
-# This may change in future versions of Swing as we improve localization
-# support.
-#
-# Refer to the note in basic.properties for a description as to what
-# the mnemonics correspond to and how to calculate them.
-#
-# @author Steve Wilson
-
-
-############ FILE CHOOSER STRINGS #############
-
-FileChooser.lookInLabelText=Cerca in:
-FileChooser.lookInLabelMnemonic=73
-FileChooser.saveInLabelText=Salva in:
-FileChooser.fileNameLabelText=Nome file:
-FileChooser.fileNameLabelMnemonic=78
-FileChooser.folderNameLabelText=Nome della cartella:
-FileChooser.folderNameLabelMnemonic=78
-FileChooser.filesOfTypeLabelText=Tipo file:
-FileChooser.filesOfTypeLabelMnemonic=84
-FileChooser.upFolderToolTipText=Cartella superiore
-FileChooser.upFolderAccessibleName=Superiore
-FileChooser.homeFolderToolTipText=Home
-FileChooser.homeFolderAccessibleName=Home
-FileChooser.newFolderToolTipText=Crea nuova cartella
-FileChooser.newFolderAccessibleName=Nuova cartella
-FileChooser.newFolderActionLabelText=Nuova cartella
-FileChooser.listViewButtonToolTipText=Lista
-FileChooser.listViewButtonAccessibleName=Lista
-FileChooser.listViewActionLabelText=Lista
-FileChooser.detailsViewButtonToolTipText=Dettagli
-FileChooser.detailsViewButtonAccessibleName=Dettagli
-FileChooser.detailsViewActionLabelText=Dettagli
-FileChooser.refreshActionLabelText=Aggiorna
-FileChooser.viewMenuLabelText=Visualizza
-FileChooser.fileNameHeaderText=Nome
-FileChooser.fileSizeHeaderText=Dimensioni
-FileChooser.fileTypeHeaderText=Tipo
-FileChooser.fileDateHeaderText=Modificato
-FileChooser.fileAttrHeaderText=Attributi
-
-############ Used by MetalTitlePane if rendering window decorations############
-# All mnemonics are KeyEvent.VK_XXX as integers
-MetalTitlePane.restoreTitle=Ripristina
-MetalTitlePane.restoreMnemonic=82
-MetalTitlePane.iconifyTitle=Riduci a icona
-MetalTitlePane.iconifyMnemonic=85
-MetalTitlePane.maximizeTitle=Ingrandisci
-MetalTitlePane.maximizeMnemonic=71
-MetalTitlePane.closeTitle=Chiudi
-MetalTitlePane.closeMnemonic=67
-
+# This properties file is used to create a PropertyResourceBundle
+# It contains Locale specific strings used be the Metal Look and Feel.
+# Currently, the following components need this for support:
+#
+#    FileChooser
+#
+# When this file is read in, the strings are put into the
+# defaults table.  This is an implementation detail of the current
+# workings of Swing.  DO NOT DEPEND ON THIS.
+# This may change in future versions of Swing as we improve localization
+# support.
+#
+# Refer to the note in basic.properties for a description as to what
+# the mnemonics correspond to and how to calculate them.
+#
+# @author Steve Wilson
+
+
+############ FILE CHOOSER STRINGS #############
+
+FileChooser.lookInLabel.textAndMnemonic=Cerca &in:
+FileChooser.saveInLabel.textAndMnemonic=Salva in:
+FileChooser.fileNameLabel.textAndMnemonic=&Nome file:
+FileChooser.folderNameLabel.textAndMnemonic=&Nome della cartella:
+FileChooser.filesOfTypeLabel.textAndMnemonic=&Tipo file:
+FileChooser.upFolderToolTip.textAndMnemonic=Cartella superiore
+FileChooser.upFolderAccessibleName=Superiore
+FileChooser.homeFolderToolTip.textAndMnemonic=Home
+FileChooser.homeFolderAccessibleName=Home
+FileChooser.newFolderToolTip.textAndMnemonic=Crea nuova cartella
+FileChooser.newFolderAccessibleName=Nuova cartella
+FileChooser.newFolderActionLabel.textAndMnemonic=Nuova cartella
+FileChooser.listViewButtonToolTip.textAndMnemonic=Lista
+FileChooser.listViewButtonAccessibleName=Lista
+FileChooser.listViewActionLabel.textAndMnemonic=Lista
+FileChooser.detailsViewButtonToolTip.textAndMnemonic=Dettagli
+FileChooser.detailsViewButtonAccessibleName=Dettagli
+FileChooser.detailsViewActionLabel.textAndMnemonic=Dettagli
+FileChooser.refreshActionLabel.textAndMnemonic=Aggiorna
+FileChooser.viewMenuLabel.textAndMnemonic=Visualizza
+FileChooser.fileNameHeader.textAndMnemonic=Nome
+FileChooser.fileSizeHeader.textAndMnemonic=Dimensioni
+FileChooser.fileTypeHeader.textAndMnemonic=Tipo
+FileChooser.fileDateHeader.textAndMnemonic=Modificato
+FileChooser.fileAttrHeader.textAndMnemonic=Attributi
+
+############ Used by MetalTitlePane if rendering window decorations############
+MetalTitlePane.restore.titleAndMnemonic=&Ripristina
+MetalTitlePane.iconify.titleAndMnemonic=Rid&uci a icona
+MetalTitlePane.maximize.titleAndMnemonic=In&grandisci
+MetalTitlePane.close.titleAndMnemonic=&Chiudi
+
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_ja.properties	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_ja.properties	Wed Jul 05 18:07:57 2017 +0200
@@ -1,61 +1,52 @@
-# This properties file is used to create a PropertyResourceBundle
-# It contains Locale specific strings used be the Metal Look and Feel.
-# Currently, the following components need this for support:
-#
-#    FileChooser
-#
-# When this file is read in, the strings are put into the
-# defaults table.  This is an implementation detail of the current
-# workings of Swing.  DO NOT DEPEND ON THIS.
-# This may change in future versions of Swing as we improve localization
-# support.
-#
-# Refer to the note in basic.properties for a description as to what
-# the mnemonics correspond to and how to calculate them.
-#
-# @author Steve Wilson
-
-
-############ FILE CHOOSER STRINGS #############
-
-FileChooser.lookInLabelText=\u53C2\u7167:
-FileChooser.lookInLabelMnemonic=73
-FileChooser.saveInLabelText=\u4FDD\u5B58:
-FileChooser.fileNameLabelText=\u30D5\u30A1\u30A4\u30EB\u540D:
-FileChooser.fileNameLabelMnemonic=78
-FileChooser.folderNameLabelText=\u30D5\u30A9\u30EB\u30C0\u540D:
-FileChooser.folderNameLabelMnemonic=78
-FileChooser.filesOfTypeLabelText=\u30D5\u30A1\u30A4\u30EB\u306E\u30BF\u30A4\u30D7:
-FileChooser.filesOfTypeLabelMnemonic=84
-FileChooser.upFolderToolTipText=1\u30EC\u30D9\u30EB\u4E0A\u3078
-FileChooser.upFolderAccessibleName=\u4E0A\u3078
-FileChooser.homeFolderToolTipText=\u30DB\u30FC\u30E0
-FileChooser.homeFolderAccessibleName=\u30DB\u30FC\u30E0
-FileChooser.newFolderToolTipText=\u65B0\u898F\u30D5\u30A9\u30EB\u30C0\u306E\u4F5C\u6210
-FileChooser.newFolderAccessibleName=\u65B0\u898F\u30D5\u30A9\u30EB\u30C0
-FileChooser.newFolderActionLabelText=\u65B0\u898F\u30D5\u30A9\u30EB\u30C0
-FileChooser.listViewButtonToolTipText=\u30EA\u30B9\u30C8
-FileChooser.listViewButtonAccessibleName=\u30EA\u30B9\u30C8
-FileChooser.listViewActionLabelText=\u30EA\u30B9\u30C8
-FileChooser.detailsViewButtonToolTipText=\u8A73\u7D30
-FileChooser.detailsViewButtonAccessibleName=\u8A73\u7D30
-FileChooser.detailsViewActionLabelText=\u8A73\u7D30
-FileChooser.refreshActionLabelText=\u30EA\u30D5\u30EC\u30C3\u30B7\u30E5
-FileChooser.viewMenuLabelText=\u8868\u793A
-FileChooser.fileNameHeaderText=\u540D\u524D
-FileChooser.fileSizeHeaderText=\u30B5\u30A4\u30BA
-FileChooser.fileTypeHeaderText=\u30BF\u30A4\u30D7
-FileChooser.fileDateHeaderText=\u4FEE\u6B63\u65E5
-FileChooser.fileAttrHeaderText=\u5C5E\u6027
-
-############ Used by MetalTitlePane if rendering window decorations############
-# All mnemonics are KeyEvent.VK_XXX as integers
-MetalTitlePane.restoreTitle=\u5FA9\u5143(R)
-MetalTitlePane.restoreMnemonic=82
-MetalTitlePane.iconifyTitle=\u6700\u5C0F\u5316(E)
-MetalTitlePane.iconifyMnemonic=69
-MetalTitlePane.maximizeTitle=\u6700\u5927\u5316(X)
-MetalTitlePane.maximizeMnemonic=88
-MetalTitlePane.closeTitle=\u9589\u3058\u308B(C)
-MetalTitlePane.closeMnemonic=67
-
+# This properties file is used to create a PropertyResourceBundle
+# It contains Locale specific strings used be the Metal Look and Feel.
+# Currently, the following components need this for support:
+#
+#    FileChooser
+#
+# When this file is read in, the strings are put into the
+# defaults table.  This is an implementation detail of the current
+# workings of Swing.  DO NOT DEPEND ON THIS.
+# This may change in future versions of Swing as we improve localization
+# support.
+#
+# Refer to the note in basic.properties for a description as to what
+# the mnemonics correspond to and how to calculate them.
+#
+# @author Steve Wilson
+
+
+############ FILE CHOOSER STRINGS #############
+
+FileChooser.lookInLabel.textAndMnemonic=\u53C2\u7167(&I):
+FileChooser.saveInLabel.textAndMnemonic=\u4FDD\u5B58:
+FileChooser.fileNameLabel.textAndMnemonic=\u30D5\u30A1\u30A4\u30EB\u540D(&N):
+FileChooser.folderNameLabel.textAndMnemonic=\u30D5\u30A9\u30EB\u30C0\u540D(&N):
+FileChooser.filesOfTypeLabel.textAndMnemonic=\u30D5\u30A1\u30A4\u30EB\u306E\u30BF\u30A4\u30D7(&T):
+FileChooser.upFolderToolTip.textAndMnemonic=1\u30EC\u30D9\u30EB\u4E0A\u3078
+FileChooser.upFolderAccessibleName=\u4E0A\u3078
+FileChooser.homeFolderToolTip.textAndMnemonic=\u30DB\u30FC\u30E0
+FileChooser.homeFolderAccessibleName=\u30DB\u30FC\u30E0
+FileChooser.newFolderToolTip.textAndMnemonic=\u65B0\u898F\u30D5\u30A9\u30EB\u30C0\u306E\u4F5C\u6210
+FileChooser.newFolderAccessibleName=\u65B0\u898F\u30D5\u30A9\u30EB\u30C0
+FileChooser.newFolderActionLabel.textAndMnemonic=\u65B0\u898F\u30D5\u30A9\u30EB\u30C0
+FileChooser.listViewButtonToolTip.textAndMnemonic=\u30EA\u30B9\u30C8
+FileChooser.listViewButtonAccessibleName=\u30EA\u30B9\u30C8
+FileChooser.listViewActionLabel.textAndMnemonic=\u30EA\u30B9\u30C8
+FileChooser.detailsViewButtonToolTip.textAndMnemonic=\u8A73\u7D30
+FileChooser.detailsViewButtonAccessibleName=\u8A73\u7D30
+FileChooser.detailsViewActionLabel.textAndMnemonic=\u8A73\u7D30
+FileChooser.refreshActionLabel.textAndMnemonic=\u30EA\u30D5\u30EC\u30C3\u30B7\u30E5
+FileChooser.viewMenuLabel.textAndMnemonic=\u8868\u793A
+FileChooser.fileNameHeader.textAndMnemonic=\u540D\u524D
+FileChooser.fileSizeHeader.textAndMnemonic=\u30B5\u30A4\u30BA
+FileChooser.fileTypeHeader.textAndMnemonic=\u30BF\u30A4\u30D7
+FileChooser.fileDateHeader.textAndMnemonic=\u4FEE\u6B63\u65E5
+FileChooser.fileAttrHeader.textAndMnemonic=\u5C5E\u6027
+
+############ Used by MetalTitlePane if rendering window decorations############
+MetalTitlePane.restore.titleAndMnemonic=\u5FA9\u5143(&R)
+MetalTitlePane.iconify.titleAndMnemonic=\u6700\u5C0F\u5316(&E)
+MetalTitlePane.maximize.titleAndMnemonic=\u6700\u5927\u5316(&X)
+MetalTitlePane.close.titleAndMnemonic=\u9589\u3058\u308B(&C)
+
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_ko.properties	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_ko.properties	Wed Jul 05 18:07:57 2017 +0200
@@ -1,61 +1,52 @@
-# This properties file is used to create a PropertyResourceBundle
-# It contains Locale specific strings used be the Metal Look and Feel.
-# Currently, the following components need this for support:
-#
-#    FileChooser
-#
-# When this file is read in, the strings are put into the
-# defaults table.  This is an implementation detail of the current
-# workings of Swing.  DO NOT DEPEND ON THIS.
-# This may change in future versions of Swing as we improve localization
-# support.
-#
-# Refer to the note in basic.properties for a description as to what
-# the mnemonics correspond to and how to calculate them.
-#
-# @author Steve Wilson
-
-
-############ FILE CHOOSER STRINGS #############
-
-FileChooser.lookInLabelText=\uAC80\uC0C9 \uC704\uCE58:
-FileChooser.lookInLabelMnemonic=73
-FileChooser.saveInLabelText=\uC800\uC7A5 \uC704\uCE58:
-FileChooser.fileNameLabelText=\uD30C\uC77C \uC774\uB984:
-FileChooser.fileNameLabelMnemonic=78
-FileChooser.folderNameLabelText=\uD3F4\uB354 \uC774\uB984:
-FileChooser.folderNameLabelMnemonic=78
-FileChooser.filesOfTypeLabelText=\uD30C\uC77C \uC720\uD615:
-FileChooser.filesOfTypeLabelMnemonic=84
-FileChooser.upFolderToolTipText=\uD55C \uB808\uBCA8 \uC704\uB85C
-FileChooser.upFolderAccessibleName=\uC704\uB85C
-FileChooser.homeFolderToolTipText=\uD648
-FileChooser.homeFolderAccessibleName=\uD648
-FileChooser.newFolderToolTipText=\uC0C8 \uD3F4\uB354 \uC0DD\uC131
-FileChooser.newFolderAccessibleName=\uC0C8 \uD3F4\uB354
-FileChooser.newFolderActionLabelText=\uC0C8 \uD3F4\uB354
-FileChooser.listViewButtonToolTipText=\uBAA9\uB85D
-FileChooser.listViewButtonAccessibleName=\uBAA9\uB85D
-FileChooser.listViewActionLabelText=\uBAA9\uB85D
-FileChooser.detailsViewButtonToolTipText=\uC138\uBD80 \uC815\uBCF4
-FileChooser.detailsViewButtonAccessibleName=\uC138\uBD80 \uC815\uBCF4
-FileChooser.detailsViewActionLabelText=\uC138\uBD80 \uC815\uBCF4
-FileChooser.refreshActionLabelText=\uC0C8\uB85C \uACE0\uCE68
-FileChooser.viewMenuLabelText=\uBCF4\uAE30
-FileChooser.fileNameHeaderText=\uC774\uB984
-FileChooser.fileSizeHeaderText=\uD06C\uAE30
-FileChooser.fileTypeHeaderText=\uC720\uD615
-FileChooser.fileDateHeaderText=\uC218\uC815 \uB0A0\uC9DC
-FileChooser.fileAttrHeaderText=\uC18D\uC131
-
-############ Used by MetalTitlePane if rendering window decorations############
-# All mnemonics are KeyEvent.VK_XXX as integers
-MetalTitlePane.restoreTitle=\uBCF5\uC6D0(R)
-MetalTitlePane.restoreMnemonic=82
-MetalTitlePane.iconifyTitle=\uCD5C\uC18C\uD654(E)
-MetalTitlePane.iconifyMnemonic=69
-MetalTitlePane.maximizeTitle=\uCD5C\uB300\uD654(X)
-MetalTitlePane.maximizeMnemonic=88
-MetalTitlePane.closeTitle=\uB2EB\uAE30(C)
-MetalTitlePane.closeMnemonic=67
-
+# This properties file is used to create a PropertyResourceBundle
+# It contains Locale specific strings used be the Metal Look and Feel.
+# Currently, the following components need this for support:
+#
+#    FileChooser
+#
+# When this file is read in, the strings are put into the
+# defaults table.  This is an implementation detail of the current
+# workings of Swing.  DO NOT DEPEND ON THIS.
+# This may change in future versions of Swing as we improve localization
+# support.
+#
+# Refer to the note in basic.properties for a description as to what
+# the mnemonics correspond to and how to calculate them.
+#
+# @author Steve Wilson
+
+
+############ FILE CHOOSER STRINGS #############
+
+FileChooser.lookInLabel.textAndMnemonic=\uAC80\uC0C9 \uC704\uCE58(&I):
+FileChooser.saveInLabel.textAndMnemonic=\uC800\uC7A5 \uC704\uCE58:
+FileChooser.fileNameLabel.textAndMnemonic=\uD30C\uC77C \uC774\uB984(&N):
+FileChooser.folderNameLabel.textAndMnemonic=\uD3F4\uB354 \uC774\uB984(&N):
+FileChooser.filesOfTypeLabel.textAndMnemonic=\uD30C\uC77C \uC720\uD615(&T):
+FileChooser.upFolderToolTip.textAndMnemonic=\uD55C \uB808\uBCA8 \uC704\uB85C
+FileChooser.upFolderAccessibleName=\uC704\uB85C
+FileChooser.homeFolderToolTip.textAndMnemonic=\uD648
+FileChooser.homeFolderAccessibleName=\uD648
+FileChooser.newFolderToolTip.textAndMnemonic=\uC0C8 \uD3F4\uB354 \uC0DD\uC131
+FileChooser.newFolderAccessibleName=\uC0C8 \uD3F4\uB354
+FileChooser.newFolderActionLabel.textAndMnemonic=\uC0C8 \uD3F4\uB354
+FileChooser.listViewButtonToolTip.textAndMnemonic=\uBAA9\uB85D
+FileChooser.listViewButtonAccessibleName=\uBAA9\uB85D
+FileChooser.listViewActionLabel.textAndMnemonic=\uBAA9\uB85D
+FileChooser.detailsViewButtonToolTip.textAndMnemonic=\uC138\uBD80 \uC815\uBCF4
+FileChooser.detailsViewButtonAccessibleName=\uC138\uBD80 \uC815\uBCF4
+FileChooser.detailsViewActionLabel.textAndMnemonic=\uC138\uBD80 \uC815\uBCF4
+FileChooser.refreshActionLabel.textAndMnemonic=\uC0C8\uB85C \uACE0\uCE68
+FileChooser.viewMenuLabel.textAndMnemonic=\uBCF4\uAE30
+FileChooser.fileNameHeader.textAndMnemonic=\uC774\uB984
+FileChooser.fileSizeHeader.textAndMnemonic=\uD06C\uAE30
+FileChooser.fileTypeHeader.textAndMnemonic=\uC720\uD615
+FileChooser.fileDateHeader.textAndMnemonic=\uC218\uC815 \uB0A0\uC9DC
+FileChooser.fileAttrHeader.textAndMnemonic=\uC18D\uC131
+
+############ Used by MetalTitlePane if rendering window decorations############
+MetalTitlePane.restore.titleAndMnemonic=\uBCF5\uC6D0(&R)
+MetalTitlePane.iconify.titleAndMnemonic=\uCD5C\uC18C\uD654(&E)
+MetalTitlePane.maximize.titleAndMnemonic=\uCD5C\uB300\uD654(&X)
+MetalTitlePane.close.titleAndMnemonic=\uB2EB\uAE30(&C)
+
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_pt_BR.properties	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_pt_BR.properties	Wed Jul 05 18:07:57 2017 +0200
@@ -1,61 +1,52 @@
-# This properties file is used to create a PropertyResourceBundle
-# It contains Locale specific strings used be the Metal Look and Feel.
-# Currently, the following components need this for support:
-#
-#    FileChooser
-#
-# When this file is read in, the strings are put into the
-# defaults table.  This is an implementation detail of the current
-# workings of Swing.  DO NOT DEPEND ON THIS.
-# This may change in future versions of Swing as we improve localization
-# support.
-#
-# Refer to the note in basic.properties for a description as to what
-# the mnemonics correspond to and how to calculate them.
-#
-# @author Steve Wilson
-
-
-############ FILE CHOOSER STRINGS #############
-
-FileChooser.lookInLabelText=Consultar Em:
-FileChooser.lookInLabelMnemonic=73
-FileChooser.saveInLabelText=Salvar Em:
-FileChooser.fileNameLabelText=Nome do Arquivo:
-FileChooser.fileNameLabelMnemonic=78
-FileChooser.folderNameLabelText=Nome da pasta:
-FileChooser.folderNameLabelMnemonic=78
-FileChooser.filesOfTypeLabelText=Arquivos do Tipo:
-FileChooser.filesOfTypeLabelMnemonic=84
-FileChooser.upFolderToolTipText=Um N\u00EDvel Acima
-FileChooser.upFolderAccessibleName=Acima
-FileChooser.homeFolderToolTipText=In\u00EDcio
-FileChooser.homeFolderAccessibleName=In\u00EDcio
-FileChooser.newFolderToolTipText=Criar Nova Pasta
-FileChooser.newFolderAccessibleName=Nova Pasta
-FileChooser.newFolderActionLabelText=Nova Pasta
-FileChooser.listViewButtonToolTipText=Lista
-FileChooser.listViewButtonAccessibleName=Lista
-FileChooser.listViewActionLabelText=Lista
-FileChooser.detailsViewButtonToolTipText=Detalhes
-FileChooser.detailsViewButtonAccessibleName=Detalhes
-FileChooser.detailsViewActionLabelText=Detalhes
-FileChooser.refreshActionLabelText=Atualizar
-FileChooser.viewMenuLabelText=Exibir
-FileChooser.fileNameHeaderText=Nome
-FileChooser.fileSizeHeaderText=Tamanho
-FileChooser.fileTypeHeaderText=Tipo
-FileChooser.fileDateHeaderText=Modificado
-FileChooser.fileAttrHeaderText=Atributos
-
-############ Used by MetalTitlePane if rendering window decorations############
-# All mnemonics are KeyEvent.VK_XXX as integers
-MetalTitlePane.restoreTitle=Restaurar
-MetalTitlePane.restoreMnemonic=82
-MetalTitlePane.iconifyTitle=Minimizar
-MetalTitlePane.iconifyMnemonic=77
-MetalTitlePane.maximizeTitle=Maximizar
-MetalTitlePane.maximizeMnemonic=88
-MetalTitlePane.closeTitle=Fechar
-MetalTitlePane.closeMnemonic=70
-
+# This properties file is used to create a PropertyResourceBundle
+# It contains Locale specific strings used be the Metal Look and Feel.
+# Currently, the following components need this for support:
+#
+#    FileChooser
+#
+# When this file is read in, the strings are put into the
+# defaults table.  This is an implementation detail of the current
+# workings of Swing.  DO NOT DEPEND ON THIS.
+# This may change in future versions of Swing as we improve localization
+# support.
+#
+# Refer to the note in basic.properties for a description as to what
+# the mnemonics correspond to and how to calculate them.
+#
+# @author Steve Wilson
+
+
+############ FILE CHOOSER STRINGS #############
+
+FileChooser.lookInLabel.textAndMnemonic=Consultar Em(&I):
+FileChooser.saveInLabel.textAndMnemonic=Salvar Em:
+FileChooser.fileNameLabel.textAndMnemonic=&Nome do Arquivo:
+FileChooser.folderNameLabel.textAndMnemonic=&Nome da pasta:
+FileChooser.filesOfTypeLabel.textAndMnemonic=Arquivos do &Tipo:
+FileChooser.upFolderToolTip.textAndMnemonic=Um N\u00EDvel Acima
+FileChooser.upFolderAccessibleName=Acima
+FileChooser.homeFolderToolTip.textAndMnemonic=In\u00EDcio
+FileChooser.homeFolderAccessibleName=In\u00EDcio
+FileChooser.newFolderToolTip.textAndMnemonic=Criar Nova Pasta
+FileChooser.newFolderAccessibleName=Nova Pasta
+FileChooser.newFolderActionLabel.textAndMnemonic=Nova Pasta
+FileChooser.listViewButtonToolTip.textAndMnemonic=Lista
+FileChooser.listViewButtonAccessibleName=Lista
+FileChooser.listViewActionLabel.textAndMnemonic=Lista
+FileChooser.detailsViewButtonToolTip.textAndMnemonic=Detalhes
+FileChooser.detailsViewButtonAccessibleName=Detalhes
+FileChooser.detailsViewActionLabel.textAndMnemonic=Detalhes
+FileChooser.refreshActionLabel.textAndMnemonic=Atualizar
+FileChooser.viewMenuLabel.textAndMnemonic=Exibir
+FileChooser.fileNameHeader.textAndMnemonic=Nome
+FileChooser.fileSizeHeader.textAndMnemonic=Tamanho
+FileChooser.fileTypeHeader.textAndMnemonic=Tipo
+FileChooser.fileDateHeader.textAndMnemonic=Modificado
+FileChooser.fileAttrHeader.textAndMnemonic=Atributos
+
+############ Used by MetalTitlePane if rendering window decorations############
+MetalTitlePane.restore.titleAndMnemonic=&Restaurar
+MetalTitlePane.iconify.titleAndMnemonic=&Minimizar
+MetalTitlePane.maximize.titleAndMnemonic=Ma&ximizar
+MetalTitlePane.close.titleAndMnemonic=&Fechar
+
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_sv.properties	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_sv.properties	Wed Jul 05 18:07:57 2017 +0200
@@ -1,61 +1,52 @@
-# This properties file is used to create a PropertyResourceBundle
-# It contains Locale specific strings used be the Metal Look and Feel.
-# Currently, the following components need this for support:
-#
-#    FileChooser
-#
-# When this file is read in, the strings are put into the
-# defaults table.  This is an implementation detail of the current
-# workings of Swing.  DO NOT DEPEND ON THIS.
-# This may change in future versions of Swing as we improve localization
-# support.
-#
-# Refer to the note in basic.properties for a description as to what
-# the mnemonics correspond to and how to calculate them.
-#
-# @author Steve Wilson
-
-
-############ FILE CHOOSER STRINGS #############
-
-FileChooser.lookInLabelText=Leta i:
-FileChooser.lookInLabelMnemonic=73
-FileChooser.saveInLabelText=Spara i:
-FileChooser.fileNameLabelText=Filnamn:
-FileChooser.fileNameLabelMnemonic=78
-FileChooser.folderNameLabelText=Mapp:
-FileChooser.folderNameLabelMnemonic=78
-FileChooser.filesOfTypeLabelText=Filformat:
-FileChooser.filesOfTypeLabelMnemonic=84
-FileChooser.upFolderToolTipText=Upp en niv\u00E5
-FileChooser.upFolderAccessibleName=Upp
-FileChooser.homeFolderToolTipText=Hem
-FileChooser.homeFolderAccessibleName=Hem
-FileChooser.newFolderToolTipText=Skapa ny mapp
-FileChooser.newFolderAccessibleName=Ny mapp
-FileChooser.newFolderActionLabelText=Ny mapp
-FileChooser.listViewButtonToolTipText=Lista
-FileChooser.listViewButtonAccessibleName=Lista
-FileChooser.listViewActionLabelText=Lista
-FileChooser.detailsViewButtonToolTipText=Detaljer
-FileChooser.detailsViewButtonAccessibleName=Detaljer
-FileChooser.detailsViewActionLabelText=Detaljer
-FileChooser.refreshActionLabelText=F\u00F6rnya
-FileChooser.viewMenuLabelText=Vy
-FileChooser.fileNameHeaderText=Namn
-FileChooser.fileSizeHeaderText=Storlek
-FileChooser.fileTypeHeaderText=Typ
-FileChooser.fileDateHeaderText=\u00C4ndrad
-FileChooser.fileAttrHeaderText=Attribut
-
-############ Used by MetalTitlePane if rendering window decorations############
-# All mnemonics are KeyEvent.VK_XXX as integers
-MetalTitlePane.restoreTitle=\u00C5terst\u00E4ll
-MetalTitlePane.restoreMnemonic=82
-MetalTitlePane.iconifyTitle=Minimera
-MetalTitlePane.iconifyMnemonic=69
-MetalTitlePane.maximizeTitle=Maximera
-MetalTitlePane.maximizeMnemonic=88
-MetalTitlePane.closeTitle=St\u00E4ng
-MetalTitlePane.closeMnemonic=83
-
+# This properties file is used to create a PropertyResourceBundle
+# It contains Locale specific strings used be the Metal Look and Feel.
+# Currently, the following components need this for support:
+#
+#    FileChooser
+#
+# When this file is read in, the strings are put into the
+# defaults table.  This is an implementation detail of the current
+# workings of Swing.  DO NOT DEPEND ON THIS.
+# This may change in future versions of Swing as we improve localization
+# support.
+#
+# Refer to the note in basic.properties for a description as to what
+# the mnemonics correspond to and how to calculate them.
+#
+# @author Steve Wilson
+
+
+############ FILE CHOOSER STRINGS #############
+
+FileChooser.lookInLabel.textAndMnemonic=Leta &i:
+FileChooser.saveInLabel.textAndMnemonic=Spara i:
+FileChooser.fileNameLabel.textAndMnemonic=Fil&namn:
+FileChooser.folderNameLabel.textAndMnemonic=Mapp(&N):
+FileChooser.filesOfTypeLabel.textAndMnemonic=Filforma&t:
+FileChooser.upFolderToolTip.textAndMnemonic=Upp en niv\u00E5
+FileChooser.upFolderAccessibleName=Upp
+FileChooser.homeFolderToolTip.textAndMnemonic=Hem
+FileChooser.homeFolderAccessibleName=Hem
+FileChooser.newFolderToolTip.textAndMnemonic=Skapa ny mapp
+FileChooser.newFolderAccessibleName=Ny mapp
+FileChooser.newFolderActionLabel.textAndMnemonic=Ny mapp
+FileChooser.listViewButtonToolTip.textAndMnemonic=Lista
+FileChooser.listViewButtonAccessibleName=Lista
+FileChooser.listViewActionLabel.textAndMnemonic=Lista
+FileChooser.detailsViewButtonToolTip.textAndMnemonic=Detaljer
+FileChooser.detailsViewButtonAccessibleName=Detaljer
+FileChooser.detailsViewActionLabel.textAndMnemonic=Detaljer
+FileChooser.refreshActionLabel.textAndMnemonic=F\u00F6rnya
+FileChooser.viewMenuLabel.textAndMnemonic=Vy
+FileChooser.fileNameHeader.textAndMnemonic=Namn
+FileChooser.fileSizeHeader.textAndMnemonic=Storlek
+FileChooser.fileTypeHeader.textAndMnemonic=Typ
+FileChooser.fileDateHeader.textAndMnemonic=\u00C4ndrad
+FileChooser.fileAttrHeader.textAndMnemonic=Attribut
+
+############ Used by MetalTitlePane if rendering window decorations############
+MetalTitlePane.restore.titleAndMnemonic=\u00C5terst\u00E4ll(&R)
+MetalTitlePane.iconify.titleAndMnemonic=Minim&era
+MetalTitlePane.maximize.titleAndMnemonic=Ma&ximera
+MetalTitlePane.close.titleAndMnemonic=St\u00E4ng(&S)
+
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_zh_CN.properties	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_zh_CN.properties	Wed Jul 05 18:07:57 2017 +0200
@@ -1,61 +1,52 @@
-# This properties file is used to create a PropertyResourceBundle
-# It contains Locale specific strings used be the Metal Look and Feel.
-# Currently, the following components need this for support:
-#
-#    FileChooser
-#
-# When this file is read in, the strings are put into the
-# defaults table.  This is an implementation detail of the current
-# workings of Swing.  DO NOT DEPEND ON THIS.
-# This may change in future versions of Swing as we improve localization
-# support.
-#
-# Refer to the note in basic.properties for a description as to what
-# the mnemonics correspond to and how to calculate them.
-#
-# @author Steve Wilson
-
-
-############ FILE CHOOSER STRINGS #############
-
-FileChooser.lookInLabelText=\u67E5\u770B:
-FileChooser.lookInLabelMnemonic=73
-FileChooser.saveInLabelText=\u4FDD\u5B58:
-FileChooser.fileNameLabelText=\u6587\u4EF6\u540D:
-FileChooser.fileNameLabelMnemonic=78
-FileChooser.folderNameLabelText=\u6587\u4EF6\u5939\u540D:
-FileChooser.folderNameLabelMnemonic=78
-FileChooser.filesOfTypeLabelText=\u6587\u4EF6\u7C7B\u578B:
-FileChooser.filesOfTypeLabelMnemonic=84
-FileChooser.upFolderToolTipText=\u5411\u4E0A\u4E00\u7EA7
-FileChooser.upFolderAccessibleName=\u5411\u4E0A
-FileChooser.homeFolderToolTipText=\u4E3B\u76EE\u5F55
-FileChooser.homeFolderAccessibleName=\u4E3B\u76EE\u5F55
-FileChooser.newFolderToolTipText=\u521B\u5EFA\u65B0\u6587\u4EF6\u5939
-FileChooser.newFolderAccessibleName=\u65B0\u5EFA\u6587\u4EF6\u5939
-FileChooser.newFolderActionLabelText=\u65B0\u5EFA\u6587\u4EF6\u5939
-FileChooser.listViewButtonToolTipText=\u5217\u8868
-FileChooser.listViewButtonAccessibleName=\u5217\u8868
-FileChooser.listViewActionLabelText=\u5217\u8868
-FileChooser.detailsViewButtonToolTipText=\u8BE6\u7EC6\u8D44\u6599
-FileChooser.detailsViewButtonAccessibleName=\u8BE6\u7EC6\u8D44\u6599
-FileChooser.detailsViewActionLabelText=\u8BE6\u7EC6\u8D44\u6599
-FileChooser.refreshActionLabelText=\u5237\u65B0
-FileChooser.viewMenuLabelText=\u89C6\u56FE
-FileChooser.fileNameHeaderText=\u540D\u79F0
-FileChooser.fileSizeHeaderText=\u5927\u5C0F
-FileChooser.fileTypeHeaderText=\u7C7B\u578B
-FileChooser.fileDateHeaderText=\u4FEE\u6539\u65E5\u671F
-FileChooser.fileAttrHeaderText=\u5C5E\u6027
-
-############ Used by MetalTitlePane if rendering window decorations############
-# All mnemonics are KeyEvent.VK_XXX as integers
-MetalTitlePane.restoreTitle=\u8FD8\u539F(R)
-MetalTitlePane.restoreMnemonic=82
-MetalTitlePane.iconifyTitle=\u6700\u5C0F\u5316(E)
-MetalTitlePane.iconifyMnemonic=69
-MetalTitlePane.maximizeTitle=\u6700\u5927\u5316(X)
-MetalTitlePane.maximizeMnemonic=88
-MetalTitlePane.closeTitle=\u5173\u95ED(C)
-MetalTitlePane.closeMnemonic=67
-
+# This properties file is used to create a PropertyResourceBundle
+# It contains Locale specific strings used be the Metal Look and Feel.
+# Currently, the following components need this for support:
+#
+#    FileChooser
+#
+# When this file is read in, the strings are put into the
+# defaults table.  This is an implementation detail of the current
+# workings of Swing.  DO NOT DEPEND ON THIS.
+# This may change in future versions of Swing as we improve localization
+# support.
+#
+# Refer to the note in basic.properties for a description as to what
+# the mnemonics correspond to and how to calculate them.
+#
+# @author Steve Wilson
+
+
+############ FILE CHOOSER STRINGS #############
+
+FileChooser.lookInLabel.textAndMnemonic=\u67E5\u770B(&I):
+FileChooser.saveInLabel.textAndMnemonic=\u4FDD\u5B58:
+FileChooser.fileNameLabel.textAndMnemonic=\u6587\u4EF6\u540D(&N):
+FileChooser.folderNameLabel.textAndMnemonic=\u6587\u4EF6\u5939\u540D(&N):
+FileChooser.filesOfTypeLabel.textAndMnemonic=\u6587\u4EF6\u7C7B\u578B(&T):
+FileChooser.upFolderToolTip.textAndMnemonic=\u5411\u4E0A\u4E00\u7EA7
+FileChooser.upFolderAccessibleName=\u5411\u4E0A
+FileChooser.homeFolderToolTip.textAndMnemonic=\u4E3B\u76EE\u5F55
+FileChooser.homeFolderAccessibleName=\u4E3B\u76EE\u5F55
+FileChooser.newFolderToolTip.textAndMnemonic=\u521B\u5EFA\u65B0\u6587\u4EF6\u5939
+FileChooser.newFolderAccessibleName=\u65B0\u5EFA\u6587\u4EF6\u5939
+FileChooser.newFolderActionLabel.textAndMnemonic=\u65B0\u5EFA\u6587\u4EF6\u5939
+FileChooser.listViewButtonToolTip.textAndMnemonic=\u5217\u8868
+FileChooser.listViewButtonAccessibleName=\u5217\u8868
+FileChooser.listViewActionLabel.textAndMnemonic=\u5217\u8868
+FileChooser.detailsViewButtonToolTip.textAndMnemonic=\u8BE6\u7EC6\u8D44\u6599
+FileChooser.detailsViewButtonAccessibleName=\u8BE6\u7EC6\u8D44\u6599
+FileChooser.detailsViewActionLabel.textAndMnemonic=\u8BE6\u7EC6\u8D44\u6599
+FileChooser.refreshActionLabel.textAndMnemonic=\u5237\u65B0
+FileChooser.viewMenuLabel.textAndMnemonic=\u89C6\u56FE
+FileChooser.fileNameHeader.textAndMnemonic=\u540D\u79F0
+FileChooser.fileSizeHeader.textAndMnemonic=\u5927\u5C0F
+FileChooser.fileTypeHeader.textAndMnemonic=\u7C7B\u578B
+FileChooser.fileDateHeader.textAndMnemonic=\u4FEE\u6539\u65E5\u671F
+FileChooser.fileAttrHeader.textAndMnemonic=\u5C5E\u6027
+
+############ Used by MetalTitlePane if rendering window decorations############
+MetalTitlePane.restore.titleAndMnemonic=\u8FD8\u539F(&R)
+MetalTitlePane.iconify.titleAndMnemonic=\u6700\u5C0F\u5316(&E)
+MetalTitlePane.maximize.titleAndMnemonic=\u6700\u5927\u5316(&X)
+MetalTitlePane.close.titleAndMnemonic=\u5173\u95ED(&C)
+
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_zh_TW.properties	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_zh_TW.properties	Wed Jul 05 18:07:57 2017 +0200
@@ -1,61 +1,52 @@
-# This properties file is used to create a PropertyResourceBundle
-# It contains Locale specific strings used be the Metal Look and Feel.
-# Currently, the following components need this for support:
-#
-#    FileChooser
-#
-# When this file is read in, the strings are put into the
-# defaults table.  This is an implementation detail of the current
-# workings of Swing.  DO NOT DEPEND ON THIS.
-# This may change in future versions of Swing as we improve localization
-# support.
-#
-# Refer to the note in basic.properties for a description as to what
-# the mnemonics correspond to and how to calculate them.
-#
-# @author Steve Wilson
-
-
-############ FILE CHOOSER STRINGS #############
-
-FileChooser.lookInLabelText=\u67E5\u8A62:
-FileChooser.lookInLabelMnemonic=73
-FileChooser.saveInLabelText=\u5132\u5B58\u65BC:
-FileChooser.fileNameLabelText=\u6A94\u6848\u540D\u7A31:
-FileChooser.fileNameLabelMnemonic=78
-FileChooser.folderNameLabelText=\u8CC7\u6599\u593E\u540D\u7A31:
-FileChooser.folderNameLabelMnemonic=78
-FileChooser.filesOfTypeLabelText=\u6A94\u6848\u985E\u578B:
-FileChooser.filesOfTypeLabelMnemonic=84
-FileChooser.upFolderToolTipText=\u5F80\u4E0A\u4E00\u5C64
-FileChooser.upFolderAccessibleName=\u5F80\u4E0A
-FileChooser.homeFolderToolTipText=\u4E3B\u76EE\u9304
-FileChooser.homeFolderAccessibleName=\u4E3B\u76EE\u9304
-FileChooser.newFolderToolTipText=\u5EFA\u7ACB\u65B0\u8CC7\u6599\u593E
-FileChooser.newFolderAccessibleName=\u65B0\u8CC7\u6599\u593E
-FileChooser.newFolderActionLabelText=\u65B0\u8CC7\u6599\u593E
-FileChooser.listViewButtonToolTipText=\u6E05\u55AE
-FileChooser.listViewButtonAccessibleName=\u6E05\u55AE
-FileChooser.listViewActionLabelText=\u6E05\u55AE
-FileChooser.detailsViewButtonToolTipText=\u8A73\u7D30\u8CC7\u8A0A
-FileChooser.detailsViewButtonAccessibleName=\u8A73\u7D30\u8CC7\u8A0A
-FileChooser.detailsViewActionLabelText=\u8A73\u7D30\u8CC7\u8A0A
-FileChooser.refreshActionLabelText=\u91CD\u65B0\u6574\u7406
-FileChooser.viewMenuLabelText=\u6AA2\u8996
-FileChooser.fileNameHeaderText=\u540D\u7A31
-FileChooser.fileSizeHeaderText=\u5927\u5C0F
-FileChooser.fileTypeHeaderText=\u985E\u578B
-FileChooser.fileDateHeaderText=\u4FEE\u6539\u65E5\u671F
-FileChooser.fileAttrHeaderText=\u5C6C\u6027
-
-############ Used by MetalTitlePane if rendering window decorations############
-# All mnemonics are KeyEvent.VK_XXX as integers
-MetalTitlePane.restoreTitle=\u56DE\u5FA9(R)
-MetalTitlePane.restoreMnemonic=82
-MetalTitlePane.iconifyTitle=\u6700\u5C0F\u5316(E)
-MetalTitlePane.iconifyMnemonic=69
-MetalTitlePane.maximizeTitle=\u6700\u5927\u5316(X)
-MetalTitlePane.maximizeMnemonic=88
-MetalTitlePane.closeTitle=\u95DC\u9589(C)
-MetalTitlePane.closeMnemonic=67
-
+# This properties file is used to create a PropertyResourceBundle
+# It contains Locale specific strings used be the Metal Look and Feel.
+# Currently, the following components need this for support:
+#
+#    FileChooser
+#
+# When this file is read in, the strings are put into the
+# defaults table.  This is an implementation detail of the current
+# workings of Swing.  DO NOT DEPEND ON THIS.
+# This may change in future versions of Swing as we improve localization
+# support.
+#
+# Refer to the note in basic.properties for a description as to what
+# the mnemonics correspond to and how to calculate them.
+#
+# @author Steve Wilson
+
+
+############ FILE CHOOSER STRINGS #############
+
+FileChooser.lookInLabel.textAndMnemonic=\u67E5\u8A62(&I):
+FileChooser.saveInLabel.textAndMnemonic=\u5132\u5B58\u65BC:
+FileChooser.fileNameLabel.textAndMnemonic=\u6A94\u6848\u540D\u7A31(&N):
+FileChooser.folderNameLabel.textAndMnemonic=\u8CC7\u6599\u593E\u540D\u7A31(&N):
+FileChooser.filesOfTypeLabel.textAndMnemonic=\u6A94\u6848\u985E\u578B(&T):
+FileChooser.upFolderToolTip.textAndMnemonic=\u5F80\u4E0A\u4E00\u5C64
+FileChooser.upFolderAccessibleName=\u5F80\u4E0A
+FileChooser.homeFolderToolTip.textAndMnemonic=\u4E3B\u76EE\u9304
+FileChooser.homeFolderAccessibleName=\u4E3B\u76EE\u9304
+FileChooser.newFolderToolTip.textAndMnemonic=\u5EFA\u7ACB\u65B0\u8CC7\u6599\u593E
+FileChooser.newFolderAccessibleName=\u65B0\u8CC7\u6599\u593E
+FileChooser.newFolderActionLabel.textAndMnemonic=\u65B0\u8CC7\u6599\u593E
+FileChooser.listViewButtonToolTip.textAndMnemonic=\u6E05\u55AE
+FileChooser.listViewButtonAccessibleName=\u6E05\u55AE
+FileChooser.listViewActionLabel.textAndMnemonic=\u6E05\u55AE
+FileChooser.detailsViewButtonToolTip.textAndMnemonic=\u8A73\u7D30\u8CC7\u8A0A
+FileChooser.detailsViewButtonAccessibleName=\u8A73\u7D30\u8CC7\u8A0A
+FileChooser.detailsViewActionLabel.textAndMnemonic=\u8A73\u7D30\u8CC7\u8A0A
+FileChooser.refreshActionLabel.textAndMnemonic=\u91CD\u65B0\u6574\u7406
+FileChooser.viewMenuLabel.textAndMnemonic=\u6AA2\u8996
+FileChooser.fileNameHeader.textAndMnemonic=\u540D\u7A31
+FileChooser.fileSizeHeader.textAndMnemonic=\u5927\u5C0F
+FileChooser.fileTypeHeader.textAndMnemonic=\u985E\u578B
+FileChooser.fileDateHeader.textAndMnemonic=\u4FEE\u6539\u65E5\u671F
+FileChooser.fileAttrHeader.textAndMnemonic=\u5C6C\u6027
+
+############ Used by MetalTitlePane if rendering window decorations############
+MetalTitlePane.restore.titleAndMnemonic=\u56DE\u5FA9(&R)
+MetalTitlePane.iconify.titleAndMnemonic=\u6700\u5C0F\u5316(&E)
+MetalTitlePane.maximize.titleAndMnemonic=\u6700\u5927\u5316(&X)
+MetalTitlePane.close.titleAndMnemonic=\u95DC\u9589(&C)
+
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth.properties	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth.properties	Wed Jul 05 18:07:57 2017 +0200
@@ -1,49 +1,45 @@
-# This properties file is used to create a PropertyResourceBundle
-# It contains Locale specific strings used be the Synth Look and Feel.
-# Currently, the following components need this for support:
-#
-#    FileChooser
-#
-# When this file is read in, the strings are put into the 
-# defaults table.  This is an implementation detail of the current
-# workings of Swing.  DO NOT DEPEND ON THIS.  
-# This may change in future versions of Swing as we improve localization 
-# support.
-#
-# Refer to the note in basic.properties for a description as to what
-# the mnemonics correspond to and how to calculate them.
-#
-# @author Steve Wilson
-
-
-############ FILE CHOOSER STRINGS #############
-
-FileChooser.lookInLabelText=Look In:
-FileChooser.lookInLabelMnemonic=73
-FileChooser.saveInLabelText=Save In:
-FileChooser.fileNameLabelText=File Name:
-FileChooser.fileNameLabelMnemonic=78
-FileChooser.folderNameLabelText=Folder Name:
-FileChooser.folderNameLabelMnemonic=78
-FileChooser.filesOfTypeLabelText=Files of Type:
-FileChooser.filesOfTypeLabelMnemonic=84
-FileChooser.upFolderToolTipText=Up One Level
-FileChooser.upFolderAccessibleName=Up
-FileChooser.homeFolderToolTipText=Home
-FileChooser.homeFolderAccessibleName=Home
-FileChooser.newFolderToolTipText=Create New Folder
-FileChooser.newFolderAccessibleName=New Folder
-FileChooser.newFolderActionLabelText=New Folder
-FileChooser.listViewButtonToolTipText=List
-FileChooser.listViewButtonAccessibleName=List
-FileChooser.listViewActionLabelText=List
-FileChooser.detailsViewButtonToolTipText=Details
-FileChooser.detailsViewButtonAccessibleName=Details
-FileChooser.detailsViewActionLabelText=Details
-FileChooser.refreshActionLabelText=Refresh
-FileChooser.viewMenuLabelText=View
-FileChooser.fileNameHeaderText=Name
-FileChooser.fileSizeHeaderText=Size
-FileChooser.fileTypeHeaderText=Type
-FileChooser.fileDateHeaderText=Modified
-FileChooser.fileAttrHeaderText=Attributes
+# This properties file is used to create a PropertyResourceBundle
+# It contains Locale specific strings used be the Synth Look and Feel.
+# Currently, the following components need this for support:
+#
+#    FileChooser
+#
+# When this file is read in, the strings are put into the
+# defaults table.  This is an implementation detail of the current
+# workings of Swing.  DO NOT DEPEND ON THIS.
+# This may change in future versions of Swing as we improve localization
+# support.
+#
+# Refer to the note in basic.properties for a description as to what
+# the mnemonics correspond to and how to calculate them.
+#
+# @author Steve Wilson
+
+
+############ FILE CHOOSER STRINGS #############
+
+FileChooser.lookInLabel.textAndMnemonic=Look &In:
+FileChooser.saveInLabel.textAndMnemonic=Save In:
+FileChooser.fileNameLabel.textAndMnemonic=File &Name:
+FileChooser.folderNameLabel.textAndMnemonic=Folder &Name:
+FileChooser.filesOfTypeLabel.textAndMnemonic=Files of &Type:
+FileChooser.upFolderToolTip.textAndMnemonic=Up One Level
+FileChooser.upFolderAccessibleName=Up
+FileChooser.homeFolderToolTip.textAndMnemonic=Home
+FileChooser.homeFolderAccessibleName=Home
+FileChooser.newFolderToolTip.textAndMnemonic=Create New Folder
+FileChooser.newFolderAccessibleName=New Folder
+FileChooser.newFolderActionLabel.textAndMnemonic=New Folder
+FileChooser.listViewButtonToolTip.textAndMnemonic=List
+FileChooser.listViewButtonAccessibleName=List
+FileChooser.listViewActionLabel.textAndMnemonic=List
+FileChooser.detailsViewButtonToolTip.textAndMnemonic=Details
+FileChooser.detailsViewButtonAccessibleName=Details
+FileChooser.detailsViewActionLabel.textAndMnemonic=Details
+FileChooser.refreshActionLabel.textAndMnemonic=Refresh
+FileChooser.viewMenuLabel.textAndMnemonic=View
+FileChooser.fileNameHeader.textAndMnemonic=Name
+FileChooser.fileSizeHeader.textAndMnemonic=Size
+FileChooser.fileTypeHeader.textAndMnemonic=Type
+FileChooser.fileDateHeader.textAndMnemonic=Modified
+FileChooser.fileAttrHeader.textAndMnemonic=Attributes
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_de.properties	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_de.properties	Wed Jul 05 18:07:57 2017 +0200
@@ -1,49 +1,45 @@
-# This properties file is used to create a PropertyResourceBundle
-# It contains Locale specific strings used be the Synth Look and Feel.
-# Currently, the following components need this for support:
-#
-#    FileChooser
-#
-# When this file is read in, the strings are put into the 
-# defaults table.  This is an implementation detail of the current
-# workings of Swing.  DO NOT DEPEND ON THIS.  
-# This may change in future versions of Swing as we improve localization 
-# support.
-#
-# Refer to the note in basic.properties for a description as to what
-# the mnemonics correspond to and how to calculate them.
-#
-# @author Steve Wilson
-
-
-############ FILE CHOOSER STRINGS #############
-
-FileChooser.lookInLabelText=Suchen in:
-FileChooser.lookInLabelMnemonic=73
-FileChooser.saveInLabelText=Speichern in:
-FileChooser.fileNameLabelText=Dateiname:
-FileChooser.fileNameLabelMnemonic=78
-FileChooser.folderNameLabelText=Ordnername:
-FileChooser.folderNameLabelMnemonic=78
-FileChooser.filesOfTypeLabelText=Dateityp:
-FileChooser.filesOfTypeLabelMnemonic=84
-FileChooser.upFolderToolTipText=Eine Ebene h\u00F6her
-FileChooser.upFolderAccessibleName=Nach oben
-FileChooser.homeFolderToolTipText=Home
-FileChooser.homeFolderAccessibleName=Home
-FileChooser.newFolderToolTipText=Neuen Ordner erstellen
-FileChooser.newFolderAccessibleName=Neuer Ordner
-FileChooser.newFolderActionLabelText=Neuer Ordner
-FileChooser.listViewButtonToolTipText=Liste
-FileChooser.listViewButtonAccessibleName=Liste
-FileChooser.listViewActionLabelText=Liste
-FileChooser.detailsViewButtonToolTipText=Details
-FileChooser.detailsViewButtonAccessibleName=Details
-FileChooser.detailsViewActionLabelText=Details
-FileChooser.refreshActionLabelText=Aktualisieren
-FileChooser.viewMenuLabelText=Ansicht
-FileChooser.fileNameHeaderText=Name
-FileChooser.fileSizeHeaderText=Gr\u00F6\u00DFe
-FileChooser.fileTypeHeaderText=Typ
-FileChooser.fileDateHeaderText=Ge\u00E4ndert
-FileChooser.fileAttrHeaderText=Attribute
+# This properties file is used to create a PropertyResourceBundle
+# It contains Locale specific strings used be the Synth Look and Feel.
+# Currently, the following components need this for support:
+#
+#    FileChooser
+#
+# When this file is read in, the strings are put into the
+# defaults table.  This is an implementation detail of the current
+# workings of Swing.  DO NOT DEPEND ON THIS.
+# This may change in future versions of Swing as we improve localization
+# support.
+#
+# Refer to the note in basic.properties for a description as to what
+# the mnemonics correspond to and how to calculate them.
+#
+# @author Steve Wilson
+
+
+############ FILE CHOOSER STRINGS #############
+
+FileChooser.lookInLabel.textAndMnemonic=Suchen &in:
+FileChooser.saveInLabel.textAndMnemonic=Speichern in:
+FileChooser.fileNameLabel.textAndMnemonic=Datei&name:
+FileChooser.folderNameLabel.textAndMnemonic=Ord&nername:
+FileChooser.filesOfTypeLabel.textAndMnemonic=Da&teityp:
+FileChooser.upFolderToolTip.textAndMnemonic=Eine Ebene h\u00F6her
+FileChooser.upFolderAccessibleName=Nach oben
+FileChooser.homeFolderToolTip.textAndMnemonic=Home
+FileChooser.homeFolderAccessibleName=Home
+FileChooser.newFolderToolTip.textAndMnemonic=Neuen Ordner erstellen
+FileChooser.newFolderAccessibleName=Neuer Ordner
+FileChooser.newFolderActionLabel.textAndMnemonic=Neuer Ordner
+FileChooser.listViewButtonToolTip.textAndMnemonic=Liste
+FileChooser.listViewButtonAccessibleName=Liste
+FileChooser.listViewActionLabel.textAndMnemonic=Liste
+FileChooser.detailsViewButtonToolTip.textAndMnemonic=Details
+FileChooser.detailsViewButtonAccessibleName=Details
+FileChooser.detailsViewActionLabel.textAndMnemonic=Details
+FileChooser.refreshActionLabel.textAndMnemonic=Aktualisieren
+FileChooser.viewMenuLabel.textAndMnemonic=Ansicht
+FileChooser.fileNameHeader.textAndMnemonic=Name
+FileChooser.fileSizeHeader.textAndMnemonic=Gr\u00F6\u00DFe
+FileChooser.fileTypeHeader.textAndMnemonic=Typ
+FileChooser.fileDateHeader.textAndMnemonic=Ge\u00E4ndert
+FileChooser.fileAttrHeader.textAndMnemonic=Attribute
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_es.properties	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_es.properties	Wed Jul 05 18:07:57 2017 +0200
@@ -1,49 +1,45 @@
-# This properties file is used to create a PropertyResourceBundle
-# It contains Locale specific strings used be the Synth Look and Feel.
-# Currently, the following components need this for support:
-#
-#    FileChooser
-#
-# When this file is read in, the strings are put into the 
-# defaults table.  This is an implementation detail of the current
-# workings of Swing.  DO NOT DEPEND ON THIS.  
-# This may change in future versions of Swing as we improve localization 
-# support.
-#
-# Refer to the note in basic.properties for a description as to what
-# the mnemonics correspond to and how to calculate them.
-#
-# @author Steve Wilson
-
-
-############ FILE CHOOSER STRINGS #############
-
-FileChooser.lookInLabelText=Buscar en:
-FileChooser.lookInLabelMnemonic=73
-FileChooser.saveInLabelText=Guardar en:
-FileChooser.fileNameLabelText=Nombre de Archivo:
-FileChooser.fileNameLabelMnemonic=78
-FileChooser.folderNameLabelText=Nombre de la Carpeta:
-FileChooser.folderNameLabelMnemonic=78
-FileChooser.filesOfTypeLabelText=Archivos de Tipo:
-FileChooser.filesOfTypeLabelMnemonic=84
-FileChooser.upFolderToolTipText=Subir un Nivel
-FileChooser.upFolderAccessibleName=Arriba
-FileChooser.homeFolderToolTipText=Inicio
-FileChooser.homeFolderAccessibleName=Inicio
-FileChooser.newFolderToolTipText=Crear Nueva Carpeta
-FileChooser.newFolderAccessibleName=Nueva Carpeta
-FileChooser.newFolderActionLabelText=Nueva Carpeta
-FileChooser.listViewButtonToolTipText=Lista
-FileChooser.listViewButtonAccessibleName=Lista
-FileChooser.listViewActionLabelText=Lista
-FileChooser.detailsViewButtonToolTipText=Detalles
-FileChooser.detailsViewButtonAccessibleName=Detalles
-FileChooser.detailsViewActionLabelText=Detalles
-FileChooser.refreshActionLabelText=Refrescar
-FileChooser.viewMenuLabelText=Ver
-FileChooser.fileNameHeaderText=Nombre
-FileChooser.fileSizeHeaderText=Tama\u00F1o
-FileChooser.fileTypeHeaderText=Tipo
-FileChooser.fileDateHeaderText=Modificado
-FileChooser.fileAttrHeaderText=Atributos
+# This properties file is used to create a PropertyResourceBundle
+# It contains Locale specific strings used be the Synth Look and Feel.
+# Currently, the following components need this for support:
+#
+#    FileChooser
+#
+# When this file is read in, the strings are put into the
+# defaults table.  This is an implementation detail of the current
+# workings of Swing.  DO NOT DEPEND ON THIS.
+# This may change in future versions of Swing as we improve localization
+# support.
+#
+# Refer to the note in basic.properties for a description as to what
+# the mnemonics correspond to and how to calculate them.
+#
+# @author Steve Wilson
+
+
+############ FILE CHOOSER STRINGS #############
+
+FileChooser.lookInLabel.textAndMnemonic=Buscar en(&I):
+FileChooser.saveInLabel.textAndMnemonic=Guardar en:
+FileChooser.fileNameLabel.textAndMnemonic=&Nombre de Archivo:
+FileChooser.folderNameLabel.textAndMnemonic=&Nombre de la Carpeta:
+FileChooser.filesOfTypeLabel.textAndMnemonic=Archivos de &Tipo:
+FileChooser.upFolderToolTip.textAndMnemonic=Subir un Nivel
+FileChooser.upFolderAccessibleName=Arriba
+FileChooser.homeFolderToolTip.textAndMnemonic=Inicio
+FileChooser.homeFolderAccessibleName=Inicio
+FileChooser.newFolderToolTip.textAndMnemonic=Crear Nueva Carpeta
+FileChooser.newFolderAccessibleName=Nueva Carpeta
+FileChooser.newFolderActionLabel.textAndMnemonic=Nueva Carpeta
+FileChooser.listViewButtonToolTip.textAndMnemonic=Lista
+FileChooser.listViewButtonAccessibleName=Lista
+FileChooser.listViewActionLabel.textAndMnemonic=Lista
+FileChooser.detailsViewButtonToolTip.textAndMnemonic=Detalles
+FileChooser.detailsViewButtonAccessibleName=Detalles
+FileChooser.detailsViewActionLabel.textAndMnemonic=Detalles
+FileChooser.refreshActionLabel.textAndMnemonic=Refrescar
+FileChooser.viewMenuLabel.textAndMnemonic=Ver
+FileChooser.fileNameHeader.textAndMnemonic=Nombre
+FileChooser.fileSizeHeader.textAndMnemonic=Tama\u00F1o
+FileChooser.fileTypeHeader.textAndMnemonic=Tipo
+FileChooser.fileDateHeader.textAndMnemonic=Modificado
+FileChooser.fileAttrHeader.textAndMnemonic=Atributos
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_fr.properties	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_fr.properties	Wed Jul 05 18:07:57 2017 +0200
@@ -1,49 +1,45 @@
-# This properties file is used to create a PropertyResourceBundle
-# It contains Locale specific strings used be the Synth Look and Feel.
-# Currently, the following components need this for support:
-#
-#    FileChooser
-#
-# When this file is read in, the strings are put into the 
-# defaults table.  This is an implementation detail of the current
-# workings of Swing.  DO NOT DEPEND ON THIS.  
-# This may change in future versions of Swing as we improve localization 
-# support.
-#
-# Refer to the note in basic.properties for a description as to what
-# the mnemonics correspond to and how to calculate them.
-#
-# @author Steve Wilson
-
-
-############ FILE CHOOSER STRINGS #############
-
-FileChooser.lookInLabelText=Rechercher dans :
-FileChooser.lookInLabelMnemonic=73
-FileChooser.saveInLabelText=Enregistrer dans :
-FileChooser.fileNameLabelText=Nom du fichier :
-FileChooser.fileNameLabelMnemonic=78
-FileChooser.folderNameLabelText=Nom du dossier :
-FileChooser.folderNameLabelMnemonic=78
-FileChooser.filesOfTypeLabelText=Fichiers de type :
-FileChooser.filesOfTypeLabelMnemonic=84
-FileChooser.upFolderToolTipText=Remonte d'un niveau.
-FileChooser.upFolderAccessibleName=Monter
-FileChooser.homeFolderToolTipText=R\u00E9pertoire d'origine
-FileChooser.homeFolderAccessibleName=R\u00E9pertoire d'origine
-FileChooser.newFolderToolTipText=Cr\u00E9e un dossier.
-FileChooser.newFolderAccessibleName=Nouveau dossier
-FileChooser.newFolderActionLabelText=Nouveau dossier
-FileChooser.listViewButtonToolTipText=Liste
-FileChooser.listViewButtonAccessibleName=Liste
-FileChooser.listViewActionLabelText=Liste
-FileChooser.detailsViewButtonToolTipText=D\u00E9tails
-FileChooser.detailsViewButtonAccessibleName=D\u00E9tails
-FileChooser.detailsViewActionLabelText=D\u00E9tails
-FileChooser.refreshActionLabelText=Actualiser
-FileChooser.viewMenuLabelText=Affichage
-FileChooser.fileNameHeaderText=Nom
-FileChooser.fileSizeHeaderText=Taille
-FileChooser.fileTypeHeaderText=Type
-FileChooser.fileDateHeaderText=Modifi\u00E9
-FileChooser.fileAttrHeaderText=Attributs
+# This properties file is used to create a PropertyResourceBundle
+# It contains Locale specific strings used be the Synth Look and Feel.
+# Currently, the following components need this for support:
+#
+#    FileChooser
+#
+# When this file is read in, the strings are put into the
+# defaults table.  This is an implementation detail of the current
+# workings of Swing.  DO NOT DEPEND ON THIS.
+# This may change in future versions of Swing as we improve localization
+# support.
+#
+# Refer to the note in basic.properties for a description as to what
+# the mnemonics correspond to and how to calculate them.
+#
+# @author Steve Wilson
+
+
+############ FILE CHOOSER STRINGS #############
+
+FileChooser.lookInLabel.textAndMnemonic=Rechercher dans (&I):
+FileChooser.saveInLabel.textAndMnemonic=Enregistrer dans :
+FileChooser.fileNameLabel.textAndMnemonic=&Nom du fichier :
+FileChooser.folderNameLabel.textAndMnemonic=&Nom du dossier :
+FileChooser.filesOfTypeLabel.textAndMnemonic=Fichiers de &type :
+FileChooser.upFolderToolTip.textAndMnemonic=Remonte d'un niveau.
+FileChooser.upFolderAccessibleName=Monter
+FileChooser.homeFolderToolTip.textAndMnemonic=R\u00E9pertoire d'origine
+FileChooser.homeFolderAccessibleName=R\u00E9pertoire d'origine
+FileChooser.newFolderToolTip.textAndMnemonic=Cr\u00E9e un dossier.
+FileChooser.newFolderAccessibleName=Nouveau dossier
+FileChooser.newFolderActionLabel.textAndMnemonic=Nouveau dossier
+FileChooser.listViewButtonToolTip.textAndMnemonic=Liste
+FileChooser.listViewButtonAccessibleName=Liste
+FileChooser.listViewActionLabel.textAndMnemonic=Liste
+FileChooser.detailsViewButtonToolTip.textAndMnemonic=D\u00E9tails
+FileChooser.detailsViewButtonAccessibleName=D\u00E9tails
+FileChooser.detailsViewActionLabel.textAndMnemonic=D\u00E9tails
+FileChooser.refreshActionLabel.textAndMnemonic=Actualiser
+FileChooser.viewMenuLabel.textAndMnemonic=Affichage
+FileChooser.fileNameHeader.textAndMnemonic=Nom
+FileChooser.fileSizeHeader.textAndMnemonic=Taille
+FileChooser.fileTypeHeader.textAndMnemonic=Type
+FileChooser.fileDateHeader.textAndMnemonic=Modifi\u00E9
+FileChooser.fileAttrHeader.textAndMnemonic=Attributs
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_it.properties	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_it.properties	Wed Jul 05 18:07:57 2017 +0200
@@ -1,49 +1,45 @@
-# This properties file is used to create a PropertyResourceBundle
-# It contains Locale specific strings used be the Synth Look and Feel.
-# Currently, the following components need this for support:
-#
-#    FileChooser
-#
-# When this file is read in, the strings are put into the 
-# defaults table.  This is an implementation detail of the current
-# workings of Swing.  DO NOT DEPEND ON THIS.  
-# This may change in future versions of Swing as we improve localization 
-# support.
-#
-# Refer to the note in basic.properties for a description as to what
-# the mnemonics correspond to and how to calculate them.
-#
-# @author Steve Wilson
-
-
-############ FILE CHOOSER STRINGS #############
-
-FileChooser.lookInLabelText=Cerca in:
-FileChooser.lookInLabelMnemonic=73
-FileChooser.saveInLabelText=Salva in:
-FileChooser.fileNameLabelText=Nome file:
-FileChooser.fileNameLabelMnemonic=78
-FileChooser.folderNameLabelText=Nome della cartella:
-FileChooser.folderNameLabelMnemonic=78
-FileChooser.filesOfTypeLabelText=Tipo file:
-FileChooser.filesOfTypeLabelMnemonic=84
-FileChooser.upFolderToolTipText=Cartella superiore
-FileChooser.upFolderAccessibleName=Superiore
-FileChooser.homeFolderToolTipText=Home
-FileChooser.homeFolderAccessibleName=Home
-FileChooser.newFolderToolTipText=Crea nuova cartella
-FileChooser.newFolderAccessibleName=Nuova cartella
-FileChooser.newFolderActionLabelText=Nuova cartella
-FileChooser.listViewButtonToolTipText=Lista
-FileChooser.listViewButtonAccessibleName=Lista
-FileChooser.listViewActionLabelText=Lista
-FileChooser.detailsViewButtonToolTipText=Dettagli
-FileChooser.detailsViewButtonAccessibleName=Dettagli
-FileChooser.detailsViewActionLabelText=Dettagli
-FileChooser.refreshActionLabelText=Aggiorna
-FileChooser.viewMenuLabelText=Visualizza
-FileChooser.fileNameHeaderText=Nome
-FileChooser.fileSizeHeaderText=Dimensioni
-FileChooser.fileTypeHeaderText=Tipo
-FileChooser.fileDateHeaderText=Modificato
-FileChooser.fileAttrHeaderText=Attributi
+# This properties file is used to create a PropertyResourceBundle
+# It contains Locale specific strings used be the Synth Look and Feel.
+# Currently, the following components need this for support:
+#
+#    FileChooser
+#
+# When this file is read in, the strings are put into the
+# defaults table.  This is an implementation detail of the current
+# workings of Swing.  DO NOT DEPEND ON THIS.
+# This may change in future versions of Swing as we improve localization
+# support.
+#
+# Refer to the note in basic.properties for a description as to what
+# the mnemonics correspond to and how to calculate them.
+#
+# @author Steve Wilson
+
+
+############ FILE CHOOSER STRINGS #############
+
+FileChooser.lookInLabel.textAndMnemonic=Cerca &in:
+FileChooser.saveInLabel.textAndMnemonic=Salva in:
+FileChooser.fileNameLabel.textAndMnemonic=&Nome file:
+FileChooser.folderNameLabel.textAndMnemonic=&Nome della cartella:
+FileChooser.filesOfTypeLabel.textAndMnemonic=&Tipo file:
+FileChooser.upFolderToolTip.textAndMnemonic=Cartella superiore
+FileChooser.upFolderAccessibleName=Superiore
+FileChooser.homeFolderToolTip.textAndMnemonic=Home
+FileChooser.homeFolderAccessibleName=Home
+FileChooser.newFolderToolTip.textAndMnemonic=Crea nuova cartella
+FileChooser.newFolderAccessibleName=Nuova cartella
+FileChooser.newFolderActionLabel.textAndMnemonic=Nuova cartella
+FileChooser.listViewButtonToolTip.textAndMnemonic=Lista
+FileChooser.listViewButtonAccessibleName=Lista
+FileChooser.listViewActionLabel.textAndMnemonic=Lista
+FileChooser.detailsViewButtonToolTip.textAndMnemonic=Dettagli
+FileChooser.detailsViewButtonAccessibleName=Dettagli
+FileChooser.detailsViewActionLabel.textAndMnemonic=Dettagli
+FileChooser.refreshActionLabel.textAndMnemonic=Aggiorna
+FileChooser.viewMenuLabel.textAndMnemonic=Visualizza
+FileChooser.fileNameHeader.textAndMnemonic=Nome
+FileChooser.fileSizeHeader.textAndMnemonic=Dimensioni
+FileChooser.fileTypeHeader.textAndMnemonic=Tipo
+FileChooser.fileDateHeader.textAndMnemonic=Modificato
+FileChooser.fileAttrHeader.textAndMnemonic=Attributi
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_ja.properties	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_ja.properties	Wed Jul 05 18:07:57 2017 +0200
@@ -1,49 +1,45 @@
-# This properties file is used to create a PropertyResourceBundle
-# It contains Locale specific strings used be the Synth Look and Feel.
-# Currently, the following components need this for support:
-#
-#    FileChooser
-#
-# When this file is read in, the strings are put into the 
-# defaults table.  This is an implementation detail of the current
-# workings of Swing.  DO NOT DEPEND ON THIS.  
-# This may change in future versions of Swing as we improve localization 
-# support.
-#
-# Refer to the note in basic.properties for a description as to what
-# the mnemonics correspond to and how to calculate them.
-#
-# @author Steve Wilson
-
-
-############ FILE CHOOSER STRINGS #############
-
-FileChooser.lookInLabelText=\u53C2\u7167:
-FileChooser.lookInLabelMnemonic=73
-FileChooser.saveInLabelText=\u4FDD\u5B58:
-FileChooser.fileNameLabelText=\u30D5\u30A1\u30A4\u30EB\u540D:
-FileChooser.fileNameLabelMnemonic=78
-FileChooser.folderNameLabelText=\u30D5\u30A9\u30EB\u30C0\u540D:
-FileChooser.folderNameLabelMnemonic=78
-FileChooser.filesOfTypeLabelText=\u30D5\u30A1\u30A4\u30EB\u306E\u30BF\u30A4\u30D7:
-FileChooser.filesOfTypeLabelMnemonic=84
-FileChooser.upFolderToolTipText=1\u30EC\u30D9\u30EB\u4E0A\u3078
-FileChooser.upFolderAccessibleName=\u4E0A\u3078
-FileChooser.homeFolderToolTipText=\u30DB\u30FC\u30E0
-FileChooser.homeFolderAccessibleName=\u30DB\u30FC\u30E0
-FileChooser.newFolderToolTipText=\u65B0\u898F\u30D5\u30A9\u30EB\u30C0\u306E\u4F5C\u6210
-FileChooser.newFolderAccessibleName=\u65B0\u898F\u30D5\u30A9\u30EB\u30C0
-FileChooser.newFolderActionLabelText=\u65B0\u898F\u30D5\u30A9\u30EB\u30C0
-FileChooser.listViewButtonToolTipText=\u30EA\u30B9\u30C8
-FileChooser.listViewButtonAccessibleName=\u30EA\u30B9\u30C8
-FileChooser.listViewActionLabelText=\u30EA\u30B9\u30C8
-FileChooser.detailsViewButtonToolTipText=\u8A73\u7D30
-FileChooser.detailsViewButtonAccessibleName=\u8A73\u7D30
-FileChooser.detailsViewActionLabelText=\u8A73\u7D30
-FileChooser.refreshActionLabelText=\u30EA\u30D5\u30EC\u30C3\u30B7\u30E5
-FileChooser.viewMenuLabelText=\u8868\u793A
-FileChooser.fileNameHeaderText=\u540D\u524D
-FileChooser.fileSizeHeaderText=\u30B5\u30A4\u30BA
-FileChooser.fileTypeHeaderText=\u30BF\u30A4\u30D7
-FileChooser.fileDateHeaderText=\u4FEE\u6B63\u65E5
-FileChooser.fileAttrHeaderText=\u5C5E\u6027
+# This properties file is used to create a PropertyResourceBundle
+# It contains Locale specific strings used be the Synth Look and Feel.
+# Currently, the following components need this for support:
+#
+#    FileChooser
+#
+# When this file is read in, the strings are put into the
+# defaults table.  This is an implementation detail of the current
+# workings of Swing.  DO NOT DEPEND ON THIS.
+# This may change in future versions of Swing as we improve localization
+# support.
+#
+# Refer to the note in basic.properties for a description as to what
+# the mnemonics correspond to and how to calculate them.
+#
+# @author Steve Wilson
+
+
+############ FILE CHOOSER STRINGS #############
+
+FileChooser.lookInLabel.textAndMnemonic=\u53C2\u7167(&I):
+FileChooser.saveInLabel.textAndMnemonic=\u4FDD\u5B58:
+FileChooser.fileNameLabel.textAndMnemonic=\u30D5\u30A1\u30A4\u30EB\u540D(&N):
+FileChooser.folderNameLabel.textAndMnemonic=\u30D5\u30A9\u30EB\u30C0\u540D(&N):
+FileChooser.filesOfTypeLabel.textAndMnemonic=\u30D5\u30A1\u30A4\u30EB\u306E\u30BF\u30A4\u30D7(&T):
+FileChooser.upFolderToolTip.textAndMnemonic=1\u30EC\u30D9\u30EB\u4E0A\u3078
+FileChooser.upFolderAccessibleName=\u4E0A\u3078
+FileChooser.homeFolderToolTip.textAndMnemonic=\u30DB\u30FC\u30E0
+FileChooser.homeFolderAccessibleName=\u30DB\u30FC\u30E0
+FileChooser.newFolderToolTip.textAndMnemonic=\u65B0\u898F\u30D5\u30A9\u30EB\u30C0\u306E\u4F5C\u6210
+FileChooser.newFolderAccessibleName=\u65B0\u898F\u30D5\u30A9\u30EB\u30C0
+FileChooser.newFolderActionLabel.textAndMnemonic=\u65B0\u898F\u30D5\u30A9\u30EB\u30C0
+FileChooser.listViewButtonToolTip.textAndMnemonic=\u30EA\u30B9\u30C8
+FileChooser.listViewButtonAccessibleName=\u30EA\u30B9\u30C8
+FileChooser.listViewActionLabel.textAndMnemonic=\u30EA\u30B9\u30C8
+FileChooser.detailsViewButtonToolTip.textAndMnemonic=\u8A73\u7D30
+FileChooser.detailsViewButtonAccessibleName=\u8A73\u7D30
+FileChooser.detailsViewActionLabel.textAndMnemonic=\u8A73\u7D30
+FileChooser.refreshActionLabel.textAndMnemonic=\u30EA\u30D5\u30EC\u30C3\u30B7\u30E5
+FileChooser.viewMenuLabel.textAndMnemonic=\u8868\u793A
+FileChooser.fileNameHeader.textAndMnemonic=\u540D\u524D
+FileChooser.fileSizeHeader.textAndMnemonic=\u30B5\u30A4\u30BA
+FileChooser.fileTypeHeader.textAndMnemonic=\u30BF\u30A4\u30D7
+FileChooser.fileDateHeader.textAndMnemonic=\u4FEE\u6B63\u65E5
+FileChooser.fileAttrHeader.textAndMnemonic=\u5C5E\u6027
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_ko.properties	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_ko.properties	Wed Jul 05 18:07:57 2017 +0200
@@ -1,49 +1,45 @@
-# This properties file is used to create a PropertyResourceBundle
-# It contains Locale specific strings used be the Synth Look and Feel.
-# Currently, the following components need this for support:
-#
-#    FileChooser
-#
-# When this file is read in, the strings are put into the 
-# defaults table.  This is an implementation detail of the current
-# workings of Swing.  DO NOT DEPEND ON THIS.  
-# This may change in future versions of Swing as we improve localization 
-# support.
-#
-# Refer to the note in basic.properties for a description as to what
-# the mnemonics correspond to and how to calculate them.
-#
-# @author Steve Wilson
-
-
-############ FILE CHOOSER STRINGS #############
-
-FileChooser.lookInLabelText=\uAC80\uC0C9 \uC704\uCE58:
-FileChooser.lookInLabelMnemonic=73
-FileChooser.saveInLabelText=\uC800\uC7A5 \uC704\uCE58:
-FileChooser.fileNameLabelText=\uD30C\uC77C \uC774\uB984:
-FileChooser.fileNameLabelMnemonic=78
-FileChooser.folderNameLabelText=\uD3F4\uB354 \uC774\uB984:
-FileChooser.folderNameLabelMnemonic=78
-FileChooser.filesOfTypeLabelText=\uD30C\uC77C \uC720\uD615:
-FileChooser.filesOfTypeLabelMnemonic=84
-FileChooser.upFolderToolTipText=\uD55C \uB808\uBCA8 \uC704\uB85C
-FileChooser.upFolderAccessibleName=\uC704\uB85C
-FileChooser.homeFolderToolTipText=\uD648
-FileChooser.homeFolderAccessibleName=\uD648
-FileChooser.newFolderToolTipText=\uC0C8 \uD3F4\uB354 \uC0DD\uC131
-FileChooser.newFolderAccessibleName=\uC0C8 \uD3F4\uB354
-FileChooser.newFolderActionLabelText=\uC0C8 \uD3F4\uB354
-FileChooser.listViewButtonToolTipText=\uBAA9\uB85D
-FileChooser.listViewButtonAccessibleName=\uBAA9\uB85D
-FileChooser.listViewActionLabelText=\uBAA9\uB85D
-FileChooser.detailsViewButtonToolTipText=\uC138\uBD80 \uC815\uBCF4
-FileChooser.detailsViewButtonAccessibleName=\uC138\uBD80 \uC815\uBCF4
-FileChooser.detailsViewActionLabelText=\uC138\uBD80 \uC815\uBCF4
-FileChooser.refreshActionLabelText=\uC0C8\uB85C \uACE0\uCE68
-FileChooser.viewMenuLabelText=\uBCF4\uAE30
-FileChooser.fileNameHeaderText=\uC774\uB984
-FileChooser.fileSizeHeaderText=\uD06C\uAE30
-FileChooser.fileTypeHeaderText=\uC720\uD615
-FileChooser.fileDateHeaderText=\uC218\uC815 \uB0A0\uC9DC
-FileChooser.fileAttrHeaderText=\uC18D\uC131
+# This properties file is used to create a PropertyResourceBundle
+# It contains Locale specific strings used be the Synth Look and Feel.
+# Currently, the following components need this for support:
+#
+#    FileChooser
+#
+# When this file is read in, the strings are put into the
+# defaults table.  This is an implementation detail of the current
+# workings of Swing.  DO NOT DEPEND ON THIS.
+# This may change in future versions of Swing as we improve localization
+# support.
+#
+# Refer to the note in basic.properties for a description as to what
+# the mnemonics correspond to and how to calculate them.
+#
+# @author Steve Wilson
+
+
+############ FILE CHOOSER STRINGS #############
+
+FileChooser.lookInLabel.textAndMnemonic=\uAC80\uC0C9 \uC704\uCE58(&I):
+FileChooser.saveInLabel.textAndMnemonic=\uC800\uC7A5 \uC704\uCE58:
+FileChooser.fileNameLabel.textAndMnemonic=\uD30C\uC77C \uC774\uB984(&N):
+FileChooser.folderNameLabel.textAndMnemonic=\uD3F4\uB354 \uC774\uB984(&N):
+FileChooser.filesOfTypeLabel.textAndMnemonic=\uD30C\uC77C \uC720\uD615(&T):
+FileChooser.upFolderToolTip.textAndMnemonic=\uD55C \uB808\uBCA8 \uC704\uB85C
+FileChooser.upFolderAccessibleName=\uC704\uB85C
+FileChooser.homeFolderToolTip.textAndMnemonic=\uD648
+FileChooser.homeFolderAccessibleName=\uD648
+FileChooser.newFolderToolTip.textAndMnemonic=\uC0C8 \uD3F4\uB354 \uC0DD\uC131
+FileChooser.newFolderAccessibleName=\uC0C8 \uD3F4\uB354
+FileChooser.newFolderActionLabel.textAndMnemonic=\uC0C8 \uD3F4\uB354
+FileChooser.listViewButtonToolTip.textAndMnemonic=\uBAA9\uB85D
+FileChooser.listViewButtonAccessibleName=\uBAA9\uB85D
+FileChooser.listViewActionLabel.textAndMnemonic=\uBAA9\uB85D
+FileChooser.detailsViewButtonToolTip.textAndMnemonic=\uC138\uBD80 \uC815\uBCF4
+FileChooser.detailsViewButtonAccessibleName=\uC138\uBD80 \uC815\uBCF4
+FileChooser.detailsViewActionLabel.textAndMnemonic=\uC138\uBD80 \uC815\uBCF4
+FileChooser.refreshActionLabel.textAndMnemonic=\uC0C8\uB85C \uACE0\uCE68
+FileChooser.viewMenuLabel.textAndMnemonic=\uBCF4\uAE30
+FileChooser.fileNameHeader.textAndMnemonic=\uC774\uB984
+FileChooser.fileSizeHeader.textAndMnemonic=\uD06C\uAE30
+FileChooser.fileTypeHeader.textAndMnemonic=\uC720\uD615
+FileChooser.fileDateHeader.textAndMnemonic=\uC218\uC815 \uB0A0\uC9DC
+FileChooser.fileAttrHeader.textAndMnemonic=\uC18D\uC131
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_pt_BR.properties	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_pt_BR.properties	Wed Jul 05 18:07:57 2017 +0200
@@ -1,49 +1,45 @@
-# This properties file is used to create a PropertyResourceBundle
-# It contains Locale specific strings used be the Synth Look and Feel.
-# Currently, the following components need this for support:
-#
-#    FileChooser
-#
-# When this file is read in, the strings are put into the 
-# defaults table.  This is an implementation detail of the current
-# workings of Swing.  DO NOT DEPEND ON THIS.  
-# This may change in future versions of Swing as we improve localization 
-# support.
-#
-# Refer to the note in basic.properties for a description as to what
-# the mnemonics correspond to and how to calculate them.
-#
-# @author Steve Wilson
-
-
-############ FILE CHOOSER STRINGS #############
-
-FileChooser.lookInLabelText=Consultar Em:
-FileChooser.lookInLabelMnemonic=73
-FileChooser.saveInLabelText=Salvar Em:
-FileChooser.fileNameLabelText=Nome do Arquivo:
-FileChooser.fileNameLabelMnemonic=78
-FileChooser.folderNameLabelText=Nome da pasta:
-FileChooser.folderNameLabelMnemonic=78
-FileChooser.filesOfTypeLabelText=Arquivos do Tipo:
-FileChooser.filesOfTypeLabelMnemonic=84
-FileChooser.upFolderToolTipText=Um N\u00EDvel Acima
-FileChooser.upFolderAccessibleName=Acima
-FileChooser.homeFolderToolTipText=In\u00EDcio
-FileChooser.homeFolderAccessibleName=In\u00EDcio
-FileChooser.newFolderToolTipText=Criar Nova Pasta
-FileChooser.newFolderAccessibleName=Nova Pasta
-FileChooser.newFolderActionLabelText=Nova Pasta
-FileChooser.listViewButtonToolTipText=Lista
-FileChooser.listViewButtonAccessibleName=Lista
-FileChooser.listViewActionLabelText=Lista
-FileChooser.detailsViewButtonToolTipText=Detalhes
-FileChooser.detailsViewButtonAccessibleName=Detalhes
-FileChooser.detailsViewActionLabelText=Detalhes
-FileChooser.refreshActionLabelText=Atualizar
-FileChooser.viewMenuLabelText=Exibir
-FileChooser.fileNameHeaderText=Nome
-FileChooser.fileSizeHeaderText=Tamanho
-FileChooser.fileTypeHeaderText=Tipo
-FileChooser.fileDateHeaderText=Modificado
-FileChooser.fileAttrHeaderText=Atributos
+# This properties file is used to create a PropertyResourceBundle
+# It contains Locale specific strings used be the Synth Look and Feel.
+# Currently, the following components need this for support:
+#
+#    FileChooser
+#
+# When this file is read in, the strings are put into the
+# defaults table.  This is an implementation detail of the current
+# workings of Swing.  DO NOT DEPEND ON THIS.
+# This may change in future versions of Swing as we improve localization
+# support.
+#
+# Refer to the note in basic.properties for a description as to what
+# the mnemonics correspond to and how to calculate them.
+#
+# @author Steve Wilson
+
+
+############ FILE CHOOSER STRINGS #############
+
+FileChooser.lookInLabel.textAndMnemonic=Consultar Em(&I):
+FileChooser.saveInLabel.textAndMnemonic=Salvar Em:
+FileChooser.fileNameLabel.textAndMnemonic=&Nome do Arquivo:
+FileChooser.folderNameLabel.textAndMnemonic=&Nome da pasta:
+FileChooser.filesOfTypeLabel.textAndMnemonic=Arquivos do &Tipo:
+FileChooser.upFolderToolTip.textAndMnemonic=Um N\u00EDvel Acima
+FileChooser.upFolderAccessibleName=Acima
+FileChooser.homeFolderToolTip.textAndMnemonic=In\u00EDcio
+FileChooser.homeFolderAccessibleName=In\u00EDcio
+FileChooser.newFolderToolTip.textAndMnemonic=Criar Nova Pasta
+FileChooser.newFolderAccessibleName=Nova Pasta
+FileChooser.newFolderActionLabel.textAndMnemonic=Nova Pasta
+FileChooser.listViewButtonToolTip.textAndMnemonic=Lista
+FileChooser.listViewButtonAccessibleName=Lista
+FileChooser.listViewActionLabel.textAndMnemonic=Lista
+FileChooser.detailsViewButtonToolTip.textAndMnemonic=Detalhes
+FileChooser.detailsViewButtonAccessibleName=Detalhes
+FileChooser.detailsViewActionLabel.textAndMnemonic=Detalhes
+FileChooser.refreshActionLabel.textAndMnemonic=Atualizar
+FileChooser.viewMenuLabel.textAndMnemonic=Exibir
+FileChooser.fileNameHeader.textAndMnemonic=Nome
+FileChooser.fileSizeHeader.textAndMnemonic=Tamanho
+FileChooser.fileTypeHeader.textAndMnemonic=Tipo
+FileChooser.fileDateHeader.textAndMnemonic=Modificado
+FileChooser.fileAttrHeader.textAndMnemonic=Atributos
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_sv.properties	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_sv.properties	Wed Jul 05 18:07:57 2017 +0200
@@ -1,49 +1,45 @@
-# This properties file is used to create a PropertyResourceBundle
-# It contains Locale specific strings used be the Synth Look and Feel.
-# Currently, the following components need this for support:
-#
-#    FileChooser
-#
-# When this file is read in, the strings are put into the 
-# defaults table.  This is an implementation detail of the current
-# workings of Swing.  DO NOT DEPEND ON THIS.  
-# This may change in future versions of Swing as we improve localization 
-# support.
-#
-# Refer to the note in basic.properties for a description as to what
-# the mnemonics correspond to and how to calculate them.
-#
-# @author Steve Wilson
-
-
-############ FILE CHOOSER STRINGS #############
-
-FileChooser.lookInLabelText=Leta i:
-FileChooser.lookInLabelMnemonic=73
-FileChooser.saveInLabelText=Spara i:
-FileChooser.fileNameLabelText=Filnamn:
-FileChooser.fileNameLabelMnemonic=78
-FileChooser.folderNameLabelText=Mapp:
-FileChooser.folderNameLabelMnemonic=78
-FileChooser.filesOfTypeLabelText=Filformat:
-FileChooser.filesOfTypeLabelMnemonic=84
-FileChooser.upFolderToolTipText=Upp en niv\u00E5
-FileChooser.upFolderAccessibleName=Upp
-FileChooser.homeFolderToolTipText=Hem
-FileChooser.homeFolderAccessibleName=Hem
-FileChooser.newFolderToolTipText=Skapa ny mapp
-FileChooser.newFolderAccessibleName=Ny mapp
-FileChooser.newFolderActionLabelText=Ny mapp
-FileChooser.listViewButtonToolTipText=Lista
-FileChooser.listViewButtonAccessibleName=Lista
-FileChooser.listViewActionLabelText=Lista
-FileChooser.detailsViewButtonToolTipText=Detaljer
-FileChooser.detailsViewButtonAccessibleName=Detaljer
-FileChooser.detailsViewActionLabelText=Detaljer
-FileChooser.refreshActionLabelText=F\u00F6rnya
-FileChooser.viewMenuLabelText=Vy
-FileChooser.fileNameHeaderText=Namn
-FileChooser.fileSizeHeaderText=Storlek
-FileChooser.fileTypeHeaderText=Typ
-FileChooser.fileDateHeaderText=\u00C4ndrad
-FileChooser.fileAttrHeaderText=Attribut
+# This properties file is used to create a PropertyResourceBundle
+# It contains Locale specific strings used be the Synth Look and Feel.
+# Currently, the following components need this for support:
+#
+#    FileChooser
+#
+# When this file is read in, the strings are put into the
+# defaults table.  This is an implementation detail of the current
+# workings of Swing.  DO NOT DEPEND ON THIS.
+# This may change in future versions of Swing as we improve localization
+# support.
+#
+# Refer to the note in basic.properties for a description as to what
+# the mnemonics correspond to and how to calculate them.
+#
+# @author Steve Wilson
+
+
+############ FILE CHOOSER STRINGS #############
+
+FileChooser.lookInLabel.textAndMnemonic=Leta &i:
+FileChooser.saveInLabel.textAndMnemonic=Spara i:
+FileChooser.fileNameLabel.textAndMnemonic=Fil&namn:
+FileChooser.folderNameLabel.textAndMnemonic=Mapp(&N):
+FileChooser.filesOfTypeLabel.textAndMnemonic=Filforma&t:
+FileChooser.upFolderToolTip.textAndMnemonic=Upp en niv\u00E5
+FileChooser.upFolderAccessibleName=Upp
+FileChooser.homeFolderToolTip.textAndMnemonic=Hem
+FileChooser.homeFolderAccessibleName=Hem
+FileChooser.newFolderToolTip.textAndMnemonic=Skapa ny mapp
+FileChooser.newFolderAccessibleName=Ny mapp
+FileChooser.newFolderActionLabel.textAndMnemonic=Ny mapp
+FileChooser.listViewButtonToolTip.textAndMnemonic=Lista
+FileChooser.listViewButtonAccessibleName=Lista
+FileChooser.listViewActionLabel.textAndMnemonic=Lista
+FileChooser.detailsViewButtonToolTip.textAndMnemonic=Detaljer
+FileChooser.detailsViewButtonAccessibleName=Detaljer
+FileChooser.detailsViewActionLabel.textAndMnemonic=Detaljer
+FileChooser.refreshActionLabel.textAndMnemonic=F\u00F6rnya
+FileChooser.viewMenuLabel.textAndMnemonic=Vy
+FileChooser.fileNameHeader.textAndMnemonic=Namn
+FileChooser.fileSizeHeader.textAndMnemonic=Storlek
+FileChooser.fileTypeHeader.textAndMnemonic=Typ
+FileChooser.fileDateHeader.textAndMnemonic=\u00C4ndrad
+FileChooser.fileAttrHeader.textAndMnemonic=Attribut
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_zh_CN.properties	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_zh_CN.properties	Wed Jul 05 18:07:57 2017 +0200
@@ -1,49 +1,45 @@
-# This properties file is used to create a PropertyResourceBundle
-# It contains Locale specific strings used be the Synth Look and Feel.
-# Currently, the following components need this for support:
-#
-#    FileChooser
-#
-# When this file is read in, the strings are put into the 
-# defaults table.  This is an implementation detail of the current
-# workings of Swing.  DO NOT DEPEND ON THIS.  
-# This may change in future versions of Swing as we improve localization 
-# support.
-#
-# Refer to the note in basic.properties for a description as to what
-# the mnemonics correspond to and how to calculate them.
-#
-# @author Steve Wilson
-
-
-############ FILE CHOOSER STRINGS #############
-
-FileChooser.lookInLabelText=\u67E5\u770B: 
-FileChooser.lookInLabelMnemonic=73
-FileChooser.saveInLabelText=\u4FDD\u5B58: 
-FileChooser.fileNameLabelText=\u6587\u4EF6\u540D: 
-FileChooser.fileNameLabelMnemonic=78
-FileChooser.folderNameLabelText=\u6587\u4EF6\u5939\u540D: 
-FileChooser.folderNameLabelMnemonic=78
-FileChooser.filesOfTypeLabelText=\u6587\u4EF6\u7C7B\u578B: 
-FileChooser.filesOfTypeLabelMnemonic=84
-FileChooser.upFolderToolTipText=\u5411\u4E0A\u4E00\u7EA7
-FileChooser.upFolderAccessibleName=\u5411\u4E0A
-FileChooser.homeFolderToolTipText=\u4E3B\u76EE\u5F55
-FileChooser.homeFolderAccessibleName=\u4E3B\u76EE\u5F55
-FileChooser.newFolderToolTipText=\u521B\u5EFA\u65B0\u6587\u4EF6\u5939
-FileChooser.newFolderAccessibleName=\u65B0\u5EFA\u6587\u4EF6\u5939
-FileChooser.newFolderActionLabelText=\u65B0\u5EFA\u6587\u4EF6\u5939
-FileChooser.listViewButtonToolTipText=\u5217\u8868
-FileChooser.listViewButtonAccessibleName=\u5217\u8868
-FileChooser.listViewActionLabelText=\u5217\u8868
-FileChooser.detailsViewButtonToolTipText=\u8BE6\u7EC6\u8D44\u6599
-FileChooser.detailsViewButtonAccessibleName=\u8BE6\u7EC6\u8D44\u6599
-FileChooser.detailsViewActionLabelText=\u8BE6\u7EC6\u8D44\u6599
-FileChooser.refreshActionLabelText=\u5237\u65B0
-FileChooser.viewMenuLabelText=\u89C6\u56FE
-FileChooser.fileNameHeaderText=\u540D\u79F0
-FileChooser.fileSizeHeaderText=\u5927\u5C0F
-FileChooser.fileTypeHeaderText=\u7C7B\u578B
-FileChooser.fileDateHeaderText=\u4FEE\u6539\u65E5\u671F
-FileChooser.fileAttrHeaderText=\u5C5E\u6027
+# This properties file is used to create a PropertyResourceBundle
+# It contains Locale specific strings used be the Synth Look and Feel.
+# Currently, the following components need this for support:
+#
+#    FileChooser
+#
+# When this file is read in, the strings are put into the
+# defaults table.  This is an implementation detail of the current
+# workings of Swing.  DO NOT DEPEND ON THIS.
+# This may change in future versions of Swing as we improve localization
+# support.
+#
+# Refer to the note in basic.properties for a description as to what
+# the mnemonics correspond to and how to calculate them.
+#
+# @author Steve Wilson
+
+
+############ FILE CHOOSER STRINGS #############
+
+FileChooser.lookInLabel.textAndMnemonic=\u67E5\u770B(&I):
+FileChooser.saveInLabel.textAndMnemonic=\u4FDD\u5B58:
+FileChooser.fileNameLabel.textAndMnemonic=\u6587\u4EF6\u540D(&N):
+FileChooser.folderNameLabel.textAndMnemonic=\u6587\u4EF6\u5939\u540D(&N):
+FileChooser.filesOfTypeLabel.textAndMnemonic=\u6587\u4EF6\u7C7B\u578B(&T):
+FileChooser.upFolderToolTip.textAndMnemonic=\u5411\u4E0A\u4E00\u7EA7
+FileChooser.upFolderAccessibleName=\u5411\u4E0A
+FileChooser.homeFolderToolTip.textAndMnemonic=\u4E3B\u76EE\u5F55
+FileChooser.homeFolderAccessibleName=\u4E3B\u76EE\u5F55
+FileChooser.newFolderToolTip.textAndMnemonic=\u521B\u5EFA\u65B0\u6587\u4EF6\u5939
+FileChooser.newFolderAccessibleName=\u65B0\u5EFA\u6587\u4EF6\u5939
+FileChooser.newFolderActionLabel.textAndMnemonic=\u65B0\u5EFA\u6587\u4EF6\u5939
+FileChooser.listViewButtonToolTip.textAndMnemonic=\u5217\u8868
+FileChooser.listViewButtonAccessibleName=\u5217\u8868
+FileChooser.listViewActionLabel.textAndMnemonic=\u5217\u8868
+FileChooser.detailsViewButtonToolTip.textAndMnemonic=\u8BE6\u7EC6\u8D44\u6599
+FileChooser.detailsViewButtonAccessibleName=\u8BE6\u7EC6\u8D44\u6599
+FileChooser.detailsViewActionLabel.textAndMnemonic=\u8BE6\u7EC6\u8D44\u6599
+FileChooser.refreshActionLabel.textAndMnemonic=\u5237\u65B0
+FileChooser.viewMenuLabel.textAndMnemonic=\u89C6\u56FE
+FileChooser.fileNameHeader.textAndMnemonic=\u540D\u79F0
+FileChooser.fileSizeHeader.textAndMnemonic=\u5927\u5C0F
+FileChooser.fileTypeHeader.textAndMnemonic=\u7C7B\u578B
+FileChooser.fileDateHeader.textAndMnemonic=\u4FEE\u6539\u65E5\u671F
+FileChooser.fileAttrHeader.textAndMnemonic=\u5C5E\u6027
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_zh_TW.properties	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_zh_TW.properties	Wed Jul 05 18:07:57 2017 +0200
@@ -1,49 +1,45 @@
-# This properties file is used to create a PropertyResourceBundle
-# It contains Locale specific strings used be the Synth Look and Feel.
-# Currently, the following components need this for support:
-#
-#    FileChooser
-#
-# When this file is read in, the strings are put into the 
-# defaults table.  This is an implementation detail of the current
-# workings of Swing.  DO NOT DEPEND ON THIS.  
-# This may change in future versions of Swing as we improve localization 
-# support.
-#
-# Refer to the note in basic.properties for a description as to what
-# the mnemonics correspond to and how to calculate them.
-#
-# @author Steve Wilson
-
-
-############ FILE CHOOSER STRINGS #############
-
-FileChooser.lookInLabelText=\u67E5\u8A62:
-FileChooser.lookInLabelMnemonic=73
-FileChooser.saveInLabelText=\u5132\u5B58\u65BC: 
-FileChooser.fileNameLabelText=\u6A94\u6848\u540D\u7A31:
-FileChooser.fileNameLabelMnemonic=78
-FileChooser.folderNameLabelText=\u8CC7\u6599\u593E\u540D\u7A31:
-FileChooser.folderNameLabelMnemonic=78
-FileChooser.filesOfTypeLabelText=\u6A94\u6848\u985E\u578B:
-FileChooser.filesOfTypeLabelMnemonic=84
-FileChooser.upFolderToolTipText=\u5F80\u4E0A\u4E00\u5C64
-FileChooser.upFolderAccessibleName=\u5F80\u4E0A
-FileChooser.homeFolderToolTipText=\u4E3B\u76EE\u9304
-FileChooser.homeFolderAccessibleName=\u4E3B\u76EE\u9304
-FileChooser.newFolderToolTipText=\u5EFA\u7ACB\u65B0\u8CC7\u6599\u593E
-FileChooser.newFolderAccessibleName=\u65B0\u8CC7\u6599\u593E
-FileChooser.newFolderActionLabelText=\u65B0\u8CC7\u6599\u593E
-FileChooser.listViewButtonToolTipText=\u6E05\u55AE
-FileChooser.listViewButtonAccessibleName=\u6E05\u55AE
-FileChooser.listViewActionLabelText=\u6E05\u55AE
-FileChooser.detailsViewButtonToolTipText=\u8A73\u7D30\u8CC7\u8A0A
-FileChooser.detailsViewButtonAccessibleName=\u8A73\u7D30\u8CC7\u8A0A
-FileChooser.detailsViewActionLabelText=\u8A73\u7D30\u8CC7\u8A0A
-FileChooser.refreshActionLabelText=\u91CD\u65B0\u6574\u7406
-FileChooser.viewMenuLabelText=\u6AA2\u8996
-FileChooser.fileNameHeaderText=\u540D\u7A31
-FileChooser.fileSizeHeaderText=\u5927\u5C0F
-FileChooser.fileTypeHeaderText=\u985E\u578B
-FileChooser.fileDateHeaderText=\u4FEE\u6539\u65E5\u671F
-FileChooser.fileAttrHeaderText=\u5C6C\u6027
+# This properties file is used to create a PropertyResourceBundle
+# It contains Locale specific strings used be the Synth Look and Feel.
+# Currently, the following components need this for support:
+#
+#    FileChooser
+#
+# When this file is read in, the strings are put into the
+# defaults table.  This is an implementation detail of the current
+# workings of Swing.  DO NOT DEPEND ON THIS.
+# This may change in future versions of Swing as we improve localization
+# support.
+#
+# Refer to the note in basic.properties for a description as to what
+# the mnemonics correspond to and how to calculate them.
+#
+# @author Steve Wilson
+
+
+############ FILE CHOOSER STRINGS #############
+
+FileChooser.lookInLabel.textAndMnemonic=\u67E5\u8A62(&I):
+FileChooser.saveInLabel.textAndMnemonic=\u5132\u5B58\u65BC:
+FileChooser.fileNameLabel.textAndMnemonic=\u6A94\u6848\u540D\u7A31(&N):
+FileChooser.folderNameLabel.textAndMnemonic=\u8CC7\u6599\u593E\u540D\u7A31(&N):
+FileChooser.filesOfTypeLabel.textAndMnemonic=\u6A94\u6848\u985E\u578B(&T):
+FileChooser.upFolderToolTip.textAndMnemonic=\u5F80\u4E0A\u4E00\u5C64
+FileChooser.upFolderAccessibleName=\u5F80\u4E0A
+FileChooser.homeFolderToolTip.textAndMnemonic=\u4E3B\u76EE\u9304
+FileChooser.homeFolderAccessibleName=\u4E3B\u76EE\u9304
+FileChooser.newFolderToolTip.textAndMnemonic=\u5EFA\u7ACB\u65B0\u8CC7\u6599\u593E
+FileChooser.newFolderAccessibleName=\u65B0\u8CC7\u6599\u593E
+FileChooser.newFolderActionLabel.textAndMnemonic=\u65B0\u8CC7\u6599\u593E
+FileChooser.listViewButtonToolTip.textAndMnemonic=\u6E05\u55AE
+FileChooser.listViewButtonAccessibleName=\u6E05\u55AE
+FileChooser.listViewActionLabel.textAndMnemonic=\u6E05\u55AE
+FileChooser.detailsViewButtonToolTip.textAndMnemonic=\u8A73\u7D30\u8CC7\u8A0A
+FileChooser.detailsViewButtonAccessibleName=\u8A73\u7D30\u8CC7\u8A0A
+FileChooser.detailsViewActionLabel.textAndMnemonic=\u8A73\u7D30\u8CC7\u8A0A
+FileChooser.refreshActionLabel.textAndMnemonic=\u91CD\u65B0\u6574\u7406
+FileChooser.viewMenuLabel.textAndMnemonic=\u6AA2\u8996
+FileChooser.fileNameHeader.textAndMnemonic=\u540D\u7A31
+FileChooser.fileSizeHeader.textAndMnemonic=\u5927\u5C0F
+FileChooser.fileTypeHeader.textAndMnemonic=\u985E\u578B
+FileChooser.fileDateHeader.textAndMnemonic=\u4FEE\u6539\u65E5\u671F
+FileChooser.fileAttrHeader.textAndMnemonic=\u5C6C\u6027
--- a/jdk/src/share/classes/java/awt/AlphaComposite.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/java/awt/AlphaComposite.java	Wed Jul 05 18:07:57 2017 +0200
@@ -26,6 +26,7 @@
 package java.awt;
 
 import java.awt.image.ColorModel;
+import javax.tools.annotation.GenerateNativeHeader;
 import sun.java2d.SunCompositeContext;
 
 /**
@@ -349,6 +350,8 @@
  * @see CompositeContext
  */
 
+/* No native methods here, but the constants are needed in the supporting JNI code */
+@GenerateNativeHeader
 public final class AlphaComposite implements Composite {
     /**
      * Both the color and the alpha of the destination are cleared
--- a/jdk/src/share/classes/java/awt/event/FocusEvent.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/java/awt/event/FocusEvent.java	Wed Jul 05 18:07:57 2017 +0200
@@ -26,6 +26,7 @@
 package java.awt.event;
 
 import java.awt.Component;
+import javax.tools.annotation.GenerateNativeHeader;
 import sun.awt.AppContext;
 import sun.awt.SunToolkit;
 
@@ -63,6 +64,8 @@
  * @author Amy Fowler
  * @since 1.1
  */
+/* No native methods here, but the constants are needed in the supporting JNI code */
+@GenerateNativeHeader
 public class FocusEvent extends ComponentEvent {
 
     /**
--- a/jdk/src/share/classes/java/awt/event/WindowEvent.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/java/awt/event/WindowEvent.java	Wed Jul 05 18:07:57 2017 +0200
@@ -26,6 +26,7 @@
 package java.awt.event;
 
 import java.awt.Window;
+import javax.tools.annotation.GenerateNativeHeader;
 import sun.awt.AppContext;
 import sun.awt.SunToolkit;
 
@@ -55,6 +56,8 @@
  *
  * @since JDK1.1
  */
+/* No native methods here, but the constants are needed in the supporting JNI code */
+@GenerateNativeHeader
 public class WindowEvent extends ComponentEvent {
 
     /**
--- a/jdk/src/share/classes/java/awt/font/NumericShaper.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/java/awt/font/NumericShaper.java	Wed Jul 05 18:07:57 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -633,7 +633,6 @@
         0x06d6, 0x06e5,
         0x06e7, 0x06ee,
         0x06f0, 0x06fa,
-        0x070f, 0x0710,
         0x0711, 0x0712,
         0x0730, 0x074d,
         0x07a6, 0x07b1,
@@ -644,7 +643,7 @@
         0x0825, 0x0828,
         0x0829, 0x0830,
         0x0859, 0x085e,
-        0x0900, 0x0903,
+        0x08e4, 0x0903,
         0x093a, 0x093b,
         0x093c, 0x093d,
         0x0941, 0x0949,
@@ -723,6 +722,7 @@
         0x1732, 0x1735,
         0x1752, 0x1760,
         0x1772, 0x1780,
+        0x17b4, 0x17b6,
         0x17b7, 0x17be,
         0x17c6, 0x17c7,
         0x17c9, 0x17d4,
@@ -750,6 +750,7 @@
         0x1b80, 0x1b82,
         0x1ba2, 0x1ba6,
         0x1ba8, 0x1baa,
+        0x1bab, 0x1bac,
         0x1be6, 0x1be7,
         0x1be8, 0x1bea,
         0x1bed, 0x1bee,
@@ -760,6 +761,7 @@
         0x1cd4, 0x1ce1,
         0x1ce2, 0x1ce9,
         0x1ced, 0x1cee,
+        0x1cf4, 0x1cf5,
         0x1dc0, 0x1e00,
         0x1fbd, 0x1fbe,
         0x1fbf, 0x1fc2,
@@ -791,7 +793,8 @@
         0x26ad, 0x2800,
         0x2900, 0x2c00,
         0x2ce5, 0x2ceb,
-        0x2cef, 0x2d00,
+        0x2cef, 0x2cf2,
+        0x2cf9, 0x2d00,
         0x2d7f, 0x2d80,
         0x2de0, 0x3005,
         0x3008, 0x3021,
@@ -814,6 +817,7 @@
         0xa490, 0xa4d0,
         0xa60d, 0xa610,
         0xa66f, 0xa680,
+        0xa69f, 0xa6a0,
         0xa6f0, 0xa6f2,
         0xa700, 0xa722,
         0xa788, 0xa789,
@@ -842,6 +846,8 @@
         0xaab7, 0xaab9,
         0xaabe, 0xaac0,
         0xaac1, 0xaac2,
+        0xaaec, 0xaaee,
+        0xaaf6, 0xab01,
         0xabe5, 0xabe6,
         0xabe8, 0xabe9,
         0xabed, 0xabf0,
@@ -867,6 +873,16 @@
         0x11080, 0x11082,
         0x110b3, 0x110b7,
         0x110b9, 0x110bb,
+        0x11100, 0x11103,
+        0x11127, 0x1112c,
+        0x1112d, 0x11136,
+        0x11180, 0x11182,
+        0x111b6, 0x111bf,
+        0x116ab, 0x116ac,
+        0x116ad, 0x116ae,
+        0x116b0, 0x116b6,
+        0x116b7, 0x116c0,
+        0x16f8f, 0x16f93,
         0x1d167, 0x1d16a,
         0x1d173, 0x1d183,
         0x1d185, 0x1d18c,
@@ -877,7 +893,9 @@
         0x1d74f, 0x1d750,
         0x1d789, 0x1d78a,
         0x1d7c3, 0x1d7c4,
-        0x1d7ce, 0x1f110,
+        0x1d7ce, 0x1ee00,
+        0x1eef0, 0x1f110,
+        0x1f16a, 0x1f170,
         0x1f300, 0x1f48c,
         0x1f48d, 0x1f524,
         0x1f525, 0x20000,
--- a/jdk/src/share/classes/java/lang/Character.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/java/lang/Character.java	Wed Jul 05 18:07:57 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -40,7 +40,7 @@
  * a character's category (lowercase letter, digit, etc.) and for converting
  * characters from uppercase to lowercase and vice versa.
  * <p>
- * Character information is based on the Unicode Standard, version 6.0.0.
+ * Character information is based on the Unicode Standard, version 6.1.0.
  * <p>
  * The methods and data of class {@code Character} are defined by
  * the information in the <i>UnicodeData</i> file that is part of the
@@ -2465,6 +2465,98 @@
                              "CJK UNIFIED IDEOGRAPHS EXTENSION D",
                              "CJKUNIFIEDIDEOGRAPHSEXTENSIOND");
 
+        /**
+         * Constant for the "Arabic Extended-A" Unicode character block.
+         * @since 1.8
+         */
+        public static final UnicodeBlock ARABIC_EXTENDED_A =
+            new UnicodeBlock("ARABIC_EXTENDED_A",
+                             "ARABIC EXTENDED-A",
+                             "ARABICEXTENDED-A");
+
+        /**
+         * Constant for the "Sundanese Supplement" Unicode character block.
+         * @since 1.8
+         */
+        public static final UnicodeBlock SUNDANESE_SUPPLEMENT =
+            new UnicodeBlock("SUNDANESE_SUPPLEMENT",
+                             "SUNDANESE SUPPLEMENT",
+                             "SUNDANESESUPPLEMENT");
+
+        /**
+         * Constant for the "Meetei Mayek Extensions" Unicode character block.
+         * @since 1.8
+         */
+        public static final UnicodeBlock MEETEI_MAYEK_EXTENSIONS =
+            new UnicodeBlock("MEETEI_MAYEK_EXTENSIONS",
+                             "MEETEI MAYEK EXTENSIONS",
+                             "MEETEIMAYEKEXTENSIONS");
+
+        /**
+         * Constant for the "Meroitic Hieroglyphs" Unicode character block.
+         * @since 1.8
+         */
+        public static final UnicodeBlock MEROITIC_HIEROGLYPHS =
+            new UnicodeBlock("MEROITIC_HIEROGLYPHS",
+                             "MEROITIC HIEROGLYPHS",
+                             "MEROITICHIEROGLYPHS");
+
+        /**
+         * Constant for the "Meroitic Cursive" Unicode character block.
+         * @since 1.8
+         */
+        public static final UnicodeBlock MEROITIC_CURSIVE =
+            new UnicodeBlock("MEROITIC_CURSIVE",
+                             "MEROITIC CURSIVE",
+                             "MEROITICCURSIVE");
+
+        /**
+         * Constant for the "Sora Sompeng" Unicode character block.
+         * @since 1.8
+         */
+        public static final UnicodeBlock SORA_SOMPENG =
+            new UnicodeBlock("SORA_SOMPENG",
+                             "SORA SOMPENG",
+                             "SORASOMPENG");
+
+        /**
+         * Constant for the "Chakma" Unicode character block.
+         * @since 1.8
+         */
+        public static final UnicodeBlock CHAKMA =
+            new UnicodeBlock("CHAKMA");
+
+        /**
+         * Constant for the "Sharada" Unicode character block.
+         * @since 1.8
+         */
+        public static final UnicodeBlock SHARADA =
+            new UnicodeBlock("SHARADA");
+
+        /**
+         * Constant for the "Takri" Unicode character block.
+         * @since 1.8
+         */
+        public static final UnicodeBlock TAKRI =
+            new UnicodeBlock("TAKRI");
+
+        /**
+         * Constant for the "Miao" Unicode character block.
+         * @since 1.8
+         */
+        public static final UnicodeBlock MIAO =
+            new UnicodeBlock("MIAO");
+
+        /**
+         * Constant for the "Arabic Mathematical Alphabetic Symbols" Unicode
+         * character block.
+         * @since 1.8
+         */
+        public static final UnicodeBlock ARABIC_MATHEMATICAL_ALPHABETIC_SYMBOLS =
+            new UnicodeBlock("ARABIC_MATHEMATICAL_ALPHABETIC_SYMBOLS",
+                             "ARABIC MATHEMATICAL ALPHABETIC SYMBOLS",
+                             "ARABICMATHEMATICALALPHABETICSYMBOLS");
+
         private static final int blockStarts[] = {
             0x0000,   // 0000..007F; Basic Latin
             0x0080,   // 0080..00FF; Latin-1 Supplement
@@ -2486,6 +2578,7 @@
             0x0800,   // 0800..083F; Samaritan
             0x0840,   // 0840..085F; Mandaic
             0x0860,   //             unassigned
+            0x08A0,   // 08A0..08FF; Arabic Extended-A
             0x0900,   // 0900..097F; Devanagari
             0x0980,   // 0980..09FF; Bengali
             0x0A00,   // 0A00..0A7F; Gurmukhi
@@ -2528,6 +2621,7 @@
             0x1C00,   // 1C00..1C4F; Lepcha
             0x1C50,   // 1C50..1C7F; Ol Chiki
             0x1C80,   //             unassigned
+            0x1CC0,   // 1CC0..1CCF; Sundanese Supplement
             0x1CD0,   // 1CD0..1CFF; Vedic Extensions
             0x1D00,   // 1D00..1D7F; Phonetic Extensions
             0x1D80,   // 1D80..1DBF; Phonetic Extensions Supplement
@@ -2605,7 +2699,7 @@
             0xAA00,   // AA00..AA5F; Cham
             0xAA60,   // AA60..AA7F; Myanmar Extended-A
             0xAA80,   // AA80..AADF; Tai Viet
-            0xAAE0,   //             unassigned
+            0xAAE0,   // AAE0..AAFF; Meetei Mayek Extensions
             0xAB00,   // AB00..AB2F; Ethiopic Extended-A
             0xAB30,   //             unassigned
             0xABC0,   // ABC0..ABFF; Meetei Mayek
@@ -2652,6 +2746,8 @@
             0x10900,  // 10900..1091F; Phoenician
             0x10920,  // 10920..1093F; Lydian
             0x10940,  //               unassigned
+            0x10980,  // 10980..1099F; Meroitic Hieroglyphs
+            0x109A0,  // 109A0..109FF; Meroitic Cursive
             0x10A00,  // 10A00..10A5F; Kharoshthi
             0x10A60,  // 10A60..10A7F; Old South Arabian
             0x10A80,  //               unassigned
@@ -2665,7 +2761,13 @@
             0x10E80,  //               unassigned
             0x11000,  // 11000..1107F; Brahmi
             0x11080,  // 11080..110CF; Kaithi
-            0x110D0,  //               unassigned
+            0x110D0,  // 110D0..110FF; Sora Sompeng
+            0x11100,  // 11100..1114F; Chakma
+            0x11150,  //               unassigned
+            0x11180,  // 11180..111DF; Sharada
+            0x111E0,  //               unassigned
+            0x11680,  // 11680..116CF; Takri
+            0x116D0,  //               unassigned
             0x12000,  // 12000..123FF; Cuneiform
             0x12400,  // 12400..1247F; Cuneiform Numbers and Punctuation
             0x12480,  //               unassigned
@@ -2673,6 +2775,8 @@
             0x13430,  //               unassigned
             0x16800,  // 16800..16A3F; Bamum Supplement
             0x16A40,  //               unassigned
+            0x16F00,  // 16F00..16F9F; Miao
+            0x16FA0,  //               unassigned
             0x1B000,  // 1B000..1B0FF; Kana Supplement
             0x1B100,  //               unassigned
             0x1D000,  // 1D000..1D0FF; Byzantine Musical Symbols
@@ -2684,6 +2788,8 @@
             0x1D380,  //               unassigned
             0x1D400,  // 1D400..1D7FF; Mathematical Alphanumeric Symbols
             0x1D800,  //               unassigned
+            0x1EE00,  // 1EE00..1EEFF; Arabic Mathematical Alphabetic Symbols
+            0x1EF00,  //               unassigned
             0x1F000,  // 1F000..1F02F; Mahjong Tiles
             0x1F030,  // 1F030..1F09F; Domino Tiles
             0x1F0A0,  // 1F0A0..1F0FF; Playing Cards
@@ -2731,6 +2837,7 @@
             SAMARITAN,
             MANDAIC,
             null,
+            ARABIC_EXTENDED_A,
             DEVANAGARI,
             BENGALI,
             GURMUKHI,
@@ -2773,6 +2880,7 @@
             LEPCHA,
             OL_CHIKI,
             null,
+            SUNDANESE_SUPPLEMENT,
             VEDIC_EXTENSIONS,
             PHONETIC_EXTENSIONS,
             PHONETIC_EXTENSIONS_SUPPLEMENT,
@@ -2850,7 +2958,7 @@
             CHAM,
             MYANMAR_EXTENDED_A,
             TAI_VIET,
-            null,
+            MEETEI_MAYEK_EXTENSIONS,
             ETHIOPIC_EXTENDED_A,
             null,
             MEETEI_MAYEK,
@@ -2897,6 +3005,8 @@
             PHOENICIAN,
             LYDIAN,
             null,
+            MEROITIC_HIEROGLYPHS,
+            MEROITIC_CURSIVE,
             KHAROSHTHI,
             OLD_SOUTH_ARABIAN,
             null,
@@ -2910,6 +3020,12 @@
             null,
             BRAHMI,
             KAITHI,
+            SORA_SOMPENG,
+            CHAKMA,
+            null,
+            SHARADA,
+            null,
+            TAKRI,
             null,
             CUNEIFORM,
             CUNEIFORM_NUMBERS_AND_PUNCTUATION,
@@ -2918,6 +3034,8 @@
             null,
             BAMUM_SUPPLEMENT,
             null,
+            MIAO,
+            null,
             KANA_SUPPLEMENT,
             null,
             BYZANTINE_MUSICAL_SYMBOLS,
@@ -2929,6 +3047,8 @@
             null,
             MATHEMATICAL_ALPHANUMERIC_SYMBOLS,
             null,
+            ARABIC_MATHEMATICAL_ALPHABETIC_SYMBOLS,
+            null,
             MAHJONG_TILES,
             DOMINO_TILES,
             PLAYING_CARDS,
@@ -3550,6 +3670,41 @@
         KAITHI,
 
         /**
+         * Unicode script "Meroitic Hieroglyphs".
+         */
+        MEROITIC_HIEROGLYPHS,
+
+        /**
+         * Unicode script "Meroitic Cursive".
+         */
+        MEROITIC_CURSIVE,
+
+        /**
+         * Unicode script "Sora Sompeng".
+         */
+        SORA_SOMPENG,
+
+        /**
+         * Unicode script "Chakma".
+         */
+        CHAKMA,
+
+        /**
+         * Unicode script "Sharada".
+         */
+        SHARADA,
+
+        /**
+         * Unicode script "Takri".
+         */
+        TAKRI,
+
+        /**
+         * Unicode script "Miao".
+         */
+        MIAO,
+
+        /**
          * Unicode script "Unknown".
          */
         UNKNOWN;
@@ -3616,14 +3771,13 @@
             0x0780,   // 0780..07BF; THAANA
             0x07C0,   // 07C0..07FF; NKO
             0x0800,   // 0800..083F; SAMARITAN
-            0x0840,   // 0840..08FF; MANDAIC
+            0x0840,   // 0840..089F; MANDAIC
+            0x08A0,   // 08A0..08FF; ARABIC
             0x0900,   // 0900..0950; DEVANAGARI
             0x0951,   // 0951..0952; INHERITED
             0x0953,   // 0953..0963; DEVANAGARI
             0x0964,   // 0964..0965; COMMON
-            0x0966,   // 0966..096F; DEVANAGARI
-            0x0970,   // 0970..0970; COMMON
-            0x0971,   // 0971..0980; DEVANAGARI
+            0x0966,   // 0966..0980; DEVANAGARI
             0x0981,   // 0981..0A00; BENGALI
             0x0A01,   // 0A01..0A80; GURMUKHI
             0x0A81,   // 0A81..0B00; GUJARATI
@@ -3674,7 +3828,8 @@
             0x1B80,   // 1B80..1BBF; SUNDANESE
             0x1BC0,   // 1BC0..1BFF; BATAK
             0x1C00,   // 1C00..1C4F; LEPCHA
-            0x1C50,   // 1C50..1CCF; OL_CHIKI
+            0x1C50,   // 1C50..1CBF; OL_CHIKI
+            0x1CC0,   // 1CC0..1CCF; SUNDANESE
             0x1CD0,   // 1CD0..1CD2; INHERITED
             0x1CD3,   // 1CD3..1CD3; COMMON
             0x1CD4,   // 1CD4..1CE0; INHERITED
@@ -3682,7 +3837,9 @@
             0x1CE2,   // 1CE2..1CE8; INHERITED
             0x1CE9,   // 1CE9..1CEC; COMMON
             0x1CED,   // 1CED..1CED; INHERITED
-            0x1CEE,   // 1CEE..1CFF; COMMON
+            0x1CEE,   // 1CEE..1CF3; COMMON
+            0x1CF4,   // 1CF4..1CF4; INHERITED
+            0x1CF5,   // 1CF5..1CFF; COMMON
             0x1D00,   // 1D00..1D25; LATIN
             0x1D26,   // 1D26..1D2A; GREEK
             0x1D2B,   // 1D2B..1D2B; CYRILLIC
@@ -3783,7 +3940,8 @@
             0xA980,   // A980..A9FF; JAVANESE
             0xAA00,   // AA00..AA5F; CHAM
             0xAA60,   // AA60..AA7F; MYANMAR
-            0xAA80,   // AA80..AB00; TAI_VIET
+            0xAA80,   // AA80..AADF; TAI_VIET
+            0xAAE0,   // AAE0..AB00; MEETEI_MAYEK
             0xAB01,   // AB01..ABBF; ETHIOPIC
             0xABC0,   // ABC0..ABFF; MEETEI_MAYEK
             0xAC00,   // AC00..D7FB; HANGUL
@@ -3829,7 +3987,9 @@
             0x10800,  // 10800..1083F; CYPRIOT
             0x10840,  // 10840..108FF; IMPERIAL_ARAMAIC
             0x10900,  // 10900..1091F; PHOENICIAN
-            0x10920,  // 10920..109FF; LYDIAN
+            0x10920,  // 10920..1097F; LYDIAN
+            0x10980,  // 10980..1099F; MEROITIC_HIEROGLYPHS
+            0x109A0,  // 109A0..109FF; MEROITIC_CURSIVE
             0x10A00,  // 10A00..10A5F; KHAROSHTHI
             0x10A60,  // 10A60..10AFF; OLD_SOUTH_ARABIAN
             0x10B00,  // 10B00..10B3F; AVESTAN
@@ -3838,10 +3998,15 @@
             0x10C00,  // 10C00..10E5F; OLD_TURKIC
             0x10E60,  // 10E60..10FFF; ARABIC
             0x11000,  // 11000..1107F; BRAHMI
-            0x11080,  // 11080..11FFF; KAITHI
+            0x11080,  // 11080..110CF; KAITHI
+            0x110D0,  // 110D0..110FF; SORA_SOMPENG
+            0x11100,  // 11100..1117F; CHAKMA
+            0x11180,  // 11180..1167F; SHARADA
+            0x11680,  // 11680..116CF; TAKRI
             0x12000,  // 12000..12FFF; CUNEIFORM
             0x13000,  // 13000..167FF; EGYPTIAN_HIEROGLYPHS
             0x16800,  // 16800..16A38; BAMUM
+            0x16F00,  // 16F00..16F9F; MIAO
             0x1B000,  // 1B000..1B000; KATAKANA
             0x1B001,  // 1B001..1CFFF; HIRAGANA
             0x1D000,  // 1D000..1D166; COMMON
@@ -3854,7 +4019,9 @@
             0x1D1AA,  // 1D1AA..1D1AD; INHERITED
             0x1D1AE,  // 1D1AE..1D1FF; COMMON
             0x1D200,  // 1D200..1D2FF; GREEK
-            0x1D300,  // 1D300..1F1FF; COMMON
+            0x1D300,  // 1D300..1EDFF; COMMON
+            0x1EE00,  // 1EE00..1EFFF; ARABIC
+            0x1F000,  // 1F000..1F1FF; COMMON
             0x1F200,  // 1F200..1F200; HIRAGANA
             0x1F201,  // 1F210..1FFFF; COMMON
             0x20000,  // 20000..E0000; HAN
@@ -3927,13 +4094,12 @@
             NKO,
             SAMARITAN,
             MANDAIC,
+            ARABIC,
             DEVANAGARI,
             INHERITED,
             DEVANAGARI,
             COMMON,
             DEVANAGARI,
-            COMMON,
-            DEVANAGARI,
             BENGALI,
             GURMUKHI,
             GUJARATI,
@@ -3985,6 +4151,9 @@
             BATAK,
             LEPCHA,
             OL_CHIKI,
+            SUNDANESE,
+            INHERITED,
+            COMMON,
             INHERITED,
             COMMON,
             INHERITED,
@@ -4094,10 +4263,11 @@
             CHAM,
             MYANMAR,
             TAI_VIET,
+            MEETEI_MAYEK,
             ETHIOPIC,
             MEETEI_MAYEK,
             HANGUL,
-            UNKNOWN,
+            UNKNOWN     ,
             HAN,
             LATIN,
             ARMENIAN,
@@ -4140,6 +4310,8 @@
             IMPERIAL_ARAMAIC,
             PHOENICIAN,
             LYDIAN,
+            MEROITIC_HIEROGLYPHS,
+            MEROITIC_CURSIVE,
             KHAROSHTHI,
             OLD_SOUTH_ARABIAN,
             AVESTAN,
@@ -4149,9 +4321,14 @@
             ARABIC,
             BRAHMI,
             KAITHI,
+            SORA_SOMPENG,
+            CHAKMA,
+            SHARADA,
+            TAKRI,
             CUNEIFORM,
             EGYPTIAN_HIEROGLYPHS,
             BAMUM,
+            MIAO,
             KATAKANA,
             HIRAGANA,
             COMMON,
@@ -4165,6 +4342,8 @@
             COMMON,
             GREEK,
             COMMON,
+            ARABIC,
+            COMMON,
             HIRAGANA,
             COMMON,
             HAN,
@@ -4189,6 +4368,7 @@
             aliases.put("BRAH", BRAHMI);
             aliases.put("BUGI", BUGINESE);
             aliases.put("BUHD", BUHID);
+            aliases.put("CAKM", CHAKMA);
             aliases.put("CANS", CANADIAN_ABORIGINAL);
             aliases.put("CARI", CARIAN);
             aliases.put("CHAM", CHAM);
@@ -4231,6 +4411,8 @@
             aliases.put("LYCI", LYCIAN);
             aliases.put("LYDI", LYDIAN);
             aliases.put("MAND", MANDAIC);
+            aliases.put("MERC", MEROITIC_CURSIVE);
+            aliases.put("MERO", MEROITIC_HIEROGLYPHS);
             aliases.put("MLYM", MALAYALAM);
             aliases.put("MONG", MONGOLIAN);
             aliases.put("MTEI", MEETEI_MAYEK);
@@ -4242,6 +4424,7 @@
             aliases.put("ORYA", ORIYA);
             aliases.put("OSMA", OSMANYA);
             aliases.put("PHAG", PHAGS_PA);
+            aliases.put("PLRD", MIAO);
             aliases.put("PHLI", INSCRIPTIONAL_PAHLAVI);
             aliases.put("PHNX", PHOENICIAN);
             aliases.put("PRTI", INSCRIPTIONAL_PARTHIAN);
@@ -4251,12 +4434,15 @@
             aliases.put("SARB", OLD_SOUTH_ARABIAN);
             aliases.put("SAUR", SAURASHTRA);
             aliases.put("SHAW", SHAVIAN);
+            aliases.put("SHRD", SHARADA);
             aliases.put("SINH", SINHALA);
+            aliases.put("SORA", SORA_SOMPENG);
             aliases.put("SUND", SUNDANESE);
             aliases.put("SYLO", SYLOTI_NAGRI);
             aliases.put("SYRC", SYRIAC);
             aliases.put("TAGB", TAGBANWA);
             aliases.put("TALE", TAI_LE);
+            aliases.put("TAKR", TAKRI);
             aliases.put("TALU", NEW_TAI_LUE);
             aliases.put("TAML", TAMIL);
             aliases.put("TAVT", TAI_VIET);
--- a/jdk/src/share/classes/java/lang/ClassLoader.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/java/lang/ClassLoader.java	Wed Jul 05 18:07:57 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1994, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 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
@@ -1847,6 +1847,10 @@
             if (loadLibrary0(fromClass, libfile)) {
                 return;
             }
+            libfile = ClassLoaderHelper.mapAlternativeName(libfile);
+            if (libfile != null && loadLibrary0(fromClass, libfile)) {
+                return;
+            }
         }
         if (loader != null) {
             for (int i = 0 ; i < usr_paths.length ; i++) {
@@ -1855,6 +1859,10 @@
                 if (loadLibrary0(fromClass, libfile)) {
                     return;
                 }
+                libfile = ClassLoaderHelper.mapAlternativeName(libfile);
+                if (libfile != null && loadLibrary0(fromClass, libfile)) {
+                    return;
+                }
             }
         }
         // Oops, it failed
--- a/jdk/src/share/classes/java/util/Currency.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/java/util/Currency.java	Wed Jul 05 18:07:57 2017 +0200
@@ -286,46 +286,47 @@
 
     private static Currency getInstance(String currencyCode, int defaultFractionDigits,
         int numericCode) {
-            // Try to look up the currency code in the instances table.
-            // This does the null pointer check as a side effect.
-            // Also, if there already is an entry, the currencyCode must be valid.
-            Currency instance = instances.get(currencyCode);
-            if (instance != null) {
-                return instance;
+        // Try to look up the currency code in the instances table.
+        // This does the null pointer check as a side effect.
+        // Also, if there already is an entry, the currencyCode must be valid.
+        Currency instance = instances.get(currencyCode);
+        if (instance != null) {
+            return instance;
+        }
+
+        if (defaultFractionDigits == Integer.MIN_VALUE) {
+            // Currency code not internally generated, need to verify first
+            // A currency code must have 3 characters and exist in the main table
+            // or in the list of other currencies.
+            if (currencyCode.length() != 3) {
+                throw new IllegalArgumentException();
             }
-
-            if (defaultFractionDigits == Integer.MIN_VALUE) {
-                // Currency code not internally generated, need to verify first
-                // A currency code must have 3 characters and exist in the main table
-                // or in the list of other currencies.
-                if (currencyCode.length() != 3) {
+            char char1 = currencyCode.charAt(0);
+            char char2 = currencyCode.charAt(1);
+            int tableEntry = getMainTableEntry(char1, char2);
+            if ((tableEntry & COUNTRY_TYPE_MASK) == SIMPLE_CASE_COUNTRY_MASK
+                    && tableEntry != INVALID_COUNTRY_ENTRY
+                    && currencyCode.charAt(2) - 'A' == (tableEntry & SIMPLE_CASE_COUNTRY_FINAL_CHAR_MASK)) {
+                defaultFractionDigits = (tableEntry & SIMPLE_CASE_COUNTRY_DEFAULT_DIGITS_MASK) >> SIMPLE_CASE_COUNTRY_DEFAULT_DIGITS_SHIFT;
+                numericCode = (tableEntry & NUMERIC_CODE_MASK) >> NUMERIC_CODE_SHIFT;
+            } else {
+                // Check for '-' separately so we don't get false hits in the table.
+                if (currencyCode.charAt(2) == '-') {
                     throw new IllegalArgumentException();
                 }
-                char char1 = currencyCode.charAt(0);
-                char char2 = currencyCode.charAt(1);
-                int tableEntry = getMainTableEntry(char1, char2);
-                if ((tableEntry & COUNTRY_TYPE_MASK) == SIMPLE_CASE_COUNTRY_MASK
-                        && tableEntry != INVALID_COUNTRY_ENTRY
-                        && currencyCode.charAt(2) - 'A' == (tableEntry & SIMPLE_CASE_COUNTRY_FINAL_CHAR_MASK)) {
-                    defaultFractionDigits = (tableEntry & SIMPLE_CASE_COUNTRY_DEFAULT_DIGITS_MASK) >> SIMPLE_CASE_COUNTRY_DEFAULT_DIGITS_SHIFT;
-                    numericCode = (tableEntry & NUMERIC_CODE_MASK) >> NUMERIC_CODE_SHIFT;
-                } else {
-                    // Check for '-' separately so we don't get false hits in the table.
-                    if (currencyCode.charAt(2) == '-') {
-                        throw new IllegalArgumentException();
-                    }
-                    int index = otherCurrencies.indexOf(currencyCode);
-                    if (index == -1) {
-                        throw new IllegalArgumentException();
-                    }
-                    defaultFractionDigits = otherCurrenciesDFD[index / 4];
-                    numericCode = otherCurrenciesNumericCode[index / 4];
+                int index = otherCurrencies.indexOf(currencyCode);
+                if (index == -1) {
+                    throw new IllegalArgumentException();
                 }
+                defaultFractionDigits = otherCurrenciesDFD[index / 4];
+                numericCode = otherCurrenciesNumericCode[index / 4];
             }
+        }
 
-        instance = instances.putIfAbsent(currencyCode,
-                   new Currency(currencyCode, defaultFractionDigits, numericCode));
-        return (instance != null ? instance : instances.get(currencyCode));
+        Currency currencyVal =
+            new Currency(currencyCode, defaultFractionDigits, numericCode);
+        instance = instances.putIfAbsent(currencyCode, currencyVal);
+        return (instance != null ? instance : currencyVal);
     }
 
     /**
--- a/jdk/src/share/classes/javax/swing/JPopupMenu.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/javax/swing/JPopupMenu.java	Wed Jul 05 18:07:57 2017 +0200
@@ -359,17 +359,20 @@
         int scrBottomY = scrBounds.y + scrHeight;
 
         // Ensure that popup menu fits the screen
-        if (popupRightX > (long)scrRightX) {
+        if (popupRightX > (long) scrRightX) {
             popupLocation.x = scrRightX - popupSize.width;
-            if( popupLocation.x < scrBounds.x ) {
-                popupLocation.x = scrBounds.x ;
-            }
+        }
+
+        if (popupBottomY > (long) scrBottomY) {
+            popupLocation.y = scrBottomY - popupSize.height;
         }
-        if (popupBottomY > (long)scrBottomY) {
-            popupLocation.y = scrBottomY - popupSize.height;
-            if( popupLocation.y < scrBounds.y ) {
-                popupLocation.y = scrBounds.y;
-            }
+
+        if (popupLocation.x < scrBounds.x) {
+            popupLocation.x = scrBounds.x;
+        }
+
+        if (popupLocation.y < scrBounds.y) {
+            popupLocation.y = scrBounds.y;
         }
 
         return popupLocation;
--- a/jdk/src/share/classes/javax/swing/UIDefaults.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/javax/swing/UIDefaults.java	Wed Jul 05 18:07:57 2017 +0200
@@ -297,7 +297,7 @@
         Map<String, Object> values = resourceCache.get(l);
 
         if (values == null) {
-            values = new HashMap<String, Object>();
+            values = new TextAndMnemonicHashMap();
             for (int i=resourceBundles.size()-1; i >= 0; i--) {
                 String bundleName = resourceBundles.get(i);
                 try {
@@ -1215,4 +1215,120 @@
             return null;
         }
     }
+
+    /**
+     * <code>TextAndMnemonicHashMap</code> stores swing resource strings. Many of strings
+     * can have a mnemonic. For example:
+     *   FileChooser.saveButton.textAndMnemonic=&Save
+     * For this case method get returns "Save" for the key "FileChooser.saveButtonText" and
+     * mnemonic "S" for the key "FileChooser.saveButtonMnemonic"
+     *
+     * There are several patterns for the text and mnemonic suffixes which are checked by the
+     * <code>TextAndMnemonicHashMap</code> class.
+     * Patterns which are converted to the xxx.textAndMnemonic key:
+     * (xxxNameText, xxxNameMnemonic)
+     * (xxxNameText, xxxMnemonic)
+     * (xxx.nameText, xxx.mnemonic)
+     * (xxxText, xxxMnemonic)
+     *
+     * These patterns can have a mnemonic index in format
+     * (xxxDisplayedMnemonicIndex)
+     *
+     * Pattern which is converted to the xxx.titleAndMnemonic key:
+     * (xxxTitle, xxxMnemonic)
+     *
+     */
+    private static class TextAndMnemonicHashMap extends HashMap<String, Object> {
+
+        static final String AND_MNEMONIC = "AndMnemonic";
+        static final String TITLE_SUFFIX = ".titleAndMnemonic";
+        static final String TEXT_SUFFIX = ".textAndMnemonic";
+
+        @Override
+        public Object get(Object key) {
+
+            Object value = super.get(key);
+
+            if (value == null) {
+
+                boolean checkTitle = false;
+
+                String stringKey = key.toString();
+                String compositeKey = null;
+
+                if (stringKey.endsWith(AND_MNEMONIC)) {
+                    return null;
+                }
+
+                if (stringKey.endsWith(".mnemonic")) {
+                    compositeKey = composeKey(stringKey, 9, TEXT_SUFFIX);
+                } else if (stringKey.endsWith("NameMnemonic")) {
+                    compositeKey = composeKey(stringKey, 12, TEXT_SUFFIX);
+                } else if (stringKey.endsWith("Mnemonic")) {
+                    compositeKey = composeKey(stringKey, 8, TEXT_SUFFIX);
+                    checkTitle = true;
+                }
+
+                if (compositeKey != null) {
+                    value = super.get(compositeKey);
+                    if (value == null && checkTitle) {
+                        compositeKey = composeKey(stringKey, 8, TITLE_SUFFIX);
+                        value = super.get(compositeKey);
+                    }
+
+                    return value == null ? null : getMnemonicFromProperty(value.toString());
+                }
+
+                if (stringKey.endsWith("NameText")) {
+                    compositeKey = composeKey(stringKey, 8, TEXT_SUFFIX);
+                } else if (stringKey.endsWith(".nameText")) {
+                    compositeKey = composeKey(stringKey, 9, TEXT_SUFFIX);
+                } else if (stringKey.endsWith("Text")) {
+                    compositeKey = composeKey(stringKey, 4, TEXT_SUFFIX);
+                } else if (stringKey.endsWith("Title")) {
+                    compositeKey = composeKey(stringKey, 5, TITLE_SUFFIX);
+                }
+
+                if (compositeKey != null) {
+                    value = super.get(compositeKey);
+                    return value == null ? null : getTextFromProperty(value.toString());
+                }
+
+                if (stringKey.endsWith("DisplayedMnemonicIndex")) {
+                    compositeKey = composeKey(stringKey, 22, TEXT_SUFFIX);
+                    value = super.get(compositeKey);
+                    if (value == null) {
+                        compositeKey = composeKey(stringKey, 22, TITLE_SUFFIX);
+                        value = super.get(compositeKey);
+                    }
+                    return value == null ? null : getIndexFromProperty(value.toString());
+                }
+            }
+
+            return value;
+        }
+
+        String composeKey(String key, int reduce, String sufix) {
+            return key.substring(0, key.length() - reduce) + sufix;
+        }
+
+        String getTextFromProperty(String text) {
+            return text.replace("&", "");
+        }
+
+        String getMnemonicFromProperty(String text) {
+            int index = text.indexOf('&');
+            if (0 <= index && index < text.length() - 1) {
+                char c = text.charAt(index + 1);
+                return Integer.toString((int) Character.toUpperCase(c));
+            }
+            return null;
+        }
+
+        String getIndexFromProperty(String text) {
+            int index = text.indexOf('&');
+            return (index == -1) ? null : Integer.toString(index);
+        }
+    }
+
 }
--- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicTabbedPaneUI.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicTabbedPaneUI.java	Wed Jul 05 18:07:57 2017 +0200
@@ -875,6 +875,8 @@
                 int availTextWidth = tabScroller.croppedEdge.getCropline() -
                         (textRect.x - tabRect.x) - tabScroller.croppedEdge.getCroppedSideWidth();
                 clippedTitle = SwingUtilities2.clipStringIfNecessary(null, metrics, title, availTextWidth);
+            } else if (!scrollableTabLayoutEnabled() && isHorizontalTabPlacement()) {
+                clippedTitle = SwingUtilities2.clipStringIfNecessary(null, metrics, title, textRect.width);
             }
 
             paintText(g, tabPlacement, font, metrics,
--- a/jdk/src/share/classes/sun/font/FontManager.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/sun/font/FontManager.java	Wed Jul 05 18:07:57 2017 +0200
@@ -32,10 +32,14 @@
 
 import javax.swing.plaf.FontUIResource;
 
+import javax.tools.annotation.GenerateNativeHeader;
+
 /**
  * Interface between Java Fonts (java.awt.Font) and the underlying
  * font files/native font resources and the Java and native font scalers.
  */
+/* No native methods here, but the constants are needed in the supporting JNI code */
+@GenerateNativeHeader
 public interface FontManager {
 
     // These constants are used in findFont().
--- a/jdk/src/share/classes/sun/nio/ch/IOStatus.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/sun/nio/ch/IOStatus.java	Wed Jul 05 18:07:57 2017 +0200
@@ -25,9 +25,12 @@
 
 package sun.nio.ch;
 
+import javax.tools.annotation.GenerateNativeHeader;
 
 // Constants for reporting I/O status
 
+/* No native methods here, but the constants are needed in the supporting JNI code */
+@GenerateNativeHeader
 public final class IOStatus {
 
     private IOStatus() { }
--- a/jdk/src/share/classes/sun/nio/ch/sctp/SctpStdSocketOption.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/sun/nio/ch/sctp/SctpStdSocketOption.java	Wed Jul 05 18:07:57 2017 +0200
@@ -25,7 +25,10 @@
 package sun.nio.ch.sctp;
 
 import com.sun.nio.sctp.SctpSocketOption;
+import javax.tools.annotation.GenerateNativeHeader;
 
+/* No native methods here, but the constants are needed in the supporting JNI code */
+@GenerateNativeHeader
 public class SctpStdSocketOption<T>
     implements SctpSocketOption<T>
 {
--- a/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java	Wed Jul 05 18:07:57 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -774,12 +774,8 @@
     // the delegated trust manager
     private final X509TrustManager tm;
 
-    // Cache the trusted certificate to optimize the performance.
-    private final Collection<X509Certificate> trustedCerts = new HashSet<>();
-
     AbstractTrustManagerWrapper(X509TrustManager tm) {
         this.tm = tm;
-        Collections.addAll(trustedCerts, tm.getAcceptedIssuers());
     }
 
     @Override
@@ -920,6 +916,13 @@
         try {
             // Does the certificate chain end with a trusted certificate?
             int checkedLength = chain.length - 1;
+
+            Collection<X509Certificate> trustedCerts = new HashSet<>();
+            X509Certificate[] certs = tm.getAcceptedIssuers();
+            if ((certs != null) && (certs.length > 0)){
+                Collections.addAll(trustedCerts, certs);
+            }
+
             if (trustedCerts.contains(chain[checkedLength])) {
                     checkedLength--;
             }
Binary file jdk/src/share/classes/sun/text/resources/ubidi.icu has changed
Binary file jdk/src/share/classes/sun/text/resources/unorm.icu has changed
Binary file jdk/src/share/classes/sun/text/resources/uprops.icu has changed
--- a/jdk/src/share/classes/sun/util/resources/CurrencyNames_es_PE.properties	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/sun/util/resources/CurrencyNames_es_PE.properties	Wed Jul 05 18:07:57 2017 +0200
@@ -1,5 +1,5 @@
-# 
-# Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
+#
+# Copyright (c) 2005, 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
@@ -21,18 +21,46 @@
 # 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.
-# 
+#
 
-# (C) Copyright Taligent, Inc. 1996, 1997 - All Rights Reserved
-# (C) Copyright IBM Corp. 1996 - 1999 - All Rights Reserved
+#
+# COPYRIGHT AND PERMISSION NOTICE
+#
+# Copyright (C) 1991-2012 Unicode, Inc. All rights reserved.
+# Distributed under the Terms of Use in http://www.unicode.org/copyright.html.
 #
-# The original version of this source code and documentation
-# is copyrighted and owned by Taligent, Inc., a wholly-owned
-# subsidiary of IBM. These materials are provided under terms
-# of a License Agreement between Taligent and Sun. This technology
-# is protected by multiple US and International patents.
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of the Unicode data files and any associated documentation (the
+# "Data Files") or Unicode software and any associated documentation
+# (the "Software") to deal in the Data Files or Software without
+# restriction, including without limitation the rights to use, copy,
+# modify, merge, publish, distribute, and/or sell copies of the Data
+# Files or Software, and to permit persons to whom the Data Files or
+# Software are furnished to do so, provided that (a) the above copyright
+# notice(s) and this permission notice appear with all copies of the
+# Data Files or Software, (b) both the above copyright notice(s) and
+# this permission notice appear in associated documentation, and (c)
+# there is clear notice in each modified Data File or in the Software as
+# well as in the documentation associated with the Data File(s) or
+# Software that the data or software has been modified.
 #
-# This notice and attribution to Taligent may not be removed.
-# Taligent is a registered trademark of Taligent, Inc.
+# THE DATA FILES AND SOFTWARE ARE 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 OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT
+# HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR
+# ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES
+# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE DATA FILES OR
+# SOFTWARE.
+#
+# Except as contained in this notice, the name of a copyright holder
+# shall not be used in advertising or otherwise to promote the sale, use
+# or other dealings in these Data Files or Software without prior
+# written authorization of the copyright holder.
 
-PEN=S/
+#
+# Generated automatically from the Common Locale Data Repository. DO NOT EDIT!
+#
+PEN=S/.
--- a/jdk/src/share/classes/sun/util/resources/TimeZoneNames.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/sun/util/resources/TimeZoneNames.java	Wed Jul 05 18:07:57 2017 +0200
@@ -333,6 +333,7 @@
                                               "French Guiana Summer Time", "GFST"}},
             {"America/Cayman", EST},
             {"America/Chihuahua", MST},
+            {"America/Creston", MST},
             {"America/Coral_Harbour", EST},
             {"America/Cordoba", AGT},
             {"America/Costa_Rica", CST},
@@ -678,7 +679,7 @@
             {"Europe/Istanbul", EET},
             {"Europe/Jersey", GMTBST},
             {"Europe/Kaliningrad", FET},
-            {"Europe/Kiev", FET},
+            {"Europe/Kiev", EET},
             {"Europe/Lisbon", WET},
             {"Europe/Ljubljana", CET},
             {"Europe/London", GMTBST},
@@ -699,14 +700,14 @@
                                             "Samara Summer Time", "SAMST"}},
             {"Europe/San_Marino", CET},
             {"Europe/Sarajevo", CET},
-            {"Europe/Simferopol", FET},
+            {"Europe/Simferopol", EET},
             {"Europe/Skopje", CET},
             {"Europe/Sofia", EET},
             {"Europe/Stockholm", CET},
             {"Europe/Tallinn", EET},
             {"Europe/Tirane", CET},
             {"Europe/Tiraspol", EET},
-            {"Europe/Uzhgorod", FET},
+            {"Europe/Uzhgorod", EET},
             {"Europe/Vaduz", CET},
             {"Europe/Vatican", CET},
             {"Europe/Vienna", CET},
@@ -715,7 +716,7 @@
                                                "Volgograd Summer Time", "VOLST"}},
             {"Europe/Warsaw", CET},
             {"Europe/Zagreb", CET},
-            {"Europe/Zaporozhye", FET},
+            {"Europe/Zaporozhye", EET},
             {"Europe/Zurich", CET},
             {"GB", GMTBST},
             {"GB-Eire", GMTBST},
--- a/jdk/src/share/classes/sun/util/resources/TimeZoneNames_de.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/sun/util/resources/TimeZoneNames_de.java	Wed Jul 05 18:07:57 2017 +0200
@@ -333,6 +333,7 @@
                                               "Franz\u00f6sisch-Guiana Sommerzeit", "GFST"}},
             {"America/Cayman", EST},
             {"America/Chihuahua", MST},
+            {"America/Creston", MST},
             {"America/Coral_Harbour", EST},
             {"America/Cordoba", AGT},
             {"America/Costa_Rica", CST},
@@ -678,7 +679,7 @@
             {"Europe/Istanbul", EET},
             {"Europe/Jersey", GMTBST},
             {"Europe/Kaliningrad", FET},
-            {"Europe/Kiev", FET},
+            {"Europe/Kiev", EET},
             {"Europe/Lisbon", WET},
             {"Europe/Ljubljana", CET},
             {"Europe/London", GMTBST},
@@ -699,14 +700,14 @@
                                             "Samarische Sommerzeit", "SAMST"}},
             {"Europe/San_Marino", CET},
             {"Europe/Sarajevo", CET},
-            {"Europe/Simferopol", FET},
+            {"Europe/Simferopol", EET},
             {"Europe/Skopje", CET},
             {"Europe/Sofia", EET},
             {"Europe/Stockholm", CET},
             {"Europe/Tallinn", EET},
             {"Europe/Tirane", CET},
             {"Europe/Tiraspol", EET},
-            {"Europe/Uzhgorod", FET},
+            {"Europe/Uzhgorod", EET},
             {"Europe/Vaduz", CET},
             {"Europe/Vatican", CET},
             {"Europe/Vienna", CET},
@@ -715,7 +716,7 @@
                                                "Wolgograder Sommerzeit", "VOLST"}},
             {"Europe/Warsaw", CET},
             {"Europe/Zagreb", CET},
-            {"Europe/Zaporozhye", FET},
+            {"Europe/Zaporozhye", EET},
             {"Europe/Zurich", CET},
             {"GB", GMTBST},
             {"GB-Eire", GMTBST},
--- a/jdk/src/share/classes/sun/util/resources/TimeZoneNames_es.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/sun/util/resources/TimeZoneNames_es.java	Wed Jul 05 18:07:57 2017 +0200
@@ -333,6 +333,7 @@
                                               "Hora de verano de la Guayana Francesa", "GFST"}},
             {"America/Cayman", EST},
             {"America/Chihuahua", MST},
+            {"America/Creston", MST},
             {"America/Coral_Harbour", EST},
             {"America/Cordoba", AGT},
             {"America/Costa_Rica", CST},
@@ -678,7 +679,7 @@
             {"Europe/Istanbul", EET},
             {"Europe/Jersey", GMTBST},
             {"Europe/Kaliningrad", FET},
-            {"Europe/Kiev", FET},
+            {"Europe/Kiev", EET},
             {"Europe/Lisbon", WET},
             {"Europe/Ljubljana", CET},
             {"Europe/London", GMTBST},
@@ -699,14 +700,14 @@
                                             "Hora de verano de Samara", "SAMST"}},
             {"Europe/San_Marino", CET},
             {"Europe/Sarajevo", CET},
-            {"Europe/Simferopol", FET},
+            {"Europe/Simferopol", EET},
             {"Europe/Skopje", CET},
             {"Europe/Sofia", EET},
             {"Europe/Stockholm", CET},
             {"Europe/Tallinn", EET},
             {"Europe/Tirane", CET},
             {"Europe/Tiraspol", EET},
-            {"Europe/Uzhgorod", FET},
+            {"Europe/Uzhgorod", EET},
             {"Europe/Vaduz", CET},
             {"Europe/Vatican", CET},
             {"Europe/Vienna", CET},
@@ -715,7 +716,7 @@
                                                "Hora de verano de Volgogrado", "VOLST"}},
             {"Europe/Warsaw", CET},
             {"Europe/Zagreb", CET},
-            {"Europe/Zaporozhye", FET},
+            {"Europe/Zaporozhye", EET},
             {"Europe/Zurich", CET},
             {"GB", GMTBST},
             {"GB-Eire", GMTBST},
--- a/jdk/src/share/classes/sun/util/resources/TimeZoneNames_fr.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/sun/util/resources/TimeZoneNames_fr.java	Wed Jul 05 18:07:57 2017 +0200
@@ -333,6 +333,7 @@
                                               "Heure d'\u00e9t\u00e9 de Guyane fran\u00e7aise", "GFST"}},
             {"America/Cayman", EST},
             {"America/Chihuahua", MST},
+            {"America/Creston", MST},
             {"America/Coral_Harbour", EST},
             {"America/Cordoba", AGT},
             {"America/Costa_Rica", CST},
@@ -678,7 +679,7 @@
             {"Europe/Istanbul", EET},
             {"Europe/Jersey", GMTBST},
             {"Europe/Kaliningrad", FET},
-            {"Europe/Kiev", FET},
+            {"Europe/Kiev", EET},
             {"Europe/Lisbon", WET},
             {"Europe/Ljubljana", CET},
             {"Europe/London", GMTBST},
@@ -699,14 +700,14 @@
                                             "Heure d'\u00e9t\u00e9 de Samara", "SAMST"}},
             {"Europe/San_Marino", CET},
             {"Europe/Sarajevo", CET},
-            {"Europe/Simferopol", FET},
+            {"Europe/Simferopol", EET},
             {"Europe/Skopje", CET},
             {"Europe/Sofia", EET},
             {"Europe/Stockholm", CET},
             {"Europe/Tallinn", EET},
             {"Europe/Tirane", CET},
             {"Europe/Tiraspol", EET},
-            {"Europe/Uzhgorod", FET},
+            {"Europe/Uzhgorod", EET},
             {"Europe/Vaduz", CET},
             {"Europe/Vatican", CET},
             {"Europe/Vienna", CET},
@@ -715,7 +716,7 @@
                                                "Heure d'\u00e9t\u00e9 de Volgograd", "VOLST"}},
             {"Europe/Warsaw", CET},
             {"Europe/Zagreb", CET},
-            {"Europe/Zaporozhye", FET},
+            {"Europe/Zaporozhye", EET},
             {"Europe/Zurich", CET},
             {"GB", GMTBST},
             {"GB-Eire", GMTBST},
--- a/jdk/src/share/classes/sun/util/resources/TimeZoneNames_it.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/sun/util/resources/TimeZoneNames_it.java	Wed Jul 05 18:07:57 2017 +0200
@@ -333,6 +333,7 @@
                                               "Ora estiva della Guyana Francese", "GFST"}},
             {"America/Cayman", EST},
             {"America/Chihuahua", MST},
+            {"America/Creston", MST},
             {"America/Coral_Harbour", EST},
             {"America/Cordoba", AGT},
             {"America/Costa_Rica", CST},
@@ -678,7 +679,7 @@
             {"Europe/Istanbul", EET},
             {"Europe/Jersey", GMTBST},
             {"Europe/Kaliningrad", FET},
-            {"Europe/Kiev", FET},
+            {"Europe/Kiev", EET},
             {"Europe/Lisbon", WET},
             {"Europe/Ljubljana", CET},
             {"Europe/London", GMTBST},
@@ -699,14 +700,14 @@
                                             "Ora estiva di Samara", "SAMST"}},
             {"Europe/San_Marino", CET},
             {"Europe/Sarajevo", CET},
-            {"Europe/Simferopol", FET},
+            {"Europe/Simferopol", EET},
             {"Europe/Skopje", CET},
             {"Europe/Sofia", EET},
             {"Europe/Stockholm", CET},
             {"Europe/Tallinn", EET},
             {"Europe/Tirane", CET},
             {"Europe/Tiraspol", EET},
-            {"Europe/Uzhgorod", FET},
+            {"Europe/Uzhgorod", EET},
             {"Europe/Vaduz", CET},
             {"Europe/Vatican", CET},
             {"Europe/Vienna", CET},
@@ -715,7 +716,7 @@
                                                "Ora estiva di Volgograd", "VOLST"}},
             {"Europe/Warsaw", CET},
             {"Europe/Zagreb", CET},
-            {"Europe/Zaporozhye", FET},
+            {"Europe/Zaporozhye", EET},
             {"Europe/Zurich", CET},
             {"GB", GMTBST},
             {"GB-Eire", GMTBST},
--- a/jdk/src/share/classes/sun/util/resources/TimeZoneNames_ja.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/sun/util/resources/TimeZoneNames_ja.java	Wed Jul 05 18:07:57 2017 +0200
@@ -333,6 +333,7 @@
                                               "\u4ecf\u9818\u30ae\u30a2\u30ca\u590f\u6642\u9593", "GFST"}},
             {"America/Cayman", EST},
             {"America/Chihuahua", MST},
+            {"America/Creston", MST},
             {"America/Coral_Harbour", EST},
             {"America/Cordoba", AGT},
             {"America/Costa_Rica", CST},
@@ -678,7 +679,7 @@
             {"Europe/Istanbul", EET},
             {"Europe/Jersey", GMTBST},
             {"Europe/Kaliningrad", FET},
-            {"Europe/Kiev", FET},
+            {"Europe/Kiev", EET},
             {"Europe/Lisbon", WET},
             {"Europe/Ljubljana", CET},
             {"Europe/London", GMTBST},
@@ -699,14 +700,14 @@
                                             "\u30b5\u30de\u30e9\u590f\u6642\u9593", "SAMST"}},
             {"Europe/San_Marino", CET},
             {"Europe/Sarajevo", CET},
-            {"Europe/Simferopol", FET},
+            {"Europe/Simferopol", EET},
             {"Europe/Skopje", CET},
             {"Europe/Sofia", EET},
             {"Europe/Stockholm", CET},
             {"Europe/Tallinn", EET},
             {"Europe/Tirane", CET},
             {"Europe/Tiraspol", EET},
-            {"Europe/Uzhgorod", FET},
+            {"Europe/Uzhgorod", EET},
             {"Europe/Vaduz", CET},
             {"Europe/Vatican", CET},
             {"Europe/Vienna", CET},
@@ -715,7 +716,7 @@
                                                "\u30dc\u30eb\u30b4\u30b0\u30e9\u30fc\u30c9\u590f\u6642\u9593", "VOLST"}},
             {"Europe/Warsaw", CET},
             {"Europe/Zagreb", CET},
-            {"Europe/Zaporozhye", FET},
+            {"Europe/Zaporozhye", EET},
             {"Europe/Zurich", CET},
             {"GB", GMTBST},
             {"GB-Eire", GMTBST},
--- a/jdk/src/share/classes/sun/util/resources/TimeZoneNames_ko.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/sun/util/resources/TimeZoneNames_ko.java	Wed Jul 05 18:07:57 2017 +0200
@@ -333,6 +333,7 @@
                                               "\ud504\ub791\uc2a4\ub839 \uae30\uc544\ub098 \uc77c\uad11\uc808\uc57d\uc2dc\uac04", "GFST"}},
             {"America/Cayman", EST},
             {"America/Chihuahua", MST},
+            {"America/Creston", MST},
             {"America/Coral_Harbour", EST},
             {"America/Cordoba", AGT},
             {"America/Costa_Rica", CST},
@@ -678,7 +679,7 @@
             {"Europe/Istanbul", EET},
             {"Europe/Jersey", GMTBST},
             {"Europe/Kaliningrad", FET},
-            {"Europe/Kiev", FET},
+            {"Europe/Kiev", EET},
             {"Europe/Lisbon", WET},
             {"Europe/Ljubljana", CET},
             {"Europe/London", GMTBST},
@@ -699,14 +700,14 @@
                                             "\uc0ac\ub9c8\ub77c \uc77c\uad11\uc808\uc57d\uc2dc\uac04", "SAMST"}},
             {"Europe/San_Marino", CET},
             {"Europe/Sarajevo", CET},
-            {"Europe/Simferopol", FET},
+            {"Europe/Simferopol", EET},
             {"Europe/Skopje", CET},
             {"Europe/Sofia", EET},
             {"Europe/Stockholm", CET},
             {"Europe/Tallinn", EET},
             {"Europe/Tirane", CET},
             {"Europe/Tiraspol", EET},
-            {"Europe/Uzhgorod", FET},
+            {"Europe/Uzhgorod", EET},
             {"Europe/Vaduz", CET},
             {"Europe/Vatican", CET},
             {"Europe/Vienna", CET},
@@ -715,7 +716,7 @@
                                                "\ubcfc\uace0\uadf8\ub77c\ub4dc \uc77c\uad11\uc808\uc57d\uc2dc\uac04", "VOLST"}},
             {"Europe/Warsaw", CET},
             {"Europe/Zagreb", CET},
-            {"Europe/Zaporozhye", FET},
+            {"Europe/Zaporozhye", EET},
             {"Europe/Zurich", CET},
             {"GB", GMTBST},
             {"GB-Eire", GMTBST},
--- a/jdk/src/share/classes/sun/util/resources/TimeZoneNames_pt_BR.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/sun/util/resources/TimeZoneNames_pt_BR.java	Wed Jul 05 18:07:57 2017 +0200
@@ -333,6 +333,7 @@
                                               "Fuso hor\u00e1rio de ver\u00e3o da Guiana Francesa", "GFST"}},
             {"America/Cayman", EST},
             {"America/Chihuahua", MST},
+            {"America/Creston", MST},
             {"America/Coral_Harbour", EST},
             {"America/Cordoba", AGT},
             {"America/Costa_Rica", CST},
@@ -678,7 +679,7 @@
             {"Europe/Istanbul", EET},
             {"Europe/Jersey", GMTBST},
             {"Europe/Kaliningrad", FET},
-            {"Europe/Kiev", FET},
+            {"Europe/Kiev", EET},
             {"Europe/Lisbon", WET},
             {"Europe/Ljubljana", CET},
             {"Europe/London", GMTBST},
@@ -699,14 +700,14 @@
                                             "Fuso hor\u00e1rio de ver\u00e3o de Samara", "SAMST"}},
             {"Europe/San_Marino", CET},
             {"Europe/Sarajevo", CET},
-            {"Europe/Simferopol", FET},
+            {"Europe/Simferopol", EET},
             {"Europe/Skopje", CET},
             {"Europe/Sofia", EET},
             {"Europe/Stockholm", CET},
             {"Europe/Tallinn", EET},
             {"Europe/Tirane", CET},
             {"Europe/Tiraspol", EET},
-            {"Europe/Uzhgorod", FET},
+            {"Europe/Uzhgorod", EET},
             {"Europe/Vaduz", CET},
             {"Europe/Vatican", CET},
             {"Europe/Vienna", CET},
@@ -715,7 +716,7 @@
                                                "Fuso hor\u00e1rio de ver\u00e3o de Volgogrado", "VOLST"}},
             {"Europe/Warsaw", CET},
             {"Europe/Zagreb", CET},
-            {"Europe/Zaporozhye", FET},
+            {"Europe/Zaporozhye", EET},
             {"Europe/Zurich", CET},
             {"GB", GMTBST},
             {"GB-Eire", GMTBST},
--- a/jdk/src/share/classes/sun/util/resources/TimeZoneNames_sv.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/sun/util/resources/TimeZoneNames_sv.java	Wed Jul 05 18:07:57 2017 +0200
@@ -333,6 +333,7 @@
                                               "Franska Guyana, sommartid", "GFST"}},
             {"America/Cayman", EST},
             {"America/Chihuahua", MST},
+            {"America/Creston", MST},
             {"America/Coral_Harbour", EST},
             {"America/Cordoba", AGT},
             {"America/Costa_Rica", CST},
@@ -678,7 +679,7 @@
             {"Europe/Istanbul", EET},
             {"Europe/Jersey", GMTBST},
             {"Europe/Kaliningrad", FET},
-            {"Europe/Kiev", FET},
+            {"Europe/Kiev", EET},
             {"Europe/Lisbon", WET},
             {"Europe/Ljubljana", CET},
             {"Europe/London", GMTBST},
@@ -699,14 +700,14 @@
                                             "Samara, sommartid", "SAMST"}},
             {"Europe/San_Marino", CET},
             {"Europe/Sarajevo", CET},
-            {"Europe/Simferopol", FET},
+            {"Europe/Simferopol", EET},
             {"Europe/Skopje", CET},
             {"Europe/Sofia", EET},
             {"Europe/Stockholm", CET},
             {"Europe/Tallinn", EET},
             {"Europe/Tirane", CET},
             {"Europe/Tiraspol", EET},
-            {"Europe/Uzhgorod", FET},
+            {"Europe/Uzhgorod", EET},
             {"Europe/Vaduz", CET},
             {"Europe/Vatican", CET},
             {"Europe/Vienna", CET},
@@ -715,7 +716,7 @@
                                                "Volgograd, sommartid", "VOLST"}},
             {"Europe/Warsaw", CET},
             {"Europe/Zagreb", CET},
-            {"Europe/Zaporozhye", FET},
+            {"Europe/Zaporozhye", EET},
             {"Europe/Zurich", CET},
             {"GB", GMTBST},
             {"GB-Eire", GMTBST},
--- a/jdk/src/share/classes/sun/util/resources/TimeZoneNames_zh_CN.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/sun/util/resources/TimeZoneNames_zh_CN.java	Wed Jul 05 18:07:57 2017 +0200
@@ -333,6 +333,7 @@
                                               "\u6cd5\u5c5e\u572d\u4e9a\u90a3\u590f\u4ee4\u65f6", "GFST"}},
             {"America/Cayman", EST},
             {"America/Chihuahua", MST},
+            {"America/Creston", MST},
             {"America/Coral_Harbour", EST},
             {"America/Cordoba", AGT},
             {"America/Costa_Rica", CST},
@@ -678,7 +679,7 @@
             {"Europe/Istanbul", EET},
             {"Europe/Jersey", GMTBST},
             {"Europe/Kaliningrad", FET},
-            {"Europe/Kiev", FET},
+            {"Europe/Kiev", EET},
             {"Europe/Lisbon", WET},
             {"Europe/Ljubljana", CET},
             {"Europe/London", GMTBST},
@@ -699,14 +700,14 @@
                                             "\u6c99\u9a6c\u62c9\u590f\u4ee4\u65f6", "SAMST"}},
             {"Europe/San_Marino", CET},
             {"Europe/Sarajevo", CET},
-            {"Europe/Simferopol", FET},
+            {"Europe/Simferopol", EET},
             {"Europe/Skopje", CET},
             {"Europe/Sofia", EET},
             {"Europe/Stockholm", CET},
             {"Europe/Tallinn", EET},
             {"Europe/Tirane", CET},
             {"Europe/Tiraspol", EET},
-            {"Europe/Uzhgorod", FET},
+            {"Europe/Uzhgorod", EET},
             {"Europe/Vaduz", CET},
             {"Europe/Vatican", CET},
             {"Europe/Vienna", CET},
@@ -715,7 +716,7 @@
                                                "\u4f0f\u5c14\u52a0\u683c\u52d2\u590f\u4ee4\u65f6", "VOLST"}},
             {"Europe/Warsaw", CET},
             {"Europe/Zagreb", CET},
-            {"Europe/Zaporozhye", FET},
+            {"Europe/Zaporozhye", EET},
             {"Europe/Zurich", CET},
             {"GB", GMTBST},
             {"GB-Eire", GMTBST},
--- a/jdk/src/share/classes/sun/util/resources/TimeZoneNames_zh_TW.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/share/classes/sun/util/resources/TimeZoneNames_zh_TW.java	Wed Jul 05 18:07:57 2017 +0200
@@ -333,6 +333,7 @@
                                               "\u6cd5\u5c6c\u572d\u4e9e\u90a3\u590f\u4ee4\u6642\u9593", "GFST"}},
             {"America/Cayman", EST},
             {"America/Chihuahua", MST},
+            {"America/Creston", MST},
             {"America/Coral_Harbour", EST},
             {"America/Cordoba", AGT},
             {"America/Costa_Rica", CST},
@@ -679,7 +680,7 @@
             {"Europe/Istanbul", EET},
             {"Europe/Jersey", GMTBST},
             {"Europe/Kaliningrad", FET},
-            {"Europe/Kiev", FET},
+            {"Europe/Kiev", EET},
             {"Europe/Lisbon", WET},
             {"Europe/Ljubljana", CET},
             {"Europe/London", GMTBST},
@@ -700,14 +701,14 @@
                                             "\u6c99\u99ac\u62c9\u590f\u4ee4\u6642\u9593", "SAMST"}},
             {"Europe/San_Marino", CET},
             {"Europe/Sarajevo", CET},
-            {"Europe/Simferopol", FET},
+            {"Europe/Simferopol", EET},
             {"Europe/Skopje", CET},
             {"Europe/Sofia", EET},
             {"Europe/Stockholm", CET},
             {"Europe/Tallinn", EET},
             {"Europe/Tirane", CET},
             {"Europe/Tiraspol", EET},
-            {"Europe/Uzhgorod", FET},
+            {"Europe/Uzhgorod", EET},
             {"Europe/Vaduz", CET},
             {"Europe/Vatican", CET},
             {"Europe/Vienna", CET},
@@ -716,7 +717,7 @@
                                                "\u4f0f\u723e\u52a0\u683c\u52d2\u590f\u4ee4\u6642\u9593", "VOLST"}},
             {"Europe/Warsaw", CET},
             {"Europe/Zagreb", CET},
-            {"Europe/Zaporozhye", FET},
+            {"Europe/Zaporozhye", EET},
             {"Europe/Zurich", CET},
             {"GB", GMTBST},
             {"GB-Eire", GMTBST},
--- a/jdk/src/solaris/bin/java_md.c	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/solaris/bin/java_md.c	Wed Jul 05 18:07:57 2017 +0200
@@ -37,10 +37,10 @@
 #include "manifest_info.h"
 #include "version_comp.h"
 
-#ifdef __linux__
+#ifdef __solaris__
+#include <thread.h>
+#else
 #include <pthread.h>
-#else
-#include <thread.h>
 #endif
 
 #define JVM_DLL "libjvm.so"
@@ -1434,7 +1434,18 @@
 int
 ContinueInNewThread0(int (JNICALL *continuation)(void *), jlong stack_size, void * args) {
     int rslt;
-#ifdef __linux__
+#ifdef __solaris__
+    thread_t tid;
+    long flags = 0;
+    if (thr_create(NULL, stack_size, (void *(*)(void *))continuation, args, flags, &tid) == 0) {
+      void * tmp;
+      thr_join(tid, NULL, &tmp);
+      rslt = (int)tmp;
+    } else {
+      /* See below. Continue in current thread if thr_create() failed */
+      rslt = continuation(args);
+    }
+#else
     pthread_t tid;
     pthread_attr_t attr;
     pthread_attr_init(&attr);
@@ -1459,17 +1470,6 @@
     }
 
     pthread_attr_destroy(&attr);
-#else
-    thread_t tid;
-    long flags = 0;
-    if (thr_create(NULL, stack_size, (void *(*)(void *))continuation, args, flags, &tid) == 0) {
-      void * tmp;
-      thr_join(tid, NULL, &tmp);
-      rslt = (int)tmp;
-    } else {
-      /* See above. Continue in current thread if thr_create() failed */
-      rslt = continuation(args);
-    }
 #endif
     return rslt;
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/solaris/classes/java/lang/ClassLoaderHelper.java	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 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.
+ */
+package java.lang;
+
+import java.io.File;
+
+class ClassLoaderHelper {
+
+    private ClassLoaderHelper() {}
+
+    /**
+     * Returns an alternate path name for the given file
+     * such that if the original pathname did not exist, then the
+     * file may be located at the alternate location.
+     * For most platforms, this behavior is not supported and returns null.
+     */
+    static File mapAlternativeName(File lib) {
+        return null;
+    }
+}
--- a/jdk/src/solaris/classes/sun/awt/X11/XTextAreaPeer.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/solaris/classes/sun/awt/X11/XTextAreaPeer.java	Wed Jul 05 18:07:57 2017 +0200
@@ -168,6 +168,8 @@
 
     public void dispose() {
         XToolkit.specialPeerMap.remove(jtext);
+        // visible caret has a timer thread which must be stopped
+        jtext.getCaret().setVisible(false);
         jtext.removeNotify();
         textPane.removeNotify();
         super.dispose();
--- a/jdk/src/solaris/classes/sun/awt/X11/XTextFieldPeer.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/solaris/classes/sun/awt/X11/XTextFieldPeer.java	Wed Jul 05 18:07:57 2017 +0200
@@ -104,6 +104,8 @@
 
     public void dispose() {
         XToolkit.specialPeerMap.remove(xtext);
+        // visible caret has a timer thread which must be stopped
+        xtext.getCaret().setVisible(false);
         xtext.removeNotify();
         super.dispose();
     }
--- a/jdk/src/solaris/classes/sun/nio/ch/sctp/AssociationChange.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/solaris/classes/sun/nio/ch/sctp/AssociationChange.java	Wed Jul 05 18:07:57 2017 +0200
@@ -26,10 +26,13 @@
 
 import com.sun.nio.sctp.Association;
 import com.sun.nio.sctp.AssociationChangeNotification;
+import javax.tools.annotation.GenerateNativeHeader;
 
 /**
  * An implementation of AssociationChangeNotification
  */
+/* No native methods here, but the constants are needed in the supporting JNI code */
+@GenerateNativeHeader
 public class AssociationChange extends AssociationChangeNotification
     implements SctpNotification
 {
--- a/jdk/src/solaris/classes/sun/nio/ch/sctp/PeerAddrChange.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/solaris/classes/sun/nio/ch/sctp/PeerAddrChange.java	Wed Jul 05 18:07:57 2017 +0200
@@ -27,10 +27,13 @@
 import java.net.SocketAddress;
 import com.sun.nio.sctp.Association;
 import com.sun.nio.sctp.PeerAddressChangeNotification;
+import javax.tools.annotation.GenerateNativeHeader;
 
 /**
  * An implementation of PeerAddressChangeNotification
  */
+/* No native methods here, but the constants are needed in the supporting JNI code */
+@GenerateNativeHeader
 public class PeerAddrChange extends PeerAddressChangeNotification
     implements SctpNotification
 {
--- a/jdk/src/solaris/classes/sun/nio/ch/sctp/ResultContainer.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/solaris/classes/sun/nio/ch/sctp/ResultContainer.java	Wed Jul 05 18:07:57 2017 +0200
@@ -24,10 +24,14 @@
  */
 package sun.nio.ch.sctp;
 
+import javax.tools.annotation.GenerateNativeHeader;
+
 /**
  * Wraps the actual message or notification so that it can be
  * set and returned from the native receive implementation.
  */
+/* No native methods here, but the constants are needed in the supporting JNI code */
+@GenerateNativeHeader
 public class ResultContainer {
     /* static final ints so that they can be referenced from native */
     static final int NOTHING = 0;
--- a/jdk/src/solaris/transport/socket/socket_md.c	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/solaris/transport/socket/socket_md.c	Wed Jul 05 18:07:57 2017 +0200
@@ -35,8 +35,7 @@
 #include <sys/time.h>
 #ifdef __solaris__
 #include <thread.h>
-#endif
-#if defined(__linux__) || defined(_ALLBSD_SOURCE)
+#else
 #include <pthread.h>
 #include <sys/poll.h>
 #endif
@@ -306,9 +305,7 @@
     return r;
 }
 
-#endif
-
-#if defined(__linux__) || defined(_ALLBSD_SOURCE)
+#else
 int
 dbgsysTlsAlloc() {
     pthread_key_t key;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/windows/classes/com/sun/tools/jdi/SharedMemoryConnection.java	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,143 @@
+/*
+ * Copyright (c) 1999, 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.
+ */
+
+package com.sun.tools.jdi;
+
+import com.sun.jdi.*;
+import com.sun.jdi.connect.*;
+import com.sun.jdi.connect.spi.*;
+
+import java.io.IOException;
+
+class SharedMemoryConnection extends Connection {
+    private long id;
+    private Object receiveLock = new Object();
+    private Object sendLock = new Object();
+    private Object closeLock = new Object();
+    private boolean closed = false;
+
+    private native byte receiveByte0(long id) throws IOException;
+    private native void sendByte0(long id, byte b) throws IOException;
+    private native void close0(long id);
+    private native byte[] receivePacket0(long id)throws IOException;
+    private native void sendPacket0(long id, byte b[]) throws IOException;
+
+    // handshake with the target VM
+    void handshake(long handshakeTimeout) throws IOException {
+        byte[] hello = "JDWP-Handshake".getBytes("UTF-8");
+
+        for (int i=0; i<hello.length; i++) {
+            sendByte0(id, hello[i]);
+        }
+        for (int i=0; i<hello.length; i++) {
+            byte b = receiveByte0(id);
+            if (b != hello[i]) {
+                throw new IOException("handshake failed - unrecognized message from target VM");
+            }
+        }
+    }
+
+
+    SharedMemoryConnection(long id) throws IOException {
+        this.id = id;
+    }
+
+    public void close() {
+        synchronized (closeLock) {
+            if (!closed) {
+                close0(id);
+                closed = true;
+            }
+        }
+    }
+
+    public boolean isOpen() {
+        synchronized (closeLock) {
+            return !closed;
+        }
+    }
+
+    public byte[] readPacket() throws IOException {
+        if (!isOpen()) {
+            throw new ClosedConnectionException("Connection closed");
+        }
+        byte b[];
+        try {
+            // only one thread may be reading at a time
+            synchronized (receiveLock) {
+                b  = receivePacket0(id);
+            }
+        } catch (IOException ioe) {
+            if (!isOpen()) {
+                throw new ClosedConnectionException("Connection closed");
+            } else {
+                throw ioe;
+            }
+        }
+        return b;
+    }
+
+    public void writePacket(byte b[]) throws IOException {
+        if (!isOpen()) {
+            throw new ClosedConnectionException("Connection closed");
+        }
+
+        /*
+         * Check the packet size
+         */
+        if (b.length < 11) {
+            throw new IllegalArgumentException("packet is insufficient size");
+        }
+        int b0 = b[0] & 0xff;
+        int b1 = b[1] & 0xff;
+        int b2 = b[2] & 0xff;
+        int b3 = b[3] & 0xff;
+        int len = ((b0 << 24) | (b1 << 16) | (b2 << 8) | (b3 << 0));
+        if (len < 11) {
+            throw new IllegalArgumentException("packet is insufficient size");
+        }
+
+        /*
+         * Check that the byte array contains the complete packet
+         */
+        if (len > b.length) {
+            throw new IllegalArgumentException("length mis-match");
+        }
+
+        try {
+            // only one thread may be writing at a time
+            synchronized(sendLock) {
+                sendPacket0(id, b);
+            }
+        } catch (IOException ioe) {
+            if (!isOpen()) {
+               throw new ClosedConnectionException("Connection closed");
+            } else {
+               throw ioe;
+            }
+        }
+    }
+}
+
--- a/jdk/src/windows/classes/com/sun/tools/jdi/SharedMemoryTransportService.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/src/windows/classes/com/sun/tools/jdi/SharedMemoryTransportService.java	Wed Jul 05 18:07:57 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -168,116 +168,6 @@
     }
 }
 
-class SharedMemoryConnection extends Connection {
-    private long id;
-    private Object receiveLock = new Object();
-    private Object sendLock = new Object();
-    private Object closeLock = new Object();
-    private boolean closed = false;
-
-    private native byte receiveByte0(long id) throws IOException;
-    private native void sendByte0(long id, byte b) throws IOException;
-    private native void close0(long id);
-    private native byte[] receivePacket0(long id)throws IOException;
-    private native void sendPacket0(long id, byte b[]) throws IOException;
-
-    // handshake with the target VM
-    void handshake(long handshakeTimeout) throws IOException {
-        byte[] hello = "JDWP-Handshake".getBytes("UTF-8");
-
-        for (int i=0; i<hello.length; i++) {
-            sendByte0(id, hello[i]);
-        }
-        for (int i=0; i<hello.length; i++) {
-            byte b = receiveByte0(id);
-            if (b != hello[i]) {
-                throw new IOException("handshake failed - unrecognized message from target VM");
-            }
-        }
-    }
-
-
-    SharedMemoryConnection(long id) throws IOException {
-        this.id = id;
-    }
-
-    public void close() {
-        synchronized (closeLock) {
-            if (!closed) {
-                close0(id);
-                closed = true;
-            }
-        }
-    }
-
-    public boolean isOpen() {
-        synchronized (closeLock) {
-            return !closed;
-        }
-    }
-
-    public byte[] readPacket() throws IOException {
-        if (!isOpen()) {
-            throw new ClosedConnectionException("Connection closed");
-        }
-        byte b[];
-        try {
-            // only one thread may be reading at a time
-            synchronized (receiveLock) {
-                b  = receivePacket0(id);
-            }
-        } catch (IOException ioe) {
-            if (!isOpen()) {
-                throw new ClosedConnectionException("Connection closed");
-            } else {
-                throw ioe;
-            }
-        }
-        return b;
-    }
-
-    public void writePacket(byte b[]) throws IOException {
-        if (!isOpen()) {
-            throw new ClosedConnectionException("Connection closed");
-        }
-
-        /*
-         * Check the packet size
-         */
-        if (b.length < 11) {
-            throw new IllegalArgumentException("packet is insufficient size");
-        }
-        int b0 = b[0] & 0xff;
-        int b1 = b[1] & 0xff;
-        int b2 = b[2] & 0xff;
-        int b3 = b[3] & 0xff;
-        int len = ((b0 << 24) | (b1 << 16) | (b2 << 8) | (b3 << 0));
-        if (len < 11) {
-            throw new IllegalArgumentException("packet is insufficient size");
-        }
-
-        /*
-         * Check that the byte array contains the complete packet
-         */
-        if (len > b.length) {
-            throw new IllegalArgumentException("length mis-match");
-        }
-
-        try {
-            // only one thread may be writing at a time
-            synchronized(sendLock) {
-                sendPacket0(id, b);
-            }
-        } catch (IOException ioe) {
-            if (!isOpen()) {
-               throw new ClosedConnectionException("Connection closed");
-            } else {
-               throw ioe;
-            }
-        }
-    }
-}
-
 
 class SharedMemoryTransportServiceCapabilities extends TransportService.Capabilities {
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/windows/classes/java/lang/ClassLoaderHelper.java	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 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.
+ */
+package java.lang;
+
+import java.io.File;
+
+class ClassLoaderHelper {
+
+    private ClassLoaderHelper() {}
+
+    /**
+     * Returns an alternate path name for the given file
+     * such that if the original pathname did not exist, then the
+     * file may be located at the alternate location.
+     * For most platforms, this behavior is not supported and returns null.
+     */
+    static File mapAlternativeName(File lib) {
+        return null;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/Frame/InvisibleOwner/InvisibleOwner.java	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,121 @@
+/*
+ * Copyright (c) 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.
+ *
+ * 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.
+ */
+
+/*
+  @test
+  @bug 7154177
+  @summary An invisible owner frame should never become visible
+  @author anthony.petrov@oracle.com: area=awt.toplevel
+  @library ../../regtesthelpers
+  @build Util
+  @run main InvisibleOwner
+*/
+
+import java.awt.*;
+import java.awt.event.*;
+import java.util.*;
+import test.java.awt.regtesthelpers.Util;
+
+public class InvisibleOwner {
+    private static volatile boolean invisibleOwnerClicked = false;
+    private static volatile boolean backgroundClicked = false;
+
+    private static final int F_X = 40, F_Y = 40, F_W = 200, F_H = 200;
+
+    public static void main(String[] args) throws AWTException {
+        // A background frame to compare a pixel color against
+        Frame helperFrame = new Frame("Background frame");
+        helperFrame.setBackground(Color.BLUE);
+        helperFrame.setBounds(F_X - 10, F_Y - 10, F_W + 20, F_H + 20);
+        helperFrame.addMouseListener(new MouseAdapter() {
+            @Override
+            public void mouseClicked(MouseEvent ev) {
+                backgroundClicked= true;
+            }
+        });
+        helperFrame.setVisible(true);
+
+        // An owner frame that should stay invisible
+        Frame frame = new Frame("Invisible Frame");
+        frame.setBackground(Color.GREEN);
+        frame.setLocation(F_X, F_Y);
+        frame.setSize(F_W, F_H);
+        frame.addMouseListener(new MouseAdapter() {
+            @Override
+            public void mouseClicked(MouseEvent ev) {
+                invisibleOwnerClicked = true;
+            }
+        });
+
+        // An owned window
+        final Window window = new Window(frame);
+        window.setBackground(Color.RED);
+        window.setSize(200, 200);
+        window.setLocation(300, 300);
+        window.setVisible(true);
+        try { Thread.sleep(1000); } catch (Exception ex) {}
+
+        Robot robot = new Robot();
+
+        // Clicking the owned window shouldn't make its owner visible
+        Util.clickOnComp(window, robot);
+        try { Thread.sleep(500); } catch (Exception ex) {}
+
+
+        // Assume the location and size are applied to the frame as expected.
+        // This should work fine on the Mac. We can't call getLocationOnScreen()
+        // since from Java perspective the frame is invisible anyway.
+
+        // 1. Check the color at the center of the owner frame
+        Color c = robot.getPixelColor(F_X + F_W / 2, F_Y + F_H / 2);
+        System.err.println("Pixel color: " + c);
+        if (c == null) {
+            throw new RuntimeException("Robot.getPixelColor() failed");
+        }
+        if (c.equals(frame.getBackground())) {
+            throw new RuntimeException("The invisible frame has become visible");
+        }
+        if (!c.equals(helperFrame.getBackground())) {
+            throw new RuntimeException("The background helper frame has been covered by something unexpected");
+        }
+
+        // 2. Try to click it
+        robot.mouseMove(F_X + F_W / 2, F_Y + F_H / 2);
+        robot.mousePress(InputEvent.BUTTON1_MASK);
+        robot.mouseRelease(InputEvent.BUTTON1_MASK);
+        try { Thread.sleep(500); } catch (Exception ex) {}
+
+        // Cleanup
+        window.dispose();
+        frame.dispose();
+        helperFrame.dispose();
+
+        // Final checks
+        if (invisibleOwnerClicked) {
+            throw new RuntimeException("An invisible owner frame got clicked. Looks like it became visible.");
+        }
+        if (!backgroundClicked) {
+            throw new RuntimeException("The background helper frame hasn't been clciked");
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/TextArea/DisposeTest/TestDispose.java	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,101 @@
+/*
+ * Copyright (c) 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.
+ *
+ * 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.
+ */
+
+/*
+ * Portions Copyright (c) 2012 IBM Corporation
+ */
+
+/* @test
+ * @bug 7155298
+ * @run main/othervm/timeout=60 TestDispose
+ * @summary Editable TextArea blocks GUI application from exit.
+ * @author Sean Chou
+ */
+
+import java.awt.FlowLayout;
+import java.awt.Frame;
+import java.awt.TextArea;
+import java.awt.Toolkit;
+import java.lang.reflect.InvocationTargetException;
+
+import javax.swing.JFrame;
+import javax.swing.SwingUtilities;
+
+import sun.awt.SunToolkit;
+
+public class TestDispose {
+
+    public static Frame frame = null;
+    public static TextArea textArea = null;
+    public static volatile Process worker = null;
+
+    public void testDispose() throws InvocationTargetException,
+            InterruptedException {
+        SunToolkit toolkit = (SunToolkit) Toolkit.getDefaultToolkit();
+
+        SwingUtilities.invokeAndWait(new Runnable() {
+            @Override
+            public void run() {
+                frame = new JFrame("Test");
+
+                textArea = new TextArea("editable textArea");
+                textArea.setEditable(true);
+                // textArea.setEditable(false); // this testcase passes if textArea is non-editable
+
+                frame.setLayout(new FlowLayout());
+                frame.add(textArea);
+
+                frame.pack();
+                frame.setVisible(true);
+            }
+        });
+        toolkit.realSync();
+
+        SwingUtilities.invokeAndWait(new Runnable() {
+            @Override
+            public void run() {
+                frame.dispose();
+            }
+        });
+        toolkit.realSync();
+    }
+
+    public static void main(String[] args) throws Exception{
+        if(args.length == 0) {
+            Runtime.getRuntime().addShutdownHook(new Thread(){
+                public void run() {
+                    worker.destroy();
+                }
+            });
+
+            System.out.println(System.getProperty("java.home")+"/bin/java TestDispose workprocess");
+            worker = Runtime.getRuntime().exec(System.getProperty("java.home")+"/bin/java TestDispose workprocess");
+            worker.waitFor();
+            return;
+        }
+
+        TestDispose app = new TestDispose();
+        app.testDispose();
+    }
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/TextField/DisposeTest/TestDispose.java	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,102 @@
+/*
+ * Copyright (c) 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.
+ *
+ * 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.
+ */
+
+/*
+ * Portions Copyright (c) 2012 IBM Corporation
+ */
+
+/* @test
+ * @bug 7155298
+ * @run main/othervm/timeout=60 TestDispose
+ * @summary Editable TextField blocks GUI application from exit.
+ * @author Sean Chou
+ */
+
+import java.awt.FlowLayout;
+import java.awt.Frame;
+import java.awt.TextField;
+import java.awt.Toolkit;
+import java.lang.reflect.InvocationTargetException;
+
+import javax.swing.JFrame;
+import javax.swing.SwingUtilities;
+
+import sun.awt.SunToolkit;
+
+public class TestDispose {
+
+    public static Frame frame = null;
+    public static TextField textField = null;
+    public static volatile Process worker = null;
+
+    public void testDispose() throws InvocationTargetException,
+            InterruptedException {
+        SunToolkit toolkit = (SunToolkit) Toolkit.getDefaultToolkit();
+
+        SwingUtilities.invokeAndWait(new Runnable() {
+            @Override
+            public void run() {
+                frame = new JFrame("Test");
+
+                textField = new TextField("editable textArea");
+                textField.setEditable(true);
+                // textField.setEditable(false); // this testcase passes if textField is non-editable
+
+                frame.setLayout(new FlowLayout());
+                frame.add(textField);
+
+                frame.pack();
+                frame.setVisible(true);
+            }
+        });
+        toolkit.realSync();
+
+        SwingUtilities.invokeAndWait(new Runnable() {
+            @Override
+            public void run() {
+                frame.dispose();
+            }
+        });
+        toolkit.realSync();
+
+    }
+
+    public static void main(String[] args) throws Exception{
+        if(args.length == 0) {
+            Runtime.getRuntime().addShutdownHook(new Thread(){
+                public void run() {
+                    worker.destroy();
+                }
+            });
+
+            System.out.println(System.getProperty("java.home")+"/bin/java TestDispose workprocess");
+            worker = Runtime.getRuntime().exec(System.getProperty("java.home")+"/bin/java TestDispose workprocess");
+            worker.waitFor();
+            return;
+        }
+
+        TestDispose app = new TestDispose();
+        app.testDispose();
+    }
+
+}
--- a/jdk/test/java/lang/Character/CheckProp.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/test/java/lang/Character/CheckProp.java	Wed Jul 05 18:07:57 2017 +0200
@@ -24,7 +24,7 @@
 
 /**
  * @test
- * @bug 7037261
+ * @bug 7037261 7070436
  * @summary  Check j.l.Character.isLowerCase/isUppercase/isAlphabetic/isIdeographic
  */
 
--- a/jdk/test/java/lang/Character/CheckScript.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/test/java/lang/Character/CheckScript.java	Wed Jul 05 18:07:57 2017 +0200
@@ -24,7 +24,7 @@
 
 /**
  * @test
- * @bug 6945564 6959267 7033561
+ * @bug 6945564 6959267 7033561 7070436
  * @summary  Check that the j.l.Character.UnicodeScript
  */
 
--- a/jdk/test/java/lang/Character/PropList.txt	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/test/java/lang/Character/PropList.txt	Wed Jul 05 18:07:57 2017 +0200
@@ -1,8 +1,8 @@
-# PropList-6.0.0.txt
-# Date: 2010-08-19, 00:48:28 GMT [MD]
+# PropList-6.1.0.txt
+# Date: 2011-11-30, 01:49:54 GMT [MD]
 #
 # Unicode Character Database
-# Copyright (c) 1991-2010 Unicode, Inc.
+# Copyright (c) 1991-2011 Unicode, Inc.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
 # For documentation, see http://www.unicode.org/reports/tr44/
 
@@ -50,6 +50,7 @@
 2212          ; Dash # Sm       MINUS SIGN
 2E17          ; Dash # Pd       DOUBLE OBLIQUE HYPHEN
 2E1A          ; Dash # Pd       HYPHEN WITH DIAERESIS
+2E3A..2E3B    ; Dash # Pd   [2] TWO-EM DASH..THREE-EM DASH
 301C          ; Dash # Pd       WAVE DASH
 3030          ; Dash # Pd       WAVY DASH
 30A0          ; Dash # Pd       KATAKANA-HIRAGANA DOUBLE HYPHEN
@@ -58,7 +59,7 @@
 FE63          ; Dash # Pd       SMALL HYPHEN-MINUS
 FF0D          ; Dash # Pd       FULLWIDTH HYPHEN-MINUS
 
-# Total code points: 25
+# Total code points: 27
 
 # ================================================
 
@@ -158,6 +159,7 @@
 A9C7..A9C9    ; Terminal_Punctuation # Po   [3] JAVANESE PADA PANGKAT..JAVANESE PADA LUNGSI
 AA5D..AA5F    ; Terminal_Punctuation # Po   [3] CHAM PUNCTUATION DANDA..CHAM PUNCTUATION TRIPLE DANDA
 AADF          ; Terminal_Punctuation # Po       TAI VIET SYMBOL KOI KOI
+AAF0..AAF1    ; Terminal_Punctuation # Po   [2] MEETEI MAYEK CHEIKHAN..MEETEI MAYEK AHANG KHUDAM
 ABEB          ; Terminal_Punctuation # Po       MEETEI MAYEK CHEIKHEI
 FE50..FE52    ; Terminal_Punctuation # Po   [3] SMALL COMMA..SMALL FULL STOP
 FE54..FE57    ; Terminal_Punctuation # Po   [4] SMALL SEMICOLON..SMALL EXCLAMATION MARK
@@ -175,9 +177,11 @@
 10B3A..10B3F  ; Terminal_Punctuation # Po   [6] TINY TWO DOTS OVER ONE DOT PUNCTUATION..LARGE ONE RING OVER TWO RINGS PUNCTUATION
 11047..1104D  ; Terminal_Punctuation # Po   [7] BRAHMI DANDA..BRAHMI PUNCTUATION LOTUS
 110BE..110C1  ; Terminal_Punctuation # Po   [4] KAITHI SECTION MARK..KAITHI DOUBLE DANDA
+11141..11143  ; Terminal_Punctuation # Po   [3] CHAKMA DANDA..CHAKMA QUESTION MARK
+111C5..111C6  ; Terminal_Punctuation # Po   [2] SHARADA DANDA..SHARADA DOUBLE DANDA
 12470..12473  ; Terminal_Punctuation # Po   [4] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON
 
-# Total code points: 169
+# Total code points: 176
 
 # ================================================
 
@@ -320,8 +324,41 @@
 1D7AA..1D7C2  ; Other_Math # L&  [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
 1D7C4..1D7CB  ; Other_Math # L&   [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA
 1D7CE..1D7FF  ; Other_Math # Nd  [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
+1EE00..1EE03  ; Other_Math # Lo   [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
+1EE05..1EE1F  ; Other_Math # Lo  [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
+1EE21..1EE22  ; Other_Math # Lo   [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM
+1EE24         ; Other_Math # Lo       ARABIC MATHEMATICAL INITIAL HEH
+1EE27         ; Other_Math # Lo       ARABIC MATHEMATICAL INITIAL HAH
+1EE29..1EE32  ; Other_Math # Lo  [10] ARABIC MATHEMATICAL INITIAL YEH..ARABIC MATHEMATICAL INITIAL QAF
+1EE34..1EE37  ; Other_Math # Lo   [4] ARABIC MATHEMATICAL INITIAL SHEEN..ARABIC MATHEMATICAL INITIAL KHAH
+1EE39         ; Other_Math # Lo       ARABIC MATHEMATICAL INITIAL DAD
+1EE3B         ; Other_Math # Lo       ARABIC MATHEMATICAL INITIAL GHAIN
+1EE42         ; Other_Math # Lo       ARABIC MATHEMATICAL TAILED JEEM
+1EE47         ; Other_Math # Lo       ARABIC MATHEMATICAL TAILED HAH
+1EE49         ; Other_Math # Lo       ARABIC MATHEMATICAL TAILED YEH
+1EE4B         ; Other_Math # Lo       ARABIC MATHEMATICAL TAILED LAM
+1EE4D..1EE4F  ; Other_Math # Lo   [3] ARABIC MATHEMATICAL TAILED NOON..ARABIC MATHEMATICAL TAILED AIN
+1EE51..1EE52  ; Other_Math # Lo   [2] ARABIC MATHEMATICAL TAILED SAD..ARABIC MATHEMATICAL TAILED QAF
+1EE54         ; Other_Math # Lo       ARABIC MATHEMATICAL TAILED SHEEN
+1EE57         ; Other_Math # Lo       ARABIC MATHEMATICAL TAILED KHAH
+1EE59         ; Other_Math # Lo       ARABIC MATHEMATICAL TAILED DAD
+1EE5B         ; Other_Math # Lo       ARABIC MATHEMATICAL TAILED GHAIN
+1EE5D         ; Other_Math # Lo       ARABIC MATHEMATICAL TAILED DOTLESS NOON
+1EE5F         ; Other_Math # Lo       ARABIC MATHEMATICAL TAILED DOTLESS QAF
+1EE61..1EE62  ; Other_Math # Lo   [2] ARABIC MATHEMATICAL STRETCHED BEH..ARABIC MATHEMATICAL STRETCHED JEEM
+1EE64         ; Other_Math # Lo       ARABIC MATHEMATICAL STRETCHED HEH
+1EE67..1EE6A  ; Other_Math # Lo   [4] ARABIC MATHEMATICAL STRETCHED HAH..ARABIC MATHEMATICAL STRETCHED KAF
+1EE6C..1EE72  ; Other_Math # Lo   [7] ARABIC MATHEMATICAL STRETCHED MEEM..ARABIC MATHEMATICAL STRETCHED QAF
+1EE74..1EE77  ; Other_Math # Lo   [4] ARABIC MATHEMATICAL STRETCHED SHEEN..ARABIC MATHEMATICAL STRETCHED KHAH
+1EE79..1EE7C  ; Other_Math # Lo   [4] ARABIC MATHEMATICAL STRETCHED DAD..ARABIC MATHEMATICAL STRETCHED DOTLESS BEH
+1EE7E         ; Other_Math # Lo       ARABIC MATHEMATICAL STRETCHED DOTLESS FEH
+1EE80..1EE89  ; Other_Math # Lo  [10] ARABIC MATHEMATICAL LOOPED ALEF..ARABIC MATHEMATICAL LOOPED YEH
+1EE8B..1EE9B  ; Other_Math # Lo  [17] ARABIC MATHEMATICAL LOOPED LAM..ARABIC MATHEMATICAL LOOPED GHAIN
+1EEA1..1EEA3  ; Other_Math # Lo   [3] ARABIC MATHEMATICAL DOUBLE-STRUCK BEH..ARABIC MATHEMATICAL DOUBLE-STRUCK DAL
+1EEA5..1EEA9  ; Other_Math # Lo   [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH
+1EEAB..1EEBB  ; Other_Math # Lo  [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
 
-# Total code points: 1217
+# Total code points: 1358
 
 # ================================================
 
@@ -365,6 +402,8 @@
 081B..0823    ; Other_Alphabetic # Mn   [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A
 0825..0827    ; Other_Alphabetic # Mn   [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
 0829..082C    ; Other_Alphabetic # Mn   [4] SAMARITAN VOWEL SIGN LONG I..SAMARITAN VOWEL SIGN SUKUN
+08E4..08E9    ; Other_Alphabetic # Mn   [6] ARABIC CURLY FATHA..ARABIC CURLY KASRATAN
+08F0..08FE    ; Other_Alphabetic # Mn  [15] ARABIC OPEN FATHATAN..ARABIC DAMMA WITH DOT
 0900..0902    ; Other_Alphabetic # Mn   [3] DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANAGARI SIGN ANUSVARA
 0903          ; Other_Alphabetic # Mc       DEVANAGARI SIGN VISARGA
 093A          ; Other_Alphabetic # Mn       DEVANAGARI VOWEL SIGN OE
@@ -525,6 +564,7 @@
 1BA2..1BA5    ; Other_Alphabetic # Mn   [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU
 1BA6..1BA7    ; Other_Alphabetic # Mc   [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
 1BA8..1BA9    ; Other_Alphabetic # Mn   [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
+1BAC..1BAD    ; Other_Alphabetic # Mc   [2] SUNDANESE CONSONANT SIGN PASANGAN MA..SUNDANESE CONSONANT SIGN PASANGAN WA
 1BE7          ; Other_Alphabetic # Mc       BATAK VOWEL SIGN E
 1BE8..1BE9    ; Other_Alphabetic # Mn   [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE
 1BEA..1BEC    ; Other_Alphabetic # Mc   [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O
@@ -534,9 +574,11 @@
 1C24..1C2B    ; Other_Alphabetic # Mc   [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU
 1C2C..1C33    ; Other_Alphabetic # Mn   [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T
 1C34..1C35    ; Other_Alphabetic # Mc   [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG
-1CF2          ; Other_Alphabetic # Mc       VEDIC SIGN ARDHAVISARGA
+1CF2..1CF3    ; Other_Alphabetic # Mc   [2] VEDIC SIGN ARDHAVISARGA..VEDIC SIGN ROTATED ARDHAVISARGA
 24B6..24E9    ; Other_Alphabetic # So  [52] CIRCLED LATIN CAPITAL LETTER A..CIRCLED LATIN SMALL LETTER Z
 2DE0..2DFF    ; Other_Alphabetic # Mn  [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
+A674..A67B    ; Other_Alphabetic # Mn   [8] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC LETTER OMEGA
+A69F          ; Other_Alphabetic # Mn       COMBINING CYRILLIC LETTER IOTIFIED E
 A823..A824    ; Other_Alphabetic # Mc   [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I
 A825..A826    ; Other_Alphabetic # Mn   [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E
 A827          ; Other_Alphabetic # Mc       SYLOTI NAGRI VOWEL SIGN OO
@@ -564,6 +606,10 @@
 AAB2..AAB4    ; Other_Alphabetic # Mn   [3] TAI VIET VOWEL I..TAI VIET VOWEL U
 AAB7..AAB8    ; Other_Alphabetic # Mn   [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA
 AABE          ; Other_Alphabetic # Mn       TAI VIET VOWEL AM
+AAEB          ; Other_Alphabetic # Mc       MEETEI MAYEK VOWEL SIGN II
+AAEC..AAED    ; Other_Alphabetic # Mn   [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI MAYEK VOWEL SIGN AAI
+AAEE..AAEF    ; Other_Alphabetic # Mc   [2] MEETEI MAYEK VOWEL SIGN AU..MEETEI MAYEK VOWEL SIGN AAU
+AAF5          ; Other_Alphabetic # Mc       MEETEI MAYEK VOWEL SIGN VISARGA
 ABE3..ABE4    ; Other_Alphabetic # Mc   [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP
 ABE5          ; Other_Alphabetic # Mn       MEETEI MAYEK VOWEL SIGN ANAP
 ABE6..ABE7    ; Other_Alphabetic # Mc   [2] MEETEI MAYEK VOWEL SIGN YENAP..MEETEI MAYEK VOWEL SIGN SOUNAP
@@ -581,8 +627,23 @@
 110B0..110B2  ; Other_Alphabetic # Mc   [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II
 110B3..110B6  ; Other_Alphabetic # Mn   [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI
 110B7..110B8  ; Other_Alphabetic # Mc   [2] KAITHI VOWEL SIGN O..KAITHI VOWEL SIGN AU
+11100..11102  ; Other_Alphabetic # Mn   [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA
+11127..1112B  ; Other_Alphabetic # Mn   [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU
+1112C         ; Other_Alphabetic # Mc       CHAKMA VOWEL SIGN E
+1112D..11132  ; Other_Alphabetic # Mn   [6] CHAKMA VOWEL SIGN AI..CHAKMA AU MARK
+11180..11181  ; Other_Alphabetic # Mn   [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA
+11182         ; Other_Alphabetic # Mc       SHARADA SIGN VISARGA
+111B3..111B5  ; Other_Alphabetic # Mc   [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II
+111B6..111BE  ; Other_Alphabetic # Mn   [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O
+111BF         ; Other_Alphabetic # Mc       SHARADA VOWEL SIGN AU
+116AB         ; Other_Alphabetic # Mn       TAKRI SIGN ANUSVARA
+116AC         ; Other_Alphabetic # Mc       TAKRI SIGN VISARGA
+116AD         ; Other_Alphabetic # Mn       TAKRI VOWEL SIGN AA
+116AE..116AF  ; Other_Alphabetic # Mc   [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II
+116B0..116B5  ; Other_Alphabetic # Mn   [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
+16F51..16F7E  ; Other_Alphabetic # Mc  [46] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN NG
 
-# Total code points: 795
+# Total code points: 922
 
 # ================================================
 
@@ -591,16 +652,15 @@
 3021..3029    ; Ideographic # Nl   [9] HANGZHOU NUMERAL ONE..HANGZHOU NUMERAL NINE
 3038..303A    ; Ideographic # Nl   [3] HANGZHOU NUMERAL TEN..HANGZHOU NUMERAL THIRTY
 3400..4DB5    ; Ideographic # Lo [6582] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DB5
-4E00..9FCB    ; Ideographic # Lo [20940] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FCB
-F900..FA2D    ; Ideographic # Lo [302] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA2D
-FA30..FA6D    ; Ideographic # Lo  [62] CJK COMPATIBILITY IDEOGRAPH-FA30..CJK COMPATIBILITY IDEOGRAPH-FA6D
+4E00..9FCC    ; Ideographic # Lo [20941] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FCC
+F900..FA6D    ; Ideographic # Lo [366] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA6D
 FA70..FAD9    ; Ideographic # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9
 20000..2A6D6  ; Ideographic # Lo [42711] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6D6
 2A700..2B734  ; Ideographic # Lo [4149] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B734
 2B740..2B81D  ; Ideographic # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
 2F800..2FA1D  ; Ideographic # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
 
-# Total code points: 75630
+# Total code points: 75633
 
 # ================================================
 
@@ -645,6 +705,7 @@
 07EB..07F3    ; Diacritic # Mn   [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE
 07F4..07F5    ; Diacritic # Lm   [2] NKO HIGH TONE APOSTROPHE..NKO LOW TONE APOSTROPHE
 0818..0819    ; Diacritic # Mn   [2] SAMARITAN MARK OCCLUSION..SAMARITAN MARK DAGESH
+08E4..08FE    ; Diacritic # Mn  [27] ARABIC CURLY FATHA..ARABIC DAMMA WITH DOT
 093C          ; Diacritic # Mn       DEVANAGARI SIGN NUKTA
 094D          ; Diacritic # Mn       DEVANAGARI SIGN VIRAMA
 0951..0954    ; Diacritic # Mn   [4] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI ACUTE ACCENT
@@ -689,6 +750,7 @@
 1B44          ; Diacritic # Mc       BALINESE ADEG ADEG
 1B6B..1B73    ; Diacritic # Mn   [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG
 1BAA          ; Diacritic # Mc       SUNDANESE SIGN PAMAAEH
+1BAB          ; Diacritic # Mn       SUNDANESE SIGN VIRAMA
 1C36..1C37    ; Diacritic # Mn   [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA
 1C78..1C7D    ; Diacritic # Lm   [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD
 1CD0..1CD2    ; Diacritic # Mn   [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
@@ -697,8 +759,8 @@
 1CE1          ; Diacritic # Mc       VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA
 1CE2..1CE8    ; Diacritic # Mn   [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
 1CED          ; Diacritic # Mn       VEDIC SIGN TIRYAK
-1D2C..1D61    ; Diacritic # Lm  [54] MODIFIER LETTER CAPITAL A..MODIFIER LETTER SMALL CHI
-1D62..1D6A    ; Diacritic # L&   [9] LATIN SUBSCRIPT SMALL LETTER I..GREEK SUBSCRIPT SMALL LETTER CHI
+1CF4          ; Diacritic # Mn       VEDIC TONE CANDRA ABOVE
+1D2C..1D6A    ; Diacritic # Lm  [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI
 1DC4..1DCF    ; Diacritic # Mn  [12] COMBINING MACRON-ACUTE..COMBINING ZIGZAG BELOW
 1DFD..1DFF    ; Diacritic # Mn   [3] COMBINING ALMOST EQUAL TO BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
 1FBD          ; Diacritic # Sk       GREEK KORONIS
@@ -709,7 +771,8 @@
 1FFD..1FFE    ; Diacritic # Sk   [2] GREEK OXIA..GREEK DASIA
 2CEF..2CF1    ; Diacritic # Mn   [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS
 2E2F          ; Diacritic # Lm       VERTICAL TILDE
-302A..302F    ; Diacritic # Mn   [6] IDEOGRAPHIC LEVEL TONE MARK..HANGUL DOUBLE DOT TONE MARK
+302A..302D    ; Diacritic # Mn   [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK
+302E..302F    ; Diacritic # Mc   [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK
 3099..309A    ; Diacritic # Mn   [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
 309B..309C    ; Diacritic # Sk   [2] KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
 30FC          ; Diacritic # Lm       KATAKANA-HIRAGANA PROLONGED SOUND MARK
@@ -720,6 +783,7 @@
 A717..A71F    ; Diacritic # Lm   [9] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK
 A720..A721    ; Diacritic # Sk   [2] MODIFIER LETTER STRESS AND HIGH TONE..MODIFIER LETTER STRESS AND LOW TONE
 A788          ; Diacritic # Lm       MODIFIER LETTER LOW CIRCUMFLEX ACCENT
+A7F8..A7F9    ; Diacritic # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
 A8C4          ; Diacritic # Mn       SAURASHTRA SIGN VIRAMA
 A8E0..A8F1    ; Diacritic # Mn  [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA
 A92B..A92D    ; Diacritic # Mn   [3] KAYAH LI TONE PLOPHU..KAYAH LI TONE CALYA PLOPHU
@@ -732,6 +796,7 @@
 AAC0          ; Diacritic # Lo       TAI VIET TONE MAI NUENG
 AAC1          ; Diacritic # Mn       TAI VIET TONE MAI THO
 AAC2          ; Diacritic # Lo       TAI VIET TONE MAI SONG
+AAF6          ; Diacritic # Mn       MEETEI MAYEK VIRAMA
 ABEC          ; Diacritic # Mc       MEETEI MAYEK LUM IYEK
 ABED          ; Diacritic # Mn       MEETEI MAYEK APUN IYEK
 FB1E          ; Diacritic # Mn       HEBREW POINT JUDEO-SPANISH VARIKA
@@ -742,13 +807,19 @@
 FF9E..FF9F    ; Diacritic # Lm   [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
 FFE3          ; Diacritic # Sk       FULLWIDTH MACRON
 110B9..110BA  ; Diacritic # Mn   [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA
+11133..11134  ; Diacritic # Mn   [2] CHAKMA VIRAMA..CHAKMA MAAYYAA
+111C0         ; Diacritic # Mc       SHARADA SIGN VIRAMA
+116B6         ; Diacritic # Mc       TAKRI SIGN VIRAMA
+116B7         ; Diacritic # Mn       TAKRI SIGN NUKTA
+16F8F..16F92  ; Diacritic # Mn   [4] MIAO TONE RIGHT..MIAO TONE BELOW
+16F93..16F9F  ; Diacritic # Lm  [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
 1D167..1D169  ; Diacritic # Mn   [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
 1D16D..1D172  ; Diacritic # Mc   [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5
 1D17B..1D182  ; Diacritic # Mn   [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
 1D185..1D18B  ; Diacritic # Mn   [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
 1D1AA..1D1AD  ; Diacritic # Mn   [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
 
-# Total code points: 639
+# Total code points: 693
 
 # ================================================
 
@@ -758,6 +829,7 @@
 07FA          ; Extender # Lm       NKO LAJANYALAN
 0E46          ; Extender # Lm       THAI CHARACTER MAIYAMOK
 0EC6          ; Extender # Lm       LAO KO LA
+180A          ; Extender # Po       MONGOLIAN NIRUGU
 1843          ; Extender # Lm       MONGOLIAN LETTER TODO LONG VOWEL SIGN
 1AA7          ; Extender # Lm       TAI THAM SIGN MAI YAMOK
 1C36          ; Extender # Mn       LEPCHA SIGN RAN
@@ -771,27 +843,33 @@
 A9CF          ; Extender # Lm       JAVANESE PANGRANGKEP
 AA70          ; Extender # Lm       MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION
 AADD          ; Extender # Lm       TAI VIET SYMBOL SAM
+AAF3..AAF4    ; Extender # Lm   [2] MEETEI MAYEK SYLLABLE REPETITION MARK..MEETEI MAYEK WORD REPETITION MARK
 FF70          ; Extender # Lm       HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
 
-# Total code points: 28
+# Total code points: 31
 
 # ================================================
 
+00AA          ; Other_Lowercase # Lo       FEMININE ORDINAL INDICATOR
+00BA          ; Other_Lowercase # Lo       MASCULINE ORDINAL INDICATOR
 02B0..02B8    ; Other_Lowercase # Lm   [9] MODIFIER LETTER SMALL H..MODIFIER LETTER SMALL Y
 02C0..02C1    ; Other_Lowercase # Lm   [2] MODIFIER LETTER GLOTTAL STOP..MODIFIER LETTER REVERSED GLOTTAL STOP
 02E0..02E4    ; Other_Lowercase # Lm   [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
 0345          ; Other_Lowercase # Mn       COMBINING GREEK YPOGEGRAMMENI
 037A          ; Other_Lowercase # Lm       GREEK YPOGEGRAMMENI
-1D2C..1D61    ; Other_Lowercase # Lm  [54] MODIFIER LETTER CAPITAL A..MODIFIER LETTER SMALL CHI
+1D2C..1D6A    ; Other_Lowercase # Lm  [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI
 1D78          ; Other_Lowercase # Lm       MODIFIER LETTER CYRILLIC EN
 1D9B..1DBF    ; Other_Lowercase # Lm  [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA
-2090..2094    ; Other_Lowercase # Lm   [5] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER SCHWA
+2071          ; Other_Lowercase # Lm       SUPERSCRIPT LATIN SMALL LETTER I
+207F          ; Other_Lowercase # Lm       SUPERSCRIPT LATIN SMALL LETTER N
+2090..209C    ; Other_Lowercase # Lm  [13] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER T
 2170..217F    ; Other_Lowercase # Nl  [16] SMALL ROMAN NUMERAL ONE..SMALL ROMAN NUMERAL ONE THOUSAND
 24D0..24E9    ; Other_Lowercase # So  [26] CIRCLED LATIN SMALL LETTER A..CIRCLED LATIN SMALL LETTER Z
-2C7D          ; Other_Lowercase # Lm       MODIFIER LETTER CAPITAL V
+2C7C..2C7D    ; Other_Lowercase # Lm   [2] LATIN SUBSCRIPT SMALL LETTER J..MODIFIER LETTER CAPITAL V
 A770          ; Other_Lowercase # Lm       MODIFIER LETTER US
+A7F8..A7F9    ; Other_Lowercase # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
 
-# Total code points: 159
+# Total code points: 183
 
 # ================================================
 
@@ -838,11 +916,12 @@
 0DCF          ; Other_Grapheme_Extend # Mc       SINHALA VOWEL SIGN AELA-PILLA
 0DDF          ; Other_Grapheme_Extend # Mc       SINHALA VOWEL SIGN GAYANUKITTA
 200C..200D    ; Other_Grapheme_Extend # Cf   [2] ZERO WIDTH NON-JOINER..ZERO WIDTH JOINER
+302E..302F    ; Other_Grapheme_Extend # Mc   [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK
 FF9E..FF9F    ; Other_Grapheme_Extend # Lm   [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
 1D165         ; Other_Grapheme_Extend # Mc       MUSICAL SYMBOL COMBINING STEM
 1D16E..1D172  ; Other_Grapheme_Extend # Mc   [5] MUSICAL SYMBOL COMBINING FLAG-1..MUSICAL SYMBOL COMBINING FLAG-5
 
-# Total code points: 23
+# Total code points: 25
 
 # ================================================
 
@@ -868,7 +947,7 @@
 # ================================================
 
 3400..4DB5    ; Unified_Ideograph # Lo [6582] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DB5
-4E00..9FCB    ; Unified_Ideograph # Lo [20940] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FCB
+4E00..9FCC    ; Unified_Ideograph # Lo [20941] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FCC
 FA0E..FA0F    ; Unified_Ideograph # Lo   [2] CJK COMPATIBILITY IDEOGRAPH-FA0E..CJK COMPATIBILITY IDEOGRAPH-FA0F
 FA11          ; Unified_Ideograph # Lo       CJK COMPATIBILITY IDEOGRAPH-FA11
 FA13..FA14    ; Unified_Ideograph # Lo   [2] CJK COMPATIBILITY IDEOGRAPH-FA13..CJK COMPATIBILITY IDEOGRAPH-FA14
@@ -880,12 +959,13 @@
 2A700..2B734  ; Unified_Ideograph # Lo [4149] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B734
 2B740..2B81D  ; Unified_Ideograph # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
 
-# Total code points: 74616
+# Total code points: 74617
 
 # ================================================
 
 034F          ; Other_Default_Ignorable_Code_Point # Mn       COMBINING GRAPHEME JOINER
 115F..1160    ; Other_Default_Ignorable_Code_Point # Lo   [2] HANGUL CHOSEONG FILLER..HANGUL JUNGSEONG FILLER
+17B4..17B5    ; Other_Default_Ignorable_Code_Point # Mn   [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
 2065..2069    ; Other_Default_Ignorable_Code_Point # Cn   [5] <reserved-2065>..<reserved-2069>
 3164          ; Other_Default_Ignorable_Code_Point # Lo       HANGUL FILLER
 FFA0          ; Other_Default_Ignorable_Code_Point # Lo       HALFWIDTH HANGUL FILLER
@@ -895,7 +975,7 @@
 E0080..E00FF  ; Other_Default_Ignorable_Code_Point # Cn [128] <reserved-E0080>..<reserved-E00FF>
 E01F0..E0FFF  ; Other_Default_Ignorable_Code_Point # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
 
-# Total code points: 3778
+# Total code points: 3780
 
 # ================================================
 
@@ -923,7 +1003,7 @@
 03F3          ; Soft_Dotted # L&       GREEK LETTER YOT
 0456          ; Soft_Dotted # L&       CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
 0458          ; Soft_Dotted # L&       CYRILLIC SMALL LETTER JE
-1D62          ; Soft_Dotted # L&       LATIN SUBSCRIPT SMALL LETTER I
+1D62          ; Soft_Dotted # Lm       LATIN SUBSCRIPT SMALL LETTER I
 1D96          ; Soft_Dotted # L&       LATIN SMALL LETTER I WITH RETROFLEX HOOK
 1DA4          ; Soft_Dotted # Lm       MODIFIER LETTER SMALL I WITH STROKE
 1DA8          ; Soft_Dotted # Lm       MODIFIER LETTER SMALL J WITH CROSSED-TAIL
@@ -931,7 +1011,7 @@
 1ECB          ; Soft_Dotted # L&       LATIN SMALL LETTER I WITH DOT BELOW
 2071          ; Soft_Dotted # Lm       SUPERSCRIPT LATIN SMALL LETTER I
 2148..2149    ; Soft_Dotted # L&   [2] DOUBLE-STRUCK ITALIC SMALL I..DOUBLE-STRUCK ITALIC SMALL J
-2C7C          ; Soft_Dotted # L&       LATIN SUBSCRIPT SMALL LETTER J
+2C7C          ; Soft_Dotted # Lm       LATIN SUBSCRIPT SMALL LETTER J
 1D422..1D423  ; Soft_Dotted # L&   [2] MATHEMATICAL BOLD SMALL I..MATHEMATICAL BOLD SMALL J
 1D456..1D457  ; Soft_Dotted # L&   [2] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL ITALIC SMALL J
 1D48A..1D48B  ; Soft_Dotted # L&   [2] MATHEMATICAL BOLD ITALIC SMALL I..MATHEMATICAL BOLD ITALIC SMALL J
@@ -1014,6 +1094,7 @@
 A92F          ; STerm # Po       KAYAH LI SIGN SHYA
 A9C8..A9C9    ; STerm # Po   [2] JAVANESE PADA LINGSA..JAVANESE PADA LUNGSI
 AA5D..AA5F    ; STerm # Po   [3] CHAM PUNCTUATION DANDA..CHAM PUNCTUATION TRIPLE DANDA
+AAF0..AAF1    ; STerm # Po   [2] MEETEI MAYEK CHEIKHAN..MEETEI MAYEK AHANG KHUDAM
 ABEB          ; STerm # Po       MEETEI MAYEK CHEIKHEI
 FE52          ; STerm # Po       SMALL FULL STOP
 FE56..FE57    ; STerm # Po   [2] SMALL QUESTION MARK..SMALL EXCLAMATION MARK
@@ -1024,8 +1105,10 @@
 10A56..10A57  ; STerm # Po   [2] KHAROSHTHI PUNCTUATION DANDA..KHAROSHTHI PUNCTUATION DOUBLE DANDA
 11047..11048  ; STerm # Po   [2] BRAHMI DANDA..BRAHMI DOUBLE DANDA
 110BE..110C1  ; STerm # Po   [4] KAITHI SECTION MARK..KAITHI DOUBLE DANDA
+11141..11143  ; STerm # Po   [3] CHAKMA DANDA..CHAKMA QUESTION MARK
+111C5..111C6  ; STerm # Po   [2] SHARADA DANDA..SHARADA DOUBLE DANDA
 
-# Total code points: 76
+# Total code points: 83
 
 # ================================================
 
@@ -1072,14 +1155,15 @@
 007E          ; Pattern_Syntax # Sm       TILDE
 00A1          ; Pattern_Syntax # Po       INVERTED EXCLAMATION MARK
 00A2..00A5    ; Pattern_Syntax # Sc   [4] CENT SIGN..YEN SIGN
-00A6..00A7    ; Pattern_Syntax # So   [2] BROKEN BAR..SECTION SIGN
+00A6          ; Pattern_Syntax # So       BROKEN BAR
+00A7          ; Pattern_Syntax # Po       SECTION SIGN
 00A9          ; Pattern_Syntax # So       COPYRIGHT SIGN
 00AB          ; Pattern_Syntax # Pi       LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
 00AC          ; Pattern_Syntax # Sm       NOT SIGN
 00AE          ; Pattern_Syntax # So       REGISTERED SIGN
 00B0          ; Pattern_Syntax # So       DEGREE SIGN
 00B1          ; Pattern_Syntax # Sm       PLUS-MINUS SIGN
-00B6          ; Pattern_Syntax # So       PILCROW SIGN
+00B6          ; Pattern_Syntax # Po       PILCROW SIGN
 00BB          ; Pattern_Syntax # Pf       RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
 00BF          ; Pattern_Syntax # Po       INVERTED QUESTION MARK
 00D7          ; Pattern_Syntax # Sm       MULTIPLICATION SIGN
@@ -1173,11 +1257,7 @@
 27C0..27C4    ; Pattern_Syntax # Sm   [5] THREE DIMENSIONAL ANGLE..OPEN SUPERSET
 27C5          ; Pattern_Syntax # Ps       LEFT S-SHAPED BAG DELIMITER
 27C6          ; Pattern_Syntax # Pe       RIGHT S-SHAPED BAG DELIMITER
-27C7..27CA    ; Pattern_Syntax # Sm   [4] OR WITH DOT INSIDE..VERTICAL BAR WITH HORIZONTAL STROKE
-27CB          ; Pattern_Syntax # Cn       <reserved-27CB>
-27CC          ; Pattern_Syntax # Sm       LONG DIVISION
-27CD          ; Pattern_Syntax # Cn       <reserved-27CD>
-27CE..27E5    ; Pattern_Syntax # Sm  [24] SQUARED LOGICAL AND..WHITE SQUARE WITH RIGHTWARDS TICK
+27C7..27E5    ; Pattern_Syntax # Sm  [31] OR WITH DOT INSIDE..WHITE SQUARE WITH RIGHTWARDS TICK
 27E6          ; Pattern_Syntax # Ps       MATHEMATICAL LEFT WHITE SQUARE BRACKET
 27E7          ; Pattern_Syntax # Pe       MATHEMATICAL RIGHT WHITE SQUARE BRACKET
 27E8          ; Pattern_Syntax # Ps       MATHEMATICAL LEFT ANGLE BRACKET
@@ -1260,8 +1340,9 @@
 2E29          ; Pattern_Syntax # Pe       RIGHT DOUBLE PARENTHESIS
 2E2A..2E2E    ; Pattern_Syntax # Po   [5] TWO DOTS OVER ONE DOT PUNCTUATION..REVERSED QUESTION MARK
 2E2F          ; Pattern_Syntax # Lm       VERTICAL TILDE
-2E30..2E31    ; Pattern_Syntax # Po   [2] RING POINT..WORD SEPARATOR MIDDLE DOT
-2E32..2E7F    ; Pattern_Syntax # Cn  [78] <reserved-2E32>..<reserved-2E7F>
+2E30..2E39    ; Pattern_Syntax # Po  [10] RING POINT..TOP HALF SECTION SIGN
+2E3A..2E3B    ; Pattern_Syntax # Pd   [2] TWO-EM DASH..THREE-EM DASH
+2E3C..2E7F    ; Pattern_Syntax # Cn  [68] <reserved-2E3C>..<reserved-2E7F>
 3001..3003    ; Pattern_Syntax # Po   [3] IDEOGRAPHIC COMMA..DITTO MARK
 3008          ; Pattern_Syntax # Ps       LEFT ANGLE BRACKET
 3009          ; Pattern_Syntax # Pe       RIGHT ANGLE BRACKET
--- a/jdk/test/java/lang/Character/PropertyValueAliases.txt	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/test/java/lang/Character/PropertyValueAliases.txt	Wed Jul 05 18:07:57 2017 +0200
@@ -1,15 +1,14 @@
-# PropertyValueAliases-6.0.0.txt
-# Date: 2010-07-17, 22:44:06 GMT [MD]
+# PropertyValueAliases-6.1.0.txt
+# Date: 2011-12-07, 23:40:57 GMT [MD]
 #
 # Unicode Character Database
-# Copyright (c) 1991-2010 Unicode, Inc.
+# Copyright (c) 1991-2011 Unicode, Inc.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
 # For documentation, see http://www.unicode.org/reports/tr44/
 #
 # This file contains aliases for property values used in the UCD.
 # These names can be used for XML formats of UCD data, for regular-expression
 # property tests, and other programmatic textual descriptions of Unicode data.
-# For information on which properties are normative, see UCD.html.
 #
 # The names may be translated in appropriate environments, and additional
 # aliases may be useful.
@@ -23,7 +22,6 @@
 # property value name is used.
 #
 # Second Field: The second field is an abbreviated name.
-# If there is no abbreviated name available, the field is marked with "n/a".
 #
 # Third Field: The third field is a long name.
 #
@@ -57,61 +55,62 @@
 
 # ASCII_Hex_Digit (AHex)
 
-AHex; N        ; No                               ; F                                ; False
-AHex; Y        ; Yes                              ; T                                ; True
+AHex; N                               ; No                               ; F                                ; False
+AHex; Y                               ; Yes                              ; T                                ; True
 
 # Age (age)
 
-age; n/a       ; 1.1
-age; n/a       ; 2.0
-age; n/a       ; 2.1
-age; n/a       ; 3.0
-age; n/a       ; 3.1
-age; n/a       ; 3.2
-age; n/a       ; 4.0
-age; n/a       ; 4.1
-age; n/a       ; 5.0
-age; n/a       ; 5.1
-age; n/a       ; 5.2
-age; n/a       ; 6.0
-age; n/a       ; unassigned
+age; 1.1                              ; V1_1
+age; 2.0                              ; V2_0
+age; 2.1                              ; V2_1
+age; 3.0                              ; V3_0
+age; 3.1                              ; V3_1
+age; 3.2                              ; V3_2
+age; 4.0                              ; V4_0
+age; 4.1                              ; V4_1
+age; 5.0                              ; V5_0
+age; 5.1                              ; V5_1
+age; 5.2                              ; V5_2
+age; 6.0                              ; V6_0
+age; 6.1                              ; V6_1
+age; NA                               ; Unassigned
 
 # Alphabetic (Alpha)
 
-Alpha; N       ; No                               ; F                                ; False
-Alpha; Y       ; Yes                              ; T                                ; True
+Alpha; N                              ; No                               ; F                                ; False
+Alpha; Y                              ; Yes                              ; T                                ; True
 
 # Bidi_Class (bc)
 
-bc ; AL        ; Arabic_Letter
-bc ; AN        ; Arabic_Number
-bc ; B         ; Paragraph_Separator
-bc ; BN        ; Boundary_Neutral
-bc ; CS        ; Common_Separator
-bc ; EN        ; European_Number
-bc ; ES        ; European_Separator
-bc ; ET        ; European_Terminator
-bc ; L         ; Left_To_Right
-bc ; LRE       ; Left_To_Right_Embedding
-bc ; LRO       ; Left_To_Right_Override
-bc ; NSM       ; Nonspacing_Mark
-bc ; ON        ; Other_Neutral
-bc ; PDF       ; Pop_Directional_Format
-bc ; R         ; Right_To_Left
-bc ; RLE       ; Right_To_Left_Embedding
-bc ; RLO       ; Right_To_Left_Override
-bc ; S         ; Segment_Separator
-bc ; WS        ; White_Space
+bc ; AL                               ; Arabic_Letter
+bc ; AN                               ; Arabic_Number
+bc ; B                                ; Paragraph_Separator
+bc ; BN                               ; Boundary_Neutral
+bc ; CS                               ; Common_Separator
+bc ; EN                               ; European_Number
+bc ; ES                               ; European_Separator
+bc ; ET                               ; European_Terminator
+bc ; L                                ; Left_To_Right
+bc ; LRE                              ; Left_To_Right_Embedding
+bc ; LRO                              ; Left_To_Right_Override
+bc ; NSM                              ; Nonspacing_Mark
+bc ; ON                               ; Other_Neutral
+bc ; PDF                              ; Pop_Directional_Format
+bc ; R                                ; Right_To_Left
+bc ; RLE                              ; Right_To_Left_Embedding
+bc ; RLO                              ; Right_To_Left_Override
+bc ; S                                ; Segment_Separator
+bc ; WS                               ; White_Space
 
 # Bidi_Control (Bidi_C)
 
-Bidi_C; N      ; No                               ; F                                ; False
-Bidi_C; Y      ; Yes                              ; T                                ; True
+Bidi_C; N                             ; No                               ; F                                ; False
+Bidi_C; Y                             ; Yes                              ; T                                ; True
 
 # Bidi_Mirrored (Bidi_M)
 
-Bidi_M; N      ; No                               ; F                                ; False
-Bidi_M; Y      ; Yes                              ; T                                ; True
+Bidi_M; N                             ; No                               ; F                                ; False
+Bidi_M; Y                             ; Yes                              ; T                                ; True
 
 # Bidi_Mirroring_Glyph (bmg)
 
@@ -119,239 +118,286 @@
 
 # Block (blk)
 
-blk; n/a       ; Aegean_Numbers
-blk; n/a       ; Alchemical_Symbols
-blk; n/a       ; Alphabetic_Presentation_Forms
-blk; n/a       ; Ancient_Greek_Musical_Notation
-blk; n/a       ; Ancient_Greek_Numbers
-blk; n/a       ; Ancient_Symbols
-blk; n/a       ; Arabic
-blk; n/a       ; Arabic_Presentation_Forms_A      ; Arabic_Presentation_Forms-A
-blk; n/a       ; Arabic_Presentation_Forms_B
-blk; n/a       ; Arabic_Supplement
-blk; n/a       ; Armenian
-blk; n/a       ; Arrows
-blk; n/a       ; Avestan
-blk; n/a       ; Balinese
-blk; n/a       ; Bamum
-blk; n/a       ; Bamum_Supplement
-blk; n/a       ; Basic_Latin                      ; ASCII
-blk; n/a       ; Batak
-blk; n/a       ; Bengali
-blk; n/a       ; Block_Elements
-blk; n/a       ; Bopomofo
-blk; n/a       ; Bopomofo_Extended
-blk; n/a       ; Box_Drawing
-blk; n/a       ; Brahmi
-blk; n/a       ; Braille_Patterns
-blk; n/a       ; Buginese
-blk; n/a       ; Buhid
-blk; n/a       ; Byzantine_Musical_Symbols
-blk; n/a       ; Carian
-blk; n/a       ; Cham
-blk; n/a       ; Cherokee
-blk; n/a       ; CJK_Compatibility
-blk; n/a       ; CJK_Compatibility_Forms
-blk; n/a       ; CJK_Compatibility_Ideographs
-blk; n/a       ; CJK_Compatibility_Ideographs_Supplement
-blk; n/a       ; CJK_Radicals_Supplement
-blk; n/a       ; CJK_Strokes
-blk; n/a       ; CJK_Symbols_And_Punctuation
-blk; n/a       ; CJK_Unified_Ideographs
-blk; n/a       ; CJK_Unified_Ideographs_Extension_A
-blk; n/a       ; CJK_Unified_Ideographs_Extension_B
-blk; n/a       ; CJK_Unified_Ideographs_Extension_C
-blk; n/a       ; CJK_Unified_Ideographs_Extension_D
-blk; n/a       ; Combining_Diacritical_Marks
-blk; n/a       ; Combining_Diacritical_Marks_For_Symbols; Combining_Marks_For_Symbols
-blk; n/a       ; Combining_Diacritical_Marks_Supplement
-blk; n/a       ; Combining_Half_Marks
-blk; n/a       ; Common_Indic_Number_Forms
-blk; n/a       ; Control_Pictures
-blk; n/a       ; Coptic
-blk; n/a       ; Counting_Rod_Numerals
-blk; n/a       ; Cuneiform
-blk; n/a       ; Cuneiform_Numbers_And_Punctuation
-blk; n/a       ; Currency_Symbols
-blk; n/a       ; Cypriot_Syllabary
-blk; n/a       ; Cyrillic
-blk; n/a       ; Cyrillic_Extended_A
-blk; n/a       ; Cyrillic_Extended_B
-blk; n/a       ; Cyrillic_Supplement              ; Cyrillic_Supplementary
-blk; n/a       ; Deseret
-blk; n/a       ; Devanagari
-blk; n/a       ; Devanagari_Extended
-blk; n/a       ; Dingbats
-blk; n/a       ; Domino_Tiles
-blk; n/a       ; Egyptian_Hieroglyphs
-blk; n/a       ; Emoticons
-blk; n/a       ; Enclosed_Alphanumeric_Supplement
-blk; n/a       ; Enclosed_Alphanumerics
-blk; n/a       ; Enclosed_CJK_Letters_And_Months
-blk; n/a       ; Enclosed_Ideographic_Supplement
-blk; n/a       ; Ethiopic
-blk; n/a       ; Ethiopic_Extended
-blk; n/a       ; Ethiopic_Extended_A
-blk; n/a       ; Ethiopic_Supplement
-blk; n/a       ; General_Punctuation
-blk; n/a       ; Geometric_Shapes
-blk; n/a       ; Georgian
-blk; n/a       ; Georgian_Supplement
-blk; n/a       ; Glagolitic
-blk; n/a       ; Gothic
-blk; n/a       ; Greek_And_Coptic                 ; Greek
-blk; n/a       ; Greek_Extended
-blk; n/a       ; Gujarati
-blk; n/a       ; Gurmukhi
-blk; n/a       ; Halfwidth_And_Fullwidth_Forms
-blk; n/a       ; Hangul_Compatibility_Jamo
-blk; n/a       ; Hangul_Jamo
-blk; n/a       ; Hangul_Jamo_Extended_A
-blk; n/a       ; Hangul_Jamo_Extended_B
-blk; n/a       ; Hangul_Syllables
-blk; n/a       ; Hanunoo
-blk; n/a       ; Hebrew
-blk; n/a       ; High_Private_Use_Surrogates
-blk; n/a       ; High_Surrogates
-blk; n/a       ; Hiragana
-blk; n/a       ; Ideographic_Description_Characters
-blk; n/a       ; Imperial_Aramaic
-blk; n/a       ; Inscriptional_Pahlavi
-blk; n/a       ; Inscriptional_Parthian
-blk; n/a       ; IPA_Extensions
-blk; n/a       ; Javanese
-blk; n/a       ; Kaithi
-blk; n/a       ; Kana_Supplement
-blk; n/a       ; Kanbun
-blk; n/a       ; Kangxi_Radicals
-blk; n/a       ; Kannada
-blk; n/a       ; Katakana
-blk; n/a       ; Katakana_Phonetic_Extensions
-blk; n/a       ; Kayah_Li
-blk; n/a       ; Kharoshthi
-blk; n/a       ; Khmer
-blk; n/a       ; Khmer_Symbols
-blk; n/a       ; Lao
-blk; n/a       ; Latin_1_Supplement               ; Latin_1
-blk; n/a       ; Latin_Extended_A
-blk; n/a       ; Latin_Extended_Additional
-blk; n/a       ; Latin_Extended_B
-blk; n/a       ; Latin_Extended_C
-blk; n/a       ; Latin_Extended_D
-blk; n/a       ; Lepcha
-blk; n/a       ; Letterlike_Symbols
-blk; n/a       ; Limbu
-blk; n/a       ; Linear_B_Ideograms
-blk; n/a       ; Linear_B_Syllabary
-blk; n/a       ; Lisu
-blk; n/a       ; Low_Surrogates
-blk; n/a       ; Lycian
-blk; n/a       ; Lydian
-blk; n/a       ; Mahjong_Tiles
-blk; n/a       ; Malayalam
-blk; n/a       ; Mandaic
-blk; n/a       ; Mathematical_Alphanumeric_Symbols
-blk; n/a       ; Mathematical_Operators
-blk; n/a       ; Meetei_Mayek
-blk; n/a       ; Miscellaneous_Mathematical_Symbols_A
-blk; n/a       ; Miscellaneous_Mathematical_Symbols_B
-blk; n/a       ; Miscellaneous_Symbols
-blk; n/a       ; Miscellaneous_Symbols_And_Arrows
-blk; n/a       ; Miscellaneous_Symbols_And_Pictographs
-blk; n/a       ; Miscellaneous_Technical
-blk; n/a       ; Modifier_Tone_Letters
-blk; n/a       ; Mongolian
-blk; n/a       ; Musical_Symbols
-blk; n/a       ; Myanmar
-blk; n/a       ; Myanmar_Extended_A
-blk; n/a       ; New_Tai_Lue
-blk; n/a       ; NKo
-blk; n/a       ; No_Block
-blk; n/a       ; Number_Forms
-blk; n/a       ; Ogham
-blk; n/a       ; Ol_Chiki
-blk; n/a       ; Old_Italic
-blk; n/a       ; Old_Persian
-blk; n/a       ; Old_South_Arabian
-blk; n/a       ; Old_Turkic
-blk; n/a       ; Optical_Character_Recognition
-blk; n/a       ; Oriya
-blk; n/a       ; Osmanya
-blk; n/a       ; Phags_Pa
-blk; n/a       ; Phaistos_Disc
-blk; n/a       ; Phoenician
-blk; n/a       ; Phonetic_Extensions
-blk; n/a       ; Phonetic_Extensions_Supplement
-blk; n/a       ; Playing_Cards
-blk; n/a       ; Private_Use_Area                 ; Private_Use
-blk; n/a       ; Rejang
-blk; n/a       ; Rumi_Numeral_Symbols
-blk; n/a       ; Runic
-blk; n/a       ; Samaritan
-blk; n/a       ; Saurashtra
-blk; n/a       ; Shavian
-blk; n/a       ; Sinhala
-blk; n/a       ; Small_Form_Variants
-blk; n/a       ; Spacing_Modifier_Letters
-blk; n/a       ; Specials
-blk; n/a       ; Sundanese
-blk; n/a       ; Superscripts_And_Subscripts
-blk; n/a       ; Supplemental_Arrows_A
-blk; n/a       ; Supplemental_Arrows_B
-blk; n/a       ; Supplemental_Mathematical_Operators
-blk; n/a       ; Supplemental_Punctuation
-blk; n/a       ; Supplementary_Private_Use_Area_A
-blk; n/a       ; Supplementary_Private_Use_Area_B
-blk; n/a       ; Syloti_Nagri
-blk; n/a       ; Syriac
-blk; n/a       ; Tagalog
-blk; n/a       ; Tagbanwa
-blk; n/a       ; Tags
-blk; n/a       ; Tai_Le
-blk; n/a       ; Tai_Tham
-blk; n/a       ; Tai_Viet
-blk; n/a       ; Tai_Xuan_Jing_Symbols
-blk; n/a       ; Tamil
-blk; n/a       ; Telugu
-blk; n/a       ; Thaana
-blk; n/a       ; Thai
-blk; n/a       ; Tibetan
-blk; n/a       ; Tifinagh
-blk; n/a       ; Transport_And_Map_Symbols
-blk; n/a       ; Ugaritic
-blk; n/a       ; Unified_Canadian_Aboriginal_Syllabics; Canadian_Syllabics
-blk; n/a       ; Unified_Canadian_Aboriginal_Syllabics_Extended
-blk; n/a       ; Vai
-blk; n/a       ; Variation_Selectors
-blk; n/a       ; Variation_Selectors_Supplement
-blk; n/a       ; Vedic_Extensions
-blk; n/a       ; Vertical_Forms
-blk; n/a       ; Yi_Radicals
-blk; n/a       ; Yi_Syllables
-blk; n/a       ; Yijing_Hexagram_Symbols
+blk; Aegean_Numbers                   ; Aegean_Numbers
+blk; Alchemical                       ; Alchemical_Symbols
+blk; Alphabetic_PF                    ; Alphabetic_Presentation_Forms
+blk; Ancient_Greek_Music              ; Ancient_Greek_Musical_Notation
+blk; Ancient_Greek_Numbers            ; Ancient_Greek_Numbers
+blk; Ancient_Symbols                  ; Ancient_Symbols
+blk; Arabic                           ; Arabic
+blk; Arabic_Ext_A                     ; Arabic_Extended_A
+blk; Arabic_Math                      ; Arabic_Mathematical_Alphabetic_Symbols
+blk; Arabic_PF_A                      ; Arabic_Presentation_Forms_A      ; Arabic_Presentation_Forms-A
+blk; Arabic_PF_B                      ; Arabic_Presentation_Forms_B
+blk; Arabic_Sup                       ; Arabic_Supplement
+blk; Armenian                         ; Armenian
+blk; Arrows                           ; Arrows
+blk; ASCII                            ; Basic_Latin
+blk; Avestan                          ; Avestan
+blk; Balinese                         ; Balinese
+blk; Bamum                            ; Bamum
+blk; Bamum_Sup                        ; Bamum_Supplement
+blk; Batak                            ; Batak
+blk; Bengali                          ; Bengali
+blk; Block_Elements                   ; Block_Elements
+blk; Bopomofo                         ; Bopomofo
+blk; Bopomofo_Ext                     ; Bopomofo_Extended
+blk; Box_Drawing                      ; Box_Drawing
+blk; Brahmi                           ; Brahmi
+blk; Braille                          ; Braille_Patterns
+blk; Buginese                         ; Buginese
+blk; Buhid                            ; Buhid
+blk; Byzantine_Music                  ; Byzantine_Musical_Symbols
+blk; Carian                           ; Carian
+blk; Chakma                           ; Chakma
+blk; Cham                             ; Cham
+blk; Cherokee                         ; Cherokee
+blk; CJK                              ; CJK_Unified_Ideographs
+blk; CJK_Compat                       ; CJK_Compatibility
+blk; CJK_Compat_Forms                 ; CJK_Compatibility_Forms
+blk; CJK_Compat_Ideographs            ; CJK_Compatibility_Ideographs
+blk; CJK_Compat_Ideographs_Sup        ; CJK_Compatibility_Ideographs_Supplement
+blk; CJK_Ext_A                        ; CJK_Unified_Ideographs_Extension_A
+blk; CJK_Ext_B                        ; CJK_Unified_Ideographs_Extension_B
+blk; CJK_Ext_C                        ; CJK_Unified_Ideographs_Extension_C
+blk; CJK_Ext_D                        ; CJK_Unified_Ideographs_Extension_D
+blk; CJK_Radicals_Sup                 ; CJK_Radicals_Supplement
+blk; CJK_Strokes                      ; CJK_Strokes
+blk; CJK_Symbols                      ; CJK_Symbols_And_Punctuation
+blk; Compat_Jamo                      ; Hangul_Compatibility_Jamo
+blk; Control_Pictures                 ; Control_Pictures
+blk; Coptic                           ; Coptic
+blk; Counting_Rod                     ; Counting_Rod_Numerals
+blk; Cuneiform                        ; Cuneiform
+blk; Cuneiform_Numbers                ; Cuneiform_Numbers_And_Punctuation
+blk; Currency_Symbols                 ; Currency_Symbols
+blk; Cypriot_Syllabary                ; Cypriot_Syllabary
+blk; Cyrillic                         ; Cyrillic
+blk; Cyrillic_Ext_A                   ; Cyrillic_Extended_A
+blk; Cyrillic_Ext_B                   ; Cyrillic_Extended_B
+blk; Cyrillic_Sup                     ; Cyrillic_Supplement              ; Cyrillic_Supplementary
+blk; Deseret                          ; Deseret
+blk; Devanagari                       ; Devanagari
+blk; Devanagari_Ext                   ; Devanagari_Extended
+blk; Diacriticals                     ; Combining_Diacritical_Marks
+blk; Diacriticals_For_Symbols         ; Combining_Diacritical_Marks_For_Symbols; Combining_Marks_For_Symbols
+blk; Diacriticals_Sup                 ; Combining_Diacritical_Marks_Supplement
+blk; Dingbats                         ; Dingbats
+blk; Domino                           ; Domino_Tiles
+blk; Egyptian_Hieroglyphs             ; Egyptian_Hieroglyphs
+blk; Emoticons                        ; Emoticons
+blk; Enclosed_Alphanum                ; Enclosed_Alphanumerics
+blk; Enclosed_Alphanum_Sup            ; Enclosed_Alphanumeric_Supplement
+blk; Enclosed_CJK                     ; Enclosed_CJK_Letters_And_Months
+blk; Enclosed_Ideographic_Sup         ; Enclosed_Ideographic_Supplement
+blk; Ethiopic                         ; Ethiopic
+blk; Ethiopic_Ext                     ; Ethiopic_Extended
+blk; Ethiopic_Ext_A                   ; Ethiopic_Extended_A
+blk; Ethiopic_Sup                     ; Ethiopic_Supplement
+blk; Geometric_Shapes                 ; Geometric_Shapes
+blk; Georgian                         ; Georgian
+blk; Georgian_Sup                     ; Georgian_Supplement
+blk; Glagolitic                       ; Glagolitic
+blk; Gothic                           ; Gothic
+blk; Greek                            ; Greek_And_Coptic
+blk; Greek_Ext                        ; Greek_Extended
+blk; Gujarati                         ; Gujarati
+blk; Gurmukhi                         ; Gurmukhi
+blk; Half_And_Full_Forms              ; Halfwidth_And_Fullwidth_Forms
+blk; Half_Marks                       ; Combining_Half_Marks
+blk; Hangul                           ; Hangul_Syllables
+blk; Hanunoo                          ; Hanunoo
+blk; Hebrew                           ; Hebrew
+blk; High_PU_Surrogates               ; High_Private_Use_Surrogates
+blk; High_Surrogates                  ; High_Surrogates
+blk; Hiragana                         ; Hiragana
+blk; IDC                              ; Ideographic_Description_Characters
+blk; Imperial_Aramaic                 ; Imperial_Aramaic
+blk; Indic_Number_Forms               ; Common_Indic_Number_Forms
+blk; Inscriptional_Pahlavi            ; Inscriptional_Pahlavi
+blk; Inscriptional_Parthian           ; Inscriptional_Parthian
+blk; IPA_Ext                          ; IPA_Extensions
+blk; Jamo                             ; Hangul_Jamo
+blk; Jamo_Ext_A                       ; Hangul_Jamo_Extended_A
+blk; Jamo_Ext_B                       ; Hangul_Jamo_Extended_B
+blk; Javanese                         ; Javanese
+blk; Kaithi                           ; Kaithi
+blk; Kana_Sup                         ; Kana_Supplement
+blk; Kanbun                           ; Kanbun
+blk; Kangxi                           ; Kangxi_Radicals
+blk; Kannada                          ; Kannada
+blk; Katakana                         ; Katakana
+blk; Katakana_Ext                     ; Katakana_Phonetic_Extensions
+blk; Kayah_Li                         ; Kayah_Li
+blk; Kharoshthi                       ; Kharoshthi
+blk; Khmer                            ; Khmer
+blk; Khmer_Symbols                    ; Khmer_Symbols
+blk; Lao                              ; Lao
+blk; Latin_1_Sup                      ; Latin_1_Supplement               ; Latin_1
+blk; Latin_Ext_A                      ; Latin_Extended_A
+blk; Latin_Ext_Additional             ; Latin_Extended_Additional
+blk; Latin_Ext_B                      ; Latin_Extended_B
+blk; Latin_Ext_C                      ; Latin_Extended_C
+blk; Latin_Ext_D                      ; Latin_Extended_D
+blk; Lepcha                           ; Lepcha
+blk; Letterlike_Symbols               ; Letterlike_Symbols
+blk; Limbu                            ; Limbu
+blk; Linear_B_Ideograms               ; Linear_B_Ideograms
+blk; Linear_B_Syllabary               ; Linear_B_Syllabary
+blk; Lisu                             ; Lisu
+blk; Low_Surrogates                   ; Low_Surrogates
+blk; Lycian                           ; Lycian
+blk; Lydian                           ; Lydian
+blk; Mahjong                          ; Mahjong_Tiles
+blk; Malayalam                        ; Malayalam
+blk; Mandaic                          ; Mandaic
+blk; Math_Alphanum                    ; Mathematical_Alphanumeric_Symbols
+blk; Math_Operators                   ; Mathematical_Operators
+blk; Meetei_Mayek                     ; Meetei_Mayek
+blk; Meetei_Mayek_Ext                 ; Meetei_Mayek_Extensions
+blk; Meroitic_Cursive                 ; Meroitic_Cursive
+blk; Meroitic_Hieroglyphs             ; Meroitic_Hieroglyphs
+blk; Miao                             ; Miao
+blk; Misc_Arrows                      ; Miscellaneous_Symbols_And_Arrows
+blk; Misc_Math_Symbols_A              ; Miscellaneous_Mathematical_Symbols_A
+blk; Misc_Math_Symbols_B              ; Miscellaneous_Mathematical_Symbols_B
+blk; Misc_Pictographs                 ; Miscellaneous_Symbols_And_Pictographs
+blk; Misc_Symbols                     ; Miscellaneous_Symbols
+blk; Misc_Technical                   ; Miscellaneous_Technical
+blk; Modifier_Letters                 ; Spacing_Modifier_Letters
+blk; Modifier_Tone_Letters            ; Modifier_Tone_Letters
+blk; Mongolian                        ; Mongolian
+blk; Music                            ; Musical_Symbols
+blk; Myanmar                          ; Myanmar
+blk; Myanmar_Ext_A                    ; Myanmar_Extended_A
+blk; NB                               ; No_Block
+blk; New_Tai_Lue                      ; New_Tai_Lue
+blk; NKo                              ; NKo
+blk; Number_Forms                     ; Number_Forms
+blk; OCR                              ; Optical_Character_Recognition
+blk; Ogham                            ; Ogham
+blk; Ol_Chiki                         ; Ol_Chiki
+blk; Old_Italic                       ; Old_Italic
+blk; Old_Persian                      ; Old_Persian
+blk; Old_South_Arabian                ; Old_South_Arabian
+blk; Old_Turkic                       ; Old_Turkic
+blk; Oriya                            ; Oriya
+blk; Osmanya                          ; Osmanya
+blk; Phags_Pa                         ; Phags_Pa
+blk; Phaistos                         ; Phaistos_Disc
+blk; Phoenician                       ; Phoenician
+blk; Phonetic_Ext                     ; Phonetic_Extensions
+blk; Phonetic_Ext_Sup                 ; Phonetic_Extensions_Supplement
+blk; Playing_Cards                    ; Playing_Cards
+blk; PUA                              ; Private_Use_Area                 ; Private_Use
+blk; Punctuation                      ; General_Punctuation
+blk; Rejang                           ; Rejang
+blk; Rumi                             ; Rumi_Numeral_Symbols
+blk; Runic                            ; Runic
+blk; Samaritan                        ; Samaritan
+blk; Saurashtra                       ; Saurashtra
+blk; Sharada                          ; Sharada
+blk; Shavian                          ; Shavian
+blk; Sinhala                          ; Sinhala
+blk; Small_Forms                      ; Small_Form_Variants
+blk; Sora_Sompeng                     ; Sora_Sompeng
+blk; Specials                         ; Specials
+blk; Sundanese                        ; Sundanese
+blk; Sundanese_Sup                    ; Sundanese_Supplement
+blk; Sup_Arrows_A                     ; Supplemental_Arrows_A
+blk; Sup_Arrows_B                     ; Supplemental_Arrows_B
+blk; Sup_Math_Operators               ; Supplemental_Mathematical_Operators
+blk; Sup_PUA_A                        ; Supplementary_Private_Use_Area_A
+blk; Sup_PUA_B                        ; Supplementary_Private_Use_Area_B
+blk; Sup_Punctuation                  ; Supplemental_Punctuation
+blk; Super_And_Sub                    ; Superscripts_And_Subscripts
+blk; Syloti_Nagri                     ; Syloti_Nagri
+blk; Syriac                           ; Syriac
+blk; Tagalog                          ; Tagalog
+blk; Tagbanwa                         ; Tagbanwa
+blk; Tags                             ; Tags
+blk; Tai_Le                           ; Tai_Le
+blk; Tai_Tham                         ; Tai_Tham
+blk; Tai_Viet                         ; Tai_Viet
+blk; Tai_Xuan_Jing                    ; Tai_Xuan_Jing_Symbols
+blk; Takri                            ; Takri
+blk; Tamil                            ; Tamil
+blk; Telugu                           ; Telugu
+blk; Thaana                           ; Thaana
+blk; Thai                             ; Thai
+blk; Tibetan                          ; Tibetan
+blk; Tifinagh                         ; Tifinagh
+blk; Transport_And_Map                ; Transport_And_Map_Symbols
+blk; UCAS                             ; Unified_Canadian_Aboriginal_Syllabics; Canadian_Syllabics
+blk; UCAS_Ext                         ; Unified_Canadian_Aboriginal_Syllabics_Extended
+blk; Ugaritic                         ; Ugaritic
+blk; Vai                              ; Vai
+blk; Vedic_Ext                        ; Vedic_Extensions
+blk; Vertical_Forms                   ; Vertical_Forms
+blk; VS                               ; Variation_Selectors
+blk; VS_Sup                           ; Variation_Selectors_Supplement
+blk; Yi_Radicals                      ; Yi_Radicals
+blk; Yi_Syllables                     ; Yi_Syllables
+blk; Yijing                           ; Yijing_Hexagram_Symbols
 
 # Canonical_Combining_Class (ccc)
 
-ccc;   0; NR   ; Not_Reordered
-ccc;   1; OV   ; Overlay
-ccc;   7; NK   ; Nukta
-ccc;   8; KV   ; Kana_Voicing
-ccc;   9; VR   ; Virama
-ccc; 200; ATBL ; Attached_Below_Left
-ccc; 202; ATB  ; Attached_Below
-ccc; 214; ATA  ; Attached_Above
-ccc; 216; ATAR ; Attached_Above_Right
-ccc; 218; BL   ; Below_Left
-ccc; 220; B    ; Below
-ccc; 222; BR   ; Below_Right
-ccc; 224; L    ; Left
-ccc; 226; R    ; Right
-ccc; 228; AL   ; Above_Left
-ccc; 230; A    ; Above
-ccc; 232; AR   ; Above_Right
-ccc; 233; DB   ; Double_Below
-ccc; 234; DA   ; Double_Above
-ccc; 240; IS   ; Iota_Subscript
+ccc;   0; NR                         ; Not_Reordered
+ccc;   1; OV                         ; Overlay
+ccc;   7; NK                         ; Nukta
+ccc;   8; KV                         ; Kana_Voicing
+ccc;   9; VR                         ; Virama
+ccc;  10; CCC10                      ; CCC10
+ccc;  11; CCC11                      ; CCC11
+ccc;  12; CCC12                      ; CCC12
+ccc;  13; CCC13                      ; CCC13
+ccc;  14; CCC14                      ; CCC14
+ccc;  15; CCC15                      ; CCC15
+ccc;  16; CCC16                      ; CCC16
+ccc;  17; CCC17                      ; CCC17
+ccc;  18; CCC18                      ; CCC18
+ccc;  19; CCC19                      ; CCC19
+ccc;  20; CCC20                      ; CCC20
+ccc;  21; CCC21                      ; CCC21
+ccc;  22; CCC22                      ; CCC22
+ccc;  23; CCC23                      ; CCC23
+ccc;  24; CCC24                      ; CCC24
+ccc;  25; CCC25                      ; CCC25
+ccc;  26; CCC26                      ; CCC26
+ccc;  27; CCC27                      ; CCC27
+ccc;  28; CCC28                      ; CCC28
+ccc;  29; CCC29                      ; CCC29
+ccc;  30; CCC30                      ; CCC30
+ccc;  31; CCC31                      ; CCC31
+ccc;  32; CCC32                      ; CCC32
+ccc;  33; CCC33                      ; CCC33
+ccc;  34; CCC34                      ; CCC34
+ccc;  35; CCC35                      ; CCC35
+ccc;  36; CCC36                      ; CCC36
+ccc;  84; CCC84                      ; CCC84
+ccc;  91; CCC91                      ; CCC91
+ccc; 103; CCC103                     ; CCC103
+ccc; 107; CCC107                     ; CCC107
+ccc; 118; CCC118                     ; CCC118
+ccc; 122; CCC122                     ; CCC122
+ccc; 129; CCC129                     ; CCC129
+ccc; 130; CCC130                     ; CCC130
+ccc; 132; CCC133                     ; CCC133
+ccc; 200; ATBL                       ; Attached_Below_Left
+ccc; 202; ATB                        ; Attached_Below
+ccc; 214; ATA                        ; Attached_Above
+ccc; 216; ATAR                       ; Attached_Above_Right
+ccc; 218; BL                         ; Below_Left
+ccc; 220; B                          ; Below
+ccc; 222; BR                         ; Below_Right
+ccc; 224; L                          ; Left
+ccc; 226; R                          ; Right
+ccc; 228; AL                         ; Above_Left
+ccc; 230; A                          ; Above
+ccc; 232; AR                         ; Above_Right
+ccc; 233; DB                         ; Double_Below
+ccc; 234; DA                         ; Double_Above
+ccc; 240; IS                         ; Iota_Subscript
 
 # Case_Folding (cf)
 
@@ -359,53 +405,53 @@
 
 # Case_Ignorable (CI)
 
-CI ; N         ; No                               ; F                                ; False
-CI ; Y         ; Yes                              ; T                                ; True
+CI ; N                                ; No                               ; F                                ; False
+CI ; Y                                ; Yes                              ; T                                ; True
 
 # Cased (Cased)
 
-Cased; N       ; No                               ; F                                ; False
-Cased; Y       ; Yes                              ; T                                ; True
+Cased; N                              ; No                               ; F                                ; False
+Cased; Y                              ; Yes                              ; T                                ; True
 
 # Changes_When_Casefolded (CWCF)
 
-CWCF; N        ; No                               ; F                                ; False
-CWCF; Y        ; Yes                              ; T                                ; True
+CWCF; N                               ; No                               ; F                                ; False
+CWCF; Y                               ; Yes                              ; T                                ; True
 
 # Changes_When_Casemapped (CWCM)
 
-CWCM; N        ; No                               ; F                                ; False
-CWCM; Y        ; Yes                              ; T                                ; True
+CWCM; N                               ; No                               ; F                                ; False
+CWCM; Y                               ; Yes                              ; T                                ; True
 
 # Changes_When_Lowercased (CWL)
 
-CWL; N         ; No                               ; F                                ; False
-CWL; Y         ; Yes                              ; T                                ; True
+CWL; N                                ; No                               ; F                                ; False
+CWL; Y                                ; Yes                              ; T                                ; True
 
 # Changes_When_NFKC_Casefolded (CWKCF)
 
-CWKCF; N       ; No                               ; F                                ; False
-CWKCF; Y       ; Yes                              ; T                                ; True
+CWKCF; N                              ; No                               ; F                                ; False
+CWKCF; Y                              ; Yes                              ; T                                ; True
 
 # Changes_When_Titlecased (CWT)
 
-CWT; N         ; No                               ; F                                ; False
-CWT; Y         ; Yes                              ; T                                ; True
+CWT; N                                ; No                               ; F                                ; False
+CWT; Y                                ; Yes                              ; T                                ; True
 
 # Changes_When_Uppercased (CWU)
 
-CWU; N         ; No                               ; F                                ; False
-CWU; Y         ; Yes                              ; T                                ; True
+CWU; N                                ; No                               ; F                                ; False
+CWU; Y                                ; Yes                              ; T                                ; True
 
 # Composition_Exclusion (CE)
 
-CE ; N         ; No                               ; F                                ; False
-CE ; Y         ; Yes                              ; T                                ; True
+CE ; N                                ; No                               ; F                                ; False
+CE ; Y                                ; Yes                              ; T                                ; True
 
 # Dash (Dash)
 
-Dash; N        ; No                               ; F                                ; False
-Dash; Y        ; Yes                              ; T                                ; True
+Dash; N                               ; No                               ; F                                ; False
+Dash; Y                               ; Yes                              ; T                                ; True
 
 # Decomposition_Mapping (dm)
 
@@ -413,73 +459,73 @@
 
 # Decomposition_Type (dt)
 
-dt ; Can       ; Canonical                        ; can
-dt ; Com       ; Compat                           ; com
-dt ; Enc       ; Circle                           ; enc
-dt ; Fin       ; Final                            ; fin
-dt ; Font      ; font
-dt ; Fra       ; Fraction                         ; fra
-dt ; Init      ; Initial                          ; init
-dt ; Iso       ; Isolated                         ; iso
-dt ; Med       ; Medial                           ; med
-dt ; Nar       ; Narrow                           ; nar
-dt ; Nb        ; Nobreak                          ; nb
-dt ; None      ; none
-dt ; Sml       ; Small                            ; sml
-dt ; Sqr       ; Square                           ; sqr
-dt ; Sub       ; sub
-dt ; Sup       ; Super                            ; sup
-dt ; Vert      ; Vertical                         ; vert
-dt ; Wide      ; wide
+dt ; Can                              ; Canonical                        ; can
+dt ; Com                              ; Compat                           ; com
+dt ; Enc                              ; Circle                           ; enc
+dt ; Fin                              ; Final                            ; fin
+dt ; Font                             ; Font                             ; font
+dt ; Fra                              ; Fraction                         ; fra
+dt ; Init                             ; Initial                          ; init
+dt ; Iso                              ; Isolated                         ; iso
+dt ; Med                              ; Medial                           ; med
+dt ; Nar                              ; Narrow                           ; nar
+dt ; Nb                               ; Nobreak                          ; nb
+dt ; None                             ; None                             ; none
+dt ; Sml                              ; Small                            ; sml
+dt ; Sqr                              ; Square                           ; sqr
+dt ; Sub                              ; Sub                              ; sub
+dt ; Sup                              ; Super                            ; sup
+dt ; Vert                             ; Vertical                         ; vert
+dt ; Wide                             ; Wide                             ; wide
 
 # Default_Ignorable_Code_Point (DI)
 
-DI ; N         ; No                               ; F                                ; False
-DI ; Y         ; Yes                              ; T                                ; True
+DI ; N                                ; No                               ; F                                ; False
+DI ; Y                                ; Yes                              ; T                                ; True
 
 # Deprecated (Dep)
 
-Dep; N         ; No                               ; F                                ; False
-Dep; Y         ; Yes                              ; T                                ; True
+Dep; N                                ; No                               ; F                                ; False
+Dep; Y                                ; Yes                              ; T                                ; True
 
 # Diacritic (Dia)
 
-Dia; N         ; No                               ; F                                ; False
-Dia; Y         ; Yes                              ; T                                ; True
+Dia; N                                ; No                               ; F                                ; False
+Dia; Y                                ; Yes                              ; T                                ; True
 
 # East_Asian_Width (ea)
 
-ea ; A         ; Ambiguous
-ea ; F         ; Fullwidth
-ea ; H         ; Halfwidth
-ea ; N         ; Neutral
-ea ; Na        ; Narrow
-ea ; W         ; Wide
+ea ; A                                ; Ambiguous
+ea ; F                                ; Fullwidth
+ea ; H                                ; Halfwidth
+ea ; N                                ; Neutral
+ea ; Na                               ; Narrow
+ea ; W                                ; Wide
 
 # Expands_On_NFC (XO_NFC)
 
-XO_NFC; N      ; No                               ; F                                ; False
-XO_NFC; Y      ; Yes                              ; T                                ; True
+XO_NFC; N                             ; No                               ; F                                ; False
+XO_NFC; Y                             ; Yes                              ; T                                ; True
 
 # Expands_On_NFD (XO_NFD)
 
-XO_NFD; N      ; No                               ; F                                ; False
-XO_NFD; Y      ; Yes                              ; T                                ; True
+XO_NFD; N                             ; No                               ; F                                ; False
+XO_NFD; Y                             ; Yes                              ; T                                ; True
 
 # Expands_On_NFKC (XO_NFKC)
 
-XO_NFKC; N     ; No                               ; F                                ; False
-XO_NFKC; Y     ; Yes                              ; T                                ; True
+XO_NFKC; N                            ; No                               ; F                                ; False
+XO_NFKC; Y                            ; Yes                              ; T                                ; True
 
 # Expands_On_NFKD (XO_NFKD)
 
-XO_NFKD; N     ; No                               ; F                                ; False
-XO_NFKD; Y     ; Yes                              ; T                                ; True
+XO_NFKD; N                            ; No                               ; F                                ; False
+XO_NFKD; Y                            ; Yes                              ; T                                ; True
 
 # Extender (Ext)
 
-Ext; N         ; No                               ; F                                ; False
-Ext; Y         ; Yes                              ; T                                ; True
+Ext; N                                ; No                               ; F                                ; False
+Ext; Y                                ; Yes                              ; T                                ; True
 
 # FC_NFKC_Closure (FC_NFKC)
 
@@ -487,118 +533,118 @@
 
 # Full_Composition_Exclusion (Comp_Ex)
 
-Comp_Ex; N     ; No                               ; F                                ; False
-Comp_Ex; Y     ; Yes                              ; T                                ; True
+Comp_Ex; N                            ; No                               ; F                                ; False
+Comp_Ex; Y                            ; Yes                              ; T                                ; True
 
 # General_Category (gc)
 
-gc ; C         ; Other                            # Cc | Cf | Cn | Co | Cs
-gc ; Cc        ; Control                          ; cntrl
-gc ; Cf        ; Format
-gc ; Cn        ; Unassigned
-gc ; Co        ; Private_Use
-gc ; Cs        ; Surrogate
-gc ; L         ; Letter                           # Ll | Lm | Lo | Lt | Lu
-gc ; LC        ; Cased_Letter                     # Ll | Lt | Lu
-gc ; Ll        ; Lowercase_Letter
-gc ; Lm        ; Modifier_Letter
-gc ; Lo        ; Other_Letter
-gc ; Lt        ; Titlecase_Letter
-gc ; Lu        ; Uppercase_Letter
-gc ; M         ; Mark                             # Mc | Me | Mn
-gc ; Mc        ; Spacing_Mark
-gc ; Me        ; Enclosing_Mark
-gc ; Mn        ; Nonspacing_Mark
-gc ; N         ; Number                           # Nd | Nl | No
-gc ; Nd        ; Decimal_Number                   ; digit
-gc ; Nl        ; Letter_Number
-gc ; No        ; Other_Number
-gc ; P         ; Punctuation                      ; punct                            # Pc | Pd | Pe | Pf | Pi | Po | Ps
-gc ; Pc        ; Connector_Punctuation
-gc ; Pd        ; Dash_Punctuation
-gc ; Pe        ; Close_Punctuation
-gc ; Pf        ; Final_Punctuation
-gc ; Pi        ; Initial_Punctuation
-gc ; Po        ; Other_Punctuation
-gc ; Ps        ; Open_Punctuation
-gc ; S         ; Symbol                           # Sc | Sk | Sm | So
-gc ; Sc        ; Currency_Symbol
-gc ; Sk        ; Modifier_Symbol
-gc ; Sm        ; Math_Symbol
-gc ; So        ; Other_Symbol
-gc ; Z         ; Separator                        # Zl | Zp | Zs
-gc ; Zl        ; Line_Separator
-gc ; Zp        ; Paragraph_Separator
-gc ; Zs        ; Space_Separator
+gc ; C                                ; Other                            # Cc | Cf | Cn | Co | Cs
+gc ; Cc                               ; Control                          ; cntrl
+gc ; Cf                               ; Format
+gc ; Cn                               ; Unassigned
+gc ; Co                               ; Private_Use
+gc ; Cs                               ; Surrogate
+gc ; L                                ; Letter                           # Ll | Lm | Lo | Lt | Lu
+gc ; LC                               ; Cased_Letter                     # Ll | Lt | Lu
+gc ; Ll                               ; Lowercase_Letter
+gc ; Lm                               ; Modifier_Letter
+gc ; Lo                               ; Other_Letter
+gc ; Lt                               ; Titlecase_Letter
+gc ; Lu                               ; Uppercase_Letter
+gc ; M                                ; Mark                             ; Combining_Mark                   # Mc | Me | Mn
+gc ; Mc                               ; Spacing_Mark
+gc ; Me                               ; Enclosing_Mark
+gc ; Mn                               ; Nonspacing_Mark
+gc ; N                                ; Number                           # Nd | Nl | No
+gc ; Nd                               ; Decimal_Number                   ; digit
+gc ; Nl                               ; Letter_Number
+gc ; No                               ; Other_Number
+gc ; P                                ; Punctuation                      ; punct                            # Pc | Pd | Pe | Pf | Pi | Po | Ps
+gc ; Pc                               ; Connector_Punctuation
+gc ; Pd                               ; Dash_Punctuation
+gc ; Pe                               ; Close_Punctuation
+gc ; Pf                               ; Final_Punctuation
+gc ; Pi                               ; Initial_Punctuation
+gc ; Po                               ; Other_Punctuation
+gc ; Ps                               ; Open_Punctuation
+gc ; S                                ; Symbol                           # Sc | Sk | Sm | So
+gc ; Sc                               ; Currency_Symbol
+gc ; Sk                               ; Modifier_Symbol
+gc ; Sm                               ; Math_Symbol
+gc ; So                               ; Other_Symbol
+gc ; Z                                ; Separator                        # Zl | Zp | Zs
+gc ; Zl                               ; Line_Separator
+gc ; Zp                               ; Paragraph_Separator
+gc ; Zs                               ; Space_Separator
 
 # Grapheme_Base (Gr_Base)
 
-Gr_Base; N     ; No                               ; F                                ; False
-Gr_Base; Y     ; Yes                              ; T                                ; True
+Gr_Base; N                            ; No                               ; F                                ; False
+Gr_Base; Y                            ; Yes                              ; T                                ; True
 
 # Grapheme_Cluster_Break (GCB)
 
-GCB; CN        ; Control
-GCB; CR        ; CR
-GCB; EX        ; Extend
-GCB; L         ; L
-GCB; LF        ; LF
-GCB; LV        ; LV
-GCB; LVT       ; LVT
-GCB; PP        ; Prepend
-GCB; SM        ; SpacingMark
-GCB; T         ; T
-GCB; V         ; V
-GCB; XX        ; Other
+GCB; CN                               ; Control
+GCB; CR                               ; CR
+GCB; EX                               ; Extend
+GCB; L                                ; L
+GCB; LF                               ; LF
+GCB; LV                               ; LV
+GCB; LVT                              ; LVT
+GCB; PP                               ; Prepend
+GCB; SM                               ; SpacingMark
+GCB; T                                ; T
+GCB; V                                ; V
+GCB; XX                               ; Other
 
 # Grapheme_Extend (Gr_Ext)
 
-Gr_Ext; N      ; No                               ; F                                ; False
-Gr_Ext; Y      ; Yes                              ; T                                ; True
+Gr_Ext; N                             ; No                               ; F                                ; False
+Gr_Ext; Y                             ; Yes                              ; T                                ; True
 
 # Grapheme_Link (Gr_Link)
 
-Gr_Link; N     ; No                               ; F                                ; False
-Gr_Link; Y     ; Yes                              ; T                                ; True
+Gr_Link; N                            ; No                               ; F                                ; False
+Gr_Link; Y                            ; Yes                              ; T                                ; True
 
 # Hangul_Syllable_Type (hst)
 
-hst; L         ; Leading_Jamo
-hst; LV        ; LV_Syllable
-hst; LVT       ; LVT_Syllable
-hst; NA        ; Not_Applicable
-hst; T         ; Trailing_Jamo
-hst; V         ; Vowel_Jamo
+hst; L                                ; Leading_Jamo
+hst; LV                               ; LV_Syllable
+hst; LVT                              ; LVT_Syllable
+hst; NA                               ; Not_Applicable
+hst; T                                ; Trailing_Jamo
+hst; V                                ; Vowel_Jamo
 
 # Hex_Digit (Hex)
 
-Hex; N         ; No                               ; F                                ; False
-Hex; Y         ; Yes                              ; T                                ; True
+Hex; N                                ; No                               ; F                                ; False
+Hex; Y                                ; Yes                              ; T                                ; True
 
 # Hyphen (Hyphen)
 
-Hyphen; N      ; No                               ; F                                ; False
-Hyphen; Y      ; Yes                              ; T                                ; True
+Hyphen; N                             ; No                               ; F                                ; False
+Hyphen; Y                             ; Yes                              ; T                                ; True
 
 # IDS_Binary_Operator (IDSB)
 
-IDSB; N        ; No                               ; F                                ; False
-IDSB; Y        ; Yes                              ; T                                ; True
+IDSB; N                               ; No                               ; F                                ; False
+IDSB; Y                               ; Yes                              ; T                                ; True
 
 # IDS_Trinary_Operator (IDST)
 
-IDST; N        ; No                               ; F                                ; False
-IDST; Y        ; Yes                              ; T                                ; True
+IDST; N                               ; No                               ; F                                ; False
+IDST; Y                               ; Yes                              ; T                                ; True
 
 # ID_Continue (IDC)
 
-IDC; N         ; No                               ; F                                ; False
-IDC; Y         ; Yes                              ; T                                ; True
+IDC; N                                ; No                               ; F                                ; False
+IDC; Y                                ; Yes                              ; T                                ; True
 
 # ID_Start (IDS)
 
-IDS; N         ; No                               ; F                                ; False
-IDS; Y         ; Yes                              ; T                                ; True
+IDS; N                                ; No                               ; F                                ; False
+IDS; Y                                ; Yes                              ; T                                ; True
 
 # ISO_Comment (isc)
 
@@ -606,188 +652,233 @@
 
 # Ideographic (Ideo)
 
-Ideo; N        ; No                               ; F                                ; False
-Ideo; Y        ; Yes                              ; T                                ; True
+Ideo; N                               ; No                               ; F                                ; False
+Ideo; Y                               ; Yes                              ; T                                ; True
+
+# Indic_Matra_Category (InMC)
+
+InMC; Bottom                          ; Bottom
+InMC; Bottom_And_Right                ; Bottom_And_Right
+InMC; Invisible                       ; Invisible
+InMC; Left                            ; Left
+InMC; Left_And_Right                  ; Left_And_Right
+InMC; NA                              ; NA
+InMC; Overstruck                      ; Overstruck
+InMC; Right                           ; Right
+InMC; Top                             ; Top
+InMC; Top_And_Bottom                  ; Top_And_Bottom
+InMC; Top_And_Bottom_And_Right        ; Top_And_Bottom_And_Right
+InMC; Top_And_Left                    ; Top_And_Left
+InMC; Top_And_Left_And_Right          ; Top_And_Left_And_Right
+InMC; Top_And_Right                   ; Top_And_Right
+InMC; Visual_Order_Left               ; Visual_Order_Left
+
+# Indic_Syllabic_Category (InSC)
+
+InSC; Avagraha                        ; Avagraha
+InSC; Bindu                           ; Bindu
+InSC; Consonant                       ; Consonant
+InSC; Consonant_Dead                  ; Consonant_Dead
+InSC; Consonant_Final                 ; Consonant_Final
+InSC; Consonant_Head_Letter           ; Consonant_Head_Letter
+InSC; Consonant_Medial                ; Consonant_Medial
+InSC; Consonant_Placeholder           ; Consonant_Placeholder
+InSC; Consonant_Repha                 ; Consonant_Repha
+InSC; Consonant_Subjoined             ; Consonant_Subjoined
+InSC; Modifying_Letter                ; Modifying_Letter
+InSC; Nukta                           ; Nukta
+InSC; Other                           ; Other
+InSC; Register_Shifter                ; Register_Shifter
+InSC; Tone_Letter                     ; Tone_Letter
+InSC; Tone_Mark                       ; Tone_Mark
+InSC; Virama                          ; Virama
+InSC; Visarga                         ; Visarga
+InSC; Vowel                           ; Vowel
+InSC; Vowel_Dependent                 ; Vowel_Dependent
+InSC; Vowel_Independent               ; Vowel_Independent
 
 # Jamo_Short_Name (JSN)
 
 # @missing: 0000..10FFFF; Jamo_Short_Name; <none>
-JSN; A         ; A
-JSN; AE        ; AE
-JSN; B         ; B
-JSN; BB        ; BB
-JSN; BS        ; BS
-JSN; C         ; C
-JSN; D         ; D
-JSN; DD        ; DD
-JSN; E         ; E
-JSN; EO        ; EO
-JSN; EU        ; EU
-JSN; G         ; G
-JSN; GG        ; GG
-JSN; GS        ; GS
-JSN; H         ; H
-JSN; I         ; I
-JSN; J         ; J
-JSN; JJ        ; JJ
-JSN; K         ; K
-JSN; L         ; L
-JSN; LB        ; LB
-JSN; LG        ; LG
-JSN; LH        ; LH
-JSN; LM        ; LM
-JSN; LP        ; LP
-JSN; LS        ; LS
-JSN; LT        ; LT
-JSN; M         ; M
-JSN; N         ; N
-JSN; NG        ; NG
-JSN; NH        ; NH
-JSN; NJ        ; NJ
-JSN; O         ; O
-JSN; OE        ; OE
-JSN; P         ; P
-JSN; R         ; R
-JSN; S         ; S
-JSN; SS        ; SS
-JSN; T         ; T
-JSN; U         ; U
-JSN; WA        ; WA
-JSN; WAE       ; WAE
-JSN; WE        ; WE
-JSN; WEO       ; WEO
-JSN; WI        ; WI
-JSN; YA        ; YA
-JSN; YAE       ; YAE
-JSN; YE        ; YE
-JSN; YEO       ; YEO
-JSN; YI        ; YI
-JSN; YO        ; YO
-JSN; YU        ; YU
+JSN; A                                ; A
+JSN; AE                               ; AE
+JSN; B                                ; B
+JSN; BB                               ; BB
+JSN; BS                               ; BS
+JSN; C                                ; C
+JSN; D                                ; D
+JSN; DD                               ; DD
+JSN; E                                ; E
+JSN; EO                               ; EO
+JSN; EU                               ; EU
+JSN; G                                ; G
+JSN; GG                               ; GG
+JSN; GS                               ; GS
+JSN; H                                ; H
+JSN; I                                ; I
+JSN; J                                ; J
+JSN; JJ                               ; JJ
+JSN; K                                ; K
+JSN; L                                ; L
+JSN; LB                               ; LB
+JSN; LG                               ; LG
+JSN; LH                               ; LH
+JSN; LM                               ; LM
+JSN; LP                               ; LP
+JSN; LS                               ; LS
+JSN; LT                               ; LT
+JSN; M                                ; M
+JSN; N                                ; N
+JSN; NG                               ; NG
+JSN; NH                               ; NH
+JSN; NJ                               ; NJ
+JSN; O                                ; O
+JSN; OE                               ; OE
+JSN; P                                ; P
+JSN; R                                ; R
+JSN; S                                ; S
+JSN; SS                               ; SS
+JSN; T                                ; T
+JSN; U                                ; U
+JSN; WA                               ; WA
+JSN; WAE                              ; WAE
+JSN; WE                               ; WE
+JSN; WEO                              ; WEO
+JSN; WI                               ; WI
+JSN; YA                               ; YA
+JSN; YAE                              ; YAE
+JSN; YE                               ; YE
+JSN; YEO                              ; YEO
+JSN; YI                               ; YI
+JSN; YO                               ; YO
+JSN; YU                               ; YU
 
 # Join_Control (Join_C)
 
-Join_C; N      ; No                               ; F                                ; False
-Join_C; Y      ; Yes                              ; T                                ; True
+Join_C; N                             ; No                               ; F                                ; False
+Join_C; Y                             ; Yes                              ; T                                ; True
 
 # Joining_Group (jg)
 
-jg ; n/a       ; Ain
-jg ; n/a       ; Alaph
-jg ; n/a       ; Alef
-jg ; n/a       ; Beh
-jg ; n/a       ; Beth
-jg ; n/a       ; Burushaski_Yeh_Barree
-jg ; n/a       ; Dal
-jg ; n/a       ; Dalath_Rish
-jg ; n/a       ; E
-jg ; n/a       ; Farsi_Yeh
-jg ; n/a       ; Fe
-jg ; n/a       ; Feh
-jg ; n/a       ; Final_Semkath
-jg ; n/a       ; Gaf
-jg ; n/a       ; Gamal
-jg ; n/a       ; Hah
-jg ; n/a       ; He
-jg ; n/a       ; Heh
-jg ; n/a       ; Heh_Goal
-jg ; n/a       ; Heth
-jg ; n/a       ; Kaf
-jg ; n/a       ; Kaph
-jg ; n/a       ; Khaph
-jg ; n/a       ; Knotted_Heh
-jg ; n/a       ; Lam
-jg ; n/a       ; Lamadh
-jg ; n/a       ; Meem
-jg ; n/a       ; Mim
-jg ; n/a       ; No_Joining_Group
-jg ; n/a       ; Noon
-jg ; n/a       ; Nun
-jg ; n/a       ; Nya
-jg ; n/a       ; Pe
-jg ; n/a       ; Qaf
-jg ; n/a       ; Qaph
-jg ; n/a       ; Reh
-jg ; n/a       ; Reversed_Pe
-jg ; n/a       ; Sad
-jg ; n/a       ; Sadhe
-jg ; n/a       ; Seen
-jg ; n/a       ; Semkath
-jg ; n/a       ; Shin
-jg ; n/a       ; Swash_Kaf
-jg ; n/a       ; Syriac_Waw
-jg ; n/a       ; Tah
-jg ; n/a       ; Taw
-jg ; n/a       ; Teh_Marbuta
-jg ; n/a       ; Teh_Marbuta_Goal                 ; Hamza_On_Heh_Goal
-jg ; n/a       ; Teth
-jg ; n/a       ; Waw
-jg ; n/a       ; Yeh
-jg ; n/a       ; Yeh_Barree
-jg ; n/a       ; Yeh_With_Tail
-jg ; n/a       ; Yudh
-jg ; n/a       ; Yudh_He
-jg ; n/a       ; Zain
-jg ; n/a       ; Zhain
+jg ; Ain                              ; Ain
+jg ; Alaph                            ; Alaph
+jg ; Alef                             ; Alef
+jg ; Beh                              ; Beh
+jg ; Beth                             ; Beth
+jg ; Burushaski_Yeh_Barree            ; Burushaski_Yeh_Barree
+jg ; Dal                              ; Dal
+jg ; Dalath_Rish                      ; Dalath_Rish
+jg ; E                                ; E
+jg ; Farsi_Yeh                        ; Farsi_Yeh
+jg ; Fe                               ; Fe
+jg ; Feh                              ; Feh
+jg ; Final_Semkath                    ; Final_Semkath
+jg ; Gaf                              ; Gaf
+jg ; Gamal                            ; Gamal
+jg ; Hah                              ; Hah
+jg ; He                               ; He
+jg ; Heh                              ; Heh
+jg ; Heh_Goal                         ; Heh_Goal
+jg ; Heth                             ; Heth
+jg ; Kaf                              ; Kaf
+jg ; Kaph                             ; Kaph
+jg ; Khaph                            ; Khaph
+jg ; Knotted_Heh                      ; Knotted_Heh
+jg ; Lam                              ; Lam
+jg ; Lamadh                           ; Lamadh
+jg ; Meem                             ; Meem
+jg ; Mim                              ; Mim
+jg ; No_Joining_Group                 ; No_Joining_Group
+jg ; Noon                             ; Noon
+jg ; Nun                              ; Nun
+jg ; Nya                              ; Nya
+jg ; Pe                               ; Pe
+jg ; Qaf                              ; Qaf
+jg ; Qaph                             ; Qaph
+jg ; Reh                              ; Reh
+jg ; Reversed_Pe                      ; Reversed_Pe
+jg ; Rohingya_Yeh                     ; Rohingya_Yeh
+jg ; Sad                              ; Sad
+jg ; Sadhe                            ; Sadhe
+jg ; Seen                             ; Seen
+jg ; Semkath                          ; Semkath
+jg ; Shin                             ; Shin
+jg ; Swash_Kaf                        ; Swash_Kaf
+jg ; Syriac_Waw                       ; Syriac_Waw
+jg ; Tah                              ; Tah
+jg ; Taw                              ; Taw
+jg ; Teh_Marbuta                      ; Teh_Marbuta
+jg ; Teh_Marbuta_Goal                 ; Hamza_On_Heh_Goal
+jg ; Teth                             ; Teth
+jg ; Waw                              ; Waw
+jg ; Yeh                              ; Yeh
+jg ; Yeh_Barree                       ; Yeh_Barree
+jg ; Yeh_With_Tail                    ; Yeh_With_Tail
+jg ; Yudh                             ; Yudh
+jg ; Yudh_He                          ; Yudh_He
+jg ; Zain                             ; Zain
+jg ; Zhain                            ; Zhain
 
 # Joining_Type (jt)
 
-jt ; C         ; Join_Causing
-jt ; D         ; Dual_Joining
-jt ; L         ; Left_Joining
-jt ; R         ; Right_Joining
-jt ; T         ; Transparent
-jt ; U         ; Non_Joining
+jt ; C                                ; Join_Causing
+jt ; D                                ; Dual_Joining
+jt ; L                                ; Left_Joining
+jt ; R                                ; Right_Joining
+jt ; T                                ; Transparent
+jt ; U                                ; Non_Joining
 
 # Line_Break (lb)
 
-lb ; AI        ; Ambiguous
-lb ; AL        ; Alphabetic
-lb ; B2        ; Break_Both
-lb ; BA        ; Break_After
-lb ; BB        ; Break_Before
-lb ; BK        ; Mandatory_Break
-lb ; CB        ; Contingent_Break
-lb ; CL        ; Close_Punctuation
-lb ; CM        ; Combining_Mark
-lb ; CP        ; Close_Parenthesis
-lb ; CR        ; Carriage_Return
-lb ; EX        ; Exclamation
-lb ; GL        ; Glue
-lb ; H2        ; H2
-lb ; H3        ; H3
-lb ; HY        ; Hyphen
-lb ; ID        ; Ideographic
-lb ; IN        ; Inseparable                      ; Inseperable
-lb ; IS        ; Infix_Numeric
-lb ; JL        ; JL
-lb ; JT        ; JT
-lb ; JV        ; JV
-lb ; LF        ; Line_Feed
-lb ; NL        ; Next_Line
-lb ; NS        ; Nonstarter
-lb ; NU        ; Numeric
-lb ; OP        ; Open_Punctuation
-lb ; PO        ; Postfix_Numeric
-lb ; PR        ; Prefix_Numeric
-lb ; QU        ; Quotation
-lb ; SA        ; Complex_Context
-lb ; SG        ; Surrogate
-lb ; SP        ; Space
-lb ; SY        ; Break_Symbols
-lb ; WJ        ; Word_Joiner
-lb ; XX        ; Unknown
-lb ; ZW        ; ZWSpace
+lb ; AI                               ; Ambiguous
+lb ; AL                               ; Alphabetic
+lb ; B2                               ; Break_Both
+lb ; BA                               ; Break_After
+lb ; BB                               ; Break_Before
+lb ; BK                               ; Mandatory_Break
+lb ; CB                               ; Contingent_Break
+lb ; CJ                               ; Conditional_Japanese_Starter
+lb ; CL                               ; Close_Punctuation
+lb ; CM                               ; Combining_Mark
+lb ; CP                               ; Close_Parenthesis
+lb ; CR                               ; Carriage_Return
+lb ; EX                               ; Exclamation
+lb ; GL                               ; Glue
+lb ; H2                               ; H2
+lb ; H3                               ; H3
+lb ; HL                               ; Hebrew_Letter
+lb ; HY                               ; Hyphen
+lb ; ID                               ; Ideographic
+lb ; IN                               ; Inseparable                      ; Inseperable
+lb ; IS                               ; Infix_Numeric
+lb ; JL                               ; JL
+lb ; JT                               ; JT
+lb ; JV                               ; JV
+lb ; LF                               ; Line_Feed
+lb ; NL                               ; Next_Line
+lb ; NS                               ; Nonstarter
+lb ; NU                               ; Numeric
+lb ; OP                               ; Open_Punctuation
+lb ; PO                               ; Postfix_Numeric
+lb ; PR                               ; Prefix_Numeric
+lb ; QU                               ; Quotation
+lb ; SA                               ; Complex_Context
+lb ; SG                               ; Surrogate
+lb ; SP                               ; Space
+lb ; SY                               ; Break_Symbols
+lb ; WJ                               ; Word_Joiner
+lb ; XX                               ; Unknown
+lb ; ZW                               ; ZWSpace
 
 # Logical_Order_Exception (LOE)
 
-LOE; N         ; No                               ; F                                ; False
-LOE; Y         ; Yes                              ; T                                ; True
+LOE; N                                ; No                               ; F                                ; False
+LOE; Y                                ; Yes                              ; T                                ; True
 
 # Lowercase (Lower)
 
-Lower; N       ; No                               ; F                                ; False
-Lower; Y       ; Yes                              ; T                                ; True
+Lower; N                              ; No                               ; F                                ; False
+Lower; Y                              ; Yes                              ; T                                ; True
 
 # Lowercase_Mapping (lc)
 
@@ -795,19 +886,19 @@
 
 # Math (Math)
 
-Math; N        ; No                               ; F                                ; False
-Math; Y        ; Yes                              ; T                                ; True
+Math; N                               ; No                               ; F                                ; False
+Math; Y                               ; Yes                              ; T                                ; True
 
 # NFC_Quick_Check (NFC_QC)
 
-NFC_QC; M      ; Maybe
-NFC_QC; N      ; No
-NFC_QC; Y      ; Yes
+NFC_QC; M                             ; Maybe
+NFC_QC; N                             ; No
+NFC_QC; Y                             ; Yes
 
 # NFD_Quick_Check (NFD_QC)
 
-NFD_QC; N      ; No
-NFD_QC; Y      ; Yes
+NFD_QC; N                             ; No
+NFD_QC; Y                             ; Yes
 
 # NFKC_Casefold (NFKC_CF)
 
@@ -815,14 +906,14 @@
 
 # NFKC_Quick_Check (NFKC_QC)
 
-NFKC_QC; M     ; Maybe
-NFKC_QC; N     ; No
-NFKC_QC; Y     ; Yes
+NFKC_QC; M                            ; Maybe
+NFKC_QC; N                            ; No
+NFKC_QC; Y                            ; Yes
 
 # NFKD_Quick_Check (NFKD_QC)
 
-NFKD_QC; N     ; No
-NFKD_QC; Y     ; Yes
+NFKD_QC; N                            ; No
+NFKD_QC; Y                            ; Yes
 
 # Name (na)
 
@@ -834,15 +925,15 @@
 
 # Noncharacter_Code_Point (NChar)
 
-NChar; N       ; No                               ; F                                ; False
-NChar; Y       ; Yes                              ; T                                ; True
+NChar; N                              ; No                               ; F                                ; False
+NChar; Y                              ; Yes                              ; T                                ; True
 
 # Numeric_Type (nt)
 
-nt ; De        ; Decimal
-nt ; Di        ; Digit
-nt ; None      ; None
-nt ; Nu        ; Numeric
+nt ; De                               ; Decimal
+nt ; Di                               ; Digit
+nt ; None                             ; None
+nt ; Nu                               ; Numeric
 
 # Numeric_Value (nv)
 
@@ -850,186 +941,197 @@
 
 # Other_Alphabetic (OAlpha)
 
-OAlpha; N      ; No                               ; F                                ; False
-OAlpha; Y      ; Yes                              ; T                                ; True
+OAlpha; N                             ; No                               ; F                                ; False
+OAlpha; Y                             ; Yes                              ; T                                ; True
 
 # Other_Default_Ignorable_Code_Point (ODI)
 
-ODI; N         ; No                               ; F                                ; False
-ODI; Y         ; Yes                              ; T                                ; True
+ODI; N                                ; No                               ; F                                ; False
+ODI; Y                                ; Yes                              ; T                                ; True
 
 # Other_Grapheme_Extend (OGr_Ext)
 
-OGr_Ext; N     ; No                               ; F                                ; False
-OGr_Ext; Y     ; Yes                              ; T                                ; True
+OGr_Ext; N                            ; No                               ; F                                ; False
+OGr_Ext; Y                            ; Yes                              ; T                                ; True
 
 # Other_ID_Continue (OIDC)
 
-OIDC; N        ; No                               ; F                                ; False
-OIDC; Y        ; Yes                              ; T                                ; True
+OIDC; N                               ; No                               ; F                                ; False
+OIDC; Y                               ; Yes                              ; T                                ; True
 
 # Other_ID_Start (OIDS)
 
-OIDS; N        ; No                               ; F                                ; False
-OIDS; Y        ; Yes                              ; T                                ; True
+OIDS; N                               ; No                               ; F                                ; False
+OIDS; Y                               ; Yes                              ; T                                ; True
 
 # Other_Lowercase (OLower)
 
-OLower; N      ; No                               ; F                                ; False
-OLower; Y      ; Yes                              ; T                                ; True
+OLower; N                             ; No                               ; F                                ; False
+OLower; Y                             ; Yes                              ; T                                ; True
 
 # Other_Math (OMath)
 
-OMath; N       ; No                               ; F                                ; False
-OMath; Y       ; Yes                              ; T                                ; True
+OMath; N                              ; No                               ; F                                ; False
+OMath; Y                              ; Yes                              ; T                                ; True
 
 # Other_Uppercase (OUpper)
 
-OUpper; N      ; No                               ; F                                ; False
-OUpper; Y      ; Yes                              ; T                                ; True
+OUpper; N                             ; No                               ; F                                ; False
+OUpper; Y                             ; Yes                              ; T                                ; True
 
 # Pattern_Syntax (Pat_Syn)
 
-Pat_Syn; N     ; No                               ; F                                ; False
-Pat_Syn; Y     ; Yes                              ; T                                ; True
+Pat_Syn; N                            ; No                               ; F                                ; False
+Pat_Syn; Y                            ; Yes                              ; T                                ; True
 
 # Pattern_White_Space (Pat_WS)
 
-Pat_WS; N      ; No                               ; F                                ; False
-Pat_WS; Y      ; Yes                              ; T                                ; True
+Pat_WS; N                             ; No                               ; F                                ; False
+Pat_WS; Y                             ; Yes                              ; T                                ; True
 
 # Quotation_Mark (QMark)
 
-QMark; N       ; No                               ; F                                ; False
-QMark; Y       ; Yes                              ; T                                ; True
+QMark; N                              ; No                               ; F                                ; False
+QMark; Y                              ; Yes                              ; T                                ; True
 
 # Radical (Radical)
 
-Radical; N     ; No                               ; F                                ; False
-Radical; Y     ; Yes                              ; T                                ; True
+Radical; N                            ; No                               ; F                                ; False
+Radical; Y                            ; Yes                              ; T                                ; True
 
 # STerm (STerm)
 
-STerm; N       ; No                               ; F                                ; False
-STerm; Y       ; Yes                              ; T                                ; True
+STerm; N                              ; No                               ; F                                ; False
+STerm; Y                              ; Yes                              ; T                                ; True
 
 # Script (sc)
 
-sc ; Arab      ; Arabic
-sc ; Armi      ; Imperial_Aramaic
-sc ; Armn      ; Armenian
-sc ; Avst      ; Avestan
-sc ; Bali      ; Balinese
-sc ; Bamu      ; Bamum
-sc ; Batk      ; Batak
-sc ; Beng      ; Bengali
-sc ; Bopo      ; Bopomofo
-sc ; Brah      ; Brahmi
-sc ; Brai      ; Braille
-sc ; Bugi      ; Buginese
-sc ; Buhd      ; Buhid
-sc ; Cans      ; Canadian_Aboriginal
-sc ; Cari      ; Carian
-sc ; Cham      ; Cham
-sc ; Cher      ; Cherokee
-sc ; Copt      ; Coptic                           ; Qaac
-sc ; Cprt      ; Cypriot
-sc ; Cyrl      ; Cyrillic
-sc ; Deva      ; Devanagari
-sc ; Dsrt      ; Deseret
-sc ; Egyp      ; Egyptian_Hieroglyphs
-sc ; Ethi      ; Ethiopic
-sc ; Geor      ; Georgian
-sc ; Glag      ; Glagolitic
-sc ; Goth      ; Gothic
-sc ; Grek      ; Greek
-sc ; Gujr      ; Gujarati
-sc ; Guru      ; Gurmukhi
-sc ; Hang      ; Hangul
-sc ; Hani      ; Han
-sc ; Hano      ; Hanunoo
-sc ; Hebr      ; Hebrew
-sc ; Hira      ; Hiragana
-sc ; Hrkt      ; Katakana_Or_Hiragana
-sc ; Ital      ; Old_Italic
-sc ; Java      ; Javanese
-sc ; Kali      ; Kayah_Li
-sc ; Kana      ; Katakana
-sc ; Khar      ; Kharoshthi
-sc ; Khmr      ; Khmer
-sc ; Knda      ; Kannada
-sc ; Kthi      ; Kaithi
-sc ; Lana      ; Tai_Tham
-sc ; Laoo      ; Lao
-sc ; Latn      ; Latin
-sc ; Lepc      ; Lepcha
-sc ; Limb      ; Limbu
-sc ; Linb      ; Linear_B
-sc ; Lisu      ; Lisu
-sc ; Lyci      ; Lycian
-sc ; Lydi      ; Lydian
-sc ; Mand      ; Mandaic
-sc ; Mlym      ; Malayalam
-sc ; Mong      ; Mongolian
-sc ; Mtei      ; Meetei_Mayek
-sc ; Mymr      ; Myanmar
-sc ; Nkoo      ; Nko
-sc ; Ogam      ; Ogham
-sc ; Olck      ; Ol_Chiki
-sc ; Orkh      ; Old_Turkic
-sc ; Orya      ; Oriya
-sc ; Osma      ; Osmanya
-sc ; Phag      ; Phags_Pa
-sc ; Phli      ; Inscriptional_Pahlavi
-sc ; Phnx      ; Phoenician
-sc ; Prti      ; Inscriptional_Parthian
-sc ; Rjng      ; Rejang
-sc ; Runr      ; Runic
-sc ; Samr      ; Samaritan
-sc ; Sarb      ; Old_South_Arabian
-sc ; Saur      ; Saurashtra
-sc ; Shaw      ; Shavian
-sc ; Sinh      ; Sinhala
-sc ; Sund      ; Sundanese
-sc ; Sylo      ; Syloti_Nagri
-sc ; Syrc      ; Syriac
-sc ; Tagb      ; Tagbanwa
-sc ; Tale      ; Tai_Le
-sc ; Talu      ; New_Tai_Lue
-sc ; Taml      ; Tamil
-sc ; Tavt      ; Tai_Viet
-sc ; Telu      ; Telugu
-sc ; Tfng      ; Tifinagh
-sc ; Tglg      ; Tagalog
-sc ; Thaa      ; Thaana
-sc ; Thai      ; Thai
-sc ; Tibt      ; Tibetan
-sc ; Ugar      ; Ugaritic
-sc ; Vaii      ; Vai
-sc ; Xpeo      ; Old_Persian
-sc ; Xsux      ; Cuneiform
-sc ; Yiii      ; Yi
-sc ; Zinh      ; Inherited                        ; Qaai
-sc ; Zyyy      ; Common
-sc ; Zzzz      ; Unknown
+sc ; Arab                             ; Arabic
+sc ; Armi                             ; Imperial_Aramaic
+sc ; Armn                             ; Armenian
+sc ; Avst                             ; Avestan
+sc ; Bali                             ; Balinese
+sc ; Bamu                             ; Bamum
+sc ; Batk                             ; Batak
+sc ; Beng                             ; Bengali
+sc ; Bopo                             ; Bopomofo
+sc ; Brah                             ; Brahmi
+sc ; Brai                             ; Braille
+sc ; Bugi                             ; Buginese
+sc ; Buhd                             ; Buhid
+sc ; Cakm                             ; Chakma
+sc ; Cans                             ; Canadian_Aboriginal
+sc ; Cari                             ; Carian
+sc ; Cham                             ; Cham
+sc ; Cher                             ; Cherokee
+sc ; Copt                             ; Coptic                           ; Qaac
+sc ; Cprt                             ; Cypriot
+sc ; Cyrl                             ; Cyrillic
+sc ; Deva                             ; Devanagari
+sc ; Dsrt                             ; Deseret
+sc ; Egyp                             ; Egyptian_Hieroglyphs
+sc ; Ethi                             ; Ethiopic
+sc ; Geor                             ; Georgian
+sc ; Glag                             ; Glagolitic
+sc ; Goth                             ; Gothic
+sc ; Grek                             ; Greek
+sc ; Gujr                             ; Gujarati
+sc ; Guru                             ; Gurmukhi
+sc ; Hang                             ; Hangul
+sc ; Hani                             ; Han
+sc ; Hano                             ; Hanunoo
+sc ; Hebr                             ; Hebrew
+sc ; Hira                             ; Hiragana
+sc ; Hrkt                             ; Katakana_Or_Hiragana
+sc ; Ital                             ; Old_Italic
+sc ; Java                             ; Javanese
+sc ; Kali                             ; Kayah_Li
+sc ; Kana                             ; Katakana
+sc ; Khar                             ; Kharoshthi
+sc ; Khmr                             ; Khmer
+sc ; Knda                             ; Kannada
+sc ; Kthi                             ; Kaithi
+sc ; Lana                             ; Tai_Tham
+sc ; Laoo                             ; Lao
+sc ; Latn                             ; Latin
+sc ; Lepc                             ; Lepcha
+sc ; Limb                             ; Limbu
+sc ; Linb                             ; Linear_B
+sc ; Lisu                             ; Lisu
+sc ; Lyci                             ; Lycian
+sc ; Lydi                             ; Lydian
+sc ; Mand                             ; Mandaic
+sc ; Merc                             ; Meroitic_Cursive
+sc ; Mero                             ; Meroitic_Hieroglyphs
+sc ; Mlym                             ; Malayalam
+sc ; Mong                             ; Mongolian
+sc ; Mtei                             ; Meetei_Mayek
+sc ; Mymr                             ; Myanmar
+sc ; Nkoo                             ; Nko
+sc ; Ogam                             ; Ogham
+sc ; Olck                             ; Ol_Chiki
+sc ; Orkh                             ; Old_Turkic
+sc ; Orya                             ; Oriya
+sc ; Osma                             ; Osmanya
+sc ; Phag                             ; Phags_Pa
+sc ; Phli                             ; Inscriptional_Pahlavi
+sc ; Phnx                             ; Phoenician
+sc ; Plrd                             ; Miao
+sc ; Prti                             ; Inscriptional_Parthian
+sc ; Rjng                             ; Rejang
+sc ; Runr                             ; Runic
+sc ; Samr                             ; Samaritan
+sc ; Sarb                             ; Old_South_Arabian
+sc ; Saur                             ; Saurashtra
+sc ; Shaw                             ; Shavian
+sc ; Shrd                             ; Sharada
+sc ; Sinh                             ; Sinhala
+sc ; Sora                             ; Sora_Sompeng
+sc ; Sund                             ; Sundanese
+sc ; Sylo                             ; Syloti_Nagri
+sc ; Syrc                             ; Syriac
+sc ; Tagb                             ; Tagbanwa
+sc ; Takr                             ; Takri
+sc ; Tale                             ; Tai_Le
+sc ; Talu                             ; New_Tai_Lue
+sc ; Taml                             ; Tamil
+sc ; Tavt                             ; Tai_Viet
+sc ; Telu                             ; Telugu
+sc ; Tfng                             ; Tifinagh
+sc ; Tglg                             ; Tagalog
+sc ; Thaa                             ; Thaana
+sc ; Thai                             ; Thai
+sc ; Tibt                             ; Tibetan
+sc ; Ugar                             ; Ugaritic
+sc ; Vaii                             ; Vai
+sc ; Xpeo                             ; Old_Persian
+sc ; Xsux                             ; Cuneiform
+sc ; Yiii                             ; Yi
+sc ; Zinh                             ; Inherited                        ; Qaai
+sc ; Zyyy                             ; Common
+sc ; Zzzz                             ; Unknown
+
+# Script_Extensions (scx)
+
+# @missing: 0000..10FFFF; Script_Extensions; <script>
 
 # Sentence_Break (SB)
 
-SB ; AT        ; ATerm
-SB ; CL        ; Close
-SB ; CR        ; CR
-SB ; EX        ; Extend
-SB ; FO        ; Format
-SB ; LE        ; OLetter
-SB ; LF        ; LF
-SB ; LO        ; Lower
-SB ; NU        ; Numeric
-SB ; SC        ; SContinue
-SB ; SE        ; Sep
-SB ; SP        ; Sp
-SB ; ST        ; STerm
-SB ; UP        ; Upper
-SB ; XX        ; Other
+SB ; AT                               ; ATerm
+SB ; CL                               ; Close
+SB ; CR                               ; CR
+SB ; EX                               ; Extend
+SB ; FO                               ; Format
+SB ; LE                               ; OLetter
+SB ; LF                               ; LF
+SB ; LO                               ; Lower
+SB ; NU                               ; Numeric
+SB ; SC                               ; SContinue
+SB ; SE                               ; Sep
+SB ; SP                               ; Sp
+SB ; ST                               ; STerm
+SB ; UP                               ; Upper
+SB ; XX                               ; Other
 
 # Simple_Case_Folding (scf)
 
@@ -1049,13 +1151,13 @@
 
 # Soft_Dotted (SD)
 
-SD ; N         ; No                               ; F                                ; False
-SD ; Y         ; Yes                              ; T                                ; True
+SD ; N                                ; No                               ; F                                ; False
+SD ; Y                                ; Yes                              ; T                                ; True
 
 # Terminal_Punctuation (Term)
 
-Term; N        ; No                               ; F                                ; False
-Term; Y        ; Yes                              ; T                                ; True
+Term; N                               ; No                               ; F                                ; False
+Term; Y                               ; Yes                              ; T                                ; True
 
 # Titlecase_Mapping (tc)
 
@@ -1067,13 +1169,13 @@
 
 # Unified_Ideograph (UIdeo)
 
-UIdeo; N       ; No                               ; F                                ; False
-UIdeo; Y       ; Yes                              ; T                                ; True
+UIdeo; N                              ; No                               ; F                                ; False
+UIdeo; Y                              ; Yes                              ; T                                ; True
 
 # Uppercase (Upper)
 
-Upper; N       ; No                               ; F                                ; False
-Upper; Y       ; Yes                              ; T                                ; True
+Upper; N                              ; No                               ; F                                ; False
+Upper; Y                              ; Yes                              ; T                                ; True
 
 # Uppercase_Mapping (uc)
 
@@ -1081,39 +1183,39 @@
 
 # Variation_Selector (VS)
 
-VS ; N         ; No                               ; F                                ; False
-VS ; Y         ; Yes                              ; T                                ; True
+VS ; N                                ; No                               ; F                                ; False
+VS ; Y                                ; Yes                              ; T                                ; True
 
 # White_Space (WSpace)
 
-WSpace; N      ; No                               ; F                                ; False
-WSpace; Y      ; Yes                              ; T                                ; True
+WSpace; N                             ; No                               ; F                                ; False
+WSpace; Y                             ; Yes                              ; T                                ; True
 
 # Word_Break (WB)
 
-WB ; CR        ; CR
-WB ; EX        ; ExtendNumLet
-WB ; Extend    ; Extend
-WB ; FO        ; Format
-WB ; KA        ; Katakana
-WB ; LE        ; ALetter
-WB ; LF        ; LF
-WB ; MB        ; MidNumLet
-WB ; ML        ; MidLetter
-WB ; MN        ; MidNum
-WB ; NL        ; Newline
-WB ; NU        ; Numeric
-WB ; XX        ; Other
+WB ; CR                               ; CR
+WB ; EX                               ; ExtendNumLet
+WB ; Extend                           ; Extend
+WB ; FO                               ; Format
+WB ; KA                               ; Katakana
+WB ; LE                               ; ALetter
+WB ; LF                               ; LF
+WB ; MB                               ; MidNumLet
+WB ; ML                               ; MidLetter
+WB ; MN                               ; MidNum
+WB ; NL                               ; Newline
+WB ; NU                               ; Numeric
+WB ; XX                               ; Other
 
 # XID_Continue (XIDC)
 
-XIDC; N        ; No                               ; F                                ; False
-XIDC; Y        ; Yes                              ; T                                ; True
+XIDC; N                               ; No                               ; F                                ; False
+XIDC; Y                               ; Yes                              ; T                                ; True
 
 # XID_Start (XIDS)
 
-XIDS; N        ; No                               ; F                                ; False
-XIDS; Y        ; Yes                              ; T                                ; True
+XIDS; N                               ; No                               ; F                                ; False
+XIDS; Y                               ; Yes                              ; T                                ; True
 
 # cjkAccountingNumeric (cjkAccountingNumeric)
 
--- a/jdk/test/java/lang/Character/Scripts.txt	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/test/java/lang/Character/Scripts.txt	Wed Jul 05 18:07:57 2017 +0200
@@ -1,8 +1,8 @@
-# Scripts-6.0.0.txt
-# Date: 2010-08-19, 00:48:47 GMT [MD]
+# Scripts-6.1.0.txt
+# Date: 2011-11-27, 05:10:50 GMT [MD]
 #
 # Unicode Character Database
-# Copyright (c) 1991-2010 Unicode, Inc.
+# Copyright (c) 1991-2011 Unicode, Inc.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
 # For documentation, see http://www.unicode.org/reports/tr44/
 
@@ -47,7 +47,8 @@
 00A0          ; Common # Zs       NO-BREAK SPACE
 00A1          ; Common # Po       INVERTED EXCLAMATION MARK
 00A2..00A5    ; Common # Sc   [4] CENT SIGN..YEN SIGN
-00A6..00A7    ; Common # So   [2] BROKEN BAR..SECTION SIGN
+00A6          ; Common # So       BROKEN BAR
+00A7          ; Common # Po       SECTION SIGN
 00A8          ; Common # Sk       DIAERESIS
 00A9          ; Common # So       COPYRIGHT SIGN
 00AB          ; Common # Pi       LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
@@ -60,8 +61,7 @@
 00B2..00B3    ; Common # No   [2] SUPERSCRIPT TWO..SUPERSCRIPT THREE
 00B4          ; Common # Sk       ACUTE ACCENT
 00B5          ; Common # L&       MICRO SIGN
-00B6          ; Common # So       PILCROW SIGN
-00B7          ; Common # Po       MIDDLE DOT
+00B6..00B7    ; Common # Po   [2] PILCROW SIGN..MIDDLE DOT
 00B8          ; Common # Sk       CEDILLA
 00B9          ; Common # No       SUPERSCRIPT ONE
 00BB          ; Common # Pf       RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
@@ -90,7 +90,6 @@
 0660..0669    ; Common # Nd  [10] ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE
 06DD          ; Common # Cf       ARABIC END OF AYAH
 0964..0965    ; Common # Po   [2] DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA
-0970          ; Common # Po       DEVANAGARI ABBREVIATION SIGN
 0E3F          ; Common # Sc       THAI CURRENCY SYMBOL BAHT
 0FD5..0FD8    ; Common # So   [4] RIGHT-FACING SVASTI SIGN..LEFT-FACING SVASTI SIGN WITH DOTS
 10FB          ; Common # Po       GEORGIAN PARAGRAPH SEPARATOR
@@ -102,7 +101,8 @@
 1CE1          ; Common # Mc       VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA
 1CE9..1CEC    ; Common # Lo   [4] VEDIC SIGN ANUSVARA ANTARGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL
 1CEE..1CF1    ; Common # Lo   [4] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ANUSVARA UBHAYATO MUKHA
-1CF2          ; Common # Mc       VEDIC SIGN ARDHAVISARGA
+1CF2..1CF3    ; Common # Mc   [2] VEDIC SIGN ARDHAVISARGA..VEDIC SIGN ROTATED ARDHAVISARGA
+1CF5..1CF6    ; Common # Lo   [2] VEDIC SIGN JIHVAMULIYA..VEDIC SIGN UPADHMANIYA
 2000..200A    ; Common # Zs  [11] EN QUAD..HAIR SPACE
 200B          ; Common # Cf       ZERO WIDTH SPACE
 200E..200F    ; Common # Cf   [2] LEFT-TO-RIGHT MARK..RIGHT-TO-LEFT MARK
@@ -247,9 +247,7 @@
 27C0..27C4    ; Common # Sm   [5] THREE DIMENSIONAL ANGLE..OPEN SUPERSET
 27C5          ; Common # Ps       LEFT S-SHAPED BAG DELIMITER
 27C6          ; Common # Pe       RIGHT S-SHAPED BAG DELIMITER
-27C7..27CA    ; Common # Sm   [4] OR WITH DOT INSIDE..VERTICAL BAR WITH HORIZONTAL STROKE
-27CC          ; Common # Sm       LONG DIVISION
-27CE..27E5    ; Common # Sm  [24] SQUARED LOGICAL AND..WHITE SQUARE WITH RIGHTWARDS TICK
+27C7..27E5    ; Common # Sm  [31] OR WITH DOT INSIDE..WHITE SQUARE WITH RIGHTWARDS TICK
 27E6          ; Common # Ps       MATHEMATICAL LEFT WHITE SQUARE BRACKET
 27E7          ; Common # Pe       MATHEMATICAL RIGHT WHITE SQUARE BRACKET
 27E8          ; Common # Ps       MATHEMATICAL LEFT ANGLE BRACKET
@@ -329,7 +327,8 @@
 2E29          ; Common # Pe       RIGHT DOUBLE PARENTHESIS
 2E2A..2E2E    ; Common # Po   [5] TWO DOTS OVER ONE DOT PUNCTUATION..REVERSED QUESTION MARK
 2E2F          ; Common # Lm       VERTICAL TILDE
-2E30..2E31    ; Common # Po   [2] RING POINT..WORD SEPARATOR MIDDLE DOT
+2E30..2E39    ; Common # Po  [10] RING POINT..TOP HALF SECTION SIGN
+2E3A..2E3B    ; Common # Pd   [2] TWO-EM DASH..THREE-EM DASH
 2FF0..2FFB    ; Common # So  [12] IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID
 3000          ; Common # Zs       IDEOGRAPHIC SPACE
 3001..3003    ; Common # Po   [3] IDEOGRAPHIC COMMA..DITTO MARK
@@ -373,7 +372,9 @@
 3196..319F    ; Common # So  [10] IDEOGRAPHIC ANNOTATION TOP MARK..IDEOGRAPHIC ANNOTATION MAN MARK
 31C0..31E3    ; Common # So  [36] CJK STROKE T..CJK STROKE Q
 3220..3229    ; Common # No  [10] PARENTHESIZED IDEOGRAPH ONE..PARENTHESIZED IDEOGRAPH TEN
-322A..3250    ; Common # So  [39] PARENTHESIZED IDEOGRAPH MOON..PARTNERSHIP SIGN
+322A..3247    ; Common # So  [30] PARENTHESIZED IDEOGRAPH MOON..CIRCLED IDEOGRAPH KOTO
+3248..324F    ; Common # No   [8] CIRCLED NUMBER TEN ON BLACK SQUARE..CIRCLED NUMBER EIGHTY ON BLACK SQUARE
+3250          ; Common # So       PARTNERSHIP SIGN
 3251..325F    ; Common # No  [15] CIRCLED NUMBER TWENTY ONE..CIRCLED NUMBER THIRTY FIVE
 327F          ; Common # So       KOREAN STANDARD SYMBOL
 3280..3289    ; Common # No  [10] CIRCLED IDEOGRAPH ONE..CIRCLED IDEOGRAPH TEN
@@ -481,8 +482,7 @@
 FFED..FFEE    ; Common # So   [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CIRCLE
 FFF9..FFFB    ; Common # Cf   [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR
 FFFC..FFFD    ; Common # So   [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHARACTER
-10100..10101  ; Common # Po   [2] AEGEAN WORD SEPARATOR LINE..AEGEAN WORD SEPARATOR DOT
-10102         ; Common # So       AEGEAN CHECK MARK
+10100..10102  ; Common # Po   [3] AEGEAN WORD SEPARATOR LINE..AEGEAN CHECK MARK
 10107..10133  ; Common # No  [45] AEGEAN NUMBER ONE..AEGEAN NUMBER NINETY THOUSAND
 10137..1013F  ; Common # So   [9] AEGEAN WEIGHT BASE UNIT..AEGEAN MEASURE THIRD SUBUNIT
 10190..1019B  ; Common # So  [12] ROMAN SEXTANS SIGN..ROMAN CENTURIAL SIGN
@@ -548,7 +548,7 @@
 1F0D1..1F0DF  ; Common # So  [15] PLAYING CARD ACE OF CLUBS..PLAYING CARD WHITE JOKER
 1F100..1F10A  ; Common # No  [11] DIGIT ZERO FULL STOP..DIGIT NINE COMMA
 1F110..1F12E  ; Common # So  [31] PARENTHESIZED LATIN CAPITAL LETTER A..CIRCLED WZ
-1F130..1F169  ; Common # So  [58] SQUARED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
+1F130..1F16B  ; Common # So  [60] SQUARED LATIN CAPITAL LETTER A..RAISED MD SIGN
 1F170..1F19A  ; Common # So  [43] NEGATIVE SQUARED LATIN CAPITAL LETTER A..SQUARED VS
 1F1E6..1F1FF  ; Common # So  [26] REGIONAL INDICATOR SYMBOL LETTER A..REGIONAL INDICATOR SYMBOL LETTER Z
 1F201..1F202  ; Common # So   [2] SQUARED KATAKANA KOKO..SQUARED KATAKANA SA
@@ -567,33 +567,23 @@
 1F442..1F4F7  ; Common # So [182] EAR..CAMERA
 1F4F9..1F4FC  ; Common # So   [4] VIDEO CAMERA..VIDEOCASSETTE
 1F500..1F53D  ; Common # So  [62] TWISTED RIGHTWARDS ARROWS..DOWN-POINTING SMALL RED TRIANGLE
+1F540..1F543  ; Common # So   [4] CIRCLED CROSS POMMEE..NOTCHED LEFT SEMICIRCLE WITH THREE DOTS
 1F550..1F567  ; Common # So  [24] CLOCK FACE ONE OCLOCK..CLOCK FACE TWELVE-THIRTY
-1F5FB..1F5FF  ; Common # So   [5] MOUNT FUJI..MOYAI
-1F601..1F610  ; Common # So  [16] GRINNING FACE WITH SMILING EYES..NEUTRAL FACE
-1F612..1F614  ; Common # So   [3] UNAMUSED FACE..PENSIVE FACE
-1F616         ; Common # So       CONFOUNDED FACE
-1F618         ; Common # So       FACE THROWING A KISS
-1F61A         ; Common # So       KISSING FACE WITH CLOSED EYES
-1F61C..1F61E  ; Common # So   [3] FACE WITH STUCK-OUT TONGUE AND WINKING EYE..DISAPPOINTED FACE
-1F620..1F625  ; Common # So   [6] ANGRY FACE..DISAPPOINTED BUT RELIEVED FACE
-1F628..1F62B  ; Common # So   [4] FEARFUL FACE..TIRED FACE
-1F62D         ; Common # So       LOUDLY CRYING FACE
-1F630..1F633  ; Common # So   [4] FACE WITH OPEN MOUTH AND COLD SWEAT..FLUSHED FACE
-1F635..1F640  ; Common # So  [12] DIZZY FACE..WEARY CAT FACE
+1F5FB..1F640  ; Common # So  [70] MOUNT FUJI..WEARY CAT FACE
 1F645..1F64F  ; Common # So  [11] FACE WITH NO GOOD GESTURE..PERSON WITH FOLDED HANDS
 1F680..1F6C5  ; Common # So  [70] ROCKET..LEFT LUGGAGE
 1F700..1F773  ; Common # So [116] ALCHEMICAL SYMBOL FOR QUINTESSENCE..ALCHEMICAL SYMBOL FOR HALF OUNCE
 E0001         ; Common # Cf       LANGUAGE TAG
 E0020..E007F  ; Common # Cf  [96] TAG SPACE..CANCEL TAG
 
-# Total code points: 6379
+# Total code points: 6412
 
 # ================================================
 
 0041..005A    ; Latin # L&  [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z
 0061..007A    ; Latin # L&  [26] LATIN SMALL LETTER A..LATIN SMALL LETTER Z
-00AA          ; Latin # L&       FEMININE ORDINAL INDICATOR
-00BA          ; Latin # L&       MASCULINE ORDINAL INDICATOR
+00AA          ; Latin # Lo       FEMININE ORDINAL INDICATOR
+00BA          ; Latin # Lo       MASCULINE ORDINAL INDICATOR
 00C0..00D6    ; Latin # L&  [23] LATIN CAPITAL LETTER A WITH GRAVE..LATIN CAPITAL LETTER O WITH DIAERESIS
 00D8..00F6    ; Latin # L&  [31] LATIN CAPITAL LETTER O WITH STROKE..LATIN SMALL LETTER O WITH DIAERESIS
 00F8..01BA    ; Latin # L& [195] LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER EZH WITH TAIL
@@ -607,7 +597,7 @@
 02E0..02E4    ; Latin # Lm   [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
 1D00..1D25    ; Latin # L&  [38] LATIN LETTER SMALL CAPITAL A..LATIN LETTER AIN
 1D2C..1D5C    ; Latin # Lm  [49] MODIFIER LETTER CAPITAL A..MODIFIER LETTER SMALL AIN
-1D62..1D65    ; Latin # L&   [4] LATIN SUBSCRIPT SMALL LETTER I..LATIN SUBSCRIPT SMALL LETTER V
+1D62..1D65    ; Latin # Lm   [4] LATIN SUBSCRIPT SMALL LETTER I..LATIN SUBSCRIPT SMALL LETTER V
 1D6B..1D77    ; Latin # L&  [13] LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G
 1D79..1D9A    ; Latin # L&  [34] LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK
 1D9B..1DBE    ; Latin # Lm  [36] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL EZH
@@ -621,22 +611,23 @@
 2160..2182    ; Latin # Nl  [35] ROMAN NUMERAL ONE..ROMAN NUMERAL TEN THOUSAND
 2183..2184    ; Latin # L&   [2] ROMAN NUMERAL REVERSED ONE HUNDRED..LATIN SMALL LETTER REVERSED C
 2185..2188    ; Latin # Nl   [4] ROMAN NUMERAL SIX LATE FORM..ROMAN NUMERAL ONE HUNDRED THOUSAND
-2C60..2C7C    ; Latin # L&  [29] LATIN CAPITAL LETTER L WITH DOUBLE BAR..LATIN SUBSCRIPT SMALL LETTER J
-2C7D          ; Latin # Lm       MODIFIER LETTER CAPITAL V
+2C60..2C7B    ; Latin # L&  [28] LATIN CAPITAL LETTER L WITH DOUBLE BAR..LATIN LETTER SMALL CAPITAL TURNED E
+2C7C..2C7D    ; Latin # Lm   [2] LATIN SUBSCRIPT SMALL LETTER J..MODIFIER LETTER CAPITAL V
 2C7E..2C7F    ; Latin # L&   [2] LATIN CAPITAL LETTER S WITH SWASH TAIL..LATIN CAPITAL LETTER Z WITH SWASH TAIL
 A722..A76F    ; Latin # L&  [78] LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF..LATIN SMALL LETTER CON
 A770          ; Latin # Lm       MODIFIER LETTER US
 A771..A787    ; Latin # L&  [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T
 A78B..A78E    ; Latin # L&   [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
-A790..A791    ; Latin # L&   [2] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER N WITH DESCENDER
-A7A0..A7A9    ; Latin # L&  [10] LATIN CAPITAL LETTER G WITH OBLIQUE STROKE..LATIN SMALL LETTER S WITH OBLIQUE STROKE
+A790..A793    ; Latin # L&   [4] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER C WITH BAR
+A7A0..A7AA    ; Latin # L&  [11] LATIN CAPITAL LETTER G WITH OBLIQUE STROKE..LATIN CAPITAL LETTER H WITH HOOK
+A7F8..A7F9    ; Latin # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
 A7FA          ; Latin # L&       LATIN LETTER SMALL CAPITAL TURNED M
 A7FB..A7FF    ; Latin # Lo   [5] LATIN EPIGRAPHIC LETTER REVERSED F..LATIN EPIGRAPHIC LETTER ARCHAIC M
 FB00..FB06    ; Latin # L&   [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
 FF21..FF3A    ; Latin # L&  [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z
 FF41..FF5A    ; Latin # L&  [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z
 
-# Total code points: 1267
+# Total code points: 1272
 
 # ================================================
 
@@ -656,7 +647,7 @@
 03F7..03FF    ; Greek # L&   [9] GREEK CAPITAL LETTER SHO..GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL
 1D26..1D2A    ; Greek # L&   [5] GREEK LETTER SMALL CAPITAL GAMMA..GREEK LETTER SMALL CAPITAL PSI
 1D5D..1D61    ; Greek # Lm   [5] MODIFIER LETTER SMALL BETA..MODIFIER LETTER SMALL CHI
-1D66..1D6A    ; Greek # L&   [5] GREEK SUBSCRIPT SMALL LETTER BETA..GREEK SUBSCRIPT SMALL LETTER CHI
+1D66..1D6A    ; Greek # Lm   [5] GREEK SUBSCRIPT SMALL LETTER BETA..GREEK SUBSCRIPT SMALL LETTER CHI
 1DBF          ; Greek # Lm       MODIFIER LETTER SMALL THETA
 1F00..1F15    ; Greek # L&  [22] GREEK SMALL LETTER ALPHA WITH PSILI..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
 1F18..1F1D    ; Greek # L&   [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
@@ -710,12 +701,13 @@
 A66F          ; Cyrillic # Mn       COMBINING CYRILLIC VZMET
 A670..A672    ; Cyrillic # Me   [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN
 A673          ; Cyrillic # Po       SLAVONIC ASTERISK
-A67C..A67D    ; Cyrillic # Mn   [2] COMBINING CYRILLIC KAVYKA..COMBINING CYRILLIC PAYEROK
+A674..A67D    ; Cyrillic # Mn  [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK
 A67E          ; Cyrillic # Po       CYRILLIC KAVYKA
 A67F          ; Cyrillic # Lm       CYRILLIC PAYEROK
 A680..A697    ; Cyrillic # L&  [24] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER SHWE
+A69F          ; Cyrillic # Mn       COMBINING CYRILLIC LETTER IOTIFIED E
 
-# Total code points: 408
+# Total code points: 417
 
 # ================================================
 
@@ -724,9 +716,10 @@
 055A..055F    ; Armenian # Po   [6] ARMENIAN APOSTROPHE..ARMENIAN ABBREVIATION MARK
 0561..0587    ; Armenian # L&  [39] ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LIGATURE ECH YIWN
 058A          ; Armenian # Pd       ARMENIAN HYPHEN
+058F          ; Armenian # Sc       ARMENIAN DRAM SIGN
 FB13..FB17    ; Armenian # L&   [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH
 
-# Total code points: 90
+# Total code points: 91
 
 # ================================================
 
@@ -757,7 +750,7 @@
 
 # ================================================
 
-0600..0603    ; Arabic # Cf   [4] ARABIC NUMBER SIGN..ARABIC SIGN SAFHA
+0600..0604    ; Arabic # Cf   [5] ARABIC NUMBER SIGN..ARABIC SIGN SAMVAT
 0606..0608    ; Arabic # Sm   [3] ARABIC-INDIC CUBE ROOT..ARABIC RAY
 0609..060A    ; Arabic # Po   [2] ARABIC-INDIC PER MILLE SIGN..ARABIC-INDIC PER TEN THOUSAND SIGN
 060B          ; Arabic # Sc       AFGHANI SIGN
@@ -786,6 +779,9 @@
 06FD..06FE    ; Arabic # So   [2] ARABIC SIGN SINDHI AMPERSAND..ARABIC SIGN SINDHI POSTPOSITION MEN
 06FF          ; Arabic # Lo       ARABIC LETTER HEH WITH INVERTED V
 0750..077F    ; Arabic # Lo  [48] ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW..ARABIC LETTER KAF WITH TWO DOTS ABOVE
+08A0          ; Arabic # Lo       ARABIC LETTER BEH WITH SMALL V BELOW
+08A2..08AC    ; Arabic # Lo  [11] ARABIC LETTER JEEM WITH TWO DOTS ABOVE..ARABIC LETTER ROHINGYA YEH
+08E4..08FE    ; Arabic # Mn  [27] ARABIC CURLY FATHA..ARABIC DAMMA WITH DOT
 FB50..FBB1    ; Arabic # Lo  [98] ARABIC LETTER ALEF WASLA ISOLATED FORM..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
 FBB2..FBC1    ; Arabic # Sk  [16] ARABIC SYMBOL DOT ABOVE..ARABIC SYMBOL SMALL TAH BELOW
 FBD3..FD3D    ; Arabic # Lo [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
@@ -796,8 +792,42 @@
 FE70..FE74    ; Arabic # Lo   [5] ARABIC FATHATAN ISOLATED FORM..ARABIC KASRATAN ISOLATED FORM
 FE76..FEFC    ; Arabic # Lo [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM
 10E60..10E7E  ; Arabic # No  [31] RUMI DIGIT ONE..RUMI FRACTION TWO THIRDS
+1EE00..1EE03  ; Arabic # Lo   [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
+1EE05..1EE1F  ; Arabic # Lo  [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
+1EE21..1EE22  ; Arabic # Lo   [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM
+1EE24         ; Arabic # Lo       ARABIC MATHEMATICAL INITIAL HEH
+1EE27         ; Arabic # Lo       ARABIC MATHEMATICAL INITIAL HAH
+1EE29..1EE32  ; Arabic # Lo  [10] ARABIC MATHEMATICAL INITIAL YEH..ARABIC MATHEMATICAL INITIAL QAF
+1EE34..1EE37  ; Arabic # Lo   [4] ARABIC MATHEMATICAL INITIAL SHEEN..ARABIC MATHEMATICAL INITIAL KHAH
+1EE39         ; Arabic # Lo       ARABIC MATHEMATICAL INITIAL DAD
+1EE3B         ; Arabic # Lo       ARABIC MATHEMATICAL INITIAL GHAIN
+1EE42         ; Arabic # Lo       ARABIC MATHEMATICAL TAILED JEEM
+1EE47         ; Arabic # Lo       ARABIC MATHEMATICAL TAILED HAH
+1EE49         ; Arabic # Lo       ARABIC MATHEMATICAL TAILED YEH
+1EE4B         ; Arabic # Lo       ARABIC MATHEMATICAL TAILED LAM
+1EE4D..1EE4F  ; Arabic # Lo   [3] ARABIC MATHEMATICAL TAILED NOON..ARABIC MATHEMATICAL TAILED AIN
+1EE51..1EE52  ; Arabic # Lo   [2] ARABIC MATHEMATICAL TAILED SAD..ARABIC MATHEMATICAL TAILED QAF
+1EE54         ; Arabic # Lo       ARABIC MATHEMATICAL TAILED SHEEN
+1EE57         ; Arabic # Lo       ARABIC MATHEMATICAL TAILED KHAH
+1EE59         ; Arabic # Lo       ARABIC MATHEMATICAL TAILED DAD
+1EE5B         ; Arabic # Lo       ARABIC MATHEMATICAL TAILED GHAIN
+1EE5D         ; Arabic # Lo       ARABIC MATHEMATICAL TAILED DOTLESS NOON
+1EE5F         ; Arabic # Lo       ARABIC MATHEMATICAL TAILED DOTLESS QAF
+1EE61..1EE62  ; Arabic # Lo   [2] ARABIC MATHEMATICAL STRETCHED BEH..ARABIC MATHEMATICAL STRETCHED JEEM
+1EE64         ; Arabic # Lo       ARABIC MATHEMATICAL STRETCHED HEH
+1EE67..1EE6A  ; Arabic # Lo   [4] ARABIC MATHEMATICAL STRETCHED HAH..ARABIC MATHEMATICAL STRETCHED KAF
+1EE6C..1EE72  ; Arabic # Lo   [7] ARABIC MATHEMATICAL STRETCHED MEEM..ARABIC MATHEMATICAL STRETCHED QAF
+1EE74..1EE77  ; Arabic # Lo   [4] ARABIC MATHEMATICAL STRETCHED SHEEN..ARABIC MATHEMATICAL STRETCHED KHAH
+1EE79..1EE7C  ; Arabic # Lo   [4] ARABIC MATHEMATICAL STRETCHED DAD..ARABIC MATHEMATICAL STRETCHED DOTLESS BEH
+1EE7E         ; Arabic # Lo       ARABIC MATHEMATICAL STRETCHED DOTLESS FEH
+1EE80..1EE89  ; Arabic # Lo  [10] ARABIC MATHEMATICAL LOOPED ALEF..ARABIC MATHEMATICAL LOOPED YEH
+1EE8B..1EE9B  ; Arabic # Lo  [17] ARABIC MATHEMATICAL LOOPED LAM..ARABIC MATHEMATICAL LOOPED GHAIN
+1EEA1..1EEA3  ; Arabic # Lo   [3] ARABIC MATHEMATICAL DOUBLE-STRUCK BEH..ARABIC MATHEMATICAL DOUBLE-STRUCK DAL
+1EEA5..1EEA9  ; Arabic # Lo   [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH
+1EEAB..1EEBB  ; Arabic # Lo  [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
+1EEF0..1EEF1  ; Arabic # Sm   [2] ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL..ARABIC MATHEMATICAL OPERATOR HAH WITH DAL
 
-# Total code points: 1051
+# Total code points: 1234
 
 # ================================================
 
@@ -838,6 +868,7 @@
 0958..0961    ; Devanagari # Lo  [10] DEVANAGARI LETTER QA..DEVANAGARI LETTER VOCALIC LL
 0962..0963    ; Devanagari # Mn   [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL
 0966..096F    ; Devanagari # Nd  [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE
+0970          ; Devanagari # Po       DEVANAGARI ABBREVIATION SIGN
 0971          ; Devanagari # Lm       DEVANAGARI SIGN HIGH SPACING DOT
 0972..0977    ; Devanagari # Lo   [6] DEVANAGARI LETTER CANDRA A..DEVANAGARI LETTER UUE
 0979..097F    ; Devanagari # Lo   [7] DEVANAGARI LETTER ZHA..DEVANAGARI LETTER BBA
@@ -846,7 +877,7 @@
 A8F8..A8FA    ; Devanagari # Po   [3] DEVANAGARI SIGN PUSHPIKA..DEVANAGARI CARET
 A8FB          ; Devanagari # Lo       DEVANAGARI HEADSTROKE
 
-# Total code points: 150
+# Total code points: 151
 
 # ================================================
 
@@ -927,9 +958,10 @@
 0AE0..0AE1    ; Gujarati # Lo   [2] GUJARATI LETTER VOCALIC RR..GUJARATI LETTER VOCALIC LL
 0AE2..0AE3    ; Gujarati # Mn   [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL
 0AE6..0AEF    ; Gujarati # Nd  [10] GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE
+0AF0          ; Gujarati # Po       GUJARATI ABBREVIATION SIGN
 0AF1          ; Gujarati # Sc       GUJARATI RUPEE SIGN
 
-# Total code points: 83
+# Total code points: 84
 
 # ================================================
 
@@ -1119,16 +1151,18 @@
 0EC6          ; Lao # Lm       LAO KO LA
 0EC8..0ECD    ; Lao # Mn   [6] LAO TONE MAI EK..LAO NIGGAHITA
 0ED0..0ED9    ; Lao # Nd  [10] LAO DIGIT ZERO..LAO DIGIT NINE
-0EDC..0EDD    ; Lao # Lo   [2] LAO HO NO..LAO HO MO
+0EDC..0EDF    ; Lao # Lo   [4] LAO HO NO..LAO LETTER KHMU NYO
 
-# Total code points: 65
+# Total code points: 67
 
 # ================================================
 
 0F00          ; Tibetan # Lo       TIBETAN SYLLABLE OM
 0F01..0F03    ; Tibetan # So   [3] TIBETAN MARK GTER YIG MGO TRUNCATED A..TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA
 0F04..0F12    ; Tibetan # Po  [15] TIBETAN MARK INITIAL YIG MGO MDUN MA..TIBETAN MARK RGYA GRAM SHAD
-0F13..0F17    ; Tibetan # So   [5] TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN..TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS
+0F13          ; Tibetan # So       TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN
+0F14          ; Tibetan # Po       TIBETAN MARK GTER TSHEG
+0F15..0F17    ; Tibetan # So   [3] TIBETAN LOGOTYPE SIGN CHAD RTAGS..TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS
 0F18..0F19    ; Tibetan # Mn   [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
 0F1A..0F1F    ; Tibetan # So   [6] TIBETAN SIGN RDEL DKAR GCIG..TIBETAN SIGN RDEL DKAR RDEL NAG
 0F20..0F29    ; Tibetan # Nd  [10] TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE
@@ -1212,16 +1246,21 @@
 # ================================================
 
 10A0..10C5    ; Georgian # L&  [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE
+10C7          ; Georgian # L&       GEORGIAN CAPITAL LETTER YN
+10CD          ; Georgian # L&       GEORGIAN CAPITAL LETTER AEN
 10D0..10FA    ; Georgian # Lo  [43] GEORGIAN LETTER AN..GEORGIAN LETTER AIN
 10FC          ; Georgian # Lm       MODIFIER LETTER GEORGIAN NAR
+10FD..10FF    ; Georgian # Lo   [3] GEORGIAN LETTER AEN..GEORGIAN LETTER LABIAL SIGN
 2D00..2D25    ; Georgian # L&  [38] GEORGIAN SMALL LETTER AN..GEORGIAN SMALL LETTER HOE
+2D27          ; Georgian # L&       GEORGIAN SMALL LETTER YN
+2D2D          ; Georgian # L&       GEORGIAN SMALL LETTER AEN
 
-# Total code points: 120
+# Total code points: 127
 
 # ================================================
 
 1100..11FF    ; Hangul # Lo [256] HANGUL CHOSEONG KIYEOK..HANGUL JONGSEONG SSANGNIEUN
-302E..302F    ; Hangul # Mn   [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK
+302E..302F    ; Hangul # Mc   [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK
 3131..318E    ; Hangul # Lo  [94] HANGUL LETTER KIYEOK..HANGUL LETTER ARAEAE
 3200..321E    ; Hangul # So  [31] PARENTHESIZED HANGUL KIYEOK..PARENTHESIZED KOREAN CHARACTER O HU
 3260..327E    ; Hangul # So  [31] CIRCLED HANGUL KIYEOK..CIRCLED HANGUL IEUNG U
@@ -1256,8 +1295,7 @@
 1312..1315    ; Ethiopic # Lo   [4] ETHIOPIC SYLLABLE GWI..ETHIOPIC SYLLABLE GWE
 1318..135A    ; Ethiopic # Lo  [67] ETHIOPIC SYLLABLE GGA..ETHIOPIC SYLLABLE FYA
 135D..135F    ; Ethiopic # Mn   [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK
-1360          ; Ethiopic # So       ETHIOPIC SECTION MARK
-1361..1368    ; Ethiopic # Po   [8] ETHIOPIC WORDSPACE..ETHIOPIC PARAGRAPH SEPARATOR
+1360..1368    ; Ethiopic # Po   [9] ETHIOPIC SECTION MARK..ETHIOPIC PARAGRAPH SEPARATOR
 1369..137C    ; Ethiopic # No  [20] ETHIOPIC DIGIT ONE..ETHIOPIC NUMBER TEN THOUSAND
 1380..138F    ; Ethiopic # Lo  [16] ETHIOPIC SYLLABLE SEBATBEIT MWA..ETHIOPIC SYLLABLE PWE
 1390..1399    ; Ethiopic # So  [10] ETHIOPIC TONAL MARK YIZET..ETHIOPIC TONAL MARK KURT
@@ -1313,7 +1351,7 @@
 # ================================================
 
 1780..17B3    ; Khmer # Lo  [52] KHMER LETTER KA..KHMER INDEPENDENT VOWEL QAU
-17B4..17B5    ; Khmer # Cf   [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
+17B4..17B5    ; Khmer # Mn   [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
 17B6          ; Khmer # Mc       KHMER VOWEL SIGN AA
 17B7..17BD    ; Khmer # Mn   [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA
 17BE..17C5    ; Khmer # Mc   [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU
@@ -1393,16 +1431,15 @@
 3038..303A    ; Han # Nl   [3] HANGZHOU NUMERAL TEN..HANGZHOU NUMERAL THIRTY
 303B          ; Han # Lm       VERTICAL IDEOGRAPHIC ITERATION MARK
 3400..4DB5    ; Han # Lo [6582] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DB5
-4E00..9FCB    ; Han # Lo [20940] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FCB
-F900..FA2D    ; Han # Lo [302] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA2D
-FA30..FA6D    ; Han # Lo  [62] CJK COMPATIBILITY IDEOGRAPH-FA30..CJK COMPATIBILITY IDEOGRAPH-FA6D
+4E00..9FCC    ; Han # Lo [20941] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FCC
+F900..FA6D    ; Han # Lo [366] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA6D
 FA70..FAD9    ; Han # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9
 20000..2A6D6  ; Han # Lo [42711] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6D6
 2A700..2B734  ; Han # Lo [4149] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B734
 2B740..2B81D  ; Han # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
 2F800..2FA1D  ; Han # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
 
-# Total code points: 75960
+# Total code points: 75963
 
 # ================================================
 
@@ -1447,6 +1484,7 @@
 1CD4..1CE0    ; Inherited # Mn  [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA
 1CE2..1CE8    ; Inherited # Mn   [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
 1CED          ; Inherited # Mn       VEDIC SIGN TIRYAK
+1CF4          ; Inherited # Mn       VEDIC TONE CANDRA ABOVE
 1DC0..1DE6    ; Inherited # Mn  [39] COMBINING DOTTED GRAVE ACCENT..COMBINING LATIN SMALL LETTER Z
 1DFC..1DFF    ; Inherited # Mn   [4] COMBINING DOUBLE INVERTED BREVE BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
 200C..200D    ; Inherited # Cf   [2] ZERO WIDTH NON-JOINER..ZERO WIDTH JOINER
@@ -1466,7 +1504,7 @@
 1D1AA..1D1AD  ; Inherited # Mn   [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
 E0100..E01EF  ; Inherited # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
 
-# Total code points: 523
+# Total code points: 524
 
 # ================================================
 
@@ -1587,11 +1625,12 @@
 2CE5..2CEA    ; Coptic # So   [6] COPTIC SYMBOL MI RO..COPTIC SYMBOL SHIMA SIMA
 2CEB..2CEE    ; Coptic # L&   [4] COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI..COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA
 2CEF..2CF1    ; Coptic # Mn   [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS
+2CF2..2CF3    ; Coptic # L&   [2] COPTIC CAPITAL LETTER BOHAIRIC KHEI..COPTIC SMALL LETTER BOHAIRIC KHEI
 2CF9..2CFC    ; Coptic # Po   [4] COPTIC OLD NUBIAN FULL STOP..COPTIC OLD NUBIAN VERSE DIVIDER
 2CFD          ; Coptic # No       COPTIC FRACTION ONE HALF
 2CFE..2CFF    ; Coptic # Po   [2] COPTIC FULL STOP..COPTIC MORPHOLOGICAL DIVIDER
 
-# Total code points: 135
+# Total code points: 137
 
 # ================================================
 
@@ -1614,12 +1653,12 @@
 
 # ================================================
 
-2D30..2D65    ; Tifinagh # Lo  [54] TIFINAGH LETTER YA..TIFINAGH LETTER YAZZ
+2D30..2D67    ; Tifinagh # Lo  [56] TIFINAGH LETTER YA..TIFINAGH LETTER YO
 2D6F          ; Tifinagh # Lm       TIFINAGH MODIFIER LETTER LABIALIZATION MARK
 2D70          ; Tifinagh # Po       TIFINAGH SEPARATOR MARK
 2D7F          ; Tifinagh # Mn       TIFINAGH CONSONANT JOINER
 
-# Total code points: 57
+# Total code points: 59
 
 # ================================================
 
@@ -1729,10 +1768,14 @@
 1BA6..1BA7    ; Sundanese # Mc   [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
 1BA8..1BA9    ; Sundanese # Mn   [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
 1BAA          ; Sundanese # Mc       SUNDANESE SIGN PAMAAEH
+1BAB          ; Sundanese # Mn       SUNDANESE SIGN VIRAMA
+1BAC..1BAD    ; Sundanese # Mc   [2] SUNDANESE CONSONANT SIGN PASANGAN MA..SUNDANESE CONSONANT SIGN PASANGAN WA
 1BAE..1BAF    ; Sundanese # Lo   [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA
 1BB0..1BB9    ; Sundanese # Nd  [10] SUNDANESE DIGIT ZERO..SUNDANESE DIGIT NINE
+1BBA..1BBF    ; Sundanese # Lo   [6] SUNDANESE AVAGRAHA..SUNDANESE LETTER FINAL M
+1CC0..1CC7    ; Sundanese # Po   [8] SUNDANESE PUNCTUATION BINDU SURYA..SUNDANESE PUNCTUATION BINDU BA SATANGA
 
-# Total code points: 55
+# Total code points: 72
 
 # ================================================
 
@@ -1940,6 +1983,15 @@
 
 # ================================================
 
+AAE0..AAEA    ; Meetei_Mayek # Lo  [11] MEETEI MAYEK LETTER E..MEETEI MAYEK LETTER SSA
+AAEB          ; Meetei_Mayek # Mc       MEETEI MAYEK VOWEL SIGN II
+AAEC..AAED    ; Meetei_Mayek # Mn   [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI MAYEK VOWEL SIGN AAI
+AAEE..AAEF    ; Meetei_Mayek # Mc   [2] MEETEI MAYEK VOWEL SIGN AU..MEETEI MAYEK VOWEL SIGN AAU
+AAF0..AAF1    ; Meetei_Mayek # Po   [2] MEETEI MAYEK CHEIKHAN..MEETEI MAYEK AHANG KHUDAM
+AAF2          ; Meetei_Mayek # Lo       MEETEI MAYEK ANJI
+AAF3..AAF4    ; Meetei_Mayek # Lm   [2] MEETEI MAYEK SYLLABLE REPETITION MARK..MEETEI MAYEK WORD REPETITION MARK
+AAF5          ; Meetei_Mayek # Mc       MEETEI MAYEK VOWEL SIGN VISARGA
+AAF6          ; Meetei_Mayek # Mn       MEETEI MAYEK VIRAMA
 ABC0..ABE2    ; Meetei_Mayek # Lo  [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM
 ABE3..ABE4    ; Meetei_Mayek # Mc   [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP
 ABE5          ; Meetei_Mayek # Mn       MEETEI MAYEK VOWEL SIGN ANAP
@@ -1951,7 +2003,7 @@
 ABED          ; Meetei_Mayek # Mn       MEETEI MAYEK APUN IYEK
 ABF0..ABF9    ; Meetei_Mayek # Nd  [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE
 
-# Total code points: 56
+# Total code points: 79
 
 # ================================================
 
@@ -2040,4 +2092,74 @@
 
 # Total code points: 29
 
+# ================================================
+
+11100..11102  ; Chakma # Mn   [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA
+11103..11126  ; Chakma # Lo  [36] CHAKMA LETTER AA..CHAKMA LETTER HAA
+11127..1112B  ; Chakma # Mn   [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU
+1112C         ; Chakma # Mc       CHAKMA VOWEL SIGN E
+1112D..11134  ; Chakma # Mn   [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA
+11136..1113F  ; Chakma # Nd  [10] CHAKMA DIGIT ZERO..CHAKMA DIGIT NINE
+11140..11143  ; Chakma # Po   [4] CHAKMA SECTION MARK..CHAKMA QUESTION MARK
+
+# Total code points: 67
+
+# ================================================
+
+109A0..109B7  ; Meroitic_Cursive # Lo  [24] MEROITIC CURSIVE LETTER A..MEROITIC CURSIVE LETTER DA
+109BE..109BF  ; Meroitic_Cursive # Lo   [2] MEROITIC CURSIVE LOGOGRAM RMT..MEROITIC CURSIVE LOGOGRAM IMN
+
+# Total code points: 26
+
+# ================================================
+
+10980..1099F  ; Meroitic_Hieroglyphs # Lo  [32] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC HIEROGLYPHIC SYMBOL VIDJ-2
+
+# Total code points: 32
+
+# ================================================
+
+16F00..16F44  ; Miao # Lo  [69] MIAO LETTER PA..MIAO LETTER HHA
+16F50         ; Miao # Lo       MIAO LETTER NASALIZATION
+16F51..16F7E  ; Miao # Mc  [46] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN NG
+16F8F..16F92  ; Miao # Mn   [4] MIAO TONE RIGHT..MIAO TONE BELOW
+16F93..16F9F  ; Miao # Lm  [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
+
+# Total code points: 133
+
+# ================================================
+
+11180..11181  ; Sharada # Mn   [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA
+11182         ; Sharada # Mc       SHARADA SIGN VISARGA
+11183..111B2  ; Sharada # Lo  [48] SHARADA LETTER A..SHARADA LETTER HA
+111B3..111B5  ; Sharada # Mc   [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II
+111B6..111BE  ; Sharada # Mn   [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O
+111BF..111C0  ; Sharada # Mc   [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA
+111C1..111C4  ; Sharada # Lo   [4] SHARADA SIGN AVAGRAHA..SHARADA OM
+111C5..111C8  ; Sharada # Po   [4] SHARADA DANDA..SHARADA SEPARATOR
+111D0..111D9  ; Sharada # Nd  [10] SHARADA DIGIT ZERO..SHARADA DIGIT NINE
+
+# Total code points: 83
+
+# ================================================
+
+110D0..110E8  ; Sora_Sompeng # Lo  [25] SORA SOMPENG LETTER SAH..SORA SOMPENG LETTER MAE
+110F0..110F9  ; Sora_Sompeng # Nd  [10] SORA SOMPENG DIGIT ZERO..SORA SOMPENG DIGIT NINE
+
+# Total code points: 35
+
+# ================================================
+
+11680..116AA  ; Takri # Lo  [43] TAKRI LETTER A..TAKRI LETTER RRA
+116AB         ; Takri # Mn       TAKRI SIGN ANUSVARA
+116AC         ; Takri # Mc       TAKRI SIGN VISARGA
+116AD         ; Takri # Mn       TAKRI VOWEL SIGN AA
+116AE..116AF  ; Takri # Mc   [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II
+116B0..116B5  ; Takri # Mn   [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
+116B6         ; Takri # Mc       TAKRI SIGN VIRAMA
+116B7         ; Takri # Mn       TAKRI SIGN NUKTA
+116C0..116C9  ; Takri # Nd  [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE
+
+# Total code points: 66
+
 # EOF
--- a/jdk/test/java/util/concurrent/Phaser/Basic.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/test/java/util/concurrent/Phaser/Basic.java	Wed Jul 05 18:07:57 2017 +0200
@@ -96,7 +96,7 @@
             int phase = atTheStartingGate.getPhase();
             equal(phase, atTheStartingGate.arrive());
             int awaitPhase = atTheStartingGate.awaitAdvanceInterruptibly
-                (phase, 10, SECONDS);
+                (phase, 30, SECONDS);
             if (expectNextPhase) check(awaitPhase == (phase + 1));
 
             pass();
@@ -188,7 +188,7 @@
                     case 2: case 6: case 7:
                         return awaiter(phaser, -1, SECONDS);
                     default:
-                        return awaiter(phaser, 10, SECONDS); }}
+                        return awaiter(phaser, 30, SECONDS); }}
             public void remove() {throw new UnsupportedOperationException();}};
     }
 
@@ -204,7 +204,7 @@
                     case 2: case 5:
                         return awaiter(phaser, -1, SECONDS);
                     default:
-                        return awaiter(phaser, 10, SECONDS); }}
+                        return awaiter(phaser, 30, SECONDS); }}
             public void remove() {throw new UnsupportedOperationException();}};
     }
 
@@ -251,9 +251,11 @@
             int phase = phaser.getPhase();
             for (int i = 0; i < 4; i++) {
                 check(phaser.getPhase() == phase);
-                Awaiter a1 = awaiter(phaser, 10, SECONDS); a1.start();
+                Awaiter a1 = awaiter(phaser, 30, SECONDS); a1.start();
                 Arriver a2 = arrivers.next(); a2.start();
                 toTheStartingGate();
+                // allow a1 to block in awaitAdvanceInterruptibly
+                Thread.sleep(2000);
                 a1.interrupt();
                 a1.join();
                 phaser.arriveAndAwaitAdvance();
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/javax/swing/JTabbedPane/4310381/bug4310381.html	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,6 @@
+<html>
+<body>
+<applet  code="bug4310381.class" width=150 height=150></applet>
+Observe that long Tab titles are clipped with dots at the end
+</body>
+</html> 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/javax/swing/JTabbedPane/4310381/bug4310381.java	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,83 @@
+/*
+ * Copyright (c) 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.
+ *
+ * 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.
+ */
+
+/*
+ * Portions Copyright (c) 2012 IBM Corporation
+ */
+
+/*
+ * @test
+ * @bug 4310381
+ * @summary Text in multi-row/col JTabbedPane tabs can be truncated/clipped
+ * @author Charles Lee
+   @run applet/manual=yesno bug4310381.html
+ */
+
+
+import javax.swing.*;
+import java.awt.*;
+import java.lang.reflect.InvocationTargetException;
+
+public class bug4310381 extends JApplet {
+    public static void main(String[] args) throws Exception {
+        SwingUtilities.invokeLater(new Runnable() {
+            public void run() {
+                JFrame frame = new JFrame();
+
+                frame.setContentPane(createContentPane());
+                frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
+                frame.setSize(150, 200);
+                frame.setLocationRelativeTo(null);
+
+                frame.setVisible(true);
+
+            }
+        });
+    }
+
+    @Override
+    public void init() {
+        try {
+            SwingUtilities.invokeAndWait(new Runnable() {
+                @Override
+                public void run() {
+                    setContentPane(createContentPane());
+                }
+            });
+        } catch (InterruptedException | InvocationTargetException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    private static Container createContentPane() {
+        JTabbedPane tab = new JTabbedPane();
+        String a2z = "abcdefghijklmnopqrstuvwxyz";
+
+        tab.addTab("0" + a2z + a2z, new JLabel("0"));
+        tab.addTab("1" + a2z, new JLabel("1" + a2z));
+        tab.addTab("2" + a2z, new JLabel("2" + a2z));
+        tab.addTab("3", new JLabel("3" + a2z)); // The last tab in Metal isn't truncated, that's ok
+
+        return tab;
+    }
+}
--- a/jdk/test/sun/security/pkcs11/PKCS11Test.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/test/sun/security/pkcs11/PKCS11Test.java	Wed Jul 05 18:07:57 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -129,6 +129,13 @@
     }
 
     private static String PKCS11_BASE;
+    static {
+        try {
+            PKCS11_BASE = getBase();
+        } catch (Exception e) {
+            // ignore
+        }
+    }
 
     private final static String PKCS11_REL_PATH = "sun/security/pkcs11";
 
@@ -160,20 +167,18 @@
         }
         String osid = osName + "-"
                 + props.getProperty("os.arch") + "-" + props.getProperty("sun.arch.data.model");
-        String ostype = osMap.get(osid);
-        if (ostype == null) {
+        String nssLibDir = osMap.get(osid);
+        if (nssLibDir == null) {
             System.out.println("Unsupported OS, skipping: " + osid);
             return null;
-//          throw new Exception("Unsupported OS " + osid);
+//          throw new Exception("Unsupported OS " + osName);
         }
-        if (ostype.length() == 0) {
+        if (nssLibDir.length() == 0) {
             System.out.println("NSS not supported on this platform, skipping test");
             return null;
         }
-        String base = getBase();
-        String libdir = base + SEP + "nss" + SEP + "lib" + SEP + ostype + SEP;
-        System.setProperty("pkcs11test.nss.libdir", libdir);
-        return libdir;
+        System.setProperty("pkcs11test.nss.libdir", nssLibDir);
+        return nssLibDir;
     }
 
     protected static void safeReload(String lib) throws Exception {
@@ -191,6 +196,8 @@
         safeReload(libdir + System.mapLibraryName(NSPR_PREFIX + "nspr4"));
         safeReload(libdir + System.mapLibraryName(NSPR_PREFIX + "plc4"));
         safeReload(libdir + System.mapLibraryName(NSPR_PREFIX + "plds4"));
+        safeReload(libdir + System.mapLibraryName("sqlite3"));
+        safeReload(libdir + System.mapLibraryName("nssutil3"));
         return true;
     }
 
@@ -229,15 +236,15 @@
 
     private static final Map<String,String> osMap;
 
+    // Location of the NSS libraries on each supported platform
     static {
         osMap = new HashMap<String,String>();
-        osMap.put("SunOS-sparc-32", "solaris-sparc");
-        osMap.put("SunOS-sparcv9-64", "solaris-sparcv9");
-        osMap.put("SunOS-x86-32", "solaris-i586");
-        osMap.put("SunOS-amd64-64", "solaris-amd64");
-        osMap.put("Linux-i386-32", "linux-i586");
-        osMap.put("Linux-amd64-64", "linux-amd64");
-        osMap.put("Windows-x86-32", "windows-i586");
+        osMap.put("SunOS-sparc-32", "/usr/lib/mps/");
+        osMap.put("SunOS-sparcv9-64", "/usr/lib/mps/64/");
+        osMap.put("SunOS-x86-32", "/usr/lib/mps/");
+        osMap.put("SunOS-amd64-64", "/usr/lib/mps/64/");
+        osMap.put("Linux-i386-32", "/usr/lib/");
+        osMap.put("Linux-amd64-64", "/usr/lib64/");
     }
 
     private final static char[] hexDigits = "0123456789abcdef".toCharArray();
Binary file jdk/test/sun/security/pkcs11/nss/lib/linux-amd64/libfreebl3.chk has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/linux-amd64/libfreebl3.so has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/linux-amd64/libnspr4.so has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/linux-amd64/libnss3.so has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/linux-amd64/libnssckbi.so has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/linux-amd64/libplc4.so has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/linux-amd64/libplds4.so has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/linux-amd64/libsoftokn3.chk has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/linux-amd64/libsoftokn3.so has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/linux-i586/libnspr4.so has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/linux-i586/libnss3.so has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/linux-i586/libnssckbi.so has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/linux-i586/libplc4.so has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/linux-i586/libplds4.so has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/linux-i586/libsoftokn3.so has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/solaris-amd64/libnspr4.so has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/solaris-amd64/libnss3.so has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/solaris-amd64/libnssckbi.so has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/solaris-amd64/libplc4.so has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/solaris-amd64/libplds4.so has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/solaris-amd64/libsoftokn3.so has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/solaris-i586/libfreebl3.so has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/solaris-i586/libnspr4.so has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/solaris-i586/libnss3.so has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/solaris-i586/libnssckbi.so has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/solaris-i586/libplc4.so has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/solaris-i586/libplds4.so has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/solaris-i586/libsoftokn3.so has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/solaris-sparc/libfreebl_hybrid_3.chk has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/solaris-sparc/libfreebl_hybrid_3.so has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/solaris-sparc/libnspr4.so has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/solaris-sparc/libnss3.so has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/solaris-sparc/libnssckbi.so has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/solaris-sparc/libplc4.so has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/solaris-sparc/libplds4.so has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/solaris-sparc/libsoftokn3.chk has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/solaris-sparc/libsoftokn3.so has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/solaris-sparcv9/libnspr4.so has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/solaris-sparcv9/libnss3.so has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/solaris-sparcv9/libnssckbi.so has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/solaris-sparcv9/libplc4.so has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/solaris-sparcv9/libplds4.so has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/solaris-sparcv9/libsoftokn3.so has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/libnspr4.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/libplc4.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/libplds4.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/nss3.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/nssckbi.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/softokn3.dll has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLContextImpl/NullGetAcceptedIssuers.java	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 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.
+ *
+ * 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.
+ */
+
+/*
+ * @test
+ * @bug 7142172
+ * @summary Custom TrustManagers that return null for getAcceptedIssuers
+ *          will NPE.
+ *     SunJSSE does not support dynamic system properties, no way to
+ *     re-use system properties in samevm/agentvm mode.
+ * @run main/othervm NullGetAcceptedIssuers
+ */
+
+import javax.net.ssl.*;
+
+public class NullGetAcceptedIssuers {
+
+    public static void main(String[] args) throws Exception {
+        SSLContext sslContext;
+
+        // Create a trust manager that does not validate certificate chains
+        TrustManager[] trustAllCerts =
+            new TrustManager[] {new X509TrustManager() {
+
+                public void checkClientTrusted(
+                        java.security.cert.X509Certificate[] certs,
+                        String authType) {
+                }
+
+                public void checkServerTrusted(
+                        java.security.cert.X509Certificate[] certs,
+                        String authType) {
+                }
+
+                // API says empty array, but some custom TMs are
+                // returning null.
+                public java.security.cert.X509Certificate[]
+                        getAcceptedIssuers() {
+                    return null;
+                }
+            }};
+
+        sslContext = javax.net.ssl.SSLContext.getInstance("SSL");
+        sslContext.init(null, trustAllCerts, null);
+    }
+}
--- a/jdk/test/sun/security/tools/keytool/autotest.sh	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/test/sun/security/tools/keytool/autotest.sh	Wed Jul 05 18:07:57 2017 +0200
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2006, 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2006, 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
@@ -50,7 +50,7 @@
     ARCH=`isainfo`
     case "$ARCH" in
       sparc* )
-        PF="solaris-sparc"
+        NSSDIR="/usr/lib/mps"
         ;;
       * )
         echo "Will not run test on: Solaris ${ARCH}"
@@ -64,7 +64,7 @@
     FS="/"
     case "$ARCH" in
       i[3-6]86 )
-        PF="linux-i586"
+        NSSDIR="/usr/lib"
         ;;
       * )
         echo "Will not run test on: Linux ${ARCH}"
@@ -91,7 +91,7 @@
 chmod u+w cert8.db
 
 echo | ${TESTJAVA}${FS}bin${FS}java -Dnss \
-   -Dnss.lib=${NSS}${FS}lib${FS}${PF}${FS}${LIBNAME} \
+   -Dnss.lib=${NSSDIR}${FS}${LIBNAME} \
    KeyToolTest
 status=$?
 
--- a/jdk/test/sun/text/resources/LocaleData	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/test/sun/text/resources/LocaleData	Wed Jul 05 18:07:57 2017 +0200
@@ -574,7 +574,6 @@
 FormatData/es_PA/NumberElements/0=.
 FormatData/es_PA/NumberElements/1=,
 FormatData/es_PA/NumberElements/2=;
-CurrencyNames/es_PE/PEN=S/
 FormatData/es_PE/NumberPatterns/0=#,##0.###;-#,##0.###
 # FormatData/es_PE/NumberPatterns/1=S/#,##0.00;S/-#,##0.00 # Changed; see bug 4122840
 FormatData/es_PE/NumberPatterns/2=#,##0%
@@ -7026,4 +7025,7 @@
 CurrencyNames//xsu=Sucre
 CurrencyNames//xua=ADB Unit of Account
 LocaleNames//SS=South Sudan
-LocaleNames/en/SS=South Sudan
\ No newline at end of file
+LocaleNames/en/SS=South Sudan
+
+# bug 7028073
+CurrencyNames/es_PE/PEN=S/.
--- a/jdk/test/sun/text/resources/LocaleDataTest.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/test/sun/text/resources/LocaleDataTest.java	Wed Jul 05 18:07:57 2017 +0200
@@ -34,7 +34,7 @@
  *      6509039 6609737 6610748 6645271 6507067 6873931 6450945 6645268 6646611
  *      6645405 6650730 6910489 6573250 6870908 6585666 6716626 6914413 6916787
  *      6919624 6998391 7019267 7020960 7025837 7020583 7036905 7066203 7101495
- *      7003124 7085757
+ *      7003124 7085757 7028073
  * @summary Verify locale data
  *
  */
--- a/jdk/test/tools/launcher/TestHelper.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/test/tools/launcher/TestHelper.java	Wed Jul 05 18:07:57 2017 +0200
@@ -54,6 +54,7 @@
     static final File TEST_SOURCES_DIR;
 
     static final String JAVAHOME = System.getProperty("java.home");
+    static final String JAVA_BIN;
     static final boolean isSDK = JAVAHOME.endsWith("jre");
     static final String javaCmd;
     static final String javawCmd;
@@ -83,6 +84,7 @@
     static final String JAVA_FILE_EXT  = ".java";
     static final String CLASS_FILE_EXT = ".class";
     static final String JAR_FILE_EXT   = ".jar";
+    static final String EXE_FILE_EXT   = ".exe";
     static final String JLDEBUG_KEY     = "_JAVA_LAUNCHER_DEBUG";
     static final String EXPECTED_MARKER = "TRACER_MARKER:About to EXEC";
 
@@ -110,6 +112,7 @@
         compiler = ToolProvider.getSystemJavaCompiler();
         File binDir = (isSDK) ? new File((new File(JAVAHOME)).getParentFile(), "bin")
             : new File(JAVAHOME, "bin");
+        JAVA_BIN = binDir.getAbsolutePath();
         File javaCmdFile = (isWindows)
                 ? new File(binDir, "java.exe")
                 : new File(binDir, "java");
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/tools/launcher/ToolsOpts.java	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,217 @@
+/*
+ * Copyright (c) 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.
+ *
+ * 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.
+ */
+
+/*
+ * @test
+ * @summary Test options patterns for javac,javah,javap and javadoc using
+ * javac as a test launcher. Create a dummy javac and intercept options to check
+ * reception of options as passed through the launcher without having to launch
+ * javac. Only -J and -cp ./* options should be consumed by the launcher.
+ * @run main ToolsOpts
+ * @author ssides
+ */
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+public class ToolsOpts extends TestHelper {
+    static final String JBCP_PREPEND = "-J-Xbootclasspath/p:";
+    private static File testJar = null;
+    static String[][] optionPatterns = {
+        {"-J-Xmx128m"},
+        {"-J-version"},
+        {"-J-XshowSettings:vm"},
+        {"-J-Xdiag"},
+        {"-J-showversion"},
+        {"-J-version", "-option"},
+        {"-option"},
+        {"-option:sub"},
+        {"-option:sub-"},
+        {"-option:sub1,sub2"}, // -option:list
+        {"-option:{sub1,sub2,sub3}"}, // -option:{list}
+        {"-option:{{sub1,sub2,sub3}}"},// -option:{{list}}
+        {"-option/c:/export/date/tmp"},
+        {"-option=value"},
+        {"-Dpk1.pk2.pk3"}, // dot in option
+        {"-Dpk1.pk2=value"}, // dot in option followed by =value
+        {"@<filename>"},
+        {"-option", "http://site.com", "http://site.org"},
+        {"-option", "name", "p1:p2.."},
+        {"-All these non-options show launchers pass options as is to tool."},
+        {"-option"},
+        {"-option:sub"},
+        {"-option:sub-"},
+        {"-option", "<path>"},
+        {"-option", "<file>"},
+        {"-option", "<dir>"},
+        {"-option", "http://a/b/c/g;x?y#s"},
+        {"-option", "<html code>"},
+        {"-option", "name1:name2"},
+        {"-option", "3"},
+        {"option1", "-J-version", "option2"},
+        {"option1", "-J-version", "-J-XshowSettings:vm", "option2"},};
+
+    static void init() throws IOException {
+        if (testJar != null) {
+            return;
+        }
+
+        // A tool which simulates com.sun.tools.javac.Main argument processing,
+        // intercepts options passed via the javac launcher.
+        final String mainJava = "Main" + JAVA_FILE_EXT;
+        testJar = new File("test" + JAR_FILE_EXT);
+        List<String> contents = new ArrayList<>();
+        contents.add("package com.sun.tools.javac;");
+        contents.add("public class Main {");
+        contents.add("    public static void main(String... args) {\n");
+        contents.add("       for (String x : args) {\n");
+        contents.add("           if(x.compareTo(\" \")!=0)\n");
+        contents.add("               System.out.println(x);\n");
+        contents.add("       }\n");
+        contents.add("    }\n");
+        contents.add("}\n");
+        createFile(new File(mainJava), contents);
+
+        // compile and jar Main.java into test.jar
+        compile("-d", ".", mainJava);
+            createJar("cvf", testJar.getAbsolutePath(), "com");
+        }
+
+    static void pass(String msg) {
+        System.out.println("pass: " + msg);
+    }
+
+    static void errout(String msg) {
+        System.err.println(msg);
+    }
+
+    // Return position of -J option or -1 is does not contain a -J option.
+    static int indexOfJoption(String[] opts) {
+        for (int i = 0; i < opts.length; i++) {
+            if (opts[i].startsWith("-J")) {
+                return i;
+            }
+        }
+        return -1;
+    }
+
+    /*
+     * Check that J options a) are not passed to tool, and b) do the right thing,
+     * that is, they should be passed to java launcher and work as expected.
+     */
+    static void checkJoptionOutput(TestResult tr, String[] opts) throws IOException {
+        // Check -J-version options are not passed but do what they should.
+        String jopts = "";
+        for (String pat : opts) {
+            jopts = jopts.concat(pat + " ");
+            if (tr.contains("-J")) {
+                throw new RuntimeException(
+                        "failed: output should not contain option " + pat);
+            }
+            if (pat.compareTo("-J-version") == 0 ||
+                    pat.compareTo("-J-showversion") == 0) {
+                if (!tr.contains("java version") &&
+                        !tr.contains("openjdk version")) {
+                    throw new RuntimeException("failed: " + pat +
+                            " should display a version string.");
+                }
+            } else if (pat.compareTo("-J-XshowSettings:VM") == 0) {
+                if (!tr.contains("VM settings")) {
+                    throw new RuntimeException("failed: " + pat +
+                            " should have display VM settings.");
+                }
+            }
+        }
+        pass("Joption check: " + jopts);
+    }
+
+    /*
+     * Feed each option pattern in optionPatterns array to javac launcher with
+     * checking program preempting javac. Check that option received by 'dummy'
+     * javac is the one passed on the command line.
+     */
+    static void runTestOptions() throws IOException {
+        init();
+        TestResult tr = null;
+        String sTestJar = testJar.getAbsolutePath();
+        int jpos = -1;
+        for (String arg[] : optionPatterns) {
+            jpos = indexOfJoption(arg);
+            //Build a cmd string for output in results reporting.
+            String cmdString = javacCmd + JBCP_PREPEND + sTestJar;
+            for (String opt : arg) {
+                cmdString = cmdString.concat(" " + opt);
+            }
+            switch (arg.length) {
+                case 1:
+                    tr = doExec(javacCmd, JBCP_PREPEND + sTestJar,
+                            arg[0]);
+                    break;
+                case 2:
+                    tr = doExec(javacCmd, JBCP_PREPEND + sTestJar,
+                            arg[0], arg[1]);
+                    break;
+                case 3:
+                    tr = doExec(javacCmd, JBCP_PREPEND + sTestJar,
+                            arg[0], arg[1], arg[2]);
+                    break;
+                case 4:
+                    tr = doExec(javacCmd, JBCP_PREPEND + sTestJar,
+                            arg[0], arg[1], arg[2], arg[3]);
+                    break;
+                default:
+                    tr = null;
+                    break;
+            }
+
+            String[] output = tr.testOutput.toArray(new String[tr.testOutput.size()]);
+            //-Joptions should not be passed to tool
+            if (jpos > -1) {
+                checkJoptionOutput(tr, arg);
+                if (tr.contains(arg[jpos])) {
+                    throw new RuntimeException(
+                            "failed! Should not have passed -J option to tool.\n"
+                            + "CMD: " + cmdString);
+                }
+            } else {
+                //check that each non -J option was passed to tool.
+                for (int i = 0; i < arg.length; i++) {
+                    if (output[i].compareTo(arg[i]) != 0) {
+                        throw new RuntimeException(
+                                "failed! CMD: " + cmdString + "\n   case:" +
+                                output[i] + " != " + arg[i]);
+                    } else {
+                        pass("check " + output[i] + " == " + arg[i]);
+                    }
+                }
+            }
+            pass(cmdString);
+        }
+    }
+
+    public static void main(String... args) throws IOException {
+        runTestOptions();
+    }
+}
--- a/jdk/test/tools/launcher/VersionCheck.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/jdk/test/tools/launcher/VersionCheck.java	Wed Jul 05 18:07:57 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 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
@@ -24,58 +24,76 @@
 /**
  * @test
  * @bug 6545058 6611182
- * @summary validate and test -version, -fullversion, and internal
+ * @summary validate and test -version, -fullversion, and internal, as well as
+ *          sanity checks if a tool can be launched.
  * @compile VersionCheck.java
  * @run main VersionCheck
  */
 
-import java.lang.*;
 import java.io.File;
-import java.io.BufferedReader;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
+import java.io.FileFilter;
 import java.util.Map;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
-import java.util.StringTokenizer;
 
-public class VersionCheck {
+public class VersionCheck extends TestHelper {
 
-    private static String javaBin;
+    // tools that do not accept -J-option
+    static final String[] BLACKLIST_JOPTION = {
+        "controlpanel",
+        "java-rmi",
+        "java-rmi.cgi",
+        "java",
+        "javaw",
+        "javaws",
+        "jcontrol",
+        "jvisualvm",
+        "packager",
+        "unpack200",
+        "wsimport"
+    };
 
-    // A known set of programs we know for sure will behave correctly.
-    private static String[] programs = new String[]{
+    // tools that do not accept -version
+    static final String[] BLACKLIST_VERSION = {
         "appletviewer",
+        "controlpanel",
         "extcheck",
-        "idlj",
         "jar",
         "jarsigner",
-        "javac",
+        "java-rmi",
+        "java-rmi.cgi",
         "javadoc",
-        "javah",
-        "javap",
+        "javaws",
+        "jcmd",
         "jconsole",
-        "jdb",
-        "jhat",
+        "jcontrol",
         "jinfo",
         "jmap",
         "jps",
+        "jrunscript",
+        "jsadebugd",
         "jstack",
         "jstat",
         "jstatd",
+        "jvisualvm",
         "keytool",
+        "kinit",
+        "klist",
+        "ktab",
         "native2ascii",
         "orbd",
         "pack200",
+        "packager",
         "policytool",
         "rmic",
         "rmid",
         "rmiregistry",
-        "schemagen",
+        "schemagen", // returns error code 127
         "serialver",
         "servertool",
         "tnameserv",
+        "unpack200",
         "wsgen",
         "wsimport",
         "xjc"
@@ -85,53 +103,11 @@
     static String refVersion;
     static String refFullVersion;
 
-    private static List<String> getProcessStreamAsList(boolean javaDebug,
-                                                       String... argv) {
-        List<String> out = new ArrayList<String>();
-        List<String> javaCmds = new ArrayList<String>();
-
-        String prog = javaBin + File.separator + argv[0];
-        if (System.getProperty("os.name").startsWith("Windows")) {
-            prog = prog.concat(".exe");
-        }
-        javaCmds.add(prog);
-        for (int i = 1; i < argv.length; i++) {
-            javaCmds.add(argv[i]);
-        }
-
-        ProcessBuilder pb = new ProcessBuilder(javaCmds);
-        Map<String, String> env = pb.environment();
-        if (javaDebug) {
-            env.put("_JAVA_LAUNCHER_DEBUG", "true");
-        }
-        try {
-            Process p = pb.start();
-            BufferedReader r = (javaDebug) ?
-                new BufferedReader(new InputStreamReader(p.getInputStream())) :
-                new BufferedReader(new InputStreamReader(p.getErrorStream())) ;
-
-            String s = r.readLine();
-            while (s != null) {
-                out.add(s.trim());
-                s = r.readLine();
-            }
-            p.waitFor();
-            p.destroy();
-        } catch (Exception ex) {
-            ex.printStackTrace();
-            throw new RuntimeException(ex.getMessage());
-        }
-        return out;
-    }
-
     static String getVersion(String... argv) {
-        List<String> alist = getProcessStreamAsList(false, argv);
-        if (alist.size() == 0) {
-            throw new AssertionError("unexpected process returned null");
-        }
+        TestHelper.TestResult tr = doExec(argv);
         StringBuilder out = new StringBuilder();
         // remove the HotSpot line
-        for (String x : alist) {
+        for (String x : tr.testOutput) {
             if (!x.matches(".*Client.*VM.*|.*Server.*VM.*")) {
                 out = out.append(x + "\n");
             }
@@ -139,9 +115,28 @@
         return out.toString();
     }
 
-    static boolean compareVersionStrings() {
+    /*
+     * this tests if the tool can take a version string and returns
+     * a 0 exit code, it is not possible to validate the contents
+     * of the -version output as they are inconsistent.
+     */
+    static boolean testToolVersion() {
+        TestResult tr = null;
+        TestHelper.testExitValue = 0;
+        for (File f : new File(JAVA_BIN).listFiles(new ToolFilter(BLACKLIST_VERSION))) {
+            String x = f.getAbsolutePath();
+            System.out.println("Testing (-version): " + x);
+            tr = doExec(x, "-version");
+            tr.checkPositive();
+        }
+        return TestHelper.testExitValue == 0;
+    }
+
+    static boolean compareJVersionStrings() {
         int failcount = 0;
-        for (String x : programs) {
+        for (File f : new File(JAVA_BIN).listFiles(new ToolFilter(BLACKLIST_JOPTION))) {
+            String x = f.getAbsolutePath();
+            System.out.println("Testing (-J-version): " + x);
             String testStr;
 
             testStr = getVersion(x, "-J-version");
@@ -185,8 +180,14 @@
         String expectedDotVersion = "dotversion:" + jdkMajor + "." + jdkMinor;
         String expectedFullVersion = "fullversion:" + bStr;
 
-        List<String> alist = getProcessStreamAsList(true, "java", "-version");
-
+        Map<String, String> envMap = new HashMap<>();
+        envMap.put(TestHelper.JLDEBUG_KEY, "true");
+        TestHelper.TestResult tr = doExec(envMap, javaCmd, "-version");
+        List<String> alist = new ArrayList<>();
+        alist.addAll(tr.testOutput);
+        for (String x : tr.testOutput) {
+            alist.add(x.trim());
+        }
         if (!alist.contains(expectedDotVersion)) {
             System.out.println("Error: could not find " + expectedDotVersion);
             failcount++;
@@ -202,21 +203,46 @@
 
     // Initialize
     static void init() {
-        String javaHome = System.getProperty("java.home");
-        if (javaHome.endsWith("jre")) {
-            javaHome = new File(javaHome).getParent();
-        }
-        javaBin = javaHome + File.separator + "bin";
-        refVersion = getVersion("java", "-version");
-        refFullVersion = getVersion("java", "-fullversion");
+        refVersion = getVersion(javaCmd, "-version");
+        refFullVersion = getVersion(javaCmd, "-fullversion");
     }
 
     public static void main(String[] args) {
         init();
-        if (compareVersionStrings() && compareInternalStrings()) {
+        if (compareJVersionStrings() &&
+                compareInternalStrings() &&
+                testToolVersion()) {
             System.out.println("All Version string comparisons: PASS");
         } else {
             throw new AssertionError("Some tests failed");
         }
     }
+
+    static class ToolFilter implements FileFilter {
+        final Iterable<String> exclude ;
+        protected ToolFilter(String... exclude) {
+            List<String> tlist = new ArrayList<>();
+            this.exclude = tlist;
+            for (String x : exclude) {
+                String str = x + ((isWindows) ? EXE_FILE_EXT : "");
+                tlist.add(str.toLowerCase());
+            }
+        }
+        @Override
+        public boolean accept(File pathname) {
+            if (!pathname.isFile() || !pathname.canExecute()) {
+                return false;
+            }
+            String name = pathname.getName().toLowerCase();
+            if (isWindows && !name.endsWith(EXE_FILE_EXT)) {
+                return false;
+            }
+            for (String x : exclude) {
+                if (name.endsWith(x)) {
+                    return false;
+                }
+            }
+            return true;
+        }
+    }
 }
--- a/langtools/.hgtags	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/.hgtags	Wed Jul 05 18:07:57 2017 +0200
@@ -154,3 +154,4 @@
 08a3425f39f829502ca0ddbfb2d051c31710cb19 jdk8-b30
 b28cfbe7e8b196da954bed9a22bfd790e55333aa jdk8-b31
 be069d72dde2bfe6f996c46325a320961ca854c2 jdk8-b32
+46831c72b7f6c69fef2cc2935001863643a65f94 jdk8-b33
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/makefiles/Makefile	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,203 @@
+#
+# 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
+
+default: all
+
+# The BOOT_JAVAC setup uses the bootdir compiler to compile the tools
+# and the bootstrap javac, to be run by the bootdir jvm.
+$(eval $(call SetupJavaCompiler,BOOT_JAVAC,\
+	JAVAC:=$(JAVAC),\
+        FLAGS:=-Xprefer:source -XDignore.symbol.file=true -g,\
+        MODE:=SINGLE_THREADED_BATCH))
+
+# Now setup the compilation of the properties compilation tool. You can depend
+# upon $(BUILD_TOOLS) to trigger a compilation of the tools. Note that we
+# add src/share/classes to the sourcepath. This is necessary since the GenStubs
+# program needs to be linked and run towards the new javac sources.
+$(eval $(call SetupJavaCompilation,BUILD_TOOLS,\
+		SETUP:=BOOT_JAVAC,\
+		SRC:=$(LANGTOOLS_TOPDIR)/make/tools $(LANGTOOLS_TOPDIR)/src/share/classes,\
+		INCLUDES:=compileproperties genstubs,\
+		BIN:=$(LANGTOOLS_OUTPUTDIR)/btclasses))
+
+# The compileprops tools compiles a properties file into a resource bundle.
+TOOL_COMPILEPROPS_CMD:=$(JAVA) -cp $(LANGTOOLS_OUTPUTDIR)/btclasses compileproperties.CompileProperties -quiet
+# Lookup the properties that need to be compiled into resource bundles.
+PROPSOURCES:=$(shell find $(LANGTOOLS_TOPDIR)/src/share/classes -name "*.properties")
+# Strip away prefix and suffix, leaving for example only: "com/sun/tools/javac/resources/javac_zh_CN"
+PROPPATHS:=$(patsubst $(LANGTOOLS_TOPDIR)/src/share/classes/%.properties,%,$(PROPSOURCES))
+# Generate the list of java files to be created.
+PROPJAVAS:=$(patsubst %,$(LANGTOOLS_OUTPUTDIR)/gensrc/%.java,$(PROPPATHS))
+# Generate the package dirs for the tobe generated java files.
+PROPDIRS:=$(dir $(PROPJAVAS))
+# Now generate a sequence of "-compile ...javac_zh_CN.properties ...javac_zh_CN.java java.util.ListResourceBundle"
+# suitable to be fed into the CompileProperties command.
+PROPCMDLINE:=$(subst _SPACE_,$(SPACE),$(join $(addprefix -compile_SPACE_,$(PROPSOURCES)), \
+		$(addsuffix _SPACE_java.util.ListResourceBundle,$(addprefix _SPACE_$(LANGTOOLS_OUTPUTDIR)/gensrc/,$(addsuffix .java,$(PROPPATHS))))))
+
+# Now setup the rule for the generation of the resource bundles.
+$(LANGTOOLS_OUTPUTDIR)/gensrc/_the_props.d : $(PROPSOURCES) $(BUILD_TOOLS)
+	rm -rf $(@D)/*
+	mkdir -p $(@D) $(PROPDIRS)
+	printf "jdk=$(JDK_VERSION)\nfull=$(FULL_VERSION)\nrelease=$(RELEASE)\n" > $(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/javah/resources/version.properties
+	printf "jdk=$(JDK_VERSION)\nfull=$(FULL_VERSION)\nrelease=$(RELEASE)\n" > $(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/javap/resources/version.properties
+	printf "jdk=$(JDK_VERSION)\nfull=$(FULL_VERSION)\nrelease=$(RELEASE)\n" > $(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/javac/resources/version.properties
+	echo Compiling $(words $(PROPSOURCES) v1 v2 v3) properties into resource bundles
+	$(TOOL_COMPILEPROPS_CMD) $(PROPCMDLINE) \
+		-compile 	$(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/javah/resources/version.properties \
+				$(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/javah/resources/version.java \
+				java.util.ListResourceBundle \
+		-compile 	$(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/javap/resources/version.properties \
+				$(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/javap/resources/version.java \
+				java.util.ListResourceBundle \
+		-compile	$(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/javac/resources/version.properties \
+				$(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/javac/resources/version.java \
+				java.util.ListResourceBundle
+	echo PROPS_ARE_CREATED=yes > $@
+
+# Trigger the generation of the resource bundles. After the resource bundles have
+# been compiled, then the makefile will restart and the newly created java files
+# will become part of the build further along in the makefile.
+-include $(LANGTOOLS_OUTPUTDIR)/gensrc/_the_props.d
+
+ifeq ($(PROPS_ARE_CREATED),yes)
+        # Setup the rules to build a dist/bootstrap/lib/javac.jar, ie a smaller intermediate javac
+        # that can be compiled with an old javac. The intermediate javac is then used
+        # to compile javac again and to build the complete new jdk.
+        $(eval $(call SetupJavaCompilation,BUILD_BOOTSTRAP_LANGTOOLS,\
+		SETUP:=BOOT_JAVAC,\
+		SRC:=$(LANGTOOLS_TOPDIR)/src/share/classes $(LANGTOOLS_OUTPUTDIR)/gensrc,\
+		EXCLUDES:=com/sun/tools/javac/nio,\
+		BIN:=$(LANGTOOLS_OUTPUTDIR)/btclasses/bootstrap))
+
+        $(eval $(call SetupArchive,ARCHIVE_BOOTSTRAP_JAVAC,$(BUILD_BOOTSTRAP_LANGTOOLS),\
+		SRCS:=$(LANGTOOLS_OUTPUTDIR)/btclasses/bootstrap,\
+		JAR:=$(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javac.jar,\
+		JARMAIN:=com.sun.tools.javac.Main))
+
+        $(eval $(call SetupArchive,ARCHIVE_BOOTSTRAP_JAVAH,$(BUILD_BOOTSTRAP_LANGTOOLS),\
+		SRCS:=$(LANGTOOLS_OUTPUTDIR)/btclasses/bootstrap,\
+		JAR:=$(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javah.jar,\
+		JARMAIN:=com.sun.tools.javah.Main))
+
+        $(eval $(call SetupArchive,ARCHIVE_BOOTSTRAP_JAVAP,$(BUILD_BOOTSTRAP_LANGTOOLS),\
+		SRCS:=$(LANGTOOLS_OUTPUTDIR)/btclasses/bootstrap,\
+		JAR:=$(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javap.jar,\
+		JARMAIN:=com.sun.tools.javap.Main))
+
+        $(eval $(call SetupArchive,ARCHIVE_BOOTSTRAP_JAVADOC,$(BUILD_BOOTSTRAP_LANGTOOLS),\
+		SRCS:=$(LANGTOOLS_OUTPUTDIR)/btclasses/bootstrap,\
+		JAR:=$(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javadoc.jar,\
+		JARMAIN:=com.sun.tools.javadoc.Main))
+
+        # GenStubs is used to bootstrap any dependencies from javac to the new JDK that is not 
+        # yet built. It is currently not needed but might be again in the future. The following
+        # exercises the functionality to verify that it works.
+        TOOL_GENSTUBS_CMD=$(JAVA) \
+             "-Xbootclasspath/p:$(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javac.jar" \
+             -cp "$(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javac.jar$(PATH_SEP)$(LANGTOOLS_OUTPUTDIR)/btclasses" \
+             genstubs.GenStubs
+        # We fetch source from the JDK...
+        JDKS=$(JDK_TOPDIR)/src/share/classes
+        # Build the list of classes to generate stubs from. java/util/Objects.java isn't
+        # currently needed, but is used as a demo for now.
+	 STUBSOURCES:=$(shell $(FIND) $(JDKS) -name "*.java" | $(GREP) \
+		    -e "$(JDKS)/java/util/Objects.java")
+        # Rewrite the file names into class names because the GenStubs tool require this.
+        STUBCLASSES:=$(subst /,.,$(patsubst $(JDKS)/%.java,%,$(STUBSOURCES)))
+
+        # Now setup the build recipe for genstubs.
+        $(LANGTOOLS_OUTPUTDIR)/genstubs/_the_stubs.d : $(STUBSOURCES) $(BUILD_TOOLS) \
+				$(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javac.jar \
+				$(LANGTOOLS_OUTPUTDIR)/gensrc/_the_props.d
+	       	mkdir -p $(@D)
+		mkdir -p $(LANGTOOLS_OUTPUTDIR)/tmpstubs
+	       	echo Generating stubs from JDK sources.
+	       	($(TOOL_GENSTUBS_CMD) -s $(LANGTOOLS_OUTPUTDIR)/tmpstubs -sourcepath $(JDKS) $(STUBCLASSES) && echo STUBS_ARE_CREATED=yes > $@)
+		if $(DIFF) -x "_the*" -rq $(LANGTOOLS_OUTPUTDIR)/tmpstubs $(LANGTOOLS_OUTPUTDIR)/genstubs > /dev/null 2>&1; then \
+			echo No changes in the stubs!; \
+			rm -rf $(LANGTOOLS_OUTPUTDIR)/tmpstubs; \
+		else \
+			echo Changes in stubs detected!; \
+			rm -rf $(@D); \
+			mv $(LANGTOOLS_OUTPUTDIR)/tmpstubs $(@D); \
+		fi
+		echo STUBS_ARE_CREATED=yes > $@
+
+        # Trigger a generation of the genstubs java source code and a restart
+        # of the makefile to make sure that the following build setup use the 
+        # newly created java files.
+        -include $(LANGTOOLS_OUTPUTDIR)/genstubs/_the_stubs.d
+
+	ifeq ($(STUBS_ARE_CREATED),yes)
+                # Setup a compiler configuration using the intermediate javac in dist/bootstrap/lib/javac.jar
+                # that generates code for the new jdk that is being built.
+                # The code compiled by this compiler setup, cannot necessarily be run with the bootstrap jvm.
+                $(eval $(call SetupJavaCompiler,GENERATE_NEWBYTECODE,\
+                  JVM:=$(JAVA),\
+                  JAVAC:="-Xbootclasspath/p:$(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javac.jar" \
+			 -jar $(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javac.jar,\
+                  FLAGS:=-Xprefer:source -XDignore.symbol.file=true,\
+                  SERVER_DIR:=$(JAVAC_SERVERS),\
+                  SERVER_JVM:=$(SERVER_JAVA),\
+                  MODE:=$(JAVAC_USE_MODE),\
+		  USE_DEPS:=$(JAVAC_USE_DEPS)))
+
+                # javax.tools.JavaCompilerTool isn't really a suffix but this gets the file copied.
+		RESOURCE_SUFFIXES:=.gif .xml .css javax.tools.JavaCompilerTool
+
+                $(eval $(call SetupJavaCompilation,BUILD_FULL_JAVAC,\
+			SETUP:=GENERATE_NEWBYTECODE,\
+			SRC:=$(LANGTOOLS_TOPDIR)/src/share/classes $(LANGTOOLS_OUTPUTDIR)/gensrc \
+			     $(LANGTOOLS_OUTPUTDIR)/genstubs,\
+			EXCLUDES:=java/util java/io java/nio,\
+			COPY:=$(RESOURCE_SUFFIXES),\
+			BIN:=$(LANGTOOLS_OUTPUTDIR)/classes))
+
+                $(eval $(call SetupArchive,ARCHIVE_FULL_JAVAC,$(BUILD_FULL_JAVAC),\
+			SETUP:=GENERATE_NEWBYTECODE,\
+			SRCS:=$(LANGTOOLS_OUTPUTDIR)/classes,\
+			SUFFIXES:=.class $(RESOURCE_SUFFIXES),\
+			JAR:=$(LANGTOOLS_OUTPUTDIR)/dist/lib/classes.jar,\
+			HEADERS:=$(LANGTOOLS_OUTPUTDIR)/gensrc_headers))
+
+                $(eval $(call SetupZipArchive,ZIP_FULL_JAVAC_SOURCE,\
+			SRC:=$(LANGTOOLS_TOPDIR)/src/share/classes $(LANGTOOLS_OUTPUTDIR)/gensrc,\
+			ZIP:=$(LANGTOOLS_OUTPUTDIR)/dist/lib/src.zip))
+
+                all: 		$(LANGTOOLS_OUTPUTDIR)/dist/lib/classes.jar \
+				$(LANGTOOLS_OUTPUTDIR)/dist/lib/src.zip \
+	                 	$(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javac.jar \
+				$(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javah.jar \
+				$(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javap.jar \
+				$(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javadoc.jar
+
+
+        endif
+endif
--- a/langtools/src/share/classes/com/sun/tools/javac/code/Flags.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/javac/code/Flags.java	Wed Jul 05 18:07:57 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -221,7 +221,7 @@
 
     /** Flag that marks a hypothetical method that need not really be
      *  generated in the binary, but is present in the symbol table to
-     *  simplify checking for erasure clashes.
+     *  simplify checking for erasure clashes - also used for 292 poly sig methods.
      */
     public static final long HYPOTHETICAL   = 1L<<37;
 
@@ -236,26 +236,20 @@
     public static final long UNION = 1L<<39;
 
     /**
-     * Flag that marks a signature-polymorphic invoke method.
-     * (These occur inside java.lang.invoke.MethodHandle.)
-     */
-    public static final long POLYMORPHIC_SIGNATURE = 1L<<40;
-
-    /**
      * Flag that marks a special kind of bridge methods (the ones that
      * come from restricted supertype bounds)
      */
-    public static final long OVERRIDE_BRIDGE = 1L<<41;
+    public static final long OVERRIDE_BRIDGE = 1L<<40;
 
     /**
      * Flag that marks an 'effectively final' local variable
      */
-    public static final long EFFECTIVELY_FINAL = 1L<<42;
+    public static final long EFFECTIVELY_FINAL = 1L<<41;
 
     /**
      * Flag that marks non-override equivalent methods with the same signature
      */
-    public static final long CLASH = 1L<<43;
+    public static final long CLASH = 1L<<42;
 
     /** Modifier masks.
      */
--- a/langtools/src/share/classes/com/sun/tools/javac/code/Symbol.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/javac/code/Symbol.java	Wed Jul 05 18:07:57 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -202,16 +202,6 @@
         return (flags() & INTERFACE) != 0;
     }
 
-    /** Recognize if this symbol was marked @PolymorphicSignature in the source. */
-    public boolean isPolymorphicSignatureGeneric() {
-        return (flags() & (POLYMORPHIC_SIGNATURE | HYPOTHETICAL)) == POLYMORPHIC_SIGNATURE;
-    }
-
-    /** Recognize if this symbol was split from a @PolymorphicSignature symbol in the source. */
-    public boolean isPolymorphicSignatureInstance() {
-        return (flags() & (POLYMORPHIC_SIGNATURE | HYPOTHETICAL)) == (POLYMORPHIC_SIGNATURE | HYPOTHETICAL);
-    }
-
     /** Is this symbol declared (directly or indirectly) local
      *  to a method or variable initializer?
      *  Also includes fields of inner classes which are in
@@ -1316,6 +1306,25 @@
                     getKind() == ElementKind.INSTANCE_INIT;
         }
 
+        /**
+         * A polymorphic signature method (JLS SE 7, 8.4.1) is a method that
+         * (i) is declared in the java.lang.invoke.MethodHandle class, (ii) takes
+         * a single variable arity parameter (iii) whose declared type is Object[],
+         * (iv) has a return type of Object and (v) is native.
+         */
+        public boolean isSignaturePolymorphic(Types types) {
+            List<Type> argtypes = type.getParameterTypes();
+            Type firstElemType = argtypes.nonEmpty() ?
+                    types.elemtype(argtypes.head) :
+                    null;
+            return owner == types.syms.methodHandleType.tsym &&
+                    argtypes.length() == 1 &&
+                    firstElemType != null &&
+                    types.isSameType(firstElemType, types.syms.objectType) &&
+                    types.isSameType(type.getReturnType(), types.syms.objectType) &&
+                    (flags() & NATIVE) != 0;
+        }
+
         public Attribute getDefaultValue() {
             return defaultValue;
         }
--- a/langtools/src/share/classes/com/sun/tools/javac/code/Symtab.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/javac/code/Symtab.java	Wed Jul 05 18:07:57 2017 +0200
@@ -127,7 +127,6 @@
     public final Type serializableType;
     public final Type methodHandleType;
     public final Type nativeHeaderType;
-    public final Type polymorphicSignatureType;
     public final Type throwableType;
     public final Type errorType;
     public final Type interruptedExceptionType;
@@ -436,7 +435,6 @@
         throwableType = enterClass("java.lang.Throwable");
         serializableType = enterClass("java.io.Serializable");
         methodHandleType = enterClass("java.lang.invoke.MethodHandle");
-        polymorphicSignatureType = enterClass("java.lang.invoke.MethodHandle$PolymorphicSignature");
         errorType = enterClass("java.lang.Error");
         illegalArgumentExceptionType = enterClass("java.lang.IllegalArgumentException");
         interruptedExceptionType = enterClass("java.lang.InterruptedException");
@@ -483,7 +481,6 @@
         synthesizeEmptyInterfaceIfMissing(autoCloseableType);
         synthesizeEmptyInterfaceIfMissing(cloneableType);
         synthesizeEmptyInterfaceIfMissing(serializableType);
-        synthesizeEmptyInterfaceIfMissing(polymorphicSignatureType);
         synthesizeBoxTypeIfMissing(doubleType);
         synthesizeBoxTypeIfMissing(floatType);
         synthesizeBoxTypeIfMissing(voidType);
--- a/langtools/src/share/classes/com/sun/tools/javac/comp/Attr.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Attr.java	Wed Jul 05 18:07:57 2017 +0200
@@ -42,6 +42,7 @@
 import com.sun.tools.javac.code.Symbol.*;
 import com.sun.tools.javac.tree.JCTree.*;
 import com.sun.tools.javac.code.Type.*;
+import com.sun.tools.javac.comp.Check.CheckContext;
 
 import com.sun.source.tree.IdentifierTree;
 import com.sun.source.tree.MemberSelectTree;
@@ -132,6 +133,11 @@
         findDiamonds = options.get("findDiamond") != null &&
                  source.allowDiamond();
         useBeforeDeclarationWarning = options.isSet("useBeforeDeclarationWarning");
+
+        statInfo = new ResultInfo(NIL, Type.noType);
+        varInfo = new ResultInfo(VAR, Type.noType);
+        unknownExprInfo = new ResultInfo(VAL, Type.noType);
+        unknownTypeInfo = new ResultInfo(TYP, Type.noType);
     }
 
     /** Switch: relax some constraints for retrofit mode.
@@ -204,7 +210,7 @@
     Type check(JCTree tree, Type owntype, int ownkind, ResultInfo resultInfo) {
         if (owntype.tag != ERROR && resultInfo.pt.tag != METHOD && resultInfo.pt.tag != FORALL) {
             if ((ownkind & ~resultInfo.pkind) == 0) {
-                owntype = chk.checkType(tree.pos(), owntype, resultInfo.pt, errKey);
+                owntype = resultInfo.check(tree, owntype);
             } else {
                 log.error(tree.pos(), "unexpected.type",
                           kindNames(resultInfo.pkind),
@@ -394,20 +400,30 @@
         }
     }
 
-    static class ResultInfo {
+    class ResultInfo {
         int pkind;
         Type pt;
+        CheckContext checkContext;
 
         ResultInfo(int pkind, Type pt) {
+            this(pkind, pt, chk.basicHandler);
+        }
+
+        protected ResultInfo(int pkind, Type pt, CheckContext checkContext) {
             this.pkind = pkind;
             this.pt = pt;
+            this.checkContext = checkContext;
+        }
+
+        protected Type check(DiagnosticPosition pos, Type found) {
+            return chk.checkType(pos, found, pt, checkContext);
         }
     }
 
-    private final ResultInfo statInfo = new ResultInfo(NIL, Type.noType);
-    private final ResultInfo varInfo = new ResultInfo(VAR, Type.noType);
-    private final ResultInfo unknownExprInfo = new ResultInfo(VAL, Type.noType);
-    private final ResultInfo unknownTypeInfo = new ResultInfo(TYP, Type.noType);
+    private final ResultInfo statInfo;
+    private final ResultInfo varInfo;
+    private final ResultInfo unknownExprInfo;
+    private final ResultInfo unknownTypeInfo;
 
     Type pt() {
         return resultInfo.pt;
@@ -429,10 +445,6 @@
      */
     ResultInfo resultInfo;
 
-    /** Visitor argument: the error key to be generated when a type error occurs
-     */
-    String errKey;
-
     /** Visitor result: the computed type.
      */
     Type result;
@@ -445,17 +457,11 @@
      *  @param resultInfo   The result info visitor argument.
      */
     private Type attribTree(JCTree tree, Env<AttrContext> env, ResultInfo resultInfo) {
-        return attribTree(tree, env, resultInfo, "incompatible.types");
-    }
-
-    private Type attribTree(JCTree tree, Env<AttrContext> env, ResultInfo resultInfo, String errKey) {
         Env<AttrContext> prevEnv = this.env;
         ResultInfo prevResult = this.resultInfo;
-        String prevErrKey = this.errKey;
         try {
             this.env = env;
             this.resultInfo = resultInfo;
-            this.errKey = errKey;
             tree.accept(this);
             if (tree == breakTree)
                 throw new BreakAttr(env);
@@ -466,18 +472,13 @@
         } finally {
             this.env = prevEnv;
             this.resultInfo = prevResult;
-            this.errKey = prevErrKey;
         }
     }
 
     /** Derived visitor method: attribute an expression tree.
      */
     public Type attribExpr(JCTree tree, Env<AttrContext> env, Type pt) {
-        return attribExpr(tree, env, pt, "incompatible.types");
-    }
-
-    public Type attribExpr(JCTree tree, Env<AttrContext> env, Type pt, String key) {
-        return attribTree(tree, env, new ResultInfo(VAL, pt.tag != ERROR ? pt : Type.noType), key);
+        return attribTree(tree, env, new ResultInfo(VAL, pt.tag != ERROR ? pt : Type.noType));
     }
 
     /** Derived visitor method: attribute an expression tree with
@@ -1121,9 +1122,16 @@
             localEnv;
         // Attribute resource declarations
         for (JCTree resource : tree.resources) {
+            CheckContext twrContext = new Check.NestedCheckContext(resultInfo.checkContext) {
+                @Override
+                public void report(DiagnosticPosition pos, Type found, Type req, JCDiagnostic details) {
+                    chk.basicHandler.report(pos, found, req, diags.fragment("try.not.applicable.to.type", found));
+                }
+            };
+            ResultInfo twrResult = new ResultInfo(VAL, syms.autoCloseableType, twrContext);
             if (resource.hasTag(VARDEF)) {
                 attribStat(resource, tryEnv);
-                chk.checkType(resource, resource.type, syms.autoCloseableType, "try.not.applicable.to.type");
+                twrResult.check(resource, resource.type);
 
                 //check that resource type cannot throw InterruptedException
                 checkAutoCloseable(resource.pos(), localEnv, resource.type);
@@ -1131,7 +1139,7 @@
                 VarSymbol var = (VarSymbol)TreeInfo.symbolFor(resource);
                 var.setData(ElementKind.RESOURCE_VARIABLE);
             } else {
-                attribExpr(resource, tryEnv, syms.autoCloseableType, "try.not.applicable.to.type");
+                attribTree(resource, tryEnv, twrResult);
             }
         }
         // Attribute body
@@ -1846,7 +1854,7 @@
     }
 
     Type attribDiamond(Env<AttrContext> env,
-                        JCNewClass tree,
+                        final JCNewClass tree,
                         Type clazztype,
                         List<Type> argtypes,
                         List<Type> typeargtypes) {
@@ -1886,25 +1894,17 @@
             clazztype = syms.errType;
         }
 
-        if (clazztype.tag == FORALL && !pt().isErroneous()) {
-            //if the resolved constructor's return type has some uninferred
-            //type-variables, infer them using the expected type and declared
-            //bounds (JLS 15.12.2.8).
+        if (clazztype.tag == FORALL && !resultInfo.pt.isErroneous()) {
             try {
-                clazztype = infer.instantiateExpr((ForAll) clazztype,
-                        pt().tag == NONE ? syms.objectType : pt(),
-                        Warner.noWarnings);
+                clazztype = resultInfo.checkContext.rawInstantiatePoly((ForAll)clazztype, pt(), Warner.noWarnings);
             } catch (Infer.InferenceException ex) {
                 //an error occurred while inferring uninstantiated type-variables
-                log.error(tree.clazz.pos(),
-                        "cant.apply.diamond.1",
-                        diags.fragment("diamond", clazztype.tsym),
-                        ex.diagnostic);
+                resultInfo.checkContext.report(tree.clazz.pos(), clazztype, resultInfo.pt,
+                        diags.fragment("cant.apply.diamond.1", diags.fragment("diamond", clazztype.tsym), ex.diagnostic));
             }
         }
-        return chk.checkClassType(tree.clazz.pos(),
-                clazztype,
-                true);
+
+        return chk.checkClassType(tree.clazz.pos(), clazztype, true);
     }
 
     /** Make an attributed null check tree.
@@ -2106,6 +2106,7 @@
         if (exprtype.constValue() != null)
             owntype = cfolder.coerce(exprtype, owntype);
         result = check(tree, capture(owntype), VAL, resultInfo);
+        chk.checkRedundantCast(localEnv, tree);
     }
 
     public void visitTypeTest(JCInstanceOf tree) {
--- a/langtools/src/share/classes/com/sun/tools/javac/comp/Check.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Check.java	Wed Jul 05 18:07:57 2017 +0200
@@ -269,23 +269,6 @@
         else return syms.errType;
     }
 
-    /** Report a type error.
-     *  @param pos        Position to be used for error reporting.
-     *  @param problem    A string describing the error.
-     *  @param found      The type that was found.
-     *  @param req        The type that was required.
-     */
-    Type typeError(DiagnosticPosition pos, Object problem, Type found, Type req) {
-        log.error(pos, "prob.found.req",
-                  problem, found, req);
-        return types.createErrorType(found);
-    }
-
-    Type typeError(DiagnosticPosition pos, String problem, Type found, Type req, Object explanation) {
-        log.error(pos, "prob.found.req.1", problem, found, req, explanation);
-        return types.createErrorType(found);
-    }
-
     /** Report an error that wrong type tag was found.
      *  @param pos        Position to be used for error reporting.
      *  @param required   An internationalized string describing the type tag
@@ -430,6 +413,86 @@
  * Type Checking
  **************************************************************************/
 
+    /**
+     * A check context is an object that can be used to perform compatibility
+     * checks - depending on the check context, meaning of 'compatibility' might
+     * vary significantly.
+     */
+    interface CheckContext {
+        /**
+         * Is type 'found' compatible with type 'req' in given context
+         */
+        boolean compatible(Type found, Type req, Warner warn);
+        /**
+         * Instantiate a ForAll type against a given target type 'req' in given context
+         */
+        Type rawInstantiatePoly(ForAll found, Type req, Warner warn);
+        /**
+         * Report a check error
+         */
+        void report(DiagnosticPosition pos, Type found, Type req, JCDiagnostic details);
+        /**
+         * Obtain a warner for this check context
+         */
+        public Warner checkWarner(DiagnosticPosition pos, Type found, Type req);
+    }
+
+    /**
+     * This class represent a check context that is nested within another check
+     * context - useful to check sub-expressions. The default behavior simply
+     * redirects all method calls to the enclosing check context leveraging
+     * the forwarding pattern.
+     */
+    static class NestedCheckContext implements CheckContext {
+        CheckContext enclosingContext;
+
+        NestedCheckContext(CheckContext enclosingContext) {
+            this.enclosingContext = enclosingContext;
+        }
+
+        public boolean compatible(Type found, Type req, Warner warn) {
+            return enclosingContext.compatible(found, req, warn);
+        }
+
+        public Type rawInstantiatePoly(ForAll found, Type req, Warner warn) {
+            return enclosingContext.rawInstantiatePoly(found, req, warn);
+        }
+
+        public void report(DiagnosticPosition pos, Type found, Type req, JCDiagnostic details) {
+            enclosingContext.report(pos, found, req, details);
+        }
+
+        public Warner checkWarner(DiagnosticPosition pos, Type found, Type req) {
+            return enclosingContext.checkWarner(pos, found, req);
+        }
+    }
+
+    /**
+     * Check context to be used when evaluating assignment/return statements
+     */
+    CheckContext basicHandler = new CheckContext() {
+        public void report(DiagnosticPosition pos, Type found, Type req, JCDiagnostic details) {
+            if (details == null) {
+                log.error(pos, "prob.found.req", found, req);
+            } else {
+                log.error(pos, "prob.found.req.1", details);
+            }
+        }
+        public boolean compatible(Type found, Type req, Warner warn) {
+            return types.isAssignable(found, req, warn);
+        }
+
+        public Type rawInstantiatePoly(ForAll found, Type req, Warner warn) {
+            if (req.tag == NONE)
+                req = found.qtype.tag <= VOID ? found.qtype : syms.objectType;
+            return infer.instantiateExpr(found, req, warn);
+        }
+
+        public Warner checkWarner(DiagnosticPosition pos, Type found, Type req) {
+            return convertWarner(pos, found, req);
+        }
+    };
+
     /** Check that a given type is assignable to a given proto-type.
      *  If it is, return the type, otherwise return errType.
      *  @param pos        Position to be used for error reporting.
@@ -437,64 +500,54 @@
      *  @param req        The type that was required.
      */
     Type checkType(DiagnosticPosition pos, Type found, Type req) {
-        return checkType(pos, found, req, "incompatible.types");
+        return checkType(pos, found, req, basicHandler);
     }
 
-    Type checkType(DiagnosticPosition pos, Type found, Type req, String errKey) {
+    Type checkType(final DiagnosticPosition pos, Type found, Type req, CheckContext checkContext) {
         if (req.tag == ERROR)
             return req;
-        if (found.tag == FORALL)
-            return instantiatePoly(pos, (ForAll)found, req, convertWarner(pos, found, req));
+        if (found.tag == FORALL) {
+            ForAll fa = (ForAll)found;
+            Type owntype = instantiatePoly(pos, checkContext, fa, req, checkContext.checkWarner(pos, found, req));
+            return checkType(pos, owntype, req, checkContext);
+        }
         if (req.tag == NONE)
             return found;
-        if (types.isAssignable(found, req, convertWarner(pos, found, req)))
+        if (checkContext.compatible(found, req, checkContext.checkWarner(pos, found, req))) {
             return found;
-        if (found.tag <= DOUBLE && req.tag <= DOUBLE)
-            return typeError(pos, diags.fragment("possible.loss.of.precision"), found, req);
-        if (found.isSuperBound()) {
-            log.error(pos, "assignment.from.super-bound", found);
+        } else {
+            if (found.tag <= DOUBLE && req.tag <= DOUBLE) {
+                checkContext.report(pos, found, req, diags.fragment("possible.loss.of.precision"));
+                return types.createErrorType(found);
+            }
+            checkContext.report(pos, found, req, null);
             return types.createErrorType(found);
         }
-        if (req.isExtendsBound()) {
-            log.error(pos, "assignment.to.extends-bound", req);
-            return types.createErrorType(found);
-        }
-        return typeError(pos, diags.fragment(errKey), found, req);
     }
 
     /** Instantiate polymorphic type to some prototype, unless
      *  prototype is `anyPoly' in which case polymorphic type
      *  is returned unchanged.
      */
-    Type instantiatePoly(DiagnosticPosition pos, ForAll t, Type pt, Warner warn) throws Infer.NoInstanceException {
-        if (pt == Infer.anyPoly && complexInference) {
-            return t;
-        } else if (pt == Infer.anyPoly || pt.tag == NONE) {
-            Type newpt = t.qtype.tag <= VOID ? t.qtype : syms.objectType;
-            return instantiatePoly(pos, t, newpt, warn);
-        } else if (pt.tag == ERROR) {
-            return pt;
-        } else {
-            try {
-                return infer.instantiateExpr(t, pt, warn);
-            } catch (Infer.NoInstanceException ex) {
+    Type instantiatePoly(DiagnosticPosition pos, CheckContext checkContext, ForAll t, Type pt, Warner warn) throws Infer.NoInstanceException {
+        try {
+            return checkContext.rawInstantiatePoly(t, pt, warn);
+        } catch (final Infer.NoInstanceException ex) {
+            JCDiagnostic d = ex.getDiagnostic();
+            if (d != null) {
                 if (ex.isAmbiguous) {
-                    JCDiagnostic d = ex.getDiagnostic();
-                    log.error(pos,
-                              "undetermined.type" + (d!=null ? ".1" : ""),
-                              t, d);
-                    return types.createErrorType(pt);
-                } else {
-                    JCDiagnostic d = ex.getDiagnostic();
-                    return typeError(pos,
-                                     diags.fragment("incompatible.types" + (d!=null ? ".1" : ""), d),
-                                     t, pt);
+                    d = diags.fragment("undetermined.type", t, d);
                 }
-            } catch (Infer.InvalidInstanceException ex) {
-                JCDiagnostic d = ex.getDiagnostic();
-                log.error(pos, "invalid.inferred.types", t.tvars, d);
-                return types.createErrorType(pt);
             }
+            checkContext.report(pos, t, pt, d);
+            return types.createErrorType(pt);
+        } catch (Infer.InvalidInstanceException ex) {
+            JCDiagnostic d = ex.getDiagnostic();
+            if (d != null) {
+                d = diags.fragment("invalid.inferred.types", t.tvars, d);
+            }
+            checkContext.report(pos, t, pt, d);
+            return types.createErrorType(pt);
         }
     }
 
@@ -505,17 +558,48 @@
      *  @param req        The target type of the cast.
      */
     Type checkCastable(DiagnosticPosition pos, Type found, Type req) {
+        return checkCastable(pos, found, req, basicHandler);
+    }
+    Type checkCastable(DiagnosticPosition pos, Type found, Type req, CheckContext checkContext) {
         if (found.tag == FORALL) {
-            instantiatePoly(pos, (ForAll) found, req, castWarner(pos, found, req));
+            instantiatePoly(pos, basicHandler, (ForAll) found, req, castWarner(pos, found, req));
             return req;
         } else if (types.isCastable(found, req, castWarner(pos, found, req))) {
             return req;
         } else {
-            return typeError(pos,
-                             diags.fragment("inconvertible.types"),
-                             found, req);
+            checkContext.report(pos, found, req, diags.fragment("inconvertible.types", found, req));
+            return types.createErrorType(found);
+        }
+    }
+
+    /** Check for redundant casts (i.e. where source type is a subtype of target type)
+     * The problem should only be reported for non-292 cast
+     */
+    public void checkRedundantCast(Env<AttrContext> env, JCTypeCast tree) {
+        if (!tree.type.isErroneous() &&
+            (env.info.lint == null || env.info.lint.isEnabled(Lint.LintCategory.CAST))
+            && types.isSameType(tree.expr.type, tree.clazz.type)
+            && !is292targetTypeCast(tree)) {
+            log.warning(Lint.LintCategory.CAST,
+                    tree.pos(), "redundant.cast", tree.expr.type);
         }
     }
+    //where
+            private boolean is292targetTypeCast(JCTypeCast tree) {
+                boolean is292targetTypeCast = false;
+                JCExpression expr = TreeInfo.skipParens(tree.expr);
+                if (expr.hasTag(APPLY)) {
+                    JCMethodInvocation apply = (JCMethodInvocation)expr;
+                    Symbol sym = TreeInfo.symbol(apply.meth);
+                    is292targetTypeCast = sym != null &&
+                        sym.kind == MTH &&
+                        (sym.flags() & HYPOTHETICAL) != 0;
+                }
+                return is292targetTypeCast;
+            }
+
+
+
 //where
         /** Is type a type variable, or a (possibly multi-dimensional) array of
          *  type variables?
@@ -838,14 +922,6 @@
                 && types.isSubtype(actual, types.supertype(formal))
                 && types.isSubtypeUnchecked(actual, types.interfaces(formal), warn))
                 return;
-
-            if (false) {
-                // TODO: make assertConvertible work
-                typeError(tree.pos(), diags.fragment("incompatible.types"), actual, formal);
-                throw new AssertionError("Tree: " + tree
-                                         + " actual:" + actual
-                                         + " formal: " + formal);
-            }
         }
 
     /**
--- a/langtools/src/share/classes/com/sun/tools/javac/comp/Flow.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Flow.java	Wed Jul 05 18:07:57 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -28,8 +28,6 @@
 package com.sun.tools.javac.comp;
 
 import java.util.HashMap;
-import java.util.Map;
-import java.util.LinkedHashMap;
 
 import com.sun.tools.javac.code.*;
 import com.sun.tools.javac.tree.*;
@@ -179,7 +177,7 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-public class Flow extends TreeScanner {
+public class Flow {
     protected static final Context.Key<Flow> flowKey =
         new Context.Key<Flow>();
 
@@ -202,6 +200,11 @@
         return instance;
     }
 
+    public void analyzeTree(Env<AttrContext> env, TreeMaker make) {
+        new FlowAnalyzer().analyzeTree(env, make);
+        new AssignAnalyzer().analyzeTree(env, make);
+    }
+
     protected Flow(Context context) {
         context.put(flowKey, this);
         names = Names.instance(context);
@@ -216,1268 +219,1572 @@
         allowImprovedCatchAnalysis = source.allowImprovedCatchAnalysis();
     }
 
-    /** A flag that indicates whether the last statement could
-     *  complete normally.
-     */
-    private boolean alive;
-
-    /** The set of definitely assigned variables.
-     */
-    Bits inits;
-
-    /** The set of definitely unassigned variables.
-     */
-    Bits uninits;
-
-    HashMap<Symbol, List<Type>> preciseRethrowTypes;
-
-    /** The set of variables that are definitely unassigned everywhere
-     *  in current try block. This variable is maintained lazily; it is
-     *  updated only when something gets removed from uninits,
-     *  typically by being assigned in reachable code.  To obtain the
-     *  correct set of variables which are definitely unassigned
-     *  anywhere in current try block, intersect uninitsTry and
-     *  uninits.
-     */
-    Bits uninitsTry;
-
-    /** When analyzing a condition, inits and uninits are null.
-     *  Instead we have:
-     */
-    Bits initsWhenTrue;
-    Bits initsWhenFalse;
-    Bits uninitsWhenTrue;
-    Bits uninitsWhenFalse;
-
-    /** A mapping from addresses to variable symbols.
-     */
-    VarSymbol[] vars;
-
-    /** The current class being defined.
-     */
-    JCClassDecl classDef;
-
-    /** The first variable sequence number in this class definition.
+    /**
+     * Base visitor class for all visitors implementing dataflow analysis logic.
+     * This class define the shared logic for handling jumps (break/continue statements).
      */
-    int firstadr;
+    static abstract class BaseAnalyzer<P extends BaseAnalyzer.PendingExit> extends TreeScanner {
 
-    /** The next available variable sequence number.
-     */
-    int nextadr;
+        enum JumpKind {
+            BREAK(JCTree.Tag.BREAK) {
+                @Override
+                JCTree getTarget(JCTree tree) {
+                    return ((JCBreak)tree).target;
+                }
+            },
+            CONTINUE(JCTree.Tag.CONTINUE) {
+                @Override
+                JCTree getTarget(JCTree tree) {
+                    return ((JCContinue)tree).target;
+                }
+            };
 
-    /** The list of possibly thrown declarable exceptions.
-     */
-    List<Type> thrown;
+            JCTree.Tag treeTag;
 
-    /** The list of exceptions that are either caught or declared to be
-     *  thrown.
-     */
-    List<Type> caught;
+            private JumpKind(Tag treeTag) {
+                this.treeTag = treeTag;
+            }
+
+            abstract JCTree getTarget(JCTree tree);
+        }
 
-    /** The list of unreferenced automatic resources.
-     */
-    Scope unrefdResources;
+        /** The currently pending exits that go from current inner blocks
+         *  to an enclosing block, in source order.
+         */
+        ListBuffer<P> pendingExits;
 
-    /** Set when processing a loop body the second time for DU analysis. */
-    boolean loopPassTwo = false;
+        /** A pending exit.  These are the statements return, break, and
+         *  continue.  In addition, exception-throwing expressions or
+         *  statements are put here when not known to be caught.  This
+         *  will typically result in an error unless it is within a
+         *  try-finally whose finally block cannot complete normally.
+         */
+        abstract static class PendingExit {
+            JCTree tree;
 
-    /*-------------------- Environments ----------------------*/
+            PendingExit(JCTree tree) {
+                this.tree = tree;
+            }
+
+            abstract void resolveJump();
+        }
+
+        abstract void markDead();
+
+        /** Record an outward transfer of control. */
+        void recordExit(JCTree tree, P pe) {
+            pendingExits.append(pe);
+            markDead();
+        }
 
-    /** A pending exit.  These are the statements return, break, and
-     *  continue.  In addition, exception-throwing expressions or
-     *  statements are put here when not known to be caught.  This
-     *  will typically result in an error unless it is within a
-     *  try-finally whose finally block cannot complete normally.
-     */
-    static class PendingExit {
-        JCTree tree;
-        Bits inits;
-        Bits uninits;
-        Type thrown;
-        PendingExit(JCTree tree, Bits inits, Bits uninits) {
-            this.tree = tree;
-            this.inits = inits.dup();
-            this.uninits = uninits.dup();
+        /** Resolve all jumps of this statement. */
+        private boolean resolveJump(JCTree tree,
+                        ListBuffer<P> oldPendingExits,
+                        JumpKind jk) {
+            boolean resolved = false;
+            List<P> exits = pendingExits.toList();
+            pendingExits = oldPendingExits;
+            for (; exits.nonEmpty(); exits = exits.tail) {
+                P exit = exits.head;
+                if (exit.tree.hasTag(jk.treeTag) &&
+                        jk.getTarget(exit.tree) == tree) {
+                    exit.resolveJump();
+                    resolved = true;
+                } else {
+                    pendingExits.append(exit);
+                }
+            }
+            return resolved;
         }
-        PendingExit(JCTree tree, Type thrown) {
-            this.tree = tree;
-            this.thrown = thrown;
+
+        /** Resolve all breaks of this statement. */
+        boolean resolveContinues(JCTree tree) {
+            return resolveJump(tree, new ListBuffer<P>(), JumpKind.CONTINUE);
+        }
+
+        /** Resolve all continues of this statement. */
+        boolean resolveBreaks(JCTree tree, ListBuffer<P> oldPendingExits) {
+            return resolveJump(tree, oldPendingExits, JumpKind.BREAK);
         }
     }
 
-    /** The currently pending exits that go from current inner blocks
-     *  to an enclosing block, in source order.
-     */
-    ListBuffer<PendingExit> pendingExits;
-
-    /*-------------------- Exceptions ----------------------*/
-
-    /** Complain that pending exceptions are not caught.
+    /**
+     * This pass implements the first two steps of the dataflow analysis:
+     * (i) liveness analysis checks that every statement is reachable and (ii)
+     *  exception analysis to ensure that every checked exception that is
+     *  thrown is declared or caught.
      */
-    void errorUncaught() {
-        for (PendingExit exit = pendingExits.next();
-             exit != null;
-             exit = pendingExits.next()) {
-            if (classDef != null &&
-                classDef.pos == exit.tree.pos) {
-                log.error(exit.tree.pos(),
-                        "unreported.exception.default.constructor",
-                        exit.thrown);
-            } else if (exit.tree.hasTag(VARDEF) &&
-                    ((JCVariableDecl)exit.tree).sym.isResourceVariable()) {
-                log.error(exit.tree.pos(),
-                        "unreported.exception.implicit.close",
-                        exit.thrown,
-                        ((JCVariableDecl)exit.tree).sym.name);
-            } else {
-                log.error(exit.tree.pos(),
-                        "unreported.exception.need.to.catch.or.throw",
-                        exit.thrown);
+    class FlowAnalyzer extends BaseAnalyzer<FlowAnalyzer.FlowPendingExit> {
+
+        /** A flag that indicates whether the last statement could
+         *  complete normally.
+         */
+        private boolean alive;
+
+        HashMap<Symbol, List<Type>> preciseRethrowTypes;
+
+        /** The current class being defined.
+         */
+        JCClassDecl classDef;
+
+        /** The list of possibly thrown declarable exceptions.
+         */
+        List<Type> thrown;
+
+        /** The list of exceptions that are either caught or declared to be
+         *  thrown.
+         */
+        List<Type> caught;
+
+        class FlowPendingExit extends BaseAnalyzer.PendingExit {
+
+            Type thrown;
+
+            FlowPendingExit(JCTree tree, Type thrown) {
+                super(tree);
+                this.thrown = thrown;
+            }
+
+            void resolveJump() { /*do nothing*/ }
+        }
+
+        @Override
+        void markDead() {
+            alive = false;
+        }
+
+        /*-------------------- Exceptions ----------------------*/
+
+        /** Complain that pending exceptions are not caught.
+         */
+        void errorUncaught() {
+            for (FlowPendingExit exit = pendingExits.next();
+                 exit != null;
+                 exit = pendingExits.next()) {
+                if (classDef != null &&
+                    classDef.pos == exit.tree.pos) {
+                    log.error(exit.tree.pos(),
+                            "unreported.exception.default.constructor",
+                            exit.thrown);
+                } else if (exit.tree.hasTag(VARDEF) &&
+                        ((JCVariableDecl)exit.tree).sym.isResourceVariable()) {
+                    log.error(exit.tree.pos(),
+                            "unreported.exception.implicit.close",
+                            exit.thrown,
+                            ((JCVariableDecl)exit.tree).sym.name);
+                } else {
+                    log.error(exit.tree.pos(),
+                            "unreported.exception.need.to.catch.or.throw",
+                            exit.thrown);
+                }
+            }
+        }
+
+        /** Record that exception is potentially thrown and check that it
+         *  is caught.
+         */
+        void markThrown(JCTree tree, Type exc) {
+            if (!chk.isUnchecked(tree.pos(), exc)) {
+                if (!chk.isHandled(exc, caught))
+                    pendingExits.append(new FlowPendingExit(tree, exc));
+                    thrown = chk.incl(exc, thrown);
+            }
+        }
+
+    /*************************************************************************
+     * Visitor methods for statements and definitions
+     *************************************************************************/
+
+        /** Analyze a definition.
+         */
+        void scanDef(JCTree tree) {
+            scanStat(tree);
+            if (tree != null && tree.hasTag(JCTree.Tag.BLOCK) && !alive) {
+                log.error(tree.pos(),
+                          "initializer.must.be.able.to.complete.normally");
+            }
+        }
+
+        /** Analyze a statement. Check that statement is reachable.
+         */
+        void scanStat(JCTree tree) {
+            if (!alive && tree != null) {
+                log.error(tree.pos(), "unreachable.stmt");
+                if (!tree.hasTag(SKIP)) alive = true;
+            }
+            scan(tree);
+        }
+
+        /** Analyze list of statements.
+         */
+        void scanStats(List<? extends JCStatement> trees) {
+            if (trees != null)
+                for (List<? extends JCStatement> l = trees; l.nonEmpty(); l = l.tail)
+                    scanStat(l.head);
+        }
+
+        /* ------------ Visitor methods for various sorts of trees -------------*/
+
+        public void visitClassDef(JCClassDecl tree) {
+            if (tree.sym == null) return;
+
+            JCClassDecl classDefPrev = classDef;
+            List<Type> thrownPrev = thrown;
+            List<Type> caughtPrev = caught;
+            boolean alivePrev = alive;
+            ListBuffer<FlowPendingExit> pendingExitsPrev = pendingExits;
+            Lint lintPrev = lint;
+
+            pendingExits = new ListBuffer<FlowPendingExit>();
+            if (tree.name != names.empty) {
+                caught = List.nil();
+            }
+            classDef = tree;
+            thrown = List.nil();
+            lint = lint.augment(tree.sym.attributes_field);
+
+            try {
+                // process all the static initializers
+                for (List<JCTree> l = tree.defs; l.nonEmpty(); l = l.tail) {
+                    if (!l.head.hasTag(METHODDEF) &&
+                        (TreeInfo.flags(l.head) & STATIC) != 0) {
+                        scanDef(l.head);
+                        errorUncaught();
+                    }
+                }
+
+                // add intersection of all thrown clauses of initial constructors
+                // to set of caught exceptions, unless class is anonymous.
+                if (tree.name != names.empty) {
+                    boolean firstConstructor = true;
+                    for (List<JCTree> l = tree.defs; l.nonEmpty(); l = l.tail) {
+                        if (TreeInfo.isInitialConstructor(l.head)) {
+                            List<Type> mthrown =
+                                ((JCMethodDecl) l.head).sym.type.getThrownTypes();
+                            if (firstConstructor) {
+                                caught = mthrown;
+                                firstConstructor = false;
+                            } else {
+                                caught = chk.intersect(mthrown, caught);
+                            }
+                        }
+                    }
+                }
+
+                // process all the instance initializers
+                for (List<JCTree> l = tree.defs; l.nonEmpty(); l = l.tail) {
+                    if (!l.head.hasTag(METHODDEF) &&
+                        (TreeInfo.flags(l.head) & STATIC) == 0) {
+                        scanDef(l.head);
+                        errorUncaught();
+                    }
+                }
+
+                // in an anonymous class, add the set of thrown exceptions to
+                // the throws clause of the synthetic constructor and propagate
+                // outwards.
+                // Changing the throws clause on the fly is okay here because
+                // the anonymous constructor can't be invoked anywhere else,
+                // and its type hasn't been cached.
+                if (tree.name == names.empty) {
+                    for (List<JCTree> l = tree.defs; l.nonEmpty(); l = l.tail) {
+                        if (TreeInfo.isInitialConstructor(l.head)) {
+                            JCMethodDecl mdef = (JCMethodDecl)l.head;
+                            mdef.thrown = make.Types(thrown);
+                            mdef.sym.type = types.createMethodTypeWithThrown(mdef.sym.type, thrown);
+                        }
+                    }
+                    thrownPrev = chk.union(thrown, thrownPrev);
+                }
+
+                // process all the methods
+                for (List<JCTree> l = tree.defs; l.nonEmpty(); l = l.tail) {
+                    if (l.head.hasTag(METHODDEF)) {
+                        scan(l.head);
+                        errorUncaught();
+                    }
+                }
+
+                thrown = thrownPrev;
+            } finally {
+                pendingExits = pendingExitsPrev;
+                alive = alivePrev;
+                caught = caughtPrev;
+                classDef = classDefPrev;
+                lint = lintPrev;
+            }
+        }
+
+        public void visitMethodDef(JCMethodDecl tree) {
+            if (tree.body == null) return;
+
+            List<Type> caughtPrev = caught;
+            List<Type> mthrown = tree.sym.type.getThrownTypes();
+            Lint lintPrev = lint;
+
+            lint = lint.augment(tree.sym.attributes_field);
+
+            Assert.check(pendingExits.isEmpty());
+
+            try {
+                for (List<JCVariableDecl> l = tree.params; l.nonEmpty(); l = l.tail) {
+                    JCVariableDecl def = l.head;
+                    scan(def);
+                }
+                if (TreeInfo.isInitialConstructor(tree))
+                    caught = chk.union(caught, mthrown);
+                else if ((tree.sym.flags() & (BLOCK | STATIC)) != BLOCK)
+                    caught = mthrown;
+                // else we are in an instance initializer block;
+                // leave caught unchanged.
+
+                alive = true;
+                scanStat(tree.body);
+
+                if (alive && tree.sym.type.getReturnType().tag != VOID)
+                    log.error(TreeInfo.diagEndPos(tree.body), "missing.ret.stmt");
+
+                List<FlowPendingExit> exits = pendingExits.toList();
+                pendingExits = new ListBuffer<FlowPendingExit>();
+                while (exits.nonEmpty()) {
+                    FlowPendingExit exit = exits.head;
+                    exits = exits.tail;
+                    if (exit.thrown == null) {
+                        Assert.check(exit.tree.hasTag(RETURN));
+                    } else {
+                        // uncaught throws will be reported later
+                        pendingExits.append(exit);
+                    }
+                }
+            } finally {
+                caught = caughtPrev;
+                lint = lintPrev;
+            }
+        }
+
+        public void visitVarDef(JCVariableDecl tree) {
+            if (tree.init != null) {
+                Lint lintPrev = lint;
+                lint = lint.augment(tree.sym.attributes_field);
+                try{
+                    scan(tree.init);
+                } finally {
+                    lint = lintPrev;
+                }
             }
         }
-    }
+
+        public void visitBlock(JCBlock tree) {
+            scanStats(tree.stats);
+        }
 
-    /** Record that exception is potentially thrown and check that it
-     *  is caught.
-     */
-    void markThrown(JCTree tree, Type exc) {
-        if (!chk.isUnchecked(tree.pos(), exc)) {
-            if (!chk.isHandled(exc, caught))
-                pendingExits.append(new PendingExit(tree, exc));
-                thrown = chk.incl(exc, thrown);
+        public void visitDoLoop(JCDoWhileLoop tree) {
+            ListBuffer<FlowPendingExit> prevPendingExits = pendingExits;
+            pendingExits = new ListBuffer<FlowPendingExit>();
+            scanStat(tree.body);
+            alive |= resolveContinues(tree);
+            scan(tree.cond);
+            alive = alive && !tree.cond.type.isTrue();
+            alive |= resolveBreaks(tree, prevPendingExits);
         }
-    }
 
-    /*-------------- Processing variables ----------------------*/
+        public void visitWhileLoop(JCWhileLoop tree) {
+            ListBuffer<FlowPendingExit> prevPendingExits = pendingExits;
+            pendingExits = new ListBuffer<FlowPendingExit>();
+            scan(tree.cond);
+            alive = !tree.cond.type.isFalse();
+            scanStat(tree.body);
+            alive |= resolveContinues(tree);
+            alive = resolveBreaks(tree, prevPendingExits) ||
+                !tree.cond.type.isTrue();
+        }
 
-    /** Do we need to track init/uninit state of this symbol?
-     *  I.e. is symbol either a local or a blank final variable?
-     */
-    boolean trackable(VarSymbol sym) {
-        return
-            (sym.owner.kind == MTH ||
-             ((sym.flags() & (FINAL | HASINIT | PARAMETER)) == FINAL &&
-              classDef.sym.isEnclosedBy((ClassSymbol)sym.owner)));
-    }
+        public void visitForLoop(JCForLoop tree) {
+            ListBuffer<FlowPendingExit> prevPendingExits = pendingExits;
+            scanStats(tree.init);
+            pendingExits = new ListBuffer<FlowPendingExit>();
+            if (tree.cond != null) {
+                scan(tree.cond);
+                alive = !tree.cond.type.isFalse();
+            } else {
+                alive = true;
+            }
+            scanStat(tree.body);
+            alive |= resolveContinues(tree);
+            scan(tree.step);
+            alive = resolveBreaks(tree, prevPendingExits) ||
+                tree.cond != null && !tree.cond.type.isTrue();
+        }
 
-    /** Initialize new trackable variable by setting its address field
-     *  to the next available sequence number and entering it under that
-     *  index into the vars array.
-     */
-    void newVar(VarSymbol sym) {
-        if (nextadr == vars.length) {
-            VarSymbol[] newvars = new VarSymbol[nextadr * 2];
-            System.arraycopy(vars, 0, newvars, 0, nextadr);
-            vars = newvars;
+        public void visitForeachLoop(JCEnhancedForLoop tree) {
+            visitVarDef(tree.var);
+            ListBuffer<FlowPendingExit> prevPendingExits = pendingExits;
+            scan(tree.expr);
+            pendingExits = new ListBuffer<FlowPendingExit>();
+            scanStat(tree.body);
+            alive |= resolveContinues(tree);
+            resolveBreaks(tree, prevPendingExits);
+            alive = true;
+        }
+
+        public void visitLabelled(JCLabeledStatement tree) {
+            ListBuffer<FlowPendingExit> prevPendingExits = pendingExits;
+            pendingExits = new ListBuffer<FlowPendingExit>();
+            scanStat(tree.body);
+            alive |= resolveBreaks(tree, prevPendingExits);
         }
-        sym.adr = nextadr;
-        vars[nextadr] = sym;
-        inits.excl(nextadr);
-        uninits.incl(nextadr);
-        nextadr++;
-    }
+
+        public void visitSwitch(JCSwitch tree) {
+            ListBuffer<FlowPendingExit> prevPendingExits = pendingExits;
+            pendingExits = new ListBuffer<FlowPendingExit>();
+            scan(tree.selector);
+            boolean hasDefault = false;
+            for (List<JCCase> l = tree.cases; l.nonEmpty(); l = l.tail) {
+                alive = true;
+                JCCase c = l.head;
+                if (c.pat == null)
+                    hasDefault = true;
+                else
+                    scan(c.pat);
+                scanStats(c.stats);
+                // Warn about fall-through if lint switch fallthrough enabled.
+                if (alive &&
+                    lint.isEnabled(Lint.LintCategory.FALLTHROUGH) &&
+                    c.stats.nonEmpty() && l.tail.nonEmpty())
+                    log.warning(Lint.LintCategory.FALLTHROUGH,
+                                l.tail.head.pos(),
+                                "possible.fall-through.into.case");
+            }
+            if (!hasDefault) {
+                alive = true;
+            }
+            alive |= resolveBreaks(tree, prevPendingExits);
+        }
 
-    /** Record an initialization of a trackable variable.
-     */
-    void letInit(DiagnosticPosition pos, VarSymbol sym) {
-        if (sym.adr >= firstadr && trackable(sym)) {
-            if ((sym.flags() & FINAL) != 0) {
-                if ((sym.flags() & PARAMETER) != 0) {
-                    if ((sym.flags() & UNION) != 0) { //multi-catch parameter
-                        log.error(pos, "multicatch.parameter.may.not.be.assigned",
-                                  sym);
+        public void visitTry(JCTry tree) {
+            List<Type> caughtPrev = caught;
+            List<Type> thrownPrev = thrown;
+            thrown = List.nil();
+            for (List<JCCatch> l = tree.catchers; l.nonEmpty(); l = l.tail) {
+                List<JCExpression> subClauses = TreeInfo.isMultiCatch(l.head) ?
+                        ((JCTypeUnion)l.head.param.vartype).alternatives :
+                        List.of(l.head.param.vartype);
+                for (JCExpression ct : subClauses) {
+                    caught = chk.incl(ct.type, caught);
+                }
+            }
+
+            ListBuffer<FlowPendingExit> prevPendingExits = pendingExits;
+            pendingExits = new ListBuffer<FlowPendingExit>();
+            for (JCTree resource : tree.resources) {
+                if (resource instanceof JCVariableDecl) {
+                    JCVariableDecl vdecl = (JCVariableDecl) resource;
+                    visitVarDef(vdecl);
+                } else if (resource instanceof JCExpression) {
+                    scan((JCExpression) resource);
+                } else {
+                    throw new AssertionError(tree);  // parser error
+                }
+            }
+            for (JCTree resource : tree.resources) {
+                List<Type> closeableSupertypes = resource.type.isCompound() ?
+                    types.interfaces(resource.type).prepend(types.supertype(resource.type)) :
+                    List.of(resource.type);
+                for (Type sup : closeableSupertypes) {
+                    if (types.asSuper(sup, syms.autoCloseableType.tsym) != null) {
+                        Symbol closeMethod = rs.resolveQualifiedMethod(tree,
+                                attrEnv,
+                                sup,
+                                names.close,
+                                List.<Type>nil(),
+                                List.<Type>nil());
+                        if (closeMethod.kind == MTH) {
+                            for (Type t : ((MethodSymbol)closeMethod).getThrownTypes()) {
+                                markThrown(resource, t);
+                            }
+                        }
                     }
-                    else {
-                        log.error(pos, "final.parameter.may.not.be.assigned",
-                              sym);
-                    }
-                } else if (!uninits.isMember(sym.adr)) {
-                    log.error(pos,
-                              loopPassTwo
-                              ? "var.might.be.assigned.in.loop"
-                              : "var.might.already.be.assigned",
-                              sym);
-                } else if (!inits.isMember(sym.adr)) {
-                    // reachable assignment
-                    uninits.excl(sym.adr);
-                    uninitsTry.excl(sym.adr);
-                } else {
-                    //log.rawWarning(pos, "unreachable assignment");//DEBUG
-                    uninits.excl(sym.adr);
                 }
             }
-            inits.incl(sym.adr);
-        } else if ((sym.flags() & FINAL) != 0) {
-            log.error(pos, "var.might.already.be.assigned", sym);
+            scanStat(tree.body);
+            List<Type> thrownInTry = allowImprovedCatchAnalysis ?
+                chk.union(thrown, List.of(syms.runtimeExceptionType, syms.errorType)) :
+                thrown;
+            thrown = thrownPrev;
+            caught = caughtPrev;
+            boolean aliveEnd = alive;
+
+            List<Type> caughtInTry = List.nil();
+            for (List<JCCatch> l = tree.catchers; l.nonEmpty(); l = l.tail) {
+                alive = true;
+                JCVariableDecl param = l.head.param;
+                List<JCExpression> subClauses = TreeInfo.isMultiCatch(l.head) ?
+                        ((JCTypeUnion)l.head.param.vartype).alternatives :
+                        List.of(l.head.param.vartype);
+                List<Type> ctypes = List.nil();
+                List<Type> rethrownTypes = chk.diff(thrownInTry, caughtInTry);
+                for (JCExpression ct : subClauses) {
+                    Type exc = ct.type;
+                    if (exc != syms.unknownType) {
+                        ctypes = ctypes.append(exc);
+                        if (types.isSameType(exc, syms.objectType))
+                            continue;
+                        checkCaughtType(l.head.pos(), exc, thrownInTry, caughtInTry);
+                        caughtInTry = chk.incl(exc, caughtInTry);
+                    }
+                }
+                scan(param);
+                preciseRethrowTypes.put(param.sym, chk.intersect(ctypes, rethrownTypes));
+                scanStat(l.head.body);
+                preciseRethrowTypes.remove(param.sym);
+                aliveEnd |= alive;
+            }
+            if (tree.finalizer != null) {
+                List<Type> savedThrown = thrown;
+                thrown = List.nil();
+                ListBuffer<FlowPendingExit> exits = pendingExits;
+                pendingExits = prevPendingExits;
+                alive = true;
+                scanStat(tree.finalizer);
+                if (!alive) {
+                    // discard exits and exceptions from try and finally
+                    thrown = chk.union(thrown, thrownPrev);
+                    if (lint.isEnabled(Lint.LintCategory.FINALLY)) {
+                        log.warning(Lint.LintCategory.FINALLY,
+                                TreeInfo.diagEndPos(tree.finalizer),
+                                "finally.cannot.complete");
+                    }
+                } else {
+                    thrown = chk.union(thrown, chk.diff(thrownInTry, caughtInTry));
+                    thrown = chk.union(thrown, savedThrown);
+                    // FIX: this doesn't preserve source order of exits in catch
+                    // versus finally!
+                    while (exits.nonEmpty()) {
+                        pendingExits.append(exits.next());
+                    }
+                    alive = aliveEnd;
+                }
+                tree.finallyCanCompleteNormally = alive;
+            } else {
+                thrown = chk.union(thrown, chk.diff(thrownInTry, caughtInTry));
+                alive = aliveEnd;
+                ListBuffer<FlowPendingExit> exits = pendingExits;
+                pendingExits = prevPendingExits;
+                while (exits.nonEmpty()) pendingExits.append(exits.next());
+            }
         }
-    }
+
+        @Override
+        public void visitIf(JCIf tree) {
+            scan(tree.cond);
+            scanStat(tree.thenpart);
+            if (tree.elsepart != null) {
+                boolean aliveAfterThen = alive;
+                alive = true;
+                scanStat(tree.elsepart);
+                alive = alive | aliveAfterThen;
+            } else {
+                alive = true;
+            }
+        }
 
-    /** If tree is either a simple name or of the form this.name or
-     *  C.this.name, and tree represents a trackable variable,
-     *  record an initialization of the variable.
-     */
-    void letInit(JCTree tree) {
-        tree = TreeInfo.skipParens(tree);
-        if (tree.hasTag(IDENT) || tree.hasTag(SELECT)) {
-            Symbol sym = TreeInfo.symbol(tree);
-            if (sym.kind == VAR) {
-                letInit(tree.pos(), (VarSymbol)sym);
+        void checkCaughtType(DiagnosticPosition pos, Type exc, List<Type> thrownInTry, List<Type> caughtInTry) {
+            if (chk.subset(exc, caughtInTry)) {
+                log.error(pos, "except.already.caught", exc);
+            } else if (!chk.isUnchecked(pos, exc) &&
+                    !isExceptionOrThrowable(exc) &&
+                    !chk.intersects(exc, thrownInTry)) {
+                log.error(pos, "except.never.thrown.in.try", exc);
+            } else if (allowImprovedCatchAnalysis) {
+                List<Type> catchableThrownTypes = chk.intersect(List.of(exc), thrownInTry);
+                // 'catchableThrownTypes' cannnot possibly be empty - if 'exc' was an
+                // unchecked exception, the result list would not be empty, as the augmented
+                // thrown set includes { RuntimeException, Error }; if 'exc' was a checked
+                // exception, that would have been covered in the branch above
+                if (chk.diff(catchableThrownTypes, caughtInTry).isEmpty() &&
+                        !isExceptionOrThrowable(exc)) {
+                    String key = catchableThrownTypes.length() == 1 ?
+                            "unreachable.catch" :
+                            "unreachable.catch.1";
+                    log.warning(pos, key, catchableThrownTypes);
+                }
+            }
+        }
+        //where
+            private boolean isExceptionOrThrowable(Type exc) {
+                return exc.tsym == syms.throwableType.tsym ||
+                    exc.tsym == syms.exceptionType.tsym;
+            }
+
+        public void visitBreak(JCBreak tree) {
+            recordExit(tree, new FlowPendingExit(tree, null));
+        }
+
+        public void visitContinue(JCContinue tree) {
+            recordExit(tree, new FlowPendingExit(tree, null));
+        }
+
+        public void visitReturn(JCReturn tree) {
+            scan(tree.expr);
+            // if not initial constructor, should markDead instead of recordExit
+            recordExit(tree, new FlowPendingExit(tree, null));
+        }
+
+        public void visitThrow(JCThrow tree) {
+            scan(tree.expr);
+            Symbol sym = TreeInfo.symbol(tree.expr);
+            if (sym != null &&
+                sym.kind == VAR &&
+                (sym.flags() & (FINAL | EFFECTIVELY_FINAL)) != 0 &&
+                preciseRethrowTypes.get(sym) != null &&
+                allowImprovedRethrowAnalysis) {
+                for (Type t : preciseRethrowTypes.get(sym)) {
+                    markThrown(tree, t);
+                }
+            }
+            else {
+                markThrown(tree, tree.expr.type);
+            }
+            markDead();
+        }
+
+        public void visitApply(JCMethodInvocation tree) {
+            scan(tree.meth);
+            scan(tree.args);
+            for (List<Type> l = tree.meth.type.getThrownTypes(); l.nonEmpty(); l = l.tail)
+                markThrown(tree, l.head);
+        }
+
+        public void visitNewClass(JCNewClass tree) {
+            scan(tree.encl);
+            scan(tree.args);
+           // scan(tree.def);
+            for (List<Type> l = tree.constructorType.getThrownTypes();
+                 l.nonEmpty();
+                 l = l.tail) {
+                markThrown(tree, l.head);
+            }
+            List<Type> caughtPrev = caught;
+            try {
+                // If the new class expression defines an anonymous class,
+                // analysis of the anonymous constructor may encounter thrown
+                // types which are unsubstituted type variables.
+                // However, since the constructor's actual thrown types have
+                // already been marked as thrown, it is safe to simply include
+                // each of the constructor's formal thrown types in the set of
+                // 'caught/declared to be thrown' types, for the duration of
+                // the class def analysis.
+                if (tree.def != null)
+                    for (List<Type> l = tree.constructor.type.getThrownTypes();
+                         l.nonEmpty();
+                         l = l.tail) {
+                        caught = chk.incl(l.head, caught);
+                    }
+                scan(tree.def);
+            }
+            finally {
+                caught = caughtPrev;
+            }
+        }
+
+        public void visitTopLevel(JCCompilationUnit tree) {
+            // Do nothing for TopLevel since each class is visited individually
+        }
+
+    /**************************************************************************
+     * main method
+     *************************************************************************/
+
+        /** Perform definite assignment/unassignment analysis on a tree.
+         */
+        public void analyzeTree(Env<AttrContext> env, TreeMaker make) {
+            try {
+                attrEnv = env;
+                JCTree tree = env.tree;
+                Flow.this.make = make;
+                pendingExits = new ListBuffer<FlowPendingExit>();
+                preciseRethrowTypes = new HashMap<Symbol, List<Type>>();
+                alive = true;
+                this.thrown = this.caught = null;
+                this.classDef = null;
+                scan(tree);
+            } finally {
+                pendingExits = null;
+                Flow.this.make = null;
+                this.thrown = this.caught = null;
+                this.classDef = null;
             }
         }
     }
 
-    /** Check that trackable variable is initialized.
+    /**
+     * This pass implements (i) definite assignment analysis, which ensures that
+     * each variable is assigned when used and (ii) definite unassignment analysis,
+     * which ensures that no final variable is assigned more than once. This visitor
+     * depends on the results of the liveliness analyzer.
      */
-    void checkInit(DiagnosticPosition pos, VarSymbol sym) {
-        if ((sym.adr >= firstadr || sym.owner.kind != TYP) &&
-            trackable(sym) &&
-            !inits.isMember(sym.adr)) {
-            log.error(pos, "var.might.not.have.been.initialized",
-                      sym);
-            inits.incl(sym.adr);
-        }
-    }
+    class AssignAnalyzer extends BaseAnalyzer<AssignAnalyzer.AssignPendingExit> {
+
+        /** The set of definitely assigned variables.
+         */
+        Bits inits;
+
+        /** The set of definitely unassigned variables.
+         */
+        Bits uninits;
 
-    /*-------------------- Handling jumps ----------------------*/
+        /** The set of variables that are definitely unassigned everywhere
+         *  in current try block. This variable is maintained lazily; it is
+         *  updated only when something gets removed from uninits,
+         *  typically by being assigned in reachable code.  To obtain the
+         *  correct set of variables which are definitely unassigned
+         *  anywhere in current try block, intersect uninitsTry and
+         *  uninits.
+         */
+        Bits uninitsTry;
 
-    /** Record an outward transfer of control. */
-    void recordExit(JCTree tree) {
-        pendingExits.append(new PendingExit(tree, inits, uninits));
-        markDead();
-    }
+        /** When analyzing a condition, inits and uninits are null.
+         *  Instead we have:
+         */
+        Bits initsWhenTrue;
+        Bits initsWhenFalse;
+        Bits uninitsWhenTrue;
+        Bits uninitsWhenFalse;
 
-    /** Resolve all breaks of this statement. */
-    boolean resolveBreaks(JCTree tree,
-                          ListBuffer<PendingExit> oldPendingExits) {
-        boolean result = false;
-        List<PendingExit> exits = pendingExits.toList();
-        pendingExits = oldPendingExits;
-        for (; exits.nonEmpty(); exits = exits.tail) {
-            PendingExit exit = exits.head;
-            if (exit.tree.hasTag(BREAK) &&
-                ((JCBreak) exit.tree).target == tree) {
-                inits.andSet(exit.inits);
-                uninits.andSet(exit.uninits);
-                result = true;
-            } else {
-                pendingExits.append(exit);
+        /** A mapping from addresses to variable symbols.
+         */
+        VarSymbol[] vars;
+
+        /** The current class being defined.
+         */
+        JCClassDecl classDef;
+
+        /** The first variable sequence number in this class definition.
+         */
+        int firstadr;
+
+        /** The next available variable sequence number.
+         */
+        int nextadr;
+
+        /** The list of unreferenced automatic resources.
+         */
+        Scope unrefdResources;
+
+        /** Set when processing a loop body the second time for DU analysis. */
+        boolean loopPassTwo = false;
+
+        class AssignPendingExit extends BaseAnalyzer.PendingExit {
+
+            Bits exit_inits;
+            Bits exit_uninits;
+
+            AssignPendingExit(JCTree tree, Bits inits, Bits uninits) {
+                super(tree);
+                this.exit_inits = inits.dup();
+                this.exit_uninits = uninits.dup();
             }
-        }
-        return result;
-    }
 
-    /** Resolve all continues of this statement. */
-    boolean resolveContinues(JCTree tree) {
-        boolean result = false;
-        List<PendingExit> exits = pendingExits.toList();
-        pendingExits = new ListBuffer<PendingExit>();
-        for (; exits.nonEmpty(); exits = exits.tail) {
-            PendingExit exit = exits.head;
-            if (exit.tree.hasTag(CONTINUE) &&
-                ((JCContinue) exit.tree).target == tree) {
-                inits.andSet(exit.inits);
-                uninits.andSet(exit.uninits);
-                result = true;
-            } else {
-                pendingExits.append(exit);
+            void resolveJump() {
+                inits.andSet(exit_inits);
+                uninits.andSet(exit_uninits);
             }
         }
-        return result;
-    }
 
-    /** Record that statement is unreachable.
-     */
-    void markDead() {
-        inits.inclRange(firstadr, nextadr);
-        uninits.inclRange(firstadr, nextadr);
-        alive = false;
-    }
+        @Override
+        void markDead() {
+            inits.inclRange(firstadr, nextadr);
+            uninits.inclRange(firstadr, nextadr);
+        }
+
+        /*-------------- Processing variables ----------------------*/
 
-    /** Split (duplicate) inits/uninits into WhenTrue/WhenFalse sets
-     */
-    void split(boolean setToNull) {
-        initsWhenFalse = inits.dup();
-        uninitsWhenFalse = uninits.dup();
-        initsWhenTrue = inits;
-        uninitsWhenTrue = uninits;
-        if (setToNull)
-            inits = uninits = null;
-    }
+        /** Do we need to track init/uninit state of this symbol?
+         *  I.e. is symbol either a local or a blank final variable?
+         */
+        boolean trackable(VarSymbol sym) {
+            return
+                (sym.owner.kind == MTH ||
+                 ((sym.flags() & (FINAL | HASINIT | PARAMETER)) == FINAL &&
+                  classDef.sym.isEnclosedBy((ClassSymbol)sym.owner)));
+        }
 
-    /** Merge (intersect) inits/uninits from WhenTrue/WhenFalse sets.
-     */
-    void merge() {
-        inits = initsWhenFalse.andSet(initsWhenTrue);
-        uninits = uninitsWhenFalse.andSet(uninitsWhenTrue);
-    }
-
-/* ************************************************************************
- * Visitor methods for statements and definitions
- *************************************************************************/
-
-    /** Analyze a definition.
-     */
-    void scanDef(JCTree tree) {
-        scanStat(tree);
-        if (tree != null && tree.hasTag(JCTree.Tag.BLOCK) && !alive) {
-            log.error(tree.pos(),
-                      "initializer.must.be.able.to.complete.normally");
+        /** Initialize new trackable variable by setting its address field
+         *  to the next available sequence number and entering it under that
+         *  index into the vars array.
+         */
+        void newVar(VarSymbol sym) {
+            if (nextadr == vars.length) {
+                VarSymbol[] newvars = new VarSymbol[nextadr * 2];
+                System.arraycopy(vars, 0, newvars, 0, nextadr);
+                vars = newvars;
+            }
+            sym.adr = nextadr;
+            vars[nextadr] = sym;
+            inits.excl(nextadr);
+            uninits.incl(nextadr);
+            nextadr++;
         }
-    }
 
-    /** Analyze a statement. Check that statement is reachable.
-     */
-    void scanStat(JCTree tree) {
-        if (!alive && tree != null) {
-            log.error(tree.pos(), "unreachable.stmt");
-            if (!tree.hasTag(SKIP)) alive = true;
-        }
-        scan(tree);
-    }
-
-    /** Analyze list of statements.
-     */
-    void scanStats(List<? extends JCStatement> trees) {
-        if (trees != null)
-            for (List<? extends JCStatement> l = trees; l.nonEmpty(); l = l.tail)
-                scanStat(l.head);
-    }
-
-    /** Analyze an expression. Make sure to set (un)inits rather than
-     *  (un)initsWhenTrue(WhenFalse) on exit.
-     */
-    void scanExpr(JCTree tree) {
-        if (tree != null) {
-            scan(tree);
-            if (inits == null) merge();
+        /** Record an initialization of a trackable variable.
+         */
+        void letInit(DiagnosticPosition pos, VarSymbol sym) {
+            if (sym.adr >= firstadr && trackable(sym)) {
+                if ((sym.flags() & FINAL) != 0) {
+                    if ((sym.flags() & PARAMETER) != 0) {
+                        if ((sym.flags() & UNION) != 0) { //multi-catch parameter
+                            log.error(pos, "multicatch.parameter.may.not.be.assigned",
+                                      sym);
+                        }
+                        else {
+                            log.error(pos, "final.parameter.may.not.be.assigned",
+                                  sym);
+                        }
+                    } else if (!uninits.isMember(sym.adr)) {
+                        log.error(pos,
+                                  loopPassTwo
+                                  ? "var.might.be.assigned.in.loop"
+                                  : "var.might.already.be.assigned",
+                                  sym);
+                    } else if (!inits.isMember(sym.adr)) {
+                        // reachable assignment
+                        uninits.excl(sym.adr);
+                        uninitsTry.excl(sym.adr);
+                    } else {
+                        //log.rawWarning(pos, "unreachable assignment");//DEBUG
+                        uninits.excl(sym.adr);
+                    }
+                }
+                inits.incl(sym.adr);
+            } else if ((sym.flags() & FINAL) != 0) {
+                log.error(pos, "var.might.already.be.assigned", sym);
+            }
         }
-    }
 
-    /** Analyze a list of expressions.
-     */
-    void scanExprs(List<? extends JCExpression> trees) {
-        if (trees != null)
-            for (List<? extends JCExpression> l = trees; l.nonEmpty(); l = l.tail)
-                scanExpr(l.head);
-    }
+        /** If tree is either a simple name or of the form this.name or
+         *  C.this.name, and tree represents a trackable variable,
+         *  record an initialization of the variable.
+         */
+        void letInit(JCTree tree) {
+            tree = TreeInfo.skipParens(tree);
+            if (tree.hasTag(IDENT) || tree.hasTag(SELECT)) {
+                Symbol sym = TreeInfo.symbol(tree);
+                if (sym.kind == VAR) {
+                    letInit(tree.pos(), (VarSymbol)sym);
+                }
+            }
+        }
 
-    /** Analyze a condition. Make sure to set (un)initsWhenTrue(WhenFalse)
-     *  rather than (un)inits on exit.
-     */
-    void scanCond(JCTree tree) {
-        if (tree.type.isFalse()) {
-            if (inits == null) merge();
-            initsWhenTrue = inits.dup();
-            initsWhenTrue.inclRange(firstadr, nextadr);
-            uninitsWhenTrue = uninits.dup();
-            uninitsWhenTrue.inclRange(firstadr, nextadr);
-            initsWhenFalse = inits;
-            uninitsWhenFalse = uninits;
-        } else if (tree.type.isTrue()) {
-            if (inits == null) merge();
+        /** Check that trackable variable is initialized.
+         */
+        void checkInit(DiagnosticPosition pos, VarSymbol sym) {
+            if ((sym.adr >= firstadr || sym.owner.kind != TYP) &&
+                trackable(sym) &&
+                !inits.isMember(sym.adr)) {
+                log.error(pos, "var.might.not.have.been.initialized",
+                          sym);
+                inits.incl(sym.adr);
+            }
+        }
+
+        /** Split (duplicate) inits/uninits into WhenTrue/WhenFalse sets
+         */
+        void split(boolean setToNull) {
             initsWhenFalse = inits.dup();
-            initsWhenFalse.inclRange(firstadr, nextadr);
             uninitsWhenFalse = uninits.dup();
-            uninitsWhenFalse.inclRange(firstadr, nextadr);
             initsWhenTrue = inits;
             uninitsWhenTrue = uninits;
-        } else {
-            scan(tree);
-            if (inits != null)
-                split(tree.type != syms.unknownType);
+            if (setToNull)
+                inits = uninits = null;
         }
-        if (tree.type != syms.unknownType)
-            inits = uninits = null;
-    }
 
-    /* ------------ Visitor methods for various sorts of trees -------------*/
+        /** Merge (intersect) inits/uninits from WhenTrue/WhenFalse sets.
+         */
+        void merge() {
+            inits = initsWhenFalse.andSet(initsWhenTrue);
+            uninits = uninitsWhenFalse.andSet(uninitsWhenTrue);
+        }
 
-    public void visitClassDef(JCClassDecl tree) {
-        if (tree.sym == null) return;
+    /* ************************************************************************
+     * Visitor methods for statements and definitions
+     *************************************************************************/
 
-        JCClassDecl classDefPrev = classDef;
-        List<Type> thrownPrev = thrown;
-        List<Type> caughtPrev = caught;
-        boolean alivePrev = alive;
-        int firstadrPrev = firstadr;
-        int nextadrPrev = nextadr;
-        ListBuffer<PendingExit> pendingExitsPrev = pendingExits;
-        Lint lintPrev = lint;
+        /** Analyze an expression. Make sure to set (un)inits rather than
+         *  (un)initsWhenTrue(WhenFalse) on exit.
+         */
+        void scanExpr(JCTree tree) {
+            if (tree != null) {
+                scan(tree);
+                if (inits == null) merge();
+            }
+        }
 
-        pendingExits = new ListBuffer<PendingExit>();
-        if (tree.name != names.empty) {
-            caught = List.nil();
-            firstadr = nextadr;
+        /** Analyze a list of expressions.
+         */
+        void scanExprs(List<? extends JCExpression> trees) {
+            if (trees != null)
+                for (List<? extends JCExpression> l = trees; l.nonEmpty(); l = l.tail)
+                    scanExpr(l.head);
         }
-        classDef = tree;
-        thrown = List.nil();
-        lint = lint.augment(tree.sym.attributes_field);
 
-        try {
-            // define all the static fields
-            for (List<JCTree> l = tree.defs; l.nonEmpty(); l = l.tail) {
-                if (l.head.hasTag(VARDEF)) {
-                    JCVariableDecl def = (JCVariableDecl)l.head;
-                    if ((def.mods.flags & STATIC) != 0) {
-                        VarSymbol sym = def.sym;
-                        if (trackable(sym))
-                            newVar(sym);
-                    }
-                }
+        /** Analyze a condition. Make sure to set (un)initsWhenTrue(WhenFalse)
+         *  rather than (un)inits on exit.
+         */
+        void scanCond(JCTree tree) {
+            if (tree.type.isFalse()) {
+                if (inits == null) merge();
+                initsWhenTrue = inits.dup();
+                initsWhenTrue.inclRange(firstadr, nextadr);
+                uninitsWhenTrue = uninits.dup();
+                uninitsWhenTrue.inclRange(firstadr, nextadr);
+                initsWhenFalse = inits;
+                uninitsWhenFalse = uninits;
+            } else if (tree.type.isTrue()) {
+                if (inits == null) merge();
+                initsWhenFalse = inits.dup();
+                initsWhenFalse.inclRange(firstadr, nextadr);
+                uninitsWhenFalse = uninits.dup();
+                uninitsWhenFalse.inclRange(firstadr, nextadr);
+                initsWhenTrue = inits;
+                uninitsWhenTrue = uninits;
+            } else {
+                scan(tree);
+                if (inits != null)
+                    split(tree.type != syms.unknownType);
             }
+            if (tree.type != syms.unknownType)
+                inits = uninits = null;
+        }
 
-            // process all the static initializers
-            for (List<JCTree> l = tree.defs; l.nonEmpty(); l = l.tail) {
-                if (!l.head.hasTag(METHODDEF) &&
-                    (TreeInfo.flags(l.head) & STATIC) != 0) {
-                    scanDef(l.head);
-                    errorUncaught();
-                }
-            }
+        /* ------------ Visitor methods for various sorts of trees -------------*/
+
+        public void visitClassDef(JCClassDecl tree) {
+            if (tree.sym == null) return;
+
+            JCClassDecl classDefPrev = classDef;
+            int firstadrPrev = firstadr;
+            int nextadrPrev = nextadr;
+            ListBuffer<AssignPendingExit> pendingExitsPrev = pendingExits;
+            Lint lintPrev = lint;
 
-            // add intersection of all thrown clauses of initial constructors
-            // to set of caught exceptions, unless class is anonymous.
+            pendingExits = new ListBuffer<AssignPendingExit>();
             if (tree.name != names.empty) {
-                boolean firstConstructor = true;
+                firstadr = nextadr;
+            }
+            classDef = tree;
+            lint = lint.augment(tree.sym.attributes_field);
+
+            try {
+                // define all the static fields
                 for (List<JCTree> l = tree.defs; l.nonEmpty(); l = l.tail) {
-                    if (TreeInfo.isInitialConstructor(l.head)) {
-                        List<Type> mthrown =
-                            ((JCMethodDecl) l.head).sym.type.getThrownTypes();
-                        if (firstConstructor) {
-                            caught = mthrown;
-                            firstConstructor = false;
-                        } else {
-                            caught = chk.intersect(mthrown, caught);
+                    if (l.head.hasTag(VARDEF)) {
+                        JCVariableDecl def = (JCVariableDecl)l.head;
+                        if ((def.mods.flags & STATIC) != 0) {
+                            VarSymbol sym = def.sym;
+                            if (trackable(sym))
+                                newVar(sym);
                         }
                     }
                 }
-            }
 
-            // define all the instance fields
-            for (List<JCTree> l = tree.defs; l.nonEmpty(); l = l.tail) {
-                if (l.head.hasTag(VARDEF)) {
-                    JCVariableDecl def = (JCVariableDecl)l.head;
-                    if ((def.mods.flags & STATIC) == 0) {
-                        VarSymbol sym = def.sym;
-                        if (trackable(sym))
-                            newVar(sym);
+                // process all the static initializers
+                for (List<JCTree> l = tree.defs; l.nonEmpty(); l = l.tail) {
+                    if (!l.head.hasTag(METHODDEF) &&
+                        (TreeInfo.flags(l.head) & STATIC) != 0) {
+                        scan(l.head);
                     }
                 }
-            }
 
-            // process all the instance initializers
-            for (List<JCTree> l = tree.defs; l.nonEmpty(); l = l.tail) {
-                if (!l.head.hasTag(METHODDEF) &&
-                    (TreeInfo.flags(l.head) & STATIC) == 0) {
-                    scanDef(l.head);
-                    errorUncaught();
+                // define all the instance fields
+                for (List<JCTree> l = tree.defs; l.nonEmpty(); l = l.tail) {
+                    if (l.head.hasTag(VARDEF)) {
+                        JCVariableDecl def = (JCVariableDecl)l.head;
+                        if ((def.mods.flags & STATIC) == 0) {
+                            VarSymbol sym = def.sym;
+                            if (trackable(sym))
+                                newVar(sym);
+                        }
+                    }
                 }
-            }
 
-            // in an anonymous class, add the set of thrown exceptions to
-            // the throws clause of the synthetic constructor and propagate
-            // outwards.
-            // Changing the throws clause on the fly is okay here because
-            // the anonymous constructor can't be invoked anywhere else,
-            // and its type hasn't been cached.
-            if (tree.name == names.empty) {
+                // process all the instance initializers
                 for (List<JCTree> l = tree.defs; l.nonEmpty(); l = l.tail) {
-                    if (TreeInfo.isInitialConstructor(l.head)) {
-                        JCMethodDecl mdef = (JCMethodDecl)l.head;
-                        mdef.thrown = make.Types(thrown);
-                        mdef.sym.type = types.createMethodTypeWithThrown(mdef.sym.type, thrown);
+                    if (!l.head.hasTag(METHODDEF) &&
+                        (TreeInfo.flags(l.head) & STATIC) == 0) {
+                        scan(l.head);
+                    }
+                }
+
+                // process all the methods
+                for (List<JCTree> l = tree.defs; l.nonEmpty(); l = l.tail) {
+                    if (l.head.hasTag(METHODDEF)) {
+                        scan(l.head);
                     }
                 }
-                thrownPrev = chk.union(thrown, thrownPrev);
+            } finally {
+                pendingExits = pendingExitsPrev;
+                nextadr = nextadrPrev;
+                firstadr = firstadrPrev;
+                classDef = classDefPrev;
+                lint = lintPrev;
             }
+        }
 
-            // process all the methods
-            for (List<JCTree> l = tree.defs; l.nonEmpty(); l = l.tail) {
-                if (l.head.hasTag(METHODDEF)) {
-                    scan(l.head);
-                    errorUncaught();
-                }
-            }
+        public void visitMethodDef(JCMethodDecl tree) {
+            if (tree.body == null) return;
 
-            thrown = thrownPrev;
-        } finally {
-            pendingExits = pendingExitsPrev;
-            alive = alivePrev;
-            nextadr = nextadrPrev;
-            firstadr = firstadrPrev;
-            caught = caughtPrev;
-            classDef = classDefPrev;
-            lint = lintPrev;
-        }
-    }
+            Bits initsPrev = inits.dup();
+            Bits uninitsPrev = uninits.dup();
+            int nextadrPrev = nextadr;
+            int firstadrPrev = firstadr;
+            Lint lintPrev = lint;
 
-    public void visitMethodDef(JCMethodDecl tree) {
-        if (tree.body == null) return;
+            lint = lint.augment(tree.sym.attributes_field);
+
+            Assert.check(pendingExits.isEmpty());
 
-        List<Type> caughtPrev = caught;
-        List<Type> mthrown = tree.sym.type.getThrownTypes();
-        Bits initsPrev = inits.dup();
-        Bits uninitsPrev = uninits.dup();
-        int nextadrPrev = nextadr;
-        int firstadrPrev = firstadr;
-        Lint lintPrev = lint;
-
-        lint = lint.augment(tree.sym.attributes_field);
-
-        Assert.check(pendingExits.isEmpty());
+            try {
+                boolean isInitialConstructor =
+                    TreeInfo.isInitialConstructor(tree);
 
-        try {
-            boolean isInitialConstructor =
-                TreeInfo.isInitialConstructor(tree);
-
-            if (!isInitialConstructor)
-                firstadr = nextadr;
-            for (List<JCVariableDecl> l = tree.params; l.nonEmpty(); l = l.tail) {
-                JCVariableDecl def = l.head;
-                scan(def);
-                inits.incl(def.sym.adr);
-                uninits.excl(def.sym.adr);
-            }
-            if (isInitialConstructor)
-                caught = chk.union(caught, mthrown);
-            else if ((tree.sym.flags() & (BLOCK | STATIC)) != BLOCK)
-                caught = mthrown;
-            // else we are in an instance initializer block;
-            // leave caught unchanged.
+                if (!isInitialConstructor)
+                    firstadr = nextadr;
+                for (List<JCVariableDecl> l = tree.params; l.nonEmpty(); l = l.tail) {
+                    JCVariableDecl def = l.head;
+                    scan(def);
+                    inits.incl(def.sym.adr);
+                    uninits.excl(def.sym.adr);
+                }
+                // else we are in an instance initializer block;
+                // leave caught unchanged.
+                scan(tree.body);
 
-            alive = true;
-            scanStat(tree.body);
-
-            if (alive && tree.sym.type.getReturnType().tag != VOID)
-                log.error(TreeInfo.diagEndPos(tree.body), "missing.ret.stmt");
-
-            if (isInitialConstructor) {
-                for (int i = firstadr; i < nextadr; i++)
-                    if (vars[i].owner == classDef.sym)
-                        checkInit(TreeInfo.diagEndPos(tree.body), vars[i]);
-            }
-            List<PendingExit> exits = pendingExits.toList();
-            pendingExits = new ListBuffer<PendingExit>();
-            while (exits.nonEmpty()) {
-                PendingExit exit = exits.head;
-                exits = exits.tail;
-                if (exit.thrown == null) {
-                    Assert.check(exit.tree.hasTag(RETURN));
+                if (isInitialConstructor) {
+                    for (int i = firstadr; i < nextadr; i++)
+                        if (vars[i].owner == classDef.sym)
+                            checkInit(TreeInfo.diagEndPos(tree.body), vars[i]);
+                }
+                List<AssignPendingExit> exits = pendingExits.toList();
+                pendingExits = new ListBuffer<AssignPendingExit>();
+                while (exits.nonEmpty()) {
+                    AssignPendingExit exit = exits.head;
+                    exits = exits.tail;
+                    Assert.check(exit.tree.hasTag(RETURN), exit.tree);
                     if (isInitialConstructor) {
-                        inits = exit.inits;
+                        inits = exit.exit_inits;
                         for (int i = firstadr; i < nextadr; i++)
                             checkInit(exit.tree.pos(), vars[i]);
                     }
-                } else {
-                    // uncaught throws will be reported later
-                    pendingExits.append(exit);
                 }
-            }
-        } finally {
-            inits = initsPrev;
-            uninits = uninitsPrev;
-            nextadr = nextadrPrev;
-            firstadr = firstadrPrev;
-            caught = caughtPrev;
-            lint = lintPrev;
-        }
-    }
-
-    public void visitVarDef(JCVariableDecl tree) {
-        boolean track = trackable(tree.sym);
-        if (track && tree.sym.owner.kind == MTH) newVar(tree.sym);
-        if (tree.init != null) {
-            Lint lintPrev = lint;
-            lint = lint.augment(tree.sym.attributes_field);
-            try{
-                scanExpr(tree.init);
-                if (track) letInit(tree.pos(), tree.sym);
             } finally {
+                inits = initsPrev;
+                uninits = uninitsPrev;
+                nextadr = nextadrPrev;
+                firstadr = firstadrPrev;
                 lint = lintPrev;
             }
         }
-    }
-
-    public void visitBlock(JCBlock tree) {
-        int nextadrPrev = nextadr;
-        scanStats(tree.stats);
-        nextadr = nextadrPrev;
-    }
 
-    public void visitDoLoop(JCDoWhileLoop tree) {
-        ListBuffer<PendingExit> prevPendingExits = pendingExits;
-        boolean prevLoopPassTwo = loopPassTwo;
-        pendingExits = new ListBuffer<PendingExit>();
-        int prevErrors = log.nerrors;
-        do {
-            Bits uninitsEntry = uninits.dup();
-            uninitsEntry.excludeFrom(nextadr);
-            scanStat(tree.body);
-            alive |= resolveContinues(tree);
-            scanCond(tree.cond);
-            if (log.nerrors !=  prevErrors ||
-                loopPassTwo ||
-                uninitsEntry.dup().diffSet(uninitsWhenTrue).nextBit(firstadr)==-1)
-                break;
-            inits = initsWhenTrue;
-            uninits = uninitsEntry.andSet(uninitsWhenTrue);
-            loopPassTwo = true;
-            alive = true;
-        } while (true);
-        loopPassTwo = prevLoopPassTwo;
-        inits = initsWhenFalse;
-        uninits = uninitsWhenFalse;
-        alive = alive && !tree.cond.type.isTrue();
-        alive |= resolveBreaks(tree, prevPendingExits);
-    }
+        public void visitVarDef(JCVariableDecl tree) {
+            boolean track = trackable(tree.sym);
+            if (track && tree.sym.owner.kind == MTH) newVar(tree.sym);
+            if (tree.init != null) {
+                Lint lintPrev = lint;
+                lint = lint.augment(tree.sym.attributes_field);
+                try{
+                    scanExpr(tree.init);
+                    if (track) letInit(tree.pos(), tree.sym);
+                } finally {
+                    lint = lintPrev;
+                }
+            }
+        }
+
+        public void visitBlock(JCBlock tree) {
+            int nextadrPrev = nextadr;
+            scan(tree.stats);
+            nextadr = nextadrPrev;
+        }
 
-    public void visitWhileLoop(JCWhileLoop tree) {
-        ListBuffer<PendingExit> prevPendingExits = pendingExits;
-        boolean prevLoopPassTwo = loopPassTwo;
-        Bits initsCond;
-        Bits uninitsCond;
-        pendingExits = new ListBuffer<PendingExit>();
-        int prevErrors = log.nerrors;
-        do {
-            Bits uninitsEntry = uninits.dup();
-            uninitsEntry.excludeFrom(nextadr);
-            scanCond(tree.cond);
-            initsCond = initsWhenFalse;
-            uninitsCond = uninitsWhenFalse;
-            inits = initsWhenTrue;
-            uninits = uninitsWhenTrue;
-            alive = !tree.cond.type.isFalse();
-            scanStat(tree.body);
-            alive |= resolveContinues(tree);
-            if (log.nerrors != prevErrors ||
-                loopPassTwo ||
-                uninitsEntry.dup().diffSet(uninits).nextBit(firstadr) == -1)
-                break;
-            uninits = uninitsEntry.andSet(uninits);
-            loopPassTwo = true;
-            alive = true;
-        } while (true);
-        loopPassTwo = prevLoopPassTwo;
-        inits = initsCond;
-        uninits = uninitsCond;
-        alive = resolveBreaks(tree, prevPendingExits) ||
-            !tree.cond.type.isTrue();
-    }
+        public void visitDoLoop(JCDoWhileLoop tree) {
+            ListBuffer<AssignPendingExit> prevPendingExits = pendingExits;
+            boolean prevLoopPassTwo = loopPassTwo;
+            pendingExits = new ListBuffer<AssignPendingExit>();
+            int prevErrors = log.nerrors;
+            do {
+                Bits uninitsEntry = uninits.dup();
+                uninitsEntry.excludeFrom(nextadr);
+            scan(tree.body);
+            resolveContinues(tree);
+                scanCond(tree.cond);
+                if (log.nerrors !=  prevErrors ||
+                    loopPassTwo ||
+                    uninitsEntry.dup().diffSet(uninitsWhenTrue).nextBit(firstadr)==-1)
+                    break;
+                inits = initsWhenTrue;
+                uninits = uninitsEntry.andSet(uninitsWhenTrue);
+                loopPassTwo = true;
+            } while (true);
+            loopPassTwo = prevLoopPassTwo;
+            inits = initsWhenFalse;
+            uninits = uninitsWhenFalse;
+            resolveBreaks(tree, prevPendingExits);
+        }
 
-    public void visitForLoop(JCForLoop tree) {
-        ListBuffer<PendingExit> prevPendingExits = pendingExits;
-        boolean prevLoopPassTwo = loopPassTwo;
-        int nextadrPrev = nextadr;
-        scanStats(tree.init);
-        Bits initsCond;
-        Bits uninitsCond;
-        pendingExits = new ListBuffer<PendingExit>();
-        int prevErrors = log.nerrors;
-        do {
-            Bits uninitsEntry = uninits.dup();
-            uninitsEntry.excludeFrom(nextadr);
-            if (tree.cond != null) {
+        public void visitWhileLoop(JCWhileLoop tree) {
+            ListBuffer<AssignPendingExit> prevPendingExits = pendingExits;
+            boolean prevLoopPassTwo = loopPassTwo;
+            Bits initsCond;
+            Bits uninitsCond;
+            pendingExits = new ListBuffer<AssignPendingExit>();
+            int prevErrors = log.nerrors;
+            do {
+                Bits uninitsEntry = uninits.dup();
+                uninitsEntry.excludeFrom(nextadr);
                 scanCond(tree.cond);
                 initsCond = initsWhenFalse;
                 uninitsCond = uninitsWhenFalse;
                 inits = initsWhenTrue;
                 uninits = uninitsWhenTrue;
-                alive = !tree.cond.type.isFalse();
-            } else {
-                initsCond = inits.dup();
-                initsCond.inclRange(firstadr, nextadr);
-                uninitsCond = uninits.dup();
-                uninitsCond.inclRange(firstadr, nextadr);
-                alive = true;
-            }
-            scanStat(tree.body);
-            alive |= resolveContinues(tree);
-            scan(tree.step);
-            if (log.nerrors != prevErrors ||
-                loopPassTwo ||
-                uninitsEntry.dup().diffSet(uninits).nextBit(firstadr) == -1)
-                break;
-            uninits = uninitsEntry.andSet(uninits);
-            loopPassTwo = true;
-            alive = true;
-        } while (true);
-        loopPassTwo = prevLoopPassTwo;
-        inits = initsCond;
-        uninits = uninitsCond;
-        alive = resolveBreaks(tree, prevPendingExits) ||
-            tree.cond != null && !tree.cond.type.isTrue();
-        nextadr = nextadrPrev;
-    }
+                scan(tree.body);
+                resolveContinues(tree);
+                if (log.nerrors != prevErrors ||
+                    loopPassTwo ||
+                    uninitsEntry.dup().diffSet(uninits).nextBit(firstadr) == -1)
+                    break;
+                uninits = uninitsEntry.andSet(uninits);
+                loopPassTwo = true;
+            } while (true);
+            loopPassTwo = prevLoopPassTwo;
+            inits = initsCond;
+            uninits = uninitsCond;
+            resolveBreaks(tree, prevPendingExits);
+        }
 
-    public void visitForeachLoop(JCEnhancedForLoop tree) {
-        visitVarDef(tree.var);
+        public void visitForLoop(JCForLoop tree) {
+            ListBuffer<AssignPendingExit> prevPendingExits = pendingExits;
+            boolean prevLoopPassTwo = loopPassTwo;
+            int nextadrPrev = nextadr;
+            scan(tree.init);
+            Bits initsCond;
+            Bits uninitsCond;
+            pendingExits = new ListBuffer<AssignPendingExit>();
+            int prevErrors = log.nerrors;
+            do {
+                Bits uninitsEntry = uninits.dup();
+                uninitsEntry.excludeFrom(nextadr);
+                if (tree.cond != null) {
+                    scanCond(tree.cond);
+                    initsCond = initsWhenFalse;
+                    uninitsCond = uninitsWhenFalse;
+                    inits = initsWhenTrue;
+                    uninits = uninitsWhenTrue;
+                } else {
+                    initsCond = inits.dup();
+                    initsCond.inclRange(firstadr, nextadr);
+                    uninitsCond = uninits.dup();
+                    uninitsCond.inclRange(firstadr, nextadr);
+                }
+                scan(tree.body);
+                resolveContinues(tree);
+                scan(tree.step);
+                if (log.nerrors != prevErrors ||
+                    loopPassTwo ||
+                    uninitsEntry.dup().diffSet(uninits).nextBit(firstadr) == -1)
+                    break;
+                uninits = uninitsEntry.andSet(uninits);
+                loopPassTwo = true;
+            } while (true);
+            loopPassTwo = prevLoopPassTwo;
+            inits = initsCond;
+            uninits = uninitsCond;
+            resolveBreaks(tree, prevPendingExits);
+            nextadr = nextadrPrev;
+        }
 
-        ListBuffer<PendingExit> prevPendingExits = pendingExits;
-        boolean prevLoopPassTwo = loopPassTwo;
-        int nextadrPrev = nextadr;
-        scan(tree.expr);
-        Bits initsStart = inits.dup();
-        Bits uninitsStart = uninits.dup();
+        public void visitForeachLoop(JCEnhancedForLoop tree) {
+            visitVarDef(tree.var);
+
+            ListBuffer<AssignPendingExit> prevPendingExits = pendingExits;
+            boolean prevLoopPassTwo = loopPassTwo;
+            int nextadrPrev = nextadr;
+            scan(tree.expr);
+            Bits initsStart = inits.dup();
+            Bits uninitsStart = uninits.dup();
+
+            letInit(tree.pos(), tree.var.sym);
+            pendingExits = new ListBuffer<AssignPendingExit>();
+            int prevErrors = log.nerrors;
+            do {
+                Bits uninitsEntry = uninits.dup();
+                uninitsEntry.excludeFrom(nextadr);
+                scan(tree.body);
+                resolveContinues(tree);
+                if (log.nerrors != prevErrors ||
+                    loopPassTwo ||
+                    uninitsEntry.dup().diffSet(uninits).nextBit(firstadr) == -1)
+                    break;
+                uninits = uninitsEntry.andSet(uninits);
+                loopPassTwo = true;
+            } while (true);
+            loopPassTwo = prevLoopPassTwo;
+            inits = initsStart;
+            uninits = uninitsStart.andSet(uninits);
+            resolveBreaks(tree, prevPendingExits);
+            nextadr = nextadrPrev;
+        }
+
+        public void visitLabelled(JCLabeledStatement tree) {
+            ListBuffer<AssignPendingExit> prevPendingExits = pendingExits;
+            pendingExits = new ListBuffer<AssignPendingExit>();
+            scan(tree.body);
+            resolveBreaks(tree, prevPendingExits);
+        }
 
-        letInit(tree.pos(), tree.var.sym);
-        pendingExits = new ListBuffer<PendingExit>();
-        int prevErrors = log.nerrors;
-        do {
-            Bits uninitsEntry = uninits.dup();
-            uninitsEntry.excludeFrom(nextadr);
-            scanStat(tree.body);
-            alive |= resolveContinues(tree);
-            if (log.nerrors != prevErrors ||
-                loopPassTwo ||
-                uninitsEntry.dup().diffSet(uninits).nextBit(firstadr) == -1)
-                break;
-            uninits = uninitsEntry.andSet(uninits);
-            loopPassTwo = true;
-            alive = true;
-        } while (true);
-        loopPassTwo = prevLoopPassTwo;
-        inits = initsStart;
-        uninits = uninitsStart.andSet(uninits);
-        resolveBreaks(tree, prevPendingExits);
-        alive = true;
-        nextadr = nextadrPrev;
-    }
+        public void visitSwitch(JCSwitch tree) {
+            ListBuffer<AssignPendingExit> prevPendingExits = pendingExits;
+            pendingExits = new ListBuffer<AssignPendingExit>();
+            int nextadrPrev = nextadr;
+            scanExpr(tree.selector);
+            Bits initsSwitch = inits;
+            Bits uninitsSwitch = uninits.dup();
+            boolean hasDefault = false;
+            for (List<JCCase> l = tree.cases; l.nonEmpty(); l = l.tail) {
+                inits = initsSwitch.dup();
+                uninits = uninits.andSet(uninitsSwitch);
+                JCCase c = l.head;
+                if (c.pat == null)
+                    hasDefault = true;
+                else
+                    scanExpr(c.pat);
+                scan(c.stats);
+                addVars(c.stats, initsSwitch, uninitsSwitch);
+                // Warn about fall-through if lint switch fallthrough enabled.
+            }
+            if (!hasDefault) {
+                inits.andSet(initsSwitch);
+            }
+            resolveBreaks(tree, prevPendingExits);
+            nextadr = nextadrPrev;
+        }
+        // where
+            /** Add any variables defined in stats to inits and uninits. */
+            private void addVars(List<JCStatement> stats, Bits inits,
+                                        Bits uninits) {
+                for (;stats.nonEmpty(); stats = stats.tail) {
+                    JCTree stat = stats.head;
+                    if (stat.hasTag(VARDEF)) {
+                        int adr = ((JCVariableDecl) stat).sym.adr;
+                        inits.excl(adr);
+                        uninits.incl(adr);
+                    }
+                }
+            }
 
-    public void visitLabelled(JCLabeledStatement tree) {
-        ListBuffer<PendingExit> prevPendingExits = pendingExits;
-        pendingExits = new ListBuffer<PendingExit>();
-        scanStat(tree.body);
-        alive |= resolveBreaks(tree, prevPendingExits);
-    }
+        public void visitTry(JCTry tree) {
+            ListBuffer<JCVariableDecl> resourceVarDecls = ListBuffer.lb();
+            Bits uninitsTryPrev = uninitsTry;
+            ListBuffer<AssignPendingExit> prevPendingExits = pendingExits;
+            pendingExits = new ListBuffer<AssignPendingExit>();
+            Bits initsTry = inits.dup();
+            uninitsTry = uninits.dup();
+            for (JCTree resource : tree.resources) {
+                if (resource instanceof JCVariableDecl) {
+                    JCVariableDecl vdecl = (JCVariableDecl) resource;
+                    visitVarDef(vdecl);
+                    unrefdResources.enter(vdecl.sym);
+                    resourceVarDecls.append(vdecl);
+                } else if (resource instanceof JCExpression) {
+                    scanExpr((JCExpression) resource);
+                } else {
+                    throw new AssertionError(tree);  // parser error
+                }
+            }
+            scan(tree.body);
+            uninitsTry.andSet(uninits);
+            Bits initsEnd = inits;
+            Bits uninitsEnd = uninits;
+            int nextadrCatch = nextadr;
+
+            if (!resourceVarDecls.isEmpty() &&
+                    lint.isEnabled(Lint.LintCategory.TRY)) {
+                for (JCVariableDecl resVar : resourceVarDecls) {
+                    if (unrefdResources.includes(resVar.sym)) {
+                        log.warning(Lint.LintCategory.TRY, resVar.pos(),
+                                    "try.resource.not.referenced", resVar.sym);
+                        unrefdResources.remove(resVar.sym);
+                    }
+                }
+            }
 
-    public void visitSwitch(JCSwitch tree) {
-        ListBuffer<PendingExit> prevPendingExits = pendingExits;
-        pendingExits = new ListBuffer<PendingExit>();
-        int nextadrPrev = nextadr;
-        scanExpr(tree.selector);
-        Bits initsSwitch = inits;
-        Bits uninitsSwitch = uninits.dup();
-        boolean hasDefault = false;
-        for (List<JCCase> l = tree.cases; l.nonEmpty(); l = l.tail) {
-            alive = true;
-            inits = initsSwitch.dup();
-            uninits = uninits.andSet(uninitsSwitch);
-            JCCase c = l.head;
-            if (c.pat == null)
-                hasDefault = true;
-            else
-                scanExpr(c.pat);
-            scanStats(c.stats);
-            addVars(c.stats, initsSwitch, uninitsSwitch);
-            // Warn about fall-through if lint switch fallthrough enabled.
-            if (!loopPassTwo &&
-                alive &&
-                lint.isEnabled(Lint.LintCategory.FALLTHROUGH) &&
-                c.stats.nonEmpty() && l.tail.nonEmpty())
-                log.warning(Lint.LintCategory.FALLTHROUGH,
-                            l.tail.head.pos(),
-                            "possible.fall-through.into.case");
+            for (List<JCCatch> l = tree.catchers; l.nonEmpty(); l = l.tail) {
+                JCVariableDecl param = l.head.param;
+                inits = initsTry.dup();
+                uninits = uninitsTry.dup();
+                scan(param);
+                inits.incl(param.sym.adr);
+                uninits.excl(param.sym.adr);
+                scan(l.head.body);
+                initsEnd.andSet(inits);
+                uninitsEnd.andSet(uninits);
+                nextadr = nextadrCatch;
+            }
+            if (tree.finalizer != null) {
+                inits = initsTry.dup();
+                uninits = uninitsTry.dup();
+                ListBuffer<AssignPendingExit> exits = pendingExits;
+                pendingExits = prevPendingExits;
+                scan(tree.finalizer);
+                if (!tree.finallyCanCompleteNormally) {
+                    // discard exits and exceptions from try and finally
+                } else {
+                    uninits.andSet(uninitsEnd);
+                    // FIX: this doesn't preserve source order of exits in catch
+                    // versus finally!
+                    while (exits.nonEmpty()) {
+                        AssignPendingExit exit = exits.next();
+                        if (exit.exit_inits != null) {
+                            exit.exit_inits.orSet(inits);
+                            exit.exit_uninits.andSet(uninits);
+                        }
+                        pendingExits.append(exit);
+                    }
+                    inits.orSet(initsEnd);
+                }
+            } else {
+                inits = initsEnd;
+                uninits = uninitsEnd;
+                ListBuffer<AssignPendingExit> exits = pendingExits;
+                pendingExits = prevPendingExits;
+                while (exits.nonEmpty()) pendingExits.append(exits.next());
+            }
+            uninitsTry.andSet(uninitsTryPrev).andSet(uninits);
         }
-        if (!hasDefault) {
-            inits.andSet(initsSwitch);
-            alive = true;
-        }
-        alive |= resolveBreaks(tree, prevPendingExits);
-        nextadr = nextadrPrev;
-    }
-    // where
-        /** Add any variables defined in stats to inits and uninits. */
-        private static void addVars(List<JCStatement> stats, Bits inits,
-                                    Bits uninits) {
-            for (;stats.nonEmpty(); stats = stats.tail) {
-                JCTree stat = stats.head;
-                if (stat.hasTag(VARDEF)) {
-                    int adr = ((JCVariableDecl) stat).sym.adr;
-                    inits.excl(adr);
-                    uninits.incl(adr);
-                }
+
+        public void visitConditional(JCConditional tree) {
+            scanCond(tree.cond);
+            Bits initsBeforeElse = initsWhenFalse;
+            Bits uninitsBeforeElse = uninitsWhenFalse;
+            inits = initsWhenTrue;
+            uninits = uninitsWhenTrue;
+            if (tree.truepart.type.tag == BOOLEAN &&
+                tree.falsepart.type.tag == BOOLEAN) {
+                // if b and c are boolean valued, then
+                // v is (un)assigned after a?b:c when true iff
+                //    v is (un)assigned after b when true and
+                //    v is (un)assigned after c when true
+                scanCond(tree.truepart);
+                Bits initsAfterThenWhenTrue = initsWhenTrue.dup();
+                Bits initsAfterThenWhenFalse = initsWhenFalse.dup();
+                Bits uninitsAfterThenWhenTrue = uninitsWhenTrue.dup();
+                Bits uninitsAfterThenWhenFalse = uninitsWhenFalse.dup();
+                inits = initsBeforeElse;
+                uninits = uninitsBeforeElse;
+                scanCond(tree.falsepart);
+                initsWhenTrue.andSet(initsAfterThenWhenTrue);
+                initsWhenFalse.andSet(initsAfterThenWhenFalse);
+                uninitsWhenTrue.andSet(uninitsAfterThenWhenTrue);
+                uninitsWhenFalse.andSet(uninitsAfterThenWhenFalse);
+            } else {
+                scanExpr(tree.truepart);
+                Bits initsAfterThen = inits.dup();
+                Bits uninitsAfterThen = uninits.dup();
+                inits = initsBeforeElse;
+                uninits = uninitsBeforeElse;
+                scanExpr(tree.falsepart);
+                inits.andSet(initsAfterThen);
+                uninits.andSet(uninitsAfterThen);
             }
         }
 
-    public void visitTry(JCTry tree) {
-        List<Type> caughtPrev = caught;
-        List<Type> thrownPrev = thrown;
-        thrown = List.nil();
-        for (List<JCCatch> l = tree.catchers; l.nonEmpty(); l = l.tail) {
-            List<JCExpression> subClauses = TreeInfo.isMultiCatch(l.head) ?
-                    ((JCTypeUnion)l.head.param.vartype).alternatives :
-                    List.of(l.head.param.vartype);
-            for (JCExpression ct : subClauses) {
-                caught = chk.incl(ct.type, caught);
-            }
-        }
-        ListBuffer<JCVariableDecl> resourceVarDecls = ListBuffer.lb();
-        Bits uninitsTryPrev = uninitsTry;
-        ListBuffer<PendingExit> prevPendingExits = pendingExits;
-        pendingExits = new ListBuffer<PendingExit>();
-        Bits initsTry = inits.dup();
-        uninitsTry = uninits.dup();
-        for (JCTree resource : tree.resources) {
-            if (resource instanceof JCVariableDecl) {
-                JCVariableDecl vdecl = (JCVariableDecl) resource;
-                visitVarDef(vdecl);
-                unrefdResources.enter(vdecl.sym);
-                resourceVarDecls.append(vdecl);
-            } else if (resource instanceof JCExpression) {
-                scanExpr((JCExpression) resource);
+        public void visitIf(JCIf tree) {
+            scanCond(tree.cond);
+            Bits initsBeforeElse = initsWhenFalse;
+            Bits uninitsBeforeElse = uninitsWhenFalse;
+            inits = initsWhenTrue;
+            uninits = uninitsWhenTrue;
+            scan(tree.thenpart);
+            if (tree.elsepart != null) {
+                Bits initsAfterThen = inits.dup();
+                Bits uninitsAfterThen = uninits.dup();
+                inits = initsBeforeElse;
+                uninits = uninitsBeforeElse;
+                scan(tree.elsepart);
+                inits.andSet(initsAfterThen);
+                uninits.andSet(uninitsAfterThen);
             } else {
-                throw new AssertionError(tree);  // parser error
-            }
-        }
-        for (JCTree resource : tree.resources) {
-            List<Type> closeableSupertypes = resource.type.isCompound() ?
-                types.interfaces(resource.type).prepend(types.supertype(resource.type)) :
-                List.of(resource.type);
-            for (Type sup : closeableSupertypes) {
-                if (types.asSuper(sup, syms.autoCloseableType.tsym) != null) {
-                    Symbol closeMethod = rs.resolveQualifiedMethod(tree,
-                            attrEnv,
-                            sup,
-                            names.close,
-                            List.<Type>nil(),
-                            List.<Type>nil());
-                    if (closeMethod.kind == MTH) {
-                        for (Type t : ((MethodSymbol)closeMethod).getThrownTypes()) {
-                            markThrown(resource, t);
-                        }
-                    }
-                }
-            }
-        }
-        scanStat(tree.body);
-        List<Type> thrownInTry = allowImprovedCatchAnalysis ?
-            chk.union(thrown, List.of(syms.runtimeExceptionType, syms.errorType)) :
-            thrown;
-        thrown = thrownPrev;
-        caught = caughtPrev;
-        boolean aliveEnd = alive;
-        uninitsTry.andSet(uninits);
-        Bits initsEnd = inits;
-        Bits uninitsEnd = uninits;
-        int nextadrCatch = nextadr;
-
-        if (!resourceVarDecls.isEmpty() &&
-                lint.isEnabled(Lint.LintCategory.TRY)) {
-            for (JCVariableDecl resVar : resourceVarDecls) {
-                if (unrefdResources.includes(resVar.sym)) {
-                    log.warning(Lint.LintCategory.TRY, resVar.pos(),
-                                "try.resource.not.referenced", resVar.sym);
-                    unrefdResources.remove(resVar.sym);
-                }
+                inits.andSet(initsBeforeElse);
+                uninits.andSet(uninitsBeforeElse);
             }
         }
 
-        List<Type> caughtInTry = List.nil();
-        for (List<JCCatch> l = tree.catchers; l.nonEmpty(); l = l.tail) {
-            alive = true;
-            JCVariableDecl param = l.head.param;
-            List<JCExpression> subClauses = TreeInfo.isMultiCatch(l.head) ?
-                    ((JCTypeUnion)l.head.param.vartype).alternatives :
-                    List.of(l.head.param.vartype);
-            List<Type> ctypes = List.nil();
-            List<Type> rethrownTypes = chk.diff(thrownInTry, caughtInTry);
-            for (JCExpression ct : subClauses) {
-                Type exc = ct.type;
-                if (exc != syms.unknownType) {
-                    ctypes = ctypes.append(exc);
-                    if (types.isSameType(exc, syms.objectType))
-                        continue;
-                    checkCaughtType(l.head.pos(), exc, thrownInTry, caughtInTry);
-                    caughtInTry = chk.incl(exc, caughtInTry);
-                }
+        public void visitBreak(JCBreak tree) {
+            recordExit(tree, new AssignPendingExit(tree, inits, uninits));
+        }
+
+        public void visitContinue(JCContinue tree) {
+            recordExit(tree, new AssignPendingExit(tree, inits, uninits));
+        }
+
+        public void visitReturn(JCReturn tree) {
+            scanExpr(tree.expr);
+            // if not initial constructor, should markDead instead of recordExit
+            recordExit(tree, new AssignPendingExit(tree, inits, uninits));
+        }
+
+        public void visitThrow(JCThrow tree) {
+            scanExpr(tree.expr);
+            markDead();
+        }
+
+        public void visitApply(JCMethodInvocation tree) {
+            scanExpr(tree.meth);
+            scanExprs(tree.args);
+        }
+
+        public void visitNewClass(JCNewClass tree) {
+            scanExpr(tree.encl);
+            scanExprs(tree.args);
+            scan(tree.def);
+        }
+
+        public void visitNewArray(JCNewArray tree) {
+            scanExprs(tree.dims);
+            scanExprs(tree.elems);
+        }
+
+        public void visitAssert(JCAssert tree) {
+            Bits initsExit = inits.dup();
+            Bits uninitsExit = uninits.dup();
+            scanCond(tree.cond);
+            uninitsExit.andSet(uninitsWhenTrue);
+            if (tree.detail != null) {
+                inits = initsWhenFalse;
+                uninits = uninitsWhenFalse;
+                scanExpr(tree.detail);
             }
-            inits = initsTry.dup();
-            uninits = uninitsTry.dup();
-            scan(param);
-            inits.incl(param.sym.adr);
-            uninits.excl(param.sym.adr);
-            preciseRethrowTypes.put(param.sym, chk.intersect(ctypes, rethrownTypes));
-            scanStat(l.head.body);
-            initsEnd.andSet(inits);
-            uninitsEnd.andSet(uninits);
-            nextadr = nextadrCatch;
-            preciseRethrowTypes.remove(param.sym);
-            aliveEnd |= alive;
+            inits = initsExit;
+            uninits = uninitsExit;
+        }
+
+        public void visitAssign(JCAssign tree) {
+            JCTree lhs = TreeInfo.skipParens(tree.lhs);
+            if (!(lhs instanceof JCIdent)) scanExpr(lhs);
+            scanExpr(tree.rhs);
+            letInit(lhs);
+        }
+
+        public void visitAssignop(JCAssignOp tree) {
+            scanExpr(tree.lhs);
+            scanExpr(tree.rhs);
+            letInit(tree.lhs);
+        }
+
+        public void visitUnary(JCUnary tree) {
+            switch (tree.getTag()) {
+            case NOT:
+                scanCond(tree.arg);
+                Bits t = initsWhenFalse;
+                initsWhenFalse = initsWhenTrue;
+                initsWhenTrue = t;
+                t = uninitsWhenFalse;
+                uninitsWhenFalse = uninitsWhenTrue;
+                uninitsWhenTrue = t;
+                break;
+            case PREINC: case POSTINC:
+            case PREDEC: case POSTDEC:
+                scanExpr(tree.arg);
+                letInit(tree.arg);
+                break;
+            default:
+                scanExpr(tree.arg);
+            }
         }
-        if (tree.finalizer != null) {
-            List<Type> savedThrown = thrown;
-            thrown = List.nil();
-            inits = initsTry.dup();
-            uninits = uninitsTry.dup();
-            ListBuffer<PendingExit> exits = pendingExits;
-            pendingExits = prevPendingExits;
-            alive = true;
-            scanStat(tree.finalizer);
-            if (!alive) {
-                // discard exits and exceptions from try and finally
-                thrown = chk.union(thrown, thrownPrev);
-                if (!loopPassTwo &&
-                    lint.isEnabled(Lint.LintCategory.FINALLY)) {
-                    log.warning(Lint.LintCategory.FINALLY,
-                            TreeInfo.diagEndPos(tree.finalizer),
-                            "finally.cannot.complete");
-                }
-            } else {
-                thrown = chk.union(thrown, chk.diff(thrownInTry, caughtInTry));
-                thrown = chk.union(thrown, savedThrown);
-                uninits.andSet(uninitsEnd);
-                // FIX: this doesn't preserve source order of exits in catch
-                // versus finally!
-                while (exits.nonEmpty()) {
-                    PendingExit exit = exits.next();
-                    if (exit.inits != null) {
-                        exit.inits.orSet(inits);
-                        exit.uninits.andSet(uninits);
-                    }
-                    pendingExits.append(exit);
-                }
-                inits.orSet(initsEnd);
-                alive = aliveEnd;
+
+        public void visitBinary(JCBinary tree) {
+            switch (tree.getTag()) {
+            case AND:
+                scanCond(tree.lhs);
+                Bits initsWhenFalseLeft = initsWhenFalse;
+                Bits uninitsWhenFalseLeft = uninitsWhenFalse;
+                inits = initsWhenTrue;
+                uninits = uninitsWhenTrue;
+                scanCond(tree.rhs);
+                initsWhenFalse.andSet(initsWhenFalseLeft);
+                uninitsWhenFalse.andSet(uninitsWhenFalseLeft);
+                break;
+            case OR:
+                scanCond(tree.lhs);
+                Bits initsWhenTrueLeft = initsWhenTrue;
+                Bits uninitsWhenTrueLeft = uninitsWhenTrue;
+                inits = initsWhenFalse;
+                uninits = uninitsWhenFalse;
+                scanCond(tree.rhs);
+                initsWhenTrue.andSet(initsWhenTrueLeft);
+                uninitsWhenTrue.andSet(uninitsWhenTrueLeft);
+                break;
+            default:
+                scanExpr(tree.lhs);
+                scanExpr(tree.rhs);
+            }
+        }
+
+        public void visitIdent(JCIdent tree) {
+            if (tree.sym.kind == VAR) {
+                checkInit(tree.pos(), (VarSymbol)tree.sym);
+                referenced(tree.sym);
             }
-        } else {
-            thrown = chk.union(thrown, chk.diff(thrownInTry, caughtInTry));
-            inits = initsEnd;
-            uninits = uninitsEnd;
-            alive = aliveEnd;
-            ListBuffer<PendingExit> exits = pendingExits;
-            pendingExits = prevPendingExits;
-            while (exits.nonEmpty()) pendingExits.append(exits.next());
+        }
+
+        void referenced(Symbol sym) {
+            unrefdResources.remove(sym);
         }
-        uninitsTry.andSet(uninitsTryPrev).andSet(uninits);
-    }
+
+        public void visitTopLevel(JCCompilationUnit tree) {
+            // Do nothing for TopLevel since each class is visited individually
+        }
+
+    /**************************************************************************
+     * main method
+     *************************************************************************/
 
-    void checkCaughtType(DiagnosticPosition pos, Type exc, List<Type> thrownInTry, List<Type> caughtInTry) {
-        if (chk.subset(exc, caughtInTry)) {
-            log.error(pos, "except.already.caught", exc);
-        } else if (!chk.isUnchecked(pos, exc) &&
-                !isExceptionOrThrowable(exc) &&
-                !chk.intersects(exc, thrownInTry)) {
-            log.error(pos, "except.never.thrown.in.try", exc);
-        } else if (allowImprovedCatchAnalysis) {
-            List<Type> catchableThrownTypes = chk.intersect(List.of(exc), thrownInTry);
-            // 'catchableThrownTypes' cannnot possibly be empty - if 'exc' was an
-            // unchecked exception, the result list would not be empty, as the augmented
-            // thrown set includes { RuntimeException, Error }; if 'exc' was a checked
-            // exception, that would have been covered in the branch above
-            if (chk.diff(catchableThrownTypes, caughtInTry).isEmpty() &&
-                    !isExceptionOrThrowable(exc)) {
-                String key = catchableThrownTypes.length() == 1 ?
-                        "unreachable.catch" :
-                        "unreachable.catch.1";
-                log.warning(pos, key, catchableThrownTypes);
+        /** Perform definite assignment/unassignment analysis on a tree.
+         */
+        public void analyzeTree(Env<AttrContext> env, TreeMaker make) {
+            try {
+                attrEnv = env;
+                JCTree tree = env.tree;
+                Flow.this.make = make;
+                inits = new Bits();
+                uninits = new Bits();
+                uninitsTry = new Bits();
+                initsWhenTrue = initsWhenFalse =
+                    uninitsWhenTrue = uninitsWhenFalse = null;
+                if (vars == null)
+                    vars = new VarSymbol[32];
+                else
+                    for (int i=0; i<vars.length; i++)
+                        vars[i] = null;
+                firstadr = 0;
+                nextadr = 0;
+                pendingExits = new ListBuffer<AssignPendingExit>();
+                this.classDef = null;
+                unrefdResources = new Scope(env.enclClass.sym);
+                scan(tree);
+            } finally {
+                // note that recursive invocations of this method fail hard
+                inits = uninits = uninitsTry = null;
+                initsWhenTrue = initsWhenFalse =
+                    uninitsWhenTrue = uninitsWhenFalse = null;
+                if (vars != null) for (int i=0; i<vars.length; i++)
+                    vars[i] = null;
+                firstadr = 0;
+                nextadr = 0;
+                pendingExits = null;
+                Flow.this.make = null;
+                this.classDef = null;
+                unrefdResources = null;
             }
         }
     }
-    //where
-        private boolean isExceptionOrThrowable(Type exc) {
-            return exc.tsym == syms.throwableType.tsym ||
-                exc.tsym == syms.exceptionType.tsym;
-        }
-
-
-    public void visitConditional(JCConditional tree) {
-        scanCond(tree.cond);
-        Bits initsBeforeElse = initsWhenFalse;
-        Bits uninitsBeforeElse = uninitsWhenFalse;
-        inits = initsWhenTrue;
-        uninits = uninitsWhenTrue;
-        if (tree.truepart.type.tag == BOOLEAN &&
-            tree.falsepart.type.tag == BOOLEAN) {
-            // if b and c are boolean valued, then
-            // v is (un)assigned after a?b:c when true iff
-            //    v is (un)assigned after b when true and
-            //    v is (un)assigned after c when true
-            scanCond(tree.truepart);
-            Bits initsAfterThenWhenTrue = initsWhenTrue.dup();
-            Bits initsAfterThenWhenFalse = initsWhenFalse.dup();
-            Bits uninitsAfterThenWhenTrue = uninitsWhenTrue.dup();
-            Bits uninitsAfterThenWhenFalse = uninitsWhenFalse.dup();
-            inits = initsBeforeElse;
-            uninits = uninitsBeforeElse;
-            scanCond(tree.falsepart);
-            initsWhenTrue.andSet(initsAfterThenWhenTrue);
-            initsWhenFalse.andSet(initsAfterThenWhenFalse);
-            uninitsWhenTrue.andSet(uninitsAfterThenWhenTrue);
-            uninitsWhenFalse.andSet(uninitsAfterThenWhenFalse);
-        } else {
-            scanExpr(tree.truepart);
-            Bits initsAfterThen = inits.dup();
-            Bits uninitsAfterThen = uninits.dup();
-            inits = initsBeforeElse;
-            uninits = uninitsBeforeElse;
-            scanExpr(tree.falsepart);
-            inits.andSet(initsAfterThen);
-            uninits.andSet(uninitsAfterThen);
-        }
-    }
-
-    public void visitIf(JCIf tree) {
-        scanCond(tree.cond);
-        Bits initsBeforeElse = initsWhenFalse;
-        Bits uninitsBeforeElse = uninitsWhenFalse;
-        inits = initsWhenTrue;
-        uninits = uninitsWhenTrue;
-        scanStat(tree.thenpart);
-        if (tree.elsepart != null) {
-            boolean aliveAfterThen = alive;
-            alive = true;
-            Bits initsAfterThen = inits.dup();
-            Bits uninitsAfterThen = uninits.dup();
-            inits = initsBeforeElse;
-            uninits = uninitsBeforeElse;
-            scanStat(tree.elsepart);
-            inits.andSet(initsAfterThen);
-            uninits.andSet(uninitsAfterThen);
-            alive = alive | aliveAfterThen;
-        } else {
-            inits.andSet(initsBeforeElse);
-            uninits.andSet(uninitsBeforeElse);
-            alive = true;
-        }
-    }
-
-
-
-    public void visitBreak(JCBreak tree) {
-        recordExit(tree);
-    }
-
-    public void visitContinue(JCContinue tree) {
-        recordExit(tree);
-    }
-
-    public void visitReturn(JCReturn tree) {
-        scanExpr(tree.expr);
-        // if not initial constructor, should markDead instead of recordExit
-        recordExit(tree);
-    }
-
-    public void visitThrow(JCThrow tree) {
-        scanExpr(tree.expr);
-        Symbol sym = TreeInfo.symbol(tree.expr);
-        if (sym != null &&
-            sym.kind == VAR &&
-            (sym.flags() & (FINAL | EFFECTIVELY_FINAL)) != 0 &&
-            preciseRethrowTypes.get(sym) != null &&
-            allowImprovedRethrowAnalysis) {
-            for (Type t : preciseRethrowTypes.get(sym)) {
-                markThrown(tree, t);
-            }
-        }
-        else {
-            markThrown(tree, tree.expr.type);
-        }
-        markDead();
-    }
-
-    public void visitApply(JCMethodInvocation tree) {
-        scanExpr(tree.meth);
-        scanExprs(tree.args);
-        for (List<Type> l = tree.meth.type.getThrownTypes(); l.nonEmpty(); l = l.tail)
-            markThrown(tree, l.head);
-    }
-
-    public void visitNewClass(JCNewClass tree) {
-        scanExpr(tree.encl);
-        scanExprs(tree.args);
-       // scan(tree.def);
-        for (List<Type> l = tree.constructorType.getThrownTypes();
-             l.nonEmpty();
-             l = l.tail) {
-            markThrown(tree, l.head);
-        }
-        List<Type> caughtPrev = caught;
-        try {
-            // If the new class expression defines an anonymous class,
-            // analysis of the anonymous constructor may encounter thrown
-            // types which are unsubstituted type variables.
-            // However, since the constructor's actual thrown types have
-            // already been marked as thrown, it is safe to simply include
-            // each of the constructor's formal thrown types in the set of
-            // 'caught/declared to be thrown' types, for the duration of
-            // the class def analysis.
-            if (tree.def != null)
-                for (List<Type> l = tree.constructor.type.getThrownTypes();
-                     l.nonEmpty();
-                     l = l.tail) {
-                    caught = chk.incl(l.head, caught);
-                }
-            scan(tree.def);
-        }
-        finally {
-            caught = caughtPrev;
-        }
-    }
-
-    public void visitNewArray(JCNewArray tree) {
-        scanExprs(tree.dims);
-        scanExprs(tree.elems);
-    }
-
-    public void visitAssert(JCAssert tree) {
-        Bits initsExit = inits.dup();
-        Bits uninitsExit = uninits.dup();
-        scanCond(tree.cond);
-        uninitsExit.andSet(uninitsWhenTrue);
-        if (tree.detail != null) {
-            inits = initsWhenFalse;
-            uninits = uninitsWhenFalse;
-            scanExpr(tree.detail);
-        }
-        inits = initsExit;
-        uninits = uninitsExit;
-    }
-
-    public void visitAssign(JCAssign tree) {
-        JCTree lhs = TreeInfo.skipParens(tree.lhs);
-        if (!(lhs instanceof JCIdent)) scanExpr(lhs);
-        scanExpr(tree.rhs);
-        letInit(lhs);
-    }
-
-    public void visitAssignop(JCAssignOp tree) {
-        scanExpr(tree.lhs);
-        scanExpr(tree.rhs);
-        letInit(tree.lhs);
-    }
-
-    public void visitUnary(JCUnary tree) {
-        switch (tree.getTag()) {
-        case NOT:
-            scanCond(tree.arg);
-            Bits t = initsWhenFalse;
-            initsWhenFalse = initsWhenTrue;
-            initsWhenTrue = t;
-            t = uninitsWhenFalse;
-            uninitsWhenFalse = uninitsWhenTrue;
-            uninitsWhenTrue = t;
-            break;
-        case PREINC: case POSTINC:
-        case PREDEC: case POSTDEC:
-            scanExpr(tree.arg);
-            letInit(tree.arg);
-            break;
-        default:
-            scanExpr(tree.arg);
-        }
-    }
-
-    public void visitBinary(JCBinary tree) {
-        switch (tree.getTag()) {
-        case AND:
-            scanCond(tree.lhs);
-            Bits initsWhenFalseLeft = initsWhenFalse;
-            Bits uninitsWhenFalseLeft = uninitsWhenFalse;
-            inits = initsWhenTrue;
-            uninits = uninitsWhenTrue;
-            scanCond(tree.rhs);
-            initsWhenFalse.andSet(initsWhenFalseLeft);
-            uninitsWhenFalse.andSet(uninitsWhenFalseLeft);
-            break;
-        case OR:
-            scanCond(tree.lhs);
-            Bits initsWhenTrueLeft = initsWhenTrue;
-            Bits uninitsWhenTrueLeft = uninitsWhenTrue;
-            inits = initsWhenFalse;
-            uninits = uninitsWhenFalse;
-            scanCond(tree.rhs);
-            initsWhenTrue.andSet(initsWhenTrueLeft);
-            uninitsWhenTrue.andSet(uninitsWhenTrueLeft);
-            break;
-        default:
-            scanExpr(tree.lhs);
-            scanExpr(tree.rhs);
-        }
-    }
-
-    public void visitIdent(JCIdent tree) {
-        if (tree.sym.kind == VAR) {
-            checkInit(tree.pos(), (VarSymbol)tree.sym);
-            referenced(tree.sym);
-        }
-    }
-
-    void referenced(Symbol sym) {
-        unrefdResources.remove(sym);
-    }
-
-    public void visitTypeCast(JCTypeCast tree) {
-        super.visitTypeCast(tree);
-        if (!tree.type.isErroneous()
-            && lint.isEnabled(Lint.LintCategory.CAST)
-            && types.isSameType(tree.expr.type, tree.clazz.type)
-            && !is292targetTypeCast(tree)) {
-            log.warning(Lint.LintCategory.CAST,
-                    tree.pos(), "redundant.cast", tree.expr.type);
-        }
-    }
-    //where
-        private boolean is292targetTypeCast(JCTypeCast tree) {
-            boolean is292targetTypeCast = false;
-            JCExpression expr = TreeInfo.skipParens(tree.expr);
-            if (expr.hasTag(APPLY)) {
-                JCMethodInvocation apply = (JCMethodInvocation)expr;
-                Symbol sym = TreeInfo.symbol(apply.meth);
-                is292targetTypeCast = sym != null &&
-                    sym.kind == MTH &&
-                    (sym.flags() & POLYMORPHIC_SIGNATURE) != 0;
-            }
-            return is292targetTypeCast;
-        }
-
-    public void visitTopLevel(JCCompilationUnit tree) {
-        // Do nothing for TopLevel since each class is visited individually
-    }
-
-/**************************************************************************
- * main method
- *************************************************************************/
-
-    /** Perform definite assignment/unassignment analysis on a tree.
-     */
-    public void analyzeTree(Env<AttrContext> env, TreeMaker make) {
-        try {
-            attrEnv = env;
-            JCTree tree = env.tree;
-            this.make = make;
-            inits = new Bits();
-            uninits = new Bits();
-            uninitsTry = new Bits();
-            initsWhenTrue = initsWhenFalse =
-                uninitsWhenTrue = uninitsWhenFalse = null;
-            if (vars == null)
-                vars = new VarSymbol[32];
-            else
-                for (int i=0; i<vars.length; i++)
-                    vars[i] = null;
-            firstadr = 0;
-            nextadr = 0;
-            pendingExits = new ListBuffer<PendingExit>();
-            preciseRethrowTypes = new HashMap<Symbol, List<Type>>();
-            alive = true;
-            this.thrown = this.caught = null;
-            this.classDef = null;
-            unrefdResources = new Scope(env.enclClass.sym);
-            scan(tree);
-        } finally {
-            // note that recursive invocations of this method fail hard
-            inits = uninits = uninitsTry = null;
-            initsWhenTrue = initsWhenFalse =
-                uninitsWhenTrue = uninitsWhenFalse = null;
-            if (vars != null) for (int i=0; i<vars.length; i++)
-                vars[i] = null;
-            firstadr = 0;
-            nextadr = 0;
-            pendingExits = null;
-            this.make = null;
-            this.thrown = this.caught = null;
-            this.classDef = null;
-            unrefdResources = null;
-        }
-    }
 }
--- a/langtools/src/share/classes/com/sun/tools/javac/comp/Infer.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Infer.java	Wed Jul 05 18:07:57 2017 +0200
@@ -347,7 +347,7 @@
                     that.tvars,
                     instantiateAsUninferredVars(undetvars, that.tvars));
         }
-        return chk.checkType(warn.pos(), that.inst(targs, types), to);
+        return that.inst(targs, types);
     }
     //where
     private List<Type> instantiateAsUninferredVars(List<Type> undetvars, List<Type> tvars) {
@@ -603,8 +603,7 @@
      * method signature. The target return type is computed from the immediately
      * enclosing scope surrounding the polymorphic-signature call.
      */
-    Type instantiatePolymorphicSignatureInstance(Env<AttrContext> env, Type site,
-                                            Name name,
+    Type instantiatePolymorphicSignatureInstance(Env<AttrContext> env,
                                             MethodSymbol spMethod,  // sig. poly. method or null if none
                                             List<Type> argtypes) {
         final Type restype;
--- a/langtools/src/share/classes/com/sun/tools/javac/comp/MemberEnter.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/MemberEnter.java	Wed Jul 05 18:07:57 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -781,20 +781,6 @@
                 && s.owner.kind != MTH
                 && types.isSameType(c.type, syms.deprecatedType))
                 s.flags_field |= Flags.DEPRECATED;
-            // Internally to java.lang.invoke, a @PolymorphicSignature annotation
-            // acts like a classfile attribute.
-            if (!c.type.isErroneous() &&
-                types.isSameType(c.type, syms.polymorphicSignatureType)) {
-                if (!target.hasMethodHandles()) {
-                    // Somebody is compiling JDK7 source code to a JDK6 target.
-                    // Make it an error, since it is unlikely but important.
-                    log.error(env.tree.pos(),
-                            "wrong.target.for.polymorphic.signature.definition",
-                            target.name);
-                }
-                // Pull the flag through for better diagnostics, even on a bad target.
-                s.flags_field |= Flags.POLYMORPHIC_SIGNATURE;
-            }
             if (!annotated.add(a.type.tsym))
                 log.error(a.pos, "duplicate.annotation");
         }
--- a/langtools/src/share/classes/com/sun/tools/javac/comp/Resolve.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Resolve.java	Wed Jul 05 18:07:57 2017 +0200
@@ -29,6 +29,8 @@
 import com.sun.tools.javac.code.*;
 import com.sun.tools.javac.code.Type.*;
 import com.sun.tools.javac.code.Symbol.*;
+import com.sun.tools.javac.comp.Attr.ResultInfo;
+import com.sun.tools.javac.comp.Check.CheckContext;
 import com.sun.tools.javac.comp.Resolve.MethodResolutionContext.Candidate;
 import com.sun.tools.javac.jvm.*;
 import com.sun.tools.javac.tree.*;
@@ -70,6 +72,7 @@
     Names names;
     Log log;
     Symtab syms;
+    Attr attr;
     Check chk;
     Infer infer;
     ClassReader reader;
@@ -101,6 +104,7 @@
 
         names = Names.instance(context);
         log = Log.instance(context);
+        attr = Attr.instance(context);
         chk = Check.instance(context);
         infer = Infer.instance(context);
         reader = ClassReader.instance(context);
@@ -395,7 +399,6 @@
         else {
             Symbol s2 = ((MethodSymbol)sym).implementation(site.tsym, types, true);
             return (s2 == null || s2 == sym || sym.owner == s2.owner ||
-                    s2.isPolymorphicSignatureGeneric() ||
                     !types.isSubSignature(types.memberType(site, s2), types.memberType(site, sym)));
         }
     }
@@ -445,7 +448,6 @@
                         boolean useVarargs,
                         Warner warn)
         throws Infer.InferenceException {
-        boolean polymorphicSignature = m.isPolymorphicSignatureGeneric() && allowMethodHandles;
         if (useVarargs && (m.flags() & VARARGS) == 0)
             throw inapplicableMethodException.setMessage();
         Type mt = types.memberType(site, m);
@@ -486,8 +488,7 @@
         }
 
         // find out whether we need to go the slow route via infer
-        boolean instNeeded = tvars.tail != null || /*inlined: tvars.nonEmpty()*/
-                polymorphicSignature;
+        boolean instNeeded = tvars.tail != null; /*inlined: tvars.nonEmpty()*/
         for (List<Type> l = argtypes;
              l.tail != null/*inlined: l.nonEmpty()*/ && !instNeeded;
              l = l.tail) {
@@ -495,9 +496,7 @@
         }
 
         if (instNeeded)
-            return polymorphicSignature ?
-                infer.instantiatePolymorphicSignatureInstance(env, site, m.name, (MethodSymbol)m, argtypes) :
-                infer.instantiateMethod(env,
+            return infer.instantiateMethod(env,
                                     tvars,
                                     (MethodType)mt,
                                     m,
@@ -627,15 +626,8 @@
         }
 
         while (argtypes.nonEmpty() && formals.head != varargsFormal) {
-            Type undetFormal = infer.asUndetType(formals.head, undetvars);
-            Type capturedActual = types.capture(argtypes.head);
-            boolean works = allowBoxing ?
-                    types.isConvertible(capturedActual, undetFormal, warn) :
-                    types.isSubtypeUnchecked(capturedActual, undetFormal, warn);
-            if (!works) {
-                throw handler.argumentMismatch(false, argtypes.head, formals.head);
-            }
-            checkedArgs.append(capturedActual);
+            ResultInfo resultInfo = methodCheckResult(formals.head, allowBoxing, false, undetvars, handler, warn);
+            checkedArgs.append(resultInfo.check(env.tree.pos(), argtypes.head));
             argtypes = argtypes.tail;
             formals = formals.tail;
         }
@@ -648,13 +640,9 @@
             //note: if applicability check is triggered by most specific test,
             //the last argument of a varargs is _not_ an array type (see JLS 15.12.2.5)
             Type elt = types.elemtype(varargsFormal);
-            Type eltUndet = infer.asUndetType(elt, undetvars);
             while (argtypes.nonEmpty()) {
-                Type capturedActual = types.capture(argtypes.head);
-                if (!types.isConvertible(capturedActual, eltUndet, warn)) {
-                    throw handler.argumentMismatch(true, argtypes.head, elt);
-                }
-                checkedArgs.append(capturedActual);
+                ResultInfo resultInfo = methodCheckResult(elt, allowBoxing, true, undetvars, handler, warn);
+                checkedArgs.append(resultInfo.check(env.tree.pos(), argtypes.head));
                 argtypes = argtypes.tail;
             }
             //check varargs element type accessibility
@@ -665,39 +653,116 @@
         }
         return checkedArgs.toList();
     }
-    // where
-        public static class InapplicableMethodException extends RuntimeException {
-            private static final long serialVersionUID = 0;
+
+    /**
+     * Check context to be used during method applicability checks. A method check
+     * context might contain inference variables.
+     */
+    abstract class MethodCheckContext implements CheckContext {
+
+        MethodCheckHandler handler;
+        boolean useVarargs;
+        List<Type> undetvars;
+        Warner rsWarner;
 
-            JCDiagnostic diagnostic;
-            JCDiagnostic.Factory diags;
+        public MethodCheckContext(MethodCheckHandler handler, boolean useVarargs, List<Type> undetvars, Warner rsWarner) {
+            this.handler = handler;
+            this.useVarargs = useVarargs;
+            this.undetvars = undetvars;
+            this.rsWarner = rsWarner;
+        }
+
+        public void report(DiagnosticPosition pos, Type found, Type req, JCDiagnostic details) {
+            throw handler.argumentMismatch(useVarargs, found, req);
+        }
+
+        public Type rawInstantiatePoly(ForAll found, Type req, Warner warn) {
+            throw new AssertionError("ForAll in argument position");
+        }
+
+        public Warner checkWarner(DiagnosticPosition pos, Type found, Type req) {
+            return rsWarner;
+        }
+    }
 
-            InapplicableMethodException(JCDiagnostic.Factory diags) {
-                this.diagnostic = null;
-                this.diags = diags;
-            }
-            InapplicableMethodException setMessage() {
-                this.diagnostic = null;
-                return this;
+    /**
+     * Subclass of method check context class that implements strict method conversion.
+     * Strict method conversion checks compatibility between types using subtyping tests.
+     */
+    class StrictMethodContext extends MethodCheckContext {
+
+        public StrictMethodContext(MethodCheckHandler handler, boolean useVarargs, List<Type> undetvars, Warner rsWarner) {
+            super(handler, useVarargs, undetvars, rsWarner);
+        }
+
+        public boolean compatible(Type found, Type req, Warner warn) {
+            return types.isSubtypeUnchecked(found, infer.asUndetType(req, undetvars), warn);
+        }
+    }
+
+    /**
+     * Subclass of method check context class that implements loose method conversion.
+     * Loose method conversion checks compatibility between types using method conversion tests.
+     */
+    class LooseMethodContext extends MethodCheckContext {
+
+        public LooseMethodContext(MethodCheckHandler handler, boolean useVarargs, List<Type> undetvars, Warner rsWarner) {
+            super(handler, useVarargs, undetvars, rsWarner);
+        }
+
+        public boolean compatible(Type found, Type req, Warner warn) {
+            return types.isConvertible(found, infer.asUndetType(req, undetvars), warn);
+        }
+    }
+
+    /**
+     * Create a method check context to be used during method applicability check
+     */
+    ResultInfo methodCheckResult(Type to, boolean allowBoxing, boolean useVarargs,
+            List<Type> undetvars, MethodCheckHandler methodHandler, Warner rsWarner) {
+        MethodCheckContext checkContext = allowBoxing ?
+                new LooseMethodContext(methodHandler, useVarargs, undetvars, rsWarner) :
+                new StrictMethodContext(methodHandler, useVarargs, undetvars, rsWarner);
+        return attr.new ResultInfo(VAL, to, checkContext) {
+            @Override
+            protected Type check(DiagnosticPosition pos, Type found) {
+                return super.check(pos, chk.checkNonVoid(pos, types.capture(types.upperBound(found))));
             }
-            InapplicableMethodException setMessage(String key) {
-                this.diagnostic = key != null ? diags.fragment(key) : null;
-                return this;
-            }
-            InapplicableMethodException setMessage(String key, Object... args) {
-                this.diagnostic = key != null ? diags.fragment(key, args) : null;
-                return this;
-            }
-            InapplicableMethodException setMessage(JCDiagnostic diag) {
-                this.diagnostic = diag;
-                return this;
-            }
+        };
+    }
+
+    public static class InapplicableMethodException extends RuntimeException {
+        private static final long serialVersionUID = 0;
+
+        JCDiagnostic diagnostic;
+        JCDiagnostic.Factory diags;
 
-            public JCDiagnostic getDiagnostic() {
-                return diagnostic;
-            }
+        InapplicableMethodException(JCDiagnostic.Factory diags) {
+            this.diagnostic = null;
+            this.diags = diags;
+        }
+        InapplicableMethodException setMessage() {
+            this.diagnostic = null;
+            return this;
+        }
+        InapplicableMethodException setMessage(String key) {
+            this.diagnostic = key != null ? diags.fragment(key) : null;
+            return this;
         }
-        private final InapplicableMethodException inapplicableMethodException;
+        InapplicableMethodException setMessage(String key, Object... args) {
+            this.diagnostic = key != null ? diags.fragment(key, args) : null;
+            return this;
+        }
+        InapplicableMethodException setMessage(JCDiagnostic diag) {
+            this.diagnostic = diag;
+            return this;
+        }
+
+        public JCDiagnostic getDiagnostic() {
+            return diagnostic;
+        }
+    }
+    private final InapplicableMethodException inapplicableMethodException;
 
 /* ***************************************************************************
  *  Symbol lookup
@@ -1670,25 +1735,18 @@
                 steps = steps.tail;
             }
             if (sym.kind >= AMBIGUOUS) {
-                if (site.tsym.isPolymorphicSignatureGeneric()) {
-                    //polymorphic receiver - synthesize new method symbol
+                //if nothing is found return the 'first' error
+                MethodResolutionPhase errPhase =
+                        currentResolutionContext.firstErroneousResolutionPhase();
+                sym = access(currentResolutionContext.resolutionCache.get(errPhase),
+                        pos, location, site, name, true, argtypes, typeargtypes);
+                env.info.varArgs = errPhase.isVarargsRequired;
+            } else if (allowMethodHandles) {
+                MethodSymbol msym = (MethodSymbol)sym;
+                if (msym.isSignaturePolymorphic(types)) {
                     env.info.varArgs = false;
-                    sym = findPolymorphicSignatureInstance(env,
-                            site, name, null, argtypes);
+                    return findPolymorphicSignatureInstance(env, sym, argtypes);
                 }
-                else {
-                    //if nothing is found return the 'first' error
-                    MethodResolutionPhase errPhase =
-                            currentResolutionContext.firstErroneousResolutionPhase();
-                    sym = access(currentResolutionContext.resolutionCache.get(errPhase),
-                            pos, location, site, name, true, argtypes, typeargtypes);
-                    env.info.varArgs = errPhase.isVarargsRequired;
-                }
-            } else if (allowMethodHandles && sym.isPolymorphicSignatureGeneric()) {
-                //non-instantiated polymorphic signature - synthesize new method symbol
-                env.info.varArgs = false;
-                sym = findPolymorphicSignatureInstance(env,
-                        site, name, (MethodSymbol)sym, argtypes);
             }
             return sym;
         }
@@ -1701,40 +1759,25 @@
      *  Searches in a side table, not the main scope of the site.
      *  This emulates the lookup process required by JSR 292 in JVM.
      *  @param env       Attribution environment
-     *  @param site      The original type from where the selection takes place.
-     *  @param name      The method's name.
-     *  @param spMethod  A template for the implicit method, or null.
-     *  @param argtypes  The required argument types.
-     *  @param typeargtypes  The required type arguments.
+     *  @param spMethod  signature polymorphic method - i.e. MH.invokeExact
+     *  @param argtypes  The required argument types
      */
-    Symbol findPolymorphicSignatureInstance(Env<AttrContext> env, Type site,
-                                            Name name,
-                                            MethodSymbol spMethod,  // sig. poly. method or null if none
+    Symbol findPolymorphicSignatureInstance(Env<AttrContext> env,
+                                            Symbol spMethod,
                                             List<Type> argtypes) {
         Type mtype = infer.instantiatePolymorphicSignatureInstance(env,
-                site, name, spMethod, argtypes);
-        long flags = ABSTRACT | HYPOTHETICAL | POLYMORPHIC_SIGNATURE |
-                    (spMethod != null ?
-                        spMethod.flags() & Flags.AccessFlags :
-                        Flags.PUBLIC | Flags.STATIC);
-        Symbol m = null;
-        for (Scope.Entry e = polymorphicSignatureScope.lookup(name);
-             e.scope != null;
-             e = e.next()) {
-            Symbol sym = e.sym;
-            if (types.isSameType(mtype, sym.type) &&
-                (sym.flags() & Flags.STATIC) == (flags & Flags.STATIC) &&
-                types.isSameType(sym.owner.type, site)) {
-               m = sym;
-               break;
+                (MethodSymbol)spMethod, argtypes);
+        for (Symbol sym : polymorphicSignatureScope.getElementsByName(spMethod.name)) {
+            if (types.isSameType(mtype, sym.type)) {
+               return sym;
             }
         }
-        if (m == null) {
-            // create the desired method
-            m = new MethodSymbol(flags, name, mtype, site.tsym);
-            polymorphicSignatureScope.enter(m);
-        }
-        return m;
+
+        // create the desired method
+        long flags = ABSTRACT | HYPOTHETICAL | spMethod.flags() & Flags.AccessFlags;
+        Symbol msym = new MethodSymbol(flags, spMethod.name, mtype, spMethod.owner);
+        polymorphicSignatureScope.enter(msym);
+        return msym;
     }
 
     /** Resolve a qualified method identifier, throw a fatal error if not
--- a/langtools/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java	Wed Jul 05 18:07:57 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -1320,10 +1320,6 @@
                     sym.flags_field |= PROPRIETARY;
                 else
                     proxies.append(proxy);
-                if (majorVersion >= V51.major &&
-                    proxy.type.tsym == syms.polymorphicSignatureType.tsym) {
-                    sym.flags_field |= POLYMORPHIC_SIGNATURE;
-                }
             }
             annotate.later(new AnnotationCompleter(sym, proxies.toList()));
         }
--- a/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java	Wed Jul 05 18:07:57 2017 +0200
@@ -983,12 +983,13 @@
                                 t = lambdaExpressionOrStatement(variableDeclaratorId(mods, t), pos);
                                 break;
                             }
-                        } else {
-                            Assert.check((mode & EXPR) != 0);
+                        } else if ((mode & EXPR) != 0) {
                             mode = EXPR;
                             JCExpression e = term2Rest(t1, TreeInfo.shiftPrec);
                             t = F.at(pos1).Binary(op, t, e);
                             t = termRest(term1Rest(term2Rest(t, TreeInfo.orPrec)));
+                        } else {
+                            accept(GT);
                         }
                     } else if ((mode & TYPE) != 0 &&
                             (token.kind == IDENTIFIER || token.kind == ELLIPSIS)) {
--- a/langtools/src/share/classes/com/sun/tools/javac/resources/compiler.properties	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/javac/resources/compiler.properties	Wed Jul 05 18:07:57 2017 +0200
@@ -134,12 +134,6 @@
 compiler.err.array.req.but.found=\
     array required, but {0} found
 
-compiler.err.assignment.from.super-bound=\
-    assigning from wildcard {0}
-
-compiler.err.assignment.to.extends-bound=\
-    assigning to wildcard {0}
-
 compiler.err.attribute.value.must.be.constant=\
     attribute value must be constant
 
@@ -223,9 +217,6 @@
 compiler.err.no.superclass=\
     {0} has no superclass
 
-compiler.err.wrong.target.for.polymorphic.signature.definition=\
-    MethodHandle API building requires -target 7 runtimes or better; current is -target {0}
-
 # 0: symbol, 1: type, 2: symbol, 3: type, 4: unused
 compiler.err.concrete.inheritance.conflict=\
     methods {0} from {1} and {2} from {3} are inherited with the same signature
@@ -779,25 +770,23 @@
 compiler.err.undef.label=\
     undefined label: {0}
 
-compiler.err.undetermined.type=\
-    cannot infer type arguments for {0}
-
-# 0: type, 1: message segment
-compiler.err.undetermined.type.1=\
-    cannot infer type arguments for {0};\n\
+# 0: list of type, 1: message segment
+compiler.misc.invalid.inferred.types=\
+    invalid inferred types for {0}\n\
     reason: {1}
 
-# 0: list of type, 1: message segment
-compiler.err.invalid.inferred.types=\
-    invalid inferred types for {0}; {1}
-
 # 0: message segment, 1: unused
 compiler.err.cant.apply.diamond=\
     cannot infer type arguments for {0}
 
 # 0: message segment or type, 1: message segment
 compiler.err.cant.apply.diamond.1=\
-    cannot infer type arguments for {0};\n\
+    cannot infer type arguments for {0}\n\
+    reason: {1}
+
+# 0: message segment or type, 1: message segment
+compiler.misc.cant.apply.diamond.1=\
+    cannot infer type arguments for {0}\n\
     reason: {1}
 
 compiler.err.unreachable.stmt=\
@@ -1503,11 +1492,15 @@
 
 #####
 
-# 0: message segment, 1: type, 2: type
+# 0: type, 1: type
 compiler.err.prob.found.req=\
-    {0}\n\
-    required: {2}\n\
-    found:    {1}
+    incompatible types\n\
+    required: {1}\n\
+    found: {0}
+
+# 0: message segment
+compiler.err.prob.found.req.1=\
+    incompatible types: {0}
 
 # 0: message segment, 1: type, 2: type
 compiler.warn.prob.found.req=\
@@ -1515,22 +1508,9 @@
     required: {2}\n\
     found:    {1}
 
-compiler.err.prob.found.req.1=\
-    {0} {3}\n\
-    required: {2}\n\
-    found:    {1}
-
-## The following are all possible strings for the first argument ({0}) of the
-## above strings.
-compiler.misc.incompatible.types=\
-    incompatible types
-
-# 0: message segment
-compiler.misc.incompatible.types.1=\
-    incompatible types; {0}
-
+# 0: type, 1: type
 compiler.misc.inconvertible.types=\
-    inconvertible types
+    {0} cannot be converted to {1}
 
 compiler.misc.possible.loss.of.precision=\
     possible loss of precision
@@ -1545,19 +1525,15 @@
 compiler.misc.unchecked.cast.to.type=\
     unchecked cast
 
-compiler.misc.assignment.from.super-bound=\
-    assignment from super-bound type {0}
-
-compiler.misc.assignment.to.extends-bound=\
-    assignment to extends-bound type {0}
-
 # compiler.err.star.expected=\
 #     ''*'' expected
 # compiler.err.no.elem.type=\
 #     \[\*\] cannot have a type
 
+# 0: type
 compiler.misc.try.not.applicable.to.type=\
-    try-with-resources not applicable to variable type
+    try-with-resources not applicable to variable type {0}\n\
+    (expected a variable of type java.lang.AutoCloseable)
 
 #####
 
@@ -1592,8 +1568,11 @@
 
 ## The following are all possible strings for the last argument of all those
 ## diagnostics whose key ends in ".1"
+
+# 0: type, 1: message segment
 compiler.misc.undetermined.type=\
-    undetermined type
+    cannot infer type arguments for {0}\n\
+    reason: {1}
 
 compiler.misc.type.variable.has.undetermined.type=\
     type variable {0} has undetermined type
--- a/langtools/src/share/classes/com/sun/tools/javac/tree/JCTree.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/javac/tree/JCTree.java	Wed Jul 05 18:07:57 2017 +0200
@@ -1083,6 +1083,7 @@
         public List<JCCatch> catchers;
         public JCBlock finalizer;
         public List<JCTree> resources;
+        public boolean finallyCanCompleteNormally;
         protected JCTry(List<JCTree> resources,
                         JCBlock body,
                         List<JCCatch> catchers,
--- a/langtools/test/tools/javac/6979683/TestCast6979683_BAD34.java.errlog	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/test/tools/javac/6979683/TestCast6979683_BAD34.java.errlog	Wed Jul 05 18:07:57 2017 +0200
@@ -1,2 +1,2 @@
-TestCast6979683_BAD34.java:34:49: compiler.err.prob.found.req: (compiler.misc.incompatible.types), java.lang.Number, boolean
+TestCast6979683_BAD34.java:34:49: compiler.err.prob.found.req: java.lang.Number, boolean
 1 error
--- a/langtools/test/tools/javac/6979683/TestCast6979683_BAD35.java.errlog	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/test/tools/javac/6979683/TestCast6979683_BAD35.java.errlog	Wed Jul 05 18:07:57 2017 +0200
@@ -1,2 +1,2 @@
-TestCast6979683_BAD35.java:35:45: compiler.err.prob.found.req: (compiler.misc.incompatible.types), java.lang.Number, int
+TestCast6979683_BAD35.java:35:45: compiler.err.prob.found.req: java.lang.Number, int
 1 error
--- a/langtools/test/tools/javac/6979683/TestCast6979683_BAD36.java.errlog	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/test/tools/javac/6979683/TestCast6979683_BAD36.java.errlog	Wed Jul 05 18:07:57 2017 +0200
@@ -1,2 +1,2 @@
-TestCast6979683_BAD36.java:36:58: compiler.err.prob.found.req: (compiler.misc.incompatible.types), java.lang.Comparable<java.lang.Integer>, int
+TestCast6979683_BAD36.java:36:58: compiler.err.prob.found.req: java.lang.Comparable<java.lang.Integer>, int
 1 error
--- a/langtools/test/tools/javac/6979683/TestCast6979683_BAD37.java.errlog	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/test/tools/javac/6979683/TestCast6979683_BAD37.java.errlog	Wed Jul 05 18:07:57 2017 +0200
@@ -1,2 +1,2 @@
-TestCast6979683_BAD37.java:37:61: compiler.err.prob.found.req: (compiler.misc.inconvertible.types), java.lang.Comparable<java.lang.Short>, int
+TestCast6979683_BAD37.java:37:61: compiler.err.prob.found.req.1: (compiler.misc.inconvertible.types: java.lang.Comparable<java.lang.Short>, int)
 1 error
--- a/langtools/test/tools/javac/6979683/TestCast6979683_BAD38.java.errlog	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/test/tools/javac/6979683/TestCast6979683_BAD38.java.errlog	Wed Jul 05 18:07:57 2017 +0200
@@ -1,2 +1,2 @@
-TestCast6979683_BAD38.java:38:62: compiler.err.prob.found.req: (compiler.misc.incompatible.types), java.lang.Comparable<java.lang.Character>, float
+TestCast6979683_BAD38.java:38:62: compiler.err.prob.found.req: java.lang.Comparable<java.lang.Character>, float
 1 error
--- a/langtools/test/tools/javac/6979683/TestCast6979683_BAD39.java.errlog	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/test/tools/javac/6979683/TestCast6979683_BAD39.java.errlog	Wed Jul 05 18:07:57 2017 +0200
@@ -1,2 +1,2 @@
-TestCast6979683_BAD39.java:39:53: compiler.err.prob.found.req: (compiler.misc.inconvertible.types), java.lang.Number, char
+TestCast6979683_BAD39.java:39:53: compiler.err.prob.found.req.1: (compiler.misc.inconvertible.types: java.lang.Number, char)
 1 error
--- a/langtools/test/tools/javac/Diagnostics/6722234/T6722234d_1.out	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/test/tools/javac/Diagnostics/6722234/T6722234d_1.out	Wed Jul 05 18:07:57 2017 +0200
@@ -1,3 +1,3 @@
-T6722234d.java:18:20: compiler.err.prob.found.req: (compiler.misc.incompatible.types), compiler.misc.intersection.type: 1, T6722234d.A
+T6722234d.java:18:20: compiler.err.prob.found.req: compiler.misc.intersection.type: 1, T6722234d.A
 - compiler.misc.where.description.intersection: compiler.misc.intersection.type: 1,{(compiler.misc.where.intersection: compiler.misc.intersection.type: 1, java.lang.Object,T6722234d.I1,T6722234d.I2)}
 1 error
--- a/langtools/test/tools/javac/Diagnostics/6722234/T6722234d_2.out	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/test/tools/javac/Diagnostics/6722234/T6722234d_2.out	Wed Jul 05 18:07:57 2017 +0200
@@ -1,3 +1,3 @@
-T6722234d.java:18:20: compiler.err.prob.found.req: (compiler.misc.incompatible.types), compiler.misc.intersection.type: 1, T6722234d.A
+T6722234d.java:18:20: compiler.err.prob.found.req: compiler.misc.intersection.type: 1, T6722234d.A
 - compiler.misc.where.description.intersection: compiler.misc.intersection.type: 1,{(compiler.misc.where.intersection: compiler.misc.intersection.type: 1, Object,I1,I2)}
 1 error
--- a/langtools/test/tools/javac/OverrideChecks/6400189/T6400189a.out	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/test/tools/javac/OverrideChecks/6400189/T6400189a.out	Wed Jul 05 18:07:57 2017 +0200
@@ -1,4 +1,4 @@
 T6400189a.java:14:35: compiler.warn.unchecked.call.mbr.of.raw.type: <T>getAnnotation(java.lang.Class<T>), java.lang.reflect.Constructor
-T6400189a.java:14:35: compiler.err.prob.found.req: (compiler.misc.incompatible.types), java.lang.annotation.Annotation, java.lang.annotation.Documented
+T6400189a.java:14:35: compiler.err.prob.found.req: java.lang.annotation.Annotation, java.lang.annotation.Documented
 1 error
 1 warning
--- a/langtools/test/tools/javac/OverrideChecks/6400189/T6400189b.out	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/test/tools/javac/OverrideChecks/6400189/T6400189b.out	Wed Jul 05 18:07:57 2017 +0200
@@ -1,4 +1,4 @@
 T6400189b.java:24:24: compiler.warn.unchecked.call.mbr.of.raw.type: <T>m(T6400189b<T>), T6400189b.B
-T6400189b.java:24:24: compiler.err.prob.found.req: (compiler.misc.incompatible.types), java.lang.Object, java.lang.Integer
+T6400189b.java:24:24: compiler.err.prob.found.req: java.lang.Object, java.lang.Integer
 1 error
 1 warning
--- a/langtools/test/tools/javac/StringsInSwitch/BadlyTypedLabel1.out	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/test/tools/javac/StringsInSwitch/BadlyTypedLabel1.out	Wed Jul 05 18:07:57 2017 +0200
@@ -1,2 +1,2 @@
-BadlyTypedLabel1.java:13:14: compiler.err.prob.found.req: (compiler.misc.incompatible.types), int, java.lang.String
+BadlyTypedLabel1.java:13:14: compiler.err.prob.found.req: int, java.lang.String
 1 error
--- a/langtools/test/tools/javac/StringsInSwitch/BadlyTypedLabel2.out	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/test/tools/javac/StringsInSwitch/BadlyTypedLabel2.out	Wed Jul 05 18:07:57 2017 +0200
@@ -1,2 +1,2 @@
-BadlyTypedLabel2.java:15:14: compiler.err.prob.found.req: (compiler.misc.incompatible.types), java.math.RoundingMode, java.lang.String
+BadlyTypedLabel2.java:15:14: compiler.err.prob.found.req: java.math.RoundingMode, java.lang.String
 1 error
--- a/langtools/test/tools/javac/T6326754.out	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/test/tools/javac/T6326754.out	Wed Jul 05 18:07:57 2017 +0200
@@ -1,6 +1,6 @@
 T6326754.java:44:12: compiler.err.name.clash.same.erasure: TestConstructor(T), TestConstructor(K)
 T6326754.java:52:17: compiler.err.name.clash.same.erasure: setT(K), setT(T)
-T6326754.java:64:18: compiler.err.prob.found.req: (compiler.misc.incompatible.types), T, T
+T6326754.java:64:18: compiler.err.prob.found.req: T, T
 T6326754.java:70:11: compiler.err.cant.apply.symbol.1: kindname.method, setT, java.lang.Object, compiler.misc.no.args, kindname.class, TestC<T>, (compiler.misc.arg.length.mismatch)
 - compiler.note.unchecked.filename: T6326754.java
 - compiler.note.unchecked.recompile
--- a/langtools/test/tools/javac/TryWithResources/TwrOnNonResource.out	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/test/tools/javac/TryWithResources/TwrOnNonResource.out	Wed Jul 05 18:07:57 2017 +0200
@@ -1,4 +1,4 @@
-TwrOnNonResource.java:12:30: compiler.err.prob.found.req: (compiler.misc.try.not.applicable.to.type), TwrOnNonResource, java.lang.AutoCloseable
-TwrOnNonResource.java:15:30: compiler.err.prob.found.req: (compiler.misc.try.not.applicable.to.type), TwrOnNonResource, java.lang.AutoCloseable
-TwrOnNonResource.java:18:30: compiler.err.prob.found.req: (compiler.misc.try.not.applicable.to.type), TwrOnNonResource, java.lang.AutoCloseable
+TwrOnNonResource.java:12:30: compiler.err.prob.found.req.1: (compiler.misc.try.not.applicable.to.type: TwrOnNonResource)
+TwrOnNonResource.java:15:30: compiler.err.prob.found.req.1: (compiler.misc.try.not.applicable.to.type: TwrOnNonResource)
+TwrOnNonResource.java:18:30: compiler.err.prob.found.req.1: (compiler.misc.try.not.applicable.to.type: TwrOnNonResource)
 3 errors
--- a/langtools/test/tools/javac/cast/6270087/T6270087neg.out	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/test/tools/javac/cast/6270087/T6270087neg.out	Wed Jul 05 18:07:57 2017 +0200
@@ -1,2 +1,2 @@
-T6270087neg.java:36:29: compiler.err.prob.found.req: (compiler.misc.inconvertible.types), T6270087neg.Foo<V>, T6270087neg.Foo<U>
+T6270087neg.java:36:29: compiler.err.prob.found.req.1: (compiler.misc.inconvertible.types: T6270087neg.Foo<V>, T6270087neg.Foo<U>)
 1 error
--- a/langtools/test/tools/javac/cast/6557182/T6557182.out	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/test/tools/javac/cast/6557182/T6557182.out	Wed Jul 05 18:07:57 2017 +0200
@@ -1,4 +1,4 @@
-T6557182.java:12:56: compiler.err.prob.found.req: (compiler.misc.inconvertible.types), T, java.lang.Comparable<java.lang.Integer>
+T6557182.java:12:56: compiler.err.prob.found.req.1: (compiler.misc.inconvertible.types: T, java.lang.Comparable<java.lang.Integer>)
 T6557182.java:16:56: compiler.warn.prob.found.req: (compiler.misc.unchecked.cast.to.type), T, java.lang.Comparable<java.lang.Integer>
 1 error
 1 warning
--- a/langtools/test/tools/javac/cast/6665356/T6665356.out	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/test/tools/javac/cast/6665356/T6665356.out	Wed Jul 05 18:07:57 2017 +0200
@@ -1,8 +1,8 @@
-T6665356.java:31:55: compiler.err.prob.found.req: (compiler.misc.inconvertible.types), T6665356.Outer<java.lang.Integer>.Inner<java.lang.Long>, T6665356.Outer<? super java.lang.Number>.Inner<java.lang.Long>
-T6665356.java:35:58: compiler.err.prob.found.req: (compiler.misc.inconvertible.types), T6665356.Outer<java.lang.Integer>.Inner<java.lang.Long>, T6665356.Outer<java.lang.Integer>.Inner<? super java.lang.Number>
-T6665356.java:39:65: compiler.err.prob.found.req: (compiler.misc.inconvertible.types), T6665356.Outer<java.lang.Integer>.Inner<java.lang.Long>, T6665356.Outer<? super java.lang.Number>.Inner<? super java.lang.Number>
-T6665356.java:43:57: compiler.err.prob.found.req: (compiler.misc.inconvertible.types), T6665356.Outer<java.lang.Integer>.Inner<java.lang.Long>, T6665356.Outer<? extends java.lang.String>.Inner<java.lang.Long>
-T6665356.java:47:60: compiler.err.prob.found.req: (compiler.misc.inconvertible.types), T6665356.Outer<java.lang.Integer>.Inner<java.lang.Long>, T6665356.Outer<java.lang.Integer>.Inner<? extends java.lang.String>
-T6665356.java:51:55: compiler.err.prob.found.req: (compiler.misc.inconvertible.types), T6665356.Outer<java.lang.Integer>.Inner<java.lang.Long>, T6665356.Outer<? super java.lang.String>.Inner<java.lang.Long>
-T6665356.java:55:58: compiler.err.prob.found.req: (compiler.misc.inconvertible.types), T6665356.Outer<java.lang.Integer>.Inner<java.lang.Long>, T6665356.Outer<java.lang.Integer>.Inner<? super java.lang.String>
+T6665356.java:31:55: compiler.err.prob.found.req.1: (compiler.misc.inconvertible.types: T6665356.Outer<java.lang.Integer>.Inner<java.lang.Long>, T6665356.Outer<? super java.lang.Number>.Inner<java.lang.Long>)
+T6665356.java:35:58: compiler.err.prob.found.req.1: (compiler.misc.inconvertible.types: T6665356.Outer<java.lang.Integer>.Inner<java.lang.Long>, T6665356.Outer<java.lang.Integer>.Inner<? super java.lang.Number>)
+T6665356.java:39:65: compiler.err.prob.found.req.1: (compiler.misc.inconvertible.types: T6665356.Outer<java.lang.Integer>.Inner<java.lang.Long>, T6665356.Outer<? super java.lang.Number>.Inner<? super java.lang.Number>)
+T6665356.java:43:57: compiler.err.prob.found.req.1: (compiler.misc.inconvertible.types: T6665356.Outer<java.lang.Integer>.Inner<java.lang.Long>, T6665356.Outer<? extends java.lang.String>.Inner<java.lang.Long>)
+T6665356.java:47:60: compiler.err.prob.found.req.1: (compiler.misc.inconvertible.types: T6665356.Outer<java.lang.Integer>.Inner<java.lang.Long>, T6665356.Outer<java.lang.Integer>.Inner<? extends java.lang.String>)
+T6665356.java:51:55: compiler.err.prob.found.req.1: (compiler.misc.inconvertible.types: T6665356.Outer<java.lang.Integer>.Inner<java.lang.Long>, T6665356.Outer<? super java.lang.String>.Inner<java.lang.Long>)
+T6665356.java:55:58: compiler.err.prob.found.req.1: (compiler.misc.inconvertible.types: T6665356.Outer<java.lang.Integer>.Inner<java.lang.Long>, T6665356.Outer<java.lang.Integer>.Inner<? super java.lang.String>)
 7 errors
--- a/langtools/test/tools/javac/cast/6795580/T6795580.out	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/test/tools/javac/cast/6795580/T6795580.out	Wed Jul 05 18:07:57 2017 +0200
@@ -1,8 +1,8 @@
-T6795580.java:31:57: compiler.err.prob.found.req: (compiler.misc.inconvertible.types), T6795580.Outer<java.lang.Integer>.Inner<java.lang.Long>[], T6795580.Outer<? super java.lang.Number>.Inner<java.lang.Long>[]
-T6795580.java:35:60: compiler.err.prob.found.req: (compiler.misc.inconvertible.types), T6795580.Outer<java.lang.Integer>.Inner<java.lang.Long>[], T6795580.Outer<java.lang.Integer>.Inner<? super java.lang.Number>[]
-T6795580.java:39:67: compiler.err.prob.found.req: (compiler.misc.inconvertible.types), T6795580.Outer<java.lang.Integer>.Inner<java.lang.Long>[], T6795580.Outer<? super java.lang.Number>.Inner<? super java.lang.Number>[]
-T6795580.java:43:59: compiler.err.prob.found.req: (compiler.misc.inconvertible.types), T6795580.Outer<java.lang.Integer>.Inner<java.lang.Long>[], T6795580.Outer<? extends java.lang.String>.Inner<java.lang.Long>[]
-T6795580.java:47:62: compiler.err.prob.found.req: (compiler.misc.inconvertible.types), T6795580.Outer<java.lang.Integer>.Inner<java.lang.Long>[], T6795580.Outer<java.lang.Integer>.Inner<? extends java.lang.String>[]
-T6795580.java:51:57: compiler.err.prob.found.req: (compiler.misc.inconvertible.types), T6795580.Outer<java.lang.Integer>.Inner<java.lang.Long>[], T6795580.Outer<? super java.lang.String>.Inner<java.lang.Long>[]
-T6795580.java:55:60: compiler.err.prob.found.req: (compiler.misc.inconvertible.types), T6795580.Outer<java.lang.Integer>.Inner<java.lang.Long>[], T6795580.Outer<java.lang.Integer>.Inner<? super java.lang.String>[]
+T6795580.java:31:57: compiler.err.prob.found.req.1: (compiler.misc.inconvertible.types: T6795580.Outer<java.lang.Integer>.Inner<java.lang.Long>[], T6795580.Outer<? super java.lang.Number>.Inner<java.lang.Long>[])
+T6795580.java:35:60: compiler.err.prob.found.req.1: (compiler.misc.inconvertible.types: T6795580.Outer<java.lang.Integer>.Inner<java.lang.Long>[], T6795580.Outer<java.lang.Integer>.Inner<? super java.lang.Number>[])
+T6795580.java:39:67: compiler.err.prob.found.req.1: (compiler.misc.inconvertible.types: T6795580.Outer<java.lang.Integer>.Inner<java.lang.Long>[], T6795580.Outer<? super java.lang.Number>.Inner<? super java.lang.Number>[])
+T6795580.java:43:59: compiler.err.prob.found.req.1: (compiler.misc.inconvertible.types: T6795580.Outer<java.lang.Integer>.Inner<java.lang.Long>[], T6795580.Outer<? extends java.lang.String>.Inner<java.lang.Long>[])
+T6795580.java:47:62: compiler.err.prob.found.req.1: (compiler.misc.inconvertible.types: T6795580.Outer<java.lang.Integer>.Inner<java.lang.Long>[], T6795580.Outer<java.lang.Integer>.Inner<? extends java.lang.String>[])
+T6795580.java:51:57: compiler.err.prob.found.req.1: (compiler.misc.inconvertible.types: T6795580.Outer<java.lang.Integer>.Inner<java.lang.Long>[], T6795580.Outer<? super java.lang.String>.Inner<java.lang.Long>[])
+T6795580.java:55:60: compiler.err.prob.found.req.1: (compiler.misc.inconvertible.types: T6795580.Outer<java.lang.Integer>.Inner<java.lang.Long>[], T6795580.Outer<java.lang.Integer>.Inner<? super java.lang.String>[])
 7 errors
--- a/langtools/test/tools/javac/cast/6932571/T6932571neg.out	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/test/tools/javac/cast/6932571/T6932571neg.out	Wed Jul 05 18:07:57 2017 +0200
@@ -1,2 +1,2 @@
-T6932571neg.java:39:19: compiler.err.prob.found.req: (compiler.misc.inconvertible.types), T6932571neg.S, G
+T6932571neg.java:39:19: compiler.err.prob.found.req.1: (compiler.misc.inconvertible.types: T6932571neg.S, G)
 1 error
--- a/langtools/test/tools/javac/cast/7005095/T7005095neg.out	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/test/tools/javac/cast/7005095/T7005095neg.out	Wed Jul 05 18:07:57 2017 +0200
@@ -1,2 +1,2 @@
-T7005095neg.java:13:25: compiler.err.prob.found.req: (compiler.misc.inconvertible.types), T7005095pos.FooImpl, T7005095pos.Foo<T>
+T7005095neg.java:13:25: compiler.err.prob.found.req.1: (compiler.misc.inconvertible.types: T7005095pos.FooImpl, T7005095pos.Foo<T>)
 1 error
--- a/langtools/test/tools/javac/cast/7005671/T7005671.out	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/test/tools/javac/cast/7005671/T7005671.out	Wed Jul 05 18:07:57 2017 +0200
@@ -1,17 +1,17 @@
-T7005671.java:12:26: compiler.err.prob.found.req: (compiler.misc.inconvertible.types), byte[], X[]
-T7005671.java:13:26: compiler.err.prob.found.req: (compiler.misc.inconvertible.types), short[], X[]
-T7005671.java:14:26: compiler.err.prob.found.req: (compiler.misc.inconvertible.types), int[], X[]
-T7005671.java:15:26: compiler.err.prob.found.req: (compiler.misc.inconvertible.types), long[], X[]
-T7005671.java:16:26: compiler.err.prob.found.req: (compiler.misc.inconvertible.types), float[], X[]
-T7005671.java:17:26: compiler.err.prob.found.req: (compiler.misc.inconvertible.types), double[], X[]
-T7005671.java:18:26: compiler.err.prob.found.req: (compiler.misc.inconvertible.types), char[], X[]
-T7005671.java:19:26: compiler.err.prob.found.req: (compiler.misc.inconvertible.types), boolean[], X[]
-T7005671.java:23:29: compiler.err.prob.found.req: (compiler.misc.inconvertible.types), X[], byte[]
-T7005671.java:24:30: compiler.err.prob.found.req: (compiler.misc.inconvertible.types), X[], short[]
-T7005671.java:25:28: compiler.err.prob.found.req: (compiler.misc.inconvertible.types), X[], int[]
-T7005671.java:26:29: compiler.err.prob.found.req: (compiler.misc.inconvertible.types), X[], long[]
-T7005671.java:27:30: compiler.err.prob.found.req: (compiler.misc.inconvertible.types), X[], float[]
-T7005671.java:28:31: compiler.err.prob.found.req: (compiler.misc.inconvertible.types), X[], double[]
-T7005671.java:29:29: compiler.err.prob.found.req: (compiler.misc.inconvertible.types), X[], char[]
-T7005671.java:30:32: compiler.err.prob.found.req: (compiler.misc.inconvertible.types), X[], boolean[]
+T7005671.java:12:26: compiler.err.prob.found.req.1: (compiler.misc.inconvertible.types: byte[], X[])
+T7005671.java:13:26: compiler.err.prob.found.req.1: (compiler.misc.inconvertible.types: short[], X[])
+T7005671.java:14:26: compiler.err.prob.found.req.1: (compiler.misc.inconvertible.types: int[], X[])
+T7005671.java:15:26: compiler.err.prob.found.req.1: (compiler.misc.inconvertible.types: long[], X[])
+T7005671.java:16:26: compiler.err.prob.found.req.1: (compiler.misc.inconvertible.types: float[], X[])
+T7005671.java:17:26: compiler.err.prob.found.req.1: (compiler.misc.inconvertible.types: double[], X[])
+T7005671.java:18:26: compiler.err.prob.found.req.1: (compiler.misc.inconvertible.types: char[], X[])
+T7005671.java:19:26: compiler.err.prob.found.req.1: (compiler.misc.inconvertible.types: boolean[], X[])
+T7005671.java:23:29: compiler.err.prob.found.req.1: (compiler.misc.inconvertible.types: X[], byte[])
+T7005671.java:24:30: compiler.err.prob.found.req.1: (compiler.misc.inconvertible.types: X[], short[])
+T7005671.java:25:28: compiler.err.prob.found.req.1: (compiler.misc.inconvertible.types: X[], int[])
+T7005671.java:26:29: compiler.err.prob.found.req.1: (compiler.misc.inconvertible.types: X[], long[])
+T7005671.java:27:30: compiler.err.prob.found.req.1: (compiler.misc.inconvertible.types: X[], float[])
+T7005671.java:28:31: compiler.err.prob.found.req.1: (compiler.misc.inconvertible.types: X[], double[])
+T7005671.java:29:29: compiler.err.prob.found.req.1: (compiler.misc.inconvertible.types: X[], char[])
+T7005671.java:30:32: compiler.err.prob.found.req.1: (compiler.misc.inconvertible.types: X[], boolean[])
 16 errors
--- a/langtools/test/tools/javac/diags/examples.not-yet.txt	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/test/tools/javac/diags/examples.not-yet.txt	Wed Jul 05 18:07:57 2017 +0200
@@ -1,8 +1,6 @@
 compiler.err.already.annotated                          # internal compiler error?
 compiler.err.already.defined.this.unit                  # seems to be masked by compiler.err.duplicate.class
 compiler.err.annotation.value.not.allowable.type        # cannot happen: precluded by complete type-specific tests
-compiler.err.assignment.from.super-bound                # DEAD
-compiler.err.assignment.to.extends-bound                # DEAD
 compiler.err.cant.apply.symbol
 compiler.err.cant.read.file                             # (apt.JavaCompiler?)
 compiler.err.cant.select.static.class.from.param.type
@@ -24,7 +22,6 @@
 compiler.err.no.encl.instance.of.type.in.scope          # cannot occur; always followed by assert false;
 compiler.err.no.match.entry                             # UNUSED?
 compiler.err.not.annotation.type                        # cannot occur given preceding checkType
-compiler.err.prob.found.req.1                           # Check: DEAD, in unused method
 compiler.err.proc.bad.config.file                       # JavacProcessingEnvironment
 compiler.err.proc.cant.access                           # completion failure
 compiler.err.proc.cant.access.1                         # completion failure, no stack trace
@@ -38,12 +35,8 @@
 compiler.err.stack.sim.error
 compiler.err.type.var.more.than.once                    # UNUSED
 compiler.err.type.var.more.than.once.in.result          # UNUSED
-compiler.err.undetermined.type
 compiler.err.unexpected.type
 compiler.err.unsupported.cross.fp.lit                   # Scanner: host system dependent
-compiler.err.wrong.target.for.polymorphic.signature.definition     # Transitional 292
-compiler.misc.assignment.from.super-bound
-compiler.misc.assignment.to.extends-bound
 compiler.misc.bad.class.file.header                     # bad class file
 compiler.misc.bad.class.signature                       # bad class file
 compiler.misc.bad.const.pool.tag                        # bad class file
@@ -88,7 +81,6 @@
 compiler.misc.type.variable.has.undetermined.type
 compiler.misc.unable.to.access.file                     # ClassFile
 compiler.misc.undecl.type.var                           # ClassReader
-compiler.misc.undetermined.type
 compiler.misc.unicode.str.not.supported                 # ClassReader
 compiler.misc.verbose.retro                             # UNUSED
 compiler.misc.verbose.retro.with                        # UNUSED
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/diags/examples/CantApplyDiamond1.java	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 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.
+ *
+ * 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.
+ */
+
+// key: compiler.err.prob.found.req.1
+// key: compiler.misc.cant.apply.diamond.1
+// key: compiler.misc.infer.no.conforming.instance.exists
+// key: compiler.misc.diamond
+
+class CantApplyDiamond1<X> {
+
+    CantApplyDiamond1(CantApplyDiamond1<? super X> lz) { }
+
+    void test(CantApplyDiamond1<Integer> li) {
+       CantApplyDiamond1<String> ls = new CantApplyDiamond1<>(li);
+    }
+}
--- a/langtools/test/tools/javac/diags/examples/IncompatibleTypes1.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/test/tools/javac/diags/examples/IncompatibleTypes1.java	Wed Jul 05 18:07:57 2017 +0200
@@ -21,9 +21,8 @@
  * questions.
  */
 
-// key: compiler.misc.incompatible.types.1
 // key: compiler.misc.infer.no.conforming.instance.exists
-// key: compiler.err.prob.found.req
+// key: compiler.err.prob.found.req.1
 
 class IncompatibleTypes1<V> {
     <T extends Integer & Runnable> IncompatibleTypes1<T> m() {
--- a/langtools/test/tools/javac/diags/examples/InconvertibleTypes.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/test/tools/javac/diags/examples/InconvertibleTypes.java	Wed Jul 05 18:07:57 2017 +0200
@@ -22,7 +22,7 @@
  */
 
 // key: compiler.misc.inconvertible.types
-// key: compiler.err.prob.found.req
+// key: compiler.err.prob.found.req.1
 
 class InconvertibleTypes {
     class Outer<S> {
--- a/langtools/test/tools/javac/diags/examples/InvalidInferredTypes.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/test/tools/javac/diags/examples/InvalidInferredTypes.java	Wed Jul 05 18:07:57 2017 +0200
@@ -21,7 +21,8 @@
  * questions.
  */
 
-// key: compiler.err.invalid.inferred.types
+// key: compiler.err.prob.found.req.1
+// key: compiler.misc.invalid.inferred.types
 // key: compiler.misc.inferred.do.not.conform.to.bounds
 
 import java.util.*;
--- a/langtools/test/tools/javac/diags/examples/PossibleLossPrecision.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/test/tools/javac/diags/examples/PossibleLossPrecision.java	Wed Jul 05 18:07:57 2017 +0200
@@ -22,7 +22,7 @@
  */
 
 // key: compiler.misc.possible.loss.of.precision
-// key: compiler.err.prob.found.req
+// key: compiler.err.prob.found.req.1
 
 class PossibleLossPrecision {
     long l;
--- a/langtools/test/tools/javac/diags/examples/ResourceNotApplicableToType.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/test/tools/javac/diags/examples/ResourceNotApplicableToType.java	Wed Jul 05 18:07:57 2017 +0200
@@ -22,7 +22,7 @@
  */
 
 // key: compiler.misc.try.not.applicable.to.type
-// key: compiler.err.prob.found.req
+// key: compiler.err.prob.found.req.1
 
 class ResourceNotApplicableToType {
     void m() {
--- a/langtools/test/tools/javac/diags/examples/UndeterminedType1.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/test/tools/javac/diags/examples/UndeterminedType1.java	Wed Jul 05 18:07:57 2017 +0200
@@ -21,7 +21,8 @@
  * questions.
  */
 
-// key: compiler.err.undetermined.type.1
+// key: compiler.err.prob.found.req.1
+// key: compiler.misc.undetermined.type
 // key: compiler.misc.no.unique.maximal.instance.exists
 
 class UndeterminedType1<V> {
--- a/langtools/test/tools/javac/diags/examples/WhereIntersection.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/test/tools/javac/diags/examples/WhereIntersection.java	Wed Jul 05 18:07:57 2017 +0200
@@ -24,7 +24,6 @@
 // key: compiler.misc.where.intersection
 // key: compiler.misc.where.description.intersection
 // key: compiler.misc.intersection.type
-// key: compiler.misc.incompatible.types
 // key: compiler.err.prob.found.req
 // options: -XDdiags=where
 // run: simple
--- a/langtools/test/tools/javac/generics/6207386/T6207386.out	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/test/tools/javac/generics/6207386/T6207386.out	Wed Jul 05 18:07:57 2017 +0200
@@ -1,2 +1,2 @@
-T6207386.java:13:30: compiler.err.prob.found.req: (compiler.misc.incompatible.types), X, T6207386.F<? super X>
+T6207386.java:13:30: compiler.err.prob.found.req: X, T6207386.F<? super X>
 1 error
--- a/langtools/test/tools/javac/generics/diamond/neg/Neg05.out	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/test/tools/javac/generics/diamond/neg/Neg05.out	Wed Jul 05 18:07:57 2017 +0200
@@ -1,19 +1,19 @@
 Neg05.java:19:48: compiler.err.improperly.formed.type.inner.raw.param
-Neg05.java:19:35: compiler.err.prob.found.req: (compiler.misc.incompatible.types), Neg05.Foo<java.lang.String>, Neg05<?>.Foo<java.lang.String>
+Neg05.java:19:35: compiler.err.prob.found.req: Neg05.Foo<java.lang.String>, Neg05<?>.Foo<java.lang.String>
 Neg05.java:20:58: compiler.err.improperly.formed.type.inner.raw.param
-Neg05.java:20:45: compiler.err.prob.found.req: (compiler.misc.incompatible.types), Neg05.Foo<java.lang.String>, Neg05<?>.Foo<? extends java.lang.String>
+Neg05.java:20:45: compiler.err.prob.found.req: Neg05.Foo<java.lang.String>, Neg05<?>.Foo<? extends java.lang.String>
 Neg05.java:21:43: compiler.err.improperly.formed.type.inner.raw.param
-Neg05.java:21:30: compiler.err.prob.found.req: (compiler.misc.incompatible.types), Neg05.Foo<java.lang.String>, Neg05<?>.Foo<?>
+Neg05.java:21:30: compiler.err.prob.found.req: Neg05.Foo<java.lang.String>, Neg05<?>.Foo<?>
 Neg05.java:22:56: compiler.err.improperly.formed.type.inner.raw.param
-Neg05.java:22:43: compiler.err.prob.found.req: (compiler.misc.incompatible.types), Neg05.Foo<java.lang.String>, Neg05<?>.Foo<? super java.lang.String>
+Neg05.java:22:43: compiler.err.prob.found.req: Neg05.Foo<java.lang.String>, Neg05<?>.Foo<? super java.lang.String>
 Neg05.java:24:48: compiler.err.improperly.formed.type.inner.raw.param
-Neg05.java:24:35: compiler.err.prob.found.req: (compiler.misc.incompatible.types), Neg05.Foo<java.lang.String>, Neg05<?>.Foo<java.lang.String>
+Neg05.java:24:35: compiler.err.prob.found.req: Neg05.Foo<java.lang.String>, Neg05<?>.Foo<java.lang.String>
 Neg05.java:25:58: compiler.err.improperly.formed.type.inner.raw.param
-Neg05.java:25:45: compiler.err.prob.found.req: (compiler.misc.incompatible.types), Neg05.Foo<java.lang.String>, Neg05<?>.Foo<? extends java.lang.String>
+Neg05.java:25:45: compiler.err.prob.found.req: Neg05.Foo<java.lang.String>, Neg05<?>.Foo<? extends java.lang.String>
 Neg05.java:26:43: compiler.err.improperly.formed.type.inner.raw.param
-Neg05.java:26:30: compiler.err.prob.found.req: (compiler.misc.incompatible.types), Neg05.Foo<java.lang.String>, Neg05<?>.Foo<?>
+Neg05.java:26:30: compiler.err.prob.found.req: Neg05.Foo<java.lang.String>, Neg05<?>.Foo<?>
 Neg05.java:27:56: compiler.err.improperly.formed.type.inner.raw.param
-Neg05.java:27:43: compiler.err.prob.found.req: (compiler.misc.incompatible.types), Neg05.Foo<java.lang.String>, Neg05<?>.Foo<? super java.lang.String>
+Neg05.java:27:43: compiler.err.prob.found.req: Neg05.Foo<java.lang.String>, Neg05<?>.Foo<? super java.lang.String>
 Neg05.java:31:37: compiler.err.improperly.formed.type.inner.raw.param
 Neg05.java:32:47: compiler.err.improperly.formed.type.inner.raw.param
 Neg05.java:33:32: compiler.err.improperly.formed.type.inner.raw.param
--- a/langtools/test/tools/javac/generics/diamond/neg/Neg06.out	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/test/tools/javac/generics/diamond/neg/Neg06.out	Wed Jul 05 18:07:57 2017 +0200
@@ -1,2 +1,2 @@
-Neg06.java:16:37: compiler.err.cant.apply.diamond.1: (compiler.misc.diamond: Neg06.CFoo), (compiler.misc.infer.no.conforming.instance.exists: X, Neg06.CFoo<X>, Neg06.CSuperFoo<java.lang.String>)
+Neg06.java:16:37: compiler.err.prob.found.req.1: (compiler.misc.cant.apply.diamond.1: (compiler.misc.diamond: Neg06.CFoo), (compiler.misc.infer.no.conforming.instance.exists: X, Neg06.CFoo<X>, Neg06.CSuperFoo<java.lang.String>))
 1 error
--- a/langtools/test/tools/javac/generics/diamond/neg/Neg10.out	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/test/tools/javac/generics/diamond/neg/Neg10.out	Wed Jul 05 18:07:57 2017 +0200
@@ -1,2 +1,2 @@
-Neg10.java:16:22: compiler.err.prob.found.req: (compiler.misc.incompatible.types), Neg10.Foo<java.lang.Integer>, Neg10.Foo<java.lang.Number>
+Neg10.java:16:22: compiler.err.prob.found.req: Neg10.Foo<java.lang.Integer>, Neg10.Foo<java.lang.Number>
 1 error
--- a/langtools/test/tools/javac/generics/inference/6315770/T6315770.out	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/test/tools/javac/generics/inference/6315770/T6315770.out	Wed Jul 05 18:07:57 2017 +0200
@@ -1,3 +1,3 @@
-T6315770.java:16:42: compiler.err.undetermined.type.1: <T>T6315770<T>, (compiler.misc.no.unique.maximal.instance.exists: T, java.lang.String,java.lang.Integer,java.lang.Runnable)
-T6315770.java:17:40: compiler.err.prob.found.req: (compiler.misc.incompatible.types.1: (compiler.misc.infer.no.conforming.instance.exists: T, T6315770<T>, T6315770<? super java.lang.String>)), <T>T6315770<T>, T6315770<? super java.lang.String>
+T6315770.java:16:42: compiler.err.prob.found.req.1: (compiler.misc.undetermined.type: <T>T6315770<T>, (compiler.misc.no.unique.maximal.instance.exists: T, java.lang.String,java.lang.Integer,java.lang.Runnable))
+T6315770.java:17:40: compiler.err.prob.found.req.1: (compiler.misc.infer.no.conforming.instance.exists: T, T6315770<T>, T6315770<? super java.lang.String>)
 2 errors
--- a/langtools/test/tools/javac/generics/inference/6638712/T6638712b.out	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/test/tools/javac/generics/inference/6638712/T6638712b.out	Wed Jul 05 18:07:57 2017 +0200
@@ -1,2 +1,2 @@
-T6638712b.java:14:21: compiler.err.prob.found.req: (compiler.misc.incompatible.types.1: (compiler.misc.infer.no.conforming.instance.exists: T, T, java.lang.String)), <T>T, java.lang.String
+T6638712b.java:14:21: compiler.err.prob.found.req.1: (compiler.misc.infer.no.conforming.instance.exists: T, T, java.lang.String)
 1 error
--- a/langtools/test/tools/javac/generics/inference/6638712/T6638712e.out	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/test/tools/javac/generics/inference/6638712/T6638712e.out	Wed Jul 05 18:07:57 2017 +0200
@@ -1,2 +1,2 @@
-T6638712e.java:17:27: compiler.err.prob.found.req: (compiler.misc.incompatible.types.1: (compiler.misc.infer.no.conforming.instance.exists: X, T6638712e.Foo<X,java.lang.String>, T6638712e.Foo<java.lang.Object,java.lang.String>)), <X>T6638712e.Foo<X,java.lang.String>, T6638712e.Foo<java.lang.Object,java.lang.String>
+T6638712e.java:17:27: compiler.err.prob.found.req.1: (compiler.misc.infer.no.conforming.instance.exists: X, T6638712e.Foo<X,java.lang.String>, T6638712e.Foo<java.lang.Object,java.lang.String>)
 1 error
--- a/langtools/test/tools/javac/generics/inference/6650759/T6650759m.out	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/test/tools/javac/generics/inference/6650759/T6650759m.out	Wed Jul 05 18:07:57 2017 +0200
@@ -1,2 +1,2 @@
-T6650759m.java:43:36: compiler.err.prob.found.req: (compiler.misc.incompatible.types), java.util.List<? super java.lang.Integer>, java.util.List<? super java.lang.String>
+T6650759m.java:43:36: compiler.err.prob.found.req: java.util.List<? super java.lang.Integer>, java.util.List<? super java.lang.String>
 1 error
--- a/langtools/test/tools/javac/generics/rawOverride/7062745/T7062745neg.out	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/test/tools/javac/generics/rawOverride/7062745/T7062745neg.out	Wed Jul 05 18:07:57 2017 +0200
@@ -1,2 +1,2 @@
-T7062745neg.java:16:36: compiler.err.prob.found.req: (compiler.misc.incompatible.types), java.lang.Object, java.lang.Number
+T7062745neg.java:16:36: compiler.err.prob.found.req: java.lang.Object, java.lang.Number
 1 error
--- a/langtools/test/tools/javac/generics/wildcards/6886247/T6886247_2.out	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/test/tools/javac/generics/wildcards/6886247/T6886247_2.out	Wed Jul 05 18:07:57 2017 +0200
@@ -1,2 +1,2 @@
-T6886247_2.java:35:28: compiler.err.prob.found.req: (compiler.misc.incompatible.types), compiler.misc.type.captureof: 1, ?, E
+T6886247_2.java:35:28: compiler.err.prob.found.req: compiler.misc.type.captureof: 1, ?, E
 1 error
--- a/langtools/test/tools/javac/multicatch/Neg06.out	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/test/tools/javac/multicatch/Neg06.out	Wed Jul 05 18:07:57 2017 +0200
@@ -1,3 +1,3 @@
-Neg06.java:14:16: compiler.err.prob.found.req: (compiler.misc.incompatible.types), java.lang.String, java.lang.Throwable
-Neg06.java:14:25: compiler.err.prob.found.req: (compiler.misc.incompatible.types), java.lang.Integer, java.lang.Throwable
+Neg06.java:14:16: compiler.err.prob.found.req: java.lang.String, java.lang.Throwable
+Neg06.java:14:25: compiler.err.prob.found.req: java.lang.Integer, java.lang.Throwable
 2 errors
--- a/langtools/test/tools/javac/multicatch/Neg07.out	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/test/tools/javac/multicatch/Neg07.out	Wed Jul 05 18:07:57 2017 +0200
@@ -1,2 +1,2 @@
-Neg07.java:14:56: compiler.err.prob.found.req: (compiler.misc.incompatible.types), java.lang.Class<compiler.misc.type.captureof: 1, ? extends Neg07.ParentException>, java.lang.Class<? extends Neg07.HasFoo>
+Neg07.java:14:56: compiler.err.prob.found.req: java.lang.Class<compiler.misc.type.captureof: 1, ? extends Neg07.ParentException>, java.lang.Class<? extends Neg07.HasFoo>
 1 error
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/parser/7157165/T7157165.java	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,12 @@
+/*
+ * @test /nodynamiccopyright/
+ * @bug 7157165
+ *
+ * @summary Regression: code with disjunctive type crashes javac
+ * @compile/fail/ref=T7157165.out -XDrawDiagnostics T7157165.java
+ *
+ */
+
+class T7157165 {
+    Foo<? extends A|B> foo1 = null;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/parser/7157165/T7157165.out	Wed Jul 05 18:07:57 2017 +0200
@@ -0,0 +1,4 @@
+T7157165.java:11:20: compiler.err.expected: >
+T7157165.java:11:21: compiler.err.expected: ';'
+T7157165.java:11:22: compiler.err.illegal.start.of.type
+3 errors
--- a/langtools/test/tools/javac/processing/TestWarnErrorCount.java	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/test/tools/javac/processing/TestWarnErrorCount.java	Wed Jul 05 18:07:57 2017 +0200
@@ -327,7 +327,7 @@
             Writer out = fo.openWriter();
             try {
                 out.write("class " + name + " {\n"
-                        + (warn ? "    int i = (int) 0;\n" : "")
+                        + (warn ? "    void m() throws Exception { try (AutoCloseable ac = null) { } }" : "")
                         + (error ? "   ERROR\n" : "")
                         + "}\n");
             } finally {
--- a/langtools/test/tools/javac/types/CastObjectToPrimitiveTest.out	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/test/tools/javac/types/CastObjectToPrimitiveTest.out	Wed Jul 05 18:07:57 2017 +0200
@@ -1,2 +1,2 @@
-CastObjectToPrimitiveTest.java:36:23: compiler.err.prob.found.req: (compiler.misc.inconvertible.types), java.lang.Object, int
+CastObjectToPrimitiveTest.java:36:23: compiler.err.prob.found.req.1: (compiler.misc.inconvertible.types: java.lang.Object, int)
 1 error
--- a/langtools/test/tools/javac/varargs/6313164/T6313164.out	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/test/tools/javac/varargs/6313164/T6313164.out	Wed Jul 05 18:07:57 2017 +0200
@@ -1,6 +1,6 @@
 T6313164.java:12:8: compiler.err.cant.apply.symbol.1: kindname.method, foo1, p1.A[], p1.B,p1.B, kindname.class, p1.B, (compiler.misc.inaccessible.varargs.type: p1.A, kindname.class, T6313164)
-T6313164.java:14:13: compiler.err.invalid.inferred.types: X, (compiler.misc.inaccessible.varargs.type: p1.A, kindname.class, T6313164)
-T6313164.java:15:13: compiler.err.invalid.inferred.types: X, (compiler.misc.inaccessible.varargs.type: p1.A, kindname.class, T6313164)
+T6313164.java:14:13: compiler.err.prob.found.req.1: (compiler.misc.invalid.inferred.types: X, (compiler.misc.inaccessible.varargs.type: p1.A, kindname.class, T6313164))
+T6313164.java:15:13: compiler.err.prob.found.req.1: (compiler.misc.invalid.inferred.types: X, (compiler.misc.inaccessible.varargs.type: p1.A, kindname.class, T6313164))
 - compiler.note.unchecked.filename: B.java
 - compiler.note.unchecked.recompile
 3 errors
--- a/langtools/test/tools/javac/varargs/7097436/T7097436.out	Wed Jul 05 18:07:12 2017 +0200
+++ b/langtools/test/tools/javac/varargs/7097436/T7097436.out	Wed Jul 05 18:07:57 2017 +0200
@@ -1,6 +1,6 @@
 T7097436.java:13:20: compiler.warn.varargs.unsafe.use.varargs.param: ls
 T7097436.java:14:25: compiler.warn.varargs.unsafe.use.varargs.param: ls
-T7097436.java:15:20: compiler.err.prob.found.req: (compiler.misc.incompatible.types), java.util.List<java.lang.String>[], java.lang.String
-T7097436.java:16:26: compiler.err.prob.found.req: (compiler.misc.incompatible.types), java.util.List<java.lang.String>[], java.lang.Integer[]
+T7097436.java:15:20: compiler.err.prob.found.req: java.util.List<java.lang.String>[], java.lang.String
+T7097436.java:16:26: compiler.err.prob.found.req: java.util.List<java.lang.String>[], java.lang.Integer[]
 2 errors
 2 warnings
--- a/make/Defs-internal.gmk	Wed Jul 05 18:07:12 2017 +0200
+++ b/make/Defs-internal.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 1995, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1995, 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
@@ -354,3 +354,12 @@
   COMMON_BUILD_ARGUMENTS += ANT_HOME="$(ANT_HOME)"
 endif
 
+# When all repos support FULL_DEBUG_SYMBOLS and ZIP_DEBUGINFO_FILES,
+# then these can be set here:
+#ifdef FULL_DEBUG_SYMBOLS
+#  COMMON_BUILD_ARGUMENTS += FULL_DEBUG_SYMBOLS=$(FULL_DEBUG_SYMBOLS)
+#endif
+#
+#ifdef ZIP_DEBUGINFO_FILES
+#  COMMON_BUILD_ARGUMENTS += ZIP_DEBUGINFO_FILES="$(ZIP_DEBUGINFO_FILES)"
+#endif
--- a/make/hotspot-rules.gmk	Wed Jul 05 18:07:12 2017 +0200
+++ b/make/hotspot-rules.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2001, 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
@@ -71,6 +71,7 @@
 ifeq ($(DEBUG_NAME), fastdebug)
   HOTSPOT_TARGET = all_fastdebug
 endif
+BUILD_FLAVOR=$(HOTSPOT_TARGET:all_%=%)
 
 ifeq ($(ZERO_BUILD), true)
   ifeq ($(SHARK_BUILD), true)
@@ -83,6 +84,7 @@
 HOTSPOT_BUILD_ARGUMENTS += $(COMMON_BUILD_ARGUMENTS)
 HOTSPOT_BUILD_ARGUMENTS += ALT_OUTPUTDIR=$(HOTSPOT_OUTPUTDIR)
 HOTSPOT_BUILD_ARGUMENTS += ALT_EXPORT_PATH=$(HOTSPOT_EXPORT_PATH)
+HOTSPOT_BUILD_ARGUMENTS += BUILD_FLAVOR=$(BUILD_FLAVOR)
 
 # Why do these need to be passed in? Because of windows nmake? and MAKEFLAGS=?
 #   Or is there something wrong with hotspot/make/Makefile?
@@ -93,6 +95,16 @@
   HOTSPOT_BUILD_ARGUMENTS += ALT_LANGTOOLS_DIST=$(ABS_LANGTOOLS_DIST)
 endif
 
+# Move to COMMON_BUILD_ARGUMENTS when all repos support
+# FULL_DEBUG_SYMBOLS and ZIP_DEBUGINFO_FILES:
+ifdef FULL_DEBUG_SYMBOLS
+  HOTSPOT_BUILD_ARGUMENTS += FULL_DEBUG_SYMBOLS=$(FULL_DEBUG_SYMBOLS)
+endif
+
+ifdef ZIP_DEBUGINFO_FILES
+  HOTSPOT_BUILD_ARGUMENTS += ZIP_DEBUGINFO_FILES="$(ZIP_DEBUGINFO_FILES)"
+endif
+
 hotspot-build::
 	$(MKDIR) -p $(HOTSPOT_OUTPUTDIR)
 	$(MKDIR) -p $(HOTSPOT_EXPORT_PATH)
--- a/make/jdk-rules.gmk	Wed Jul 05 18:07:12 2017 +0200
+++ b/make/jdk-rules.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2001, 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
@@ -70,6 +70,16 @@
 JDK_BUILD_ARGUMENTS += \
         BUILD_HOTSPOT=$(BUILD_HOTSPOT)
 
+# Move to COMMON_BUILD_ARGUMENTS when all repos support
+# FULL_DEBUG_SYMBOLS and ZIP_DEBUGINFO_FILES:
+ifdef FULL_DEBUG_SYMBOLS
+  JDK_BUILD_ARGUMENTS += FULL_DEBUG_SYMBOLS=$(FULL_DEBUG_SYMBOLS)
+endif
+
+ifdef ZIP_DEBUGINFO_FILES
+  JDK_BUILD_ARGUMENTS += ZIP_DEBUGINFO_FILES="$(ZIP_DEBUGINFO_FILES)"
+endif
+
 
 $(JDK_JAVA_EXE):: jdk-build
 
--- a/make/jprt.gmk	Wed Jul 05 18:07:12 2017 +0200
+++ b/make/jprt.gmk	Wed Jul 05 18:07:57 2017 +0200
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2006, 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
@@ -36,21 +36,28 @@
 JPRT_ARCHIVE_BUNDLE=$(ABS_OUTPUTDIR)/$(DEFAULT_BUILD_FLAVOR)-bundle.zip
 JPRT_ARCHIVE_INSTALL_BUNDLE=$(ABS_OUTPUTDIR)/$(DEFAULT_BUILD_FLAVOR)-install-bundle.zip
 
+ifeq ($(PLATFORM),windows)
+  ZIPFLAGS=-q
+else
+  # store symbolic links as the link
+  ZIPFLAGS=-q -y
+endif
+
 jprt_build_product:  sanity all_product_build
 	( $(CD) $(OUTPUTDIR)/$(JDK_IMAGE_DIRNAME) && \
-	  $(ZIPEXE) -q -r $(JPRT_ARCHIVE_BUNDLE) . )
+	  $(ZIPEXE) $(ZIPFLAGS) -r $(JPRT_ARCHIVE_BUNDLE) . )
 ifdef HAVE_JPRT_SAVE_BUNDLES
 	( $(CD) $(OUTPUTDIR)/bundles && \
-	  $(ZIPEXE) -q -r $(JPRT_ARCHIVE_INSTALL_BUNDLE) . )
+	  $(ZIPEXE) $(ZIPFLAGS) -r $(JPRT_ARCHIVE_INSTALL_BUNDLE) . )
 endif
 
 jprt_build_fastdebug: fastdebug_build
 	( $(CD) $(OUTPUTDIR)/$(REL_JDK_FASTDEBUG_IMAGE_DIR) && \
-	  $(ZIPEXE) -q -r $(JPRT_ARCHIVE_BUNDLE) . )
+	  $(ZIPEXE) $(ZIPFLAGS) -r $(JPRT_ARCHIVE_BUNDLE) . )
 
 jprt_build_debug: debug_build
 	( $(CD) $(OUTPUTDIR)/$(REL_JDK_DEBUG_IMAGE_DIR) && \
-	  $(ZIPEXE) -q -r $(JPRT_ARCHIVE_BUNDLE) . )
+	  $(ZIPEXE) $(ZIPFLAGS) -r $(JPRT_ARCHIVE_BUNDLE) . )
 
 ################################################################
 #  PHONY